fix: combo link point

This commit is contained in:
Yanyan-Wang 2023-09-21 16:52:05 +08:00
parent fae852f6c6
commit 5204fcbdbe
151 changed files with 971 additions and 165 deletions

View File

@ -81,8 +81,8 @@
- fix: image lost while updating the size for an image node, closes: #3938;
### 4.7.7
- feat: getContentPlaceholder and getTitlePlaceholder for Annotation plugin;
- feat: getContentPlaceholder and getTitlePlaceholder for Annotation plugin;
### 4.7.6
@ -93,9 +93,9 @@
- perf: Annotation support updating positions for outside cards by calling updateOutsideCards;
### 4.7.4
- perf: Annotation min-width and input width;
### 4.7.4
- perf: Annotation min-width and input width;
### 4.7.3
@ -192,7 +192,7 @@
- fix: destroyLayout error, closes: #3727;
- fix: drag combo with stack problem, closes: #3699;
- fix: updateLayout does not take effect if update layout with same type as graph instance configuration, closes: #3706;
- fix: updateLayout does not take effect if update layout with same type as graph instance configuration, closes: #3706;
- fix: legendStateStyles typo, closes: #3705;
- perf: zoom-canvas take the maximum and minimum values instead of return directly;
- perf: minimap cursor move;
@ -205,7 +205,6 @@
- chore: improve the types of graph events;
- fix: position animate considers origin attributes;
#### 4.6.3
- feat: shouldDeselect param for lasso-select;
@ -250,18 +249,17 @@
- feat: translate graph with animation;
- feat: zoom graph with animation;
- feat: timebar supports filterItemTypes to configure the types of the graph items to be filtered; only nodes can be filtered before;
- feat: timebar supports filterItemTypes to configure the types of the graph items to be filtered; only nodes can be filtered before;
- feat: timebar supports to configure the rotate of the tick labels by tickLabelStyle[dot]rotate;
- feat: timebar supports container CSS configuration by containerCSS;
- feat: timebar supports a function getDate to returns the date value according to each node or edge by user;
- feat: timebar supports afunction getValue to returns the value (for trend line of trend timebar) according to each node or edge by user;
- feat: timebar supports afunction getValue to returns the value (for trend line of trend timebar) according to each node or edge by user;
- feat: timebar supports to configure a boolean changeData to control the filter way, true means filters by graph[dot]changeData, false means filters by graph[dot]showItem and graph[dot]hideItem;
- feat: timebar supports to configure a function shouldIgnore to return true or false by user to decide whether the node or the edge should be ignored while filtering;
- fix: simple timebar silder text position strategy and expand the lineAppendWidth for the slider;
- fix: edge label padding bug, closes: #3346;
- fix: update node with iconfont icon, the icon is updated to a wrong position, closes: #3348;
#### 4.5.0
- fix: add item type to the parameter of afterremoveitem event;
@ -312,7 +310,6 @@
- fix: update node position with wrong position;
- feat: enableStack for drag-node behavior, closes: #3128;
#### 4.3.5
- fix: drag a node without comboId by drag-node with onlyChangeComboSize;
@ -326,7 +323,7 @@
- fix: when select a node with click-select, selected combos should be deselected;
- fix: contextmenu with click trigger does not show the menu up, closes: #2982;
- fix: layout with collapsed combo, closes: #2988;
- fix: zoom-canvas with optimizeZoom, drag-canvas shows the node shapes hiden by zoom-canvas optimizeZoom, closes: #2996;
- fix: zoom-canvas with optimizeZoom, drag-canvas shows the node shapes hiden by zoom-canvas optimizeZoom, closes: #2996;
#### 4.3.3
@ -406,6 +403,7 @@
- feat: tooltip with trigger configuration, supports mouseenter and click;
#### 4.2.0
#### 4.1.14
- fix: combo edge link position problem;
@ -1057,7 +1055,7 @@
- feat: collapse-expand tree support click and dblclick by trigger option
- fix: drag group bug fix
#### 3.0.5-beta.9
#### 3.0.5-beta.10
- feat: support render group
- feat: support drag group, collapse and expand group, drag node in/out group

View File

@ -1,6 +1,6 @@
{
"name": "@antv/g6",
"version": "5.0.0-beta.9",
"version": "5.0.0-beta.10",
"description": "A Graph Visualization Framework in JavaScript",
"keywords": [
"antv",

View File

@ -14,7 +14,7 @@ runtime.enableCSSParsing = false;
* Extend the graph class with std lib
*/
const version = '5.0.0-beta.9';
const version = '5.0.0-beta.10';
const Graph = extend(EmptyGraph, stdLib);

View File

@ -1,4 +1,4 @@
import { Circle, Group, Rect } from '@antv/g';
import { Group } from '@antv/g';
import { clone } from '@antv/util';
import { Point } from '../types/common';
import { ComboDisplayModel, ComboModel, NodeModel } from '../types';
@ -323,7 +323,6 @@ export default class Node extends Item {
}
let linkPoint = intersectPoint;
if (!isNaN(z)) linkPoint.z = z;
// If the node has anchorPoints in the data, find the nearest anchor point.
if (anchorPoints.length) {
@ -337,6 +336,7 @@ export default class Node extends Item {
// If the calculations above are all failed, return the data's position
return { x, y, z };
}
if (!isNaN(z)) linkPoint.z = z;
return linkPoint;
}

View File

@ -0,0 +1,808 @@
// TODO: update type define.
// @ts-nocheck
import { createDom, modifyCSS } from '@antv/dom-util';
import { Canvas, DisplayObject, Group, Rect } from '@antv/g';
import { debounce, each, isNil, isString, uniqueId } from '@antv/util';
import { IGraph } from '../../../types';
import { IG6GraphEvent } from '../../../types/event';
import { ShapeStyle } from '../../../types/item';
import { Plugin as Base, IPluginBaseConfig } from '../../../types/plugin';
import { createCanvas } from '../../../util/canvas';
const DEFAULT_MODE = 'default';
const KEYSHAPE_MODE = 'keyShape';
const DELEGATE_MODE = 'delegate';
const SVG = 'svg';
export interface MiniMapConfig extends IPluginBaseConfig {
/** Class name of viewport */
viewportClassName?: string;
/** Class name of minimap */
className?: string;
/** Mode of minimap */
mode?: 'default' | 'keyShape' | 'delegate';
/** Size of minimap */
size?: number[];
/** Style of delegate shape */
delegateStyle?: ShapeStyle;
/** Whether to refresh minimap */
refresh?: boolean;
/** Padding of minimap */
padding?: number;
/** Whether to hide edges on minimap to enhance performance */
hideEdge?: boolean;
/** Container for minimap */
container?: HTMLDivElement | null;
}
export class Minimap extends Base {
private canvas: Canvas;
/** The viewport DOM on the minimap. */
private viewport: HTMLElement | undefined;
/** Cache the mapping of graphics of nodes/edges/combos on main graph and minimap graph. */
private itemMap: Map<
ID,
{
minimapItem: DisplayObject;
graphItem: DisplayObject;
}
> = new Map();
private container: HTMLDivElement;
/** Ratio of (minimap graph size / main graph size). */
private ratio: number;
/** Distance from top of minimap graph to the top of minimap container. */
private dx: number;
/** Distance from left of minimap graph to the left of minimap container. */
private dy: number;
/** Cache the visibility while items' visibility changed. And apply them onto the minimap with debounce. */
private visibleCache: { [id: string]: boolean } = {};
constructor(options?: MiniMapConfig) {
super(options);
}
public getDefaultCfgs(): MiniMapConfig {
return {
key: `minimap-${uniqueId()}`,
container: null,
className: 'g6-minimap',
viewportClassName: 'g6-minimap-viewport',
// Minimap 中默认展示和主图一样的内容KeyShape 只展示节点和边的 key shape 部分delegate表示展示自定义的rect用户可自定义样式
mode: 'default',
padding: 8,
size: [200, 120],
delegateStyle: {
fill: '#40a9ff',
stroke: '#096dd9',
},
refresh: true,
hideEdge: false,
};
}
public getEvents() {
return {
afteritemstatechange: this.handleUpdateCanvas,
afterlayout: this.handleUpdateCanvas,
viewportchange: this.handleUpdateCanvas,
afteritemchange: this.handleUpdateCanvas,
afteritemvisibilitychange: this.handleVisibilityChange,
};
}
/**
* If it is animating, disable refresh.
*/
protected disableRefresh() {
this.options.refresh = false;
}
protected enableRefresh() {
this.options.refresh = true;
this.updateCanvas();
}
private initViewport() {
const { canvas, options, destroyed, graph } = this;
const { size, viewportClassName } = options;
if (destroyed) return;
const containerDOM = canvas.context.config.container as HTMLElement;
const isFireFox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
const isSafari = navigator.userAgent.toLowerCase().indexOf('safari') > -1;
const viewport = createDom(`
<div
class=${viewportClassName}
style='position:absolute;
left:0;
top:0;
border: 2px solid #1980ff;
box-sizing:border-box;
background: rgba(0, 0, 255, 0.1);
cursor:move'
draggable=${isSafari || isFireFox ? false : true}
/>`);
// Last mouse x position
let x = 0;
// Last mouse y position
let y = 0;
// Whether in dragging status
let dragging = false;
let resizing = false;
const dragstartevent = isSafari || isFireFox ? 'mousedown' : 'dragstart';
this.container.addEventListener('mousemove', (e) => {
const moveAtBorder = getMoveAtBorder(viewport, e);
if (moveAtBorder) {
this.container.style.cursor = cursorMap[moveAtBorder];
viewport.style.cursor = cursorMap[moveAtBorder];
} else {
this.container.style.cursor = 'unset';
viewport.style.cursor = 'move';
}
});
viewport.addEventListener(
dragstartevent,
((e: IG6GraphEvent) => {
resizing = getMoveAtBorder(viewport, e);
if (resizing) return;
if ((e as any).dataTransfer) {
const img = new Image();
img.src =
"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' %3E%3Cpath /%3E%3C/svg%3E";
(e as any).dataTransfer.setDragImage?.(img, 0, 0);
try {
(e as any).dataTransfer.setData('text/html', 'view-port-minimap');
} catch {
// support IE
(e as any).dataTransfer.setData('text', 'view-port-minimap');
}
}
this.options.refresh = false;
if (e.target !== viewport) {
return;
}
dragging = true;
x = e.clientX;
y = e.clientY;
}).bind(this),
false,
);
const dragListener = (e: IG6GraphEvent) => {
const { style } = viewport;
const left = parseInt(style.left, 10);
const top = parseInt(style.top, 10);
const width = parseInt(style.width, 10);
const height = parseInt(style.height, 10);
if (resizing) {
const { clientX, clientY } = e;
const afterResize = { left, top, width, height };
if (resizing.includes('left')) {
afterResize.left = `${clientX}px`;
afterResize.width = `${left + width - clientX}px`;
} else if (resizing.includes('right')) {
afterResize.width = `${clientX - left}px`;
}
if (resizing.includes('top')) {
afterResize.top = `${clientY}`;
afterResize.height = `${top + height - clientY}`;
} else if (resizing.includes('bottom')) {
afterResize.height = `${clientY - top}`;
}
modifyCSS(viewport, afterResize);
return;
}
if (!dragging || isNil(e.clientX) || isNil(e.clientY)) {
return;
}
const { ratio } = this;
const zoom = graph!.getZoom();
let dx = x - e.clientX;
let dy = y - e.clientY;
// If the viewport is already on the left or right, stop moving x.
if (left - dx < 0 || left - dx + width >= size[0]) {
dx = 0;
}
// If the viewport is already on the top or bottom, stop moving y.
if (top - dy < 0 || top - dy + height >= size[1]) {
dy = 0;
}
// Translate tht graph and update minimap viewport.
graph!
.translate({
dx: (dx * zoom) / ratio,
dy: (dy * zoom) / ratio,
})
.then(() => {
this.updateViewport();
});
x = e.clientX;
y = e.clientY;
};
if (!isSafari && !isFireFox) {
viewport.addEventListener('drag', dragListener.bind(this), false);
}
const dragendListener = () => {
dragging = false;
resizing = false;
this.options.refresh = true;
};
const dragendevent = isSafari || isFireFox ? 'mouseup' : 'dragend';
viewport.addEventListener(dragendevent, dragendListener.bind(this), false);
const zoomListener = (evt) => {
// TODO: zoom the graph and update viewport
};
viewport.addEventListener('wheel', zoomListener, false);
containerDOM.addEventListener('mouseleave', dragendListener.bind(this));
containerDOM.addEventListener('mouseup', dragendListener.bind(this));
if (isSafari || isFireFox) {
containerDOM.addEventListener(
'mousemove',
dragListener.bind(this),
false,
);
}
this.viewport = viewport;
containerDOM.appendChild(viewport);
}
/**
* Update the viewport DOM.
*/
private updateViewport() {
if (this.destroyed) return;
if (!this.viewport) {
this.initViewport();
}
const { options, graph, dx, dy, ratio, viewport } = this;
const { size } = options;
const graphCanvasEl = graph.canvas.context.config.canvas;
const [
graphWidth = graphCanvasEl?.scrollWidth || 500,
graphHeight = graphCanvasEl?.scrollHeight || 500,
] = graph.getSize();
const graphZoom = graph.getZoom();
const graphBBox = graph.canvas.getRoot().getRenderBounds();
const graphTopLeftViewport = graph.getViewportByCanvas({
x: graphBBox.min[0],
y: graphBBox.min[1],
});
const graphBottomRightViewport = graph.getViewportByCanvas({
x: graphBBox.max[0],
y: graphBBox.max[1],
});
// Width and height of the viewport DOM
let width = (graphWidth * ratio) / graphZoom;
let height = (graphHeight * ratio) / graphZoom;
let left = 0;
let top = 0;
if (graphTopLeftViewport.x < 0) {
left = (-graphTopLeftViewport.x / graphWidth) * width + dx;
if (graphBottomRightViewport.x < graphWidth) {
width = size[0] - left;
}
} else {
width -= (graphTopLeftViewport.x / graphWidth) * width - dx;
}
if (graphTopLeftViewport.y < 0) {
top = (-graphTopLeftViewport.y / graphHeight) * height + dy;
if (graphBottomRightViewport.y < graphHeight) {
height = size[1] - top;
}
} else {
height -= (graphTopLeftViewport.y / graphHeight) * height - dy;
}
const right = width + left;
if (right > size[0]) {
width -= right - size[0];
}
const bottom = height + top;
if (bottom > size[1]) {
height -= bottom - size[1];
}
modifyCSS(viewport, {
left: `${left}px`,
top: `${top}px`,
width: `${width}px`,
height: `${height}px`,
});
}
/**
* Clone all the graphic from main graph to the minimap graph.
*/
private updateGraphShapes() {
const { graph, options, canvas } = this;
const graphGroup = graph.canvas.getRoot();
if (graphGroup.destroyed) return;
canvas.removeChildren();
let clonedGroup;
const { hideEdge } = options;
if (hideEdge) {
clonedGroup = new Group();
canvas.appendChild(clonedGroup);
graphGroup.children.forEach((group) => {
if (group.id === 'edge-group') return;
clonedGroup.appendChild(group.cloneNode(true));
});
} else {
clonedGroup = graphGroup.cloneNode(true);
canvas.appendChild(clonedGroup);
}
}
/**
* Only draw keyShapes on the minimap.
*/
private updateKeyShapes() {
const { graph, options, canvas } = this;
const { hideEdge } = options;
const group = canvas.getRoot();
if (!hideEdge) {
each(graph!.getAllEdgesData(), (edge) => {
this.updateOneEdgeKeyShape(edge, group);
});
}
each(graph!.getAllNodesData(), (node) => {
this.updateOneNodeKeyShape(node, group);
});
const combos = graph!.getAllCombosData();
if (combos && combos.length) {
let comboGroup = group.find((e) => e.id === 'combo-group');
if (!comboGroup) {
comboGroup = new Group({ id: 'combo-group' });
group.appendChild(comboGroup);
}
setTimeout(() => {
if (this.destroyed) return;
each(combos, (combo) => {
// this.updateOneComboKeyShape(combo, comboGroup);
this.updateOneNodeKeyShape(combo, comboGroup);
});
comboGroup?.sort();
comboGroup?.toBack();
this.updateCanvas();
}, 250);
}
this.clearDestroyedShapes();
}
/**
* Add or update keyShape of one node.
* @param nodeModel node data model
* @param group container graphics group on minimap
*/
private updateOneNodeKeyShape(nodeModel, group) {
const { itemMap = new Map(), graph } = this;
const graphNodeGroup = graph.canvas
.getRoot()
.find((ele) => ele.id === 'node-group');
if (!graphNodeGroup) return;
let { minimapItem, graphItem } = itemMap.get(nodeModel.id) || {};
if (!minimapItem || minimapItem.destroyed) {
graphItem = graphNodeGroup
.find((ele) => ele.getAttribute('data-item-id') === nodeModel.id)
?.find((ele) => ele.id === 'keyShape');
minimapItem = graphItem.cloneNode();
minimapItem.id = `minimap-keyShape-${nodeModel.id}`;
group.appendChild(minimapItem);
itemMap.set(nodeModel.id, { graphItem, minimapItem });
}
const bbox = graphItem.getRenderBounds();
if (!bbox) return;
const keyShapeStyle = graphItem.attributes;
const attrs: any = {
...keyShapeStyle,
cx: bbox.center[0],
cy: bbox.center[1],
};
minimapItem.toFront();
const shapeType = minimapItem.get('type');
if (shapeType === 'rect' || shapeType === 'image' || shapeType === 'text') {
attrs.x = bbox.min[0];
attrs.y = bbox.min[1];
}
Object.keys(attrs).forEach((key) => {
minimapItem.style[key] = attrs[key];
});
if (!graph.getItemVisible(nodeModel.id)) minimapItem.hide();
else minimapItem.show();
const zIndex = nodeModel.data.depth;
if (!isNaN(zIndex)) minimapItem.set('zIndex', zIndex);
this.itemMap = itemMap;
}
/**
* Draw the delegate rects for nodes and line edges on minimap.
*/
private updateDelegateShapes() {
const { graph, options, canvas } = this;
const { hideEdge } = options;
const group = canvas.getRoot();
// If hideEdge is true, do not render the edges on minimap to enhance the performance
if (!hideEdge) {
each(graph!.getAllEdgesData(), (edge) => {
this.updateOneEdgeKeyShape(edge, group);
});
}
each(graph!.getAllNodesData(), (node) => {
this.updateOneNodeDelegateShape(node, group);
});
const combos = graph!.getAllCombosData();
if (combos && combos.length) {
const comboGroup =
group.find((e) => e.get('name') === 'comboGroup') ||
group.addGroup({
name: 'comboGroup',
});
setTimeout(() => {
if (this.destroyed) return;
each(combos, (combo) => {
// this.updateOneComboKeyShape(combo, comboGroup);
this.updateOneNodeKeyShape(combo, comboGroup);
});
comboGroup?.sort();
comboGroup?.toBack();
this.updateCanvas();
}, 250);
}
this.clearDestroyedShapes();
}
private clearDestroyedShapes() {
const { itemMap = new Map() } = this;
itemMap.forEach((val, key) => {
const { minimapItem, graphItem } = val || {};
if (graphItem.destroyed && minimapItem) {
minimapItem.remove();
itemMap.delete(key);
}
});
}
/**
* Add or update keyShape of one edge.
* @param edgeModel edge data model
* @param group container graphics group on minimap
*/
private updateOneEdgeKeyShape(edgeModel, group) {
const { itemMap = new Map(), graph } = this;
const graphEdgeGroup = graph.canvas
.getRoot()
.find((ele) => ele.id === 'edge-group');
if (!graphEdgeGroup) return;
let { minimapItem, graphItem } = itemMap.get(edgeModel.id) || {};
if (minimapItem && !minimapItem.destroyed) {
const { path, x1, x2, y1, y2 } = graphItem.style;
minimapItem.style.path = path;
minimapItem.style.x1 = x1;
minimapItem.style.x2 = x2;
minimapItem.style.y1 = y1;
minimapItem.style.y2 = y2;
} else {
graphItem = graphEdgeGroup
.find((ele) => ele.getAttribute('data-item-id') === edgeModel.id)
?.find((ele) => ele.id === 'keyShape');
minimapItem = graphItem.cloneNode();
minimapItem.id = `minimap-keyShape-${edgeModel.id}`;
group.appendChild(minimapItem);
}
if (!graph.getItemVisible(edgeModel.id)) minimapItem.hide();
else minimapItem.show();
itemMap.set(edgeModel.id, { graphItem, minimapItem });
this.itemMap = itemMap;
}
/**
* Add or update delegate rect of one node.
* @param nodeModel node data model
* @param group container graphics group on minimap
*/
private updateOneNodeDelegateShape(nodeModel, group) {
const { itemMap = new Map(), options, graph } = this;
const { delegateStyle } = options;
const graphNodeGroup = graph.canvas
.getRoot()
.find((ele) => ele.id === 'node-group');
if (!graphNodeGroup) return;
// 差量更新 minimap 上的一个节点,对应主图的 item
let { minimapItem, graphItem } = itemMap.get(nodeModel.id) || {};
if (!graphItem) {
graphItem = graphNodeGroup
.find((ele) => ele.getAttribute('data-item-id') === nodeModel.id)
?.find((ele) => ele.id === 'keyShape');
}
const bbox = graphItem.getRenderBounds();
const attrs = {
x: bbox.min[0],
y: bbox.min[1],
width: bbox.max[0] - bbox.min[0],
height: bbox.max[1] - bbox.min[1],
...delegateStyle,
};
if (!minimapItem || minimapItem.destroyed) {
minimapItem = new Rect({
style: {
...graphItem.attributes,
...attrs,
...delegateStyle,
},
id: `minimap-delegate-${nodeModel.id}`,
});
group.appendChild(minimapItem);
} else {
Object.keys(attrs).forEach(
(key) => (minimapItem.style[key] = attrs[key]),
);
}
minimapItem.toFront();
if (!graph.getItemVisible(nodeModel.id)) minimapItem.hide();
else minimapItem.show();
itemMap.set(nodeModel.id, { graphItem, minimapItem });
this.itemMap = itemMap;
}
/**
* Listener for main graph updating, update the viewport DOM.
*/
private handleUpdateCanvas = debounce(
(event) => {
const self = this;
if (self.destroyed) return;
self.updateCanvas();
},
100,
false,
);
private handleVisibilityChange = (params) => {
const { ids, value } = params;
ids.forEach((id) => {
this.visibleCache[id] = value;
});
this.debounceCloneVisibility();
};
private debounceCloneVisibility = debounce(
() => {
const nodeGroup = this.canvas.getRoot().getElementById('node-group');
const edgeGroup = this.canvas.getRoot().getElementById('edge-group');
(nodeGroup?.childNodes || [])
.concat(edgeGroup?.childNodes || [])
.forEach((child) => {
const id = child.getAttribute?.('data-item-id');
if (this.visibleCache.hasOwnProperty(id)) {
if (this.visibleCache[id]) {
child.childNodes.forEach((shape) => shape.show());
} else if (this.visibleCache[id] === false) {
child.childNodes.forEach((shape) => shape.hide());
}
}
});
this.visibleCache = {};
},
50,
false,
);
public init(graph: IGraph) {
super.init(graph);
const promise = this.initContainer();
promise.then(() => this.updateCanvas());
}
/**
* Init the DOM container for minimap.
*/
public initContainer() {
const { graph, options } = this;
const { size, className } = options;
let parentNode = options.container;
const container: HTMLDivElement = createDom(
`<div class='${className}' style='width: ${size[0]}px; height: ${size[1]}px; overflow: hidden;'></div>`,
);
if (isString(parentNode)) {
parentNode = document.getElementById(parentNode) as HTMLDivElement;
}
if (parentNode) {
parentNode.appendChild(container);
} else {
graph.container.appendChild(container);
}
if (this.container) {
this.container.remove();
this.viewport?.remove();
this.viewport = undefined;
this.canvas?.destroy();
}
this.container = container;
const containerDOM = createDom(
'<div class="g6-minimap-container" style="position: relative;"></div>',
);
container.appendChild(containerDOM);
containerDOM.addEventListener('dragenter', (e) => {
e.preventDefault();
});
containerDOM.addEventListener('dragover', (e) => {
e.preventDefault();
});
// TODO: graph.rendererType
const graphCanvas = graph.canvas;
this.canvas = createCanvas(
'canvas',
containerDOM,
size[0],
size[1],
graphCanvas.devicePixelRatio,
);
return this.canvas.ready;
}
public updateCanvas() {
if (this.destroyed) return;
const { graph, canvas, options } = this;
const { refresh, size, padding, mode } = options;
// Controlled by the animation of graph. Animating, and then disable refreshing
if (!refresh || graph.destroyed || canvas.destroyed) return;
switch (mode) {
case DEFAULT_MODE:
this.updateGraphShapes();
break;
case KEYSHAPE_MODE:
this.updateKeyShapes();
break;
case DELEGATE_MODE:
this.updateDelegateShapes();
break;
default:
break;
}
const group = canvas.getRoot();
if (!group) return;
const minimapBBox = group.getRenderBounds();
const graphBBox = graph.canvas.getRoot().getRenderBounds();
const width = graphBBox.max[0] - graphBBox.min[0];
const height = graphBBox.max[1] - graphBBox.min[1];
// Scale the graph to fit the size - padding of the minimap container
const zoomRatio = Math.min(
(size[0] - 2 * padding) / width,
(size[1] - 2 * padding) / height,
);
const zoomCenter = canvas.viewport2Canvas({ x: 0, y: 0 });
canvas.getCamera().setFocalPoint(zoomCenter.x, zoomCenter.y);
canvas.getCamera().setPosition(zoomCenter.x, zoomCenter.y);
canvas.getCamera().setZoom(zoomRatio);
canvas
.getCamera()
.setPosition(minimapBBox.center[0], minimapBBox.center[1]);
canvas
.getCamera()
.setFocalPoint(minimapBBox.center[0], minimapBBox.center[1]);
const { x: dx, y: dy } = canvas.canvas2Viewport({
x: minimapBBox.min[0],
y: minimapBBox.min[1],
});
// Update the viewport DOM
this.ratio = zoomRatio;
this.dx = dx;
this.dy = dy;
this.updateViewport();
}
/**
* Get the canvas of the minimap.
* @return {Canvas} G Canvas
*/
public getCanvas(): Canvas {
return this.canvas;
}
/**
* Get the viewport DOM of the minimap.
* @return {HTMLElement} viewport DOM
*/
public getViewport(): HTMLElement {
return this.viewport;
}
/**
* Get the container DOM of the minimap.
* @return {HTMLElement} container DOM
*/
public getContainer(): HTMLElement {
return this.container;
}
public destroy() {
super.destroy();
this.canvas?.destroy();
const container = this.container;
if (container?.parentNode) container.parentNode.removeChild(container);
}
}
const getMoveAtBorder = (dom, evt) => {
const bounds = dom.getBoundingClientRect();
const { clientX, clientY } = evt;
if (Math.abs(clientX - bounds.x) < 4 && Math.abs(clientY - bounds.y) < 4) {
return 'left-top';
} else if (
Math.abs(clientX - bounds.x) < 4 &&
Math.abs(clientY - bounds.y - bounds.height) < 4
) {
return 'left-bottom';
} else if (
Math.abs(clientX - bounds.x - bounds.width) < 4 &&
Math.abs(clientY - bounds.y) < 4
) {
return 'right-top';
} else if (
Math.abs(clientX - bounds.x - bounds.width) < 4 &&
Math.abs(clientY - bounds.y - bounds.height) < 4
) {
return 'right-bottom';
} else if (Math.abs(clientX - bounds.x) < 4) {
return 'left';
} else if (Math.abs(clientY - bounds.y) < 4) {
return 'top';
} else if (Math.abs(clientY - bounds.y - bounds.height) < 4) {
return 'bottom';
}
return false;
};
const cursorMap = {
'left-top': 'nwse-resize',
'right-bottom': 'nwse-resize',
'right-top': 'nesw-resize',
'left-bottom': 'nesw-resize',
left: 'ew-resize',
right: 'ew-resize',
top: 'ns-resize',
bottom: 'ns-resize',
};

View File

@ -2,7 +2,7 @@
title: Graph
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [graph](../../modules/graph.en.md) / Graph
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [graph](../../modules/graph.en.md) / Graph
[graph](../../modules/graph.en.md).Graph

View File

@ -4,7 +4,7 @@ title: Graph
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [graph](../../modules/graph.zh.md) / Graph
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [graph](../../modules/graph.zh.md) / Graph
[graph](../../modules/graph.zh.md).Graph

View File

@ -2,7 +2,7 @@
title: CircleNode
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / CircleNode
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / CircleNode
[item](../../modules/item.en.md).CircleNode

View File

@ -4,7 +4,7 @@ title: CircleNode
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / CircleNode
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / CircleNode
[item](../../modules/item.zh.md).CircleNode

View File

@ -2,7 +2,7 @@
title: CustomEdge
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / CustomEdge
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / CustomEdge
[item](../../modules/item.en.md).CustomEdge

View File

@ -4,7 +4,7 @@ title: CustomEdge
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / CustomEdge
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / CustomEdge
[item](../../modules/item.zh.md).CustomEdge

View File

@ -2,7 +2,7 @@
title: CustomNode
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / CustomNode
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / CustomNode
[item](../../modules/item.en.md).CustomNode

View File

@ -4,7 +4,7 @@ title: CustomNode
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / CustomNode
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / CustomNode
[item](../../modules/item.zh.md).CustomNode

View File

@ -2,7 +2,7 @@
title: CustomNode3D
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / CustomNode3D
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / CustomNode3D
[item](../../modules/item.en.md).CustomNode3D

View File

@ -4,7 +4,7 @@ title: CustomNode3D
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / CustomNode3D
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / CustomNode3D
[item](../../modules/item.zh.md).CustomNode3D

View File

@ -2,7 +2,7 @@
title: DiamondNode
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / DiamondNode
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / DiamondNode
[item](../../modules/item.en.md).DiamondNode

View File

@ -4,7 +4,7 @@ title: DiamondNode
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / DiamondNode
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / DiamondNode
[item](../../modules/item.zh.md).DiamondNode

View File

@ -2,7 +2,7 @@
title: DonutNode
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / DonutNode
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / DonutNode
[item](../../modules/item.en.md).DonutNode

View File

@ -4,7 +4,7 @@ title: DonutNode
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / DonutNode
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / DonutNode
[item](../../modules/item.zh.md).DonutNode

View File

@ -2,7 +2,7 @@
title: EllipseNode
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / EllipseNode
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / EllipseNode
[item](../../modules/item.en.md).EllipseNode

View File

@ -4,7 +4,7 @@ title: EllipseNode
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / EllipseNode
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / EllipseNode
[item](../../modules/item.zh.md).EllipseNode

View File

@ -2,7 +2,7 @@
title: HexagonNode
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / HexagonNode
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / HexagonNode
[item](../../modules/item.en.md).HexagonNode

View File

@ -4,7 +4,7 @@ title: HexagonNode
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / HexagonNode
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / HexagonNode
[item](../../modules/item.zh.md).HexagonNode

View File

@ -2,7 +2,7 @@
title: ModelRectNode
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / ModelRectNode
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / ModelRectNode
[item](../../modules/item.en.md).ModelRectNode

View File

@ -4,7 +4,7 @@ title: ModelRectNode
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / ModelRectNode
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / ModelRectNode
[item](../../modules/item.zh.md).ModelRectNode

View File

@ -2,7 +2,7 @@
title: RectNode
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / RectNode
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / RectNode
[item](../../modules/item.en.md).RectNode

View File

@ -4,7 +4,7 @@ title: RectNode
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / RectNode
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / RectNode
[item](../../modules/item.zh.md).RectNode

View File

@ -2,7 +2,7 @@
title: SphereNode
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / SphereNode
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / SphereNode
[item](../../modules/item.en.md).SphereNode

View File

@ -4,7 +4,7 @@ title: SphereNode
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / SphereNode
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / SphereNode
[item](../../modules/item.zh.md).SphereNode

View File

@ -2,7 +2,7 @@
title: StarNode
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / StarNode
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / StarNode
[item](../../modules/item.en.md).StarNode

View File

@ -4,7 +4,7 @@ title: StarNode
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / StarNode
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / StarNode
[item](../../modules/item.zh.md).StarNode

View File

@ -2,7 +2,7 @@
title: TriangleNode
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / TriangleNode
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / TriangleNode
[item](../../modules/item.en.md).TriangleNode

View File

@ -4,7 +4,7 @@ title: TriangleNode
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / TriangleNode
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / TriangleNode
[item](../../modules/item.zh.md).TriangleNode

View File

@ -2,7 +2,7 @@
title: BadgePosition
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / BadgePosition
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / BadgePosition
[item](../../modules/item.en.md).BadgePosition

View File

@ -4,7 +4,7 @@ title: BadgePosition
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / BadgePosition
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / BadgePosition
[item](../../modules/item.zh.md).BadgePosition

View File

@ -2,7 +2,7 @@
title: ActivateRelationsOptions
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / ActivateRelationsOptions
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / ActivateRelationsOptions
[behaviors](../../modules/behaviors.en.md).ActivateRelationsOptions

View File

@ -2,7 +2,7 @@
title: ActivateRelationsOptions
---
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [behaviors](../../modules/behaviors.zh.md) / ActivateRelationsOptions
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [behaviors](../../modules/behaviors.zh.md) / ActivateRelationsOptions
[behaviors](../../modules/behaviors.zh.md).ActivateRelationsOptions

View File

@ -2,7 +2,7 @@
title: BrushSelectOptions
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / BrushSelectOptions
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / BrushSelectOptions
[behaviors](../../modules/behaviors.en.md).BrushSelectOptions

View File

@ -2,7 +2,7 @@
title: BrushSelectOptions
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / BrushSelectOptions
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / BrushSelectOptions
[behaviors](../../modules/behaviors.en.md).BrushSelectOptions

View File

@ -2,7 +2,7 @@
title: CollapseExpandComboOptions
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / CollapseExpandComboOptions
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / CollapseExpandComboOptions
[behaviors](../../modules/behaviors.en.md).CollapseExpandComboOptions

View File

@ -2,7 +2,7 @@
title: CollapseExpandComboOptions
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / CollapseExpandComboOptions
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / CollapseExpandComboOptions
[behaviors](../../modules/behaviors.en.md).CollapseExpandComboOptions

View File

@ -2,7 +2,7 @@
title: DragCanvasOptions
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / DragCanvasOptions
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / DragCanvasOptions
[behaviors](../../modules/behaviors.en.md).DragCanvasOptions

View File

@ -2,7 +2,7 @@
title: DragCanvasOptions
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / DragCanvasOptions
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / DragCanvasOptions
[behaviors](../../modules/behaviors.en.md).DragCanvasOptions

View File

@ -2,7 +2,7 @@
title: DragComboOptions
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / DragComboOptions
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / DragComboOptions
[behaviors](../../modules/behaviors.en.md).DragComboOptions

View File

@ -2,7 +2,7 @@
title: DragComboOptions
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / DragComboOptions
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / DragComboOptions
[behaviors](../../modules/behaviors.en.md).DragComboOptions

View File

@ -2,7 +2,7 @@
title: DragNodeOptions
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / DragNodeOptions
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / DragNodeOptions
[behaviors](../../modules/behaviors.en.md).DragNodeOptions

View File

@ -2,7 +2,7 @@
title: DragNodeOptions
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / DragNodeOptions
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / DragNodeOptions
[behaviors](../../modules/behaviors.en.md).DragNodeOptions

View File

@ -2,7 +2,7 @@
title: HoverActivateOptions
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / HoverActivateOptions
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / HoverActivateOptions
[behaviors](../../modules/behaviors.en.md).HoverActivateOptions

View File

@ -2,7 +2,7 @@
title: HoverActivateOptions
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / HoverActivateOptions
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / HoverActivateOptions
[behaviors](../../modules/behaviors.en.md).HoverActivateOptions

View File

@ -2,7 +2,7 @@
title: IG6GraphEvent
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / IG6GraphEvent
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / IG6GraphEvent
[behaviors](../../modules/behaviors.en.md).IG6GraphEvent

View File

@ -2,7 +2,7 @@
title: Options
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / Options
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / Options
[behaviors](../../modules/behaviors.en.md).Options

View File

@ -2,7 +2,7 @@
title: Options
---
[概述-v5.0.0-beta.9]../../ readme.zh.md/[模块]../../ modules.zh.md/[capingiors]../。 ./modules/behaviors.zh.md/options
[概述-v5.0.0-beta.10]../../ readme.zh.md/[模块]../../ modules.zh.md/[capingiors]../。 ./modules/behaviors.zh.md/options
[行为]../../模块/cravicy.zh.md.options

View File

@ -2,7 +2,7 @@
title: OrbitCanvas3DOptions
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / OrbitCanvas3DOptions
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / OrbitCanvas3DOptions
[behaviors](../../modules/behaviors.en.md).OrbitCanvas3DOptions

View File

@ -2,7 +2,7 @@
title: OrbitCanvas3DOptions
---
[概述-v5.0.0-beta.9]../../ readme.zh.md/[模块]../../ modules.zh.md/[capingiors]../。 ./modules/behaviors.zh.md/orbitcanvas3doptions
[概述-v5.0.0-beta.10]../../ readme.zh.md/[模块]../../ modules.zh.md/[capingiors]../。 ./modules/behaviors.zh.md/orbitcanvas3doptions
[行为]../../模块/bepand.zh.md.orbitcanvas3doptions

View File

@ -2,7 +2,7 @@
title: RotateCanvas3DOptions
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / RotateCanvas3DOptions
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / RotateCanvas3DOptions
[behaviors](../../modules/behaviors.en.md).RotateCanvas3DOptions

View File

@ -2,7 +2,7 @@
title: RotateCanvas3DOptions
---
[概述-v5.0.0-beta.9]../../ readme.zh.md/[模块]../../ modules.zh.md/[capingiors]../。 ./modules/behaviors.zh.md/rotatecanvas3doptions
[概述-v5.0.0-beta.10]../../ readme.zh.md/[模块]../../ modules.zh.md/[capingiors]../。 ./modules/behaviors.zh.md/rotatecanvas3doptions
[行为]../../模块/cravuciors.zh.md.rotatecanvas3doptions

View File

@ -2,7 +2,7 @@
title: TrackCanvas3DOptions
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / TrackCanvas3DOptions
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / TrackCanvas3DOptions
[behaviors](../../modules/behaviors.en.md).TrackCanvas3DOptions

View File

@ -2,7 +2,7 @@
title: TrackCanvas3DOptions
---
[概述-v5.0.0-beta.9]../../ readme.zh.md/[模块]../../ modules.zh.md/[capingiors]../。 ./modules/behaviors.zh.md/trackcanvas3doptions
[概述-v5.0.0-beta.10]../../ readme.zh.md/[模块]../../ modules.zh.md/[capingiors]../。 ./modules/behaviors.zh.md/trackcanvas3doptions
[行为]../../模块/bepandiors.zh.md.trackcanvas3doptions

View File

@ -2,7 +2,7 @@
title: ZoomCanvas3DOptions
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / ZoomCanvas3DOptions
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / ZoomCanvas3DOptions
[behaviors](../../modules/behaviors.en.md).ZoomCanvas3DOptions

View File

@ -2,7 +2,7 @@
title: ZoomCanvas3DOptions
---
[概述-v5.0.0-beta.9]../../ readme.zh.md/[模块]../../ modules.zh.md/[capingiors]../。 ./modules/behaviors.zh.md/zoomcanvas3doptions
[概述-v5.0.0-beta.10]../../ readme.zh.md/[模块]../../ modules.zh.md/[capingiors]../。 ./modules/behaviors.zh.md/zoomcanvas3doptions
[行为]../../模块/bepandiors.zh.md.zoomcanvas3doptions

View File

@ -2,7 +2,7 @@
title: ZoomCanvasOptions
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / ZoomCanvasOptions
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [behaviors](../../modules/behaviors.en.md) / ZoomCanvasOptions
[behaviors](../../modules/behaviors.en.md).ZoomCanvasOptions

View File

@ -2,7 +2,7 @@
title: ZoomCanvasOptions
---
[概述-v5.0.0-beta.9]../../ readme.zh.md/[模块]../../ modules.zh.md/[capingiors]../。 ./modules/behaviors.zh.md/zoomcanvasoptions
[概述-v5.0.0-beta.10]../../ readme.zh.md/[模块]../../ modules.zh.md/[capingiors]../。 ./modules/behaviors.zh.md/zoomcanvasoptions
[行为]../../模块/bepand.zh.md.zoomcanvasoptions

View File

@ -2,7 +2,7 @@
title: GraphData
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [graph](../../modules/graph.en.md) / GraphData
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [graph](../../modules/graph.en.md) / GraphData
[graph](../../modules/graph.en.md).GraphData

View File

@ -4,7 +4,7 @@ title: GraphData
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [graph](../../modules/graph.zh.md) / GraphData
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [graph](../../modules/graph.zh.md) / GraphData
[graph](../../modules/graph.zh.md).GraphData

View File

@ -2,7 +2,7 @@
title: IGraph
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [graph](../../modules/graph.en.md) / IGraph
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [graph](../../modules/graph.en.md) / IGraph
[graph](../../modules/graph.en.md).IGraph

View File

@ -4,7 +4,7 @@ title: IGraph
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [graph](../../modules/graph.zh.md) / IGraph
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [graph](../../modules/graph.zh.md) / IGraph
[graph](../../modules/graph.zh.md).IGraph

View File

@ -2,7 +2,7 @@
title: Specification
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [graph](../../modules/graph.en.md) / Specification
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [graph](../../modules/graph.en.md) / Specification
[graph](../../modules/graph.en.md).Specification

View File

@ -4,7 +4,7 @@ title: Specification
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [graph](../../modules/graph.zh.md) / Specification
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [graph](../../modules/graph.zh.md) / Specification
[graph](../../modules/graph.zh.md).Specification

View File

@ -2,7 +2,7 @@
title: CircleStyleProps
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / CircleStyleProps
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / CircleStyleProps
[item](../../modules/item.en.md).CircleStyleProps

View File

@ -4,7 +4,7 @@ title: CircleStyleProps
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / CircleStyleProps
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / CircleStyleProps
[item](../../modules/item.zh.md).CircleStyleProps

View File

@ -2,7 +2,7 @@
title: CubeGeometryProps
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / CubeGeometryProps
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / CubeGeometryProps
[item](../../modules/item.en.md).CubeGeometryProps

View File

@ -4,7 +4,7 @@ title: CubeGeometryProps
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / CubeGeometryProps
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / CubeGeometryProps
[item](../../modules/item.zh.md).CubeGeometryProps

View File

@ -2,7 +2,7 @@
title: EllipseStyleProps
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / EllipseStyleProps
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / EllipseStyleProps
[item](../../modules/item.en.md).EllipseStyleProps

View File

@ -4,7 +4,7 @@ title: EllipseStyleProps
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / EllipseStyleProps
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / EllipseStyleProps
[item](../../modules/item.zh.md).EllipseStyleProps

View File

@ -2,7 +2,7 @@
title: IAnchorPositionMap
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / IAnchorPositionMap
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / IAnchorPositionMap
[item](../../modules/item.en.md).IAnchorPositionMap

View File

@ -4,7 +4,7 @@ title: IAnchorPositionMap
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / IAnchorPositionMap
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / IAnchorPositionMap
[item](../../modules/item.zh.md).IAnchorPositionMap

View File

@ -2,7 +2,7 @@
title: ImageStyleProps
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / ImageStyleProps
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / ImageStyleProps
[item](../../modules/item.en.md).ImageStyleProps

View File

@ -4,7 +4,7 @@ title: ImageStyleProps
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / ImageStyleProps
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / ImageStyleProps
[item](../../modules/item.zh.md).ImageStyleProps

View File

@ -2,7 +2,7 @@
title: LineStyleProps
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / LineStyleProps
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / LineStyleProps
[item](../../modules/item.en.md).LineStyleProps

View File

@ -4,7 +4,7 @@ title: LineStyleProps
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / LineStyleProps
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / LineStyleProps
[item](../../modules/item.zh.md).LineStyleProps

View File

@ -2,7 +2,7 @@
title: NodeShapeStyles
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / NodeShapeStyles
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / NodeShapeStyles
[item](../../modules/item.en.md).NodeShapeStyles

View File

@ -4,7 +4,7 @@ title: NodeShapeStyles
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / NodeShapeStyles
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / NodeShapeStyles
[item](../../modules/item.zh.md).NodeShapeStyles

View File

@ -2,7 +2,7 @@
title: NodeUserModelData
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / NodeUserModelData
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / NodeUserModelData
[item](../../modules/item.en.md).NodeUserModelData

View File

@ -4,7 +4,7 @@ title: NodeUserModelData
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / NodeUserModelData
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / NodeUserModelData
[item](../../modules/item.zh.md).NodeUserModelData

View File

@ -2,7 +2,7 @@
title: PathStyleProps
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / PathStyleProps
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / PathStyleProps
[item](../../modules/item.en.md).PathStyleProps

View File

@ -4,7 +4,7 @@ title: PathStyleProps
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / PathStyleProps
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / PathStyleProps
[item](../../modules/item.zh.md).PathStyleProps

View File

@ -2,7 +2,7 @@
title: PlaneGeometryProps
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / PlaneGeometryProps
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / PlaneGeometryProps
[item](../../modules/item.en.md).PlaneGeometryProps

View File

@ -4,7 +4,7 @@ title: PlaneGeometryProps
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / PlaneGeometryProps
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / PlaneGeometryProps
[item](../../modules/item.zh.md).PlaneGeometryProps

View File

@ -2,7 +2,7 @@
title: PolygonStyleProps
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / PolygonStyleProps
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / PolygonStyleProps
[item](../../modules/item.en.md).PolygonStyleProps

View File

@ -4,7 +4,7 @@ title: PolygonStyleProps
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / PolygonStyleProps
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / PolygonStyleProps
[item](../../modules/item.zh.md).PolygonStyleProps

View File

@ -2,7 +2,7 @@
title: PolylineStyleProps
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / PolylineStyleProps
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / PolylineStyleProps
[item](../../modules/item.en.md).PolylineStyleProps

View File

@ -4,7 +4,7 @@ title: PolylineStyleProps
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / PolylineStyleProps
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / PolylineStyleProps
[item](../../modules/item.zh.md).PolylineStyleProps

View File

@ -2,7 +2,7 @@
title: RectStyleProps
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / RectStyleProps
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / RectStyleProps
[item](../../modules/item.en.md).RectStyleProps

View File

@ -4,7 +4,7 @@ title: RectStyleProps
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / RectStyleProps
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / RectStyleProps
[item](../../modules/item.zh.md).RectStyleProps

View File

@ -2,7 +2,7 @@
title: SphereGeometryProps
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / SphereGeometryProps
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / SphereGeometryProps
[item](../../modules/item.en.md).SphereGeometryProps

View File

@ -4,7 +4,7 @@ title: SphereGeometryProps
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / SphereGeometryProps
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / SphereGeometryProps
[item](../../modules/item.zh.md).SphereGeometryProps

View File

@ -2,7 +2,7 @@
title: TextStyleProps
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / TextStyleProps
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / TextStyleProps
[item](../../modules/item.en.md).TextStyleProps

View File

@ -4,7 +4,7 @@ title: TextStyleProps
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / TextStyleProps
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / TextStyleProps
[item](../../modules/item.zh.md).TextStyleProps

View File

@ -2,7 +2,7 @@
title: TorusGeometryProps
---
[Overview - v5.0.0-beta.9](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / TorusGeometryProps
[Overview - v5.0.0-beta.10](../../README.en.md) / [Modules](../../modules.en.md) / [item](../../modules/item.en.md) / TorusGeometryProps
[item](../../modules/item.en.md).TorusGeometryProps

View File

@ -4,7 +4,7 @@ title: TorusGeometryProps
> 📋 中文文档还在翻译中... 欢迎 PR
[Overview - v5.0.0-beta.9](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / TorusGeometryProps
[Overview - v5.0.0-beta.10](../../README.zh.md) / [Modules](../../modules.zh.md) / [item](../../modules/item.zh.md) / TorusGeometryProps
[item](../../modules/item.zh.md).TorusGeometryProps

Some files were not shown because too many files have changed in this diff Show More