butterfly-dag
Version:
一个基于数据驱动的节点式编排组件库,让你有方便快捷定制可视化流程图表
132 lines (117 loc) • 3.49 kB
Markdown
# 缩略图(Minimap)
提供通用的Minimap服务和专属小蝴蝶的设置选项
## 小蝴蝶中使用
```js
// in butterfly
canvas.setMinimap(true, {/* options */})
// 停止使用
canvas.setMinimap(false)
```
<br>
<br>
## 属性说明(options)
### root _`<DOMNode>`_(必填)
画布容器
### height _`<Number>`_ (选填)
缩略图高度,默认值:`200`
### width _`<Number>`_ (选填)
缩略图宽宽度,默认值:`200`
### className _`<String>`_ (选填)
缩略图容器 class name,默认值:`butterfly-minimap-container`
### containerStyle _`<Object>`_ (选填)
缩略图容器 css
### viewportStyle _`<Object>`_ (选填)
视口 css
### backgroudStyle _`<Object>`_ (选填)
背景 css
### nodeColor _`<String>`_ (选填)
节点颜色,默认值:`rgba(255, 103, 101, 1)`
### groupColor _`<String>`_ (选填)
节点组颜色,默认值:`rgba(0, 193, 222, 1)`
### nodes _`<Array>`_ (选填)
节点数据,默认值:`[ ]`
```ts
interface Node {
id: number | string; // 节点ID
group: number | string; // 节点组ID
left: number; // 横坐标
top: number; // 纵坐标
width: number; // 宽度
height: number; // 高度
minimapActive: boolean; // 当前是否处于激活态
}
```
### groups _`<Array>`_ (选填)
节点组数据,默认值:`[ ]`
```ts
interface Group {
id: number | string; // 节点组ID
left: number; // 横坐标
top: number; // 纵坐标
width: number; // 宽度
height: number; // 高度
options: {
minimapActive: boolean; // 当前是否处于激活态
}
}
```
### offset _`<Array>`_ (选填)
画布偏移信息,默认值:`[0, 0]`
### zoom _`<Number>`_ (选填)
画布当前缩放比,默认值:`1`
### move _`<Function>`_(必填)
缩略图互动函数, 用于移动画布, 参考小蝴蝶的move
```ts
interface MoveFn {
([x: number, y: number]): void
}
```
### terminal2canvas _`<Function>`_ (必填)
互动函数, 屏幕坐标到画布坐标的转换
```ts
interface Term2CvsFn {
([x: number, y: number]): [x: number, y: number]
}
```
### canvas2terminal _`<Function>`_(必填)
互动函数, 画布坐标转换到屏幕坐标
```ts
interface Cvs2TermFn {
([x: number, y: number]): [x: number, y: number]
}
```
### safeDistance _`<Number>`_ (选填)
安全距离,用于限制用户将视口拖出minimap,默认值:`20`
### activeNodeColor _`<String>`_ (选填)
高亮的节点的颜色,默认值:`rgba(255, 253, 76, 1)`
### activeGroupColor _`<String>`_ (选填)
高亮的节点组的颜色,默认值:`rgba(255, 253, 76, 1)`
### events _`<Number>`_ (选填)
触发minimap重绘的事件,默认值:`[ ]`
<br>
<br>
## 其他系统中使用
```js
// in other system
const Minimap = require('butterfly-dag').Minimap;
// 新建一个 Minimap
minimap = new Minimap({
root: HTMLElement,
move: () => null,
terminal2canvas: () => null,
// 传入初始数据, 用于初始渲染
nodes: [],
groups: [],
zoom: 1,
offset: []
});
// 更新 Minimap 数据
minimap.update({
nodes: this.nodes,
groups: this.groups,
zoom: this.getZoom(),
offset: this.getOffset()
});
// 销毁
minimap.destroy();
```