import { OnInit, ElementRef, AfterViewInit, InjectionToken, ChangeDetectorRef, Renderer2, OnDestroy, NgZone, ComponentFactoryResolver, TemplateRef, EventEmitter } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { NzMessageService } from 'ng-zorro-antd'; import { ContextMenuComponent, IContextMenuClickEvent, ContextMenuService } from 'ngx-contextmenu'; import { NgxExcelComponentState, NgxExcelColumn, NgxExcelRow, NgxExcelAction, NgxExcelContextChangeRecord } from '../../models/models'; import { NgxExcelController } from '../../services/services'; import { Observable } from 'rxjs'; interface NgxExcelAnchorItem { index: number; offset: number; } export declare const NgxExcelComponentRef: InjectionToken; export declare class NgxExcelComponent implements OnInit, OnDestroy, AfterViewInit { protected el: ElementRef; protected renderer2: Renderer2; protected cfr: ComponentFactoryResolver; protected cdr: ChangeDetectorRef; protected ngZone: NgZone; protected httpClient: HttpClient; protected message: NzMessageService; protected contextMenu: ContextMenuService; controller: NgxExcelController; componentStateEnums: typeof NgxExcelComponentState; componentState: NgxExcelComponentState; toggleColumnEnabled: boolean; decorativeCol: NgxExcelColumn; lineHeight: number; excelCols: NgxExcelColumn[]; excelRows: NgxExcelRow[]; loadedCount: number; total: number; attachedItemBegin: number; attachedItemEnd: number; scrollBarYWidth: number; scrollBarXHeight: number; excelRowsReflection: { [name: string]: number; }; excelPrefixActions: NgxExcelAction[]; excelGlobalActions: NgxExcelAction[]; excelContextActions: NgxExcelAction[]; excelColumnActions: NgxExcelAction[]; protected excelAnchorItem: NgxExcelAnchorItem; protected excelScreenItem: NgxExcelAnchorItem; protected excelAnchorScrollTop: number; protected excelAnchorScrollRunwayEnd: number; private _cacheKey; private _readonly; private _lazyload; private _scrollable; private _invisibleColumns; private _el; private _headEl; private _bodyEl; private _footEl; private _scrollBarXEl; private _scrollBarXScrolling; private _scrollBarXRatio; private _excelScrolling; private _componentSubscription; readonly: boolean; lazyload: boolean; scrollable: boolean; cellHeight: number; name: string; customTemplate: TemplateRef<{ $implicit: any; }>; customCalculateHeight: (context: any) => number; dataSet: any[]; dataSetChange: EventEmitter; protected contextMenuComponent: ContextMenuComponent; customClass: boolean; onContextMenu(e: MouseEvent): void; constructor(el: ElementRef, renderer2: Renderer2, cfr: ComponentFactoryResolver, cdr: ChangeDetectorRef, ngZone: NgZone, httpClient: HttpClient, message: NzMessageService, contextMenu: ContextMenuService, controller: NgxExcelController); ngOnInit(): void; ngOnDestroy(): void; ngAfterViewInit(): void; /** * 反转列显示 * @param _ 菜单点击事件 * @param column 关联的表格列 */ handleColumnToggle(_: IContextMenuClickEvent, column: NgxExcelColumn): void; /** * 当菜单被点击时执行 * @param _ 菜单点击事件携带当前操作的上下文 * @param action 关联的操作动作 */ handleContextMenuClick(_: IContextMenuClickEvent, action: NgxExcelAction): void; /** * 批量处理上下文模型变更 * @param records 变更记录 * @param relativeContext 相关的上下文模型 */ handleContextChange(records: NgxExcelContextChangeRecord[], relativeContext?: any): void; /** * 更新上下文模型 * @param contexts 期望更新的上下文模型列表 * @param relativeContext 相关的上下文模型 * @param isQuiet 静默操作 */ updateContexts(contexts: any[], relativeContext?: any, isQuiet?: boolean): void; /** * 新增上下文模型 * @param contexts 期望新增的上下文模型列表 * @param relativeContext 相关的上下文模型 * @param isQuiet 静默操作 * @param prepend 是否向前新增 */ appendContexts(contexts: any[], relativeContext?: any, isQuiet?: boolean, prepend?: boolean): void; /** * 向前新增上下文模型 * @param contexts 期望新增的上下文模型列表 * @param relativeContext 相关的上下文模型 * @param isQuiet 静默操作 */ prependContexts(contexts: any[], relativeContext?: any, isQuiet?: boolean): void; /** * 删除上下文模型 * @param contexts 期望删除的上下文模型列表 * @param isQuiet 静默操作 */ removeContexts(contexts: any[], isQuiet?: boolean): void; /** * 当上下文发生变化时执行 * @param records 上下文变更记录列表 * @param relativeContext 相关的上下文 */ handleChangedContexts(records: NgxExcelContextChangeRecord[], relativeContext?: any): void; /** * 重新加载数据 */ reload(): void; /** * 设置 Excel 进入 loading 状态 */ loading(): void; /** * 设置 Excel 进入 normal 状态 */ normal(): void; /** * 重建UI */ rebuildUi(): void; /** * 增加表格列 * @param column 列定义 */ appendColumn(column: NgxExcelColumn, index?: number): void; /** * 删除表格列 * @param name 列名称 */ removeColumn(name: string): void; /** * 增加表格操作项 * @param action 操作项定义 */ addExcelAction(action: NgxExcelAction): void; /** * 获得上下文菜单 */ getContextMenuComponent(): ContextMenuComponent; /** * 绑定搜索条件 * @param filters 全局搜索条件 */ bindFilters(filters: { [param: string]: string | string[]; }): NgxExcelComponent; /** * 绑定全局元数据请求字段 * @param metas 全局元数据请求字段 */ bindMetas(metas: string | string[]): Observable<{ [name: string]: any; }>; /** * 填充内容,如果需要的话更新滚动条的位置 */ protected attachContent(): void; /** * 加载数据行 */ protected _loadRows(): Observable; /** * 当滑动滚动条执行 */ private _handleScrollBarXScroll; /** * 当Excel滚动时执行 */ private _handleExcelScroll; /** * 注册Window尺寸变化事件 */ private _listenWindowOnResize; /** * 注册Excel滚动事件 */ private _listenExcelOnScroll; /** * 注册ScrollBarX滚动事件 */ private _listenScrollBarXOnScroll; /** * 注册原生事件监听 */ private _listenNativeEvents; /** * 获得已配置的隐藏列 */ private _getInvisibleColumns; /** * 保存隐藏列配置 */ private _cacheInvisibleColumns; /** * 获得错误处理函数 */ private _getErrorHandles; } export {};