import { CdkDragDrop } from '@angular/cdk/drag-drop'; import { ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit, TemplateRef } from '@angular/core'; import { ControlValueAccessor, FormBuilder, FormGroup } from '@angular/forms'; import { BixiI18nService, IEditableI18n } from '@bixi/core/i18n'; import { NzSafeAny } from 'ng-zorro-antd/core/types/any'; import { NzSelectComponent } from 'ng-zorro-antd/select'; import { Subscription } from 'rxjs'; import { IEditableCol, IEditableRow, IEditableSelectOption } from './editable-table.type'; export declare type IOnTouchedType = () => NzSafeAny; export declare type IOnChangeType = (value: NzSafeAny) => void; export declare class BixiEditableTableComponent implements ControlValueAccessor, OnInit, OnDestroy { private fb; private i18n; private cdr; isValid: boolean; form: FormGroup; editedRows: IEditableRow[]; editRow: IEditableRow; cacheRow: IEditableRow | null; editRowIndex: number | null; rows: IEditableRow[]; addText: string; i18nSubscription: Subscription; editTransitions: IEditableI18n; _cols: IEditableCol[]; get cols(): IEditableCol[]; set cols(cols: IEditableCol[]); scroll: { y: string; }; draggable: boolean; dragable: boolean; footer?: TemplateRef<{}> | string | null; editable: boolean; validate: (fg: FormGroup, rows: IEditableRow[], row: IEditableRow | null) => { key: string; message: string; }[]; deleteRow: EventEmitter; addRow: EventEmitter; dirtyRowsChange: EventEmitter; editChange: EventEmitter; firstEditingEle: ElementRef | NzSelectComponent; onChange: IOnChangeType; onTouched: IOnTouchedType; constructor(fb: FormBuilder, i18n: BixiI18nService, cdr: ChangeDetectorRef); get rowDraggable(): boolean; get rowEditable(): boolean; getSelectOptionName(options: IEditableSelectOption[], key: string, col: IEditableCol): string; getColValue(col: IEditableCol, val: string): string; ngOnInit(): void; private setTranslation; get isEditing(): boolean; private collectFormGroup; private checkValidity; onStartEdit(row: IEditableRow, index: number): void; get editDirty(): boolean; reset(): void; private stopEdit; onConfirm(): void; cancel(): void; onClear(input: HTMLInputElement, key: string): void; onControlChange(value: string, key: string): void; private isRowEqual; onDelete(index: number): void; private collectRowChange; submitChange(): void; drop(event: CdkDragDrop): void; onAddRow(): void; writeValue(value: IEditableRow[]): void; registerOnChange(fn: IOnChangeType): void; registerOnTouched(fn: IOnTouchedType): void; ngOnDestroy(): void; private isEmpty; }