import { OnInit, OnDestroy, OnChanges, SimpleChanges } from '@angular/core'; import { NotifyService } from '@farris/ui-notify'; import { CellValue, FragmentItem, TemplateCellDesc, TemplateDesc, ValueItem, GenerateResult, ResourceData } from '../template-editor.interface'; import { GenerateService } from './generate.service'; export declare class GridEditorComponent implements OnInit, OnChanges, OnDestroy { private genService; private notifyService; initValue: CellValue; templateDesc: TemplateDesc; initValueTrusted: boolean; resourceData: ResourceData; curValue: CellValue; grid: TemplateCellDesc[][]; _activeItem: ValueItem | { id: string; item: ValueItem; }[]; clickAreaNativeEl: any; private hideInputGroup; activeItem: ValueItem | { id: string; item: ValueItem; }[]; setClickAreaNativeEl(el: any): void; constructor(genService: GenerateService, notifyService: NotifyService); ngOnDestroy(): void; ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; /** * 从模板描述中获取初始值 * @description * 通过initValue字段获取 */ private mergeInitValueFromTemplateDesc; private setCustomValue; /** * 将初始值合并入当前值 */ private mergeInitValue; /** * 合并值占位符编辑值 * @param src 源值 * @param target 目标值 */ private mergeValueItem; /** * 合并占位片段的值 * @param src 源片段 * @param target 当前片段 */ private mergeFragmentItem; /** * 追加新片段 * @param item 片段占位符编辑值 */ private pushFragmentItem; /** * 遍历模板描述并将其中的占位符提取到编辑值中 * @description 对于片段类型占位符,默认添加一个空的“值组合” */ private collectPlaceholder; /** * 重新渲染编辑表格 * @description 切换模板时调用 */ private render; /** * 处理单元格单击事件 * @param item 单元格编辑值 */ handleCellClick(item: ValueItem | { id: string; item: ValueItem; }[]): void; /** * 新增片段 * @param cell 单元格描述 * @param item (片段)当前值 * @param index 插入位置(如果为-1则在最后追加,否则在指定位置插入) */ handleFragmentAddition(cell: TemplateCellDesc, item: FragmentItem, index: number): void; /** * 删除片段 * @param itemGroup 片段数组中对应的条目 * @param cell 单元格描述 * @param item 片段当前值 */ handleFragmentMinus(itemGroup: { id: string; item: ValueItem; }[], cell: TemplateCellDesc, item: FragmentItem): void; /** * 从片段条目中提取待显示的值条目(显示到单元格里) * @param cell 单元格描述 * @param itemGroup 片段条目 * @returns 待显示的值条目 */ getMainValueItem(cell: TemplateCellDesc, itemGroup: { id: string; item: ValueItem; }[]): ValueItem; /** * 生成目标HTML片段 * @param template 模板字符串 */ generateHtml(template: string): GenerateResult; }