import { OnInit, OnChanges, OnDestroy, SimpleChanges, EventEmitter, NgZone, AfterViewInit } from '@angular/core'; import { GridComponent, DataBindingDirective, SelectionDirective, CellClickEvent, DataStateChangeEvent, GridDataResult, PageChangeEvent } from '@progress/kendo-angular-grid'; import { State } from '@progress/kendo-data-query'; import { BindingData, FrameEventBus, UIState, Form, ViewModel } from '@farris/devkit'; import { DialogService } from '@farris/ui-dialog'; import { RuntimeStateService } from '@farris/ui-common'; import { DateTimeHelperService } from '@farris/ui-common/date'; import { FarrisKendoGridFormatService } from '../format/index'; export declare class KendoGridBindingDirective extends DataBindingDirective implements OnInit, AfterViewInit, OnChanges, OnDestroy { bindingData: BindingData; uiState: UIState; eventBus: FrameEventBus; viewModel: ViewModel; grid: GridComponent; selectionDir: SelectionDirective; dialogSer: DialogService; private dateService; private kendogridFormatSer; private rts; ngZone: NgZone; /** * 是否允许编辑 * 默认可编辑 因为有批量编辑列表 */ editable: boolean; /** * 编辑时绑定的表单 */ form: Form; /** * 分组列 */ groupField: string; groupAggrFields: string[]; farrisBindingGridOption: any; rowClassName: any; appendRow: EventEmitter; sortChangeEvent: EventEmitter; rowClass: EventEmitter; readonly gridOption: any; readonly len: number; dataItem: any; gridElement: any; gridKeydownEvent: any; gridCellClickEvent: any; gridCellCloseEvent: any; cellClickEvent: CellClickEvent; hiddenColLen: number; /** * TODO: 从实体获取其默认值 * 当前行索引值,默认第一个 */ rowIndex: number; columnIndex: number; sender: any; interVal: any; dataId: any; currentSkip: number; private currentRowId; cellClickParam: CellClickEvent; /** * 是否启用多选,默认未启用 */ private isMultipleSelectionMode; readonly IsMultipleSelectionMode: boolean; /** * 上一个选中行,默认不存在 */ lastRowIndex: number; /** * 选中行切换事件 */ selectedRowChange: EventEmitter; /** * checkbox选择事件 */ selectedCheckboxChange: EventEmitter; /** * 绑定列表(Grid对应数据源) */ private readonly bindingList; /** * 获取分页信息 */ private getPagingInfo; private aggrColumns; private bindingChangeSubscription; /** * 构造函数 * @param grid 宿主Grid */ constructor(bindingData: BindingData, uiState: UIState, eventBus: FrameEventBus, viewModel: ViewModel, grid: GridComponent, selectionDir: SelectionDirective, dialogSer: DialogService, dateService: DateTimeHelperService, kendogridFormatSer: FarrisKendoGridFormatService, rts: RuntimeStateService, ngZone: NgZone); /** * 指令初始化后 */ ngOnInit(): void; ngAfterViewInit(): void; /** * 检测change的路径和BindingPath是否匹配 */ private checkIfChangeMatchBindingPath; /** * 处理选中主键变更 */ private handleSelectedKeyChange; /** * 发射选中行切换事件 * @description 统一单选模式和多选模式下的行切换事件 */ private emitSelectedRowChange; private checkCurrentRowIdExists; /** * 同步已删除键到选中集合 */ private syncDeletedKeys; private renderCurrentRow; /** * 指令输入变更处理 */ ngOnChanges(changes: SimpleChanges): void; /** * 指令销毁,注销订阅 */ ngOnDestroy(): void; private refreshView; /** * 绑定data到宿主grid上 * @deprecated */ private bindData; private refreshData; /** * 退出编辑状态 * @param change 变更 */ private endCellEdit; private refreshSummary; onPageChange(event: PageChangeEvent): void; /** * 重置grid分页信息 */ private resetPageInfo; private initDataState; onStateChange(state: DataStateChangeEvent): void; protected process(state: State): GridDataResult; selectedKeysChangeHandler(selectedKeys: string[]): void; selectionChangeHandler(event: any): void; /** * 处理checkbox选中事件 */ private handleSelectedCheckboxChange; cellClickHandler(event: CellClickEvent): void; /** * 处理选中行切换事件 */ private handleSelectedRowChange; /** * 获取指定行的主键 * @param row 行号 */ private getPrimary; cellCloseHandler(event: any): any; enterCell(e: any): void; private bindingGridOption; private updatePager; setEditable(rowNumber: number, columnNumber: number): void; updateIndex(rowNumber: number, columnIndex: number): { rowIndex: number; columnIndex: number; }; notReadOnly(column: any, param: any): boolean; setValue(value: any, column: any): void; getGroupItem(data: any[], rowNumber: number): any; getValue(dataItem: any, field: string): any; private getFieldPaths; /** * 回车进入下一个单元格 */ enterNextCell(): void; getColumns(columns: any): any; private renderSelectionRow; private getSelectedIdFromGrid; private setSelectionIdToBindingData; isEditable(): any; isDataChanged(): boolean; }