UNPKG

@syncfusion/ej2-grids

Version:

Feature-rich JavaScript datagrid (datatable) control with built-in support for editing, filtering, grouping, paging, sorting, and exporting to Excel.

117 lines (104 loc) 3.9 kB
import { compile } from '@syncfusion/ej2-base';import { getEnumValue } from '@syncfusion/ej2-base';import { CustomSummaryType } from '../base/type';import { AggregateType, CellType } from '../base/enum';import { Property, Collection, ChildProperty, NumberFormatOptions, DateFormatOptions } from '@syncfusion/ej2-base'; /** * Interface for a class AggregateColumn */ export interface AggregateColumnModel { /** * Defines the aggregate type of a particular column. * To use multiple aggregates for single column, specify the `type` as array. * Types of aggregate are, * * sum * * average * * max * * min * * count * * truecount * * falsecount * * custom * > Specify the `type` value as `custom` to use custom aggregation. * * @default null * @aspType string */ type?: AggregateType | AggregateType[] | string; /** * Defines the column name to perform aggregation. * * @default null */ field?: string; /** * Defines the column name to display the aggregate value. If `columnName` is not defined, * then `field` name value will be assigned to the `columnName` property. * * @default null */ columnName?: string; /** * Format is applied to a calculated value before it is displayed. * Gets the format from the user, which can be standard or custom * [`number`](../../common/internationalization/#number-formatting/) * and [`date`](../../common/internationalization/#number-formatting/) formats. * * @aspType string * @blazorType string * @default null */ format?: string | NumberFormatOptions | DateFormatOptions; /** * Defines the footer cell template as a string for the aggregate column. * The `type` name should be used to access aggregate values inside the template. * * {% codeBlock src="grid/footer-template-api/index.ts" %}{% endcodeBlock %} * * @default null * @aspType string */ footerTemplate?: string | Function; /** * Defines the group footer cell template as a string for the aggregate column. * The `type` name should be used to access aggregate values inside the template. * Additionally, the following fields can be accessed in the template. * * **field**: The current grouped field. * * **key**: The current grouped value. * * {% codeBlock src="grid/group-footer-api/index.ts" %}{% endcodeBlock %} * * @default null * @aspType string */ groupFooterTemplate?: string | Function; /** * Defines the group caption cell template as a string for the aggregate column. * The `type` name should be used to access aggregate values inside the template. * Additionally, the following fields can be accessed in the template. * * **field**: The current grouped field name. * * **key**: The current grouped field value. * * {% codeBlock src="grid/group-caption-api/index.ts" %}{% endcodeBlock %} * * @default null * @aspType string */ groupCaptionTemplate?: string | Function; /** * Defines a function to calculate custom aggregate value. The `type` value should be set to `custom`. * To use custom aggregate value in the template, use the key as `${custom}`. * **Total aggregation**: The custom function will be called with the whole data and the current `AggregateColumn` object. * **Group aggregation**: This will be called with the current group details and the `AggregateColumn` object. * * @default null */ customAggregate?: CustomSummaryType | string; } /** * Interface for a class AggregateRow */ export interface AggregateRowModel { /** * Configures the aggregate columns. * * @default [] */ columns?: AggregateColumnModel[]; }