UNPKG

@mui/x-data-grid-premium

Version:

The Premium plan edition of the MUI X Data Grid Components.

25 lines 2.23 kB
import { createRootSelector, createSelector, createSelectorMemoized, gridColumnLookupSelector, gridPivotActiveSelector } from '@mui/x-data-grid-pro/internals'; import { gridSidebarStateSelector, GridSidebarValue } from "../sidebar/index.mjs"; import { gridPivotModelSelector } from "../pivoting/gridPivotingSelectors.mjs"; const gridChartsIntegrationStateSelector = createRootSelector(state => state.chartsIntegration); export const gridChartsIntegrationActiveChartIdSelector = createSelector(gridChartsIntegrationStateSelector, chartsIntegration => chartsIntegration.activeChartId); export const gridChartsIntegrationChartsLookupSelector = createSelector(gridChartsIntegrationStateSelector, chartsIntegration => chartsIntegration.charts); export const gridChartsPanelOpenSelector = createSelector(gridSidebarStateSelector, sidebar => sidebar.value === GridSidebarValue.Charts && sidebar.open); export const gridChartableColumnsSelector = createSelectorMemoized(gridColumnLookupSelector, gridPivotActiveSelector, gridPivotModelSelector, (columns, pivotActive, pivotModel) => { let chartableColumns = Object.values(columns).filter(column => column.chartable); if (pivotActive) { const pivotColumns = pivotModel.columns.filter(column => column.hidden !== true).map(column => column.field); const pivotValues = pivotModel.values.filter(value => value.hidden !== true).map(value => value.field); // pivot columns are not visualized // once the columns are set, value fields are created dynamically. those fields remain chartable, but we remove the initial value columns if (pivotColumns.length > 0) { chartableColumns = chartableColumns.filter(column => !pivotColumns.includes(column.field) && !pivotValues.includes(column.field)); } } return chartableColumns.reduce((acc, column) => { acc[column.field] = column; return acc; }, {}); }); export const gridChartsDimensionsSelector = createSelector(gridChartsIntegrationStateSelector, (chartsIntegration, chartId) => chartsIntegration.charts[chartId]?.dimensions || []); export const gridChartsValuesSelector = createSelector(gridChartsIntegrationStateSelector, (chartsIntegration, chartId) => chartsIntegration.charts[chartId]?.values || []);