import { ViewContainerRef } from '@angular/core';
import { ComplexBase, ArrayBase } from '@syncfusion/ej2-ng-base';
/**
* `e-column` directive represent a column of the Angular Grid.
* It must be contained in a Grid component(`ejs-grid`).
* ```html
*
*
*
*
*
*
* ```
*/
export declare class ColumnDirective extends ComplexBase {
private viewContainerRef;
/**
* Defines the data type of the column.
* @default null
*/
type: any;
/**
* If `allowEditing` set to false, then it disables editing of a particular column.
* By default all columns are editable.
* @default true
*/
allowEditing: any;
/**
* If `allowFiltering` set to false, then it disables filtering option and filter bar element of a particular column.
* By default all columns are filterable.
* @default true
*/
allowFiltering: any;
/**
* If `allowGrouping` set to false, then it disables grouping of a particular column.
* By default all columns are groupable.
* @default true
*/
allowGrouping: any;
/**
* If `allowResizing` set to false, it disables resize option of a particular column.
* @default true
*/
allowResizing: any;
/**
* If `allowSorting` set to false, then it disables sorting option of a particular column.
* By default all columns are sortable.
* @default true
*/
allowSorting: any;
/**
* Defines the cell content's overflow mode. The available modes are
* * `Clip` - Truncates the cell content when it overflows its area.
* * `Ellipsis` - Displays ellipsis when the cell content overflows its area.
* * `EllipsisWithTooltip` - Displays ellipsis when the cell content overflows its area
* also it will display tooltip while hover on ellipsis applied cell.
* @default Ellipsis
*/
clipMode: any;
/**
* Used to render multiple header rows(stacked headers) on the Grid header.
* @default null
*/
columns: any;
/**
* `commands` provides an option to display command buttons in every cell.
* The available built-in command buttons are
* * Edit - Edit the record.
* * Delete - Delete the record.
* * Save - Save the record.
* * Cancel - Cancel the edit state.
*
* The following code example implements the custom command column.
*```html
*
*
*```
*```typescript
*var gridObj = new Grid({
*datasource: window.gridData,
*columns : [
* { field: 'CustomerID', headerText: 'Customer ID' },
* { field: 'CustomerName', headerText: 'Customer Name' },
* {commands: [{buttonOption:{content: 'Details', click: onClick, cssClass: details-icon}}], headerText: 'Customer Details'}
*]
*gridObj.appendTo("#Grid");
*```
* @default null
*/
commands: any;
/**
* The CSS styles and attributes of the content cells of a particular column can be customized.
*
* ```html
*
*```
*```typescript
*let gridObj: Grid = new Grid({
*dataSource: filterData,
*columns: [
* { field: 'OrderID', headerText: 'Order ID' },
* {
* field: 'EmployeeID', headerText: 'Employee ID', customAttributes: {
* class: 'employeeid',
* type: 'employee-id-cell'
* }
* }]
*});
*gridObj.appendTo('#Grid');
*```
*
* @default null
*/
customAttributes: any;
/**
* Defines the column data source which will act as foreign data source.
* @default null
*/
dataSource: any;
/**
* Defines default values for the component when adding a new record to the Grid.
* @default null
*/
defaultValue: any;
/**
* If `disableHtmlEncode` is set to true, it encodes the HTML of the header and content cells.
* @default false
*/
disableHtmlEncode: any;
/**
* If `displayAsCheckBox` is set to true, it displays the column value as a check box instead of Boolean value.
* @default false
*/
displayAsCheckBox: any;
/**
* Defines the `IEditCell` object to customize default edit cell.
* @default {}
*/
edit: any;
/**
* Defines the type of component for editing.
* @default stringedit
*/
editType: any;
/**
* If `enableGroupByFormat` set to true, then it groups the particular column by formatted values.
* By default no columns are group by format.
* @default true
*/
enableGroupByFormat: any;
/**
* Defines the field name of column which is mapped with mapping name of DataSource.
* The bounded columns can be sort, filter and group etc.,
* If the `field` name contains “dot”, then it is considered as complex binding.
* The `field` name must be a valid JavaScript identifier,
* the first character must be an alphabet and should not contain spaces and special characters.
* @default undefined
*/
field: any;
/**
* Defines the filter options to customize filtering for the particular column.
* @default null
*/
filter: any;
/**
* The `filterBarTemplate` is used to add a custom component instead of default input component for filter bar.
* It have create and read functions.
* * create: It is used for creating custom components.
* * read: It is used to perform custom filter action.
*
* ```html
*
*```
*```typescript
*let gridObj: Grid = new Grid({
*dataSource: filterData,
*columns: [
* { field: 'OrderID', headerText: 'Order ID' },
* {
* field: 'EmployeeID', filterBarTemplate: {
* create: (args: { element: Element, column: Column }) => {
* let input: HTMLInputElement = document.createElement('input');
* input.id = 'EmployeeID';
* input.type = 'text';
* return input;
* },
* write: (args: { element: Element, column: Column }) => {
* args.element.addEventListener('input', args.column.filterBarTemplate.read as EventListener);
* },
* read: (args: { element: HTMLInputElement, columnIndex: number, column: Column }) => {
* gridObj.filterByColumn(args.element.id, 'equal', args.element.value);
* }
* }
* }],
* allowFiltering: true
*});
*gridObj.appendTo('#Grid');
*```
*
* @default null
*/
filterBarTemplate: any;
/**
* Defines the mapping column name of the foreign data source.
* If it is not defined then the `columns.field` will be considered as mapping column name
* @default null
*/
foreignKeyField: any;
/**
* Defines the display column name from the foreign data source which will be obtained from comparing local and foreign data
* @default null
*/
foreignKeyValue: any;
/**
* It is used to change display value with the given format and does not affect the original data.
* Gets the format from the user which can be standard or custom
* [`number`](../base/intl.html#number-formatter-and-parser)
* and [`date`](../base/intl.html#date-formatter-and-parser) formats.
* @default null
*/
format: any;
/**
* Defines the method which is used to achieve custom formatting from an external function.
* This function triggers before rendering of each cell.
*
* ```html
*
*```
*```typescript
*class ExtendedFormatter implements ICellFormatter {
*public getValue(column: Column, data: Object): Object {
* return '' + data['Verified'] + '';
*}
*}
*let gridObj: Grid = new Grid({
* dataSource: filterData,
* columns: [
* { field: 'ShipName', headerText: 'Ship Name' },
* { field: 'Verified', headerText: 'Verified Status', formatter: ExtendedFormatter }]
*});
*gridObj.appendTo('#Grid');
*```
*
* @default null
*/
formatter: any;
/**
* Defines the header text of column which is used to display in column header.
* If `headerText` is not defined, then field name value will be assigned to header text.
* @default undefined
*/
headerText: any;
/**
* column visibility can change based on its [`Media Queries`](http://cssmediaqueries.com/what-are-css-media-queries.html).
* `hideAtMedia` accepts only valid Media Queries.
* @default undefined
*/
hideAtMedia: any;
/**
* You can use this property to freeze selected columns in grid.
* @default false
*/
isFrozen: any;
/**
* If `isIdentity` is set to true, then this column is considered as identity column.
* @default false
*/
isIdentity: any;
/**
* If `isPrimaryKey` is set to true, considers this column as the primary key constraint.
* @default false
*/
isPrimaryKey: any;
/**
* Defines the maximum width of the column in pixel or percentage, which will restrict resizing beyond this pixel or percentage.
* @default undefined
*/
maxWidth: any;
/**
* Defines the minimum width of the column in pixels or percentage.
* @default undefined
*/
minWidth: any;
/**
* If `showColumnMenu` set to false, then it disable the column menu of a particular column.
* By default column menu will show for all columns
* @default true
*/
showColumnMenu: any;
/**
* If `showInColumnChooser` set to false, then hides the particular column in column chooser.
* By default all columns are displayed in column Chooser.
* @default true
*/
showInColumnChooser: any;
/**
* It defines the custom sort comparer function.
*/
sortComparer: any;
/**
* Defines the alignment of the column in both header and content cells.
* @default Left
*/
textAlign: any;
/**
* Gets the unique identifier value of the column. It is used to get the object.
* @default undefined
*/
uid: any;
/**
* Defines rules to validate data before creating and updating.
* @default null
*/
validationRules: any;
/**
* Defines the method used to apply custom cell values from external function and display this on each cell rendered.
*
* ```html
*
*```
*```typescript
*let gridObj: Grid = new Grid({
*dataSource: [{ EmployeeID: 1, EmployeeName: ['John', 'M'] }, { EmployeeID: 2, EmployeeName: ['Peter', 'A'] }],
*columns: [
* { field: 'EmployeeID', headerText: 'Employee ID' },
* { field: 'EmployeeName', headerText: 'Employee First Name',
* valueAccessor: (field: string, data: Object, column: Column) => {
* return data['EmployeeName'][0];
* },
* }]
*});
*```
*
* @default null
*/
valueAccessor: any;
/**
* If `visible` is set to false, hides the particular column. By default, all columns are displayed.
* @default true
*/
visible: any;
/**
* Defines the width of the column in pixels or percentage.
* @default undefined
*/
width: any;
/**
* Defines the column template that renders customized element in each cell of the column.
* It accepts either [template string](../base/template-engine.html) or HTML element ID.
* @default null
*/
template: any;
/**
* Defines the column template as string or HTML element ID which is used to add customized element in the column header.
* @default null
*/
headerTemplate: any;
commandsTemplate: any;
itemTemplate: any;
constructor(viewContainerRef: ViewContainerRef);
}
/**
* Column Array Directive
* @private
*/
export declare class ColumnsDirective extends ArrayBase {
constructor();
}