@logicflow/core 1.2.13 → 1.2.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/logic-flow.js +10 -2
- package/dist/logic-flow.min.js +10 -2
- package/dist/style/index.css +3 -0
- package/package.json +1 -1
- package/types/LogicFlow.d.ts +1 -1
- package/types/constant/DefaultTheme.d.ts +4 -0
- package/types/constant/constant.d.ts +2 -0
- package/types/model/EditConfigModel.d.ts +11 -2
- package/types/model/GraphModel.d.ts +4 -0
- package/types/model/TransformModel.d.ts +9 -1
- package/types/model/node/BaseNodeModel.d.ts +11 -0
- package/types/options.d.ts +9 -1
- package/types/type/index.d.ts +3 -0
- package/types/util/index.d.ts +2 -0
- package/types/util/matrix.d.ts +32 -0
- package/types/util/vector.d.ts +23 -0
- package/types/view/Anchor.d.ts +3 -1
- package/types/view/Rotate.d.ts +21 -0
- package/types/view/node/BaseNode.d.ts +1 -0
package/dist/style/index.css
CHANGED
package/package.json
CHANGED
package/types/LogicFlow.d.ts
CHANGED
|
@@ -340,7 +340,7 @@ export default class LogicFlow {
|
|
|
340
340
|
/**
|
|
341
341
|
* 添加多个元素, 包括边和节点。
|
|
342
342
|
*/
|
|
343
|
-
addElements({ nodes, edges }: GraphConfigData): GraphConfigModel;
|
|
343
|
+
addElements({ nodes, edges }: GraphConfigData, distance?: number): GraphConfigModel;
|
|
344
344
|
/**
|
|
345
345
|
* 获取指定区域内的所有元素,此区域必须是DOM层。
|
|
346
346
|
* 例如鼠标绘制选区后,获取选区内的所有元素。
|
|
@@ -36,6 +36,7 @@ export declare enum EventType {
|
|
|
36
36
|
NODE_DBCLICK = "node:dbclick",
|
|
37
37
|
NODE_DELETE = "node:delete",
|
|
38
38
|
NODE_ADD = "node:add",
|
|
39
|
+
NODE_GROUP_COPY = "node:group-copy-add",
|
|
39
40
|
NODE_DND_ADD = "node:dnd-add",
|
|
40
41
|
NODE_DND_DRAG = "node:dnd-drag",
|
|
41
42
|
NODE_MOUSEDOWN = "node:mousedown",
|
|
@@ -47,6 +48,7 @@ export declare enum EventType {
|
|
|
47
48
|
NODE_MOUSEENTER = "node:mouseenter",
|
|
48
49
|
NODE_MOUSELEAVE = "node:mouseleave",
|
|
49
50
|
NODE_CONTEXTMENU = "node:contextmenu",
|
|
51
|
+
NODE_ROTATE = "node:rotate",
|
|
50
52
|
EDGE_DELETE = "edge:delete",
|
|
51
53
|
EDGE_ADD = "edge:add",
|
|
52
54
|
EDGE_CLICK = "edge:click",
|
|
@@ -12,9 +12,13 @@ export interface EditConfigInterface {
|
|
|
12
12
|
*/
|
|
13
13
|
stopScrollGraph?: boolean;
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* 禁止拖动画布,默认为false
|
|
16
|
+
* true:完全禁止移动
|
|
17
|
+
* vertical: 禁止垂直方向拖动
|
|
18
|
+
* horizontal:禁止水平方向拖动
|
|
19
|
+
* [number, number, number, number]:[minX, minY, maxX, maxY] 画布可拖动范围
|
|
16
20
|
*/
|
|
17
|
-
stopMoveGraph?: boolean;
|
|
21
|
+
stopMoveGraph?: boolean | 'vertical' | 'horizontal' | [number, number, number, number];
|
|
18
22
|
/**
|
|
19
23
|
* 允许调整边
|
|
20
24
|
*/
|
|
@@ -31,6 +35,10 @@ export interface EditConfigInterface {
|
|
|
31
35
|
* 隐藏节点所有锚点
|
|
32
36
|
*/
|
|
33
37
|
hideAnchors?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* 是否允许节点旋转(旋转点的显隐)
|
|
40
|
+
*/
|
|
41
|
+
allowRotation?: boolean;
|
|
34
42
|
/**
|
|
35
43
|
* 显示节点悬浮时的外框
|
|
36
44
|
*/
|
|
@@ -82,6 +90,7 @@ export default class EditConfigModel {
|
|
|
82
90
|
adjustEdgeStartAndEnd: boolean;
|
|
83
91
|
adjustNodePosition: boolean;
|
|
84
92
|
hideAnchors: boolean;
|
|
93
|
+
allowRotation: boolean;
|
|
85
94
|
hoverOutline: boolean;
|
|
86
95
|
nodeSelectedOutline: boolean;
|
|
87
96
|
edgeSelectedOutline: boolean;
|
|
@@ -29,7 +29,11 @@ export default class TransformModel implements TransformInterface {
|
|
|
29
29
|
TRANSLATE_Y: number;
|
|
30
30
|
ZOOM_SIZE: number;
|
|
31
31
|
eventCenter: EventEmitter;
|
|
32
|
-
|
|
32
|
+
translateLimitMinX: number;
|
|
33
|
+
translateLimitMinY: number;
|
|
34
|
+
translateLimitMaxX: number;
|
|
35
|
+
translateLimitMaxY: number;
|
|
36
|
+
constructor(eventCenter: any, options: any);
|
|
33
37
|
setZoomMiniSize(size: number): void;
|
|
34
38
|
setZoomMaxSize(size: number): void;
|
|
35
39
|
/**
|
|
@@ -80,4 +84,8 @@ export default class TransformModel implements TransformInterface {
|
|
|
80
84
|
* @param height 画布高
|
|
81
85
|
*/
|
|
82
86
|
focusOn(targetX: number, targetY: number, width: number, height: number): void;
|
|
87
|
+
/**
|
|
88
|
+
* 更新画布可以移动范围
|
|
89
|
+
*/
|
|
90
|
+
updateTranslateLimits(limit: boolean | 'vertical' | 'horizontal' | [number, number, number, number]): void;
|
|
83
91
|
}
|
|
@@ -46,12 +46,17 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
46
46
|
isHitable: boolean;
|
|
47
47
|
draggable: boolean;
|
|
48
48
|
visible: boolean;
|
|
49
|
+
enableRotate: boolean;
|
|
49
50
|
virtual: boolean;
|
|
50
51
|
graphModel: GraphModel;
|
|
51
52
|
zIndex: number;
|
|
52
53
|
state: number;
|
|
53
54
|
autoToFront: boolean;
|
|
54
55
|
style: ShapeStyleAttribute;
|
|
56
|
+
transform: string;
|
|
57
|
+
private _rotate;
|
|
58
|
+
set rotate(value: number);
|
|
59
|
+
get rotate(): number;
|
|
55
60
|
readonly BaseType = ElementType.NODE;
|
|
56
61
|
modelType: ModelType;
|
|
57
62
|
additionStateData: AdditionData;
|
|
@@ -135,6 +140,11 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
135
140
|
* 获取当前节点文本样式
|
|
136
141
|
*/
|
|
137
142
|
getTextStyle(): import("../../constant/DefaultTheme").NodeTextTheme;
|
|
143
|
+
/**
|
|
144
|
+
* @overridable 支持重写
|
|
145
|
+
* 获取当前节点旋转控制点的样式
|
|
146
|
+
*/
|
|
147
|
+
getRotateControlStyle(): import("../../constant/DefaultTheme").CommonTheme;
|
|
138
148
|
/**
|
|
139
149
|
* @overridable 支持重写
|
|
140
150
|
* 获取当前节点锚点样式
|
|
@@ -208,6 +218,7 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
208
218
|
setSelected(flag?: boolean): void;
|
|
209
219
|
setHovered(flag?: boolean): void;
|
|
210
220
|
setIsShowAnchor(flag?: boolean): void;
|
|
221
|
+
setEnableRotate(flag?: boolean): void;
|
|
211
222
|
setHitable(flag?: boolean): void;
|
|
212
223
|
setElementState(state: number, additionStateData?: AdditionData): void;
|
|
213
224
|
setProperty(key: any, val: any): void;
|
package/types/options.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { VNode } from 'preact';
|
|
1
2
|
import { GridOptions } from './view/overlay/Grid';
|
|
2
3
|
import { BackgroundConfig } from './view/overlay/BackgroundOverlay';
|
|
3
|
-
import { NodeData, EdgeData, Extension, GraphConfigData } from './type';
|
|
4
|
+
import { NodeData, EdgeData, Extension, GraphConfigData, Point } from './type';
|
|
4
5
|
import { KeyboardDef } from './keyboard';
|
|
5
6
|
import { EditConfigInterface } from './model/EditConfigModel';
|
|
6
7
|
import { Theme } from './constant/DefaultTheme';
|
|
@@ -112,8 +113,14 @@ export declare type Definition = {
|
|
|
112
113
|
* any: 自定义边及其他数据
|
|
113
114
|
*/
|
|
114
115
|
edgeGenerator?: (sourceNode: any, targetNode: any, currentEdge?: any) => string | any | undefined;
|
|
116
|
+
customTrajectory?: (props: CustomAnchorLineProps) => VNode;
|
|
115
117
|
[key: string]: any;
|
|
116
118
|
} & EditConfigInterface;
|
|
119
|
+
export interface CustomAnchorLineProps {
|
|
120
|
+
sourcePoint: Point;
|
|
121
|
+
targetPoint: Point;
|
|
122
|
+
[key: string]: any;
|
|
123
|
+
}
|
|
117
124
|
export interface GuardsTypes {
|
|
118
125
|
beforeClone?: (data: NodeData | GraphConfigData) => boolean;
|
|
119
126
|
beforeDelete?: (data: NodeData | EdgeData) => boolean;
|
|
@@ -222,6 +229,7 @@ export declare function get(options: Definition): {
|
|
|
222
229
|
* any: 自定义边及其他数据
|
|
223
230
|
*/
|
|
224
231
|
edgeGenerator?: (sourceNode: any, targetNode: any, currentEdge?: any) => any;
|
|
232
|
+
customTrajectory?: (props: CustomAnchorLineProps) => VNode<{}>;
|
|
225
233
|
} & EditConfigInterface;
|
|
226
234
|
export declare const defaults: {
|
|
227
235
|
background: boolean;
|
package/types/type/index.d.ts
CHANGED
|
@@ -81,7 +81,9 @@ export declare type NodeConfig = {
|
|
|
81
81
|
y: number;
|
|
82
82
|
text?: TextConfig | string;
|
|
83
83
|
zIndex?: number;
|
|
84
|
+
rotate?: number;
|
|
84
85
|
properties?: Record<string, unknown>;
|
|
86
|
+
[key: string]: any;
|
|
85
87
|
};
|
|
86
88
|
export declare type NodeData = {
|
|
87
89
|
id: string;
|
|
@@ -91,6 +93,7 @@ export declare type NodeData = {
|
|
|
91
93
|
text?: TextConfig;
|
|
92
94
|
properties: Record<string, unknown>;
|
|
93
95
|
zIndex?: number;
|
|
96
|
+
rotate?: number;
|
|
94
97
|
[key: string]: any;
|
|
95
98
|
};
|
|
96
99
|
export declare type NodeAttribute = {
|
package/types/util/index.d.ts
CHANGED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Point } from './vector';
|
|
2
|
+
export declare class Matrix extends Array {
|
|
3
|
+
rows: number;
|
|
4
|
+
columns: number;
|
|
5
|
+
constructor(...vectors: any[]);
|
|
6
|
+
getRow(index: number): any;
|
|
7
|
+
getColumn(index: number): any[];
|
|
8
|
+
transpose(): Matrix;
|
|
9
|
+
cross(m1: Matrix): Matrix;
|
|
10
|
+
to2D(): any[][];
|
|
11
|
+
toPoints(): Point[];
|
|
12
|
+
toString(): string;
|
|
13
|
+
translate(tx: number, ty: number): Matrix;
|
|
14
|
+
rotate(angle: number): Matrix;
|
|
15
|
+
scale(sx: number, sy: number): Matrix;
|
|
16
|
+
}
|
|
17
|
+
export declare class RotateMatrix extends Matrix {
|
|
18
|
+
constructor(theta: number);
|
|
19
|
+
inverse(): Matrix;
|
|
20
|
+
}
|
|
21
|
+
export declare class ScaleMatrix extends Matrix {
|
|
22
|
+
private sx;
|
|
23
|
+
private sy;
|
|
24
|
+
constructor(sx: number, sy: number);
|
|
25
|
+
inverse(): ScaleMatrix;
|
|
26
|
+
}
|
|
27
|
+
export declare class TranslateMatrix extends Matrix {
|
|
28
|
+
private tx;
|
|
29
|
+
private ty;
|
|
30
|
+
constructor(tx: number, ty: number);
|
|
31
|
+
inverse(): TranslateMatrix;
|
|
32
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
declare class Base extends Array {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
z: number;
|
|
5
|
+
constructor(x: number, y: number, z: number);
|
|
6
|
+
add(v1: Vector | Point): Vector | Point;
|
|
7
|
+
subtract(v1: Vector | Point): Vector | Point;
|
|
8
|
+
}
|
|
9
|
+
declare class Vector extends Base {
|
|
10
|
+
constructor(x: number, y: number, z?: number);
|
|
11
|
+
toString(): string;
|
|
12
|
+
dot(v1: Vector): any;
|
|
13
|
+
cross(v1: Vector): Vector;
|
|
14
|
+
getLength(): number;
|
|
15
|
+
normalize(): Vector;
|
|
16
|
+
crossZ(v1: Vector): number;
|
|
17
|
+
angle(v1: Vector): number;
|
|
18
|
+
}
|
|
19
|
+
declare class Point extends Base {
|
|
20
|
+
constructor(x: number, y: number);
|
|
21
|
+
toString(): string;
|
|
22
|
+
}
|
|
23
|
+
export { Vector, Point };
|
package/types/view/Anchor.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import BaseNodeModel, { ConnectRuleResult } from '../model/node/BaseNodeModel';
|
|
|
4
4
|
import GraphModel from '../model/GraphModel';
|
|
5
5
|
import { AnchorConfig } from '../type';
|
|
6
6
|
import { BaseNode } from './node';
|
|
7
|
+
import { BaseEdgeModel } from '../model';
|
|
7
8
|
declare type TargetNodeId = string;
|
|
8
9
|
interface IProps {
|
|
9
10
|
anchorData: AnchorConfig;
|
|
@@ -40,7 +41,8 @@ declare class Anchor extends Component<IProps, IState> {
|
|
|
40
41
|
onDragEnd: ({ event }: {
|
|
41
42
|
event: any;
|
|
42
43
|
}) => void;
|
|
43
|
-
|
|
44
|
+
get customTrajectory(): (props: import("..").CustomAnchorLineProps) => import("preact").VNode<{}>;
|
|
45
|
+
checkEnd: (event: MouseEvent) => BaseEdgeModel | null;
|
|
44
46
|
moveAnchorEnd(endX: number, endY: number): void;
|
|
45
47
|
isShowLine(): boolean;
|
|
46
48
|
render(): h.JSX.Element;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Component, h } from 'preact';
|
|
2
|
+
import { GraphModel, BaseNodeModel } from '../model';
|
|
3
|
+
import { Vector } from '../util';
|
|
4
|
+
import EventEmitter from '../event/eventEmitter';
|
|
5
|
+
import { CommonTheme } from '../constant/DefaultTheme';
|
|
6
|
+
interface IProps {
|
|
7
|
+
graphModel: GraphModel;
|
|
8
|
+
nodeModel: BaseNodeModel;
|
|
9
|
+
eventCenter: EventEmitter;
|
|
10
|
+
style: CommonTheme;
|
|
11
|
+
}
|
|
12
|
+
declare class RotateControlPoint extends Component<IProps> {
|
|
13
|
+
private style;
|
|
14
|
+
private defaultAngle;
|
|
15
|
+
normal: Vector;
|
|
16
|
+
stepperDrag: any;
|
|
17
|
+
constructor(props: IProps);
|
|
18
|
+
onDragging: ({ event }: any) => void;
|
|
19
|
+
render(): h.JSX.Element;
|
|
20
|
+
}
|
|
21
|
+
export default RotateControlPoint;
|
|
@@ -24,6 +24,7 @@ export default abstract class BaseNode extends Component<IProps, IState> {
|
|
|
24
24
|
abstract getShape(): any;
|
|
25
25
|
getAnchorShape(anchorData: any): h.JSX.Element;
|
|
26
26
|
getAnchors(): h.JSX.Element[];
|
|
27
|
+
getRotateControl(): h.JSX.Element;
|
|
27
28
|
getText(): "" | h.JSX.Element;
|
|
28
29
|
getStateClassName(): string;
|
|
29
30
|
onDragStart: ({ event: { clientX, clientY } }: {
|