Provide public Minimap services and settings property for butterfly
// in butterfly
canvas.setMinimap(true, {/* options */})
// close minimap
canvas.setMinimap(false)
root canvas dom
minimap height,default:200
minimap width,default:200
minimap container class name,default:butterfly-minimap-container
minimap container css
minimap view css
minimap backgroud css
node color,default:rgba(255, 103, 101, 1)
group color,default:rgba(0, 193, 222, 1)
group data,default:[ ]
interface Node {
id: number | string; // Node ID
group: number | string; // Node group ID
left: number; // Abscissa
top: number; // Y-axis
width: number; // width
height: number; // height
minimapActive: boolean; // Is currently active
}
group data,default:[ ]
interface Group {
id: number | string; // Node group ID
left: number; // Abscissa
top: number; // Y-axis
width: number; // width
height: number; // height
options: {
minimapActive: boolean; // Is currently active
}
}
canvas offset,default:[0, 0]
canvas zoom,default:1
minimap interaction function for moving the canvas, referring to butterfly's move function
interface MoveFn {
([x: number, y: number]): void
}
interaction function for butterfly's convert coordinate the canvas
interface Term2CvsFn {
([x: number, y: number]): [x: number, y: number]
}
interaction function for canvas's convert to coordinate of screen
interface Cvs2TermFn {
([x: number, y: number]): [x: number, y: number]
}
safe distance to protect user from moving viewport window outside of minimap,default:20
active node color,default:rgba(255, 253, 76, 1)
active group color,default:rgba(255, 253, 76, 1)
events to call minimap redraw,default:[ ]
// in other system
const Minimap = require('butterfly-dag').Minimap;
// Create a Minimap
minimap = new Minimap({
root: HTMLElement,
move: () => null,
terminal2canvas: () => null,
// Incoming initial data for initial rendering
nodes: [],
groups: [],
zoom: 1,
offset: []
});
// Update Minimap data
minimap.update({
nodes: this.nodes,
groups: this.groups,
zoom: this.getZoom(),
offset: this.getOffset()
});
// destroy
minimap.destroy();