import { IDesignerHooks } from '../hooks'; import { LowCodeWidget } from '../low-code-types'; import { IDesignerState } from '../state'; /** * 设计界面控制器接口 * * @author zhanghanrui * @date 2024-05-09 14:05:12 * @export * @interface IDesignerController */ export interface IDesignerController { /** * 设计界面状态 * * @author zhanghanrui * @date 2024-05-09 14:05:19 */ readonly state: IDesignerState; /** * 设计界面钩子 * * @type {IDesignerHooks} */ readonly hooks: IDesignerHooks; /** * 鼠标悬浮元素清单 * * @author zhanghanrui * @date 2024-05-10 10:05:47 * @type {HTMLDivElement[]} */ readonly hoverStack: HTMLDivElement[]; /** * 拖拽设计区容器 * * @author zhanghanrui * @date 2024-05-10 13:05:46 * @type {HTMLDivElement} */ stageContainer: HTMLDivElement; /** * 拖拽展开定时器 * * @type {(number | null)} */ expansionTimer: number | null; /** * 设置拖拽数据 * * @author zhanghanrui * @date 2024-05-09 14:05:31 * @param {(IData | null)} data */ setDragData(data: IData | null): void; /** * 获取当前拖拽数据 * * @author zhanghanrui * @date 2024-05-09 14:05:49 * @return {*} {(IData | null)} */ getDragData(): IData | null; /** * 新增鼠标悬浮堆栈 * * @author zhanghanrui * @date 2024-05-10 10:05:02 * @param {HTMLDivElement} el */ pushStack(el: HTMLDivElement): void; /** * 删除鼠标悬浮堆栈 * * @author zhanghanrui * @date 2024-05-08 11:05:53 * @param {HTMLDivElement} el */ popStack(el: HTMLDivElement): void; /** * 重置悬浮缓存 * * @author zhanghanrui * @date 2024-05-15 11:05:51 */ resetStack(): void; /** * 添加展开容器 * * @param {LowCodeWidget.BasicSchema[]} widgets * @returns {*} {void} */ setExpansion(widgets: LowCodeWidget.BasicSchema[]): void; /** * 取消展开容器 */ cancelExpansion(): void; /** * 强制设计界面重绘 */ force(): void; /** * 重新计算选中高亮 */ changeSelectHighlight(): void; /** * 重新计算悬浮高亮 */ changeHoverHighlight(): void; /** * 设置选中 * * @param {string} key */ setSelect(key: string): void; }