import { ViewContainerRef } from '@angular/core';
import { ComplexBase, ArrayBase } from '@syncfusion/ej2-angular-base';
import * as i0 from "@angular/core";
/**
* `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;
directivePropList: any;
childColumns: any;
tags: string[];
/**
* 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 `allowReordering` set to false, then it disables reorder of a particular column.
* By default all columns can be reorder.
* @default true
*/
allowReordering: any;
/**
* If `allowResizing` set to false, it disables resize option of a particular column.
* @default true
*/
allowResizing: any;
/**
* If `allowSearching` set to false, then it disables Searching of a particular column.
* By default all columns allow Searching.
* @default true
*/
allowSearching: 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;
/**
* If `autoFit` set to true, then the particular column content width will be
* adjusted based on its content in the initial rendering itself.
* Setting this property as true is equivalent to calling `autoFitColumns` method in the `dataBound` event.
* @default false
*/
autoFit: 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
* @asptype object
*/
defaultValue: any;
/**
* If `disableHtmlEncode` is set to true, it encodes the HTML of the header and content cells.
* @default true
*/
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`(../../grid/edit/#cell-edit-template) 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 ''
*/
field: any;
/**
* Defines the filter options to customize filtering for the particular column.
* @default {}
*/
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`](../../common/internationalization/#manipulating-numbers)
* and [`date`](../../common/internationalization/#manipulating-datetime) formats.
* @default null
* @asptype string
*/
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 which side the column need to freeze
* The available built-in freeze directions are
* * Left - Freeze the column at left side.
* * Right - Freeze the column at right side.
* * Fixed - Freeze the column at Center.
* * None - Does not freeze the column.
* @default None
*/
freeze: 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 null
*/
headerText: any;
/**
* Define the alignment of column header which is used to align the text of column header.
* @aspdefaultvalueignore
* @default null
*/
headerTextAlign: any;
/**
* Defines the method used to apply custom header 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',
* headerValueAccessor: (field: string,column: Column) => {
* return "newheadername";
* },
* }]
*});
*```
*
* @default null
*/
headerValueAccessor: 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 ''
*/
hideAtMedia: any;
/**
* Gets the unique identifier value of the column. It is used to get the object.
* @default null
*/
index: 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 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 false
*/
lockColumn: any;
/**
* Defines the maximum width of the column in pixel or percentage, which will restrict resizing beyond this pixel or percentage.
* @default ''
*/
maxWidth: any;
/**
* Defines the minimum width of the column in pixels or percentage.
* @default ''
*/
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;
/**
* Determines the behavior of the `aria-label` attribute for cells in template columns.
* If enableAriaLabel is set to false, the aria-label attribute is not applied to template column cells, which affects screen reader accessibility.
* @default {}
*/
templateOptions: 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 ''
*/
uid: any;
/**
* `editType`(../../grid/edit/#cell-edit-type-and-its-params) 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 ''
*/
width: any;
/**
* Defines the column template that renders customized element in each cell of the column.
* It accepts either [template string](../../common/template-engine/) or HTML element ID.
* @default null
* @asptype string
*/
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
* @asptype string
*/
headerTemplate: any;
commandsTemplate: any;
filter_itemTemplate: any;
/**
* Defines the cell edit template that used as editor for a particular column.
* It accepts either template string or HTML element ID.
* @default null
* @asptype string
*/
editTemplate: any;
/**
* Defines the filter template/UI that used as filter for a particular column.
* It accepts either template string or HTML element ID.
* @default null
* @asptype string
*/
filterTemplate: any;
constructor(viewContainerRef: ViewContainerRef);
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵdir: i0.ɵɵDirectiveDeclaratione-columns>e-column", never, { "allowEditing": "allowEditing"; "allowFiltering": "allowFiltering"; "allowGrouping": "allowGrouping"; "allowReordering": "allowReordering"; "allowResizing": "allowResizing"; "allowSearching": "allowSearching"; "allowSorting": "allowSorting"; "autoFit": "autoFit"; "clipMode": "clipMode"; "columns": "columns"; "commands": "commands"; "customAttributes": "customAttributes"; "dataSource": "dataSource"; "defaultValue": "defaultValue"; "disableHtmlEncode": "disableHtmlEncode"; "displayAsCheckBox": "displayAsCheckBox"; "edit": "edit"; "editTemplate": "editTemplate"; "editType": "editType"; "enableGroupByFormat": "enableGroupByFormat"; "field": "field"; "filter": "filter"; "filterBarTemplate": "filterBarTemplate"; "filterTemplate": "filterTemplate"; "foreignKeyField": "foreignKeyField"; "foreignKeyValue": "foreignKeyValue"; "format": "format"; "formatter": "formatter"; "freeze": "freeze"; "headerTemplate": "headerTemplate"; "headerText": "headerText"; "headerTextAlign": "headerTextAlign"; "headerValueAccessor": "headerValueAccessor"; "hideAtMedia": "hideAtMedia"; "index": "index"; "isFrozen": "isFrozen"; "isIdentity": "isIdentity"; "isPrimaryKey": "isPrimaryKey"; "lockColumn": "lockColumn"; "maxWidth": "maxWidth"; "minWidth": "minWidth"; "showColumnMenu": "showColumnMenu"; "showInColumnChooser": "showInColumnChooser"; "sortComparer": "sortComparer"; "template": "template"; "templateOptions": "templateOptions"; "textAlign": "textAlign"; "type": "type"; "uid": "uid"; "validationRules": "validationRules"; "valueAccessor": "valueAccessor"; "visible": "visible"; "width": "width"; }, {}, ["template", "headerTemplate", "commandsTemplate", "filter_itemTemplate", "editTemplate", "filterTemplate", "childColumns"]>;
}
/**
* Column Array Directive
* @private
*/
export declare class ColumnsDirective extends ArrayBase {
constructor();
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵdir: i0.ɵɵDirectiveDeclaratione-columns", never, {}, {}, ["children"]>;
}