import { OnInit, TemplateRef, OnDestroy, ElementRef, Renderer2, ChangeDetectorRef, AfterContentInit } from '@angular/core'; import { ControlValueAccessor } from '@angular/forms'; import { ContextMenuComponent, ContextMenuService } from 'ngx-contextmenu'; import { UploadXHRArgs, UploadFile, NzModalService, UploadChangeParam } from 'ng-zorro-antd'; import { ClipboardService } from 'ngx-clipboard'; import { TextMaskConfig } from 'angular2-text-mask'; import { NgxExcelComponentState, NgxExcelCellMode, NgxExcelColumnType, NgxExcelColumn, NgxExcelColumnTemplateContext, NgxExcelSelectOption } from '../../models/models'; import { NgxExcelUploadService } from '../../services/services'; import { NgxExcelCellInterface } from '../../interfaces/ngx-excel-cell.interface'; import { NgxExcelContextComponent } from '../ngx-excel-context/ngx-excel-context.component'; import { Subscription, Subject, Observable } from 'rxjs'; export declare class NgxExcelCellComponent extends NgxExcelCellInterface implements OnInit, OnDestroy, AfterContentInit, ControlValueAccessor { protected el: ElementRef; protected renderer2: Renderer2; protected cdr: ChangeDetectorRef; protected modalService: NzModalService; protected contextMenuService: ContextMenuService; protected clipboardService: ClipboardService; componentValue: any; componentContext: any; componentValueStr: string; invalidFeedback: string; componentModeEnums: typeof NgxExcelCellMode; componentMode: NgxExcelCellMode; componentStateEnums: typeof NgxExcelComponentState; componentState: NgxExcelComponentState; columnTypeEnums: typeof NgxExcelColumnType; multilineTextCopied: boolean; multilineTextAcceptedWordCount: number; selectIsLoading: boolean; selectAllowClear: boolean; selectAllowMultiple: boolean; selectTypeaheadKey: string; selectSearchSubject: Subject; selectOptions: any[]; selectOptionLabelKey: string; selectAcceptedCount: number; selectCompareWith: (o1: any, o2: any) => boolean; uploadUrl: string; uploadAcceptedFileIcons: string[]; uploadButtonOptions: { showPreviewIcon: boolean; showRemoveIcon: boolean; }; uploadMaxCount: number; uploadAcceptedFileType: string; uploadCustomRequest: (item: UploadXHRArgs) => Subscription; uploadFileChange: (uploadChangeParam: UploadChangeParam) => void; uploadBeforeCallback: (file: File) => Observable; uploadPreviewCallback: (file: UploadFile) => void; uploadRemoveCallback: (file: UploadFile) => Observable; uploadPreviewUrl: string; inputMaskTextNumber: TextMaskConfig; inputMaskNumber: TextMaskConfig; inputMaskCurrency: TextMaskConfig; inputMaskNegativeCurrency: TextMaskConfig; inputMaskDate: TextMaskConfig; inputMaskTime: TextMaskConfig; inputMaskDateTime: TextMaskConfig; private _readonly; private _doubleClickedCount; private _doubleClickedTn; private _contextMenuComponent; private _onChangeCallback; private _onTouchCallback; private _onTouchedCallback; private _canEditFn; private _validateFn; private _uploadServiceFactory; private _pullForeignModelsFn; private _pullSelectOptionsFn; private _componentSubscription; excelContext: NgxExcelContextComponent; template: TemplateRef; templateEdit: TemplateRef; templateOptional: TemplateRef; onClickedCallback: (context: any) => void; placeholder: string; disabled: boolean; uploadPreviewModalTpl: TemplateRef; excelCellClass: boolean; excelCellUploadClass: boolean; excelCellMultilineTextClass: boolean; selectedClass: boolean; disabledClass: boolean; onExcelCellClicked(e: Event): void; onContextMenu(e: MouseEvent): void; constructor(el: ElementRef, renderer2: Renderer2, cdr: ChangeDetectorRef, modalService: NzModalService, contextMenuService: ContextMenuService, clipboardService: ClipboardService); ngOnInit(): void; ngOnDestroy(): void; ngAfterContentInit(): void; /** * 组件赋值 * @param context 数据行 */ writeValue(context: any, once?: boolean): void; /** * 注册单元格的值变化回调事件 * @param callback 回调函数 */ registerOnChange(callback: (column: NgxExcelColumn, value: any) => Observable): void; /** * 注册单元格的获得焦点回调事件 * @param callback 回调函数 */ registerOnTouch(callback: (component: NgxExcelCellComponent, column: NgxExcelColumn) => void): void; /** * 注册单元格的失去焦点回调事件 * @param callback 回调函数 */ registerOnTouched(callback: (component: NgxExcelCellComponent, column: NgxExcelColumn | string, value: any) => void): void; /** * 注册文件上传服务的工厂函数 * @param factory 工厂函数 */ registerUploadServiceFactory(factory: (payload: { [name: string]: string | Blob; }) => NgxExcelUploadService): void; /** * 注册判断单元格是否可被编辑的函数 * @param fn 判断函数 */ registerCanEditFn(fn: (column: NgxExcelColumn) => boolean): void; /** * 注册判断单元格有效性的函数 * @param fn 判断函数 */ registerValidateFn(fn: (column: NgxExcelColumn, value: any) => boolean | string | Observable): void; /** * 拉取外键模型的函数 * @param fn 外部函数 */ registerPullForeignModelsFn(fn: (column: NgxExcelColumn, keyword?: string) => Observable): void; /** * 拉取下拉菜单的函数 * @param fn 外部函数 */ registerPullSelectOptionsFn(fn: (column: NgxExcelColumn) => Observable): void; /** * 设置组件的可用性 * @param isDisabled 是否禁用 */ setDisabledState(isDisabled: boolean): void; templateHandle: (e: Event, value: any) => void; /** * 下拉菜单可选项搜索 * @param keyword 搜索关键字 */ onSelectSearch(keyword: string): void; /** * 当 pencil 图标被点击时执行 * @param e 点击事件 */ handleEditClicked(e: Event): void; handleCopyButtonClick(e: Event): void; /** * 当组件值确认时执行 */ handleComponentValueChanged(): void; reload(): void; /** * 注册单元格上下文菜单 * @param contextMenuComponent 上下文菜单组件 */ registerContextMenu(contextMenuComponent: ContextMenuComponent): void; /** * 外部调用单元格被选中 */ select(): void; /** * 外部调用单元格取消选中 */ unselect(): void; /** * 重建组件关联的属性值 * @param componentValue 新的属性值 */ private _rebuildComponentValue; /** * 根据字段名获得当前上下文的字段值 * @param componentValue 行内容对象属性值 */ /** * 切换到编辑模式 */ private _switchEditMode; /** * 选择框单元格初始化 */ private _initialSelectCell; /** * 多行文本初始化 */ private _initialMultilineTextCell; /** * 上传文件单元格初始化 */ private _initialUploadCell; /** * 获得上传服务对象 */ private _getUploadService; /** * 获得文件类型图标 * @param filename 文件名 */ /** * 验证上传文件的类型 * @param file 上传的文件 */ private _validateFileType; /** * 验证上传文件的大小 * @param file 上传的文件 */ private _validateFileSize; }