import { EventEmitter, OnInit, ViewContainerRef, Renderer2 } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { DataStateChangeEvent, GridDataResult } from '@progress/kendo-angular-grid';
import { ExcelExportData } from '@progress/kendo-angular-excel-export';
import { GroupDescriptor, State } from '@progress/kendo-data-query';
import { SortDescriptor } from '@progress/kendo-data-query';
import { ThfGridBaseComponent } from '@totvs/thf-core/components/thf-grid-base/thf-grid-base.component';
import { ThfGridColumn } from '@totvs/thf-core/components/thf-grid-base/thf-grid-column.interface';
/**
* @extends ThfGridBaseComponent
*
* @description
*
* Para o correto funcionamento do THF Grid deve ser importado o módulo `BrowserAnimationsModule` no módulo principal da sua aplicação.
*
* > Módulo da sua aplicação:
*
* ```
* import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
*
* ...
*
* @NgModule({
* imports: [
* BrowserModule,
* BrowserAnimationsModule,
* ...
* ThfModule,
* ...
* ],
* declarations: [
* AppComponent
* ],
* providers: [],
* bootstrap: [AppComponent]
* })
* export class AppModule { }
* ```
*
* No arquivo `angular-cli.json` da sua aplicação deve ser importado o arquivo `all.css`, que pertence ao
* pacote `@progress/kendo-theme-default`.
*
* > Arquivo .angular-cli.json:
*
* ```
* ...
* "styles": [
* "../node_modules/@progress/kendo-theme-default/dist/all.css"
* ]
* ...
* ```
*
* @example
*
*
*
*
*/
export declare class ThfGridComponent extends ThfGridBaseComponent implements OnInit {
private viewRef;
private renderer;
/**
* Objeto com as informações das colunas a serem exibidas.
*/
columns: ThfGridColumn[];
/** Habilita a opção de ordenação dos dados nas colunas. */
sortable: boolean;
/** Habilita a opção de selecionar uma linha do grid */
selectable: boolean;
/** Habilita o botão para edição da coluna. */
editable: boolean;
/** Habilita a opção para agrupamento permitindo agrupar no máximo dois níveis. */
groupable: boolean;
/** Habilita a opção para exportação dos dados. */
exportButtons: boolean;
/** Recebe valores "true" ou "false" para habilitar ou desabilitar o botão "Carregar Mais Resultados" */
showMoreDisabled: string;
/** Habilita o botão "Remover" permitindo que o usuário possa remover uma linha do grid. */
showRemoveButton: boolean;
/** Habilita o botão para adicionar linhas */
addButton: boolean;
/**
* Executa um método antes de salvar uma linha editada no thf-grid. Este método recebe como parâmetro o atributo *event*,
* para acessar o objeto selecionado no thf-grid utilizando o *event.data*.
* Se o método retornar o valor booleano *true*, a edição da linha é confirmada,
* caso contrário as informações alteradas serão canceladas.
*/
saveAction?: string;
/**
* Executa um método antes de remover uma linha selecionada no thf-grid. Este método recebe como parâmetro o atributo *event*,
* para acessar o objeto selecionado no thf-grid utilizando o *event.data*.
* Se o método retornar o valor booleano *true*, a remoção da linha é confirmada,
* caso contrário as informações serão mantidas.
*/
removeAction?: string;
/**
* Método executado antes de adicionar uma nova linha ao thf-grid.
*
* Esse método recebe como parâmetro o atributo *data* contendo a referência do objeto que será adicionado, dessa forma é possível
* informar alguns valores para a nova linha, para que as alterações sejam efetivadas, deve-se retornar *true*.
* Caso tenha necessidade, é possível cancelar a inclusão de uma nova linha retornando *false*, nesse caso as informações serão
* descartadas e a nova linha não será incluída no thf-grid.
*/
addAction?: string;
/** Habilita um botão "Carregar mais resultados" com evento de clique que chama um método do componente. */
showMore?: EventEmitter;
/** Evento de seleção de linha que chama um método do componente. Este atributo é utilizado em conjunto com o atributo "t-selectable". */
selectionChange?: EventEmitter;
/** Evento disparado ao salvar dados do modo de edição inline, contém o modelo que foi alterado. */
saveValue?: EventEmitter;
_parentRef: any;
editedRowIndex: number;
editedProducted: any;
groups: GroupDescriptor[];
gridView: GridDataResult;
state: State;
sortableObject: any;
sort: SortDescriptor[];
private addButtonCalled;
private isCancelling;
formGroup: FormGroup;
private dataArrayOrdered;
private grid;
constructor(viewRef: ViewContainerRef, renderer: Renderer2);
ngOnInit(): void;
defineColumnType(): any;
isChildOf(el: any, className: any): boolean;
hasClass(el: any, className: any): boolean;
validateSaveEventInDocument(target: any): void;
sortChange(sort: SortDescriptor[]): void;
dataStateChange(state: DataStateChangeEvent): void;
private updateIndex(dataUpdated);
private loadData();
createFormGroup(): void;
addHandler({sender}: {
sender: any;
}): void;
executeFunctionValidation(func: any, param: any): any;
saveLine(): void;
editClickHandler({rowIndex, dataItem}: {
rowIndex: any;
dataItem: any;
}): void;
getRowIndex(arr: any, searchFor: any): number;
editHandler({sender, rowIndex, dataItem}: {
sender: any;
rowIndex: any;
dataItem: any;
}): void;
saveClick(): void;
isGroup(): boolean;
getColumn(key: any): ThfGridColumn;
closeEditor(grid: any, rowIndex?: any): void;
saveHandler({sender, rowIndex, formGroup, isNew}: {
sender: any;
rowIndex: any;
formGroup: any;
isNew: any;
}): void;
cancelPropagation(event: any): void;
cancelHandler({sender, rowIndex}: {
sender: any;
rowIndex: any;
}): void;
removeHandler({rowIndex}: {
rowIndex: any;
}): void;
isValidForm(): boolean;
allData(): ExcelExportData;
changeValueCheckbox(event: any, index: any, data: any, column: any): void;
onSelectionChange(e: any): void;
onShowMore(): void;
groupChange(groups: GroupDescriptor[]): void;
private loadDataGroupable();
private getObjects(data);
}