@mui/x-charts
Version:
The community edition of MUI X Charts components.
24 lines (22 loc) • 1.13 kB
JavaScript
import { createSelector, createSelectorMemoized } from '@mui/x-internals/store';
import { selectorChartSeriesConfig } from "../../corePlugins/useChartSeriesConfig/index.mjs";
import { serializeIdentifier } from "../../corePlugins/useChartSeriesConfig/utils/serializeIdentifier.mjs";
/**
* Selector to get the visibility manager state.
*/
const selectVisibilityManager = state => state.visibilityManager;
export const EMPTY_VISIBILITY_MAP = new Map();
/**
* Selector to get the hidden identifiers from the visibility manager.
*/
export const selectorVisibilityMap = createSelector(selectVisibilityManager, visibilityManager => visibilityManager?.visibilityMap ?? EMPTY_VISIBILITY_MAP);
const selectorIsItemVisibleFn = (visibilityMap, seriesConfig) => {
return identifier => {
const uniqueId = serializeIdentifier(seriesConfig, identifier);
return !visibilityMap.has(uniqueId);
};
};
/**
* Selector that returns a function which returns whether an item is visible.
*/
export const selectorIsItemVisibleGetter = createSelectorMemoized(selectorVisibilityMap, selectorChartSeriesConfig, selectorIsItemVisibleFn);