UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

50 lines (49 loc) 2.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createAllSeriesSelectorOfType = createAllSeriesSelectorOfType; exports.createSeriesSelectorsOfType = createSeriesSelectorsOfType; var _fastArrayCompare = require("@mui/x-internals/fastArrayCompare"); var _warning = require("@mui/x-internals/warning"); var _selectors = require("./plugins/utils/selectors"); var _useChartSeries = require("./plugins/corePlugins/useChartSeries/useChartSeries.selectors"); var _useStore = require("./store/useStore"); var _useSelector = require("./store/useSelector"); function createSeriesSelectorsOfType(seriesType) { const selectorSeriesWithIds = (0, _selectors.createSelector)([_useChartSeries.selectorChartSeriesProcessed, (_, ids) => ids], (processedSeries, ids) => { if (!ids || Array.isArray(ids) && ids.length === 0) { return processedSeries[seriesType]?.seriesOrder?.map(seriesId => processedSeries[seriesType]?.series[seriesId]) ?? []; } if (!Array.isArray(ids)) { return processedSeries[seriesType]?.series?.[ids]; } const result = []; const failedIds = []; for (const id of ids) { const series = processedSeries[seriesType]?.series?.[id]; if (series) { result.push(series); } else { failedIds.push(id); } } if (process.env.NODE_ENV !== 'production' && failedIds.length > 0) { const formattedIds = failedIds.map(v => JSON.stringify(v)).join(', '); const fnName = `use${seriesType.charAt(0).toUpperCase()}${seriesType.slice(1)}Series`; (0, _warning.warnOnce)([`MUI X Charts: The following ids provided to "${fnName}" could not be found: ${formattedIds}.`, `Make sure that they exist and their series are using the "${seriesType}" series type.`]); } return result; }); return ids => { const store = (0, _useStore.useStore)(); return (0, _useSelector.useSelector)(store, selectorSeriesWithIds, ids, _fastArrayCompare.fastArrayCompare); }; } function createAllSeriesSelectorOfType(seriesType) { const selectorSeries = (0, _selectors.createSelector)(_useChartSeries.selectorChartSeriesProcessed, processedSeries => processedSeries[seriesType]); return () => { const store = (0, _useStore.useStore)(); return (0, _useSelector.useSelector)(store, selectorSeries); }; }