UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

31 lines 1.99 kB
import { createSelector } from "../../utils/selectors.js"; import { createIsHighlighted } from "./createIsHighlighted.js"; import { createIsFaded } from "./createIsFaded.js"; const selectHighlight = state => state.highlight; const selectSeries = state => state.series; export const selectorChartsHighlightScopePerSeriesId = createSelector(selectSeries, series => { const map = new Map(); Object.keys(series.processedSeries).forEach(seriesType => { const seriesData = series.processedSeries[seriesType]; Object.keys(seriesData?.series ?? {}).forEach(seriesId => { const seriesItem = seriesData?.series[seriesId]; map.set(seriesId, seriesItem?.highlightScope); }); }); return map; }); export const selectorChartsHighlightedItem = createSelector(selectHighlight, highlight => highlight.item); export const selectorChartsHighlightScope = createSelector([selectorChartsHighlightScopePerSeriesId, selectorChartsHighlightedItem], (seriesIdToHighlightScope, highlightedItem) => { if (!highlightedItem) { return null; } const highlightScope = seriesIdToHighlightScope.get(highlightedItem.seriesId); if (highlightScope === undefined) { return null; } return highlightScope; }); export const selectorChartsIsHighlightedCallback = createSelector([selectorChartsHighlightScope, selectorChartsHighlightedItem], createIsHighlighted); export const selectorChartsIsFadedCallback = createSelector([selectorChartsHighlightScope, selectorChartsHighlightedItem], createIsFaded); export const selectorChartsIsHighlighted = createSelector([selectorChartsHighlightScope, selectorChartsHighlightedItem, (_, item) => item], (highlightScope, highlightedItem, item) => createIsHighlighted(highlightScope, highlightedItem)(item)); export const selectorChartsIsFaded = createSelector([selectorChartsHighlightScope, selectorChartsHighlightedItem, (_, item) => item], (highlightScope, highlightedItem, item) => createIsFaded(highlightScope, highlightedItem)(item));