import { FarrisDesignBaseNestedComponent } from '@farris/designer-element'; import { DesignerEnvType } from '@farris/designer-services'; import { ElementPropertyConfig } from '@farris/ide-property-panel'; import { LocaleService } from '@farris/ui-locale'; import { ToolBarType } from '../schema/schema'; import { default as ToolBarItemComponent } from './toolbaritem/component/fd-toolbar-item'; import { ToolBarItemType } from './toolbaritem/schema/schema'; export default class FdToolBarComponent extends FarrisDesignBaseNestedComponent { envType: DesignerEnvType; /** 元数据(DOM结构) */ component: ToolBarType; /** 工具栏按钮组件实例 */ toolBarItem: ToolBarItemComponent; /** 工具栏按钮组件实例列表 */ toolBarItemList: ToolBarItemComponent[]; /** 工具栏按钮元数据 */ items: Array; /** 当前选中的按钮id,用于在工具栏attach方法中触发选中某一个按钮 */ selectedId: string; selected: ToolBarItemComponent; /** 当前选中的按钮实例 */ selectedToolbarItem: ToolBarItemComponent; /** 按钮对齐方式,默认为flex-end。在section toolbar的场景下值为false */ justifyContentEnd: boolean; isDraggable: boolean; /** 设计器中二级按钮的展示位置:向下bottom / 向上top。目前只有ModalFooter中toolbar的展示位置为向上 */ popDirection: string; localeService: LocaleService; constructor(component: any, options: any); init(): void; initItems(): void; /** * 不支持删除 */ checkCanDeleteComponent(): boolean; /** * 不允许移动 */ checkCanMoveComponent(): boolean; /** * 隐藏间距 */ hideNestedPaddingInDesginerView(): boolean; getDefaultSchema(): any; render(): any; /** * 元素扩展事件 */ attach(element: HTMLElement): Promise; /** * 为防止单个按钮文本超长,给按钮增加最大长度,超出后以...的格式显示。 * 按钮最大宽度 = 整个toolbar的宽度-下拉图标的宽度 */ private addMaxWidthForButton; registerDnd(): void; /** * 拖拽结束事件 */ dragEnd(e: any): void; appendItem(item: any): void; /** * 父元素调用删除 * @param id */ removeToolBarItem(id: string): void; confirmRemoveToolbarItem(id: string): void; /** * 复制按钮 * @param id */ cloneToolBarItem(id: string): void; /** * 复制按钮时,将按钮相关的表达式复制一份 */ copyExpression(itemToClone: any, clonedToolBarItem: any): void; /** * 组装属性面板配置数据 */ getPropertyConfig(): ElementPropertyConfig[]; /** * 属性变更后事件:默认监听样式类属性变更,并触发模板重绘 * @param changeObject 变更集 * @param propertyIDs 需要额外监听的属性ID列表 */ onPropertyChanged(changeObject: any): void; setSelectedId(id: string): void; /** * 选中工具栏后:关闭二级按钮的下拉面板 * @param e 点击事件 */ afterComponentClicked(e?: PointerEvent): void; /** * 涉及到按钮绑定事件的删除,故触发同步actions操作 */ syncActions(): void; removeDropDownCls(): void; /** * 若按钮的只读、禁用等绑定了表达式,那么按钮删除时需要清除对应表达式 */ private deleteExpression; /** * 删除工具栏后,要同步移除按钮配置过的表达式 */ onRemoveComponent(): void; }