@mui/x-charts
Version:
The community edition of MUI X Charts components.
50 lines (49 loc) • 2.33 kB
JavaScript
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);
};
}
;