UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

43 lines 3.13 kB
import { createSelector, createSelectorMemoized } from '@mui/x-internals/store'; import { createIsHighlighted } from "./createIsHighlighted.js"; import { createIsFaded } from "./createIsFaded.js"; import { getSeriesHighlightedItem, getSeriesUnfadedItem, isSeriesFaded, isSeriesHighlighted } from "./highlightStates.js"; import { selectorChartsKeyboardItem } from "../useChartKeyboardNavigation/index.js"; import { selectorChartSeriesProcessed } from "../../corePlugins/useChartSeries/useChartSeries.selectors.js"; const selectHighlight = state => state.highlight; export const selectorChartsHighlightScopePerSeriesId = createSelector(selectorChartSeriesProcessed, processedSeries => { const map = new Map(); Object.keys(processedSeries).forEach(seriesType => { const seriesData = processedSeries[seriesType]; seriesData?.seriesOrder?.forEach(seriesId => { const seriesItem = seriesData?.series[seriesId]; map.set(seriesId, seriesItem?.highlightScope); }); }); return map; }); export const selectorChartsHighlightedItem = createSelectorMemoized(selectHighlight, selectorChartsKeyboardItem, function selectorChartsHighlightedItem(highlight, keyboardItem) { return highlight.isControlled || highlight.lastUpdate === 'pointer' ? highlight.item : keyboardItem; }); 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 = createSelectorMemoized(selectorChartsHighlightScope, selectorChartsHighlightedItem, createIsHighlighted); export const selectorChartsIsFadedCallback = createSelectorMemoized(selectorChartsHighlightScope, selectorChartsHighlightedItem, createIsFaded); export const selectorChartsIsHighlighted = createSelector(selectorChartsHighlightScope, selectorChartsHighlightedItem, function selectorChartsIsHighlighted(highlightScope, highlightedItem, item) { return createIsHighlighted(highlightScope, highlightedItem)(item); }); export const selectorChartIsSeriesHighlighted = createSelector(selectorChartsHighlightScope, selectorChartsHighlightedItem, isSeriesHighlighted); export const selectorChartIsSeriesFaded = createSelector(selectorChartsHighlightScope, selectorChartsHighlightedItem, isSeriesFaded); export const selectorChartSeriesUnfadedItem = createSelector(selectorChartsHighlightScope, selectorChartsHighlightedItem, getSeriesUnfadedItem); export const selectorChartSeriesHighlightedItem = createSelector(selectorChartsHighlightScope, selectorChartsHighlightedItem, getSeriesHighlightedItem); export const selectorChartsIsFaded = createSelector(selectorChartsHighlightScope, selectorChartsHighlightedItem, function selectorChartsIsFaded(highlightScope, highlightedItem, item) { return createIsFaded(highlightScope, highlightedItem)(item); });