File: /www/wwwroot/oura.mlazu.com/node_modules/.vite/deps/recharts.js.map
{
"version": 3,
"sources": ["../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/_internal/isUnsafeProperty.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/_internal/isDeepKey.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/_internal/toKey.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/util/toString.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/util/toPath.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/object/get.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/compat/get.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/array/uniqBy.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/function/ary.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/function/identity.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/predicate/isLength.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isArrayLike.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isObjectLike.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isArrayLikeObject.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/object/property.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isObject.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/predicate/isPrimitive.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/_internal/isEqualsSameValueZero.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isMatchWith.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isMatch.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/_internal/getSymbols.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/_internal/getTag.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/_internal/tags.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/predicate/isTypedArray.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/object/cloneDeepWith.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/object/cloneDeep.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/matches.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/object/cloneDeepWith.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/object/cloneDeep.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/_internal/isIndex.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isArguments.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/object/has.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/matchesProperty.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/util/iteratee.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/array/uniqBy.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/compat/uniqBy.js", "../../.pnpm/use-sync-external-store@1.6.0_react@19.2.4/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js", "../../.pnpm/use-sync-external-store@1.6.0_react@19.2.4/node_modules/use-sync-external-store/shim/index.js", "../../.pnpm/use-sync-external-store@1.6.0_react@19.2.4/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js", "../../.pnpm/use-sync-external-store@1.6.0_react@19.2.4/node_modules/use-sync-external-store/shim/with-selector.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/_internal/compareValues.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isSymbol.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/_internal/isKey.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/array/orderBy.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/array/flatten.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/_internal/isIterateeCall.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/array/sortBy.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/compat/sortBy.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/function/debounce.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/function/debounce.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/function/throttle.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/compat/throttle.js", "../../.pnpm/use-sync-external-store@1.6.0_react@19.2.4/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js", "../../.pnpm/use-sync-external-store@1.6.0_react@19.2.4/node_modules/use-sync-external-store/with-selector.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/util/toNumber.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/util/toFinite.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/math/range.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/compat/range.js", "../../.pnpm/eventemitter3@5.0.4/node_modules/eventemitter3/index.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/array/maxBy.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/math/maxBy.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/compat/maxBy.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/array/minBy.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/math/minBy.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/compat/minBy.js", "../../.pnpm/react-is@19.2.4/node_modules/react-is/cjs/react-is.development.js", "../../.pnpm/react-is@19.2.4/node_modules/react-is/index.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isPlainObject.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/compat/isPlainObject.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/array/last.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/_internal/toArray.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/array/last.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/compat/last.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/predicate/isBuffer.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/_internal/isPrototype.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isTypedArray.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/util/toInteger.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/util/times.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/object/keysIn.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/object/unset.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/_internal/getSymbolsIn.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/array/flatten.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/object/omit.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/compat/omit.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/math/sumBy.js", "../../.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/compat/sumBy.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/container/Surface.js", "../../.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/svgPropertiesAndEvents.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/excludeEventProps.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/svgPropertiesNoEvents.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/container/Layer.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/component/Legend.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/context/legendPortalContext.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/component/DefaultLegendContent.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/shape/Symbols.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/constant.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/math.js", "../../.pnpm/d3-path@3.1.0/node_modules/d3-path/src/path.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/path.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/array.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/linear.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/point.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/line.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/area.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/radial.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/bump.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/asterisk.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/circle.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/cross.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/diamond.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/square.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/star.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/triangle.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/triangle2.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/wye.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/symbol.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/noop.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basis.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basisClosed.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basisOpen.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/bundle.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/cardinal.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/cardinalClosed.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/cardinalOpen.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/catmullRom.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/catmullRomClosed.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/catmullRomOpen.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/linearClosed.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/monotone.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/natural.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/step.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/offset/none.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/order/none.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/stack.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/offset/expand.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/offset/silhouette.js", "../../.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/offset/wiggle.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/DataUtils.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/round.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/types.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/resolveDefaultProps.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/payload/getUniqPayload.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/hooks.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/RechartsReduxContext.js", "../../.pnpm/reselect@5.1.1/node_modules/reselect/src/devModeChecks/identityFunctionCheck.ts", "../../.pnpm/reselect@5.1.1/node_modules/reselect/src/devModeChecks/inputStabilityCheck.ts", "../../.pnpm/reselect@5.1.1/node_modules/reselect/src/devModeChecks/setGlobalDevModeChecks.ts", "../../.pnpm/reselect@5.1.1/node_modules/reselect/src/utils.ts", "../../.pnpm/reselect@5.1.1/node_modules/reselect/src/autotrackMemoize/autotracking.ts", "../../.pnpm/reselect@5.1.1/node_modules/reselect/src/autotrackMemoize/tracking.ts", "../../.pnpm/reselect@5.1.1/node_modules/reselect/src/autotrackMemoize/proxy.ts", "../../.pnpm/reselect@5.1.1/node_modules/reselect/src/lruMemoize.ts", "../../.pnpm/reselect@5.1.1/node_modules/reselect/src/autotrackMemoize/autotrackMemoize.ts", "../../.pnpm/reselect@5.1.1/node_modules/reselect/src/weakMapMemoize.ts", "../../.pnpm/reselect@5.1.1/node_modules/reselect/src/createSelectorCreator.ts", "../../.pnpm/reselect@5.1.1/node_modules/reselect/src/createStructuredSelector.ts", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/legendSelectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/context/legendPayloadContext.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/useElementOffset.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/context/chartLayoutContext.js", "../../.pnpm/redux@5.0.1/node_modules/redux/src/utils/formatProdErrorMessage.ts", "../../.pnpm/redux@5.0.1/node_modules/redux/src/utils/symbol-observable.ts", "../../.pnpm/redux@5.0.1/node_modules/redux/src/utils/actionTypes.ts", "../../.pnpm/redux@5.0.1/node_modules/redux/src/utils/isPlainObject.ts", "../../.pnpm/redux@5.0.1/node_modules/redux/src/utils/kindOf.ts", "../../.pnpm/redux@5.0.1/node_modules/redux/src/createStore.ts", "../../.pnpm/redux@5.0.1/node_modules/redux/src/utils/warning.ts", "../../.pnpm/redux@5.0.1/node_modules/redux/src/combineReducers.ts", "../../.pnpm/redux@5.0.1/node_modules/redux/src/bindActionCreators.ts", "../../.pnpm/redux@5.0.1/node_modules/redux/src/compose.ts", "../../.pnpm/redux@5.0.1/node_modules/redux/src/applyMiddleware.ts", "../../.pnpm/redux@5.0.1/node_modules/redux/src/utils/isAction.ts", "../../.pnpm/immer@11.1.4/node_modules/immer/src/utils/env.ts", "../../.pnpm/immer@11.1.4/node_modules/immer/src/utils/errors.ts", "../../.pnpm/immer@11.1.4/node_modules/immer/src/utils/common.ts", "../../.pnpm/immer@11.1.4/node_modules/immer/src/utils/plugins.ts", "../../.pnpm/immer@11.1.4/node_modules/immer/src/core/scope.ts", "../../.pnpm/immer@11.1.4/node_modules/immer/src/core/finalize.ts", "../../.pnpm/immer@11.1.4/node_modules/immer/src/core/proxy.ts", "../../.pnpm/immer@11.1.4/node_modules/immer/src/core/immerClass.ts", "../../.pnpm/immer@11.1.4/node_modules/immer/src/core/current.ts", "../../.pnpm/immer@11.1.4/node_modules/immer/src/plugins/patches.ts", "../../.pnpm/immer@11.1.4/node_modules/immer/src/plugins/mapset.ts", "../../.pnpm/immer@11.1.4/node_modules/immer/src/plugins/arrayMethods.ts", "../../.pnpm/immer@11.1.4/node_modules/immer/src/immer.ts", "../../.pnpm/redux-thunk@3.1.0_redux@5.0.1/node_modules/redux-thunk/dist/redux-thunk.mjs", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/index.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/immerImports.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/reselectImports.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/createDraftSafeSelector.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/reduxImports.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/tsHelpers.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/createAction.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/actionCreatorInvariantMiddleware.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/utils.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/immutableStateInvariantMiddleware.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/serializableStateInvariantMiddleware.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/autoBatchEnhancer.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/getDefaultEnhancers.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/configureStore.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/mapBuilders.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/createReducer.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/matchers.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/nanoid.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/createAsyncThunk.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/createSlice.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/entities/entity_state.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/entities/state_selectors.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/entities/state_adapter.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/entities/utils.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/entities/unsorted_state_adapter.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/entities/sorted_state_adapter.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/entities/create_adapter.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/listenerMiddleware/exceptions.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/listenerMiddleware/utils.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/listenerMiddleware/task.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/dynamicMiddleware/index.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/combineSlices.ts", "../../.pnpm/@reduxjs+toolkit@2.11.2_react-redux@9.2.0_react@19.2.4/node_modules/@reduxjs/toolkit/src/formatProdErrorMessage.ts", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/layoutSlice.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/ChartUtils.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/getSliced.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/isWellBehavedNumber.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/containerSelectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/selectAllAxes.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/Constants.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/selectChartOffsetInternal.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/context/PanoramaContext.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/brushSelectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/component/ResponsiveContainer.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/LogUtils.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/component/responsiveContainerUtils.js", "../../.pnpm/immer@10.2.0/node_modules/immer/src/utils/env.ts", "../../.pnpm/immer@10.2.0/node_modules/immer/src/utils/errors.ts", "../../.pnpm/immer@10.2.0/node_modules/immer/src/utils/common.ts", "../../.pnpm/immer@10.2.0/node_modules/immer/src/utils/plugins.ts", "../../.pnpm/immer@10.2.0/node_modules/immer/src/core/scope.ts", "../../.pnpm/immer@10.2.0/node_modules/immer/src/core/finalize.ts", "../../.pnpm/immer@10.2.0/node_modules/immer/src/core/proxy.ts", "../../.pnpm/immer@10.2.0/node_modules/immer/src/core/immerClass.ts", "../../.pnpm/immer@10.2.0/node_modules/immer/src/core/current.ts", "../../.pnpm/immer@10.2.0/node_modules/immer/src/plugins/patches.ts", "../../.pnpm/immer@10.2.0/node_modules/immer/src/plugins/mapset.ts", "../../.pnpm/immer@10.2.0/node_modules/immer/src/immer.ts", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/legendSlice.js", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/utils/react.ts", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/utils/react-is.ts", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/utils/warning.ts", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/connect/verifySubselectors.ts", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/connect/selectorFactory.ts", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/utils/bindActionCreators.ts", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/utils/isPlainObject.ts", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/utils/verifyPlainObject.ts", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/connect/wrapMapToProps.ts", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/connect/invalidArgFactory.ts", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/connect/mapDispatchToProps.ts", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/connect/mapStateToProps.ts", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/connect/mergeProps.ts", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/utils/batch.ts", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/utils/Subscription.ts", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/utils/useIsomorphicLayoutEffect.ts", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/utils/shallowEqual.ts", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/utils/hoistStatics.ts", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/components/Context.ts", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/components/connect.tsx", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/components/Provider.tsx", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/hooks/useReduxContext.ts", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/hooks/useStore.ts", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/hooks/useDispatch.ts", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/hooks/useSelector.ts", "../../.pnpm/react-redux@9.2.0_react@19.2.4_redux@5.0.1/node_modules/react-redux/src/exports.ts", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/propsAreEqual.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/component/Tooltip.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/component/DefaultTooltipContent.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/component/TooltipBoundingBox.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/tooltip/translate.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/usePrefersReducedMotion.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/Global.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/context/accessibilityContext.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/component/Cursor.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/shape/Curve.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/shape/Cross.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/cursor/getCursorRectangle.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/shape/Rectangle.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/animation/JavascriptAnimate.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/animation/util.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/animation/configUpdate.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/animation/easing.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/animation/useAnimationManager.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/animation/AnimationManager.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/animation/timeoutController.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/animation/createDefaultAnimationManager.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/useAnimationId.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/PolarUtils.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/shape/Sector.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/cursor/getCursorPoints.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/axisSelectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/dataSelectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js", "../../.pnpm/decimal.js-light@2.5.1/node_modules/decimal.js-light/decimal.mjs", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/scale/util/arithmetic.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/scale/getNiceTickValues.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/rootPropsSelectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/zIndex/DefaultZIndexes.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/polar/defaultPolarAngleAxisProps.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/polar/defaultPolarRadiusAxisProps.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/combiners/combineAxisRangeWithReverse.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/getAxisTypeBasedOnLayout.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/polarAxisSelectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/pickAxisType.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/pickAxisId.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/stacks/getStackSeriesIdentifier.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/combiners/combineDisplayedStackedData.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/types/StackedGraphicalItem.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/numberDomainEqualityCheck.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/arrayEqualityCheck.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/selectTooltipAxisType.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/selectTooltipAxisId.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/scale/RechartsScale.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/combiners/combineCheckedDomain.js", "../../.pnpm/victory-vendor@37.3.6/node_modules/victory-vendor/es/d3-scale.js", "../../.pnpm/d3-array@3.2.4/node_modules/d3-array/src/ascending.js", "../../.pnpm/d3-array@3.2.4/node_modules/d3-array/src/descending.js", "../../.pnpm/d3-array@3.2.4/node_modules/d3-array/src/bisector.js", "../../.pnpm/d3-array@3.2.4/node_modules/d3-array/src/number.js", "../../.pnpm/d3-array@3.2.4/node_modules/d3-array/src/bisect.js", "../../.pnpm/d3-array@3.2.4/node_modules/d3-array/src/blur.js", "../../.pnpm/internmap@2.0.3/node_modules/internmap/src/index.js", "../../.pnpm/d3-array@3.2.4/node_modules/d3-array/src/sort.js", "../../.pnpm/d3-array@3.2.4/node_modules/d3-array/src/array.js", "../../.pnpm/d3-array@3.2.4/node_modules/d3-array/src/ticks.js", "../../.pnpm/d3-array@3.2.4/node_modules/d3-array/src/max.js", "../../.pnpm/d3-array@3.2.4/node_modules/d3-array/src/min.js", "../../.pnpm/d3-array@3.2.4/node_modules/d3-array/src/quickselect.js", "../../.pnpm/d3-array@3.2.4/node_modules/d3-array/src/quantile.js", "../../.pnpm/d3-array@3.2.4/node_modules/d3-array/src/range.js", "../../.pnpm/d3-array@3.2.4/node_modules/d3-array/src/shuffle.js", "../../.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/init.js", "../../.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/ordinal.js", "../../.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/band.js", "../../.pnpm/d3-color@3.1.0/node_modules/d3-color/src/define.js", "../../.pnpm/d3-color@3.1.0/node_modules/d3-color/src/color.js", "../../.pnpm/d3-color@3.1.0/node_modules/d3-color/src/math.js", "../../.pnpm/d3-color@3.1.0/node_modules/d3-color/src/lab.js", "../../.pnpm/d3-color@3.1.0/node_modules/d3-color/src/cubehelix.js", "../../.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/basis.js", "../../.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/basisClosed.js", "../../.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/constant.js", "../../.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/color.js", "../../.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/rgb.js", "../../.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/numberArray.js", "../../.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/array.js", "../../.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/date.js", "../../.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/number.js", "../../.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/object.js", "../../.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/string.js", "../../.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/value.js", "../../.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/round.js", "../../.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/decompose.js", "../../.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/parse.js", "../../.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/index.js", "../../.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/zoom.js", "../../.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/hsl.js", "../../.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/hcl.js", "../../.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/cubehelix.js", "../../.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/piecewise.js", "../../.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/constant.js", "../../.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/number.js", "../../.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/continuous.js", "../../.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatDecimal.js", "../../.pnpm/d3-format@3.1.2/node_modules/d3-format/src/exponent.js", "../../.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatGroup.js", "../../.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatNumerals.js", "../../.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatSpecifier.js", "../../.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatTrim.js", "../../.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatPrefixAuto.js", "../../.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatRounded.js", "../../.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatTypes.js", "../../.pnpm/d3-format@3.1.2/node_modules/d3-format/src/identity.js", "../../.pnpm/d3-format@3.1.2/node_modules/d3-format/src/locale.js", "../../.pnpm/d3-format@3.1.2/node_modules/d3-format/src/defaultLocale.js", "../../.pnpm/d3-format@3.1.2/node_modules/d3-format/src/precisionFixed.js", "../../.pnpm/d3-format@3.1.2/node_modules/d3-format/src/precisionPrefix.js", "../../.pnpm/d3-format@3.1.2/node_modules/d3-format/src/precisionRound.js", "../../.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/tickFormat.js", "../../.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/linear.js", "../../.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/identity.js", "../../.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/nice.js", "../../.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/log.js", "../../.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/symlog.js", "../../.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/pow.js", "../../.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/radial.js", "../../.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/quantile.js", "../../.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/quantize.js", "../../.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/threshold.js", "../../.pnpm/d3-time@3.1.0/node_modules/d3-time/src/interval.js", "../../.pnpm/d3-time@3.1.0/node_modules/d3-time/src/millisecond.js", "../../.pnpm/d3-time@3.1.0/node_modules/d3-time/src/duration.js", "../../.pnpm/d3-time@3.1.0/node_modules/d3-time/src/second.js", "../../.pnpm/d3-time@3.1.0/node_modules/d3-time/src/minute.js", "../../.pnpm/d3-time@3.1.0/node_modules/d3-time/src/hour.js", "../../.pnpm/d3-time@3.1.0/node_modules/d3-time/src/day.js", "../../.pnpm/d3-time@3.1.0/node_modules/d3-time/src/week.js", "../../.pnpm/d3-time@3.1.0/node_modules/d3-time/src/month.js", "../../.pnpm/d3-time@3.1.0/node_modules/d3-time/src/year.js", "../../.pnpm/d3-time@3.1.0/node_modules/d3-time/src/ticks.js", "../../.pnpm/d3-time-format@4.1.0/node_modules/d3-time-format/src/locale.js", "../../.pnpm/d3-time-format@4.1.0/node_modules/d3-time-format/src/defaultLocale.js", "../../.pnpm/d3-time-format@4.1.0/node_modules/d3-time-format/src/isoFormat.js", "../../.pnpm/d3-time-format@4.1.0/node_modules/d3-time-format/src/isoParse.js", "../../.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/time.js", "../../.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/utcTime.js", "../../.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/sequential.js", "../../.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/sequentialQuantile.js", "../../.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/diverging.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/combiners/combineConfiguredScale.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/combiners/combineRealScaleType.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/scale/createCategoricalInverse.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/combiners/combineInverseScaleFunction.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/selectTooltipEventType.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/combiners/combineActiveLabel.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/selectTooltipSettings.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/tooltipSlice.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/combiners/combineTooltipInteractionState.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/combiners/combineActiveTooltipIndex.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/combiners/combineCoordinateForDefaultIndex.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/combiners/combineTooltipPayloadConfigurations.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/selectTooltipPayloadSearcher.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/selectTooltipState.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/combiners/combineTooltipPayload.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/tooltipSelectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/context/useTooltipAxis.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/selectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/getActiveCoordinate.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/zIndex/ZIndexLayer.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/zIndex/zIndexSelectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/zIndexSlice.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/context/tooltipPortalContext.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/synchronisation/useChartSynchronisation.js", "../../.pnpm/eventemitter3@5.0.4/node_modules/eventemitter3/index.mjs", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/Events.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/optionsSlice.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/synchronisation/syncSelectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/chartDataSlice.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/component/Cell.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/component/Text.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/LRUCache.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/DOMUtils.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/ReduceCSSCalc.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/component/Label.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/getCartesianPosition.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/component/LabelList.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/component/Customized.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/shape/Polygon.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/shape/Dot.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/polar/PolarGrid.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/polarSelectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/polarScaleSelectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/polarGridSelectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/polar/PolarRadiusAxis.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/polarAxisSlice.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/getClassNameFromUnknown.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/polar/PolarAngleAxis.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/polar/Pie.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/pieSelectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/ReactUtils.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/ActiveShapeUtils.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/shape/Trapezoid.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/context/tooltipContext.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/SetTooltipEntrySettings.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/SetLegendPayload.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/context/RegisterGraphicalItemId.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/useId.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/useUniqueId.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/SetGraphicalItem.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/graphicalItemsSlice.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/polar/Radar.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/component/Dots.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/component/ActivePoints.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/cartesianAxisSlice.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/selectChartOffset.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/selectPlotArea.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/hooks.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/radarSelectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/polar/RadialBar.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/RadialBarUtils.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/combiners/combineBarSizeList.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/combiners/combineAllBarPositions.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/combiners/combineStackedData.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/combiners/combineBarPosition.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/radialBarSelectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/zIndex/getZIndexFromUnknown.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/Brush.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/CssPrefixUtils.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/context/chartDataContext.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/context/brushUpdateContext.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/brushSlice.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/ReferenceLine.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/CartesianUtils.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/referenceElementsSlice.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/container/ClipPathProvider.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/scale/CartesianScaleHelper.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/ReferenceDot.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/ReferenceArea.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/CartesianAxis.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/getEveryNth.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/TickUtils.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/getEquidistantTicks.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/getTicks.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/YAxisUtils.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/renderedTicksSlice.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/CartesianGrid.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/Line.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/context/ErrorBarContext.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/errorBarSlice.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/GraphicalItemClipPath.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/lineSelectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/getRadiusAndStrokeWidthFromDot.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/Area.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/graphicalItemSelectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/areaSelectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/Bar.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/BarUtils.js", "../../.pnpm/tiny-invariant@1.3.3/node_modules/tiny-invariant/dist/esm/tiny-invariant.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/barSelectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/BarStack.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/barStackSelectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/Scatter.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/ScatterUtils.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/scatterSelectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/XAxis.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/axisPropsAreEqual.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/YAxis.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/ZAxis.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/ErrorBar.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/animation/CSSTransitionAnimate.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/chart/LineChart.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/chart/CartesianChart.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/RechartsStoreProvider.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/selectActivePropsFromChartPointer.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/getRelativeCoordinate.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/mouseEventsMiddleware.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/reduxDevtoolsJsonStringifyReplacer.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/rootPropsSlice.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/polarOptionsSlice.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/keyboardEventsMiddleware.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/createEventProxy.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/externalEventsMiddleware.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/touchSelectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/touchEventsMiddleware.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/eventSettingsSlice.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/store.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/ReportMainChartProps.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/ReportChartProps.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/ReportEventSettings.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/chart/CategoricalChart.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/container/RootSurface.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/zIndex/ZIndexPortal.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/chart/RechartsWrapper.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/useReportScale.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/chart/BarChart.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/chart/PieChart.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/chart/PolarChart.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/ReportPolarOptions.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/chart/Treemap.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/chart/Sankey.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/chart/RadarChart.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/chart/ScatterChart.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/chart/AreaChart.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/chart/RadialBarChart.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/chart/ComposedChart.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/chart/SunburstChart.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/cartesian/Funnel.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/FunnelUtils.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/state/selectors/funnelSelectors.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/chart/FunnelChart.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/createCartesianCharts.js", "../../.pnpm/recharts@3.8.0_react-dom@19.2.4_react-is@19.2.4_react@19.2.4_redux@5.0.1/node_modules/recharts/es6/util/createPolarCharts.js"],
"sourcesContent": ["'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isUnsafeProperty(key) {\n return key === '__proto__';\n}\n\nexports.isUnsafeProperty = isUnsafeProperty;\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", "'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", "'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", "'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", "'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/object/get.js').get;\n", "'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, i, arr);\n if (!map.has(key)) {\n map.set(key, item);\n }\n }\n return Array.from(map.values());\n}\n\nexports.uniqBy = uniqBy;\n", "'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction ary(func, n) {\n return function (...args) {\n return func.apply(this, args.slice(0, n));\n };\n}\n\nexports.ary = ary;\n", "'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction identity(x) {\n return x;\n}\n\nexports.identity = identity;\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\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\nfunction isObjectLike(value) {\n return typeof value === 'object' && value !== null;\n}\n\nexports.isObjectLike = isObjectLike;\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 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", "'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", "'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", "'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isEqualsSameValueZero(value, other) {\n return value === other || (Number.isNaN(value) && Number.isNaN(other));\n}\n\nexports.isEqualsSameValueZero = isEqualsSameValueZero;\n", "'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isObject = require('./isObject.js');\nconst isPrimitive = require('../../predicate/isPrimitive.js');\nconst isEqualsSameValueZero = require('../../_internal/isEqualsSameValueZero.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 isEqualsSameValueZero.isEqualsSameValueZero(target, source);\n }\n default: {\n if (!isObject.isObject(target)) {\n return isEqualsSameValueZero.isEqualsSameValueZero(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 || isPrimitive.isPrimitive(target)) {\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 isMatchWith = require('./isMatchWith.js');\n\nfunction isMatch(target, source) {\n return isMatchWith.isMatchWith(target, source, () => undefined);\n}\n\nexports.isMatch = isMatch;\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", "'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", "'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", "'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 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 = structuredClone(valueToClone);\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 result.constructor = valueToClone.constructor;\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof Boolean) {\n const result = new Boolean(valueToClone.valueOf());\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof Number) {\n const result = new Number(valueToClone.valueOf());\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof String) {\n const result = new String(valueToClone.valueOf());\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (typeof valueToClone === 'object' && isCloneableObject(valueToClone)) {\n const result = Object.create(Object.getPrototypeOf(valueToClone));\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n return valueToClone;\n}\nfunction copyProperties(target, source, objectToClone = target, stack, cloneValue) {\n const keys = [...Object.keys(source), ...getSymbols.getSymbols(source)];\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const descriptor = Object.getOwnPropertyDescriptor(target, key);\n if (descriptor == null || descriptor.writable) {\n target[key] = cloneDeepWithImpl(source[key], key, objectToClone, stack, cloneValue);\n }\n }\n}\nfunction isCloneableObject(object) {\n switch (getTag.getTag(object)) {\n case tags.argumentsTag:\n case tags.arrayTag:\n case tags.arrayBufferTag:\n case tags.dataViewTag:\n case tags.booleanTag:\n case tags.dateTag:\n case tags.float32ArrayTag:\n case tags.float64ArrayTag:\n case tags.int8ArrayTag:\n case tags.int16ArrayTag:\n case tags.int32ArrayTag:\n case tags.mapTag:\n case tags.numberTag:\n case tags.objectTag:\n case tags.regexpTag:\n case tags.setTag:\n case tags.stringTag:\n case tags.symbolTag:\n case tags.uint8ArrayTag:\n case tags.uint8ClampedArrayTag:\n case tags.uint16ArrayTag:\n case tags.uint32ArrayTag: {\n return true;\n }\n default: {\n return false;\n }\n }\n}\n\nexports.cloneDeepWith = cloneDeepWith;\nexports.cloneDeepWithImpl = cloneDeepWithImpl;\nexports.copyProperties = copyProperties;\n", "'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\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 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", "'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst cloneDeepWith$1 = require('../../object/cloneDeepWith.js');\nconst getTag = require('../_internal/getTag.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 if (getTag.getTag(obj) === tags.objectTag && typeof obj.constructor !== 'function') {\n const result = {};\n stack.set(obj, result);\n cloneDeepWith$1.copyProperties(result, obj, object, stack);\n return result;\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", "'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\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", "'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", "'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 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", "'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", "'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst uniqBy$1 = require('../../array/uniqBy.js');\nconst ary = require('../../function/ary.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), ary.ary(iteratee.iteratee(iteratee$1), 1));\n}\n\nexports.uniqBy = uniqBy;\n", "module.exports = require('../dist/compat/array/uniqBy.js').uniqBy;\n", "/**\n * @license React\n * use-sync-external-store-shim.development.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\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n }\n function useSyncExternalStore$2(subscribe, getSnapshot) {\n didWarnOld18Alpha ||\n void 0 === React.startTransition ||\n ((didWarnOld18Alpha = !0),\n console.error(\n \"You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release.\"\n ));\n var value = getSnapshot();\n if (!didWarnUncachedGetSnapshot) {\n var cachedValue = getSnapshot();\n objectIs(value, cachedValue) ||\n (console.error(\n \"The result of getSnapshot should be cached to avoid an infinite loop\"\n ),\n (didWarnUncachedGetSnapshot = !0));\n }\n cachedValue = useState({\n inst: { value: value, getSnapshot: getSnapshot }\n });\n var inst = cachedValue[0].inst,\n forceUpdate = cachedValue[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 }\n function 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 }\n function useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var React = require(\"react\"),\n objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue,\n didWarnOld18Alpha = !1,\n didWarnUncachedGetSnapshot = !1,\n shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\n exports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\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", "/**\n * @license React\n * use-sync-external-store-shim/with-selector.development.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\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var React = require(\"react\"),\n shim = require(\"use-sync-external-store/shim\"),\n 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;\n exports.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))\n 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 \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\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", "'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", "'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", "'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", "'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", "'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 isIndex = require('./isIndex.js');\nconst isArrayLike = require('../predicate/isArrayLike.js');\nconst isObject = require('../predicate/isObject.js');\nconst isEqualsSameValueZero = require('../../_internal/isEqualsSameValueZero.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 isEqualsSameValueZero.isEqualsSameValueZero(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 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", "module.exports = require('../dist/compat/array/sortBy.js').sortBy;\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 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", "'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", "module.exports = require('../dist/compat/function/throttle.js').throttle;\n", "/**\n * @license React\n * use-sync-external-store-with-selector.development.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\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var React = require(\"react\"),\n 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;\n exports.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))\n 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 \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\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", "'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", "'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", "'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", "module.exports = require('../dist/compat/math/range.js').range;\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", "'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction maxBy(items, getValue) {\n if (items.length === 0) {\n return undefined;\n }\n let maxElement = items[0];\n let max = getValue(maxElement, 0, items);\n for (let i = 1; i < items.length; i++) {\n const element = items[i];\n const value = getValue(element, i, items);\n if (value > max) {\n max = value;\n maxElement = element;\n }\n }\n return maxElement;\n}\n\nexports.maxBy = maxBy;\n", "'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst maxBy$1 = require('../../array/maxBy.js');\nconst identity = require('../../function/identity.js');\nconst iteratee = require('../util/iteratee.js');\n\nfunction maxBy(items, iteratee$1) {\n if (items == null) {\n return undefined;\n }\n return maxBy$1.maxBy(Array.from(items), iteratee.iteratee(iteratee$1 ?? identity.identity));\n}\n\nexports.maxBy = maxBy;\n", "module.exports = require('../dist/compat/math/maxBy.js').maxBy;\n", "'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction minBy(items, getValue) {\n if (items.length === 0) {\n return undefined;\n }\n let minElement = items[0];\n let min = getValue(minElement, 0, items);\n for (let i = 1; i < items.length; i++) {\n const element = items[i];\n const value = getValue(element, i, items);\n if (value < min) {\n min = value;\n minElement = element;\n }\n }\n return minElement;\n}\n\nexports.minBy = minBy;\n", "'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst minBy$1 = require('../../array/minBy.js');\nconst identity = require('../../function/identity.js');\nconst iteratee = require('../util/iteratee.js');\n\nfunction minBy(items, iteratee$1) {\n if (items == null) {\n return undefined;\n }\n return minBy$1.minBy(Array.from(items), iteratee.iteratee(iteratee$1 ?? identity.identity));\n}\n\nexports.minBy = minBy;\n", "module.exports = require('../dist/compat/math/minBy.js').minBy;\n", "/**\n * @license React\n * react-is.development.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\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function typeOf(object) {\n if (\"object\" === typeof object && null !== object) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (((object = object.type), object)) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n case REACT_VIEW_TRANSITION_TYPE:\n return object;\n default:\n switch (((object = object && object.$$typeof), object)) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object;\n case REACT_CONSUMER_TYPE:\n return object;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n }\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_VIEW_TRANSITION_TYPE = Symbol.for(\"react.view_transition\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\n exports.ContextConsumer = REACT_CONSUMER_TYPE;\n exports.ContextProvider = REACT_CONTEXT_TYPE;\n exports.Element = REACT_ELEMENT_TYPE;\n exports.ForwardRef = REACT_FORWARD_REF_TYPE;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Lazy = REACT_LAZY_TYPE;\n exports.Memo = REACT_MEMO_TYPE;\n exports.Portal = REACT_PORTAL_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.SuspenseList = REACT_SUSPENSE_LIST_TYPE;\n exports.isContextConsumer = function (object) {\n return typeOf(object) === REACT_CONSUMER_TYPE;\n };\n exports.isContextProvider = function (object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n };\n exports.isElement = function (object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n };\n exports.isForwardRef = function (object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n };\n exports.isFragment = function (object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n };\n exports.isLazy = function (object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n };\n exports.isMemo = function (object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n };\n exports.isPortal = function (object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n };\n exports.isProfiler = function (object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n };\n exports.isStrictMode = function (object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n };\n exports.isSuspense = function (object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n };\n exports.isSuspenseList = function (object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n };\n exports.isValidElementType = function (type) {\n return \"string\" === typeof type ||\n \"function\" === typeof type ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n (\"object\" === typeof type &&\n null !== type &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE ||\n void 0 !== type.getModuleId))\n ? !0\n : !1;\n };\n exports.typeOf = typeOf;\n })();\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\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", "module.exports = require('../dist/compat/predicate/isPlainObject.js').isPlainObject;\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\nfunction toArray(value) {\n return Array.isArray(value) ? value : Array.from(value);\n}\n\nexports.toArray = toArray;\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", "module.exports = require('../dist/compat/array/last.js').last;\n", "'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isBuffer(x) {\n return typeof Buffer !== 'undefined' && Buffer.isBuffer(x);\n}\n\nexports.isBuffer = isBuffer;\n", "'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nfunction isPrototype(value) {\n const constructor = value?.constructor;\n const prototype = typeof constructor === 'function' ? constructor.prototype : Object.prototype;\n return value === prototype;\n}\n\nexports.isPrototype = isPrototype;\n", "'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isTypedArray$1 = require('../../predicate/isTypedArray.js');\n\nfunction isTypedArray(x) {\n return isTypedArray$1.isTypedArray(x);\n}\n\nexports.isTypedArray = isTypedArray;\n", "'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst toFinite = require('./toFinite.js');\n\nfunction toInteger(value) {\n const finite = toFinite.toFinite(value);\n const remainder = finite % 1;\n return remainder ? finite - remainder : finite;\n}\n\nexports.toInteger = toInteger;\n", "'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst toInteger = require('./toInteger.js');\n\nfunction times(n, getValue) {\n n = toInteger.toInteger(n);\n if (n < 1 || !Number.isSafeInteger(n)) {\n return [];\n }\n const result = new Array(n);\n for (let i = 0; i < n; i++) {\n result[i] = typeof getValue === 'function' ? getValue(i) : i;\n }\n return result;\n}\n\nexports.times = times;\n", "'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isBuffer = require('../../predicate/isBuffer.js');\nconst isPrototype = require('../_internal/isPrototype.js');\nconst isArrayLike = require('../predicate/isArrayLike.js');\nconst isTypedArray = require('../predicate/isTypedArray.js');\nconst times = require('../util/times.js');\n\nfunction keysIn(object) {\n if (object == null) {\n return [];\n }\n switch (typeof object) {\n case 'object':\n case 'function': {\n if (isArrayLike.isArrayLike(object)) {\n return arrayLikeKeysIn(object);\n }\n if (isPrototype.isPrototype(object)) {\n return prototypeKeysIn(object);\n }\n return keysInImpl(object);\n }\n default: {\n return keysInImpl(Object(object));\n }\n }\n}\nfunction keysInImpl(object) {\n const result = [];\n for (const key in object) {\n result.push(key);\n }\n return result;\n}\nfunction prototypeKeysIn(object) {\n const keys = keysInImpl(object);\n return keys.filter(key => key !== 'constructor');\n}\nfunction arrayLikeKeysIn(object) {\n const indices = times.times(object.length, index => `${index}`);\n const filteredKeys = new Set(indices);\n if (isBuffer.isBuffer(object)) {\n filteredKeys.add('offset');\n filteredKeys.add('parent');\n }\n if (isTypedArray.isTypedArray(object)) {\n filteredKeys.add('buffer');\n filteredKeys.add('byteLength');\n filteredKeys.add('byteOffset');\n }\n const inheritedKeys = keysInImpl(object).filter(key => !filteredKeys.has(key));\n if (Array.isArray(object)) {\n return [...indices, ...inheritedKeys];\n }\n return [...indices.filter(index => Object.hasOwn(object, index)), ...inheritedKeys];\n}\n\nexports.keysIn = keysIn;\n", "'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst get = require('./get.js');\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 unset(obj, path) {\n if (obj == null) {\n return true;\n }\n switch (typeof path) {\n case 'symbol':\n case 'number':\n case 'object': {\n if (Array.isArray(path)) {\n return unsetWithPath(obj, path);\n }\n if (typeof path === 'number') {\n path = toKey.toKey(path);\n }\n else if (typeof path === 'object') {\n if (Object.is(path?.valueOf(), -0)) {\n path = '-0';\n }\n else {\n path = String(path);\n }\n }\n if (isUnsafeProperty.isUnsafeProperty(path)) {\n return false;\n }\n if (obj?.[path] === undefined) {\n return true;\n }\n try {\n delete obj[path];\n return true;\n }\n catch {\n return false;\n }\n }\n case 'string': {\n if (obj?.[path] === undefined && isDeepKey.isDeepKey(path)) {\n return unsetWithPath(obj, toPath.toPath(path));\n }\n if (isUnsafeProperty.isUnsafeProperty(path)) {\n return false;\n }\n try {\n delete obj[path];\n return true;\n }\n catch {\n return false;\n }\n }\n }\n}\nfunction unsetWithPath(obj, path) {\n const parent = path.length === 1 ? obj : get.get(obj, path.slice(0, -1));\n const lastKey = path[path.length - 1];\n if (parent?.[lastKey] === undefined) {\n return true;\n }\n if (isUnsafeProperty.isUnsafeProperty(lastKey)) {\n return false;\n }\n try {\n delete parent[lastKey];\n return true;\n }\n catch {\n return false;\n }\n}\n\nexports.unset = unset;\n", "'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst getSymbols = require('./getSymbols.js');\n\nfunction getSymbolsIn(object) {\n const result = [];\n while (object) {\n result.push(...getSymbols.getSymbols(object));\n object = Object.getPrototypeOf(object);\n }\n return result;\n}\n\nexports.getSymbolsIn = getSymbolsIn;\n", "'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst isArrayLike = require('../predicate/isArrayLike.js');\n\nfunction flatten(value, depth = 1) {\n const result = [];\n const flooredDepth = Math.floor(depth);\n if (!isArrayLike.isArrayLike(value)) {\n return result;\n }\n const recursive = (arr, currentDepth) => {\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n if (currentDepth < flooredDepth &&\n (Array.isArray(item) ||\n Boolean(item?.[Symbol.isConcatSpreadable]) ||\n (item !== null && typeof item === 'object' && Object.prototype.toString.call(item) === '[object Arguments]'))) {\n if (Array.isArray(item)) {\n recursive(item, currentDepth + 1);\n }\n else {\n recursive(Array.from(item), currentDepth + 1);\n }\n }\n else {\n result.push(item);\n }\n }\n };\n recursive(Array.from(value), 0);\n return result;\n}\n\nexports.flatten = flatten;\n", "'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst cloneDeepWith = require('./cloneDeepWith.js');\nconst keysIn = require('./keysIn.js');\nconst unset = require('./unset.js');\nconst getSymbolsIn = require('../_internal/getSymbolsIn.js');\nconst isDeepKey = require('../_internal/isDeepKey.js');\nconst flatten = require('../array/flatten.js');\nconst isPlainObject = require('../predicate/isPlainObject.js');\n\nfunction omit(obj, ...keysArr) {\n if (obj == null) {\n return {};\n }\n keysArr = flatten.flatten(keysArr);\n const result = cloneInOmit(obj, keysArr);\n for (let i = 0; i < keysArr.length; i++) {\n let keys = keysArr[i];\n switch (typeof keys) {\n case 'object': {\n if (!Array.isArray(keys)) {\n keys = Array.from(keys);\n }\n for (let j = 0; j < keys.length; j++) {\n const key = keys[j];\n unset.unset(result, key);\n }\n break;\n }\n case 'string':\n case 'symbol':\n case 'number': {\n unset.unset(result, keys);\n break;\n }\n }\n }\n return result;\n}\nfunction cloneInOmit(obj, keys) {\n const hasDeepKey = keys.some(key => Array.isArray(key) || isDeepKey.isDeepKey(key));\n if (hasDeepKey) {\n return deepCloneInOmit(obj);\n }\n return shallowCloneInOmit(obj);\n}\nfunction shallowCloneInOmit(obj) {\n const result = {};\n const keysToCopy = [...keysIn.keysIn(obj), ...getSymbolsIn.getSymbolsIn(obj)];\n for (let i = 0; i < keysToCopy.length; i++) {\n const key = keysToCopy[i];\n result[key] = obj[key];\n }\n return result;\n}\nfunction deepCloneInOmit(obj) {\n const result = {};\n const keysToCopy = [...keysIn.keysIn(obj), ...getSymbolsIn.getSymbolsIn(obj)];\n for (let i = 0; i < keysToCopy.length; i++) {\n const key = keysToCopy[i];\n result[key] = cloneDeepWith.cloneDeepWith(obj[key], valueToClone => {\n if (isPlainObject.isPlainObject(valueToClone)) {\n return undefined;\n }\n return valueToClone;\n });\n }\n return result;\n}\n\nexports.omit = omit;\n", "module.exports = require('../dist/compat/object/omit.js').omit;\n", "'use strict';\n\nObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\nconst iteratee = require('../util/iteratee.js');\n\nfunction sumBy(array, iteratee$1) {\n if (!array || !array.length) {\n return 0;\n }\n if (iteratee$1 != null) {\n iteratee$1 = iteratee.iteratee(iteratee$1);\n }\n let result = undefined;\n for (let i = 0; i < array.length; i++) {\n const current = iteratee$1 ? iteratee$1(array[i]) : array[i];\n if (current !== undefined) {\n if (result === undefined) {\n result = current;\n }\n else {\n result += current;\n }\n }\n }\n return result;\n}\n\nexports.sumBy = sumBy;\n", "module.exports = require('../dist/compat/math/sumBy.js').sumBy;\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; }\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { clsx } from 'clsx';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\n/**\n * Renders an SVG element.\n *\n * All charts already include a Surface component, so you would not normally use this directly.\n *\n * @link https://developer.mozilla.org/en-US/docs/Web/SVG/Element/svg\n */\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});", "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;", "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 result = {};\n // for ... in loop is 10x faster than Object.entries + filter + Object.fromEntries in Chrome\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n if (isSvgElementPropKey(key) || isDataAttribute(key) || isEventKey(key)) {\n result[key] = obj[key];\n }\n }\n }\n return result;\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}", "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}", "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'];\nvar SVGElementPropKeySet = new Set(SVGElementPropKeys);\nexport function isSvgElementPropKey(key) {\n if (typeof key !== 'string') {\n return false;\n }\n return SVGElementPropKeySet.has(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 if (typeof obj !== 'object' || obj === null) {\n return {};\n }\n var result = {};\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n if (isSvgElementPropKey(key) || isDataAttribute(key)) {\n result[key] = obj[key];\n }\n }\n }\n return result;\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}", "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';\n/**\n * Creates an SVG group element to group other SVG elements.\n *\n * Useful if you want to apply transformations or styles to a set of elements\n * without affecting other elements in the SVG.\n *\n * @link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/g\n */\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});", "var _excluded = [\"contextPayload\"];\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 { useEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useLegendPortal } from '../context/legendPortalContext';\nimport { DefaultLegendContent } from './DefaultLegendContent';\nimport { getUniqPayload } from '../util/payload/getUniqPayload';\nimport { useLegendPayload } from '../context/legendPayloadContext';\nimport { useElementOffset } from '../util/useElementOffset';\nimport { useChartHeight, useChartWidth, useMargin } from '../context/chartLayoutContext';\nimport { setLegendSettings, setLegendSize } from '../state/legendSlice';\nimport { useAppDispatch } from '../state/hooks';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { propsAreEqual } from '../util/propsAreEqual';\nfunction defaultUniqBy(entry) {\n return entry.value;\n}\nfunction LegendContent(props) {\n var {\n contextPayload\n } = props,\n otherProps = _objectWithoutProperties(props, _excluded);\n var finalPayload = getUniqPayload(contextPayload, props.payloadUniqBy, defaultUniqBy);\n var contentProps = _objectSpread(_objectSpread({}, otherProps), {}, {\n payload: finalPayload\n });\n if (/*#__PURE__*/React.isValidElement(props.content)) {\n return /*#__PURE__*/React.cloneElement(props.content, contentProps);\n }\n if (typeof props.content === 'function') {\n return /*#__PURE__*/React.createElement(props.content, contentProps);\n }\n return /*#__PURE__*/React.createElement(DefaultLegendContent, contentProps);\n}\nfunction getDefaultPosition(style, props, margin, chartWidth, chartHeight, box) {\n var {\n layout,\n align,\n verticalAlign\n } = props;\n var hPos, vPos;\n if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {\n if (align === 'center' && layout === 'vertical') {\n hPos = {\n left: ((chartWidth || 0) - box.width) / 2\n };\n } else {\n hPos = align === 'right' ? {\n right: margin && margin.right || 0\n } : {\n left: margin && margin.left || 0\n };\n }\n }\n if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {\n if (verticalAlign === 'middle') {\n vPos = {\n top: ((chartHeight || 0) - box.height) / 2\n };\n } else {\n vPos = verticalAlign === 'bottom' ? {\n bottom: margin && margin.bottom || 0\n } : {\n top: margin && margin.top || 0\n };\n }\n }\n return _objectSpread(_objectSpread({}, hPos), vPos);\n}\nfunction LegendSettingsDispatcher(props) {\n var dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(setLegendSettings(props));\n }, [dispatch, props]);\n return null;\n}\nfunction LegendSizeDispatcher(props) {\n var dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(setLegendSize(props));\n return () => {\n dispatch(setLegendSize({\n width: 0,\n height: 0\n }));\n };\n }, [dispatch, props]);\n return null;\n}\nfunction getWidthOrHeight(layout, height, width, maxWidth) {\n if (layout === 'vertical' && height != null) {\n return {\n height\n };\n }\n if (layout === 'horizontal') {\n return {\n width: width || maxWidth\n };\n }\n return null;\n}\nexport var legendDefaultProps = {\n align: 'center',\n iconSize: 14,\n inactiveColor: '#ccc',\n itemSorter: 'value',\n layout: 'horizontal',\n verticalAlign: 'bottom'\n};\n\n/**\n * @consumes CartesianChartContext\n * @consumes PolarChartContext\n */\nfunction LegendImpl(outsideProps) {\n var props = resolveDefaultProps(outsideProps, legendDefaultProps);\n var contextPayload = useLegendPayload();\n var legendPortalFromContext = useLegendPortal();\n var margin = useMargin();\n var {\n width: widthFromProps,\n height: heightFromProps,\n wrapperStyle,\n portal: portalFromProps\n } = props;\n // The contextPayload is not used directly inside the hook, but we need the onBBoxUpdate call\n // when the payload changes, therefore it's here as a dependency.\n var [lastBoundingBox, updateBoundingBox] = useElementOffset([contextPayload]);\n var chartWidth = useChartWidth();\n var chartHeight = useChartHeight();\n if (chartWidth == null || chartHeight == null) {\n return null;\n }\n var maxWidth = chartWidth - ((margin === null || margin === void 0 ? void 0 : margin.left) || 0) - ((margin === null || margin === void 0 ? void 0 : margin.right) || 0);\n var widthOrHeight = getWidthOrHeight(props.layout, heightFromProps, widthFromProps, maxWidth);\n // if the user supplies their own portal, only use their defined wrapper styles\n var outerStyle = portalFromProps ? wrapperStyle : _objectSpread(_objectSpread({\n position: 'absolute',\n width: (widthOrHeight === null || widthOrHeight === void 0 ? void 0 : widthOrHeight.width) || widthFromProps || 'auto',\n height: (widthOrHeight === null || widthOrHeight === void 0 ? void 0 : widthOrHeight.height) || heightFromProps || 'auto'\n }, getDefaultPosition(wrapperStyle, props, margin, chartWidth, chartHeight, lastBoundingBox)), wrapperStyle);\n var legendPortal = portalFromProps !== null && portalFromProps !== void 0 ? portalFromProps : legendPortalFromContext;\n if (legendPortal == null || contextPayload == null) {\n return null;\n }\n var legendElement = /*#__PURE__*/React.createElement(\"div\", {\n className: \"recharts-legend-wrapper\",\n style: outerStyle,\n ref: updateBoundingBox\n }, /*#__PURE__*/React.createElement(LegendSettingsDispatcher, {\n layout: props.layout,\n align: props.align,\n verticalAlign: props.verticalAlign,\n itemSorter: props.itemSorter\n }), !portalFromProps && /*#__PURE__*/React.createElement(LegendSizeDispatcher, {\n width: lastBoundingBox.width,\n height: lastBoundingBox.height\n }), /*#__PURE__*/React.createElement(LegendContent, _extends({}, props, widthOrHeight, {\n margin: margin,\n chartWidth: chartWidth,\n chartHeight: chartHeight,\n contextPayload: contextPayload\n })));\n return /*#__PURE__*/createPortal(legendElement, legendPortal);\n}\nexport var Legend = /*#__PURE__*/React.memo(LegendImpl, propsAreEqual);\nLegend.displayName = 'Legend';", "import { createContext, useContext } from 'react';\nexport var LegendPortalContext = /*#__PURE__*/createContext(null);\nexport var useLegendPortal = () => useContext(LegendPortalContext);", "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 { clsx } from 'clsx';\nimport { Surface } from '../container/Surface';\nimport { Symbols } from '../shape/Symbols';\nimport { adaptEventsOfChild } from '../util/types';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nvar SIZE = 32;\nexport var defaultLegendContentDefaultProps = {\n align: 'center',\n iconSize: 14,\n inactiveColor: '#ccc',\n layout: 'horizontal',\n verticalAlign: 'middle',\n labelStyle: {}\n};\nfunction getStrokeDasharray(input) {\n if (typeof input === 'object' && input !== null && 'strokeDasharray' in input) {\n return String(input.strokeDasharray);\n }\n return undefined;\n}\nfunction Icon(_ref) {\n var {\n data,\n iconType,\n inactiveColor\n } = _ref;\n var halfSize = SIZE / 2;\n var sixthSize = SIZE / 6;\n var thirdSize = SIZE / 3;\n var color = data.inactive ? inactiveColor : data.color;\n var preferredIcon = iconType !== null && iconType !== void 0 ? iconType : data.type;\n if (preferredIcon === 'none') {\n return null;\n }\n if (preferredIcon === 'plainline') {\n return /*#__PURE__*/React.createElement(\"line\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n strokeDasharray: getStrokeDasharray(data.payload),\n x1: 0,\n y1: halfSize,\n x2: SIZE,\n y2: halfSize,\n className: \"recharts-legend-icon\"\n });\n }\n if (preferredIcon === 'line') {\n return /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n d: \"M0,\".concat(halfSize, \"h\").concat(thirdSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n H\").concat(SIZE, \"M\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(thirdSize, \",\").concat(halfSize),\n className: \"recharts-legend-icon\"\n });\n }\n if (preferredIcon === 'rect') {\n return /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"none\",\n fill: color,\n d: \"M0,\".concat(SIZE / 8, \"h\").concat(SIZE, \"v\").concat(SIZE * 3 / 4, \"h\").concat(-SIZE, \"z\"),\n className: \"recharts-legend-icon\"\n });\n }\n if (/*#__PURE__*/React.isValidElement(data.legendIcon)) {\n var iconProps = _objectSpread({}, data);\n delete iconProps.legendIcon;\n return /*#__PURE__*/React.cloneElement(data.legendIcon, iconProps);\n }\n return /*#__PURE__*/React.createElement(Symbols, {\n fill: color,\n cx: halfSize,\n cy: halfSize,\n size: SIZE,\n sizeType: \"diameter\",\n type: preferredIcon\n });\n}\nfunction Items(props) {\n var {\n payload,\n iconSize,\n layout,\n formatter,\n inactiveColor,\n iconType,\n labelStyle\n } = props;\n var viewBox = {\n x: 0,\n y: 0,\n width: SIZE,\n height: SIZE\n };\n var itemStyle = {\n display: layout === 'horizontal' ? 'inline-block' : 'block',\n marginRight: 10\n };\n var svgStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n marginRight: 4\n };\n return payload.map((entry, i) => {\n var finalFormatter = entry.formatter || formatter;\n var className = clsx({\n 'recharts-legend-item': true,\n [\"legend-item-\".concat(i)]: true,\n inactive: entry.inactive\n });\n if (entry.type === 'none') {\n return null;\n }\n var finalLabelStyle = typeof labelStyle === 'object' ? _objectSpread({}, labelStyle) : {};\n finalLabelStyle.color = entry.inactive ? inactiveColor : finalLabelStyle.color || entry.color;\n var finalValue = finalFormatter ? finalFormatter(entry.value, entry, i) : entry.value;\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n className: className,\n style: itemStyle,\n key: \"legend-item-\".concat(i)\n }, adaptEventsOfChild(props, entry, i)), /*#__PURE__*/React.createElement(Surface, {\n width: iconSize,\n height: iconSize,\n viewBox: viewBox,\n style: svgStyle,\n \"aria-label\": \"\".concat(finalValue, \" legend icon\")\n }, /*#__PURE__*/React.createElement(Icon, {\n data: entry,\n iconType: iconType,\n inactiveColor: inactiveColor\n })), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-legend-item-text\",\n style: finalLabelStyle\n }, finalValue));\n });\n}\n\n/**\n * This component is by default rendered inside the {@link Legend} component. You would not use it directly.\n *\n * You can use this component to customize the content of the legend,\n * or you can provide your own completely independent content.\n */\nexport var DefaultLegendContent = outsideProps => {\n var props = resolveDefaultProps(outsideProps, defaultLegendContentDefaultProps);\n var {\n payload,\n layout,\n align\n } = props;\n if (!payload || !payload.length) {\n return null;\n }\n var finalStyle = {\n padding: 0,\n margin: 0,\n textAlign: layout === 'horizontal' ? align : 'left'\n };\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-default-legend\",\n style: finalStyle\n }, /*#__PURE__*/React.createElement(Items, _extends({}, props, {\n payload: payload\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};\n\n/**\n * Renders a symbol from a set of predefined shapes.\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;", "export default function(x) {\n return function constant() {\n return x;\n };\n}\n", "export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n", "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", "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", "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", "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", "import curveLinear from \"./linear.js\";\n\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nexport default function curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\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 {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 {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 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", "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 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", "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 {Basis} from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n", "export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.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 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, 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; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n", "import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n", "import {point} from \"./cardinal.js\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.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 = this._x2 =\n this._y0 = this._y1 = this._y2 = 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; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n", "import {epsilon} from \"../math.js\";\nimport {Cardinal} from \"./cardinal.js\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.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 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); 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\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: 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; // falls through\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n", "import {CardinalClosed} from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n", "import {CardinalOpen} from \"./cardinalOpen.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.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 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\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\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\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 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 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", "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", "import get from 'es-toolkit/compat/get';\nimport { round } from './round';\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[String(ary[i])]) {\n cache[String(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 round(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 var _data$i, _data$i2;\n xcurrent = ((_data$i = data[i]) === null || _data$i === void 0 ? void 0 : _data$i.cx) || 0;\n ycurrent = ((_data$i2 = data[i]) === null || _data$i2 === void 0 ? void 0 : _data$i2.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() {}", "// if you go lower than 3, wild wild things happen during rendering\nvar defaultRoundPrecision = 4;\nexport function round(num) {\n var roundPrecision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultRoundPrecision;\n var factor = 10 ** roundPrecision;\n var rounded = Math.round(num * factor) / factor;\n if (Object.is(rounded, -0)) {\n return 0;\n }\n return rounded;\n}\n\n/**\n * This function will accept a string template literal and for each\n * variable placeholder, it will round the value to avoid long float numbers in\n * the SVG path which might cause rendering issues in some browsers.\n */\nexport function roundTemplateLiteral(strings) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n return strings.reduce((result, string, i) => {\n var value = values[i - 1];\n if (typeof value === 'string') {\n return result + value + string;\n }\n if (value !== undefined) {\n return result + round(value) + string;\n }\n return result + string;\n }, '');\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 * @see {@link https://d3js.org/d3-shape/stack#stack-offsets}\n * (note that the `diverging` offset in d3 is named `sign` in recharts)\n *\n * @inline\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 * The type of axis.\n *\n * `category`: Treats data as distinct values.\n * Each value is in the same distance from its neighbors, regardless of their actual numeric difference.\n *\n * `number`: Treats data as continuous range.\n * Values that are numerically closer are placed closer together on the axis.\n *\n * `auto`: the type is inferred based on the chart layout.\n *\n * This is external type - users will provide this type in props.\n * Internally we will evaluate it to either 'category' or 'number' based on the layout,\n * before sending it to the store.\n *\n * @inline\n */\n\n/**\n * Individual axes are responsible for resolving the 'auto' type to either 'number' or 'category',\n * based on the chart layout and axis kind. Then they can start using this type.\n */\n\n/**\n * Extracts values from data objects.\n *\n * @inline\n */\n\n/**\n * @inline\n */\n\n/**\n * @inline\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 * String shortcuts for scale types.\n * In case none of these does what you want you can also provide your own scale function\n * @see {@link CustomScaleDefinition}\n */\n\n//\n// Event Handler Types -- Copied from @types/react/index.d.ts and adapted for Props.\n//\n\n/**\n * The type of easing function to use for animations\n *\n * @inline\n */\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/**\n * Props shared in all renderable axes - meaning the ones that are drawn on the chart,\n * can have ticks, axis line, etc.\n */\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 * 'equidistantPreserveEnd' selects a number N such that every nTh tick will be shown, ensuring the last tick is always visible.\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\n/**\n * @inline\n */\n\n/**\n * @inline\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) && typeof inputProps[key] === 'function') {\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 * @inline\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 * @inline\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 * Simplified version of the MouseEvent for SVG elements.\n *\n * Similar to MousePointer but uses SVGGraphicsElement properties instead of HTMLElement properties.\n * SVG elements use getBBox() to get the intrinsic size instead of offsetWidth/offsetHeight.\n */\n\n/**\n * Recharts accepts mouse events from both HTML and SVG elements.\n */\n\n/**\n * Coordinates relative to the top-left corner of the active element.\n * Also include scale which means that element that's scaled will return the same coordinates as element that's not scaled.\n */\n\n/**\n * Data provider means that this component accepts a `data` prop which is where you can input your data into the chart state.\n * The data is an array of objects, where each object represents a data point.\n *\n * DataPointType is the type of each data point object in the data array.\n *\n * The data is reused in multiple charts and components. Meaning if you provide data on the chart level,\n * then all child components, graphical items, legend, tooltip, axes ... will be able to access the data.\n *\n * Same goes for the graphical item. If you provide data on the graphical item level,\n * then that data is visible for the main chart, and all axes, tooltip, legend ... in the whole chart.\n * This is not scoped to the graphical item only.\n */\n\n/**\n * Data consumer means that this component accepts a `dataKey` prop which is how you specify\n * which dimension of the data to use for this component.\n *\n * DataPointType is the type of each data point object in the data array.\n * DataValueType is the type of the value that this dataKey extracts from each data point.\n */\n\n/**\n * Props shared with all Cartesian and Polar charts.\n * There are three charts that do not use these base props, and define their own:\n * - Treemap\n * - Sunburst\n * - Sankey\n */\n\nexport var isNonEmptyArray = arr => {\n return Array.isArray(arr) && arr.length > 0;\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 */", "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}", "import { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\nimport { useContext, useMemo } 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 var outOfContextSelector = useMemo(() => {\n if (!context) {\n return noop;\n }\n return state => {\n if (state == null) {\n return undefined;\n }\n return selector(state);\n };\n }, [context, selector]);\n return useSyncExternalStoreWithSelector(context ? context.subscription.addNestedSub : addNestedSubNoop, context ? context.store.getState : noop, context ? context.store.getState : noop, outOfContextSelector, refEquality);\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);", "import type { AnyFunction } from '../types'\r\n\r\n/**\r\n * Runs a check to determine if the given result function behaves as an\r\n * identity function. An identity function is one that returns its\r\n * input unchanged, for example, `x => x`. This check helps ensure\r\n * efficient memoization and prevent unnecessary re-renders by encouraging\r\n * proper use of transformation logic in result functions and\r\n * extraction logic in input selectors.\r\n *\r\n * @param resultFunc - The result function to be checked.\r\n * @param inputSelectorsResults - The results of the input selectors.\r\n * @param outputSelectorResult - The result of the output selector.\r\n *\r\n * @see {@link https://reselect.js.org/api/development-only-stability-checks#identityfunctioncheck `identityFunctionCheck`}\r\n *\r\n * @since 5.0.0\r\n * @internal\r\n */\r\nexport const runIdentityFunctionCheck = (\r\n resultFunc: AnyFunction,\r\n inputSelectorsResults: unknown[],\r\n outputSelectorResult: unknown\r\n) => {\r\n if (\r\n inputSelectorsResults.length === 1 &&\r\n inputSelectorsResults[0] === outputSelectorResult\r\n ) {\r\n let isInputSameAsOutput = false\r\n try {\r\n const emptyObject = {}\r\n if (resultFunc(emptyObject) === emptyObject) isInputSameAsOutput = true\r\n } catch {\r\n // Do nothing\r\n }\r\n if (isInputSameAsOutput) {\r\n let stack: string | undefined = undefined\r\n try {\r\n throw new Error()\r\n } catch (e) {\r\n // eslint-disable-next-line @typescript-eslint/no-extra-semi, no-extra-semi\r\n ;({ stack } = e as Error)\r\n }\r\n console.warn(\r\n 'The result function returned its own inputs without modification. e.g' +\r\n '\\n`createSelector([state => state.todos], todos => todos)`' +\r\n '\\nThis could lead to inefficient memoization and unnecessary re-renders.' +\r\n '\\nEnsure transformation logic is in the result function, and extraction logic is in the input selectors.',\r\n { stack }\r\n )\r\n }\r\n }\r\n}\r\n", "import type { CreateSelectorOptions, UnknownMemoizer } from '../types'\r\n\r\n/**\r\n * Runs a stability check to ensure the input selector results remain stable\r\n * when provided with the same arguments. This function is designed to detect\r\n * changes in the output of input selectors, which can impact the performance of memoized selectors.\r\n *\r\n * @param inputSelectorResultsObject - An object containing two arrays: `inputSelectorResults` and `inputSelectorResultsCopy`, representing the results of input selectors.\r\n * @param options - Options object consisting of a `memoize` function and a `memoizeOptions` object.\r\n * @param inputSelectorArgs - List of arguments being passed to the input selectors.\r\n *\r\n * @see {@link https://reselect.js.org/api/development-only-stability-checks/#inputstabilitycheck `inputStabilityCheck`}\r\n *\r\n * @since 5.0.0\r\n * @internal\r\n */\r\nexport const runInputStabilityCheck = (\r\n inputSelectorResultsObject: {\r\n inputSelectorResults: unknown[]\r\n inputSelectorResultsCopy: unknown[]\r\n },\r\n options: Required<\r\n Pick<\r\n CreateSelectorOptions<UnknownMemoizer, UnknownMemoizer>,\r\n 'memoize' | 'memoizeOptions'\r\n >\r\n >,\r\n inputSelectorArgs: unknown[] | IArguments\r\n) => {\r\n const { memoize, memoizeOptions } = options\r\n const { inputSelectorResults, inputSelectorResultsCopy } =\r\n inputSelectorResultsObject\r\n const createAnEmptyObject = memoize(() => ({}), ...memoizeOptions)\r\n // if the memoize method thinks the parameters are equal, these *should* be the same reference\r\n const areInputSelectorResultsEqual =\r\n createAnEmptyObject.apply(null, inputSelectorResults) ===\r\n createAnEmptyObject.apply(null, inputSelectorResultsCopy)\r\n if (!areInputSelectorResultsEqual) {\r\n let stack: string | undefined = undefined\r\n try {\r\n throw new Error()\r\n } catch (e) {\r\n // eslint-disable-next-line @typescript-eslint/no-extra-semi, no-extra-semi\r\n ;({ stack } = e as Error)\r\n }\r\n console.warn(\r\n 'An input selector returned a different result when passed same arguments.' +\r\n '\\nThis means your output selector will likely run more frequently than intended.' +\r\n '\\nAvoid returning a new reference inside your input selector, e.g.' +\r\n '\\n`createSelector([state => state.todos.map(todo => todo.id)], todoIds => todoIds.length)`',\r\n {\r\n arguments: inputSelectorArgs,\r\n firstInputs: inputSelectorResults,\r\n secondInputs: inputSelectorResultsCopy,\r\n stack\r\n }\r\n )\r\n }\r\n}\r\n", "import type { DevModeChecks } from '../types'\r\n\r\n/**\r\n * Global configuration for development mode checks. This specifies the default\r\n * frequency at which each development mode check should be performed.\r\n *\r\n * @since 5.0.0\r\n * @internal\r\n */\r\nexport const globalDevModeChecks: DevModeChecks = {\r\n inputStabilityCheck: 'once',\r\n identityFunctionCheck: 'once'\r\n}\r\n\r\n/**\r\n * Overrides the development mode checks settings for all selectors.\r\n *\r\n * Reselect performs additional checks in development mode to help identify and\r\n * warn about potential issues in selector behavior. This function allows you to\r\n * customize the behavior of these checks across all selectors in your application.\r\n *\r\n * **Note**: This setting can still be overridden per selector inside `createSelector`'s `options` object.\r\n * See {@link https://github.com/reduxjs/reselect#2-per-selector-by-passing-an-identityfunctioncheck-option-directly-to-createselector per-selector-configuration}\r\n * and {@linkcode CreateSelectorOptions.identityFunctionCheck identityFunctionCheck} for more details.\r\n *\r\n * _The development mode checks do not run in production builds._\r\n *\r\n * @param devModeChecks - An object specifying the desired settings for development mode checks. You can provide partial overrides. Unspecified settings will retain their current values.\r\n *\r\n * @example\r\n * ```ts\r\n * import { setGlobalDevModeChecks } from 'reselect'\r\n * import { DevModeChecks } from '../types'\r\n *\r\n * // Run only the first time the selector is called. (default)\r\n * setGlobalDevModeChecks({ inputStabilityCheck: 'once' })\r\n *\r\n * // Run every time the selector is called.\r\n * setGlobalDevModeChecks({ inputStabilityCheck: 'always' })\r\n *\r\n * // Never run the input stability check.\r\n * setGlobalDevModeChecks({ inputStabilityCheck: 'never' })\r\n *\r\n * // Run only the first time the selector is called. (default)\r\n * setGlobalDevModeChecks({ identityFunctionCheck: 'once' })\r\n *\r\n * // Run every time the selector is called.\r\n * setGlobalDevModeChecks({ identityFunctionCheck: 'always' })\r\n *\r\n * // Never run the identity function check.\r\n * setGlobalDevModeChecks({ identityFunctionCheck: 'never' })\r\n * ```\r\n * @see {@link https://reselect.js.org/api/development-only-stability-checks Development-Only Stability Checks}\r\n * @see {@link https://reselect.js.org/api/development-only-stability-checks#1-globally-through-setglobaldevmodechecks global-configuration}\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport const setGlobalDevModeChecks = (\r\n devModeChecks: Partial<DevModeChecks>\r\n) => {\r\n Object.assign(globalDevModeChecks, devModeChecks)\r\n}\r\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 autotracking implementation source:\r\n// - https://gist.github.com/pzuraq/79bf862e0f8cd9521b79c4b6eccdc4f9\r\n// Additional references:\r\n// - https://www.pzuraq.com/blog/how-autotracking-works\r\n// - https://v5.chriskrycho.com/journal/autotracking-elegant-dx-via-cutting-edge-cs/\r\nimport type { EqualityFn } from '../types'\r\nimport { assertIsFunction } from '../utils'\r\n\r\n// The global revision clock. Every time state changes, the clock increments.\r\nexport let $REVISION = 0\r\n\r\n// The current dependency tracker. Whenever we compute a cache, we create a Set\r\n// to track any dependencies that are used while computing. If no cache is\r\n// computing, then the tracker is null.\r\nlet CURRENT_TRACKER: Set<Cell<any> | TrackingCache> | null = null\r\n\r\n// Storage represents a root value in the system - the actual state of our app.\r\nexport class Cell<T> {\r\n revision = $REVISION\r\n\r\n _value: T\r\n _lastValue: T\r\n _isEqual: EqualityFn = tripleEq\r\n\r\n constructor(initialValue: T, isEqual: EqualityFn = tripleEq) {\r\n this._value = this._lastValue = initialValue\r\n this._isEqual = isEqual\r\n }\r\n\r\n // Whenever a storage value is read, it'll add itself to the current tracker if\r\n // one exists, entangling its state with that cache.\r\n get value() {\r\n CURRENT_TRACKER?.add(this)\r\n\r\n return this._value\r\n }\r\n\r\n // Whenever a storage value is updated, we bump the global revision clock,\r\n // assign the revision for this storage to the new value, _and_ we schedule a\r\n // rerender. This is important, and it's what makes autotracking _pull_\r\n // based. We don't actively tell the caches which depend on the storage that\r\n // anything has happened. Instead, we recompute the caches when needed.\r\n set value(newValue) {\r\n if (this.value === newValue) return\r\n\r\n this._value = newValue\r\n this.revision = ++$REVISION\r\n }\r\n}\r\n\r\nfunction tripleEq(a: unknown, b: unknown) {\r\n return a === b\r\n}\r\n\r\n// Caches represent derived state in the system. They are ultimately functions\r\n// that are memoized based on what state they use to produce their output,\r\n// meaning they will only rerun IFF a storage value that could affect the output\r\n// has changed. Otherwise, they'll return the cached value.\r\nexport class TrackingCache {\r\n _cachedValue: any\r\n _cachedRevision = -1\r\n _deps: any[] = []\r\n hits = 0\r\n\r\n fn: () => any\r\n\r\n constructor(fn: () => any) {\r\n this.fn = fn\r\n }\r\n\r\n clear() {\r\n this._cachedValue = undefined\r\n this._cachedRevision = -1\r\n this._deps = []\r\n this.hits = 0\r\n }\r\n\r\n get value() {\r\n // When getting the value for a Cache, first we check all the dependencies of\r\n // the cache to see what their current revision is. If the current revision is\r\n // greater than the cached revision, then something has changed.\r\n if (this.revision > this._cachedRevision) {\r\n const { fn } = this\r\n\r\n // We create a new dependency tracker for this cache. As the cache runs\r\n // its function, any Storage or Cache instances which are used while\r\n // computing will be added to this tracker. In the end, it will be the\r\n // full list of dependencies that this Cache depends on.\r\n const currentTracker = new Set<Cell<any>>()\r\n const prevTracker = CURRENT_TRACKER\r\n\r\n CURRENT_TRACKER = currentTracker\r\n\r\n // try {\r\n this._cachedValue = fn()\r\n // } finally {\r\n CURRENT_TRACKER = prevTracker\r\n this.hits++\r\n this._deps = Array.from(currentTracker)\r\n\r\n // Set the cached revision. This is the current clock count of all the\r\n // dependencies. If any dependency changes, this number will be less\r\n // than the new revision.\r\n this._cachedRevision = this.revision\r\n // }\r\n }\r\n\r\n // If there is a current tracker, it means another Cache is computing and\r\n // using this one, so we add this one to the tracker.\r\n CURRENT_TRACKER?.add(this)\r\n\r\n // Always return the cached value.\r\n return this._cachedValue\r\n }\r\n\r\n get revision() {\r\n // The current revision is the max of all the dependencies' revisions.\r\n return Math.max(...this._deps.map(d => d.revision), 0)\r\n }\r\n}\r\n\r\nexport function getValue<T>(cell: Cell<T>): T {\r\n if (!(cell instanceof Cell)) {\r\n console.warn('Not a valid cell! ', cell)\r\n }\r\n\r\n return cell.value\r\n}\r\n\r\ntype CellValue<T extends Cell<unknown>> = T extends Cell<infer U> ? U : never\r\n\r\nexport function setValue<T extends Cell<unknown>>(\r\n storage: T,\r\n value: CellValue<T>\r\n): void {\r\n if (!(storage instanceof Cell)) {\r\n throw new TypeError(\r\n 'setValue must be passed a tracked store created with `createStorage`.'\r\n )\r\n }\r\n\r\n storage.value = storage._lastValue = value\r\n}\r\n\r\nexport function createCell<T = unknown>(\r\n initialValue: T,\r\n isEqual: EqualityFn = tripleEq\r\n): Cell<T> {\r\n return new Cell(initialValue, isEqual)\r\n}\r\n\r\nexport function createCache<T = unknown>(fn: () => T): TrackingCache {\r\n assertIsFunction(\r\n fn,\r\n 'the first parameter to `createCache` must be a function'\r\n )\r\n\r\n return new TrackingCache(fn)\r\n}\r\n", "import type { Cell } from './autotracking'\r\nimport {\r\n getValue as consumeTag,\r\n createCell as createStorage,\r\n setValue\r\n} from './autotracking'\r\n\r\nexport type Tag = Cell<unknown>\r\n\r\nconst neverEq = (a: any, b: any): boolean => false\r\n\r\nexport function createTag(): Tag {\r\n return createStorage(null, neverEq)\r\n}\r\nexport { consumeTag }\r\nexport function dirtyTag(tag: Tag, value: any): void {\r\n setValue(tag, value)\r\n}\r\n\r\nexport interface Node<\r\n T extends Array<unknown> | Record<string, unknown> =\r\n | Array<unknown>\r\n | Record<string, unknown>\r\n> {\r\n collectionTag: Tag | null\r\n tag: Tag | null\r\n tags: Record<string, Tag>\r\n children: Record<string, Node>\r\n proxy: T\r\n value: T\r\n id: number\r\n}\r\n\r\nexport const consumeCollection = (node: Node): void => {\r\n let tag = node.collectionTag\r\n\r\n if (tag === null) {\r\n tag = node.collectionTag = createTag()\r\n }\r\n\r\n consumeTag(tag)\r\n}\r\n\r\nexport const dirtyCollection = (node: Node): void => {\r\n const tag = node.collectionTag\r\n\r\n if (tag !== null) {\r\n dirtyTag(tag, null)\r\n }\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", "import type {\r\n AnyFunction,\r\n DefaultMemoizeFields,\r\n EqualityFn,\r\n Simplify\r\n} from './types'\r\n\r\nimport type { NOT_FOUND_TYPE } from './utils'\r\nimport { NOT_FOUND } from './utils'\r\n\r\n// Cache implementation based on Erik Rasmussen's `lru-memoize`:\r\n// https://github.com/erikras/lru-memoize\r\n\r\ninterface Entry {\r\n key: unknown\r\n value: unknown\r\n}\r\n\r\ninterface Cache {\r\n get(key: unknown): unknown | NOT_FOUND_TYPE\r\n put(key: unknown, value: unknown): void\r\n getEntries(): Entry[]\r\n clear(): void\r\n}\r\n\r\nfunction createSingletonCache(equals: EqualityFn): Cache {\r\n let entry: Entry | undefined\r\n return {\r\n get(key: unknown) {\r\n if (entry && equals(entry.key, key)) {\r\n return entry.value\r\n }\r\n\r\n return NOT_FOUND\r\n },\r\n\r\n put(key: unknown, value: unknown) {\r\n entry = { key, value }\r\n },\r\n\r\n getEntries() {\r\n return entry ? [entry] : []\r\n },\r\n\r\n clear() {\r\n entry = undefined\r\n }\r\n }\r\n}\r\n\r\nfunction createLruCache(maxSize: number, equals: EqualityFn): Cache {\r\n let entries: Entry[] = []\r\n\r\n function get(key: unknown) {\r\n const cacheIndex = entries.findIndex(entry => equals(key, entry.key))\r\n\r\n // We found a cached entry\r\n if (cacheIndex > -1) {\r\n const entry = entries[cacheIndex]\r\n\r\n // Cached entry not at top of cache, move it to the top\r\n if (cacheIndex > 0) {\r\n entries.splice(cacheIndex, 1)\r\n entries.unshift(entry)\r\n }\r\n\r\n return entry.value\r\n }\r\n\r\n // No entry found in cache, return sentinel\r\n return NOT_FOUND\r\n }\r\n\r\n function put(key: unknown, value: unknown) {\r\n if (get(key) === NOT_FOUND) {\r\n // TODO Is unshift slow?\r\n entries.unshift({ key, value })\r\n if (entries.length > maxSize) {\r\n entries.pop()\r\n }\r\n }\r\n }\r\n\r\n function getEntries() {\r\n return entries\r\n }\r\n\r\n function clear() {\r\n entries = []\r\n }\r\n\r\n return { get, put, getEntries, clear }\r\n}\r\n\r\n/**\r\n * Runs a simple reference equality check.\r\n * What {@linkcode lruMemoize lruMemoize} uses by default.\r\n *\r\n * **Note**: This function was previously known as `defaultEqualityCheck`.\r\n *\r\n * @public\r\n */\r\nexport const referenceEqualityCheck: EqualityFn = (a, b) => a === b\r\n\r\nexport function createCacheKeyComparator(equalityCheck: EqualityFn) {\r\n return function areArgumentsShallowlyEqual(\r\n prev: unknown[] | IArguments | null,\r\n next: unknown[] | IArguments | null\r\n ): boolean {\r\n if (prev === null || next === null || prev.length !== next.length) {\r\n return false\r\n }\r\n\r\n // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\r\n const { length } = prev\r\n for (let i = 0; i < length; i++) {\r\n if (!equalityCheck(prev[i], next[i])) {\r\n return false\r\n }\r\n }\r\n\r\n return true\r\n }\r\n}\r\n\r\n/**\r\n * Options for configuring the behavior of a function memoized with\r\n * LRU (Least Recently Used) caching.\r\n *\r\n * @template Result - The type of the return value of the memoized function.\r\n *\r\n * @public\r\n */\r\nexport interface LruMemoizeOptions<Result = any> {\r\n /**\r\n * Function used to compare the individual arguments of the\r\n * provided calculation function.\r\n *\r\n * @default referenceEqualityCheck\r\n */\r\n equalityCheck?: EqualityFn\r\n\r\n /**\r\n * If provided, used to compare a newly generated output value against\r\n * previous values in the cache. If a match is found,\r\n * 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\r\n * a recalculation due to changed references, but the output is still\r\n * effectively the same.\r\n *\r\n * @since 4.1.0\r\n */\r\n resultEqualityCheck?: EqualityFn<Result>\r\n\r\n /**\r\n * The maximum size of the cache used by the selector.\r\n * A size greater than 1 means the selector will use an\r\n * LRU (Least Recently Used) cache, allowing for the caching of multiple\r\n * results based on different sets of arguments.\r\n *\r\n * @default 1\r\n */\r\n maxSize?: number\r\n}\r\n\r\n/**\r\n * Creates a memoized version of a function with an optional\r\n * LRU (Least Recently Used) cache. The memoized function uses a cache to\r\n * store computed values. Depending on the `maxSize` option, it will use\r\n * either a singleton cache (for a single entry) or an\r\n * LRU cache (for multiple entries).\r\n *\r\n * **Note**: This function was previously known as `defaultMemoize`.\r\n *\r\n * @param func - The function to be memoized.\r\n * @param equalityCheckOrOptions - Either an equality check function or an options object.\r\n * @returns A memoized function with a `.clearCache()` method attached.\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/lruMemoize `lruMemoize`}\r\n *\r\n * @public\r\n */\r\nexport function lruMemoize<Func extends AnyFunction>(\r\n func: Func,\r\n equalityCheckOrOptions?: EqualityFn | LruMemoizeOptions<ReturnType<Func>>\r\n) {\r\n const providedOptions =\r\n typeof equalityCheckOrOptions === 'object'\r\n ? equalityCheckOrOptions\r\n : { equalityCheck: equalityCheckOrOptions }\r\n\r\n const {\r\n equalityCheck = referenceEqualityCheck,\r\n maxSize = 1,\r\n resultEqualityCheck\r\n } = providedOptions\r\n\r\n const comparator = createCacheKeyComparator(equalityCheck)\r\n\r\n let resultsCount = 0\r\n\r\n const cache =\r\n maxSize <= 1\r\n ? createSingletonCache(comparator)\r\n : createLruCache(maxSize, comparator)\r\n\r\n function memoized() {\r\n let value = cache.get(arguments) as ReturnType<Func>\r\n if (value === NOT_FOUND) {\r\n // apply arguments instead of spreading for performance.\r\n // @ts-ignore\r\n value = func.apply(null, arguments) as ReturnType<Func>\r\n resultsCount++\r\n\r\n if (resultEqualityCheck) {\r\n const entries = cache.getEntries()\r\n const matchingEntry = entries.find(entry =>\r\n resultEqualityCheck(entry.value as ReturnType<Func>, value)\r\n )\r\n\r\n if (matchingEntry) {\r\n value = matchingEntry.value as ReturnType<Func>\r\n resultsCount !== 0 && resultsCount--\r\n }\r\n }\r\n\r\n cache.put(arguments, value)\r\n }\r\n return value\r\n }\r\n\r\n memoized.clearCache = () => {\r\n cache.clear()\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 { createNode, updateNode } from './proxy'\r\nimport type { Node } from './tracking'\r\n\r\nimport { createCacheKeyComparator, referenceEqualityCheck } from '../lruMemoize'\r\nimport type { AnyFunction, DefaultMemoizeFields, Simplify } from '../types'\r\nimport { createCache } from './autotracking'\r\n\r\n/**\r\n * Uses an \"auto-tracking\" approach inspired by the work of the Ember Glimmer team.\r\n * It uses a Proxy to wrap arguments and track accesses to nested fields\r\n * in your selector on first read. Later, when the selector is called with\r\n * new arguments, it identifies which accessed fields have changed and\r\n * only recalculates the result if one or more of those accessed fields have changed.\r\n * This allows it to be more precise than the shallow equality checks in `lruMemoize`.\r\n *\r\n * __Design Tradeoffs for `autotrackMemoize`:__\r\n * - Pros:\r\n * - It is likely to avoid excess calculations and recalculate fewer times than `lruMemoize` will,\r\n * which may also result in fewer component re-renders.\r\n * - Cons:\r\n * - It only has a cache size of 1.\r\n * - It is slower than `lruMemoize`, because it has to do more work. (How much slower is dependent on the number of accessed fields in a selector, number of calls, frequency of input changes, etc)\r\n * - It can have some unexpected behavior. Because it tracks nested field accesses,\r\n * cases where you don't access a field will not recalculate properly.\r\n * For example, a badly-written selector like:\r\n * ```ts\r\n * createSelector([state => state.todos], todos => todos)\r\n * ```\r\n * that just immediately returns the extracted value will never update, because it doesn't see any field accesses to check.\r\n *\r\n * __Use Cases for `autotrackMemoize`:__\r\n * - It is likely best used for cases where you need to access specific nested fields\r\n * in data, and avoid recalculating if other fields in the same data objects are immutably updated.\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 { unstable_autotrackMemoize as autotrackMemoize, createSelector } from 'reselect'\r\n *\r\n * const selectTodoIds = createSelector(\r\n * [(state: RootState) => state.todos],\r\n * (todos) => todos.map(todo => todo.id),\r\n * { memoize: autotrackMemoize }\r\n * )\r\n * ```\r\n *\r\n * @example\r\n * <caption>Using `createSelectorCreator`</caption>\r\n * ```ts\r\n * import { unstable_autotrackMemoize as autotrackMemoize, createSelectorCreator } from 'reselect'\r\n *\r\n * const createSelectorAutotrack = createSelectorCreator({ memoize: autotrackMemoize })\r\n *\r\n * const selectTodoIds = createSelectorAutotrack(\r\n * [(state: RootState) => state.todos],\r\n * (todos) => todos.map(todo => todo.id)\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/unstable_autotrackMemoize autotrackMemoize}\r\n *\r\n * @since 5.0.0\r\n * @public\r\n * @experimental\r\n */\r\nexport function autotrackMemoize<Func extends AnyFunction>(func: Func) {\r\n // we reference arguments instead of spreading them for performance reasons\r\n\r\n const node: Node<Record<string, unknown>> = createNode(\r\n [] as unknown as Record<string, unknown>\r\n )\r\n\r\n let lastArgs: IArguments | null = null\r\n\r\n const shallowEqual = createCacheKeyComparator(referenceEqualityCheck)\r\n\r\n const cache = createCache(() => {\r\n const res = func.apply(null, node.proxy as unknown as any[])\r\n return res\r\n })\r\n\r\n function memoized() {\r\n if (!shallowEqual(lastArgs, arguments)) {\r\n updateNode(node, arguments as unknown as Record<string, unknown>)\r\n lastArgs = arguments\r\n }\r\n return cache.value\r\n }\r\n\r\n memoized.clearCache = () => {\r\n return cache.clear()\r\n }\r\n\r\n return memoized as Func & Simplify<DefaultMemoizeFields>\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", "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});", "import { useAppSelector } from '../state/hooks';\nimport { selectLegendPayload } from '../state/selectors/legendSelectors';\n\n/**\n * Use this hook in Legend, or anywhere else where you want to read the current Legend items.\n * @return all Legend items ready to be rendered\n */\nexport function useLegendPayload() {\n return useAppSelector(selectLegendPayload);\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 { 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 {@link useOffset} instead, which also includes calculated widths and heights of axes and legends.\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);\nexport var useCartesianChartLayout = () => {\n var layout = useChartLayout();\n if (layout === 'horizontal' || layout === 'vertical') {\n return layout;\n }\n return undefined;\n};\nexport var selectPolarChartLayout = state => {\n var layout = state.layout.layoutType;\n if (layout === 'centric' || layout === 'radial') {\n return layout;\n }\n return undefined;\n};\nexport var usePolarChartLayout = () => {\n return useAppSelector(selectPolarChartLayout);\n};\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};", "/**\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}", "// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nexport function miniKindOf(val: any): string {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n const type = typeof val;\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n const constructorName = ctorName(val);\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n }\n\n // other\n return Object.prototype.toString.call(val).slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\nfunction ctorName(val: any): string | null {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\nfunction isError(val: any) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\nfunction isDate(val: any) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\nexport function kindOf(val: any) {\n let typeOfVal: string = typeof val;\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n return typeOfVal;\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}", "/**\n * Prints a warning in the console if it exists.\n *\n * @param message The warning message.\n */\nexport default function warning(message: string): void {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\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}", "import { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport { Dispatch } from './types/store';\nimport { ActionCreator, ActionCreatorsMapObject, Action } from './types/actions';\nimport { kindOf } from './utils/kindOf';\nfunction bindActionCreator<A extends Action>(actionCreator: ActionCreator<A>, dispatch: Dispatch<A>) {\n return function (this: any, ...args: any[]) {\n return dispatch(actionCreator.apply(this, args));\n };\n}\n\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use `import * as`\n * syntax. You may also pass a single function.\n *\n * @param dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\nexport default function bindActionCreators<A, C extends ActionCreator<A>>(actionCreator: C, dispatch: Dispatch): C;\nexport default function bindActionCreators<A extends ActionCreator<any>, B extends ActionCreator<any>>(actionCreator: A, dispatch: Dispatch): B;\nexport default function bindActionCreators<A, M extends ActionCreatorsMapObject<A>>(actionCreators: M, dispatch: Dispatch): M;\nexport default function bindActionCreators<M extends ActionCreatorsMapObject, N extends ActionCreatorsMapObject>(actionCreators: M, dispatch: Dispatch): N;\nexport default function bindActionCreators(actionCreators: ActionCreator<any> | ActionCreatorsMapObject, dispatch: Dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(16) : `bindActionCreators expected an object or a function, but instead received: '${kindOf(actionCreators)}'. ` + `Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?`);\n }\n const boundActionCreators: ActionCreatorsMapObject = {};\n for (const key in actionCreators) {\n const actionCreator = actionCreators[key];\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\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}", "// 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", "import {isFunction} from \"../internal\"\n\nexport 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 = isFunction(e) ? 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\nconst O = Object\n\nexport const getPrototypeOf = O.getPrototypeOf\n\nexport const CONSTRUCTOR = \"constructor\"\nexport const PROTOTYPE = \"prototype\"\n\nexport const CONFIGURABLE = \"configurable\"\nexport const ENUMERABLE = \"enumerable\"\nexport const WRITABLE = \"writable\"\nexport const VALUE = \"value\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport let isDraft = (value: any): boolean => !!value && !!value[DRAFT_STATE]\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\tisArray(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 = O[PROTOTYPE][CONSTRUCTOR].toString()\nconst cachedCtorStrings = new WeakMap()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || !isObjectish(value)) return false\n\tconst proto = getPrototypeOf(value)\n\tif (proto === null || proto === O[PROTOTYPE]) return true\n\n\tconst Ctor = O.hasOwnProperty.call(proto, CONSTRUCTOR) && proto[CONSTRUCTOR]\n\tif (Ctor === Object) return true\n\n\tif (!isFunction(Ctor)) 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) : O.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: 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 let has = (\n\tthing: any,\n\tprop: PropertyKey,\n\ttype = getArchtype(thing)\n): boolean =>\n\ttype === ArchType.Map\n\t\t? thing.has(prop)\n\t\t: O[PROTOTYPE].hasOwnProperty.call(thing, prop)\n\n/*#__PURE__*/\nexport let get = (\n\tthing: AnyMap | AnyObject,\n\tprop: PropertyKey,\n\ttype = getArchtype(thing)\n): any =>\n\t// @ts-ignore\n\ttype === ArchType.Map ? thing.get(prop) : thing[prop]\n\n/*#__PURE__*/\nexport let set = (\n\tthing: any,\n\tpropOrOldValue: PropertyKey,\n\tvalue: any,\n\ttype = getArchtype(thing)\n) => {\n\tif (type === ArchType.Map) thing.set(propOrOldValue, value)\n\telse if (type === 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\nexport let isArray = Array.isArray\n\n/*#__PURE__*/\nexport let isMap = (target: any): target is AnyMap => target instanceof Map\n\n/*#__PURE__*/\nexport let isSet = (target: any): target is AnySet => target instanceof Set\n\nexport let isObjectish = (target: any) => typeof target === \"object\"\n\nexport let isFunction = (target: any): target is Function =>\n\ttypeof target === \"function\"\n\nexport let isBoolean = (target: any): target is boolean =>\n\ttypeof target === \"boolean\"\n\nexport function isArrayIndex(value: string | number): value is number | string {\n\tconst n = +value\n\treturn Number.isInteger(n) && String(n) === value\n}\n\nexport let getProxyDraft = <T extends any>(value: T): ImmerState | null => {\n\tif (!isObjectish(value)) return null\n\treturn (value as {[DRAFT_STATE]: any})?.[DRAFT_STATE]\n}\n\n/*#__PURE__*/\nexport let latest = (state: ImmerState): any => state.copy_ || state.base_\n\nexport let getValue = <T extends object>(value: T): T => {\n\tconst proxyDraft = getProxyDraft(value)\n\treturn proxyDraft ? proxyDraft.copy_ ?? proxyDraft.base_ : value\n}\n\nexport let getFinalValue = (state: ImmerState): any =>\n\tstate.modified_ ? state.copy_ : state.base_\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 (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 = O.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\t[CONFIGURABLE]: true,\n\t\t\t\t\t[WRITABLE]: true, // could live with !!desc.set as well here...\n\t\t\t\t\t[ENUMERABLE]: desc[ENUMERABLE],\n\t\t\t\t\t[VALUE]: base[key]\n\t\t\t\t}\n\t\t}\n\t\treturn O.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 = O.create(proto)\n\t\treturn O.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\tO.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\tO.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\teach(\n\t\t\tobj,\n\t\t\t(_key, value) => {\n\t\t\t\tfreeze(value, true)\n\t\t\t},\n\t\t\tfalse\n\t\t)\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nconst dontMutateMethodOverride = {\n\t[VALUE]: dontMutateFrozenCollections\n}\n\nexport function isFrozen(obj: any): boolean {\n\t// Fast path: primitives and null/undefined are always \"frozen\"\n\tif (obj === null || !isObjectish(obj)) return true\n\treturn O.isFrozen(obj)\n}\n", "import {\n\tImmerState,\n\tPatch,\n\tDrafted,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tArchType,\n\tdie,\n\tImmerScope,\n\tProxyArrayState\n} from \"../internal\"\n\nexport const PluginMapSet = \"MapSet\"\nexport const PluginPatches = \"Patches\"\nexport const PluginArrayMethods = \"ArrayMethods\"\n\nexport type PatchesPlugin = {\n\tgeneratePatches_(\n\t\tstate: ImmerState,\n\t\tbasePath: PatchPath,\n\t\trootScope: ImmerScope\n\t): void\n\tgenerateReplacementPatches_(\n\t\tbase: any,\n\t\treplacement: any,\n\t\trootScope: ImmerScope\n\t): void\n\tapplyPatches_<T>(draft: T, patches: readonly Patch[]): T\n\tgetPath: (state: ImmerState) => PatchPath | null\n}\n\nexport type MapSetPlugin = {\n\tproxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): [T, ImmerState]\n\tproxySet_<T extends AnySet>(target: T, parent?: ImmerState): [T, ImmerState]\n\tfixSetContents: (state: ImmerState) => void\n}\n\nexport type ArrayMethodsPlugin = {\n\tcreateMethodInterceptor: (state: ProxyArrayState, method: string) => Function\n\tisArrayOperationMethod: (method: string) => boolean\n\tisMutatingArrayMethod: (method: string) => boolean\n}\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: PatchesPlugin\n\tMapSet?: MapSetPlugin\n\tArrayMethods?: ArrayMethodsPlugin\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 let isPluginLoaded = <K extends keyof Plugins>(pluginKey: K): boolean =>\n\t!!plugins[pluginKey]\n\nexport let clearPlugin = <K extends keyof Plugins>(pluginKey: K): void => {\n\tdelete plugins[pluginKey]\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\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\tPatchesPlugin,\n\tMapSetPlugin,\n\tisPluginLoaded,\n\tPluginMapSet,\n\tPluginPatches,\n\tArrayMethodsPlugin,\n\tPluginArrayMethods\n} from \"../internal\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tpatchPlugin_?: PatchesPlugin\n\tmapSetPlugin_?: MapSetPlugin\n\tarrayMethodsPlugin_?: ArrayMethodsPlugin\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n\thandledSet_: Set<any>\n\tprocessedForPatches_: Set<any>\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport let getCurrentScope = () => currentScope!\n\nlet createScope = (\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope => ({\n\tdrafts_: [],\n\tparent_,\n\timmer_,\n\t// Whenever the modified draft contains a draft from another scope, we\n\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\tcanAutoFreeze_: true,\n\tunfinalizedDrafts_: 0,\n\thandledSet_: new Set(),\n\tprocessedForPatches_: new Set(),\n\tmapSetPlugin_: isPluginLoaded(PluginMapSet)\n\t\t? getPlugin(PluginMapSet)\n\t\t: undefined,\n\tarrayMethodsPlugin_: isPluginLoaded(PluginArrayMethods)\n\t\t? getPlugin(PluginArrayMethods)\n\t\t: undefined\n})\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tscope.patchPlugin_ = getPlugin(PluginPatches) // 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 let enterScope = (immer: Immer) =>\n\t(currentScope = createScope(currentScope, immer))\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\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tArchType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tget,\n\tPatch,\n\tlatest,\n\tprepareCopy,\n\tgetFinalValue,\n\tgetValue,\n\tProxyArrayState\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\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}\n\t\tconst {patchPlugin_} = scope\n\t\tif (patchPlugin_) {\n\t\t\tpatchPlugin_.generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope\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\n\tmaybeFreeze(scope, result, true)\n\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) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\tif (!state) {\n\t\tconst finalValue = handleValue(value, rootScope.handledSet_, rootScope)\n\t\treturn finalValue\n\t}\n\n\t// Never finalize drafts owned by another scope\n\tif (!isSameScope(state, rootScope)) {\n\t\treturn value\n\t}\n\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\treturn state.base_\n\t}\n\n\tif (!state.finalized_) {\n\t\t// Execute all registered draft finalization callbacks\n\t\tconst {callbacks_} = state\n\t\tif (callbacks_) {\n\t\t\twhile (callbacks_.length > 0) {\n\t\t\t\tconst callback = callbacks_.pop()!\n\t\t\t\tcallback(rootScope)\n\t\t\t}\n\t\t}\n\n\t\tgeneratePatchesAndFinalize(state, rootScope)\n\t}\n\n\t// By now the root copy has been fully updated throughout its tree\n\treturn state.copy_\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\nfunction markStateFinalized(state: ImmerState) {\n\tstate.finalized_ = true\n\tstate.scope_.unfinalizedDrafts_--\n}\n\nlet isSameScope = (state: ImmerState, rootScope: ImmerScope) =>\n\tstate.scope_ === rootScope\n\n// A reusable empty array to avoid allocations\nconst EMPTY_LOCATIONS_RESULT: (string | symbol | number)[] = []\n\n// Updates all references to a draft in its parent to the finalized value.\n// This handles cases where the same draft appears multiple times in the parent, or has been moved around.\nexport function updateDraftInParent(\n\tparent: ImmerState,\n\tdraftValue: any,\n\tfinalizedValue: any,\n\toriginalKey?: string | number | symbol\n): void {\n\tconst parentCopy = latest(parent)\n\tconst parentType = parent.type_\n\n\t// Fast path: Check if draft is still at original key\n\tif (originalKey !== undefined) {\n\t\tconst currentValue = get(parentCopy, originalKey, parentType)\n\t\tif (currentValue === draftValue) {\n\t\t\t// Still at original location, just update it\n\t\t\tset(parentCopy, originalKey, finalizedValue, parentType)\n\t\t\treturn\n\t\t}\n\t}\n\n\t// Slow path: Build reverse mapping of all children\n\t// to their indices in the parent, so that we can\n\t// replace all locations where this draft appears.\n\t// We only have to build this once per parent.\n\tif (!parent.draftLocations_) {\n\t\tconst draftLocations = (parent.draftLocations_ = new Map())\n\n\t\t// Use `each` which works on Arrays, Maps, and Objects\n\t\teach(parentCopy, (key, value) => {\n\t\t\tif (isDraft(value)) {\n\t\t\t\tconst keys = draftLocations.get(value) || []\n\t\t\t\tkeys.push(key)\n\t\t\t\tdraftLocations.set(value, keys)\n\t\t\t}\n\t\t})\n\t}\n\n\t// Look up all locations where this draft appears\n\tconst locations =\n\t\tparent.draftLocations_.get(draftValue) ?? EMPTY_LOCATIONS_RESULT\n\n\t// Update all locations\n\tfor (const location of locations) {\n\t\tset(parentCopy, location, finalizedValue, parentType)\n\t}\n}\n\n// Register a callback to finalize a child draft when the parent draft is finalized.\n// This assumes there is a parent -> child relationship between the two drafts,\n// and we have a key to locate the child in the parent.\nexport function registerChildFinalizationCallback(\n\tparent: ImmerState,\n\tchild: ImmerState,\n\tkey: string | number | symbol\n) {\n\tparent.callbacks_.push(function childCleanup(rootScope) {\n\t\tconst state: ImmerState = child\n\n\t\t// Can only continue if this is a draft owned by this scope\n\t\tif (!state || !isSameScope(state, rootScope)) {\n\t\t\treturn\n\t\t}\n\n\t\t// Handle potential set value finalization first\n\t\trootScope.mapSetPlugin_?.fixSetContents(state)\n\n\t\tconst finalizedValue = getFinalValue(state)\n\n\t\t// Update all locations in the parent that referenced this draft\n\t\tupdateDraftInParent(parent, state.draft_ ?? state, finalizedValue, key)\n\n\t\tgeneratePatchesAndFinalize(state, rootScope)\n\t})\n}\n\nfunction generatePatchesAndFinalize(state: ImmerState, rootScope: ImmerScope) {\n\tconst shouldFinalize =\n\t\tstate.modified_ &&\n\t\t!state.finalized_ &&\n\t\t(state.type_ === ArchType.Set ||\n\t\t\t(state.type_ === ArchType.Array &&\n\t\t\t\t(state as ProxyArrayState).allIndicesReassigned_) ||\n\t\t\t(state.assigned_?.size ?? 0) > 0)\n\n\tif (shouldFinalize) {\n\t\tconst {patchPlugin_} = rootScope\n\t\tif (patchPlugin_) {\n\t\t\tconst basePath = patchPlugin_!.getPath(state)\n\n\t\t\tif (basePath) {\n\t\t\t\tpatchPlugin_!.generatePatches_(state, basePath, rootScope)\n\t\t\t}\n\t\t}\n\n\t\tmarkStateFinalized(state)\n\t}\n}\n\nexport function handleCrossReference(\n\ttarget: ImmerState,\n\tkey: string | number | symbol,\n\tvalue: any\n) {\n\tconst {scope_} = target\n\t// Check if value is a draft from this scope\n\tif (isDraft(value)) {\n\t\tconst state: ImmerState = value[DRAFT_STATE]\n\t\tif (isSameScope(state, scope_)) {\n\t\t\t// Register callback to update this location when the draft finalizes\n\n\t\t\tstate.callbacks_.push(function crossReferenceCleanup() {\n\t\t\t\t// Update the target location with finalized value\n\t\t\t\tprepareCopy(target)\n\n\t\t\t\tconst finalizedValue = getFinalValue(state)\n\n\t\t\t\tupdateDraftInParent(target, value, finalizedValue, key)\n\t\t\t})\n\t\t}\n\t} else if (isDraftable(value)) {\n\t\t// Handle non-draft objects that might contain drafts\n\t\ttarget.callbacks_.push(function nestedDraftCleanup() {\n\t\t\tconst targetCopy = latest(target)\n\n\t\t\t// For Sets, check if value is still in the set\n\t\t\tif (target.type_ === ArchType.Set) {\n\t\t\t\tif (targetCopy.has(value)) {\n\t\t\t\t\t// Process the value to replace any nested drafts\n\t\t\t\t\thandleValue(value, scope_.handledSet_, scope_)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Maps/objects\n\t\t\t\tif (get(targetCopy, key, target.type_) === value) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tscope_.drafts_.length > 1 &&\n\t\t\t\t\t\t((target as Exclude<ImmerState, SetState>).assigned_!.get(key) ??\n\t\t\t\t\t\t\tfalse) === true &&\n\t\t\t\t\t\ttarget.copy_\n\t\t\t\t\t) {\n\t\t\t\t\t\t// This might be a non-draft value that has drafts\n\t\t\t\t\t\t// inside. We do need to recurse here to handle those.\n\t\t\t\t\t\thandleValue(\n\t\t\t\t\t\t\tget(target.copy_, key, target.type_),\n\t\t\t\t\t\t\tscope_.handledSet_,\n\t\t\t\t\t\t\tscope_\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nexport function handleValue(\n\ttarget: any,\n\thandledSet: Set<any>,\n\trootScope: ImmerScope\n) {\n\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t// This benefits especially adding large data tree's without further processing.\n\t\t// See add-data.js perf test\n\t\treturn target\n\t}\n\n\t// Skip if already handled, frozen, or not draftable\n\tif (\n\t\tisDraft(target) ||\n\t\thandledSet.has(target) ||\n\t\t!isDraftable(target) ||\n\t\tisFrozen(target)\n\t) {\n\t\treturn target\n\t}\n\n\thandledSet.add(target)\n\n\t// Process ALL properties/entries\n\teach(target, (key, value) => {\n\t\tif (isDraft(value)) {\n\t\t\tconst state: ImmerState = value[DRAFT_STATE]\n\t\t\tif (isSameScope(state, rootScope)) {\n\t\t\t\t// Replace draft with finalized value\n\n\t\t\t\tconst updatedValue = getFinalValue(state)\n\n\t\t\t\tset(target, key, updatedValue, target.type_)\n\n\t\t\t\tmarkStateFinalized(state)\n\t\t\t}\n\t\t} else if (isDraftable(value)) {\n\t\t\t// Recursively handle nested values\n\t\t\thandleValue(value, handledSet, rootScope)\n\t\t}\n\t})\n\n\treturn target\n}\n", "import {\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\thandleCrossReference,\n\tWRITABLE,\n\tCONFIGURABLE,\n\tENUMERABLE,\n\tVALUE,\n\tisArray,\n\tisArrayIndex\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\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\toperationMethod?: string\n\tallIndicesReassigned_?: boolean\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>, ProxyState] {\n\tconst baseIsArray = isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: baseIsArray ? 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\t// actually instantiated in `prepareCopy()`\n\t\tassigned_: undefined,\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\t// `callbacks` actually gets assigned in `createProxy`\n\t\tcallbacks_: undefined as any\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 (baseIsArray) {\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, state]\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\tlet arrayPlugin = state.scope_.arrayMethodsPlugin_\n\t\tconst isArrayWithStringProp =\n\t\t\tstate.type_ === ArchType.Array && typeof prop === \"string\"\n\t\t// Intercept array methods so that we can override\n\t\t// behavior and skip proxy creation for perf\n\t\tif (isArrayWithStringProp) {\n\t\t\tif (arrayPlugin?.isArrayOperationMethod(prop)) {\n\t\t\t\treturn arrayPlugin.createMethodInterceptor(state, prop)\n\t\t\t}\n\t\t}\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop, state.type_)) {\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\n\t\t// During mutating array operations, defer proxy creation for array elements\n\t\t// This optimization avoids creating unnecessary proxies during sort/reverse\n\t\tif (\n\t\t\tisArrayWithStringProp &&\n\t\t\t(state as ProxyArrayState).operationMethod &&\n\t\t\tarrayPlugin?.isMutatingArrayMethod(\n\t\t\t\t(state as ProxyArrayState).operationMethod!\n\t\t\t) &&\n\t\t\tisArrayIndex(prop)\n\t\t) {\n\t\t\t// Return raw value during mutating operations, create proxy only if modified\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\t// Ensure array keys are always numbers\n\t\t\tconst childKey = state.type_ === ArchType.Array ? +(prop as string) : prop\n\t\t\tconst childDraft = createProxy(state.scope_, value, state, childKey)\n\n\t\t\treturn (state.copy_![childKey] = childDraft)\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_!.set(prop, false)\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (\n\t\t\t\tis(value, current) &&\n\t\t\t\t(value !== undefined || has(state.base_, prop, state.type_))\n\t\t\t)\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_!.set(prop, true)\n\n\t\thandleCrossReference(state, prop, value)\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\tprepareCopy(state)\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_!.set(prop, false)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tstate.assigned_!.delete(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\t[WRITABLE]: true,\n\t\t\t[CONFIGURABLE]: state.type_ !== ArchType.Array || prop !== \"length\",\n\t\t\t[ENUMERABLE]: desc[ENUMERABLE],\n\t\t\t[VALUE]: 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]> = {}\n// Use `for..in` instead of `each` to work around a weird\n// prod test suite issue\nfor (let key in objectTraps) {\n\tlet fn = objectTraps[key as keyof typeof objectTraps] as Function\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\tconst args = arguments\n\t\targs[0] = args[0][0]\n\t\treturn fn.apply(this, args)\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: ImmerState) {\n\tif (!state.copy_) {\n\t\t// Actually create the `assigned_` map now that we\n\t\t// know this is a modified draft.\n\t\tstate.assigned_ = new Map()\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\tImmerScope,\n\tregisterChildFinalizationCallback,\n\tArchType,\n\tMapSetPlugin,\n\tAnyMap,\n\tAnySet,\n\tisObjectish,\n\tisFunction,\n\tisBoolean,\n\tPluginMapSet,\n\tPluginPatches\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 = false\n\n\tconstructor(config?: {\n\t\tautoFreeze?: boolean\n\t\tuseStrictShallowCopy?: StrictMode\n\t\tuseStrictIteration?: boolean\n\t}) {\n\t\tif (isBoolean(config?.autoFreeze)) this.setAutoFreeze(config!.autoFreeze)\n\t\tif (isBoolean(config?.useStrictShallowCopy))\n\t\t\tthis.setUseStrictShallowCopy(config!.useStrictShallowCopy)\n\t\tif (isBoolean(config?.useStrictIteration))\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 (isFunction(base) && !isFunction(recipe)) {\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 (!isFunction(recipe)) die(6)\n\t\tif (patchListener !== undefined && !isFunction(patchListener)) die(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(scope, 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 || !isObjectish(base)) {\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(PluginPatches).generateReplacementPatches_(base, result, {\n\t\t\t\t\tpatches_: p,\n\t\t\t\t\tinversePatches_: ip\n\t\t\t\t} as ImmerScope) // dummy scope\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 (isFunction(base)) {\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(scope, 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(PluginPatches).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\trootScope: ImmerScope,\n\tvalue: T,\n\tparent?: ImmerState,\n\tkey?: string | number | symbol\n): Drafted<T, ImmerState> {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\t// returning a tuple here lets us skip a proxy access\n\t// to DRAFT_STATE later\n\tconst [draft, state] = isMap(value)\n\t\t? getPlugin(PluginMapSet).proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(PluginMapSet).proxySet_(value, parent)\n\t\t: createProxyProxy(value, parent)\n\n\tconst scope = parent?.scope_ ?? getCurrentScope()\n\tscope.drafts_.push(draft)\n\n\t// Ensure the parent callbacks are passed down so we actually\n\t// track all callbacks added throughout the tree\n\tstate.callbacks_ = parent?.callbacks_ ?? []\n\tstate.key_ = key\n\n\tif (parent && key !== undefined) {\n\t\tregisterChildFinalizationCallback(parent, state, key)\n\t} else {\n\t\t// It's a root draft, register it with the scope\n\t\tstate.callbacks_.push(function rootDraftCleanup(rootScope) {\n\t\t\trootScope.mapSetPlugin_?.fixSetContents(state)\n\n\t\t\tconst {patchPlugin_} = rootScope\n\n\t\t\tif (state.modified_ && patchPlugin_) {\n\t\t\t\tpatchPlugin_.generatePatches_(state, [], rootScope)\n\t\t\t}\n\t\t})\n\t}\n\n\treturn draft as any\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 {immerable} from \"../immer\"\nimport {\n\tImmerState,\n\tPatch,\n\tSetState,\n\tProxyArrayState,\n\tMapState,\n\tProxyObjectState,\n\tPatchPath,\n\tget,\n\teach,\n\thas,\n\tgetArchtype,\n\tgetPrototypeOf,\n\tisSet,\n\tisMap,\n\tloadPlugin,\n\tArchType,\n\tdie,\n\tisDraft,\n\tisDraftable,\n\tNOTHING,\n\terrors,\n\tDRAFT_STATE,\n\tgetProxyDraft,\n\tImmerScope,\n\tisObjectish,\n\tisFunction,\n\tCONSTRUCTOR,\n\tPluginPatches,\n\tisArray,\n\tPROTOTYPE\n} from \"../internal\"\n\nexport function enablePatches() {\n\tconst errorOffset = 16\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\terrors.push(\n\t\t\t'Sets cannot have \"replace\" patches.',\n\t\t\tfunction(op: string) {\n\t\t\t\treturn \"Unsupported patch operation: \" + op\n\t\t\t},\n\t\t\tfunction(path: string) {\n\t\t\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t\t\t},\n\t\t\t\"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n\t\t)\n\t}\n\n\tfunction getPath(state: ImmerState, path: PatchPath = []): PatchPath | null {\n\t\t// Step 1: Check if state has a stored key\n\t\tif (state.key_ !== undefined) {\n\t\t\t// Step 2: Validate the key is still valid in parent\n\n\t\t\tconst parentCopy = state.parent_!.copy_ ?? state.parent_!.base_\n\t\t\tconst proxyDraft = getProxyDraft(get(parentCopy, state.key_!))\n\t\t\tconst valueAtKey = get(parentCopy, state.key_!)\n\n\t\t\tif (valueAtKey === undefined) {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\t// Check if the value at the key is still related to this draft\n\t\t\t// It should be either the draft itself, the base, or the copy\n\t\t\tif (\n\t\t\t\tvalueAtKey !== state.draft_ &&\n\t\t\t\tvalueAtKey !== state.base_ &&\n\t\t\t\tvalueAtKey !== state.copy_\n\t\t\t) {\n\t\t\t\treturn null // Value was replaced with something else\n\t\t\t}\n\t\t\tif (proxyDraft != null && proxyDraft.base_ !== state.base_) {\n\t\t\t\treturn null // Different draft\n\t\t\t}\n\n\t\t\t// Step 3: Handle Set case specially\n\t\t\tconst isSet = state.parent_!.type_ === ArchType.Set\n\t\t\tlet key: string | number\n\n\t\t\tif (isSet) {\n\t\t\t\t// For Sets, find the index in the drafts_ map\n\t\t\t\tconst setParent = state.parent_ as SetState\n\t\t\t\tkey = Array.from(setParent.drafts_.keys()).indexOf(state.key_)\n\t\t\t} else {\n\t\t\t\tkey = state.key_ as string | number\n\t\t\t}\n\n\t\t\t// Step 4: Validate key still exists in parent\n\t\t\tif (!((isSet && parentCopy.size > key) || has(parentCopy, key))) {\n\t\t\t\treturn null // Key deleted\n\t\t\t}\n\n\t\t\t// Step 5: Add key to path\n\t\t\tpath.push(key)\n\t\t}\n\n\t\t// Step 6: Recurse to parent if exists\n\t\tif (state.parent_) {\n\t\t\treturn getPath(state.parent_, path)\n\t\t}\n\n\t\t// Step 7: At root - reverse path and validate\n\t\tpath.reverse()\n\n\t\ttry {\n\t\t\t// Validate path can be resolved from ROOT\n\t\t\tresolvePath(state.copy_, path)\n\t\t} catch (e) {\n\t\t\treturn null // Path invalid\n\t\t}\n\n\t\treturn path\n\t}\n\n\t// NEW: Add resolvePath helper function\n\tfunction resolvePath(base: any, path: PatchPath): any {\n\t\tlet current = base\n\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\tconst key = path[i]\n\t\t\tcurrent = get(current, key)\n\t\t\tif (!isObjectish(current) || current === null) {\n\t\t\t\tthrow new Error(`Cannot resolve path at '${path.join(\"/\")}'`)\n\t\t\t}\n\t\t}\n\t\treturn current\n\t}\n\n\tconst REPLACE = \"replace\"\n\tconst ADD = \"add\"\n\tconst REMOVE = \"remove\"\n\n\tfunction generatePatches_(\n\t\tstate: ImmerState,\n\t\tbasePath: PatchPath,\n\t\tscope: ImmerScope\n\t): void {\n\t\tif (state.scope_.processedForPatches_.has(state)) {\n\t\t\treturn\n\t\t}\n\n\t\tstate.scope_.processedForPatches_.add(state)\n\n\t\tconst {patches_, inversePatches_} = scope\n\n\t\tswitch (state.type_) {\n\t\t\tcase ArchType.Object:\n\t\t\tcase ArchType.Map:\n\t\t\t\treturn generatePatchesFromAssigned(\n\t\t\t\t\tstate,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches_!,\n\t\t\t\t\tinversePatches_!\n\t\t\t\t)\n\t\t\tcase ArchType.Array:\n\t\t\t\treturn generateArrayPatches(\n\t\t\t\t\tstate,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches_!,\n\t\t\t\t\tinversePatches_!\n\t\t\t\t)\n\t\t\tcase ArchType.Set:\n\t\t\t\treturn generateSetPatches(\n\t\t\t\t\t(state as any) as SetState,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches_!,\n\t\t\t\t\tinversePatches_!\n\t\t\t\t)\n\t\t}\n\t}\n\n\tfunction generateArrayPatches(\n\t\tstate: ProxyArrayState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, assigned_} = state\n\t\tlet copy_ = state.copy_!\n\n\t\t// Reduce complexity by ensuring `base` is never longer.\n\t\tif (copy_.length < base_.length) {\n\t\t\t// @ts-ignore\n\t\t\t;[base_, copy_] = [copy_, base_]\n\t\t\t;[patches, inversePatches] = [inversePatches, patches]\n\t\t}\n\n\t\tconst allReassigned = state.allIndicesReassigned_ === true\n\n\t\t// Process replaced indices.\n\t\tfor (let i = 0; i < base_.length; i++) {\n\t\t\tconst copiedItem = copy_[i]\n\t\t\tconst baseItem = base_[i]\n\n\t\t\tconst isAssigned = allReassigned || assigned_?.get(i.toString())\n\t\t\tif (isAssigned && copiedItem !== baseItem) {\n\t\t\t\tconst childState = copiedItem?.[DRAFT_STATE]\n\t\t\t\tif (childState && childState.modified_) {\n\t\t\t\t\t// Skip - let the child generate its own patches\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(copiedItem)\n\t\t\t\t})\n\t\t\t\tinversePatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(baseItem)\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\t// Process added indices.\n\t\tfor (let i = base_.length; i < copy_.length; i++) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tpatches.push({\n\t\t\t\top: ADD,\n\t\t\t\tpath,\n\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t})\n\t\t}\n\t\tfor (let i = copy_.length - 1; base_.length <= i; --i) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tinversePatches.push({\n\t\t\t\top: REMOVE,\n\t\t\t\tpath\n\t\t\t})\n\t\t}\n\t}\n\n\t// This is used for both Map objects and normal objects.\n\tfunction generatePatchesFromAssigned(\n\t\tstate: MapState | ProxyObjectState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tconst {base_, copy_, type_} = state\n\t\teach(state.assigned_!, (key, assignedValue) => {\n\t\t\tconst origValue = get(base_, key, type_)\n\t\t\tconst value = get(copy_!, key, type_)\n\t\t\tconst op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD\n\t\t\tif (origValue === value && op === REPLACE) return\n\t\t\tconst path = basePath.concat(key as any)\n\t\t\tpatches.push(\n\t\t\t\top === REMOVE\n\t\t\t\t\t? {op, path}\n\t\t\t\t\t: {op, path, value: clonePatchValueIfNeeded(value)}\n\t\t\t)\n\t\t\tinversePatches.push(\n\t\t\t\top === ADD\n\t\t\t\t\t? {op: REMOVE, path}\n\t\t\t\t\t: op === REMOVE\n\t\t\t\t\t? {op: ADD, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t\t\t: {op: REPLACE, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t)\n\t\t})\n\t}\n\n\tfunction generateSetPatches(\n\t\tstate: SetState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, copy_} = state\n\n\t\tlet i = 0\n\t\tbase_.forEach((value: any) => {\n\t\t\tif (!copy_!.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t\ti = 0\n\t\tcopy_!.forEach((value: any) => {\n\t\t\tif (!base_.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t}\n\n\tfunction generateReplacementPatches_(\n\t\tbaseValue: any,\n\t\treplacement: any,\n\t\tscope: ImmerScope\n\t): void {\n\t\tconst {patches_, inversePatches_} = scope\n\t\tpatches_!.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: replacement === NOTHING ? undefined : replacement\n\t\t})\n\t\tinversePatches_!.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: baseValue\n\t\t})\n\t}\n\n\tfunction applyPatches_<T>(draft: T, patches: readonly Patch[]): T {\n\t\tpatches.forEach(patch => {\n\t\t\tconst {path, op} = patch\n\n\t\t\tlet base: any = draft\n\t\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\t\tconst parentType = getArchtype(base)\n\t\t\t\tlet p = path[i]\n\t\t\t\tif (typeof p !== \"string\" && typeof p !== \"number\") {\n\t\t\t\t\tp = \"\" + p\n\t\t\t\t}\n\n\t\t\t\t// See #738, avoid prototype pollution\n\t\t\t\tif (\n\t\t\t\t\t(parentType === ArchType.Object || parentType === ArchType.Array) &&\n\t\t\t\t\t(p === \"__proto__\" || p === CONSTRUCTOR)\n\t\t\t\t)\n\t\t\t\t\tdie(errorOffset + 3)\n\t\t\t\tif (isFunction(base) && p === PROTOTYPE) die(errorOffset + 3)\n\t\t\t\tbase = get(base, p)\n\t\t\t\tif (!isObjectish(base)) die(errorOffset + 2, path.join(\"/\"))\n\t\t\t}\n\n\t\t\tconst type = getArchtype(base)\n\t\t\tconst value = deepClonePatchValue(patch.value) // used to clone patch to ensure original patch is not modified, see #411\n\t\t\tconst key = path[path.length - 1]\n\t\t\tswitch (op) {\n\t\t\t\tcase REPLACE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\tdie(errorOffset)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// if value is an object, then it's assigned by reference\n\t\t\t\t\t\t\t// in the following add or remove ops, the value field inside the patch will also be modifyed\n\t\t\t\t\t\t\t// so we use value from the cloned patch\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase ADD:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn key === \"-\"\n\t\t\t\t\t\t\t\t? base.push(value)\n\t\t\t\t\t\t\t\t: base.splice(key as any, 0, value)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.add(value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase REMOVE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn base.splice(key as any, 1)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.delete(key)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.delete(patch.value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn delete base[key]\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tdie(errorOffset + 1, op)\n\t\t\t}\n\t\t})\n\n\t\treturn draft\n\t}\n\n\t// optimize: this is quite a performance hit, can we detect intelligently when it is needed?\n\t// E.g. auto-draft when new objects from outside are assigned and modified?\n\t// (See failing test when deepClone just returns obj)\n\tfunction deepClonePatchValue<T>(obj: T): T\n\tfunction deepClonePatchValue(obj: any) {\n\t\tif (!isDraftable(obj)) return obj\n\t\tif (isArray(obj)) return obj.map(deepClonePatchValue)\n\t\tif (isMap(obj))\n\t\t\treturn new Map(\n\t\t\t\tArray.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n\t\t\t)\n\t\tif (isSet(obj)) return new Set(Array.from(obj).map(deepClonePatchValue))\n\t\tconst cloned = Object.create(getPrototypeOf(obj))\n\t\tfor (const key in obj) cloned[key] = deepClonePatchValue(obj[key])\n\t\tif (has(obj, immerable)) cloned[immerable] = obj[immerable]\n\t\treturn cloned\n\t}\n\n\tfunction clonePatchValueIfNeeded<T>(obj: T): T {\n\t\tif (isDraft(obj)) {\n\t\t\treturn deepClonePatchValue(obj)\n\t\t} else return obj\n\t}\n\n\tloadPlugin(PluginPatches, {\n\t\tapplyPatches_,\n\t\tgeneratePatches_,\n\t\tgenerateReplacementPatches_,\n\t\tgetPath\n\t})\n}\n", "// types only!\nimport {\n\tImmerState,\n\tAnyMap,\n\tAnySet,\n\tMapState,\n\tSetState,\n\tDRAFT_STATE,\n\tgetCurrentScope,\n\tlatest,\n\tisDraftable,\n\tcreateProxy,\n\tloadPlugin,\n\tmarkChanged,\n\tdie,\n\tArchType,\n\teach,\n\tgetValue,\n\tPluginMapSet,\n\thandleCrossReference\n} from \"../internal\"\n\nexport function enableMapSet() {\n\tclass DraftMap extends Map {\n\t\t[DRAFT_STATE]: MapState\n\n\t\tconstructor(target: AnyMap, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Map,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tassigned_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this as any,\n\t\t\t\tisManual_: false,\n\t\t\t\trevoked_: false,\n\t\t\t\tcallbacks_: []\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(key: any): boolean {\n\t\t\treturn latest(this[DRAFT_STATE]).has(key)\n\t\t}\n\n\t\tset(key: any, value: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!latest(state).has(key) || latest(state).get(key) !== value) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t\tstate.copy_!.set(key, value)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t\thandleCrossReference(state, key, value)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(key: any): boolean {\n\t\t\tif (!this.has(key)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareMapCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\tif (state.base_.has(key)) {\n\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t} else {\n\t\t\t\tstate.assigned_!.delete(key)\n\t\t\t}\n\t\t\tstate.copy_!.delete(key)\n\t\t\treturn true\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_ = new Map()\n\t\t\t\teach(state.base_, key => {\n\t\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t\t})\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tforEach(cb: (value: any, key: any, self: any) => void, thisArg?: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tlatest(state).forEach((_value: any, key: any, _map: any) => {\n\t\t\t\tcb.call(thisArg, this.get(key), key, this)\n\t\t\t})\n\t\t}\n\n\t\tget(key: any): any {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tconst value = latest(state).get(key)\n\t\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\t\treturn value\n\t\t\t}\n\t\t\tif (value !== state.base_.get(key)) {\n\t\t\t\treturn value // either already drafted or reassigned\n\t\t\t}\n\t\t\t// despite what it looks, this creates a draft only once, see above condition\n\t\t\tconst draft = createProxy(state.scope_, value, state, key)\n\t\t\tprepareMapCopy(state)\n\t\t\tstate.copy_!.set(key, draft)\n\t\t\treturn draft\n\t\t}\n\n\t\tkeys(): IterableIterator<any> {\n\t\t\treturn latest(this[DRAFT_STATE]).keys()\n\t\t}\n\n\t\tvalues(): IterableIterator<any> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.values(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.entries(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue: [r.value, value]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.entries()\n\t\t}\n\t}\n\n\tfunction proxyMap_<T extends AnyMap>(\n\t\ttarget: T,\n\t\tparent?: ImmerState\n\t): [T, MapState] {\n\t\t// @ts-ignore\n\t\tconst map = new DraftMap(target, parent)\n\t\treturn [map as any, map[DRAFT_STATE]]\n\t}\n\n\tfunction prepareMapCopy(state: MapState) {\n\t\tif (!state.copy_) {\n\t\t\tstate.assigned_ = new Map()\n\t\t\tstate.copy_ = new Map(state.base_)\n\t\t}\n\t}\n\n\tclass DraftSet extends Set {\n\t\t[DRAFT_STATE]: SetState\n\t\tconstructor(target: AnySet, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Set,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this,\n\t\t\t\tdrafts_: new Map(),\n\t\t\t\trevoked_: false,\n\t\t\t\tisManual_: false,\n\t\t\t\tassigned_: undefined,\n\t\t\t\tcallbacks_: []\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(value: any): boolean {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\t// bit of trickery here, to be able to recognize both the value, and the draft of its value\n\t\t\tif (!state.copy_) {\n\t\t\t\treturn state.base_.has(value)\n\t\t\t}\n\t\t\tif (state.copy_.has(value)) return true\n\t\t\tif (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n\t\t\t\treturn true\n\t\t\treturn false\n\t\t}\n\n\t\tadd(value: any): any {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!this.has(value)) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.add(value)\n\t\t\t\thandleCrossReference(state, value, value)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(value: any): any {\n\t\t\tif (!this.has(value)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\treturn (\n\t\t\t\tstate.copy_!.delete(value) ||\n\t\t\t\t(state.drafts_.has(value)\n\t\t\t\t\t? state.copy_!.delete(state.drafts_.get(value))\n\t\t\t\t\t: /* istanbul ignore next */ false)\n\t\t\t)\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tvalues(): IterableIterator<any> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.values()\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.entries()\n\t\t}\n\n\t\tkeys(): IterableIterator<any> {\n\t\t\treturn this.values()\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.values()\n\t\t}\n\n\t\tforEach(cb: any, thisArg?: any) {\n\t\t\tconst iterator = this.values()\n\t\t\tlet result = iterator.next()\n\t\t\twhile (!result.done) {\n\t\t\t\tcb.call(thisArg, result.value, result.value, this)\n\t\t\t\tresult = iterator.next()\n\t\t\t}\n\t\t}\n\t}\n\tfunction proxySet_<T extends AnySet>(\n\t\ttarget: T,\n\t\tparent?: ImmerState\n\t): [T, SetState] {\n\t\t// @ts-ignore\n\t\tconst set = new DraftSet(target, parent)\n\t\treturn [set as any, set[DRAFT_STATE]]\n\t}\n\n\tfunction prepareSetCopy(state: SetState) {\n\t\tif (!state.copy_) {\n\t\t\t// create drafts for all entries to preserve insertion order\n\t\t\tstate.copy_ = new Set()\n\t\t\tstate.base_.forEach(value => {\n\t\t\t\tif (isDraftable(value)) {\n\t\t\t\t\tconst draft = createProxy(state.scope_, value, state, value)\n\t\t\t\t\tstate.drafts_.set(value, draft)\n\t\t\t\t\tstate.copy_!.add(draft)\n\t\t\t\t} else {\n\t\t\t\t\tstate.copy_!.add(value)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tfunction fixSetContents(target: ImmerState) {\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\tif (target.type_ === ArchType.Set && target.copy_) {\n\t\t\tconst copy = new Set(target.copy_)\n\t\t\ttarget.copy_.clear()\n\t\t\tcopy.forEach(value => {\n\t\t\t\ttarget.copy_!.add(getValue(value))\n\t\t\t})\n\t\t}\n\t}\n\n\tloadPlugin(PluginMapSet, {proxyMap_, proxySet_, fixSetContents})\n}\n", "import {\n\tPluginArrayMethods,\n\tlatest,\n\tloadPlugin,\n\tmarkChanged,\n\tprepareCopy,\n\thandleCrossReference,\n\tProxyArrayState\n} from \"../internal\"\n\n/**\n * Methods that directly modify the array in place.\n * These operate on the copy without creating per-element proxies:\n * - `push`, `pop`: Add/remove from end\n * - `shift`, `unshift`: Add/remove from start (marks all indices reassigned)\n * - `splice`: Add/remove at arbitrary position (marks all indices reassigned)\n * - `reverse`, `sort`: Reorder elements (marks all indices reassigned)\n */\ntype MutatingArrayMethod =\n\t| \"push\"\n\t| \"pop\"\n\t| \"shift\"\n\t| \"unshift\"\n\t| \"splice\"\n\t| \"reverse\"\n\t| \"sort\"\n\n/**\n * Methods that read from the array without modifying it.\n * These fall into distinct categories based on return semantics:\n *\n * **Subset operations** (return drafts - mutations propagate):\n * - `filter`, `slice`: Return array of draft proxies\n * - `find`, `findLast`: Return single draft proxy or undefined\n *\n * **Transform operations** (return base values - mutations don't track):\n * - `concat`, `flat`: Create new structures, not subsets of original\n *\n * **Primitive-returning** (no draft needed):\n * - `findIndex`, `findLastIndex`, `indexOf`, `lastIndexOf`: Return numbers\n * - `some`, `every`, `includes`: Return booleans\n * - `join`, `toString`, `toLocaleString`: Return strings\n */\ntype NonMutatingArrayMethod =\n\t| \"filter\"\n\t| \"slice\"\n\t| \"concat\"\n\t| \"flat\"\n\t| \"find\"\n\t| \"findIndex\"\n\t| \"findLast\"\n\t| \"findLastIndex\"\n\t| \"some\"\n\t| \"every\"\n\t| \"indexOf\"\n\t| \"lastIndexOf\"\n\t| \"includes\"\n\t| \"join\"\n\t| \"toString\"\n\t| \"toLocaleString\"\n\n/** Union of all array operation methods handled by the plugin. */\nexport type ArrayOperationMethod = MutatingArrayMethod | NonMutatingArrayMethod\n\n/**\n * Enables optimized array method handling for Immer drafts.\n *\n * This plugin overrides array methods to avoid unnecessary Proxy creation during iteration,\n * significantly improving performance for array-heavy operations.\n *\n * **Mutating methods** (push, pop, shift, unshift, splice, sort, reverse):\n * Operate directly on the copy without creating per-element proxies.\n *\n * **Non-mutating methods** fall into categories:\n * - **Subset operations** (filter, slice, find, findLast): Return draft proxies - mutations track\n * - **Transform operations** (concat, flat): Return base values - mutations don't track\n * - **Primitive-returning** (indexOf, includes, some, every, etc.): Return primitives\n *\n * **Important**: Callbacks for overridden methods receive base values, not drafts.\n * This is the core performance optimization.\n *\n * @example\n * ```ts\n * import { enableArrayMethods, produce } from \"immer\"\n *\n * enableArrayMethods()\n *\n * const next = produce(state, draft => {\n * // Optimized - no proxy creation per element\n * draft.items.sort((a, b) => a.value - b.value)\n *\n * // filter returns drafts - mutations propagate\n * const filtered = draft.items.filter(x => x.value > 5)\n * filtered[0].value = 999 // Affects draft.items[originalIndex]\n * })\n * ```\n *\n * @see https://immerjs.github.io/immer/array-methods\n */\nexport function enableArrayMethods() {\n\tconst SHIFTING_METHODS = new Set<MutatingArrayMethod>([\"shift\", \"unshift\"])\n\n\tconst QUEUE_METHODS = new Set<MutatingArrayMethod>([\"push\", \"pop\"])\n\n\tconst RESULT_RETURNING_METHODS = new Set<MutatingArrayMethod>([\n\t\t...QUEUE_METHODS,\n\t\t...SHIFTING_METHODS\n\t])\n\n\tconst REORDERING_METHODS = new Set<MutatingArrayMethod>([\"reverse\", \"sort\"])\n\n\t// Optimized method detection using array-based lookup\n\tconst MUTATING_METHODS = new Set<MutatingArrayMethod>([\n\t\t...RESULT_RETURNING_METHODS,\n\t\t...REORDERING_METHODS,\n\t\t\"splice\"\n\t])\n\n\tconst FIND_METHODS = new Set<NonMutatingArrayMethod>([\"find\", \"findLast\"])\n\n\tconst NON_MUTATING_METHODS = new Set<NonMutatingArrayMethod>([\n\t\t\"filter\",\n\t\t\"slice\",\n\t\t\"concat\",\n\t\t\"flat\",\n\t\t...FIND_METHODS,\n\t\t\"findIndex\",\n\t\t\"findLastIndex\",\n\t\t\"some\",\n\t\t\"every\",\n\t\t\"indexOf\",\n\t\t\"lastIndexOf\",\n\t\t\"includes\",\n\t\t\"join\",\n\t\t\"toString\",\n\t\t\"toLocaleString\"\n\t])\n\n\t// Type guard for method detection\n\tfunction isMutatingArrayMethod(\n\t\tmethod: string\n\t): method is MutatingArrayMethod {\n\t\treturn MUTATING_METHODS.has(method as any)\n\t}\n\n\tfunction isNonMutatingArrayMethod(\n\t\tmethod: string\n\t): method is NonMutatingArrayMethod {\n\t\treturn NON_MUTATING_METHODS.has(method as any)\n\t}\n\n\tfunction isArrayOperationMethod(\n\t\tmethod: string\n\t): method is ArrayOperationMethod {\n\t\treturn isMutatingArrayMethod(method) || isNonMutatingArrayMethod(method)\n\t}\n\n\tfunction enterOperation(\n\t\tstate: ProxyArrayState,\n\t\tmethod: ArrayOperationMethod\n\t) {\n\t\tstate.operationMethod = method\n\t}\n\n\tfunction exitOperation(state: ProxyArrayState) {\n\t\tstate.operationMethod = undefined\n\t}\n\n\t// Shared utility functions for array method handlers\n\tfunction executeArrayMethod<T>(\n\t\tstate: ProxyArrayState,\n\t\toperation: () => T,\n\t\tmarkLength = true\n\t): T {\n\t\tprepareCopy(state)\n\t\tconst result = operation()\n\t\tmarkChanged(state)\n\t\tif (markLength) state.assigned_!.set(\"length\", true)\n\t\treturn result\n\t}\n\n\tfunction markAllIndicesReassigned(state: ProxyArrayState) {\n\t\tstate.allIndicesReassigned_ = true\n\t}\n\n\tfunction normalizeSliceIndex(index: number, length: number): number {\n\t\tif (index < 0) {\n\t\t\treturn Math.max(length + index, 0)\n\t\t}\n\t\treturn Math.min(index, length)\n\t}\n\n\t/**\n\t * Calls handleCrossReference for each value being inserted into the array,\n\t * and marks the corresponding indices as assigned in `assigned_`.\n\t *\n\t * This ensures nested drafts inside inserted values (e.g. from spreading\n\t * a draft object) are properly finalized, matching the behavior of the\n\t * proxy set trap which calls handleCrossReference on every assignment.\n\t *\n\t * Without this, values containing draft proxies (like `{...state[0]}`)\n\t * pushed via the array methods plugin would have their nested drafts\n\t * revoked during finalization without being replaced by final values.\n\t */\n\tfunction handleInsertedValues(\n\t\tstate: ProxyArrayState,\n\t\tstartIndex: number,\n\t\tvalues: any[]\n\t) {\n\t\tfor (let i = 0; i < values.length; i++) {\n\t\t\tconst index = startIndex + i\n\t\t\tstate.assigned_!.set(index, true)\n\t\t\thandleCrossReference(state, index, values[i])\n\t\t}\n\t}\n\n\t/**\n\t * Handles mutating operations that add/remove elements (push, pop, shift, unshift, splice).\n\t *\n\t * Operates directly on `state.copy_` without creating per-element proxies.\n\t * For shifting methods (shift, unshift), marks all indices as reassigned since\n\t * indices shift.\n\t *\n\t * @returns For push/pop/shift/unshift: the native method result. For others: the draft.\n\t */\n\tfunction handleSimpleOperation(\n\t\tstate: ProxyArrayState,\n\t\tmethod: string,\n\t\targs: any[]\n\t) {\n\t\treturn executeArrayMethod(state, () => {\n\t\t\t// For push/unshift, capture the length before the operation\n\t\t\t// so we can compute insertion indices for handleCrossReference\n\t\t\tconst lengthBefore = state.copy_!.length\n\n\t\t\tconst result = (state.copy_! as any)[method](...args)\n\n\t\t\t// Handle index reassignment for shifting methods\n\t\t\tif (SHIFTING_METHODS.has(method as MutatingArrayMethod)) {\n\t\t\t\tmarkAllIndicesReassigned(state)\n\t\t\t}\n\n\t\t\t// Handle cross-references for newly inserted values.\n\t\t\t// push appends at the end, unshift inserts at the beginning.\n\t\t\tif (method === \"push\" && args.length > 0) {\n\t\t\t\thandleInsertedValues(state, lengthBefore, args)\n\t\t\t} else if (method === \"unshift\" && args.length > 0) {\n\t\t\t\thandleInsertedValues(state, 0, args)\n\t\t\t}\n\n\t\t\t// Return appropriate value based on method\n\t\t\treturn RESULT_RETURNING_METHODS.has(method as MutatingArrayMethod)\n\t\t\t\t? result\n\t\t\t\t: state.draft_\n\t\t})\n\t}\n\n\t/**\n\t * Handles reordering operations (reverse, sort) that change element order.\n\t *\n\t * Operates directly on `state.copy_` and marks all indices as reassigned\n\t * since element positions change. Does not mark length as changed since\n\t * these operations preserve array length.\n\t *\n\t * @returns The draft proxy for method chaining.\n\t */\n\tfunction handleReorderingOperation(\n\t\tstate: ProxyArrayState,\n\t\tmethod: string,\n\t\targs: any[]\n\t) {\n\t\treturn executeArrayMethod(\n\t\t\tstate,\n\t\t\t() => {\n\t\t\t\t;(state.copy_! as any)[method](...args)\n\t\t\t\tmarkAllIndicesReassigned(state)\n\t\t\t\treturn state.draft_\n\t\t\t},\n\t\t\tfalse\n\t\t) // Don't mark length as changed\n\t}\n\n\t/**\n\t * Creates an interceptor function for a specific array method.\n\t *\n\t * The interceptor wraps array method calls to:\n\t * 1. Set `state.operationMethod` flag during execution (allows proxy `get` trap\n\t * to detect we're inside an optimized method and skip proxy creation)\n\t * 2. Route to appropriate handler based on method type\n\t * 3. Clean up the operation flag in `finally` block\n\t *\n\t * The `operationMethod` flag is the key mechanism that enables the proxy's `get`\n\t * trap to return base values instead of creating nested proxies during iteration.\n\t *\n\t * @param state - The proxy array state\n\t * @param originalMethod - Name of the array method being intercepted\n\t * @returns Interceptor function that handles the method call\n\t */\n\tfunction createMethodInterceptor(\n\t\tstate: ProxyArrayState,\n\t\toriginalMethod: string\n\t) {\n\t\treturn function interceptedMethod(...args: any[]) {\n\t\t\t// Enter operation mode - this flag tells the proxy's get trap to return\n\t\t\t// base values instead of creating nested proxies during iteration\n\t\t\tconst method = originalMethod as ArrayOperationMethod\n\t\t\tenterOperation(state, method)\n\n\t\t\ttry {\n\t\t\t\t// Check if this is a mutating method\n\t\t\t\tif (isMutatingArrayMethod(method)) {\n\t\t\t\t\t// Direct method dispatch - no configuration lookup needed\n\t\t\t\t\tif (RESULT_RETURNING_METHODS.has(method)) {\n\t\t\t\t\t\treturn handleSimpleOperation(state, method, args)\n\t\t\t\t\t}\n\t\t\t\t\tif (REORDERING_METHODS.has(method)) {\n\t\t\t\t\t\treturn handleReorderingOperation(state, method, args)\n\t\t\t\t\t}\n\n\t\t\t\t\tif (method === \"splice\") {\n\t\t\t\t\t\tconst res = executeArrayMethod(state, () =>\n\t\t\t\t\t\t\tstate.copy_!.splice(...(args as [number, number, ...any[]]))\n\t\t\t\t\t\t)\n\t\t\t\t\t\tmarkAllIndicesReassigned(state)\n\t\t\t\t\t\t// Handle cross-references for inserted values (args from index 2+)\n\t\t\t\t\t\tif (args.length > 2) {\n\t\t\t\t\t\t\tconst startIndex = normalizeSliceIndex(\n\t\t\t\t\t\t\t\targs[0] ?? 0,\n\t\t\t\t\t\t\t\tstate.copy_!.length\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\thandleInsertedValues(state, startIndex, args.slice(2))\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn res\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Handle non-mutating methods\n\t\t\t\t\treturn handleNonMutatingOperation(state, method, args)\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\t// Always exit operation mode - must be in finally to handle exceptions\n\t\t\t\texitOperation(state)\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Handles non-mutating array methods with different return semantics.\n\t *\n\t * **Subset operations** return draft proxies for mutation tracking:\n\t * - `filter`, `slice`: Return `state.draft_[i]` for each selected element\n\t * - `find`, `findLast`: Return `state.draft_[i]` for the found element\n\t *\n\t * This allows mutations on returned elements to propagate back to the draft:\n\t * ```ts\n\t * const filtered = draft.items.filter(x => x.value > 5)\n\t * filtered[0].value = 999 // Mutates draft.items[originalIndex]\n\t * ```\n\t *\n\t * **Transform operations** return base values (no draft tracking):\n\t * - `concat`, `flat`: These create NEW arrays rather than selecting subsets.\n\t * Since the result structure differs from the original, tracking mutations\n\t * back to specific draft indices would be impractical/impossible.\n\t *\n\t * **Primitive operations** return the native result directly:\n\t * - `indexOf`, `includes`, `some`, `every`, `join`, etc.\n\t *\n\t * @param state - The proxy array state\n\t * @param method - The non-mutating method name\n\t * @param args - Arguments passed to the method\n\t * @returns Drafts for subset operations, base values for transforms, primitives otherwise\n\t */\n\tfunction handleNonMutatingOperation(\n\t\tstate: ProxyArrayState,\n\t\tmethod: NonMutatingArrayMethod,\n\t\targs: any[]\n\t) {\n\t\tconst source = latest(state)\n\n\t\t// Methods that return arrays with selected items - need to return drafts\n\t\tif (method === \"filter\") {\n\t\t\tconst predicate = args[0]\n\t\t\tconst result: any[] = []\n\n\t\t\t// First pass: call predicate on base values to determine which items pass\n\t\t\tfor (let i = 0; i < source.length; i++) {\n\t\t\t\tif (predicate(source[i], i, source)) {\n\t\t\t\t\t// Only create draft for items that passed the predicate\n\t\t\t\t\tresult.push(state.draft_[i])\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result\n\t\t}\n\n\t\tif (FIND_METHODS.has(method)) {\n\t\t\tconst predicate = args[0]\n\t\t\tconst isForward = method === \"find\"\n\t\t\tconst step = isForward ? 1 : -1\n\t\t\tconst start = isForward ? 0 : source.length - 1\n\n\t\t\tfor (let i = start; i >= 0 && i < source.length; i += step) {\n\t\t\t\tif (predicate(source[i], i, source)) {\n\t\t\t\t\treturn state.draft_[i]\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined\n\t\t}\n\n\t\tif (method === \"slice\") {\n\t\t\tconst rawStart = args[0] ?? 0\n\t\t\tconst rawEnd = args[1] ?? source.length\n\n\t\t\t// Normalize negative indices\n\t\t\tconst start = normalizeSliceIndex(rawStart, source.length)\n\t\t\tconst end = normalizeSliceIndex(rawEnd, source.length)\n\n\t\t\tconst result: any[] = []\n\n\t\t\t// Return drafts for items in the slice range\n\t\t\tfor (let i = start; i < end; i++) {\n\t\t\t\tresult.push(state.draft_[i])\n\t\t\t}\n\n\t\t\treturn result\n\t\t}\n\n\t\t// For other methods, call on base array directly:\n\t\t// - indexOf, includes, join, toString: Return primitives, no draft needed\n\t\t// - concat, flat: Return NEW arrays (not subsets). Elements are base values.\n\t\t// This is intentional - concat/flat create new data structures rather than\n\t\t// selecting subsets of the original, making draft tracking impractical.\n\t\treturn source[method as keyof typeof Array.prototype](...args)\n\t}\n\n\tloadPlugin(PluginArrayMethods, {\n\t\tcreateMethodInterceptor,\n\t\tisArrayOperationMethod,\n\t\tisMutatingArrayMethod\n\t})\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 let castDraft = <T>(value: T): Draft<T> => value as any\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 let castImmutable = <T>(value: T): Immutable<T> => value as any\n\nexport {Immer}\n\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableArrayMethods} from \"./plugins/arrayMethods\"\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", "// This must remain here so that the `mangleErrors.cjs` build script\n// does not have to import this into each source file it rewrites.\nimport { formatProdErrorMessage } from './formatProdErrorMessage';\nexport * from 'redux';\nexport { freeze, original } from 'immer';\nexport { createNextState, current, isDraft } from './immerImports';\nexport type { Draft, WritableDraft } from 'immer';\nexport { createSelector, lruMemoize } from 'reselect';\nexport { createSelectorCreator, weakMapMemoize } from './reselectImports';\nexport type { Selector, OutputSelector } from 'reselect';\nexport { createDraftSafeSelector, createDraftSafeSelectorCreator } from './createDraftSafeSelector';\nexport type { ThunkAction, ThunkDispatch, ThunkMiddleware } from 'redux-thunk';\nexport {\n// js\nconfigureStore } from './configureStore';\nexport type {\n// types\nConfigureStoreOptions, EnhancedStore } from './configureStore';\nexport type { DevToolsEnhancerOptions } from './devtoolsExtension';\nexport {\n// js\ncreateAction, isActionCreator, isFSA as isFluxStandardAction } from './createAction';\nexport type {\n// types\nPayloadAction, PayloadActionCreator, ActionCreatorWithNonInferrablePayload, ActionCreatorWithOptionalPayload, ActionCreatorWithPayload, ActionCreatorWithoutPayload, ActionCreatorWithPreparedPayload, PrepareAction } from './createAction';\nexport {\n// js\ncreateReducer } from './createReducer';\nexport type {\n// types\nActions, CaseReducer, CaseReducers } from './createReducer';\nexport {\n// js\ncreateSlice, buildCreateSlice, asyncThunkCreator, ReducerType } from './createSlice';\nexport type {\n// types\nCreateSliceOptions, Slice, CaseReducerActions, SliceCaseReducers, ValidateSliceCaseReducers, CaseReducerWithPrepare, ReducerCreators, SliceSelectors } from './createSlice';\nexport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware';\nexport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware';\nexport {\n// js\ncreateImmutableStateInvariantMiddleware, isImmutableDefault } from './immutableStateInvariantMiddleware';\nexport type {\n// types\nImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware';\nexport {\n// js\ncreateSerializableStateInvariantMiddleware, findNonSerializableValue, isPlain } from './serializableStateInvariantMiddleware';\nexport type {\n// types\nSerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware';\nexport type {\n// types\nActionReducerMapBuilder, AsyncThunkReducers } from './mapBuilders';\nexport { Tuple } from './utils';\nexport { createEntityAdapter } from './entities/create_adapter';\nexport type { EntityState, EntityAdapter, EntitySelectors, EntityStateAdapter, EntityId, Update, IdSelector, Comparer } from './entities/models';\nexport { createAsyncThunk, unwrapResult, miniSerializeError } from './createAsyncThunk';\nexport type { AsyncThunk, AsyncThunkConfig, AsyncThunkDispatchConfig, AsyncThunkOptions, AsyncThunkAction, AsyncThunkPayloadCreatorReturnValue, AsyncThunkPayloadCreator, GetState, GetThunkAPI, SerializedError, CreateAsyncThunkFunction } from './createAsyncThunk';\nexport {\n// js\nisAllOf, isAnyOf, isPending, isRejected, isFulfilled, isAsyncThunkAction, isRejectedWithValue } from './matchers';\nexport type {\n// types\nActionMatchingAllOf, ActionMatchingAnyOf } from './matchers';\nexport { nanoid } from './nanoid';\nexport type { ListenerEffect, ListenerMiddleware, ListenerEffectAPI, ListenerMiddlewareInstance, CreateListenerMiddlewareOptions, ListenerErrorHandler, TypedStartListening, TypedAddListener, TypedStopListening, TypedRemoveListener, UnsubscribeListener, UnsubscribeListenerOptions, ForkedTaskExecutor, ForkedTask, ForkedTaskAPI, AsyncTaskExecutor, SyncTaskExecutor, TaskCancelled, TaskRejected, TaskResolved, TaskResult } from './listenerMiddleware/index';\nexport type { AnyListenerPredicate } from './listenerMiddleware/types';\nexport { createListenerMiddleware, addListener, removeListener, clearAllListeners, TaskAbortError } from './listenerMiddleware/index';\nexport type { AddMiddleware, DynamicDispatch, DynamicMiddlewareInstance, GetDispatchType as GetDispatch, MiddlewareApiConfig } from './dynamicMiddleware/types';\nexport { createDynamicMiddleware } from './dynamicMiddleware/index';\nexport { SHOULD_AUTOBATCH, prepareAutoBatched, autoBatchEnhancer } from './autoBatchEnhancer';\nexport type { AutoBatchOptions } from './autoBatchEnhancer';\nexport { combineSlices } from './combineSlices';\nexport type { CombinedSliceReducer, WithSlice, WithSlicePreloadedState } from './combineSlices';\nexport type { ExtractDispatchExtensions as TSHelpersExtractDispatchExtensions, SafePromise } from './tsHelpers';\nexport { formatProdErrorMessage } from './formatProdErrorMessage';", "export { current, isDraft, produce as createNextState, isDraftable, setUseStrictIteration } from 'immer';", "export { createSelectorCreator, weakMapMemoize } from 'reselect';", "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);", "export { createStore, combineReducers, applyMiddleware, compose, isPlainObject, isAction } from 'redux';", "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 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 { Middleware, StoreEnhancer } from 'redux';\nimport type { Tuple } from './utils';\nexport function safeAssign<T extends object>(target: T, ...args: Array<Partial<NoInfer<T>>>) {\n Object.assign(target, ...args);\n}\n\n/**\n * return True if T is `any`, otherwise return False\n * taken from https://github.com/joonhocho/tsdef\n *\n * @internal\n */\nexport type IsAny<T, True, False = never> =\n// test if we are going the left AND right path in the condition\ntrue | false extends (T extends never ? true : false) ? True : False;\nexport type CastAny<T, CastTo> = IsAny<T, CastTo, T>;\n\n/**\n * return True if T is `unknown`, otherwise return False\n * taken from https://github.com/joonhocho/tsdef\n *\n * @internal\n */\nexport type IsUnknown<T, True, False = never> = unknown extends T ? IsAny<T, False, True> : False;\nexport type FallbackIfUnknown<T, Fallback> = IsUnknown<T, Fallback, T>;\n\n/**\n * @internal\n */\nexport type IfMaybeUndefined<P, True, False> = [undefined] extends [P] ? True : False;\n\n/**\n * @internal\n */\nexport type IfVoid<P, True, False> = [void] extends [P] ? True : False;\n\n/**\n * @internal\n */\nexport type IsEmptyObj<T, True, False = never> = T extends any ? keyof T extends never ? IsUnknown<T, False, IfMaybeUndefined<T, False, IfVoid<T, False, True>>> : False : never;\n\n/**\n * returns True if TS version is above 3.5, False if below.\n * uses feature detection to detect TS version >= 3.5\n * * versions below 3.5 will return `{}` for unresolvable interference\n * * versions above will return `unknown`\n *\n * @internal\n */\nexport type AtLeastTS35<True, False> = [True, False][IsUnknown<ReturnType<<T>() => T>, 0, 1>];\n\n/**\n * @internal\n */\nexport type IsUnknownOrNonInferrable<T, True, False> = AtLeastTS35<IsUnknown<T, True, False>, IsEmptyObj<T, True, IsUnknown<T, True, False>>>;\n\n/**\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\n */\nexport type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\n\n// Appears to have a convenient side effect of ignoring `never` even if that's not what you specified\nexport type ExcludeFromTuple<T, E, Acc extends unknown[] = []> = T extends [infer Head, ...infer Tail] ? ExcludeFromTuple<Tail, E, [...Acc, ...([Head] extends [E] ? [] : [Head])]> : Acc;\ntype ExtractDispatchFromMiddlewareTuple<MiddlewareTuple extends readonly any[], Acc extends {}> = MiddlewareTuple extends [infer Head, ...infer Tail] ? ExtractDispatchFromMiddlewareTuple<Tail, Acc & (Head extends Middleware<infer D> ? IsAny<D, {}, D> : {})> : Acc;\nexport type ExtractDispatchExtensions<M> = M extends Tuple<infer MiddlewareTuple> ? ExtractDispatchFromMiddlewareTuple<MiddlewareTuple, {}> : M extends ReadonlyArray<Middleware> ? ExtractDispatchFromMiddlewareTuple<[...M], {}> : never;\ntype ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStoreExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<infer Ext> ? IsAny<Ext, {}, Ext> : {})> : Acc;\nexport type ExtractStoreExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<infer Ext> ? Ext extends {} ? IsAny<Ext, {}, Ext> : {} : {}> : never;\ntype ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple extends readonly any[], Acc extends {}> = EnhancerTuple extends [infer Head, ...infer Tail] ? ExtractStateExtensionsFromEnhancerTuple<Tail, Acc & (Head extends StoreEnhancer<any, infer StateExt> ? IsAny<StateExt, {}, StateExt> : {})> : Acc;\nexport type ExtractStateExtensions<E> = E extends Tuple<infer EnhancerTuple> ? ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple, {}> : E extends ReadonlyArray<StoreEnhancer> ? UnionToIntersection<E[number] extends StoreEnhancer<any, infer StateExt> ? StateExt extends {} ? IsAny<StateExt, {}, StateExt> : {} : {}> : never;\n\n/**\n * Helper type. Passes T out again, but boxes it in a way that it cannot\n * \"widen\" the type by accident if it is a generic that should be inferred\n * from elsewhere.\n *\n * @internal\n */\nexport type NoInfer<T> = [T][T extends any ? 0 : never];\nexport type NonUndefined<T> = T extends undefined ? never : T;\nexport type WithRequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;\nexport type WithOptionalProp<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\nexport interface TypeGuard<T> {\n (value: any): value is T;\n}\nexport interface HasMatchFunction<T> {\n match: TypeGuard<T>;\n}\nexport const hasMatchFunction = <T,>(v: Matcher<T>): v is HasMatchFunction<T> => {\n return v && typeof (v as HasMatchFunction<T>).match === 'function';\n};\n\n/** @public */\nexport type Matcher<T> = HasMatchFunction<T> | TypeGuard<T>;\n\n/** @public */\nexport type ActionFromMatcher<M extends Matcher<any>> = M extends Matcher<infer T> ? T : never;\nexport type Id<T> = { [K in keyof T]: T[K] } & {};\nexport type Tail<T extends any[]> = T extends [any, ...infer Tail] ? Tail : never;\nexport type UnknownIfNonSpecific<T> = {} extends T ? unknown : T;\n\n/**\n * A Promise that will never reject.\n * @see https://github.com/reduxjs/redux-toolkit/issues/4101\n */\nexport type SafePromise<T> = Promise<T> & {\n __linterBrands: 'SafePromise';\n};\n\n/**\n * Properly wraps a Promise as a {@link SafePromise} with .catch(fallback).\n */\nexport function asSafePromise<Resolved, Rejected>(promise: Promise<Resolved>, fallback: (error: unknown) => Rejected) {\n return promise.catch(fallback) as SafePromise<Resolved | Rejected>;\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 type { Middleware } from 'redux';\nimport { isActionCreator as isRTKAction } from './createAction';\nexport interface ActionCreatorInvariantMiddlewareOptions {\n /**\n * The function to identify whether a value is an action creator.\n * The default checks for a function with a static type property and match method.\n */\n isActionCreator?: (action: unknown) => action is Function & {\n type?: unknown;\n };\n}\nexport function getMessage(type?: unknown) {\n const splitType = type ? `${type}`.split('/') : [];\n const actionName = splitType[splitType.length - 1] || 'actionCreator';\n return `Detected an action creator with type \"${type || 'unknown'}\" being dispatched. \nMake sure you're calling the action creator before dispatching, i.e. \\`dispatch(${actionName}())\\` instead of \\`dispatch(${actionName})\\`. This is necessary even if the action has no payload.`;\n}\nexport function createActionCreatorInvariantMiddleware(options: ActionCreatorInvariantMiddlewareOptions = {}): Middleware {\n if (process.env.NODE_ENV === 'production') {\n return () => next => action => next(action);\n }\n const {\n isActionCreator = isRTKAction\n } = options;\n return () => next => action => {\n if (isActionCreator(action)) {\n console.warn(getMessage(action.type));\n }\n return next(action);\n };\n}", "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 { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport type { Middleware } from 'redux';\nimport type { IgnorePaths } from './serializableStateInvariantMiddleware';\nimport { getTimeMeasureUtils } from './utils';\ntype EntryProcessor = (key: string, value: any) => any;\n\n/**\n * The default `isImmutable` function.\n *\n * @public\n */\nexport function isImmutableDefault(value: unknown): boolean {\n return typeof value !== 'object' || value == null || Object.isFrozen(value);\n}\nexport function trackForMutations(isImmutable: IsImmutableFunc, ignoredPaths: IgnorePaths | undefined, obj: any) {\n const trackedProperties = trackProperties(isImmutable, ignoredPaths, obj);\n return {\n detectMutations() {\n return detectMutations(isImmutable, ignoredPaths, trackedProperties, obj);\n }\n };\n}\ninterface TrackedProperty {\n value: any;\n children: Record<string, any>;\n}\nfunction trackProperties(isImmutable: IsImmutableFunc, ignoredPaths: IgnorePaths = [], obj: Record<string, any>, path: string = '', checkedObjects: Set<Record<string, any>> = new Set()) {\n const tracked: Partial<TrackedProperty> = {\n value: obj\n };\n if (!isImmutable(obj) && !checkedObjects.has(obj)) {\n checkedObjects.add(obj);\n tracked.children = {};\n const hasIgnoredPaths = ignoredPaths.length > 0;\n for (const key in obj) {\n const nestedPath = path ? path + '.' + key : key;\n if (hasIgnoredPaths) {\n const hasMatches = ignoredPaths.some(ignored => {\n if (ignored instanceof RegExp) {\n return ignored.test(nestedPath);\n }\n return nestedPath === ignored;\n });\n if (hasMatches) {\n continue;\n }\n }\n tracked.children[key] = trackProperties(isImmutable, ignoredPaths, obj[key], nestedPath);\n }\n }\n return tracked as TrackedProperty;\n}\nfunction detectMutations(isImmutable: IsImmutableFunc, ignoredPaths: IgnorePaths = [], trackedProperty: TrackedProperty, obj: any, sameParentRef: boolean = false, path: string = ''): {\n wasMutated: boolean;\n path?: string;\n} {\n const prevObj = trackedProperty ? trackedProperty.value : undefined;\n const sameRef = prevObj === obj;\n if (sameParentRef && !sameRef && !Number.isNaN(obj)) {\n return {\n wasMutated: true,\n path\n };\n }\n if (isImmutable(prevObj) || isImmutable(obj)) {\n return {\n wasMutated: false\n };\n }\n\n // Gather all keys from prev (tracked) and after objs\n const keysToDetect: Record<string, boolean> = {};\n for (let key in trackedProperty.children) {\n keysToDetect[key] = true;\n }\n for (let key in obj) {\n keysToDetect[key] = true;\n }\n const hasIgnoredPaths = ignoredPaths.length > 0;\n for (let key in keysToDetect) {\n const nestedPath = path ? path + '.' + key : key;\n if (hasIgnoredPaths) {\n const hasMatches = ignoredPaths.some(ignored => {\n if (ignored instanceof RegExp) {\n return ignored.test(nestedPath);\n }\n return nestedPath === ignored;\n });\n if (hasMatches) {\n continue;\n }\n }\n const result = detectMutations(isImmutable, ignoredPaths, trackedProperty.children[key], obj[key], sameRef, nestedPath);\n if (result.wasMutated) {\n return result;\n }\n }\n return {\n wasMutated: false\n };\n}\ntype IsImmutableFunc = (value: any) => boolean;\n\n/**\n * Options for `createImmutableStateInvariantMiddleware()`.\n *\n * @public\n */\nexport interface ImmutableStateInvariantMiddlewareOptions {\n /**\n Callback function to check if a value is considered to be immutable.\n This function is applied recursively to every value contained in the state.\n The default implementation will return true for primitive types\n (like numbers, strings, booleans, null and undefined).\n */\n isImmutable?: IsImmutableFunc;\n /**\n An array of dot-separated path strings that match named nodes from\n the root state to ignore when checking for immutability.\n Defaults to undefined\n */\n ignoredPaths?: IgnorePaths;\n /** Print a warning if checks take longer than N ms. Default: 32ms */\n warnAfter?: number;\n}\n\n/**\n * Creates a middleware that checks whether any state was mutated in between\n * dispatches or during a dispatch. If any mutations are detected, an error is\n * thrown.\n *\n * @param options Middleware options.\n *\n * @public\n */\nexport function createImmutableStateInvariantMiddleware(options: ImmutableStateInvariantMiddlewareOptions = {}): Middleware {\n if (process.env.NODE_ENV === 'production') {\n return () => next => action => next(action);\n } else {\n function stringify(obj: any, serializer?: EntryProcessor, indent?: string | number, decycler?: EntryProcessor): string {\n return JSON.stringify(obj, getSerialize(serializer, decycler), indent);\n }\n function getSerialize(serializer?: EntryProcessor, decycler?: EntryProcessor): EntryProcessor {\n let stack: any[] = [],\n keys: any[] = [];\n if (!decycler) decycler = function (_: string, value: any) {\n if (stack[0] === value) return '[Circular ~]';\n return '[Circular ~.' + keys.slice(0, stack.indexOf(value)).join('.') + ']';\n };\n return function (this: any, key: string, value: any) {\n if (stack.length > 0) {\n var thisPos = stack.indexOf(this);\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);\n if (~stack.indexOf(value)) value = decycler!.call(this, key, value);\n } else stack.push(value);\n return serializer == null ? value : serializer.call(this, key, value);\n };\n }\n let {\n isImmutable = isImmutableDefault,\n ignoredPaths,\n warnAfter = 32\n } = options;\n const track = trackForMutations.bind(null, isImmutable, ignoredPaths);\n return ({\n getState\n }) => {\n let state = getState();\n let tracker = track(state);\n let result;\n return next => action => {\n const measureUtils = getTimeMeasureUtils(warnAfter, 'ImmutableStateInvariantMiddleware');\n measureUtils.measureTime(() => {\n state = getState();\n result = tracker.detectMutations();\n // Track before potentially not meeting the invariant\n tracker = track(state);\n if (result.wasMutated) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(19) : `A state mutation was detected between dispatches, in the path '${result.path || ''}'. This may cause incorrect behavior. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);\n }\n });\n const dispatchedAction = next(action);\n measureUtils.measureTime(() => {\n state = getState();\n result = tracker.detectMutations();\n // Track before potentially not meeting the invariant\n tracker = track(state);\n if (result.wasMutated) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(20) : `A state mutation was detected inside a dispatch, in the path: ${result.path || ''}. Take a look at the reducer(s) handling the action ${stringify(action)}. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);\n }\n });\n measureUtils.warnIfExceeded();\n return dispatchedAction;\n };\n };\n }\n}", "import type { Middleware } from 'redux';\nimport { isAction, isPlainObject } from './reduxImports';\nimport { getTimeMeasureUtils } from './utils';\n\n/**\n * Returns true if the passed value is \"plain\", i.e. a value that is either\n * directly JSON-serializable (boolean, number, string, array, plain object)\n * or `undefined`.\n *\n * @param val The value to check.\n *\n * @public\n */\nexport function isPlain(val: any) {\n const type = typeof val;\n return val == null || type === 'string' || type === 'boolean' || type === 'number' || Array.isArray(val) || isPlainObject(val);\n}\ninterface NonSerializableValue {\n keyPath: string;\n value: unknown;\n}\nexport type IgnorePaths = readonly (string | RegExp)[];\n\n/**\n * @public\n */\nexport function findNonSerializableValue(value: unknown, path: string = '', isSerializable: (value: unknown) => boolean = isPlain, getEntries?: (value: unknown) => [string, any][], ignoredPaths: IgnorePaths = [], cache?: WeakSet<object>): NonSerializableValue | false {\n let foundNestedSerializable: NonSerializableValue | false;\n if (!isSerializable(value)) {\n return {\n keyPath: path || '<root>',\n value: value\n };\n }\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n if (cache?.has(value)) return false;\n const entries = getEntries != null ? getEntries(value) : Object.entries(value);\n const hasIgnoredPaths = ignoredPaths.length > 0;\n for (const [key, nestedValue] of entries) {\n const nestedPath = path ? path + '.' + key : key;\n if (hasIgnoredPaths) {\n const hasMatches = ignoredPaths.some(ignored => {\n if (ignored instanceof RegExp) {\n return ignored.test(nestedPath);\n }\n return nestedPath === ignored;\n });\n if (hasMatches) {\n continue;\n }\n }\n if (!isSerializable(nestedValue)) {\n return {\n keyPath: nestedPath,\n value: nestedValue\n };\n }\n if (typeof nestedValue === 'object') {\n foundNestedSerializable = findNonSerializableValue(nestedValue, nestedPath, isSerializable, getEntries, ignoredPaths, cache);\n if (foundNestedSerializable) {\n return foundNestedSerializable;\n }\n }\n }\n if (cache && isNestedFrozen(value)) cache.add(value);\n return false;\n}\nexport function isNestedFrozen(value: object) {\n if (!Object.isFrozen(value)) return false;\n for (const nestedValue of Object.values(value)) {\n if (typeof nestedValue !== 'object' || nestedValue === null) continue;\n if (!isNestedFrozen(nestedValue)) return false;\n }\n return true;\n}\n\n/**\n * Options for `createSerializableStateInvariantMiddleware()`.\n *\n * @public\n */\nexport interface SerializableStateInvariantMiddlewareOptions {\n /**\n * The function to check if a value is considered serializable. This\n * function is applied recursively to every value contained in the\n * state. Defaults to `isPlain()`.\n */\n isSerializable?: (value: any) => boolean;\n /**\n * The function that will be used to retrieve entries from each\n * value. If unspecified, `Object.entries` will be used. Defaults\n * to `undefined`.\n */\n getEntries?: (value: any) => [string, any][];\n\n /**\n * An array of action types to ignore when checking for serializability.\n * Defaults to []\n */\n ignoredActions?: string[];\n\n /**\n * An array of dot-separated path strings or regular expressions to ignore\n * when checking for serializability, Defaults to\n * ['meta.arg', 'meta.baseQueryMeta']\n */\n ignoredActionPaths?: (string | RegExp)[];\n\n /**\n * An array of dot-separated path strings or regular expressions to ignore\n * when checking for serializability, Defaults to []\n */\n ignoredPaths?: (string | RegExp)[];\n /**\n * Execution time warning threshold. If the middleware takes longer\n * than `warnAfter` ms, a warning will be displayed in the console.\n * Defaults to 32ms.\n */\n warnAfter?: number;\n\n /**\n * Opt out of checking state. When set to `true`, other state-related params will be ignored.\n */\n ignoreState?: boolean;\n\n /**\n * Opt out of checking actions. When set to `true`, other action-related params will be ignored.\n */\n ignoreActions?: boolean;\n\n /**\n * Opt out of caching the results. The cache uses a WeakSet and speeds up repeated checking processes.\n * The cache is automatically disabled if no browser support for WeakSet is present.\n */\n disableCache?: boolean;\n}\n\n/**\n * Creates a middleware that, after every state change, checks if the new\n * state is serializable. If a non-serializable value is found within the\n * state, an error is printed to the console.\n *\n * @param options Middleware options.\n *\n * @public\n */\nexport function createSerializableStateInvariantMiddleware(options: SerializableStateInvariantMiddlewareOptions = {}): Middleware {\n if (process.env.NODE_ENV === 'production') {\n return () => next => action => next(action);\n } else {\n const {\n isSerializable = isPlain,\n getEntries,\n ignoredActions = [],\n ignoredActionPaths = ['meta.arg', 'meta.baseQueryMeta'],\n ignoredPaths = [],\n warnAfter = 32,\n ignoreState = false,\n ignoreActions = false,\n disableCache = false\n } = options;\n const cache: WeakSet<object> | undefined = !disableCache && WeakSet ? new WeakSet() : undefined;\n return storeAPI => next => action => {\n if (!isAction(action)) {\n return next(action);\n }\n const result = next(action);\n const measureUtils = getTimeMeasureUtils(warnAfter, 'SerializableStateInvariantMiddleware');\n if (!ignoreActions && !(ignoredActions.length && ignoredActions.indexOf(action.type as any) !== -1)) {\n measureUtils.measureTime(() => {\n const foundActionNonSerializableValue = findNonSerializableValue(action, '', isSerializable, getEntries, ignoredActionPaths, cache);\n if (foundActionNonSerializableValue) {\n const {\n keyPath,\n value\n } = foundActionNonSerializableValue;\n console.error(`A non-serializable value was detected in an action, in the path: \\`${keyPath}\\`. Value:`, value, '\\nTake a look at the logic that dispatched this action: ', action, '\\n(See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)', '\\n(To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)');\n }\n });\n }\n if (!ignoreState) {\n measureUtils.measureTime(() => {\n const state = storeAPI.getState();\n const foundStateNonSerializableValue = findNonSerializableValue(state, '', isSerializable, getEntries, ignoredPaths, cache);\n if (foundStateNonSerializableValue) {\n const {\n keyPath,\n value\n } = foundStateNonSerializableValue;\n console.error(`A non-serializable value was detected in the state, in the path: \\`${keyPath}\\`. Value:`, value, `\nTake a look at the reducer(s) handling this action type: ${action.type}.\n(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)`);\n }\n });\n measureUtils.warnIfExceeded();\n }\n return result;\n };\n }\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/**\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}", "import type { ActionFromMatcher, Matcher, UnionToIntersection } from './tsHelpers';\nimport { hasMatchFunction } from './tsHelpers';\nimport type { AsyncThunk, AsyncThunkFulfilledActionCreator, AsyncThunkPendingActionCreator, AsyncThunkRejectedActionCreator } from './createAsyncThunk';\n\n/** @public */\nexport type ActionMatchingAnyOf<Matchers extends Matcher<any>[]> = ActionFromMatcher<Matchers[number]>;\n\n/** @public */\nexport type ActionMatchingAllOf<Matchers extends Matcher<any>[]> = UnionToIntersection<ActionMatchingAnyOf<Matchers>>;\nconst matches = (matcher: Matcher<any>, action: any) => {\n if (hasMatchFunction(matcher)) {\n return matcher.match(action);\n } else {\n return matcher(action);\n }\n};\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action matches any one of the supplied type guards or action\n * creators.\n *\n * @param matchers The type guards or action creators to match against.\n *\n * @public\n */\nexport function isAnyOf<Matchers extends Matcher<any>[]>(...matchers: Matchers) {\n return (action: any): action is ActionMatchingAnyOf<Matchers> => {\n return matchers.some(matcher => matches(matcher, action));\n };\n}\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action matches all of the supplied type guards or action\n * creators.\n *\n * @param matchers The type guards or action creators to match against.\n *\n * @public\n */\nexport function isAllOf<Matchers extends Matcher<any>[]>(...matchers: Matchers) {\n return (action: any): action is ActionMatchingAllOf<Matchers> => {\n return matchers.every(matcher => matches(matcher, action));\n };\n}\n\n/**\n * @param action A redux action\n * @param validStatus An array of valid meta.requestStatus values\n *\n * @internal\n */\nexport function hasExpectedRequestMetadata(action: any, validStatus: readonly string[]) {\n if (!action || !action.meta) return false;\n const hasValidRequestId = typeof action.meta.requestId === 'string';\n const hasValidRequestStatus = validStatus.indexOf(action.meta.requestStatus) > -1;\n return hasValidRequestId && hasValidRequestStatus;\n}\nfunction isAsyncThunkArray(a: [any] | AnyAsyncThunk[]): a is AnyAsyncThunk[] {\n return typeof a[0] === 'function' && 'pending' in a[0] && 'fulfilled' in a[0] && 'rejected' in a[0];\n}\nexport type UnknownAsyncThunkPendingAction = ReturnType<AsyncThunkPendingActionCreator<unknown>>;\nexport type PendingActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['pending']>;\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator, and that\n * the action is pending.\n *\n * @public\n */\nexport function isPending(): (action: any) => action is UnknownAsyncThunkPendingAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators,\n * and that the action is pending.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isPending<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is PendingActionFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a pending thunk action\n * @public\n */\nexport function isPending(action: any): action is UnknownAsyncThunkPendingAction;\nexport function isPending<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n if (asyncThunks.length === 0) {\n return (action: any) => hasExpectedRequestMetadata(action, ['pending']);\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isPending()(asyncThunks[0]);\n }\n return isAnyOf(...asyncThunks.map(asyncThunk => asyncThunk.pending));\n}\nexport type UnknownAsyncThunkRejectedAction = ReturnType<AsyncThunkRejectedActionCreator<unknown, unknown>>;\nexport type RejectedActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['rejected']>;\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator, and that\n * the action is rejected.\n *\n * @public\n */\nexport function isRejected(): (action: any) => action is UnknownAsyncThunkRejectedAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators,\n * and that the action is rejected.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isRejected<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is RejectedActionFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a rejected thunk action\n * @public\n */\nexport function isRejected(action: any): action is UnknownAsyncThunkRejectedAction;\nexport function isRejected<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n if (asyncThunks.length === 0) {\n return (action: any) => hasExpectedRequestMetadata(action, ['rejected']);\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isRejected()(asyncThunks[0]);\n }\n return isAnyOf(...asyncThunks.map(asyncThunk => asyncThunk.rejected));\n}\nexport type UnknownAsyncThunkRejectedWithValueAction = ReturnType<AsyncThunkRejectedActionCreator<unknown, unknown>>;\nexport type RejectedWithValueActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['rejected']> & (T extends AsyncThunk<any, any, {\n rejectValue: infer RejectedValue;\n}> ? {\n payload: RejectedValue;\n} : unknown);\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator, and that\n * the action is rejected with value.\n *\n * @public\n */\nexport function isRejectedWithValue(): (action: any) => action is UnknownAsyncThunkRejectedAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators,\n * and that the action is rejected with value.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isRejectedWithValue<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is RejectedWithValueActionFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a rejected thunk action with value\n * @public\n */\nexport function isRejectedWithValue(action: any): action is UnknownAsyncThunkRejectedAction;\nexport function isRejectedWithValue<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n const hasFlag = (action: any): action is any => {\n return action && action.meta && action.meta.rejectedWithValue;\n };\n if (asyncThunks.length === 0) {\n return isAllOf(isRejected(...asyncThunks), hasFlag);\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isRejectedWithValue()(asyncThunks[0]);\n }\n return isAllOf(isRejected(...asyncThunks), hasFlag);\n}\nexport type UnknownAsyncThunkFulfilledAction = ReturnType<AsyncThunkFulfilledActionCreator<unknown, unknown>>;\nexport type FulfilledActionFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['fulfilled']>;\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator, and that\n * the action is fulfilled.\n *\n * @public\n */\nexport function isFulfilled(): (action: any) => action is UnknownAsyncThunkFulfilledAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators,\n * and that the action is fulfilled.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isFulfilled<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is FulfilledActionFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a fulfilled thunk action\n * @public\n */\nexport function isFulfilled(action: any): action is UnknownAsyncThunkFulfilledAction;\nexport function isFulfilled<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n if (asyncThunks.length === 0) {\n return (action: any) => hasExpectedRequestMetadata(action, ['fulfilled']);\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isFulfilled()(asyncThunks[0]);\n }\n return isAnyOf(...asyncThunks.map(asyncThunk => asyncThunk.fulfilled));\n}\nexport type UnknownAsyncThunkAction = UnknownAsyncThunkPendingAction | UnknownAsyncThunkRejectedAction | UnknownAsyncThunkFulfilledAction;\nexport type AnyAsyncThunk = {\n pending: {\n match: (action: any) => action is any;\n };\n fulfilled: {\n match: (action: any) => action is any;\n };\n rejected: {\n match: (action: any) => action is any;\n };\n};\nexport type ActionsFromAsyncThunk<T extends AnyAsyncThunk> = ActionFromMatcher<T['pending']> | ActionFromMatcher<T['fulfilled']> | ActionFromMatcher<T['rejected']>;\n\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action was created by an async thunk action creator.\n *\n * @public\n */\nexport function isAsyncThunkAction(): (action: any) => action is UnknownAsyncThunkAction;\n/**\n * A higher-order function that returns a function that may be used to check\n * whether an action belongs to one of the provided async thunk action creators.\n *\n * @param asyncThunks (optional) The async thunk action creators to match against.\n *\n * @public\n */\nexport function isAsyncThunkAction<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks): (action: any) => action is ActionsFromAsyncThunk<AsyncThunks[number]>;\n/**\n * Tests if `action` is a thunk action\n * @public\n */\nexport function isAsyncThunkAction(action: any): action is UnknownAsyncThunkAction;\nexport function isAsyncThunkAction<AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]>(...asyncThunks: AsyncThunks | [any]) {\n if (asyncThunks.length === 0) {\n return (action: any) => hasExpectedRequestMetadata(action, ['pending', 'fulfilled', 'rejected']);\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isAsyncThunkAction()(asyncThunks[0]);\n }\n return isAnyOf(...asyncThunks.flatMap(asyncThunk => [asyncThunk.pending, asyncThunk.rejected, asyncThunk.fulfilled]));\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/**\n *\n * @public\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 type { Dispatch, UnknownAction } from 'redux';\nimport type { ThunkDispatch } from 'redux-thunk';\nimport type { ActionCreatorWithPreparedPayload } from './createAction';\nimport { createAction } from './createAction';\nimport { isAnyOf } from './matchers';\nimport { nanoid } from './nanoid';\nimport type { FallbackIfUnknown, Id, IsAny, IsUnknown, SafePromise } from './tsHelpers';\nexport type BaseThunkAPI<S, E, D extends Dispatch = Dispatch, RejectedValue = unknown, RejectedMeta = unknown, FulfilledMeta = unknown> = {\n dispatch: D;\n getState: () => S;\n extra: E;\n requestId: string;\n signal: AbortSignal;\n abort: (reason?: string) => void;\n rejectWithValue: IsUnknown<RejectedMeta, (value: RejectedValue) => RejectWithValue<RejectedValue, RejectedMeta>, (value: RejectedValue, meta: RejectedMeta) => RejectWithValue<RejectedValue, RejectedMeta>>;\n fulfillWithValue: IsUnknown<FulfilledMeta, <FulfilledValue>(value: FulfilledValue) => FulfilledValue, <FulfilledValue>(value: FulfilledValue, meta: FulfilledMeta) => FulfillWithMeta<FulfilledValue, FulfilledMeta>>;\n};\n\n/**\n * @public\n */\nexport interface SerializedError {\n name?: string;\n message?: string;\n stack?: string;\n code?: string;\n}\nconst commonProperties: Array<keyof SerializedError> = ['name', 'message', 'stack', 'code'];\nclass RejectWithValue<Payload, RejectedMeta> {\n /*\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\n does not exist at runtime\n */\n private readonly _type!: 'RejectWithValue';\n constructor(public readonly payload: Payload, public readonly meta: RejectedMeta) {}\n}\nclass FulfillWithMeta<Payload, FulfilledMeta> {\n /*\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\n does not exist at runtime\n */\n private readonly _type!: 'FulfillWithMeta';\n constructor(public readonly payload: Payload, public readonly meta: FulfilledMeta) {}\n}\n\n/**\n * Serializes an error into a plain object.\n * Reworked from https://github.com/sindresorhus/serialize-error\n *\n * @public\n */\nexport const miniSerializeError = (value: any): SerializedError => {\n if (typeof value === 'object' && value !== null) {\n const simpleError: SerializedError = {};\n for (const property of commonProperties) {\n if (typeof value[property] === 'string') {\n simpleError[property] = value[property];\n }\n }\n return simpleError;\n }\n return {\n message: String(value)\n };\n};\nexport type AsyncThunkConfig = {\n state?: unknown;\n dispatch?: ThunkDispatch<unknown, unknown, UnknownAction>;\n extra?: unknown;\n rejectValue?: unknown;\n serializedErrorType?: unknown;\n pendingMeta?: unknown;\n fulfilledMeta?: unknown;\n rejectedMeta?: unknown;\n};\nexport type GetState<ThunkApiConfig> = ThunkApiConfig extends {\n state: infer State;\n} ? State : unknown;\ntype GetExtra<ThunkApiConfig> = ThunkApiConfig extends {\n extra: infer Extra;\n} ? Extra : unknown;\ntype GetDispatch<ThunkApiConfig> = ThunkApiConfig extends {\n dispatch: infer Dispatch;\n} ? FallbackIfUnknown<Dispatch, ThunkDispatch<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, UnknownAction>> : ThunkDispatch<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, UnknownAction>;\nexport type GetThunkAPI<ThunkApiConfig> = BaseThunkAPI<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, GetDispatch<ThunkApiConfig>, GetRejectValue<ThunkApiConfig>, GetRejectedMeta<ThunkApiConfig>, GetFulfilledMeta<ThunkApiConfig>>;\ntype GetRejectValue<ThunkApiConfig> = ThunkApiConfig extends {\n rejectValue: infer RejectValue;\n} ? RejectValue : unknown;\ntype GetPendingMeta<ThunkApiConfig> = ThunkApiConfig extends {\n pendingMeta: infer PendingMeta;\n} ? PendingMeta : unknown;\ntype GetFulfilledMeta<ThunkApiConfig> = ThunkApiConfig extends {\n fulfilledMeta: infer FulfilledMeta;\n} ? FulfilledMeta : unknown;\ntype GetRejectedMeta<ThunkApiConfig> = ThunkApiConfig extends {\n rejectedMeta: infer RejectedMeta;\n} ? RejectedMeta : unknown;\ntype GetSerializedErrorType<ThunkApiConfig> = ThunkApiConfig extends {\n serializedErrorType: infer GetSerializedErrorType;\n} ? GetSerializedErrorType : SerializedError;\ntype MaybePromise<T> = T | Promise<T> | (T extends any ? Promise<T> : never);\n\n/**\n * A type describing the return value of the `payloadCreator` argument to `createAsyncThunk`.\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\n *\n * @public\n */\nexport type AsyncThunkPayloadCreatorReturnValue<Returned, ThunkApiConfig extends AsyncThunkConfig> = MaybePromise<IsUnknown<GetFulfilledMeta<ThunkApiConfig>, Returned, FulfillWithMeta<Returned, GetFulfilledMeta<ThunkApiConfig>>> | RejectWithValue<GetRejectValue<ThunkApiConfig>, GetRejectedMeta<ThunkApiConfig>>>;\n/**\n * A type describing the `payloadCreator` argument to `createAsyncThunk`.\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\n *\n * @public\n */\nexport type AsyncThunkPayloadCreator<Returned, ThunkArg = void, ThunkApiConfig extends AsyncThunkConfig = {}> = (arg: ThunkArg, thunkAPI: GetThunkAPI<ThunkApiConfig>) => AsyncThunkPayloadCreatorReturnValue<Returned, ThunkApiConfig>;\n\n/**\n * A ThunkAction created by `createAsyncThunk`.\n * Dispatching it returns a Promise for either a\n * fulfilled or rejected action.\n * Also, the returned value contains an `abort()` method\n * that allows the asyncAction to be cancelled from the outside.\n *\n * @public\n */\nexport type AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig> = (dispatch: NonNullable<GetDispatch<ThunkApiConfig>>, getState: () => GetState<ThunkApiConfig>, extra: GetExtra<ThunkApiConfig>) => SafePromise<ReturnType<AsyncThunkFulfilledActionCreator<Returned, ThunkArg>> | ReturnType<AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>>> & {\n abort: (reason?: string) => void;\n requestId: string;\n arg: ThunkArg;\n unwrap: () => Promise<Returned>;\n};\n\n/**\n * Config provided when calling the async thunk action creator.\n */\nexport interface AsyncThunkDispatchConfig {\n /**\n * An external `AbortSignal` that will be tracked by the internal `AbortSignal`.\n */\n signal?: AbortSignal;\n}\ntype AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig> = IsAny<ThunkArg,\n// any handling\n(arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>,\n// unknown handling\nunknown extends ThunkArg ? (arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument not specified or specified as void or undefined\n: [ThunkArg] extends [void] | [undefined] ? (arg?: undefined, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument contains void\n: [void] extends [ThunkArg] // make optional\n? (arg?: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument contains undefined\n: [undefined] extends [ThunkArg] ? WithStrictNullChecks<\n// with strict nullChecks: make optional\n(arg?: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>,\n// without strict null checks this will match everything, so don't make it optional\n(arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>> // default case: normal argument\n: (arg: ThunkArg, config?: AsyncThunkDispatchConfig) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>>;\n\n/**\n * Options object for `createAsyncThunk`.\n *\n * @public\n */\nexport type AsyncThunkOptions<ThunkArg = void, ThunkApiConfig extends AsyncThunkConfig = {}> = {\n /**\n * A method to control whether the asyncThunk should be executed. Has access to the\n * `arg`, `api.getState()` and `api.extra` arguments.\n *\n * @returns `false` if it should be skipped\n */\n condition?(arg: ThunkArg, api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>): MaybePromise<boolean | undefined>;\n /**\n * If `condition` returns `false`, the asyncThunk will be skipped.\n * This option allows you to control whether a `rejected` action with `meta.condition == false`\n * will be dispatched or not.\n *\n * @default `false`\n */\n dispatchConditionRejection?: boolean;\n serializeError?: (x: unknown) => GetSerializedErrorType<ThunkApiConfig>;\n\n /**\n * A function to use when generating the `requestId` for the request sequence.\n *\n * @default `nanoid`\n */\n idGenerator?: (arg: ThunkArg) => string;\n} & IsUnknown<GetPendingMeta<ThunkApiConfig>, {\n /**\n * A method to generate additional properties to be added to `meta` of the pending action.\n *\n * Using this optional overload will not modify the types correctly, this overload is only in place to support JavaScript users.\n * Please use the `ThunkApiConfig` parameter `pendingMeta` to get access to a correctly typed overload\n */\n getPendingMeta?(base: {\n arg: ThunkArg;\n requestId: string;\n }, api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>): GetPendingMeta<ThunkApiConfig>;\n}, {\n /**\n * A method to generate additional properties to be added to `meta` of the pending action.\n */\n getPendingMeta(base: {\n arg: ThunkArg;\n requestId: string;\n }, api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>): GetPendingMeta<ThunkApiConfig>;\n}>;\nexport type AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig = {}> = ActionCreatorWithPreparedPayload<[string, ThunkArg, GetPendingMeta<ThunkApiConfig>?], undefined, string, never, {\n arg: ThunkArg;\n requestId: string;\n requestStatus: 'pending';\n} & GetPendingMeta<ThunkApiConfig>>;\nexport type AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig = {}> = ActionCreatorWithPreparedPayload<[Error | null, string, ThunkArg, GetRejectValue<ThunkApiConfig>?, GetRejectedMeta<ThunkApiConfig>?], GetRejectValue<ThunkApiConfig> | undefined, string, GetSerializedErrorType<ThunkApiConfig>, {\n arg: ThunkArg;\n requestId: string;\n requestStatus: 'rejected';\n aborted: boolean;\n condition: boolean;\n} & (({\n rejectedWithValue: false;\n} & { [K in keyof GetRejectedMeta<ThunkApiConfig>]?: undefined }) | ({\n rejectedWithValue: true;\n} & GetRejectedMeta<ThunkApiConfig>))>;\nexport type AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig = {}> = ActionCreatorWithPreparedPayload<[Returned, string, ThunkArg, GetFulfilledMeta<ThunkApiConfig>?], Returned, string, never, {\n arg: ThunkArg;\n requestId: string;\n requestStatus: 'fulfilled';\n} & GetFulfilledMeta<ThunkApiConfig>>;\n\n/**\n * A type describing the return value of `createAsyncThunk`.\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\n *\n * @public\n */\nexport type AsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig> = AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig> & {\n pending: AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig>;\n rejected: AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>;\n fulfilled: AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig>;\n // matchSettled?\n settled: (action: any) => action is ReturnType<AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig> | AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig>>;\n typePrefix: string;\n};\nexport type OverrideThunkApiConfigs<OldConfig, NewConfig> = Id<NewConfig & Omit<OldConfig, keyof NewConfig>>;\nexport type CreateAsyncThunkFunction<CurriedThunkApiConfig extends AsyncThunkConfig> = {\n /**\n *\n * @param typePrefix\n * @param payloadCreator\n * @param options\n *\n * @public\n */\n // separate signature without `AsyncThunkConfig` for better inference\n <Returned, ThunkArg = void>(typePrefix: string, payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, CurriedThunkApiConfig>, options?: AsyncThunkOptions<ThunkArg, CurriedThunkApiConfig>): AsyncThunk<Returned, ThunkArg, CurriedThunkApiConfig>;\n\n /**\n *\n * @param typePrefix\n * @param payloadCreator\n * @param options\n *\n * @public\n */\n <Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig>(typePrefix: string, payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>, options?: AsyncThunkOptions<ThunkArg, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>): AsyncThunk<Returned, ThunkArg, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;\n};\ntype CreateAsyncThunk<CurriedThunkApiConfig extends AsyncThunkConfig> = CreateAsyncThunkFunction<CurriedThunkApiConfig> & {\n withTypes<ThunkApiConfig extends AsyncThunkConfig>(): CreateAsyncThunk<OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;\n};\nconst externalAbortMessage = 'External signal was aborted';\nexport const createAsyncThunk = /* @__PURE__ */(() => {\n function createAsyncThunk<Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig>(typePrefix: string, payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>, options?: AsyncThunkOptions<ThunkArg, ThunkApiConfig>): AsyncThunk<Returned, ThunkArg, ThunkApiConfig> {\n type RejectedValue = GetRejectValue<ThunkApiConfig>;\n type PendingMeta = GetPendingMeta<ThunkApiConfig>;\n type FulfilledMeta = GetFulfilledMeta<ThunkApiConfig>;\n type RejectedMeta = GetRejectedMeta<ThunkApiConfig>;\n const fulfilled: AsyncThunkFulfilledActionCreator<Returned, ThunkArg, ThunkApiConfig> = createAction(typePrefix + '/fulfilled', (payload: Returned, requestId: string, arg: ThunkArg, meta?: FulfilledMeta) => ({\n payload,\n meta: {\n ...(meta as any || {}),\n arg,\n requestId,\n requestStatus: 'fulfilled' as const\n }\n }));\n const pending: AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig> = createAction(typePrefix + '/pending', (requestId: string, arg: ThunkArg, meta?: PendingMeta) => ({\n payload: undefined,\n meta: {\n ...(meta as any || {}),\n arg,\n requestId,\n requestStatus: 'pending' as const\n }\n }));\n const rejected: AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig> = createAction(typePrefix + '/rejected', (error: Error | null, requestId: string, arg: ThunkArg, payload?: RejectedValue, meta?: RejectedMeta) => ({\n payload,\n error: (options && options.serializeError || miniSerializeError)(error || 'Rejected') as GetSerializedErrorType<ThunkApiConfig>,\n meta: {\n ...(meta as any || {}),\n arg,\n requestId,\n rejectedWithValue: !!payload,\n requestStatus: 'rejected' as const,\n aborted: error?.name === 'AbortError',\n condition: error?.name === 'ConditionError'\n }\n }));\n function actionCreator(arg: ThunkArg, {\n signal\n }: AsyncThunkDispatchConfig = {}): AsyncThunkAction<Returned, ThunkArg, Required<ThunkApiConfig>> {\n return (dispatch, getState, extra) => {\n const requestId = options?.idGenerator ? options.idGenerator(arg) : nanoid();\n const abortController = new AbortController();\n let abortHandler: (() => void) | undefined;\n let abortReason: string | undefined;\n function abort(reason?: string) {\n abortReason = reason;\n abortController.abort();\n }\n if (signal) {\n if (signal.aborted) {\n abort(externalAbortMessage);\n } else {\n signal.addEventListener('abort', () => abort(externalAbortMessage), {\n once: true\n });\n }\n }\n const promise = async function () {\n let finalAction: ReturnType<typeof fulfilled | typeof rejected>;\n try {\n let conditionResult = options?.condition?.(arg, {\n getState,\n extra\n });\n if (isThenable(conditionResult)) {\n conditionResult = await conditionResult;\n }\n if (conditionResult === false || abortController.signal.aborted) {\n // eslint-disable-next-line no-throw-literal\n throw {\n name: 'ConditionError',\n message: 'Aborted due to condition callback returning false.'\n };\n }\n const abortedPromise = new Promise<never>((_, reject) => {\n abortHandler = () => {\n reject({\n name: 'AbortError',\n message: abortReason || 'Aborted'\n });\n };\n abortController.signal.addEventListener('abort', abortHandler, {\n once: true\n });\n });\n dispatch(pending(requestId, arg, options?.getPendingMeta?.({\n requestId,\n arg\n }, {\n getState,\n extra\n })) as any);\n finalAction = await Promise.race([abortedPromise, Promise.resolve(payloadCreator(arg, {\n dispatch,\n getState,\n extra,\n requestId,\n signal: abortController.signal,\n abort,\n rejectWithValue: ((value: RejectedValue, meta?: RejectedMeta) => {\n return new RejectWithValue(value, meta);\n }) as any,\n fulfillWithValue: ((value: unknown, meta?: FulfilledMeta) => {\n return new FulfillWithMeta(value, meta);\n }) as any\n })).then(result => {\n if (result instanceof RejectWithValue) {\n throw result;\n }\n if (result instanceof FulfillWithMeta) {\n return fulfilled(result.payload, requestId, arg, result.meta);\n }\n return fulfilled(result as any, requestId, arg);\n })]);\n } catch (err) {\n finalAction = err instanceof RejectWithValue ? rejected(null, requestId, arg, err.payload, err.meta) : rejected(err as any, requestId, arg);\n } finally {\n if (abortHandler) {\n abortController.signal.removeEventListener('abort', abortHandler);\n }\n }\n // We dispatch the result action _after_ the catch, to avoid having any errors\n // here get swallowed by the try/catch block,\n // per https://twitter.com/dan_abramov/status/770914221638942720\n // and https://github.com/reduxjs/redux-toolkit/blob/e85eb17b39a2118d859f7b7746e0f3fee523e089/docs/tutorials/advanced-tutorial.md#async-error-handling-logic-in-thunks\n\n const skipDispatch = options && !options.dispatchConditionRejection && rejected.match(finalAction) && (finalAction as any).meta.condition;\n if (!skipDispatch) {\n dispatch(finalAction as any);\n }\n return finalAction;\n }();\n return Object.assign(promise as SafePromise<any>, {\n abort,\n requestId,\n arg,\n unwrap() {\n return promise.then<any>(unwrapResult);\n }\n });\n };\n }\n return Object.assign(actionCreator as AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig>, {\n pending,\n rejected,\n fulfilled,\n settled: isAnyOf(rejected, fulfilled),\n typePrefix\n });\n }\n createAsyncThunk.withTypes = () => createAsyncThunk;\n return createAsyncThunk as CreateAsyncThunk<AsyncThunkConfig>;\n})();\ninterface UnwrappableAction {\n payload: any;\n meta?: any;\n error?: any;\n}\ntype UnwrappedActionPayload<T extends UnwrappableAction> = Exclude<T, {\n error: any;\n}>['payload'];\n\n/**\n * @public\n */\nexport function unwrapResult<R extends UnwrappableAction>(action: R): UnwrappedActionPayload<R> {\n if (action.meta && action.meta.rejectedWithValue) {\n throw action.payload;\n }\n if (action.error) {\n throw action.error;\n }\n return action.payload;\n}\ntype WithStrictNullChecks<True, False> = undefined extends boolean ? False : True;\nfunction isThenable(value: any): value is PromiseLike<any> {\n return value !== null && typeof value === 'object' && typeof value.then === 'function';\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 { EntityId, EntityState, EntityStateAdapter, EntityStateFactory } from './models';\nexport function getInitialEntityState<T, Id extends EntityId>(): EntityState<T, Id> {\n return {\n ids: [],\n entities: {} as Record<Id, T>\n };\n}\nexport function createInitialStateFactory<T, Id extends EntityId>(stateAdapter: EntityStateAdapter<T, Id>): EntityStateFactory<T, Id> {\n function getInitialState(state?: undefined, entities?: readonly T[] | Record<Id, T>): EntityState<T, Id>;\n function getInitialState<S extends object>(additionalState: S, entities?: readonly T[] | Record<Id, T>): EntityState<T, Id> & S;\n function getInitialState(additionalState: any = {}, entities?: readonly T[] | Record<Id, T>): any {\n const state = Object.assign(getInitialEntityState(), additionalState);\n return entities ? stateAdapter.setAll(state, entities) : state;\n }\n return {\n getInitialState\n };\n}", "import type { CreateSelectorFunction, Selector } from 'reselect';\nimport { createDraftSafeSelector } from '../createDraftSafeSelector';\nimport type { EntityId, EntitySelectors, EntityState } from './models';\ntype AnyCreateSelectorFunction = CreateSelectorFunction<any, any, any>;\nexport type GetSelectorsOptions = {\n createSelector?: AnyCreateSelectorFunction;\n};\nexport function createSelectorsFactory<T, Id extends EntityId>() {\n function getSelectors(selectState?: undefined, options?: GetSelectorsOptions): EntitySelectors<T, EntityState<T, Id>, Id>;\n function getSelectors<V>(selectState: (state: V) => EntityState<T, Id>, options?: GetSelectorsOptions): EntitySelectors<T, V, Id>;\n function getSelectors<V>(selectState?: (state: V) => EntityState<T, Id>, options: GetSelectorsOptions = {}): EntitySelectors<T, any, Id> {\n const {\n createSelector = createDraftSafeSelector as AnyCreateSelectorFunction\n } = options;\n const selectIds = (state: EntityState<T, Id>) => state.ids;\n const selectEntities = (state: EntityState<T, Id>) => state.entities;\n const selectAll = createSelector(selectIds, selectEntities, (ids, entities): T[] => ids.map(id => entities[id]!));\n const selectId = (_: unknown, id: Id) => id;\n const selectById = (entities: Record<Id, T>, id: Id) => entities[id];\n const selectTotal = createSelector(selectIds, ids => ids.length);\n if (!selectState) {\n return {\n selectIds,\n selectEntities,\n selectAll,\n selectTotal,\n selectById: createSelector(selectEntities, selectId, selectById)\n };\n }\n const selectGlobalizedEntities = createSelector(selectState as Selector<V, EntityState<T, Id>>, selectEntities);\n return {\n selectIds: createSelector(selectState, selectIds),\n selectEntities: selectGlobalizedEntities,\n selectAll: createSelector(selectState, selectAll),\n selectTotal: createSelector(selectState, selectTotal),\n selectById: createSelector(selectGlobalizedEntities, selectId, selectById)\n };\n }\n return {\n getSelectors\n };\n}", "import { createNextState, isDraft } from '../immerImports';\nimport type { Draft } from 'immer';\nimport type { EntityId, DraftableEntityState, PreventAny } from './models';\nimport type { PayloadAction } from '../createAction';\nimport { isFSA } from '../createAction';\nexport const isDraftTyped = isDraft as <T>(value: T | Draft<T>) => value is Draft<T>;\nexport function createSingleArgumentStateOperator<T, Id extends EntityId>(mutator: (state: DraftableEntityState<T, Id>) => void) {\n const operator = createStateOperator((_: undefined, state: DraftableEntityState<T, Id>) => mutator(state));\n return function operation<S extends DraftableEntityState<T, Id>>(state: PreventAny<S, T, Id>): S {\n return operator(state as S, undefined);\n };\n}\nexport function createStateOperator<T, Id extends EntityId, R>(mutator: (arg: R, state: DraftableEntityState<T, Id>) => void) {\n return function operation<S extends DraftableEntityState<T, Id>>(state: S, arg: R | PayloadAction<R>): S {\n function isPayloadActionArgument(arg: R | PayloadAction<R>): arg is PayloadAction<R> {\n return isFSA(arg);\n }\n const runMutator = (draft: DraftableEntityState<T, Id>) => {\n if (isPayloadActionArgument(arg)) {\n mutator(arg.payload, draft);\n } else {\n mutator(arg, draft);\n }\n };\n if (isDraftTyped<DraftableEntityState<T, Id>>(state)) {\n // we must already be inside a `createNextState` call, likely because\n // this is being wrapped in `createReducer` or `createSlice`.\n // It's safe to just pass the draft to the mutator.\n runMutator(state);\n\n // since it's a draft, we'll just return it\n return state;\n }\n return createNextState(state, runMutator);\n };\n}", "import type { Draft } from 'immer';\nimport { current, isDraft } from '../immerImports';\nimport type { DraftableEntityState, EntityId, IdSelector, Update } from './models';\nexport function selectIdValue<T, Id extends EntityId>(entity: T, selectId: IdSelector<T, Id>) {\n const key = selectId(entity);\n if (process.env.NODE_ENV !== 'production' && key === undefined) {\n console.warn('The entity passed to the `selectId` implementation returned undefined.', 'You should probably provide your own `selectId` implementation.', 'The entity that was passed:', entity, 'The `selectId` implementation:', selectId.toString());\n }\n return key;\n}\nexport function ensureEntitiesArray<T, Id extends EntityId>(entities: readonly T[] | Record<Id, T>): readonly T[] {\n if (!Array.isArray(entities)) {\n entities = Object.values(entities);\n }\n return entities;\n}\nexport function getCurrent<T>(value: T | Draft<T>): T {\n return (isDraft(value) ? current(value) : value) as T;\n}\nexport function splitAddedUpdatedEntities<T, Id extends EntityId>(newEntities: readonly T[] | Record<Id, T>, selectId: IdSelector<T, Id>, state: DraftableEntityState<T, Id>): [T[], Update<T, Id>[], Id[]] {\n newEntities = ensureEntitiesArray(newEntities);\n const existingIdsArray = getCurrent(state.ids);\n const existingIds = new Set<Id>(existingIdsArray);\n const added: T[] = [];\n const addedIds = new Set<Id>([]);\n const updated: Update<T, Id>[] = [];\n for (const entity of newEntities) {\n const id = selectIdValue(entity, selectId);\n if (existingIds.has(id) || addedIds.has(id)) {\n updated.push({\n id,\n changes: entity\n });\n } else {\n addedIds.add(id);\n added.push(entity);\n }\n }\n return [added, updated, existingIdsArray];\n}", "import type { Draft } from 'immer';\nimport type { EntityStateAdapter, IdSelector, Update, EntityId, DraftableEntityState } from './models';\nimport { createStateOperator, createSingleArgumentStateOperator } from './state_adapter';\nimport { selectIdValue, ensureEntitiesArray, splitAddedUpdatedEntities } from './utils';\nexport function createUnsortedStateAdapter<T, Id extends EntityId>(selectId: IdSelector<T, Id>): EntityStateAdapter<T, Id> {\n type R = DraftableEntityState<T, Id>;\n function addOneMutably(entity: T, state: R): void {\n const key = selectIdValue(entity, selectId);\n if (key in state.entities) {\n return;\n }\n state.ids.push(key as Id & Draft<Id>);\n (state.entities as Record<Id, T>)[key] = entity;\n }\n function addManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n newEntities = ensureEntitiesArray(newEntities);\n for (const entity of newEntities) {\n addOneMutably(entity, state);\n }\n }\n function setOneMutably(entity: T, state: R): void {\n const key = selectIdValue(entity, selectId);\n if (!(key in state.entities)) {\n state.ids.push(key as Id & Draft<Id>);\n }\n ;\n (state.entities as Record<Id, T>)[key] = entity;\n }\n function setManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n newEntities = ensureEntitiesArray(newEntities);\n for (const entity of newEntities) {\n setOneMutably(entity, state);\n }\n }\n function setAllMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n newEntities = ensureEntitiesArray(newEntities);\n state.ids = [];\n state.entities = {} as Record<Id, T>;\n addManyMutably(newEntities, state);\n }\n function removeOneMutably(key: Id, state: R): void {\n return removeManyMutably([key], state);\n }\n function removeManyMutably(keys: readonly Id[], state: R): void {\n let didMutate = false;\n keys.forEach(key => {\n if (key in state.entities) {\n delete (state.entities as Record<Id, T>)[key];\n didMutate = true;\n }\n });\n if (didMutate) {\n state.ids = (state.ids as Id[]).filter(id => id in state.entities) as Id[] | Draft<Id[]>;\n }\n }\n function removeAllMutably(state: R): void {\n Object.assign(state, {\n ids: [],\n entities: {}\n });\n }\n function takeNewKey(keys: {\n [id: string]: Id;\n }, update: Update<T, Id>, state: R): boolean {\n const original: T | undefined = (state.entities as Record<Id, T>)[update.id];\n if (original === undefined) {\n return false;\n }\n const updated: T = Object.assign({}, original, update.changes);\n const newKey = selectIdValue(updated, selectId);\n const hasNewKey = newKey !== update.id;\n if (hasNewKey) {\n keys[update.id] = newKey;\n delete (state.entities as Record<Id, T>)[update.id];\n }\n ;\n (state.entities as Record<Id, T>)[newKey] = updated;\n return hasNewKey;\n }\n function updateOneMutably(update: Update<T, Id>, state: R): void {\n return updateManyMutably([update], state);\n }\n function updateManyMutably(updates: ReadonlyArray<Update<T, Id>>, state: R): void {\n const newKeys: {\n [id: string]: Id;\n } = {};\n const updatesPerEntity: {\n [id: string]: Update<T, Id>;\n } = {};\n updates.forEach(update => {\n // Only apply updates to entities that currently exist\n if (update.id in state.entities) {\n // If there are multiple updates to one entity, merge them together\n updatesPerEntity[update.id] = {\n id: update.id,\n // Spreads ignore falsy values, so this works even if there isn't\n // an existing update already at this key\n changes: {\n ...updatesPerEntity[update.id]?.changes,\n ...update.changes\n }\n };\n }\n });\n updates = Object.values(updatesPerEntity);\n const didMutateEntities = updates.length > 0;\n if (didMutateEntities) {\n const didMutateIds = updates.filter(update => takeNewKey(newKeys, update, state)).length > 0;\n if (didMutateIds) {\n state.ids = Object.values(state.entities).map(e => selectIdValue(e as T, selectId));\n }\n }\n }\n function upsertOneMutably(entity: T, state: R): void {\n return upsertManyMutably([entity], state);\n }\n function upsertManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n const [added, updated] = splitAddedUpdatedEntities<T, Id>(newEntities, selectId, state);\n addManyMutably(added, state);\n updateManyMutably(updated, state);\n }\n return {\n removeAll: createSingleArgumentStateOperator(removeAllMutably),\n addOne: createStateOperator(addOneMutably),\n addMany: createStateOperator(addManyMutably),\n setOne: createStateOperator(setOneMutably),\n setMany: createStateOperator(setManyMutably),\n setAll: createStateOperator(setAllMutably),\n updateOne: createStateOperator(updateOneMutably),\n updateMany: createStateOperator(updateManyMutably),\n upsertOne: createStateOperator(upsertOneMutably),\n upsertMany: createStateOperator(upsertManyMutably),\n removeOne: createStateOperator(removeOneMutably),\n removeMany: createStateOperator(removeManyMutably)\n };\n}", "import type { IdSelector, Comparer, EntityStateAdapter, Update, EntityId, DraftableEntityState } from './models';\nimport { createStateOperator } from './state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\nimport { selectIdValue, ensureEntitiesArray, splitAddedUpdatedEntities, getCurrent } from './utils';\n\n// Borrowed from Replay\nexport function findInsertIndex<T>(sortedItems: T[], item: T, comparisonFunction: Comparer<T>): number {\n let lowIndex = 0;\n let highIndex = sortedItems.length;\n while (lowIndex < highIndex) {\n let middleIndex = lowIndex + highIndex >>> 1;\n const currentItem = sortedItems[middleIndex];\n const res = comparisonFunction(item, currentItem);\n if (res >= 0) {\n lowIndex = middleIndex + 1;\n } else {\n highIndex = middleIndex;\n }\n }\n return lowIndex;\n}\nexport function insert<T>(sortedItems: T[], item: T, comparisonFunction: Comparer<T>): T[] {\n const insertAtIndex = findInsertIndex(sortedItems, item, comparisonFunction);\n sortedItems.splice(insertAtIndex, 0, item);\n return sortedItems;\n}\nexport function createSortedStateAdapter<T, Id extends EntityId>(selectId: IdSelector<T, Id>, comparer: Comparer<T>): EntityStateAdapter<T, Id> {\n type R = DraftableEntityState<T, Id>;\n const {\n removeOne,\n removeMany,\n removeAll\n } = createUnsortedStateAdapter(selectId);\n function addOneMutably(entity: T, state: R): void {\n return addManyMutably([entity], state);\n }\n function addManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R, existingIds?: Id[]): void {\n newEntities = ensureEntitiesArray(newEntities);\n const existingKeys = new Set<Id>(existingIds ?? getCurrent(state.ids));\n const addedKeys = new Set<Id>();\n const models = newEntities.filter(model => {\n const modelId = selectIdValue(model, selectId);\n const notAdded = !addedKeys.has(modelId);\n if (notAdded) addedKeys.add(modelId);\n return !existingKeys.has(modelId) && notAdded;\n });\n if (models.length !== 0) {\n mergeFunction(state, models);\n }\n }\n function setOneMutably(entity: T, state: R): void {\n return setManyMutably([entity], state);\n }\n function setManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n let deduplicatedEntities = {} as Record<Id, T>;\n newEntities = ensureEntitiesArray(newEntities);\n if (newEntities.length !== 0) {\n for (const item of newEntities) {\n const entityId = selectId(item);\n // For multiple items with the same ID, we should keep the last one.\n deduplicatedEntities[entityId] = item;\n delete (state.entities as Record<Id, T>)[entityId];\n }\n newEntities = ensureEntitiesArray(deduplicatedEntities);\n mergeFunction(state, newEntities);\n }\n }\n function setAllMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n newEntities = ensureEntitiesArray(newEntities);\n state.entities = {} as Record<Id, T>;\n state.ids = [];\n addManyMutably(newEntities, state, []);\n }\n function updateOneMutably(update: Update<T, Id>, state: R): void {\n return updateManyMutably([update], state);\n }\n function updateManyMutably(updates: ReadonlyArray<Update<T, Id>>, state: R): void {\n let appliedUpdates = false;\n let replacedIds = false;\n for (let update of updates) {\n const entity: T | undefined = (state.entities as Record<Id, T>)[update.id];\n if (!entity) {\n continue;\n }\n appliedUpdates = true;\n Object.assign(entity, update.changes);\n const newId = selectId(entity);\n if (update.id !== newId) {\n // We do support the case where updates can change an item's ID.\n // This makes things trickier - go ahead and swap the IDs in state now.\n replacedIds = true;\n delete (state.entities as Record<Id, T>)[update.id];\n const oldIndex = (state.ids as Id[]).indexOf(update.id);\n state.ids[oldIndex] = newId;\n (state.entities as Record<Id, T>)[newId] = entity;\n }\n }\n if (appliedUpdates) {\n mergeFunction(state, [], appliedUpdates, replacedIds);\n }\n }\n function upsertOneMutably(entity: T, state: R): void {\n return upsertManyMutably([entity], state);\n }\n function upsertManyMutably(newEntities: readonly T[] | Record<Id, T>, state: R): void {\n const [added, updated, existingIdsArray] = splitAddedUpdatedEntities<T, Id>(newEntities, selectId, state);\n if (added.length) {\n addManyMutably(added, state, existingIdsArray);\n }\n if (updated.length) {\n updateManyMutably(updated, state);\n }\n }\n function areArraysEqual(a: readonly unknown[], b: readonly unknown[]) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] === b[i]) {\n continue;\n }\n return false;\n }\n return true;\n }\n type MergeFunction = (state: R, addedItems: readonly T[], appliedUpdates?: boolean, replacedIds?: boolean) => void;\n const mergeFunction: MergeFunction = (state, addedItems, appliedUpdates, replacedIds) => {\n const currentEntities = getCurrent(state.entities);\n const currentIds = getCurrent(state.ids);\n const stateEntities = state.entities as Record<Id, T>;\n let ids: Iterable<Id> = currentIds;\n if (replacedIds) {\n ids = new Set(currentIds);\n }\n let sortedEntities: T[] = [];\n for (const id of ids) {\n const entity = currentEntities[id];\n if (entity) {\n sortedEntities.push(entity);\n }\n }\n const wasPreviouslyEmpty = sortedEntities.length === 0;\n\n // Insert/overwrite all new/updated\n for (const item of addedItems) {\n stateEntities[selectId(item)] = item;\n if (!wasPreviouslyEmpty) {\n // Binary search insertion generally requires fewer comparisons\n insert(sortedEntities, item, comparer);\n }\n }\n if (wasPreviouslyEmpty) {\n // All we have is the incoming values, sort them\n sortedEntities = addedItems.slice().sort(comparer);\n } else if (appliedUpdates) {\n // We should have a _mostly_-sorted array already\n sortedEntities.sort(comparer);\n }\n const newSortedIds = sortedEntities.map(selectId);\n if (!areArraysEqual(currentIds, newSortedIds)) {\n state.ids = newSortedIds;\n }\n };\n return {\n removeOne,\n removeMany,\n removeAll,\n addOne: createStateOperator(addOneMutably),\n updateOne: createStateOperator(updateOneMutably),\n upsertOne: createStateOperator(upsertOneMutably),\n setOne: createStateOperator(setOneMutably),\n setMany: createStateOperator(setManyMutably),\n setAll: createStateOperator(setAllMutably),\n addMany: createStateOperator(addManyMutably),\n updateMany: createStateOperator(updateManyMutably),\n upsertMany: createStateOperator(upsertManyMutably)\n };\n}", "import type { EntityAdapter, EntityId, EntityAdapterOptions } from './models';\nimport { createInitialStateFactory } from './entity_state';\nimport { createSelectorsFactory } from './state_selectors';\nimport { createSortedStateAdapter } from './sorted_state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\nimport type { WithRequiredProp } from '../tsHelpers';\nexport function createEntityAdapter<T, Id extends EntityId>(options: WithRequiredProp<EntityAdapterOptions<T, Id>, 'selectId'>): EntityAdapter<T, Id>;\nexport function createEntityAdapter<T extends {\n id: EntityId;\n}>(options?: Omit<EntityAdapterOptions<T, T['id']>, 'selectId'>): EntityAdapter<T, T['id']>;\n\n/**\n *\n * @param options\n *\n * @public\n */\nexport function createEntityAdapter<T>(options: EntityAdapterOptions<T, EntityId> = {}): EntityAdapter<T, EntityId> {\n const {\n selectId,\n sortComparer\n }: Required<EntityAdapterOptions<T, EntityId>> = {\n sortComparer: false,\n selectId: (instance: any) => instance.id,\n ...options\n };\n const stateAdapter = sortComparer ? createSortedStateAdapter(selectId, sortComparer) : createUnsortedStateAdapter(selectId);\n const stateFactory = createInitialStateFactory(stateAdapter);\n const selectorsFactory = createSelectorsFactory<T, EntityId>();\n return {\n selectId,\n sortComparer,\n ...stateFactory,\n ...selectorsFactory,\n ...stateAdapter\n };\n}", "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\";\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};", "import { TaskAbortError } from './exceptions';\nimport type { 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 * @see {TaskAbortError}\n * @throws {TaskAbortError} if the task tied to the input `signal` has been cancelled.\n */\nexport const validateActive = (signal: AbortSignal): void => {\n if (signal.aborted) {\n throw new TaskAbortError(signal.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: AbortSignal, 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 { AddListenerOverloads, AnyListenerPredicate, CreateListenerMiddlewareOptions, FallbackAddListenerOptions, ForkOptions, ForkedTask, ForkedTaskExecutor, ListenerEntry, ListenerErrorHandler, ListenerErrorInfo, ListenerMiddleware, ListenerMiddlewareInstance, TakePattern, TaskResult, TypedAddListener, TypedCreateListenerEntry, TypedRemoveListener, UnsubscribeListener, UnsubscribeListenerOptions } from './types';\nimport { 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: AbortSignal, parentBlockingPromises: Promise<any>[]) => {\n const linkControllers = (controller: AbortController) => addAbortSignalListener(parentAbortSignal, () => controller.abort(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 }, () => childAbortController.abort(taskCompleted));\n if (opts?.autoJoin) {\n parentBlockingPromises.push(result.catch(noop));\n }\n return {\n result: createPause<TaskResult<T>>(parentAbortSignal)(result),\n cancel() {\n childAbortController.abort(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 controller.abort(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 controller.abort(listenerCancelled);\n set.delete(controller);\n }\n });\n },\n cancel: () => {\n internalTaskController.abort(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 internalTaskController.abort(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 type { Dispatch, Middleware, UnknownAction } from 'redux';\nimport { compose } from '../reduxImports';\nimport { createAction } from '../createAction';\nimport { isAllOf } from '../matchers';\nimport { nanoid } from '../nanoid';\nimport { getOrInsertComputed } from '../utils';\nimport type { AddMiddleware, DynamicMiddleware, DynamicMiddlewareInstance, MiddlewareEntry, WithMiddleware } from './types';\nexport type { DynamicMiddlewareInstance, GetDispatchType as GetDispatch, MiddlewareApiConfig } from './types';\nconst createMiddlewareEntry = <State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>>(middleware: Middleware<any, State, DispatchType>): MiddlewareEntry<State, DispatchType> => ({\n middleware,\n applied: new Map()\n});\nconst matchInstance = (instanceId: string) => (action: any): action is {\n meta: {\n instanceId: string;\n };\n} => action?.meta?.instanceId === instanceId;\nexport const createDynamicMiddleware = <State = any, DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>>(): DynamicMiddlewareInstance<State, DispatchType> => {\n const instanceId = nanoid();\n const middlewareMap = new Map<Middleware<any, State, DispatchType>, MiddlewareEntry<State, DispatchType>>();\n const withMiddleware = Object.assign(createAction('dynamicMiddleware/add', (...middlewares: Middleware<any, State, DispatchType>[]) => ({\n payload: middlewares,\n meta: {\n instanceId\n }\n })), {\n withTypes: () => withMiddleware\n }) as WithMiddleware<State, DispatchType>;\n const addMiddleware = Object.assign(function addMiddleware(...middlewares: Middleware<any, State, DispatchType>[]) {\n middlewares.forEach(middleware => {\n getOrInsertComputed(middlewareMap, middleware, createMiddlewareEntry);\n });\n }, {\n withTypes: () => addMiddleware\n }) as AddMiddleware<State, DispatchType>;\n const getFinalMiddleware: Middleware<{}, State, DispatchType> = api => {\n const appliedMiddleware = Array.from(middlewareMap.values()).map(entry => getOrInsertComputed(entry.applied, api, entry.middleware));\n return compose(...appliedMiddleware);\n };\n const isWithMiddleware = isAllOf(withMiddleware, matchInstance(instanceId));\n const middleware: DynamicMiddleware<State, DispatchType> = api => next => action => {\n if (isWithMiddleware(action)) {\n addMiddleware(...action.payload);\n return api.dispatch;\n }\n return getFinalMiddleware(api)(next)(action);\n };\n return {\n middleware,\n addMiddleware,\n withMiddleware,\n instanceId\n };\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}", "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;", "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, isNotNil, isNullish, isNumber, isNumOrStr, mathSign } from './DataUtils';\nimport { getSliced } from './getSliced';\nimport { isWellBehavedNumber } from './isWellBehavedNumber';\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 * Of on four almost identical implementations of tick generation.\n * The four horsemen of tick generation are:\n * - {@link selectTooltipAxisTicks}\n * - {@link combineAxisTicks}\n * - {@link getTicksOfAxis}.\n * - {@link combineGraphicalItemTicks}\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 var scaled = scale.map(scaleContent);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\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: scaled + offset,\n value: entry,\n offset,\n index\n };\n }).filter(isNotNil);\n return result;\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 var scaled = scale.map(entry);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n coordinate: scaled + offset,\n value: entry,\n index,\n offset\n };\n }).filter(isNotNil);\n }\n if (scale.ticks && !isAll && tickCount != null) {\n return scale.ticks(tickCount).map((entry, index) => {\n var scaled = scale.map(entry);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n coordinate: scaled + offset,\n value: entry,\n index,\n offset\n };\n }).filter(isNotNil);\n }\n\n // When axis has duplicated text, serial numbers are used to generate scale\n return scale.domain().map((entry, index) => {\n var scaled = scale.map(entry);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n coordinate: scaled + offset,\n // @ts-expect-error can't use Date as an index\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index,\n offset\n };\n }).filter(isNotNil);\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 _series$;\n var n = series.length;\n if (n <= 0) {\n return;\n }\n var m = (_series$ = series[0]) === null || _series$ === void 0 ? void 0 : _series$.length;\n if (m == null || m <= 0) {\n return;\n }\n for (var j = 0; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n for (var i = 0; i < n; ++i) {\n var row = series[i];\n var col = row === null || row === void 0 ? void 0 : row[j];\n if (col == null) {\n continue;\n }\n var series1 = col[1];\n var series0 = col[0];\n var value = isNan(series1) ? series0 : series1;\n if (value >= 0) {\n col[0] = positive;\n positive += value;\n col[1] = positive;\n } else {\n col[0] = negative;\n negative += value;\n col[1] = negative;\n }\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 _series$2;\n var n = series.length;\n if (n <= 0) {\n return;\n }\n var m = (_series$2 = series[0]) === null || _series$2 === void 0 ? void 0 : _series$2.length;\n if (m == null || m <= 0) {\n return;\n }\n for (var j = 0; j < m; ++j) {\n var positive = 0;\n for (var i = 0; i < n; ++i) {\n var row = series[i];\n var col = row === null || row === void 0 ? void 0 : row[j];\n if (col == null) {\n continue;\n }\n var value = isNan(col[1]) ? col[0] : col[1];\n if (value >= 0) {\n col[0] = positive;\n positive += value;\n col[1] = positive;\n } else {\n col[0] = 0;\n col[1] = 0;\n }\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 _STACK_OFFSET_MAP$off;\n var offsetAccessor = (_STACK_OFFSET_MAP$off = STACK_OFFSET_MAP[offsetType]) !== null && _STACK_OFFSET_MAP$off !== void 0 ? _STACK_OFFSET_MAP$off : stackOffsetNone;\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 var result = stack(data);\n\n // Post-process ranged data: if value is an array of two numbers, use them directly without stacking\n result.forEach((series, seriesIndex) => {\n series.forEach((point, pointIndex) => {\n var value = getValueByDataKey(data[pointIndex], dataKeys[seriesIndex], 0);\n if (Array.isArray(value) && value.length === 2 && isNumber(value[0]) && isNumber(value[1])) {\n // eslint-disable-next-line prefer-destructuring,no-param-reassign\n point[0] = value[0];\n // eslint-disable-next-line prefer-destructuring,no-param-reassign\n point[1] = value[1];\n }\n });\n });\n return result;\n};\n\n/**\n * Externally, we accept both strings and numbers as stack IDs\n * @inline\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 !== null && ticks !== void 0 && ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n var value = getValueByDataKey(entry, !isNullish(dataKey) ? dataKey : axis.dataKey);\n var scaled = axis.scale.map(value);\n if (!isNumber(scaled)) {\n return null;\n }\n return scaled;\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 // getValueByDataKey does not validate the output type\n var value = getValueByDataKey(entry, axis.dataKey, axis.scale.domain()[index]);\n if (isNullish(value)) {\n return null;\n }\n var scaled = axis.scale.map(value);\n if (!isNumber(scaled)) {\n return null;\n }\n return scaled - bandSize / 2 + offset;\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 if (!group) {\n return result;\n }\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 if (!isWellBehavedNumber(s[0]) || !isWellBehavedNumber(s[1])) {\n return res;\n }\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 === null || cur === void 0 ? void 0 : cur.coordinate) || 0) - ((prev === null || prev === void 0 ? void 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.relativeX;\n }\n if (layout === 'vertical') {\n return coordinate.relativeY;\n }\n return undefined;\n};\nexport var calculatePolarTooltipPos = (rangeObj, layout) => {\n if (layout === 'centric') {\n return rangeObj.angle;\n }\n return rangeObj.radius;\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}", "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}", "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';\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});", "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/**\n * We use this attribute to identify which element is the one that the user is touching.\n * Unlike dataKey, or name, it is always unique.\n */\nexport var DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME = 'data-recharts-item-id';\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); }\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}));", "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};", "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}));", "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, defaultResponsiveContainerProps, getDefaultWidthAndHeight, getInnerDivStyle } from './responsiveContainerUtils';\nimport { isPositiveNumber } from '../util/isWellBehavedNumber';\nvar ResponsiveContainerContext = /*#__PURE__*/createContext(defaultResponsiveContainerProps.initialDimension);\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 = defaultResponsiveContainerProps.initialDimension,\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 = defaultResponsiveContainerProps.minWidth,\n minHeight,\n maxHeight,\n children,\n debounce = defaultResponsiveContainerProps.debounce,\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 entry = entries[0];\n if (entry == null) {\n return;\n }\n var {\n width: containerWidth,\n height: containerHeight\n } = entry.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 {@link https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver 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 {@link https://recharts.github.io/en-US/guide/sizes/ Chart size guide}\n *\n * @provides ResponsiveContainerContext\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});", "/* eslint no-console: 0 */\nvar isDev = true;\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};", "import { isPercent } from '../util/DataUtils';\nexport var defaultResponsiveContainerProps = {\n width: '100%',\n height: '100%',\n debounce: 0,\n minWidth: 0,\n initialDimension: {\n width: -1,\n height: -1\n }\n};\nexport var calculateChartDimensions = (containerWidth, containerHeight, props) => {\n var {\n width = defaultResponsiveContainerProps.width,\n height = defaultResponsiveContainerProps.height,\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 = defaultResponsiveContainerProps.width;\n calculatedHeight = defaultResponsiveContainerProps.height;\n } else if (calculatedWidth === undefined) {\n calculatedWidth = aspect && aspect > 0 ? undefined : defaultResponsiveContainerProps.width;\n } else if (calculatedHeight === undefined) {\n calculatedHeight = aspect && aspect > 0 ? undefined : defaultResponsiveContainerProps.height;\n }\n return {\n width: calculatedWidth,\n height: calculatedHeight\n };\n}", "// Should be no imports here!\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: unique symbol = Symbol.for(\"immer-nothing\")\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = Symbol.for(\"immer-draftable\")\n\nexport const DRAFT_STATE: unique symbol = Symbol.for(\"immer-state\")\n", "export const errors =\n\tprocess.env.NODE_ENV !== \"production\"\n\t\t? [\n\t\t\t\t// All error codes, starting by 0:\n\t\t\t\tfunction(plugin: string) {\n\t\t\t\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t\t\t\t},\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t\t\t\t},\n\t\t\t\t\"This object has been frozen and should not be mutated\",\n\t\t\t\tfunction(data: any) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\t\t\t\tdata\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t\t\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t\t\t\t\"Immer forbids circular references\",\n\t\t\t\t\"The first or second argument to `produce` must be a function\",\n\t\t\t\t\"The third argument to `produce` must be a function or undefined\",\n\t\t\t\t\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t\t\t\t\"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'current' expects a draft, got: ${thing}`\n\t\t\t\t},\n\t\t\t\t\"Object.defineProperty() cannot be used on an Immer draft\",\n\t\t\t\t\"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t\t\t\t\"Immer only supports deleting array indices\",\n\t\t\t\t\"Immer only supports setting array indices and the 'length' property\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'original' expects a draft, got: ${thing}`\n\t\t\t\t}\n\t\t\t\t// Note: if more errors are added, the errorOffset in Patches.ts should be increased\n\t\t\t\t// See Patches.ts for additional errors\n\t\t ]\n\t\t: []\n\nexport function die(error: number, ...args: any[]): never {\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst e = errors[error]\n\t\tconst msg = typeof e === \"function\" ? e.apply(null, args as any) : e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n", "import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\tArchType,\n\tdie,\n\tStrictMode\n} from \"../internal\"\n\nexport const getPrototypeOf = Object.getPrototypeOf\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\nconst cachedCtorStrings = new WeakMap()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\tif (proto === null || proto === Object.prototype) return true\n\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\tif (Ctor === Object) return true\n\n\tif (typeof Ctor !== \"function\") return false\n\n\tlet ctorString = cachedCtorStrings.get(Ctor)\n\tif (ctorString === undefined) {\n\t\tctorString = Function.toString.call(Ctor)\n\t\tcachedCtorStrings.set(Ctor, ctorString)\n\t}\n\n\treturn ctorString === objectCtorString\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original<T>(value: T): T | undefined\nexport function original(value: Drafted<any>): any {\n\tif (!isDraft(value)) die(15, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/**\n * Each iterates a map, set or array.\n * Or, if any other kind of object, all of its own properties.\n *\n * @param obj The object to iterate over\n * @param iter The iterator function\n * @param strict When true (default), includes symbols and non-enumerable properties.\n * When false, uses looseiteration over only enumerable string properties.\n */\nexport function each<T extends Objectish>(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tstrict?: boolean\n): void\nexport function each(obj: any, iter: any, strict: boolean = true) {\n\tif (getArchtype(obj) === ArchType.Object) {\n\t\t// If strict, we do a full iteration including symbols and non-enumerable properties\n\t\t// Otherwise, we only iterate enumerable string properties for performance\n\t\tconst keys = strict ? Reflect.ownKeys(obj) : Object.keys(obj)\n\t\tkeys.forEach(key => {\n\t\t\titer(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): ArchType {\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_\n\t\t: Array.isArray(thing)\n\t\t? ArchType.Array\n\t\t: isMap(thing)\n\t\t? ArchType.Map\n\t\t: isSet(thing)\n\t\t? ArchType.Set\n\t\t: ArchType.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === ArchType.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === ArchType.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === ArchType.Map) thing.set(propOrOldValue, value)\n\telse if (t === ArchType.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any, strict: StrictMode) {\n\tif (isMap(base)) {\n\t\treturn new Map(base)\n\t}\n\tif (isSet(base)) {\n\t\treturn new Set(base)\n\t}\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\n\tconst isPlain = isPlainObject(base)\n\n\tif (strict === true || (strict === \"class_only\" && !isPlain)) {\n\t\t// Perform a strict copy\n\t\tconst descriptors = Object.getOwnPropertyDescriptors(base)\n\t\tdelete descriptors[DRAFT_STATE as any]\n\t\tlet keys = Reflect.ownKeys(descriptors)\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\tconst key: any = keys[i]\n\t\t\tconst desc = descriptors[key]\n\t\t\tif (desc.writable === false) {\n\t\t\t\tdesc.writable = true\n\t\t\t\tdesc.configurable = true\n\t\t\t}\n\t\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t\t// with libraries that trap values, like mobx or vue\n\t\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\t\tif (desc.get || desc.set)\n\t\t\t\tdescriptors[key] = {\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\t\tvalue: base[key]\n\t\t\t\t}\n\t\t}\n\t\treturn Object.create(getPrototypeOf(base), descriptors)\n\t} else {\n\t\t// perform a sloppy copy\n\t\tconst proto = getPrototypeOf(base)\n\t\tif (proto !== null && isPlain) {\n\t\t\treturn {...base} // assumption: better inner class optimization than the assign below\n\t\t}\n\t\tconst obj = Object.create(proto)\n\t\treturn Object.assign(obj, base)\n\t}\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze<T>(obj: T, deep?: boolean): T\nexport function freeze<T>(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tObject.defineProperties(obj, {\n\t\t\tset: dontMutateMethodOverride,\n\t\t\tadd: dontMutateMethodOverride,\n\t\t\tclear: dontMutateMethodOverride,\n\t\t\tdelete: dontMutateMethodOverride\n\t\t})\n\t}\n\tObject.freeze(obj)\n\tif (deep)\n\t\t// See #590, don't recurse into non-enumerable / Symbol properties when freezing\n\t\t// So use Object.values (only string-like, enumerables) instead of each()\n\t\tObject.values(obj).forEach(value => freeze(value, true))\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nconst dontMutateMethodOverride = {\n\tvalue: dontMutateFrozenCollections\n}\n\nexport function isFrozen(obj: any): boolean {\n\t// Fast path: primitives and null/undefined are always \"frozen\"\n\tif (obj === null || typeof obj !== \"object\") return true\n\treturn Object.isFrozen(obj)\n}\n", "import {\n\tImmerState,\n\tPatch,\n\tDrafted,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tArchType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_<T>(draft: T, patches: readonly Patch[]): T\n\t}\n\tMapSet?: {\n\t\tproxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): T\n\t\tproxySet_<T extends AnySet>(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin<K extends keyof Plugins>(\n\tpluginKey: K\n): Exclude<Plugins[K], undefined> {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(0, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin<K extends keyof Plugins>(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ArchType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map<any, boolean> | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted<AnyMap, MapState>\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ArchType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map<any, Drafted> // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted<AnySet, SetState>\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n", "import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tArchType,\n\tgetPlugin\n} from \"../internal\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (state.type_ === ArchType.Object || state.type_ === ArchType.Array)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n", "import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tArchType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tisMap\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst useStrictIteration = rootScope.immer_.shouldUseStrictIteration()\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\tuseStrictIteration\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result = state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\t// And we let finalizeProperty know it needs to re-add non-draft children back to the target\n\t\tlet resultEach = result\n\t\tlet isSet = false\n\t\tif (state.type_ === ArchType.Set) {\n\t\t\tresultEach = new Set(result)\n\t\t\tresult.clear()\n\t\t\tisSet = true\n\t\t}\n\t\teach(\n\t\t\tresultEach,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(\n\t\t\t\t\trootScope,\n\t\t\t\t\tstate,\n\t\t\t\t\tresult,\n\t\t\t\t\tkey,\n\t\t\t\t\tchildValue,\n\t\t\t\t\tpath,\n\t\t\t\t\tisSet\n\t\t\t\t),\n\t\t\tuseStrictIteration\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath,\n\ttargetIsSet?: boolean\n) {\n\tif (childValue == null) {\n\t\treturn\n\t}\n\n\tif (typeof childValue !== \"object\" && !targetIsSet) {\n\t\treturn\n\t}\n\tconst childIsFrozen = isFrozen(childValue)\n\tif (childIsFrozen && !targetIsSet) {\n\t\treturn\n\t}\n\n\tif (process.env.NODE_ENV !== \"production\" && childValue === targetObject)\n\t\tdie(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ArchType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude<ImmerState, SetState>).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t} else if (targetIsSet) {\n\t\ttargetObject.add(childValue)\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !childIsFrozen) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tif (\n\t\t\tparentState &&\n\t\t\tparentState.base_ &&\n\t\t\tparentState.base_[prop] === childValue &&\n\t\t\tchildIsFrozen\n\t\t) {\n\t\t\t// Object is unchanged from base - no need to process further\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// Immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\t// Per #590, we never freeze symbolic properties. Just to make sure don't accidentally interfere\n\t\t// with other frameworks.\n\t\tif (\n\t\t\t(!parentState || !parentState.scope_.parent_) &&\n\t\t\ttypeof prop !== \"symbol\" &&\n\t\t\t(isMap(targetObject)\n\t\t\t\t? targetObject.has(prop)\n\t\t\t\t: Object.prototype.propertyIsEnumerable.call(targetObject, prop))\n\t\t)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n", "import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tgetPrototypeOf,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tArchType,\n\tImmerScope\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ArchType.Object\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted<AnyObject, ProxyObjectState>\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ArchType.Array\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted<AnyArray, ProxyArrayState>\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy<T extends Objectish>(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted<T, ProxyState> {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ArchType.Array : (ArchType.Object as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler<object | Array<any>> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler<ProxyState> = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(value, state))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\tif (state.copy_) {\n\t\t\tdelete state.copy_[prop]\n\t\t}\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ArchType.Array || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop as any)))\n\t\tdie(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (\n\t\tprocess.env.NODE_ENV !== \"production\" &&\n\t\tprop !== \"length\" &&\n\t\tisNaN(parseInt(prop as any))\n\t)\n\t\tdie(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t // prototype, we should invoke it with the draft as context!\n\t\t\t desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {\n\tbase_: any\n\tcopy_: any\n\tscope_: ImmerScope\n}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(\n\t\t\tstate.base_,\n\t\t\tstate.scope_.immer_.useStrictShallowCopy_\n\t\t)\n\t}\n}\n", "import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport type StrictMode = boolean | \"class_only\"\n\nexport class Immer implements ProducersFns {\n\tautoFreeze_: boolean = true\n\tuseStrictShallowCopy_: StrictMode = false\n\tuseStrictIteration_: boolean = true\n\n\tconstructor(config?: {\n\t\tautoFreeze?: boolean\n\t\tuseStrictShallowCopy?: StrictMode\n\t\tuseStrictIteration?: boolean\n\t}) {\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t\tif (typeof config?.useStrictShallowCopy === \"boolean\")\n\t\t\tthis.setUseStrictShallowCopy(config!.useStrictShallowCopy)\n\t\tif (typeof config?.useStrictIteration === \"boolean\")\n\t\t\tthis.setUseStrictIteration(config!.useStrictIteration)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(1, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft<T extends Objectish>(base: T): Draft<T> {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft<D extends Draft<any>>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft<infer T> ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (!state || !state.isManual_) die(9)\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to enable strict shallow copy.\n\t *\n\t * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n\t */\n\tsetUseStrictShallowCopy(value: StrictMode) {\n\t\tthis.useStrictShallowCopy_ = value\n\t}\n\n\t/**\n\t * Pass false to use faster iteration that skips non-enumerable properties\n\t * but still handles symbols for compatibility.\n\t *\n\t * By default, strict iteration is enabled (includes all own properties).\n\t */\n\tsetUseStrictIteration(value: boolean) {\n\t\tthis.useStrictIteration_ = value\n\t}\n\n\tshouldUseStrictIteration(): boolean {\n\t\treturn this.useStrictIteration_\n\t}\n\n\tapplyPatches<T extends Objectish>(base: T, patches: readonly Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy<T extends Objectish>(\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted<T, ImmerState> {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: createProxyProxy(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n", "import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tisFrozen\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current<T>(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(10, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value) || isFrozen(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tlet strict = true // Default to strict for compatibility\n\tif (state) {\n\t\tif (!state.modified_) return state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_)\n\t\tstrict = state.scope_.immer_.shouldUseStrictIteration()\n\t} else {\n\t\tcopy = shallowCopy(value, true)\n\t}\n\t// recurse\n\teach(\n\t\tcopy,\n\t\t(key, childValue) => {\n\t\t\tset(copy, key, currentImpl(childValue))\n\t\t},\n\t\tstrict\n\t)\n\tif (state) {\n\t\tstate.finalized_ = false\n\t}\n\treturn copy\n}\n", "import {immerable} from \"../immer\"\nimport {\n\tImmerState,\n\tPatch,\n\tSetState,\n\tProxyArrayState,\n\tMapState,\n\tProxyObjectState,\n\tPatchPath,\n\tget,\n\teach,\n\thas,\n\tgetArchtype,\n\tgetPrototypeOf,\n\tisSet,\n\tisMap,\n\tloadPlugin,\n\tArchType,\n\tdie,\n\tisDraft,\n\tisDraftable,\n\tNOTHING,\n\terrors\n} from \"../internal\"\n\nexport function enablePatches() {\n\tconst errorOffset = 16\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\terrors.push(\n\t\t\t'Sets cannot have \"replace\" patches.',\n\t\t\tfunction(op: string) {\n\t\t\t\treturn \"Unsupported patch operation: \" + op\n\t\t\t},\n\t\t\tfunction(path: string) {\n\t\t\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t\t\t},\n\t\t\t\"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n\t\t)\n\t}\n\n\tconst REPLACE = \"replace\"\n\tconst ADD = \"add\"\n\tconst REMOVE = \"remove\"\n\n\tfunction generatePatches_(\n\t\tstate: ImmerState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t): void {\n\t\tswitch (state.type_) {\n\t\t\tcase ArchType.Object:\n\t\t\tcase ArchType.Map:\n\t\t\t\treturn generatePatchesFromAssigned(\n\t\t\t\t\tstate,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches,\n\t\t\t\t\tinversePatches\n\t\t\t\t)\n\t\t\tcase ArchType.Array:\n\t\t\t\treturn generateArrayPatches(state, basePath, patches, inversePatches)\n\t\t\tcase ArchType.Set:\n\t\t\t\treturn generateSetPatches(\n\t\t\t\t\t(state as any) as SetState,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches,\n\t\t\t\t\tinversePatches\n\t\t\t\t)\n\t\t}\n\t}\n\n\tfunction generateArrayPatches(\n\t\tstate: ProxyArrayState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, assigned_} = state\n\t\tlet copy_ = state.copy_!\n\n\t\t// Reduce complexity by ensuring `base` is never longer.\n\t\tif (copy_.length < base_.length) {\n\t\t\t// @ts-ignore\n\t\t\t;[base_, copy_] = [copy_, base_]\n\t\t\t;[patches, inversePatches] = [inversePatches, patches]\n\t\t}\n\n\t\t// Process replaced indices.\n\t\tfor (let i = 0; i < base_.length; i++) {\n\t\t\tif (assigned_[i] && copy_[i] !== base_[i]) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t\t})\n\t\t\t\tinversePatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(base_[i])\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\t// Process added indices.\n\t\tfor (let i = base_.length; i < copy_.length; i++) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tpatches.push({\n\t\t\t\top: ADD,\n\t\t\t\tpath,\n\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t})\n\t\t}\n\t\tfor (let i = copy_.length - 1; base_.length <= i; --i) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tinversePatches.push({\n\t\t\t\top: REMOVE,\n\t\t\t\tpath\n\t\t\t})\n\t\t}\n\t}\n\n\t// This is used for both Map objects and normal objects.\n\tfunction generatePatchesFromAssigned(\n\t\tstate: MapState | ProxyObjectState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tconst {base_, copy_} = state\n\t\teach(state.assigned_!, (key, assignedValue) => {\n\t\t\tconst origValue = get(base_, key)\n\t\t\tconst value = get(copy_!, key)\n\t\t\tconst op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD\n\t\t\tif (origValue === value && op === REPLACE) return\n\t\t\tconst path = basePath.concat(key as any)\n\t\t\tpatches.push(op === REMOVE ? {op, path} : {op, path, value})\n\t\t\tinversePatches.push(\n\t\t\t\top === ADD\n\t\t\t\t\t? {op: REMOVE, path}\n\t\t\t\t\t: op === REMOVE\n\t\t\t\t\t? {op: ADD, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t\t\t: {op: REPLACE, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t)\n\t\t})\n\t}\n\n\tfunction generateSetPatches(\n\t\tstate: SetState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, copy_} = state\n\n\t\tlet i = 0\n\t\tbase_.forEach((value: any) => {\n\t\t\tif (!copy_!.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t\ti = 0\n\t\tcopy_!.forEach((value: any) => {\n\t\t\tif (!base_.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t}\n\n\tfunction generateReplacementPatches_(\n\t\tbaseValue: any,\n\t\treplacement: any,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t): void {\n\t\tpatches.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: replacement === NOTHING ? undefined : replacement\n\t\t})\n\t\tinversePatches.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: baseValue\n\t\t})\n\t}\n\n\tfunction applyPatches_<T>(draft: T, patches: readonly Patch[]): T {\n\t\tpatches.forEach(patch => {\n\t\t\tconst {path, op} = patch\n\n\t\t\tlet base: any = draft\n\t\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\t\tconst parentType = getArchtype(base)\n\t\t\t\tlet p = path[i]\n\t\t\t\tif (typeof p !== \"string\" && typeof p !== \"number\") {\n\t\t\t\t\tp = \"\" + p\n\t\t\t\t}\n\n\t\t\t\t// See #738, avoid prototype pollution\n\t\t\t\tif (\n\t\t\t\t\t(parentType === ArchType.Object || parentType === ArchType.Array) &&\n\t\t\t\t\t(p === \"__proto__\" || p === \"constructor\")\n\t\t\t\t)\n\t\t\t\t\tdie(errorOffset + 3)\n\t\t\t\tif (typeof base === \"function\" && p === \"prototype\")\n\t\t\t\t\tdie(errorOffset + 3)\n\t\t\t\tbase = get(base, p)\n\t\t\t\tif (typeof base !== \"object\") die(errorOffset + 2, path.join(\"/\"))\n\t\t\t}\n\n\t\t\tconst type = getArchtype(base)\n\t\t\tconst value = deepClonePatchValue(patch.value) // used to clone patch to ensure original patch is not modified, see #411\n\t\t\tconst key = path[path.length - 1]\n\t\t\tswitch (op) {\n\t\t\t\tcase REPLACE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\tdie(errorOffset)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// if value is an object, then it's assigned by reference\n\t\t\t\t\t\t\t// in the following add or remove ops, the value field inside the patch will also be modifyed\n\t\t\t\t\t\t\t// so we use value from the cloned patch\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase ADD:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn key === \"-\"\n\t\t\t\t\t\t\t\t? base.push(value)\n\t\t\t\t\t\t\t\t: base.splice(key as any, 0, value)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.add(value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase REMOVE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn base.splice(key as any, 1)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.delete(key)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.delete(patch.value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn delete base[key]\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tdie(errorOffset + 1, op)\n\t\t\t}\n\t\t})\n\n\t\treturn draft\n\t}\n\n\t// optimize: this is quite a performance hit, can we detect intelligently when it is needed?\n\t// E.g. auto-draft when new objects from outside are assigned and modified?\n\t// (See failing test when deepClone just returns obj)\n\tfunction deepClonePatchValue<T>(obj: T): T\n\tfunction deepClonePatchValue(obj: any) {\n\t\tif (!isDraftable(obj)) return obj\n\t\tif (Array.isArray(obj)) return obj.map(deepClonePatchValue)\n\t\tif (isMap(obj))\n\t\t\treturn new Map(\n\t\t\t\tArray.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n\t\t\t)\n\t\tif (isSet(obj)) return new Set(Array.from(obj).map(deepClonePatchValue))\n\t\tconst cloned = Object.create(getPrototypeOf(obj))\n\t\tfor (const key in obj) cloned[key] = deepClonePatchValue(obj[key])\n\t\tif (has(obj, immerable)) cloned[immerable] = obj[immerable]\n\t\treturn cloned\n\t}\n\n\tfunction clonePatchValueIfNeeded<T>(obj: T): T {\n\t\tif (isDraft(obj)) {\n\t\t\treturn deepClonePatchValue(obj)\n\t\t} else return obj\n\t}\n\n\tloadPlugin(\"Patches\", {\n\t\tapplyPatches_,\n\t\tgeneratePatches_,\n\t\tgenerateReplacementPatches_\n\t})\n}\n", "// types only!\nimport {\n\tImmerState,\n\tAnyMap,\n\tAnySet,\n\tMapState,\n\tSetState,\n\tDRAFT_STATE,\n\tgetCurrentScope,\n\tlatest,\n\tisDraftable,\n\tcreateProxy,\n\tloadPlugin,\n\tmarkChanged,\n\tdie,\n\tArchType,\n\teach\n} from \"../internal\"\n\nexport function enableMapSet() {\n\tclass DraftMap extends Map {\n\t\t[DRAFT_STATE]: MapState\n\n\t\tconstructor(target: AnyMap, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Map,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tassigned_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this as any,\n\t\t\t\tisManual_: false,\n\t\t\t\trevoked_: false\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(key: any): boolean {\n\t\t\treturn latest(this[DRAFT_STATE]).has(key)\n\t\t}\n\n\t\tset(key: any, value: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!latest(state).has(key) || latest(state).get(key) !== value) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t\tstate.copy_!.set(key, value)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(key: any): boolean {\n\t\t\tif (!this.has(key)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareMapCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\tif (state.base_.has(key)) {\n\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t} else {\n\t\t\t\tstate.assigned_!.delete(key)\n\t\t\t}\n\t\t\tstate.copy_!.delete(key)\n\t\t\treturn true\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_ = new Map()\n\t\t\t\teach(state.base_, key => {\n\t\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t\t})\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tforEach(cb: (value: any, key: any, self: any) => void, thisArg?: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tlatest(state).forEach((_value: any, key: any, _map: any) => {\n\t\t\t\tcb.call(thisArg, this.get(key), key, this)\n\t\t\t})\n\t\t}\n\n\t\tget(key: any): any {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tconst value = latest(state).get(key)\n\t\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\t\treturn value\n\t\t\t}\n\t\t\tif (value !== state.base_.get(key)) {\n\t\t\t\treturn value // either already drafted or reassigned\n\t\t\t}\n\t\t\t// despite what it looks, this creates a draft only once, see above condition\n\t\t\tconst draft = createProxy(value, state)\n\t\t\tprepareMapCopy(state)\n\t\t\tstate.copy_!.set(key, draft)\n\t\t\treturn draft\n\t\t}\n\n\t\tkeys(): IterableIterator<any> {\n\t\t\treturn latest(this[DRAFT_STATE]).keys()\n\t\t}\n\n\t\tvalues(): IterableIterator<any> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.values(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.entries(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue: [r.value, value]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.entries()\n\t\t}\n\t}\n\n\tfunction proxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): T {\n\t\t// @ts-ignore\n\t\treturn new DraftMap(target, parent)\n\t}\n\n\tfunction prepareMapCopy(state: MapState) {\n\t\tif (!state.copy_) {\n\t\t\tstate.assigned_ = new Map()\n\t\t\tstate.copy_ = new Map(state.base_)\n\t\t}\n\t}\n\n\tclass DraftSet extends Set {\n\t\t[DRAFT_STATE]: SetState\n\t\tconstructor(target: AnySet, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Set,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this,\n\t\t\t\tdrafts_: new Map(),\n\t\t\t\trevoked_: false,\n\t\t\t\tisManual_: false\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(value: any): boolean {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\t// bit of trickery here, to be able to recognize both the value, and the draft of its value\n\t\t\tif (!state.copy_) {\n\t\t\t\treturn state.base_.has(value)\n\t\t\t}\n\t\t\tif (state.copy_.has(value)) return true\n\t\t\tif (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n\t\t\t\treturn true\n\t\t\treturn false\n\t\t}\n\n\t\tadd(value: any): any {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!this.has(value)) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.add(value)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(value: any): any {\n\t\t\tif (!this.has(value)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\treturn (\n\t\t\t\tstate.copy_!.delete(value) ||\n\t\t\t\t(state.drafts_.has(value)\n\t\t\t\t\t? state.copy_!.delete(state.drafts_.get(value))\n\t\t\t\t\t: /* istanbul ignore next */ false)\n\t\t\t)\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tvalues(): IterableIterator<any> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.values()\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.entries()\n\t\t}\n\n\t\tkeys(): IterableIterator<any> {\n\t\t\treturn this.values()\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.values()\n\t\t}\n\n\t\tforEach(cb: any, thisArg?: any) {\n\t\t\tconst iterator = this.values()\n\t\t\tlet result = iterator.next()\n\t\t\twhile (!result.done) {\n\t\t\t\tcb.call(thisArg, result.value, result.value, this)\n\t\t\t\tresult = iterator.next()\n\t\t\t}\n\t\t}\n\t}\n\tfunction proxySet_<T extends AnySet>(target: T, parent?: ImmerState): T {\n\t\t// @ts-ignore\n\t\treturn new DraftSet(target, parent)\n\t}\n\n\tfunction prepareSetCopy(state: SetState) {\n\t\tif (!state.copy_) {\n\t\t\t// create drafts for all entries to preserve insertion order\n\t\t\tstate.copy_ = new Set()\n\t\t\tstate.base_.forEach(value => {\n\t\t\t\tif (isDraftable(value)) {\n\t\t\t\t\tconst draft = createProxy(value, state)\n\t\t\t\t\tstate.drafts_.set(value, draft)\n\t\t\t\t\tstate.copy_!.add(draft)\n\t\t\t\t} else {\n\t\t\t\t\tstate.copy_!.add(value)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"MapSet\", {proxyMap_, proxySet_})\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", "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 replaceLegendPayload: {\n reducer(state, action) {\n var {\n prev,\n next\n } = action.payload;\n var index = current(state).payload.indexOf(castDraft(prev));\n if (index > -1) {\n state.payload[index] = castDraft(next);\n }\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 replaceLegendPayload,\n removeLegendPayload\n} = legendSlice.actions;\nexport var legendReducer = legendSlice.reducer;", "import * as React from 'react'\n\nexport { React }\n", "import type { ElementType, MemoExoticComponent, ReactElement } from 'react'\nimport { React } from './react'\n\n// Directly ported from:\n// https://unpkg.com/browse/react-is@19.0.0/cjs/react-is.production.js\n// It's very possible this could change in the future, but given that\n// we only use these in `connect`, this is a low priority.\n\nexport const IS_REACT_19 = /* @__PURE__ */ React.version.startsWith('19')\n\nconst REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for(\n IS_REACT_19 ? 'react.transitional.element' : 'react.element',\n)\nconst REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for('react.portal')\nconst REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for('react.fragment')\nconst REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for('react.strict_mode')\nconst REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for('react.profiler')\nconst REACT_CONSUMER_TYPE = /* @__PURE__ */ Symbol.for('react.consumer')\nconst REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for('react.context')\nconst REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for('react.forward_ref')\nconst REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for('react.suspense')\nconst REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for(\n 'react.suspense_list',\n)\nconst REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for('react.memo')\nconst REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for('react.lazy')\nconst REACT_OFFSCREEN_TYPE = /* @__PURE__ */ Symbol.for('react.offscreen')\nconst REACT_CLIENT_REFERENCE = /* @__PURE__ */ Symbol.for(\n 'react.client.reference',\n)\n\nexport const ForwardRef = REACT_FORWARD_REF_TYPE\nexport const Memo = REACT_MEMO_TYPE\n\nexport function isValidElementType(type: any): type is ElementType {\n return typeof type === 'string' ||\n typeof type === 'function' ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n type === REACT_OFFSCREEN_TYPE ||\n (typeof type === 'object' &&\n type !== null &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE ||\n type.getModuleId !== undefined))\n ? !0\n : !1\n}\n\nfunction typeOf(object: any): symbol | undefined {\n if (typeof object === 'object' && object !== null) {\n const { $$typeof } = object\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (((object = object.type), object)) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return object\n default:\n switch (((object = object && object.$$typeof), object)) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object\n case REACT_CONSUMER_TYPE:\n return object\n default:\n return $$typeof\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof\n }\n }\n}\n\nexport function isContextConsumer(object: any): object is ReactElement {\n return IS_REACT_19\n ? typeOf(object) === REACT_CONSUMER_TYPE\n : typeOf(object) === REACT_CONTEXT_TYPE\n}\n\nexport function isMemo(object: any): object is MemoExoticComponent<any> {\n return typeOf(object) === REACT_MEMO_TYPE\n}\n", "/**\r\n * Prints a warning in the console if it exists.\r\n *\r\n * @param {String} message The warning message.\r\n * @returns {void}\r\n */\r\nexport default function warning(message: string) {\r\n /* eslint-disable no-console */\r\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\r\n console.error(message)\r\n }\r\n /* eslint-enable no-console */\r\n try {\r\n // This error was thrown as a convenience so that if you enable\r\n // \"break on all exceptions\" in your console,\r\n // it would pause the execution at this line.\r\n throw new Error(message)\r\n /* eslint-disable no-empty */\r\n } catch (e) {}\r\n /* eslint-enable no-empty */\r\n}\r\n", "import warning from '../utils/warning'\n\nfunction verify(selector: unknown, methodName: string): void {\n if (!selector) {\n throw new Error(`Unexpected value for ${methodName} in connect.`)\n } else if (\n methodName === 'mapStateToProps' ||\n methodName === 'mapDispatchToProps'\n ) {\n if (!Object.prototype.hasOwnProperty.call(selector, 'dependsOnOwnProps')) {\n warning(\n `The selector for ${methodName} of connect did not specify a value for dependsOnOwnProps.`,\n )\n }\n }\n}\n\nexport default function verifySubselectors(\n mapStateToProps: unknown,\n mapDispatchToProps: unknown,\n mergeProps: unknown,\n): void {\n verify(mapStateToProps, 'mapStateToProps')\n verify(mapDispatchToProps, 'mapDispatchToProps')\n verify(mergeProps, 'mergeProps')\n}\n", "import type { Dispatch, Action } from 'redux'\nimport type { ComponentType } from 'react'\nimport verifySubselectors from './verifySubselectors'\nimport type { EqualityFn, ExtendedEqualityFn } from '../types'\n\nexport type SelectorFactory<S, TProps, TOwnProps, TFactoryOptions> = (\n dispatch: Dispatch<Action<string>>,\n factoryOptions: TFactoryOptions,\n) => Selector<S, TProps, TOwnProps>\n\nexport type Selector<S, TProps, TOwnProps = null> = TOwnProps extends\n | null\n | undefined\n ? (state: S) => TProps\n : (state: S, ownProps: TOwnProps) => TProps\n\nexport type MapStateToProps<TStateProps, TOwnProps, State> = (\n state: State,\n ownProps: TOwnProps,\n) => TStateProps\n\nexport type MapStateToPropsFactory<TStateProps, TOwnProps, State> = (\n initialState: State,\n ownProps: TOwnProps,\n) => MapStateToProps<TStateProps, TOwnProps, State>\n\nexport type MapStateToPropsParam<TStateProps, TOwnProps, State> =\n | MapStateToPropsFactory<TStateProps, TOwnProps, State>\n | MapStateToProps<TStateProps, TOwnProps, State>\n | null\n | undefined\n\nexport type MapDispatchToPropsFunction<TDispatchProps, TOwnProps> = (\n dispatch: Dispatch<Action<string>>,\n ownProps: TOwnProps,\n) => TDispatchProps\n\nexport type MapDispatchToProps<TDispatchProps, TOwnProps> =\n | MapDispatchToPropsFunction<TDispatchProps, TOwnProps>\n | TDispatchProps\n\nexport type MapDispatchToPropsFactory<TDispatchProps, TOwnProps> = (\n dispatch: Dispatch<Action<string>>,\n ownProps: TOwnProps,\n) => MapDispatchToPropsFunction<TDispatchProps, TOwnProps>\n\nexport type MapDispatchToPropsParam<TDispatchProps, TOwnProps> =\n | MapDispatchToPropsFactory<TDispatchProps, TOwnProps>\n | MapDispatchToProps<TDispatchProps, TOwnProps>\n\nexport type MapDispatchToPropsNonObject<TDispatchProps, TOwnProps> =\n | MapDispatchToPropsFactory<TDispatchProps, TOwnProps>\n | MapDispatchToPropsFunction<TDispatchProps, TOwnProps>\n\nexport type MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps> = (\n stateProps: TStateProps,\n dispatchProps: TDispatchProps,\n ownProps: TOwnProps,\n) => TMergedProps\n\ninterface PureSelectorFactoryComparisonOptions<TStateProps, TOwnProps, State> {\n readonly areStatesEqual: ExtendedEqualityFn<State, TOwnProps>\n readonly areStatePropsEqual: EqualityFn<TStateProps>\n readonly areOwnPropsEqual: EqualityFn<TOwnProps>\n}\n\nfunction pureFinalPropsSelectorFactory<\n TStateProps,\n TOwnProps,\n TDispatchProps,\n TMergedProps,\n State,\n>(\n mapStateToProps: WrappedMapStateToProps<TStateProps, TOwnProps, State>,\n mapDispatchToProps: WrappedMapDispatchToProps<TDispatchProps, TOwnProps>,\n mergeProps: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,\n dispatch: Dispatch<Action<string>>,\n {\n areStatesEqual,\n areOwnPropsEqual,\n areStatePropsEqual,\n }: PureSelectorFactoryComparisonOptions<TStateProps, TOwnProps, State>,\n) {\n let hasRunAtLeastOnce = false\n let state: State\n let ownProps: TOwnProps\n let stateProps: TStateProps\n let dispatchProps: TDispatchProps\n let mergedProps: TMergedProps\n\n function handleFirstCall(firstState: State, firstOwnProps: TOwnProps) {\n state = firstState\n ownProps = firstOwnProps\n stateProps = mapStateToProps(state, ownProps)\n dispatchProps = mapDispatchToProps(dispatch, ownProps)\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n hasRunAtLeastOnce = true\n return mergedProps\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps)\n\n if (mapDispatchToProps.dependsOnOwnProps)\n dispatchProps = mapDispatchToProps(dispatch, ownProps)\n\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n return mergedProps\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps)\n stateProps = mapStateToProps(state, ownProps)\n\n if (mapDispatchToProps.dependsOnOwnProps)\n dispatchProps = mapDispatchToProps(dispatch, ownProps)\n\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n return mergedProps\n }\n\n function handleNewState() {\n const nextStateProps = mapStateToProps(state, ownProps)\n const statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps)\n stateProps = nextStateProps\n\n if (statePropsChanged)\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n\n return mergedProps\n }\n\n function handleSubsequentCalls(nextState: State, nextOwnProps: TOwnProps) {\n const propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps)\n const stateChanged = !areStatesEqual(\n nextState,\n state,\n nextOwnProps,\n ownProps,\n )\n state = nextState\n ownProps = nextOwnProps\n\n if (propsChanged && stateChanged) return handleNewPropsAndNewState()\n if (propsChanged) return handleNewProps()\n if (stateChanged) return handleNewState()\n return mergedProps\n }\n\n return function pureFinalPropsSelector(\n nextState: State,\n nextOwnProps: TOwnProps,\n ) {\n return hasRunAtLeastOnce\n ? handleSubsequentCalls(nextState, nextOwnProps)\n : handleFirstCall(nextState, nextOwnProps)\n }\n}\n\ninterface WrappedMapStateToProps<TStateProps, TOwnProps, State> {\n (state: State, ownProps: TOwnProps): TStateProps\n readonly dependsOnOwnProps: boolean\n}\n\ninterface WrappedMapDispatchToProps<TDispatchProps, TOwnProps> {\n (dispatch: Dispatch<Action<string>>, ownProps: TOwnProps): TDispatchProps\n readonly dependsOnOwnProps: boolean\n}\n\nexport interface InitOptions<TStateProps, TOwnProps, TMergedProps, State>\n extends PureSelectorFactoryComparisonOptions<TStateProps, TOwnProps, State> {\n readonly shouldHandleStateChanges: boolean\n readonly displayName: string\n readonly wrappedComponentName: string\n readonly WrappedComponent: ComponentType<TOwnProps>\n readonly areMergedPropsEqual: EqualityFn<TMergedProps>\n}\n\nexport interface SelectorFactoryOptions<\n TStateProps,\n TOwnProps,\n TDispatchProps,\n TMergedProps,\n State,\n> extends InitOptions<TStateProps, TOwnProps, TMergedProps, State> {\n readonly initMapStateToProps: (\n dispatch: Dispatch<Action<string>>,\n options: InitOptions<TStateProps, TOwnProps, TMergedProps, State>,\n ) => WrappedMapStateToProps<TStateProps, TOwnProps, State>\n readonly initMapDispatchToProps: (\n dispatch: Dispatch<Action<string>>,\n options: InitOptions<TStateProps, TOwnProps, TMergedProps, State>,\n ) => WrappedMapDispatchToProps<TDispatchProps, TOwnProps>\n readonly initMergeProps: (\n dispatch: Dispatch<Action<string>>,\n options: InitOptions<TStateProps, TOwnProps, TMergedProps, State>,\n ) => MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>\n}\n\n// TODO: Add more comments\n\n// The selector returned by selectorFactory will memoize its results,\n// allowing connect's shouldComponentUpdate to return false if final\n// props have not changed.\n\nexport default function finalPropsSelectorFactory<\n TStateProps,\n TOwnProps,\n TDispatchProps,\n TMergedProps,\n State,\n>(\n dispatch: Dispatch<Action<string>>,\n {\n initMapStateToProps,\n initMapDispatchToProps,\n initMergeProps,\n ...options\n }: SelectorFactoryOptions<\n TStateProps,\n TOwnProps,\n TDispatchProps,\n TMergedProps,\n State\n >,\n) {\n const mapStateToProps = initMapStateToProps(dispatch, options)\n const mapDispatchToProps = initMapDispatchToProps(dispatch, options)\n const mergeProps = initMergeProps(dispatch, options)\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps)\n }\n\n return pureFinalPropsSelectorFactory<\n TStateProps,\n TOwnProps,\n TDispatchProps,\n TMergedProps,\n State\n >(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options)\n}\n", "import type { ActionCreatorsMapObject, Dispatch } from 'redux'\n\nexport default function bindActionCreators(\n actionCreators: ActionCreatorsMapObject,\n dispatch: Dispatch,\n): ActionCreatorsMapObject {\n const boundActionCreators: ActionCreatorsMapObject = {}\n\n for (const key in actionCreators) {\n const actionCreator = actionCreators[key]\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = (...args) => dispatch(actionCreator(...args))\n }\n }\n return boundActionCreators\n}\n", "/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nexport default function isPlainObject(obj: unknown) {\n if (typeof obj !== 'object' || obj === null) return false\n\n const proto = Object.getPrototypeOf(obj)\n if (proto === null) return true\n\n let baseProto = proto\n while (Object.getPrototypeOf(baseProto) !== null) {\n baseProto = Object.getPrototypeOf(baseProto)\n }\n\n return proto === baseProto\n}\n", "import isPlainObject from './isPlainObject'\nimport warning from './warning'\n\nexport default function verifyPlainObject(\n value: unknown,\n displayName: string,\n methodName: string,\n) {\n if (!isPlainObject(value)) {\n warning(\n `${methodName}() in ${displayName} must return a plain object. Instead received ${value}.`,\n )\n }\n}\n", "import type { ActionCreatorsMapObject, Dispatch, ActionCreator } from 'redux'\n\nimport type { FixTypeLater } from '../types'\nimport verifyPlainObject from '../utils/verifyPlainObject'\n\ntype AnyState = { [key: string]: any }\ntype StateOrDispatch<S extends AnyState = AnyState> = S | Dispatch\n\ntype AnyProps = { [key: string]: any }\n\nexport type MapToProps<P extends AnyProps = AnyProps> = {\n // eslint-disable-next-line no-unused-vars\n (stateOrDispatch: StateOrDispatch, ownProps?: P): FixTypeLater\n dependsOnOwnProps?: boolean\n}\n\nexport function wrapMapToPropsConstant(\n // * Note:\n // It seems that the dispatch argument\n // could be a dispatch function in some cases (ex: whenMapDispatchToPropsIsMissing)\n // and a state object in some others (ex: whenMapStateToPropsIsMissing)\n // eslint-disable-next-line no-unused-vars\n getConstant: (dispatch: Dispatch) =>\n | {\n dispatch?: Dispatch\n dependsOnOwnProps?: boolean\n }\n | ActionCreatorsMapObject\n | ActionCreator<any>,\n) {\n return function initConstantSelector(dispatch: Dispatch) {\n const constant = getConstant(dispatch)\n\n function constantSelector() {\n return constant\n }\n constantSelector.dependsOnOwnProps = false\n return constantSelector\n }\n}\n\n// dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n// TODO Can this get pulled out so that we can subscribe directly to the store if we don't need ownProps?\nfunction getDependsOnOwnProps(mapToProps: MapToProps) {\n return mapToProps.dependsOnOwnProps\n ? Boolean(mapToProps.dependsOnOwnProps)\n : mapToProps.length !== 1\n}\n\n// Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\nexport function wrapMapToPropsFunc<P extends AnyProps = AnyProps>(\n mapToProps: MapToProps,\n methodName: string,\n) {\n return function initProxySelector(\n dispatch: Dispatch,\n { displayName }: { displayName: string },\n ) {\n const proxy = function mapToPropsProxy(\n stateOrDispatch: StateOrDispatch,\n ownProps?: P,\n ): MapToProps {\n return proxy.dependsOnOwnProps\n ? proxy.mapToProps(stateOrDispatch, ownProps)\n : proxy.mapToProps(stateOrDispatch, undefined)\n }\n\n // allow detectFactoryAndVerify to get ownProps\n proxy.dependsOnOwnProps = true\n\n proxy.mapToProps = function detectFactoryAndVerify(\n stateOrDispatch: StateOrDispatch,\n ownProps?: P,\n ): MapToProps {\n proxy.mapToProps = mapToProps\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps)\n let props = proxy(stateOrDispatch, ownProps)\n\n if (typeof props === 'function') {\n proxy.mapToProps = props\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props)\n props = proxy(stateOrDispatch, ownProps)\n }\n\n if (process.env.NODE_ENV !== 'production')\n verifyPlainObject(props, displayName, methodName)\n\n return props\n }\n\n return proxy\n }\n}\n", "import type { Action, Dispatch } from 'redux'\n\nexport function createInvalidArgFactory(arg: unknown, name: string) {\n return (\n dispatch: Dispatch<Action<string>>,\n options: { readonly wrappedComponentName: string },\n ) => {\n throw new Error(\n `Invalid value of type ${typeof arg} for ${name} argument when connecting component ${\n options.wrappedComponentName\n }.`,\n )\n }\n}\n", "import type { Action, Dispatch } from 'redux'\nimport bindActionCreators from '../utils/bindActionCreators'\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps'\nimport { createInvalidArgFactory } from './invalidArgFactory'\nimport type { MapDispatchToPropsParam } from './selectorFactory'\n\nexport function mapDispatchToPropsFactory<TDispatchProps, TOwnProps>(\n mapDispatchToProps:\n | MapDispatchToPropsParam<TDispatchProps, TOwnProps>\n | undefined,\n) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object'\n ? wrapMapToPropsConstant((dispatch: Dispatch<Action<string>>) =>\n // @ts-ignore\n bindActionCreators(mapDispatchToProps, dispatch),\n )\n : !mapDispatchToProps\n ? wrapMapToPropsConstant((dispatch: Dispatch<Action<string>>) => ({\n dispatch,\n }))\n : typeof mapDispatchToProps === 'function'\n ? // @ts-ignore\n wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps')\n : createInvalidArgFactory(mapDispatchToProps, 'mapDispatchToProps')\n}\n", "import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps'\nimport { createInvalidArgFactory } from './invalidArgFactory'\nimport type { MapStateToPropsParam } from './selectorFactory'\n\nexport function mapStateToPropsFactory<TStateProps, TOwnProps, State>(\n mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n) {\n return !mapStateToProps\n ? wrapMapToPropsConstant(() => ({}))\n : typeof mapStateToProps === 'function'\n ? // @ts-ignore\n wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps')\n : createInvalidArgFactory(mapStateToProps, 'mapStateToProps')\n}\n", "import type { Action, Dispatch } from 'redux'\nimport verifyPlainObject from '../utils/verifyPlainObject'\nimport { createInvalidArgFactory } from './invalidArgFactory'\nimport type { MergeProps } from './selectorFactory'\nimport type { EqualityFn } from '../types'\n\nfunction defaultMergeProps<\n TStateProps,\n TDispatchProps,\n TOwnProps,\n TMergedProps,\n>(\n stateProps: TStateProps,\n dispatchProps: TDispatchProps,\n ownProps: TOwnProps,\n): TMergedProps {\n // @ts-ignore\n return { ...ownProps, ...stateProps, ...dispatchProps }\n}\n\nfunction wrapMergePropsFunc<\n TStateProps,\n TDispatchProps,\n TOwnProps,\n TMergedProps,\n>(\n mergeProps: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,\n): (\n dispatch: Dispatch<Action<string>>,\n options: {\n readonly displayName: string\n readonly areMergedPropsEqual: EqualityFn<TMergedProps>\n },\n) => MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps> {\n return function initMergePropsProxy(\n dispatch,\n { displayName, areMergedPropsEqual },\n ) {\n let hasRunOnce = false\n let mergedProps: TMergedProps\n\n return function mergePropsProxy(\n stateProps: TStateProps,\n dispatchProps: TDispatchProps,\n ownProps: TOwnProps,\n ) {\n const nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps)\n\n if (hasRunOnce) {\n if (!areMergedPropsEqual(nextMergedProps, mergedProps))\n mergedProps = nextMergedProps\n } else {\n hasRunOnce = true\n mergedProps = nextMergedProps\n\n if (process.env.NODE_ENV !== 'production')\n verifyPlainObject(mergedProps, displayName, 'mergeProps')\n }\n\n return mergedProps\n }\n }\n}\n\nexport function mergePropsFactory<\n TStateProps,\n TDispatchProps,\n TOwnProps,\n TMergedProps,\n>(\n mergeProps?: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,\n) {\n return !mergeProps\n ? () => defaultMergeProps\n : typeof mergeProps === 'function'\n ? wrapMergePropsFunc(mergeProps)\n : createInvalidArgFactory(mergeProps, 'mergeProps')\n}\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", "function is(x: unknown, y: unknown) {\r\n if (x === y) {\r\n return x !== 0 || y !== 0 || 1 / x === 1 / y\r\n } else {\r\n return x !== x && y !== y\r\n }\r\n}\r\n\r\nexport default function shallowEqual(objA: any, objB: any) {\r\n if (is(objA, objB)) return true\r\n\r\n if (\r\n typeof objA !== 'object' ||\r\n objA === null ||\r\n typeof objB !== 'object' ||\r\n objB === null\r\n ) {\r\n return false\r\n }\r\n\r\n const keysA = Object.keys(objA)\r\n const keysB = Object.keys(objB)\r\n\r\n if (keysA.length !== keysB.length) return false\r\n\r\n for (let i = 0; i < keysA.length; i++) {\r\n if (\r\n !Object.prototype.hasOwnProperty.call(objB, keysA[i]) ||\r\n !is(objA[keysA[i]], objB[keysA[i]])\r\n ) {\r\n return false\r\n }\r\n }\r\n\r\n return true\r\n}\r\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", "/* eslint-disable valid-jsdoc, @typescript-eslint/no-unused-vars */\nimport type { ComponentType } from 'react'\nimport { React } from '../utils/react'\nimport { isValidElementType, isContextConsumer } from '../utils/react-is'\n\nimport type { Store } from 'redux'\n\nimport type {\n ConnectedComponent,\n InferableComponentEnhancer,\n InferableComponentEnhancerWithProps,\n ResolveThunks,\n DispatchProp,\n ConnectPropsMaybeWithoutContext,\n} from '../types'\n\nimport type {\n MapStateToPropsParam,\n MapDispatchToPropsParam,\n MergeProps,\n MapDispatchToPropsNonObject,\n SelectorFactoryOptions,\n} from '../connect/selectorFactory'\nimport defaultSelectorFactory from '../connect/selectorFactory'\nimport { mapDispatchToPropsFactory } from '../connect/mapDispatchToProps'\nimport { mapStateToPropsFactory } from '../connect/mapStateToProps'\nimport { mergePropsFactory } from '../connect/mergeProps'\n\nimport type { Subscription } from '../utils/Subscription'\nimport { createSubscription } from '../utils/Subscription'\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect'\nimport shallowEqual from '../utils/shallowEqual'\nimport hoistStatics from '../utils/hoistStatics'\nimport warning from '../utils/warning'\n\nimport type {\n ReactReduxContextValue,\n ReactReduxContextInstance,\n} from './Context'\nimport { ReactReduxContext } from './Context'\n\n// Define some constant arrays just to avoid re-creating these\nconst EMPTY_ARRAY: [unknown, number] = [null, 0]\nconst NO_SUBSCRIPTION_ARRAY = [null, null]\n\n// Attempts to stringify whatever not-really-a-component value we were given\n// for logging in an error message\nconst stringifyComponent = (Comp: unknown) => {\n try {\n return JSON.stringify(Comp)\n } catch (err) {\n return String(Comp)\n }\n}\n\ntype EffectFunc = (...args: any[]) => void | ReturnType<React.EffectCallback>\n\n// This is \"just\" a `useLayoutEffect`, but with two modifications:\n// - we need to fall back to `useEffect` in SSR to avoid annoying warnings\n// - we extract this to a separate function to avoid closing over values\n// and causing memory leaks\nfunction useIsomorphicLayoutEffectWithArgs(\n effectFunc: EffectFunc,\n effectArgs: any[],\n dependencies?: React.DependencyList,\n) {\n useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies)\n}\n\n// Effect callback, extracted: assign the latest props values to refs for later usage\nfunction captureWrapperProps(\n lastWrapperProps: React.MutableRefObject<unknown>,\n lastChildProps: React.MutableRefObject<unknown>,\n renderIsScheduled: React.MutableRefObject<boolean>,\n wrapperProps: unknown,\n // actualChildProps: unknown,\n childPropsFromStoreUpdate: React.MutableRefObject<unknown>,\n notifyNestedSubs: () => void,\n) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps\n renderIsScheduled.current = false\n\n // If the render was from a store update, clear out that reference and cascade the subscriber update\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null\n notifyNestedSubs()\n }\n}\n\n// Effect callback, extracted: subscribe to the Redux store or nearest connected ancestor,\n// check for updates after dispatched actions, and trigger re-renders.\nfunction subscribeUpdates(\n shouldHandleStateChanges: boolean,\n store: Store,\n subscription: Subscription,\n childPropsSelector: (state: unknown, props: unknown) => unknown,\n lastWrapperProps: React.MutableRefObject<unknown>,\n lastChildProps: React.MutableRefObject<unknown>,\n renderIsScheduled: React.MutableRefObject<boolean>,\n isMounted: React.MutableRefObject<boolean>,\n childPropsFromStoreUpdate: React.MutableRefObject<unknown>,\n notifyNestedSubs: () => void,\n // forceComponentUpdateDispatch: React.Dispatch<any>,\n additionalSubscribeListener: () => void,\n) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return () => {}\n\n // Capture values for checking if and when this component unmounts\n let didUnsubscribe = false\n let lastThrownError: Error | null = null\n\n // We'll run this callback every time a store subscription update propagates to this component\n const checkForUpdates = () => {\n if (didUnsubscribe || !isMounted.current) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return\n }\n\n // TODO We're currently calling getState ourselves here, rather than letting `uSES` do it\n const latestStoreState = store.getState()\n\n let newChildProps, error\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(\n latestStoreState,\n lastWrapperProps.current,\n )\n } catch (e) {\n error = e\n lastThrownError = e as Error | null\n }\n\n if (!error) {\n lastThrownError = null\n }\n\n // If the child props haven't changed, nothing to do here - cascade the subscription update\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs()\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps\n childPropsFromStoreUpdate.current = newChildProps\n renderIsScheduled.current = true\n\n // TODO This is hacky and not how `uSES` is meant to be used\n // Trigger the React `useSyncExternalStore` subscriber\n additionalSubscribeListener()\n }\n }\n\n // Actually subscribe to the nearest connected ancestor (or store)\n subscription.onStateChange = checkForUpdates\n subscription.trySubscribe()\n\n // Pull data from the store after first render in case the store has\n // changed since we began.\n checkForUpdates()\n\n const unsubscribeWrapper = () => {\n didUnsubscribe = true\n subscription.tryUnsubscribe()\n subscription.onStateChange = null\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError\n }\n }\n\n return unsubscribeWrapper\n}\n\n// Reducer initial state creation for our update reducer\nconst initStateUpdates = () => EMPTY_ARRAY\n\nexport interface ConnectProps {\n /** A custom Context instance that the component can use to access the store from an alternate Provider using that same Context instance */\n context?: ReactReduxContextInstance\n /** A Redux store instance to be used for subscriptions instead of the store from a Provider */\n store?: Store\n}\n\ninterface InternalConnectProps extends ConnectProps {\n reactReduxForwardedRef?: React.ForwardedRef<unknown>\n}\n\nfunction strictEqual(a: unknown, b: unknown) {\n return a === b\n}\n\n/**\n * Infers the type of props that a connector will inject into a component.\n */\nexport type ConnectedProps<TConnector> =\n TConnector extends InferableComponentEnhancerWithProps<\n infer TInjectedProps,\n any\n >\n ? unknown extends TInjectedProps\n ? TConnector extends InferableComponentEnhancer<infer TInjectedProps>\n ? TInjectedProps\n : never\n : TInjectedProps\n : never\n\nexport interface ConnectOptions<\n State = unknown,\n TStateProps = {},\n TOwnProps = {},\n TMergedProps = {},\n> {\n forwardRef?: boolean\n context?: typeof ReactReduxContext\n areStatesEqual?: (\n nextState: State,\n prevState: State,\n nextOwnProps: TOwnProps,\n prevOwnProps: TOwnProps,\n ) => boolean\n\n areOwnPropsEqual?: (\n nextOwnProps: TOwnProps,\n prevOwnProps: TOwnProps,\n ) => boolean\n\n areStatePropsEqual?: (\n nextStateProps: TStateProps,\n prevStateProps: TStateProps,\n ) => boolean\n areMergedPropsEqual?: (\n nextMergedProps: TMergedProps,\n prevMergedProps: TMergedProps,\n ) => boolean\n}\n\n/**\n * Connects a React component to a Redux store.\n *\n * - Without arguments, just wraps the component, without changing the behavior / props\n *\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\n * is to override ownProps (as stated in the docs), so what remains is everything that's\n * not a state or dispatch prop\n *\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\n * should be valid component props, because it depends on mergeProps implementation.\n * As such, it is the user's responsibility to extend ownProps interface from state or\n * dispatch props or both when applicable\n *\n * @param mapStateToProps\n * @param mapDispatchToProps\n * @param mergeProps\n * @param options\n */\nexport interface Connect<DefaultState = unknown> {\n // tslint:disable:no-unnecessary-generics\n (): InferableComponentEnhancer<DispatchProp>\n\n /** mapState only */\n <TStateProps = {}, no_dispatch = {}, TOwnProps = {}, State = DefaultState>(\n mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n ): InferableComponentEnhancerWithProps<TStateProps & DispatchProp, TOwnProps>\n\n /** mapDispatch only (as a function) */\n <no_state = {}, TDispatchProps = {}, TOwnProps = {}>(\n mapStateToProps: null | undefined,\n mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,\n ): InferableComponentEnhancerWithProps<TDispatchProps, TOwnProps>\n\n /** mapDispatch only (as an object) */\n <no_state = {}, TDispatchProps = {}, TOwnProps = {}>(\n mapStateToProps: null | undefined,\n mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n ): InferableComponentEnhancerWithProps<\n ResolveThunks<TDispatchProps>,\n TOwnProps\n >\n\n /** mapState and mapDispatch (as a function)*/\n <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,\n ): InferableComponentEnhancerWithProps<\n TStateProps & TDispatchProps,\n TOwnProps\n >\n\n /** mapState and mapDispatch (nullish) */\n <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n mapDispatchToProps: null | undefined,\n ): InferableComponentEnhancerWithProps<TStateProps, TOwnProps>\n\n /** mapState and mapDispatch (as an object) */\n <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n ): InferableComponentEnhancerWithProps<\n TStateProps & ResolveThunks<TDispatchProps>,\n TOwnProps\n >\n\n /** mergeProps only */\n <no_state = {}, no_dispatch = {}, TOwnProps = {}, TMergedProps = {}>(\n mapStateToProps: null | undefined,\n mapDispatchToProps: null | undefined,\n mergeProps: MergeProps<undefined, DispatchProp, TOwnProps, TMergedProps>,\n ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>\n\n /** mapState and mergeProps */\n <\n TStateProps = {},\n no_dispatch = {},\n TOwnProps = {},\n TMergedProps = {},\n State = DefaultState,\n >(\n mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n mapDispatchToProps: null | undefined,\n mergeProps: MergeProps<TStateProps, DispatchProp, TOwnProps, TMergedProps>,\n ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>\n\n /** mapDispatch (as a object) and mergeProps */\n <no_state = {}, TDispatchProps = {}, TOwnProps = {}, TMergedProps = {}>(\n mapStateToProps: null | undefined,\n mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n mergeProps: MergeProps<undefined, TDispatchProps, TOwnProps, TMergedProps>,\n ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>\n\n /** mapState and options */\n <TStateProps = {}, no_dispatch = {}, TOwnProps = {}, State = DefaultState>(\n mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n mapDispatchToProps: null | undefined,\n mergeProps: null | undefined,\n options: ConnectOptions<State, TStateProps, TOwnProps>,\n ): InferableComponentEnhancerWithProps<DispatchProp & TStateProps, TOwnProps>\n\n /** mapDispatch (as a function) and options */\n <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}>(\n mapStateToProps: null | undefined,\n mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,\n mergeProps: null | undefined,\n options: ConnectOptions<{}, TStateProps, TOwnProps>,\n ): InferableComponentEnhancerWithProps<TDispatchProps, TOwnProps>\n\n /** mapDispatch (as an object) and options*/\n <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}>(\n mapStateToProps: null | undefined,\n mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n mergeProps: null | undefined,\n options: ConnectOptions<{}, TStateProps, TOwnProps>,\n ): InferableComponentEnhancerWithProps<\n ResolveThunks<TDispatchProps>,\n TOwnProps\n >\n\n /** mapState, mapDispatch (as a function), and options */\n <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n mapDispatchToProps: MapDispatchToPropsNonObject<TDispatchProps, TOwnProps>,\n mergeProps: null | undefined,\n options: ConnectOptions<State, TStateProps, TOwnProps>,\n ): InferableComponentEnhancerWithProps<\n TStateProps & TDispatchProps,\n TOwnProps\n >\n\n /** mapState, mapDispatch (as an object), and options */\n <TStateProps = {}, TDispatchProps = {}, TOwnProps = {}, State = DefaultState>(\n mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n mergeProps: null | undefined,\n options: ConnectOptions<State, TStateProps, TOwnProps>,\n ): InferableComponentEnhancerWithProps<\n TStateProps & ResolveThunks<TDispatchProps>,\n TOwnProps\n >\n\n /** mapState, mapDispatch, mergeProps, and options */\n <\n TStateProps = {},\n TDispatchProps = {},\n TOwnProps = {},\n TMergedProps = {},\n State = DefaultState,\n >(\n mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n mapDispatchToProps: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n mergeProps: MergeProps<\n TStateProps,\n TDispatchProps,\n TOwnProps,\n TMergedProps\n >,\n options?: ConnectOptions<State, TStateProps, TOwnProps, TMergedProps>,\n ): InferableComponentEnhancerWithProps<TMergedProps, TOwnProps>\n // tslint:enable:no-unnecessary-generics\n}\n\nlet hasWarnedAboutDeprecatedPureOption = false\n\n/**\n * Connects a React component to a Redux store.\n *\n * - Without arguments, just wraps the component, without changing the behavior / props\n *\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\n * is to override ownProps (as stated in the docs), so what remains is everything that's\n * not a state or dispatch prop\n *\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\n * should be valid component props, because it depends on mergeProps implementation.\n * As such, it is the user's responsibility to extend ownProps interface from state or\n * dispatch props or both when applicable\n *\n * @param mapStateToProps A function that extracts values from state\n * @param mapDispatchToProps Setup for dispatching actions\n * @param mergeProps Optional callback to merge state and dispatch props together\n * @param options Options for configuring the connection\n *\n */\nfunction connect<\n TStateProps = {},\n TDispatchProps = {},\n TOwnProps = {},\n TMergedProps = {},\n State = unknown,\n>(\n mapStateToProps?: MapStateToPropsParam<TStateProps, TOwnProps, State>,\n mapDispatchToProps?: MapDispatchToPropsParam<TDispatchProps, TOwnProps>,\n mergeProps?: MergeProps<TStateProps, TDispatchProps, TOwnProps, TMergedProps>,\n {\n // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.\n // @ts-ignore\n pure,\n areStatesEqual = strictEqual,\n areOwnPropsEqual = shallowEqual,\n areStatePropsEqual = shallowEqual,\n areMergedPropsEqual = shallowEqual,\n\n // use React's forwardRef to expose a ref of the wrapped component\n forwardRef = false,\n\n // the context consumer to use\n context = ReactReduxContext,\n }: ConnectOptions<unknown, unknown, unknown, unknown> = {},\n): unknown {\n if (process.env.NODE_ENV !== 'production') {\n if (pure !== undefined && !hasWarnedAboutDeprecatedPureOption) {\n hasWarnedAboutDeprecatedPureOption = true\n warning(\n 'The `pure` option has been removed. `connect` is now always a \"pure/memoized\" component',\n )\n }\n }\n\n const Context = context\n\n const initMapStateToProps = mapStateToPropsFactory(mapStateToProps)\n const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps)\n const initMergeProps = mergePropsFactory(mergeProps)\n\n const shouldHandleStateChanges = Boolean(mapStateToProps)\n\n const wrapWithConnect = <TProps,>(\n WrappedComponent: ComponentType<TProps>,\n ) => {\n type WrappedComponentProps = TProps &\n ConnectPropsMaybeWithoutContext<TProps>\n\n if (process.env.NODE_ENV !== 'production') {\n const isValid = /*#__PURE__*/ isValidElementType(WrappedComponent)\n if (!isValid)\n throw new Error(\n `You must pass a component to the function returned by connect. Instead received ${stringifyComponent(\n WrappedComponent,\n )}`,\n )\n }\n\n const wrappedComponentName =\n WrappedComponent.displayName || WrappedComponent.name || 'Component'\n\n const displayName = `Connect(${wrappedComponentName})`\n\n const selectorFactoryOptions: SelectorFactoryOptions<\n any,\n any,\n any,\n any,\n State\n > = {\n shouldHandleStateChanges,\n displayName,\n wrappedComponentName,\n WrappedComponent,\n // @ts-ignore\n initMapStateToProps,\n initMapDispatchToProps,\n initMergeProps,\n areStatesEqual,\n areStatePropsEqual,\n areOwnPropsEqual,\n areMergedPropsEqual,\n }\n\n function ConnectFunction<TOwnProps>(\n props: InternalConnectProps & TOwnProps,\n ) {\n const [propsContext, reactReduxForwardedRef, wrapperProps] =\n React.useMemo(() => {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n const { reactReduxForwardedRef, ...wrapperProps } = props\n return [props.context, reactReduxForwardedRef, wrapperProps]\n }, [props])\n\n const ContextToUse: ReactReduxContextInstance = React.useMemo(() => {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n let ResultContext = Context\n if (propsContext?.Consumer) {\n if (process.env.NODE_ENV !== 'production') {\n const isValid = /*#__PURE__*/ isContextConsumer(\n // @ts-ignore\n <propsContext.Consumer />,\n )\n if (!isValid) {\n throw new Error(\n 'You must pass a valid React context consumer as `props.context`',\n )\n }\n ResultContext = propsContext\n }\n }\n return ResultContext\n }, [propsContext, Context])\n\n // Retrieve the store and ancestor subscription via context, if available\n const contextValue = React.useContext(ContextToUse)\n\n // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n const didStoreComeFromProps =\n Boolean(props.store) &&\n Boolean(props.store!.getState) &&\n Boolean(props.store!.dispatch)\n const didStoreComeFromContext =\n Boolean(contextValue) && Boolean(contextValue!.store)\n\n if (\n process.env.NODE_ENV !== 'production' &&\n !didStoreComeFromProps &&\n !didStoreComeFromContext\n ) {\n throw new Error(\n `Could not find \"store\" in the context of ` +\n `\"${displayName}\". Either wrap the root component in a <Provider>, ` +\n `or pass a custom React context provider to <Provider> and the corresponding ` +\n `React context consumer to ${displayName} in connect options.`,\n )\n }\n\n // Based on the previous check, one of these must be true\n const store: Store = didStoreComeFromProps\n ? props.store!\n : contextValue!.store\n\n const getServerState = didStoreComeFromContext\n ? contextValue!.getServerState\n : store.getState\n\n const childPropsSelector = React.useMemo(() => {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return defaultSelectorFactory(store.dispatch, selectorFactoryOptions)\n }, [store])\n\n const [subscription, notifyNestedSubs] = React.useMemo(() => {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY\n\n // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n const subscription = createSubscription(\n store,\n didStoreComeFromProps ? undefined : contextValue!.subscription,\n )\n\n // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n const notifyNestedSubs =\n subscription.notifyNestedSubs.bind(subscription)\n\n return [subscription, notifyNestedSubs]\n }, [store, didStoreComeFromProps, contextValue])\n\n // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n const overriddenContextValue = React.useMemo(() => {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue!\n }\n\n // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n return {\n ...contextValue,\n subscription,\n } as ReactReduxContextValue\n }, [didStoreComeFromProps, contextValue, subscription])\n\n // Set up refs to coordinate values between the subscription effect and the render logic\n const lastChildProps = React.useRef<unknown>(undefined)\n const lastWrapperProps = React.useRef(wrapperProps)\n const childPropsFromStoreUpdate = React.useRef<unknown>(undefined)\n const renderIsScheduled = React.useRef(false)\n const isMounted = React.useRef(false)\n\n // TODO: Change this to `React.useRef<Error>(undefined)` after upgrading to React 19.\n /**\n * @todo Change this to `React.useRef<Error>(undefined)` after upgrading to React 19.\n */\n const latestSubscriptionCallbackError = React.useRef<Error | undefined>(\n undefined,\n )\n\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true\n return () => {\n isMounted.current = false\n }\n }, [])\n\n const actualChildPropsSelector = React.useMemo(() => {\n const selector = () => {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (\n childPropsFromStoreUpdate.current &&\n wrapperProps === lastWrapperProps.current\n ) {\n return childPropsFromStoreUpdate.current\n }\n\n // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n return childPropsSelector(store.getState(), wrapperProps)\n }\n return selector\n }, [store, wrapperProps])\n\n // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n const subscribeForReact = React.useMemo(() => {\n const subscribe = (reactListener: () => void) => {\n if (!subscription) {\n return () => {}\n }\n\n return subscribeUpdates(\n shouldHandleStateChanges,\n store,\n subscription,\n // @ts-ignore\n childPropsSelector,\n lastWrapperProps,\n lastChildProps,\n renderIsScheduled,\n isMounted,\n childPropsFromStoreUpdate,\n notifyNestedSubs,\n reactListener,\n )\n }\n\n return subscribe\n }, [subscription])\n\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [\n lastWrapperProps,\n lastChildProps,\n renderIsScheduled,\n wrapperProps,\n childPropsFromStoreUpdate,\n notifyNestedSubs,\n ])\n\n let actualChildProps: Record<string, unknown>\n\n try {\n actualChildProps = React.useSyncExternalStore(\n // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing\n subscribeForReact,\n // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,\n // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.\n actualChildPropsSelector,\n getServerState\n ? () => childPropsSelector(getServerState(), wrapperProps)\n : actualChildPropsSelector,\n )\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n // eslint-disable-next-line no-extra-semi\n ;(err as Error).message +=\n `\\nThe error may be correlated with this previous error:\\n${latestSubscriptionCallbackError.current.stack}\\n\\n`\n }\n\n throw err\n }\n\n useIsomorphicLayoutEffect(() => {\n latestSubscriptionCallbackError.current = undefined\n childPropsFromStoreUpdate.current = undefined\n lastChildProps.current = actualChildProps\n })\n\n // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n const renderedWrappedComponent = React.useMemo(() => {\n return (\n // @ts-ignore\n <WrappedComponent\n {...actualChildProps}\n ref={reactReduxForwardedRef}\n />\n )\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps])\n\n // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n const renderedChild = React.useMemo(() => {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return (\n <ContextToUse.Provider value={overriddenContextValue}>\n {renderedWrappedComponent}\n </ContextToUse.Provider>\n )\n }\n\n return renderedWrappedComponent\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue])\n\n return renderedChild\n }\n\n const _Connect = React.memo(ConnectFunction)\n\n type ConnectedWrapperComponent = typeof _Connect & {\n WrappedComponent: typeof WrappedComponent\n }\n\n // Add a hacky cast to get the right output type\n const Connect = _Connect as unknown as ConnectedComponent<\n typeof WrappedComponent,\n WrappedComponentProps\n >\n Connect.WrappedComponent = WrappedComponent\n Connect.displayName = ConnectFunction.displayName = displayName\n\n if (forwardRef) {\n const _forwarded = React.forwardRef(\n function forwardConnectRef(props, ref) {\n // @ts-ignore\n return <Connect {...props} reactReduxForwardedRef={ref} />\n },\n )\n\n const forwarded = _forwarded as ConnectedWrapperComponent\n forwarded.displayName = displayName\n forwarded.WrappedComponent = WrappedComponent\n return /*#__PURE__*/ hoistStatics(forwarded, WrappedComponent)\n }\n\n return /*#__PURE__*/ hoistStatics(Connect, WrappedComponent)\n }\n\n return wrapWithConnect\n}\n\nexport default connect as Connect\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 { React } from '../utils/react'\nimport { ReactReduxContext } from '../components/Context'\nimport type { ReactReduxContextValue } from '../components/Context'\n\n/**\n * Hook factory, which creates a `useReduxContext` hook bound to a given context. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useReduxContext` hook bound to the specified context.\n */\nexport function createReduxContextHook(context = ReactReduxContext) {\n return function useReduxContext(): ReactReduxContextValue {\n const contextValue = React.useContext(context)\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error(\n 'could not find react-redux context value; please ensure the component is wrapped in a <Provider>',\n )\n }\n\n return contextValue!\n }\n}\n\n/**\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @returns {any} the value of the `ReactReduxContext`\n *\n * @example\n *\n * import React from 'react'\n * import { useReduxContext } from 'react-redux'\n *\n * export const CounterComponent = () => {\n * const { store } = useReduxContext()\n * return <div>{store.getState()}</div>\n * }\n */\nexport const useReduxContext = /*#__PURE__*/ createReduxContextHook()\n", "import type { Context } from 'react'\nimport type { Action, Store } from 'redux'\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport {\n createReduxContextHook,\n useReduxContext as useDefaultReduxContext,\n} from './useReduxContext'\n\n/**\n * Represents a type that extracts the action type from a given Redux store.\n *\n * @template StoreType - The specific type of the Redux store.\n *\n * @since 9.1.0\n * @internal\n */\nexport type ExtractStoreActionType<StoreType extends Store> =\n StoreType extends Store<any, infer ActionType> ? ActionType : never\n\n/**\n * Represents a custom hook that provides access to the Redux store.\n *\n * @template StoreType - The specific type of the Redux store that gets returned.\n *\n * @since 9.1.0\n * @public\n */\nexport interface UseStore<StoreType extends Store> {\n /**\n * Returns the Redux store instance.\n *\n * @returns The Redux store instance.\n */\n (): StoreType\n\n /**\n * Returns the Redux store instance with specific state and action types.\n *\n * @returns The Redux store with the specified state and action types.\n *\n * @template StateType - The specific type of the state used in the store.\n * @template ActionType - The specific type of the actions used in the store.\n */\n <\n StateType extends ReturnType<StoreType['getState']> = ReturnType<\n StoreType['getState']\n >,\n ActionType extends Action = ExtractStoreActionType<Store>,\n >(): Store<StateType, ActionType>\n\n /**\n * Creates a \"pre-typed\" version of {@linkcode useStore useStore}\n * where the type of the Redux `store` is predefined.\n *\n * This allows you to set the `store` type once, eliminating the need to\n * specify it with every {@linkcode useStore useStore} call.\n *\n * @returns A pre-typed `useStore` with the store type already defined.\n *\n * @example\n * ```ts\n * export const useAppStore = useStore.withTypes<AppStore>()\n * ```\n *\n * @template OverrideStoreType - The specific type of the Redux store that gets returned.\n *\n * @since 9.1.0\n */\n withTypes: <\n OverrideStoreType extends StoreType,\n >() => UseStore<OverrideStoreType>\n}\n\n/**\n * Hook factory, which creates a `useStore` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useStore` hook bound to the specified context.\n */\nexport function createStoreHook<\n StateType = unknown,\n ActionType extends Action = Action,\n>(\n // @ts-ignore\n context?: Context<ReactReduxContextValue<\n StateType,\n ActionType\n > | null> = ReactReduxContext,\n) {\n const useReduxContext =\n context === ReactReduxContext\n ? useDefaultReduxContext\n : // @ts-ignore\n createReduxContextHook(context)\n const useStore = () => {\n const { store } = useReduxContext()\n return store\n }\n\n Object.assign(useStore, {\n withTypes: () => useStore,\n })\n\n return useStore as UseStore<Store<StateType, ActionType>>\n}\n\n/**\n * A hook to access the redux store.\n *\n * @returns {any} the redux store\n *\n * @example\n *\n * import React from 'react'\n * import { useStore } from 'react-redux'\n *\n * export const ExampleComponent = () => {\n * const store = useStore()\n * return <div>{store.getState()}</div>\n * }\n */\nexport const useStore = /*#__PURE__*/ createStoreHook()\n", "import type { Context } from 'react'\nimport type { Action, Dispatch, UnknownAction } from 'redux'\n\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport { createStoreHook, useStore as useDefaultStore } from './useStore'\n\n/**\n * Represents a custom hook that provides a dispatch function\n * from the Redux store.\n *\n * @template DispatchType - The specific type of the dispatch function.\n *\n * @since 9.1.0\n * @public\n */\nexport interface UseDispatch<\n DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>,\n> {\n /**\n * Returns the dispatch function from the Redux store.\n *\n * @returns The dispatch function from the Redux store.\n *\n * @template AppDispatch - The specific type of the dispatch function.\n */\n <AppDispatch extends DispatchType = DispatchType>(): AppDispatch\n\n /**\n * Creates a \"pre-typed\" version of {@linkcode useDispatch useDispatch}\n * where the type of the `dispatch` function is predefined.\n *\n * This allows you to set the `dispatch` type once, eliminating the need to\n * specify it with every {@linkcode useDispatch useDispatch} call.\n *\n * @returns A pre-typed `useDispatch` with the dispatch type already defined.\n *\n * @example\n * ```ts\n * export const useAppDispatch = useDispatch.withTypes<AppDispatch>()\n * ```\n *\n * @template OverrideDispatchType - The specific type of the dispatch function.\n *\n * @since 9.1.0\n */\n withTypes: <\n OverrideDispatchType extends DispatchType,\n >() => UseDispatch<OverrideDispatchType>\n}\n\n/**\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useDispatch` hook bound to the specified context.\n */\nexport function createDispatchHook<\n StateType = unknown,\n ActionType extends Action = UnknownAction,\n>(\n // @ts-ignore\n context?: Context<ReactReduxContextValue<\n StateType,\n ActionType\n > | null> = ReactReduxContext,\n) {\n const useStore =\n context === ReactReduxContext ? useDefaultStore : createStoreHook(context)\n\n const useDispatch = () => {\n const store = useStore()\n return store.dispatch\n }\n\n Object.assign(useDispatch, {\n withTypes: () => useDispatch,\n })\n\n return useDispatch as UseDispatch<Dispatch<ActionType>>\n}\n\n/**\n * A hook to access the redux `dispatch` function.\n *\n * @returns {any|function} redux store's `dispatch` function\n *\n * @example\n *\n * import React, { useCallback } from 'react'\n * import { useDispatch } from 'react-redux'\n *\n * export const CounterComponent = ({ value }) => {\n * const dispatch = useDispatch()\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\n * return (\n * <div>\n * <span>{value}</span>\n * <button onClick={increaseCounter}>Increase counter</button>\n * </div>\n * )\n * }\n */\nexport const useDispatch = /*#__PURE__*/ createDispatchHook()\n", "//import * as React from 'react'\nimport { React } from '../utils/react'\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector.js'\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport type { EqualityFn, NoInfer } from '../types'\nimport {\n createReduxContextHook,\n useReduxContext as useDefaultReduxContext,\n} from './useReduxContext'\n\n/**\n * The frequency of development mode checks.\n *\n * @since 8.1.0\n * @internal\n */\nexport type DevModeCheckFrequency = 'never' | 'once' | 'always'\n\n/**\n * Represents the configuration for development mode checks.\n *\n * @since 9.0.0\n * @internal\n */\nexport interface DevModeChecks {\n /**\n * Overrides the global stability check for the selector.\n * - `once` - Run only the first time the selector is called.\n * - `always` - Run every time the selector is called.\n * - `never` - Never run the stability check.\n *\n * @default 'once'\n *\n * @since 8.1.0\n */\n stabilityCheck: DevModeCheckFrequency\n\n /**\n * Overrides the global identity function check for the selector.\n * - `once` - Run only the first time the selector is called.\n * - `always` - Run every time the selector is called.\n * - `never` - Never run the identity function check.\n *\n * **Note**: Previously referred to as `noopCheck`.\n *\n * @default 'once'\n *\n * @since 9.0.0\n */\n identityFunctionCheck: DevModeCheckFrequency\n}\n\nexport interface UseSelectorOptions<Selected = unknown> {\n equalityFn?: EqualityFn<Selected>\n\n /**\n * `useSelector` performs additional checks in development mode to help\n * identify and warn about potential issues in selector behavior. This\n * option allows you to customize the behavior of these checks per selector.\n *\n * @since 9.0.0\n */\n devModeChecks?: Partial<DevModeChecks>\n}\n\n/**\n * Represents a custom hook that allows you to extract data from the\n * Redux store state, using a selector function. The selector function\n * takes the current state as an argument and returns a part of the state\n * or some derived data. The hook also supports an optional equality\n * function or options object to customize its behavior.\n *\n * @template StateType - The specific type of state this hook operates on.\n *\n * @public\n */\nexport interface UseSelector<StateType = unknown> {\n /**\n * A function that takes a selector function as its first argument.\n * The selector function is responsible for selecting a part of\n * the Redux store's state or computing derived data.\n *\n * @param selector - A function that receives the current state and returns a part of the state or some derived data.\n * @param equalityFnOrOptions - An optional equality function or options object for customizing the behavior of the selector.\n * @returns The selected part of the state or derived data.\n *\n * @template TState - The specific type of state this hook operates on.\n * @template Selected - The type of the value that the selector function will return.\n */\n <TState extends StateType = StateType, Selected = unknown>(\n selector: (state: TState) => Selected,\n equalityFnOrOptions?: EqualityFn<Selected> | UseSelectorOptions<Selected>,\n ): Selected\n\n /**\n * Creates a \"pre-typed\" version of {@linkcode useSelector useSelector}\n * where the `state` type is predefined.\n *\n * This allows you to set the `state` type once, eliminating the need to\n * specify it with every {@linkcode useSelector useSelector} call.\n *\n * @returns A pre-typed `useSelector` with the state type already defined.\n *\n * @example\n * ```ts\n * export const useAppSelector = useSelector.withTypes<RootState>()\n * ```\n *\n * @template OverrideStateType - The specific type of state this hook operates on.\n *\n * @since 9.1.0\n */\n withTypes: <\n OverrideStateType extends StateType,\n >() => UseSelector<OverrideStateType>\n}\n\nconst refEquality: EqualityFn<any> = (a, b) => a === b\n\n/**\n * Hook factory, which creates a `useSelector` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useSelector` hook bound to the specified context.\n */\nexport function createSelectorHook(\n context: React.Context<ReactReduxContextValue<\n any,\n any\n > | null> = ReactReduxContext,\n): UseSelector {\n const useReduxContext =\n context === ReactReduxContext\n ? useDefaultReduxContext\n : createReduxContextHook(context)\n\n const useSelector = <TState, Selected>(\n selector: (state: TState) => Selected,\n equalityFnOrOptions:\n | EqualityFn<NoInfer<Selected>>\n | UseSelectorOptions<NoInfer<Selected>> = {},\n ): Selected => {\n const { equalityFn = refEquality } =\n typeof equalityFnOrOptions === 'function'\n ? { equalityFn: equalityFnOrOptions }\n : equalityFnOrOptions\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(`You must pass a selector to useSelector`)\n }\n if (typeof selector !== 'function') {\n throw new Error(`You must pass a function as a selector to useSelector`)\n }\n if (typeof equalityFn !== 'function') {\n throw new Error(\n `You must pass a function as an equality function to useSelector`,\n )\n }\n }\n\n const reduxContext = useReduxContext()\n\n const { store, subscription, getServerState } = reduxContext\n\n const firstRun = React.useRef(true)\n\n const wrappedSelector = React.useCallback<typeof selector>(\n {\n [selector.name](state: TState) {\n const selected = selector(state)\n if (process.env.NODE_ENV !== 'production') {\n const { devModeChecks = {} } =\n typeof equalityFnOrOptions === 'function'\n ? {}\n : equalityFnOrOptions\n const { identityFunctionCheck, stabilityCheck } = reduxContext\n const {\n identityFunctionCheck: finalIdentityFunctionCheck,\n stabilityCheck: finalStabilityCheck,\n } = {\n stabilityCheck,\n identityFunctionCheck,\n ...devModeChecks,\n }\n if (\n finalStabilityCheck === 'always' ||\n (finalStabilityCheck === 'once' && firstRun.current)\n ) {\n const toCompare = selector(state)\n if (!equalityFn(selected, toCompare)) {\n let stack: string | undefined = undefined\n try {\n throw new Error()\n } catch (e) {\n // eslint-disable-next-line no-extra-semi\n ;({ stack } = e as Error)\n }\n console.warn(\n 'Selector ' +\n (selector.name || 'unknown') +\n ' returned a different result when called with the same parameters. This can lead to unnecessary rerenders.' +\n '\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization',\n {\n state,\n selected,\n selected2: toCompare,\n stack,\n },\n )\n }\n }\n if (\n finalIdentityFunctionCheck === 'always' ||\n (finalIdentityFunctionCheck === 'once' && firstRun.current)\n ) {\n // @ts-ignore\n if (selected === state) {\n let stack: string | undefined = undefined\n try {\n throw new Error()\n } catch (e) {\n // eslint-disable-next-line no-extra-semi\n ;({ stack } = e as Error)\n }\n console.warn(\n 'Selector ' +\n (selector.name || 'unknown') +\n ' returned the root state when called. This can lead to unnecessary rerenders.' +\n '\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.',\n { stack },\n )\n }\n }\n if (firstRun.current) firstRun.current = false\n }\n return selected\n },\n }[selector.name],\n [selector],\n )\n\n const selectedState = useSyncExternalStoreWithSelector(\n subscription.addNestedSub,\n store.getState,\n getServerState || store.getState,\n wrappedSelector,\n equalityFn,\n )\n\n React.useDebugValue(selectedState)\n\n return selectedState\n }\n\n Object.assign(useSelector, {\n withTypes: () => useSelector,\n })\n\n return useSelector as UseSelector\n}\n\n/**\n * A hook to access the redux store's state. This hook takes a selector function\n * as an argument. The selector is called with the store state.\n *\n * This hook takes an optional equality comparison function as the second parameter\n * that allows you to customize the way the selected state is compared to determine\n * whether the component needs to be re-rendered.\n *\n * @param {Function} selector the selector function\n * @param {Function=} equalityFn the function that will be used to determine equality\n *\n * @returns {any} the selected state\n *\n * @example\n *\n * import React from 'react'\n * import { useSelector } from 'react-redux'\n *\n * export const CounterComponent = () => {\n * const counter = useSelector(state => state.counter)\n * return <div>{counter}</div>\n * }\n */\nexport const useSelector = /*#__PURE__*/ createSelectorHook()\n", "import connect from './components/connect'\nexport type {\n Connect,\n ConnectProps,\n ConnectedProps,\n} from './components/connect'\n\nimport shallowEqual from './utils/shallowEqual'\n\nimport Provider from './components/Provider'\nimport { defaultNoopBatch } from './utils/batch'\n\nexport { ReactReduxContext } from './components/Context'\nexport type { ReactReduxContextValue } from './components/Context'\n\nexport type { ProviderProps } from './components/Provider'\n\nexport type {\n MapDispatchToProps,\n MapDispatchToPropsFactory,\n MapDispatchToPropsFunction,\n MapDispatchToPropsNonObject,\n MapDispatchToPropsParam,\n MapStateToProps,\n MapStateToPropsFactory,\n MapStateToPropsParam,\n MergeProps,\n Selector,\n SelectorFactory,\n} from './connect/selectorFactory'\n\nexport { createDispatchHook, useDispatch } from './hooks/useDispatch'\nexport type { UseDispatch } from './hooks/useDispatch'\n\nexport { createSelectorHook, useSelector } from './hooks/useSelector'\nexport type { UseSelector } from './hooks/useSelector'\n\nexport { createStoreHook, useStore } from './hooks/useStore'\nexport type { UseStore } from './hooks/useStore'\n\nexport type { Subscription } from './utils/Subscription'\n\nexport * from './types'\n\n/**\n * @deprecated As of React 18, batching is enabled by default for ReactDOM and React Native.\n * This is now a no-op that immediately runs the callback.\n */\nconst batch = defaultNoopBatch\n\nexport { Provider, batch, connect, shallowEqual }\n", "import { shallowEqual } from 'react-redux';\nvar propsToShallowCompare = new Set(['axisLine', 'tickLine', 'activeBar', 'activeDot', 'activeLabel', 'activeShape', 'allowEscapeViewBox', 'background', 'cursor', 'dot', 'label', 'line', 'margin', 'padding', 'position', 'shape', 'style', 'tick', 'wrapperStyle',\n// radius can be an array of 4 numbers, easy to compare shallowly\n'radius', 'throttledEvents']);\n\n/**\n * When comparing two values, returns true if they are the same value or\n * are both NaN.\n *\n * If we used just a simple triple equals, we would get false negatives for two NaNs\n * which could cause extra re-renders so let's have this instead.\n *\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Equality_comparisons_and_sameness#same-value-zero_equality\n *\n * @param x first value to compare\n * @param y second value to compare\n * return true if the same, false if different\n */\nfunction sameValueZero(x, y) {\n if (x == null && y == null) {\n /*\n * treat null and undefined as equal. Internally in Recharts we make no difference between these two\n * so there is no need to re-render.\n */\n return true;\n }\n if (typeof x === 'number' && typeof y === 'number') {\n // x and y are equal (this is true for -0 and 0) or they are both NaN\n // eslint-disable-next-line no-self-compare\n return x === y || x !== x && y !== y;\n }\n return x === y;\n}\n\n/**\n * So usually React would compare only the first level of props using Object.is.\n * However, in our case many props are objects or arrays, and our own docs recommend to do that!\n * Therefore, we need a custom comparison function that does a shallow comparison of each prop value.\n *\n * Because charts can and do receive large props (typically the data array),\n * we only limit this to a subset of known props that are likely to be objects/arrays.\n *\n * @param prevProps\n * @param nextProps\n */\nexport function propsAreEqual(prevProps, nextProps) {\n var allKeys = new Set([...Object.keys(prevProps), ...Object.keys(nextProps)]);\n for (var key of allKeys) {\n /*\n * If a key is on a special allowlist, go one level deeper\n * and do a shallow comparison of the values.\n */\n if (propsToShallowCompare.has(key)) {\n if (prevProps[key] == null && nextProps[key] == null) {\n /*\n * treat null and undefined as equal. Internally in Recharts we make no difference between these two\n * so there is no need to re-render.\n */\n continue;\n }\n if (!shallowEqual(prevProps[key], nextProps[key])) {\n return false;\n }\n /*\n * Otherwise do a simple same-value comparison (with NaN support).\n */\n } else if (!sameValueZero(prevProps[key], nextProps[key])) {\n return false;\n }\n }\n return true;\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 { 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 = [];\nexport var 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 includeHidden: false,\n isAnimationActive: 'auto',\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};\n\n/**\n * The Tooltip component displays a floating box with data values when hovering over or clicking on chart elements.\n *\n * It can be configured to show information for individual data points or for all points at a specific axis coordinate.\n * The appearance and content of the tooltip can be customized via props.\n *\n * @see {@link https://github.com/recharts/recharts/wiki/Tooltip-event-type-and-shared-prop Tooltip event type and shared prop wiki page}\n * @see {@link https://recharts.github.io/en-US/guide/activeIndex/ Active index replacement when migrating from Recharts v2 to v3}\n *\n * @consumes CartesianChartContext\n * @consumes PolarChartContext\n * @consumes TooltipEntrySettings\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 tooltipContentProps = _objectSpread(_objectSpread({}, props), {}, {\n payload: finalPayload,\n label: finalLabel,\n active: finalIsActive,\n activeIndex,\n coordinate,\n accessibilityLayer\n });\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, tooltipContentProps));\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}", "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}\n\n/**\n * @inline\n */\n\nexport var defaultDefaultTooltipContentProps = {\n separator: ' : ',\n contentStyle: {\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap'\n },\n itemStyle: {\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: '#000'\n },\n labelStyle: {},\n accessibilityLayer: false\n};\nfunction lodashLikeSortBy(array, itemSorter) {\n if (itemSorter == null) {\n return array;\n }\n // @ts-expect-error sortBy types somehow are returning a number type.\n return sortBy(array, itemSorter);\n}\n\n/**\n * This component is by default rendered inside the {@link Tooltip} component. You would not use it directly.\n *\n * You can use this component to customize the content of the tooltip,\n * or you can provide your own completely independent content.\n */\nexport var DefaultTooltipContent = props => {\n var {\n separator = defaultDefaultTooltipContentProps.separator,\n contentStyle,\n itemStyle,\n labelStyle = defaultDefaultTooltipContentProps.labelStyle,\n payload,\n formatter,\n itemSorter,\n wrapperClassName,\n labelClassName,\n label,\n labelFormatter,\n accessibilityLayer = defaultDefaultTooltipContentProps.accessibilityLayer\n } = props;\n var renderContent = () => {\n if (payload && payload.length) {\n var listStyle = {\n padding: 0,\n margin: 0\n };\n var sortedPayload = lodashLikeSortBy(payload, itemSorter);\n var items = sortedPayload.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(_objectSpread({}, defaultDefaultTooltipContentProps.itemStyle), {}, {\n color: entry.color || defaultDefaultTooltipContentProps.itemStyle.color\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(_objectSpread({}, defaultDefaultTooltipContentProps.contentStyle), 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};", "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 { getTooltipTranslate } from '../util/tooltip/translate';\nimport { usePrefersReducedMotion } from '../util/usePrefersReducedMotion';\nfunction resolveTransitionProperty(args) {\n if (args.prefersReducedMotion && args.isAnimationActive === 'auto') {\n return undefined;\n }\n if (args.isAnimationActive && args.active) {\n return \"transform \".concat(args.animationDuration, \"ms \").concat(args.animationEasing);\n }\n return undefined;\n}\nfunction TooltipBoundingBoxImpl(props) {\n var _props$coordinate3, _props$coordinate4, _props$coordinate$x2, _props$coordinate5, _props$coordinate$y2, _props$coordinate6;\n var prefersReducedMotion = usePrefersReducedMotion();\n var [state, setState] = React.useState(() => ({\n dismissed: false,\n dismissedAtCoordinate: {\n x: 0,\n y: 0\n }\n }));\n React.useEffect(() => {\n var handleKeyDown = event => {\n if (event.key === 'Escape') {\n var _props$coordinate$x, _props$coordinate, _props$coordinate$y, _props$coordinate2;\n setState({\n dismissed: true,\n dismissedAtCoordinate: {\n x: (_props$coordinate$x = (_props$coordinate = props.coordinate) === null || _props$coordinate === void 0 ? void 0 : _props$coordinate.x) !== null && _props$coordinate$x !== void 0 ? _props$coordinate$x : 0,\n y: (_props$coordinate$y = (_props$coordinate2 = props.coordinate) === null || _props$coordinate2 === void 0 ? void 0 : _props$coordinate2.y) !== null && _props$coordinate$y !== void 0 ? _props$coordinate$y : 0\n }\n });\n }\n };\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [(_props$coordinate3 = props.coordinate) === null || _props$coordinate3 === void 0 ? void 0 : _props$coordinate3.x, (_props$coordinate4 = props.coordinate) === null || _props$coordinate4 === void 0 ? void 0 : _props$coordinate4.y]);\n if (state.dismissed && (((_props$coordinate$x2 = (_props$coordinate5 = props.coordinate) === null || _props$coordinate5 === void 0 ? void 0 : _props$coordinate5.x) !== null && _props$coordinate$x2 !== void 0 ? _props$coordinate$x2 : 0) !== state.dismissedAtCoordinate.x || ((_props$coordinate$y2 = (_props$coordinate6 = props.coordinate) === null || _props$coordinate6 === void 0 ? void 0 : _props$coordinate6.y) !== null && _props$coordinate$y2 !== void 0 ? _props$coordinate$y2 : 0) !== state.dismissedAtCoordinate.y)) {\n setState(_objectSpread(_objectSpread({}, state), {}, {\n dismissed: false\n }));\n }\n var {\n cssClasses,\n cssProperties\n } = getTooltipTranslate({\n allowEscapeViewBox: props.allowEscapeViewBox,\n coordinate: props.coordinate,\n offsetLeft: typeof props.offset === 'number' ? props.offset : props.offset.x,\n offsetTop: typeof props.offset === 'number' ? props.offset : props.offset.y,\n position: props.position,\n reverseDirection: props.reverseDirection,\n tooltipBox: {\n height: props.lastBoundingBox.height,\n width: props.lastBoundingBox.width\n },\n useTranslate3d: props.useTranslate3d,\n viewBox: props.viewBox\n });\n var positionStyle = props.hasPortalFromProps ? {} : _objectSpread(_objectSpread({\n transition: resolveTransitionProperty({\n prefersReducedMotion,\n isAnimationActive: props.isAnimationActive,\n active: props.active,\n animationDuration: props.animationDuration,\n animationEasing: props.animationEasing\n })\n }, cssProperties), {}, {\n pointerEvents: 'none',\n position: 'absolute',\n top: 0,\n left: 0\n });\n var outerStyle = _objectSpread(_objectSpread({}, positionStyle), {}, {\n visibility: !state.dismissed && props.active && props.hasPayload ? 'visible' : 'hidden'\n }, props.wrapperStyle);\n return /*#__PURE__*/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: props.innerRef\n }, props.children);\n}\nexport var TooltipBoundingBox = /*#__PURE__*/React.memo(TooltipBoundingBoxImpl);", "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 offset,\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 - (offset > 0 ? offset : 0);\n var positive = coordinate[key] + offset;\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 offsetTop,\n offsetLeft,\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 offset: offsetLeft,\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 offset: offsetTop,\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}", "import { useEffect, useState } from 'react';\nimport { Global } from './Global';\n\n/**\n * Detects and subscribes to the user's `prefers-reduced-motion` system preference.\n * Returns `true` when the user prefers reduced motion, `false` otherwise.\n * SSR-safe: always returns `false` during server-side rendering.\n */\nexport function usePrefersReducedMotion() {\n var [prefersReducedMotion, setPrefersReducedMotion] = useState(() => {\n if (Global.isSsr) {\n return false;\n }\n if (!window.matchMedia) {\n return false;\n }\n return window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n });\n useEffect(() => {\n if (!window.matchMedia) {\n return;\n }\n var mediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)');\n var handleChange = () => {\n setPrefersReducedMotion(mediaQuery.matches);\n };\n mediaQuery.addEventListener('change', handleChange);\n // eslint-disable-next-line consistent-return\n return () => {\n mediaQuery.removeEventListener('change', handleChange);\n };\n }, []);\n return prefersReducedMotion;\n}", "var parseIsSsrByDefault = () => !(typeof window !== 'undefined' && window.document && Boolean(window.document.createElement) && window.setTimeout);\nexport var Global = {\n devToolsEnabled: true,\n isSsr: parseIsSsrByDefault()\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};", "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}", "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 { area as shapeArea, curveBasis, curveBasisClosed, curveBasisOpen, curveBumpX, curveBumpY, curveLinear, curveLinearClosed, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore, line as shapeLine } 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';\nimport { useChartLayout } from '../context/chartLayoutContext';\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};\n\n/**\n * @inline\n */\n\n/**\n * @inline\n */\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 var factory = CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n if (factory) {\n return factory;\n }\n }\n return CURVE_FACTORIES[name] || curveLinear;\n};\n\n// Mouse event handlers receive the full Props, including the event handlers themselves.\n\nexport var defaultCurveProps = {\n connectNulls: false,\n type: 'linear'\n};\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 = defaultCurveProps.type,\n points = [],\n baseLine,\n layout,\n connectNulls = defaultCurveProps.connectNulls\n } = _ref;\n var curveFactory = getCurveFactory(type, layout);\n var formatPoints = connectNulls ? points.filter(defined) : points;\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 _lineFunction;\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 // @ts-expect-error the defined call changes the generic type internally but d3 types don't reflect that\n var _nullableLineFunction = _lineFunction.defined(areaDefined).curve(curveFactory);\n var finalPoints = connectNulls ? areaPoints.filter(areaDefined) : areaPoints;\n return _nullableLineFunction(finalPoints);\n }\n var lineFunction;\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\n // @ts-expect-error the defined call changes the generic type internally but d3 types don't reflect that\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 var layout = useChartLayout();\n if ((!points || !points.length) && !path) {\n return null;\n }\n var getPathInput = {\n type: props.type,\n points: props.points,\n baseLine: props.baseLine,\n layout: props.layout || layout,\n connectNulls: props.connectNulls\n };\n var realPath = points && points.length ? getPath(getPathInput) : 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};", "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};", "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}", "var _excluded = [\"radius\"],\n _excluded2 = [\"radius\"];\nvar _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject0;\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; }\nfunction _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(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';\nimport { round, roundTemplateLiteral } from '../util/round';\n\n/**\n * @inline\n */\n\nvar getRectanglePath = (x, y, width, height, radius) => {\n var roundedWidth = round(width);\n var roundedHeight = round(height);\n var maxRadius = Math.min(Math.abs(roundedWidth) / 2, Math.abs(roundedHeight) / 2);\n var ySign = roundedHeight >= 0 ? 1 : -1;\n var xSign = roundedWidth >= 0 ? 1 : -1;\n var clockWise = roundedHeight >= 0 && roundedWidth >= 0 || roundedHeight < 0 && roundedWidth < 0 ? 1 : 0;\n var path;\n if (maxRadius > 0 && Array.isArray(radius)) {\n var newRadius = [0, 0, 0, 0];\n for (var i = 0, len = 4; i < len; i++) {\n var _radius$i;\n var r = (_radius$i = radius[i]) !== null && _radius$i !== void 0 ? _radius$i : 0;\n newRadius[i] = r > maxRadius ? maxRadius : r;\n }\n path = roundTemplateLiteral(_templateObject || (_templateObject = _taggedTemplateLiteral([\"M\", \",\", \"\"])), x, y + ySign * newRadius[0]);\n if (newRadius[0] > 0) {\n path += roundTemplateLiteral(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"A \", \",\", \",0,0,\", \",\", \",\", \"\"])), newRadius[0], newRadius[0], clockWise, x + xSign * newRadius[0], y);\n }\n path += roundTemplateLiteral(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([\"L \", \",\", \"\"])), x + width - xSign * newRadius[1], y);\n if (newRadius[1] > 0) {\n path += roundTemplateLiteral(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral([\"A \", \",\", \",0,0,\", \",\\n \", \",\", \"\"])), newRadius[1], newRadius[1], clockWise, x + width, y + ySign * newRadius[1]);\n }\n path += roundTemplateLiteral(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral([\"L \", \",\", \"\"])), x + width, y + height - ySign * newRadius[2]);\n if (newRadius[2] > 0) {\n path += roundTemplateLiteral(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral([\"A \", \",\", \",0,0,\", \",\\n \", \",\", \"\"])), newRadius[2], newRadius[2], clockWise, x + width - xSign * newRadius[2], y + height);\n }\n path += roundTemplateLiteral(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral([\"L \", \",\", \"\"])), x + xSign * newRadius[3], y + height);\n if (newRadius[3] > 0) {\n path += roundTemplateLiteral(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral([\"A \", \",\", \",0,0,\", \",\\n \", \",\", \"\"])), newRadius[3], newRadius[3], clockWise, x, 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 = roundTemplateLiteral(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral([\"M \", \",\", \"\\n A \", \",\", \",0,0,\", \",\", \",\", \"\\n L \", \",\", \"\\n A \", \",\", \",0,0,\", \",\", \",\", \"\\n L \", \",\", \"\\n A \", \",\", \",0,0,\", \",\", \",\", \"\\n L \", \",\", \"\\n A \", \",\", \",0,0,\", \",\", \",\", \" Z\"])), x, y + ySign * _newRadius, _newRadius, _newRadius, clockWise, x + xSign * _newRadius, y, x + width - xSign * _newRadius, y, _newRadius, _newRadius, clockWise, x + width, y + ySign * _newRadius, x + width, y + height - ySign * _newRadius, _newRadius, _newRadius, clockWise, x + width - xSign * _newRadius, y + height, x + xSign * _newRadius, y + height, _newRadius, _newRadius, clockWise, x, y + height - ySign * _newRadius);\n } else {\n path = roundTemplateLiteral(_templateObject0 || (_templateObject0 = _taggedTemplateLiteral([\"M \", \",\", \" h \", \" v \", \" h \", \" Z\"])), x, y, width, height, -width);\n }\n return path;\n};\nexport var defaultRectangleProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n radius: 0,\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\n\n/**\n * Renders a rectangle element. Unlike the {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/rect rect SVG element}, this component supports rounded corners\n * and animation.\n *\n * This component accepts X and Y coordinates in pixels.\n * If you need to position the rectangle based on your chart's data,\n * consider using the {@link ReferenceArea} component instead.\n *\n * @param rectangleProps\n * @constructor\n */\nexport var Rectangle = rectangleProps => {\n var props = resolveDefaultProps(rectangleProps, defaultRectangleProps);\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 x: round(x),\n y: round(y),\n width: round(width),\n height: round(height),\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 \").concat(totalLength, \"px\");\n var transition = getTransitionVal(['strokeDasharray'], animationDuration, typeof animationEasing === 'string' ? animationEasing : defaultRectangleProps.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};", "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';\nimport { Global } from '../util/Global';\nimport { usePrefersReducedMotion } from '../util/usePrefersReducedMotion';\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: isActiveProp,\n canBegin,\n duration,\n easing,\n begin,\n onAnimationEnd,\n onAnimationStart,\n children\n } = props;\n var prefersReducedMotion = usePrefersReducedMotion();\n var isActive = isActiveProp === 'auto' ? !Global.isSsr && !prefersReducedMotion : isActiveProp;\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}", "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}), {});", "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) && nextStepVals[key] != null) {\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) => {\n var fromElement = from[key];\n var toElement = to[key];\n if (fromElement == null || toElement == null) {\n return res;\n }\n return _objectSpread(_objectSpread({}, res), {}, {\n [key]: [fromElement, toElement]\n });\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 parseCubicBezier = easing => {\n var _easingParts$;\n var easingParts = easing.split('(');\n if (easingParts.length !== 2 || easingParts[0] !== 'cubic-bezier') {\n return null;\n }\n var numbers = (_easingParts$ = easingParts[1]) === null || _easingParts$ === void 0 || (_easingParts$ = _easingParts$.split(')')[0]) === null || _easingParts$ === void 0 ? void 0 : _easingParts$.split(',');\n if (numbers == null || numbers.length !== 4) {\n return null;\n }\n var coords = numbers.map(x => parseFloat(x));\n return [coords[0], coords[1], coords[2], coords[3]];\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 = parseCubicBezier(args[0]);\n if (easing) {\n return easing;\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};", "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}", "/**\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}", "/**\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}", "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}", "function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nexport var 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 relativeX: x,\n relativeY: 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};", "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}", "var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;\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 _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }\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';\nimport { roundTemplateLiteral } from '../util/round';\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 = roundTemplateLiteral(_templateObject || (_templateObject = _taggedTemplateLiteral([\"M \", \",\", \"\\n A \", \",\", \",0,\\n \", \",\", \",\\n \", \",\", \"\\n \"])), outerStartPoint.x, outerStartPoint.y, outerRadius, outerRadius, +(Math.abs(angle) > 180), +(startAngle > tempEndAngle), outerEndPoint.x, outerEndPoint.y);\n if (innerRadius > 0) {\n var innerStartPoint = polarToCartesian(cx, cy, innerRadius, startAngle);\n var innerEndPoint = polarToCartesian(cx, cy, innerRadius, tempEndAngle);\n path += roundTemplateLiteral(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"L \", \",\", \"\\n A \", \",\", \",0,\\n \", \",\", \",\\n \", \",\", \" Z\"])), innerEndPoint.x, innerEndPoint.y, innerRadius, innerRadius, +(Math.abs(angle) > 180), +(startAngle <= tempEndAngle), innerStartPoint.x, innerStartPoint.y);\n } else {\n path += roundTemplateLiteral(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([\"L \", \",\", \" Z\"])), cx, cy);\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 roundTemplateLiteral(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral([\"M \", \",\", \"\\n a\", \",\", \",0,0,1,\", \",0\\n a\", \",\", \",0,0,1,\", \",0\\n \"])), solt.x, solt.y, cornerRadius, cornerRadius, cornerRadius * 2, cornerRadius, cornerRadius, -cornerRadius * 2);\n }\n return getSectorPath({\n cx,\n cy,\n innerRadius,\n outerRadius,\n startAngle,\n endAngle\n });\n }\n var path = roundTemplateLiteral(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral([\"M \", \",\", \"\\n A\", \",\", \",0,0,\", \",\", \",\", \"\\n A\", \",\", \",0,\", \",\", \",\", \",\", \"\\n A\", \",\", \",0,0,\", \",\", \",\", \"\\n \"])), solt.x, solt.y, cornerRadius, cornerRadius, +(sign < 0), soct.x, soct.y, outerRadius, outerRadius, +(outerArcAngle > 180), +(sign < 0), eoct.x, eoct.y, cornerRadius, cornerRadius, +(sign < 0), eolt.x, eolt.y);\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 += roundTemplateLiteral(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral([\"L\", \",\", \"\\n A\", \",\", \",0,0,\", \",\", \",\", \"\\n A\", \",\", \",0,\", \",\", \",\", \",\", \"\\n A\", \",\", \",0,0,\", \",\", \",\", \"Z\"])), eilt.x, eilt.y, cornerRadius, cornerRadius, +(sign < 0), eict.x, eict.y, innerRadius, innerRadius, +(innerArcAngle > 180), +(sign > 0), sict.x, sict.y, cornerRadius, cornerRadius, +(sign < 0), silt.x, silt.y);\n } else {\n path += roundTemplateLiteral(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral([\"L\", \",\", \"Z\"])), cx, cy);\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\nexport var defaultSectorProps = {\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, defaultSectorProps);\n var {\n cx,\n cy,\n innerRadius,\n outerRadius,\n cornerRadius,\n forceCornerRadius,\n cornerIsExternal,\n startAngle,\n endAngle,\n className\n } = props;\n if (outerRadius < innerRadius || startAngle === endAngle) {\n return null;\n }\n var layerClass = clsx('recharts-sector', className);\n var deltaRadius = outerRadius - innerRadius;\n var cr = getPercentValue(cornerRadius, deltaRadius, 0, true);\n var path;\n if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {\n path = getSectorWithCorner({\n cx,\n cy,\n innerRadius,\n outerRadius,\n cornerRadius: Math.min(cr, deltaRadius / 2),\n forceCornerRadius,\n cornerIsExternal,\n startAngle,\n endAngle\n });\n } else {\n path = getSectorPath({\n cx,\n cy,\n innerRadius,\n outerRadius,\n startAngle,\n endAngle\n });\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, svgPropertiesAndEvents(props), {\n className: layerClass,\n d: path\n }));\n};", "import { 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 { createSelector } from 'reselect';\nimport range from 'es-toolkit/compat/range';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { getDomainOfStackGroups, getStackedData, getValueByDataKey, isCategoricalAxis } from '../../util/ChartUtils';\nimport { selectChartDataWithIndexes, selectChartDataWithIndexesIfNotInPanoramaPosition4 } from './dataSelectors';\nimport { isWellFormedNumberDomain, numericalDomainSpecifiedWithoutRequiringData, parseNumericalUserDomain } from '../../util/isDomainSpecifiedByUser';\nimport { getPercentValue, hasDuplicate, isNan, isNotNil, isNumOrStr, mathSign } 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, selectReverseStackOrder, 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';\nimport { rechartsScaleFactory } from '../../util/scale/RechartsScale';\nimport { combineCheckedDomain } from './combiners/combineCheckedDomain';\nimport { combineConfiguredScale } from './combiners/combineConfiguredScale';\nimport { combineRealScaleType } from './combiners/combineRealScaleType';\nimport { createCategoricalInverse } from '../../util/scale/createCategoricalInverse';\nimport { combineInverseScaleFunction } from './combiners/combineInverseScaleFunction';\nexport var 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 niceTicks: 'auto'\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 niceTicks: 'auto',\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 selectRenderableAxisSettings = (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}\n\n// TODO appears there is a bug where this selector is called from polar context, find and fix it.\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, selectChartDataWithIndexesIfNotInPanoramaPosition4], 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);\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}\nfunction sortBy(a, b) {\n var aNum = makeNumber(a);\n var bNum = makeNumber(b);\n if (aNum == null && bNum == null) {\n return 0;\n }\n if (aNum == null) {\n return -1;\n }\n if (bNum == null) {\n return 1;\n }\n return aNum - bNum;\n}\nexport var selectSortedDataPoints = createSelector([selectAllAppliedValues], appliedData => {\n return appliedData === null || appliedData === void 0 ? void 0 : appliedData.map(item => item.value).sort(sortBy);\n});\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 * @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 selectRenderableAxisSettings(state, axisType, axisId);\n};\nexport var selectTooltipAxisDataKey = createSelector([selectTooltipAxis], axis => axis === null || axis === void 0 ? void 0 : axis.dataKey);\nexport var selectDisplayedStackedData = createSelector([selectStackedCartesianItemsSettings, selectChartDataWithIndexesIfNotInPanoramaPosition4, selectTooltipAxis], combineDisplayedStackedData);\nexport var combineStackGroups = (displayedData, items, stackOffsetType, reverseStackOrder) => {\n var initialItemsGroups = {};\n var itemsGroup = items.reduce((acc, item) => {\n if (item.stackId == null) {\n return acc;\n }\n var stack = acc[item.stackId];\n if (stack == null) {\n stack = [];\n }\n stack.push(item);\n acc[item.stackId] = stack;\n return acc;\n }, initialItemsGroups);\n return Object.fromEntries(Object.entries(itemsGroup).map(_ref2 => {\n var [stackId, graphicalItems] = _ref2;\n var orderedGraphicalItems = reverseStackOrder ? [...graphicalItems].reverse() : graphicalItems;\n var dataKeys = orderedGraphicalItems.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: orderedGraphicalItems\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, selectReverseStackOrder], 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 ('ticks' in axisSettings && 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 if (dots == null) {\n return undefined;\n }\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 if (areas == null) {\n return undefined;\n }\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 if (lines == null) {\n return undefined;\n }\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 selectRealScaleType = createSelector([selectBaseAxis, selectHasBar, selectChartName], combineRealScaleType);\nexport var combineNiceTicks = (axisDomain, axisSettings, realScaleType) => {\n var {\n niceTicks\n } = axisSettings;\n if (niceTicks === 'none') {\n return undefined;\n }\n var domainDefinition = getDomainDefinition(axisSettings);\n var hasDomainAutoKeyword = Array.isArray(domainDefinition) && (domainDefinition[0] === 'auto' || domainDefinition[1] === 'auto');\n if ((niceTicks === 'snap125' || niceTicks === 'adaptive') && axisSettings != null && axisSettings.tickCount && isWellFormedNumberDomain(axisDomain)) {\n if (hasDomainAutoKeyword) {\n return getNiceTickValues(axisDomain, axisSettings.tickCount, axisSettings.allowDecimals, niceTicks);\n }\n if (axisSettings.type === 'number') {\n return getTickValuesFixedDomain(axisDomain, axisSettings.tickCount, axisSettings.allowDecimals, niceTicks);\n }\n }\n if (niceTicks === 'auto' && realScaleType === 'linear' && axisSettings != null && axisSettings.tickCount) {\n // Current magic-selector behaviour: apply nice ticks when the domain contains\n // an 'auto' keyword (may extend the domain), or for any fixed number-type axis.\n // Always uses the space-efficient algorithm (adaptive).\n if (hasDomainAutoKeyword && isWellFormedNumberDomain(axisDomain)) {\n return getNiceTickValues(axisDomain, axisSettings.tickCount, axisSettings.allowDecimals, 'adaptive');\n }\n if (axisSettings.type === 'number' && isWellFormedNumberDomain(axisDomain)) {\n return getTickValuesFixedDomain(axisDomain, axisSettings.tickCount, axisSettings.allowDecimals, 'adaptive');\n }\n }\n return undefined;\n};\nexport var selectNiceTicks = createSelector([selectAxisDomain, selectRenderableAxisSettings, 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 _niceTicks$, _niceTicks;\n var minFromDomain = domain[0];\n var minFromTicks = (_niceTicks$ = niceTicks[0]) !== null && _niceTicks$ !== void 0 ? _niceTicks$ : 0;\n var maxFromDomain = domain[1];\n var maxFromTicks = (_niceTicks = niceTicks[niceTicks.length - 1]) !== null && _niceTicks !== void 0 ? _niceTicks : 0;\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 var first = sortedValues[0];\n var last = sortedValues[sortedValues.length - 1];\n if (first == null || last == null) {\n return Infinity;\n }\n var diff = last - first;\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 curr = sortedValues[i];\n var next = sortedValues[i + 1];\n if (curr == null || next == null) {\n continue;\n }\n var distance = next - curr;\n smallestDistanceBetweenValues = Math.min(smallestDistanceBetweenValues, distance);\n }\n return smallestDistanceBetweenValues / diff;\n});\nvar selectCalculatedPadding = createSelector(selectSmallestDistanceBetweenValues, selectChartLayout, selectBarCategoryGap, selectChartOffsetInternal, (_1, _2, _3, _4, 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, isPanorama) => {\n var xAxisSettings = selectXAxisSettings(state, axisId);\n if (xAxisSettings == null || typeof xAxisSettings.padding !== 'string') {\n return 0;\n }\n return selectCalculatedPadding(state, 'xAxis', axisId, isPanorama, xAxisSettings.padding);\n};\nexport var selectCalculatedYAxisPadding = (state, axisId, isPanorama) => {\n var yAxisSettings = selectYAxisSettings(state, axisId);\n if (yAxisSettings == null || typeof yAxisSettings.padding !== 'string') {\n return 0;\n }\n return selectCalculatedPadding(state, 'yAxis', axisId, isPanorama, 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 selectXAxisRange = 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 selectYAxisRange = 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 selectXAxisRange(state, axisId, isPanorama);\n case 'yAxis':\n return selectYAxisRange(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 selectCheckedAxisDomain = createSelector([selectRealScaleType, selectAxisDomainIncludingNiceTicks], combineCheckedDomain);\nvar selectConfiguredScale = createSelector([selectBaseAxis, selectRealScaleType, selectCheckedAxisDomain, selectAxisRangeWithReverse], combineConfiguredScale);\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, selectRenderableAxisSettings, pickAxisType], combineCategoricalDomain);\nexport var selectAxisScale = createSelector([selectConfiguredScale], rechartsScaleFactory);\nexport var selectAxisInverseScale = createSelector([selectConfiguredScale], combineInverseScaleFunction);\nexport var selectAxisInverseDataSnapScale = createSelector([selectConfiguredScale, selectSortedDataPoints], createCategoricalInverse);\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 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});\n\n/**\n * Of on four almost identical implementations of tick generation.\n * The four horsemen of tick generation are:\n * - {@link selectTooltipAxisTicks}\n * - {@link combineAxisTicks}\n * - {@link getTicksOfAxis}.\n * - {@link combineGraphicalItemTicks}\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 var offsetForBand =\n // @ts-expect-error 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 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 return ticksOrNiceTicks.map((entry, index) => {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n var scaled = scale.map(scaleContent);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n index,\n coordinate: scaled + offset,\n value: entry,\n offset\n };\n }).filter(isNotNil);\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 var scaled = scale.map(entry);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n coordinate: scaled + offset,\n value: entry,\n index,\n offset\n };\n }).filter(isNotNil);\n }\n if (scale.ticks) {\n return scale.ticks(tickCount).map((entry, index) => {\n var scaled = scale.map(entry);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n coordinate: scaled + offset,\n value: entry,\n index,\n offset\n };\n }).filter(isNotNil);\n }\n\n // When axis has duplicated text, serial numbers are used to generate scale\n return scale.domain().map((entry, index) => {\n var scaled = scale.map(entry);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n coordinate: scaled + offset,\n // @ts-expect-error can't use Date as index\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index,\n offset\n };\n }).filter(isNotNil);\n};\nexport var selectTicksOfAxis = createSelector([selectChartLayout, selectRenderableAxisSettings, selectRealScaleType, selectAxisScale, selectNiceTicks, selectAxisRange, selectDuplicateDomain, selectCategoricalDomain, pickAxisType], combineAxisTicks);\n\n/**\n * Of on four almost identical implementations of tick generation.\n * The four horsemen of tick generation are:\n * - {@link selectTooltipAxisTicks}\n * - {@link combineAxisTicks}\n * - {@link getTicksOfAxis}.\n * - {@link combineGraphicalItemTicks}\n */\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 var scaled = scale.map(entry);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n coordinate: scaled + offset,\n value: entry,\n index,\n offset\n };\n }).filter(isNotNil);\n }\n if (scale.ticks) {\n return scale.ticks(tickCount).map((entry, index) => {\n var scaled = scale.map(entry);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n coordinate: scaled + offset,\n value: entry,\n index,\n offset\n };\n }).filter(isNotNil);\n }\n\n // When axis has duplicated text, serial numbers are used to generate scale\n return scale.domain().map((entry, index) => {\n var scaled = scale.map(entry);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n coordinate: scaled + offset,\n // @ts-expect-error can't use unknown as index\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index,\n offset\n };\n }).filter(isNotNil);\n};\nexport var selectTicksOfGraphicalItem = createSelector([selectChartLayout, selectRenderableAxisSettings, selectAxisScale, selectAxisRange, selectDuplicateDomain, selectCategoricalDomain, pickAxisType], combineGraphicalItemTicks);\n\n/**\n * This is the internal representation of an axis along with its scale function.\n * Here we have already computed the scale function for the axis,\n * and replaced the union type of scale (string | function) with just the function type.\n */\n\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 selectZAxisConfiguredScale = createSelector([selectBaseAxis, selectRealScaleType, selectAxisDomain, selectAxisRangeWithReverse], combineConfiguredScale);\nvar selectZAxisScale = createSelector([selectZAxisConfiguredScale], rechartsScaleFactory);\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});\nexport var selectRenderedTicksOfAxis = (state, axisType, axisId) => {\n var _state$renderedTicks$;\n return (_state$renderedTicks$ = state.renderedTicks[axisType]) === null || _state$renderedTicks$ === void 0 ? void 0 : _state$renderedTicks$[axisId];\n};\nexport var selectAxisInverseTickSnapScale = createSelector([selectRenderedTicksOfAxis], ticks => {\n if (!ticks || ticks.length === 0) {\n return undefined;\n }\n return pixelValue => {\n var _closestTick;\n // Find the tick with the closest coordinate to pixelValue\n var minDistance = Infinity;\n var closestTick = ticks[0];\n for (var tick of ticks) {\n var distance = Math.abs(tick.coordinate - pixelValue);\n if (distance < minDistance) {\n minDistance = distance;\n closestTick = tick;\n }\n }\n return (_closestTick = closestTick) === null || _closestTick === void 0 ? void 0 : _closestTick.value;\n };\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 selectChartDataWithIndexesIfNotInPanoramaPosition4 = (state, _unused1, _unused2, isPanorama) => {\n if (isPanorama) {\n return selectChartDataAndAlwaysIgnoreIndexes(state);\n }\n return selectChartDataWithIndexes(state);\n};\nexport var selectChartDataWithIndexesIfNotInPanoramaPosition3 = (state, _unused1, isPanorama) => {\n if (isPanorama) {\n return selectChartDataAndAlwaysIgnoreIndexes(state);\n }\n return selectChartDataWithIndexes(state);\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 || match[1] == 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 || _match[1] == 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}", "/*\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\nvar MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n defaults = {\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 Decimal,\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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.toString = P.valueOf = P.val = P.toJSON = P[Symbol.for('nodejs.util.inspect.custom')] = 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\nfunction 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\nfunction 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\nfunction 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\nvar 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nexport var Decimal = clone(defaults);\r\n\r\n// Internal constant.\r\nONE = new Decimal(1);\r\n\r\nexport default Decimal;\r\n", "/**\n * @fileOverview Some common arithmetic methods\n * @author xile611\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\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}\nexport { rangeStep, getDigitCount };", "/**\n * @fileOverview calculate tick values of scale\n * @author xile611, arcthur\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\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 getAdaptiveStep = (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 * The snap125 step algorithm snaps to nice numbers (1, 2, 2.5, 5) at each\n * order of magnitude, producing human-friendly tick intervals like\n * 0, 5, 10, 15, 20 instead of 0, 4, 8, 12, 16.\n *\n * This is opt-in and can be enabled via the `niceTicks` prop on axis components.\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 getSnap125Step = (roughStep, allowDecimals, correctionFactor) => {\n var _NICE_STEPS$niceIdx;\n if (roughStep.lte(0)) {\n return new Decimal(0);\n }\n var NICE_STEPS = [1, 2, 2.5, 5];\n var roughNum = roughStep.toNumber();\n var exponent = Math.floor(new Decimal(roughNum).abs().log(10).toNumber());\n var magnitude = new Decimal(10).pow(exponent);\n\n // normalized is in the range [1, 10)\n var normalized = roughStep.div(magnitude).toNumber();\n\n // Find the smallest nice step >= normalized (ceiling)\n var niceIdx = NICE_STEPS.findIndex(s => s >= normalized - 1e-10);\n if (niceIdx === -1) {\n // normalized > 5 (e.g. 7.3), move to next order of magnitude\n magnitude = magnitude.mul(10);\n niceIdx = 0;\n }\n\n // Apply correction factor by stepping through the nice number sequence\n niceIdx += correctionFactor;\n if (niceIdx >= NICE_STEPS.length) {\n var extraMag = Math.floor(niceIdx / NICE_STEPS.length);\n niceIdx %= NICE_STEPS.length;\n magnitude = magnitude.mul(new Decimal(10).pow(extraMag));\n }\n var niceStep = (_NICE_STEPS$niceIdx = NICE_STEPS[niceIdx]) !== null && _NICE_STEPS$niceIdx !== void 0 ? _NICE_STEPS$niceIdx : 1;\n var formatStep = new Decimal(niceStep).mul(magnitude);\n return allowDecimals ? formatStep : 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 ticks = [];\n for (var i = 0; i < tickCount; i++) {\n ticks.push(middle.add(new Decimal(i - middleIndex).mul(step)).toNumber());\n }\n return ticks;\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 var stepFn = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : getAdaptiveStep;\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 = stepFn(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, stepFn);\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 * @param niceTicksMode The algorithm to use for calculating nice ticks.\n * @return array of ticks\n */\nexport { _calculateStep as calculateStep };\nexport var getNiceTickValues = function getNiceTickValues(_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 var niceTicksMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'auto';\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, ...Array(tickCount - 1).fill(Infinity)] : [...Array(tickCount - 1).fill(-Infinity), cormax];\n return min > max ? _values.reverse() : _values;\n }\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n }\n var stepFn = niceTicksMode === 'snap125' ? getSnap125Step : getAdaptiveStep;\n\n // Get the step between two ticks\n var {\n step,\n tickMin,\n tickMax\n } = _calculateStep(cormin, cormax, count, allowDecimals, 0, stepFn);\n var values = rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);\n return min > max ? values.reverse() : 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 * @param niceTicksMode The algorithm to use for calculating nice ticks. See {@link NiceTicksAlgorithm}.\n * @return array of ticks\n */\nexport var getTickValuesFixedDomain = function getTickValuesFixedDomain(_ref3, tickCount) {\n var [min, max] = _ref3;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var niceTicksMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'auto';\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 stepFn = niceTicksMode === 'snap125' ? getSnap125Step : getAdaptiveStep;\n var count = Math.max(tickCount, 2);\n var step = stepFn(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 ? values.reverse() : values;\n};", "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 selectReverseStackOrder = state => state.rootProps.reverseStackOrder;\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;", "/**\n * A collection of all default zIndex values used by Recharts.\n *\n * You can reuse these, or you can define your own.\n */\nexport var DefaultZIndexes = {\n /**\n * CartesianGrid and PolarGrid\n */\n grid: -100,\n /**\n * Background of Bar and RadialBar.\n * This is not visible by default but can be enabled by setting background={true} on Bar or RadialBar.\n */\n barBackground: -50,\n /*\n * other chart elements or custom elements without specific zIndex\n * render in here, at zIndex 0\n */\n\n /**\n * Area, Pie, Radar, and ReferenceArea\n */\n area: 100,\n /**\n * Cursor is embedded inside Tooltip and controlled by it.\n * The Tooltip itself has a separate portal and is not included in the zIndex system;\n * Cursor is the decoration inside the chart area. CursorRectangle is a rectangle box.\n * It renders below bar so that in a stacked bar chart the cursor rectangle does not hide the other bars.\n */\n cursorRectangle: 200,\n /**\n * Bar and RadialBar\n */\n bar: 300,\n /**\n * Line and ReferenceLine, and ErrorBor\n */\n line: 400,\n /**\n * XAxis and YAxis and PolarAngleAxis and PolarRadiusAxis ticks and lines and children\n */\n axis: 500,\n /**\n * Scatter and ReferenceDot,\n * and Dots of Line and Area and Radar if they have dot=true\n */\n scatter: 600,\n /**\n * Hovering over a Bar or RadialBar renders a highlight rectangle\n */\n activeBar: 1000,\n /**\n * Cursor is embedded inside Tooltip and controlled by it.\n * The Tooltip itself has a separate portal and is not included in the zIndex system;\n * Cursor is the decoration inside the chart area, usually a cross or a box.\n * CursorLine is a line cursor rendered in Line, Area, Scatter, Radar charts.\n * It renders above the Line and Scatter so that it is always visible.\n * It renders below active dot so that the dot is always visible and shows the current point.\n * We're also assuming that the active dot is small enough that it does not fully cover the cursor line.\n *\n * This also applies to the radial cursor in RadialBarChart.\n */\n cursorLine: 1100,\n /**\n * Hovering over a Point in Line, Area, Scatter, Radar renders a highlight dot\n */\n activeDot: 1200,\n /**\n * LabelList and Label, including Axis labels\n */\n label: 2000\n};", "import { 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 allowDataOverflow: false,\n angle: 0,\n angleAxisId: 0,\n axisLine: true,\n axisLineType: 'polygon',\n cx: 0,\n cy: 0,\n hide: false,\n includeHidden: false,\n label: false,\n niceTicks: 'auto',\n orientation: 'outer',\n reversed: false,\n scale: 'auto',\n tick: true,\n tickLine: true,\n tickSize: 8,\n type: 'auto',\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 includeHidden: false,\n hide: false,\n niceTicks: 'auto',\n label: false,\n orientation: 'right',\n radiusAxisId: 0,\n reversed: false,\n scale: 'auto',\n stroke: '#ccc',\n tick: true,\n tickCount: 5,\n tickLine: true,\n type: 'auto',\n zIndex: DefaultZIndexes.axis\n};", "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};", "import { isCategoricalAxis } from './ChartUtils';\n\n/**\n * This function evaluates the \"auto\" axis domain type based on the chart layout and axis type.\n * It outputs a definitive axis domain type that can be used for further processing.\n */\nexport function getAxisTypeBasedOnLayout(layout, axisType, axisDomainType) {\n if (axisDomainType !== 'auto') {\n return axisDomainType;\n }\n if (layout == null) {\n return undefined;\n }\n return isCategoricalAxis(layout, axisType) ? 'category' : 'number';\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 { 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, selectPolarChartLayout } from '../../context/chartLayoutContext';\nimport { getAxisTypeBasedOnLayout } from '../../util/getAxisTypeBasedOnLayout';\nexport var implicitAngleAxis = {\n allowDataOverflow: defaultPolarAngleAxisProps.allowDataOverflow,\n allowDecimals: defaultPolarAngleAxisProps.allowDecimals,\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 niceTicks: 'auto'\n};\nexport var implicitRadiusAxis = {\n allowDataOverflow: defaultPolarRadiusAxisProps.allowDataOverflow,\n allowDecimals: defaultPolarRadiusAxisProps.allowDecimals,\n allowDuplicatedCategory: defaultPolarRadiusAxisProps.allowDuplicatedCategory,\n dataKey: undefined,\n domain: undefined,\n id: defaultPolarRadiusAxisProps.radiusAxisId,\n includeHidden: defaultPolarRadiusAxisProps.includeHidden,\n name: undefined,\n reversed: defaultPolarRadiusAxisProps.reversed,\n scale: defaultPolarRadiusAxisProps.scale,\n tick: defaultPolarRadiusAxisProps.tick,\n tickCount: defaultPolarRadiusAxisProps.tickCount,\n ticks: undefined,\n type: defaultPolarRadiusAxisProps.type,\n unit: undefined,\n niceTicks: 'auto'\n};\nvar selectAngleAxisNoDefaults = (state, angleAxisId) => {\n if (angleAxisId == null) {\n return undefined;\n }\n return state.polarAxis.angleAxis[angleAxisId];\n};\nexport var selectAngleAxis = createSelector([selectAngleAxisNoDefaults, selectPolarChartLayout], (angleAxisSettings, layout) => {\n var _getAxisTypeBasedOnLa;\n if (angleAxisSettings != null) {\n return angleAxisSettings;\n }\n var evaluatedType = (_getAxisTypeBasedOnLa = getAxisTypeBasedOnLayout(layout, 'angleAxis', implicitAngleAxis.type)) !== null && _getAxisTypeBasedOnLa !== void 0 ? _getAxisTypeBasedOnLa : 'category';\n return _objectSpread(_objectSpread({}, implicitAngleAxis), {}, {\n type: evaluatedType\n });\n});\nvar selectRadiusAxisNoDefaults = (state, radiusAxisId) => {\n return state.polarAxis.radiusAxis[radiusAxisId];\n};\nexport var selectRadiusAxis = createSelector([selectRadiusAxisNoDefaults, selectPolarChartLayout], (radiusAxisSettings, layout) => {\n var _getAxisTypeBasedOnLa2;\n if (radiusAxisSettings != null) {\n return radiusAxisSettings;\n }\n var evaluatedType = (_getAxisTypeBasedOnLa2 = getAxisTypeBasedOnLayout(layout, 'radiusAxis', implicitRadiusAxis.type)) !== null && _getAxisTypeBasedOnLa2 !== void 0 ? _getAxisTypeBasedOnLa2 : 'category';\n return _objectSpread(_objectSpread({}, implicitRadiusAxis), {}, {\n type: evaluatedType\n });\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});", "export var pickAxisType = (_state, axisType) => axisType;", "export var pickAxisId = (_state, _axisType, axisId) => axisId;", "/**\n * Returns identifier for stack series which is one individual graphical item in the stack.\n * @param graphicalItem - The graphical item representing the series in the stack.\n * @return The identifier for the series in the stack\n */\nexport function getStackSeriesIdentifier(graphicalItem) {\n return graphicalItem === null || graphicalItem === void 0 ? void 0 : graphicalItem.id;\n}", "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}", "/**\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 'stackId' in graphicalItem && graphicalItem.stackId != null && graphicalItem.dataKey != null;\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};", "/**\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}", "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 * Z axis is never displayed and so it lacks ticks 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};", "export var selectTooltipAxisId = state => state.tooltip.settings.axisId;", "/**\n * This is internal representation of scale used in Recharts.\n * Users will provide CustomScaleDefinition or a string, which we will parse into RechartsScale.\n * Most importantly, RechartsScale is fully immutable - there are no setters that mutate the scale in place.\n * This is important for React integration - if the scale changes, we want to trigger re-renders.\n * Mutating the scale in place would not trigger re-renders, leading to stale UI.\n */\n\n/**\n * Position within a band for banded scales.\n * In scales that are not banded, this parameter is ignored.\n *\n * @inline\n */\n\nexport function rechartsScaleFactory(d3Scale) {\n if (d3Scale == null) {\n return undefined;\n }\n var ticksFn = d3Scale.ticks;\n var bandwidthFn = d3Scale.bandwidth;\n var d3Range = d3Scale.range();\n var range = [Math.min(...d3Range), Math.max(...d3Range)];\n return {\n domain: () => d3Scale.domain(),\n range: function (_range) {\n function range() {\n return _range.apply(this, arguments);\n }\n range.toString = function () {\n return _range.toString();\n };\n return range;\n }(() => range),\n rangeMin: () => range[0],\n rangeMax: () => range[1],\n isInRange(value) {\n var first = range[0];\n var last = range[1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n },\n bandwidth: bandwidthFn ? () => bandwidthFn.call(d3Scale) : undefined,\n ticks: ticksFn ? count => ticksFn.call(d3Scale, count) : undefined,\n map: (input, options) => {\n var baseValue = d3Scale(input);\n if (baseValue == null) {\n return undefined;\n }\n if (d3Scale.bandwidth && options !== null && options !== void 0 && options.position) {\n var bandWidth = d3Scale.bandwidth();\n switch (options.position) {\n case 'middle':\n baseValue += bandWidth / 2;\n break;\n case 'end':\n baseValue += bandWidth;\n break;\n default:\n // 'start' requires no adjustment\n break;\n }\n }\n return baseValue;\n }\n };\n}", "import { isWellFormedNumberDomain } from '../../../util/isDomainSpecifiedByUser';\nimport { isWellBehavedNumber } from '../../../util/isWellBehavedNumber';\n\n/**\n * This function validates and transforms the axis domain so that it is safe to use in the provided scale.\n */\nexport var combineCheckedDomain = (realScaleType, axisDomain) => {\n if (axisDomain == null) {\n return undefined;\n }\n switch (realScaleType) {\n case 'linear':\n {\n /*\n * linear scale only reads the first two numbers in the domain, and ignores everything else.\n * So if it happens that someone somehow gave us a bigger domain,\n * let's pick the min and max from it.\n */\n if (!isWellFormedNumberDomain(axisDomain)) {\n var min, max;\n for (var i = 0; i < axisDomain.length; i++) {\n var value = axisDomain[i];\n if (!isWellBehavedNumber(value)) {\n continue;\n }\n if (min === undefined || value < min) {\n min = value;\n }\n if (max === undefined || value > max) {\n max = value;\n }\n }\n if (min !== undefined && max !== undefined) {\n return [min, max];\n }\n return undefined;\n }\n return axisDomain;\n }\n default:\n return axisDomain;\n }\n};", "\n// `victory-vendor/d3-scale` (ESM)\n// See upstream license: https://github.com/d3/d3-scale/blob/main/LICENSE\n//\n// Our ESM package uses the underlying installed dependencies of `node_modules/d3-scale`\nexport * from \"d3-scale\";\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 function blur(values, r) {\n if (!((r = +r) >= 0)) throw new RangeError(\"invalid r\");\n let length = values.length;\n if (!((length = Math.floor(length)) >= 0)) throw new RangeError(\"invalid length\");\n if (!length || !r) return values;\n const blur = blurf(r);\n const temp = values.slice();\n blur(values, temp, 0, length, 1);\n blur(temp, values, 0, length, 1);\n blur(values, temp, 0, length, 1);\n return values;\n}\n\nexport const blur2 = Blur2(blurf);\n\nexport const blurImage = Blur2(blurfImage);\n\nfunction Blur2(blur) {\n return function(data, rx, ry = rx) {\n if (!((rx = +rx) >= 0)) throw new RangeError(\"invalid rx\");\n if (!((ry = +ry) >= 0)) throw new RangeError(\"invalid ry\");\n let {data: values, width, height} = data;\n if (!((width = Math.floor(width)) >= 0)) throw new RangeError(\"invalid width\");\n if (!((height = Math.floor(height !== undefined ? height : values.length / width)) >= 0)) throw new RangeError(\"invalid height\");\n if (!width || !height || (!rx && !ry)) return data;\n const blurx = rx && blur(rx);\n const blury = ry && blur(ry);\n const temp = values.slice();\n if (blurx && blury) {\n blurh(blurx, temp, values, width, height);\n blurh(blurx, values, temp, width, height);\n blurh(blurx, temp, values, width, height);\n blurv(blury, values, temp, width, height);\n blurv(blury, temp, values, width, height);\n blurv(blury, values, temp, width, height);\n } else if (blurx) {\n blurh(blurx, values, temp, width, height);\n blurh(blurx, temp, values, width, height);\n blurh(blurx, values, temp, width, height);\n } else if (blury) {\n blurv(blury, values, temp, width, height);\n blurv(blury, temp, values, width, height);\n blurv(blury, values, temp, width, height);\n }\n return data;\n };\n}\n\nfunction blurh(blur, T, S, w, h) {\n for (let y = 0, n = w * h; y < n;) {\n blur(T, S, y, y += w, 1);\n }\n}\n\nfunction blurv(blur, T, S, w, h) {\n for (let x = 0, n = w * h; x < w; ++x) {\n blur(T, S, x, x + n, w);\n }\n}\n\nfunction blurfImage(radius) {\n const blur = blurf(radius);\n return (T, S, start, stop, step) => {\n start <<= 2, stop <<= 2, step <<= 2;\n blur(T, S, start + 0, stop + 0, step);\n blur(T, S, start + 1, stop + 1, step);\n blur(T, S, start + 2, stop + 2, step);\n blur(T, S, start + 3, stop + 3, step);\n };\n}\n\n// Given a target array T, a source array S, sets each value T[i] to the average\n// of {S[i - r], …, S[i], …, S[i + r]}, where r = ⌊radius⌋, start <= i < stop,\n// for each i, i + step, i + 2 * step, etc., and where S[j] is clamped between\n// S[start] (inclusive) and S[stop] (exclusive). If the given radius is not an\n// integer, S[i - r - 1] and S[i + r + 1] are added to the sum, each weighted\n// according to r - ⌊radius⌋.\nfunction blurf(radius) {\n const radius0 = Math.floor(radius);\n if (radius0 === radius) return bluri(radius);\n const t = radius - radius0;\n const w = 2 * radius + 1;\n return (T, S, start, stop, step) => { // stop must be aligned!\n if (!((stop -= step) >= start)) return; // inclusive stop\n let sum = radius0 * S[start];\n const s0 = step * radius0;\n const s1 = s0 + step;\n for (let i = start, j = start + s0; i < j; i += step) {\n sum += S[Math.min(stop, i)];\n }\n for (let i = start, j = stop; i <= j; i += step) {\n sum += S[Math.min(stop, i + s0)];\n T[i] = (sum + t * (S[Math.max(start, i - s1)] + S[Math.min(stop, i + s1)])) / w;\n sum -= S[Math.max(start, i - s0)];\n }\n };\n}\n\n// Like blurf, but optimized for integer radius.\nfunction bluri(radius) {\n const w = 2 * radius + 1;\n return (T, S, start, stop, step) => { // stop must be aligned!\n if (!((stop -= step) >= start)) return; // inclusive stop\n let sum = radius * S[start];\n const s = step * radius;\n for (let i = start, j = start + s; i < j; i += step) {\n sum += S[Math.min(stop, i)];\n }\n for (let i = start, j = stop; i <= j; i += step) {\n sum += S[Math.min(stop, i + s)];\n T[i] = sum / w;\n sum -= S[Math.max(start, i - s)];\n }\n };\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 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", "var array = Array.prototype;\n\nexport var slice = array.slice;\nexport var map = array.map;\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 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 {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", "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", "export default shuffler(Math.random);\n\nexport function shuffler(random) {\n return function shuffle(array, i0 = 0, i1 = array.length) {\n let m = i1 - (i0 = +i0);\n while (m) {\n const i = random() * m-- | 0, t = array[m + i0];\n array[m + i0] = array[i + i0];\n array[i + i0] = t;\n }\n return array;\n };\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", "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(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 const radians = Math.PI / 180;\nexport const degrees = 180 / Math.PI;\n", "import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb} from \"./color.js\";\nimport {degrees, radians} from \"./math.js\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nconst K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * degrees;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * radians;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb() {\n return hcl2lab(this).rgb();\n }\n}));\n", "import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {degrees, radians} from \"./math.js\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * degrees - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * radians,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\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", "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", "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", "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 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", "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", "var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n", "import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n", "import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n", "var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\n", "import {hsl as colorHsl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hsl(hue) {\n return function(start, end) {\n var h = hue((start = colorHsl(start)).h, (end = colorHsl(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hsl(hue);\nexport var hslLong = hsl(color);\n", "import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n", "import {cubehelix as colorCubehelix} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction cubehelix(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n\n return cubehelix;\n })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\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", "export default function constants(x) {\n return function() {\n return x;\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(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 (!isFinite(x) || x === 0) return null; // NaN, ±Infinity, ±0\n var i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\"), 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", "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", "// [[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", "// 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 {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return prefixExponent = undefined, x.toPrecision(p);\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", "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, options) {\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 = (options && options.prefix !== undefined ? options.prefix : \"\") + (symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\"),\n suffix = (symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\") + (options && options.suffix !== undefined ? options.suffix : \"\");\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\" && !isNaN(value) && prefixExponent !== undefined ? 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 e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier), {suffix: prefixes[8 + e / 3]});\n return function(value) {\n return f(k * value);\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", "import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\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 {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 {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", "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", "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", "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", "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 {utcFormat} from \"./defaultLocale.js\";\n\nexport var isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n ? formatIsoNative\n : utcFormat(isoSpecifier);\n\nexport default formatIso;\n", "import {isoSpecifier} from \"./isoFormat.js\";\nimport {utcParse} from \"./defaultLocale.js\";\n\nfunction parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n ? parseIsoNative\n : utcParse(isoSpecifier);\n\nexport default parseIso;\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 * as d3Scales from 'victory-vendor/d3-scale';\nimport { upperFirst } from '../../../util/DataUtils';\nfunction getD3ScaleFromType(realScaleType) {\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}\n\n/**\n * Converts external scale definition into internal RechartsScale definition.\n * @param scale custom function scale - if you have the `string` from outside, use `combineRealScaleType` first which will validate it and return RechartsScaleType or undefined\n * @param axisDomain\n * @param axisRange\n */\n\nexport function combineConfiguredScaleInternal(scale, axisDomain, axisRange) {\n if (typeof scale === 'function') {\n return scale.copy().domain(axisDomain).range(axisRange);\n }\n if (scale == null) {\n return undefined;\n }\n var d3ScaleFunction = getD3ScaleFromType(scale);\n if (d3ScaleFunction == null) {\n return undefined;\n }\n d3ScaleFunction.domain(axisDomain).range(axisRange);\n return d3ScaleFunction;\n}\nexport function combineConfiguredScale(axis, realScaleType, axisDomain, axisRange) {\n if (axisDomain == null || axisRange == null) {\n return undefined;\n }\n if (typeof axis.scale === 'function') {\n return combineConfiguredScaleInternal(axis.scale, axisDomain, axisRange);\n }\n return combineConfiguredScaleInternal(realScaleType, axisDomain, axisRange);\n}", "import * as d3Scales from 'victory-vendor/d3-scale';\nimport { upperFirst } from '../../../util/DataUtils';\nfunction getD3ScaleName(name) {\n return \"scale\".concat(upperFirst(name));\n}\nfunction isSupportedScaleName(name) {\n return getD3ScaleName(name) in d3Scales;\n}\nexport var combineRealScaleType = (axisConfig, hasBar, chartType) => {\n if (axisConfig == null) {\n return undefined;\n }\n var {\n scale,\n type\n } = axisConfig;\n if (scale === 'auto') {\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 return isSupportedScaleName(scale) ? scale : 'point';\n }\n return undefined;\n};", "/**\n * Binary search to find the index where x would fit in array a.\n * Works for arrays that are sorted both ascending and descending.\n *\n * Unlike d3.bisect, this implementation handles both ascending and descending arrays.\n *\n * @param haystack Sorted array of numbers\n * @param needle Number to find the insertion index for\n * @returns Index where x would fit in array a\n */\nexport function bisect(haystack, needle) {\n var lo = 0;\n var hi = haystack.length;\n var ascending = haystack[0] < haystack[haystack.length - 1];\n while (lo < hi) {\n var mid = Math.floor((lo + hi) / 2);\n if (ascending ? haystack[mid] < needle : haystack[mid] > needle) {\n lo = mid + 1;\n } else {\n hi = mid;\n }\n }\n return lo;\n}\n\n/**\n * Computes an inverse scale function for categorical/ordinal scales.\n * Uses bisect to find the closest domain value for a given pixel coordinate.\n */\nexport function createCategoricalInverse(scale, allDataPointsOnAxis) {\n if (!scale) {\n return undefined;\n }\n var domain = allDataPointsOnAxis !== null && allDataPointsOnAxis !== void 0 ? allDataPointsOnAxis : scale.domain();\n // Build an array of pixel positions for each domain value\n // @ts-expect-error we're attempting to scale unknown without having guarantee that it is a Domain type\n var pixelPositions = domain.map(d => {\n var _scale;\n return (_scale = scale(d)) !== null && _scale !== void 0 ? _scale : 0;\n });\n var range = scale.range();\n if (domain.length === 0 || range.length < 2) {\n return undefined;\n }\n return pixelValue => {\n var _pixelPositions, _pixelPositions$index;\n // Find the closest domain value using bisect\n var index = bisect(pixelPositions, pixelValue);\n\n // Clamp to valid range\n if (index <= 0) {\n return domain[0];\n }\n if (index >= domain.length) {\n return domain[domain.length - 1];\n }\n\n // Check which neighbor is closer\n var leftPixel = (_pixelPositions = pixelPositions[index - 1]) !== null && _pixelPositions !== void 0 ? _pixelPositions : 0;\n var rightPixel = (_pixelPositions$index = pixelPositions[index]) !== null && _pixelPositions$index !== void 0 ? _pixelPositions$index : 0;\n if (Math.abs(pixelValue - leftPixel) <= Math.abs(pixelValue - rightPixel)) {\n return domain[index - 1];\n }\n return domain[index];\n };\n}", "import { createCategoricalInverse } from '../../../util/scale/createCategoricalInverse';\nexport function combineInverseScaleFunction(configuredScale) {\n if (configuredScale == null) {\n return undefined;\n }\n if ('invert' in configuredScale && typeof configuredScale.invert === 'function') {\n return configuredScale.invert.bind(configuredScale);\n }\n return createCategoricalInverse(configuredScale, undefined);\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}", "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};", "export var selectTooltipSettings = state => state.tooltip.settings;", "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 graphicalItemId: 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 graphicalItemId: undefined\n },\n tooltipItemPayloads: [],\n settings: {\n shared: undefined,\n trigger: 'hover',\n axisId: 0,\n active: false,\n defaultIndex: undefined\n }\n};\n\n/**\n * This is the event we get when user is interacting with a specific graphical item.\n */\n\n/**\n * Keyboard interaction payload has no graphical item ID,\n * and no dataKey, because keyboard interaction is always\n * with the whole chart, not with a specific graphical item.\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 replaceTooltipEntrySettings: {\n reducer(state, action) {\n var {\n prev,\n next\n } = action.payload;\n var index = current(state).tooltipItemPayloads.indexOf(castDraft(prev));\n if (index > -1) {\n state.tooltipItemPayloads[index] = castDraft(next);\n }\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.graphicalItemId = action.payload.activeGraphicalItemId;\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.graphicalItemId = action.payload.activeGraphicalItemId;\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 }\n }\n});\nexport var {\n addTooltipEntrySettings,\n replaceTooltipEntrySettings,\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;", "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 graphicalItemId: undefined\n };\n }\n return _objectSpread(_objectSpread({}, noInteraction), {}, {\n coordinate: appropriateMouseInteraction.coordinate\n });\n};", "import { isWellBehavedNumber } from '../../../util/isWellBehavedNumber';\nimport { getValueByDataKey } from '../../../util/ChartUtils';\nimport { isWellFormedNumberDomain } from '../../../util/isDomainSpecifiedByUser';\nfunction toFiniteNumber(value) {\n if (typeof value === 'number') {\n return Number.isFinite(value) ? value : undefined;\n }\n if (value instanceof Date) {\n var numericValue = value.valueOf();\n return Number.isFinite(numericValue) ? numericValue : undefined;\n }\n var parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : undefined;\n}\nfunction isValueWithinNumberDomain(value, domain) {\n var numericValue = toFiniteNumber(value);\n var lowerBound = domain[0];\n var upperBound = domain[1];\n if (numericValue === undefined) {\n return false;\n }\n var min = Math.min(lowerBound, upperBound);\n var max = Math.max(lowerBound, upperBound);\n return numericValue >= min && numericValue <= max;\n}\nfunction isValueWithinDomain(entry, axisDataKey, domain) {\n if (domain == null || axisDataKey == null) {\n return true;\n }\n var value = getValueByDataKey(entry, axisDataKey);\n if (value == null) {\n return true;\n }\n if (!isWellFormedNumberDomain(domain)) {\n return true;\n }\n return isValueWithinNumberDomain(value, domain);\n}\nexport var combineActiveTooltipIndex = (tooltipInteraction, chartData, axisDataKey, domain) => {\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 var clampedIndex = Math.max(lowerLimit, Math.min(indexAsNumber, upperLimit));\n var entry = chartData[clampedIndex];\n if (entry == null) {\n return String(clampedIndex);\n }\n if (!isValueWithinDomain(entry, axisDataKey, domain)) {\n return null;\n }\n return String(clampedIndex);\n};", "export var combineCoordinateForDefaultIndex = (width, height, layout, offset, tooltipTicks, defaultIndex, tooltipConfigurations) => {\n if (defaultIndex == null) {\n return undefined;\n }\n /*\n * With defaultIndex alone, we don't have enough information to decide _which_ of the multiple tooltips to display.\n * Maybe one day we could add new prop `activeGraphicalItemId` to the chart to help with that.\n * Until then, we choose the first one.\n */\n var firstConfiguration = tooltipConfigurations[0];\n var maybePosition = firstConfiguration === null || firstConfiguration === void 0 ? void 0 : firstConfiguration.getPosition(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 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 filterByGraphicalItemId;\n if (trigger === 'hover') {\n filterByGraphicalItemId = tooltipState.itemInteraction.hover.graphicalItemId;\n } else {\n filterByGraphicalItemId = tooltipState.itemInteraction.click.graphicalItemId;\n }\n if (tooltipState.syncInteraction.active && filterByGraphicalItemId == null) {\n /*\n * When a tooltip is synchronised from another chart, the local itemInteraction\n * has no graphicalItemId because the user hasn't hovered over this chart.\n * In that case we show all tooltip items so the receiving chart can display\n * its own data at the synced index — matching the behaviour of axis-type tooltips.\n */\n return tooltipState.tooltipItemPayloads;\n }\n if (filterByGraphicalItemId == 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 var firstItemPayload = tooltipState.tooltipItemPayloads[0];\n if (firstItemPayload != null) {\n return [firstItemPayload];\n }\n return [];\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.graphicalItemId) === filterByGraphicalItemId;\n });\n};", "export var selectTooltipPayloadSearcher = state => state.options.tooltipPayloadSearcher;", "export var selectTooltipState = state => state.tooltip;", "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 parseName(value) {\n if (typeof value === 'string' || typeof value === 'number') {\n return value;\n }\n return undefined;\n}\nfunction parseUnit(value) {\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n return value;\n }\n return undefined;\n}\nfunction parseDataKey(value) {\n if (typeof value === 'string' || typeof value === 'number') {\n return value;\n }\n if (typeof value === 'function') {\n return obj => value(obj);\n }\n return undefined;\n}\nfunction parseColor(value) {\n if (typeof value === 'string') {\n return value;\n }\n return undefined;\n}\nfunction parseTooltipPayloadItem(item) {\n if (item == null || typeof item !== 'object') {\n return undefined;\n }\n var name = 'name' in item ? parseName(item.name) : undefined;\n var unit = 'unit' in item ? parseUnit(item.unit) : undefined;\n var dataKey = 'dataKey' in item ? parseDataKey(item.dataKey) : undefined;\n var payload = 'payload' in item ? item.payload : undefined;\n var color = 'color' in item ? parseColor(item.color) : undefined;\n var fill = 'fill' in item ? parseColor(item.fill) : undefined;\n return {\n name,\n unit,\n dataKey,\n payload,\n color,\n fill\n };\n}\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 _parsedItem$color, _parsedItem$fill;\n var parsedItem = parseTooltipPayloadItem(item);\n var itemName = parsedItem === null || parsedItem === void 0 ? void 0 : parsedItem.name;\n var itemDataKey = parsedItem === null || parsedItem === void 0 ? void 0 : parsedItem.dataKey;\n var itemPayload = parsedItem === null || parsedItem === void 0 ? void 0 : parsedItem.payload;\n var newSettings = _objectSpread(_objectSpread({}, settings), {}, {\n name: itemName,\n unit: parsedItem === null || parsedItem === void 0 ? void 0 : parsedItem.unit,\n // Preserve item-level color/fill from graphical items.\n color: (_parsedItem$color = parsedItem === null || parsedItem === void 0 ? void 0 : parsedItem.color) !== null && _parsedItem$color !== void 0 ? _parsedItem$color : settings === null || settings === void 0 ? void 0 : settings.color,\n fill: (_parsedItem$fill = parsedItem === null || parsedItem === void 0 ? void 0 : parsedItem.fill) !== null && _parsedItem$fill !== void 0 ? _parsedItem$fill : settings === null || settings === void 0 ? void 0 : settings.fill\n });\n agg.push(getTooltipEntry({\n tooltipEntrySettings: newSettings,\n dataKey: itemDataKey,\n payload: itemPayload,\n value: getValueByDataKey(itemPayload, itemDataKey),\n name: itemName == null ? undefined : String(itemName)\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 // getValueByDataKey does not validate the output type\n value: getValueByDataKey(tooltipPayload, finalDataKey),\n // 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 { createSelector } from 'reselect';\nimport { combineAppliedValues, combineAreasDomain, combineAxisDomain, combineAxisDomainWithNiceTicks, combineCategoricalDomain, combineDisplayedData, combineDomainOfAllAppliedNumericalValuesIncludingErrorValues, combineDomainOfStackGroups, combineDotsDomain, combineDuplicateDomain, combineGraphicalItemsData, combineGraphicalItemsSettings, combineLinesDomain, combineNiceTicks, combineNumericalDomain, 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, selectReverseStackOrder, selectStackOffsetType } from './rootPropsSelectors';\nimport { isNotNil, 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';\nimport { rechartsScaleFactory } from '../../util/scale/RechartsScale';\nimport { isWellBehavedNumber } from '../../util/isWellBehavedNumber';\nimport { combineRealScaleType } from './combiners/combineRealScaleType';\nimport { combineConfiguredScale } from './combiners/combineConfiguredScale';\nexport var selectTooltipAxisRealScaleType = createSelector([selectTooltipAxis, selectHasBar, selectChartName], 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, selectReverseStackOrder], 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);\nvar selectTooltipConfiguredScale = createSelector([selectTooltipAxis, selectTooltipAxisRealScaleType, selectTooltipAxisDomainIncludingNiceTicks, selectTooltipAxisRangeWithReverse], combineConfiguredScale);\nexport var selectTooltipAxisScale = createSelector([selectTooltipConfiguredScale], rechartsScaleFactory);\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 var scaled = scale.map(entry);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n coordinate: scaled + offset,\n value: entry,\n index,\n offset\n };\n }).filter(isNotNil);\n }\n\n // When axis has duplicated text, serial numbers are used to generate scale\n return scale.domain().map((entry, index) => {\n var scaled = scale.map(entry);\n if (!isWellBehavedNumber(scaled)) {\n return null;\n }\n return {\n coordinate: scaled + offset,\n // @ts-expect-error can't use Date as an index\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index,\n offset\n };\n }).filter(isNotNil);\n};\n\n/**\n * Of on four almost identical implementations of tick generation.\n * The four horsemen of tick generation are:\n * - {@link selectTooltipAxisTicks}\n * - {@link combineAxisTicks}\n * - {@link getTicksOfAxis}.\n * - {@link combineGraphicalItemTicks}\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, selectTooltipAxisDataKey, selectTooltipAxisDomain], 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});\nexport var selectActiveTooltipGraphicalItemId = createSelector([selectTooltipInteractionState], tooltipInteraction => {\n if (!tooltipInteraction) {\n return undefined;\n }\n return tooltipInteraction.graphicalItemId;\n});\nvar selectTooltipPayloadConfigurations = createSelector([selectTooltipState, selectTooltipEventType, selectTooltipTrigger, selectDefaultIndex], combineTooltipPayloadConfigurations);\nvar selectTooltipCoordinateForDefaultIndex = createSelector([selectChartWidth, selectChartHeight, selectChartLayout, selectChartOffsetInternal, selectTooltipAxisTicks, selectDefaultIndex, selectTooltipPayloadConfigurations], 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 => {\n var _tooltipInteractionSt;\n return (_tooltipInteractionSt = tooltipInteractionState === null || tooltipInteractionState === void 0 ? void 0 : tooltipInteractionState.active) !== null && _tooltipInteractionSt !== void 0 ? _tooltipInteractionSt : false;\n});\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});", "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};", "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 { selectTooltipAxisDomain, 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, selectTooltipAxisDataKey, selectTooltipAxisDomain], 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], 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, selectActiveIndex], (tooltipInteractionState, activeIndex) => {\n return {\n isActive: tooltipInteractionState.active && activeIndex != null,\n activeIndex\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};", "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.relativeY\n };\n }\n if (layout === 'vertical') {\n return {\n x: pointer.relativeX,\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 relativeX: x,\n relativeY: 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 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 _unsortedTicks, _unsortedTicks2, _unsortedTicks$i, _unsortedTicks$, _unsortedTicks3;\n var before = i > 0 ? (_unsortedTicks = unsortedTicks[i - 1]) === null || _unsortedTicks === void 0 ? void 0 : _unsortedTicks.coordinate : (_unsortedTicks2 = unsortedTicks[len - 1]) === null || _unsortedTicks2 === void 0 ? void 0 : _unsortedTicks2.coordinate;\n var cur = (_unsortedTicks$i = unsortedTicks[i]) === null || _unsortedTicks$i === void 0 ? void 0 : _unsortedTicks$i.coordinate;\n var after = i >= len - 1 ? (_unsortedTicks$ = unsortedTicks[0]) === null || _unsortedTicks$ === void 0 ? void 0 : _unsortedTicks$.coordinate : (_unsortedTicks3 = unsortedTicks[i + 1]) === null || _unsortedTicks3 === void 0 ? void 0 : _unsortedTicks3.coordinate;\n var sameDirectionCoord = void 0;\n if (before == null || cur == null || after == null) {\n continue;\n }\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 var _unsortedTicks$i2;\n return (_unsortedTicks$i2 = unsortedTicks[i]) === null || _unsortedTicks$i2 === void 0 ? void 0 : _unsortedTicks$i2.index;\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 var _unsortedTicks$i3;\n return (_unsortedTicks$i3 = unsortedTicks[i]) === null || _unsortedTicks$i3 === void 0 ? void 0 : _unsortedTicks$i3.index;\n }\n }\n }\n } else if (ticks) {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n var curr = ticks[_i];\n if (curr == null) {\n continue;\n }\n var next = ticks[_i + 1];\n var prev = ticks[_i - 1];\n if (_i === 0 && next != null && coordinate <= (curr.coordinate + next.coordinate) / 2) {\n return curr.index;\n }\n if (_i === len - 1 && prev != null && coordinate > (curr.coordinate + prev.coordinate) / 2) {\n return curr.index;\n }\n if (_i > 0 && _i < len - 1 && prev != null && next != null && coordinate > (curr.coordinate + prev.coordinate) / 2 && coordinate <= (curr.coordinate + next.coordinate) / 2) {\n return curr.index;\n }\n }\n }\n return -1;\n};", "import { useLayoutEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { noop } from '../util/DataUtils';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { selectZIndexPortalElement } 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 *\n * @since 3.4\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 portalElement = useAppSelector(state => selectZIndexPortalElement(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 (!portalElement) {\n /*\n * If we don't have a portal element 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 return /*#__PURE__*/createPortal(children, portalElement);\n}", "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 reference.\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 selectZIndexPortalElement = 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.panoramaElement;\n }\n return entry.element;\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});", "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 element references.\n */\nimport { createSlice, prepareAutoBatched } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nvar seed = {};\nvar initialState = {\n zIndexMap: Object.values(DefaultZIndexes).reduce((acc, current) => _objectSpread(_objectSpread({}, acc), {}, {\n [current]: {\n element: undefined,\n panoramaElement: 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 element: undefined,\n panoramaElement: 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 registerZIndexPortalElement: {\n reducer: (state, action) => {\n var {\n zIndex,\n element,\n isPanorama\n } = action.payload;\n if (state.zIndexMap[zIndex]) {\n if (isPanorama) {\n state.zIndexMap[zIndex].panoramaElement = castDraft(element);\n } else {\n state.zIndexMap[zIndex].element = castDraft(element);\n }\n } else {\n state.zIndexMap[zIndex] = {\n consumers: 0,\n element: isPanorama ? undefined : castDraft(element),\n panoramaElement: isPanorama ? castDraft(element) : undefined\n };\n }\n },\n prepare: prepareAutoBatched()\n },\n unregisterZIndexPortalElement: {\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].panoramaElement = undefined;\n } else {\n state.zIndexMap[zIndex].element = undefined;\n }\n }\n },\n prepare: prepareAutoBatched()\n }\n }\n});\nexport var {\n registerZIndexPortal,\n unregisterZIndexPortal,\n registerZIndexPortalElement,\n unregisterZIndexPortalElement\n} = zIndexSlice.actions;\nexport var zIndexReducer = zIndexSlice.reducer;", "import { createContext, useContext } from 'react';\nexport var TooltipPortalContext = /*#__PURE__*/createContext(null);\nexport var useTooltipPortal = () => useContext(TooltipPortalContext);", "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 { selectActiveTooltipGraphicalItemId, 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 graphicalItemId: 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 graphicalItemId: action.payload.graphicalItemId\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 activeGraphicalItemId = useAppSelector(selectActiveTooltipGraphicalItemId);\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 graphicalItemId: activeGraphicalItemId\n });\n eventCenter.emit(TOOLTIP_SYNC_EVENT, syncId, syncAction, eventEmitterSymbol);\n }, [isReceivingSynchronisation, activeCoordinate, activeDataKey, activeGraphicalItemId, 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 EventEmitter from './index.js'\n\nexport { EventEmitter }\nexport default EventEmitter\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';", "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 var arrayTooltipSearcher = (data, strIndex) => {\n if (!strIndex) return undefined;\n if (!Array.isArray(data)) return undefined;\n var numIndex = Number.parseInt(strIndex, 10);\n if (isNan(numIndex)) {\n return undefined;\n }\n return 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 function selectSynchronisedTooltipState(state) {\n return state.tooltip.syncInteraction;\n}", "import { createSlice } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\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 * @inline\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 = castDraft(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;", "/**\n * Cell component used to define colors and styles of chart elements.\n *\n * This component is now deprecated and will be removed in Recharts 4.0.\n *\n * Please use the `shape` prop or `content` prop on the respective chart components\n * to customize the rendering of chart elements instead of using `Cell`.\n *\n * @see {@link https://recharts.github.io/en-US/guide/cell/ Guide: Migrate from Cell component to shape prop}\n *\n * @deprecated\n * @consumes CellReader\n */\nexport var Cell = _props => null;\nCell.displayName = 'Cell';", "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};\n\n/**\n * @inline\n */\n\nexport function isValidTextAnchor(value) {\n return value === 'start' || value === 'middle' || value === 'end' || value === 'inherit';\n}\n\n/**\n * @inline\n */\n\n/**\n * @inline\n */\n\nexport function isRenderableText(val) {\n return isNullish(val) || typeof val === 'string' || typeof val === 'number' || typeof val === 'boolean';\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';\nexport var textDefaultProps = {\n angle: 0,\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 var firstLine = wordsByLines[0];\n if (scaleToFit && firstLine != null) {\n var lineWidth = firstLine.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';", "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 if (firstKey != null) {\n this.cache.delete(firstKey);\n }\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 _DecimalCSS;\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 { 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 = ['cm', 'mm', 'pt', 'pc', 'in', 'Q', 'px'];\nfunction isSupportedUnit(unit) {\n return FIXED_CSS_LENGTH_UNITS.includes(unit);\n}\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 if (numStr == null) {\n return DecimalCSS.NaN;\n }\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 (isSupportedUnit(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}\n_DecimalCSS = DecimalCSS;\n_defineProperty(DecimalCSS, \"NaN\", new _DecimalCSS(NaN, ''));\nfunction calculateArithmetic(expr) {\n if (expr == null || 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 = [\"labelRef\"],\n _excluded2 = [\"content\"];\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 { isNullish, isNumber, isNumOrStr, 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';\nimport { getCartesianPosition } from '../cartesian/getCartesianPosition';\n\n/**\n * @inline\n */\n\n/**\n * @inline\n */\n\n/**\n * @inline\n */\n\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 || (chartContext ? cartesianViewBoxToTrapezoid(chartContext) : undefined);\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 => viewBox != null && 'cx' in viewBox && isNumber(viewBox.cx);\nexport var defaultLabelProps = {\n angle: 0,\n offset: 5,\n zIndex: DefaultZIndexes.label,\n position: 'middle',\n textBreakAll: false\n};\nfunction polarViewBoxToTrapezoid(viewBox) {\n if (!isPolar(viewBox)) {\n return viewBox;\n }\n var {\n cx,\n cy,\n outerRadius\n } = viewBox;\n var diameter = outerRadius * 2;\n return {\n x: cx - outerRadius,\n y: cy - outerRadius,\n width: diameter,\n upperWidth: diameter,\n lowerWidth: diameter,\n height: diameter\n };\n}\n\n/**\n * @consumes CartesianViewBoxContext\n * @consumes PolarViewBoxContext\n * @consumes CartesianLabelContext\n * @consumes PolarLabelContext\n */\nexport function Label(outerProps) {\n var props = resolveDefaultProps(outerProps, defaultLabelProps);\n var {\n viewBox: viewBoxFromProps,\n parentViewBox,\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 var cartesianBox = polarViewBoxToTrapezoid(viewBox);\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 var {\n content: _2\n } = propsWithViewBox,\n propsForContent = _objectWithoutProperties(propsWithViewBox, _excluded2);\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, propsForContent);\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 // TODO: Generic Polar Hook\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 if (!cartesianBox) {\n return null;\n }\n var cartesianResult = getCartesianPosition({\n viewBox: cartesianBox,\n position,\n offset: props.offset,\n parentViewBox: isPolar(parentViewBox) ? undefined : parentViewBox,\n clamp: true\n });\n positionAttrs = _objectSpread(_objectSpread({\n x: cartesianResult.x,\n y: cartesianResult.y,\n textAnchor: cartesianResult.horizontalAnchor,\n verticalAnchor: cartesianResult.verticalAnchor\n }, cartesianResult.width !== undefined ? {\n width: cartesianResult.width\n } : {}), cartesianResult.height !== undefined ? {\n height: cartesianResult.height\n } : {});\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}", "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 { getPercentValue, isNumber, isPercent } from '../util/DataUtils';\nimport { cartesianViewBoxToTrapezoid } from '../context/chartLayoutContext';\n/**\n * Calculates the position and alignment for a generic element in a Cartesian coordinate system.\n *\n * @param options - The options including viewBox, position, and offset.\n * @returns The calculated x, y, alignment and size.\n */\nexport var getCartesianPosition = options => {\n var {\n viewBox,\n position,\n offset = 0,\n parentViewBox: parentViewBoxFromOptions,\n clamp\n } = options;\n var {\n x,\n y,\n height,\n upperWidth,\n lowerWidth\n } = cartesianViewBoxToTrapezoid(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\n // We assume parentViewBox is generic if provided.\n // The user has asserted that parentViewBox will be CartesianViewBoxRequired if present.\n var parentViewBox = parentViewBoxFromOptions;\n if (position === 'top') {\n var result = {\n x: upperX + upperWidth / 2,\n y: y - verticalOffset,\n horizontalAnchor: 'middle',\n verticalAnchor: verticalEnd\n };\n if (clamp && parentViewBox) {\n result.height = Math.max(y - parentViewBox.y, 0);\n result.width = upperWidth;\n }\n return result;\n }\n if (position === 'bottom') {\n var _result = {\n x: lowerX + lowerWidth / 2,\n y: y + height + verticalOffset,\n horizontalAnchor: 'middle',\n verticalAnchor: verticalStart\n };\n if (clamp && parentViewBox) {\n _result.height = Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0);\n _result.width = lowerWidth;\n }\n return _result;\n }\n if (position === 'left') {\n var _result2 = {\n x: middleX - horizontalOffset,\n y: y + height / 2,\n horizontalAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n };\n if (clamp && parentViewBox) {\n _result2.width = Math.max(_result2.x - parentViewBox.x, 0);\n _result2.height = height;\n }\n return _result2;\n }\n if (position === 'right') {\n var _result3 = {\n x: middleX + midHeightWidth + horizontalOffset,\n y: y + height / 2,\n horizontalAnchor: horizontalStart,\n verticalAnchor: 'middle'\n };\n if (clamp && parentViewBox) {\n _result3.width = Math.max(parentViewBox.x + parentViewBox.width - _result3.x, 0);\n _result3.height = height;\n }\n return _result3;\n }\n var sizeAttrs = clamp && parentViewBox ? {\n width: midHeightWidth,\n height\n } : {};\n if (position === 'insideLeft') {\n return _objectSpread({\n x: middleX + horizontalOffset,\n y: y + height / 2,\n horizontalAnchor: 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 horizontalAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideTop') {\n return _objectSpread({\n x: upperX + upperWidth / 2,\n y: y + verticalOffset,\n horizontalAnchor: '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 horizontalAnchor: 'middle',\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideTopLeft') {\n return _objectSpread({\n x: upperX + horizontalOffset,\n y: y + verticalOffset,\n horizontalAnchor: horizontalStart,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideTopRight') {\n return _objectSpread({\n x: upperX + upperWidth - horizontalOffset,\n y: y + verticalOffset,\n horizontalAnchor: horizontalEnd,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottomLeft') {\n return _objectSpread({\n x: lowerX + horizontalOffset,\n y: y + height - verticalOffset,\n horizontalAnchor: 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 horizontalAnchor: 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 horizontalAnchor: 'end',\n verticalAnchor: 'end'\n }, sizeAttrs);\n }\n return _objectSpread({\n x: centerX,\n y: y + height / 2,\n horizontalAnchor: 'middle',\n verticalAnchor: 'middle'\n }, sizeAttrs);\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 { 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';\nimport { isRenderableText } from './Text';\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 * @inline\n */\n\nvar defaultAccessor = entry => {\n var val = Array.isArray(entry.value) ? entry.value[entry.value.length - 1] : entry.value;\n if (isRenderableText(val)) {\n return val;\n }\n return undefined;\n};\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}\n\n/**\n * @consumes LabelListContext\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.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}", "var _excluded = [\"component\"];\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 Customized\n */\nimport * as React from 'react';\nimport { isValidElement, cloneElement, createElement } from 'react';\nimport { Layer } from '../container/Layer';\nimport { warn } from '../util/LogUtils';\n/**\n * Customized component used to be necessary to render custom elements in Recharts 2.x.\n * Starting from Recharts 3.x, all charts are able to render arbitrary elements anywhere,\n * and Customized is no longer needed.\n *\n * @example Before: `<Customized component={<MyCustomComponent />} />`\n * @example After: `<MyCustomComponent />`\n *\n * @deprecated Just render your components directly. Will be removed in 4.0\n */\nexport function Customized(_ref) {\n var {\n component\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n var child;\n if (/*#__PURE__*/isValidElement(component)) {\n child = /*#__PURE__*/cloneElement(component, props);\n } else if (typeof component === 'function') {\n // @ts-expect-error TS cannot verify that C is FunctionComponent<P> here\n child = /*#__PURE__*/createElement(component, props);\n } else {\n warn(false, \"Customized's props `component` must be React.element or Function, but got %s.\", typeof component);\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-customized-wrapper\"\n }, child);\n}\nCustomized.displayName = 'Customized';", "var _excluded = [\"points\", \"className\", \"baseLinePoints\", \"connectNulls\"];\nvar _templateObject;\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; }\nfunction _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }\n/**\n * @fileOverview Polygon\n */\nimport * as React from 'react';\nimport { clsx } from 'clsx';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { roundTemplateLiteral } from '../util/round';\nvar isValidatePoint = point => {\n return point != null && point.x === +point.x && point.y === +point.y;\n};\nvar getParsedPoints = function getParsedPoints() {\n var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var segmentPoints = [[]];\n points.forEach(entry => {\n var lastLink = segmentPoints[segmentPoints.length - 1];\n if (isValidatePoint(entry)) {\n if (lastLink) {\n lastLink.push(entry);\n }\n } else if (lastLink && lastLink.length > 0) {\n // add another path\n segmentPoints.push([]);\n }\n });\n var firstPoint = points[0];\n var lastLink = segmentPoints[segmentPoints.length - 1];\n if (isValidatePoint(firstPoint) && lastLink) {\n lastLink.push(firstPoint);\n }\n var finalLink = segmentPoints[segmentPoints.length - 1];\n if (finalLink && finalLink.length <= 0) {\n segmentPoints = segmentPoints.slice(0, -1);\n }\n return segmentPoints;\n};\nvar getSinglePolygonPath = (points, connectNulls) => {\n var segmentPoints = getParsedPoints(points);\n if (connectNulls) {\n segmentPoints = [segmentPoints.reduce((res, segPoints) => {\n return [...res, ...segPoints];\n }, [])];\n }\n var polygonPath = segmentPoints.map(segPoints => {\n return segPoints.reduce((path, point, index) => {\n return roundTemplateLiteral(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\", \"\", \"\", \",\", \"\"])), path, index === 0 ? 'M' : 'L', point.x, point.y);\n }, '');\n }).join('');\n return segmentPoints.length === 1 ? \"\".concat(polygonPath, \"Z\") : polygonPath;\n};\nvar getRanglePath = (points, baseLinePoints, connectNulls) => {\n var outerPath = getSinglePolygonPath(points, connectNulls);\n return \"\".concat(outerPath.slice(-1) === 'Z' ? outerPath.slice(0, -1) : outerPath, \"L\").concat(getSinglePolygonPath(Array.from(baseLinePoints).reverse(), connectNulls).slice(1));\n};\nexport var Polygon = props => {\n var {\n points,\n className,\n baseLinePoints,\n connectNulls\n } = props,\n others = _objectWithoutProperties(props, _excluded);\n if (!points || !points.length) {\n return null;\n }\n var layerClass = clsx('recharts-polygon', className);\n if (baseLinePoints && baseLinePoints.length) {\n var hasStroke = others.stroke && others.stroke !== 'none';\n var rangePath = getRanglePath(points, baseLinePoints, connectNulls);\n return /*#__PURE__*/React.createElement(\"g\", {\n className: layerClass\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, svgPropertiesAndEvents(others), {\n fill: rangePath.slice(-1) === 'Z' ? others.fill : 'none',\n stroke: \"none\",\n d: rangePath\n })), hasStroke ? /*#__PURE__*/React.createElement(\"path\", _extends({}, svgPropertiesAndEvents(others), {\n fill: \"none\",\n d: getSinglePolygonPath(points, connectNulls)\n })) : null, hasStroke ? /*#__PURE__*/React.createElement(\"path\", _extends({}, svgPropertiesAndEvents(others), {\n fill: \"none\",\n d: getSinglePolygonPath(baseLinePoints, connectNulls)\n })) : null);\n }\n var singlePath = getSinglePolygonPath(points, connectNulls);\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, svgPropertiesAndEvents(others), {\n fill: singlePath.slice(-1) === 'Z' ? others.fill : 'none',\n className: layerClass,\n d: singlePath\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); }\nimport * as React from 'react';\nimport { clsx } from 'clsx';\nimport { adaptEventHandlers } from '../util/types';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { isNumber } from '../util/DataUtils';\n/**\n * Renders a dot in the chart.\n *\n * This component accepts X and Y coordinates in pixels.\n * If you need to position the rectangle based on your chart's data,\n * consider using the {@link ReferenceDot} component instead.\n *\n * @param props\n * @constructor\n */\nexport var Dot = props => {\n var {\n cx,\n cy,\n r,\n className\n } = props;\n var layerClass = clsx('recharts-dot', className);\n if (isNumber(cx) && isNumber(cy) && isNumber(r)) {\n return /*#__PURE__*/React.createElement(\"circle\", _extends({}, svgPropertiesNoEvents(props), adaptEventHandlers(props), {\n className: layerClass,\n cx: cx,\n cy: cy,\n r: r\n }));\n }\n return null;\n};", "var _excluded = [\"gridType\", \"radialLines\", \"angleAxisId\", \"radiusAxisId\", \"cx\", \"cy\", \"innerRadius\", \"outerRadius\", \"polarAngles\", \"polarRadius\", \"zIndex\"];\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { clsx } from 'clsx';\nimport * as React from 'react';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { useAppSelector } from '../state/hooks';\nimport { selectPolarGridAngles, selectPolarGridRadii } from '../state/selectors/polarGridSelectors';\nimport { selectPolarViewBox } from '../state/selectors/polarAxisSelectors';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nvar getPolygonPath = (radius, cx, cy, polarAngles) => {\n var path = '';\n polarAngles.forEach((angle, i) => {\n var point = polarToCartesian(cx, cy, radius, angle);\n if (i) {\n path += \"L \".concat(point.x, \",\").concat(point.y);\n } else {\n path += \"M \".concat(point.x, \",\").concat(point.y);\n }\n });\n path += 'Z';\n return path;\n};\n\n// Draw axis of radial line\nvar PolarAngles = props => {\n var {\n cx,\n cy,\n innerRadius,\n outerRadius,\n polarAngles,\n radialLines\n } = props;\n if (!polarAngles || !polarAngles.length || !radialLines) {\n return null;\n }\n var polarAnglesProps = _objectSpread({\n stroke: '#ccc'\n }, svgPropertiesNoEvents(props));\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-polar-grid-angle\"\n }, polarAngles.map(entry => {\n var start = polarToCartesian(cx, cy, innerRadius, entry);\n var end = polarToCartesian(cx, cy, outerRadius, entry);\n return /*#__PURE__*/React.createElement(\"line\", _extends({\n key: \"line-\".concat(entry)\n }, polarAnglesProps, {\n x1: start.x,\n y1: start.y,\n x2: end.x,\n y2: end.y\n }));\n }));\n};\n\n// Draw concentric circles\nvar ConcentricCircle = props => {\n var {\n cx,\n cy,\n radius\n } = props;\n var concentricCircleProps = _objectSpread({\n stroke: '#ccc',\n fill: 'none'\n }, svgPropertiesNoEvents(props));\n return (\n /*#__PURE__*/\n // @ts-expect-error wrong SVG element type\n React.createElement(\"circle\", _extends({}, concentricCircleProps, {\n className: clsx('recharts-polar-grid-concentric-circle', props.className),\n cx: cx,\n cy: cy,\n r: radius\n }))\n );\n};\n\n// Draw concentric polygons\nvar ConcentricPolygon = props => {\n var {\n radius\n } = props;\n var concentricPolygonProps = _objectSpread({\n stroke: '#ccc',\n fill: 'none'\n }, svgPropertiesNoEvents(props));\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, concentricPolygonProps, {\n className: clsx('recharts-polar-grid-concentric-polygon', props.className),\n d: getPolygonPath(radius, props.cx, props.cy, props.polarAngles)\n }));\n};\n\n// Draw concentric axis\nvar ConcentricGridPath = props => {\n var {\n polarRadius,\n gridType\n } = props;\n if (!polarRadius || !polarRadius.length) {\n return null;\n }\n var maxPolarRadius = Math.max(...polarRadius);\n var renderBackground = props.fill && props.fill !== 'none';\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-polar-grid-concentric\"\n }, renderBackground && gridType === 'circle' && /*#__PURE__*/React.createElement(ConcentricCircle, _extends({}, props, {\n radius: maxPolarRadius\n })), renderBackground && gridType !== 'circle' && /*#__PURE__*/React.createElement(ConcentricPolygon, _extends({}, props, {\n radius: maxPolarRadius\n })), polarRadius.map((entry, i) => {\n var key = i;\n if (gridType === 'circle') {\n return /*#__PURE__*/React.createElement(ConcentricCircle, _extends({\n key: key\n }, props, {\n fill: \"none\",\n radius: entry\n }));\n }\n return /*#__PURE__*/React.createElement(ConcentricPolygon, _extends({\n key: key\n }, props, {\n fill: \"none\",\n radius: entry\n }));\n }));\n};\nexport var defaultPolarGridProps = {\n angleAxisId: 0,\n radiusAxisId: 0,\n gridType: 'polygon',\n radialLines: true,\n zIndex: DefaultZIndexes.grid\n};\n\n/**\n * @consumes PolarViewBoxContext\n */\nexport var PolarGrid = outsideProps => {\n var _ref, _polarViewBox$cx, _ref2, _polarViewBox$cy, _ref3, _polarViewBox$innerRa, _ref4, _polarViewBox$outerRa;\n var _resolveDefaultProps = resolveDefaultProps(outsideProps, defaultPolarGridProps),\n {\n gridType,\n radialLines,\n angleAxisId,\n radiusAxisId,\n cx: cxFromOutside,\n cy: cyFromOutside,\n innerRadius: innerRadiusFromOutside,\n outerRadius: outerRadiusFromOutside,\n polarAngles: polarAnglesInput,\n polarRadius: polarRadiusInput,\n zIndex\n } = _resolveDefaultProps,\n inputs = _objectWithoutProperties(_resolveDefaultProps, _excluded);\n var polarViewBox = useAppSelector(selectPolarViewBox);\n var polarAnglesFromRedux = useAppSelector(state => selectPolarGridAngles(state, angleAxisId));\n var polarRadiiFromRedux = useAppSelector(state => selectPolarGridRadii(state, radiusAxisId));\n var polarAngles = Array.isArray(polarAnglesInput) ? polarAnglesInput : polarAnglesFromRedux;\n var polarRadius = Array.isArray(polarRadiusInput) ? polarRadiusInput : polarRadiiFromRedux;\n if (polarAngles == null || polarRadius == null) {\n return null;\n }\n var props = _objectSpread({\n cx: (_ref = (_polarViewBox$cx = polarViewBox === null || polarViewBox === void 0 ? void 0 : polarViewBox.cx) !== null && _polarViewBox$cx !== void 0 ? _polarViewBox$cx : cxFromOutside) !== null && _ref !== void 0 ? _ref : 0,\n cy: (_ref2 = (_polarViewBox$cy = polarViewBox === null || polarViewBox === void 0 ? void 0 : polarViewBox.cy) !== null && _polarViewBox$cy !== void 0 ? _polarViewBox$cy : cyFromOutside) !== null && _ref2 !== void 0 ? _ref2 : 0,\n innerRadius: (_ref3 = (_polarViewBox$innerRa = polarViewBox === null || polarViewBox === void 0 ? void 0 : polarViewBox.innerRadius) !== null && _polarViewBox$innerRa !== void 0 ? _polarViewBox$innerRa : innerRadiusFromOutside) !== null && _ref3 !== void 0 ? _ref3 : 0,\n outerRadius: (_ref4 = (_polarViewBox$outerRa = polarViewBox === null || polarViewBox === void 0 ? void 0 : polarViewBox.outerRadius) !== null && _polarViewBox$outerRa !== void 0 ? _polarViewBox$outerRa : outerRadiusFromOutside) !== null && _ref4 !== void 0 ? _ref4 : 0,\n polarAngles,\n polarRadius,\n zIndex\n }, inputs);\n var {\n outerRadius\n } = props;\n if (outerRadius <= 0) {\n return null;\n }\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: props.zIndex\n }, /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-polar-grid\"\n }, /*#__PURE__*/React.createElement(ConcentricGridPath, _extends({\n gridType: gridType,\n radialLines: radialLines\n }, props, {\n polarAngles: polarAngles,\n polarRadius: polarRadius\n })), /*#__PURE__*/React.createElement(PolarAngles, _extends({\n gridType: gridType,\n radialLines: radialLines\n }, props, {\n polarAngles: polarAngles,\n polarRadius: polarRadius\n }))));\n};\nPolarGrid.displayName = 'PolarGrid';", "import { createSelector } from 'reselect';\nimport { selectChartDataAndAlwaysIgnoreIndexes } from './dataSelectors';\nimport { combineAppliedValues, combineAxisDomain, combineAxisDomainWithNiceTicks, combineDisplayedData, combineDomainOfAllAppliedNumericalValuesIncludingErrorValues, combineGraphicalItemsData, combineGraphicalItemsSettings, combineNiceTicks, combineNumericalDomain, itemAxisPredicate, selectAllErrorBarSettings, selectBaseAxis, selectDomainDefinition, selectDomainFromUserPreference, selectRealScaleType, selectRenderableAxisSettings } from './axisSelectors';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { getValueByDataKey } from '../../util/ChartUtils';\nimport { pickAxisType } from './pickAxisType';\nimport { pickAxisId } from './pickAxisId';\nimport { selectStackOffsetType } from './rootPropsSelectors';\nimport { combineCheckedDomain } from './combiners/combineCheckedDomain';\nexport var selectUnfilteredPolarItems = state => state.graphicalItems.polarItems;\nvar selectAxisPredicate = createSelector([pickAxisType, pickAxisId], itemAxisPredicate);\nexport var selectPolarItemsSettings = createSelector([selectUnfilteredPolarItems, selectBaseAxis, selectAxisPredicate], combineGraphicalItemsSettings);\nvar selectPolarGraphicalItemsData = createSelector([selectPolarItemsSettings], combineGraphicalItemsData);\nexport var selectPolarDisplayedData = createSelector([selectPolarGraphicalItemsData, selectChartDataAndAlwaysIgnoreIndexes], combineDisplayedData);\nexport var selectPolarAppliedValues = createSelector([selectPolarDisplayedData, selectBaseAxis, selectPolarItemsSettings], combineAppliedValues);\nexport var selectAllPolarAppliedNumericalValues = createSelector([selectPolarDisplayedData, selectBaseAxis, selectPolarItemsSettings], (data, axisSettings, items) => {\n if (items.length > 0) {\n return data.flatMap(entry => {\n return items.flatMap(item => {\n var _axisSettings$dataKey;\n var valueByDataKey = getValueByDataKey(entry, (_axisSettings$dataKey = axisSettings.dataKey) !== null && _axisSettings$dataKey !== void 0 ? _axisSettings$dataKey : item.dataKey);\n return {\n value: valueByDataKey,\n errorDomain: [] // polar charts do not have error bars\n };\n });\n }).filter(Boolean);\n }\n if ((axisSettings === null || axisSettings === void 0 ? void 0 : axisSettings.dataKey) != null) {\n return data.map(item => ({\n value: getValueByDataKey(item, axisSettings.dataKey),\n errorDomain: []\n }));\n }\n return data.map(entry => ({\n value: entry,\n errorDomain: []\n }));\n});\nvar unsupportedInPolarChart = () => undefined;\nvar selectDomainOfAllPolarAppliedNumericalValues = createSelector([selectPolarDisplayedData, selectBaseAxis, selectPolarItemsSettings, selectAllErrorBarSettings, pickAxisType], combineDomainOfAllAppliedNumericalValuesIncludingErrorValues);\nvar selectPolarNumericalDomain = createSelector([selectBaseAxis, selectDomainDefinition, selectDomainFromUserPreference, unsupportedInPolarChart, selectDomainOfAllPolarAppliedNumericalValues, unsupportedInPolarChart, selectChartLayout, pickAxisType], combineNumericalDomain);\nexport var selectPolarAxisDomain = createSelector([selectBaseAxis, selectChartLayout, selectPolarDisplayedData, selectPolarAppliedValues, selectStackOffsetType, pickAxisType, selectPolarNumericalDomain], combineAxisDomain);\nexport var selectPolarNiceTicks = createSelector([selectPolarAxisDomain, selectRenderableAxisSettings, selectRealScaleType], combineNiceTicks);\nexport var selectPolarAxisDomainIncludingNiceTicks = createSelector([selectBaseAxis, selectPolarAxisDomain, selectPolarNiceTicks, pickAxisType], combineAxisDomainWithNiceTicks);\nexport var selectPolarAxisCheckedDomain = createSelector([selectRealScaleType, selectPolarAxisDomainIncludingNiceTicks], combineCheckedDomain);", "import { createSelector } from 'reselect';\nimport { combineAxisTicks, combineCategoricalDomain, combineGraphicalItemTicks, selectDuplicateDomain, selectRealScaleType, selectRenderableAxisSettings } from './axisSelectors';\nimport { selectAngleAxis, selectAngleAxisRangeWithReversed, selectRadiusAxis, selectRadiusAxisRangeWithReversed } from './polarAxisSelectors';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { selectPolarAppliedValues, selectPolarAxisCheckedDomain, selectPolarNiceTicks } from './polarSelectors';\nimport { pickAxisType } from './pickAxisType';\nimport { rechartsScaleFactory } from '../../util/scale/RechartsScale';\nimport { combineConfiguredScale } from './combiners/combineConfiguredScale';\nexport var selectPolarAxis = (state, axisType, axisId) => {\n switch (axisType) {\n case 'angleAxis':\n {\n return selectAngleAxis(state, axisId);\n }\n case 'radiusAxis':\n {\n return selectRadiusAxis(state, axisId);\n }\n default:\n {\n throw new Error(\"Unexpected axis type: \".concat(axisType));\n }\n }\n};\nvar selectPolarAxisRangeWithReversed = (state, axisType, axisId) => {\n switch (axisType) {\n case 'angleAxis':\n {\n return selectAngleAxisRangeWithReversed(state, axisId);\n }\n case 'radiusAxis':\n {\n return selectRadiusAxisRangeWithReversed(state, axisId);\n }\n default:\n {\n throw new Error(\"Unexpected axis type: \".concat(axisType));\n }\n }\n};\nvar selectPolarConfiguredScale = createSelector([selectPolarAxis, selectRealScaleType, selectPolarAxisCheckedDomain, selectPolarAxisRangeWithReversed], combineConfiguredScale);\nexport var selectPolarAxisScale = createSelector([selectPolarConfiguredScale], rechartsScaleFactory);\nexport var selectPolarCategoricalDomain = createSelector([selectChartLayout, selectPolarAppliedValues, selectRenderableAxisSettings, pickAxisType], combineCategoricalDomain);\nexport var selectPolarAxisTicks = createSelector([selectChartLayout, selectPolarAxis, selectRealScaleType, selectPolarAxisScale, selectPolarNiceTicks, selectPolarAxisRangeWithReversed, selectDuplicateDomain, selectPolarCategoricalDomain, pickAxisType], combineAxisTicks);\nexport var selectPolarAngleAxisTicks = createSelector([selectPolarAxisTicks], ticks => {\n /*\n * Angle axis is circular; so here we need to look for ticks that overlap (i.e., 0 and 360 degrees)\n * and remove the duplicate tick to avoid rendering issues.\n */\n if (!ticks) {\n return undefined;\n }\n var uniqueTicksMap = new Map();\n ticks.forEach(tick => {\n var normalizedCoordinate = (tick.coordinate + 360) % 360;\n if (!uniqueTicksMap.has(normalizedCoordinate)) {\n uniqueTicksMap.set(normalizedCoordinate, tick);\n }\n });\n return Array.from(uniqueTicksMap.values());\n});\nexport var selectPolarGraphicalItemAxisTicks = createSelector([selectChartLayout, selectPolarAxis, selectPolarAxisScale, selectPolarAxisRangeWithReversed, selectDuplicateDomain, selectPolarCategoricalDomain, pickAxisType], combineGraphicalItemTicks);", "import { createSelector } from 'reselect';\nimport { selectPolarAxisTicks } from './polarScaleSelectors';\nvar selectAngleAxisTicks = (state, anglexisId) => selectPolarAxisTicks(state, 'angleAxis', anglexisId, false);\nexport var selectPolarGridAngles = createSelector([selectAngleAxisTicks], ticks => {\n if (!ticks) {\n return undefined;\n }\n return ticks.map(tick => tick.coordinate);\n});\nvar selectRadiusAxisTicks = (state, radiusAxisId) => selectPolarAxisTicks(state, 'radiusAxis', radiusAxisId, false);\nexport var selectPolarGridRadii = createSelector([selectRadiusAxisTicks], ticks => {\n if (!ticks) {\n return undefined;\n }\n return ticks.map(tick => tick.coordinate);\n});", "var _excluded = [\"type\"],\n _excluded2 = [\"cx\", \"cy\", \"angle\", \"axisLine\"],\n _excluded3 = [\"angle\", \"tickFormatter\", \"stroke\", \"tick\"];\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 { useEffect, useMemo } from 'react';\nimport maxBy from 'es-toolkit/compat/maxBy';\nimport minBy from 'es-toolkit/compat/minBy';\nimport { clsx } from 'clsx';\nimport { Text } from '../component/Text';\nimport { PolarLabelContextProvider, PolarLabelFromLabelProp } from '../component/Label';\nimport { Layer } from '../container/Layer';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { addRadiusAxis, removeRadiusAxis } from '../state/polarAxisSlice';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { selectPolarAxisScale, selectPolarAxisTicks } from '../state/selectors/polarScaleSelectors';\nimport { selectPolarViewBox } from '../state/selectors/polarAxisSelectors';\nimport { defaultPolarRadiusAxisProps } from './defaultPolarRadiusAxisProps';\nimport { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { usePolarChartLayout } from '../context/chartLayoutContext';\nimport { noop } from '../util/DataUtils';\nimport { getAxisTypeBasedOnLayout } from '../util/getAxisTypeBasedOnLayout';\nimport { getClassNameFromUnknown } from '../util/getClassNameFromUnknown';\nvar AXIS_TYPE = 'radiusAxis';\nfunction SetRadiusAxisSettings(props) {\n var dispatch = useAppDispatch();\n var layout = usePolarChartLayout();\n var settings = useMemo(() => {\n var {\n type: typeFromProps\n } = props,\n rest = _objectWithoutProperties(props, _excluded);\n var evaluatedType = getAxisTypeBasedOnLayout(layout, 'radiusAxis', typeFromProps);\n if (evaluatedType == null) {\n return undefined;\n }\n return _objectSpread(_objectSpread({}, rest), {}, {\n type: evaluatedType\n });\n }, [props, layout]);\n useEffect(() => {\n if (settings == null) {\n return noop;\n }\n dispatch(addRadiusAxis(settings));\n return () => {\n dispatch(removeRadiusAxis(settings));\n };\n }, [dispatch, settings]);\n return null;\n}\n\n/**\n * Calculate the coordinate of tick\n * @param coordinate The radius of tick\n * @param angle from props\n * @param cx from chart\n * @param cy from chart\n * @return (x, y)\n */\nvar getTickValueCoord = (_ref, angle, cx, cy) => {\n var {\n coordinate\n } = _ref;\n return polarToCartesian(cx, cy, coordinate, angle);\n};\nvar getTickTextAnchor = orientation => {\n var textAnchor;\n switch (orientation) {\n case 'left':\n textAnchor = 'end';\n break;\n case 'right':\n textAnchor = 'start';\n break;\n default:\n textAnchor = 'middle';\n break;\n }\n return textAnchor;\n};\nvar getViewBox = (angle, cx, cy, ticks) => {\n var maxRadiusTick = maxBy(ticks, entry => entry.coordinate || 0);\n var minRadiusTick = minBy(ticks, entry => entry.coordinate || 0);\n return {\n cx,\n cy,\n startAngle: angle,\n endAngle: angle,\n innerRadius: (minRadiusTick === null || minRadiusTick === void 0 ? void 0 : minRadiusTick.coordinate) || 0,\n outerRadius: (maxRadiusTick === null || maxRadiusTick === void 0 ? void 0 : maxRadiusTick.coordinate) || 0,\n clockWise: false\n };\n};\nvar renderAxisLine = (props, ticks) => {\n var {\n cx,\n cy,\n angle,\n axisLine\n } = props,\n others = _objectWithoutProperties(props, _excluded2);\n var extent = ticks.reduce((result, entry) => [Math.min(result[0], entry.coordinate), Math.max(result[1], entry.coordinate)], [Infinity, -Infinity]);\n var point0 = polarToCartesian(cx, cy, extent[0], angle);\n var point1 = polarToCartesian(cx, cy, extent[1], angle);\n var axisLineProps = _objectSpread(_objectSpread(_objectSpread({}, svgPropertiesNoEvents(others)), {}, {\n fill: 'none'\n }, svgPropertiesNoEvents(axisLine)), {}, {\n x1: point0.x,\n y1: point0.y,\n x2: point1.x,\n y2: point1.y\n });\n\n // @ts-expect-error wrong SVG element type\n return /*#__PURE__*/React.createElement(\"line\", _extends({\n className: \"recharts-polar-radius-axis-line\"\n }, axisLineProps));\n};\nvar renderTickItem = (option, tickProps, value) => {\n var tickItem;\n if (/*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, tickProps);\n } else if (typeof option === 'function') {\n tickItem = option(tickProps);\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, tickProps, {\n className: \"recharts-polar-radius-axis-tick-value\"\n }), value);\n }\n return tickItem;\n};\nvar renderTicks = (props, ticks) => {\n var {\n angle,\n tickFormatter,\n stroke,\n tick\n } = props,\n others = _objectWithoutProperties(props, _excluded3);\n var textAnchor = getTickTextAnchor(props.orientation);\n var axisProps = svgPropertiesNoEvents(others);\n var customTickProps = svgPropertiesNoEventsFromUnknown(tick);\n var items = ticks.map((entry, i) => {\n var coord = getTickValueCoord(entry, props.angle, props.cx, props.cy);\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n textAnchor,\n transform: \"rotate(\".concat(90 - angle, \", \").concat(coord.x, \", \").concat(coord.y, \")\")\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), {}, {\n index: i\n }, coord), {}, {\n payload: entry\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: clsx('recharts-polar-radius-axis-tick', getClassNameFromUnknown(tick)),\n key: \"tick-\".concat(entry.coordinate)\n }, adaptEventsOfChild(props, entry, i)), renderTickItem(tick, tickProps, tickFormatter ? tickFormatter(entry.value, i) : entry.value));\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-polar-radius-axis-ticks\"\n }, items);\n};\nexport var PolarRadiusAxisWrapper = defaultsAndInputs => {\n var {\n radiusAxisId\n } = defaultsAndInputs;\n var viewBox = useAppSelector(selectPolarViewBox);\n var scale = useAppSelector(state => selectPolarAxisScale(state, 'radiusAxis', radiusAxisId));\n var ticks = useAppSelector(state => selectPolarAxisTicks(state, 'radiusAxis', radiusAxisId, false));\n if (viewBox == null || !ticks || !ticks.length || scale == null) {\n return null;\n }\n var props = _objectSpread(_objectSpread({}, defaultsAndInputs), {}, {\n scale\n }, viewBox);\n var {\n tick,\n axisLine\n } = props;\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: props.zIndex\n }, /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-polar-radius-axis', AXIS_TYPE, props.className)\n }, axisLine && renderAxisLine(props, ticks), tick && renderTicks(props, ticks), /*#__PURE__*/React.createElement(PolarLabelContextProvider, getViewBox(props.angle, props.cx, props.cy, ticks), /*#__PURE__*/React.createElement(PolarLabelFromLabelProp, {\n label: props.label\n }), props.children)));\n};\n\n/**\n * @provides PolarLabelContext\n * @consumes PolarViewBoxContext\n */\nexport function PolarRadiusAxis(outsideProps) {\n var _props$niceTicks;\n var props = resolveDefaultProps(outsideProps, defaultPolarRadiusAxisProps);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetRadiusAxisSettings, {\n domain: props.domain,\n id: props.radiusAxisId,\n scale: props.scale,\n type: props.type,\n dataKey: props.dataKey,\n unit: undefined,\n name: props.name,\n allowDuplicatedCategory: props.allowDuplicatedCategory,\n allowDataOverflow: props.allowDataOverflow,\n reversed: props.reversed,\n includeHidden: props.includeHidden,\n allowDecimals: props.allowDecimals,\n niceTicks: (_props$niceTicks = props.niceTicks) !== null && _props$niceTicks !== void 0 ? _props$niceTicks : 'auto'\n // @ts-expect-error the type does not match. Is RadiusAxis really expecting what it says?\n ,\n ticks: props.ticks,\n tickCount: props.tickCount,\n tick: props.tick\n }), /*#__PURE__*/React.createElement(PolarRadiusAxisWrapper, props));\n}\nPolarRadiusAxis.displayName = 'PolarRadiusAxis';", "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;", "export function getClassNameFromUnknown(u) {\n if (u && typeof u === 'object' && 'className' in u && typeof u.className === 'string') {\n return u.className;\n }\n return '';\n}", "var _excluded = [\"children\", \"type\"],\n _excluded2 = [\"ref\"];\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 { useEffect, useMemo } from 'react';\nimport { clsx } from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Dot } from '../shape/Dot';\nimport { Polygon } from '../shape/Polygon';\nimport { Text } from '../component/Text';\nimport { adaptEventsOfChild } from '../util/types';\nimport { degreeToRadian, polarToCartesian } from '../util/PolarUtils';\nimport { addAngleAxis, removeAngleAxis } from '../state/polarAxisSlice';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { selectPolarAngleAxisTicks, selectPolarAxisScale } from '../state/selectors/polarScaleSelectors';\nimport { selectAngleAxis, selectPolarViewBox } from '../state/selectors/polarAxisSelectors';\nimport { defaultPolarAngleAxisProps } from './defaultPolarAngleAxisProps';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { usePolarChartLayout } from '../context/chartLayoutContext';\nimport { noop } from '../util/DataUtils';\nimport { getAxisTypeBasedOnLayout } from '../util/getAxisTypeBasedOnLayout';\nimport { getClassNameFromUnknown } from '../util/getClassNameFromUnknown';\nvar eps = 1e-5;\nvar COS_45 = Math.cos(degreeToRadian(45));\nvar AXIS_TYPE = 'angleAxis';\nfunction SetAngleAxisSettings(props) {\n var dispatch = useAppDispatch();\n var layout = usePolarChartLayout();\n var settings = useMemo(() => {\n var {\n children,\n type: typeFromProps\n } = props,\n rest = _objectWithoutProperties(props, _excluded);\n var evaluatedType = getAxisTypeBasedOnLayout(layout, 'angleAxis', typeFromProps);\n if (evaluatedType == null) {\n return undefined;\n }\n return _objectSpread(_objectSpread({}, rest), {}, {\n type: evaluatedType\n });\n }, [props, layout]);\n var synchronizedSettings = useAppSelector(state => selectAngleAxis(state, settings === null || settings === void 0 ? void 0 : settings.id));\n var settingsAreSynchronized = settings === synchronizedSettings;\n useEffect(() => {\n if (settings == null) {\n return noop;\n }\n dispatch(addAngleAxis(settings));\n return () => {\n dispatch(removeAngleAxis(settings));\n };\n }, [dispatch, settings]);\n if (settingsAreSynchronized) {\n return props.children;\n }\n return null;\n}\n\n/**\n * Calculate the coordinate of line endpoint\n * @param data The data if there are ticks\n * @param props axis settings\n * @return (x1, y1): The point close to text,\n * (x2, y2): The point close to axis\n */\nvar getTickLineCoord = (data, props) => {\n var {\n cx,\n cy,\n radius,\n orientation,\n tickSize\n } = props;\n var tickLineSize = tickSize || 8;\n var p1 = polarToCartesian(cx, cy, radius, data.coordinate);\n var p2 = polarToCartesian(cx, cy, radius + (orientation === 'inner' ? -1 : 1) * tickLineSize, data.coordinate);\n return {\n x1: p1.x,\n y1: p1.y,\n x2: p2.x,\n y2: p2.y\n };\n};\n\n/**\n * Get the text-anchor of each tick\n * @param data Data of ticks\n * @param orientation of the axis ticks\n * @return text-anchor\n */\nvar getTickTextAnchor = (data, orientation) => {\n var cos = Math.cos(degreeToRadian(-data.coordinate));\n if (cos > eps) {\n return orientation === 'outer' ? 'start' : 'end';\n }\n if (cos < -eps) {\n return orientation === 'outer' ? 'end' : 'start';\n }\n return 'middle';\n};\n\n/**\n * Get the text vertical anchor of each tick\n * @param data Data of a tick\n * @return text vertical anchor\n */\nvar getTickTextVerticalAnchor = data => {\n var cos = Math.cos(degreeToRadian(-data.coordinate));\n var sin = Math.sin(degreeToRadian(-data.coordinate));\n\n // handle top and bottom sectors: 90±45deg and 270±45deg\n if (Math.abs(cos) <= COS_45) {\n // sin > 0: top sector, sin < 0: bottom sector\n return sin > 0 ? 'start' : 'end';\n }\n return 'middle';\n};\nvar AxisLine = props => {\n var {\n cx,\n cy,\n radius,\n axisLineType,\n axisLine,\n ticks\n } = props;\n if (!axisLine) {\n return null;\n }\n var axisLineProps = _objectSpread(_objectSpread({}, svgPropertiesNoEvents(props)), {}, {\n fill: 'none'\n }, svgPropertiesNoEvents(axisLine));\n if (axisLineType === 'circle') {\n // @ts-expect-error wrong SVG element type\n return /*#__PURE__*/React.createElement(Dot, _extends({\n className: \"recharts-polar-angle-axis-line\"\n }, axisLineProps, {\n cx: cx,\n cy: cy,\n r: radius\n }));\n }\n var points = ticks.map(entry => polarToCartesian(cx, cy, radius, entry.coordinate));\n\n // @ts-expect-error wrong SVG element type\n return /*#__PURE__*/React.createElement(Polygon, _extends({\n className: \"recharts-polar-angle-axis-line\"\n }, axisLineProps, {\n points: points\n }));\n};\nvar TickItemText = _ref => {\n var {\n tick,\n tickProps,\n value\n } = _ref;\n if (!tick) {\n return null;\n }\n if (/*#__PURE__*/React.isValidElement(tick)) {\n return /*#__PURE__*/React.cloneElement(tick, tickProps);\n }\n if (typeof tick === 'function') {\n return tick(tickProps);\n }\n return /*#__PURE__*/React.createElement(Text, _extends({}, tickProps, {\n className: \"recharts-polar-angle-axis-tick-value\"\n }), value);\n};\nvar Ticks = props => {\n var {\n tick,\n tickLine,\n tickFormatter,\n stroke,\n ticks\n } = props;\n var _svgPropertiesNoEvent = svgPropertiesNoEvents(props),\n {\n ref\n } = _svgPropertiesNoEvent,\n axisProps = _objectWithoutProperties(_svgPropertiesNoEvent, _excluded2);\n var customTickProps = svgPropertiesNoEventsFromUnknown(tick);\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, svgPropertiesNoEvents(tickLine));\n var items = ticks.map((entry, i) => {\n var lineCoord = getTickLineCoord(entry, props);\n var textAnchor = getTickTextAnchor(entry, props.orientation);\n var verticalAnchor = getTickTextVerticalAnchor(entry);\n var tickProps = _objectSpread(_objectSpread(_objectSpread({}, axisProps), {}, {\n // @ts-expect-error customTickProps is contributing unknown props\n textAnchor,\n verticalAnchor,\n // @ts-expect-error customTickProps is contributing unknown props\n stroke: 'none',\n // @ts-expect-error customTickProps is contributing unknown props\n fill: stroke\n }, customTickProps), {}, {\n index: i,\n payload: entry,\n x: lineCoord.x2,\n y: lineCoord.y2\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: clsx('recharts-polar-angle-axis-tick', getClassNameFromUnknown(tick)),\n key: \"tick-\".concat(entry.coordinate)\n }, adaptEventsOfChild(props, entry, i)), tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({\n className: \"recharts-polar-angle-axis-tick-line\"\n }, tickLineProps, lineCoord)), /*#__PURE__*/React.createElement(TickItemText, {\n tick: tick,\n tickProps: tickProps,\n value: tickFormatter ? tickFormatter(entry.value, i) : entry.value\n }));\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-polar-angle-axis-ticks\"\n }, items);\n};\nexport var PolarAngleAxisWrapper = defaultsAndInputs => {\n var {\n angleAxisId\n } = defaultsAndInputs;\n var viewBox = useAppSelector(selectPolarViewBox);\n var scale = useAppSelector(state => selectPolarAxisScale(state, 'angleAxis', angleAxisId));\n var isPanorama = useIsPanorama();\n var ticks = useAppSelector(state => selectPolarAngleAxisTicks(state, 'angleAxis', angleAxisId, isPanorama));\n if (viewBox == null || !ticks || !ticks.length || scale == null) {\n return null;\n }\n var props = _objectSpread(_objectSpread(_objectSpread({}, defaultsAndInputs), {}, {\n scale\n }, viewBox), {}, {\n radius: viewBox.outerRadius,\n ticks\n });\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: props.zIndex\n }, /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-polar-angle-axis', AXIS_TYPE, props.className)\n }, /*#__PURE__*/React.createElement(AxisLine, props), /*#__PURE__*/React.createElement(Ticks, props)));\n};\n\n/**\n * @provides PolarLabelContext\n * @consumes PolarViewBoxContext\n */\nexport function PolarAngleAxis(outsideProps) {\n var _props$niceTicks;\n var props = resolveDefaultProps(outsideProps, defaultPolarAngleAxisProps);\n return /*#__PURE__*/React.createElement(SetAngleAxisSettings, {\n id: props.angleAxisId,\n scale: props.scale,\n type: props.type,\n dataKey: props.dataKey,\n unit: undefined,\n name: props.name,\n allowDuplicatedCategory: false // Ignoring the prop on purpose because axis calculation behaves as if it was false and Tooltip requires it to be true.\n ,\n allowDataOverflow: false,\n reversed: props.reversed,\n includeHidden: false,\n allowDecimals: props.allowDecimals,\n tickCount: props.tickCount,\n niceTicks: (_props$niceTicks = props.niceTicks) !== null && _props$niceTicks !== void 0 ? _props$niceTicks : 'auto'\n // @ts-expect-error the type does not match. Is RadiusAxis really expecting what it says?\n ,\n ticks: props.ticks,\n tick: props.tick,\n domain: props.domain\n }, /*#__PURE__*/React.createElement(PolarAngleAxisWrapper, props));\n}\nPolarAngleAxis.displayName = 'PolarAngleAxis';", "var _excluded = [\"key\"],\n _excluded2 = [\"onMouseEnter\", \"onClick\", \"onMouseLeave\"],\n _excluded3 = [\"id\"],\n _excluded4 = [\"id\"];\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; }\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 { useCallback, useMemo, useRef, useState } from 'react';\nimport get from 'es-toolkit/compat/get';\nimport { clsx } from 'clsx';\nimport { selectPieLegend, selectPieSectors } from '../state/selectors/pieSelectors';\nimport { useAppSelector } from '../state/hooks';\nimport { Layer } from '../container/Layer';\nimport { Curve } from '../shape/Curve';\nimport { Text } from '../component/Text';\nimport { Cell } from '../component/Cell';\nimport { findAllByType } from '../util/ReactUtils';\nimport { getMaxRadius, polarToCartesian } from '../util/PolarUtils';\nimport { getPercentValue, interpolate, isNumber, mathSign } from '../util/DataUtils';\nimport { getTooltipNameProp, getValueByDataKey } from '../util/ChartUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { Shape } from '../util/ActiveShapeUtils';\nimport { useMouseClickItemDispatch, useMouseEnterItemDispatch, useMouseLeaveItemDispatch } from '../context/tooltipContext';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { selectActiveTooltipDataKey, selectActiveTooltipGraphicalItemId, selectActiveTooltipIndex } from '../state/selectors/tooltipSelectors';\nimport { SetPolarLegendPayload } from '../state/SetLegendPayload';\nimport { DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME, DATA_ITEM_INDEX_ATTRIBUTE_NAME } from '../util/Constants';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\nimport { SetPolarGraphicalItem } from '../state/SetGraphicalItem';\nimport { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { JavascriptAnimate } from '../animation/JavascriptAnimate';\nimport { LabelListFromLabelProp, PolarLabelListContextProvider } from '../component/LabelList';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { getClassNameFromUnknown } from '../util/getClassNameFromUnknown';\n\n/**\n * The `label` prop in Pie accepts a variety of alternatives.\n */\n\n/**\n * We spread the data object into the sector data item,\n * so we can't really know what is going to be inside.\n *\n * This type represents our best effort, but it all depends on the input data\n * and what is inside of it.\n *\n * https://github.com/recharts/recharts/issues/6380\n * https://github.com/recharts/recharts/discussions/6375\n */\n\n/**\n * Internal props, combination of external props + defaultProps + private Recharts state\n */\n\nfunction SetPiePayloadLegend(props) {\n var cells = useMemo(() => findAllByType(props.children, Cell), [props.children]);\n var legendPayload = useAppSelector(state => selectPieLegend(state, props.id, cells));\n if (legendPayload == null) {\n return null;\n }\n return /*#__PURE__*/React.createElement(SetPolarLegendPayload, {\n legendPayload: legendPayload\n });\n}\nfunction getActiveShapeFill(activeShape) {\n // activeShape can be boolean/function/element/object; only element/object can carry a static fill value.\n if (activeShape == null || typeof activeShape === 'boolean' || typeof activeShape === 'function') {\n return undefined;\n }\n if (/*#__PURE__*/React.isValidElement(activeShape)) {\n var _activeShape$props;\n // React element form: <Sector fill=\"...\"/> or custom element with fill prop.\n var _fill = (_activeShape$props = activeShape.props) === null || _activeShape$props === void 0 ? void 0 : _activeShape$props.fill;\n return typeof _fill === 'string' ? _fill : undefined;\n }\n var {\n fill\n } = activeShape;\n return typeof fill === 'string' ? fill : undefined;\n}\nvar SetPieTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {\n var {\n dataKey,\n nameKey,\n sectors,\n stroke,\n strokeWidth,\n fill,\n name,\n hide,\n tooltipType,\n id,\n activeShape\n } = _ref;\n var activeShapeFill = getActiveShapeFill(activeShape);\n var tooltipDataDefinedOnItem = sectors.map(sector => {\n var sectorTooltipPayload = sector.tooltipPayload;\n if (activeShapeFill == null || sectorTooltipPayload == null) {\n return sectorTooltipPayload;\n }\n return sectorTooltipPayload.map(item => _objectSpread(_objectSpread({}, item), {}, {\n color: activeShapeFill,\n fill: activeShapeFill\n }));\n });\n var tooltipEntrySettings = {\n dataDefinedOnItem: tooltipDataDefinedOnItem,\n getPosition: index => {\n var _sectors$Number;\n return (_sectors$Number = sectors[Number(index)]) === null || _sectors$Number === void 0 ? void 0 : _sectors$Number.tooltipPosition;\n },\n settings: {\n stroke,\n strokeWidth,\n fill,\n dataKey,\n nameKey,\n name: getTooltipNameProp(name, dataKey),\n hide,\n type: tooltipType,\n color: fill,\n unit: '',\n // why doesn't Pie support unit?\n graphicalItemId: id\n }\n };\n return /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {\n tooltipEntrySettings: tooltipEntrySettings\n });\n});\nvar getTextAnchor = (x, cx) => {\n if (x > cx) {\n return 'start';\n }\n if (x < cx) {\n return 'end';\n }\n return 'middle';\n};\nvar getOuterRadius = (dataPoint, outerRadius, maxPieRadius) => {\n if (typeof outerRadius === 'function') {\n return getPercentValue(outerRadius(dataPoint), maxPieRadius, maxPieRadius * 0.8);\n }\n return getPercentValue(outerRadius, maxPieRadius, maxPieRadius * 0.8);\n};\nvar parseCoordinateOfPie = (pieSettings, offset, dataPoint) => {\n var {\n top,\n left,\n width,\n height\n } = offset;\n var maxPieRadius = getMaxRadius(width, height);\n var cx = left + getPercentValue(pieSettings.cx, width, width / 2);\n var cy = top + getPercentValue(pieSettings.cy, height, height / 2);\n var innerRadius = getPercentValue(pieSettings.innerRadius, maxPieRadius, 0);\n var outerRadius = getOuterRadius(dataPoint, pieSettings.outerRadius, maxPieRadius);\n var maxRadius = pieSettings.maxRadius || Math.sqrt(width * width + height * height) / 2;\n return {\n cx,\n cy,\n innerRadius,\n outerRadius,\n maxRadius\n };\n};\nvar parseDeltaAngle = (startAngle, endAngle) => {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\nvar renderLabelLineItem = (option, props) => {\n if (/*#__PURE__*/React.isValidElement(option)) {\n // @ts-expect-error we can't know if the type of props matches the element\n return /*#__PURE__*/React.cloneElement(option, props);\n }\n if (typeof option === 'function') {\n return option(props);\n }\n var className = clsx('recharts-pie-label-line', typeof option !== 'boolean' ? option.className : '');\n // React doesn't like it when we spread a key property onto an element\n var {\n key\n } = props,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/React.createElement(Curve, _extends({}, otherProps, {\n type: \"linear\",\n className: className\n }));\n};\nvar renderLabelItem = (option, props, value) => {\n if (/*#__PURE__*/React.isValidElement(option)) {\n // @ts-expect-error element cloning is not typed\n return /*#__PURE__*/React.cloneElement(option, props);\n }\n var label = value;\n if (typeof option === 'function') {\n label = option(props);\n if (/*#__PURE__*/React.isValidElement(label)) {\n return label;\n }\n }\n var className = clsx('recharts-pie-label-text', getClassNameFromUnknown(option));\n return /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n alignmentBaseline: \"middle\",\n className: className\n }), label);\n};\nfunction PieLabels(_ref2) {\n var {\n sectors,\n props,\n showLabels\n } = _ref2;\n var {\n label,\n labelLine,\n dataKey\n } = props;\n if (!showLabels || !label || !sectors) {\n return null;\n }\n var pieProps = svgPropertiesNoEvents(props);\n var customLabelProps = svgPropertiesNoEventsFromUnknown(label);\n var customLabelLineProps = svgPropertiesNoEventsFromUnknown(labelLine);\n var offsetRadius = typeof label === 'object' && 'offsetRadius' in label && typeof label.offsetRadius === 'number' && label.offsetRadius || 20;\n var labels = sectors.map((entry, i) => {\n var midAngle = (entry.startAngle + entry.endAngle) / 2;\n var endPoint = polarToCartesian(entry.cx, entry.cy, entry.outerRadius + offsetRadius, midAngle);\n var labelProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, pieProps), entry), {}, {\n // @ts-expect-error customLabelProps is contributing unknown props\n stroke: 'none'\n }, customLabelProps), {}, {\n index: i,\n textAnchor: getTextAnchor(endPoint.x, entry.cx)\n }, endPoint);\n var lineProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, pieProps), entry), {}, {\n // @ts-expect-error customLabelLineProps is contributing unknown props\n fill: 'none',\n // @ts-expect-error customLabelLineProps is contributing unknown props\n stroke: entry.fill\n }, customLabelLineProps), {}, {\n index: i,\n points: [polarToCartesian(entry.cx, entry.cy, entry.outerRadius, midAngle), endPoint],\n key: 'line'\n });\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: DefaultZIndexes.label,\n key: \"label-\".concat(entry.startAngle, \"-\").concat(entry.endAngle, \"-\").concat(entry.midAngle, \"-\").concat(i)\n }, /*#__PURE__*/React.createElement(Layer, null, labelLine && renderLabelLineItem(labelLine, lineProps), renderLabelItem(label, labelProps, getValueByDataKey(entry, dataKey))));\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-pie-labels\"\n }, labels);\n}\nfunction PieLabelList(_ref3) {\n var {\n sectors,\n props,\n showLabels\n } = _ref3;\n var {\n label\n } = props;\n if (typeof label === 'object' && label != null && 'position' in label) {\n return /*#__PURE__*/React.createElement(LabelListFromLabelProp, {\n label: label\n });\n }\n return /*#__PURE__*/React.createElement(PieLabels, {\n sectors: sectors,\n props: props,\n showLabels: showLabels\n });\n}\nfunction PieSectors(props) {\n var {\n sectors,\n activeShape,\n inactiveShape: inactiveShapeProp,\n allOtherPieProps,\n shape,\n id\n } = props;\n var activeIndex = useAppSelector(selectActiveTooltipIndex);\n var activeDataKey = useAppSelector(selectActiveTooltipDataKey);\n var activeGraphicalItemId = useAppSelector(selectActiveTooltipGraphicalItemId);\n var {\n onMouseEnter: onMouseEnterFromProps,\n onClick: onItemClickFromProps,\n onMouseLeave: onMouseLeaveFromProps\n } = allOtherPieProps,\n restOfAllOtherProps = _objectWithoutProperties(allOtherPieProps, _excluded2);\n var onMouseEnterFromContext = useMouseEnterItemDispatch(onMouseEnterFromProps, allOtherPieProps.dataKey, id);\n var onMouseLeaveFromContext = useMouseLeaveItemDispatch(onMouseLeaveFromProps);\n var onClickFromContext = useMouseClickItemDispatch(onItemClickFromProps, allOtherPieProps.dataKey, id);\n if (sectors == null || sectors.length === 0) {\n return null;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, sectors.map((entry, i) => {\n if ((entry === null || entry === void 0 ? void 0 : entry.startAngle) === 0 && (entry === null || entry === void 0 ? void 0 : entry.endAngle) === 0 && sectors.length !== 1) return null;\n\n // For Pie charts, when multiple Pies share the same dataKey, we need to ensure only the hovered Pie's sector is active.\n // We do this by checking if the active graphical item ID matches this Pie's ID.\n var graphicalItemMatches = activeGraphicalItemId == null || activeGraphicalItemId === id;\n var isActive = String(i) === activeIndex && (activeDataKey == null || allOtherPieProps.dataKey === activeDataKey) && graphicalItemMatches;\n var inactiveShape = activeIndex ? inactiveShapeProp : null;\n var sectorOptions = activeShape && isActive ? activeShape : inactiveShape;\n var sectorProps = _objectSpread(_objectSpread({}, entry), {}, {\n stroke: entry.stroke,\n tabIndex: -1,\n [DATA_ITEM_INDEX_ATTRIBUTE_NAME]: i,\n [DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME]: id\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n key: \"sector-\".concat(entry === null || entry === void 0 ? void 0 : entry.startAngle, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.endAngle, \"-\").concat(entry.midAngle, \"-\").concat(i),\n tabIndex: -1,\n className: \"recharts-pie-sector\"\n }, adaptEventsOfChild(restOfAllOtherProps, entry, i), {\n onMouseEnter: onMouseEnterFromContext(entry, i),\n onMouseLeave: onMouseLeaveFromContext(entry, i),\n onClick: onClickFromContext(entry, i)\n }), /*#__PURE__*/React.createElement(Shape, _extends({\n option: shape !== null && shape !== void 0 ? shape : sectorOptions,\n index: i,\n shapeType: \"sector\",\n isActive: isActive\n }, sectorProps)));\n }));\n}\nexport function computePieSectors(_ref4) {\n var _pieSettings$paddingA;\n var {\n pieSettings,\n displayedData,\n cells,\n offset\n } = _ref4;\n var {\n cornerRadius,\n startAngle,\n endAngle,\n dataKey,\n nameKey,\n tooltipType\n } = pieSettings;\n var minAngle = Math.abs(pieSettings.minAngle);\n var deltaAngle = parseDeltaAngle(startAngle, endAngle);\n var absDeltaAngle = Math.abs(deltaAngle);\n var paddingAngle = displayedData.length <= 1 ? 0 : (_pieSettings$paddingA = pieSettings.paddingAngle) !== null && _pieSettings$paddingA !== void 0 ? _pieSettings$paddingA : 0;\n var notZeroItemCount = displayedData.filter(entry => getValueByDataKey(entry, dataKey, 0) !== 0).length;\n var totalPaddingAngle = (absDeltaAngle >= 360 ? notZeroItemCount : notZeroItemCount - 1) * paddingAngle;\n var realTotalAngle = absDeltaAngle - notZeroItemCount * minAngle - totalPaddingAngle;\n var sum = displayedData.reduce((result, entry) => {\n var val = getValueByDataKey(entry, dataKey, 0);\n return result + (isNumber(val) ? val : 0);\n }, 0);\n var sectors;\n if (sum > 0) {\n var prev;\n sectors = displayedData.map((entry, i) => {\n var val = getValueByDataKey(entry, dataKey, 0);\n var name = getValueByDataKey(entry, nameKey, i);\n var coordinate = parseCoordinateOfPie(pieSettings, offset, entry);\n var percent = (isNumber(val) ? val : 0) / sum;\n var tempStartAngle;\n\n // @ts-expect-error can't spread unknown\n var entryWithCellInfo = _objectSpread(_objectSpread({}, entry), cells && cells[i] && cells[i].props);\n var sectorColor = entryWithCellInfo != null && 'fill' in entryWithCellInfo && typeof entryWithCellInfo.fill === 'string' ? entryWithCellInfo.fill : pieSettings.fill;\n if (i) {\n tempStartAngle = prev.endAngle + mathSign(deltaAngle) * paddingAngle * (val !== 0 ? 1 : 0);\n } else {\n tempStartAngle = startAngle;\n }\n var tempEndAngle = tempStartAngle + mathSign(deltaAngle) * ((val !== 0 ? minAngle : 0) + percent * realTotalAngle);\n var midAngle = (tempStartAngle + tempEndAngle) / 2;\n var middleRadius = (coordinate.innerRadius + coordinate.outerRadius) / 2;\n var tooltipPayload = [{\n name,\n value: val,\n payload: entryWithCellInfo,\n dataKey,\n type: tooltipType,\n color: sectorColor,\n fill: sectorColor,\n graphicalItemId: pieSettings.id\n }];\n var tooltipPosition = polarToCartesian(coordinate.cx, coordinate.cy, middleRadius, midAngle);\n prev = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, pieSettings.presentationProps), {}, {\n percent,\n cornerRadius: typeof cornerRadius === 'string' ? parseFloat(cornerRadius) : cornerRadius,\n name,\n tooltipPayload,\n midAngle,\n middleRadius,\n tooltipPosition\n }, entryWithCellInfo), coordinate), {}, {\n value: val,\n dataKey,\n startAngle: tempStartAngle,\n endAngle: tempEndAngle,\n payload: entryWithCellInfo,\n paddingAngle: mathSign(deltaAngle) * paddingAngle\n });\n return prev;\n });\n }\n return sectors;\n}\nfunction PieLabelListProvider(_ref5) {\n var {\n showLabels,\n sectors,\n children\n } = _ref5;\n var labelListEntries = useMemo(() => {\n if (!showLabels || !sectors) {\n return [];\n }\n return sectors.map(entry => ({\n value: entry.value,\n payload: entry.payload,\n clockWise: false,\n parentViewBox: undefined,\n viewBox: {\n cx: entry.cx,\n cy: entry.cy,\n innerRadius: entry.innerRadius,\n outerRadius: entry.outerRadius,\n startAngle: entry.startAngle,\n endAngle: entry.endAngle,\n clockWise: false\n },\n fill: entry.fill\n }));\n }, [sectors, showLabels]);\n return /*#__PURE__*/React.createElement(PolarLabelListContextProvider, {\n value: showLabels ? labelListEntries : undefined\n }, children);\n}\nfunction SectorsWithAnimation(_ref6) {\n var {\n props,\n previousSectorsRef,\n id\n } = _ref6;\n var {\n sectors,\n isAnimationActive,\n animationBegin,\n animationDuration,\n animationEasing,\n activeShape,\n inactiveShape,\n onAnimationStart,\n onAnimationEnd\n } = props;\n var animationId = useAnimationId(props, 'recharts-pie-');\n var prevSectors = previousSectorsRef.current;\n var [isAnimating, setIsAnimating] = useState(false);\n var handleAnimationEnd = useCallback(() => {\n if (typeof onAnimationEnd === 'function') {\n onAnimationEnd();\n }\n setIsAnimating(false);\n }, [onAnimationEnd]);\n var handleAnimationStart = useCallback(() => {\n if (typeof onAnimationStart === 'function') {\n onAnimationStart();\n }\n setIsAnimating(true);\n }, [onAnimationStart]);\n return /*#__PURE__*/React.createElement(PieLabelListProvider, {\n showLabels: !isAnimating,\n sectors: sectors\n }, /*#__PURE__*/React.createElement(JavascriptAnimate, {\n animationId: animationId,\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n onAnimationStart: handleAnimationStart,\n onAnimationEnd: handleAnimationEnd,\n key: animationId\n }, t => {\n var _first$startAngle;\n var stepData = [];\n var first = sectors && sectors[0];\n var curAngle = (_first$startAngle = first === null || first === void 0 ? void 0 : first.startAngle) !== null && _first$startAngle !== void 0 ? _first$startAngle : 0;\n sectors === null || sectors === void 0 || sectors.forEach((entry, index) => {\n var prev = prevSectors && prevSectors[index];\n var paddingAngle = index > 0 ? get(entry, 'paddingAngle', 0) : 0;\n if (prev) {\n var angle = interpolate(prev.endAngle - prev.startAngle, entry.endAngle - entry.startAngle, t);\n var latest = _objectSpread(_objectSpread({}, entry), {}, {\n startAngle: curAngle + paddingAngle,\n endAngle: curAngle + angle + paddingAngle\n });\n stepData.push(latest);\n curAngle = latest.endAngle;\n } else {\n var {\n endAngle,\n startAngle\n } = entry;\n var deltaAngle = interpolate(0, endAngle - startAngle, t);\n var _latest = _objectSpread(_objectSpread({}, entry), {}, {\n startAngle: curAngle + paddingAngle,\n endAngle: curAngle + deltaAngle + paddingAngle\n });\n stepData.push(_latest);\n curAngle = _latest.endAngle;\n }\n });\n\n // eslint-disable-next-line no-param-reassign\n previousSectorsRef.current = stepData;\n return /*#__PURE__*/React.createElement(Layer, null, /*#__PURE__*/React.createElement(PieSectors, {\n sectors: stepData,\n activeShape: activeShape,\n inactiveShape: inactiveShape,\n allOtherPieProps: props,\n shape: props.shape,\n id: id\n }));\n }), /*#__PURE__*/React.createElement(PieLabelList, {\n showLabels: !isAnimating,\n sectors: sectors,\n props: props\n }), props.children);\n}\nexport var defaultPieProps = {\n animationBegin: 400,\n animationDuration: 1500,\n animationEasing: 'ease',\n cx: '50%',\n cy: '50%',\n dataKey: 'value',\n endAngle: 360,\n fill: '#808080',\n hide: false,\n innerRadius: 0,\n isAnimationActive: 'auto',\n label: false,\n labelLine: true,\n legendType: 'rect',\n minAngle: 0,\n nameKey: 'name',\n outerRadius: '80%',\n paddingAngle: 0,\n rootTabIndex: 0,\n startAngle: 0,\n stroke: '#fff',\n zIndex: DefaultZIndexes.area\n};\nfunction PieImpl(props) {\n var {\n id\n } = props,\n propsWithoutId = _objectWithoutProperties(props, _excluded3);\n var {\n hide,\n className,\n rootTabIndex\n } = props;\n var cells = useMemo(() => findAllByType(props.children, Cell), [props.children]);\n var sectors = useAppSelector(state => selectPieSectors(state, id, cells));\n var previousSectorsRef = useRef(null);\n var layerClass = clsx('recharts-pie', className);\n if (hide || sectors == null) {\n previousSectorsRef.current = null;\n return /*#__PURE__*/React.createElement(Layer, {\n tabIndex: rootTabIndex,\n className: layerClass\n });\n }\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: props.zIndex\n }, /*#__PURE__*/React.createElement(SetPieTooltipEntrySettings, {\n dataKey: props.dataKey,\n nameKey: props.nameKey,\n sectors: sectors,\n stroke: props.stroke,\n strokeWidth: props.strokeWidth,\n fill: props.fill,\n name: props.name,\n hide: props.hide,\n tooltipType: props.tooltipType,\n id: id,\n activeShape: props.activeShape\n }), /*#__PURE__*/React.createElement(Layer, {\n tabIndex: rootTabIndex,\n className: layerClass\n }, /*#__PURE__*/React.createElement(SectorsWithAnimation, {\n props: _objectSpread(_objectSpread({}, propsWithoutId), {}, {\n sectors\n }),\n previousSectorsRef: previousSectorsRef,\n id: id\n })));\n}\n/**\n * @consumes PolarChartContext\n * @provides LabelListContext\n * @provides CellReader\n */\nfunction PieFn(outsideProps) {\n var props = resolveDefaultProps(outsideProps, defaultPieProps);\n var {\n id: externalId\n } = props,\n propsWithoutId = _objectWithoutProperties(props, _excluded4);\n var presentationProps = svgPropertiesNoEvents(propsWithoutId);\n return /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {\n id: externalId,\n type: \"pie\"\n }, id => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetPolarGraphicalItem, {\n type: \"pie\",\n id: id,\n data: propsWithoutId.data,\n dataKey: propsWithoutId.dataKey,\n hide: propsWithoutId.hide,\n angleAxisId: 0,\n radiusAxisId: 0,\n name: propsWithoutId.name,\n nameKey: propsWithoutId.nameKey,\n tooltipType: propsWithoutId.tooltipType,\n legendType: propsWithoutId.legendType,\n fill: propsWithoutId.fill,\n cx: propsWithoutId.cx,\n cy: propsWithoutId.cy,\n startAngle: propsWithoutId.startAngle,\n endAngle: propsWithoutId.endAngle,\n paddingAngle: propsWithoutId.paddingAngle,\n minAngle: propsWithoutId.minAngle,\n innerRadius: propsWithoutId.innerRadius,\n outerRadius: propsWithoutId.outerRadius,\n cornerRadius: propsWithoutId.cornerRadius,\n presentationProps: presentationProps,\n maxRadius: props.maxRadius\n }), /*#__PURE__*/React.createElement(SetPiePayloadLegend, _extends({}, propsWithoutId, {\n id: id\n })), /*#__PURE__*/React.createElement(PieImpl, _extends({}, propsWithoutId, {\n id: id\n }))));\n}\nexport var Pie = PieFn;\n// @ts-expect-error we need to set the displayName for debugging purposes\nPie.displayName = 'Pie';", "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 { computePieSectors } from '../../polar/Pie';\nimport { selectChartDataAndAlwaysIgnoreIndexes } from './dataSelectors';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { getTooltipNameProp, getValueByDataKey } from '../../util/ChartUtils';\nimport { selectUnfilteredPolarItems } from './polarSelectors';\nvar pickId = (_state, id) => id;\nvar selectSynchronisedPieSettings = createSelector([selectUnfilteredPolarItems, pickId], (graphicalItems, id) => graphicalItems.filter(item => item.type === 'pie').find(item => item.id === id));\n\n// Keep stable reference to an empty array to prevent re-renders\nvar emptyArray = [];\nvar pickCells = (_state, _id, cells) => {\n if ((cells === null || cells === void 0 ? void 0 : cells.length) === 0) {\n return emptyArray;\n }\n return cells;\n};\nexport var selectDisplayedData = createSelector([selectChartDataAndAlwaysIgnoreIndexes, selectSynchronisedPieSettings, pickCells], (_ref, pieSettings, cells) => {\n var {\n chartData\n } = _ref;\n if (pieSettings == null) {\n return undefined;\n }\n var displayedData;\n if ((pieSettings === null || pieSettings === void 0 ? void 0 : pieSettings.data) != null && pieSettings.data.length > 0) {\n displayedData = pieSettings.data;\n } else {\n displayedData = chartData;\n }\n if ((!displayedData || !displayedData.length) && cells != null) {\n displayedData = cells.map(cell => _objectSpread(_objectSpread({}, pieSettings.presentationProps), cell.props));\n }\n if (displayedData == null) {\n return undefined;\n }\n return displayedData;\n});\nexport var selectPieLegend = createSelector([selectDisplayedData, selectSynchronisedPieSettings, pickCells], (displayedData, pieSettings, cells) => {\n if (displayedData == null || pieSettings == null) {\n return undefined;\n }\n return displayedData.map((entry, i) => {\n var _cells$i;\n var name = getValueByDataKey(entry, pieSettings.nameKey, pieSettings.name);\n var color;\n if (cells !== null && cells !== void 0 && (_cells$i = cells[i]) !== null && _cells$i !== void 0 && (_cells$i = _cells$i.props) !== null && _cells$i !== void 0 && _cells$i.fill) {\n color = cells[i].props.fill;\n } else if (typeof entry === 'object' && entry != null && 'fill' in entry) {\n color = entry.fill;\n } else {\n color = pieSettings.fill;\n }\n return {\n value: getTooltipNameProp(name, pieSettings.dataKey),\n color,\n // @ts-expect-error Legend payload.payload says it wants objects but our data can be unknown\n payload: entry,\n type: pieSettings.legendType\n };\n });\n});\nexport var selectPieSectors = createSelector([selectDisplayedData, selectSynchronisedPieSettings, pickCells, selectChartOffsetInternal], (displayedData, pieSettings, cells, offset) => {\n if (pieSettings == null || displayedData == null) {\n return undefined;\n }\n return computePieSectors({\n offset,\n pieSettings,\n displayedData,\n cells\n });\n});", "import get from 'es-toolkit/compat/get';\nimport { Children } from 'react';\nimport { isFragment } from 'react-is';\nimport { isNullish } from './DataUtils';\nexport var SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];\n\n/**\n * @deprecated instead find another approach that does not depend on displayName.\n * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\nexport var getDisplayName = Comp => {\n if (typeof Comp === 'string') {\n return Comp;\n }\n if (!Comp) {\n return '';\n }\n return Comp.displayName || Comp.name || 'Component';\n};\n\n// `toArray` gets called multiple times during the render\n// so we can memoize last invocation (since reference to `children` is the same)\nvar lastChildren = null;\nvar lastResult = null;\n\n/**\n * @deprecated instead find another approach that does not require reading React Elements from DOM.\n *\n * @param children do not use\n * @return deprecated do not use\n */\nexport var toArray = children => {\n if (children === lastChildren && Array.isArray(lastResult)) {\n return lastResult;\n }\n var result = [];\n Children.forEach(children, child => {\n if (isNullish(child)) return;\n if (isFragment(child)) {\n result = result.concat(toArray(child.props.children));\n } else {\n // @ts-expect-error this could still be Iterable<ReactNode> and TS does not like that\n result.push(child);\n }\n });\n lastResult = result;\n lastChildren = children;\n return result;\n};\n\n/**\n * @deprecated instead find another approach that does not require reading React Elements from DOM.\n *\n * Find and return all matched children by type.\n * `type` must be a React.ComponentType\n *\n * @param children do not use\n * @param type do not use\n * @return deprecated do not use\n */\nexport function findAllByType(children, type) {\n var result = [];\n var types = [];\n if (Array.isArray(type)) {\n types = type.map(t => getDisplayName(t));\n } else {\n types = [getDisplayName(type)];\n }\n toArray(children).forEach(child => {\n // @ts-expect-error toArray and lodash.get are not compatible. Let's get rid of the whole findAllByType function\n var childType = get(child, 'type.displayName') || get(child, 'type.name');\n if (childType && types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n}\nexport var isClipDot = dot => {\n if (dot && typeof dot === 'object' && 'clipDot' in dot) {\n return Boolean(dot.clipDot);\n }\n return true;\n};", "var _excluded = [\"option\", \"shapeType\", \"activeClassName\", \"inActiveClassName\"];\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 activeClassName = 'recharts-active-shape',\n inActiveClassName = 'recharts-shape'\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, props.index);\n } else if (isPlainObject(option) && typeof option !== 'boolean') {\n var nextProps = defaultPropTransformer(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 (props.isActive) {\n return /*#__PURE__*/React.createElement(Layer, {\n className: activeClassName\n }, shape);\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: inActiveClassName\n }, shape);\n}", "var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;\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 _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }\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';\nimport { roundTemplateLiteral } from '../util/round';\nvar getTrapezoidPath = (x, y, upperWidth, lowerWidth, height) => {\n var widthGap = upperWidth - lowerWidth;\n var path;\n path = roundTemplateLiteral(_templateObject || (_templateObject = _taggedTemplateLiteral([\"M \", \",\", \"\"])), x, y);\n path += roundTemplateLiteral(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"L \", \",\", \"\"])), x + upperWidth, y);\n path += roundTemplateLiteral(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([\"L \", \",\", \"\"])), x + upperWidth - widthGap / 2, y + height);\n path += roundTemplateLiteral(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral([\"L \", \",\", \"\"])), x + upperWidth - widthGap / 2 - lowerWidth, y + height);\n path += roundTemplateLiteral(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral([\"L \", \",\", \" Z\"])), x, y);\n return path;\n};\nexport var defaultTrapezoidProps = {\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, defaultTrapezoidProps);\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 \").concat(totalLength, \"px\");\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};", "import { useAppDispatch } from '../state/hooks';\nimport { mouseLeaveItem, setActiveClickItemIndex, setActiveMouseOverItemIndex } from '../state/tooltipSlice';\n\n/**\n * Some graphical items choose to provide more information to the tooltip\n * and some do not.\n */\n\nexport var useMouseEnterItemDispatch = (onMouseEnterFromProps, dataKey, graphicalItemId) => {\n var dispatch = useAppDispatch();\n return (data, index) => event => {\n onMouseEnterFromProps === null || onMouseEnterFromProps === void 0 || onMouseEnterFromProps(data, index, event);\n dispatch(setActiveMouseOverItemIndex({\n activeIndex: String(index),\n activeDataKey: dataKey,\n activeCoordinate: data.tooltipPosition,\n activeGraphicalItemId: graphicalItemId\n }));\n };\n};\nexport var useMouseLeaveItemDispatch = onMouseLeaveFromProps => {\n var dispatch = useAppDispatch();\n return (data, index) => event => {\n onMouseLeaveFromProps === null || onMouseLeaveFromProps === void 0 || onMouseLeaveFromProps(data, index, event);\n dispatch(mouseLeaveItem());\n };\n};\nexport var useMouseClickItemDispatch = (onMouseClickFromProps, dataKey, graphicalItemId) => {\n var dispatch = useAppDispatch();\n return (data, index) => event => {\n onMouseClickFromProps === null || onMouseClickFromProps === void 0 || onMouseClickFromProps(data, index, event);\n dispatch(setActiveClickItemIndex({\n activeIndex: String(index),\n activeDataKey: dataKey,\n activeCoordinate: data.tooltipPosition,\n activeGraphicalItemId: graphicalItemId\n }));\n };\n};", "import { useLayoutEffect, useRef } from 'react';\nimport { useAppDispatch } from './hooks';\nimport { addTooltipEntrySettings, removeTooltipEntrySettings, replaceTooltipEntrySettings } from './tooltipSlice';\nimport { useIsPanorama } from '../context/PanoramaContext';\nexport function SetTooltipEntrySettings(_ref) {\n var {\n tooltipEntrySettings\n } = _ref;\n var dispatch = useAppDispatch();\n var isPanorama = useIsPanorama();\n var prevSettingsRef = useRef(null);\n useLayoutEffect(() => {\n if (isPanorama) {\n // Panorama graphical items should never contribute to Tooltip payload.\n return;\n }\n if (prevSettingsRef.current === null) {\n dispatch(addTooltipEntrySettings(tooltipEntrySettings));\n } else if (prevSettingsRef.current !== tooltipEntrySettings) {\n dispatch(replaceTooltipEntrySettings({\n prev: prevSettingsRef.current,\n next: tooltipEntrySettings\n }));\n }\n prevSettingsRef.current = tooltipEntrySettings;\n }, [tooltipEntrySettings, dispatch, isPanorama]);\n useLayoutEffect(() => {\n return () => {\n if (prevSettingsRef.current) {\n dispatch(removeTooltipEntrySettings(prevSettingsRef.current));\n prevSettingsRef.current = null;\n }\n };\n }, [dispatch]);\n return null;\n}", "import { useLayoutEffect, useRef } from 'react';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { selectChartLayout } from '../context/chartLayoutContext';\nimport { useAppDispatch, useAppSelector } from './hooks';\nimport { addLegendPayload, replaceLegendPayload, removeLegendPayload } from './legendSlice';\nexport function SetLegendPayload(_ref) {\n var {\n legendPayload\n } = _ref;\n var dispatch = useAppDispatch();\n var isPanorama = useIsPanorama();\n var prevPayloadRef = useRef(null);\n useLayoutEffect(() => {\n if (isPanorama) {\n return;\n }\n if (prevPayloadRef.current === null) {\n dispatch(addLegendPayload(legendPayload));\n } else if (prevPayloadRef.current !== legendPayload) {\n dispatch(replaceLegendPayload({\n prev: prevPayloadRef.current,\n next: legendPayload\n }));\n }\n prevPayloadRef.current = legendPayload;\n }, [dispatch, isPanorama, legendPayload]);\n useLayoutEffect(() => {\n return () => {\n if (prevPayloadRef.current) {\n dispatch(removeLegendPayload(prevPayloadRef.current));\n prevPayloadRef.current = null;\n }\n };\n }, [dispatch]);\n return null;\n}\nexport function SetPolarLegendPayload(_ref2) {\n var {\n legendPayload\n } = _ref2;\n var dispatch = useAppDispatch();\n var layout = useAppSelector(selectChartLayout);\n var prevPayloadRef = useRef(null);\n useLayoutEffect(() => {\n if (layout !== 'centric' && layout !== 'radial') {\n return;\n }\n if (prevPayloadRef.current === null) {\n dispatch(addLegendPayload(legendPayload));\n } else if (prevPayloadRef.current !== legendPayload) {\n dispatch(replaceLegendPayload({\n prev: prevPayloadRef.current,\n next: legendPayload\n }));\n }\n prevPayloadRef.current = legendPayload;\n }, [dispatch, layout, legendPayload]);\n useLayoutEffect(() => {\n return () => {\n if (prevPayloadRef.current) {\n dispatch(removeLegendPayload(prevPayloadRef.current));\n prevPayloadRef.current = null;\n }\n };\n }, [dispatch]);\n return null;\n}", "import * as React from 'react';\nimport { createContext, useContext } from 'react';\nimport { useUniqueId } from '../util/useUniqueId';\nvar GraphicalItemIdContext = /*#__PURE__*/createContext(undefined);\nexport var RegisterGraphicalItemId = _ref => {\n var {\n id,\n type,\n children\n } = _ref;\n var resolvedId = useUniqueId(\"recharts-\".concat(type), id);\n return /*#__PURE__*/React.createElement(GraphicalItemIdContext.Provider, {\n value: resolvedId\n }, children(resolvedId));\n};\nexport function useGraphicalItemId() {\n return useContext(GraphicalItemIdContext);\n}", "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 */", "import { memo, useLayoutEffect, useRef } from 'react';\nimport { useAppDispatch } from './hooks';\nimport { addCartesianGraphicalItem, addPolarGraphicalItem, removeCartesianGraphicalItem, removePolarGraphicalItem, replaceCartesianGraphicalItem, replacePolarGraphicalItem } from './graphicalItemsSlice';\nvar SetCartesianGraphicalItemImpl = props => {\n var dispatch = useAppDispatch();\n var prevPropsRef = useRef(null);\n useLayoutEffect(() => {\n if (prevPropsRef.current === null) {\n dispatch(addCartesianGraphicalItem(props));\n } else if (prevPropsRef.current !== props) {\n dispatch(replaceCartesianGraphicalItem({\n prev: prevPropsRef.current,\n next: props\n }));\n }\n prevPropsRef.current = props;\n }, [dispatch, props]);\n useLayoutEffect(() => {\n return () => {\n if (prevPropsRef.current) {\n dispatch(removeCartesianGraphicalItem(prevPropsRef.current));\n /*\n * Here we have to reset the ref to null because in StrictMode, the effect will run twice,\n * but it will keep the same ref value from the first render.\n *\n * In browser, React will clear the ref after the first effect cleanup,\n * so that wouldn't be an issue.\n *\n * In StrictMode, however, the ref is kept,\n * and in the hook above the code checks for `prevPropsRef.current === null`\n * which would be false so it would not dispatch the `addCartesianGraphicalItem` action again.\n *\n * https://github.com/recharts/recharts/issues/6022\n */\n prevPropsRef.current = null;\n }\n };\n }, [dispatch]);\n return null;\n};\nexport var SetCartesianGraphicalItem = /*#__PURE__*/memo(SetCartesianGraphicalItemImpl);\nvar SetPolarGraphicalItemImpl = props => {\n var dispatch = useAppDispatch();\n var prevPropsRef = useRef(null);\n useLayoutEffect(() => {\n if (prevPropsRef.current === null) {\n dispatch(addPolarGraphicalItem(props));\n } else if (prevPropsRef.current !== props) {\n dispatch(replacePolarGraphicalItem({\n prev: prevPropsRef.current,\n next: props\n }));\n }\n prevPropsRef.current = props;\n }, [dispatch, props]);\n useLayoutEffect(() => {\n return () => {\n if (prevPropsRef.current) {\n dispatch(removePolarGraphicalItem(prevPropsRef.current));\n prevPropsRef.current = null;\n }\n };\n }, [dispatch]);\n return null;\n};\nexport var SetPolarGraphicalItem = /*#__PURE__*/memo(SetPolarGraphicalItemImpl);", "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 replacePolarGraphicalItem: {\n reducer(state, action) {\n var {\n prev,\n next\n } = action.payload;\n var index = current(state).polarItems.indexOf(castDraft(prev));\n if (index > -1) {\n state.polarItems[index] = castDraft(next);\n }\n },\n prepare: prepareAutoBatched()\n }\n }\n});\nexport var {\n addCartesianGraphicalItem,\n replaceCartesianGraphicalItem,\n removeCartesianGraphicalItem,\n addPolarGraphicalItem,\n removePolarGraphicalItem,\n replacePolarGraphicalItem\n} = graphicalItemsSlice.actions;\nexport var graphicalItemsReducer = graphicalItemsSlice.reducer;", "var _excluded = [\"id\"];\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 { useCallback, useRef, useState } from 'react';\nimport last from 'es-toolkit/compat/last';\nimport { clsx } from 'clsx';\nimport { interpolate, isNullish, noop } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { getTooltipNameProp, getValueByDataKey } from '../util/ChartUtils';\nimport { Polygon } from '../shape/Polygon';\nimport { Layer } from '../container/Layer';\nimport { CartesianLabelListContextProvider, LabelListFromLabelProp } from '../component/LabelList';\nimport { Dots } from '../component/Dots';\nimport { ActivePoints } from '../component/ActivePoints';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { selectRadarPoints } from '../state/selectors/radarSelectors';\nimport { useAppSelector } from '../state/hooks';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { SetPolarLegendPayload } from '../state/SetLegendPayload';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\nimport { SetPolarGraphicalItem } from '../state/SetGraphicalItem';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { JavascriptAnimate } from '../animation/JavascriptAnimate';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nfunction getLegendItemColor(stroke, fill) {\n return stroke && stroke !== 'none' ? stroke : fill;\n}\nvar computeLegendPayloadFromRadarSectors = props => {\n var {\n dataKey,\n name,\n stroke,\n fill,\n legendType,\n hide\n } = props;\n return [{\n inactive: hide,\n dataKey,\n type: legendType,\n color: getLegendItemColor(stroke, fill),\n value: getTooltipNameProp(name, dataKey),\n payload: props\n }];\n};\nvar SetRadarTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {\n var {\n dataKey,\n stroke,\n strokeWidth,\n fill,\n name,\n hide,\n tooltipType,\n id\n } = _ref;\n var tooltipEntrySettings = {\n /*\n * I suppose this here _could_ return props.points\n * because while Radar does not support item tooltip mode, it _could_ support it.\n * But when I actually do return the points here, a defaultIndex test starts failing.\n * So, undefined it is.\n */\n dataDefinedOnItem: undefined,\n getPosition: noop,\n settings: {\n stroke,\n strokeWidth,\n fill,\n nameKey: undefined,\n // RadarChart does not have nameKey unfortunately\n dataKey,\n name: getTooltipNameProp(name, dataKey),\n hide,\n type: tooltipType,\n color: getLegendItemColor(stroke, fill),\n unit: '',\n // why doesn't Radar support unit?\n graphicalItemId: id\n }\n };\n return /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {\n tooltipEntrySettings: tooltipEntrySettings\n });\n});\nfunction RadarDotsWrapper(_ref2) {\n var {\n points,\n props\n } = _ref2;\n var {\n dot,\n dataKey\n } = props;\n var {\n id\n } = props,\n propsWithoutId = _objectWithoutProperties(props, _excluded);\n var baseProps = svgPropertiesNoEvents(propsWithoutId);\n return /*#__PURE__*/React.createElement(Dots, {\n points: points,\n dot: dot,\n className: \"recharts-radar-dots\",\n dotClassName: \"recharts-radar-dot\",\n dataKey: dataKey,\n baseProps: baseProps\n });\n}\nexport function computeRadarPoints(_ref3) {\n var {\n radiusAxis,\n angleAxis,\n displayedData,\n dataKey,\n bandSize\n } = _ref3;\n var {\n cx,\n cy\n } = angleAxis;\n var isRange = false;\n var points = [];\n var angleBandSize = angleAxis.type !== 'number' ? bandSize !== null && bandSize !== void 0 ? bandSize : 0 : 0;\n displayedData.forEach((entry, i) => {\n var _angleAxis$scale$map, _radiusAxis$scale$map;\n var name = getValueByDataKey(entry, angleAxis.dataKey, i);\n var value = getValueByDataKey(entry, dataKey);\n var angle = ((_angleAxis$scale$map = angleAxis.scale.map(name)) !== null && _angleAxis$scale$map !== void 0 ? _angleAxis$scale$map : 0) + angleBandSize;\n var pointValue = Array.isArray(value) ? last(value) : value;\n var radius = isNullish(pointValue) ? 0 : (_radiusAxis$scale$map = radiusAxis.scale.map(pointValue)) !== null && _radiusAxis$scale$map !== void 0 ? _radiusAxis$scale$map : 0;\n if (Array.isArray(value) && value.length >= 2) {\n isRange = true;\n }\n points.push(_objectSpread(_objectSpread({}, polarToCartesian(cx, cy, radius, angle)), {}, {\n // getValueByDataKey does not validate the output type\n name,\n // getValueByDataKey does not validate the output type\n value,\n cx,\n cy,\n radius,\n angle,\n payload: entry\n }));\n });\n var baseLinePoints = [];\n if (isRange) {\n points.forEach(point => {\n if (Array.isArray(point.value)) {\n var _radiusAxis$scale$map2;\n var baseValue = point.value[0];\n var radius = isNullish(baseValue) ? 0 : (_radiusAxis$scale$map2 = radiusAxis.scale.map(baseValue)) !== null && _radiusAxis$scale$map2 !== void 0 ? _radiusAxis$scale$map2 : 0;\n baseLinePoints.push(_objectSpread(_objectSpread({}, point), {}, {\n radius\n }, polarToCartesian(cx, cy, radius, point.angle)));\n } else {\n baseLinePoints.push(point);\n }\n });\n }\n return {\n points,\n isRange,\n baseLinePoints\n };\n}\nfunction RadarLabelListProvider(_ref4) {\n var {\n showLabels,\n points,\n children\n } = _ref4;\n /*\n * Radar provides a Cartesian label list context. Do we want to also provide a polar label list context?\n * That way, users can choose to use polar positions for the Radar labels.\n */\n // const labelListEntries: ReadonlyArray<PolarLabelListEntry> = points.map(\n // (point): PolarLabelListEntry => ({\n // value: point.value,\n // payload: point.payload,\n // parentViewBox: undefined,\n // clockWise: false,\n // viewBox: {\n // cx: point.cx,\n // cy: point.cy,\n // innerRadius: point.radius,\n // outerRadius: point.radius,\n // startAngle: point.angle,\n // endAngle: point.angle,\n // clockWise: false,\n // },\n // }),\n // );\n\n var labelListEntries = points.map(point => {\n var _point$value;\n var viewBox = {\n x: point.x,\n y: point.y,\n width: 0,\n lowerWidth: 0,\n upperWidth: 0,\n height: 0\n };\n return _objectSpread(_objectSpread({}, viewBox), {}, {\n value: (_point$value = point.value) !== null && _point$value !== void 0 ? _point$value : '',\n payload: point.payload,\n parentViewBox: undefined,\n viewBox,\n fill: undefined\n });\n });\n return /*#__PURE__*/React.createElement(CartesianLabelListContextProvider, {\n value: showLabels ? labelListEntries : undefined\n }, children);\n}\nfunction StaticPolygon(_ref5) {\n var {\n points,\n baseLinePoints,\n props\n } = _ref5;\n if (points == null) {\n return null;\n }\n var {\n shape,\n isRange,\n connectNulls\n } = props;\n var handleMouseEnter = e => {\n var {\n onMouseEnter\n } = props;\n if (onMouseEnter) {\n onMouseEnter(props, e);\n }\n };\n var handleMouseLeave = e => {\n var {\n onMouseLeave\n } = props;\n if (onMouseLeave) {\n onMouseLeave(props, e);\n }\n };\n var radar;\n if (/*#__PURE__*/React.isValidElement(shape)) {\n radar = /*#__PURE__*/React.cloneElement(shape, _objectSpread(_objectSpread({}, props), {}, {\n points\n }));\n } else if (typeof shape === 'function') {\n radar = shape(_objectSpread(_objectSpread({}, props), {}, {\n points\n }));\n } else {\n radar = /*#__PURE__*/React.createElement(Polygon, _extends({}, svgPropertiesAndEvents(props), {\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n points: points,\n baseLinePoints: isRange ? baseLinePoints : undefined,\n connectNulls: connectNulls\n }));\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-radar-polygon\"\n }, radar, /*#__PURE__*/React.createElement(RadarDotsWrapper, {\n props: props,\n points: points\n }));\n}\nvar interpolatePolarPoint = (prevPoints, prevPointsDiffFactor, t) => (entry, index) => {\n var prev = prevPoints && prevPoints[Math.floor(index * prevPointsDiffFactor)];\n if (prev) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolate(prev.x, entry.x, t),\n y: interpolate(prev.y, entry.y, t)\n });\n }\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolate(entry.cx, entry.x, t),\n y: interpolate(entry.cy, entry.y, t)\n });\n};\nfunction PolygonWithAnimation(_ref6) {\n var {\n props,\n previousPointsRef,\n previousBaseLinePointsRef\n } = _ref6;\n var {\n points,\n baseLinePoints,\n isAnimationActive,\n animationBegin,\n animationDuration,\n animationEasing,\n onAnimationEnd,\n onAnimationStart\n } = props;\n var prevPoints = previousPointsRef.current;\n var prevBaseLinePoints = previousBaseLinePointsRef.current;\n var prevPointsDiffFactor = prevPoints ? prevPoints.length / points.length : 1;\n var prevBaseLinePointsDiffFactor = prevBaseLinePoints ? prevBaseLinePoints.length / baseLinePoints.length : 1;\n var animationId = useAnimationId(props, 'recharts-radar-');\n var [isAnimating, setIsAnimating] = useState(false);\n var showLabels = !isAnimating;\n var handleAnimationEnd = useCallback(() => {\n if (typeof onAnimationEnd === 'function') {\n onAnimationEnd();\n }\n setIsAnimating(false);\n }, [onAnimationEnd]);\n var handleAnimationStart = useCallback(() => {\n if (typeof onAnimationStart === 'function') {\n onAnimationStart();\n }\n setIsAnimating(true);\n }, [onAnimationStart]);\n return /*#__PURE__*/React.createElement(RadarLabelListProvider, {\n showLabels: showLabels,\n points: points\n }, /*#__PURE__*/React.createElement(JavascriptAnimate, {\n animationId: animationId,\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n key: \"radar-\".concat(animationId),\n onAnimationEnd: handleAnimationEnd,\n onAnimationStart: handleAnimationStart\n }, t => {\n var stepData = t === 1 ? points : points.map(interpolatePolarPoint(prevPoints, prevPointsDiffFactor, t));\n var stepBaseLinePoints = t === 1 ? baseLinePoints : baseLinePoints === null || baseLinePoints === void 0 ? void 0 : baseLinePoints.map(interpolatePolarPoint(prevBaseLinePoints, prevBaseLinePointsDiffFactor, t));\n if (t > 0) {\n // eslint-disable-next-line no-param-reassign\n previousPointsRef.current = stepData;\n // eslint-disable-next-line no-param-reassign\n previousBaseLinePointsRef.current = stepBaseLinePoints;\n }\n return /*#__PURE__*/React.createElement(StaticPolygon, {\n points: stepData,\n baseLinePoints: stepBaseLinePoints,\n props: props\n });\n }), /*#__PURE__*/React.createElement(LabelListFromLabelProp, {\n label: props.label\n }), props.children);\n}\nfunction RenderPolygon(props) {\n var previousPointsRef = useRef(undefined);\n var previousBaseLinePointsRef = useRef(undefined);\n return /*#__PURE__*/React.createElement(PolygonWithAnimation, {\n props: props,\n previousPointsRef: previousPointsRef,\n previousBaseLinePointsRef: previousBaseLinePointsRef\n });\n}\nexport var defaultRadarProps = {\n activeDot: true,\n angleAxisId: 0,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease',\n dot: false,\n hide: false,\n isAnimationActive: 'auto',\n label: false,\n legendType: 'rect',\n radiusAxisId: 0,\n zIndex: DefaultZIndexes.area\n};\nfunction RadarWithState(props) {\n var {\n hide,\n className,\n points\n } = props;\n if (hide) {\n return null;\n }\n var layerClass = clsx('recharts-radar', className);\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: props.zIndex\n }, /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, /*#__PURE__*/React.createElement(RenderPolygon, props)), /*#__PURE__*/React.createElement(ActivePoints, {\n points: points,\n mainColor: getLegendItemColor(props.stroke, props.fill),\n itemDataKey: props.dataKey,\n activeDot: props.activeDot\n }));\n}\nfunction RadarImpl(props) {\n var isPanorama = useIsPanorama();\n var radarPoints = useAppSelector(state => selectRadarPoints(state, props.radiusAxisId, props.angleAxisId, isPanorama, props.id));\n if ((radarPoints === null || radarPoints === void 0 ? void 0 : radarPoints.points) == null) {\n return null;\n }\n return /*#__PURE__*/React.createElement(RadarWithState, _extends({}, props, {\n points: radarPoints === null || radarPoints === void 0 ? void 0 : radarPoints.points,\n baseLinePoints: radarPoints === null || radarPoints === void 0 ? void 0 : radarPoints.baseLinePoints,\n isRange: radarPoints === null || radarPoints === void 0 ? void 0 : radarPoints.isRange\n }));\n}\n\n/**\n * @consumes PolarChartContext\n * @provides LabelListContext\n */\nexport function Radar(outsideProps) {\n var props = resolveDefaultProps(outsideProps, defaultRadarProps);\n return /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {\n id: props.id,\n type: \"radar\"\n }, id => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetPolarGraphicalItem, {\n type: \"radar\",\n id: id,\n data: undefined // Radar does not have data prop, why?\n ,\n dataKey: props.dataKey,\n hide: props.hide,\n angleAxisId: props.angleAxisId,\n radiusAxisId: props.radiusAxisId\n }), /*#__PURE__*/React.createElement(SetPolarLegendPayload, {\n legendPayload: computeLegendPayloadFromRadarSectors(props)\n }), /*#__PURE__*/React.createElement(SetRadarTooltipEntrySettings, {\n dataKey: props.dataKey,\n stroke: props.stroke,\n strokeWidth: props.strokeWidth,\n fill: props.fill,\n name: props.name,\n hide: props.hide,\n tooltipType: props.tooltipType,\n id: id\n }), /*#__PURE__*/React.createElement(RadarImpl, _extends({}, props, {\n id: id\n }))));\n}\nRadar.displayName = 'Radar';", "var _excluded = [\"points\"];\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; }\nimport * as React from 'react';\nimport { cloneElement, isValidElement } from 'react';\nimport { clsx } from 'clsx';\nimport { Dot } from '../shape/Dot';\nimport { Layer } from '../container/Layer';\nimport { isClipDot } from '../util/ReactUtils';\nimport { svgPropertiesAndEventsFromUnknown } from '../util/svgPropertiesAndEvents';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nfunction DotItem(_ref) {\n var {\n option,\n dotProps,\n className\n } = _ref;\n if (/*#__PURE__*/isValidElement(option)) {\n // @ts-expect-error we can't type check element cloning properly\n return /*#__PURE__*/cloneElement(option, dotProps);\n }\n if (typeof option === 'function') {\n return option(dotProps);\n }\n var finalClassName = clsx(className, typeof option !== 'boolean' ? option.className : '');\n var _ref2 = dotProps !== null && dotProps !== void 0 ? dotProps : {},\n {\n points\n } = _ref2,\n props = _objectWithoutProperties(_ref2, _excluded);\n return /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n className: finalClassName\n }));\n}\nfunction shouldRenderDots(points, dot) {\n if (points == null) {\n return false;\n }\n if (dot) {\n return true;\n }\n return points.length === 1;\n}\nexport function Dots(_ref3) {\n var {\n points,\n dot,\n className,\n dotClassName,\n dataKey,\n baseProps,\n needClip,\n clipPathId,\n zIndex = DefaultZIndexes.scatter\n } = _ref3;\n if (!shouldRenderDots(points, dot)) {\n return null;\n }\n var clipDot = isClipDot(dot);\n var customDotProps = svgPropertiesAndEventsFromUnknown(dot);\n var dots = points.map((entry, i) => {\n var _entry$x, _entry$y;\n var dotProps = _objectSpread(_objectSpread(_objectSpread({\n r: 3\n }, baseProps), customDotProps), {}, {\n index: i,\n cx: (_entry$x = entry.x) !== null && _entry$x !== void 0 ? _entry$x : undefined,\n cy: (_entry$y = entry.y) !== null && _entry$y !== void 0 ? _entry$y : undefined,\n dataKey,\n value: entry.value,\n payload: entry.payload,\n points\n });\n return /*#__PURE__*/React.createElement(DotItem, {\n key: \"dot-\".concat(i),\n option: dot,\n dotProps: dotProps,\n className: dotClassName\n });\n });\n var layerProps = {};\n if (needClip && clipPathId != null) {\n layerProps.clipPath = \"url(#clipPath-\".concat(clipDot ? '' : 'dots-').concat(clipPathId, \")\");\n }\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: zIndex\n }, /*#__PURE__*/React.createElement(Layer, _extends({\n className: className\n }, layerProps), dots));\n}", "function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport * as React from 'react';\nimport { cloneElement, isValidElement } from 'react';\nimport { adaptEventHandlers } from '../util/types';\nimport { Dot } from '../shape/Dot';\nimport { Layer } from '../container/Layer';\nimport { useAppSelector } from '../state/hooks';\nimport { selectActiveTooltipIndex } from '../state/selectors/tooltipSelectors';\nimport { useActiveTooltipDataPoints } from '../hooks';\nimport { isNullish } from '../util/DataUtils';\nimport { svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nvar ActivePoint = _ref => {\n var {\n point,\n childIndex,\n mainColor,\n activeDot,\n dataKey,\n clipPath\n } = _ref;\n if (activeDot === false || point.x == null || point.y == null) {\n return null;\n }\n var dotPropsTyped = {\n index: childIndex,\n dataKey,\n cx: point.x,\n cy: point.y,\n r: 4,\n fill: mainColor !== null && mainColor !== void 0 ? mainColor : 'none',\n strokeWidth: 2,\n stroke: '#fff',\n payload: point.payload,\n value: point.value\n };\n\n // @ts-expect-error svgPropertiesNoEventsFromUnknown(activeDot) is contributing unknown props\n var dotProps = _objectSpread(_objectSpread(_objectSpread({}, dotPropsTyped), svgPropertiesNoEventsFromUnknown(activeDot)), adaptEventHandlers(activeDot));\n var dot;\n if (/*#__PURE__*/isValidElement(activeDot)) {\n // @ts-expect-error we're improperly typing events\n dot = /*#__PURE__*/cloneElement(activeDot, dotProps);\n } else if (typeof activeDot === 'function') {\n dot = activeDot(dotProps);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, dotProps);\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-active-dot\",\n clipPath: clipPath\n }, dot);\n};\nexport function ActivePoints(_ref2) {\n var {\n points,\n mainColor,\n activeDot,\n itemDataKey,\n clipPath,\n zIndex = DefaultZIndexes.activeDot\n } = _ref2;\n var activeTooltipIndex = useAppSelector(selectActiveTooltipIndex);\n var activeDataPoints = useActiveTooltipDataPoints();\n if (points == null || activeDataPoints == null) {\n return null;\n }\n var activePoint = points.find(p => activeDataPoints.includes(p.payload));\n if (isNullish(activePoint)) {\n return null;\n }\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: zIndex\n }, /*#__PURE__*/React.createElement(ActivePoint, {\n point: activePoint,\n childIndex: Number(activeTooltipIndex),\n mainColor: mainColor,\n dataKey: itemDataKey,\n activeDot: activeDot,\n clipPath: clipPath\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 { createSlice, prepareAutoBatched } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\n\n/**\n * @inline\n */\n\nexport var defaultAxisId = 0;\n\n/**\n * Properties shared in X, Y, and Z axes.\n * User defined axis settings, coming from props.\n */\n\n/**\n * Controls how Recharts calculates \"nice\" tick values for numerical axes.\n *\n * - `'none'`: Recharts does not apply any tick-rounding algorithm; tick positions are\n * determined entirely by d3, evenly spaced but not rounded to human-friendly numbers.\n * There is no domain-extension logic applied in this mode.\n *\n * - `'auto'` *(default)*: Recharts automatically decides whether and how to apply tick\n * niceties based on the domain definition. When the domain contains an `'auto'` keyword,\n * Recharts uses the `'adaptive'` algorithm and may extend the domain slightly to\n * produce clean tick labels. Otherwise, it applies the same algorithm while keeping\n * ticks within the fixed domain. This mirrors the default behavior from Recharts v2.\n *\n * - `'adaptive'`: Always applies the space-efficient algorithm (`getAdaptiveStep`),\n * which fills the available range as densely as possible while still rounding steps\n * to reasonable numbers (e.g. 10, 20, 25). May produce less \"round-looking\" labels\n * than `'snap125'`, but wastes less space. The domain-extension logic still applies\n * when the domain contains an `'auto'` keyword.\n *\n * - `'snap125'`: Always applies the round-numbers algorithm (`getSnap125Step`), which\n * snaps step sizes to values from the set {1, 2, 2.5, 5} × 10ⁿ. Produces very\n * human-friendly labels (e.g. 0, 5, 10, 15, 20) but may leave blank space at the\n * edges of the chart. The domain-extension logic still applies when the domain\n * contains an `'auto'` keyword.\n *\n * @see {@link https://recharts.github.io/guide/axisTicks/}\n * @inline\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 replaceXAxis: {\n reducer(state, action) {\n var {\n prev,\n next\n } = action.payload;\n if (state.xAxis[prev.id] !== undefined) {\n if (prev.id !== next.id) {\n delete state.xAxis[prev.id];\n }\n state.xAxis[next.id] = castDraft(next);\n }\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 replaceYAxis: {\n reducer(state, action) {\n var {\n prev,\n next\n } = action.payload;\n if (state.yAxis[prev.id] !== undefined) {\n if (prev.id !== next.id) {\n delete state.yAxis[prev.id];\n }\n state.yAxis[next.id] = castDraft(next);\n }\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 replaceZAxis: {\n reducer(state, action) {\n var {\n prev,\n next\n } = action.payload;\n if (state.zAxis[prev.id] !== undefined) {\n if (prev.id !== next.id) {\n delete state.zAxis[prev.id];\n }\n state.zAxis[next.id] = castDraft(next);\n }\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$;\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$ = history[0]) !== null && _history$ !== void 0 ? _history$ : 0)) <= 1) {\n return;\n }\n var newHistory = [...history, width].slice(-3);\n state.yAxis[id] = _objectSpread(_objectSpread({}, axis), {}, {\n width,\n widthHistory: newHistory\n });\n }\n }\n }\n});\nexport var {\n addXAxis,\n replaceXAxis,\n removeXAxis,\n addYAxis,\n replaceYAxis,\n removeYAxis,\n addZAxis,\n replaceZAxis,\n removeZAxis,\n updateYAxisWidth\n} = cartesianAxisSlice.actions;\nexport var cartesianAxisReducer = cartesianAxisSlice.reducer;", "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, selectAxisInverseScale, selectAxisInverseDataSnapScale, selectAxisInverseTickSnapScale, selectAxisScale, selectAxisWithScale, selectRenderedTicksOfAxis } from './state/selectors/axisSelectors';\nimport { useAppSelector } from './state/hooks';\nimport { useIsPanorama } from './context/PanoramaContext';\nimport { selectActiveLabel, selectActiveTooltipCoordinate, selectActiveTooltipDataPoints, selectIsTooltipActive } 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 * A function that converts data values to pixel coordinates.\n * @param value - The data value to convert (number, string, or category).\n * @param options - Optional configuration for banded scales.\n * @param options.position - Position within a band: 'start', 'middle', or 'end'.\n * @returns The pixel coordinate, or `undefined` if the value is not in the domain.\n */\n\n/**\n * A function that converts pixel coordinates back to data values.\n * @param pixelValue - The pixel coordinate to convert.\n * @returns The closest data value in the domain.\n */\n\n/**\n * Returns a function to convert data values to pixel coordinates for an {@link XAxis}.\n *\n * This is useful for positioning annotations, custom shapes, or other elements\n * at specific data points on the chart.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist.\n *\n * @example\n * ```tsx\n * const xScale = useXAxisScale();\n * if (xScale) {\n * const pixelX = xScale('Page A'); // Returns the pixel x-coordinate for 'Page A'\n * }\n * ```\n *\n * @param xAxisId The `xAxisId` of the XAxis. Defaults to `0` if not provided.\n * @returns A scale function that maps data values to pixel coordinates, or `undefined`.\n * @since 3.8\n */\nexport var useXAxisScale = function useXAxisScale() {\n var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n var isPanorama = useIsPanorama();\n var scale = useAppSelector(state => selectAxisScale(state, 'xAxis', xAxisId, isPanorama));\n return scale === null || scale === void 0 ? void 0 : scale.map;\n};\n\n/**\n * Returns a function to convert data values to pixel coordinates for a {@link YAxis}.\n *\n * This is useful for positioning annotations, custom shapes, or other elements\n * at specific data points on the chart.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist.\n *\n * @example\n * ```tsx\n * const yScale = useYAxisScale();\n * if (yScale) {\n * const pixelY = yScale(1500); // Returns the pixel y-coordinate for value 1500\n * }\n * ```\n *\n * @param yAxisId The `yAxisId` of the YAxis. Defaults to `0` if not provided.\n * @returns A scale function that maps data values to pixel coordinates, or `undefined`.\n * @since 3.8\n */\nexport var useYAxisScale = function useYAxisScale() {\n var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n var isPanorama = useIsPanorama();\n var scale = useAppSelector(state => selectAxisScale(state, 'yAxis', yAxisId, isPanorama));\n return scale === null || scale === void 0 ? void 0 : scale.map;\n};\n\n/**\n * Returns a function to convert pixel coordinates back to data values for an {@link XAxis}.\n *\n * This is useful for implementing interactions like click-to-add-annotation,\n * drag interactions, or tooltips that need to determine what data point\n * corresponds to a mouse position.\n *\n * For continuous (numerical) scales, returns an interpolated value.\n * For categorical scales, returns the closest category in the domain - which is the same behaviour as {@link useXAxisInverseDataSnapScale}.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist.\n *\n * @example\n * ```tsx\n * const xInverseScale = useXAxisInverseScale();\n * if (xInverseScale) {\n * const dataValue = xInverseScale(150); // Returns the data value at pixel x=150\n * }\n * ```\n *\n * @param xAxisId The `xAxisId` of the XAxis. Defaults to `0` if not provided.\n * @returns An inverse scale function that maps pixel coordinates to data values, or `undefined`.\n * @since 3.8\n */\nexport var useXAxisInverseScale = function useXAxisInverseScale() {\n var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n var isPanorama = useIsPanorama();\n return useAppSelector(state => selectAxisInverseScale(state, 'xAxis', xAxisId, isPanorama));\n};\n\n/**\n * Returns a function to convert pixel coordinates back to data values for an {@link XAxis},\n * but snapping to the closest data point.\n *\n * This is similar to {@link useXAxisInverseScale}, but instead of returning the exact data value\n * at the pixel position (interpolation), it returns the value of the closest data point.\n *\n * This is useful for implementing interactions where you want to select the closest data point\n * rather than an exact value or a tick.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist.\n *\n * @param xAxisId The `xAxisId` of the XAxis. Defaults to `0` if not provided.\n * @returns An inverse scale function that maps pixel coordinates to the closest data value, or `undefined`.\n * @since 3.8\n */\nexport var useXAxisInverseDataSnapScale = function useXAxisInverseDataSnapScale() {\n var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n var isPanorama = useIsPanorama();\n return useAppSelector(state => selectAxisInverseDataSnapScale(state, 'xAxis', xAxisId, isPanorama));\n};\n\n/**\n * Returns a function to convert pixel coordinates back to data values for an {@link XAxis},\n * but snapping to the closest axis tick.\n *\n * This is similar to {@link useXAxisInverseScale}, but instead of returning the exact data value\n * at the pixel position (interpolation), it returns the value of the closest tick.\n *\n * This is useful for implementing interactions where you want to select the closest tick\n * rather than an exact value or a data point.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist.\n *\n * @param xAxisId The `xAxisId` of the XAxis. Defaults to `0` if not provided.\n * @returns An inverse scale function that maps pixel coordinates to the closest tick value, or `undefined`.\n * @since 3.8\n */\nexport var useXAxisInverseTickSnapScale = function useXAxisInverseTickSnapScale() {\n var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n return useAppSelector(state => selectAxisInverseTickSnapScale(state, 'xAxis', xAxisId));\n};\n\n/**\n * Returns a function to convert pixel coordinates back to data values for a {@link YAxis}.\n *\n * This is useful for implementing interactions like click-to-add-annotation,\n * drag interactions, or tooltips that need to determine what data point\n * corresponds to a mouse position.\n *\n * For continuous (numerical) scales, returns an interpolated value.\n * For categorical scales, returns the closest category in the domain - which is the same behaviour as {@link useYAxisInverseDataSnapScale}.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist.\n *\n * @example\n * ```tsx\n * const yInverseScale = useYAxisInverseScale();\n * if (yInverseScale) {\n * const dataValue = yInverseScale(200); // Returns the data value at pixel y=200\n * }\n * ```\n *\n * @param yAxisId The `yAxisId` of the YAxis. Defaults to `0` if not provided.\n * @returns An inverse scale function that maps pixel coordinates to data values, or `undefined`.\n * @since 3.8\n */\nexport var useYAxisInverseScale = function useYAxisInverseScale() {\n var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n var isPanorama = useIsPanorama();\n return useAppSelector(state => selectAxisInverseScale(state, 'yAxis', yAxisId, isPanorama));\n};\n\n/**\n * Returns a function to convert pixel coordinates back to data values for a {@link YAxis},\n * but snapping to the closest data point.\n *\n * This is similar to {@link useYAxisInverseScale}, but instead of returning the exact data value\n * at the pixel position (interpolation), it returns the value of the closest data point.\n *\n * This is useful for implementing interactions where you want to select the closest data point\n * rather than an exact value or a tick.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist.\n *\n * @param yAxisId The `yAxisId` of the YAxis. Defaults to `0` if not provided.\n * @returns An inverse scale function that maps pixel coordinates to the closest data value, or `undefined`.\n * @since 3.8\n */\nexport var useYAxisInverseDataSnapScale = function useYAxisInverseDataSnapScale() {\n var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n var isPanorama = useIsPanorama();\n return useAppSelector(state => selectAxisInverseDataSnapScale(state, 'yAxis', yAxisId, isPanorama));\n};\n\n/**\n * Returns a function to convert pixel coordinates back to data values for a {@link YAxis},\n * but snapping to the closest axis tick.\n *\n * This is similar to {@link useYAxisInverseScale}, but instead of returning the exact data value\n * at the pixel position (interpolation), it returns the value of the closest tick.\n *\n * This is useful for implementing interactions where you want to select the closest tick\n * rather than an exact value or a data point.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist.\n *\n * @param yAxisId The `yAxisId` of the YAxis. Defaults to `0` if not provided.\n * @returns An inverse scale function that maps pixel coordinates to the closest tick value, or `undefined`.\n * @since 3.8\n */\nexport var useYAxisInverseTickSnapScale = function useYAxisInverseTickSnapScale() {\n var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n return useAppSelector(state => selectAxisInverseTickSnapScale(state, 'yAxis', yAxisId));\n};\n\n/**\n * Returns the ticks of an {@link XAxis}.\n *\n * This hook is useful for accessing the calculated ticks of an XAxis.\n * The ticks are the same as the ones rendered by the XAxis component.\n *\n * @param xAxisId The `xAxisId` of the XAxis. Defaults to `0` if not provided.\n * @returns An array of ticks, or `undefined` if the axis doesn't exist or hasn't been calculated yet.\n * @since 3.8\n */\nexport var useXAxisTicks = function useXAxisTicks() {\n var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n return useAppSelector(state => selectRenderedTicksOfAxis(state, 'xAxis', xAxisId));\n};\n\n/**\n * Returns the ticks of a {@link YAxis}.\n *\n * This hook is useful for accessing the calculated ticks of a YAxis.\n * The ticks are the same as the ones rendered by the YAxis component.\n *\n * @param yAxisId The `yAxisId` of the YAxis. Defaults to `0` if not provided.\n * @returns An array of ticks, or `undefined` if the axis doesn't exist or hasn't been calculated yet.\n * @since 3.8\n */\nexport var useYAxisTicks = function useYAxisTicks() {\n var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;\n return useAppSelector(state => selectRenderedTicksOfAxis(state, 'yAxis', yAxisId));\n};\n\n/**\n * Data point with x and y values that can be converted to pixel coordinates.\n * The x and y values should be in the same format as your chart data.\n */\n\n/**\n * Converts a data point (in data coordinates) to pixel coordinates.\n *\n * This hook is useful for positioning annotations, custom shapes, or other elements\n * at specific data points on the chart. It uses the axis scales to convert\n * data values to their corresponding pixel positions within the chart area.\n *\n * This hook must be used within a chart context (inside a {@link LineChart}, {@link BarChart}, etc.).\n * Returns `undefined` if used outside a chart context, or if the axes don't exist, or if the data point\n * cannot be converted (e.g., if the data values are outside the axis domains).\n *\n * This is a convenience hook that combines {@link useXAxisScale} and {@link useYAxisScale} together in a single call.\n *\n * @example\n * ```tsx\n * // Position a marker at data point { x: 'Page C', y: 2500 }\n * const pixelCoords = useCartesianScale({ x: 'Page C', y: 2500 });\n * if (pixelCoords) {\n * return <circle cx={pixelCoords.x} cy={pixelCoords.y} r={5} fill=\"red\" />;\n * }\n * ```\n *\n * @param dataPoint The data point with x and y values in data coordinates.\n * @param xAxisId The `xAxisId` of the X-axis. Defaults to `0` if not provided.\n * @param yAxisId The `yAxisId` of the Y-axis. Defaults to `0` if not provided.\n * @returns The pixel x,y coordinates, or `undefined` if conversion is not possible.\n * @since 3.8\n */\nexport var useCartesianScale = function useCartesianScale(dataPoint) {\n var xAxisId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultAxisId;\n var yAxisId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultAxisId;\n var xScale = useXAxisScale(xAxisId);\n var yScale = useYAxisScale(yAxisId);\n if (xScale == null || yScale == null) {\n return undefined;\n }\n var pixelX = xScale(dataPoint.x);\n var pixelY = yScale(dataPoint.y);\n if (pixelX == null || pixelY == null) {\n return undefined;\n }\n return {\n x: pixelX,\n y: pixelY\n };\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 ActiveLabel\n * @since 3.0\n */\nexport var useActiveTooltipLabel = () => {\n return useAppSelector(selectActiveLabel);\n};\n\n/**\n * Returns the offset of the chart in pixels.\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 *\n * The offset includes:\n *\n * - Margins\n * - Width and height of the axes\n * - Width and height of the legend\n * - Brush height\n *\n * If you are interested in the margin alone, use {@link useMargin} instead.\n *\n * The offset is independent of charts position on the page, meaning it does not change as the chart is scrolled or resized.\n *\n * It is also independent of the scale and zoom, meaning that as the user zooms in and out,\n * the numbers will not change as the chart gets visually larger or smaller.\n *\n * This hook must be used within a chart context (inside a `<LineChart>`, `<BarChart>`, etc.).\n * This hook returns `undefined` if used outside a chart context.\n *\n * @returns Offset of the chart in pixels, or undefined if used outside a chart context.\n * @since 3.1\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 * Plot area `width` and `height` are the dimensions in pixels;\n * `x` and `y` are the coordinates of the top-left corner of the plot area relative to the chart container.\n *\n * They are also independent of the scale and zoom, meaning that as the user zooms in and out,\n * the plot area dimensions will not change as the chart gets visually larger or smaller.\n *\n * This hook must be used within a chart context (inside a `<LineChart>`, `<BarChart>`, etc.).\n * This hook returns `undefined` if used outside a chart context.\n *\n * @returns Plot area of the chart in pixels, or undefined if used outside a chart context.\n * @since 3.1\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 * @since 3.2\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 * @since 3.2\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};\n\n/**\n * Returns true if the {@link Tooltip} is currently active (visible).\n *\n * Returns false if the Tooltip is not active or if used outside a chart context.\n *\n * Recharts only allows one Tooltip per chart, so this hook does not take any parameters.\n * Weird things may happen if you have multiple Tooltip components in the same chart so please don't do that.\n *\n * @returns {boolean} True if the Tooltip is active, false otherwise.\n * @since 3.7\n */\nexport var useIsTooltipActive = () => {\n var _useAppSelector;\n return (_useAppSelector = useAppSelector(selectIsTooltipActive)) !== null && _useAppSelector !== void 0 ? _useAppSelector : false;\n};\n\n/**\n * Returns the Cartesian `x` + `y` coordinates of the active {@link Tooltip}.\n *\n * Returns undefined if there is no active user interaction or if used outside a chart context.\n *\n * Recharts only allows one Tooltip per chart, so this hook does not take any parameters.\n * Weird things may happen if you have multiple Tooltip components in the same chart so please don't do that.\n *\n * @returns {Coordinate | undefined} The coordinate of the active Tooltip, or undefined.\n * @since 3.7\n */\nexport var useActiveTooltipCoordinate = () => {\n var coordinate = useAppSelector(selectActiveTooltipCoordinate);\n if (coordinate == null) {\n return undefined;\n }\n return {\n x: coordinate.x,\n y: coordinate.y\n };\n};", "function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { createSelector } from 'reselect';\nimport { computeRadarPoints } from '../../polar/Radar';\nimport { selectPolarAxisScale, selectPolarAxisTicks } from './polarScaleSelectors';\nimport { selectAngleAxis, selectPolarViewBox, selectRadiusAxis } from './polarAxisSelectors';\nimport { selectChartDataAndAlwaysIgnoreIndexes } from './dataSelectors';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { getBandSizeOfAxis, isCategoricalAxis } from '../../util/ChartUtils';\nimport { selectUnfilteredPolarItems } from './polarSelectors';\nvar selectRadiusAxisScale = (state, radiusAxisId) => selectPolarAxisScale(state, 'radiusAxis', radiusAxisId);\nvar selectRadiusAxisForRadar = createSelector([selectRadiusAxisScale], scale => {\n if (scale == null) {\n return undefined;\n }\n return {\n scale\n };\n});\nexport var selectRadiusAxisForBandSize = createSelector([selectRadiusAxis, selectRadiusAxisScale], (axisSettings, scale) => {\n if (axisSettings == null || scale == null) {\n return undefined;\n }\n return _objectSpread(_objectSpread({}, axisSettings), {}, {\n scale\n });\n});\nvar selectRadiusAxisTicks = (state, radiusAxisId, _angleAxisId, isPanorama) => {\n return selectPolarAxisTicks(state, 'radiusAxis', radiusAxisId, isPanorama);\n};\nvar selectAngleAxisForRadar = (state, _radiusAxisId, angleAxisId) => selectAngleAxis(state, angleAxisId);\nvar selectPolarAxisScaleForRadar = (state, _radiusAxisId, angleAxisId) => selectPolarAxisScale(state, 'angleAxis', angleAxisId);\nexport var selectAngleAxisForBandSize = createSelector([selectAngleAxisForRadar, selectPolarAxisScaleForRadar], (axisSettings, scale) => {\n if (axisSettings == null || scale == null) {\n return undefined;\n }\n return _objectSpread(_objectSpread({}, axisSettings), {}, {\n scale\n });\n});\nvar selectAngleAxisTicks = (state, _radiusAxisId, angleAxisId, isPanorama) => {\n return selectPolarAxisTicks(state, 'angleAxis', angleAxisId, isPanorama);\n};\nexport var selectAngleAxisWithScaleAndViewport = createSelector([selectAngleAxisForRadar, selectPolarAxisScaleForRadar, selectPolarViewBox], (axisOptions, scale, polarViewBox) => {\n if (polarViewBox == null || scale == null) {\n return undefined;\n }\n return {\n scale,\n type: axisOptions.type,\n dataKey: axisOptions.dataKey,\n cx: polarViewBox.cx,\n cy: polarViewBox.cy\n };\n});\nvar pickId = (_state, _radiusAxisId, _angleAxisId, _isPanorama, radarId) => radarId;\nvar selectBandSizeOfAxis = createSelector([selectChartLayout, selectRadiusAxisForBandSize, selectRadiusAxisTicks, selectAngleAxisForBandSize, selectAngleAxisTicks], (layout, radiusAxis, radiusAxisTicks, angleAxis, angleAxisTicks) => {\n if (isCategoricalAxis(layout, 'radiusAxis')) {\n return getBandSizeOfAxis(radiusAxis, radiusAxisTicks, false);\n }\n return getBandSizeOfAxis(angleAxis, angleAxisTicks, false);\n});\nvar selectSynchronisedRadarDataKey = createSelector([selectUnfilteredPolarItems, pickId], (graphicalItems, radarId) => {\n if (graphicalItems == null) {\n return undefined;\n }\n // Find the radar item with the given radarId\n var pgis = graphicalItems.find(item => item.type === 'radar' && radarId === item.id);\n // If found, return its dataKey\n return pgis === null || pgis === void 0 ? void 0 : pgis.dataKey;\n});\nexport var selectRadarPoints = createSelector([selectRadiusAxisForRadar, selectAngleAxisWithScaleAndViewport, selectChartDataAndAlwaysIgnoreIndexes, selectSynchronisedRadarDataKey, selectBandSizeOfAxis], (radiusAxis, angleAxis, _ref, dataKey, bandSize) => {\n var {\n chartData,\n dataStartIndex,\n dataEndIndex\n } = _ref;\n if (radiusAxis == null || angleAxis == null || chartData == null || bandSize == null || dataKey == null) {\n return undefined;\n }\n var displayedData = chartData.slice(dataStartIndex, dataEndIndex + 1);\n return computeRadarPoints({\n radiusAxis,\n angleAxis,\n displayedData,\n dataKey,\n bandSize\n });\n});", "var _excluded = [\"shape\", \"activeShape\", \"cornerRadius\", \"id\"],\n _excluded2 = [\"onMouseEnter\", \"onClick\", \"onMouseLeave\"],\n _excluded3 = [\"value\", \"background\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport { PureComponent, useCallback, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { parseCornerRadius, RadialBarSector } from '../util/RadialBarUtils';\nimport { Layer } from '../container/Layer';\nimport { findAllByType } from '../util/ReactUtils';\nimport { LabelListFromLabelProp, PolarLabelListContextProvider } from '../component/LabelList';\nimport { Cell } from '../component/Cell';\nimport { interpolate, mathSign, noop } from '../util/DataUtils';\nimport { getCateCoordinateOfBar, getNormalizedStackId, getTooltipNameProp, getValueByDataKey, truncateByDomain } from '../util/ChartUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { useMouseClickItemDispatch, useMouseEnterItemDispatch, useMouseLeaveItemDispatch } from '../context/tooltipContext';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { selectRadialBarLegendPayload, selectRadialBarSectors } from '../state/selectors/radialBarSelectors';\nimport { useAppSelector } from '../state/hooks';\nimport { selectActiveTooltipIndex } from '../state/selectors/tooltipSelectors';\nimport { SetPolarLegendPayload } from '../state/SetLegendPayload';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\nimport { SetPolarGraphicalItem } from '../state/SetGraphicalItem';\nimport { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { JavascriptAnimate } from '../animation/JavascriptAnimate';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { getZIndexFromUnknown } from '../zIndex/getZIndexFromUnknown';\nvar STABLE_EMPTY_ARRAY = [];\nfunction RadialBarLabelListProvider(_ref) {\n var {\n showLabels,\n sectors,\n children\n } = _ref;\n var labelListEntries = sectors.map(sector => ({\n value: sector.value,\n payload: sector.payload,\n parentViewBox: undefined,\n clockWise: false,\n viewBox: {\n cx: sector.cx,\n cy: sector.cy,\n innerRadius: sector.innerRadius,\n outerRadius: sector.outerRadius,\n startAngle: sector.startAngle,\n endAngle: sector.endAngle,\n clockWise: false\n },\n fill: sector.fill\n }));\n return /*#__PURE__*/React.createElement(PolarLabelListContextProvider, {\n value: showLabels ? labelListEntries : undefined\n }, children);\n}\nfunction RadialBarSectors(_ref2) {\n var {\n sectors,\n allOtherRadialBarProps,\n showLabels\n } = _ref2;\n var {\n shape,\n activeShape,\n cornerRadius,\n id\n } = allOtherRadialBarProps,\n others = _objectWithoutProperties(allOtherRadialBarProps, _excluded);\n var baseProps = svgPropertiesNoEvents(others);\n var activeIndex = useAppSelector(selectActiveTooltipIndex);\n var {\n onMouseEnter: onMouseEnterFromProps,\n onClick: onItemClickFromProps,\n onMouseLeave: onMouseLeaveFromProps\n } = allOtherRadialBarProps,\n restOfAllOtherProps = _objectWithoutProperties(allOtherRadialBarProps, _excluded2);\n var onMouseEnterFromContext = useMouseEnterItemDispatch(onMouseEnterFromProps, allOtherRadialBarProps.dataKey, id);\n var onMouseLeaveFromContext = useMouseLeaveItemDispatch(onMouseLeaveFromProps);\n var onClickFromContext = useMouseClickItemDispatch(onItemClickFromProps, allOtherRadialBarProps.dataKey, id);\n if (sectors == null) {\n return null;\n }\n return /*#__PURE__*/React.createElement(RadialBarLabelListProvider, {\n showLabels: showLabels,\n sectors: sectors\n }, sectors.map((entry, i) => {\n var isActive = Boolean(activeShape && activeIndex === String(i));\n var onMouseEnter = onMouseEnterFromContext(entry, i);\n var onMouseLeave = onMouseLeaveFromContext(entry, i);\n var onClick = onClickFromContext(entry, i);\n var radialBarSectorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, baseProps), {}, {\n cornerRadius: parseCornerRadius(cornerRadius)\n }, entry), adaptEventsOfChild(restOfAllOtherProps, entry, i)), {}, {\n onMouseEnter,\n onMouseLeave,\n onClick,\n className: \"recharts-radial-bar-sector \".concat(entry.className),\n forceCornerRadius: others.forceCornerRadius,\n cornerIsExternal: others.cornerIsExternal,\n isActive,\n option: isActive ? activeShape : shape,\n index: i\n });\n if (isActive) {\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: DefaultZIndexes.activeBar,\n key: \"sector-\".concat(entry.cx, \"-\").concat(entry.cy, \"-\").concat(entry.innerRadius, \"-\").concat(entry.outerRadius, \"-\").concat(entry.startAngle, \"-\").concat(entry.endAngle, \"-\").concat(i)\n }, /*#__PURE__*/React.createElement(RadialBarSector, radialBarSectorProps));\n }\n return /*#__PURE__*/React.createElement(RadialBarSector, _extends({\n key: \"sector-\".concat(entry.cx, \"-\").concat(entry.cy, \"-\").concat(entry.innerRadius, \"-\").concat(entry.outerRadius, \"-\").concat(entry.startAngle, \"-\").concat(entry.endAngle, \"-\").concat(i)\n }, radialBarSectorProps));\n }), /*#__PURE__*/React.createElement(LabelListFromLabelProp, {\n label: allOtherRadialBarProps.label\n }), allOtherRadialBarProps.children);\n}\nfunction SectorsWithAnimation(_ref3) {\n var {\n props,\n previousSectorsRef\n } = _ref3;\n var {\n sectors,\n isAnimationActive,\n animationBegin,\n animationDuration,\n animationEasing,\n onAnimationEnd,\n onAnimationStart\n } = props;\n var animationId = useAnimationId(props, 'recharts-radialbar-');\n var prevData = previousSectorsRef.current;\n var [isAnimating, setIsAnimating] = useState(false);\n var handleAnimationEnd = useCallback(() => {\n if (typeof onAnimationEnd === 'function') {\n onAnimationEnd();\n }\n setIsAnimating(false);\n }, [onAnimationEnd]);\n var handleAnimationStart = useCallback(() => {\n if (typeof onAnimationStart === 'function') {\n onAnimationStart();\n }\n setIsAnimating(true);\n }, [onAnimationStart]);\n return /*#__PURE__*/React.createElement(JavascriptAnimate, {\n animationId: animationId,\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n onAnimationStart: handleAnimationStart,\n onAnimationEnd: handleAnimationEnd,\n key: animationId\n }, t => {\n var stepData = t === 1 ? sectors : (sectors !== null && sectors !== void 0 ? sectors : STABLE_EMPTY_ARRAY).map((entry, index) => {\n var prev = prevData && prevData[index];\n if (prev) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n startAngle: interpolate(prev.startAngle, entry.startAngle, t),\n endAngle: interpolate(prev.endAngle, entry.endAngle, t)\n });\n }\n var {\n endAngle,\n startAngle\n } = entry;\n return _objectSpread(_objectSpread({}, entry), {}, {\n endAngle: interpolate(startAngle, endAngle, t)\n });\n });\n if (t > 0) {\n // eslint-disable-next-line no-param-reassign\n previousSectorsRef.current = stepData !== null && stepData !== void 0 ? stepData : null;\n }\n return /*#__PURE__*/React.createElement(RadialBarSectors, {\n sectors: stepData !== null && stepData !== void 0 ? stepData : STABLE_EMPTY_ARRAY,\n allOtherRadialBarProps: props,\n showLabels: !isAnimating\n });\n });\n}\nfunction RenderSectors(props) {\n var previousSectorsRef = useRef(null);\n return /*#__PURE__*/React.createElement(SectorsWithAnimation, {\n props: props,\n previousSectorsRef: previousSectorsRef\n });\n}\nfunction SetRadialBarPayloadLegend(props) {\n var legendPayload = useAppSelector(state => selectRadialBarLegendPayload(state, props.legendType));\n return /*#__PURE__*/React.createElement(SetPolarLegendPayload, {\n legendPayload: legendPayload !== null && legendPayload !== void 0 ? legendPayload : []\n });\n}\nvar SetRadialBarTooltipEntrySettings = /*#__PURE__*/React.memo(_ref4 => {\n var {\n dataKey,\n sectors,\n stroke,\n strokeWidth,\n name,\n hide,\n fill,\n tooltipType,\n id\n } = _ref4;\n var tooltipEntrySettings = {\n dataDefinedOnItem: sectors,\n getPosition: noop,\n settings: {\n graphicalItemId: id,\n stroke,\n strokeWidth,\n fill,\n nameKey: undefined,\n // RadialBar does not have nameKey, why?\n dataKey,\n name: getTooltipNameProp(name, dataKey),\n hide,\n type: tooltipType,\n color: fill,\n unit: '' // Why does RadialBar not support unit?\n }\n };\n return /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {\n tooltipEntrySettings: tooltipEntrySettings\n });\n});\nclass RadialBarWithState extends PureComponent {\n renderBackground(sectors) {\n if (sectors == null) {\n return null;\n }\n var {\n cornerRadius\n } = this.props;\n var backgroundProps = svgPropertiesNoEventsFromUnknown(this.props.background);\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: getZIndexFromUnknown(this.props.background, DefaultZIndexes.barBackground)\n }, sectors.map((entry, i) => {\n var {\n value,\n background\n } = entry,\n rest = _objectWithoutProperties(entry, _excluded3);\n if (!background) {\n return null;\n }\n var props = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({\n cornerRadius: parseCornerRadius(cornerRadius)\n }, rest), {}, {\n // @ts-expect-error backgroundProps is contributing unknown props\n fill: '#eee'\n }, background), backgroundProps), adaptEventsOfChild(this.props, entry, i)), {}, {\n index: i,\n className: clsx('recharts-radial-bar-background-sector', String(backgroundProps === null || backgroundProps === void 0 ? void 0 : backgroundProps.className)),\n option: background,\n isActive: false\n });\n return /*#__PURE__*/React.createElement(RadialBarSector, _extends({\n key: \"background-\".concat(rest.cx, \"-\").concat(rest.cy, \"-\").concat(rest.innerRadius, \"-\").concat(rest.outerRadius, \"-\").concat(rest.startAngle, \"-\").concat(rest.endAngle, \"-\").concat(i)\n }, props));\n }));\n }\n render() {\n var {\n hide,\n sectors,\n className,\n background\n } = this.props;\n if (hide) {\n return null;\n }\n var layerClass = clsx('recharts-area', className);\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: this.props.zIndex\n }, /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, background && /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-radial-bar-background\"\n }, this.renderBackground(sectors)), /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-radial-bar-sectors\"\n }, /*#__PURE__*/React.createElement(RenderSectors, this.props))));\n }\n}\nfunction RadialBarImpl(props) {\n var _useAppSelector;\n var cells = React.useMemo(() => findAllByType(props.children, Cell), [props.children]);\n var radialBarSettings = React.useMemo(() => ({\n data: undefined,\n hide: false,\n id: props.id,\n dataKey: props.dataKey,\n minPointSize: props.minPointSize,\n stackId: getNormalizedStackId(props.stackId),\n maxBarSize: props.maxBarSize,\n barSize: props.barSize,\n type: 'radialBar',\n angleAxisId: props.angleAxisId,\n radiusAxisId: props.radiusAxisId\n }), [props.id, props.dataKey, props.minPointSize, props.stackId, props.maxBarSize, props.barSize, props.angleAxisId, props.radiusAxisId]);\n var sectors = (_useAppSelector = useAppSelector(state => selectRadialBarSectors(state, props.radiusAxisId, props.angleAxisId, radialBarSettings, cells))) !== null && _useAppSelector !== void 0 ? _useAppSelector : STABLE_EMPTY_ARRAY;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetRadialBarTooltipEntrySettings, {\n dataKey: props.dataKey,\n sectors: sectors,\n stroke: props.stroke,\n strokeWidth: props.strokeWidth,\n name: props.name,\n hide: props.hide,\n fill: props.fill,\n tooltipType: props.tooltipType,\n id: props.id\n }), /*#__PURE__*/React.createElement(RadialBarWithState, _extends({}, props, {\n sectors: sectors\n })));\n}\nexport var defaultRadialBarProps = {\n angleAxisId: 0,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease',\n background: false,\n cornerIsExternal: false,\n cornerRadius: 0,\n forceCornerRadius: false,\n hide: false,\n isAnimationActive: 'auto',\n label: false,\n legendType: 'rect',\n minPointSize: 0,\n radiusAxisId: 0,\n zIndex: DefaultZIndexes.bar\n};\nexport function computeRadialBarDataItems(_ref5) {\n var {\n displayedData,\n stackedData,\n dataStartIndex,\n stackedDomain,\n dataKey,\n baseValue,\n layout,\n radiusAxis,\n radiusAxisTicks,\n bandSize,\n pos,\n angleAxis,\n minPointSize,\n cx,\n cy,\n angleAxisTicks,\n cells,\n startAngle: rootStartAngle,\n endAngle: rootEndAngle\n } = _ref5;\n if (angleAxisTicks == null || radiusAxisTicks == null) {\n return STABLE_EMPTY_ARRAY;\n }\n return (displayedData !== null && displayedData !== void 0 ? displayedData : []).map((entry, index) => {\n var value, innerRadius, outerRadius, startAngle, endAngle, backgroundSector;\n if (stackedData) {\n // @ts-expect-error truncateByDomain expects only numerical domain, but it can received categorical domain too\n value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n if (!Array.isArray(value)) {\n value = [baseValue, value];\n }\n }\n if (layout === 'radial') {\n var _angleAxis$scale$map, _angleAxis$scale$map2;\n startAngle = (_angleAxis$scale$map = angleAxis.scale.map(value[0])) !== null && _angleAxis$scale$map !== void 0 ? _angleAxis$scale$map : rootStartAngle;\n endAngle = (_angleAxis$scale$map2 = angleAxis.scale.map(value[1])) !== null && _angleAxis$scale$map2 !== void 0 ? _angleAxis$scale$map2 : rootEndAngle;\n innerRadius = getCateCoordinateOfBar({\n axis: radiusAxis,\n ticks: radiusAxisTicks,\n bandSize,\n offset: pos.offset,\n entry,\n index\n });\n if (innerRadius != null && endAngle != null && startAngle != null) {\n outerRadius = innerRadius + pos.size;\n var deltaAngle = endAngle - startAngle;\n if (Math.abs(minPointSize) > 0 && Math.abs(deltaAngle) < Math.abs(minPointSize)) {\n var delta = mathSign(deltaAngle || minPointSize) * (Math.abs(minPointSize) - Math.abs(deltaAngle));\n endAngle += delta;\n }\n backgroundSector = {\n background: {\n cx,\n cy,\n innerRadius,\n outerRadius,\n startAngle: rootStartAngle,\n endAngle: rootEndAngle\n }\n };\n }\n } else {\n innerRadius = radiusAxis.scale.map(value[0]);\n outerRadius = radiusAxis.scale.map(value[1]);\n startAngle = getCateCoordinateOfBar({\n axis: angleAxis,\n ticks: angleAxisTicks,\n bandSize,\n offset: pos.offset,\n entry,\n index\n });\n if (innerRadius != null && outerRadius != null && startAngle != null) {\n endAngle = startAngle + pos.size;\n var deltaRadius = outerRadius - innerRadius;\n if (Math.abs(minPointSize) > 0 && Math.abs(deltaRadius) < Math.abs(minPointSize)) {\n var _delta = mathSign(deltaRadius || minPointSize) * (Math.abs(minPointSize) - Math.abs(deltaRadius));\n outerRadius += _delta;\n }\n }\n }\n return _objectSpread(_objectSpread(_objectSpread({}, entry), backgroundSector), {}, {\n payload: entry,\n value: stackedData ? value : value[1],\n cx,\n cy,\n innerRadius,\n outerRadius,\n startAngle,\n // @ts-expect-error endAngle is used before assigned (?)\n endAngle\n }, cells && cells[index] && cells[index].props);\n });\n}\n\n/**\n * @consumes PolarChartContext\n * @provides LabelListContext\n * @provides CellReader\n */\nexport function RadialBar(outsideProps) {\n var props = resolveDefaultProps(outsideProps, defaultRadialBarProps);\n return /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {\n id: props.id,\n type: \"radialBar\"\n }, id => {\n var _props$hide, _props$angleAxisId, _props$radiusAxisId;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetPolarGraphicalItem, {\n type: \"radialBar\",\n id: id,\n data: undefined // why does RadialBar not allow data defined on the item?\n ,\n dataKey: props.dataKey,\n hide: (_props$hide = props.hide) !== null && _props$hide !== void 0 ? _props$hide : defaultRadialBarProps.hide,\n angleAxisId: (_props$angleAxisId = props.angleAxisId) !== null && _props$angleAxisId !== void 0 ? _props$angleAxisId : defaultRadialBarProps.angleAxisId,\n radiusAxisId: (_props$radiusAxisId = props.radiusAxisId) !== null && _props$radiusAxisId !== void 0 ? _props$radiusAxisId : defaultRadialBarProps.radiusAxisId,\n stackId: getNormalizedStackId(props.stackId),\n barSize: props.barSize,\n minPointSize: props.minPointSize,\n maxBarSize: props.maxBarSize\n }), /*#__PURE__*/React.createElement(SetRadialBarPayloadLegend, props), /*#__PURE__*/React.createElement(RadialBarImpl, _extends({}, props, {\n id: id\n })));\n });\n}\nRadialBar.displayName = 'RadialBar';", "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 { Shape } from './ActiveShapeUtils';\nexport function parseCornerRadius(cornerRadius) {\n if (typeof cornerRadius === 'string') {\n return parseInt(cornerRadius, 10);\n }\n return cornerRadius;\n}\nexport function RadialBarSector(props) {\n return /*#__PURE__*/React.createElement(Shape, _extends({\n shapeType: \"sector\"\n }, props));\n}", "import { isStacked } from '../../types/StackedGraphicalItem';\nimport { getPercentValue, isNullish } from '../../../util/DataUtils';\nvar getBarSize = (globalSize, totalSize, selfSize) => {\n var barSize = selfSize !== null && selfSize !== void 0 ? selfSize : globalSize;\n if (isNullish(barSize)) {\n return undefined;\n }\n return getPercentValue(barSize, totalSize, 0);\n};\nexport var combineBarSizeList = (allBars, globalSize, totalSize) => {\n var initialValue = {};\n var stackedBars = allBars.filter(isStacked);\n var unstackedBars = allBars.filter(b => b.stackId == null);\n var groupByStack = stackedBars.reduce((acc, bar) => {\n var s = acc[bar.stackId];\n if (s == null) {\n s = [];\n }\n s.push(bar);\n acc[bar.stackId] = s;\n return acc;\n }, initialValue);\n var stackedSizeList = Object.entries(groupByStack).map(_ref => {\n var _bars$;\n var [stackId, bars] = _ref;\n var dataKeys = bars.map(b => b.dataKey);\n var barSize = getBarSize(globalSize, totalSize, (_bars$ = bars[0]) === null || _bars$ === void 0 ? void 0 : _bars$.barSize);\n return {\n stackId,\n dataKeys,\n barSize\n };\n });\n var unstackedSizeList = unstackedBars.map(b => {\n var dataKeys = [b.dataKey].filter(dk => dk != null);\n var barSize = getBarSize(globalSize, totalSize, b.barSize);\n return {\n stackId: undefined,\n dataKeys,\n barSize\n };\n });\n return [...stackedSizeList, ...unstackedSizeList];\n};", "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 { getPercentValue, isNullish } from '../../../util/DataUtils';\nimport { isWellBehavedNumber } from '../../../util/isWellBehavedNumber';\nfunction getBarPositions(barGap, barCategoryGap, bandSize, sizeList, maxBarSize) {\n var _sizeList$;\n var len = sizeList.length;\n if (len < 1) {\n return undefined;\n }\n var realBarGap = getPercentValue(barGap, bandSize, 0, true);\n var result;\n var initialValue = [];\n\n // whether is barSize set by user\n // Okay but why does it check only for the first element? What if the first element is set but others are not?\n if (isWellBehavedNumber((_sizeList$ = sizeList[0]) === null || _sizeList$ === void 0 ? void 0 : _sizeList$.barSize)) {\n var useFull = false;\n var fullBarSize = bandSize / len;\n var sum = sizeList.reduce((res, entry) => res + (entry.barSize || 0), 0);\n sum += (len - 1) * realBarGap;\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\n var offset = (bandSize - sum) / 2 >> 0;\n var prev = {\n offset: offset - realBarGap,\n size: 0\n };\n result = sizeList.reduce((res, entry) => {\n var _entry$barSize;\n var newPosition = {\n stackId: entry.stackId,\n dataKeys: entry.dataKeys,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n size: useFull ? fullBarSize : (_entry$barSize = entry.barSize) !== null && _entry$barSize !== void 0 ? _entry$barSize : 0\n }\n };\n var newRes = [...res, newPosition];\n prev = newPosition.position;\n return newRes;\n }, initialValue);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n if (originalSize > 1) {\n originalSize >>= 0;\n }\n var size = isWellBehavedNumber(maxBarSize) ? Math.min(originalSize, maxBarSize) : originalSize;\n result = sizeList.reduce((res, entry, i) => [...res, {\n stackId: entry.stackId,\n dataKeys: entry.dataKeys,\n position: {\n offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n size\n }\n }], initialValue);\n }\n return result;\n}\nexport var combineAllBarPositions = (sizeList, globalMaxBarSize, barGap, barCategoryGap, barBandSize, bandSize, childMaxBarSize) => {\n var maxBarSize = isNullish(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var allBarPositions = getBarPositions(barGap, barCategoryGap, barBandSize !== bandSize ? barBandSize : bandSize, sizeList, maxBarSize);\n if (barBandSize !== bandSize && allBarPositions != null) {\n allBarPositions = allBarPositions.map(pos => _objectSpread(_objectSpread({}, pos), {}, {\n position: _objectSpread(_objectSpread({}, pos.position), {}, {\n offset: pos.position.offset - barBandSize / 2\n })\n }));\n }\n return allBarPositions;\n};", "import { getStackSeriesIdentifier } from '../../../util/stacks/getStackSeriesIdentifier';\nexport var combineStackedData = (stackGroups, barSettings) => {\n var stackSeriesIdentifier = getStackSeriesIdentifier(barSettings);\n if (!stackGroups || stackSeriesIdentifier == null || barSettings == null) {\n return undefined;\n }\n var {\n stackId\n } = barSettings;\n if (stackId == null) {\n return undefined;\n }\n var stackGroup = stackGroups[stackId];\n if (!stackGroup) {\n return undefined;\n }\n var {\n stackedData\n } = stackGroup;\n if (!stackedData) {\n return undefined;\n }\n return stackedData.find(sd => sd.key === stackSeriesIdentifier);\n};", "export var combineBarPosition = (allBarPositions, barSettings) => {\n if (allBarPositions == null || barSettings == null) {\n return undefined;\n }\n var position = allBarPositions.find(p => p.stackId === barSettings.stackId && barSettings.dataKey != null && p.dataKeys.includes(barSettings.dataKey));\n if (position == null) {\n return undefined;\n }\n return position.position;\n};", "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 { computeRadialBarDataItems } from '../../polar/RadialBar';\nimport { selectChartDataAndAlwaysIgnoreIndexes, selectChartDataWithIndexes } from './dataSelectors';\nimport { selectPolarAxisScale, selectPolarAxisTicks, selectPolarGraphicalItemAxisTicks } from './polarScaleSelectors';\nimport { combineStackGroups, selectTooltipAxis } from './axisSelectors';\nimport { selectAngleAxis, selectPolarViewBox, selectRadiusAxis } from './polarAxisSelectors';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { getBandSizeOfAxis, getBaseValueOfBar, isCategoricalAxis } from '../../util/ChartUtils';\nimport { selectBarCategoryGap, selectBarGap, selectReverseStackOrder, selectRootBarSize, selectRootMaxBarSize, selectStackOffsetType } from './rootPropsSelectors';\nimport { selectPolarItemsSettings, selectUnfilteredPolarItems } from './polarSelectors';\nimport { isNullish } from '../../util/DataUtils';\nimport { combineDisplayedStackedData } from './combiners/combineDisplayedStackedData';\nimport { isStacked } from '../types/StackedGraphicalItem';\nimport { combineBarSizeList } from './combiners/combineBarSizeList';\nimport { combineAllBarPositions } from './combiners/combineAllBarPositions';\nimport { combineStackedData } from './combiners/combineStackedData';\nimport { combineBarPosition } from './combiners/combineBarPosition';\nvar selectRadiusAxisForRadialBar = (state, radiusAxisId) => selectRadiusAxis(state, radiusAxisId);\nvar selectRadiusAxisScaleForRadar = (state, radiusAxisId) => selectPolarAxisScale(state, 'radiusAxis', radiusAxisId);\nexport var selectRadiusAxisWithScale = createSelector([selectRadiusAxisForRadialBar, selectRadiusAxisScaleForRadar], (axis, scale) => {\n if (axis == null || scale == null) {\n return undefined;\n }\n return _objectSpread(_objectSpread({}, axis), {}, {\n scale\n });\n});\nexport var selectRadiusAxisTicks = (state, radiusAxisId) => {\n return selectPolarGraphicalItemAxisTicks(state, 'radiusAxis', radiusAxisId, false);\n};\nvar selectAngleAxisForRadialBar = (state, _radiusAxisId, angleAxisId) => selectAngleAxis(state, angleAxisId);\nvar selectAngleAxisScaleForRadialBar = (state, _radiusAxisId, angleAxisId) => selectPolarAxisScale(state, 'angleAxis', angleAxisId);\nexport var selectAngleAxisWithScale = createSelector([selectAngleAxisForRadialBar, selectAngleAxisScaleForRadialBar], (axis, scale) => {\n if (axis == null || scale == null) {\n return undefined;\n }\n return _objectSpread(_objectSpread({}, axis), {}, {\n scale\n });\n});\nvar selectAngleAxisTicks = (state, _radiusAxisId, angleAxisId) => {\n // here we can hardcode isPanorama to false because radialBar does not support panorama mode\n return selectPolarAxisTicks(state, 'angleAxis', angleAxisId, false);\n};\nvar pickRadialBarSettings = (_state, _radiusAxisId, _angleAxisId, radialBarSettings) => radialBarSettings;\nvar selectSynchronisedRadialBarSettings = createSelector([selectUnfilteredPolarItems, pickRadialBarSettings], (graphicalItems, radialBarSettingsFromProps) => {\n if (graphicalItems.some(pgis => pgis.type === 'radialBar' && radialBarSettingsFromProps.dataKey === pgis.dataKey && radialBarSettingsFromProps.stackId === pgis.stackId)) {\n return radialBarSettingsFromProps;\n }\n return undefined;\n});\nexport var selectBandSizeOfPolarAxis = createSelector([selectChartLayout, selectRadiusAxisWithScale, selectRadiusAxisTicks, selectAngleAxisWithScale, selectAngleAxisTicks], (layout, radiusAxis, radiusAxisTicks, angleAxis, angleAxisTicks) => {\n if (isCategoricalAxis(layout, 'radiusAxis')) {\n return getBandSizeOfAxis(radiusAxis, radiusAxisTicks, false);\n }\n return getBandSizeOfAxis(angleAxis, angleAxisTicks, false);\n});\nexport var selectBaseValue = createSelector([selectAngleAxisWithScale, selectRadiusAxisWithScale, selectChartLayout], (angleAxis, radiusAxis, layout) => {\n var numericAxis = layout === 'radial' ? angleAxis : radiusAxis;\n if (numericAxis == null || numericAxis.scale == null) {\n return undefined;\n }\n return getBaseValueOfBar({\n numericAxis\n });\n});\nvar pickCells = (_state, _radiusAxisId, _angleAxisId, _radialBarSettings, cells) => cells;\nvar pickAngleAxisId = (_state, _radiusAxisId, angleAxisId, _radialBarSettings, _cells) => angleAxisId;\nvar pickRadiusAxisId = (_state, radiusAxisId, _angleAxisId, _radialBarSettings, _cells) => radiusAxisId;\nexport var pickMaxBarSize = (_state, _radiusAxisId, _angleAxisId, radialBarSettings, _cells) => radialBarSettings.maxBarSize;\nvar isRadialBar = item => item.type === 'radialBar';\nvar selectAllVisibleRadialBars = createSelector([selectChartLayout, selectUnfilteredPolarItems, pickAngleAxisId, pickRadiusAxisId], (layout, allItems, angleAxisId, radiusAxisId) => {\n return allItems.filter(i => {\n if (layout === 'centric') {\n return i.angleAxisId === angleAxisId;\n }\n return i.radiusAxisId === radiusAxisId;\n }).filter(i => i.hide === false).filter(isRadialBar);\n});\n\n/**\n * The generator never returned the totalSize which means that barSize in polar chart can not support percent values.\n * We can add that if we want to I suppose.\n * @returns undefined - but it should be a total size of numerical axis in polar chart\n */\nvar selectPolarBarAxisSize = () => undefined;\nexport var selectPolarBarSizeList = createSelector([selectAllVisibleRadialBars, selectRootBarSize, selectPolarBarAxisSize], combineBarSizeList);\nexport var selectPolarBarBandSize = createSelector([selectChartLayout, selectRootMaxBarSize, selectAngleAxisWithScale, selectAngleAxisTicks, selectRadiusAxisWithScale, selectRadiusAxisTicks, pickMaxBarSize], (layout, globalMaxBarSize, angleAxis, angleAxisTicks, radiusAxis, radiusAxisTicks, childMaxBarSize) => {\n var _ref2, _getBandSizeOfAxis2;\n var maxBarSize = isNullish(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n if (layout === 'centric') {\n var _ref, _getBandSizeOfAxis;\n return (_ref = (_getBandSizeOfAxis = getBandSizeOfAxis(angleAxis, angleAxisTicks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref !== void 0 ? _ref : 0;\n }\n return (_ref2 = (_getBandSizeOfAxis2 = getBandSizeOfAxis(radiusAxis, radiusAxisTicks, true)) !== null && _getBandSizeOfAxis2 !== void 0 ? _getBandSizeOfAxis2 : maxBarSize) !== null && _ref2 !== void 0 ? _ref2 : 0;\n});\nexport var selectAllPolarBarPositions = createSelector([selectPolarBarSizeList, selectRootMaxBarSize, selectBarGap, selectBarCategoryGap, selectPolarBarBandSize, selectBandSizeOfPolarAxis, pickMaxBarSize], combineAllBarPositions);\nexport var selectPolarBarPosition = createSelector([selectAllPolarBarPositions, selectSynchronisedRadialBarSettings], combineBarPosition);\nvar selectStackedRadialBars = createSelector([selectPolarItemsSettings], allPolarItems => allPolarItems.filter(isRadialBar).filter(isStacked));\nvar selectPolarCombinedStackedData = createSelector([selectStackedRadialBars, selectChartDataAndAlwaysIgnoreIndexes, selectTooltipAxis], combineDisplayedStackedData);\nvar selectStackGroups = createSelector([selectPolarCombinedStackedData, selectStackedRadialBars, selectStackOffsetType, selectReverseStackOrder], combineStackGroups);\nvar selectRadialBarStackGroups = (state, radiusAxisId, angleAxisId) => {\n var layout = selectChartLayout(state);\n if (layout === 'centric') {\n return selectStackGroups(state, 'radiusAxis', radiusAxisId);\n }\n return selectStackGroups(state, 'angleAxis', angleAxisId);\n};\nvar selectPolarStackedData = createSelector([selectRadialBarStackGroups, selectSynchronisedRadialBarSettings], combineStackedData);\nexport var selectRadialBarSectors = createSelector([selectAngleAxisWithScale, selectAngleAxisTicks, selectRadiusAxisWithScale, selectRadiusAxisTicks, selectChartDataWithIndexes, selectSynchronisedRadialBarSettings, selectBandSizeOfPolarAxis, selectChartLayout, selectBaseValue, selectPolarViewBox, pickCells, selectPolarBarPosition, selectPolarStackedData], (angleAxis, angleAxisTicks, radiusAxis, radiusAxisTicks, _ref3, radialBarSettings, bandSize, layout, baseValue, polarViewBox, cells, pos, stackedData) => {\n var {\n chartData,\n dataStartIndex,\n dataEndIndex\n } = _ref3;\n if (radialBarSettings == null || radiusAxis == null || angleAxis == null || chartData == null || bandSize == null || pos == null || layout !== 'centric' && layout !== 'radial' || radiusAxisTicks == null || polarViewBox == null) {\n return [];\n }\n var {\n dataKey,\n minPointSize\n } = radialBarSettings;\n var {\n cx,\n cy,\n startAngle,\n endAngle\n } = polarViewBox;\n var displayedData = chartData.slice(dataStartIndex, dataEndIndex + 1);\n var numericAxis = layout === 'centric' ? radiusAxis : angleAxis;\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n return computeRadialBarDataItems({\n angleAxis,\n angleAxisTicks,\n bandSize,\n baseValue,\n cells,\n cx,\n cy,\n dataKey,\n dataStartIndex,\n displayedData,\n endAngle,\n layout,\n minPointSize,\n pos,\n radiusAxis,\n radiusAxisTicks,\n stackedData,\n stackedDomain,\n startAngle\n });\n});\nexport var selectRadialBarLegendPayload = createSelector([selectChartDataAndAlwaysIgnoreIndexes, (_s, l) => l], (_ref4, legendType) => {\n var {\n chartData,\n dataStartIndex,\n dataEndIndex\n } = _ref4;\n if (chartData == null) {\n return [];\n }\n var displayedData = chartData.slice(dataStartIndex, dataEndIndex + 1);\n if (displayedData.length === 0) {\n return [];\n }\n return displayedData.map(entry => {\n return {\n type: legendType,\n // @ts-expect-error we need a better typing for our data inputs\n value: entry.name,\n // @ts-expect-error we need a better typing for our data inputs\n color: entry.fill,\n // @ts-expect-error Legend payload.payload says it wants objects but our data can be unknown\n payload: entry\n };\n });\n});", "import { isWellBehavedNumber } from '../util/isWellBehavedNumber';\nexport function getZIndexFromUnknown(input, defaultZIndex) {\n if (input && typeof input === 'object' && 'zIndex' in input && typeof input.zIndex === 'number' && isWellBehavedNumber(input.zIndex)) {\n return input.zIndex;\n }\n return defaultZIndex;\n}", "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 { Children, PureComponent, useCallback, useContext, useEffect } from 'react';\nimport { clsx } from 'clsx';\nimport { scalePoint } from 'victory-vendor/d3-scale';\nimport range from 'es-toolkit/compat/range';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { isNumber, isNotNil } from '../util/DataUtils';\nimport { generatePrefixStyle } from '../util/CssPrefixUtils';\nimport { useChartData, useDataIndex } from '../context/chartDataContext';\nimport { BrushUpdateDispatchContext } from '../context/brushUpdateContext';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { setDataStartEndIndexes } from '../state/chartDataSlice';\nimport { setBrushSettings } from '../state/brushSlice';\nimport { PanoramaContextProvider } from '../context/PanoramaContext';\nimport { selectBrushDimensions } from '../state/selectors/brushSelectors';\nimport { useBrushChartSynchronisation } from '../synchronisation/useChartSynchronisation';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\n\n// Why is this tickFormatter different from the other TickFormatters? This one allows to return numbers too for some reason.\n\nfunction DefaultTraveller(props) {\n var {\n x,\n y,\n width,\n height,\n stroke\n } = props;\n var lineY = Math.floor(y + height / 2) - 1;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n fill: stroke,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY,\n x2: x + width - 1,\n y2: lineY,\n fill: \"none\",\n stroke: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY + 2,\n x2: x + width - 1,\n y2: lineY + 2,\n fill: \"none\",\n stroke: \"#fff\"\n }));\n}\nfunction Traveller(props) {\n var {\n travellerProps,\n travellerType\n } = props;\n if (/*#__PURE__*/React.isValidElement(travellerType)) {\n // @ts-expect-error element cloning disagrees with the types (and it should)\n return /*#__PURE__*/React.cloneElement(travellerType, travellerProps);\n }\n if (typeof travellerType === 'function') {\n return travellerType(travellerProps);\n }\n return /*#__PURE__*/React.createElement(DefaultTraveller, travellerProps);\n}\nfunction getNameFromUnknown(value) {\n if (isNotNil(value) && typeof value === 'object' && 'name' in value && typeof value.name === 'string') {\n return value.name;\n }\n return undefined;\n}\nfunction getAriaLabel(data, startIndex, endIndex) {\n var start = getNameFromUnknown(data[startIndex]);\n var end = getNameFromUnknown(data[endIndex]);\n return \"Min value: \".concat(start, \", Max value: \").concat(end);\n}\nfunction TravellerLayer(_ref) {\n var {\n otherProps,\n travellerX,\n id,\n onMouseEnter,\n onMouseLeave,\n onMouseDown,\n onTouchStart,\n onTravellerMoveKeyboard,\n onFocus,\n onBlur\n } = _ref;\n var {\n y,\n x: xFromProps,\n travellerWidth,\n height,\n traveller,\n ariaLabel,\n data,\n startIndex,\n endIndex\n } = otherProps;\n var x = Math.max(travellerX, xFromProps);\n var travellerProps = _objectSpread(_objectSpread({}, svgPropertiesNoEvents(otherProps)), {}, {\n x,\n y,\n width: travellerWidth,\n height\n });\n var ariaLabelBrush = ariaLabel || getAriaLabel(data, startIndex, endIndex);\n return /*#__PURE__*/React.createElement(Layer, {\n tabIndex: 0,\n role: \"slider\",\n \"aria-label\": ariaLabelBrush,\n \"aria-valuenow\": travellerX,\n className: \"recharts-brush-traveller\",\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDown: onMouseDown,\n onTouchStart: onTouchStart,\n onKeyDown: e => {\n if (!['ArrowLeft', 'ArrowRight'].includes(e.key)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n onTravellerMoveKeyboard(e.key === 'ArrowRight' ? 1 : -1, id);\n },\n onFocus: onFocus,\n onBlur: onBlur,\n style: {\n cursor: 'col-resize'\n }\n }, /*#__PURE__*/React.createElement(Traveller, {\n travellerType: traveller,\n travellerProps: travellerProps\n }));\n}\n/*\n * This one cannot be a React Component because React is not happy with it returning only string | number.\n * React wants a full React.JSX.Element but that is not compatible with Text component.\n */\nfunction getTextOfTick(props) {\n var {\n index,\n data,\n tickFormatter,\n dataKey\n } = props;\n var text = getValueByDataKey(data[index], dataKey, index);\n return typeof tickFormatter === 'function' ? tickFormatter(text, index) : text;\n}\nfunction getIndexInRange(valueRange, x) {\n var len = valueRange.length;\n var start = 0;\n var end = len - 1;\n while (end - start > 1) {\n var middle = Math.floor((start + end) / 2);\n var middleValue = valueRange[middle];\n if (middleValue != null && middleValue > x) {\n end = middle;\n } else {\n start = middle;\n }\n }\n var endValue = valueRange[end];\n return endValue != null && x >= endValue ? end : start;\n}\nfunction getIndex(_ref2) {\n var {\n startX,\n endX,\n scaleValues,\n gap,\n data\n } = _ref2;\n var lastIndex = data.length - 1;\n var min = Math.min(startX, endX);\n var max = Math.max(startX, endX);\n var minIndex = getIndexInRange(scaleValues, min);\n var maxIndex = getIndexInRange(scaleValues, max);\n return {\n startIndex: minIndex - minIndex % gap,\n endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap\n };\n}\nfunction Background(_ref3) {\n var {\n x,\n y,\n width,\n height,\n fill,\n stroke\n } = _ref3;\n return /*#__PURE__*/React.createElement(\"rect\", {\n stroke: stroke,\n fill: fill,\n x: x,\n y: y,\n width: width,\n height: height\n });\n}\nfunction BrushText(_ref4) {\n var {\n startIndex,\n endIndex,\n y,\n height,\n travellerWidth,\n stroke,\n tickFormatter,\n dataKey,\n data,\n startX,\n endX\n } = _ref4;\n var offset = 5;\n var attrs = {\n pointerEvents: 'none',\n fill: stroke\n };\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-texts\"\n }, /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"end\",\n verticalAnchor: \"middle\",\n x: Math.min(startX, endX) - offset,\n y: y + height / 2\n }, attrs), getTextOfTick({\n index: startIndex,\n tickFormatter,\n dataKey,\n data\n })), /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"start\",\n verticalAnchor: \"middle\",\n x: Math.max(startX, endX) + travellerWidth + offset,\n y: y + height / 2\n }, attrs), getTextOfTick({\n index: endIndex,\n tickFormatter,\n dataKey,\n data\n })));\n}\nfunction Slide(_ref5) {\n var {\n y,\n height,\n stroke,\n travellerWidth,\n startX,\n endX,\n onMouseEnter,\n onMouseLeave,\n onMouseDown,\n onTouchStart\n } = _ref5;\n var x = Math.min(startX, endX) + travellerWidth;\n var width = Math.max(Math.abs(endX - startX) - travellerWidth, 0);\n return /*#__PURE__*/React.createElement(\"rect\", {\n className: \"recharts-brush-slide\",\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDown: onMouseDown,\n onTouchStart: onTouchStart,\n style: {\n cursor: 'move'\n },\n stroke: \"none\",\n fill: stroke,\n fillOpacity: 0.2,\n x: x,\n y: y,\n width: width,\n height: height\n });\n}\nfunction Panorama(_ref6) {\n var {\n x,\n y,\n width,\n height,\n data,\n children,\n padding\n } = _ref6;\n var isPanoramic = React.Children.count(children) === 1;\n if (!isPanoramic) {\n return null;\n }\n var chartElement = Children.only(children);\n if (!chartElement) {\n return null;\n }\n return /*#__PURE__*/React.cloneElement(chartElement, {\n x,\n y,\n width,\n height,\n margin: padding,\n compact: true,\n data\n });\n}\nvar createScale = _ref7 => {\n var {\n data,\n startIndex,\n endIndex,\n x,\n width,\n travellerWidth\n } = _ref7;\n if (!data || !data.length) {\n return {};\n }\n var len = data.length;\n var scale = scalePoint().domain(range(0, len)).range([x, x + width - travellerWidth]);\n var scaleValues = scale.domain().map(entry => scale(entry)).filter(isNotNil);\n return {\n isTextActive: false,\n isSlideMoving: false,\n isTravellerMoving: false,\n isTravellerFocused: false,\n startX: scale(startIndex),\n endX: scale(endIndex),\n scale,\n scaleValues\n };\n};\nvar isTouch = e => e.changedTouches && !!e.changedTouches.length;\nclass BrushWithState extends PureComponent {\n constructor(props) {\n super(props);\n _defineProperty(this, \"handleDrag\", e => {\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n if (this.state.isTravellerMoving) {\n this.handleTravellerMove(e);\n } else if (this.state.isSlideMoving) {\n this.handleSlideDrag(e);\n }\n });\n _defineProperty(this, \"handleTouchMove\", e => {\n var _e$changedTouches;\n var touch = (_e$changedTouches = e.changedTouches) === null || _e$changedTouches === void 0 ? void 0 : _e$changedTouches[0];\n if (touch != null) {\n this.handleDrag(touch);\n }\n });\n _defineProperty(this, \"handleDragEnd\", () => {\n this.setState({\n isTravellerMoving: false,\n isSlideMoving: false\n }, () => {\n var {\n endIndex,\n onDragEnd,\n startIndex\n } = this.props;\n onDragEnd === null || onDragEnd === void 0 || onDragEnd({\n endIndex,\n startIndex\n });\n });\n this.detachDragEndListener();\n });\n _defineProperty(this, \"handleLeaveWrapper\", () => {\n if (this.state.isTravellerMoving || this.state.isSlideMoving) {\n this.leaveTimer = window.setTimeout(this.handleDragEnd, this.props.leaveTimeOut);\n }\n });\n _defineProperty(this, \"handleEnterSlideOrTraveller\", () => {\n this.setState({\n isTextActive: true\n });\n });\n _defineProperty(this, \"handleLeaveSlideOrTraveller\", () => {\n this.setState({\n isTextActive: false\n });\n });\n _defineProperty(this, \"handleSlideDragStart\", e => {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n if (event == null) {\n return;\n }\n this.setState({\n isTravellerMoving: false,\n isSlideMoving: true,\n slideMoveStartX: event.pageX\n });\n this.attachDragEndListener();\n });\n _defineProperty(this, \"handleTravellerMoveKeyboard\", (direction, id) => {\n var {\n data,\n gap,\n startIndex,\n endIndex\n } = this.props;\n // scaleValues are a list of coordinates. For example: [65, 250, 435, 620, 805, 990].\n var {\n scaleValues,\n startX,\n endX\n } = this.state;\n if (scaleValues == null) {\n return;\n }\n\n // unless we search for the closest scaleValue to the current coordinate\n // we need to move travelers via index when using the keyboard\n var currentIndex = -1;\n if (id === 'startX') {\n currentIndex = startIndex;\n } else if (id === 'endX') {\n currentIndex = endIndex;\n }\n if (currentIndex < 0 || currentIndex >= data.length) {\n return;\n }\n var newIndex = currentIndex + direction;\n if (newIndex === -1 || newIndex >= scaleValues.length) {\n return;\n }\n var newScaleValue = scaleValues[newIndex];\n if (newScaleValue == null) {\n return;\n }\n\n // Prevent travellers from being on top of each other or overlapping\n if (id === 'startX' && newScaleValue >= endX || id === 'endX' && newScaleValue <= startX) {\n return;\n }\n this.setState(\n // @ts-expect-error not sure why typescript is not happy with this, partial update is fine in React\n {\n [id]: newScaleValue\n }, () => {\n this.props.onChange(getIndex({\n startX: this.state.startX,\n endX: this.state.endX,\n data,\n gap,\n scaleValues\n }));\n });\n });\n this.travellerDragStartHandlers = {\n startX: this.handleTravellerDragStart.bind(this, 'startX'),\n endX: this.handleTravellerDragStart.bind(this, 'endX')\n };\n this.state = {\n brushMoveStartX: 0,\n movingTravellerId: undefined,\n endX: 0,\n startX: 0,\n slideMoveStartX: 0\n };\n }\n static getDerivedStateFromProps(nextProps, prevState) {\n var {\n data,\n width,\n x,\n travellerWidth,\n startIndex,\n endIndex,\n startIndexControlledFromProps,\n endIndexControlledFromProps\n } = nextProps;\n if (data !== prevState.prevData) {\n return _objectSpread({\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevX: x,\n prevWidth: width\n }, data && data.length ? createScale({\n data,\n width,\n x,\n travellerWidth,\n startIndex,\n endIndex\n }) : {\n scale: undefined,\n scaleValues: undefined\n });\n }\n var prevScale = prevState.scale;\n if (prevScale && (width !== prevState.prevWidth || x !== prevState.prevX || travellerWidth !== prevState.prevTravellerWidth)) {\n prevScale.range([x, x + width - travellerWidth]);\n var scaleValues = prevScale.domain().map(entry => prevScale(entry)).filter(value => value != null);\n return {\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevX: x,\n prevWidth: width,\n startX: prevScale(nextProps.startIndex),\n endX: prevScale(nextProps.endIndex),\n scaleValues\n };\n }\n if (prevState.scale && !prevState.isSlideMoving && !prevState.isTravellerMoving && !prevState.isTravellerFocused && !prevState.isTextActive) {\n /*\n * If the startIndex or endIndex are controlled from the outside,\n * we need to keep the startX and end up to date.\n * Also we do not want to do that while user is interacting in the brush,\n * because this will trigger re-render and interrupt the drag&drop.\n */\n if (startIndexControlledFromProps != null && prevState.prevStartIndexControlledFromProps !== startIndexControlledFromProps) {\n return {\n startX: prevState.scale(startIndexControlledFromProps),\n prevStartIndexControlledFromProps: startIndexControlledFromProps\n };\n }\n if (endIndexControlledFromProps != null && prevState.prevEndIndexControlledFromProps !== endIndexControlledFromProps) {\n return {\n endX: prevState.scale(endIndexControlledFromProps),\n prevEndIndexControlledFromProps: endIndexControlledFromProps\n };\n }\n }\n return null;\n }\n componentWillUnmount() {\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n this.detachDragEndListener();\n }\n attachDragEndListener() {\n window.addEventListener('mouseup', this.handleDragEnd, true);\n window.addEventListener('touchend', this.handleDragEnd, true);\n window.addEventListener('mousemove', this.handleDrag, true);\n }\n detachDragEndListener() {\n window.removeEventListener('mouseup', this.handleDragEnd, true);\n window.removeEventListener('touchend', this.handleDragEnd, true);\n window.removeEventListener('mousemove', this.handleDrag, true);\n }\n handleSlideDrag(e) {\n var {\n slideMoveStartX,\n startX,\n endX,\n scaleValues\n } = this.state;\n if (scaleValues == null) {\n return;\n }\n var {\n x,\n width,\n travellerWidth,\n startIndex,\n endIndex,\n onChange,\n data,\n gap\n } = this.props;\n var delta = e.pageX - slideMoveStartX;\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);\n } else if (delta < 0) {\n delta = Math.max(delta, x - startX, x - endX);\n }\n var newIndex = getIndex({\n startX: startX + delta,\n endX: endX + delta,\n data,\n gap,\n scaleValues\n });\n if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n onChange(newIndex);\n }\n this.setState({\n startX: startX + delta,\n endX: endX + delta,\n slideMoveStartX: e.pageX\n });\n }\n handleTravellerDragStart(id, e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n if (event == null) {\n return;\n }\n this.setState({\n isSlideMoving: false,\n isTravellerMoving: true,\n movingTravellerId: id,\n brushMoveStartX: event.pageX\n });\n this.attachDragEndListener();\n }\n handleTravellerMove(e) {\n var {\n brushMoveStartX,\n movingTravellerId,\n endX,\n startX,\n scaleValues\n } = this.state;\n if (movingTravellerId == null || scaleValues == null) {\n return;\n }\n var prevValue = this.state[movingTravellerId];\n var {\n x,\n width,\n travellerWidth,\n onChange,\n gap,\n data\n } = this.props;\n var params = {\n startX: this.state.startX,\n endX: this.state.endX,\n data,\n gap,\n scaleValues\n };\n var delta = e.pageX - brushMoveStartX;\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - prevValue);\n } else if (delta < 0) {\n delta = Math.max(delta, x - prevValue);\n }\n params[movingTravellerId] = prevValue + delta;\n var newIndex = getIndex(params);\n var {\n startIndex,\n endIndex\n } = newIndex;\n var isFullGap = () => {\n var lastIndex = data.length - 1;\n if (movingTravellerId === 'startX' && (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0) || endX < startX && endIndex === lastIndex || movingTravellerId === 'endX' && (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0) || endX > startX && endIndex === lastIndex) {\n return true;\n }\n return false;\n };\n this.setState(\n // @ts-expect-error not sure why typescript is not happy with this, partial update is fine in React\n {\n [movingTravellerId]: prevValue + delta,\n brushMoveStartX: e.pageX\n }, () => {\n if (onChange) {\n if (isFullGap()) {\n onChange(newIndex);\n }\n }\n });\n }\n render() {\n var {\n data,\n className,\n children,\n x,\n y,\n dy,\n width,\n height,\n alwaysShowText,\n fill,\n stroke,\n startIndex,\n endIndex,\n travellerWidth,\n tickFormatter,\n dataKey,\n padding\n } = this.props;\n var {\n startX,\n endX,\n isTextActive,\n isSlideMoving,\n isTravellerMoving,\n isTravellerFocused\n } = this.state;\n if (!data || !data.length || !isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || width <= 0 || height <= 0) {\n return null;\n }\n var layerClass = clsx('recharts-brush', className);\n var style = generatePrefixStyle('userSelect', 'none');\n var calculatedY = y + (dy !== null && dy !== void 0 ? dy : 0);\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass,\n onMouseLeave: this.handleLeaveWrapper,\n onTouchMove: this.handleTouchMove,\n style: style\n }, /*#__PURE__*/React.createElement(Background, {\n x: x,\n y: calculatedY,\n width: width,\n height: height,\n fill: fill,\n stroke: stroke\n }), /*#__PURE__*/React.createElement(PanoramaContextProvider, null, /*#__PURE__*/React.createElement(Panorama, {\n x: x,\n y: calculatedY,\n width: width,\n height: height,\n data: data,\n padding: padding\n }, children)), /*#__PURE__*/React.createElement(Slide, {\n y: calculatedY,\n height: height,\n stroke: stroke,\n travellerWidth: travellerWidth,\n startX: startX,\n endX: endX,\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.handleSlideDragStart,\n onTouchStart: this.handleSlideDragStart\n }), /*#__PURE__*/React.createElement(TravellerLayer, {\n travellerX: startX,\n id: \"startX\",\n otherProps: _objectSpread(_objectSpread({}, this.props), {}, {\n y: calculatedY\n }),\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.travellerDragStartHandlers.startX,\n onTouchStart: this.travellerDragStartHandlers.startX,\n onTravellerMoveKeyboard: this.handleTravellerMoveKeyboard,\n onFocus: () => {\n this.setState({\n isTravellerFocused: true\n });\n },\n onBlur: () => {\n this.setState({\n isTravellerFocused: false\n });\n }\n }), /*#__PURE__*/React.createElement(TravellerLayer, {\n travellerX: endX,\n id: \"endX\",\n otherProps: _objectSpread(_objectSpread({}, this.props), {}, {\n y: calculatedY\n }),\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.travellerDragStartHandlers.endX,\n onTouchStart: this.travellerDragStartHandlers.endX,\n onTravellerMoveKeyboard: this.handleTravellerMoveKeyboard,\n onFocus: () => {\n this.setState({\n isTravellerFocused: true\n });\n },\n onBlur: () => {\n this.setState({\n isTravellerFocused: false\n });\n }\n }), (isTextActive || isSlideMoving || isTravellerMoving || isTravellerFocused || alwaysShowText) && /*#__PURE__*/React.createElement(BrushText, {\n startIndex: startIndex,\n endIndex: endIndex,\n y: calculatedY,\n height: height,\n travellerWidth: travellerWidth,\n stroke: stroke,\n tickFormatter: tickFormatter,\n dataKey: dataKey,\n data: data,\n startX: startX,\n endX: endX\n }));\n }\n}\nfunction BrushInternal(props) {\n var dispatch = useAppDispatch();\n var chartData = useChartData();\n var dataIndexes = useDataIndex();\n var onChangeFromContext = useContext(BrushUpdateDispatchContext);\n var onChangeFromProps = props.onChange;\n var {\n startIndex: startIndexFromProps,\n endIndex: endIndexFromProps\n } = props;\n useEffect(() => {\n // start and end index can be controlled from props, and we need them to stay up-to-date in the Redux state too\n dispatch(setDataStartEndIndexes({\n startIndex: startIndexFromProps,\n endIndex: endIndexFromProps\n }));\n }, [dispatch, endIndexFromProps, startIndexFromProps]);\n useBrushChartSynchronisation();\n var onChange = useCallback(nextState => {\n if (dataIndexes == null) {\n return;\n }\n var {\n startIndex,\n endIndex\n } = dataIndexes;\n if (nextState.startIndex !== startIndex || nextState.endIndex !== endIndex) {\n onChangeFromContext === null || onChangeFromContext === void 0 || onChangeFromContext(nextState);\n onChangeFromProps === null || onChangeFromProps === void 0 || onChangeFromProps(nextState);\n dispatch(setDataStartEndIndexes(nextState));\n }\n }, [onChangeFromProps, onChangeFromContext, dispatch, dataIndexes]);\n var brushDimensions = useAppSelector(selectBrushDimensions);\n if (brushDimensions == null || dataIndexes == null || chartData == null || !chartData.length) {\n return null;\n }\n var {\n startIndex,\n endIndex\n } = dataIndexes;\n var {\n x,\n y,\n width\n } = brushDimensions;\n var contextProperties = {\n data: chartData,\n x,\n y,\n width,\n startIndex,\n endIndex,\n onChange\n };\n return /*#__PURE__*/React.createElement(BrushWithState, _extends({}, props, contextProperties, {\n startIndexControlledFromProps: startIndexFromProps !== null && startIndexFromProps !== void 0 ? startIndexFromProps : undefined,\n endIndexControlledFromProps: endIndexFromProps !== null && endIndexFromProps !== void 0 ? endIndexFromProps : undefined\n }));\n}\nfunction BrushSettingsDispatcher(props) {\n var dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(setBrushSettings(props));\n return () => {\n dispatch(setBrushSettings(null));\n };\n }, [dispatch, props]);\n return null;\n}\nexport var defaultBrushProps = {\n height: 40,\n travellerWidth: 5,\n gap: 1,\n fill: '#fff',\n stroke: '#666',\n padding: {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n },\n leaveTimeOut: 1000,\n alwaysShowText: false\n};\n\n/**\n * Renders a scrollbar that allows the user to zoom and pan in the chart along its XAxis.\n * It also allows you to render a small overview of the chart inside the brush that is always visible\n * and shows the full data set so that the user can see where they are zoomed in.\n *\n * If a chart is synchronized with other charts using the `syncId` prop on the chart,\n * the brush will also synchronize the zooming and panning between all synchronized charts.\n *\n * @see {@link https://recharts.github.io/en-US/examples/BrushBarChart/ BarChart with Brush}\n * @see {@link https://recharts.github.io/en-US/examples/SynchronizedLineChart/ Synchronized Brush}\n *\n * @consumes CartesianChartContext\n */\nexport function Brush(outsideProps) {\n var props = resolveDefaultProps(outsideProps, defaultBrushProps);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(BrushSettingsDispatcher, {\n height: props.height,\n x: props.x,\n y: props.y,\n width: props.width,\n padding: props.padding\n }), /*#__PURE__*/React.createElement(BrushInternal, props));\n}\nBrush.displayName = 'Brush';", "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); }\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nexport var generatePrefixStyle = (name, value) => {\n if (!name) {\n return undefined;\n }\n var camelName = name.replace(/(\\w)/, v => v.toUpperCase());\n var result = PREFIX_LIST.reduce((res, entry) => _objectSpread(_objectSpread({}, res), {}, {\n [entry + camelName]: value\n }), {});\n result[name] = value;\n return result;\n};", "import { useEffect } from 'react';\nimport { setChartData, setComputedData } from '../state/chartDataSlice';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { useIsPanorama } from './PanoramaContext';\nexport var ChartDataContextProvider = props => {\n var {\n chartData\n } = props;\n var dispatch = useAppDispatch();\n var isPanorama = useIsPanorama();\n useEffect(() => {\n if (isPanorama) {\n // Panorama mode reuses data from the main chart, so we must not overwrite it here.\n return () => {\n // there is nothing to clean up\n };\n }\n dispatch(setChartData(chartData));\n return () => {\n dispatch(setChartData(undefined));\n };\n }, [chartData, dispatch, isPanorama]);\n return null;\n};\nexport var SetComputedData = props => {\n var {\n computedData\n } = props;\n var dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(setComputedData(computedData));\n return () => {\n dispatch(setChartData(undefined));\n };\n }, [computedData, dispatch]);\n return null;\n};\nvar selectChartData = state => state.chartData.chartData;\n\n/**\n * \"data\" is the data of the chart - it has no type because this part of recharts is very flexible.\n * Basically it's an array of \"something\" and then there's the dataKey property in various places\n * that's meant to pull other things away from the data.\n *\n * Some charts have `data` defined on the chart root, and they will return the array through this hook.\n * For example: <ComposedChart data={data} />.\n *\n * Other charts, such as Pie, have data defined on individual graphical elements.\n * These charts will return `undefined` through this hook, and you need to read the data from children.\n * For example: <PieChart><Pie data={data} />\n *\n * Some charts also allow setting both - data on the parent, and data on the children at the same time!\n * However, this particular selector will only return the ones defined on the parent.\n *\n * @deprecated use one of the other selectors instead - which one, depends on how do you identify the applicable graphical items.\n *\n * @return data array for some charts and undefined for other\n */\nexport var useChartData = () => useAppSelector(selectChartData);\nvar selectDataIndex = state => {\n var {\n dataStartIndex,\n dataEndIndex\n } = state.chartData;\n return {\n startIndex: dataStartIndex,\n endIndex: dataEndIndex\n };\n};\n\n/**\n * startIndex and endIndex are data boundaries, set through Brush.\n *\n * @return object with startIndex and endIndex\n */\nexport var useDataIndex = () => {\n return useAppSelector(selectDataIndex);\n};", "import { createContext } from 'react';\nexport var BrushUpdateDispatchContext = /*#__PURE__*/createContext(() => {});", "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;", "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 Reference Line\n */\nimport * as React from 'react';\nimport { useEffect } from 'react';\nimport { clsx } from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { CartesianLabelContextProvider, CartesianLabelFromLabelProp } from '../component/Label';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { rectWithCoords } from '../util/CartesianUtils';\nimport { useViewBox } from '../context/chartLayoutContext';\nimport { addLine, removeLine } from '../state/referenceElementsSlice';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { selectAxisScale, selectXAxisSettings, selectYAxisSettings } from '../state/selectors/axisSelectors';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { useClipPathId } from '../container/ClipPathProvider';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { isWellBehavedNumber } from '../util/isWellBehavedNumber';\nimport { CartesianScaleHelperImpl } from '../util/scale/CartesianScaleHelper';\n\n/**\n * Single point that defines one end of a segment.\n * These coordinates are in data space, meaning that you should provide\n * values that correspond to the data domain of the axes.\n * So you would provide a value of `Page A` to indicate the data value `Page A`\n * and then recharts will convert that to pixels.\n *\n * Likewise for numbers. If your x-axis goes from 0 to 100,\n * and you want the line to end at 50, you would provide `50` here.\n *\n * @inline\n */\n\n/**\n * This excludes `viewBox` prop from svg for two reasons:\n * 1. The components wants viewBox of object type, and svg wants string\n * - so there's a conflict, and the component will throw if it gets string\n * 2. Internally the component calls `svgPropertiesNoEvents` which filters the viewBox away anyway\n */\n\nvar renderLine = (option, props) => {\n var line;\n if (/*#__PURE__*/React.isValidElement(option)) {\n // @ts-expect-error element cloning is not typed\n line = /*#__PURE__*/React.cloneElement(option, props);\n } else if (typeof option === 'function') {\n line = option(props);\n } else {\n if (!isWellBehavedNumber(props.x1) || !isWellBehavedNumber(props.y1) || !isWellBehavedNumber(props.x2) || !isWellBehavedNumber(props.y2)) {\n return null;\n }\n line = /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: \"recharts-reference-line-line\"\n }));\n }\n return line;\n};\nvar getHorizontalLineEndPoints = (yCoord, ifOverflow, position, yAxisOrientation, yAxisScale, viewBox) => {\n var {\n x,\n width\n } = viewBox;\n var coord = yAxisScale.map(yCoord, {\n position\n });\n // don't render the line if the scale can't compute a result that makes sense\n if (!isWellBehavedNumber(coord)) {\n return null;\n }\n if (ifOverflow === 'discard' && !yAxisScale.isInRange(coord)) {\n return null;\n }\n var points = [{\n x: x + width,\n y: coord\n }, {\n x,\n y: coord\n }];\n return yAxisOrientation === 'left' ? points.reverse() : points;\n};\nvar getVerticalLineEndPoints = (xCoord, ifOverflow, position, xAxisOrientation, xAxisScale, viewBox) => {\n var {\n y,\n height\n } = viewBox;\n var coord = xAxisScale.map(xCoord, {\n position\n });\n // don't render the line if the scale can't compute a result that makes sense\n if (!isWellBehavedNumber(coord)) {\n return null;\n }\n if (ifOverflow === 'discard' && !xAxisScale.isInRange(coord)) {\n return null;\n }\n var points = [{\n x: coord,\n y: y + height\n }, {\n x: coord,\n y\n }];\n return xAxisOrientation === 'top' ? points.reverse() : points;\n};\nvar getSegmentLineEndPoints = (segment, ifOverflow, position, scales) => {\n var points = [scales.mapWithFallback(segment[0], {\n position,\n fallback: 'rangeMin'\n }), scales.mapWithFallback(segment[1], {\n position,\n fallback: 'rangeMax'\n })];\n if (ifOverflow === 'discard' && points.some(p => !scales.isInRange(p))) {\n return null;\n }\n return points;\n};\nexport var getEndPoints = (xAxisScale, yAxisScale, viewBox, position, xAxisOrientation, yAxisOrientation, props) => {\n var {\n x: xCoord,\n y: yCoord,\n segment,\n ifOverflow\n } = props;\n var isFixedX = isNumOrStr(xCoord);\n var isFixedY = isNumOrStr(yCoord);\n if (isFixedY) {\n return getHorizontalLineEndPoints(yCoord, ifOverflow, position, yAxisOrientation, yAxisScale, viewBox);\n }\n if (isFixedX) {\n return getVerticalLineEndPoints(xCoord, ifOverflow, position, xAxisOrientation, xAxisScale, viewBox);\n }\n if (segment != null && segment.length === 2) {\n return getSegmentLineEndPoints(segment, ifOverflow, position, new CartesianScaleHelperImpl({\n x: xAxisScale,\n y: yAxisScale\n }));\n }\n return null;\n};\nfunction ReportReferenceLine(props) {\n var dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(addLine(props));\n return () => {\n dispatch(removeLine(props));\n };\n });\n return null;\n}\nfunction ReferenceLineImpl(props) {\n var {\n xAxisId,\n yAxisId,\n shape,\n className,\n ifOverflow\n } = props;\n var isPanorama = useIsPanorama();\n var clipPathId = useClipPathId();\n var xAxis = useAppSelector(state => selectXAxisSettings(state, xAxisId));\n var yAxis = useAppSelector(state => selectYAxisSettings(state, yAxisId));\n var xAxisScale = useAppSelector(state => selectAxisScale(state, 'xAxis', xAxisId, isPanorama));\n var yAxisScale = useAppSelector(state => selectAxisScale(state, 'yAxis', yAxisId, isPanorama));\n var viewBox = useViewBox();\n if (!clipPathId || !viewBox || xAxis == null || yAxis == null || xAxisScale == null || yAxisScale == null) {\n return null;\n }\n var endPoints = getEndPoints(xAxisScale, yAxisScale, viewBox, props.position, xAxis.orientation, yAxis.orientation, props);\n if (!endPoints) {\n return null;\n }\n var point1 = endPoints[0];\n var point2 = endPoints[1];\n if (point1 == null || point2 == null) {\n return null;\n }\n var {\n x: x1,\n y: y1\n } = point1;\n var {\n x: x2,\n y: y2\n } = point2;\n var clipPath = ifOverflow === 'hidden' ? \"url(#\".concat(clipPathId, \")\") : undefined;\n var lineProps = _objectSpread(_objectSpread({\n clipPath\n }, svgPropertiesAndEvents(props)), {}, {\n x1,\n y1,\n x2,\n y2\n });\n var rect = rectWithCoords({\n x1,\n y1,\n x2,\n y2\n });\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: props.zIndex\n }, /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-line', className)\n }, renderLine(shape, lineProps), /*#__PURE__*/React.createElement(CartesianLabelContextProvider, _extends({}, rect, {\n lowerWidth: rect.width,\n upperWidth: rect.width\n }), /*#__PURE__*/React.createElement(CartesianLabelFromLabelProp, {\n label: props.label\n }), props.children)));\n}\nexport var referenceLineDefaultProps = {\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n fill: 'none',\n label: false,\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1,\n position: 'middle',\n zIndex: DefaultZIndexes.line\n};\n/**\n * Draws a line on the chart connecting two points.\n *\n * This component, unlike {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/line line}, is aware of the cartesian coordinate system,\n * so you specify the dimensions by using data coordinates instead of pixels.\n *\n * ReferenceLine will calculate the pixels based on the provided data coordinates.\n *\n * If you prefer to render using pixels rather than data coordinates,\n * consider using the {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/line line SVG element} instead.\n *\n * @provides CartesianLabelContext\n * @consumes CartesianChartContext\n */\nexport function ReferenceLine(outsideProps) {\n var props = resolveDefaultProps(outsideProps, referenceLineDefaultProps);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportReferenceLine, {\n yAxisId: props.yAxisId,\n xAxisId: props.xAxisId,\n ifOverflow: props.ifOverflow,\n x: props.x,\n y: props.y,\n segment: props.segment\n }), /*#__PURE__*/React.createElement(ReferenceLineImpl, props));\n}\nReferenceLine.displayName = 'ReferenceLine';", "export var rectWithPoints = (_ref, _ref2) => {\n var {\n x: x1,\n y: y1\n } = _ref;\n var {\n x: x2,\n y: y2\n } = _ref2;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\nexport var rectWithCoords = _ref3 => {\n var {\n x1,\n y1,\n x2,\n y2\n } = _ref3;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\n\n/** Normalizes the angle so that 0 <= angle < 180.\n * @param {number} angle Angle in degrees.\n * @return {number} the normalized angle with a value of at least 0 and never greater or equal to 180. */\nexport function normalizeAngle(angle) {\n return (angle % 180 + 180) % 180;\n}\n\n/** Calculates the width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n * @param {Object} size Width and height of the text in a horizontal position.\n * @param {number} angle Angle in degrees in which the text is displayed.\n * @return {number} The width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n */\nexport var getAngledRectangleWidth = function getAngledRectangleWidth(_ref4) {\n var {\n width,\n height\n } = _ref4;\n var angle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Ensure angle is >= 0 && < 180\n var normalizedAngle = normalizeAngle(angle);\n var angleRadians = normalizedAngle * Math.PI / 180;\n\n /* Depending on the height and width of the rectangle, we may need to use different formulas to calculate the angled\n * width. This threshold defines when each formula should kick in. */\n var angleThreshold = Math.atan(height / width);\n var angledWidth = angleRadians > angleThreshold && angleRadians < Math.PI - angleThreshold ? height / Math.sin(angleRadians) : width / Math.cos(angleRadians);\n return Math.abs(angledWidth);\n};", "import { createSlice, current } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\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(castDraft(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 * 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};", "/**\n * Groups X and Y scale functions together and provides helper methods.\n */\nexport class CartesianScaleHelperImpl {\n constructor(_ref) {\n var {\n x,\n y\n } = _ref;\n this.xAxisScale = x;\n this.yAxisScale = y;\n }\n map(value, _ref2) {\n var _this$xAxisScale$map, _this$yAxisScale$map;\n var {\n position\n } = _ref2;\n return {\n x: (_this$xAxisScale$map = this.xAxisScale.map(value.x, {\n position\n })) !== null && _this$xAxisScale$map !== void 0 ? _this$xAxisScale$map : 0,\n y: (_this$yAxisScale$map = this.yAxisScale.map(value.y, {\n position\n })) !== null && _this$yAxisScale$map !== void 0 ? _this$yAxisScale$map : 0\n };\n }\n mapWithFallback(value, _ref3) {\n var _this$xAxisScale$map2, _this$yAxisScale$map2;\n var {\n position,\n fallback\n } = _ref3;\n var fallbackY, fallbackX;\n if (fallback === 'rangeMin') {\n fallbackY = this.yAxisScale.rangeMin();\n } else if (fallback === 'rangeMax') {\n fallbackY = this.yAxisScale.rangeMax();\n } else {\n fallbackY = 0;\n }\n if (fallback === 'rangeMin') {\n fallbackX = this.xAxisScale.rangeMin();\n } else if (fallback === 'rangeMax') {\n fallbackX = this.xAxisScale.rangeMax();\n } else {\n fallbackX = 0;\n }\n return {\n x: (_this$xAxisScale$map2 = this.xAxisScale.map(value.x, {\n position\n })) !== null && _this$xAxisScale$map2 !== void 0 ? _this$xAxisScale$map2 : fallbackX,\n y: (_this$yAxisScale$map2 = this.yAxisScale.map(value.y, {\n position\n })) !== null && _this$yAxisScale$map2 !== void 0 ? _this$yAxisScale$map2 : fallbackY\n };\n }\n isInRange(_ref4) {\n var {\n x,\n y\n } = _ref4;\n var xInRange = x == null || this.xAxisScale.isInRange(x);\n var yInRange = y == null || this.yAxisScale.isInRange(y);\n return xInRange && yInRange;\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); }\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 { useEffect } from 'react';\nimport { clsx } from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Dot } from '../shape/Dot';\nimport { CartesianLabelContextProvider, CartesianLabelFromLabelProp } from '../component/Label';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { addDot, removeDot } from '../state/referenceElementsSlice';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { selectAxisScale } from '../state/selectors/axisSelectors';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { useClipPathId } from '../container/ClipPathProvider';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { CartesianScaleHelperImpl } from '../util/scale/CartesianScaleHelper';\nvar useCoordinate = (x, y, xAxisId, yAxisId, ifOverflow) => {\n var isX = isNumOrStr(x);\n var isY = isNumOrStr(y);\n var isPanorama = useIsPanorama();\n var xAxisScale = useAppSelector(state => selectAxisScale(state, 'xAxis', xAxisId, isPanorama));\n var yAxisScale = useAppSelector(state => selectAxisScale(state, 'yAxis', yAxisId, isPanorama));\n if (!isX || !isY || xAxisScale == null || yAxisScale == null) {\n return null;\n }\n var scales = new CartesianScaleHelperImpl({\n x: xAxisScale,\n y: yAxisScale\n });\n var result = scales.map({\n x,\n y\n }, {\n position: 'middle'\n });\n if (ifOverflow === 'discard' && !scales.isInRange(result)) {\n return null;\n }\n return result;\n};\nfunction ReportReferenceDot(props) {\n var dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(addDot(props));\n return () => {\n dispatch(removeDot(props));\n };\n });\n return null;\n}\nvar renderDot = (option, props) => {\n var dot;\n if (/*#__PURE__*/React.isValidElement(option)) {\n // @ts-expect-error element cloning is not typed\n dot = /*#__PURE__*/React.cloneElement(option, props);\n } else if (typeof option === 'function') {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n cx: props.cx,\n cy: props.cy,\n className: \"recharts-reference-dot-dot\"\n }));\n }\n return dot;\n};\nfunction ReferenceDotImpl(props) {\n var {\n x,\n y,\n r\n } = props;\n var clipPathId = useClipPathId();\n var coordinate = useCoordinate(x, y, props.xAxisId, props.yAxisId, props.ifOverflow);\n if (!coordinate) {\n return null;\n }\n var {\n x: cx,\n y: cy\n } = coordinate;\n var {\n shape,\n className,\n ifOverflow\n } = props;\n var clipPath = ifOverflow === 'hidden' ? \"url(#\".concat(clipPathId, \")\") : undefined;\n var dotProps = _objectSpread(_objectSpread({\n clipPath\n }, svgPropertiesAndEvents(props)), {}, {\n cx: cx !== null && cx !== void 0 ? cx : undefined,\n cy: cy !== null && cy !== void 0 ? cy : undefined\n });\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: props.zIndex\n }, /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-dot', className)\n }, renderDot(shape, dotProps), /*#__PURE__*/React.createElement(CartesianLabelContextProvider, {\n x: cx - r,\n y: cy - r,\n width: 2 * r,\n height: 2 * r,\n upperWidth: 2 * r,\n lowerWidth: 2 * r\n }, /*#__PURE__*/React.createElement(CartesianLabelFromLabelProp, {\n label: props.label\n }), props.children)));\n}\nexport var referenceDotDefaultProps = {\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n label: false,\n fill: '#fff',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1,\n zIndex: DefaultZIndexes.scatter\n};\n/**\n * Draws a circle on the chart to highlight a specific point.\n *\n * This component, unlike {@link Dot} or {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/circle circle}, is aware of the cartesian coordinate system,\n * so you specify its center by using data coordinates instead of pixels.\n *\n * ReferenceDot will calculate the pixels based on the provided data coordinates.\n *\n * If you prefer to render dots using pixels rather than data coordinates,\n * consider using the {@link Dot} component instead.\n *\n * @provides CartesianLabelContext\n * @consumes CartesianChartContext\n */\nexport function ReferenceDot(outsideProps) {\n var props = resolveDefaultProps(outsideProps, referenceDotDefaultProps);\n var {\n x,\n y,\n r,\n ifOverflow,\n yAxisId,\n xAxisId\n } = props;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportReferenceDot, {\n y: y,\n x: x,\n r: r,\n yAxisId: yAxisId,\n xAxisId: xAxisId,\n ifOverflow: ifOverflow\n }), /*#__PURE__*/React.createElement(ReferenceDotImpl, props));\n}\nReferenceDot.displayName = 'ReferenceDot';", "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 { useEffect } from 'react';\nimport { clsx } from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { CartesianLabelContextProvider, CartesianLabelFromLabelProp } from '../component/Label';\nimport { rectWithPoints } from '../util/CartesianUtils';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { Rectangle } from '../shape/Rectangle';\nimport { addArea, removeArea } from '../state/referenceElementsSlice';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { selectAxisScale } from '../state/selectors/axisSelectors';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { useClipPathId } from '../container/ClipPathProvider';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { CartesianScaleHelperImpl } from '../util/scale/CartesianScaleHelper';\n\n/*\n * Omit width, height, x, y from SVGPropsAndEvents because ReferenceArea receives x1, x2, y1, y2 instead.\n * The position is calculated internally instead.\n */\n\nvar getRect = (hasX1, hasX2, hasY1, hasY2, xAxisScale, yAxisScale, props) => {\n var _xAxisScale$map, _yAxisScale$map, _xAxisScale$map2, _yAxisScale$map2;\n var {\n x1: xValue1,\n x2: xValue2,\n y1: yValue1,\n y2: yValue2\n } = props;\n if (xAxisScale == null || yAxisScale == null) {\n return null;\n }\n var scales = new CartesianScaleHelperImpl({\n x: xAxisScale,\n y: yAxisScale\n });\n var p1 = {\n x: hasX1 ? (_xAxisScale$map = xAxisScale.map(xValue1, {\n position: 'start'\n })) !== null && _xAxisScale$map !== void 0 ? _xAxisScale$map : null : xAxisScale.rangeMin(),\n y: hasY1 ? (_yAxisScale$map = yAxisScale.map(yValue1, {\n position: 'start'\n })) !== null && _yAxisScale$map !== void 0 ? _yAxisScale$map : null : yAxisScale.rangeMin()\n };\n var p2 = {\n x: hasX2 ? (_xAxisScale$map2 = xAxisScale.map(xValue2, {\n position: 'end'\n })) !== null && _xAxisScale$map2 !== void 0 ? _xAxisScale$map2 : null : xAxisScale.rangeMax(),\n y: hasY2 ? (_yAxisScale$map2 = yAxisScale.map(yValue2, {\n position: 'end'\n })) !== null && _yAxisScale$map2 !== void 0 ? _yAxisScale$map2 : null : yAxisScale.rangeMax()\n };\n if (props.ifOverflow === 'discard' && (!scales.isInRange(p1) || !scales.isInRange(p2))) {\n return null;\n }\n\n // @ts-expect-error we're sending nullable coordinates but rectWithPoints expects non-nullable Coordinate\n return rectWithPoints(p1, p2);\n};\nvar renderRect = (option, props) => {\n var rect;\n if (/*#__PURE__*/React.isValidElement(option)) {\n // @ts-expect-error element cloning is not typed\n rect = /*#__PURE__*/React.cloneElement(option, props);\n } else if (typeof option === 'function') {\n rect = option(props);\n } else {\n rect = /*#__PURE__*/React.createElement(Rectangle, _extends({}, props, {\n className: \"recharts-reference-area-rect\"\n }));\n }\n return rect;\n};\nfunction ReportReferenceArea(props) {\n var dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(addArea(props));\n return () => {\n dispatch(removeArea(props));\n };\n });\n return null;\n}\nfunction ReferenceAreaImpl(props) {\n var {\n x1,\n x2,\n y1,\n y2,\n className,\n shape,\n xAxisId,\n yAxisId\n } = props;\n var clipPathId = useClipPathId();\n var isPanorama = useIsPanorama();\n var xAxisScale = useAppSelector(state => selectAxisScale(state, 'xAxis', xAxisId, isPanorama));\n var yAxisScale = useAppSelector(state => selectAxisScale(state, 'yAxis', yAxisId, isPanorama));\n if (xAxisScale == null || yAxisScale == null) {\n return null;\n }\n var hasX1 = isNumOrStr(x1);\n var hasX2 = isNumOrStr(x2);\n var hasY1 = isNumOrStr(y1);\n var hasY2 = isNumOrStr(y2);\n if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {\n return null;\n }\n var rect = getRect(hasX1, hasX2, hasY1, hasY2, xAxisScale, yAxisScale, props);\n if (!rect && !shape) {\n return null;\n }\n var isOverflowHidden = props.ifOverflow === 'hidden';\n var clipPath = isOverflowHidden ? \"url(#\".concat(clipPathId, \")\") : undefined;\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: props.zIndex\n }, /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-area', className)\n }, renderRect(shape, _objectSpread(_objectSpread({\n clipPath\n }, svgPropertiesAndEvents(props)), rect)), rect != null && /*#__PURE__*/React.createElement(CartesianLabelContextProvider, _extends({}, rect, {\n lowerWidth: rect.width,\n upperWidth: rect.width\n }), /*#__PURE__*/React.createElement(CartesianLabelFromLabelProp, {\n label: props.label\n }), props.children)));\n}\nexport var referenceAreaDefaultProps = {\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n radius: 0,\n fill: '#ccc',\n label: false,\n fillOpacity: 0.5,\n stroke: 'none',\n strokeWidth: 1,\n zIndex: DefaultZIndexes.area\n};\n/**\n * Draws a rectangular area on the chart to highlight a specific range.\n *\n * This component, unlike {@link Rectangle} or {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/rect rect}, is aware of the cartesian coordinate system,\n * so you specify the area by using data coordinates instead of pixels.\n *\n * ReferenceArea will calculate the pixels based on the provided data coordinates.\n *\n * If you prefer to render rectangles using pixels rather than data coordinates,\n * consider using the {@link Rectangle} component instead.\n *\n * @provides CartesianLabelContext\n * @consumes CartesianChartContext\n */\nexport function ReferenceArea(outsideProps) {\n var props = resolveDefaultProps(outsideProps, referenceAreaDefaultProps);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportReferenceArea, {\n yAxisId: props.yAxisId,\n xAxisId: props.xAxisId,\n ifOverflow: props.ifOverflow,\n x1: props.x1,\n x2: props.x2,\n y1: props.y1,\n y2: props.y2\n }), /*#__PURE__*/React.createElement(ReferenceAreaImpl, props));\n}\nReferenceArea.displayName = 'ReferenceArea';", "var _excluded = [\"axisLine\", \"width\", \"height\", \"className\", \"hide\", \"ticks\", \"axisType\", \"axisId\"];\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Cartesian Axis\n */\nimport * as React from 'react';\nimport { useState, useRef, useCallback, forwardRef, useImperativeHandle, useEffect } from 'react';\nimport get from 'es-toolkit/compat/get';\nimport { clsx } from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Text, isValidTextAnchor } from '../component/Text';\nimport { CartesianLabelContextProvider, CartesianLabelFromLabelProp } from '../component/Label';\nimport { isNumber, noop } from '../util/DataUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { getTicks } from './getTicks';\nimport { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { getCalculatedYAxisWidth } from '../util/YAxisUtils';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { getClassNameFromUnknown } from '../util/getClassNameFromUnknown';\nimport { removeRenderedTicks, setRenderedTicks } from '../state/renderedTicksSlice';\nimport { useAppDispatch } from '../state/hooks';\n\n/** The orientation of the axis in correspondence to the chart */\n\n/** A unit to be appended to a value */\n\n/** The formatter function of tick */\n\nexport var defaultCartesianAxisProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd',\n zIndex: DefaultZIndexes.axis\n};\n\n/*\n * `viewBox` and `scale` are SVG attributes.\n * Recharts however - unfortunately - has its own attributes named `viewBox` and `scale`\n * that are completely different data shape and different purpose.\n */\n\nfunction AxisLine(axisLineProps) {\n var {\n x,\n y,\n width,\n height,\n orientation,\n mirror,\n axisLine,\n otherSvgProps\n } = axisLineProps;\n if (!axisLine) {\n return null;\n }\n var props = _objectSpread(_objectSpread(_objectSpread({}, otherSvgProps), svgPropertiesNoEvents(axisLine)), {}, {\n fill: 'none'\n });\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: clsx('recharts-cartesian-axis-line', get(axisLine, 'className'))\n }));\n}\n\n/**\n * Calculate the coordinates of endpoints in ticks.\n * @param data The data of a simple tick.\n * @param x The x-coordinate of the axis.\n * @param y The y-coordinate of the axis.\n * @param width The width of the axis.\n * @param height The height of the axis.\n * @param orientation The orientation of the axis.\n * @param tickSize The length of the tick line.\n * @param mirror If true, the ticks are mirrored.\n * @param tickMargin The margin between the tick line and the tick text.\n * @returns An object with `line` and `tick` coordinates.\n * `line` is the coordinates for the tick line, and `tick` is the coordinate for the tick text.\n */\nfunction getTickLineCoord(data, x, y, width, height, orientation, tickSize, mirror, tickMargin) {\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + +!mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + +!mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + +mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n default:\n x1 = x2 = data.coordinate;\n y2 = y + +mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n return {\n line: {\n x1,\n y1,\n x2,\n y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n}\n\n/**\n * @param orientation The orientation of the axis.\n * @param mirror If true, the ticks are mirrored.\n * @returns The text anchor of the tick.\n */\nfunction getTickTextAnchor(orientation, mirror) {\n switch (orientation) {\n case 'left':\n return mirror ? 'start' : 'end';\n case 'right':\n return mirror ? 'end' : 'start';\n default:\n return 'middle';\n }\n}\n\n/**\n * @param orientation The orientation of the axis.\n * @param mirror If true, the ticks are mirrored.\n * @returns The vertical text anchor of the tick.\n */\nfunction getTickVerticalAnchor(orientation, mirror) {\n switch (orientation) {\n case 'left':\n case 'right':\n return 'middle';\n case 'top':\n return mirror ? 'start' : 'end';\n default:\n return mirror ? 'end' : 'start';\n }\n}\nfunction TickItem(props) {\n var {\n option,\n tickProps,\n value\n } = props;\n var tickItem;\n var combinedClassName = clsx(tickProps.className, 'recharts-cartesian-axis-tick-value');\n if (/*#__PURE__*/React.isValidElement(option)) {\n // @ts-expect-error element cloning is not typed\n tickItem = /*#__PURE__*/React.cloneElement(option, _objectSpread(_objectSpread({}, tickProps), {}, {\n className: combinedClassName\n }));\n } else if (typeof option === 'function') {\n tickItem = option(_objectSpread(_objectSpread({}, tickProps), {}, {\n className: combinedClassName\n }));\n } else {\n var className = 'recharts-cartesian-axis-tick-value';\n if (typeof option !== 'boolean') {\n className = clsx(className, getClassNameFromUnknown(option));\n }\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, tickProps, {\n className: className\n }), value);\n }\n return tickItem;\n}\nfunction RenderedTicksReporter(_ref) {\n var {\n ticks,\n axisType,\n axisId\n } = _ref;\n var dispatch = useAppDispatch();\n useEffect(() => {\n if (axisId == null || axisType == null) {\n return noop;\n }\n // Filter out irrelevant internal properties before exposing externally\n var tickItems = ticks.map(tick => ({\n value: tick.value,\n coordinate: tick.coordinate,\n offset: tick.offset,\n index: tick.index\n }));\n dispatch(setRenderedTicks({\n ticks: tickItems,\n axisId,\n axisType\n }));\n return () => {\n dispatch(removeRenderedTicks({\n axisId,\n axisType\n }));\n };\n }, [dispatch, ticks, axisId, axisType]);\n return null;\n}\nvar Ticks = /*#__PURE__*/forwardRef((props, ref) => {\n var {\n ticks = [],\n tick,\n tickLine,\n stroke,\n tickFormatter,\n unit,\n padding,\n tickTextProps,\n orientation,\n mirror,\n x,\n y,\n width,\n height,\n tickSize,\n tickMargin,\n fontSize,\n letterSpacing,\n getTicksConfig,\n events,\n axisType,\n axisId\n } = props;\n // @ts-expect-error some properties are optional in props but required in getTicks\n var finalTicks = getTicks(_objectSpread(_objectSpread({}, getTicksConfig), {}, {\n ticks\n }), fontSize, letterSpacing);\n var axisProps = svgPropertiesNoEvents(getTicksConfig);\n var customTickProps = svgPropertiesNoEventsFromUnknown(tick);\n // Use user-provided textAnchor if available, otherwise calculate from orientation/mirror\n var textAnchor = isValidTextAnchor(axisProps.textAnchor) ? axisProps.textAnchor : getTickTextAnchor(orientation, mirror);\n var verticalAnchor = getTickVerticalAnchor(orientation, mirror);\n var tickLinePropsObject = {};\n if (typeof tickLine === 'object') {\n tickLinePropsObject = tickLine;\n }\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, tickLinePropsObject);\n var tickLineCoords = finalTicks.map(entry => _objectSpread({\n entry\n }, getTickLineCoord(entry, x, y, width, height, orientation, tickSize, mirror, tickMargin)));\n var tickLines = tickLineCoords.map(_ref2 => {\n var {\n entry,\n line: lineCoord\n } = _ref2;\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(entry.value, \"-\").concat(entry.coordinate, \"-\").concat(entry.tickCoord)\n }, tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({}, tickLineProps, lineCoord, {\n className: clsx('recharts-cartesian-axis-tick-line', get(tickLine, 'className'))\n })));\n });\n var tickLabels = tickLineCoords.map((_ref3, i) => {\n var _ref4, _tickTextProps$angle;\n var {\n entry,\n tick: tickCoord\n } = _ref3;\n // @ts-expect-error we're not checking that padding and orientation types are in sync\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n verticalAnchor\n }, axisProps), {}, {\n textAnchor,\n stroke: 'none',\n fill: stroke\n }, tickCoord), {}, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length,\n tickFormatter,\n padding\n }, tickTextProps), {}, {\n angle: (_ref4 = (_tickTextProps$angle = tickTextProps === null || tickTextProps === void 0 ? void 0 : tickTextProps.angle) !== null && _tickTextProps$angle !== void 0 ? _tickTextProps$angle : axisProps.angle) !== null && _ref4 !== void 0 ? _ref4 : 0\n });\n\n // @ts-expect-error customTickProps is contributing unknown props which we don't type properly\n var finalTickProps = _objectSpread(_objectSpread({}, tickProps), customTickProps);\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick-label\",\n key: \"tick-label-\".concat(entry.value, \"-\").concat(entry.coordinate, \"-\").concat(entry.tickCoord)\n }, adaptEventsOfChild(events, entry, i)), tick && /*#__PURE__*/React.createElement(TickItem, {\n option: tick,\n tickProps: finalTickProps,\n value: \"\".concat(typeof tickFormatter === 'function' ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')\n }));\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks recharts-\".concat(axisType, \"-ticks\")\n }, /*#__PURE__*/React.createElement(RenderedTicksReporter, {\n ticks: finalTicks,\n axisId: axisId,\n axisType: axisType\n }), tickLabels.length > 0 && /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: DefaultZIndexes.label\n }, /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-tick-labels recharts-\".concat(axisType, \"-tick-labels\"),\n ref: ref\n }, tickLabels)), tickLines.length > 0 && /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-tick-lines recharts-\".concat(axisType, \"-tick-lines\")\n }, tickLines));\n});\nvar CartesianAxisComponent = /*#__PURE__*/forwardRef((props, ref) => {\n var {\n axisLine,\n width,\n height,\n className,\n hide,\n ticks,\n axisType,\n axisId\n } = props,\n rest = _objectWithoutProperties(props, _excluded);\n var [fontSize, setFontSize] = useState('');\n var [letterSpacing, setLetterSpacing] = useState('');\n var tickRefs = useRef(null);\n useImperativeHandle(ref, () => ({\n getCalculatedWidth: () => {\n var _props$labelRef;\n return getCalculatedYAxisWidth({\n ticks: tickRefs.current,\n label: (_props$labelRef = props.labelRef) === null || _props$labelRef === void 0 ? void 0 : _props$labelRef.current,\n labelGapWithTick: 5,\n tickSize: props.tickSize,\n tickMargin: props.tickMargin\n });\n }\n }));\n var layerRef = useCallback(el => {\n if (el) {\n var tickNodes = el.getElementsByClassName('recharts-cartesian-axis-tick-value');\n tickRefs.current = tickNodes;\n var tick = tickNodes[0];\n if (tick) {\n var computedStyle = window.getComputedStyle(tick);\n var calculatedFontSize = computedStyle.fontSize;\n var calculatedLetterSpacing = computedStyle.letterSpacing;\n if (calculatedFontSize !== fontSize || calculatedLetterSpacing !== letterSpacing) {\n setFontSize(calculatedFontSize);\n setLetterSpacing(calculatedLetterSpacing);\n }\n }\n }\n }, [fontSize, letterSpacing]);\n if (hide) {\n return null;\n }\n\n /*\n * This is different condition from what validateWidthHeight is doing;\n * the CartesianAxis does allow width or height to be undefined.\n */\n if (width != null && width <= 0 || height != null && height <= 0) {\n return null;\n }\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: props.zIndex\n }, /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-cartesian-axis', className)\n }, /*#__PURE__*/React.createElement(AxisLine, {\n x: props.x,\n y: props.y,\n width: width,\n height: height,\n orientation: props.orientation,\n mirror: props.mirror,\n axisLine: axisLine,\n otherSvgProps: svgPropertiesNoEvents(props)\n }), /*#__PURE__*/React.createElement(Ticks, {\n ref: layerRef,\n axisType: axisType,\n events: rest,\n fontSize: fontSize,\n getTicksConfig: props,\n height: props.height,\n letterSpacing: letterSpacing,\n mirror: props.mirror,\n orientation: props.orientation,\n padding: props.padding,\n stroke: props.stroke,\n tick: props.tick,\n tickFormatter: props.tickFormatter,\n tickLine: props.tickLine,\n tickMargin: props.tickMargin,\n tickSize: props.tickSize,\n tickTextProps: props.tickTextProps,\n ticks: ticks,\n unit: props.unit,\n width: props.width,\n x: props.x,\n y: props.y,\n axisId: axisId\n }), /*#__PURE__*/React.createElement(CartesianLabelContextProvider, {\n x: props.x,\n y: props.y,\n width: props.width,\n height: props.height,\n lowerWidth: props.width,\n upperWidth: props.width\n }, /*#__PURE__*/React.createElement(CartesianLabelFromLabelProp, {\n label: props.label,\n labelRef: props.labelRef\n }), props.children)));\n});\n\n/**\n * @deprecated\n *\n * This component is not meant to be used directly in app code.\n * Use XAxis or YAxis instead.\n *\n * Starting from Recharts v4.0 we will make this component internal only.\n */\nexport var CartesianAxis = /*#__PURE__*/React.forwardRef((outsideProps, ref) => {\n var props = resolveDefaultProps(outsideProps, defaultCartesianAxisProps);\n return /*#__PURE__*/React.createElement(CartesianAxisComponent, _extends({}, props, {\n ref: ref\n }));\n});\nCartesianAxis.displayName = 'CartesianAxis';", "/**\n * Given an array and a number N, return a new array which contains every nTh\n * element of the input array. For n below 1, an empty array is returned.\n * For n equal to 1, the input array is returned as is.\n * For n greater than the length of the array, an array containing the first element\n * and every nTh element after that (if any) is returned.\n *\n * @param array An input array.\n * @param n A number specifying which elements to take.\n * @returns The result array of the same type as the input array.\n */\nexport function getEveryNth(array, n) {\n if (n < 1) {\n return [];\n }\n if (n === 1) {\n return array;\n }\n var result = [];\n for (var i = 0; i < array.length; i += n) {\n var item = array[i];\n if (item !== undefined) {\n result.push(item);\n }\n }\n return result;\n}", "import { getAngledRectangleWidth } from './CartesianUtils';\nimport { getEveryNth } from './getEveryNth';\nexport function getAngledTickWidth(contentSize, unitSize, angle) {\n var size = {\n width: contentSize.width + unitSize.width,\n height: contentSize.height + unitSize.height\n };\n return getAngledRectangleWidth(size, angle);\n}\nexport function getTickBoundaries(viewBox, sign, sizeKey) {\n var isWidth = sizeKey === 'width';\n var {\n x,\n y,\n width,\n height\n } = viewBox;\n if (sign === 1) {\n return {\n start: isWidth ? x : y,\n end: isWidth ? x + width : y + height\n };\n }\n return {\n start: isWidth ? x + width : y + height,\n end: isWidth ? x : y\n };\n}\nexport function isVisible(sign, tickPosition, getSize, start, end) {\n /* Since getSize() is expensive (it reads the ticks' size from the DOM), we do this check first to avoid calculating\n * the tick's size. */\n if (sign * tickPosition < sign * start || sign * tickPosition > sign * end) {\n return false;\n }\n var size = getSize();\n return sign * (tickPosition - sign * size / 2 - start) >= 0 && sign * (tickPosition + sign * size / 2 - end) <= 0;\n}\nexport function getNumberIntervalTicks(ticks, interval) {\n return getEveryNth(ticks, interval + 1);\n}", "import { isVisible } from '../util/TickUtils';\nimport { getEveryNth } from '../util/getEveryNth';\nexport function getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap) {\n // If the ticks are readonly, then the slice might not be necessary\n var result = (ticks || []).slice();\n var {\n start: initialStart,\n end\n } = boundaries;\n var index = 0;\n // Premature optimisation idea 1: Estimate a lower bound, and start from there.\n // For now, start from every tick\n var stepsize = 1;\n var start = initialStart;\n var _loop = function _loop() {\n // Given stepsize, evaluate whether every stepsize-th tick can be shown.\n // If it can not, then increase the stepsize by 1, and try again.\n\n var entry = ticks === null || ticks === void 0 ? void 0 : ticks[index];\n\n // Break condition - If we have evaluated all the ticks, then we are done.\n if (entry === undefined) {\n return {\n v: getEveryNth(ticks, stepsize)\n };\n }\n\n // Check if the element collides with the next element\n var i = index;\n var size;\n var getSize = () => {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n var tickCoord = entry.coordinate;\n // We will always show the first tick.\n var isShow = index === 0 || isVisible(sign, tickCoord, getSize, start, end);\n if (!isShow) {\n // Start all over with a larger stepsize\n index = 0;\n start = initialStart;\n stepsize += 1;\n }\n if (isShow) {\n // If it can be shown, update the start\n start = tickCoord + sign * (getSize() / 2 + minTickGap);\n index += stepsize;\n }\n },\n _ret;\n while (stepsize <= result.length) {\n _ret = _loop();\n if (_ret) return _ret.v;\n }\n return [];\n}\nexport function getEquidistantPreserveEndTicks(sign, boundaries, getTickSize, ticks, minTickGap) {\n // If the ticks are readonly, then the slice might not be necessary\n // Reworked logic for getEquidistantPreserveEndTicks\n var result = (ticks || []).slice();\n var len = result.length;\n if (len === 0) {\n return [];\n }\n var {\n start: initialStart,\n end\n } = boundaries;\n\n // Start with stepsize = 1 (every tick) up to the maximum possible stepsize (len)\n for (var stepsize = 1; stepsize <= len; stepsize++) {\n // 1. Calculate the offset so the last tick (index len - 1) is always included in the sequence.\n var offset = (len - 1) % stepsize;\n var start = initialStart; // `start` tracks the coordinate of the last successfully drawn tick + gap\n var ok = true;\n\n // 2. Iterate through the end-anchored sequence: offset, offset + stepsize, ..., len - 1\n var _loop2 = function _loop2() {\n var entry = ticks[index];\n if (entry == null) {\n return 0; // continue\n }\n var i = index;\n var size;\n\n // Use a function to get size, as in the original code\n var getSize = () => {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n var tickCoord = entry.coordinate;\n\n // 3. Apply visibility logic (including the first tick special case)\n // The reviewer says *not* to unconditionally bypass checks for the last tick.\n var isShow = index === offset || isVisible(sign, tickCoord, getSize, start, end);\n if (!isShow) {\n // If any tick in this end-anchored sequence fails visibility/collision,\n // reject this stepsize and move to the next iteration (larger stepsize).\n ok = false;\n return 1; // break\n }\n\n // 4. If showable, update the 'start' coordinate for the next collision check\n if (isShow) {\n start = tickCoord + sign * (getSize() / 2 + minTickGap);\n }\n },\n _ret2;\n for (var index = offset; index < len; index += stepsize) {\n _ret2 = _loop2();\n if (_ret2 === 0) continue;\n if (_ret2 === 1) break;\n }\n\n // 5. If the entire sequence for this stepsize passed the visibility check, return the result\n if (ok) {\n // Build the final result array explicitly using the validated stepsize and offset.\n var finalTicks = [];\n for (var _index = offset; _index < len; _index += stepsize) {\n var tick = ticks[_index];\n if (tick != null) {\n finalTicks.push(tick);\n }\n }\n return finalTicks;\n }\n }\n\n // If no stepsize works (this shouldn't happen unless minTickGap is huge), return an empty array.\n return [];\n}", "function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { mathSign, isNumber } from '../util/DataUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { Global } from '../util/Global';\nimport { isVisible, getTickBoundaries, getNumberIntervalTicks, getAngledTickWidth } from '../util/TickUtils';\nimport { getEquidistantTicks, getEquidistantPreserveEndTicks } from './getEquidistantTicks';\nfunction getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap) {\n var result = (ticks || []).slice();\n var len = result.length;\n var {\n start\n } = boundaries;\n var {\n end\n } = boundaries;\n var _loop = function _loop(i) {\n var initialEntry = result[i];\n if (initialEntry == null) {\n return 1; // continue\n }\n var entry = initialEntry;\n var size;\n var getSize = () => {\n if (size === undefined) {\n size = getTickSize(initialEntry, i);\n }\n return size;\n };\n if (i === len - 1) {\n var gap = sign * (entry.coordinate + sign * getSize() / 2 - end);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n if (entry.tickCoord != null) {\n var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n if (isShow) {\n end = entry.tickCoord - sign * (getSize() / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n };\n for (var i = len - 1; i >= 0; i--) {\n if (_loop(i)) continue;\n }\n return result;\n}\nfunction getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, preserveEnd) {\n // This method is mutating the array so clone is indeed necessary here\n var result = (ticks || []).slice();\n var len = result.length;\n var {\n start,\n end\n } = boundaries;\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n if (tail != null) {\n var tailSize = getTickSize(tail, len - 1);\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate\n });\n if (tail.tickCoord != null) {\n var isTailShow = isVisible(sign, tail.tickCoord, () => tailSize, start, end);\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {\n isShow: true\n });\n }\n }\n }\n }\n var count = preserveEnd ? len - 1 : len;\n var _loop2 = function _loop2(i) {\n var initialEntry = result[i];\n if (initialEntry == null) {\n return 1; // continue\n }\n var entry = initialEntry;\n var size;\n var getSize = () => {\n if (size === undefined) {\n size = getTickSize(initialEntry, i);\n }\n return size;\n };\n if (i === 0) {\n var gap = sign * (entry.coordinate - sign * getSize() / 2 - start);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n if (entry.tickCoord != null) {\n var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n if (isShow) {\n start = entry.tickCoord + sign * (getSize() / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n };\n for (var i = 0; i < count; i++) {\n if (_loop2(i)) continue;\n }\n return result;\n}\nexport function getTicks(props, fontSize, letterSpacing) {\n var {\n tick,\n ticks,\n viewBox,\n minTickGap,\n orientation,\n interval,\n tickFormatter,\n unit,\n angle\n } = props;\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n if (isNumber(interval) || Global.isSsr) {\n var _getNumberIntervalTic;\n return (_getNumberIntervalTic = getNumberIntervalTicks(ticks, isNumber(interval) ? interval : 0)) !== null && _getNumberIntervalTic !== void 0 ? _getNumberIntervalTic : [];\n }\n var candidates = [];\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit, {\n fontSize,\n letterSpacing\n }) : {\n width: 0,\n height: 0\n };\n var getTickSize = (content, index) => {\n var value = typeof tickFormatter === 'function' ? tickFormatter(content.value, index) : content.value;\n // Recharts only supports angles when sizeKey === 'width'\n return sizeKey === 'width' ? getAngledTickWidth(getStringSize(value, {\n fontSize,\n letterSpacing\n }), unitSize, angle) : getStringSize(value, {\n fontSize,\n letterSpacing\n })[sizeKey];\n };\n var tick0 = ticks[0];\n var tick1 = ticks[1];\n var sign = ticks.length >= 2 && tick0 != null && tick1 != null ? mathSign(tick1.coordinate - tick0.coordinate) : 1;\n var boundaries = getTickBoundaries(viewBox, sign, sizeKey);\n if (interval === 'equidistantPreserveStart') {\n return getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n if (interval === 'equidistantPreserveEnd') {\n return getEquidistantPreserveEndTicks(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n if (interval === 'preserveStart' || interval === 'preserveStartEnd') {\n candidates = getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, interval === 'preserveStartEnd');\n } else {\n candidates = getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n return candidates.filter(entry => entry.isShow);\n}", "/**\n * Calculates the width of the Y-axis based on the tick labels and the axis label.\n * @param params - The parameters object.\n * @param [params.ticks] - An array-like object of tick elements, each with a `getBoundingClientRect` method.\n * @param [params.label] - The axis label element, with a `getBoundingClientRect` method.\n * @param [params.labelGapWithTick=5] - The gap between the label and the tick.\n * @param [params.tickSize=0] - The length of the tick line.\n * @param [params.tickMargin=0] - The margin between the tick line and the tick text.\n * @returns The calculated width of the Y-axis.\n */\nexport var getCalculatedYAxisWidth = _ref => {\n var {\n ticks,\n label,\n labelGapWithTick = 5,\n // Default gap between label and tick\n tickSize = 0,\n tickMargin = 0\n } = _ref;\n // find the max width of the tick labels\n var maxTickWidth = 0;\n if (ticks) {\n Array.from(ticks).forEach(tickNode => {\n if (tickNode) {\n var bbox = tickNode.getBoundingClientRect();\n if (bbox.width > maxTickWidth) {\n maxTickWidth = bbox.width;\n }\n }\n });\n\n // calculate width of the axis label\n var labelWidth = label ? label.getBoundingClientRect().width : 0;\n var tickWidth = tickSize + tickMargin;\n\n // calculate the updated width of the y-axis\n var updatedYAxisWidth = maxTickWidth + tickWidth + labelWidth + (label ? labelGapWithTick : 0);\n return Math.round(updatedYAxisWidth);\n }\n return 0;\n};", "/**\n * @fileOverview this stores actually rendered ticks.\n *\n * What we do is that we have the domain -> ticks mapping in the cartesianSlice,\n * which is fine but the result then goes to CartesianAxis where we use DOM measurement\n * to decide which ticks to actually render.\n *\n * This renderedTickSlice stores those actually rendered ticks so that we can return them from a hook later.\n */\nimport { createSlice } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\nvar initialState = {\n xAxis: {},\n yAxis: {}\n};\nexport var renderedTicksSlice = createSlice({\n name: 'renderedTicks',\n initialState,\n reducers: {\n setRenderedTicks: (state, action) => {\n var {\n axisType,\n axisId,\n ticks\n } = action.payload;\n state[axisType][axisId] = castDraft(ticks);\n },\n removeRenderedTicks: (state, action) => {\n var {\n axisType,\n axisId\n } = action.payload;\n delete state[axisType][axisId];\n }\n }\n});\nexport var {\n setRenderedTicks,\n removeRenderedTicks\n} = renderedTicksSlice.actions;\nexport var renderedTicksReducer = renderedTicksSlice.reducer;", "var _excluded = [\"x1\", \"y1\", \"x2\", \"y2\", \"key\"],\n _excluded2 = [\"offset\"],\n _excluded3 = [\"xAxisId\", \"yAxisId\"],\n _excluded4 = [\"xAxisId\", \"yAxisId\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport { warn } from '../util/LogUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { getCoordinatesOfGrid, getTicksOfAxis } from '../util/ChartUtils';\nimport { getTicks } from './getTicks';\nimport { defaultCartesianAxisProps } from './CartesianAxis';\nimport { useChartHeight, useChartWidth, useOffsetInternal } from '../context/chartLayoutContext';\nimport { selectAxisPropsNeededForCartesianGridTicksGenerator } from '../state/selectors/axisSelectors';\nimport { useAppSelector } from '../state/hooks';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { isPositiveNumber } from '../util/isWellBehavedNumber';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\n\n/**\n * The <CartesianGrid horizontal\n */\n\nvar Background = props => {\n var {\n fill\n } = props;\n if (!fill || fill === 'none') {\n return null;\n }\n var {\n fillOpacity,\n x,\n y,\n width,\n height,\n ry\n } = props;\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n ry: ry,\n width: width,\n height: height,\n stroke: \"none\",\n fill: fill,\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n};\nfunction LineItem(_ref) {\n var {\n option,\n lineItemProps\n } = _ref;\n var lineItem;\n if (/*#__PURE__*/React.isValidElement(option)) {\n // @ts-expect-error typescript does not see the props type when cloning an element\n lineItem = /*#__PURE__*/React.cloneElement(option, lineItemProps);\n } else if (typeof option === 'function') {\n lineItem = option(lineItemProps);\n } else {\n var _svgPropertiesNoEvent;\n var {\n x1,\n y1,\n x2,\n y2,\n key\n } = lineItemProps,\n others = _objectWithoutProperties(lineItemProps, _excluded);\n var _ref2 = (_svgPropertiesNoEvent = svgPropertiesNoEvents(others)) !== null && _svgPropertiesNoEvent !== void 0 ? _svgPropertiesNoEvent : {},\n {\n offset: __\n } = _ref2,\n restOfFilteredProps = _objectWithoutProperties(_ref2, _excluded2);\n lineItem = /*#__PURE__*/React.createElement(\"line\", _extends({}, restOfFilteredProps, {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n fill: \"none\",\n key: key\n }));\n }\n return lineItem;\n}\nfunction HorizontalGridLines(props) {\n var {\n x,\n width,\n horizontal = true,\n horizontalPoints\n } = props;\n if (!horizontal || !horizontalPoints || !horizontalPoints.length) {\n return null;\n }\n var {\n xAxisId,\n yAxisId\n } = props,\n otherLineItemProps = _objectWithoutProperties(props, _excluded3);\n var items = horizontalPoints.map((entry, i) => {\n var lineItemProps = _objectSpread(_objectSpread({}, otherLineItemProps), {}, {\n x1: x,\n y1: entry,\n x2: x + width,\n y2: entry,\n key: \"line-\".concat(i),\n index: i\n });\n return /*#__PURE__*/React.createElement(LineItem, {\n key: \"line-\".concat(i),\n option: horizontal,\n lineItemProps: lineItemProps\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-horizontal\"\n }, items);\n}\nfunction VerticalGridLines(props) {\n var {\n y,\n height,\n vertical = true,\n verticalPoints\n } = props;\n if (!vertical || !verticalPoints || !verticalPoints.length) {\n return null;\n }\n var {\n xAxisId,\n yAxisId\n } = props,\n otherLineItemProps = _objectWithoutProperties(props, _excluded4);\n var items = verticalPoints.map((entry, i) => {\n var lineItemProps = _objectSpread(_objectSpread({}, otherLineItemProps), {}, {\n x1: entry,\n y1: y,\n x2: entry,\n y2: y + height,\n key: \"line-\".concat(i),\n index: i\n });\n return /*#__PURE__*/React.createElement(LineItem, {\n option: vertical,\n lineItemProps: lineItemProps,\n key: \"line-\".concat(i)\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-vertical\"\n }, items);\n}\nfunction HorizontalStripes(props) {\n var {\n horizontalFill,\n fillOpacity,\n x,\n y,\n width,\n height,\n horizontalPoints,\n horizontal = true\n } = props;\n if (!horizontal || !horizontalFill || !horizontalFill.length || horizontalPoints == null) {\n return null;\n }\n var roundedSortedHorizontalPoints = horizontalPoints.map(e => Math.round(e + y - y)).sort((a, b) => a - b);\n // Why is this condition `!==` instead of `<=` ?\n if (y !== roundedSortedHorizontalPoints[0]) {\n roundedSortedHorizontalPoints.unshift(0);\n }\n var items = roundedSortedHorizontalPoints.map((entry, i) => {\n // Why do we strip only the last stripe if it is invisible, and not all invisible stripes?\n var nextPoint = roundedSortedHorizontalPoints[i + 1];\n var lastStripe = nextPoint == null;\n var lineHeight = lastStripe ? y + height - entry : nextPoint - entry;\n if (lineHeight <= 0) {\n return null;\n }\n var colorIndex = i % horizontalFill.length;\n return /*#__PURE__*/React.createElement(\"rect\", {\n key: \"react-\".concat(i),\n y: entry,\n x: x,\n height: lineHeight,\n width: width,\n stroke: \"none\",\n fill: horizontalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-horizontal\"\n }, items);\n}\nfunction VerticalStripes(props) {\n var {\n vertical = true,\n verticalFill,\n fillOpacity,\n x,\n y,\n width,\n height,\n verticalPoints\n } = props;\n if (!vertical || !verticalFill || !verticalFill.length) {\n return null;\n }\n var roundedSortedVerticalPoints = verticalPoints.map(e => Math.round(e + x - x)).sort((a, b) => a - b);\n if (x !== roundedSortedVerticalPoints[0]) {\n roundedSortedVerticalPoints.unshift(0);\n }\n var items = roundedSortedVerticalPoints.map((entry, i) => {\n var nextPoint = roundedSortedVerticalPoints[i + 1];\n var lastStripe = nextPoint == null;\n var lineWidth = lastStripe ? x + width - entry : nextPoint - entry;\n if (lineWidth <= 0) {\n return null;\n }\n var colorIndex = i % verticalFill.length;\n return /*#__PURE__*/React.createElement(\"rect\", {\n key: \"react-\".concat(i),\n x: entry,\n y: y,\n width: lineWidth,\n height: height,\n stroke: \"none\",\n fill: verticalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-vertical\"\n }, items);\n}\nvar defaultVerticalCoordinatesGenerator = (_ref3, syncWithTicks) => {\n var {\n xAxis,\n width,\n height,\n offset\n } = _ref3;\n return getCoordinatesOfGrid(getTicks(_objectSpread(_objectSpread(_objectSpread({}, defaultCartesianAxisProps), xAxis), {}, {\n ticks: getTicksOfAxis(xAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width,\n height\n }\n })), offset.left, offset.left + offset.width, syncWithTicks);\n};\nvar defaultHorizontalCoordinatesGenerator = (_ref4, syncWithTicks) => {\n var {\n yAxis,\n width,\n height,\n offset\n } = _ref4;\n return getCoordinatesOfGrid(getTicks(_objectSpread(_objectSpread(_objectSpread({}, defaultCartesianAxisProps), yAxis), {}, {\n ticks: getTicksOfAxis(yAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width,\n height\n }\n })), offset.top, offset.top + offset.height, syncWithTicks);\n};\nexport var defaultCartesianGridProps = {\n horizontal: true,\n vertical: true,\n // The ordinates of horizontal grid lines\n horizontalPoints: [],\n // The abscissas of vertical grid lines\n verticalPoints: [],\n stroke: '#ccc',\n fill: 'none',\n // The fill of colors of grid lines\n verticalFill: [],\n horizontalFill: [],\n xAxisId: 0,\n yAxisId: 0,\n syncWithTicks: false,\n zIndex: DefaultZIndexes.grid\n};\n\n/**\n * Renders background grid with lines and fill colors in a Cartesian chart.\n *\n * @consumes CartesianChartContext\n */\nexport function CartesianGrid(props) {\n var chartWidth = useChartWidth();\n var chartHeight = useChartHeight();\n var offset = useOffsetInternal();\n var propsIncludingDefaults = _objectSpread(_objectSpread({}, resolveDefaultProps(props, defaultCartesianGridProps)), {}, {\n x: isNumber(props.x) ? props.x : offset.left,\n y: isNumber(props.y) ? props.y : offset.top,\n width: isNumber(props.width) ? props.width : offset.width,\n height: isNumber(props.height) ? props.height : offset.height\n });\n var {\n xAxisId,\n yAxisId,\n x,\n y,\n width,\n height,\n syncWithTicks,\n horizontalValues,\n verticalValues\n } = propsIncludingDefaults;\n var isPanorama = useIsPanorama();\n var xAxis = useAppSelector(state => selectAxisPropsNeededForCartesianGridTicksGenerator(state, 'xAxis', xAxisId, isPanorama));\n var yAxis = useAppSelector(state => selectAxisPropsNeededForCartesianGridTicksGenerator(state, 'yAxis', yAxisId, isPanorama));\n if (!isPositiveNumber(width) || !isPositiveNumber(height) || !isNumber(x) || !isNumber(y)) {\n return null;\n }\n\n /*\n * verticalCoordinatesGenerator and horizontalCoordinatesGenerator are defined\n * outside the propsIncludingDefaults because they were never part of the original props\n * and they were never passed as a prop down to horizontal/vertical custom elements.\n * If we add these two to propsIncludingDefaults then we are changing public API.\n * Not a bad thing per se but also not necessary.\n */\n var verticalCoordinatesGenerator = propsIncludingDefaults.verticalCoordinatesGenerator || defaultVerticalCoordinatesGenerator;\n var horizontalCoordinatesGenerator = propsIncludingDefaults.horizontalCoordinatesGenerator || defaultHorizontalCoordinatesGenerator;\n var {\n horizontalPoints,\n verticalPoints\n } = propsIncludingDefaults;\n\n // No horizontal points are specified\n if ((!horizontalPoints || !horizontalPoints.length) && typeof horizontalCoordinatesGenerator === 'function') {\n var isHorizontalValues = horizontalValues && horizontalValues.length;\n var generatorResult = horizontalCoordinatesGenerator({\n yAxis: yAxis ? _objectSpread(_objectSpread({}, yAxis), {}, {\n ticks: isHorizontalValues ? horizontalValues : yAxis.ticks\n }) : undefined,\n width: chartWidth !== null && chartWidth !== void 0 ? chartWidth : width,\n height: chartHeight !== null && chartHeight !== void 0 ? chartHeight : height,\n offset\n }, isHorizontalValues ? true : syncWithTicks);\n warn(Array.isArray(generatorResult), \"horizontalCoordinatesGenerator should return Array but instead it returned [\".concat(typeof generatorResult, \"]\"));\n if (Array.isArray(generatorResult)) {\n horizontalPoints = generatorResult;\n }\n }\n\n // No vertical points are specified\n if ((!verticalPoints || !verticalPoints.length) && typeof verticalCoordinatesGenerator === 'function') {\n var isVerticalValues = verticalValues && verticalValues.length;\n var _generatorResult = verticalCoordinatesGenerator({\n xAxis: xAxis ? _objectSpread(_objectSpread({}, xAxis), {}, {\n ticks: isVerticalValues ? verticalValues : xAxis.ticks\n }) : undefined,\n width: chartWidth !== null && chartWidth !== void 0 ? chartWidth : width,\n height: chartHeight !== null && chartHeight !== void 0 ? chartHeight : height,\n offset\n }, isVerticalValues ? true : syncWithTicks);\n warn(Array.isArray(_generatorResult), \"verticalCoordinatesGenerator should return Array but instead it returned [\".concat(typeof _generatorResult, \"]\"));\n if (Array.isArray(_generatorResult)) {\n verticalPoints = _generatorResult;\n }\n }\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: propsIncludingDefaults.zIndex\n }, /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid\"\n }, /*#__PURE__*/React.createElement(Background, {\n fill: propsIncludingDefaults.fill,\n fillOpacity: propsIncludingDefaults.fillOpacity,\n x: propsIncludingDefaults.x,\n y: propsIncludingDefaults.y,\n width: propsIncludingDefaults.width,\n height: propsIncludingDefaults.height,\n ry: propsIncludingDefaults.ry\n }), /*#__PURE__*/React.createElement(HorizontalStripes, _extends({}, propsIncludingDefaults, {\n horizontalPoints: horizontalPoints\n })), /*#__PURE__*/React.createElement(VerticalStripes, _extends({}, propsIncludingDefaults, {\n verticalPoints: verticalPoints\n })), /*#__PURE__*/React.createElement(HorizontalGridLines, _extends({}, propsIncludingDefaults, {\n offset: offset,\n horizontalPoints: horizontalPoints,\n xAxis: xAxis,\n yAxis: yAxis\n })), /*#__PURE__*/React.createElement(VerticalGridLines, _extends({}, propsIncludingDefaults, {\n offset: offset,\n verticalPoints: verticalPoints,\n xAxis: xAxis,\n yAxis: yAxis\n }))));\n}\nCartesianGrid.displayName = 'CartesianGrid';", "var _excluded = [\"id\"],\n _excluded2 = [\"type\", \"layout\", \"connectNulls\", \"needClip\", \"shape\"],\n _excluded3 = [\"activeDot\", \"animateNewValues\", \"animationBegin\", \"animationDuration\", \"animationEasing\", \"connectNulls\", \"dot\", \"hide\", \"isAnimationActive\", \"label\", \"legendType\", \"xAxisId\", \"yAxisId\", \"id\"];\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 { Component, useCallback, useMemo, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { CartesianLabelListContextProvider, LabelListFromLabelProp } from '../component/LabelList';\nimport { Dots } from '../component/Dots';\nimport { interpolate, isNullish, noop } from '../util/DataUtils';\nimport { isClipDot } from '../util/ReactUtils';\nimport { getCateCoordinateOfLine, getTooltipNameProp, getValueByDataKey } from '../util/ChartUtils';\nimport { ActivePoints } from '../component/ActivePoints';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { SetErrorBarContext } from '../context/ErrorBarContext';\nimport { GraphicalItemClipPath, useNeedsClip } from './GraphicalItemClipPath';\nimport { useChartLayout } from '../context/chartLayoutContext';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { selectLinePoints } from '../state/selectors/lineSelectors';\nimport { useAppSelector } from '../state/hooks';\nimport { SetLegendPayload } from '../state/SetLegendPayload';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { usePlotArea } from '../hooks';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\nimport { SetCartesianGraphicalItem } from '../state/SetGraphicalItem';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { JavascriptAnimate } from '../animation/JavascriptAnimate';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { getRadiusAndStrokeWidthFromDot } from '../util/getRadiusAndStrokeWidthFromDot';\nimport { Shape } from '../util/ActiveShapeUtils';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { propsAreEqual } from '../util/propsAreEqual';\n\n/**\n * Internal props, combination of external props + defaultProps + private Recharts state\n */\n\n/**\n * External props, intended for end users to fill in\n */\n\n/**\n * Because of naming conflict, we are forced to ignore certain (valid) SVG attributes.\n */\n\nvar computeLegendPayloadFromAreaData = props => {\n var {\n dataKey,\n name,\n stroke,\n legendType,\n hide\n } = props;\n return [{\n inactive: hide,\n dataKey,\n type: legendType,\n color: stroke,\n value: getTooltipNameProp(name, dataKey),\n payload: props\n }];\n};\nvar SetLineTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {\n var {\n dataKey,\n data,\n stroke,\n strokeWidth,\n fill,\n name,\n hide,\n unit,\n tooltipType,\n id\n } = _ref;\n var tooltipEntrySettings = {\n dataDefinedOnItem: data,\n getPosition: noop,\n settings: {\n stroke,\n strokeWidth,\n fill,\n dataKey,\n nameKey: undefined,\n name: getTooltipNameProp(name, dataKey),\n hide,\n type: tooltipType,\n color: stroke,\n unit,\n graphicalItemId: id\n }\n };\n return /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {\n tooltipEntrySettings: tooltipEntrySettings\n });\n});\n\n/**\n * Generates a simple stroke-dasharray string for animating a line draw effect.\n *\n * Uses `totalLength` as the gap (instead of `totalLength - length`) to prevent a floating-point\n * precision artifact: when fractional dash and gap values are serialized to a string attribute\n * and re-parsed by the SVG renderer, their sum can differ from the actual path length by a ULP,\n * causing the dasharray pattern to repeat and render a phantom dot at the path endpoint\n * with round or square strokeLinecap.\n *\n * @param totalLength The total length of the SVG path\n * @param length The currently visible portion of the path\n * @returns A stroke-dasharray string like \"50px 200px\"\n */\nvar generateSimpleStrokeDasharray = (totalLength, length) => {\n return \"\".concat(length, \"px \").concat(totalLength, \"px\");\n};\n\n/**\n * Repeats a dash pattern array a given number of times.\n *\n * If the input array has an odd length, a trailing `0` is appended to make it even\n * before repeating, because SVG stroke-dasharray patterns must have an even number\n * of values to cycle correctly between dash and gap segments.\n *\n * @param lines Array of dash/gap lengths to repeat\n * @param count Number of times to repeat the pattern\n * @returns A new array with the pattern repeated `count` times\n */\nfunction repeat(lines, count) {\n var linesUnit = lines.length % 2 !== 0 ? [...lines, 0] : lines;\n var result = [];\n for (var i = 0; i < count; ++i) {\n result.push(...linesUnit);\n }\n return result;\n}\n\n/**\n * Computes a stroke-dasharray string for animating a custom-dashed line draw effect.\n *\n * Given a user-specified dash pattern (e.g. `\"7,3\"`), this function builds a dasharray\n * that reveals exactly `length` pixels of that pattern, followed by a gap of `totalLength`\n * to hide the remainder of the path.\n *\n * Like {@link generateSimpleStrokeDasharray}, the trailing gap uses `totalLength` rather than\n * `totalLength - length` to avoid floating-point precision artifacts with round/square strokeLinecap.\n *\n * @param length The currently visible portion of the path\n * @param totalLength The total length of the SVG path\n * @param lines The user-specified dash pattern as an array of numbers (e.g. [7, 3])\n * @returns A stroke-dasharray string incorporating the custom dash pattern\n */\nvar getStrokeDasharray = (length, totalLength, lines) => {\n var lineLength = lines.reduce((pre, next) => pre + next, 0);\n\n // if lineLength is 0 return the default when no strokeDasharray is provided\n if (!lineLength) {\n return generateSimpleStrokeDasharray(totalLength, length);\n }\n var count = Math.floor(length / lineLength);\n var remainLength = length % lineLength;\n var remainLines = [];\n for (var i = 0, sum = 0; i < lines.length; sum += (_lines$i = lines[i]) !== null && _lines$i !== void 0 ? _lines$i : 0, ++i) {\n var _lines$i;\n var lineValue = lines[i];\n if (lineValue != null && sum + lineValue > remainLength) {\n remainLines = [...lines.slice(0, i), remainLength - sum];\n break;\n }\n }\n var emptyLines = remainLines.length % 2 === 0 ? [0, totalLength] : [totalLength];\n return [...repeat(lines, count), ...remainLines, ...emptyLines].map(line => \"\".concat(line, \"px\")).join(', ');\n};\nfunction LineDotsWrapper(_ref2) {\n var {\n clipPathId,\n points,\n props\n } = _ref2;\n var {\n dot,\n dataKey,\n needClip\n } = props;\n\n /*\n * Exclude ID from the props passed to the Dots component\n * because then the ID would be applied to multiple dots, and it would no longer be unique.\n */\n var {\n id\n } = props,\n propsWithoutId = _objectWithoutProperties(props, _excluded);\n var lineProps = svgPropertiesNoEvents(propsWithoutId);\n return /*#__PURE__*/React.createElement(Dots, {\n points: points,\n dot: dot,\n className: \"recharts-line-dots\",\n dotClassName: \"recharts-line-dot\",\n dataKey: dataKey,\n baseProps: lineProps,\n needClip: needClip,\n clipPathId: clipPathId\n });\n}\nfunction LineLabelListProvider(_ref3) {\n var {\n showLabels,\n children,\n points\n } = _ref3;\n var labelListEntries = useMemo(() => {\n return points === null || points === void 0 ? void 0 : points.map(point => {\n var _point$x, _point$y;\n var viewBox = {\n x: (_point$x = point.x) !== null && _point$x !== void 0 ? _point$x : 0,\n y: (_point$y = point.y) !== null && _point$y !== void 0 ? _point$y : 0,\n width: 0,\n lowerWidth: 0,\n upperWidth: 0,\n height: 0\n };\n return _objectSpread(_objectSpread({}, viewBox), {}, {\n value: point.value,\n payload: point.payload,\n viewBox,\n /*\n * Line is not passing parentViewBox to the LabelList so the labels can escape - looks like a bug, should we pass parentViewBox?\n * Or should this just be the root chart viewBox?\n */\n parentViewBox: undefined,\n fill: undefined\n });\n });\n }, [points]);\n return /*#__PURE__*/React.createElement(CartesianLabelListContextProvider, {\n value: showLabels ? labelListEntries : undefined\n }, children);\n}\nfunction StaticCurve(_ref4) {\n var {\n clipPathId,\n pathRef,\n points,\n strokeDasharray,\n props\n } = _ref4;\n var {\n type,\n layout,\n connectNulls,\n needClip,\n shape\n } = props,\n others = _objectWithoutProperties(props, _excluded2);\n var curveProps = _objectSpread(_objectSpread({}, svgPropertiesAndEvents(others)), {}, {\n fill: 'none',\n className: 'recharts-line-curve',\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : undefined,\n points,\n type,\n layout,\n connectNulls,\n strokeDasharray: strokeDasharray !== null && strokeDasharray !== void 0 ? strokeDasharray : props.strokeDasharray\n });\n return /*#__PURE__*/React.createElement(React.Fragment, null, (points === null || points === void 0 ? void 0 : points.length) > 1 && /*#__PURE__*/React.createElement(Shape, _extends({\n shapeType: \"curve\",\n option: shape\n }, curveProps, {\n pathRef: pathRef\n })), /*#__PURE__*/React.createElement(LineDotsWrapper, {\n points: points,\n clipPathId: clipPathId,\n props: props\n }));\n}\nfunction getTotalLength(mainCurve) {\n try {\n return mainCurve && mainCurve.getTotalLength && mainCurve.getTotalLength() || 0;\n } catch (_unused) {\n return 0;\n }\n}\nfunction CurveWithAnimation(_ref5) {\n var {\n clipPathId,\n props,\n pathRef,\n previousPointsRef,\n longestAnimatedLengthRef\n } = _ref5;\n var {\n points,\n strokeDasharray,\n isAnimationActive,\n animationBegin,\n animationDuration,\n animationEasing,\n animateNewValues,\n width,\n height,\n onAnimationEnd,\n onAnimationStart\n } = props;\n var prevPoints = previousPointsRef.current;\n var animationId = useAnimationId(points, 'recharts-line-');\n var animationIdRef = useRef(animationId);\n var [isAnimating, setIsAnimating] = useState(false);\n var showLabels = !isAnimating;\n var handleAnimationEnd = useCallback(() => {\n if (typeof onAnimationEnd === 'function') {\n onAnimationEnd();\n }\n setIsAnimating(false);\n }, [onAnimationEnd]);\n var handleAnimationStart = useCallback(() => {\n if (typeof onAnimationStart === 'function') {\n onAnimationStart();\n }\n setIsAnimating(true);\n }, [onAnimationStart]);\n var totalLength = getTotalLength(pathRef.current);\n /*\n * Here we want to detect if the length animation has been interrupted.\n * For that we keep a reference to the furthest length that has been animated.\n *\n * And then, to keep things smooth, we add to it the current length that is being animated right now.\n *\n * If we did Math.max then it makes the length animation \"pause\" but we want to keep it smooth\n * so in case we have some \"leftover\" length from the previous animation we add it to the current length.\n *\n * This is not perfect because the animation changes speed due to easing. The default easing is 'ease' which is not linear\n * and makes it stand out. But it's good enough I suppose.\n * If we want to fix it then we need to keep track of multiple animations and their easing and timings.\n *\n * If you want to see this in action, try to change the dataKey of the line chart while the initial animation is running.\n * The Line begins with zero length and slowly grows to the full length. While this growth is in progress,\n * change the dataKey and the Line will continue growing from where it has grown so far.\n *\n * This is for the case when new animation triggers. When that happens we get new points, everything re-renders,\n * and we get fresh new state in this component and use the ref stored above.\n *\n * In case when we get render without new animation - for example when opacity changes, or color changes,\n * then the animationId remains the same, and we do not update the starting point.\n * See https://github.com/recharts/recharts/issues/6044\n */\n var startingPointRef = useRef(0);\n if (animationIdRef.current !== animationId) {\n startingPointRef.current = longestAnimatedLengthRef.current;\n animationIdRef.current = animationId;\n }\n var startingPoint = startingPointRef.current;\n return /*#__PURE__*/React.createElement(LineLabelListProvider, {\n points: points,\n showLabels: showLabels\n }, props.children, /*#__PURE__*/React.createElement(JavascriptAnimate, {\n animationId: animationId,\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n onAnimationEnd: handleAnimationEnd,\n onAnimationStart: handleAnimationStart,\n key: animationId\n }, t => {\n var lengthInterpolated = interpolate(startingPoint, totalLength + startingPoint, t);\n var curLength = Math.min(lengthInterpolated, totalLength);\n var currentStrokeDasharray;\n if (isAnimationActive) {\n if (strokeDasharray) {\n var lines = \"\".concat(strokeDasharray).split(/[,\\s]+/gim).map(num => parseFloat(num));\n currentStrokeDasharray = getStrokeDasharray(curLength, totalLength, lines);\n } else {\n currentStrokeDasharray = generateSimpleStrokeDasharray(totalLength, curLength);\n }\n } else {\n currentStrokeDasharray = strokeDasharray == null ? undefined : String(strokeDasharray);\n }\n\n /*\n * Here it is important to wait a little bit with updating the previousPointsRef\n * before the animation has a time to initialize.\n * If we set the previous pointsRef immediately, we set it before the Legend height it calculated\n * and before pathRef is set.\n * If that happens, the Line will re-render again after Legend had reported its height\n * which will start a new animation with the previous points as the starting point\n * which gives the effect of the Line animating slightly upwards (where the animation distance equals the Legend height).\n * Waiting for t > 0 is indirect but good enough to ensure that the Legend height is calculated and animation works properly.\n *\n * Total length similarly is calculated from the pathRef. We should not update the previousPointsRef\n * before the pathRef is set, otherwise we will have a wrong total length.\n */\n if (t > 0 && totalLength > 0) {\n // eslint-disable-next-line no-param-reassign\n previousPointsRef.current = points;\n /*\n * totalLength is set from a ref and is not updated in the first tick of the animation.\n * It defaults to zero which is exactly what we want here because we want to grow from zero,\n * however the same happens when the data change.\n *\n * In that case we want to remember the previous length and continue from there, and only animate the shape.\n *\n * Therefore the totalLength > 0 check.\n *\n * The Animate is about to fire handleAnimationStart which will update the state\n * and cause a re-render and read a new proper totalLength which will be used in the next tick\n * and update the longestAnimatedLengthRef.\n *\n * Why Math.max? Sometimes the curve goes through a smaller length than previously recorded.\n * If we just set it to curLength, then the next animation would start from a smaller length\n * which looks weird. So we keep the longest length ever reached and then animate from there.\n */\n // eslint-disable-next-line no-param-reassign\n longestAnimatedLengthRef.current = Math.max(longestAnimatedLengthRef.current, curLength);\n }\n if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length;\n var stepData = t === 1 ? points : points.map((entry, index) => {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n if (prevPoints[prevPointIndex]) {\n var prev = prevPoints[prevPointIndex];\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolate(prev.x, entry.x, t),\n y: interpolate(prev.y, entry.y, t)\n });\n }\n\n // magic number of faking previous x and y location\n if (animateNewValues) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolate(width * 2, entry.x, t),\n y: interpolate(height / 2, entry.y, t)\n });\n }\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: entry.x,\n y: entry.y\n });\n });\n // eslint-disable-next-line no-param-reassign\n previousPointsRef.current = stepData;\n return /*#__PURE__*/React.createElement(StaticCurve, {\n props: props,\n points: stepData,\n clipPathId: clipPathId,\n pathRef: pathRef,\n strokeDasharray: currentStrokeDasharray\n });\n }\n return /*#__PURE__*/React.createElement(StaticCurve, {\n props: props,\n points: points,\n clipPathId: clipPathId,\n pathRef: pathRef,\n strokeDasharray: currentStrokeDasharray\n });\n }), /*#__PURE__*/React.createElement(LabelListFromLabelProp, {\n label: props.label\n }));\n}\nfunction RenderCurve(_ref6) {\n var {\n clipPathId,\n props\n } = _ref6;\n var previousPointsRef = useRef(null);\n var longestAnimatedLengthRef = useRef(0);\n var pathRef = useRef(null);\n return /*#__PURE__*/React.createElement(CurveWithAnimation, {\n props: props,\n clipPathId: clipPathId,\n previousPointsRef: previousPointsRef,\n longestAnimatedLengthRef: longestAnimatedLengthRef,\n pathRef: pathRef\n });\n}\nvar errorBarDataPointFormatter = (dataPoint, dataKey) => {\n var _dataPoint$x, _dataPoint$y;\n return {\n x: (_dataPoint$x = dataPoint.x) !== null && _dataPoint$x !== void 0 ? _dataPoint$x : undefined,\n y: (_dataPoint$y = dataPoint.y) !== null && _dataPoint$y !== void 0 ? _dataPoint$y : undefined,\n value: dataPoint.value,\n // getValueByDataKey does not validate the output type\n errorVal: getValueByDataKey(dataPoint.payload, dataKey)\n };\n};\n\n// eslint-disable-next-line react/prefer-stateless-function\nclass LineWithState extends Component {\n render() {\n var {\n hide,\n dot,\n points,\n className,\n xAxisId,\n yAxisId,\n top,\n left,\n width,\n height,\n id,\n needClip,\n zIndex\n } = this.props;\n if (hide) {\n return null;\n }\n var layerClass = clsx('recharts-line', className);\n var clipPathId = id;\n var {\n r,\n strokeWidth\n } = getRadiusAndStrokeWidthFromDot(dot);\n var clipDot = isClipDot(dot);\n var dotSize = r * 2 + strokeWidth;\n var activePointsClipPath = needClip ? \"url(#clipPath-\".concat(clipDot ? '' : 'dots-').concat(clipPathId, \")\") : undefined;\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: zIndex\n }, /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClip && /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(GraphicalItemClipPath, {\n clipPathId: clipPathId,\n xAxisId: xAxisId,\n yAxisId: yAxisId\n }), !clipDot && /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-dots-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left - dotSize / 2,\n y: top - dotSize / 2,\n width: width + dotSize,\n height: height + dotSize\n }))), /*#__PURE__*/React.createElement(SetErrorBarContext, {\n xAxisId: xAxisId,\n yAxisId: yAxisId,\n data: points,\n dataPointFormatter: errorBarDataPointFormatter,\n errorBarOffset: 0\n }, /*#__PURE__*/React.createElement(RenderCurve, {\n props: this.props,\n clipPathId: clipPathId\n }))), /*#__PURE__*/React.createElement(ActivePoints, {\n activeDot: this.props.activeDot,\n points: points,\n mainColor: this.props.stroke,\n itemDataKey: this.props.dataKey,\n clipPath: activePointsClipPath\n }));\n }\n}\nexport var defaultLineProps = {\n activeDot: true,\n animateNewValues: true,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease',\n connectNulls: false,\n dot: true,\n fill: '#fff',\n hide: false,\n isAnimationActive: 'auto',\n label: false,\n legendType: 'line',\n stroke: '#3182bd',\n strokeWidth: 1,\n xAxisId: 0,\n yAxisId: 0,\n zIndex: DefaultZIndexes.line,\n type: 'linear'\n};\nfunction LineImpl(props) {\n var _resolveDefaultProps = resolveDefaultProps(props, defaultLineProps),\n {\n activeDot,\n animateNewValues,\n animationBegin,\n animationDuration,\n animationEasing,\n connectNulls,\n dot,\n hide,\n isAnimationActive,\n label,\n legendType,\n xAxisId,\n yAxisId,\n id\n } = _resolveDefaultProps,\n everythingElse = _objectWithoutProperties(_resolveDefaultProps, _excluded3);\n var {\n needClip\n } = useNeedsClip(xAxisId, yAxisId);\n var plotArea = usePlotArea();\n var layout = useChartLayout();\n var isPanorama = useIsPanorama();\n var points = useAppSelector(state => selectLinePoints(state, xAxisId, yAxisId, isPanorama, id));\n if (layout !== 'horizontal' && layout !== 'vertical' || points == null || plotArea == null) {\n // Cannot render Line in an unsupported layout\n return null;\n }\n var {\n height,\n width,\n x: left,\n y: top\n } = plotArea;\n return /*#__PURE__*/React.createElement(LineWithState, _extends({}, everythingElse, {\n id: id,\n connectNulls: connectNulls,\n dot: dot,\n activeDot: activeDot,\n animateNewValues: animateNewValues,\n animationBegin: animationBegin,\n animationDuration: animationDuration,\n animationEasing: animationEasing,\n isAnimationActive: isAnimationActive,\n hide: hide,\n label: label,\n legendType: legendType,\n xAxisId: xAxisId,\n yAxisId: yAxisId,\n points: points,\n layout: layout,\n height: height,\n width: width,\n left: left,\n top: top,\n needClip: needClip\n }));\n}\nexport function computeLinePoints(_ref7) {\n var {\n layout,\n xAxis,\n yAxis,\n xAxisTicks,\n yAxisTicks,\n dataKey,\n bandSize,\n displayedData\n } = _ref7;\n return displayedData.map((entry, index) => {\n // getValueByDataKey does not validate the output type\n var value = getValueByDataKey(entry, dataKey);\n if (layout === 'horizontal') {\n var _x = getCateCoordinateOfLine({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize,\n entry,\n index\n });\n var _y = isNullish(value) ? null : yAxis.scale.map(value);\n return {\n x: _x,\n y: _y !== null && _y !== void 0 ? _y : null,\n value,\n payload: entry\n };\n }\n var x = isNullish(value) ? null : xAxis.scale.map(value);\n var y = getCateCoordinateOfLine({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize,\n entry,\n index\n });\n if (x == null || y == null) {\n return null;\n }\n return {\n x,\n y,\n value,\n payload: entry\n };\n }).filter(Boolean);\n}\nfunction LineFn(outsideProps) {\n var props = resolveDefaultProps(outsideProps, defaultLineProps);\n var isPanorama = useIsPanorama();\n return /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {\n id: props.id,\n type: \"line\"\n }, id => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetLegendPayload, {\n legendPayload: computeLegendPayloadFromAreaData(props)\n }), /*#__PURE__*/React.createElement(SetLineTooltipEntrySettings, {\n dataKey: props.dataKey,\n data: props.data,\n stroke: props.stroke,\n strokeWidth: props.strokeWidth,\n fill: props.fill,\n name: props.name,\n hide: props.hide,\n unit: props.unit,\n tooltipType: props.tooltipType,\n id: id\n }), /*#__PURE__*/React.createElement(SetCartesianGraphicalItem, {\n type: \"line\",\n id: id,\n data: props.data,\n xAxisId: props.xAxisId,\n yAxisId: props.yAxisId,\n zAxisId: 0,\n dataKey: props.dataKey,\n hide: props.hide,\n isPanorama: isPanorama\n }), /*#__PURE__*/React.createElement(LineImpl, _extends({}, props, {\n id: id\n }))));\n}\n\n/**\n * @provides LabelListContext\n * @provides ErrorBarContext\n * @consumes CartesianChartContext\n */\nexport var Line = /*#__PURE__*/React.memo(LineFn, propsAreEqual);\n// @ts-expect-error we need to set the displayName for debugging purposes\nLine.displayName = 'Line';", "var _excluded = [\"children\"];\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport { createContext, useContext, useEffect, useRef } from 'react';\nimport { addErrorBar, removeErrorBar, replaceErrorBar } from '../state/errorBarSlice';\nimport { useAppDispatch } from '../state/hooks';\nimport { useGraphicalItemId } from './RegisterGraphicalItemId';\nvar initialContextState = {\n data: [],\n xAxisId: 'xAxis-0',\n yAxisId: 'yAxis-0',\n dataPointFormatter: () => ({\n x: 0,\n y: 0,\n value: 0\n }),\n errorBarOffset: 0\n};\nvar ErrorBarContext = /*#__PURE__*/createContext(initialContextState);\nexport function SetErrorBarContext(props) {\n var {\n children\n } = props,\n rest = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/React.createElement(ErrorBarContext.Provider, {\n value: rest\n }, children);\n}\nexport var useErrorBarContext = () => useContext(ErrorBarContext);\nexport function ReportErrorBarSettings(props) {\n var dispatch = useAppDispatch();\n var graphicalItemId = useGraphicalItemId();\n var prevPropsRef = useRef(null);\n useEffect(() => {\n if (graphicalItemId == null) {\n // ErrorBar outside a graphical item context does not do anything.\n return;\n }\n if (prevPropsRef.current === null) {\n dispatch(addErrorBar({\n itemId: graphicalItemId,\n errorBar: props\n }));\n } else if (prevPropsRef.current !== props) {\n dispatch(replaceErrorBar({\n itemId: graphicalItemId,\n prev: prevPropsRef.current,\n next: props\n }));\n }\n prevPropsRef.current = props;\n }, [dispatch, graphicalItemId, props]);\n useEffect(() => {\n return () => {\n if (prevPropsRef.current != null && graphicalItemId != null) {\n dispatch(removeErrorBar({\n itemId: graphicalItemId,\n errorBar: prevPropsRef.current\n }));\n prevPropsRef.current = null;\n }\n };\n }, [dispatch, graphicalItemId]);\n return null;\n}", "import { 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 * as React from 'react';\nimport { useAppSelector } from '../state/hooks';\nimport { implicitXAxis, implicitYAxis, selectXAxisSettings, selectYAxisSettings } from '../state/selectors/axisSelectors';\nimport { usePlotArea } from '../hooks';\nexport function useNeedsClip(xAxisId, yAxisId) {\n var _xAxis$allowDataOverf, _yAxis$allowDataOverf;\n var xAxis = useAppSelector(state => selectXAxisSettings(state, xAxisId));\n var yAxis = useAppSelector(state => selectYAxisSettings(state, yAxisId));\n var needClipX = (_xAxis$allowDataOverf = xAxis === null || xAxis === void 0 ? void 0 : xAxis.allowDataOverflow) !== null && _xAxis$allowDataOverf !== void 0 ? _xAxis$allowDataOverf : implicitXAxis.allowDataOverflow;\n var needClipY = (_yAxis$allowDataOverf = yAxis === null || yAxis === void 0 ? void 0 : yAxis.allowDataOverflow) !== null && _yAxis$allowDataOverf !== void 0 ? _yAxis$allowDataOverf : implicitYAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n return {\n needClip,\n needClipX,\n needClipY\n };\n}\nexport function GraphicalItemClipPath(_ref) {\n var {\n xAxisId,\n yAxisId,\n clipPathId\n } = _ref;\n var plotArea = usePlotArea();\n var {\n needClipX,\n needClipY,\n needClip\n } = useNeedsClip(xAxisId, yAxisId);\n if (!needClip || !plotArea) {\n return null;\n }\n var {\n x,\n y,\n width,\n height\n } = plotArea;\n return /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: needClipX ? x : x - width / 2,\n y: needClipY ? y : y - height / 2,\n width: needClipX ? width : width * 2,\n height: needClipY ? height : height * 2\n }));\n}", "import { createSelector } from 'reselect';\nimport { computeLinePoints } from '../../cartesian/Line';\nimport { selectChartDataWithIndexesIfNotInPanoramaPosition4 } from './dataSelectors';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { selectAxisWithScale, selectTicksOfGraphicalItem, selectUnfilteredCartesianItems } from './axisSelectors';\nimport { getBandSizeOfAxis, isCategoricalAxis } from '../../util/ChartUtils';\nvar selectXAxisWithScale = (state, xAxisId, _yAxisId, isPanorama) => selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);\nvar selectXAxisTicks = (state, xAxisId, _yAxisId, isPanorama) => selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);\nvar selectYAxisWithScale = (state, _xAxisId, yAxisId, isPanorama) => selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);\nvar selectYAxisTicks = (state, _xAxisId, yAxisId, isPanorama) => selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);\nvar selectBandSize = createSelector([selectChartLayout, selectXAxisWithScale, selectYAxisWithScale, selectXAxisTicks, selectYAxisTicks], (layout, xAxis, yAxis, xAxisTicks, yAxisTicks) => {\n if (isCategoricalAxis(layout, 'xAxis')) {\n return getBandSizeOfAxis(xAxis, xAxisTicks, false);\n }\n return getBandSizeOfAxis(yAxis, yAxisTicks, false);\n});\nvar pickLineId = (_state, _xAxisId, _yAxisId, _isPanorama, id) => id;\nfunction isLineSettings(item) {\n return item.type === 'line';\n}\n\n/*\n * There is a race condition problem because we read some data from props and some from the state.\n * The state is updated through a dispatch and is one render behind,\n * and so we have this weird one tick render where the displayedData in one selector have the old dataKey\n * but the new dataKey in another selector.\n *\n * So here instead of reading the dataKey from the props, we always read it from the state.\n */\nvar selectSynchronisedLineSettings = createSelector([selectUnfilteredCartesianItems, pickLineId], (graphicalItems, id) => graphicalItems.filter(isLineSettings).find(x => x.id === id));\nexport var selectLinePoints = createSelector([selectChartLayout, selectXAxisWithScale, selectYAxisWithScale, selectXAxisTicks, selectYAxisTicks, selectSynchronisedLineSettings, selectBandSize, selectChartDataWithIndexesIfNotInPanoramaPosition4], (layout, xAxis, yAxis, xAxisTicks, yAxisTicks, lineSettings, bandSize, _ref) => {\n var {\n chartData,\n dataStartIndex,\n dataEndIndex\n } = _ref;\n if (lineSettings == null || xAxis == null || yAxis == null || xAxisTicks == null || yAxisTicks == null || xAxisTicks.length === 0 || yAxisTicks.length === 0 || bandSize == null || layout !== 'horizontal' && layout !== 'vertical') {\n return undefined;\n }\n var {\n dataKey,\n data\n } = lineSettings;\n var displayedData;\n if (data != null && data.length > 0) {\n displayedData = data;\n } else {\n displayedData = chartData === null || chartData === void 0 ? void 0 : chartData.slice(dataStartIndex, dataEndIndex + 1);\n }\n if (displayedData == null) {\n return undefined;\n }\n return computeLinePoints({\n layout,\n xAxis,\n yAxis,\n xAxisTicks,\n yAxisTicks,\n dataKey,\n bandSize,\n displayedData\n });\n});", "import { svgPropertiesNoEventsFromUnknown } from './svgPropertiesNoEvents';\nexport function getRadiusAndStrokeWidthFromDot(dot) {\n var props = svgPropertiesNoEventsFromUnknown(dot);\n var defaultR = 3;\n var defaultStrokeWidth = 2;\n if (props != null) {\n var {\n r,\n strokeWidth\n } = props;\n var realR = Number(r);\n var realStrokeWidth = Number(strokeWidth);\n if (Number.isNaN(realR) || realR < 0) {\n realR = defaultR;\n }\n if (Number.isNaN(realStrokeWidth) || realStrokeWidth < 0) {\n realStrokeWidth = defaultStrokeWidth;\n }\n return {\n r: realR,\n strokeWidth: realStrokeWidth\n };\n }\n return {\n r: defaultR,\n strokeWidth: defaultStrokeWidth\n };\n}", "var _excluded = [\"id\"],\n _excluded2 = [\"activeDot\", \"animationBegin\", \"animationDuration\", \"animationEasing\", \"connectNulls\", \"dot\", \"fill\", \"fillOpacity\", \"hide\", \"isAnimationActive\", \"legendType\", \"stroke\", \"xAxisId\", \"yAxisId\"];\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; }\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 { PureComponent, useCallback, useMemo, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { Curve } from '../shape/Curve';\nimport { Layer } from '../container/Layer';\nimport { CartesianLabelListContextProvider, LabelListFromLabelProp } from '../component/LabelList';\nimport { Dots } from '../component/Dots';\nimport { interpolate, isNan, isNullish, isNumber, noop } from '../util/DataUtils';\nimport { getCateCoordinateOfLine, getNormalizedStackId, getTooltipNameProp, getValueByDataKey } from '../util/ChartUtils';\nimport { isClipDot } from '../util/ReactUtils';\nimport { ActivePoints } from '../component/ActivePoints';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { GraphicalItemClipPath, useNeedsClip } from './GraphicalItemClipPath';\nimport { selectArea } from '../state/selectors/areaSelectors';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { useCartesianChartLayout, useChartLayout } from '../context/chartLayoutContext';\nimport { useChartName } from '../state/selectors/selectors';\nimport { SetLegendPayload } from '../state/SetLegendPayload';\nimport { useAppSelector } from '../state/hooks';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { isWellBehavedNumber } from '../util/isWellBehavedNumber';\nimport { usePlotArea } from '../hooks';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\nimport { SetCartesianGraphicalItem } from '../state/SetGraphicalItem';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { JavascriptAnimate } from '../animation/JavascriptAnimate';\nimport { getRadiusAndStrokeWidthFromDot } from '../util/getRadiusAndStrokeWidthFromDot';\nimport { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { propsAreEqual } from '../util/propsAreEqual';\n\n/**\n * @inline\n */\n\n/**\n * Our base value array has payload in it, and we expose it externally too.\n */\n\n/**\n * Internal props, combination of external props + defaultProps + private Recharts state\n */\n\n/**\n * External props, intended for end users to fill in\n */\n\n/**\n * Because of naming conflict, we are forced to ignore certain (valid) SVG attributes.\n */\n\nfunction getLegendItemColor(stroke, fill) {\n return stroke && stroke !== 'none' ? stroke : fill;\n}\nvar computeLegendPayloadFromAreaData = props => {\n var {\n dataKey,\n name,\n stroke,\n fill,\n legendType,\n hide\n } = props;\n return [{\n inactive: hide,\n dataKey,\n type: legendType,\n color: getLegendItemColor(stroke, fill),\n value: getTooltipNameProp(name, dataKey),\n payload: props\n }];\n};\nvar SetAreaTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {\n var {\n dataKey,\n data,\n stroke,\n strokeWidth,\n fill,\n name,\n hide,\n unit,\n tooltipType,\n id\n } = _ref;\n var tooltipEntrySettings = {\n dataDefinedOnItem: data,\n getPosition: noop,\n settings: {\n stroke,\n strokeWidth,\n fill,\n dataKey,\n nameKey: undefined,\n name: getTooltipNameProp(name, dataKey),\n hide,\n type: tooltipType,\n color: getLegendItemColor(stroke, fill),\n unit,\n graphicalItemId: id\n }\n };\n return /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {\n tooltipEntrySettings: tooltipEntrySettings\n });\n});\nfunction AreaDotsWrapper(_ref2) {\n var {\n clipPathId,\n points,\n props\n } = _ref2;\n var {\n needClip,\n dot,\n dataKey\n } = props;\n var areaProps = svgPropertiesNoEvents(props);\n return /*#__PURE__*/React.createElement(Dots, {\n points: points,\n dot: dot,\n className: \"recharts-area-dots\",\n dotClassName: \"recharts-area-dot\",\n dataKey: dataKey,\n baseProps: areaProps,\n needClip: needClip,\n clipPathId: clipPathId\n });\n}\nfunction AreaLabelListProvider(_ref3) {\n var {\n showLabels,\n children,\n points\n } = _ref3;\n var labelListEntries = points.map(point => {\n var _point$x, _point$y;\n var viewBox = {\n x: (_point$x = point.x) !== null && _point$x !== void 0 ? _point$x : 0,\n y: (_point$y = point.y) !== null && _point$y !== void 0 ? _point$y : 0,\n width: 0,\n lowerWidth: 0,\n upperWidth: 0,\n height: 0\n };\n return _objectSpread(_objectSpread({}, viewBox), {}, {\n value: point.value,\n payload: point.payload,\n parentViewBox: undefined,\n viewBox,\n fill: undefined\n });\n });\n return /*#__PURE__*/React.createElement(CartesianLabelListContextProvider, {\n value: showLabels ? labelListEntries : undefined\n }, children);\n}\nfunction StaticArea(_ref4) {\n var {\n points,\n baseLine,\n needClip,\n clipPathId,\n props\n } = _ref4;\n var {\n layout,\n type,\n stroke,\n connectNulls,\n isRange\n } = props;\n var {\n id\n } = props,\n propsWithoutId = _objectWithoutProperties(props, _excluded);\n var allOtherProps = svgPropertiesNoEvents(propsWithoutId);\n var propsWithEvents = svgPropertiesAndEvents(propsWithoutId);\n return /*#__PURE__*/React.createElement(React.Fragment, null, (points === null || points === void 0 ? void 0 : points.length) > 1 && /*#__PURE__*/React.createElement(Layer, {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : undefined\n }, /*#__PURE__*/React.createElement(Curve, _extends({}, propsWithEvents, {\n id: id,\n points: points,\n connectNulls: connectNulls,\n type: type,\n baseLine: baseLine,\n layout: layout,\n stroke: \"none\",\n className: \"recharts-area-area\"\n })), stroke !== 'none' && /*#__PURE__*/React.createElement(Curve, _extends({}, allOtherProps, {\n className: \"recharts-area-curve\",\n layout: layout,\n type: type,\n connectNulls: connectNulls,\n fill: \"none\",\n points: points\n })), stroke !== 'none' && isRange && Array.isArray(baseLine) && /*#__PURE__*/React.createElement(Curve, _extends({}, allOtherProps, {\n className: \"recharts-area-curve\",\n layout: layout,\n type: type,\n connectNulls: connectNulls,\n fill: \"none\",\n points: baseLine\n }))), /*#__PURE__*/React.createElement(AreaDotsWrapper, {\n points: points,\n props: propsWithoutId,\n clipPathId: clipPathId\n }));\n}\nfunction VerticalRect(_ref5) {\n var _points$, _points;\n var {\n alpha,\n baseLine,\n points,\n strokeWidth\n } = _ref5;\n var startY = (_points$ = points[0]) === null || _points$ === void 0 ? void 0 : _points$.y;\n var endY = (_points = points[points.length - 1]) === null || _points === void 0 ? void 0 : _points.y;\n if (!isWellBehavedNumber(startY) || !isWellBehavedNumber(endY)) {\n return null;\n }\n var height = alpha * Math.abs(startY - endY);\n var maxX = Math.max(...points.map(entry => entry.x || 0));\n if (isNumber(baseLine)) {\n maxX = Math.max(baseLine, maxX);\n } else if (baseLine && Array.isArray(baseLine) && baseLine.length) {\n maxX = Math.max(...baseLine.map(entry => entry.x || 0), maxX);\n }\n if (isNumber(maxX)) {\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: 0,\n y: startY < endY ? startY : startY - height,\n width: maxX + (strokeWidth ? parseInt(\"\".concat(strokeWidth), 10) : 1),\n height: Math.floor(height)\n });\n }\n return null;\n}\nfunction HorizontalRect(_ref6) {\n var _points$2, _points2;\n var {\n alpha,\n baseLine,\n points,\n strokeWidth\n } = _ref6;\n var startX = (_points$2 = points[0]) === null || _points$2 === void 0 ? void 0 : _points$2.x;\n var endX = (_points2 = points[points.length - 1]) === null || _points2 === void 0 ? void 0 : _points2.x;\n if (!isWellBehavedNumber(startX) || !isWellBehavedNumber(endX)) {\n return null;\n }\n var width = alpha * Math.abs(startX - endX);\n var maxY = Math.max(...points.map(entry => entry.y || 0));\n if (isNumber(baseLine)) {\n maxY = Math.max(baseLine, maxY);\n } else if (baseLine && Array.isArray(baseLine) && baseLine.length) {\n maxY = Math.max(...baseLine.map(entry => entry.y || 0), maxY);\n }\n if (isNumber(maxY)) {\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: startX < endX ? startX : startX - width,\n y: 0,\n width: width,\n height: Math.floor(maxY + (strokeWidth ? parseInt(\"\".concat(strokeWidth), 10) : 1))\n });\n }\n return null;\n}\nfunction ClipRect(_ref7) {\n var {\n alpha,\n layout,\n points,\n baseLine,\n strokeWidth\n } = _ref7;\n if (layout === 'vertical') {\n return /*#__PURE__*/React.createElement(VerticalRect, {\n alpha: alpha,\n points: points,\n baseLine: baseLine,\n strokeWidth: strokeWidth\n });\n }\n return /*#__PURE__*/React.createElement(HorizontalRect, {\n alpha: alpha,\n points: points,\n baseLine: baseLine,\n strokeWidth: strokeWidth\n });\n}\nfunction AreaWithAnimation(_ref8) {\n var {\n needClip,\n clipPathId,\n props,\n previousPointsRef,\n previousBaselineRef\n } = _ref8;\n var {\n points,\n baseLine,\n isAnimationActive,\n animationBegin,\n animationDuration,\n animationEasing,\n onAnimationStart,\n onAnimationEnd\n } = props;\n var animationInput = useMemo(() => ({\n points,\n baseLine\n }), [points, baseLine]);\n var animationId = useAnimationId(animationInput, 'recharts-area-');\n var layout = useCartesianChartLayout();\n var [isAnimating, setIsAnimating] = useState(false);\n var showLabels = !isAnimating;\n var handleAnimationEnd = useCallback(() => {\n if (typeof onAnimationEnd === 'function') {\n onAnimationEnd();\n }\n setIsAnimating(false);\n }, [onAnimationEnd]);\n var handleAnimationStart = useCallback(() => {\n if (typeof onAnimationStart === 'function') {\n onAnimationStart();\n }\n setIsAnimating(true);\n }, [onAnimationStart]);\n if (layout == null) {\n return null;\n }\n var prevPoints = previousPointsRef.current;\n var prevBaseLine = previousBaselineRef.current;\n return /*#__PURE__*/React.createElement(AreaLabelListProvider, {\n showLabels: showLabels,\n points: points\n }, props.children, /*#__PURE__*/React.createElement(JavascriptAnimate, {\n animationId: animationId,\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n onAnimationEnd: handleAnimationEnd,\n onAnimationStart: handleAnimationStart,\n key: animationId\n }, t => {\n if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length;\n var stepPoints =\n /*\n * Here it is important that at the very end of the animation, on the last frame,\n * we render the original points without any interpolation.\n * This is needed because the code above is checking for reference equality to decide if the animation should run\n * and if we create a new array instance (even if the numbers were the same)\n * then we would break animations.\n */\n t === 1 ? points : points.map((entry, index) => {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n if (prevPoints[prevPointIndex]) {\n var prev = prevPoints[prevPointIndex];\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolate(prev.x, entry.x, t),\n y: interpolate(prev.y, entry.y, t)\n });\n }\n return entry;\n });\n var stepBaseLine;\n if (isNumber(baseLine)) {\n stepBaseLine = interpolate(prevBaseLine, baseLine, t);\n } else if (isNullish(baseLine) || isNan(baseLine)) {\n stepBaseLine = interpolate(prevBaseLine, 0, t);\n } else {\n stepBaseLine = baseLine.map((entry, index) => {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n if (Array.isArray(prevBaseLine) && prevBaseLine[prevPointIndex]) {\n var prev = prevBaseLine[prevPointIndex];\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolate(prev.x, entry.x, t),\n y: interpolate(prev.y, entry.y, t)\n });\n }\n return entry;\n });\n }\n if (t > 0) {\n /*\n * We need to keep the refs in the parent component because we need to remember the last shape of the animation\n * even if AreaWithAnimation is unmounted as that happens when changing props.\n *\n * And we need to update the refs here because here is where the interpolation is computed.\n * Eslint doesn't like changing function arguments, but we need it so here is an eslint-disable.\n */\n // eslint-disable-next-line no-param-reassign\n previousPointsRef.current = stepPoints;\n // eslint-disable-next-line no-param-reassign\n previousBaselineRef.current = stepBaseLine;\n }\n return /*#__PURE__*/React.createElement(StaticArea, {\n points: stepPoints,\n baseLine: stepBaseLine,\n needClip: needClip,\n clipPathId: clipPathId,\n props: props\n });\n }\n if (t > 0) {\n // eslint-disable-next-line no-param-reassign\n previousPointsRef.current = points;\n // eslint-disable-next-line no-param-reassign\n previousBaselineRef.current = baseLine;\n }\n return /*#__PURE__*/React.createElement(Layer, null, isAnimationActive && /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"animationClipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(ClipRect, {\n alpha: t,\n points: points,\n baseLine: baseLine,\n layout: layout,\n strokeWidth: props.strokeWidth\n }))), /*#__PURE__*/React.createElement(Layer, {\n clipPath: \"url(#animationClipPath-\".concat(clipPathId, \")\")\n }, /*#__PURE__*/React.createElement(StaticArea, {\n points: points,\n baseLine: baseLine,\n needClip: needClip,\n clipPathId: clipPathId,\n props: props\n })));\n }), /*#__PURE__*/React.createElement(LabelListFromLabelProp, {\n label: props.label\n }));\n}\n\n/*\n * This components decides if the area should be animated or not.\n * It also holds the state of the animation.\n */\nfunction RenderArea(_ref9) {\n var {\n needClip,\n clipPathId,\n props\n } = _ref9;\n /*\n * These two must be refs, not state!\n * Because we want to store the most recent shape of the animation in case we have to interrupt the animation;\n * that happens when user initiates another animation before the current one finishes.\n *\n * If this was a useState, then every step in the animation would trigger a re-render.\n * So, useRef it is.\n */\n var previousPointsRef = useRef(null);\n var previousBaselineRef = useRef();\n return /*#__PURE__*/React.createElement(AreaWithAnimation, {\n needClip: needClip,\n clipPathId: clipPathId,\n props: props,\n previousPointsRef: previousPointsRef,\n previousBaselineRef: previousBaselineRef\n });\n}\nclass AreaWithState extends PureComponent {\n render() {\n var {\n hide,\n dot,\n points,\n className,\n top,\n left,\n needClip,\n xAxisId,\n yAxisId,\n width,\n height,\n id,\n baseLine,\n zIndex\n } = this.props;\n if (hide) {\n return null;\n }\n var layerClass = clsx('recharts-area', className);\n var clipPathId = id;\n var {\n r,\n strokeWidth\n } = getRadiusAndStrokeWidthFromDot(dot);\n var clipDot = isClipDot(dot);\n var dotSize = r * 2 + strokeWidth;\n var activePointsClipPath = needClip ? \"url(#clipPath-\".concat(clipDot ? '' : 'dots-').concat(clipPathId, \")\") : undefined;\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: zIndex\n }, /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClip && /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(GraphicalItemClipPath, {\n clipPathId: clipPathId,\n xAxisId: xAxisId,\n yAxisId: yAxisId\n }), !clipDot && /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-dots-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left - dotSize / 2,\n y: top - dotSize / 2,\n width: width + dotSize,\n height: height + dotSize\n }))), /*#__PURE__*/React.createElement(RenderArea, {\n needClip: needClip,\n clipPathId: clipPathId,\n props: this.props\n })), /*#__PURE__*/React.createElement(ActivePoints, {\n points: points,\n mainColor: getLegendItemColor(this.props.stroke, this.props.fill),\n itemDataKey: this.props.dataKey,\n activeDot: this.props.activeDot,\n clipPath: activePointsClipPath\n }), this.props.isRange && Array.isArray(baseLine) && /*#__PURE__*/React.createElement(ActivePoints, {\n points: baseLine,\n mainColor: getLegendItemColor(this.props.stroke, this.props.fill),\n itemDataKey: this.props.dataKey,\n activeDot: this.props.activeDot,\n clipPath: activePointsClipPath\n }));\n }\n}\nexport var defaultAreaProps = {\n activeDot: true,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease',\n connectNulls: false,\n dot: false,\n fill: '#3182bd',\n fillOpacity: 0.6,\n hide: false,\n isAnimationActive: 'auto',\n legendType: 'line',\n stroke: '#3182bd',\n strokeWidth: 1,\n type: 'linear',\n label: false,\n xAxisId: 0,\n yAxisId: 0,\n zIndex: DefaultZIndexes.area\n};\nfunction AreaImpl(props) {\n var _useAppSelector;\n var {\n activeDot,\n animationBegin,\n animationDuration,\n animationEasing,\n connectNulls,\n dot,\n fill,\n fillOpacity,\n hide,\n isAnimationActive,\n legendType,\n stroke,\n xAxisId,\n yAxisId\n } = props,\n everythingElse = _objectWithoutProperties(props, _excluded2);\n var layout = useChartLayout();\n var chartName = useChartName();\n var {\n needClip\n } = useNeedsClip(xAxisId, yAxisId);\n var isPanorama = useIsPanorama();\n var {\n points,\n isRange,\n baseLine\n } = (_useAppSelector = useAppSelector(state => selectArea(state, props.id, isPanorama))) !== null && _useAppSelector !== void 0 ? _useAppSelector : {};\n var plotArea = usePlotArea();\n if (layout !== 'horizontal' && layout !== 'vertical' || plotArea == null) {\n // Can't render Area in an unsupported layout\n return null;\n }\n if (chartName !== 'AreaChart' && chartName !== 'ComposedChart') {\n // There is nothing stopping us from rendering Area in other charts, except for historical reasons. Do we want to allow that?\n return null;\n }\n var {\n height,\n width,\n x: left,\n y: top\n } = plotArea;\n if (!points || !points.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(AreaWithState, _extends({}, everythingElse, {\n activeDot: activeDot,\n animationBegin: animationBegin,\n animationDuration: animationDuration,\n animationEasing: animationEasing,\n baseLine: baseLine,\n connectNulls: connectNulls,\n dot: dot,\n fill: fill,\n fillOpacity: fillOpacity,\n height: height,\n hide: hide,\n layout: layout,\n isAnimationActive: isAnimationActive,\n isRange: isRange,\n legendType: legendType,\n needClip: needClip,\n points: points,\n stroke: stroke,\n width: width,\n left: left,\n top: top,\n xAxisId: xAxisId,\n yAxisId: yAxisId\n }));\n}\nexport var getBaseValue = (layout, chartBaseValue, itemBaseValue, xAxis, yAxis) => {\n // The baseValue can be defined both on the AreaChart, and on the Area.\n // The value for the item takes precedence.\n var baseValue = itemBaseValue !== null && itemBaseValue !== void 0 ? itemBaseValue : chartBaseValue;\n if (isNumber(baseValue)) {\n return baseValue;\n }\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n // @ts-expect-error d3scale .domain() returns unknown, Math.max expects number\n var domain = numericAxis.scale.domain();\n if (numericAxis.type === 'number') {\n var domainMax = Math.max(domain[0], domain[1]);\n var domainMin = Math.min(domain[0], domain[1]);\n if (baseValue === 'dataMin') {\n return domainMin;\n }\n if (baseValue === 'dataMax') {\n return domainMax;\n }\n return domainMax < 0 ? domainMax : Math.max(Math.min(domain[0], domain[1]), 0);\n }\n if (baseValue === 'dataMin') {\n return domain[0];\n }\n if (baseValue === 'dataMax') {\n return domain[1];\n }\n return domain[0];\n};\nexport function computeArea(_ref0) {\n var {\n areaSettings: {\n connectNulls,\n baseValue: itemBaseValue,\n dataKey\n },\n stackedData,\n layout,\n chartBaseValue,\n xAxis,\n yAxis,\n displayedData,\n dataStartIndex,\n xAxisTicks,\n yAxisTicks,\n bandSize\n } = _ref0;\n var hasStack = stackedData && stackedData.length;\n var baseValue = getBaseValue(layout, chartBaseValue, itemBaseValue, xAxis, yAxis);\n var isHorizontalLayout = layout === 'horizontal';\n var isRange = false;\n var points = displayedData.map((entry, index) => {\n var _valueAsArray$, _valueAsArray, _xAxis$scale$map;\n var valueAsArray;\n if (hasStack) {\n valueAsArray = stackedData[dataStartIndex + index];\n } else {\n var rawValue = getValueByDataKey(entry, dataKey);\n if (!Array.isArray(rawValue)) {\n valueAsArray = [baseValue, rawValue];\n } else {\n valueAsArray = rawValue;\n isRange = true;\n }\n }\n var value1 = (_valueAsArray$ = (_valueAsArray = valueAsArray) === null || _valueAsArray === void 0 ? void 0 : _valueAsArray[1]) !== null && _valueAsArray$ !== void 0 ? _valueAsArray$ : null;\n var isBreakPoint = value1 == null || hasStack && !connectNulls && getValueByDataKey(entry, dataKey) == null;\n if (isHorizontalLayout) {\n var _yAxis$scale$map;\n return {\n x: getCateCoordinateOfLine({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize,\n entry,\n index\n }),\n y: isBreakPoint ? null : (_yAxis$scale$map = yAxis.scale.map(value1)) !== null && _yAxis$scale$map !== void 0 ? _yAxis$scale$map : null,\n value: valueAsArray,\n payload: entry\n };\n }\n return {\n x: isBreakPoint ? null : (_xAxis$scale$map = xAxis.scale.map(value1)) !== null && _xAxis$scale$map !== void 0 ? _xAxis$scale$map : null,\n y: getCateCoordinateOfLine({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize,\n entry,\n index\n }),\n value: valueAsArray,\n payload: entry\n };\n });\n var baseLine;\n if (hasStack || isRange) {\n baseLine = points.map(entry => {\n var _xAxis$scale$map2;\n var x = Array.isArray(entry.value) ? entry.value[0] : null;\n if (isHorizontalLayout) {\n var _yAxis$scale$map2;\n return {\n x: entry.x,\n y: x != null && entry.y != null ? (_yAxis$scale$map2 = yAxis.scale.map(x)) !== null && _yAxis$scale$map2 !== void 0 ? _yAxis$scale$map2 : null : null,\n payload: entry.payload\n };\n }\n return {\n x: x != null ? (_xAxis$scale$map2 = xAxis.scale.map(x)) !== null && _xAxis$scale$map2 !== void 0 ? _xAxis$scale$map2 : null : null,\n y: entry.y,\n payload: entry.payload\n };\n });\n } else {\n baseLine = isHorizontalLayout ? yAxis.scale.map(baseValue) : xAxis.scale.map(baseValue);\n }\n return {\n points,\n baseLine: baseLine !== null && baseLine !== void 0 ? baseLine : 0,\n isRange\n };\n}\nfunction AreaFn(outsideProps) {\n var props = resolveDefaultProps(outsideProps, defaultAreaProps);\n var isPanorama = useIsPanorama();\n // Report all props to Redux store first, before calling hooks, to avoid circular dependencies.\n return /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {\n id: props.id,\n type: \"area\"\n }, id => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetLegendPayload, {\n legendPayload: computeLegendPayloadFromAreaData(props)\n }), /*#__PURE__*/React.createElement(SetAreaTooltipEntrySettings, {\n dataKey: props.dataKey,\n data: props.data,\n stroke: props.stroke,\n strokeWidth: props.strokeWidth,\n fill: props.fill,\n name: props.name,\n hide: props.hide,\n unit: props.unit,\n tooltipType: props.tooltipType,\n id: id\n }), /*#__PURE__*/React.createElement(SetCartesianGraphicalItem, {\n type: \"area\",\n id: id,\n data: props.data,\n dataKey: props.dataKey,\n xAxisId: props.xAxisId,\n yAxisId: props.yAxisId,\n zAxisId: 0,\n stackId: getNormalizedStackId(props.stackId),\n hide: props.hide,\n barSize: undefined,\n baseValue: props.baseValue,\n isPanorama: isPanorama,\n connectNulls: props.connectNulls\n }), /*#__PURE__*/React.createElement(AreaImpl, _extends({}, props, {\n id: id\n }))));\n}\n\n/**\n * @provides LabelListContext\n * @consumes CartesianChartContext\n */\nexport var Area = /*#__PURE__*/React.memo(AreaFn, propsAreEqual);\n// @ts-expect-error we need to set the displayName for debugging purposes\nArea.displayName = 'Area';", "import { defaultAxisId } from '../cartesianAxisSlice';\nexport function selectXAxisIdFromGraphicalItemId(state, id) {\n var _state$graphicalItems, _state$graphicalItems2;\n return (_state$graphicalItems = (_state$graphicalItems2 = state.graphicalItems.cartesianItems.find(item => item.id === id)) === null || _state$graphicalItems2 === void 0 ? void 0 : _state$graphicalItems2.xAxisId) !== null && _state$graphicalItems !== void 0 ? _state$graphicalItems : defaultAxisId;\n}\nexport function selectYAxisIdFromGraphicalItemId(state, id) {\n var _state$graphicalItems3, _state$graphicalItems4;\n return (_state$graphicalItems3 = (_state$graphicalItems4 = state.graphicalItems.cartesianItems.find(item => item.id === id)) === null || _state$graphicalItems4 === void 0 ? void 0 : _state$graphicalItems4.yAxisId) !== null && _state$graphicalItems3 !== void 0 ? _state$graphicalItems3 : defaultAxisId;\n}", "import { createSelector } from 'reselect';\nimport { computeArea } from '../../cartesian/Area';\nimport { selectAxisWithScale, selectStackGroups, selectTicksOfGraphicalItem, selectUnfilteredCartesianItems } from './axisSelectors';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { selectChartDataWithIndexesIfNotInPanoramaPosition3 } from './dataSelectors';\nimport { getBandSizeOfAxis, isCategoricalAxis } from '../../util/ChartUtils';\nimport { getStackSeriesIdentifier } from '../../util/stacks/getStackSeriesIdentifier';\nimport { selectChartBaseValue } from './rootPropsSelectors';\nimport { selectXAxisIdFromGraphicalItemId, selectYAxisIdFromGraphicalItemId } from './graphicalItemSelectors';\nvar selectXAxisWithScale = (state, graphicalItemId, isPanorama) => selectAxisWithScale(state, 'xAxis', selectXAxisIdFromGraphicalItemId(state, graphicalItemId), isPanorama);\nvar selectXAxisTicks = (state, graphicalItemId, isPanorama) => selectTicksOfGraphicalItem(state, 'xAxis', selectXAxisIdFromGraphicalItemId(state, graphicalItemId), isPanorama);\nvar selectYAxisWithScale = (state, graphicalItemId, isPanorama) => selectAxisWithScale(state, 'yAxis', selectYAxisIdFromGraphicalItemId(state, graphicalItemId), isPanorama);\nvar selectYAxisTicks = (state, graphicalItemId, isPanorama) => selectTicksOfGraphicalItem(state, 'yAxis', selectYAxisIdFromGraphicalItemId(state, graphicalItemId), isPanorama);\nvar selectBandSize = createSelector([selectChartLayout, selectXAxisWithScale, selectYAxisWithScale, selectXAxisTicks, selectYAxisTicks], (layout, xAxis, yAxis, xAxisTicks, yAxisTicks) => {\n if (isCategoricalAxis(layout, 'xAxis')) {\n return getBandSizeOfAxis(xAxis, xAxisTicks, false);\n }\n return getBandSizeOfAxis(yAxis, yAxisTicks, false);\n});\nvar pickAreaId = (_state, id) => id;\n\n/*\n * There is a race condition problem because we read some data from props and some from the state.\n * The state is updated through a dispatch and is one render behind,\n * and so we have this weird one tick render where the displayedData in one selector have the old dataKey\n * but the new dataKey in another selector.\n *\n * A proper fix is to either move everything into the state, or read the dataKey always from props\n * - but this is a smaller change.\n */\nvar selectSynchronisedAreaSettings = createSelector([selectUnfilteredCartesianItems, pickAreaId], (graphicalItems, id) => graphicalItems.filter(item => item.type === 'area').find(item => item.id === id));\nvar selectNumericalAxisType = state => {\n var layout = selectChartLayout(state);\n var isXAxisCategorical = isCategoricalAxis(layout, 'xAxis');\n return isXAxisCategorical ? 'yAxis' : 'xAxis';\n};\nvar selectNumericalAxisIdFromGraphicalItemId = (state, graphicalItemId) => {\n var axisType = selectNumericalAxisType(state);\n if (axisType === 'yAxis') {\n return selectYAxisIdFromGraphicalItemId(state, graphicalItemId);\n }\n return selectXAxisIdFromGraphicalItemId(state, graphicalItemId);\n};\nvar selectNumericalAxisStackGroups = (state, graphicalItemId, isPanorama) => selectStackGroups(state, selectNumericalAxisType(state), selectNumericalAxisIdFromGraphicalItemId(state, graphicalItemId), isPanorama);\nexport var selectGraphicalItemStackedData = createSelector([selectSynchronisedAreaSettings, selectNumericalAxisStackGroups], (areaSettings, stackGroups) => {\n var _stackGroups$stackId;\n if (areaSettings == null || stackGroups == null) {\n return undefined;\n }\n var {\n stackId\n } = areaSettings;\n var stackSeriesIdentifier = getStackSeriesIdentifier(areaSettings);\n if (stackId == null || stackSeriesIdentifier == null) {\n return undefined;\n }\n var groups = (_stackGroups$stackId = stackGroups[stackId]) === null || _stackGroups$stackId === void 0 ? void 0 : _stackGroups$stackId.stackedData;\n var found = groups === null || groups === void 0 ? void 0 : groups.find(v => v.key === stackSeriesIdentifier);\n if (found == null) {\n return undefined;\n }\n return found.map(item => [item[0], item[1]]);\n});\nexport var selectArea = createSelector([selectChartLayout, selectXAxisWithScale, selectYAxisWithScale, selectXAxisTicks, selectYAxisTicks, selectGraphicalItemStackedData, selectChartDataWithIndexesIfNotInPanoramaPosition3, selectBandSize, selectSynchronisedAreaSettings, selectChartBaseValue], (layout, xAxis, yAxis, xAxisTicks, yAxisTicks, stackedData, _ref, bandSize, areaSettings, chartBaseValue) => {\n var {\n chartData,\n dataStartIndex,\n dataEndIndex\n } = _ref;\n if (areaSettings == null || layout !== 'horizontal' && layout !== 'vertical' || xAxis == null || yAxis == null || xAxisTicks == null || yAxisTicks == null || xAxisTicks.length === 0 || yAxisTicks.length === 0 || bandSize == null) {\n return undefined;\n }\n var {\n data\n } = areaSettings;\n var displayedData;\n if (data && data.length > 0) {\n displayedData = data;\n } else {\n displayedData = chartData === null || chartData === void 0 ? void 0 : chartData.slice(dataStartIndex, dataEndIndex + 1);\n }\n if (displayedData == null) {\n return undefined;\n }\n return computeArea({\n layout,\n xAxis,\n yAxis,\n xAxisTicks,\n yAxisTicks,\n dataStartIndex,\n areaSettings,\n stackedData,\n displayedData,\n chartBaseValue,\n bandSize\n });\n});", "var _excluded = [\"onMouseEnter\", \"onMouseLeave\", \"onClick\"],\n _excluded2 = [\"value\", \"background\", \"tooltipPosition\"],\n _excluded3 = [\"id\"],\n _excluded4 = [\"onMouseEnter\", \"onClick\", \"onMouseLeave\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from 'react';\nimport { PureComponent, useCallback, useEffect, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Cell } from '../component/Cell';\nimport { CartesianLabelListContextProvider, LabelListFromLabelProp } from '../component/LabelList';\nimport { interpolate, isNan, mathSign, noop } from '../util/DataUtils';\nimport { findAllByType } from '../util/ReactUtils';\nimport { getBaseValueOfBar, getCateCoordinateOfBar, getTooltipNameProp, getValueByDataKey, truncateByDomain } from '../util/ChartUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { BarRectangle, minPointSizeCallback } from '../util/BarUtils';\nimport { useMouseClickItemDispatch, useMouseEnterItemDispatch, useMouseLeaveItemDispatch } from '../context/tooltipContext';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { SetErrorBarContext } from '../context/ErrorBarContext';\nimport { GraphicalItemClipPath, useNeedsClip } from './GraphicalItemClipPath';\nimport { useChartLayout } from '../context/chartLayoutContext';\nimport { selectBarRectangles } from '../state/selectors/barSelectors';\nimport { useAppSelector } from '../state/hooks';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { selectActiveTooltipDataKey, selectActiveTooltipIndex } from '../state/selectors/tooltipSelectors';\nimport { SetLegendPayload } from '../state/SetLegendPayload';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\nimport { SetCartesianGraphicalItem } from '../state/SetGraphicalItem';\nimport { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { JavascriptAnimate } from '../animation/JavascriptAnimate';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { getZIndexFromUnknown } from '../zIndex/getZIndexFromUnknown';\nimport { propsAreEqual } from '../util/propsAreEqual';\nimport { BarStackClipLayer, useStackId } from './BarStack';\nvar computeLegendPayloadFromBarData = props => {\n var {\n dataKey,\n name,\n fill,\n legendType,\n hide\n } = props;\n return [{\n inactive: hide,\n dataKey,\n type: legendType,\n color: fill,\n value: getTooltipNameProp(name, dataKey),\n payload: props\n }];\n};\nvar SetBarTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {\n var {\n dataKey,\n stroke,\n strokeWidth,\n fill,\n name,\n hide,\n unit,\n tooltipType,\n id\n } = _ref;\n var tooltipEntrySettings = {\n dataDefinedOnItem: undefined,\n getPosition: noop,\n settings: {\n stroke,\n strokeWidth,\n fill,\n dataKey,\n nameKey: undefined,\n name: getTooltipNameProp(name, dataKey),\n hide,\n type: tooltipType,\n color: fill,\n unit,\n graphicalItemId: id\n }\n };\n return /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {\n tooltipEntrySettings: tooltipEntrySettings\n });\n});\nfunction BarBackground(props) {\n var activeIndex = useAppSelector(selectActiveTooltipIndex);\n var {\n data,\n dataKey,\n background: backgroundFromProps,\n allOtherBarProps\n } = props;\n var {\n onMouseEnter: onMouseEnterFromProps,\n onMouseLeave: onMouseLeaveFromProps,\n onClick: onItemClickFromProps\n } = allOtherBarProps,\n restOfAllOtherProps = _objectWithoutProperties(allOtherBarProps, _excluded);\n var onMouseEnterFromContext = useMouseEnterItemDispatch(onMouseEnterFromProps, dataKey, allOtherBarProps.id);\n var onMouseLeaveFromContext = useMouseLeaveItemDispatch(onMouseLeaveFromProps);\n var onClickFromContext = useMouseClickItemDispatch(onItemClickFromProps, dataKey, allOtherBarProps.id);\n if (!backgroundFromProps || data == null) {\n return null;\n }\n var backgroundProps = svgPropertiesNoEventsFromUnknown(backgroundFromProps);\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: getZIndexFromUnknown(backgroundFromProps, DefaultZIndexes.barBackground)\n }, data.map((entry, i) => {\n var {\n value,\n background: backgroundFromDataEntry,\n tooltipPosition\n } = entry,\n rest = _objectWithoutProperties(entry, _excluded2);\n if (!backgroundFromDataEntry) {\n return null;\n }\n var onMouseEnter = onMouseEnterFromContext(entry, i);\n var onMouseLeave = onMouseLeaveFromContext(entry, i);\n var onClick = onClickFromContext(entry, i);\n var barRectangleProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({\n option: backgroundFromProps,\n isActive: String(i) === activeIndex\n }, rest), {}, {\n // @ts-expect-error backgroundProps is contributing unknown props\n fill: '#eee'\n }, backgroundFromDataEntry), backgroundProps), adaptEventsOfChild(restOfAllOtherProps, entry, i)), {}, {\n onMouseEnter,\n onMouseLeave,\n onClick,\n dataKey,\n index: i,\n className: 'recharts-bar-background-rectangle'\n });\n return /*#__PURE__*/React.createElement(BarRectangle, _extends({\n key: \"background-bar-\".concat(i)\n }, barRectangleProps));\n }));\n}\nfunction BarLabelListProvider(_ref2) {\n var {\n showLabels,\n children,\n rects\n } = _ref2;\n var labelListEntries = rects === null || rects === void 0 ? void 0 : rects.map(entry => {\n var viewBox = {\n x: entry.x,\n y: entry.y,\n width: entry.width,\n lowerWidth: entry.width,\n upperWidth: entry.width,\n height: entry.height\n };\n return _objectSpread(_objectSpread({}, viewBox), {}, {\n value: entry.value,\n payload: entry.payload,\n parentViewBox: entry.parentViewBox,\n viewBox,\n fill: entry.fill\n });\n });\n return /*#__PURE__*/React.createElement(CartesianLabelListContextProvider, {\n value: showLabels ? labelListEntries : undefined\n }, children);\n}\nfunction BarRectangleWithActiveState(props) {\n var {\n shape,\n activeBar,\n baseProps,\n entry,\n index,\n dataKey\n } = props;\n var activeIndex = useAppSelector(selectActiveTooltipIndex);\n var activeDataKey = useAppSelector(selectActiveTooltipDataKey);\n /*\n * Bars support stacking, meaning that there can be multiple bars at the same x value.\n * With Tooltip shared=false we only want to highlight the currently active Bar, not all.\n *\n * Also, if the tooltip is shared, we want to highlight all bars at the same x value\n * regardless of the dataKey.\n *\n * With shared Tooltip, the activeDataKey is undefined.\n *\n * We use entry.originalDataIndex to match against activeIndex because the render index parameter\n * is based on the filtered array, while activeIndex is based on the pre-filter displayed data slice.\n * When entries are filtered out (for example null/zero-dimension bars), these indices can differ.\n */\n var isActive = activeBar && String(entry.originalDataIndex) === activeIndex && (activeDataKey == null || dataKey === activeDataKey);\n var [stayInLayer, setStayInLayer] = useState(false);\n var [hasMountedActive, setHasMountedActive] = useState(false);\n useEffect(() => {\n var rafId;\n if (isActive) {\n // 1. Enter the layer immediately\n setStayInLayer(true);\n\n // 2. Wait for the browser to paint the \"inactive\" state in the new layer,\n // then switch to active to trigger the CSS transition (width grow).\n rafId = requestAnimationFrame(() => {\n setHasMountedActive(true);\n });\n } else {\n setHasMountedActive(false);\n }\n return () => {\n cancelAnimationFrame(rafId);\n };\n }, [isActive]);\n var handleTransitionEnd = useCallback(() => {\n // 4. Leave the layer only when the exit transition finishes\n if (!isActive) {\n setStayInLayer(false);\n }\n }, [isActive]);\n\n // Determine props:\n // - If entering (isActive=true) but not mounted yet (hasMountedActive=false), pass isActive=false (inactive size).\n // - If exiting (isActive=false), pass isActive=false (inactive size).\n var isVisuallyActive = isActive && hasMountedActive;\n\n // Render in ZIndexLayer if active OR if we are waiting for exit transition\n var shouldRenderInLayer = isActive || stayInLayer;\n var option;\n if (isActive) {\n if (activeBar === true) {\n option = shape;\n } else {\n option = activeBar;\n }\n } else {\n option = shape;\n }\n var content = /*#__PURE__*/React.createElement(BarRectangle, _extends({}, baseProps, {\n name: String(baseProps.name)\n }, entry, {\n isActive: isVisuallyActive,\n option: option,\n index: index,\n dataKey: dataKey,\n onTransitionEnd: handleTransitionEnd\n }));\n if (shouldRenderInLayer) {\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: DefaultZIndexes.activeBar\n }, /*#__PURE__*/React.createElement(BarStackClipLayer, {\n index: entry.originalDataIndex\n }, content));\n }\n return content;\n}\nfunction BarRectangleNeverActive(props) {\n var {\n shape,\n baseProps,\n entry,\n index,\n dataKey\n } = props;\n return /*#__PURE__*/React.createElement(BarRectangle, _extends({}, baseProps, {\n name: String(baseProps.name)\n }, entry, {\n isActive: false,\n option: shape,\n index: index,\n dataKey: dataKey\n }));\n}\nfunction BarRectangles(_ref3) {\n var _svgPropertiesNoEvent;\n var {\n data,\n props\n } = _ref3;\n var _ref4 = (_svgPropertiesNoEvent = svgPropertiesNoEvents(props)) !== null && _svgPropertiesNoEvent !== void 0 ? _svgPropertiesNoEvent : {},\n {\n id\n } = _ref4,\n baseProps = _objectWithoutProperties(_ref4, _excluded3);\n var {\n shape,\n dataKey,\n activeBar\n } = props;\n var {\n onMouseEnter: onMouseEnterFromProps,\n onClick: onItemClickFromProps,\n onMouseLeave: onMouseLeaveFromProps\n } = props,\n restOfAllOtherProps = _objectWithoutProperties(props, _excluded4);\n var onMouseEnterFromContext = useMouseEnterItemDispatch(onMouseEnterFromProps, dataKey, id);\n var onMouseLeaveFromContext = useMouseLeaveItemDispatch(onMouseLeaveFromProps);\n var onClickFromContext = useMouseClickItemDispatch(onItemClickFromProps, dataKey, id);\n if (!data) {\n return null;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, data.map((entry, i) => {\n return /*#__PURE__*/React.createElement(BarStackClipLayer, _extends({\n index: entry.originalDataIndex\n // https://github.com/recharts/recharts/issues/5415\n ,\n key: \"rectangle-\".concat(entry === null || entry === void 0 ? void 0 : entry.x, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.y, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.value, \"-\").concat(i),\n className: \"recharts-bar-rectangle\"\n }, adaptEventsOfChild(restOfAllOtherProps, entry, i), {\n onMouseEnter: onMouseEnterFromContext(entry, i),\n onMouseLeave: onMouseLeaveFromContext(entry, i),\n onClick: onClickFromContext(entry, i)\n }), activeBar ? /*#__PURE__*/React.createElement(BarRectangleWithActiveState, {\n shape: shape,\n activeBar: activeBar,\n baseProps: baseProps,\n entry: entry,\n index: i,\n dataKey: dataKey\n }) :\n /*#__PURE__*/\n /*\n * If the `activeBar` prop is falsy, then let's call the variant without hooks.\n * Using the `selectActiveTooltipIndex` selector is usually fast\n * but in charts with large-ish amount of data even the few nanoseconds add up to a noticeable jank.\n * If the activeBar is false then we don't need to know which index is active - because we won't use it anyway.\n * So let's just skip the hooks altogether. That way, React can skip rendering the component,\n * and can skip the tree reconciliation for its children too.\n * Because we can't call hooks conditionally, we need to have a separate component for that.\n */\n React.createElement(BarRectangleNeverActive, {\n shape: shape,\n baseProps: baseProps,\n entry: entry,\n index: i,\n dataKey: dataKey\n }));\n }));\n}\nfunction RectanglesWithAnimation(_ref5) {\n var {\n props,\n previousRectanglesRef\n } = _ref5;\n var {\n data,\n layout,\n isAnimationActive,\n animationBegin,\n animationDuration,\n animationEasing,\n onAnimationEnd,\n onAnimationStart\n } = props;\n var prevData = previousRectanglesRef.current;\n var animationId = useAnimationId(props, 'recharts-bar-');\n var [isAnimating, setIsAnimating] = useState(false);\n var showLabels = !isAnimating;\n var handleAnimationEnd = useCallback(() => {\n if (typeof onAnimationEnd === 'function') {\n onAnimationEnd();\n }\n setIsAnimating(false);\n }, [onAnimationEnd]);\n var handleAnimationStart = useCallback(() => {\n if (typeof onAnimationStart === 'function') {\n onAnimationStart();\n }\n setIsAnimating(true);\n }, [onAnimationStart]);\n return /*#__PURE__*/React.createElement(BarLabelListProvider, {\n showLabels: showLabels,\n rects: data\n }, /*#__PURE__*/React.createElement(JavascriptAnimate, {\n animationId: animationId,\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n onAnimationEnd: handleAnimationEnd,\n onAnimationStart: handleAnimationStart,\n key: animationId\n }, t => {\n var stepData = t === 1 ? data : data === null || data === void 0 ? void 0 : data.map((entry, index) => {\n var prev = prevData && prevData[index];\n if (prev) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolate(prev.x, entry.x, t),\n y: interpolate(prev.y, entry.y, t),\n width: interpolate(prev.width, entry.width, t),\n height: interpolate(prev.height, entry.height, t)\n });\n }\n if (layout === 'horizontal') {\n var height = interpolate(0, entry.height, t);\n var y = interpolate(entry.stackedBarStart, entry.y, t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n y,\n height\n });\n }\n var w = interpolate(0, entry.width, t);\n var x = interpolate(entry.stackedBarStart, entry.x, t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n width: w,\n x\n });\n });\n if (t > 0) {\n // eslint-disable-next-line no-param-reassign\n previousRectanglesRef.current = stepData !== null && stepData !== void 0 ? stepData : null;\n }\n if (stepData == null) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, null, /*#__PURE__*/React.createElement(BarRectangles, {\n props: props,\n data: stepData\n }));\n }), /*#__PURE__*/React.createElement(LabelListFromLabelProp, {\n label: props.label\n }), props.children);\n}\nfunction RenderRectangles(props) {\n var previousRectanglesRef = useRef(null);\n return /*#__PURE__*/React.createElement(RectanglesWithAnimation, {\n previousRectanglesRef: previousRectanglesRef,\n props: props\n });\n}\nvar defaultMinPointSize = 0;\nvar errorBarDataPointFormatter = (dataPoint, dataKey) => {\n /**\n * if the value coming from `selectBarRectangles` is an array then this is a stacked bar chart.\n * arr[1] represents end value of the bar since the data is in the form of [startValue, endValue].\n * */\n var value = Array.isArray(dataPoint.value) ? dataPoint.value[1] : dataPoint.value;\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value,\n // getValueByDataKey does not validate the output type\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n};\nclass BarWithState extends PureComponent {\n render() {\n var {\n hide,\n data,\n dataKey,\n className,\n xAxisId,\n yAxisId,\n needClip,\n background,\n id\n } = this.props;\n if (hide || data == null) {\n return null;\n }\n var layerClass = clsx('recharts-bar', className);\n var clipPathId = id;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass,\n id: id\n }, needClip && /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(GraphicalItemClipPath, {\n clipPathId: clipPathId,\n xAxisId: xAxisId,\n yAxisId: yAxisId\n })), /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-bar-rectangles\",\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : undefined\n }, /*#__PURE__*/React.createElement(BarBackground, {\n data: data,\n dataKey: dataKey,\n background: background,\n allOtherBarProps: this.props\n }), /*#__PURE__*/React.createElement(RenderRectangles, this.props)));\n }\n}\nexport var defaultBarProps = {\n activeBar: false,\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease',\n background: false,\n hide: false,\n isAnimationActive: 'auto',\n label: false,\n legendType: 'rect',\n minPointSize: defaultMinPointSize,\n xAxisId: 0,\n yAxisId: 0,\n zIndex: DefaultZIndexes.bar\n};\nfunction BarImpl(props) {\n var {\n xAxisId,\n yAxisId,\n hide,\n legendType,\n minPointSize,\n activeBar,\n animationBegin,\n animationDuration,\n animationEasing,\n isAnimationActive\n } = props;\n var {\n needClip\n } = useNeedsClip(xAxisId, yAxisId);\n var layout = useChartLayout();\n var isPanorama = useIsPanorama();\n var cells = findAllByType(props.children, Cell);\n var rects = useAppSelector(state => selectBarRectangles(state, props.id, isPanorama, cells));\n if (layout !== 'vertical' && layout !== 'horizontal') {\n return null;\n }\n var errorBarOffset;\n var firstDataPoint = rects === null || rects === void 0 ? void 0 : rects[0];\n if (firstDataPoint == null || firstDataPoint.height == null || firstDataPoint.width == null) {\n errorBarOffset = 0;\n } else {\n errorBarOffset = layout === 'vertical' ? firstDataPoint.height / 2 : firstDataPoint.width / 2;\n }\n return /*#__PURE__*/React.createElement(SetErrorBarContext, {\n xAxisId: xAxisId,\n yAxisId: yAxisId,\n data: rects,\n dataPointFormatter: errorBarDataPointFormatter,\n errorBarOffset: errorBarOffset\n }, /*#__PURE__*/React.createElement(BarWithState, _extends({}, props, {\n layout: layout,\n needClip: needClip,\n data: rects,\n xAxisId: xAxisId,\n yAxisId: yAxisId,\n hide: hide,\n legendType: legendType,\n minPointSize: minPointSize,\n activeBar: activeBar,\n animationBegin: animationBegin,\n animationDuration: animationDuration,\n animationEasing: animationEasing,\n isAnimationActive: isAnimationActive\n })));\n}\nexport function computeBarRectangles(_ref6) {\n var {\n layout,\n barSettings: {\n dataKey,\n minPointSize: minPointSizeProp,\n hasCustomShape\n },\n pos,\n bandSize,\n xAxis,\n yAxis,\n xAxisTicks,\n yAxisTicks,\n stackedData,\n displayedData,\n offset,\n cells,\n parentViewBox,\n dataStartIndex\n } = _ref6;\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n // @ts-expect-error this assumes that the domain is always numeric, but doesn't check for it\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = getBaseValueOfBar({\n numericAxis\n });\n var stackedBarStart = numericAxis.scale.map(baseValue);\n return displayedData.map((entry, index) => {\n var value, x, y, width, height, background;\n if (stackedData) {\n // Use dataStartIndex to access the correct element in the full stackedData array\n var untruncatedValue = stackedData[index + dataStartIndex];\n if (untruncatedValue == null) {\n return null;\n }\n value = truncateByDomain(untruncatedValue, stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n if (!Array.isArray(value)) {\n value = [baseValue, value];\n }\n }\n var minPointSize = minPointSizeCallback(minPointSizeProp, defaultMinPointSize)(value[1], index);\n if (layout === 'horizontal') {\n var _ref7;\n var baseValueScale = yAxis.scale.map(value[0]);\n var currentValueScale = yAxis.scale.map(value[1]);\n if (baseValueScale == null || currentValueScale == null) {\n return null;\n }\n x = getCateCoordinateOfBar({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize,\n offset: pos.offset,\n entry,\n index\n });\n y = (_ref7 = currentValueScale !== null && currentValueScale !== void 0 ? currentValueScale : baseValueScale) !== null && _ref7 !== void 0 ? _ref7 : undefined;\n width = pos.size;\n var computedHeight = baseValueScale - currentValueScale;\n height = isNan(computedHeight) ? 0 : computedHeight;\n background = {\n x,\n y: offset.top,\n width,\n height: offset.height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n var delta = mathSign(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));\n y -= delta;\n height += delta;\n }\n } else {\n var _baseValueScale = xAxis.scale.map(value[0]);\n var _currentValueScale = xAxis.scale.map(value[1]);\n if (_baseValueScale == null || _currentValueScale == null) {\n return null;\n }\n x = _baseValueScale;\n y = getCateCoordinateOfBar({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize,\n offset: pos.offset,\n entry,\n index\n });\n width = _currentValueScale - _baseValueScale;\n height = pos.size;\n background = {\n x: offset.left,\n y,\n width: offset.width,\n height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n var _delta = mathSign(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));\n width += _delta;\n }\n }\n\n /*\n * Filter out 0-dimension rectangles early to avoid creating unnecessary component trees.\n * BarStack clip-paths use originalDataIndex, so sparse filtered arrays remain index-stable.\n * Bars with a custom shape are not filtered out: the custom renderer may still draw something\n * visible at zero-dimension positions (e.g. horizontal lines in a BoxPlot).\n */\n if (x == null || y == null || width == null || height == null || !hasCustomShape && (width === 0 || height === 0)) {\n return null;\n }\n var barRectangleItem = _objectSpread(_objectSpread({}, entry), {}, {\n stackedBarStart,\n x,\n y,\n width,\n height,\n value: stackedData ? value : value[1],\n payload: entry,\n background,\n tooltipPosition: {\n x: x + width / 2,\n y: y + height / 2\n },\n parentViewBox,\n originalDataIndex: index\n }, cells && cells[index] && cells[index].props);\n return barRectangleItem;\n }).filter(Boolean);\n}\nfunction BarFn(outsideProps) {\n var props = resolveDefaultProps(outsideProps, defaultBarProps);\n // stackId may arrive from props or from BarStack context\n var stackId = useStackId(props.stackId);\n var isPanorama = useIsPanorama();\n // Report all props to Redux store first, before calling any hooks, to avoid circular dependencies.\n return /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {\n id: props.id,\n type: \"bar\"\n }, id => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetLegendPayload, {\n legendPayload: computeLegendPayloadFromBarData(props)\n }), /*#__PURE__*/React.createElement(SetBarTooltipEntrySettings, {\n dataKey: props.dataKey,\n stroke: props.stroke,\n strokeWidth: props.strokeWidth,\n fill: props.fill,\n name: props.name,\n hide: props.hide,\n unit: props.unit,\n tooltipType: props.tooltipType,\n id: id\n }), /*#__PURE__*/React.createElement(SetCartesianGraphicalItem, {\n type: \"bar\",\n id: id\n // Bar does not allow setting data directly on the graphical item (why?)\n ,\n data: undefined,\n xAxisId: props.xAxisId,\n yAxisId: props.yAxisId,\n zAxisId: 0,\n dataKey: props.dataKey,\n stackId: stackId,\n hide: props.hide,\n barSize: props.barSize,\n minPointSize: props.minPointSize,\n maxBarSize: props.maxBarSize,\n isPanorama: isPanorama,\n hasCustomShape: props.shape != null\n }), /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: props.zIndex\n }, /*#__PURE__*/React.createElement(BarImpl, _extends({}, props, {\n id: id\n })))));\n}\n\n/**\n * @provides ErrorBarContext\n * @provides LabelListContext\n * @provides CellReader\n * @consumes CartesianChartContext\n * @consumes BarStackContext\n */\nexport var Bar = /*#__PURE__*/React.memo(BarFn, propsAreEqual);\n// @ts-expect-error we need to set the displayName for debugging purposes\nBar.displayName = 'Bar';", "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 invariant from 'tiny-invariant';\nimport { Shape } from './ActiveShapeUtils';\nimport { isNullish, isNumber } from './DataUtils';\nexport function BarRectangle(props) {\n return /*#__PURE__*/React.createElement(Shape, _extends({\n shapeType: \"rectangle\",\n activeClassName: \"recharts-active-bar\",\n inActiveClassName: \"recharts-inactive-bar\"\n }, props));\n}\n/**\n * Safely gets minPointSize from the minPointSize prop if it is a function\n * @param minPointSize minPointSize as passed to the Bar component\n * @param defaultValue default minPointSize\n * @returns minPointSize\n */\nexport var minPointSizeCallback = function minPointSizeCallback(minPointSize) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return (value, index) => {\n if (isNumber(minPointSize)) return minPointSize;\n var isValueNumberOrNil = isNumber(value) || isNullish(value);\n if (isValueNumberOrNil) {\n return minPointSize(value, index);\n }\n !isValueNumberOrNil ? true ? invariant(false, \"minPointSize callback function received a value with type of \".concat(typeof value, \". Currently only numbers or null/undefined are supported.\")) : invariant(false) : void 0;\n return defaultValue;\n };\n};", "var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n", "import { createSelector } from 'reselect';\nimport { selectAxisWithScale, selectCartesianAxisSize, selectStackGroups, selectTicksOfGraphicalItem, selectUnfilteredCartesianItems } from './axisSelectors';\nimport { isNullish } from '../../util/DataUtils';\nimport { getBandSizeOfAxis } from '../../util/ChartUtils';\nimport { computeBarRectangles } from '../../cartesian/Bar';\nimport { selectChartLayout } from '../../context/chartLayoutContext';\nimport { selectChartDataWithIndexesIfNotInPanoramaPosition3 } from './dataSelectors';\nimport { selectAxisViewBox, selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { selectBarCategoryGap, selectBarGap, selectRootBarSize, selectRootMaxBarSize } from './rootPropsSelectors';\nimport { combineBarSizeList } from './combiners/combineBarSizeList';\nimport { combineAllBarPositions } from './combiners/combineAllBarPositions';\nimport { combineStackedData } from './combiners/combineStackedData';\nimport { selectXAxisIdFromGraphicalItemId, selectYAxisIdFromGraphicalItemId } from './graphicalItemSelectors';\nimport { combineBarPosition } from './combiners/combineBarPosition';\nvar pickIsPanorama = (_state, _id, isPanorama) => isPanorama;\nvar pickBarId = (_state, id) => id;\nvar selectSynchronisedBarSettings = createSelector([selectUnfilteredCartesianItems, pickBarId], (graphicalItems, id) => graphicalItems.filter(item => item.type === 'bar').find(item => item.id === id));\nexport var selectMaxBarSize = createSelector([selectSynchronisedBarSettings], barSettings => barSettings === null || barSettings === void 0 ? void 0 : barSettings.maxBarSize);\nvar pickCells = (_state, _id, _isPanorama, cells) => cells;\nexport var selectAllVisibleBars = createSelector([selectChartLayout, selectUnfilteredCartesianItems, selectXAxisIdFromGraphicalItemId, selectYAxisIdFromGraphicalItemId, pickIsPanorama], (layout, allItems, xAxisId, yAxisId, isPanorama) => allItems.filter(i => {\n if (layout === 'horizontal') {\n return i.xAxisId === xAxisId;\n }\n return i.yAxisId === yAxisId;\n}).filter(i => i.isPanorama === isPanorama).filter(i => i.hide === false).filter(i => i.type === 'bar'));\nvar selectBarStackGroups = (state, id, isPanorama) => {\n var layout = selectChartLayout(state);\n var xAxisId = selectXAxisIdFromGraphicalItemId(state, id);\n var yAxisId = selectYAxisIdFromGraphicalItemId(state, id);\n if (xAxisId == null || yAxisId == null) {\n return undefined;\n }\n if (layout === 'horizontal') {\n return selectStackGroups(state, 'yAxis', yAxisId, isPanorama);\n }\n return selectStackGroups(state, 'xAxis', xAxisId, isPanorama);\n};\nexport var selectBarCartesianAxisSize = (state, id) => {\n var layout = selectChartLayout(state);\n var xAxisId = selectXAxisIdFromGraphicalItemId(state, id);\n var yAxisId = selectYAxisIdFromGraphicalItemId(state, id);\n if (xAxisId == null || yAxisId == null) {\n return undefined;\n }\n if (layout === 'horizontal') {\n return selectCartesianAxisSize(state, 'xAxis', xAxisId);\n }\n return selectCartesianAxisSize(state, 'yAxis', yAxisId);\n};\nexport var selectBarSizeList = createSelector([selectAllVisibleBars, selectRootBarSize, selectBarCartesianAxisSize], combineBarSizeList);\nexport var selectBarBandSize = (state, id, isPanorama) => {\n var _ref, _getBandSizeOfAxis;\n var barSettings = selectSynchronisedBarSettings(state, id);\n if (barSettings == null) {\n return 0;\n }\n var xAxisId = selectXAxisIdFromGraphicalItemId(state, id);\n var yAxisId = selectYAxisIdFromGraphicalItemId(state, id);\n if (xAxisId == null || yAxisId == null) {\n return 0;\n }\n var layout = selectChartLayout(state);\n var globalMaxBarSize = selectRootMaxBarSize(state);\n var {\n maxBarSize: childMaxBarSize\n } = barSettings;\n var maxBarSize = isNullish(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var axis, ticks;\n if (layout === 'horizontal') {\n axis = selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);\n ticks = selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);\n } else {\n axis = selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);\n ticks = selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);\n }\n return (_ref = (_getBandSizeOfAxis = getBandSizeOfAxis(axis, ticks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref !== void 0 ? _ref : 0;\n};\nexport var selectAxisBandSize = (state, id, isPanorama) => {\n var layout = selectChartLayout(state);\n var xAxisId = selectXAxisIdFromGraphicalItemId(state, id);\n var yAxisId = selectYAxisIdFromGraphicalItemId(state, id);\n if (xAxisId == null || yAxisId == null) {\n return undefined;\n }\n var axis, ticks;\n if (layout === 'horizontal') {\n axis = selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);\n ticks = selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);\n } else {\n axis = selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);\n ticks = selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);\n }\n return getBandSizeOfAxis(axis, ticks);\n};\nexport var selectAllBarPositions = createSelector([selectBarSizeList, selectRootMaxBarSize, selectBarGap, selectBarCategoryGap, selectBarBandSize, selectAxisBandSize, selectMaxBarSize], combineAllBarPositions);\nvar selectXAxisWithScale = (state, id, isPanorama) => {\n var xAxisId = selectXAxisIdFromGraphicalItemId(state, id);\n if (xAxisId == null) {\n return undefined;\n }\n return selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);\n};\nvar selectYAxisWithScale = (state, id, isPanorama) => {\n var yAxisId = selectYAxisIdFromGraphicalItemId(state, id);\n if (yAxisId == null) {\n return undefined;\n }\n return selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);\n};\nvar selectXAxisTicks = (state, id, isPanorama) => {\n var xAxisId = selectXAxisIdFromGraphicalItemId(state, id);\n if (xAxisId == null) {\n return undefined;\n }\n return selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);\n};\nvar selectYAxisTicks = (state, id, isPanorama) => {\n var yAxisId = selectYAxisIdFromGraphicalItemId(state, id);\n if (yAxisId == null) {\n return undefined;\n }\n return selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);\n};\nexport var selectBarPosition = createSelector([selectAllBarPositions, selectSynchronisedBarSettings], combineBarPosition);\nexport var selectStackedDataOfItem = createSelector([selectBarStackGroups, selectSynchronisedBarSettings], combineStackedData);\nexport var selectBarRectangles = createSelector([selectChartOffsetInternal, selectAxisViewBox, selectXAxisWithScale, selectYAxisWithScale, selectXAxisTicks, selectYAxisTicks, selectBarPosition, selectChartLayout, selectChartDataWithIndexesIfNotInPanoramaPosition3, selectAxisBandSize, selectStackedDataOfItem, selectSynchronisedBarSettings, pickCells], (offset, axisViewBox, xAxis, yAxis, xAxisTicks, yAxisTicks, pos, layout, _ref2, bandSize, stackedData, barSettings, cells) => {\n var {\n chartData,\n dataStartIndex,\n dataEndIndex\n } = _ref2;\n if (barSettings == null || pos == null || axisViewBox == null || layout !== 'horizontal' && layout !== 'vertical' || xAxis == null || yAxis == null || xAxisTicks == null || yAxisTicks == null || bandSize == null) {\n return undefined;\n }\n var {\n data\n } = barSettings;\n var displayedData;\n if (data != null && data.length > 0) {\n displayedData = data;\n } else {\n displayedData = chartData === null || chartData === void 0 ? void 0 : chartData.slice(dataStartIndex, dataEndIndex + 1);\n }\n if (displayedData == null) {\n return undefined;\n }\n return computeBarRectangles({\n layout,\n barSettings,\n pos,\n parentViewBox: axisViewBox,\n bandSize,\n xAxis,\n yAxis,\n xAxisTicks,\n yAxisTicks,\n stackedData,\n displayedData,\n offset,\n cells,\n dataStartIndex\n });\n});", "var _excluded = [\"index\"];\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, useMemo } from 'react';\nimport { getNormalizedStackId } from '../util/ChartUtils';\nimport { useUniqueId } from '../util/useUniqueId';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { useAppSelector } from '../state/hooks';\nimport { selectStackRects } from '../state/selectors/barStackSelectors';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { Layer } from '../container/Layer';\nimport { Rectangle } from '../shape/Rectangle';\nimport { propsAreEqual } from '../util/propsAreEqual';\nvar BarStackContext = /*#__PURE__*/createContext(undefined);\n\n/**\n * Hook to resolve the stack ID for a Bar component.\n * If a stack ID is provided via props, it is used directly.\n * Otherwise, this will read stack ID from BarStack context if available.\n * If both are undefined, it returns undefined.\n * @param childStackId\n */\nexport var useStackId = childStackId => {\n var stackSettings = useContext(BarStackContext);\n if (stackSettings != null) {\n return stackSettings.stackId;\n }\n if (childStackId == null) {\n return undefined;\n }\n return getNormalizedStackId(childStackId);\n};\nexport var defaultBarStackProps = {\n radius: 0\n};\nvar getClipPathId = (stackId, index) => {\n return \"recharts-bar-stack-clip-path-\".concat(stackId, \"-\").concat(index);\n};\nexport var useBarStackClipPathUrl = index => {\n var barStackContext = useContext(BarStackContext);\n if (barStackContext == null) {\n return undefined;\n }\n var {\n stackId\n } = barStackContext;\n return \"url(#\".concat(getClipPathId(stackId, index), \")\");\n};\nexport var BarStackClipLayer = _ref => {\n var {\n index\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n var clipPathUrl = useBarStackClipPathUrl(index);\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-bar-stack-layer\",\n clipPath: clipPathUrl\n }, rest));\n};\n\n/**\n * This React component will render a clipPath that the individual bars in the stack will reference\n * to achieve rounded corners for the entire stack.\n */\nvar BarStackClipPath = _ref2 => {\n var {\n stackId,\n radius\n } = _ref2;\n var isPanorama = useIsPanorama();\n var positions = useAppSelector(state => selectStackRects(state, stackId, isPanorama));\n if (positions == null || positions.length === 0) {\n return null;\n }\n /*\n * Render one clipPath per rectangle in the stack.\n * Each rectangle corresponds to one data entry in the chart.\n */\n return /*#__PURE__*/React.createElement(\"defs\", null, positions.map((pos, index) => {\n if (pos == null) {\n return null;\n }\n var clipPathId = getClipPathId(stackId, index);\n return /*#__PURE__*/React.createElement(\"clipPath\", {\n key: clipPathId,\n id: clipPathId\n }, /*#__PURE__*/React.createElement(Rectangle, {\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n x: pos.x,\n y: pos.y,\n width: pos.width,\n height: pos.height,\n radius: radius\n }));\n }));\n};\nvar BarStackImpl = props => {\n var resolvedStackId = useUniqueId('recharts-bar-stack', getNormalizedStackId(props.stackId));\n var {\n children,\n radius\n } = resolveDefaultProps(props, defaultBarStackProps);\n var context = useMemo(() => ({\n stackId: resolvedStackId,\n radius\n }), [resolvedStackId, radius]);\n return /*#__PURE__*/React.createElement(BarStackContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(BarStackClipPath, {\n stackId: resolvedStackId,\n radius: radius\n }), children);\n};\n\n/**\n * @provides BarStackContext\n * @since 3.6\n */\nexport var BarStack = /*#__PURE__*/React.memo(BarStackImpl, propsAreEqual);", "import { createSelector } from 'reselect';\nimport { selectUnfilteredCartesianItems } from './axisSelectors';\nimport { selectBarRectangles } from './barSelectors';\nvar pickStackId = (state, stackId) => stackId;\nvar pickIsPanorama = (state, stackId, isPanorama) => isPanorama;\nexport var selectAllBarsInStack = createSelector([pickStackId, selectUnfilteredCartesianItems, pickIsPanorama], (stackId, allItems, isPanorama) => {\n return allItems.filter(i => i.type === 'bar').filter(i => i.stackId === stackId).filter(i => i.isPanorama === isPanorama).filter(i => !i.hide);\n});\nvar selectAllBarIdsInStack = createSelector([selectAllBarsInStack], allBars => {\n return allBars.map(bar => bar.id);\n});\n/**\n * Takes two rectangles and returns a new rectangle that encompasses both.\n * It takes the minimum x and y, and the maximum width and height.\n * It handles overlapping rectangles, and rectangles with a gap between them.\n * @param rect1\n * @param rect2\n */\nexport var expandRectangle = (rect1, rect2) => {\n if (!rect1) {\n return rect2;\n }\n if (!rect2) {\n return rect1;\n }\n var x = Math.min(rect1.x, rect1.x + rect1.width, rect2.x, rect2.x + rect2.width);\n var y = Math.min(rect1.y, rect1.y + rect1.height, rect2.y, rect2.y + rect2.height);\n var maxX = Math.max(rect1.x, rect1.x + rect1.width, rect2.x, rect2.x + rect2.width);\n var maxY = Math.max(rect1.y, rect1.y + rect1.height, rect2.y, rect2.y + rect2.height);\n var width = maxX - x;\n var height = maxY - y;\n return {\n x,\n y,\n width,\n height\n };\n};\nvar combineStackRects = (state, stackId, isPanorama) => {\n var allBarIds = selectAllBarIdsInStack(state, stackId, isPanorama);\n var stackRects = [];\n allBarIds.forEach(barId => {\n var rectangles = selectBarRectangles(state, barId, isPanorama, undefined);\n rectangles === null || rectangles === void 0 || rectangles.forEach(rect => {\n var rectIndex = rect.originalDataIndex;\n stackRects[rectIndex] = expandRectangle(stackRects[rectIndex], rect);\n });\n });\n return stackRects;\n};\nexport var selectStackRects = createSelector([state => state, pickStackId, pickIsPanorama], combineStackRects);", "var _excluded = [\"id\"],\n _excluded2 = [\"onMouseEnter\", \"onClick\", \"onMouseLeave\"],\n _excluded3 = [\"animationBegin\", \"animationDuration\", \"animationEasing\", \"hide\", \"isAnimationActive\", \"legendType\", \"lineJointType\", \"lineType\", \"shape\", \"xAxisId\", \"yAxisId\", \"zAxisId\"];\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport * as React from 'react';\nimport { useCallback, useMemo, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { CartesianLabelListContextProvider, LabelListFromLabelProp } from '../component/LabelList';\nimport { findAllByType } from '../util/ReactUtils';\nimport { Curve } from '../shape/Curve';\nimport { Cell } from '../component/Cell';\nimport { getLinearRegression, interpolate, isNullish } from '../util/DataUtils';\nimport { getCateCoordinateOfLine, getTooltipNameProp, getValueByDataKey } from '../util/ChartUtils';\nimport { adaptEventsOfChild, isNonEmptyArray } from '../util/types';\nimport { ScatterSymbol } from '../util/ScatterUtils';\nimport { useMouseClickItemDispatch, useMouseEnterItemDispatch, useMouseLeaveItemDispatch } from '../context/tooltipContext';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { SetErrorBarContext } from '../context/ErrorBarContext';\nimport { GraphicalItemClipPath, useNeedsClip } from './GraphicalItemClipPath';\nimport { selectScatterPoints } from '../state/selectors/scatterSelectors';\nimport { useAppSelector } from '../state/hooks';\nimport { implicitZAxis } from '../state/selectors/axisSelectors';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { selectActiveTooltipIndex } from '../state/selectors/tooltipSelectors';\nimport { SetLegendPayload } from '../state/SetLegendPayload';\nimport { DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME } from '../util/Constants';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\nimport { SetCartesianGraphicalItem } from '../state/SetGraphicalItem';\nimport { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { JavascriptAnimate } from '../animation/JavascriptAnimate';\nimport { useViewBox } from '../context/chartLayoutContext';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\nimport { propsAreEqual } from '../util/propsAreEqual';\n\n/**\n * Scatter coordinates are nullable because sometimes the point value is out of the domain,\n * and we can't compute a valid coordinate for it.\n *\n * Scatter -> Symbol ignores points with null cx or cy so those won't render if using the default shapes.\n * However: the points are exposed via various props and can be used in custom shapes so we keep them around.\n */\n\n/**\n * Internal props, combination of external props + defaultProps + private Recharts state\n */\n\n/**\n * External props, intended for end users to fill in\n */\n\n/**\n * Because of naming conflict, we are forced to ignore certain (valid) SVG attributes.\n */\n\nvar computeLegendPayloadFromScatterProps = props => {\n var {\n dataKey,\n name,\n fill,\n legendType,\n hide\n } = props;\n return [{\n inactive: hide,\n dataKey,\n type: legendType,\n color: fill,\n value: getTooltipNameProp(name, dataKey),\n payload: props\n }];\n};\nvar SetScatterTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {\n var {\n dataKey,\n points,\n stroke,\n strokeWidth,\n fill,\n name,\n hide,\n tooltipType,\n id\n } = _ref;\n var tooltipEntrySettings = {\n dataDefinedOnItem: points === null || points === void 0 ? void 0 : points.map(p => p.tooltipPayload),\n getPosition: index => {\n var _points$Number;\n return points === null || points === void 0 || (_points$Number = points[Number(index)]) === null || _points$Number === void 0 ? void 0 : _points$Number.tooltipPosition;\n },\n settings: {\n stroke,\n strokeWidth,\n fill,\n nameKey: undefined,\n dataKey,\n name: getTooltipNameProp(name, dataKey),\n hide,\n type: tooltipType,\n color: fill,\n unit: '',\n // why doesn't Scatter support unit?\n graphicalItemId: id\n }\n };\n return /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {\n tooltipEntrySettings: tooltipEntrySettings\n });\n});\nfunction ScatterLine(_ref2) {\n var {\n points,\n props\n } = _ref2;\n var {\n line,\n lineType,\n lineJointType\n } = props;\n if (!line) {\n return null;\n }\n var scatterProps = svgPropertiesNoEvents(props);\n var customLineProps = svgPropertiesNoEventsFromUnknown(line);\n var linePoints, lineItem;\n if (lineType === 'joint') {\n linePoints = points.map(entry => {\n var _entry$cx, _entry$cy;\n return {\n x: (_entry$cx = entry.cx) !== null && _entry$cx !== void 0 ? _entry$cx : null,\n y: (_entry$cy = entry.cy) !== null && _entry$cy !== void 0 ? _entry$cy : null\n };\n });\n } else if (lineType === 'fitting') {\n var {\n xmin,\n xmax,\n a,\n b\n } = getLinearRegression(points);\n var linearExp = x => a * x + b;\n linePoints = [{\n x: xmin,\n y: linearExp(xmin)\n }, {\n x: xmax,\n y: linearExp(xmax)\n }];\n }\n var lineProps = _objectSpread(_objectSpread(_objectSpread({}, scatterProps), {}, {\n // @ts-expect-error customLineProps is contributing unknown props\n fill: 'none',\n // @ts-expect-error customLineProps is contributing unknown props\n stroke: scatterProps && scatterProps.fill\n }, customLineProps), {}, {\n // @ts-expect-error linePoints is used before it is assigned (???)\n points: linePoints\n });\n if (/*#__PURE__*/React.isValidElement(line)) {\n lineItem = /*#__PURE__*/React.cloneElement(line, lineProps);\n } else if (typeof line === 'function') {\n lineItem = line(lineProps);\n } else {\n lineItem = /*#__PURE__*/React.createElement(Curve, _extends({}, lineProps, {\n type: lineJointType\n }));\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-scatter-line\",\n key: \"recharts-scatter-line\"\n }, lineItem);\n}\nfunction ScatterLabelListProvider(_ref3) {\n var {\n showLabels,\n points,\n children\n } = _ref3;\n var chartViewBox = useViewBox();\n var labelListEntries = useMemo(() => {\n return points === null || points === void 0 ? void 0 : points.map(point => {\n var _point$x, _point$y;\n var viewBox = {\n /*\n * Scatter label uses x and y as the reference point for the label,\n * not cx and cy.\n */\n x: (_point$x = point.x) !== null && _point$x !== void 0 ? _point$x : 0,\n /*\n * Scatter label uses x and y as the reference point for the label,\n * not cx and cy.\n */\n y: (_point$y = point.y) !== null && _point$y !== void 0 ? _point$y : 0,\n width: point.width,\n height: point.height,\n lowerWidth: point.width,\n upperWidth: point.width\n };\n return _objectSpread(_objectSpread({}, viewBox), {}, {\n /*\n * Here we put undefined because Scatter shows two values usually, one for X and one for Y.\n * LabelList will see this undefined and will use its own `dataKey` prop to determine which value to show,\n * using the payload below.\n */\n value: undefined,\n payload: point.payload,\n viewBox,\n parentViewBox: chartViewBox,\n fill: undefined\n });\n });\n }, [chartViewBox, points]);\n return /*#__PURE__*/React.createElement(CartesianLabelListContextProvider, {\n value: showLabels ? labelListEntries : undefined\n }, children);\n}\nfunction ScatterSymbols(props) {\n var {\n points,\n allOtherScatterProps\n } = props;\n var {\n shape,\n activeShape,\n dataKey\n } = allOtherScatterProps;\n var {\n id\n } = allOtherScatterProps,\n allOtherPropsWithoutId = _objectWithoutProperties(allOtherScatterProps, _excluded);\n var activeIndex = useAppSelector(selectActiveTooltipIndex);\n var {\n onMouseEnter: onMouseEnterFromProps,\n onClick: onItemClickFromProps,\n onMouseLeave: onMouseLeaveFromProps\n } = allOtherScatterProps,\n restOfAllOtherProps = _objectWithoutProperties(allOtherScatterProps, _excluded2);\n var onMouseEnterFromContext = useMouseEnterItemDispatch(onMouseEnterFromProps, dataKey, id);\n var onMouseLeaveFromContext = useMouseLeaveItemDispatch(onMouseLeaveFromProps);\n var onClickFromContext = useMouseClickItemDispatch(onItemClickFromProps, dataKey, id);\n if (!isNonEmptyArray(points)) {\n return null;\n }\n var baseProps = svgPropertiesNoEvents(allOtherPropsWithoutId);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ScatterLine, {\n points: points,\n props: allOtherPropsWithoutId\n }), points.map((entry, i) => {\n var hasActiveShape = activeShape != null && activeShape !== false;\n var isActive = hasActiveShape && activeIndex === String(i);\n var option = hasActiveShape && isActive ? activeShape : shape;\n var symbolProps = _objectSpread(_objectSpread(_objectSpread({}, baseProps), entry), {}, {\n index: i,\n [DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME]: String(id)\n });\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n key: \"symbol-\".concat(entry === null || entry === void 0 ? void 0 : entry.cx, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.cy, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.size, \"-\").concat(i)\n /*\n * inactive Scatters use the parent zIndex, which is represented by undefined here.\n * ZIndexLayer will render undefined zIndex as-is, as regular children, without portals.\n * Active Scatters use the activeDot zIndex so they render above other elements.\n */,\n zIndex: isActive ? DefaultZIndexes.activeDot : undefined\n }, /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-scatter-symbol\"\n }, adaptEventsOfChild(restOfAllOtherProps, entry, i), {\n onMouseEnter: onMouseEnterFromContext(entry, i),\n onMouseLeave: onMouseLeaveFromContext(entry, i),\n onClick: onClickFromContext(entry, i)\n }), /*#__PURE__*/React.createElement(ScatterSymbol, _extends({\n option: option,\n isActive: isActive\n }, symbolProps))));\n }));\n}\nfunction SymbolsWithAnimation(_ref4) {\n var {\n previousPointsRef,\n props\n } = _ref4;\n var {\n points,\n isAnimationActive,\n animationBegin,\n animationDuration,\n animationEasing\n } = props;\n var prevPoints = previousPointsRef.current;\n var animationId = useAnimationId(props, 'recharts-scatter-');\n var [isAnimating, setIsAnimating] = useState(false);\n var handleAnimationEnd = useCallback(() => {\n // Scatter doesn't have onAnimationEnd prop, and if we want to add it we do it here\n // if (typeof onAnimationEnd === 'function') {\n // onAnimationEnd();\n // }\n setIsAnimating(false);\n }, []);\n var handleAnimationStart = useCallback(() => {\n // Scatter doesn't have onAnimationStart prop, and if we want to add it we do it here\n // if (typeof onAnimationStart === 'function') {\n // onAnimationStart();\n // }\n setIsAnimating(true);\n }, []);\n var showLabels = !isAnimating;\n return /*#__PURE__*/React.createElement(ScatterLabelListProvider, {\n showLabels: showLabels,\n points: points\n }, props.children, /*#__PURE__*/React.createElement(JavascriptAnimate, {\n animationId: animationId,\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n onAnimationEnd: handleAnimationEnd,\n onAnimationStart: handleAnimationStart,\n key: animationId\n }, t => {\n var stepData = t === 1 ? points : points === null || points === void 0 ? void 0 : points.map((entry, index) => {\n var prev = prevPoints && prevPoints[index];\n if (prev) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n cx: entry.cx == null ? undefined : interpolate(prev.cx, entry.cx, t),\n cy: entry.cy == null ? undefined : interpolate(prev.cy, entry.cy, t),\n size: interpolate(prev.size, entry.size, t)\n });\n }\n return _objectSpread(_objectSpread({}, entry), {}, {\n size: interpolate(0, entry.size, t)\n });\n });\n if (t > 0) {\n // eslint-disable-next-line no-param-reassign\n previousPointsRef.current = stepData;\n }\n return /*#__PURE__*/React.createElement(Layer, null, /*#__PURE__*/React.createElement(ScatterSymbols, {\n points: stepData,\n allOtherScatterProps: props,\n showLabels: showLabels\n }));\n }), /*#__PURE__*/React.createElement(LabelListFromLabelProp, {\n label: props.label\n }));\n}\nexport function computeScatterPoints(_ref5) {\n var {\n displayedData,\n xAxis,\n yAxis,\n zAxis,\n scatterSettings,\n xAxisTicks,\n yAxisTicks,\n cells\n } = _ref5;\n var xAxisDataKey = isNullish(xAxis.dataKey) ? scatterSettings.dataKey : xAxis.dataKey;\n var yAxisDataKey = isNullish(yAxis.dataKey) ? scatterSettings.dataKey : yAxis.dataKey;\n var zAxisDataKey = zAxis && zAxis.dataKey;\n var defaultRangeZ = zAxis ? zAxis.range : implicitZAxis.range;\n var defaultZ = defaultRangeZ && defaultRangeZ[0];\n var xBandSize = xAxis.scale.bandwidth ? xAxis.scale.bandwidth() : 0;\n var yBandSize = yAxis.scale.bandwidth ? yAxis.scale.bandwidth() : 0;\n return displayedData.map((entry, index) => {\n var x = getValueByDataKey(entry, xAxisDataKey);\n var y = getValueByDataKey(entry, yAxisDataKey);\n var z = !isNullish(zAxisDataKey) && getValueByDataKey(entry, zAxisDataKey) || '-';\n var tooltipPayload = [{\n name: isNullish(xAxis.dataKey) ? scatterSettings.name : xAxis.name || String(xAxis.dataKey),\n unit: xAxis.unit || '',\n // @ts-expect-error getValueByDataKey does not validate the output type\n value: x,\n payload: entry,\n dataKey: xAxisDataKey,\n type: scatterSettings.tooltipType,\n graphicalItemId: scatterSettings.id\n }, {\n name: isNullish(yAxis.dataKey) ? scatterSettings.name : yAxis.name || String(yAxis.dataKey),\n unit: yAxis.unit || '',\n // @ts-expect-error getValueByDataKey does not validate the output type\n value: y,\n payload: entry,\n dataKey: yAxisDataKey,\n type: scatterSettings.tooltipType,\n graphicalItemId: scatterSettings.id\n }];\n if (z !== '-' && zAxis != null) {\n tooltipPayload.push({\n // @ts-expect-error name prop should not have dataKey in it\n name: zAxis.name || zAxis.dataKey,\n unit: zAxis.unit || '',\n // @ts-expect-error getValueByDataKey does not validate the output type\n value: z,\n payload: entry,\n dataKey: zAxisDataKey,\n type: scatterSettings.tooltipType,\n graphicalItemId: scatterSettings.id\n });\n }\n var cx = getCateCoordinateOfLine({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: xBandSize,\n entry,\n index,\n dataKey: xAxisDataKey\n });\n var cy = getCateCoordinateOfLine({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: yBandSize,\n entry,\n index,\n dataKey: yAxisDataKey\n });\n var size = z !== '-' && zAxis != null ? zAxis.scale.map(z) : defaultZ;\n var radius = size == null ? 0 : Math.sqrt(Math.max(size, 0) / Math.PI);\n return _objectSpread(_objectSpread({}, entry), {}, {\n cx,\n cy,\n x: cx == null ? undefined : cx - radius,\n y: cy == null ? undefined : cy - radius,\n width: 2 * radius,\n height: 2 * radius,\n size,\n node: {\n x,\n y,\n z\n },\n tooltipPayload,\n tooltipPosition: {\n x: cx,\n y: cy\n },\n payload: entry\n }, cells && cells[index] && cells[index].props);\n });\n}\nvar errorBarDataPointFormatter = (dataPoint, dataKey, direction) => {\n return {\n x: dataPoint.cx,\n y: dataPoint.cy,\n value: direction === 'x' ? Number(dataPoint.node.x) : Number(dataPoint.node.y),\n // @ts-expect-error getValueByDataKey does not validate the output type\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n};\nfunction ScatterWithId(props) {\n var {\n hide,\n points,\n className,\n needClip,\n xAxisId,\n yAxisId,\n id\n } = props;\n var previousPointsRef = useRef(null);\n if (hide) {\n return null;\n }\n var layerClass = clsx('recharts-scatter', className);\n var clipPathId = id;\n return /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: props.zIndex\n }, /*#__PURE__*/React.createElement(Layer, {\n className: layerClass,\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : undefined,\n id: id\n }, needClip && /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(GraphicalItemClipPath, {\n clipPathId: clipPathId,\n xAxisId: xAxisId,\n yAxisId: yAxisId\n })), /*#__PURE__*/React.createElement(SetErrorBarContext, {\n xAxisId: xAxisId,\n yAxisId: yAxisId,\n data: points,\n dataPointFormatter: errorBarDataPointFormatter,\n errorBarOffset: 0\n }, /*#__PURE__*/React.createElement(Layer, {\n key: \"recharts-scatter-symbols\"\n }, /*#__PURE__*/React.createElement(SymbolsWithAnimation, {\n props: props,\n previousPointsRef: previousPointsRef\n })))));\n}\nexport var defaultScatterProps = {\n xAxisId: 0,\n yAxisId: 0,\n zAxisId: 0,\n label: false,\n line: false,\n legendType: 'circle',\n lineType: 'joint',\n lineJointType: 'linear',\n shape: 'circle',\n hide: false,\n isAnimationActive: 'auto',\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'linear',\n zIndex: DefaultZIndexes.scatter\n};\nfunction ScatterImpl(props) {\n var _resolveDefaultProps = resolveDefaultProps(props, defaultScatterProps),\n {\n animationBegin,\n animationDuration,\n animationEasing,\n hide,\n isAnimationActive,\n legendType,\n lineJointType,\n lineType,\n shape,\n xAxisId,\n yAxisId,\n zAxisId\n } = _resolveDefaultProps,\n everythingElse = _objectWithoutProperties(_resolveDefaultProps, _excluded3);\n var {\n needClip\n } = useNeedsClip(xAxisId, yAxisId);\n var cells = useMemo(() => findAllByType(props.children, Cell), [props.children]);\n var isPanorama = useIsPanorama();\n var points = useAppSelector(state => {\n return selectScatterPoints(state, xAxisId, yAxisId, zAxisId, props.id, cells, isPanorama);\n });\n if (needClip == null) {\n return null;\n }\n if (points == null) {\n return null;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetScatterTooltipEntrySettings, {\n dataKey: props.dataKey,\n points: points,\n stroke: props.stroke,\n strokeWidth: props.strokeWidth,\n fill: props.fill,\n name: props.name,\n hide: props.hide,\n tooltipType: props.tooltipType,\n id: props.id\n }), /*#__PURE__*/React.createElement(ScatterWithId, _extends({}, everythingElse, {\n xAxisId: xAxisId,\n yAxisId: yAxisId,\n zAxisId: zAxisId,\n lineType: lineType,\n lineJointType: lineJointType,\n legendType: legendType,\n shape: shape,\n hide: hide,\n isAnimationActive: isAnimationActive,\n animationBegin: animationBegin,\n animationDuration: animationDuration,\n animationEasing: animationEasing,\n points: points,\n needClip: needClip\n })));\n}\nfunction ScatterFn(outsideProps) {\n var props = resolveDefaultProps(outsideProps, defaultScatterProps);\n var isPanorama = useIsPanorama();\n return /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {\n id: props.id,\n type: \"scatter\"\n }, id => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetLegendPayload, {\n legendPayload: computeLegendPayloadFromScatterProps(props)\n }), /*#__PURE__*/React.createElement(SetCartesianGraphicalItem, {\n type: \"scatter\",\n id: id,\n data: props.data,\n xAxisId: props.xAxisId,\n yAxisId: props.yAxisId,\n zAxisId: props.zAxisId,\n dataKey: props.dataKey,\n hide: props.hide,\n name: props.name,\n tooltipType: props.tooltipType,\n isPanorama: isPanorama\n }), /*#__PURE__*/React.createElement(ScatterImpl, _extends({}, props, {\n id: id\n }))));\n}\n\n/**\n * @provides LabelListContext\n * @provides ErrorBarContext\n * @provides CellReader\n * @consumes CartesianChartContext\n */\nexport var Scatter = /*#__PURE__*/React.memo(ScatterFn, propsAreEqual);\n// @ts-expect-error we need to set the displayName for debugging purposes\n\nScatter.displayName = 'Scatter';", "var _excluded = [\"option\", \"isActive\"];\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 { Symbols } from '../shape/Symbols';\nimport { Shape } from './ActiveShapeUtils';\nimport { DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME } from './Constants';\nexport function ScatterSymbol(_ref) {\n var {\n option,\n isActive\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n if (typeof option === 'string') {\n return /*#__PURE__*/React.createElement(Shape, _extends({\n option: /*#__PURE__*/React.createElement(Symbols, _extends({\n type: option\n }, props)),\n isActive: isActive,\n shapeType: \"symbols\"\n }, props));\n }\n return /*#__PURE__*/React.createElement(Shape, _extends({\n option: option,\n isActive: isActive,\n shapeType: \"symbols\"\n }, props));\n}", "import { createSelector } from 'reselect';\nimport { computeScatterPoints } from '../../cartesian/Scatter';\nimport { selectChartDataWithIndexesIfNotInPanoramaPosition4 } from './dataSelectors';\nimport { selectAxisWithScale, selectTicksOfGraphicalItem, selectUnfilteredCartesianItems, selectZAxisWithScale } from './axisSelectors';\nvar selectXAxisWithScale = (state, xAxisId, _yAxisId, _zAxisId, _id, _cells, isPanorama) => selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama);\nvar selectXAxisTicks = (state, xAxisId, _yAxisId, _zAxisId, _id, _cells, isPanorama) => selectTicksOfGraphicalItem(state, 'xAxis', xAxisId, isPanorama);\nvar selectYAxisWithScale = (state, _xAxisId, yAxisId, _zAxisId, _id, _cells, isPanorama) => selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama);\nvar selectYAxisTicks = (state, _xAxisId, yAxisId, _zAxisId, _id, _cells, isPanorama) => selectTicksOfGraphicalItem(state, 'yAxis', yAxisId, isPanorama);\nvar selectZAxis = (state, _xAxisId, _yAxisId, zAxisId) => selectZAxisWithScale(state, 'zAxis', zAxisId, false);\nvar pickScatterId = (_state, _xAxisId, _yAxisId, _zAxisId, id) => id;\nvar pickCells = (_state, _xAxisId, _yAxisId, _zAxisId, _id, cells) => cells;\nvar scatterChartDataSelector = (state, _xAxisId, _yAxisId, _zAxisId, _id, _cells, isPanorama) => selectChartDataWithIndexesIfNotInPanoramaPosition4(state, undefined, undefined, isPanorama);\nvar selectSynchronisedScatterSettings = createSelector([selectUnfilteredCartesianItems, pickScatterId], (graphicalItems, id) => {\n return graphicalItems.filter(item => item.type === 'scatter').find(item => item.id === id);\n});\nexport var selectScatterPoints = createSelector([scatterChartDataSelector, selectXAxisWithScale, selectXAxisTicks, selectYAxisWithScale, selectYAxisTicks, selectZAxis, selectSynchronisedScatterSettings, pickCells], (_ref, xAxis, xAxisTicks, yAxis, yAxisTicks, zAxis, scatterSettings, cells) => {\n var {\n chartData,\n dataStartIndex,\n dataEndIndex\n } = _ref;\n if (scatterSettings == null) {\n return undefined;\n }\n var displayedData;\n if ((scatterSettings === null || scatterSettings === void 0 ? void 0 : scatterSettings.data) != null && scatterSettings.data.length > 0) {\n displayedData = scatterSettings.data;\n } else {\n displayedData = chartData === null || chartData === void 0 ? void 0 : chartData.slice(dataStartIndex, dataEndIndex + 1);\n }\n if (displayedData == null || xAxis == null || yAxis == null || xAxisTicks == null || yAxisTicks == null || (xAxisTicks === null || xAxisTicks === void 0 ? void 0 : xAxisTicks.length) === 0 || (yAxisTicks === null || yAxisTicks === void 0 ? void 0 : yAxisTicks.length) === 0) {\n return undefined;\n }\n return computeScatterPoints({\n displayedData,\n xAxis,\n yAxis,\n zAxis,\n scatterSettings,\n xAxisTicks,\n yAxisTicks,\n cells\n });\n});", "var _excluded = [\"type\"],\n _excluded2 = [\"dangerouslySetInnerHTML\", \"ticks\", \"scale\"],\n _excluded3 = [\"id\", \"scale\"];\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 X Axis\n */\nimport * as React from 'react';\nimport { useLayoutEffect, useMemo, useRef } from 'react';\nimport { clsx } from 'clsx';\nimport { CartesianAxis, defaultCartesianAxisProps } from './CartesianAxis';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { addXAxis, replaceXAxis, removeXAxis } from '../state/cartesianAxisSlice';\nimport { implicitXAxis, selectTicksOfAxis, selectXAxisPosition, selectXAxisSettingsNoDefaults, selectXAxisSize } from '../state/selectors/axisSelectors';\nimport { selectAxisViewBox } from '../state/selectors/selectChartOffsetInternal';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { axisPropsAreEqual } from '../util/axisPropsAreEqual';\nimport { useCartesianChartLayout } from '../context/chartLayoutContext';\nimport { getAxisTypeBasedOnLayout } from '../util/getAxisTypeBasedOnLayout';\nfunction SetXAxisSettings(props) {\n var dispatch = useAppDispatch();\n var prevSettingsRef = useRef(null);\n var layout = useCartesianChartLayout();\n var {\n type: typeFromProps\n } = props,\n restProps = _objectWithoutProperties(props, _excluded);\n var evaluatedType = getAxisTypeBasedOnLayout(layout, 'xAxis', typeFromProps);\n var settings = useMemo(() => {\n if (evaluatedType == null) {\n return undefined;\n }\n return _objectSpread(_objectSpread({}, restProps), {}, {\n type: evaluatedType\n });\n }, [restProps, evaluatedType]);\n useLayoutEffect(() => {\n if (settings == null) {\n return;\n }\n if (prevSettingsRef.current === null) {\n dispatch(addXAxis(settings));\n } else if (prevSettingsRef.current !== settings) {\n dispatch(replaceXAxis({\n prev: prevSettingsRef.current,\n next: settings\n }));\n }\n prevSettingsRef.current = settings;\n }, [settings, dispatch]);\n useLayoutEffect(() => {\n return () => {\n if (prevSettingsRef.current) {\n dispatch(removeXAxis(prevSettingsRef.current));\n prevSettingsRef.current = null;\n }\n };\n }, [dispatch]);\n return null;\n}\nvar XAxisImpl = props => {\n var {\n xAxisId,\n className\n } = props;\n var viewBox = useAppSelector(selectAxisViewBox);\n var isPanorama = useIsPanorama();\n var axisType = 'xAxis';\n var cartesianTickItems = useAppSelector(state => selectTicksOfAxis(state, axisType, xAxisId, isPanorama));\n var axisSize = useAppSelector(state => selectXAxisSize(state, xAxisId));\n var position = useAppSelector(state => selectXAxisPosition(state, xAxisId));\n /*\n * Here we select settings from the store and prefer to use them instead of the actual props\n * so that the chart is consistent. If we used the props directly, some components will use axis settings\n * from state and some from props and because there is a render step between these two, they might be showing different things.\n * https://github.com/recharts/recharts/issues/6257\n */\n var synchronizedSettings = useAppSelector(state => selectXAxisSettingsNoDefaults(state, xAxisId));\n if (axisSize == null || position == null || synchronizedSettings == null) {\n return null;\n }\n var {\n dangerouslySetInnerHTML,\n ticks,\n scale: del\n } = props,\n allOtherProps = _objectWithoutProperties(props, _excluded2);\n var {\n id,\n scale: del2\n } = synchronizedSettings,\n restSynchronizedSettings = _objectWithoutProperties(synchronizedSettings, _excluded3);\n return /*#__PURE__*/React.createElement(CartesianAxis, _extends({}, allOtherProps, restSynchronizedSettings, {\n x: position.x,\n y: position.y,\n width: axisSize.width,\n height: axisSize.height,\n className: clsx(\"recharts-\".concat(axisType, \" \").concat(axisType), className),\n viewBox: viewBox,\n ticks: cartesianTickItems,\n axisType: axisType,\n axisId: xAxisId\n }));\n};\nexport var xAxisDefaultProps = {\n allowDataOverflow: implicitXAxis.allowDataOverflow,\n allowDecimals: implicitXAxis.allowDecimals,\n allowDuplicatedCategory: implicitXAxis.allowDuplicatedCategory,\n angle: implicitXAxis.angle,\n axisLine: defaultCartesianAxisProps.axisLine,\n height: implicitXAxis.height,\n hide: false,\n includeHidden: implicitXAxis.includeHidden,\n interval: implicitXAxis.interval,\n label: false,\n minTickGap: implicitXAxis.minTickGap,\n mirror: implicitXAxis.mirror,\n orientation: implicitXAxis.orientation,\n padding: implicitXAxis.padding,\n reversed: implicitXAxis.reversed,\n scale: implicitXAxis.scale,\n tick: implicitXAxis.tick,\n tickCount: implicitXAxis.tickCount,\n tickLine: defaultCartesianAxisProps.tickLine,\n tickSize: defaultCartesianAxisProps.tickSize,\n type: implicitXAxis.type,\n niceTicks: implicitXAxis.niceTicks,\n xAxisId: 0\n};\nvar XAxisSettingsDispatcher = outsideProps => {\n var props = resolveDefaultProps(outsideProps, xAxisDefaultProps);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetXAxisSettings, {\n allowDataOverflow: props.allowDataOverflow,\n allowDecimals: props.allowDecimals,\n allowDuplicatedCategory: props.allowDuplicatedCategory,\n angle: props.angle,\n dataKey: props.dataKey,\n domain: props.domain,\n height: props.height,\n hide: props.hide,\n id: props.xAxisId,\n includeHidden: props.includeHidden,\n interval: props.interval,\n minTickGap: props.minTickGap,\n mirror: props.mirror,\n name: props.name,\n orientation: props.orientation,\n padding: props.padding,\n reversed: props.reversed,\n scale: props.scale,\n tick: props.tick,\n tickCount: props.tickCount,\n tickFormatter: props.tickFormatter,\n ticks: props.ticks,\n type: props.type,\n unit: props.unit,\n niceTicks: props.niceTicks\n }), /*#__PURE__*/React.createElement(XAxisImpl, props));\n};\n\n/**\n * @consumes CartesianViewBoxContext\n * @provides CartesianLabelContext\n */\nexport var XAxis = /*#__PURE__*/React.memo(XAxisSettingsDispatcher, axisPropsAreEqual);\n// @ts-expect-error we need to set the displayName for debugging purposes\n\nXAxis.displayName = 'XAxis';", "var _excluded = [\"domain\", \"range\"],\n _excluded2 = [\"domain\", \"range\"];\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 { propsAreEqual } from './propsAreEqual';\nfunction shortArraysAreEqual(arr1, arr2) {\n if (arr1 === arr2) {\n return true;\n }\n if (Array.isArray(arr1) && arr1.length === 2 && Array.isArray(arr2) && arr2.length === 2) {\n return arr1[0] === arr2[0] && arr1[1] === arr2[1];\n }\n return false;\n}\n\n/**\n * Usually we would not compare array props deeply for performance consideration.\n * However, for axis props, domain is sometimes defined as a two-elements array, and range is always\n * a two-elements array. So we can do a shallow comparison for the rest props and a shallow\n * comparison for these two array props.\n * @param prevProps\n * @param nextProps\n */\nexport function axisPropsAreEqual(prevProps, nextProps) {\n if (prevProps === nextProps) {\n return true;\n }\n var {\n domain: prevDomain,\n range: prevRange\n } = prevProps,\n prevRest = _objectWithoutProperties(prevProps, _excluded);\n var {\n domain: nextDomain,\n range: nextRange\n } = nextProps,\n nextRest = _objectWithoutProperties(nextProps, _excluded2);\n if (!shortArraysAreEqual(prevDomain, nextDomain)) {\n return false;\n }\n if (!shortArraysAreEqual(prevRange, nextRange)) {\n return false;\n }\n return propsAreEqual(prevRest, nextRest);\n}", "var _excluded = [\"type\"],\n _excluded2 = [\"dangerouslySetInnerHTML\", \"ticks\", \"scale\"],\n _excluded3 = [\"id\", \"scale\"];\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 { isValidElement, useLayoutEffect, useMemo, useRef } from 'react';\nimport { clsx } from 'clsx';\nimport { CartesianAxis, defaultCartesianAxisProps } from './CartesianAxis';\nimport { addYAxis, replaceYAxis, removeYAxis, updateYAxisWidth } from '../state/cartesianAxisSlice';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { implicitYAxis, selectTicksOfAxis, selectYAxisPosition, selectYAxisSettingsNoDefaults, selectYAxisSize } from '../state/selectors/axisSelectors';\nimport { selectAxisViewBox } from '../state/selectors/selectChartOffsetInternal';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { isLabelContentAFunction } from '../component/Label';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { axisPropsAreEqual } from '../util/axisPropsAreEqual';\nimport { useCartesianChartLayout } from '../context/chartLayoutContext';\nimport { getAxisTypeBasedOnLayout } from '../util/getAxisTypeBasedOnLayout';\nfunction SetYAxisSettings(props) {\n var dispatch = useAppDispatch();\n var prevSettingsRef = useRef(null);\n var layout = useCartesianChartLayout();\n var {\n type: typeFromProps\n } = props,\n restProps = _objectWithoutProperties(props, _excluded);\n var evaluatedType = getAxisTypeBasedOnLayout(layout, 'yAxis', typeFromProps);\n var settings = useMemo(() => {\n if (evaluatedType == null) {\n return undefined;\n }\n return _objectSpread(_objectSpread({}, restProps), {}, {\n type: evaluatedType\n });\n }, [evaluatedType, restProps]);\n useLayoutEffect(() => {\n if (settings == null) {\n return;\n }\n if (prevSettingsRef.current === null) {\n dispatch(addYAxis(settings));\n } else if (prevSettingsRef.current !== settings) {\n dispatch(replaceYAxis({\n prev: prevSettingsRef.current,\n next: settings\n }));\n }\n prevSettingsRef.current = settings;\n }, [settings, dispatch]);\n useLayoutEffect(() => {\n return () => {\n if (prevSettingsRef.current) {\n dispatch(removeYAxis(prevSettingsRef.current));\n prevSettingsRef.current = null;\n }\n };\n }, [dispatch]);\n return null;\n}\nfunction YAxisImpl(props) {\n var {\n yAxisId,\n className,\n width,\n label\n } = props;\n var cartesianAxisRef = useRef(null);\n var labelRef = useRef(null);\n var viewBox = useAppSelector(selectAxisViewBox);\n var isPanorama = useIsPanorama();\n var dispatch = useAppDispatch();\n var axisType = 'yAxis';\n var axisSize = useAppSelector(state => selectYAxisSize(state, yAxisId));\n var position = useAppSelector(state => selectYAxisPosition(state, yAxisId));\n var cartesianTickItems = useAppSelector(state => selectTicksOfAxis(state, axisType, yAxisId, isPanorama));\n /*\n * Here we select settings from the store and prefer to use them instead of the actual props\n * so that the chart is consistent. If we used the props directly, some components will use axis settings\n * from state and some from props and because there is a render step between these two, they might be showing different things.\n * https://github.com/recharts/recharts/issues/6257\n */\n var synchronizedSettings = useAppSelector(state => selectYAxisSettingsNoDefaults(state, yAxisId));\n useLayoutEffect(() => {\n // No dynamic width calculation is done when width !== 'auto'\n // or when a function/react element is used for label\n if (width !== 'auto' || !axisSize || isLabelContentAFunction(label) || /*#__PURE__*/isValidElement(label) || synchronizedSettings == null) {\n return;\n }\n var axisComponent = cartesianAxisRef.current;\n if (!axisComponent) {\n return;\n }\n var updatedYAxisWidth = axisComponent.getCalculatedWidth();\n\n // if the width has changed, dispatch an action to update the width\n if (Math.round(axisSize.width) !== Math.round(updatedYAxisWidth)) {\n dispatch(updateYAxisWidth({\n id: yAxisId,\n width: updatedYAxisWidth\n }));\n }\n }, [\n // The dependency on cartesianAxisRef.current is not needed because useLayoutEffect will run after every render.\n // The ref will be populated by then.\n // To re-run this effect when ticks change, we can depend on the ticks array from the store.\n cartesianTickItems, axisSize, dispatch, label, yAxisId, width, synchronizedSettings]);\n if (axisSize == null || position == null || synchronizedSettings == null) {\n return null;\n }\n var {\n dangerouslySetInnerHTML,\n ticks,\n scale: del\n } = props,\n allOtherProps = _objectWithoutProperties(props, _excluded2);\n var {\n id,\n scale: del2\n } = synchronizedSettings,\n restSynchronizedSettings = _objectWithoutProperties(synchronizedSettings, _excluded3);\n return /*#__PURE__*/React.createElement(CartesianAxis, _extends({}, allOtherProps, restSynchronizedSettings, {\n ref: cartesianAxisRef,\n labelRef: labelRef,\n x: position.x,\n y: position.y,\n tickTextProps: width === 'auto' ? {\n width: undefined\n } : {\n width\n },\n width: axisSize.width,\n height: axisSize.height,\n className: clsx(\"recharts-\".concat(axisType, \" \").concat(axisType), className),\n viewBox: viewBox,\n ticks: cartesianTickItems,\n axisType: axisType,\n axisId: yAxisId\n }));\n}\nexport var yAxisDefaultProps = {\n allowDataOverflow: implicitYAxis.allowDataOverflow,\n allowDecimals: implicitYAxis.allowDecimals,\n allowDuplicatedCategory: implicitYAxis.allowDuplicatedCategory,\n angle: implicitYAxis.angle,\n axisLine: defaultCartesianAxisProps.axisLine,\n hide: false,\n includeHidden: implicitYAxis.includeHidden,\n interval: implicitYAxis.interval,\n label: false,\n minTickGap: implicitYAxis.minTickGap,\n mirror: implicitYAxis.mirror,\n orientation: implicitYAxis.orientation,\n padding: implicitYAxis.padding,\n reversed: implicitYAxis.reversed,\n scale: implicitYAxis.scale,\n tick: implicitYAxis.tick,\n tickCount: implicitYAxis.tickCount,\n tickLine: defaultCartesianAxisProps.tickLine,\n tickSize: defaultCartesianAxisProps.tickSize,\n type: implicitYAxis.type,\n niceTicks: implicitYAxis.niceTicks,\n width: implicitYAxis.width,\n yAxisId: 0\n};\nvar YAxisSettingsDispatcher = outsideProps => {\n var props = resolveDefaultProps(outsideProps, yAxisDefaultProps);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetYAxisSettings, {\n interval: props.interval,\n id: props.yAxisId,\n scale: props.scale,\n type: props.type,\n domain: props.domain,\n allowDataOverflow: props.allowDataOverflow,\n dataKey: props.dataKey,\n allowDuplicatedCategory: props.allowDuplicatedCategory,\n allowDecimals: props.allowDecimals,\n tickCount: props.tickCount,\n padding: props.padding,\n includeHidden: props.includeHidden,\n reversed: props.reversed,\n ticks: props.ticks,\n width: props.width,\n orientation: props.orientation,\n mirror: props.mirror,\n hide: props.hide,\n unit: props.unit,\n name: props.name,\n angle: props.angle,\n minTickGap: props.minTickGap,\n tick: props.tick,\n tickFormatter: props.tickFormatter,\n niceTicks: props.niceTicks\n }), /*#__PURE__*/React.createElement(YAxisImpl, props));\n};\n\n/**\n * @consumes CartesianViewBoxContext\n * @provides CartesianLabelContext\n */\nexport var YAxis = /*#__PURE__*/React.memo(YAxisSettingsDispatcher, axisPropsAreEqual);\n// @ts-expect-error we need to set the displayName for debugging purposes\n\nYAxis.displayName = 'YAxis';", "import * as React from 'react';\nimport { useLayoutEffect, useRef } from 'react';\nimport { addZAxis, removeZAxis, replaceZAxis } from '../state/cartesianAxisSlice';\nimport { useAppDispatch } from '../state/hooks';\nimport { implicitZAxis } from '../state/selectors/axisSelectors';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nfunction SetZAxisSettings(settings) {\n var dispatch = useAppDispatch();\n var prevSettingsRef = useRef(null);\n useLayoutEffect(() => {\n if (prevSettingsRef.current === null) {\n dispatch(addZAxis(settings));\n } else if (prevSettingsRef.current !== settings) {\n dispatch(replaceZAxis({\n prev: prevSettingsRef.current,\n next: settings\n }));\n }\n prevSettingsRef.current = settings;\n }, [settings, dispatch]);\n useLayoutEffect(() => {\n return () => {\n if (prevSettingsRef.current) {\n dispatch(removeZAxis(prevSettingsRef.current));\n prevSettingsRef.current = null;\n }\n };\n }, [dispatch]);\n return null;\n}\nexport var zAxisDefaultProps = {\n zAxisId: 0,\n range: implicitZAxis.range,\n scale: implicitZAxis.scale,\n type: implicitZAxis.type\n};\n\n/**\n * Virtual axis, does not render anything itself. Has no ticks, grid lines, or labels.\n * Useful for dynamically setting Scatter point size, based on data.\n *\n * @consumes CartesianViewBoxContext\n */\nexport function ZAxis(outsideProps) {\n var props = resolveDefaultProps(outsideProps, zAxisDefaultProps);\n return /*#__PURE__*/React.createElement(SetZAxisSettings, {\n domain: props.domain,\n id: props.zAxisId,\n dataKey: props.dataKey,\n name: props.name,\n unit: props.unit,\n range: props.range,\n scale: props.scale,\n type: props.type,\n allowDuplicatedCategory: implicitZAxis.allowDuplicatedCategory,\n allowDataOverflow: implicitZAxis.allowDataOverflow,\n reversed: implicitZAxis.reversed,\n includeHidden: implicitZAxis.includeHidden\n });\n}\nZAxis.displayName = 'ZAxis';", "var _excluded = [\"direction\", \"width\", \"dataKey\", \"isAnimationActive\", \"animationBegin\", \"animationDuration\", \"animationEasing\"];\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 Render a group of error bar\n */\nimport * as React from 'react';\nimport { Layer } from '../container/Layer';\nimport { ReportErrorBarSettings, useErrorBarContext } from '../context/ErrorBarContext';\nimport { useXAxis, useYAxis } from '../hooks';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { useChartLayout } from '../context/chartLayoutContext';\nimport { CSSTransitionAnimate } from '../animation/CSSTransitionAnimate';\nimport { ZIndexLayer } from '../zIndex/ZIndexLayer';\nimport { DefaultZIndexes } from '../zIndex/DefaultZIndexes';\n\n/**\n * So usually the direction is decided by the chart layout.\n * Horizontal layout means error bars are vertical means direction=y\n * Vertical layout means error bars are horizontal means direction=x\n *\n * Except! In Scatter chart, error bars can go both ways.\n *\n * So this property is only ever used in Scatter chart, and ignored elsewhere.\n */\n\n/**\n * External ErrorBar props, visible for users of the library\n */\n\n/**\n * Props after defaults, and required props have been applied.\n */\n\nfunction ErrorBarImpl(props) {\n var {\n direction,\n width,\n dataKey,\n isAnimationActive,\n animationBegin,\n animationDuration,\n animationEasing\n } = props,\n others = _objectWithoutProperties(props, _excluded);\n var svgProps = svgPropertiesNoEvents(others);\n var {\n data,\n dataPointFormatter,\n xAxisId,\n yAxisId,\n errorBarOffset: offset\n } = useErrorBarContext();\n var xAxis = useXAxis(xAxisId);\n var yAxis = useYAxis(yAxisId);\n if ((xAxis === null || xAxis === void 0 ? void 0 : xAxis.scale) == null || (yAxis === null || yAxis === void 0 ? void 0 : yAxis.scale) == null || data == null) {\n return null;\n }\n\n // ErrorBar requires type number XAxis, why?\n if (direction === 'x' && xAxis.type !== 'number') {\n return null;\n }\n var errorBars = data.map((entry, dataIndex) => {\n var {\n x,\n y,\n value,\n errorVal\n } = dataPointFormatter(entry, dataKey, direction);\n if (!errorVal || x == null || y == null) {\n return null;\n }\n var lineCoordinates = [];\n var lowBound, highBound;\n if (Array.isArray(errorVal)) {\n var [low, high] = errorVal;\n if (low == null || high == null) {\n return null;\n }\n lowBound = low;\n highBound = high;\n } else {\n lowBound = highBound = errorVal;\n }\n if (direction === 'x') {\n // error bar for horizontal charts, the y is fixed, x is a range value\n var {\n scale\n } = xAxis;\n var yMid = y + offset;\n var yMin = yMid + width;\n var yMax = yMid - width;\n var xMin = scale.map(value - lowBound);\n var xMax = scale.map(value + highBound);\n if (xMin != null && xMax != null) {\n // the right line of |--|\n lineCoordinates.push({\n x1: xMax,\n y1: yMin,\n x2: xMax,\n y2: yMax\n });\n // the middle line of |--|\n lineCoordinates.push({\n x1: xMin,\n y1: yMid,\n x2: xMax,\n y2: yMid\n });\n // the left line of |--|\n lineCoordinates.push({\n x1: xMin,\n y1: yMin,\n x2: xMin,\n y2: yMax\n });\n }\n } else if (direction === 'y') {\n // error bar for horizontal charts, the x is fixed, y is a range value\n var {\n scale: _scale\n } = yAxis;\n var xMid = x + offset;\n var _xMin = xMid - width;\n var _xMax = xMid + width;\n var _yMin = _scale.map(value - lowBound);\n var _yMax = _scale.map(value + highBound);\n if (_yMin != null && _yMax != null) {\n // the top line\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMax,\n x2: _xMax,\n y2: _yMax\n });\n // the middle line\n lineCoordinates.push({\n x1: xMid,\n y1: _yMin,\n x2: xMid,\n y2: _yMax\n });\n // the bottom line\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMin,\n x2: _xMax,\n y2: _yMin\n });\n }\n }\n var scaleDirection = direction === 'x' ? 'scaleX' : 'scaleY';\n var transformOrigin = \"\".concat(x + offset, \"px \").concat(y + offset, \"px\");\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-errorBar\",\n key: \"bar-\".concat(x, \"-\").concat(y, \"-\").concat(value, \"-\").concat(dataIndex)\n }, svgProps), lineCoordinates.map((c, lineIndex) => {\n var lineStyle = isAnimationActive ? {\n transformOrigin\n } : undefined;\n return /*#__PURE__*/React.createElement(CSSTransitionAnimate, {\n animationId: \"error-bar-\".concat(direction, \"_\").concat(c.x1, \"-\").concat(c.x2, \"-\").concat(c.y1, \"-\").concat(c.y2),\n from: \"\".concat(scaleDirection, \"(0)\"),\n to: \"\".concat(scaleDirection, \"(1)\"),\n attributeName: \"transform\",\n begin: animationBegin,\n easing: animationEasing,\n isActive: isAnimationActive,\n duration: animationDuration,\n key: \"errorbar-\".concat(dataIndex, \"-\").concat(c.x1, \"-\").concat(c.y1, \"-\").concat(c.x2, \"-\").concat(c.y2, \"-\").concat(lineIndex)\n }, style => /*#__PURE__*/React.createElement(\"line\", _extends({}, c, {\n style: _objectSpread(_objectSpread({}, lineStyle), style)\n })));\n }));\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-errorBars\"\n }, errorBars);\n}\nfunction useErrorBarDirection(directionFromProps) {\n var layout = useChartLayout();\n if (directionFromProps != null) {\n return directionFromProps;\n }\n if (layout != null) {\n return layout === 'horizontal' ? 'y' : 'x';\n }\n return 'x';\n}\nexport var errorBarDefaultProps = {\n stroke: 'black',\n strokeWidth: 1.5,\n width: 5,\n offset: 0,\n isAnimationActive: true,\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease-in-out',\n zIndex: DefaultZIndexes.line\n};\n\n/**\n * ErrorBar renders whiskers to represent error margins on a chart.\n *\n * It must be a child of a graphical element.\n *\n * ErrorBar expects data in one of the following forms:\n * - Symmetric error bars: a single error value representing both lower and upper bounds.\n * - Asymmetric error bars: an array of two values representing lower and upper bounds separately. First value is the lower bound, second value is the upper bound.\n *\n * The values provided are relative to the main data value.\n * For example, if the main data value is 10 and the error value is 2,\n * the error bar will extend from 8 to 12 for symmetric error bars.\n *\n * In other words, what ErrorBar will render is:\n * - For symmetric error bars: [value - errorVal, value + errorVal]\n * - For asymmetric error bars: [value - errorVal[0], value + errorVal[1]]\n *\n * In stacked or ranged Bar charts, ErrorBar will use the higher data value\n * as the reference point for calculating the error bar positions.\n *\n * @consumes ErrorBarContext\n */\nexport function ErrorBar(outsideProps) {\n var realDirection = useErrorBarDirection(outsideProps.direction);\n var props = resolveDefaultProps(outsideProps, errorBarDefaultProps);\n var {\n width,\n isAnimationActive,\n animationBegin,\n animationDuration,\n animationEasing,\n zIndex\n } = props;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReportErrorBarSettings, {\n dataKey: props.dataKey,\n direction: realDirection\n }), /*#__PURE__*/React.createElement(ZIndexLayer, {\n zIndex: zIndex\n }, /*#__PURE__*/React.createElement(ErrorBarImpl, _extends({}, props, {\n direction: realDirection,\n width: width,\n isAnimationActive: isAnimationActive,\n animationBegin: animationBegin,\n animationDuration: animationDuration,\n animationEasing: animationEasing\n }))));\n}\nErrorBar.displayName = 'ErrorBar';", "import { useCallback, useEffect, useRef, useState } from 'react';\nimport { noop } from '../util/DataUtils';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { useAnimationManager } from './useAnimationManager';\nimport { getTransitionVal } from './util';\nimport { Global } from '../util/Global';\nimport { usePrefersReducedMotion } from '../util/usePrefersReducedMotion';\nvar defaultProps = {\n begin: 0,\n duration: 1000,\n easing: 'ease',\n isActive: true,\n canBegin: true,\n onAnimationEnd: () => {},\n onAnimationStart: () => {}\n};\nexport function CSSTransitionAnimate(outsideProps) {\n var props = resolveDefaultProps(outsideProps, defaultProps);\n var {\n animationId,\n from,\n to,\n attributeName,\n isActive: isActiveProp,\n canBegin,\n duration,\n easing,\n begin,\n onAnimationEnd,\n onAnimationStart: onAnimationStartFromProps,\n children\n } = props;\n var prefersReducedMotion = usePrefersReducedMotion();\n var isActive = isActiveProp === 'auto' ? !Global.isSsr && !prefersReducedMotion : isActiveProp;\n var animationManager = useAnimationManager(animationId + attributeName, props.animationManager);\n var [style, setStyle] = useState(() => {\n if (!isActive) {\n return to;\n }\n return from;\n });\n var initialized = useRef(false);\n var onAnimationStart = useCallback(() => {\n setStyle(from);\n onAnimationStartFromProps();\n }, [from, onAnimationStartFromProps]);\n useEffect(() => {\n if (!isActive || !canBegin) {\n return noop;\n }\n initialized.current = true;\n var unsubscribe = animationManager.subscribe(setStyle);\n animationManager.start([onAnimationStart, begin, to, duration, onAnimationEnd]);\n return () => {\n animationManager.stop();\n if (unsubscribe) {\n unsubscribe();\n }\n onAnimationEnd();\n };\n }, [isActive, canBegin, duration, easing, begin, onAnimationStart, onAnimationEnd, animationManager, to, from]);\n if (!isActive) {\n /*\n * With isActive=false, the component always renders with the final style, immediately,\n * and ignores all other props.\n * Also there is no transition applied.\n */\n return children({\n [attributeName]: to\n });\n }\n if (!canBegin) {\n return children({\n [attributeName]: from\n });\n }\n if (initialized.current) {\n var transition = getTransitionVal([attributeName], duration, easing);\n return children({\n transition,\n [attributeName]: style\n });\n }\n return children({\n [attributeName]: from\n });\n}", "import * as React from 'react';\nimport { forwardRef } from 'react';\nimport { arrayTooltipSearcher } from '../state/optionsSlice';\nimport { CartesianChart } from './CartesianChart';\nvar allowedTooltipTypes = ['axis'];\n\n/**\n * @consumes ResponsiveContainerContext\n * @provides CartesianViewBoxContext\n * @provides CartesianChartContext\n */\nexport var LineChart = /*#__PURE__*/forwardRef((props, ref) => {\n return /*#__PURE__*/React.createElement(CartesianChart, {\n chartName: \"LineChart\",\n defaultTooltipEventType: \"axis\",\n validateTooltipEventTypes: allowedTooltipTypes,\n tooltipPayloadSearcher: arrayTooltipSearcher,\n categoricalChartProps: props,\n ref: ref\n });\n});", "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 { forwardRef } from 'react';\nimport { RechartsStoreProvider } from '../state/RechartsStoreProvider';\nimport { ChartDataContextProvider } from '../context/chartDataContext';\nimport { ReportMainChartProps } from '../state/ReportMainChartProps';\nimport { ReportChartProps } from '../state/ReportChartProps';\nimport { ReportEventSettings } from '../state/ReportEventSettings';\nimport { CategoricalChart } from './CategoricalChart';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { initialEventSettingsState } from '../state/eventSettingsSlice';\nvar defaultMargin = {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n};\nexport var defaultCartesianChartProps = _objectSpread({\n accessibilityLayer: true,\n barCategoryGap: '10%',\n barGap: 4,\n layout: 'horizontal',\n margin: defaultMargin,\n responsive: false,\n reverseStackOrder: false,\n stackOffset: 'none',\n syncMethod: 'index'\n}, initialEventSettingsState);\n\n/**\n * These are one-time, immutable options that decide the chart's behavior.\n * Users who wish to call CartesianChart may decide to pass these options explicitly,\n * but usually we would expect that they use one of the convenience components like BarChart, LineChart, etc.\n */\n\nexport var CartesianChart = /*#__PURE__*/forwardRef(function CartesianChart(props, ref) {\n var _categoricalChartProp;\n var rootChartProps = resolveDefaultProps(props.categoricalChartProps, defaultCartesianChartProps);\n var {\n chartName,\n defaultTooltipEventType,\n validateTooltipEventTypes,\n tooltipPayloadSearcher,\n categoricalChartProps\n } = props;\n var options = {\n chartName,\n defaultTooltipEventType,\n validateTooltipEventTypes,\n tooltipPayloadSearcher,\n eventEmitter: undefined\n };\n return /*#__PURE__*/React.createElement(RechartsStoreProvider, {\n preloadedState: {\n options\n },\n reduxStoreName: (_categoricalChartProp = categoricalChartProps.id) !== null && _categoricalChartProp !== void 0 ? _categoricalChartProp : chartName\n }, /*#__PURE__*/React.createElement(ChartDataContextProvider, {\n chartData: categoricalChartProps.data\n }), /*#__PURE__*/React.createElement(ReportMainChartProps, {\n layout: rootChartProps.layout,\n margin: rootChartProps.margin\n }), /*#__PURE__*/React.createElement(ReportEventSettings, {\n throttleDelay: rootChartProps.throttleDelay,\n throttledEvents: rootChartProps.throttledEvents\n }), /*#__PURE__*/React.createElement(ReportChartProps, {\n baseValue: rootChartProps.baseValue,\n accessibilityLayer: rootChartProps.accessibilityLayer,\n barCategoryGap: rootChartProps.barCategoryGap,\n maxBarSize: rootChartProps.maxBarSize,\n stackOffset: rootChartProps.stackOffset,\n barGap: rootChartProps.barGap,\n barSize: rootChartProps.barSize,\n syncId: rootChartProps.syncId,\n syncMethod: rootChartProps.syncMethod,\n className: rootChartProps.className,\n reverseStackOrder: rootChartProps.reverseStackOrder\n }), /*#__PURE__*/React.createElement(CategoricalChart, _extends({}, rootChartProps, {\n ref: ref\n })));\n});", "import * as React from 'react';\nimport { useRef } from 'react';\nimport { Provider } from 'react-redux';\nimport { createRechartsStore } from './store';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { RechartsReduxContext } from './RechartsReduxContext';\nexport function RechartsStoreProvider(_ref) {\n var {\n preloadedState,\n children,\n reduxStoreName\n } = _ref;\n var isPanorama = useIsPanorama();\n /*\n * Why the ref? Redux official documentation recommends to use store as a singleton,\n * and reuse that everywhere: https://redux-toolkit.js.org/api/configureStore#basic-example\n *\n * Which is correct! Except that is considering deploying Redux in an app.\n * Recharts as a library supports multiple charts on the same page.\n * And each of these charts needs its own store independent of others!\n *\n * The alternative is to have everything in the store keyed by the chart id.\n * Which would make working with everything a little bit more painful because we need the chart id everywhere.\n */\n var storeRef = useRef(null);\n\n /*\n * Panorama means that this chart is not its own chart, it's only a \"preview\"\n * being rendered as a child of Brush.\n * In such case, it should not have a store on its own - it should implicitly inherit\n * whatever data is in the \"parent\" or \"root\" chart.\n * Which here is represented by not having a Provider at all. All selectors will use the root store by default.\n */\n if (isPanorama) {\n return children;\n }\n if (storeRef.current == null) {\n storeRef.current = createRechartsStore(preloadedState, reduxStoreName);\n }\n\n // @ts-expect-error React-Redux types demand that the context internal value is not null, but we have that as default.\n var nonNullContext = RechartsReduxContext;\n return /*#__PURE__*/React.createElement(Provider, {\n context: nonNullContext,\n store: storeRef.current\n }, children);\n}", "import { 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 * Type guard to check if the pointer event is from an SVG element.\n */\nfunction isSvgPointer(pointer) {\n return 'getBBox' in pointer.currentTarget && typeof pointer.currentTarget.getBBox === 'function';\n}\n\n/**\n * Computes relative element coordinates from mouse or touch event.\n *\n * The output coordinates are relative to the top-left corner of the active element (= currentTarget),\n * where the top-left corner 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 account for CSS transform scale.\n * So element that's scaled will return the same coordinates as element that's not scaled.\n *\n * In other words: you zoom in or out, numbers stay the same.\n *\n * This function works with both HTML elements and SVG elements.\n *\n * It works with both Mouse and Touch events.\n * For Touch events, it returns an array of coordinates, one for each touch point.\n * For Mouse events, it returns a single coordinate object.\n *\n * @example\n * ```tsx\n * // In an HTML element event handler. Legend passes the native event as the 3rd argument.\n * <Legend onMouseMove={(_data, _i, e) => {\n * // These coordinates are relative to the top-left corner of the Legend element\n * const { relativeX, relativeY } = getRelativeCoordinate(e);\n * console.log(`Mouse at Legend position: (${relativeX}, ${relativeY})`);\n * }}>\n * ```\n *\n * @example\n * ```tsx\n * // In an SVG element event handler. Area is an SVG element, and passes the event as second argument.\n * <Area onMouseMove={(_, e) => {\n * const { relativeX, relativeY } = getRelativeCoordinate(e);\n * console.log(`Mouse at Area position: (${relativeX}, ${relativeY})`);\n * // Here you can call usePlotArea to convert to chart coordinates\n * }}>\n * ```\n *\n * @example\n * ```tsx\n * // In a chart root touch handler. Chart root passes the event as second argument.\n * <LineChart onTouchMove={(_, e) => {\n * const touchPoints = getRelativeCoordinate(e);\n * touchPoints.forEach(({ relativeX, relativeY }, index) => {\n * console.log(`Touch point ${index} at LineChart position: (${relativeX}, ${relativeY})`);\n * });\n * }}>\n * ```\n *\n * @since 3.8\n * @param event The mouse or touch event from React event handlers (works with both HTML and SVG elements)\n * @returns Coordinates relative to the top-left corner of the element. Single object for Mouse events, array of objects for Touch events.\n */\n\nexport function getRelativeCoordinate(event) {\n var rect = event.currentTarget.getBoundingClientRect();\n var scaleX, scaleY;\n if (isSvgPointer(event)) {\n // For SVG elements, use getBBox() to get the intrinsic size in SVG coordinates\n var bbox = event.currentTarget.getBBox();\n scaleX = bbox.width > 0 ? rect.width / bbox.width : 1;\n scaleY = bbox.height > 0 ? rect.height / bbox.height : 1;\n } else {\n // For HTML elements, use offsetWidth/offsetHeight\n var element = event.currentTarget;\n scaleX = element.offsetWidth > 0 ? rect.width / element.offsetWidth : 1;\n scaleY = element.offsetHeight > 0 ? rect.height / element.offsetHeight : 1;\n }\n var getCoordinates = (clientX, clientY) => ({\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 relativeX: Math.round((clientX - rect.left) / scaleX),\n relativeY: Math.round((clientY - rect.top) / scaleY)\n });\n if ('touches' in event) {\n return Array.from(event.touches).map(touch => getCoordinates(touch.clientX, touch.clientY));\n }\n return getCoordinates(event.clientX, event.clientY);\n}", "import { createAction, createListenerMiddleware } from '@reduxjs/toolkit';\nimport { mouseLeaveChart, setMouseClickAxisIndex, setMouseOverAxisIndex } from './tooltipSlice';\nimport { selectActivePropsFromChartPointer } from './selectors/selectActivePropsFromChartPointer';\nimport { selectTooltipEventType } from './selectors/selectTooltipEventType';\nimport { getRelativeCoordinate } from '../util/getRelativeCoordinate';\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(), getRelativeCoordinate(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();\n\n/*\n * This single rafId is safe because:\n * 1. Each chart has its own Redux store instance with its own middleware\n * 2. mouseMoveAction only fires from one DOM element (the chart wrapper)\n * 3. Rapid mousemove events from the same element SHOULD debounce - we only care about the latest position\n * This is different from externalEventsMiddleware which handles multiple event types\n * (click, mouseenter, mouseleave, etc.) that should NOT cancel each other.\n */\nvar rafId = null;\nvar timeoutId = null;\nvar latestChartPointer = null;\nmouseMoveMiddleware.startListening({\n actionCreator: mouseMoveAction,\n effect: (action, listenerApi) => {\n var mousePointer = action.payload;\n var state = listenerApi.getState();\n var {\n throttleDelay,\n throttledEvents\n } = state.eventSettings;\n var isThrottled = throttledEvents === 'all' || (throttledEvents === null || throttledEvents === void 0 ? void 0 : throttledEvents.includes('mousemove'));\n\n // Cancel any pending execution\n if (rafId !== null) {\n cancelAnimationFrame(rafId);\n rafId = null;\n }\n if (timeoutId !== null && (typeof throttleDelay !== 'number' || !isThrottled)) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n\n /*\n * Here it is important to resolve the chart pointer _before_ the callback,\n * because once we leave the current event loop, the mousePointer event object will lose\n * reference to currentTarget which getRelativeCoordinate uses.\n */\n latestChartPointer = getRelativeCoordinate(mousePointer);\n var callback = () => {\n /*\n * Here we read a fresh state again inside the callback to ensure we have the latest state values\n * after any potential actions that may have been dispatched between the original event and this callback.\n */\n var currentState = listenerApi.getState();\n var tooltipEventType = selectTooltipEventType(currentState, currentState.tooltip.settings.shared);\n if (!latestChartPointer) {\n rafId = null;\n timeoutId = null;\n return;\n }\n\n /*\n * This functionality only applies to charts that have axes.\n * Graphical items have its own mouse events handling mechanism where they attach events directly to the items.\n */\n if (tooltipEventType === 'axis') {\n var activeProps = selectActivePropsFromChartPointer(currentState, latestChartPointer);\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 rafId = null;\n timeoutId = null;\n };\n if (!isThrottled) {\n callback();\n return;\n }\n if (throttleDelay === 'raf') {\n rafId = requestAnimationFrame(callback);\n } else if (typeof throttleDelay === 'number') {\n if (timeoutId === null) {\n timeoutId = setTimeout(callback, throttleDelay);\n }\n }\n }\n});", "export function reduxDevtoolsJsonStringifyReplacer(key, value) {\n if (value instanceof HTMLElement) {\n return \"HTMLElement <\".concat(value.tagName, \" class=\\\"\").concat(value.className, \"\\\">\");\n }\n if (value === window) {\n return 'global.window';\n }\n if (key === 'children' && typeof value === 'object' && value !== null) {\n return '<<CHILDREN>>';\n }\n return value;\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 reverseStackOrder: false\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 state.reverseStackOrder = action.payload.reverseStackOrder;\n }\n }\n});\nexport var rootPropsReducer = rootPropsSlice.reducer;\nexport var {\n updateOptions\n} = rootPropsSlice.actions;", "import { createSlice } from '@reduxjs/toolkit';\nvar initialState = null;\nvar reducers = {\n updatePolarOptions: (state, action) => {\n if (state === null) {\n return action.payload;\n }\n state.startAngle = action.payload.startAngle;\n state.endAngle = action.payload.endAngle;\n state.cx = action.payload.cx;\n state.cy = action.payload.cy;\n state.innerRadius = action.payload.innerRadius;\n state.outerRadius = action.payload.outerRadius;\n return state;\n }\n};\nvar polarOptionsSlice = createSlice({\n name: 'polarOptions',\n initialState,\n reducers\n});\nexport var {\n updatePolarOptions\n} = polarOptionsSlice.actions;\nexport var polarOptionsReducer = polarOptionsSlice.reducer;", "import { createAction, createListenerMiddleware } from '@reduxjs/toolkit';\nimport { setKeyboardInteraction } from './tooltipSlice';\nimport { selectTooltipAxisDomain, selectTooltipAxisTicks, selectTooltipDisplayedData } from './selectors/tooltipSelectors';\nimport { selectCoordinateForDefaultIndex } from './selectors/selectors';\nimport { selectChartDirection, selectTooltipAxisDataKey } from './selectors/axisSelectors';\nimport { combineActiveTooltipIndex } from './selectors/combiners/combineActiveTooltipIndex';\nexport var keyDownAction = createAction('keyDown');\nexport var focusAction = createAction('focus');\nexport var blurAction = createAction('blur');\nexport var keyboardEventsMiddleware = createListenerMiddleware();\nvar rafId = null;\nvar timeoutId = null;\nvar latestKeyboardActionPayload = null;\nkeyboardEventsMiddleware.startListening({\n actionCreator: keyDownAction,\n effect: (action, listenerApi) => {\n latestKeyboardActionPayload = action.payload;\n if (rafId !== null) {\n cancelAnimationFrame(rafId);\n rafId = null;\n }\n var state = listenerApi.getState();\n var {\n throttleDelay,\n throttledEvents\n } = state.eventSettings;\n var isThrottled = throttledEvents === 'all' || throttledEvents.includes('keydown');\n if (timeoutId !== null && (typeof throttleDelay !== 'number' || !isThrottled)) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n var callback = () => {\n try {\n var currentState = listenerApi.getState();\n var accessibilityLayerIsActive = currentState.rootProps.accessibilityLayer !== false;\n if (!accessibilityLayerIsActive) {\n return;\n }\n var {\n keyboardInteraction\n } = currentState.tooltip;\n var key = latestKeyboardActionPayload;\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 resolvedIndex = combineActiveTooltipIndex(keyboardInteraction, selectTooltipDisplayedData(currentState), selectTooltipAxisDataKey(currentState), selectTooltipAxisDomain(currentState));\n var currentIndex = resolvedIndex == null ? -1 : Number(resolvedIndex);\n if (!Number.isFinite(currentIndex) || currentIndex < 0) {\n return;\n }\n var tooltipTicks = selectTooltipAxisTicks(currentState);\n if (key === 'Enter') {\n var _coordinate = selectCoordinateForDefaultIndex(currentState, 'axis', 'hover', String(keyboardInteraction.index));\n listenerApi.dispatch(setKeyboardInteraction({\n active: !keyboardInteraction.active,\n activeIndex: keyboardInteraction.index,\n activeCoordinate: _coordinate\n }));\n return;\n }\n var direction = selectChartDirection(currentState);\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(currentState, 'axis', 'hover', String(nextIndex));\n listenerApi.dispatch(setKeyboardInteraction({\n active: true,\n activeIndex: nextIndex.toString(),\n activeCoordinate: coordinate\n }));\n } finally {\n rafId = null;\n timeoutId = null;\n }\n };\n if (!isThrottled) {\n callback();\n return;\n }\n if (throttleDelay === 'raf') {\n rafId = requestAnimationFrame(callback);\n } else if (typeof throttleDelay === 'number') {\n if (timeoutId === null) {\n callback();\n latestKeyboardActionPayload = null;\n timeoutId = setTimeout(() => {\n if (latestKeyboardActionPayload) {\n callback();\n } else {\n timeoutId = null;\n rafId = null;\n }\n }, throttleDelay);\n }\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 active: true,\n activeIndex: nextIndex,\n activeCoordinate: coordinate\n }));\n }\n }\n});\nkeyboardEventsMiddleware.startListening({\n actionCreator: blurAction,\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 listenerApi.dispatch(setKeyboardInteraction({\n active: false,\n activeIndex: keyboardInteraction.index,\n activeCoordinate: keyboardInteraction.coordinate\n }));\n }\n }\n});", "export function createEventProxy(reactEvent) {\n reactEvent.persist();\n var {\n currentTarget\n } = reactEvent;\n return new Proxy(reactEvent, {\n get: (target, prop) => {\n if (prop === 'currentTarget') {\n return currentTarget;\n }\n var value = Reflect.get(target, prop);\n if (typeof value === 'function') {\n return value.bind(target);\n }\n return value;\n }\n });\n}", "import { createAction, createListenerMiddleware } from '@reduxjs/toolkit';\nimport { selectActiveLabel, selectActiveTooltipCoordinate, selectActiveTooltipDataKey, selectActiveTooltipIndex, selectIsTooltipActive } from './selectors/tooltipSelectors';\nimport { createEventProxy } from '../util/createEventProxy';\nexport var externalEventAction = createAction('externalEvent');\nexport var externalEventsMiddleware = createListenerMiddleware();\n\n/*\n * We need a Map keyed by event type because this middleware handles MULTIPLE different event types\n * (click, mouseenter, mouseleave, mousedown, mouseup, contextmenu, dblclick, touchstart, touchmove, touchend)\n * from the same DOM element. Different event types should NOT cancel each other's animation frames.\n * For example, a click event and a mousemove event can happen in quick succession and both should be processed.\n * This is different from mouseMoveMiddleware which only handles one event type and uses a single rafId.\n */\nvar rafIdMap = new Map();\nvar timeoutIdMap = new Map();\nvar latestEventMap = new Map();\nexternalEventsMiddleware.startListening({\n actionCreator: externalEventAction,\n effect: (action, listenerApi) => {\n var {\n handler,\n reactEvent\n } = action.payload;\n if (handler == null) {\n return;\n }\n var eventType = reactEvent.type;\n var eventProxy = createEventProxy(reactEvent);\n latestEventMap.set(eventType, {\n handler,\n reactEvent: eventProxy\n });\n\n // Cancel any pending execution for this event type\n var existingRafId = rafIdMap.get(eventType);\n if (existingRafId !== undefined) {\n cancelAnimationFrame(existingRafId);\n rafIdMap.delete(eventType);\n }\n var state = listenerApi.getState();\n var {\n throttleDelay,\n throttledEvents\n } = state.eventSettings;\n\n /*\n * reactEvent.type gives us the event type as a string, e.g., 'click', 'mousemove', etc.\n * which is the same as the names used in throttledEvents array\n * but that array is strictly typed as ReadonlyArray<keyof GlobalEventHandlersEventMap> | 'all' | undefined\n * so that we can have relevant autocomplete and type checking elsewhere.\n * This makes TypeScript panic because it refuses to call .includes() on ReadonlyArray<keyof GlobalEventHandlersEventMap>\n * with a string argument.\n * To satisfy TypeScript, we need to explicitly typecast throttledEvents here.\n */\n var eventListAsString = throttledEvents;\n\n // Check if this event type should be throttled\n // throttledEvents can be 'all' or an array of event names\n var isThrottled = eventListAsString === 'all' || (eventListAsString === null || eventListAsString === void 0 ? void 0 : eventListAsString.includes(eventType));\n var existingTimeoutId = timeoutIdMap.get(eventType);\n if (existingTimeoutId !== undefined && (typeof throttleDelay !== 'number' || !isThrottled)) {\n clearTimeout(existingTimeoutId);\n timeoutIdMap.delete(eventType);\n }\n var callback = () => {\n var latestAction = latestEventMap.get(eventType);\n try {\n if (!latestAction) {\n // This happens if the event was consumed by the leading edge and no new event came in\n return;\n }\n var {\n handler: latestHandler,\n reactEvent: latestEvent\n } = latestAction;\n var currentState = listenerApi.getState();\n var nextState = {\n activeCoordinate: selectActiveTooltipCoordinate(currentState),\n activeDataKey: selectActiveTooltipDataKey(currentState),\n activeIndex: selectActiveTooltipIndex(currentState),\n activeLabel: selectActiveLabel(currentState),\n activeTooltipIndex: selectActiveTooltipIndex(currentState),\n isTooltipActive: selectIsTooltipActive(currentState)\n };\n if (latestHandler) {\n latestHandler(nextState, latestEvent);\n }\n } finally {\n rafIdMap.delete(eventType);\n timeoutIdMap.delete(eventType);\n latestEventMap.delete(eventType);\n }\n };\n if (!isThrottled) {\n // Execute immediately\n callback();\n return;\n }\n if (throttleDelay === 'raf') {\n var rafId = requestAnimationFrame(callback);\n rafIdMap.set(eventType, rafId);\n } else if (typeof throttleDelay === 'number') {\n if (!timeoutIdMap.has(eventType)) {\n /*\n * Leading edge execution - execute immediately on the first event\n * and then start the cooldown period to throttle subsequent events.\n */\n callback();\n\n // Start cooldown\n var timeoutId = setTimeout(callback, throttleDelay);\n timeoutIdMap.set(eventType, timeoutId);\n }\n } else {\n // Should not happen based on type, but fallback to immediate\n callback();\n }\n }\n});", "import { createSelector } from 'reselect';\nimport { selectTooltipState } from './selectTooltipState';\nvar selectAllTooltipPayloadConfiguration = createSelector([selectTooltipState], tooltipState => tooltipState.tooltipItemPayloads);\nexport var selectTooltipCoordinate = createSelector([selectAllTooltipPayloadConfiguration, (_state, tooltipIndex) => tooltipIndex, (_state, _tooltipIndex, graphicalItemId) => graphicalItemId], (allTooltipConfigurations, tooltipIndex, graphicalItemId) => {\n if (tooltipIndex == null) {\n return undefined;\n }\n var mostRelevantTooltipConfiguration = allTooltipConfigurations.find(tooltipConfiguration => {\n return tooltipConfiguration.settings.graphicalItemId === graphicalItemId;\n });\n if (mostRelevantTooltipConfiguration == null) {\n return undefined;\n }\n var {\n getPosition\n } = mostRelevantTooltipConfiguration;\n if (getPosition == null) {\n return undefined;\n }\n return getPosition(tooltipIndex);\n});", "import { createAction, createListenerMiddleware } from '@reduxjs/toolkit';\nimport { setActiveMouseOverItemIndex, setMouseOverAxisIndex } from './tooltipSlice';\nimport { selectActivePropsFromChartPointer } from './selectors/selectActivePropsFromChartPointer';\nimport { getRelativeCoordinate } from '../util/getRelativeCoordinate';\nimport { selectTooltipEventType } from './selectors/selectTooltipEventType';\nimport { DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME, DATA_ITEM_INDEX_ATTRIBUTE_NAME } from '../util/Constants';\nimport { selectTooltipCoordinate } from './selectors/touchSelectors';\nimport { selectAllGraphicalItemsSettings } from './selectors/tooltipSelectors';\nimport { createEventProxy } from '../util/createEventProxy';\nexport var touchEventAction = createAction('touchMove');\nexport var touchEventMiddleware = createListenerMiddleware();\nvar rafId = null;\nvar timeoutId = null;\nvar latestChartPointers = null;\nvar latestTouchEvent = null;\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 latestTouchEvent = createEventProxy(touchEvent);\n var state = listenerApi.getState();\n var {\n throttleDelay,\n throttledEvents\n } = state.eventSettings;\n var isThrottled = throttledEvents === 'all' || throttledEvents.includes('touchmove');\n if (rafId !== null) {\n cancelAnimationFrame(rafId);\n rafId = null;\n }\n if (timeoutId !== null && (typeof throttleDelay !== 'number' || !isThrottled)) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n latestChartPointers = Array.from(touchEvent.touches).map(touch => getRelativeCoordinate({\n clientX: touch.clientX,\n clientY: touch.clientY,\n currentTarget: touchEvent.currentTarget\n }));\n var callback = () => {\n if (latestTouchEvent == null) {\n return;\n }\n var currentState = listenerApi.getState();\n var tooltipEventType = selectTooltipEventType(currentState, currentState.tooltip.settings.shared);\n if (tooltipEventType === 'axis') {\n var _latestChartPointers;\n var latestTouchPointer = (_latestChartPointers = latestChartPointers) === null || _latestChartPointers === void 0 ? void 0 : _latestChartPointers[0];\n if (latestTouchPointer == null) {\n rafId = null;\n timeoutId = null;\n return;\n }\n var activeProps = selectActivePropsFromChartPointer(currentState, latestTouchPointer);\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 = latestTouchEvent.touches[0];\n if (document.elementFromPoint == null || touch == 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 graphicalItemId = (_target$getAttribute = target.getAttribute(DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME)) !== null && _target$getAttribute !== void 0 ? _target$getAttribute : undefined;\n var settings = selectAllGraphicalItemsSettings(currentState).find(item => item.id === graphicalItemId);\n if (itemIndex == null || settings == null || graphicalItemId == null) {\n return;\n }\n var {\n dataKey\n } = settings;\n var coordinate = selectTooltipCoordinate(currentState, itemIndex, graphicalItemId);\n listenerApi.dispatch(setActiveMouseOverItemIndex({\n activeDataKey: dataKey,\n activeIndex: itemIndex,\n activeCoordinate: coordinate,\n activeGraphicalItemId: graphicalItemId\n }));\n }\n rafId = null;\n timeoutId = null;\n };\n if (!isThrottled) {\n callback();\n return;\n }\n if (throttleDelay === 'raf') {\n rafId = requestAnimationFrame(callback);\n } else if (typeof throttleDelay === 'number') {\n if (timeoutId === null) {\n callback();\n latestTouchEvent = null;\n timeoutId = setTimeout(() => {\n if (latestTouchEvent) {\n callback();\n } else {\n timeoutId = null;\n rafId = null;\n }\n }, throttleDelay);\n }\n }\n }\n});", "import { createSlice } from '@reduxjs/toolkit';\nimport { castDraft } from 'immer';\nexport var initialEventSettingsState = {\n throttleDelay: 'raf',\n throttledEvents: ['mousemove', 'touchmove', 'pointermove', 'scroll', 'wheel']\n};\nvar eventSettingsSlice = createSlice({\n name: 'eventSettings',\n initialState: initialEventSettingsState,\n reducers: {\n setEventSettings: (state, action) => {\n if (action.payload.throttleDelay != null) {\n state.throttleDelay = action.payload.throttleDelay;\n }\n if (action.payload.throttledEvents != null) {\n state.throttledEvents = castDraft(action.payload.throttledEvents);\n }\n }\n }\n});\nexport var {\n setEventSettings\n} = eventSettingsSlice.actions;\nexport var eventSettingsReducer = eventSettingsSlice.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';\nimport { eventSettingsReducer } from './eventSettingsSlice';\nimport { renderedTicksReducer } from './renderedTicksSlice';\nvar rootReducer = combineReducers({\n brush: brushReducer,\n cartesianAxis: cartesianAxisReducer,\n chartData: chartDataReducer,\n errorBars: errorBarReducer,\n eventSettings: eventSettingsReducer,\n graphicalItems: graphicalItemsReducer,\n layout: chartLayoutReducer,\n legend: legendReducer,\n options: optionsReducer,\n polarAxis: polarAxisReducer,\n polarOptions: polarOptionsReducer,\n referenceElements: referenceElementsReducer,\n renderedTicks: renderedTicksReducer,\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 => {\n var _process$env$NODE_ENV;\n return getDefaultMiddleware({\n serializableCheck: false,\n immutableCheck: !['commonjs', 'es6', 'production'].includes((_process$env$NODE_ENV = \"es6\") !== null && _process$env$NODE_ENV !== void 0 ? _process$env$NODE_ENV : '')\n }).concat([mouseClickMiddleware.middleware, mouseMoveMiddleware.middleware, keyboardEventsMiddleware.middleware, externalEventsMiddleware.middleware, touchEventMiddleware.middleware]);\n },\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 { memo, useEffect } from 'react';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { setLayout, setMargin } from './layoutSlice';\nimport { useAppDispatch } from './hooks';\nimport { propsAreEqual } from '../util/propsAreEqual';\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\nfunction ReportMainChartPropsImpl(_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}\nexport var ReportMainChartProps = /*#__PURE__*/memo(ReportMainChartPropsImpl, propsAreEqual);", "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}", "import { useEffect, memo } from 'react';\nimport { useAppDispatch } from './hooks';\nimport { setEventSettings } from './eventSettingsSlice';\nimport { propsAreEqual } from '../util/propsAreEqual';\nvar ReportEventSettingsImpl = props => {\n var dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(setEventSettings(props));\n }, [dispatch, props]);\n return null;\n};\nexport var ReportEventSettings = /*#__PURE__*/memo(ReportEventSettingsImpl, propsAreEqual);", "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});", "var _excluded = [\"children\"];\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { useChartHeight, useChartWidth } from '../context/chartLayoutContext';\nimport { useAccessibilityLayer } from '../context/accessibilityContext';\nimport { useIsPanorama } from '../context/PanoramaContext';\nimport { Surface } from './Surface';\nimport { useAppSelector } from '../state/hooks';\nimport { selectBrushDimensions } from '../state/selectors/brushSelectors';\nimport { isPositiveNumber } from '../util/isWellBehavedNumber';\nimport { AllZIndexPortals } from '../zIndex/ZIndexPortal';\nvar FULL_WIDTH_AND_HEIGHT = {\n width: '100%',\n height: '100%',\n /*\n * display: block is necessary here because the default for an SVG is display: inline,\n * which in some browsers (Chrome) adds a little bit of extra space above and below the SVG\n * to make space for the descender of letters like \"g\" and \"y\". This throws off the height calculation\n * and causes the container to grow indefinitely on each render with responsive=true.\n * Display: block removes that extra space.\n *\n * Interestingly, Firefox does not have this problem, but it doesn't hurt to add the style anyway.\n */\n display: 'block'\n};\nvar MainChartSurface = /*#__PURE__*/forwardRef((props, ref) => {\n var width = useChartWidth();\n var height = useChartHeight();\n var hasAccessibilityLayer = useAccessibilityLayer();\n if (!isPositiveNumber(width) || !isPositiveNumber(height)) {\n return null;\n }\n var {\n children,\n otherAttributes,\n title,\n desc\n } = props;\n var tabIndex, role;\n if (otherAttributes != null) {\n if (typeof otherAttributes.tabIndex === 'number') {\n tabIndex = otherAttributes.tabIndex;\n } else {\n tabIndex = hasAccessibilityLayer ? 0 : undefined;\n }\n if (typeof otherAttributes.role === 'string') {\n role = otherAttributes.role;\n } else {\n role = hasAccessibilityLayer ? 'application' : undefined;\n }\n }\n return /*#__PURE__*/React.createElement(Surface, _extends({}, otherAttributes, {\n title: title,\n desc: desc,\n role: role,\n tabIndex: tabIndex,\n width: width,\n height: height,\n style: FULL_WIDTH_AND_HEIGHT,\n ref: ref\n }), children);\n});\nvar BrushPanoramaSurface = _ref => {\n var {\n children\n } = _ref;\n var brushDimensions = useAppSelector(selectBrushDimensions);\n if (!brushDimensions) {\n return null;\n }\n var {\n width,\n height,\n y,\n x\n } = brushDimensions;\n return /*#__PURE__*/React.createElement(Surface, {\n width: width,\n height: height,\n x: x,\n y: y\n }, children);\n};\nexport var RootSurface = /*#__PURE__*/forwardRef((_ref2, ref) => {\n var {\n children\n } = _ref2,\n rest = _objectWithoutProperties(_ref2, _excluded);\n var isPanorama = useIsPanorama();\n if (isPanorama) {\n return /*#__PURE__*/React.createElement(BrushPanoramaSurface, null, /*#__PURE__*/React.createElement(AllZIndexPortals, {\n isPanorama: true\n }, children));\n }\n return /*#__PURE__*/React.createElement(MainChartSurface, _extends({\n ref: ref\n }, rest), /*#__PURE__*/React.createElement(AllZIndexPortals, {\n isPanorama: false\n }, children));\n});", "import * as React from 'react';\nimport { useLayoutEffect, useRef } from 'react';\nimport { useAppDispatch, useAppSelector } from '../state/hooks';\nimport { registerZIndexPortalElement, unregisterZIndexPortalElement } from '../state/zIndexSlice';\nimport { selectAllRegisteredZIndexes } from './zIndexSelectors';\nfunction ZIndexSvgPortal(_ref) {\n var {\n zIndex,\n isPanorama\n } = _ref;\n var ref = useRef(null);\n var dispatch = useAppDispatch();\n useLayoutEffect(() => {\n if (ref.current) {\n dispatch(registerZIndexPortalElement({\n zIndex,\n element: ref.current,\n isPanorama\n }));\n }\n return () => {\n dispatch(unregisterZIndexPortalElement({\n zIndex,\n isPanorama\n }));\n };\n }, [dispatch, zIndex, isPanorama]);\n // these g elements should not be tabbable\n return /*#__PURE__*/React.createElement(\"g\", {\n tabIndex: -1,\n ref: ref,\n className: \"recharts-zIndex-layer_\".concat(zIndex)\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}", "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, blurAction } 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';\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 entry = entries[0];\n if (entry == null) {\n return;\n }\n var {\n width,\n height\n } = entry.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 // When width or height are percentages or CSS short names, read size from DOM once\n if (typeof width === 'string' || typeof height === 'string') {\n return /*#__PURE__*/React.createElement(ReadSizeOnceDiv, _extends({}, props, {\n ref: ref\n }));\n }\n // When both are numbers, use them directly\n if (typeof width === 'number' && typeof height === 'number') {\n return /*#__PURE__*/React.createElement(StaticDiv, _extends({}, props, {\n width: width,\n height: height,\n ref: ref\n }));\n }\n // When width/height are undefined, render wrapper div without reporting size\n // This results in no SVG being rendered (intentional for backwards compatibility)\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});\nfunction getWrapperDivComponent(responsive) {\n return responsive ? 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 onBlur = useCallback(() => {\n dispatch(blurAction());\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 onBlur: onBlur,\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 { forwardRef } from 'react';\nimport { arrayTooltipSearcher } from '../state/optionsSlice';\nimport { CartesianChart } from './CartesianChart';\nvar allowedTooltipTypes = ['axis', 'item'];\n\n/**\n * @consumes ResponsiveContainerContext\n * @provides CartesianViewBoxContext\n * @provides CartesianChartContext\n */\nexport var BarChart = /*#__PURE__*/forwardRef((props, ref) => {\n return /*#__PURE__*/React.createElement(CartesianChart, {\n chartName: \"BarChart\",\n defaultTooltipEventType: \"axis\",\n validateTooltipEventTypes: allowedTooltipTypes,\n tooltipPayloadSearcher: arrayTooltipSearcher,\n categoricalChartProps: props,\n ref: ref\n });\n});", "function 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 { forwardRef } from 'react';\nimport { arrayTooltipSearcher } from '../state/optionsSlice';\nimport { defaultPolarChartProps, PolarChart } from './PolarChart';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nvar allowedTooltipTypes = ['item'];\nexport var defaultPieChartProps = _objectSpread(_objectSpread({}, defaultPolarChartProps), {}, {\n layout: 'centric',\n startAngle: 0,\n endAngle: 360\n});\n\n/**\n * @consumes ResponsiveContainerContext\n * @provides PolarViewBoxContext\n * @provides PolarChartContext\n */\nexport var PieChart = /*#__PURE__*/forwardRef((props, ref) => {\n var propsWithDefaults = resolveDefaultProps(props, defaultPieChartProps);\n return /*#__PURE__*/React.createElement(PolarChart, {\n chartName: \"PieChart\",\n defaultTooltipEventType: \"item\",\n validateTooltipEventTypes: allowedTooltipTypes,\n tooltipPayloadSearcher: arrayTooltipSearcher,\n categoricalChartProps: propsWithDefaults,\n ref: ref\n });\n});", "var _excluded = [\"layout\"];\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; }\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 { forwardRef } from 'react';\nimport * as React from 'react';\nimport { RechartsStoreProvider } from '../state/RechartsStoreProvider';\nimport { ChartDataContextProvider } from '../context/chartDataContext';\nimport { ReportMainChartProps } from '../state/ReportMainChartProps';\nimport { ReportChartProps } from '../state/ReportChartProps';\nimport { ReportEventSettings } from '../state/ReportEventSettings';\nimport { ReportPolarOptions } from '../state/ReportPolarOptions';\nimport { CategoricalChart } from './CategoricalChart';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { initialEventSettingsState } from '../state/eventSettingsSlice';\nvar defaultMargin = {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n};\n\n/**\n * These default props are the same for all PolarChart components.\n */\nexport var defaultPolarChartProps = _objectSpread({\n accessibilityLayer: true,\n stackOffset: 'none',\n barCategoryGap: '10%',\n barGap: 4,\n margin: defaultMargin,\n reverseStackOrder: false,\n syncMethod: 'index',\n layout: 'radial',\n responsive: false,\n cx: '50%',\n cy: '50%',\n innerRadius: 0,\n outerRadius: '80%'\n}, initialEventSettingsState);\n\n/**\n * These props are required for the PolarChart to function correctly.\n * Users usually would not need to specify these explicitly,\n * because the convenience components like PieChart, RadarChart, etc.\n * will provide these defaults.\n * We can't have the defaults in this file because each of those convenience components\n * have their own opinions about what they should be.\n */\n\n/**\n * These are one-time, immutable options that decide the chart's behavior.\n * Users who wish to call CartesianChart may decide to pass these options explicitly,\n * but usually we would expect that they use one of the convenience components like PieChart, RadarChart, etc.\n */\n\nexport var PolarChart = /*#__PURE__*/forwardRef(function PolarChart(props, ref) {\n var _polarChartProps$id;\n var polarChartProps = resolveDefaultProps(props.categoricalChartProps, defaultPolarChartProps);\n var {\n layout\n } = polarChartProps,\n otherCategoricalProps = _objectWithoutProperties(polarChartProps, _excluded);\n var {\n chartName,\n defaultTooltipEventType,\n validateTooltipEventTypes,\n tooltipPayloadSearcher\n } = props;\n var options = {\n chartName,\n defaultTooltipEventType,\n validateTooltipEventTypes,\n tooltipPayloadSearcher,\n eventEmitter: undefined\n };\n return /*#__PURE__*/React.createElement(RechartsStoreProvider, {\n preloadedState: {\n options\n },\n reduxStoreName: (_polarChartProps$id = polarChartProps.id) !== null && _polarChartProps$id !== void 0 ? _polarChartProps$id : chartName\n }, /*#__PURE__*/React.createElement(ChartDataContextProvider, {\n chartData: polarChartProps.data\n }), /*#__PURE__*/React.createElement(ReportMainChartProps, {\n layout: layout,\n margin: polarChartProps.margin\n }), /*#__PURE__*/React.createElement(ReportEventSettings, {\n throttleDelay: polarChartProps.throttleDelay,\n throttledEvents: polarChartProps.throttledEvents\n }), /*#__PURE__*/React.createElement(ReportChartProps, {\n baseValue: undefined,\n accessibilityLayer: polarChartProps.accessibilityLayer,\n barCategoryGap: polarChartProps.barCategoryGap,\n maxBarSize: polarChartProps.maxBarSize,\n stackOffset: polarChartProps.stackOffset,\n barGap: polarChartProps.barGap,\n barSize: polarChartProps.barSize,\n syncId: polarChartProps.syncId,\n syncMethod: polarChartProps.syncMethod,\n className: polarChartProps.className,\n reverseStackOrder: polarChartProps.reverseStackOrder\n }), /*#__PURE__*/React.createElement(ReportPolarOptions, {\n cx: polarChartProps.cx,\n cy: polarChartProps.cy,\n startAngle: polarChartProps.startAngle,\n endAngle: polarChartProps.endAngle,\n innerRadius: polarChartProps.innerRadius,\n outerRadius: polarChartProps.outerRadius\n }), /*#__PURE__*/React.createElement(CategoricalChart, _extends({}, otherCategoricalProps, {\n ref: ref\n })));\n});", "import { useEffect } from 'react';\nimport { useAppDispatch } from './hooks';\nimport { updatePolarOptions } from './polarOptionsSlice';\nexport function ReportPolarOptions(props) {\n var dispatch = useAppDispatch();\n useEffect(() => {\n dispatch(updatePolarOptions(props));\n }, [dispatch, props]);\n return null;\n}", "var _excluded = [\"width\", \"height\", \"className\", \"style\", \"children\", \"type\"];\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport * as React from 'react';\nimport { PureComponent, useCallback, useState } from 'react';\nimport omit from 'es-toolkit/compat/omit';\nimport get from 'es-toolkit/compat/get';\nimport { Layer } from '../container/Layer';\nimport { Surface } from '../container/Surface';\nimport { Polygon } from '../shape/Polygon';\nimport { Rectangle } from '../shape/Rectangle';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { COLOR_PANEL } from '../util/Constants';\nimport { isNan, noop, uniqueId } from '../util/DataUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { ReportChartMargin, useChartHeight, useChartWidth } from '../context/chartLayoutContext';\nimport { TooltipPortalContext } from '../context/tooltipPortalContext';\nimport { RechartsWrapper } from './RechartsWrapper';\nimport { setActiveClickItemIndex, setActiveMouseOverItemIndex } from '../state/tooltipSlice';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { RechartsStoreProvider } from '../state/RechartsStoreProvider';\nimport { ReportEventSettings } from '../state/ReportEventSettings';\nimport { useAppDispatch } from '../state/hooks';\nimport { isPositiveNumber } from '../util/isWellBehavedNumber';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { CSSTransitionAnimate } from '../animation/CSSTransitionAnimate';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\nimport { initialEventSettingsState } from '../state/eventSettingsSlice';\nvar NODE_VALUE_KEY = 'value';\n\n/**\n * This is what end users defines as `data` on Treemap.\n */\n\n/**\n * This is what is returned from `squarify`, the final treemap data structure\n * that gets rendered and is stored in\n */\n\nfunction isTreemapNode(value) {\n return value != null && typeof value === 'object' && 'x' in value && 'y' in value && 'width' in value && 'height' in value && typeof value.x === 'number' && typeof value.y === 'number' && typeof value.width === 'number' && typeof value.height === 'number';\n}\nexport var treemapPayloadSearcher = (data, activeIndex) => {\n if (!data || !activeIndex) {\n return undefined;\n }\n return get(data, activeIndex);\n};\nexport var addToTreemapNodeIndex = function addToTreemapNodeIndex(indexInChildrenArr) {\n var activeTooltipIndexSoFar = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return \"\".concat(activeTooltipIndexSoFar, \"children[\").concat(indexInChildrenArr, \"]\");\n};\nvar options = {\n chartName: 'Treemap',\n defaultTooltipEventType: 'item',\n validateTooltipEventTypes: ['item'],\n tooltipPayloadSearcher: treemapPayloadSearcher,\n eventEmitter: undefined\n};\nexport var computeNode = _ref => {\n var {\n depth,\n node,\n index,\n dataKey,\n nameKey,\n nestedActiveTooltipIndex\n } = _ref;\n var currentTooltipIndex = depth === 0 ? '' : addToTreemapNodeIndex(index, nestedActiveTooltipIndex);\n var {\n children\n } = node;\n var childDepth = depth + 1;\n var computedChildren = children && children.length ? children.map((child, i) => computeNode({\n depth: childDepth,\n node: child,\n index: i,\n dataKey,\n nameKey,\n nestedActiveTooltipIndex: currentTooltipIndex\n })) : null;\n var nodeValue;\n if (computedChildren && computedChildren.length) {\n nodeValue = computedChildren.reduce((result, child) => result + child.value, 0);\n } else {\n // TODO need to verify dataKey\n var rawNodeValue = node[dataKey];\n var numericValue = typeof rawNodeValue === 'number' ? rawNodeValue : 0;\n nodeValue = isNan(numericValue) || numericValue <= 0 ? 0 : numericValue;\n }\n return _objectSpread(_objectSpread({}, node), {}, {\n children: computedChildren,\n // @ts-expect-error getValueByDataKey does not validate the output type\n name: getValueByDataKey(node, nameKey, ''),\n [NODE_VALUE_KEY]: nodeValue,\n depth,\n index,\n tooltipIndex: currentTooltipIndex\n });\n};\nvar filterRect = node => ({\n x: node.x,\n y: node.y,\n width: node.width,\n height: node.height\n});\n// Compute the area for each child based on value & scale.\nvar getAreaOfChildren = (children, areaValueRatio) => {\n var ratio = areaValueRatio < 0 ? 0 : areaValueRatio;\n return children.map(child => {\n var area = child[NODE_VALUE_KEY] * ratio;\n return _objectSpread(_objectSpread({}, child), {}, {\n area: isNan(area) || area <= 0 ? 0 : area\n });\n });\n};\n\n// Computes the score for the specified row, as the worst aspect ratio.\nvar getWorstScore = (row, parentSize, aspectRatio) => {\n var parentArea = parentSize * parentSize;\n var rowArea = row.area * row.area;\n var {\n min,\n max\n } = row.reduce((result, child) => ({\n min: Math.min(result.min, child.area),\n max: Math.max(result.max, child.area)\n }), {\n min: Infinity,\n max: 0\n });\n return rowArea ? Math.max(parentArea * max * aspectRatio / rowArea, rowArea / (parentArea * min * aspectRatio)) : Infinity;\n};\nvar horizontalPosition = (row, parentSize, parentRect, isFlush) => {\n var rowHeight = parentSize ? Math.round(row.area / parentSize) : 0;\n if (isFlush || rowHeight > parentRect.height) {\n rowHeight = parentRect.height;\n }\n var curX = parentRect.x;\n var child;\n for (var i = 0, len = row.length; i < len; i++) {\n child = row[i];\n if (child == null) {\n continue;\n }\n child.x = curX;\n child.y = parentRect.y;\n child.height = rowHeight;\n child.width = Math.min(rowHeight ? Math.round(child.area / rowHeight) : 0, parentRect.x + parentRect.width - curX);\n curX += child.width;\n }\n // add the remain x to the last one of row\n if (child != null) {\n child.width += parentRect.x + parentRect.width - curX;\n }\n return _objectSpread(_objectSpread({}, parentRect), {}, {\n y: parentRect.y + rowHeight,\n height: parentRect.height - rowHeight\n });\n};\nvar verticalPosition = (row, parentSize, parentRect, isFlush) => {\n var rowWidth = parentSize ? Math.round(row.area / parentSize) : 0;\n if (isFlush || rowWidth > parentRect.width) {\n rowWidth = parentRect.width;\n }\n var curY = parentRect.y;\n var child;\n for (var i = 0, len = row.length; i < len; i++) {\n child = row[i];\n if (child == null) {\n continue;\n }\n child.x = parentRect.x;\n child.y = curY;\n child.width = rowWidth;\n child.height = Math.min(rowWidth ? Math.round(child.area / rowWidth) : 0, parentRect.y + parentRect.height - curY);\n curY += child.height;\n }\n if (child) {\n child.height += parentRect.y + parentRect.height - curY;\n }\n return _objectSpread(_objectSpread({}, parentRect), {}, {\n x: parentRect.x + rowWidth,\n width: parentRect.width - rowWidth\n });\n};\nvar position = (row, parentSize, parentRect, isFlush) => {\n if (parentSize === parentRect.width) {\n return horizontalPosition(row, parentSize, parentRect, isFlush);\n }\n return verticalPosition(row, parentSize, parentRect, isFlush);\n};\n// Recursively arranges the specified node's children into squarified rows.\nvar squarify = (node, aspectRatio) => {\n var {\n children\n } = node;\n if (children && children.length) {\n var rect = filterRect(node);\n // @ts-expect-error we can't create an array with static property on a single line so typescript will complain.\n var row = [];\n var best = Infinity; // the best row score so far\n var child, score; // the current row score\n var size = Math.min(rect.width, rect.height); // initial orientation\n var scaleChildren = getAreaOfChildren(children, rect.width * rect.height / node[NODE_VALUE_KEY]);\n var tempChildren = scaleChildren.slice();\n\n // why are we setting static properties on an array?\n row.area = 0;\n while (tempChildren.length > 0) {\n [child] = tempChildren;\n if (child == null) {\n continue;\n }\n // row first\n row.push(child);\n row.area += child.area;\n score = getWorstScore(row, size, aspectRatio);\n if (score <= best) {\n // continue with this orientation\n tempChildren.shift();\n best = score;\n } else {\n var _row$pop$area, _row$pop;\n // abort, and try a different orientation\n row.area -= (_row$pop$area = (_row$pop = row.pop()) === null || _row$pop === void 0 ? void 0 : _row$pop.area) !== null && _row$pop$area !== void 0 ? _row$pop$area : 0;\n rect = position(row, size, rect, false);\n size = Math.min(rect.width, rect.height);\n row.length = row.area = 0;\n best = Infinity;\n }\n }\n if (row.length) {\n rect = position(row, size, rect, true);\n row.length = row.area = 0;\n }\n return _objectSpread(_objectSpread({}, node), {}, {\n children: scaleChildren.map(c => squarify(c, aspectRatio))\n });\n }\n return node;\n};\nexport var defaultTreeMapProps = _objectSpread({\n aspectRatio: 0.5 * (1 + Math.sqrt(5)),\n dataKey: 'value',\n nameKey: 'name',\n type: 'flat',\n isAnimationActive: 'auto',\n isUpdateAnimationActive: 'auto',\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'linear'\n}, initialEventSettingsState);\nvar defaultState = {\n isAnimationFinished: false,\n formatRoot: null,\n currentRoot: undefined,\n nestIndex: [],\n prevAspectRatio: defaultTreeMapProps.aspectRatio,\n prevDataKey: defaultTreeMapProps.dataKey\n};\nfunction ContentItem(_ref2) {\n var {\n content,\n nodeProps,\n type,\n colorPanel,\n onMouseEnter,\n onMouseLeave,\n onClick\n } = _ref2;\n if (/*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.createElement(Layer, {\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onClick: onClick\n }, /*#__PURE__*/React.cloneElement(content, nodeProps));\n }\n if (typeof content === 'function') {\n return /*#__PURE__*/React.createElement(Layer, {\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onClick: onClick\n }, content(nodeProps));\n }\n // optimize default shape\n var {\n x,\n y,\n width,\n height,\n index\n } = nodeProps;\n var arrow = null;\n if (width > 10 && height > 10 && nodeProps.children && type === 'nest') {\n arrow = /*#__PURE__*/React.createElement(Polygon, {\n points: [{\n x: x + 2,\n y: y + height / 2\n }, {\n x: x + 6,\n y: y + height / 2 + 3\n }, {\n x: x + 2,\n y: y + height / 2 + 6\n }]\n });\n }\n var text = null;\n var nameSize = getStringSize(nodeProps.name);\n if (width > 20 && height > 20 && nameSize.width < width && nameSize.height < height) {\n text = /*#__PURE__*/React.createElement(\"text\", {\n x: x + 8,\n y: y + height / 2 + 7,\n fontSize: 14\n }, nodeProps.name);\n }\n var colors = colorPanel || COLOR_PANEL;\n return /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(Rectangle, _extends({\n fill: nodeProps.depth < 2 ? colors[index % colors.length] : 'rgba(255,255,255,0)',\n stroke: \"#fff\"\n }, omit(nodeProps, ['children']), {\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onClick: onClick,\n \"data-recharts-item-index\": nodeProps.tooltipIndex\n })), arrow, text);\n}\nfunction ContentItemWithEvents(props) {\n var dispatch = useAppDispatch();\n var activeCoordinate = {\n x: props.nodeProps.x + props.nodeProps.width / 2,\n y: props.nodeProps.y + props.nodeProps.height / 2\n };\n var onMouseEnter = () => {\n dispatch(setActiveMouseOverItemIndex({\n activeIndex: props.nodeProps.tooltipIndex,\n activeDataKey: props.dataKey,\n activeCoordinate,\n activeGraphicalItemId: props.id\n }));\n };\n var onMouseLeave = () => {\n // clearing state on mouseLeaveItem causes re-rendering issues\n // we don't actually want to do this for TreeMap - we clear state when we leave the entire chart instead\n };\n var onClick = () => {\n dispatch(setActiveClickItemIndex({\n activeIndex: props.nodeProps.tooltipIndex,\n activeDataKey: props.dataKey,\n activeCoordinate,\n activeGraphicalItemId: props.id\n }));\n };\n return /*#__PURE__*/React.createElement(ContentItem, _extends({}, props, {\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onClick: onClick\n }));\n}\nvar SetTreemapTooltipEntrySettings = /*#__PURE__*/React.memo(_ref3 => {\n var {\n dataKey,\n nameKey,\n stroke,\n fill,\n currentRoot,\n id\n } = _ref3;\n var tooltipEntrySettings = {\n dataDefinedOnItem: currentRoot,\n getPosition: noop,\n // TODO I think Treemap has the capability of computing positions and supporting defaultIndex? Except it doesn't yet\n settings: {\n stroke,\n strokeWidth: undefined,\n fill,\n dataKey,\n nameKey,\n name: undefined,\n // Each TreemapNode has its own name\n hide: false,\n type: undefined,\n color: fill,\n unit: '',\n graphicalItemId: id\n }\n };\n return /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {\n tooltipEntrySettings: tooltipEntrySettings\n });\n});\n\n// Why is margin not a treemap prop? No clue. Probably it should be\nvar defaultTreemapMargin = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\nfunction TreemapItem(_ref4) {\n var {\n content,\n nodeProps,\n isLeaf,\n treemapProps,\n onNestClick\n } = _ref4;\n var {\n id,\n isAnimationActive,\n animationBegin,\n animationDuration,\n animationEasing,\n isUpdateAnimationActive,\n type,\n colorPanel,\n dataKey,\n onAnimationStart,\n onAnimationEnd,\n onMouseEnter: onMouseEnterFromProps,\n onClick: onItemClickFromProps,\n onMouseLeave: onMouseLeaveFromProps\n } = treemapProps;\n var {\n width,\n height,\n x,\n y\n } = nodeProps;\n var translateX = -x - width;\n var translateY = 0;\n var onMouseEnter = e => {\n if ((isLeaf || type === 'nest') && typeof onMouseEnterFromProps === 'function') {\n onMouseEnterFromProps(nodeProps, e);\n }\n };\n var onMouseLeave = e => {\n if ((isLeaf || type === 'nest') && typeof onMouseLeaveFromProps === 'function') {\n onMouseLeaveFromProps(nodeProps, e);\n }\n };\n var onClick = () => {\n if (type === 'nest') {\n onNestClick(nodeProps);\n }\n if ((isLeaf || type === 'nest') && typeof onItemClickFromProps === 'function') {\n onItemClickFromProps(nodeProps);\n }\n };\n var handleAnimationEnd = useCallback(() => {\n if (typeof onAnimationEnd === 'function') {\n onAnimationEnd();\n }\n }, [onAnimationEnd]);\n var handleAnimationStart = useCallback(() => {\n if (typeof onAnimationStart === 'function') {\n onAnimationStart();\n }\n }, [onAnimationStart]);\n return /*#__PURE__*/React.createElement(CSSTransitionAnimate, {\n animationId: \"treemap-\".concat(nodeProps.tooltipIndex),\n from: \"translate(\".concat(translateX, \"px, \").concat(translateY, \"px)\"),\n to: \"translate(0, 0)\",\n attributeName: \"transform\",\n begin: animationBegin,\n easing: animationEasing,\n isActive: isAnimationActive,\n duration: animationDuration,\n onAnimationStart: handleAnimationStart,\n onAnimationEnd: handleAnimationEnd\n }, style => /*#__PURE__*/React.createElement(Layer, {\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onClick: onClick,\n style: _objectSpread(_objectSpread({}, style), {}, {\n transformOrigin: \"\".concat(x, \" \").concat(y)\n })\n }, /*#__PURE__*/React.createElement(ContentItemWithEvents, {\n id: id,\n content: content,\n dataKey: dataKey,\n nodeProps: _objectSpread(_objectSpread({}, nodeProps), {}, {\n isAnimationActive,\n isUpdateAnimationActive: !isUpdateAnimationActive,\n width,\n height,\n x,\n y\n }),\n type: type,\n colorPanel: colorPanel\n })));\n}\nclass TreemapWithState extends PureComponent {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"state\", _objectSpread({}, defaultState));\n _defineProperty(this, \"handleClick\", node => {\n var {\n onClick,\n type\n } = this.props;\n if (type === 'nest' && node.children) {\n var {\n width,\n height,\n dataKey,\n nameKey,\n aspectRatio\n } = this.props;\n var root = computeNode({\n depth: 0,\n node: _objectSpread(_objectSpread({}, node), {}, {\n x: 0,\n y: 0,\n width,\n height\n }),\n index: 0,\n dataKey,\n nameKey,\n // with Treemap nesting, should this continue nesting the index or start from empty string?\n nestedActiveTooltipIndex: node.tooltipIndex\n });\n var formatRoot = squarify(root, aspectRatio);\n var {\n nestIndex\n } = this.state;\n nestIndex.push(node);\n this.setState({\n formatRoot,\n currentRoot: root,\n nestIndex\n });\n }\n if (onClick) {\n onClick(node);\n }\n });\n _defineProperty(this, \"handleTouchMove\", e => {\n var touchEvent = e.touches[0];\n if (touchEvent == null) {\n return;\n }\n var target = document.elementFromPoint(touchEvent.clientX, touchEvent.clientY);\n if (!target || !target.getAttribute || this.state.formatRoot == null) {\n return;\n }\n var itemIndex = target.getAttribute('data-recharts-item-index');\n var activeNode = treemapPayloadSearcher(this.state.formatRoot, itemIndex);\n if (!isTreemapNode(activeNode)) {\n return;\n }\n var {\n dataKey,\n dispatch\n } = this.props;\n var activeCoordinate = {\n x: activeNode.x + activeNode.width / 2,\n y: activeNode.y + activeNode.height / 2\n };\n\n // Treemap does not support onTouchMove prop, but it could\n // onTouchMove?.(activeNode, Number(itemIndex), e);\n dispatch(setActiveMouseOverItemIndex({\n activeIndex: itemIndex,\n activeDataKey: dataKey,\n activeCoordinate,\n activeGraphicalItemId: this.props.id\n }));\n });\n }\n static getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.data !== prevState.prevData || nextProps.type !== prevState.prevType || nextProps.width !== prevState.prevWidth || nextProps.height !== prevState.prevHeight || nextProps.dataKey !== prevState.prevDataKey || nextProps.aspectRatio !== prevState.prevAspectRatio) {\n var root = computeNode({\n depth: 0,\n // @ts-expect-error missing properties\n node: {\n children: nextProps.data,\n x: 0,\n y: 0,\n width: nextProps.width,\n height: nextProps.height\n },\n index: 0,\n dataKey: nextProps.dataKey,\n nameKey: nextProps.nameKey\n });\n var formatRoot = squarify(root, nextProps.aspectRatio);\n return _objectSpread(_objectSpread({}, prevState), {}, {\n formatRoot,\n currentRoot: root,\n nestIndex: [root],\n prevAspectRatio: nextProps.aspectRatio,\n prevData: nextProps.data,\n prevWidth: nextProps.width,\n prevHeight: nextProps.height,\n prevDataKey: nextProps.dataKey,\n prevType: nextProps.type\n });\n }\n return null;\n }\n handleNestIndex(node, i) {\n var {\n nestIndex\n } = this.state;\n var {\n width,\n height,\n dataKey,\n nameKey,\n aspectRatio\n } = this.props;\n var root = computeNode({\n depth: 0,\n node: _objectSpread(_objectSpread({}, node), {}, {\n x: 0,\n y: 0,\n width,\n height\n }),\n index: 0,\n dataKey,\n nameKey,\n // with Treemap nesting, should this continue nesting the index or start from empty string?\n nestedActiveTooltipIndex: node.tooltipIndex\n });\n var formatRoot = squarify(root, aspectRatio);\n nestIndex = nestIndex.slice(0, i + 1);\n this.setState({\n formatRoot,\n currentRoot: node,\n nestIndex\n });\n }\n renderNode(root, node) {\n var {\n content,\n type\n } = this.props;\n var nodeProps = _objectSpread(_objectSpread(_objectSpread({}, svgPropertiesNoEvents(this.props)), node), {}, {\n root\n });\n var isLeaf = !node.children || !node.children.length;\n var {\n currentRoot\n } = this.state;\n var isCurrentRootChild = ((currentRoot === null || currentRoot === void 0 ? void 0 : currentRoot.children) || []).filter(item => item.depth === node.depth && item.name === node.name);\n if (!isCurrentRootChild.length && root.depth && type === 'nest') {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n key: \"recharts-treemap-node-\".concat(nodeProps.x, \"-\").concat(nodeProps.y, \"-\").concat(nodeProps.name),\n className: \"recharts-treemap-depth-\".concat(node.depth)\n }, /*#__PURE__*/React.createElement(TreemapItem, {\n isLeaf: isLeaf,\n content: content,\n nodeProps: nodeProps,\n treemapProps: this.props,\n onNestClick: this.handleClick\n }), node.children && node.children.length ? node.children.map(child => this.renderNode(node, child)) : null);\n }\n renderAllNodes() {\n var {\n formatRoot\n } = this.state;\n if (!formatRoot) {\n return null;\n }\n return this.renderNode(formatRoot, formatRoot);\n }\n\n // render nest treemap\n renderNestIndex() {\n var {\n nameKey,\n nestIndexContent\n } = this.props;\n var {\n nestIndex\n } = this.state;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"recharts-treemap-nest-index-wrapper\",\n style: {\n marginTop: '8px',\n textAlign: 'center'\n }\n }, nestIndex.map((item, i) => {\n // TODO need to verify nameKey type\n var rawName = get(item, nameKey, 'root');\n var name = typeof rawName === 'string' ? rawName : 'root';\n var content;\n if (/*#__PURE__*/React.isValidElement(nestIndexContent)) {\n // the cloned content is ignored at all times - let's remove it?\n content = /*#__PURE__*/React.cloneElement(nestIndexContent, item, i);\n }\n if (typeof nestIndexContent === 'function') {\n content = nestIndexContent(item, i);\n } else {\n content = name;\n }\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions\n React.createElement(\"div\", {\n onClick: this.handleNestIndex.bind(this, item, i),\n key: \"nest-index-\".concat(uniqueId()),\n className: \"recharts-treemap-nest-index-box\",\n style: {\n cursor: 'pointer',\n display: 'inline-block',\n padding: '0 7px',\n background: '#000',\n color: '#fff',\n marginRight: '3px'\n }\n }, content)\n );\n }));\n }\n render() {\n var _this$props = this.props,\n {\n width,\n height,\n className,\n style,\n children,\n type\n } = _this$props,\n others = _objectWithoutProperties(_this$props, _excluded);\n var attrs = svgPropertiesNoEvents(others);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetTreemapTooltipEntrySettings, {\n dataKey: this.props.dataKey,\n nameKey: this.props.nameKey,\n stroke: this.props.stroke,\n fill: this.props.fill,\n currentRoot: this.state.currentRoot,\n id: this.props.id\n }), /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: type === 'nest' ? height - 30 : height,\n onTouchMove: this.handleTouchMove\n }), this.renderAllNodes(), children), type === 'nest' && this.renderNestIndex());\n }\n}\n_defineProperty(TreemapWithState, \"displayName\", 'Treemap');\nfunction TreemapDispatchInject(props) {\n var dispatch = useAppDispatch();\n var width = useChartWidth();\n var height = useChartHeight();\n if (!isPositiveNumber(width) || !isPositiveNumber(height)) {\n return null;\n }\n var {\n id: externalId\n } = props;\n return /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {\n id: externalId,\n type: \"treemap\"\n }, id => /*#__PURE__*/React.createElement(TreemapWithState, _extends({}, props, {\n id: id,\n width: width,\n height: height,\n dispatch: dispatch\n })));\n}\n\n/**\n * The Treemap chart is used to visualize hierarchical data using nested rectangles.\n *\n * @consumes ResponsiveContainerContext\n * @provides TooltipEntrySettings\n */\nexport function Treemap(outsideProps) {\n var _props$className;\n var props = resolveDefaultProps(outsideProps, defaultTreeMapProps);\n var {\n className,\n style,\n width,\n height,\n throttleDelay,\n throttledEvents\n } = props;\n var [tooltipPortal, setTooltipPortal] = useState(null);\n return /*#__PURE__*/React.createElement(RechartsStoreProvider, {\n preloadedState: {\n options\n },\n reduxStoreName: (_props$className = props.className) !== null && _props$className !== void 0 ? _props$className : 'Treemap'\n }, /*#__PURE__*/React.createElement(ReportChartMargin, {\n margin: defaultTreemapMargin\n }), /*#__PURE__*/React.createElement(ReportEventSettings, {\n throttleDelay: throttleDelay,\n throttledEvents: throttledEvents\n }), /*#__PURE__*/React.createElement(RechartsWrapper, {\n dispatchTouchEvents: false,\n className: className,\n style: style,\n width: width,\n height: height\n /*\n * Treemap has a bug where it doesn't include strokeWidth in its dimension calculation\n * which makes the actual chart exactly {strokeWidth} larger than asked for.\n * It's not a huge deal usually, but it makes the responsive option cycle infinitely.\n */,\n responsive: false,\n ref: node => {\n if (tooltipPortal == null && node != null) {\n setTooltipPortal(node);\n }\n },\n onMouseEnter: undefined,\n onMouseLeave: undefined,\n onClick: undefined,\n onMouseMove: undefined,\n onMouseDown: undefined,\n onMouseUp: undefined,\n onContextMenu: undefined,\n onDoubleClick: undefined,\n onTouchStart: undefined,\n onTouchMove: undefined,\n onTouchEnd: undefined\n }, /*#__PURE__*/React.createElement(TooltipPortalContext.Provider, {\n value: tooltipPortal\n }, /*#__PURE__*/React.createElement(TreemapDispatchInject, props))));\n}", "var _excluded = [\"sourceX\", \"sourceY\", \"sourceControlX\", \"targetX\", \"targetY\", \"targetControlX\", \"linkWidth\"],\n _excluded2 = [\"className\", \"style\", \"children\", \"id\"];\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; }\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 { useCallback, useMemo, useState } from 'react';\nimport maxBy from 'es-toolkit/compat/maxBy';\nimport sumBy from 'es-toolkit/compat/sumBy';\nimport get from 'es-toolkit/compat/get';\nimport { Surface } from '../container/Surface';\nimport { Layer } from '../container/Layer';\nimport { Rectangle } from '../shape/Rectangle';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { ReportChartMargin, ReportChartSize, useChartHeight, useChartWidth } from '../context/chartLayoutContext';\nimport { TooltipPortalContext } from '../context/tooltipPortalContext';\nimport { RechartsWrapper } from './RechartsWrapper';\nimport { RechartsStoreProvider } from '../state/RechartsStoreProvider';\nimport { useAppDispatch } from '../state/hooks';\nimport { mouseLeaveItem, setActiveClickItemIndex, setActiveMouseOverItemIndex } from '../state/tooltipSlice';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { ReportEventSettings } from '../state/ReportEventSettings';\nimport { SetComputedData } from '../context/chartDataContext';\nimport { svgPropertiesNoEvents, svgPropertiesNoEventsFromUnknown } from '../util/svgPropertiesNoEvents';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { isPositiveNumber } from '../util/isWellBehavedNumber';\nimport { isNotNil, noop } from '../util/DataUtils';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\nimport { initialEventSettingsState } from '../state/eventSettingsSlice';\nvar interpolationGenerator = (a, b) => {\n var ka = +a;\n var kb = b - ka;\n return t => ka + kb * t;\n};\nvar centerY = node => node.y + node.dy / 2;\n\n// TODO why is this not reading dataKey?\nvar getValue = entry => entry && entry.value || 0;\nvar getSumOfIds = (links, ids) => ids.reduce((result, id) => result + getValue(links[id]), 0);\nvar getSumWithWeightedSource = (tree, links, ids) => ids.reduce((result, id) => {\n var link = links[id];\n if (link == null) {\n return result;\n }\n var sourceNode = tree[link.source];\n if (sourceNode == null) {\n return result;\n }\n return result + centerY(sourceNode) * getValue(links[id]);\n}, 0);\nvar getSumWithWeightedTarget = (tree, links, ids) => ids.reduce((result, id) => {\n var link = links[id];\n if (link == null) {\n return result;\n }\n var targetNode = tree[link.target];\n if (targetNode == null) {\n return result;\n }\n return result + centerY(targetNode) * getValue(links[id]);\n}, 0);\nvar ascendingY = (a, b) => a.y - b.y;\nvar searchTargetsAndSources = (links, id) => {\n var sourceNodes = [];\n var sourceLinks = [];\n var targetNodes = [];\n var targetLinks = [];\n for (var i = 0, len = links.length; i < len; i++) {\n var link = links[i];\n if ((link === null || link === void 0 ? void 0 : link.source) === id) {\n targetNodes.push(link.target);\n targetLinks.push(i);\n }\n if ((link === null || link === void 0 ? void 0 : link.target) === id) {\n sourceNodes.push(link.source);\n sourceLinks.push(i);\n }\n }\n return {\n sourceNodes,\n sourceLinks,\n targetLinks,\n targetNodes\n };\n};\nvar updateDepthOfTargets = (tree, curNode) => {\n var {\n targetNodes\n } = curNode;\n for (var i = 0, len = targetNodes.length; i < len; i++) {\n var targetNode = targetNodes[i];\n if (targetNode == null) {\n continue;\n }\n var target = tree[targetNode];\n if (target) {\n target.depth = Math.max(curNode.depth + 1, target.depth);\n updateDepthOfTargets(tree, target);\n }\n }\n};\nvar getNodesTree = (_ref, width, nodeWidth, align) => {\n var _maxBy$depth, _maxBy;\n var {\n nodes,\n links\n } = _ref;\n var tree = nodes.map((entry, index) => {\n var result = searchTargetsAndSources(links, index);\n return _objectSpread(_objectSpread(_objectSpread({}, entry), result), {}, {\n value: Math.max(getSumOfIds(links, result.sourceLinks), getSumOfIds(links, result.targetLinks)),\n depth: 0\n });\n });\n for (var i = 0, len = tree.length; i < len; i++) {\n var node = tree[i];\n if (node != null && !node.sourceNodes.length) {\n updateDepthOfTargets(tree, node);\n }\n }\n var maxDepth = (_maxBy$depth = (_maxBy = maxBy(tree, entry => entry.depth)) === null || _maxBy === void 0 ? void 0 : _maxBy.depth) !== null && _maxBy$depth !== void 0 ? _maxBy$depth : 0;\n if (maxDepth >= 1) {\n var childWidth = (width - nodeWidth) / maxDepth;\n for (var _i = 0, _len = tree.length; _i < _len; _i++) {\n var _node = tree[_i];\n if (_node == null) {\n continue;\n }\n if (!_node.targetNodes.length) {\n if (align === 'justify') {\n _node.depth = maxDepth;\n }\n }\n _node.x = _node.depth * childWidth;\n _node.dx = nodeWidth;\n }\n }\n return {\n tree,\n maxDepth\n };\n};\nvar getDepthTree = tree => {\n var result = [];\n for (var i = 0, len = tree.length; i < len; i++) {\n var _result$node$depth;\n var node = tree[i];\n if (node == null) {\n continue;\n }\n if (!result[node.depth]) {\n result[node.depth] = [];\n }\n (_result$node$depth = result[node.depth]) === null || _result$node$depth === void 0 || _result$node$depth.push(node);\n }\n return result;\n};\nvar updateYOfTree = (depthTree, height, nodePadding, links, verticalAlign) => {\n var yRatio = Math.min(...depthTree.map(nodes => (height - (nodes.length - 1) * nodePadding) / sumBy(nodes, getValue)));\n for (var d = 0, maxDepth = depthTree.length; d < maxDepth; d++) {\n var nodes = depthTree[d];\n if (nodes == null) {\n continue;\n }\n if (verticalAlign === 'top') {\n var currentY = 0;\n for (var i = 0, len = nodes.length; i < len; i++) {\n var node = nodes[i];\n if (node == null) {\n continue;\n }\n node.dy = node.value * yRatio;\n node.y = currentY;\n currentY += node.dy + nodePadding;\n }\n } else {\n for (var _i2 = 0, _len2 = nodes.length; _i2 < _len2; _i2++) {\n var _node2 = nodes[_i2];\n if (_node2 == null) {\n continue;\n }\n _node2.y = _i2;\n _node2.dy = _node2.value * yRatio;\n }\n }\n }\n return links.map(link => _objectSpread(_objectSpread({}, link), {}, {\n dy: getValue(link) * yRatio\n }));\n};\nvar resolveCollisions = function resolveCollisions(depthTree, height, nodePadding) {\n var sort = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n for (var i = 0, len = depthTree.length; i < len; i++) {\n var nodes = depthTree[i];\n if (nodes == null) {\n continue;\n }\n var n = nodes.length;\n\n // Sort by the value of y\n if (sort) {\n nodes.sort(ascendingY);\n }\n var y0 = 0;\n for (var j = 0; j < n; j++) {\n var node = nodes[j];\n if (node == null) {\n continue;\n }\n var dy = y0 - node.y;\n if (dy > 0) {\n node.y += dy;\n }\n y0 = node.y + node.dy + nodePadding;\n }\n y0 = height + nodePadding;\n for (var _j = n - 1; _j >= 0; _j--) {\n var _node3 = nodes[_j];\n if (_node3 == null) {\n continue;\n }\n var _dy = _node3.y + _node3.dy + nodePadding - y0;\n if (_dy > 0) {\n _node3.y -= _dy;\n y0 = _node3.y;\n } else {\n break;\n }\n }\n }\n};\nvar relaxLeftToRight = (tree, depthTree, links, alpha) => {\n for (var i = 0, maxDepth = depthTree.length; i < maxDepth; i++) {\n var nodes = depthTree[i];\n if (nodes == null) {\n continue;\n }\n for (var j = 0, len = nodes.length; j < len; j++) {\n var node = nodes[j];\n if (node == null) {\n continue;\n }\n if (node.sourceLinks.length) {\n var sourceSum = getSumOfIds(links, node.sourceLinks);\n var weightedSum = getSumWithWeightedSource(tree, links, node.sourceLinks);\n var y = weightedSum / sourceSum;\n node.y += (y - centerY(node)) * alpha;\n }\n }\n }\n};\nvar relaxRightToLeft = (tree, depthTree, links, alpha) => {\n for (var i = depthTree.length - 1; i >= 0; i--) {\n var nodes = depthTree[i];\n if (nodes == null) {\n continue;\n }\n for (var j = 0, len = nodes.length; j < len; j++) {\n var node = nodes[j];\n if (node == null) {\n continue;\n }\n if (node.targetLinks.length) {\n var targetSum = getSumOfIds(links, node.targetLinks);\n var weightedSum = getSumWithWeightedTarget(tree, links, node.targetLinks);\n var y = weightedSum / targetSum;\n node.y += (y - centerY(node)) * alpha;\n }\n }\n }\n};\nvar updateYOfLinks = (tree, links) => {\n for (var i = 0, len = tree.length; i < len; i++) {\n var node = tree[i];\n if (node == null) {\n continue;\n }\n var sy = 0;\n var ty = 0;\n node.targetLinks.sort((a, b) => {\n var _links$a, _links$b, _tree$targetA, _tree$targetB;\n var targetA = (_links$a = links[a]) === null || _links$a === void 0 ? void 0 : _links$a.target;\n var targetB = (_links$b = links[b]) === null || _links$b === void 0 ? void 0 : _links$b.target;\n if (targetA == null || targetB == null) {\n return 0;\n }\n var yA = (_tree$targetA = tree[targetA]) === null || _tree$targetA === void 0 ? void 0 : _tree$targetA.y;\n var yB = (_tree$targetB = tree[targetB]) === null || _tree$targetB === void 0 ? void 0 : _tree$targetB.y;\n if (yA == null || yB == null) {\n return 0;\n }\n return yA - yB;\n });\n node.sourceLinks.sort((a, b) => {\n var _links$a2, _links$b2, _tree$sourceA, _tree$sourceB;\n var sourceA = (_links$a2 = links[a]) === null || _links$a2 === void 0 ? void 0 : _links$a2.source;\n var sourceB = (_links$b2 = links[b]) === null || _links$b2 === void 0 ? void 0 : _links$b2.source;\n if (sourceA == null || sourceB == null) {\n return 0;\n }\n var yA = (_tree$sourceA = tree[sourceA]) === null || _tree$sourceA === void 0 ? void 0 : _tree$sourceA.y;\n var yB = (_tree$sourceB = tree[sourceB]) === null || _tree$sourceB === void 0 ? void 0 : _tree$sourceB.y;\n if (yA == null || yB == null) {\n return 0;\n }\n return yA - yB;\n });\n for (var j = 0, tLen = node.targetLinks.length; j < tLen; j++) {\n var targetLink = node.targetLinks[j];\n if (targetLink == null) {\n continue;\n }\n var link = links[targetLink];\n if (link) {\n // @ts-expect-error we should refactor this to immutable\n link.sy = sy;\n sy += link.dy;\n }\n }\n for (var _j2 = 0, sLen = node.sourceLinks.length; _j2 < sLen; _j2++) {\n var sourceLink = node.sourceLinks[_j2];\n if (sourceLink == null) {\n continue;\n }\n var _link = links[sourceLink];\n if (_link) {\n // @ts-expect-error we should refactor this to immutable\n _link.ty = ty;\n ty += _link.dy;\n }\n }\n }\n};\nvar computeData = _ref2 => {\n var {\n data,\n width,\n height,\n iterations,\n nodeWidth,\n nodePadding,\n sort,\n verticalAlign,\n align\n } = _ref2;\n var {\n links\n } = data;\n var {\n tree\n } = getNodesTree(data, width, nodeWidth, align);\n var depthTree = getDepthTree(tree);\n var linksWithDy = updateYOfTree(depthTree, height, nodePadding, links, verticalAlign);\n resolveCollisions(depthTree, height, nodePadding, sort);\n if (verticalAlign === 'justify') {\n var alpha = 1;\n for (var i = 1; i <= iterations; i++) {\n relaxRightToLeft(tree, depthTree, linksWithDy, alpha *= 0.99);\n resolveCollisions(depthTree, height, nodePadding, sort);\n relaxLeftToRight(tree, depthTree, linksWithDy, alpha);\n resolveCollisions(depthTree, height, nodePadding, sort);\n }\n }\n updateYOfLinks(tree, linksWithDy);\n // @ts-expect-error updateYOfLinks modifies the links array to add sy and ty in place\n var newLinks = linksWithDy;\n return {\n nodes: tree,\n links: newLinks\n };\n};\nvar getNodeCoordinateOfTooltip = item => {\n return {\n x: +item.x + +item.width / 2,\n y: +item.y + +item.height / 2\n };\n};\nvar getLinkCoordinateOfTooltip = item => {\n return 'sourceX' in item ? {\n x: (item.sourceX + item.targetX) / 2,\n y: (item.sourceY + item.targetY) / 2\n } : undefined;\n};\nvar getPayloadOfTooltip = (item, type, nameKey) => {\n var {\n payload\n } = item;\n if (type === 'node') {\n return {\n payload,\n name: getValueByDataKey(payload, nameKey, ''),\n value: getValueByDataKey(payload, 'value')\n };\n }\n if ('source' in payload && payload.source && payload.target) {\n // @ts-expect-error we're sending number indexes as source and target, but getValueByDataKey expects objects\n var sourceName = getValueByDataKey(payload.source, nameKey, '');\n // @ts-expect-error we're sending number indexes as source and target, but getValueByDataKey expects objects\n var targetName = getValueByDataKey(payload.target, nameKey, '');\n return {\n payload,\n name: \"\".concat(sourceName, \" - \").concat(targetName),\n value: getValueByDataKey(payload, 'value')\n };\n }\n return undefined;\n};\nexport var sankeyPayloadSearcher = (_, activeIndex, computedData, nameKey) => {\n if (activeIndex == null || typeof activeIndex !== 'string') {\n return undefined;\n }\n if (computedData == null || typeof computedData !== 'object') {\n return undefined;\n }\n var splitIndex = activeIndex.split('-');\n var [targetType, index] = splitIndex;\n var item = get(computedData, \"\".concat(targetType, \"s[\").concat(index, \"]\"));\n if (item) {\n // @ts-expect-error nameKey type does not match SankeyElementType\n var payload = getPayloadOfTooltip(item, targetType, nameKey);\n return payload;\n }\n return undefined;\n};\nvar options = {\n chartName: 'Sankey',\n defaultTooltipEventType: 'item',\n validateTooltipEventTypes: ['item'],\n tooltipPayloadSearcher: sankeyPayloadSearcher,\n eventEmitter: undefined\n};\nvar SetSankeyTooltipEntrySettings = /*#__PURE__*/React.memo(_ref3 => {\n var {\n dataKey,\n nameKey,\n stroke,\n strokeWidth,\n fill,\n name,\n data,\n id\n } = _ref3;\n var tooltipEntrySettings = {\n dataDefinedOnItem: data,\n getPosition: noop,\n settings: {\n stroke,\n strokeWidth,\n fill,\n dataKey,\n name,\n nameKey,\n hide: false,\n type: undefined,\n color: fill,\n unit: '',\n graphicalItemId: id\n }\n };\n return /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {\n tooltipEntrySettings: tooltipEntrySettings\n });\n});\n\n// TODO: improve types - NodeOptions uses SankeyNode, LinkOptions uses LinkProps. Standardize.\n\nfunction renderLinkItem(option, props) {\n if (/*#__PURE__*/React.isValidElement(option)) {\n return /*#__PURE__*/React.cloneElement(option, props);\n }\n if (typeof option === 'function') {\n return option(props);\n }\n var {\n sourceX,\n sourceY,\n sourceControlX,\n targetX,\n targetY,\n targetControlX,\n linkWidth\n } = props,\n others = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/React.createElement(\"path\", _extends({\n className: \"recharts-sankey-link\",\n d: \"\\n M\".concat(sourceX, \",\").concat(sourceY, \"\\n C\").concat(sourceControlX, \",\").concat(sourceY, \" \").concat(targetControlX, \",\").concat(targetY, \" \").concat(targetX, \",\").concat(targetY, \"\\n \"),\n fill: \"none\",\n stroke: \"#333\",\n strokeWidth: linkWidth,\n strokeOpacity: \"0.2\"\n }, svgPropertiesNoEvents(others)));\n}\nvar buildLinkProps = _ref4 => {\n var {\n link,\n nodes,\n left,\n top,\n i,\n linkContent,\n linkCurvature\n } = _ref4;\n var {\n sy: sourceRelativeY,\n ty: targetRelativeY,\n dy: linkWidth\n } = link;\n var sourceNode = nodes[link.source];\n var targetNode = nodes[link.target];\n if (sourceNode == null || targetNode == null) {\n return undefined;\n }\n var sourceX = sourceNode.x + sourceNode.dx + left;\n var targetX = targetNode.x + left;\n var interpolationFunc = interpolationGenerator(sourceX, targetX);\n var sourceControlX = interpolationFunc(linkCurvature);\n var targetControlX = interpolationFunc(1 - linkCurvature);\n var sourceY = sourceNode.y + sourceRelativeY + linkWidth / 2 + top;\n var targetY = targetNode.y + targetRelativeY + linkWidth / 2 + top;\n var linkProps = _objectSpread({\n sourceX,\n // @ts-expect-error the linkContent from below is contributing unknown props\n targetX,\n sourceY,\n // @ts-expect-error the linkContent from below is contributing unknown props\n targetY,\n sourceControlX,\n targetControlX,\n sourceRelativeY,\n targetRelativeY,\n linkWidth,\n index: i,\n payload: _objectSpread(_objectSpread({}, link), {}, {\n source: sourceNode,\n target: targetNode\n })\n }, svgPropertiesNoEventsFromUnknown(linkContent));\n return linkProps;\n};\nfunction SankeyLinkElement(_ref5) {\n var {\n graphicalItemId,\n props,\n i,\n linkContent,\n onMouseEnter: _onMouseEnter,\n onMouseLeave: _onMouseLeave,\n onClick: _onClick,\n dataKey\n } = _ref5;\n var activeCoordinate = getLinkCoordinateOfTooltip(props);\n var activeIndex = \"link-\".concat(i);\n var dispatch = useAppDispatch();\n var events = {\n onMouseEnter: e => {\n dispatch(setActiveMouseOverItemIndex({\n activeIndex,\n activeDataKey: dataKey,\n activeCoordinate,\n activeGraphicalItemId: graphicalItemId\n }));\n _onMouseEnter(props, e);\n },\n onMouseLeave: e => {\n dispatch(mouseLeaveItem());\n _onMouseLeave(props, e);\n },\n onClick: e => {\n dispatch(setActiveClickItemIndex({\n activeIndex,\n activeDataKey: dataKey,\n activeCoordinate,\n activeGraphicalItemId: graphicalItemId\n }));\n _onClick(props, e);\n }\n };\n return /*#__PURE__*/React.createElement(Layer, events, renderLinkItem(linkContent, props));\n}\nfunction AllSankeyLinkElements(_ref6) {\n var {\n graphicalItemId,\n modifiedLinks,\n links,\n linkContent,\n onMouseEnter,\n onMouseLeave,\n onClick,\n dataKey\n } = _ref6;\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-sankey-links\",\n key: \"recharts-sankey-links\"\n }, links.map((link, i) => {\n var linkProps = modifiedLinks[i];\n if (linkProps == null) {\n return null;\n }\n return /*#__PURE__*/React.createElement(SankeyLinkElement, {\n graphicalItemId: graphicalItemId,\n key: \"link-\".concat(link.source, \"-\").concat(link.target, \"-\").concat(link.value),\n props: linkProps,\n linkContent: linkContent,\n i: i,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onClick: onClick,\n dataKey: dataKey\n });\n }));\n}\nfunction renderNodeItem(option, props) {\n if (/*#__PURE__*/React.isValidElement(option)) {\n return /*#__PURE__*/React.cloneElement(option, props);\n }\n if (typeof option === 'function') {\n return option(props);\n }\n return (\n /*#__PURE__*/\n // @ts-expect-error recharts radius is not compatible with SVG radius\n React.createElement(Rectangle, _extends({\n className: \"recharts-sankey-node\",\n fill: \"#0088fe\",\n fillOpacity: \"0.8\"\n }, svgPropertiesNoEvents(props)))\n );\n}\nvar buildNodeProps = _ref7 => {\n var {\n node,\n nodeContent,\n top,\n left,\n i\n } = _ref7;\n var {\n x,\n y,\n dx,\n dy\n } = node;\n // @ts-expect-error nodeContent is passing in unknown props\n var nodeProps = _objectSpread(_objectSpread({}, svgPropertiesNoEventsFromUnknown(nodeContent)), {}, {\n x: x + left,\n y: y + top,\n width: dx,\n height: dy,\n index: i,\n payload: node\n });\n return nodeProps;\n};\nfunction NodeElement(_ref8) {\n var {\n graphicalItemId,\n props,\n nodeContent,\n i,\n onMouseEnter: _onMouseEnter2,\n onMouseLeave: _onMouseLeave2,\n onClick: _onClick2,\n dataKey\n } = _ref8;\n var dispatch = useAppDispatch();\n var activeCoordinate = getNodeCoordinateOfTooltip(props);\n var activeIndex = \"node-\".concat(i);\n var events = {\n onMouseEnter: e => {\n dispatch(setActiveMouseOverItemIndex({\n activeIndex,\n activeDataKey: dataKey,\n activeCoordinate,\n activeGraphicalItemId: graphicalItemId\n }));\n _onMouseEnter2(props, e);\n },\n onMouseLeave: e => {\n dispatch(mouseLeaveItem());\n _onMouseLeave2(props, e);\n },\n onClick: e => {\n dispatch(setActiveClickItemIndex({\n activeIndex,\n activeDataKey: dataKey,\n activeCoordinate,\n activeGraphicalItemId: graphicalItemId\n }));\n _onClick2(props, e);\n }\n };\n return /*#__PURE__*/React.createElement(Layer, events, renderNodeItem(nodeContent, props));\n}\nfunction AllNodeElements(_ref9) {\n var {\n graphicalItemId,\n modifiedNodes,\n nodeContent,\n onMouseEnter,\n onMouseLeave,\n onClick,\n dataKey\n } = _ref9;\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-sankey-nodes\",\n key: \"recharts-sankey-nodes\"\n }, modifiedNodes.map((modifiedNode, i) => {\n return /*#__PURE__*/React.createElement(NodeElement, {\n graphicalItemId: graphicalItemId,\n key: \"node-\".concat(modifiedNode.index, \"-\").concat(modifiedNode.x, \"-\").concat(modifiedNode.y),\n props: modifiedNode,\n nodeContent: nodeContent,\n i: i,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onClick: onClick,\n dataKey: dataKey\n });\n }));\n}\nexport var sankeyDefaultProps = _objectSpread({\n align: 'justify',\n dataKey: 'value',\n iterations: 32,\n linkCurvature: 0.5,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n nameKey: 'name',\n nodePadding: 10,\n nodeWidth: 10,\n sort: true,\n verticalAlign: 'justify'\n}, initialEventSettingsState);\nfunction SankeyImpl(props) {\n var {\n className,\n style,\n children,\n id\n } = props,\n others = _objectWithoutProperties(props, _excluded2);\n var {\n link,\n dataKey,\n node,\n onMouseEnter,\n onMouseLeave,\n onClick,\n data,\n iterations,\n nodeWidth,\n nodePadding,\n sort,\n linkCurvature,\n margin,\n verticalAlign,\n align\n } = props;\n var attrs = svgPropertiesNoEvents(others);\n var width = useChartWidth();\n var height = useChartHeight();\n var {\n links,\n modifiedLinks,\n modifiedNodes\n } = useMemo(() => {\n var _margin$left, _margin$right, _margin$top, _margin$bottom;\n if (!data || !width || !height || width <= 0 || height <= 0) {\n return {\n nodes: [],\n links: [],\n modifiedLinks: [],\n modifiedNodes: []\n };\n }\n var contentWidth = width - ((_margin$left = margin.left) !== null && _margin$left !== void 0 ? _margin$left : 0) - ((_margin$right = margin.right) !== null && _margin$right !== void 0 ? _margin$right : 0);\n var contentHeight = height - ((_margin$top = margin.top) !== null && _margin$top !== void 0 ? _margin$top : 0) - ((_margin$bottom = margin.bottom) !== null && _margin$bottom !== void 0 ? _margin$bottom : 0);\n var computed = computeData({\n data,\n width: contentWidth,\n height: contentHeight,\n iterations,\n nodeWidth,\n nodePadding,\n sort,\n verticalAlign,\n align\n });\n var top = margin.top || 0;\n var left = margin.left || 0;\n var newModifiedLinks = computed.links.map((l, i) => {\n return buildLinkProps({\n link: l,\n nodes: computed.nodes,\n i,\n top,\n left,\n linkContent: link,\n linkCurvature\n });\n }).filter(isNotNil);\n var newModifiedNodes = computed.nodes.map((n, i) => {\n return buildNodeProps({\n node: n,\n nodeContent: node,\n i,\n top,\n left\n });\n });\n return {\n nodes: computed.nodes,\n links: computed.links,\n modifiedLinks: newModifiedLinks,\n modifiedNodes: newModifiedNodes\n };\n }, [data, width, height, margin, iterations, nodeWidth, nodePadding, sort, link, node, linkCurvature, align, verticalAlign]);\n var handleMouseEnter = useCallback((item, type, e) => {\n if (onMouseEnter) {\n onMouseEnter(item, type, e);\n }\n }, [onMouseEnter]);\n var handleMouseLeave = useCallback((item, type, e) => {\n if (onMouseLeave) {\n onMouseLeave(item, type, e);\n }\n }, [onMouseLeave]);\n var handleClick = useCallback((item, type, e) => {\n if (onClick) {\n onClick(item, type, e);\n }\n }, [onClick]);\n if (!isPositiveNumber(width) || !isPositiveNumber(height) || !data || !data.links || !data.nodes) {\n return null;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetComputedData, {\n computedData: {\n links: modifiedLinks,\n nodes: modifiedNodes\n }\n }), /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height\n }), children, /*#__PURE__*/React.createElement(AllSankeyLinkElements, {\n graphicalItemId: id,\n links: links,\n modifiedLinks: modifiedLinks,\n linkContent: link,\n dataKey: dataKey,\n onMouseEnter: (linkProps, e) => handleMouseEnter(linkProps, 'link', e),\n onMouseLeave: (linkProps, e) => handleMouseLeave(linkProps, 'link', e),\n onClick: (linkProps, e) => handleClick(linkProps, 'link', e)\n }), /*#__PURE__*/React.createElement(AllNodeElements, {\n graphicalItemId: id,\n modifiedNodes: modifiedNodes,\n nodeContent: node,\n dataKey: dataKey,\n onMouseEnter: (nodeProps, e) => handleMouseEnter(nodeProps, 'node', e),\n onMouseLeave: (nodeProps, e) => handleMouseLeave(nodeProps, 'node', e),\n onClick: (nodeProps, e) => handleClick(nodeProps, 'node', e)\n })));\n}\n\n/**\n * Flow diagram in which the width of the arrows is proportional to the flow rate.\n * It is typically used to visualize energy or material or cost transfers between processes.\n *\n * @consumes ResponsiveContainerContext\n * @provides TooltipEntrySettings\n */\nexport function Sankey(outsideProps) {\n var props = resolveDefaultProps(outsideProps, sankeyDefaultProps);\n var {\n width,\n height,\n style,\n className,\n id: externalId,\n throttleDelay,\n throttledEvents\n } = props;\n var [tooltipPortal, setTooltipPortal] = useState(null);\n return /*#__PURE__*/React.createElement(RechartsStoreProvider, {\n preloadedState: {\n options\n },\n reduxStoreName: className !== null && className !== void 0 ? className : 'Sankey'\n }, /*#__PURE__*/React.createElement(ReportChartSize, {\n width: width,\n height: height\n }), /*#__PURE__*/React.createElement(ReportChartMargin, {\n margin: props.margin\n }), /*#__PURE__*/React.createElement(ReportEventSettings, {\n throttleDelay: throttleDelay,\n throttledEvents: throttledEvents\n }), /*#__PURE__*/React.createElement(RechartsWrapper, {\n className: className,\n style: style,\n width: width,\n height: height\n /*\n * Sankey, same as Treemap, suffers from overfilling the container\n * and causing infinite render loops where the chart keeps growing.\n */,\n responsive: false,\n ref: node => {\n if (node && !tooltipPortal) {\n setTooltipPortal(node);\n }\n },\n onMouseEnter: undefined,\n onMouseLeave: undefined,\n onClick: undefined,\n onMouseMove: undefined,\n onMouseDown: undefined,\n onMouseUp: undefined,\n onContextMenu: undefined,\n onDoubleClick: undefined,\n onTouchStart: undefined,\n onTouchMove: undefined,\n onTouchEnd: undefined\n }, /*#__PURE__*/React.createElement(TooltipPortalContext.Provider, {\n value: tooltipPortal\n }, /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {\n id: externalId,\n type: \"sankey\"\n }, id => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetSankeyTooltipEntrySettings, {\n dataKey: props.dataKey,\n nameKey: props.nameKey,\n stroke: props.stroke,\n strokeWidth: props.strokeWidth,\n fill: props.fill,\n name: props.name,\n data: props.data,\n id: id\n }), /*#__PURE__*/React.createElement(SankeyImpl, _extends({}, props, {\n id: id\n })))))));\n}\nSankey.displayName = 'Sankey';", "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 { forwardRef } from 'react';\nimport { arrayTooltipSearcher } from '../state/optionsSlice';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { defaultPolarChartProps, PolarChart } from './PolarChart';\nvar allowedTooltipTypes = ['axis'];\nexport var defaultRadarChartProps = _objectSpread(_objectSpread({}, defaultPolarChartProps), {}, {\n layout: 'centric',\n startAngle: 90,\n endAngle: -270\n});\n/**\n * @consumes ResponsiveContainerContext\n * @provides PolarViewBoxContext\n * @provides PolarChartContext\n */\nexport var RadarChart = /*#__PURE__*/forwardRef((props, ref) => {\n var propsWithDefaults = resolveDefaultProps(props, defaultRadarChartProps);\n return /*#__PURE__*/React.createElement(PolarChart, {\n chartName: \"RadarChart\",\n defaultTooltipEventType: \"axis\",\n validateTooltipEventTypes: allowedTooltipTypes,\n tooltipPayloadSearcher: arrayTooltipSearcher,\n categoricalChartProps: propsWithDefaults,\n ref: ref\n });\n});", "import * as React from 'react';\nimport { forwardRef } from 'react';\nimport { arrayTooltipSearcher } from '../state/optionsSlice';\nimport { CartesianChart } from './CartesianChart';\nvar allowedTooltipTypes = ['item'];\n\n/**\n * @consumes ResponsiveContainerContext\n * @provides CartesianViewBoxContext\n * @provides CartesianChartContext\n */\nexport var ScatterChart = /*#__PURE__*/forwardRef((props, ref) => {\n return /*#__PURE__*/React.createElement(CartesianChart, {\n chartName: \"ScatterChart\",\n defaultTooltipEventType: \"item\",\n validateTooltipEventTypes: allowedTooltipTypes,\n tooltipPayloadSearcher: arrayTooltipSearcher,\n categoricalChartProps: props,\n ref: ref\n });\n});", "import * as React from 'react';\nimport { forwardRef } from 'react';\nimport { arrayTooltipSearcher } from '../state/optionsSlice';\nimport { CartesianChart } from './CartesianChart';\nvar allowedTooltipTypes = ['axis'];\n\n/**\n * @consumes ResponsiveContainerContext\n * @provides CartesianViewBoxContext\n * @provides CartesianChartContext\n */\nexport var AreaChart = /*#__PURE__*/forwardRef((props, ref) => {\n return /*#__PURE__*/React.createElement(CartesianChart, {\n chartName: \"AreaChart\",\n defaultTooltipEventType: \"axis\",\n validateTooltipEventTypes: allowedTooltipTypes,\n tooltipPayloadSearcher: arrayTooltipSearcher,\n categoricalChartProps: props,\n ref: ref\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 { forwardRef } from 'react';\nimport { arrayTooltipSearcher } from '../state/optionsSlice';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { defaultPolarChartProps, PolarChart } from './PolarChart';\nvar allowedTooltipTypes = ['axis', 'item'];\nexport var defaultRadialBarChartProps = _objectSpread(_objectSpread({}, defaultPolarChartProps), {}, {\n layout: 'radial',\n startAngle: 0,\n endAngle: 360\n});\n\n/**\n * @consumes ResponsiveContainerContext\n * @provides PolarViewBoxContext\n * @provides PolarChartContext\n */\nexport var RadialBarChart = /*#__PURE__*/forwardRef((props, ref) => {\n var propsWithDefaults = resolveDefaultProps(props, defaultRadialBarChartProps);\n return /*#__PURE__*/React.createElement(PolarChart, {\n chartName: \"RadialBarChart\",\n defaultTooltipEventType: \"axis\",\n validateTooltipEventTypes: allowedTooltipTypes,\n tooltipPayloadSearcher: arrayTooltipSearcher,\n categoricalChartProps: propsWithDefaults,\n ref: ref\n });\n});", "import * as React from 'react';\nimport { forwardRef } from 'react';\nimport { arrayTooltipSearcher } from '../state/optionsSlice';\nimport { CartesianChart } from './CartesianChart';\nvar allowedTooltipTypes = ['axis'];\n\n/**\n * @consumes ResponsiveContainerContext\n * @provides CartesianViewBoxContext\n * @provides CartesianChartContext\n */\nexport var ComposedChart = /*#__PURE__*/forwardRef((props, ref) => {\n return /*#__PURE__*/React.createElement(CartesianChart, {\n chartName: \"ComposedChart\",\n defaultTooltipEventType: \"axis\",\n validateTooltipEventTypes: allowedTooltipTypes,\n tooltipPayloadSearcher: arrayTooltipSearcher,\n categoricalChartProps: props,\n ref: ref\n });\n});", "function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport * as React from 'react';\nimport { useState } from 'react';\nimport { scaleLinear } from 'victory-vendor/d3-scale';\nimport { clsx } from 'clsx';\nimport get from 'es-toolkit/compat/get';\nimport { Surface } from '../container/Surface';\nimport { Layer } from '../container/Layer';\nimport { Sector } from '../shape/Sector';\nimport { Text } from '../component/Text';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { ReportChartMargin, ReportChartSize, useChartHeight, useChartWidth } from '../context/chartLayoutContext';\nimport { TooltipPortalContext } from '../context/tooltipPortalContext';\nimport { RechartsWrapper } from './RechartsWrapper';\nimport { mouseLeaveItem, setActiveClickItemIndex, setActiveMouseOverItemIndex } from '../state/tooltipSlice';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { RechartsStoreProvider } from '../state/RechartsStoreProvider';\nimport { ReportEventSettings } from '../state/ReportEventSettings';\nimport { useAppDispatch } from '../state/hooks';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { initialEventSettingsState } from '../state/eventSettingsSlice';\n\n/**\n * We require tooltipIndex on each node internally to track which node is active in the tooltip.\n * This is not required from the outside user - we can calculate it as we traverse the tree.\n */\n\nvar defaultTextProps = {\n fontWeight: 'bold',\n paintOrder: 'stroke fill',\n fontSize: '.75rem',\n stroke: '#FFF',\n fill: 'black',\n pointerEvents: 'none'\n};\nfunction getMaxDepthOf(node) {\n if (!node.children || node.children.length === 0) return 1;\n\n // Calculate depth for each child and find the maximum\n var childDepths = node.children.map(d => getMaxDepthOf(d));\n return 1 + Math.max(...childDepths);\n}\nvar SetSunburstTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {\n var {\n dataKey,\n nameKey,\n data,\n stroke,\n fill,\n positions,\n id\n } = _ref;\n var tooltipEntrySettings = {\n dataDefinedOnItem: data.children,\n getPosition: index => positions.get(index),\n // Sunburst does not support many of the properties as other charts do so there's plenty of defaults here\n settings: {\n stroke,\n strokeWidth: undefined,\n fill,\n nameKey,\n dataKey,\n // if there is a nameKey use it, otherwise make the name of the tooltip the dataKey itself\n name: nameKey ? undefined : dataKey,\n hide: false,\n type: undefined,\n color: fill,\n unit: '',\n graphicalItemId: id\n }\n };\n return /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {\n tooltipEntrySettings: tooltipEntrySettings\n });\n});\n\n// Why is margin not a sunburst prop? No clue. Probably it should be\nvar defaultSunburstMargin = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\nexport var payloadSearcher = (data, activeIndex) => {\n if (activeIndex == null) {\n return undefined;\n }\n return get(data, activeIndex);\n};\nvar addToSunburstNodeIndex = function addToSunburstNodeIndex(indexInChildrenArr) {\n var activeTooltipIndexSoFar = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return \"\".concat(activeTooltipIndexSoFar, \"children[\").concat(indexInChildrenArr, \"]\");\n};\nvar preloadedState = {\n options: {\n validateTooltipEventTypes: ['item'],\n defaultTooltipEventType: 'item',\n chartName: 'Sunburst',\n tooltipPayloadSearcher: payloadSearcher,\n eventEmitter: undefined\n }\n};\nexport var defaultSunburstChartProps = _objectSpread({\n padding: 2,\n dataKey: 'value',\n nameKey: 'name',\n ringPadding: 2,\n innerRadius: 50,\n fill: '#333',\n stroke: '#FFF',\n textOptions: defaultTextProps,\n startAngle: 0,\n endAngle: 360,\n responsive: false\n}, initialEventSettingsState);\nvar SunburstChartImpl = _ref2 => {\n var {\n className,\n data,\n children,\n padding,\n dataKey,\n nameKey,\n ringPadding,\n innerRadius,\n fill,\n stroke,\n textOptions,\n outerRadius: outerRadiusFromProps,\n cx: cxFromProps,\n cy: cyFromProps,\n startAngle,\n endAngle,\n onClick,\n onMouseEnter,\n onMouseLeave,\n id\n } = _ref2;\n var dispatch = useAppDispatch();\n var width = useChartWidth();\n var height = useChartHeight();\n if (width == null || height == null) {\n return null;\n }\n var outerRadius = outerRadiusFromProps !== null && outerRadiusFromProps !== void 0 ? outerRadiusFromProps : Math.min(width, height) / 2;\n var cx = cxFromProps !== null && cxFromProps !== void 0 ? cxFromProps : width / 2;\n var cy = cyFromProps !== null && cyFromProps !== void 0 ? cyFromProps : height / 2;\n var rScale = scaleLinear([0, data[dataKey]], [0, endAngle]);\n var treeDepth = getMaxDepthOf(data);\n var thickness = (outerRadius - innerRadius) / treeDepth;\n var sectors = [];\n var positions = new Map([]);\n\n // event handlers\n function handleMouseEnter(node, e) {\n if (onMouseEnter) onMouseEnter(node, e);\n dispatch(setActiveMouseOverItemIndex({\n activeIndex: node.tooltipIndex,\n activeDataKey: dataKey,\n activeCoordinate: positions.get(node.name),\n activeGraphicalItemId: id\n }));\n }\n function handleMouseLeave(node, e) {\n if (onMouseLeave) onMouseLeave(node, e);\n dispatch(mouseLeaveItem());\n }\n function handleClick(node) {\n if (onClick) onClick(node);\n dispatch(setActiveClickItemIndex({\n activeIndex: node.tooltipIndex,\n activeDataKey: dataKey,\n activeCoordinate: positions.get(node.name),\n activeGraphicalItemId: id\n }));\n }\n\n // recursively add nodes for each data point and its children\n function drawArcs(childNodes, options) {\n var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var {\n radius,\n innerR,\n initialAngle,\n childColor,\n nestedActiveTooltipIndex\n } = options;\n var currentAngle = initialAngle;\n if (!childNodes) return; // base case: no children of this node\n\n childNodes.forEach((d, i) => {\n var _ref3, _d$fill;\n var currentTooltipIndex = depth === 1 ? \"[\".concat(i, \"]\") : addToSunburstNodeIndex(i, nestedActiveTooltipIndex);\n var nodeWithIndex = _objectSpread(_objectSpread({}, d), {}, {\n tooltipIndex: currentTooltipIndex\n });\n var arcLength = rScale(d[dataKey]);\n var start = currentAngle;\n // color priority - if there's a color on the individual point use that, otherwise use parent color or default\n var fillColor = (_ref3 = (_d$fill = d === null || d === void 0 ? void 0 : d.fill) !== null && _d$fill !== void 0 ? _d$fill : childColor) !== null && _ref3 !== void 0 ? _ref3 : fill;\n var {\n x: textX,\n y: textY\n } = polarToCartesian(0, 0, innerR + radius / 2, -(start + arcLength - arcLength / 2));\n currentAngle += arcLength;\n sectors.push(/*#__PURE__*/React.createElement(\"g\", {\n key: \"sunburst-sector-\".concat(d.name, \"-\").concat(i)\n }, /*#__PURE__*/React.createElement(Sector, {\n onClick: () => handleClick(nodeWithIndex),\n onMouseEnter: e => handleMouseEnter(nodeWithIndex, e),\n onMouseLeave: e => handleMouseLeave(nodeWithIndex, e),\n fill: fillColor,\n stroke: stroke,\n strokeWidth: padding,\n startAngle: start,\n endAngle: start + arcLength,\n innerRadius: innerR,\n outerRadius: innerR + radius,\n cx: cx,\n cy: cy\n }), /*#__PURE__*/React.createElement(Text, _extends({}, textOptions, {\n alignmentBaseline: \"middle\",\n textAnchor: \"middle\",\n x: textX + cx,\n y: cy - textY\n }), d[dataKey])));\n var {\n x: tooltipX,\n y: tooltipY\n } = polarToCartesian(cx, cy, innerR + radius / 2, start);\n positions.set(d.name, {\n x: tooltipX,\n y: tooltipY\n });\n return drawArcs(d.children, {\n radius,\n innerR: innerR + radius + ringPadding,\n initialAngle: start,\n childColor: fillColor,\n nestedActiveTooltipIndex: currentTooltipIndex\n }, depth + 1);\n });\n }\n drawArcs(data.children, {\n radius: thickness,\n innerR: innerRadius,\n initialAngle: startAngle\n });\n var layerClass = clsx('recharts-sunburst', className);\n return /*#__PURE__*/React.createElement(Surface, {\n width: width,\n height: height\n }, /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, sectors), /*#__PURE__*/React.createElement(SetSunburstTooltipEntrySettings, {\n dataKey: dataKey,\n nameKey: nameKey,\n data: data,\n stroke: stroke,\n fill: fill,\n positions: positions,\n id: id\n }), children);\n};\n\n/**\n * The sunburst is a hierarchical chart, similar to a {@link Treemap}, plotted in polar coordinates.\n * Sunburst charts effectively convey the hierarchical relationships and proportions within each level.\n * It is easy to see all the middle layers in the hierarchy, which might get lost in other visualizations.\n * For some datasets, the radial layout may be more visually appealing and intuitive than a traditional {@link Treemap}.\n *\n * @consumes ResponsiveContainerContext\n * @provides TooltipEntrySettings\n */\nexport var SunburstChart = outsideProps => {\n var props = resolveDefaultProps(outsideProps, defaultSunburstChartProps);\n var {\n className,\n width,\n height,\n responsive,\n style,\n id: externalId,\n throttleDelay,\n throttledEvents\n } = props;\n var [tooltipPortal, setTooltipPortal] = useState(null);\n return /*#__PURE__*/React.createElement(RechartsStoreProvider, {\n preloadedState: preloadedState,\n reduxStoreName: className !== null && className !== void 0 ? className : 'SunburstChart'\n }, /*#__PURE__*/React.createElement(ReportChartSize, {\n width: width,\n height: height\n }), /*#__PURE__*/React.createElement(ReportChartMargin, {\n margin: defaultSunburstMargin\n }), /*#__PURE__*/React.createElement(ReportEventSettings, {\n throttleDelay: throttleDelay,\n throttledEvents: throttledEvents\n }), /*#__PURE__*/React.createElement(TooltipPortalContext.Provider, {\n value: tooltipPortal\n }, /*#__PURE__*/React.createElement(RechartsWrapper, {\n className: className,\n width: width,\n height: height,\n responsive: responsive,\n style: style,\n ref: node => {\n if (tooltipPortal == null && node != null) {\n setTooltipPortal(node);\n }\n },\n onMouseEnter: undefined,\n onMouseLeave: undefined,\n onClick: undefined,\n onMouseMove: undefined,\n onMouseDown: undefined,\n onMouseUp: undefined,\n onContextMenu: undefined,\n onDoubleClick: undefined,\n onTouchStart: undefined,\n onTouchMove: undefined,\n onTouchEnd: undefined\n }, /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {\n id: externalId,\n type: \"sunburst\"\n }, id => /*#__PURE__*/React.createElement(SunburstChartImpl, _extends({}, props, {\n id: id\n }))))));\n};", "var _excluded = [\"onMouseEnter\", \"onClick\", \"onMouseLeave\", \"shape\", \"activeShape\"],\n _excluded2 = [\"id\"],\n _excluded3 = [\"stroke\", \"fill\", \"legendType\", \"hide\", \"isAnimationActive\", \"animationBegin\", \"animationDuration\", \"animationEasing\", \"nameKey\", \"lastShapeType\", \"id\"],\n _excluded4 = [\"id\"];\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; }\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 { useCallback, useMemo, useRef, useState } from 'react';\nimport omit from 'es-toolkit/compat/omit';\nimport { clsx } from 'clsx';\nimport { selectActiveIndex } from '../state/selectors/selectors';\nimport { useAppSelector } from '../state/hooks';\nimport { Layer } from '../container/Layer';\nimport { CartesianLabelListContextProvider, LabelListFromLabelProp } from '../component/LabelList';\nimport { getPercentValue, interpolate } from '../util/DataUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { FunnelTrapezoid } from '../util/FunnelUtils';\nimport { useMouseClickItemDispatch, useMouseEnterItemDispatch, useMouseLeaveItemDispatch } from '../context/tooltipContext';\nimport { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';\nimport { selectFunnelTrapezoids } from '../state/selectors/funnelSelectors';\nimport { findAllByType } from '../util/ReactUtils';\nimport { Cell } from '../component/Cell';\nimport { resolveDefaultProps } from '../util/resolveDefaultProps';\nimport { usePlotArea } from '../hooks';\nimport { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';\nimport { JavascriptAnimate } from '../animation/JavascriptAnimate';\nimport { useAnimationId } from '../util/useAnimationId';\nimport { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';\n\n/**\n * Internal props, combination of external props + defaultProps + private Recharts state\n */\n\n/**\n * External props, intended for end users to fill in\n */\n\nvar SetFunnelTooltipEntrySettings = /*#__PURE__*/React.memo(_ref => {\n var {\n dataKey,\n nameKey,\n stroke,\n strokeWidth,\n fill,\n name,\n hide,\n tooltipType,\n data,\n trapezoids,\n id\n } = _ref;\n var tooltipEntrySettings = {\n dataDefinedOnItem: data,\n getPosition: index => {\n var _trapezoids$Number;\n return (_trapezoids$Number = trapezoids[Number(index)]) === null || _trapezoids$Number === void 0 ? void 0 : _trapezoids$Number.tooltipPosition;\n },\n settings: {\n stroke,\n strokeWidth,\n fill,\n dataKey,\n name,\n nameKey,\n hide,\n type: tooltipType,\n color: fill,\n unit: '',\n // Funnel does not have unit, why?\n graphicalItemId: id\n }\n };\n return /*#__PURE__*/React.createElement(SetTooltipEntrySettings, {\n tooltipEntrySettings: tooltipEntrySettings\n });\n});\nfunction FunnelLabelListProvider(_ref2) {\n var {\n showLabels,\n trapezoids,\n children\n } = _ref2;\n var labelListEntries = useMemo(() => {\n if (!showLabels) {\n return undefined;\n }\n return trapezoids === null || trapezoids === void 0 ? void 0 : trapezoids.map(entry => {\n var viewBox = entry.labelViewBox;\n return _objectSpread(_objectSpread({}, viewBox), {}, {\n value: entry.name,\n payload: entry.payload,\n parentViewBox: entry.parentViewBox,\n viewBox,\n fill: entry.fill\n });\n });\n }, [showLabels, trapezoids]);\n return /*#__PURE__*/React.createElement(CartesianLabelListContextProvider, {\n value: labelListEntries\n }, children);\n}\nfunction FunnelTrapezoids(props) {\n var {\n trapezoids,\n allOtherFunnelProps\n } = props;\n var activeItemIndex = useAppSelector(state => selectActiveIndex(state, 'item', state.tooltip.settings.trigger, undefined));\n var {\n onMouseEnter: onMouseEnterFromProps,\n onClick: onItemClickFromProps,\n onMouseLeave: onMouseLeaveFromProps,\n shape,\n activeShape\n } = allOtherFunnelProps,\n restOfAllOtherProps = _objectWithoutProperties(allOtherFunnelProps, _excluded);\n var onMouseEnterFromContext = useMouseEnterItemDispatch(onMouseEnterFromProps, allOtherFunnelProps.dataKey, allOtherFunnelProps.id);\n var onMouseLeaveFromContext = useMouseLeaveItemDispatch(onMouseLeaveFromProps);\n var onClickFromContext = useMouseClickItemDispatch(onItemClickFromProps, allOtherFunnelProps.dataKey, allOtherFunnelProps.id);\n return /*#__PURE__*/React.createElement(React.Fragment, null, trapezoids.map((entry, i) => {\n var isActiveIndex = Boolean(activeShape) && activeItemIndex === String(i);\n var trapezoidOptions = isActiveIndex ? activeShape : shape;\n var _entry$option$isActiv = _objectSpread(_objectSpread({}, entry), {}, {\n option: trapezoidOptions,\n isActive: isActiveIndex,\n stroke: entry.stroke\n }),\n {\n id\n } = _entry$option$isActiv,\n trapezoidProps = _objectWithoutProperties(_entry$option$isActiv, _excluded2);\n return /*#__PURE__*/React.createElement(Layer, _extends({\n key: \"trapezoid-\".concat(entry === null || entry === void 0 ? void 0 : entry.x, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.y, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.name, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.value),\n className: \"recharts-funnel-trapezoid\"\n }, adaptEventsOfChild(restOfAllOtherProps, entry, i), {\n onMouseEnter: onMouseEnterFromContext(entry, i),\n onMouseLeave: onMouseLeaveFromContext(entry, i),\n onClick: onClickFromContext(entry, i)\n }), /*#__PURE__*/React.createElement(FunnelTrapezoid, trapezoidProps));\n }));\n}\nfunction TrapezoidsWithAnimation(_ref3) {\n var {\n previousTrapezoidsRef,\n props\n } = _ref3;\n var {\n trapezoids,\n isAnimationActive,\n animationBegin,\n animationDuration,\n animationEasing,\n onAnimationEnd,\n onAnimationStart\n } = props;\n var prevTrapezoids = previousTrapezoidsRef.current;\n var [isAnimating, setIsAnimating] = useState(false);\n var showLabels = !isAnimating;\n var animationId = useAnimationId(trapezoids, 'recharts-funnel-');\n var handleAnimationEnd = useCallback(() => {\n if (typeof onAnimationEnd === 'function') {\n onAnimationEnd();\n }\n setIsAnimating(false);\n }, [onAnimationEnd]);\n var handleAnimationStart = useCallback(() => {\n if (typeof onAnimationStart === 'function') {\n onAnimationStart();\n }\n setIsAnimating(true);\n }, [onAnimationStart]);\n return /*#__PURE__*/React.createElement(FunnelLabelListProvider, {\n showLabels: showLabels,\n trapezoids: trapezoids\n }, /*#__PURE__*/React.createElement(JavascriptAnimate, {\n animationId: animationId,\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n key: animationId,\n onAnimationStart: handleAnimationStart,\n onAnimationEnd: handleAnimationEnd\n }, t => {\n var stepData = t === 1 ? trapezoids : trapezoids.map((entry, index) => {\n var prev = prevTrapezoids && prevTrapezoids[index];\n if (prev) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolate(prev.x, entry.x, t),\n y: interpolate(prev.y, entry.y, t),\n upperWidth: interpolate(prev.upperWidth, entry.upperWidth, t),\n lowerWidth: interpolate(prev.lowerWidth, entry.lowerWidth, t),\n height: interpolate(prev.height, entry.height, t)\n });\n }\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolate(entry.x + entry.upperWidth / 2, entry.x, t),\n y: interpolate(entry.y + entry.height / 2, entry.y, t),\n upperWidth: interpolate(0, entry.upperWidth, t),\n lowerWidth: interpolate(0, entry.lowerWidth, t),\n height: interpolate(0, entry.height, t)\n });\n });\n if (t > 0) {\n // eslint-disable-next-line no-param-reassign\n previousTrapezoidsRef.current = stepData;\n }\n return /*#__PURE__*/React.createElement(Layer, null, /*#__PURE__*/React.createElement(FunnelTrapezoids, {\n trapezoids: stepData,\n allOtherFunnelProps: props\n }));\n }), /*#__PURE__*/React.createElement(LabelListFromLabelProp, {\n label: props.label\n }), props.children);\n}\nfunction RenderTrapezoids(props) {\n var previousTrapezoidsRef = useRef(undefined);\n return /*#__PURE__*/React.createElement(TrapezoidsWithAnimation, {\n props: props,\n previousTrapezoidsRef: previousTrapezoidsRef\n });\n}\nvar getRealWidthHeight = (customWidth, offset) => {\n var {\n width,\n height,\n left,\n top\n } = offset;\n var realWidth = getPercentValue(customWidth, width, width);\n return {\n realWidth,\n realHeight: height,\n offsetX: left,\n offsetY: top\n };\n};\nexport var defaultFunnelProps = {\n animationBegin: 400,\n animationDuration: 1500,\n animationEasing: 'ease',\n fill: '#808080',\n hide: false,\n isAnimationActive: 'auto',\n lastShapeType: 'triangle',\n legendType: 'rect',\n nameKey: 'name',\n reversed: false,\n stroke: '#fff'\n};\nfunction FunnelImpl(props) {\n var plotArea = usePlotArea();\n var {\n stroke,\n fill,\n legendType,\n hide,\n isAnimationActive,\n animationBegin,\n animationDuration,\n animationEasing,\n nameKey,\n lastShapeType,\n id\n } = props,\n everythingElse = _objectWithoutProperties(props, _excluded3);\n var presentationProps = svgPropertiesNoEvents(props);\n var cells = findAllByType(props.children, Cell);\n var funnelSettings = useMemo(() => ({\n dataKey: props.dataKey,\n nameKey,\n data: props.data,\n tooltipType: props.tooltipType,\n lastShapeType,\n reversed: props.reversed,\n customWidth: props.width,\n cells,\n presentationProps,\n id\n }), [props.dataKey, nameKey, props.data, props.tooltipType, lastShapeType, props.reversed, props.width, cells, presentationProps, id]);\n var trapezoids = useAppSelector(state => selectFunnelTrapezoids(state, funnelSettings));\n if (hide || !trapezoids || !trapezoids.length || !plotArea) {\n return null;\n }\n var {\n height,\n width\n } = plotArea;\n var layerClass = clsx('recharts-trapezoids', props.className);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SetFunnelTooltipEntrySettings, {\n dataKey: props.dataKey,\n nameKey: props.nameKey,\n stroke: props.stroke,\n strokeWidth: props.strokeWidth,\n fill: props.fill,\n name: props.name,\n hide: props.hide,\n tooltipType: props.tooltipType,\n data: props.data,\n trapezoids: trapezoids,\n id: id\n }), /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, /*#__PURE__*/React.createElement(RenderTrapezoids, _extends({}, everythingElse, {\n id: id,\n stroke: stroke,\n fill: fill,\n nameKey: nameKey,\n lastShapeType: lastShapeType,\n animationBegin: animationBegin,\n animationDuration: animationDuration,\n animationEasing: animationEasing,\n isAnimationActive: isAnimationActive,\n hide: hide,\n legendType: legendType,\n height: height,\n width: width,\n trapezoids: trapezoids\n }))));\n}\nexport function computeFunnelTrapezoids(_ref4) {\n var {\n dataKey,\n nameKey,\n displayedData,\n tooltipType,\n lastShapeType,\n reversed,\n offset,\n customWidth,\n graphicalItemId\n } = _ref4;\n var {\n realHeight,\n realWidth,\n offsetX,\n offsetY\n } = getRealWidthHeight(customWidth, offset);\n var values = displayedData.map(entry => {\n var val = getValueByDataKey(entry, dataKey, 0);\n return typeof val === 'number' ? val : 0;\n });\n var maxValue = Math.max.apply(null, values);\n var len = displayedData.length;\n var rowHeight = realHeight / len;\n var parentViewBox = {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n };\n var trapezoids = displayedData.map((entry, i) => {\n // getValueByDataKey does not validate the output type\n var rawVal = getValueByDataKey(entry, dataKey, 0);\n var name = String(getValueByDataKey(entry, nameKey, i));\n var val = rawVal;\n var nextVal;\n if (i !== len - 1) {\n var nextDataValue = getValueByDataKey(displayedData[i + 1], dataKey, 0);\n if (typeof nextDataValue === 'number') {\n nextVal = nextDataValue;\n } else if (Array.isArray(nextDataValue)) {\n var [first, second] = nextDataValue;\n if (typeof first === 'number') {\n val = first;\n }\n if (typeof second === 'number') {\n nextVal = second;\n }\n }\n } else if (rawVal instanceof Array && rawVal.length === 2) {\n var [_first, _second] = rawVal;\n if (typeof _first === 'number') {\n val = _first;\n }\n if (typeof _second === 'number') {\n nextVal = _second;\n }\n } else if (lastShapeType === 'rectangle') {\n nextVal = val;\n } else {\n nextVal = 0;\n }\n\n // @ts-expect-error this is a problem if we have ranged values because `val` can be an array\n var x = (maxValue - val) * realWidth / (2 * maxValue) + offsetX;\n var y = rowHeight * i + offsetY;\n // @ts-expect-error getValueByDataKey does not validate the output type\n var upperWidth = val / maxValue * realWidth;\n // @ts-expect-error nextVal could be an array\n var lowerWidth = nextVal / maxValue * realWidth;\n var tooltipPayload = [{\n name,\n value: val,\n payload: entry,\n dataKey,\n type: tooltipType,\n graphicalItemId\n }];\n var tooltipPosition = {\n x: x + upperWidth / 2,\n y: y + rowHeight / 2\n };\n var trapezoidViewBox = {\n x,\n y,\n upperWidth,\n lowerWidth,\n width: Math.max(upperWidth, lowerWidth),\n height: rowHeight\n };\n return _objectSpread(_objectSpread(_objectSpread({}, trapezoidViewBox), {}, {\n name,\n val,\n tooltipPayload,\n tooltipPosition\n }, entry != null && typeof entry === 'object' ? omit(entry, ['width']) : {}), {}, {\n payload: entry,\n parentViewBox,\n labelViewBox: trapezoidViewBox\n });\n });\n if (reversed) {\n trapezoids = trapezoids.map((entry, index) => {\n var reversedViewBox = {\n x: entry.x - (entry.lowerWidth - entry.upperWidth) / 2,\n y: entry.y - index * rowHeight + (len - 1 - index) * rowHeight,\n upperWidth: entry.lowerWidth,\n lowerWidth: entry.upperWidth,\n width: Math.max(entry.lowerWidth, entry.upperWidth),\n height: rowHeight\n };\n return _objectSpread(_objectSpread(_objectSpread({}, entry), reversedViewBox), {}, {\n tooltipPosition: _objectSpread(_objectSpread({}, entry.tooltipPosition), {}, {\n y: entry.y - index * rowHeight + (len - 1 - index) * rowHeight + rowHeight / 2\n }),\n labelViewBox: reversedViewBox\n });\n });\n }\n return trapezoids;\n}\n\n/**\n * @consumes CartesianViewBoxContext\n * @provides LabelListContext\n * @provides CellReader\n */\nfunction FunnelFn(outsideProps) {\n var _resolveDefaultProps = resolveDefaultProps(outsideProps, defaultFunnelProps),\n {\n id: externalId\n } = _resolveDefaultProps,\n props = _objectWithoutProperties(_resolveDefaultProps, _excluded4);\n return /*#__PURE__*/React.createElement(RegisterGraphicalItemId, {\n id: externalId,\n type: \"funnel\"\n }, id => /*#__PURE__*/React.createElement(FunnelImpl, _extends({}, props, {\n id: id\n })));\n}\nexport var Funnel = FunnelFn;\n// @ts-expect-error we need to set the displayName for debugging purposes\nFunnel.displayName = 'Funnel';", "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 { Shape } from './ActiveShapeUtils';\nexport function FunnelTrapezoid(props) {\n return /*#__PURE__*/React.createElement(Shape, _extends({\n shapeType: \"trapezoid\"\n }, props));\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 { computeFunnelTrapezoids } from '../../cartesian/Funnel';\nimport { selectChartOffsetInternal } from './selectChartOffsetInternal';\nimport { selectChartDataAndAlwaysIgnoreIndexes } from './dataSelectors';\nvar pickFunnelSettings = (_state, funnelSettings) => funnelSettings;\nexport var selectFunnelTrapezoids = createSelector([selectChartOffsetInternal, pickFunnelSettings, selectChartDataAndAlwaysIgnoreIndexes], (offset, _ref, _ref2) => {\n var {\n data,\n dataKey,\n nameKey,\n tooltipType,\n lastShapeType,\n reversed,\n customWidth,\n cells,\n presentationProps,\n id: graphicalItemId\n } = _ref;\n var {\n chartData\n } = _ref2;\n var displayedData;\n if (data != null && data.length > 0) {\n displayedData = data;\n } else if (chartData != null && chartData.length > 0) {\n displayedData = chartData;\n }\n if (displayedData && displayedData.length) {\n displayedData = displayedData.map((entry, index) => _objectSpread(_objectSpread(_objectSpread({\n payload: entry\n }, presentationProps), entry), cells && cells[index] && cells[index].props));\n } else if (cells && cells.length) {\n displayedData = cells.map(cell => _objectSpread(_objectSpread({}, presentationProps), cell.props));\n } else {\n return [];\n }\n return computeFunnelTrapezoids({\n dataKey,\n nameKey,\n displayedData,\n tooltipType,\n lastShapeType,\n reversed,\n offset,\n customWidth,\n graphicalItemId\n });\n});", "import * as React from 'react';\nimport { forwardRef } from 'react';\nimport { arrayTooltipSearcher } from '../state/optionsSlice';\nimport { CartesianChart } from './CartesianChart';\nvar allowedTooltipTypes = ['item'];\n\n/**\n * @consumes ResponsiveContainerContext\n * @provides CartesianViewBoxContext\n * @provides CartesianChartContext\n */\nexport var FunnelChart = /*#__PURE__*/forwardRef((props, ref) => {\n return /*#__PURE__*/React.createElement(CartesianChart, {\n chartName: \"FunnelChart\",\n defaultTooltipEventType: \"item\",\n validateTooltipEventTypes: allowedTooltipTypes,\n tooltipPayloadSearcher: arrayTooltipSearcher,\n categoricalChartProps: props,\n ref: ref\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); }\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 { AreaChart as OriginalAreaChart } from '../chart/AreaChart';\nimport { BarChart as OriginalBarChart } from '../chart/BarChart';\nimport { LineChart as OriginalLineChart } from '../chart/LineChart';\nimport { ComposedChart as OriginalComposedChart } from '../chart/ComposedChart';\nimport { ScatterChart as OriginalScatterChart } from '../chart/ScatterChart';\nimport { FunnelChart as OriginalFunnelChart } from '../chart/FunnelChart';\nvar createCartesianCharts = layout => ({\n AreaChart: props => /*#__PURE__*/React.createElement(OriginalAreaChart, _extends({}, props, {\n layout: layout\n })),\n BarChart: props => /*#__PURE__*/React.createElement(OriginalBarChart, _extends({}, props, {\n layout: layout\n })),\n LineChart: props => /*#__PURE__*/React.createElement(OriginalLineChart, _extends({}, props, {\n layout: layout\n })),\n ComposedChart: props => /*#__PURE__*/React.createElement(OriginalComposedChart, _extends({}, props, {\n layout: layout\n })),\n ScatterChart: props => /*#__PURE__*/React.createElement(OriginalScatterChart, _extends({}, props, {\n layout: layout\n }))\n});\n/**\n * Creates a typed context for horizontal Cartesian charts.\n *\n * **Motivation:**\n * Recharts components fall back to `any` by default. While explicit typing using Generics (e.g. `<Area<MyDataType, number>>`)\n * works per-component, it becomes tedious and error-prone across an entire chart.\n *\n * This Chart Helper allows you to perfectly align your data properties and ensure all your charts, axes, and lines work in harmony.\n * Once you define the helper with your generic requirements, all returned components strictly enforce your data structure,\n * catching `dataKey` typos and shape errors early.\n *\n * **Layout Binding:**\n * Curries the chart definition to statically bind the `layout=\"horizontal\"` property at the component level.\n * By stripping `layout` from the configuration options of generated wrapper components, developers avoid accidentally\n * overriding chart alignments. Evaluates `TComponents` generics at compile-time to reject strictly vertical components\n * natively (`Funnel`, `FunnelChart`) from being passed.\n *\n * @example\n * ```tsx\n * // 1. Lock in the Generics: Data = MyData, X-Axis = string, Y-Axis = number\n * const TypedCharts = createHorizontalChart<MyData, string, number>()({\n * AreaChart,\n * Area,\n * XAxis,\n * YAxis,\n * });\n * // 2. TypedCharts.AreaChart is now strictly horizontal.\n * // 3. TypedCharts.Area strictly expects string/number keys matching MyData.\n * ```\n *\n * @since 3.8\n * @see {@link https://recharts.github.io/en-US/guide/typescript/ Guide: Strong typing for Recharts components}\n */\nexport function createHorizontalChart() {\n return function withComponents(components) {\n return _objectSpread(_objectSpread({}, createCartesianCharts('horizontal')), components);\n };\n}\n\n/**\n * Creates a typed context for vertical Cartesian charts.\n *\n * **Motivation:**\n * Recharts components fall back to `any` by default. While explicit typing using Generics (e.g. `<Area<MyDataType, number>>`)\n * works per-component, it becomes tedious and error-prone across an entire chart.\n *\n * This Chart Helper allows you to perfectly align your data properties and ensure all your charts, axes, and lines work in harmony.\n * Once you define the helper with your generic requirements, all returned components strictly enforce your data structure,\n * catching `dataKey` typos and shape errors early.\n *\n * **Layout Binding:**\n * Curries the chart definition to statically bind the `layout=\"vertical\"` property at the component level.\n * By stripping `layout` from the configuration options of generated wrapper components, developers avoid accidentally\n * overriding chart alignments. Natively supports strictly vertical components like `Funnel` and `FunnelChart`.\n *\n * @example\n * ```tsx\n * // 1. Lock in the Generics: Data = MyData, X-Axis = number, Y-Axis = string\n * const TypedCharts = createVerticalChart<MyData, number, string>()({\n * BarChart,\n * Bar,\n * Funnel,\n * XAxis,\n * YAxis,\n * });\n * // 2. TypedCharts.BarChart is now strictly vertical.\n * // 3. `Funnel` evaluates safely inside vertical contexts exclusively and enforces MyData limits.\n * ```\n *\n * @since 3.8\n * @see {@link https://recharts.github.io/en-US/guide/typescript/ Guide: Strong typing for Recharts components}\n */\nexport function createVerticalChart() {\n return function withComponents(components) {\n return _objectSpread(_objectSpread({}, createCartesianCharts('vertical')), {}, {\n FunnelChart: props => /*#__PURE__*/React.createElement(OriginalFunnelChart, _extends({}, props, {\n layout: \"vertical\"\n }))\n }, components);\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 * as React from 'react';\nimport { RadialBarChart as OriginalRadialBarChart } from '../chart/RadialBarChart';\nimport { RadarChart as OriginalRadarChart } from '../chart/RadarChart';\nimport { PieChart as OriginalPieChart } from '../chart/PieChart';\n/**\n * Creates a typed context for centric Polar charts.\n *\n * **Motivation:**\n * Recharts components fall back to `any` by default. While explicit typing using Generics works per-component,\n * it becomes tedious and error-prone across an entire chart.\n *\n * This Chart Helper allows you to perfectly align your data properties and ensure all your charts and axes work in harmony.\n * Once you define the helper with your generic requirements, all returned components strictly enforce your data structure,\n * catching `dataKey` typos and shape errors early.\n *\n * **Layout Binding:**\n * Curries chart definitions to strictly bind `layout=\"centric\"` prop behavior statically onto components.\n * By wrapping the chart implementations, it completely masks the `layout` prop on initialization to prevent regressions.\n * Evaluates `TComponents` generics at compile-time to reject radial-only elements natively (`RadialBar`, `Pie`, etc.)\n *\n * @example\n * ```tsx\n * // 1. Lock in the Generics: Data = MyData\n * const TypedCentric = createCentricChart<MyData, string, number>()({\n * RadarChart,\n * Radar,\n * });\n * // 2. `layout` is permanently bound to \"centric\".\n * // 3. Passing `Pie` or `RadialBar` into the components map will explicitly trigger a TS error.\n * ```\n *\n * @since 3.8\n * @see {@link https://recharts.github.io/en-US/guide/typescript/ Guide: Strong typing for Recharts components}\n */\nexport function createCentricChart() {\n return function withComponents(components) {\n return _objectSpread({\n RadarChart: props => /*#__PURE__*/React.createElement(OriginalRadarChart, _extends({}, props, {\n layout: \"centric\"\n }))\n }, components);\n };\n}\n\n/**\n * Creates a typed context for radial Polar charts.\n *\n * **Motivation:**\n * Recharts components fall back to `any` by default. While explicit typing using Generics works per-component,\n * it becomes tedious and error-prone across an entire chart.\n *\n * This Chart Helper allows you to perfectly align your data properties and ensure all your charts and layers work in harmony.\n * Once you define the helper with your generic requirements, all returned components strictly enforce your data structure,\n * catching `dataKey` typos and shape errors early.\n *\n * **Layout Binding:**\n * Curries chart definitions to strictly bind `layout=\"radial\"` prop behavior statically onto components.\n * By wrapping the chart implementations, it completely masks the `layout` prop on initialization to prevent runtime faults.\n * Evaluates `TComponents` generics at compile-time to reject centric-only elements natively (`Radar`, `RadarChart`, etc.)\n *\n * @example\n * ```tsx\n * // 1. Lock in the Generics: Data = MyData\n * const TypedRadial = createRadialChart<MyData, string, number>()({\n * RadialBarChart,\n * RadialBar,\n * });\n * // 2. `layout` is permanently bound to \"radial\".\n * // 3. Passing `Radar` or `RadarChart` into the components map will explicitly trigger a TS error.\n * ```\n *\n * @since 3.8\n * @see {@link https://recharts.github.io/en-US/guide/typescript/ Guide: Strong typing for Recharts components}\n */\nexport function createRadialChart() {\n return function withComponents(components) {\n return _objectSpread({\n RadialBarChart: props => /*#__PURE__*/React.createElement(OriginalRadialBarChart, _extends({}, props, {\n layout: \"radial\"\n })),\n PieChart: props => /*#__PURE__*/React.createElement(OriginalPieChart, _extends({}, props, {\n layout: \"radial\"\n }))\n }, components);\n };\n}"],
"mappings": "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",
"names": ["toString", "toString", "index", "get", "path", "current", "index", "require_get", "uniqBy", "map", "identity", "x", "get", "path", "source", "matches", "x", "matches", "require_cloneDeepWith", "require_cloneDeep", "has", "path", "current", "get", "has", "identity", "matches", "require_uniqBy", "identity", "uniqBy", "array", "require_uniqBy", "is", "x", "y", "React", "useState", "useLayoutEffect", "useEffect", "useDebugValue", "is", "x", "y", "React", "useSyncExternalStore", "useRef", "useEffect", "useMemo", "useDebugValue", "a", "path", "a", "arr", "index", "sortBy", "require_sortBy", "timeoutId", "require_debounce", "options", "throttle", "options", "require_throttle", "is", "x", "y", "React", "useSyncExternalStore", "useRef", "useEffect", "useMemo", "useDebugValue", "require_with_selector", "sign", "range", "index", "require_range", "has", "prefix", "addListener", "listener", "EventEmitter", "removeListener", "maxBy", "getValue", "max", "require_maxBy", "identity", "maxBy", "require_maxBy", "minBy", "getValue", "min", "require_minBy", "identity", "minBy", "require_minBy", "REACT_ELEMENT_TYPE", "REACT_FRAGMENT_TYPE", "REACT_PROFILER_TYPE", "REACT_STRICT_MODE_TYPE", "REACT_SUSPENSE_TYPE", "REACT_SUSPENSE_LIST_TYPE", "REACT_CONTEXT_TYPE", "REACT_FORWARD_REF_TYPE", "REACT_LAZY_TYPE", "REACT_MEMO_TYPE", "REACT_CONSUMER_TYPE", "REACT_PORTAL_TYPE", "REACT_CLIENT_REFERENCE", "isPlainObject", "proto", "require_isPlainObject", "last", "toArray", "require_last", "toArray", "last", "array", "require_last", "x", "require_isTypedArray", "x", "getValue", "index", "get", "path", "require_flatten", "isPlainObject", "omit", "require_omit", "sumBy", "array", "current", "require_sumBy", "import_react", "import_react", "r", "React", "_excluded", "_extends", "r", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "React", "import_react", "import_react", "React", "React", "x", "constant", "pi", "tau", "epsilon", "k", "x", "y", "r", "x", "x", "y", "x", "y", "defined", "path", "defined", "path", "k", "a", "r", "radial", "x", "y", "r", "r", "y", "x", "x", "r", "x", "y", "a", "c", "s", "sqrt3", "y", "sqrt3", "r", "Symbol", "path", "x", "y", "x", "y", "x", "y", "x", "y", "beta", "point", "x", "y", "custom", "tension", "x", "y", "point", "custom", "tension", "x", "y", "point", "custom", "tension", "point", "x", "y", "x2", "y2", "a", "alpha", "custom", "alpha", "x", "y", "point", "custom", "alpha", "x", "y", "point", "custom", "x", "y", "x", "point", "t0", "t1", "y", "x", "y", "a", "r", "x", "y", "none_default", "none_default", "y", "y", "y", "k", "prefix", "getPercentValue", "index", "get", "a", "_excluded", "_extends", "r", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "_ref", "getPath", "Symbol", "s", "import_react", "c", "index", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "defaultProps", "_extends", "r", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_ref", "color", "defaultUniqBy", "uniqBy", "import_react", "import_react", "a", "noop", "options", "array", "options", "lastResult", "createSelector", "index", "_ref", "sortBy", "import_react", "import_react", "proto", "preloadedState", "listener", "reducers", "initialState", "a", "createStore", "preloadedState", "isPlainObject", "proto", "index", "get", "x", "y", "isPlain", "isPlainObject", "proto", "immer", "get", "current", "proto", "Immer", "config", "base", "rootScope", "copy", "Immer", "createSelector", "createDraftSafeSelector", "args", "noop", "options", "isActionCreator", "map", "path", "stringify", "getSerialize", "isBoolean", "x", "thunk", "listener", "preloadedState", "rootReducer", "middleware", "reducers", "initialState", "reducer", "createAsyncThunk", "options", "ReducerType", "slice", "createSlice", "reducers", "reducer", "name", "reducerPath", "map", "config", "thunk", "noop", "noop", "task", "result", "options", "listener", "count", "set", "import_sortBy", "import_get", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "get", "ticks", "range", "index", "none_default", "point", "_ref", "group", "s", "sortBy", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "React", "import_react", "_ref", "React", "import_react", "warn", "format", "_ref", "_extends", "r", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_ref", "containerWidth", "containerHeight", "throttle", "_ref", "NOTHING", "DRAFTABLE", "DRAFT_STATE", "errors", "die", "getPrototypeOf", "isDraft", "isDraftable", "isPlainObject", "isMap", "isSet", "objectCtorString", "cachedCtorStrings", "proto", "each", "getArchtype", "index", "DRAFT_STATE", "isMap", "isSet", "has", "set", "getArchtype", "is", "x", "y", "isMap", "isSet", "latest", "shallowCopy", "isPlain", "isPlainObject", "DRAFT_STATE", "getPrototypeOf", "proto", "freeze", "isFrozen", "isDraft", "isDraftable", "dontMutateMethodOverride", "dontMutateFrozenCollections", "die", "plugins", "getPlugin", "currentScope", "getCurrentScope", "createScope", "usePatchesInScope", "getPlugin", "revokeScope", "leaveScope", "revokeDraft", "enterScope", "immer", "DRAFT_STATE", "processResult", "die", "isDraftable", "finalize", "maybeFreeze", "NOTHING", "path", "isFrozen", "each", "isSet", "isDraft", "has", "set", "isMap", "freeze", "createProxyProxy", "isArray", "objectTraps", "arrayTraps", "latest", "readPropFromProto", "peek", "prepareCopy", "createProxy", "getDescriptorFromProto", "current", "is", "markChanged", "getPrototypeOf", "proto", "shallowCopy", "Immer", "config", "base", "currentImpl", "copy", "immer", "Immer", "produce", "produceWithPatches", "setAutoFreeze", "setUseStrictShallowCopy", "setUseStrictIteration", "applyPatches", "createDraft", "finishDraft", "initialState", "index", "React", "import_with_selector", "last", "listener", "is", "x", "y", "useReduxContext", "useStore", "useDispatch", "refEquality", "a", "useSelector", "x", "y", "_excluded", "_extends", "r", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "React", "import_react", "import_react_dom", "React", "import_sortBy", "_extends", "r", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "array", "sortBy", "renderContent", "React", "_ref", "position", "import_react", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "React", "import_react", "React", "_extends", "r", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_ref", "index", "path", "React", "_excluded", "_extends", "r", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "getPath", "x", "y", "_ref", "React", "import_react", "import_react", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "a", "c", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "k", "_ref", "from", "to", "numbers", "x", "getBezierCoordinates", "configBezier", "configSpring", "config", "import_react", "import_react", "prefix", "_excluded", "_excluded2", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_extends", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "x", "y", "path", "from", "to", "_", "otherPathProps", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "RADIAN", "getMaxRadius", "point", "_ref", "_ref2", "x", "y", "cos", "min", "React", "_templateObject", "_templateObject2", "_templateObject3", "_templateObject4", "_templateObject5", "_templateObject6", "_templateObject7", "_extends", "r", "_taggedTemplateLiteral", "sign", "_ref", "RADIAN", "path", "import_range", "min", "max", "x", "y", "round", "r", "s", "k", "sign", "min", "max", "a", "subtract", "pow", "sum", "c", "Decimal", "_ref", "min", "max", "s", "ticks", "getNiceTickValues", "min", "max", "count", "getTickValuesFixedDomain", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_ref", "index", "a", "a", "range", "last", "count", "options", "min", "max", "identity", "linear", "point", "quantile", "sqrt", "a", "a", "x", "a", "x", "index", "blur", "y", "x", "sum", "s", "key", "a", "x", "slice", "count", "reverse", "ticks", "max", "index", "min", "index", "array", "k", "s", "min", "max", "range", "array", "range", "index", "range", "round", "reverse", "copy", "point", "format", "r", "a", "k", "s", "min", "max", "r", "y", "x", "a", "k", "y", "x", "c", "k", "r", "k", "s", "a", "cosh", "sinh", "t1", "t2", "t3", "basis_default", "basisClosed_default", "constant_default", "x", "a", "y", "constant_default", "y", "color", "rgb", "r", "basis_default", "basisClosed_default", "a", "c", "x", "a", "x", "c", "a", "a", "a", "c", "k", "zero", "a", "s", "i", "a", "c", "constant_default", "a", "degrees", "identity", "a", "c", "identity", "s", "a", "epsilon2", "x", "s", "hsl", "hue", "s", "hcl", "hue", "c", "cubehelix", "hue", "y", "s", "interpolate", "i", "x", "number", "x", "identity", "x", "a", "range", "interpolate", "r", "i", "piecewise", "y", "number", "x", "x", "s", "x", "x", "x", "identity_default", "x", "map", "locale", "group", "identity_default", "options", "sign", "zero", "prefix", "suffix", "format", "c", "formatPrefix", "k", "value", "max", "count", "count", "linear", "identity", "x", "number", "nice", "x", "k", "count", "r", "nice", "c", "x", "x", "identity", "sqrt", "x", "range", "round", "y", "number", "quantile", "range", "x", "y", "range", "x", "y", "range", "x", "y", "t0", "t1", "count", "date", "range", "date", "k", "date", "date", "date", "date", "date", "date", "date", "k", "ticks", "count", "reverse", "step", "date", "y", "locale", "formats", "c", "pad", "format", "sign", "s", "locale", "defaultLocale", "date", "date", "number", "ticks", "second", "format", "formatYear", "tickFormat", "date", "y", "count", "nice", "transformer", "t0", "t1", "identity", "x", "range", "interpolate", "copy", "identity", "x", "transformer", "s", "t0", "t1", "t2", "identity", "x", "range", "interpolate", "copy", "ascending", "range", "index", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_ref", "sortBy", "a", "mergeDomains", "min", "max", "range", "s", "last", "position", "ticks", "index", "initialState", "index", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "min", "max", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "unit", "color", "_ref", "selectDomainOfAllAppliedNumericalValuesIncludingErrorValues", "range", "index", "selectTooltipEventType", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "import_sortBy", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "x", "y", "ticks", "range", "ticks", "sortBy", "selectTooltipInteractionState", "selectTooltipPayloadConfigurations", "selectActiveLabel", "selectIsTooltipActive", "import_react", "import_react_dom", "a", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "initialState", "current", "_ref", "_extends", "r", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_ref", "index", "import_react", "import_react", "EventEmitter", "initialState", "_excluded", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "listener", "x", "y", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "defaultUniqBy", "_ref", "position", "selectIsTooltipActive", "selectActiveLabel", "React", "import_react", "_defineProperty", "r", "_toPropertyKey", "_toPrimitive", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "getStringSize", "_defineProperty", "r", "_toPropertyKey", "_toPrimitive", "unit", "_DecimalCSS", "_excluded", "_excluded2", "_extends", "r", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "_ref", "a", "index", "x", "y", "React", "import_react", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "options", "position", "x", "y", "_excluded", "_excluded2", "_objectWithoutProperties", "r", "_objectWithoutPropertiesLoose", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_extends", "_ref", "x", "y", "getDeltaAngle", "sign", "position", "path", "React", "import_react", "_excluded", "_excluded2", "_extends", "r", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "_ref", "index", "React", "import_react", "_excluded", "_objectWithoutProperties", "r", "_objectWithoutPropertiesLoose", "_ref", "React", "_excluded", "_templateObject", "_extends", "r", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "_taggedTemplateLiteral", "point", "getParsedPoints", "lastLink", "path", "index", "React", "_extends", "r", "React", "selectAxisPredicate", "ticks", "ticks", "_excluded", "_objectWithoutProperties", "r", "_objectWithoutPropertiesLoose", "_extends", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "path", "point", "_ref", "_ref2", "React", "import_react", "initialState", "_excluded", "_excluded2", "_excluded3", "_extends", "r", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "_ref", "ticks", "maxBy", "minBy", "extent", "React", "import_react", "_excluded", "_excluded2", "_extends", "r", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "AXIS_TYPE", "getTickTextAnchor", "cos", "sin", "ticks", "_ref", "React", "import_react", "import_get", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "selectDisplayedData", "_ref", "color", "import_get", "import_react", "get", "React", "import_react", "React", "import_react", "_templateObject", "_templateObject2", "_templateObject3", "_templateObject4", "_templateObject5", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_extends", "_taggedTemplateLiteral", "x", "y", "path", "from", "to", "_excluded", "_objectWithoutProperties", "r", "_objectWithoutPropertiesLoose", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_ref", "isPlainObject", "index", "import_react", "_ref", "import_react", "_ref", "React", "import_react", "React", "React", "prefix", "_ref", "import_react", "initialState", "index", "_excluded", "_excluded2", "_excluded3", "_excluded4", "_extends", "r", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_ref", "index", "x", "sign", "sum", "get", "latest", "React", "import_react", "React", "import_react", "_excluded", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_extends", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "_ref", "_ref2", "React", "import_react", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "initialState", "useXAxisScale", "useYAxisScale", "useXAxisInverseScale", "useXAxisInverseDataSnapScale", "useXAxisInverseTickSnapScale", "useYAxisInverseScale", "useYAxisInverseDataSnapScale", "useYAxisInverseTickSnapScale", "useXAxisTicks", "useYAxisTicks", "useCartesianScale", "useXAxisDomain", "useYAxisDomain", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_ref", "point", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "selectRadiusAxisTicks", "selectAngleAxisTicks", "pickId", "_ref", "_excluded", "_extends", "r", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "_ref", "last", "point", "index", "React", "import_react", "React", "_extends", "r", "s", "_ref", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "sum", "position", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "selectRadiusAxisTicks", "selectAngleAxisTicks", "pickCells", "_ref", "selectStackGroups", "_excluded", "_excluded2", "_excluded3", "_extends", "r", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "_ref", "SectorsWithAnimation", "index", "React", "import_react", "import_range", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "import_react", "import_react", "initialState", "_extends", "r", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "x", "y", "_ref", "index", "min", "max", "minIndex", "maxIndex", "point", "range", "startIndex", "endIndex", "React", "import_react", "_ref", "_ref2", "getAngledRectangleWidth", "initialState", "index", "React", "import_react", "_ref", "x", "y", "_ref", "x", "y", "position", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_extends", "position", "x", "y", "point2", "React", "import_react", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_extends", "x", "y", "React", "import_react", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_extends", "React", "import_react", "import_get", "array", "sign", "x", "y", "ticks", "sign", "ticks", "index", "_loop", "_loop2", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "sign", "ticks", "_loop", "i", "count", "_loop2", "unit", "index", "_ref", "ticks", "initialState", "ticks", "_excluded", "_objectWithoutProperties", "r", "_objectWithoutPropertiesLoose", "_extends", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "AxisLine", "x", "y", "get", "getTickLineCoord", "x2", "y2", "sign", "getTickTextAnchor", "_ref", "ticks", "Ticks", "unit", "React", "_excluded", "_excluded2", "_excluded3", "_excluded4", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_extends", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "Background", "x", "y", "_ref", "_ref2", "a", "React", "import_react", "React", "import_react", "initialState", "_excluded", "_objectWithoutProperties", "r", "_objectWithoutPropertiesLoose", "React", "_ref", "x", "y", "x", "_ref", "r", "_excluded", "_excluded2", "_excluded3", "_extends", "r", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "_ref", "unit", "count", "getStrokeDasharray", "sum", "point", "index", "x", "y", "React", "import_react", "selectXAxisWithScale", "selectXAxisTicks", "selectYAxisWithScale", "selectYAxisTicks", "selectBandSize", "groups", "_ref", "_excluded", "_excluded2", "_extends", "r", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "getLegendItemColor", "computeLegendPayloadFromAreaData", "_ref", "unit", "point", "alpha", "index", "x", "React", "import_react", "React", "_extends", "r", "minPointSizeCallback", "index", "pickCells", "_ref", "ticks", "selectXAxisWithScale", "selectYAxisWithScale", "selectXAxisTicks", "selectYAxisTicks", "React", "import_react", "pickIsPanorama", "x", "y", "_excluded", "_extends", "r", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "index", "_ref", "_excluded", "_excluded2", "_excluded3", "_excluded4", "_extends", "r", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "_ref", "unit", "index", "rafId", "y", "x", "errorBarDataPointFormatter", "React", "import_react", "React", "_excluded", "_extends", "r", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "_ref", "selectXAxisWithScale", "selectXAxisTicks", "selectYAxisWithScale", "selectYAxisTicks", "pickCells", "_ref", "_excluded", "_excluded2", "_excluded3", "_objectWithoutProperties", "r", "_objectWithoutPropertiesLoose", "_extends", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_ref", "index", "a", "x", "point", "y", "errorBarDataPointFormatter", "React", "import_react", "_excluded", "_excluded2", "_objectWithoutProperties", "r", "_objectWithoutPropertiesLoose", "_excluded", "_excluded2", "_excluded3", "_extends", "r", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "position", "ticks", "React", "import_react", "_excluded", "_excluded2", "_excluded3", "_extends", "r", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "position", "ticks", "React", "import_react", "React", "import_react", "from", "to", "_excluded", "_extends", "r", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "x", "y", "c", "React", "import_react", "React", "import_react", "React", "import_react", "initialState", "initialState", "rafId", "timeoutId", "rafId", "timeoutId", "rafId", "timeoutId", "createRechartsStore", "preloadedState", "_ref", "preloadedState", "import_react", "_ref", "import_react", "import_react", "React", "import_react", "React", "import_react", "React", "import_react", "_ref", "_excluded", "_objectWithoutProperties", "r", "_objectWithoutPropertiesLoose", "_extends", "_ref", "y", "x", "React", "import_react", "import_react", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_extends", "_excluded", "_objectWithoutProperties", "r", "_objectWithoutPropertiesLoose", "_extends", "r", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "CartesianChart", "options", "React", "import_react", "allowedTooltipTypes", "React", "import_react", "import_react", "React", "import_react", "_excluded", "_extends", "r", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "defaultMargin", "PolarChart", "options", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "allowedTooltipTypes", "React", "import_react", "import_get", "_excluded", "_objectWithoutProperties", "r", "_objectWithoutPropertiesLoose", "_extends", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "get", "addToTreemapNodeIndex", "_ref", "index", "min", "max", "c", "x", "y", "omit", "React", "import_react", "import_maxBy", "import_get", "_excluded", "_excluded2", "_extends", "r", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "a", "ka", "link", "_ref", "index", "maxBy", "nodes", "sumBy", "resolveCollisions", "sort", "alpha", "y", "get", "options", "x", "React", "import_react", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "allowedTooltipTypes", "React", "import_react", "allowedTooltipTypes", "React", "import_react", "allowedTooltipTypes", "React", "import_react", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "allowedTooltipTypes", "React", "import_react", "allowedTooltipTypes", "React", "import_react", "import_get", "_extends", "r", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_ref", "index", "get", "addToSunburstNodeIndex", "linear", "options", "React", "import_react", "import_omit", "React", "_extends", "r", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_ref", "_ref2", "index", "_excluded", "_excluded2", "_excluded3", "_excluded4", "_extends", "r", "_objectWithoutProperties", "_objectWithoutPropertiesLoose", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_ref", "index", "second", "x", "y", "omit", "React", "import_react", "allowedTooltipTypes", "React", "ownKeys", "r", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_extends", "React", "_extends", "r", "ownKeys", "_objectSpread", "_defineProperty", "_toPropertyKey", "_toPrimitive"]
}