Skip to content

Commit dc1d23a

Browse files
committed
add appropriate type definitions
1 parent 32f9b5d commit dc1d23a

2 files changed

Lines changed: 28 additions & 5 deletions

File tree

packages/devextreme/js/__internal/grids/data_grid/summary/m_summary.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ import type DataSourceAdapter from '@ts/grids/grid_core/data_source_adapter/m_da
1818
import type { EditingControllerRequired, ModuleType } from '@ts/grids/grid_core/m_types';
1919
import { ColumnsView } from '@ts/grids/grid_core/views/m_columns_view';
2020

21-
import type { Column } from '../../grid_core/columns_controller/types';
2221
import type { EditingController } from '../../grid_core/editing/m_editing';
2322
import type { RowsView } from '../../grid_core/views/m_rows_view';
2423
import AggregateCalculator from '../m_aggregate_calculator';
2524
import gridCore from '../m_core';
2625
import dataSourceAdapterProvider from '../m_data_source_adapter';
26+
import type { ColumnMap, SummaryItem } from './types';
2727
import { getColumnFromMap, getSummaryCellIndex } from './utils';
2828

2929
const DATAGRID_TOTAL_FOOTER_CLASS = 'dx-datagrid-total-footer';
@@ -532,15 +532,18 @@ const data = (Base: ModuleType<DataController>) => class SummaryDataControllerEx
532532
}
533533

534534
// The map is built once per _processItems cycle (via options) and discarded after.
535-
private _buildColumnLookupMap(): Map<string | number, Column> {
536-
const columnMap = new Map<string | number, Column>();
535+
private _buildColumnLookupMap(): ColumnMap {
536+
const columnMap: ColumnMap = new Map();
537537
const allColumns = [
538538
...this._columnsController.getColumns(),
539539
...(this._columnsController._commandColumns ?? []),
540540
];
541541

542542
for (const column of allColumns) {
543543
const copiedColumn = { ...column };
544+
// The method registers each column under a few keys: index, name, dataField, and caption.
545+
// This is because the developer can specify summaryItem.column (and summaryItem.showInColumn)
546+
// in any of these forms — number for column index and string for all the rest.
544547
const keys = [
545548
column.index,
546549
column.name,
@@ -559,12 +562,12 @@ const data = (Base: ModuleType<DataController>) => class SummaryDataControllerEx
559562
}
560563

561564
private _calculateSummaryCells(
562-
summaryItems,
565+
summaryItems: SummaryItem[],
563566
aggregates,
564567
visibleColumns,
565568
calculateTargetColumnIndex,
566569
isGroupRow?,
567-
columnMap?: Map<string | number, Column>,
570+
columnMap?: ColumnMap,
568571
) {
569572
const summaryCells: any = [];
570573
const summaryCellsByColumns = {};
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import type { Column } from '@ts/grids/grid_core/columns_controller/types';
2+
3+
export interface SummaryItem {
4+
/** Number as a column index or string as a column name, dataField, or caption. */
5+
column?: string | number | undefined;
6+
/** Number as a column index or string as a column name, dataField, or caption. */
7+
showInColumn?: string | number | undefined;
8+
showInGroupFooter?: boolean;
9+
alignByColumn?: boolean;
10+
summaryType?: string | undefined;
11+
valueFormat?: unknown;
12+
name?: string | undefined;
13+
skipEmptyValues?: boolean;
14+
alignment?: string | undefined;
15+
cssClass?: string | undefined;
16+
customizeText?: ((itemInfo: { value?: string | number | Date; valueText: string }) => string);
17+
displayFormat?: string | undefined;
18+
}
19+
20+
export type ColumnMap = Map<string | number, Column>;

0 commit comments

Comments
 (0)