@logicflow/core 1.2.12 → 1.2.15
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 +6 -0
- package/types/constant/DefaultTheme.d.ts +4 -0
- package/types/constant/constant.d.ts +1 -0
- package/types/model/EditConfigModel.d.ts +11 -2
- package/types/model/TransformModel.d.ts +9 -1
- package/types/model/node/BaseNodeModel.d.ts +16 -1
- package/types/type/index.d.ts +6 -0
- package/types/util/index.d.ts +5 -0
- package/types/util/matrix.d.ts +32 -0
- package/types/util/vector.d.ts +23 -0
- package/types/view/Rotate.d.ts +21 -0
- package/types/view/node/BaseNode.d.ts +1 -0
- package/CHANGELOG.md +0 -1921
package/dist/style/index.css
CHANGED
package/package.json
CHANGED
package/types/LogicFlow.d.ts
CHANGED
|
@@ -397,6 +397,12 @@ export default class LogicFlow {
|
|
|
397
397
|
*/
|
|
398
398
|
getPointByClient(x: number, y: number): {
|
|
399
399
|
domOverlayPosition: {
|
|
400
|
+
/**
|
|
401
|
+
* 将图形选中
|
|
402
|
+
* @param id 选择元素ID
|
|
403
|
+
* @param multiple 是否允许多选,如果为true,不会将上一个选中的元素重置
|
|
404
|
+
* @param toFront 是否将选中的元素置顶,默认为true
|
|
405
|
+
*/
|
|
400
406
|
x: number;
|
|
401
407
|
y: number;
|
|
402
408
|
};
|
|
@@ -47,6 +47,7 @@ export declare enum EventType {
|
|
|
47
47
|
NODE_MOUSEENTER = "node:mouseenter",
|
|
48
48
|
NODE_MOUSELEAVE = "node:mouseleave",
|
|
49
49
|
NODE_CONTEXTMENU = "node:contextmenu",
|
|
50
|
+
NODE_ROTATE = "node:rotate",
|
|
50
51
|
EDGE_DELETE = "edge:delete",
|
|
51
52
|
EDGE_ADD = "edge:add",
|
|
52
53
|
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
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OutlineTheme } from '../../constant/DefaultTheme';
|
|
2
2
|
import { ModelType, ElementType } from '../../constant/constant';
|
|
3
|
-
import { AdditionData, NodeData, NodeConfig, NodeMoveRule, Bounds, AnchorConfig, PointAnchor, AnchorsOffsetItem, ShapeStyleAttribute, IsAllowMove, Point, AnchorInfo } from '../../type';
|
|
3
|
+
import { AdditionData, NodeData, NodeConfig, NodeMoveRule, Bounds, AnchorConfig, PointAnchor, AnchorsOffsetItem, ShapeStyleAttribute, IsAllowMove, Point, AnchorInfo, DomAttributes } from '../../type';
|
|
4
4
|
import GraphModel from '../GraphModel';
|
|
5
5
|
import { IBaseModel } from '../BaseModel';
|
|
6
6
|
import { BaseEdgeModel } from '../edge';
|
|
@@ -46,12 +46,15 @@ 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
|
+
gMatrix: string;
|
|
57
|
+
rotate: number;
|
|
55
58
|
readonly BaseType = ElementType.NODE;
|
|
56
59
|
modelType: ModelType;
|
|
57
60
|
additionStateData: AdditionData;
|
|
@@ -118,6 +121,12 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
118
121
|
* 获取当前节点的properties
|
|
119
122
|
*/
|
|
120
123
|
getProperties(): Record<string, any>;
|
|
124
|
+
/**
|
|
125
|
+
* @overridable 支持重写
|
|
126
|
+
* 获取当前节点最外层g标签Attributes, 例如className
|
|
127
|
+
* @returns 自定义节点样式
|
|
128
|
+
*/
|
|
129
|
+
getOuterGAttributes(): DomAttributes;
|
|
121
130
|
/**
|
|
122
131
|
* @overridable 支持重写
|
|
123
132
|
* 获取当前节点样式
|
|
@@ -129,6 +138,11 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
129
138
|
* 获取当前节点文本样式
|
|
130
139
|
*/
|
|
131
140
|
getTextStyle(): import("../../constant/DefaultTheme").NodeTextTheme;
|
|
141
|
+
/**
|
|
142
|
+
* @overridable 支持重写
|
|
143
|
+
* 获取当前节点旋转控制点的样式
|
|
144
|
+
*/
|
|
145
|
+
getRotateControlStyle(): import("../../constant/DefaultTheme").CommonTheme;
|
|
132
146
|
/**
|
|
133
147
|
* @overridable 支持重写
|
|
134
148
|
* 获取当前节点锚点样式
|
|
@@ -202,6 +216,7 @@ export default class BaseNodeModel implements IBaseNodeModel {
|
|
|
202
216
|
setSelected(flag?: boolean): void;
|
|
203
217
|
setHovered(flag?: boolean): void;
|
|
204
218
|
setIsShowAnchor(flag?: boolean): void;
|
|
219
|
+
setEnableRotate(flag?: boolean): void;
|
|
205
220
|
setHitable(flag?: boolean): void;
|
|
206
221
|
setElementState(state: number, additionStateData?: AdditionData): void;
|
|
207
222
|
setProperty(key: any, val: any): void;
|
package/types/type/index.d.ts
CHANGED
|
@@ -81,6 +81,7 @@ 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>;
|
|
85
86
|
};
|
|
86
87
|
export declare type NodeData = {
|
|
@@ -91,6 +92,7 @@ export declare type NodeData = {
|
|
|
91
92
|
text?: TextConfig;
|
|
92
93
|
properties: Record<string, unknown>;
|
|
93
94
|
zIndex?: number;
|
|
95
|
+
rotate?: number;
|
|
94
96
|
[key: string]: any;
|
|
95
97
|
};
|
|
96
98
|
export declare type NodeAttribute = {
|
|
@@ -389,6 +391,10 @@ export declare type NodeAttributes = {
|
|
|
389
391
|
export declare type DiamondAttributes = {
|
|
390
392
|
points: PointTuple[];
|
|
391
393
|
} & NodeAttributes;
|
|
394
|
+
export declare type DomAttributes = {
|
|
395
|
+
className?: string;
|
|
396
|
+
[key: string]: string;
|
|
397
|
+
};
|
|
392
398
|
export declare type ShapeStyleAttribute = CommonTheme;
|
|
393
399
|
export declare type VirtualRectSize = {
|
|
394
400
|
virtualRectWidth: number;
|
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 };
|
|
@@ -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 } }: {
|