@mui/x-charts
Version:
The community edition of MUI X Charts components.
49 lines (45 loc) • 2.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.selectorChartsDataset = exports.selectorChartSeriesState = exports.selectorChartSeriesProcessed = exports.selectorChartSeriesConfigGetter = exports.selectorChartDefaultizedSeries = void 0;
var _store = require("@mui/x-internals/store");
var _processSeries = require("./processSeries");
var _useChartVisibilityManager = require("../../featurePlugins/useChartVisibilityManager");
var _useChartSeriesConfig = require("../useChartSeriesConfig/useChartSeriesConfig.selectors");
const selectorChartSeriesState = state => state.series;
exports.selectorChartSeriesState = selectorChartSeriesState;
const selectorChartDefaultizedSeries = exports.selectorChartDefaultizedSeries = (0, _store.createSelector)(selectorChartSeriesState, seriesState => seriesState.defaultizedSeries);
/**
* Get the dataset from the series state.
* @returns {DatasetType | undefined} The dataset.
*/
const selectorChartsDataset = exports.selectorChartsDataset = (0, _store.createSelector)(selectorChartSeriesState, seriesState => seriesState.dataset);
/**
* Get the processed series after applying series processors.
* This selector computes the processed series on-demand from the defaultized series.
* @returns {ProcessedSeries} The processed series.
*/
const selectorChartSeriesProcessed = exports.selectorChartSeriesProcessed = (0, _store.createSelectorMemoized)(selectorChartDefaultizedSeries, _useChartSeriesConfig.selectorChartSeriesConfig, selectorChartsDataset, _useChartVisibilityManager.selectorIsItemVisibleGetter, function selectorChartSeriesProcessed(defaultizedSeries, seriesConfig, dataset, isItemVisible) {
return (0, _processSeries.applySeriesProcessors)(defaultizedSeries, seriesConfig, dataset, isItemVisible);
});
/**
* Returns a function that returns the series configuration for a given series id.
*/
const selectorChartSeriesConfigGetter = exports.selectorChartSeriesConfigGetter = (0, _store.createSelectorMemoized)(_useChartSeriesConfig.selectorChartSeriesConfig, selectorChartSeriesProcessed, (seriesConfig, processedSeries) => {
return function getSeriesConfigById(seriesId) {
for (const type in processedSeries) {
if (!Object.hasOwn(processedSeries, type)) {
continue;
}
const seriesGroup = processedSeries[type];
if (seriesGroup?.series) {
const item = seriesGroup.series[seriesId];
if (item) {
return seriesConfig[type];
}
}
}
return null;
};
});