import { BuilderHTMLElement, BuilderOptions } from '@farris/designer-element'; import { ElementPropertyConfig } from '@farris/ide-property-panel'; import { FormPropertyChangeObject } from '../../../../entity/property-change-entity'; import FdCollectionBaseComponent from '../../common/collection-base/fd-collection-base'; export default class FdTableComponent extends FdCollectionBaseComponent { /** 单元格实例 */ private tdComponents; /** 单元格模板 */ private tdComponentElements; readonly tdLinkKey: string; readonly tdWidgetLinkKey: string; private tdManager; constructor(component: any, options: BuilderOptions); getDefaultSchema(): any; getTemplateName(): string; /** padding是为了解决table不显示边框的问题 */ getStyles(): string; getClassName(): string; /** * 判断是否可以接收拖拽新增的子级控件 */ canAccepts(el: BuilderHTMLElement): boolean; /** * 去掉间距和线条 */ hideNestedPaddingInDesginerView(): boolean; getInnerComponentInstance(): any[]; init(): void; render(): any; attach(element: HTMLElement): Promise; /** * 点击单元格 * @param tdEle 单元格DOM元素 * @param event 事件 */ triggerTdClick(tdEle: HTMLElement, event?: MouseEvent): void; /** * 简单类表格在点击单元格时,要同时选中标签类单元格和编辑器类单元格,视觉上认为标签和编辑器是一个单元格 * @param tdEle 用户点击的单元格DOM元素 * @param event 事件 */ triggerMegedTdClick(tdEle: HTMLElement, event?: MouseEvent): void; /** * 清除页面上之前的选中状态 */ clearSelected(): void; /** * 单元格选中状态下增加边框宽度,宽度需要比table配置的边框宽度大1px,否则页面无法显示蓝色边框 * @param td 单元格元素 */ addSelectedBorderToSimpleTableTd(td: HTMLElement): void; /** * 单元格选中状态下增加边框宽度,用于模板form.ts中使用 * @param column 单元格schema */ getSelectedBorderStyle(column: any): string; /** * 获取单元格DOM元素 * @param targetTdId 单元格id */ getTdElement(targetTdId: string): any; /** * 获取同组的单元格DOM元素 * @param targetTdId 单元格id */ getTdElementsInSameGroup(targetGroupId: string): { tdElements: BuilderHTMLElement[]; activeEditorTdElement: HTMLElement; labelTdElement: HTMLElement; }; /** * 组装属性面板配置数据 */ getPropertyConfig(): ElementPropertyConfig[]; /** * 属性变更后 * @param changeObject 变更集 */ onPropertyChanged(changeObject: FormPropertyChangeObject): void; /** * 获取选中单元格的行、列信息 * @param targetTdId 单元格id */ private getTargetColumnData; /** * 显示菜单 * @param event 点击事件 * @param widgetEle 图标元素 */ private showTdManageContext; /** * 简单类表格的单元格是否可以拖拽,是否可以接收拖拽内容 * @param column 单元格元数据 * @param tdElement 单元格元素 */ private checkTdCanDragAndDrop; isEmptyValue(value: any): boolean; /** * 适配表单控件的元数据变更 */ private adaptOldControlSchema; /** * 注册label标签的编辑事件 */ private registerStaticTdContentEditable; /** * 修改控件标签后,同步schema字段 */ private syncSchemaFieldAfterControlTitleChanged; }