Clipboard
配置
剪切板,默认禁用。创建画布时通过以下配置启用。
const graph = new Graph({
clipboard: true,
})
// 等同于
const graph = new Graph({
clipboard: {
enabled: true,
}
})
创建画布后,可以调用 graph.enableClipboard() 和 graph.disableClipboard() 来启用和禁用剪贴板。
if (graph.isClipboardEnabled()) {
graph.disableClipboard()
} else {
graph.enableClipboard()
}
useLocalStorage
开启 useLocalStorage
后,被复制的节点/边同时被保存到 localStorage 中,浏览器刷新或者关闭后重新打开,复制/粘贴也能正常工作。
可以在创建画布时全局开启。
const graph = new Graph({
clipboard: {
enabled: true,
useLocalStorage: true,
}
})
也可以在调用以下三个方法时开启。
- graph.copy(cells: Cell[], options?: CopyOptions)
- graph.cut(cells: Cell[], options?: CopyOptions)
- graph.paste(options?: PasteOptions, targetGraph?: Graph)
例如:
graph.copy(cells, {
useLocalStorage: true,
})
方法
copy(...)
copy(cells: Cell[], options: CopyOptions = {}): this
复制节点/边。
参数
名称 | 类型 | 必选 | 默认值 | 描述 |
---|---|---|---|---|
cells | Cell[] | ✓ | 被复制的节点/边。 | |
options.deep | boolean | - | 是否递归复制所有子节点/边。 | |
options.useLocalStorage | boolean | - | 是否将复制的节点/边保存在 localStorage 中。 |
cut(...)
cut(cells: Cell[], options: CopyOptions = {}): this
剪切节点/边。
参数
名称 | 类型 | 必选 | 默认值 | 描述 |
---|---|---|---|---|
cells | Cell[] | ✓ | 被剪切的节点/边。 | |
options.deep | boolean | - | 是否递归复制所有子节点/边。 | |
options.useLocalStorage | boolean | - | 是否将复制的节点/边保存在 localStorage 中。 |
paste(...)
paste(options?: PasteOptions, graph?: Graph): Cell[]
粘贴,返回粘贴到画布的节点/边。
参数
名称 | 类型 | 必选 | 默认值 | 描述 |
---|---|---|---|---|
options.useLocalStorage | boolean | - | 是否使用 localStorage 中的节点/边。 | |
options.offset | number | { dx: number; dy: number } | 20 | 粘贴到画布的节点/边的偏移量。 | |
options.nodeProps | Node.Properties | - | 粘贴到画布的节点的额外属性。 | |
options.edgeProps | Edge.Properties | - | 粘贴到画布的边的额外属性。 | |
graph | Graph | this | 粘贴的目标画布,默认粘贴到当前画布。 |
getCellsInClipboard()
getCellsInClipboard: Cell[]
获取剪切板中的节点/边。
cleanClipboard()
cleanClipboard(): this
清空剪切板。
isClipboardEmpty()
isClipboardEmpty(): boolean
返回剪切板是否为空。
isClipboardEnabled()
isClipboardEnabled(): boolean
返回是否启用了剪切板。
enableClipboard()
enableClipboard(): this
启用剪切板。
disableClipboard()
disableClipboard(): this
禁用剪切板。
toggleClipboard(...)
toggleClipboard(enabled?: boolean): this
切换剪切板的启用状态。
参数
名称 | 类型 | 必选 | 默认值 | 描述 |
---|---|---|---|---|
enabled | boolean | - | 是否启用剪切板,缺省时切换剪切板的启用状态。 |