UNPKG

@adaptabletools/adaptable

Version:

Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements

86 lines (85 loc) 3.47 kB
import * as React from 'react'; import { PivotRowGroupSummaryView, TableRowGroupSummaryView, } from '../../../View/Wizard/rowGroupSummaryTags'; export const ROW_GROUP_DISPLAY_TYPE_LABELS = { single: 'Single Column', multi: 'Multiple Columns', groupRows: 'Full Width Group Rows', }; export const ROW_GROUP_DISPLAY_TYPE_DESCRIPTIONS = { single: 'All Row Grouped Columns display in one hierarchical Column', multi: 'Each Row Grouped Column displays in its own, separate, Column', groupRows: 'Row groups display as full-width rows (no group column and no aggregations)', }; export const ROW_GROUP_BEHAVIOR_LABELS = { 'always-collapsed': 'All Collapsed', 'always-expanded': 'All Expanded', expanded: 'Mostly Expanded', collapsed: 'Mostly Collapsed', }; export const ROW_GROUP_BEHAVIOR_DESCRIPTIONS = { 'always-collapsed': 'All Grouped Rows are always collapsed', 'always-expanded': 'All Grouped Rows are always expanded', expanded: 'All Grouped Rows expanded, other than those collapsed when Layout last displayed', collapsed: 'All Grouped Rows collapsed, other than those expanded when Layout last displayed', }; export function getRowGroupDisplayTypeLabel(layout) { const displayType = layout.RowGroupDisplayType ?? 'single'; return ROW_GROUP_DISPLAY_TYPE_LABELS[displayType]; } export function getRowGroupDisplayTypeDescription(layout) { const displayType = layout.RowGroupDisplayType ?? 'single'; return ROW_GROUP_DISPLAY_TYPE_DESCRIPTIONS[displayType]; } export function getRowGroupBehaviorLabel(layout) { const behavior = layout.RowGroupValues?.RowGroupDefaultBehavior ?? 'always-collapsed'; return ROW_GROUP_BEHAVIOR_LABELS[behavior]; } export function getRowGroupBehaviorDescription(layout) { const behavior = layout.RowGroupValues?.RowGroupDefaultBehavior ?? 'always-collapsed'; return ROW_GROUP_BEHAVIOR_DESCRIPTIONS[behavior]; } export function getTableRowGroupSummaryValues(layout, api) { const columnIdToFriendlyName = (columnId) => api.columnApi.getFriendlyNameForColumnId(columnId); const values = []; if (!layout.RowGroupedColumns?.length) { values.push('No Row Grouped Columns'); } else { layout.RowGroupedColumns.forEach((colId) => { values.push(columnIdToFriendlyName(colId)); }); } values.push(`Display Type: ${getRowGroupDisplayTypeLabel(layout)}`); values.push(`Behaviour: ${getRowGroupBehaviorLabel(layout)}`); return values; } export function getLayoutTableRowGroupViewItems(layout, api) { return [ { name: 'Row Groups', view: () => React.createElement(TableRowGroupSummaryView, { layout, api }), }, ]; } export function getPivotRowGroupSummaryValues(layout, api) { const columnIdToFriendlyName = (columnId) => api.columnApi.getFriendlyNameForColumnId(columnId); const values = []; if (!layout.PivotGroupedColumns?.length) { values.push('No Row Grouped Columns'); } else { layout.PivotGroupedColumns.forEach((colId) => { values.push(columnIdToFriendlyName(colId)); }); } values.push(`Behaviour: ${getRowGroupBehaviorLabel(layout)}`); return values; } export function getLayoutPivotRowGroupViewItems(layout, api) { return [ { name: 'Row Groups', view: () => React.createElement(PivotRowGroupSummaryView, { layout, api }), }, ]; }