UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

37 lines 2.15 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]; seriesData?.seriesOrder?.forEach(seriesId => { const seriesItem = seriesData?.series[seriesId]; map.set(seriesId, seriesItem?.highlightScope); }); }); return map; }); export const selectorChartsHighlightedItem = createSelector([selectHighlight], function selectorChartsHighlightedItem(highlight) { return highlight.item; }); export const selectorChartsHighlightScope = createSelector([selectorChartsHighlightScopePerSeriesId, selectorChartsHighlightedItem], function selectorChartsHighlightScope(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], function selectorChartsIsHighlighted(highlightScope, highlightedItem, item) { return createIsHighlighted(highlightScope, highlightedItem)(item); }); export const selectorChartsIsFaded = createSelector([selectorChartsHighlightScope, selectorChartsHighlightedItem, (_, item) => item], function selectorChartsIsFaded(highlightScope, highlightedItem, item) { return createIsFaded(highlightScope, highlightedItem)(item); });