基础交互手册
本页描述基础插件能力。Editor已装配常用交互;具体按钮、右键菜单和产品入口由宿主提供,插件存在不代表页面自动出现相应UI。
开发者接入类、配置、方法、事件及释放约定见基础交互API。
选择与变换
SelectionPlugin负责点选、框选与移动;SelectionOutlinePlugin负责选区和控制柄展示;TransformPlugin处理缩放与旋转。锁定、比例约束、容器关系和自动布局共同影响是否可操作。
选择组合与选择组合成员有层级差别,双击等下钻操作由交互状态处理;布局节点还可能区分单个主题与整体选区。宿主用selectedSubtreeNodeIds读取整体意图,避免自己猜测。
完整命令入口见节点与选择API。工具栏修改尺寸或角度时沿用几何会话,避免使用另一套与拖拽不同的缩放算法。
视口导航
ViewportNavigationPlugin支持空格加左键拖动或中键平移。滚轮输入经宿主归一化:平移量用于平移,捏合/Ctrl滚轮的缩放量以指针为锚点缩放。
| 快捷键 | 作用 |
|---|---|
Ctrl/⌘ + + / - | 放大 / 缩小 |
Ctrl/⌘ + 0 | 恢复100%缩放,保留缩放锚点语义 |
Shift + 1 | 适应全部内容 |
| 空格按住并拖动 | 平移,失焦时必须复位按住状态 |
这些操作只更新会话,不写入文档或撤销历史。容器尺寸变化与主动“适应内容”是不同步骤。
编辑快捷键
EditingShortcutsPlugin在画布获焦且没有更高优先级输入消费时工作。
| 快捷键 | 操作 |
|---|---|
| Ctrl/⌘ + Z | 撤销 |
| Ctrl/⌘ + Shift + Z,或Ctrl/⌘ + Y | 重做 |
| Ctrl/⌘ + A | 选择根层级内容 |
| Ctrl/⌘ + G / Shift + G | 组合 / 解组(两者均保留Ctrl/⌘) |
| Ctrl/⌘ + D | 创建副本 |
| Ctrl/⌘ + Shift + L | 切换锁定,避开浏览器Ctrl+L |
| Enter / F2 | 对支持的当前目标进入文字编辑 |
| Delete / Backspace | 删除当前可操作内容 |
文字编辑、表格和导图会使用更具体的输入作用域,可能接管Enter、Tab、方向键等。不要把本表当作所有微观编辑态都使用的同一套行为。
文字编辑与格式
TextEditPlugin使用节点文本槽位提供编辑目标。Editor通过textEditor暴露格式与状态能力:onChange返回解绑函数,toggleFormat/applyStyle/setAlign/setVerticalAlign修改当前格式目标。
宿主图标按钮按下时保留画布焦点;面板表单字段需要先提交失焦,再执行命令。输入法组合期间不触发画布快捷键。节点标题与连线标签共享文本模型,不另存一份DOM文本作为文档事实。
连线工具
ConnectorToolPlugin创建连线,ConnectorEditPlugin编辑端点与路径。通过Editor的startConnectorTool(type)进入工具,线型为straight/orthogonal/curved;stopTool()退出。
绑定端点随节点移动更新,自由端点保留世界坐标。onConnectorDropOnBlank只报告已经落在空白处的事实,宿主可在该位置提供新建选择,再调用connectNewNode。手动拐点可通过resetConnectorRoute清除并回到自动路由。
剪贴板
ClipboardPlugin配合宿主剪贴板桥接处理节点和连线。复制容器时应保留其后代与内部关系,不通过导出整份文档代替局部复制。
图片复制粘贴涉及资产作用域、引用与二进制可用性,不能只复制assetId字符串。浏览器权限、剪贴板格式和错误提示属于宿主环境;插件不提供任意跨设备资产传输的承诺。
手势与卸载
排他交互认领pointer session,取消、失焦和卸载都要清理。自定义工具与基础选择竞争时,应通过公开指针钩子和输入作用域协调,详见输入协议。