@logicflow/core 1.1.20 → 1.2.0-alpha.10

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.
Files changed (41) hide show
  1. package/dist/logic-flow.js +9598 -10829
  2. package/dist/logic-flow.min.js +1 -15
  3. package/dist/style/index.css +10 -0
  4. package/package.json +4 -5
  5. package/types/LogicFlow.d.ts +9 -4
  6. package/types/algorithm/edge.d.ts +1 -1
  7. package/types/constant/constant.d.ts +7 -1
  8. package/types/history/History.d.ts +4 -2
  9. package/types/index.d.ts +4 -4
  10. package/types/keyboard/index.d.ts +1 -1
  11. package/types/model/BaseModel.d.ts +2 -2
  12. package/types/model/EditConfigModel.d.ts +7 -0
  13. package/types/model/GraphModel.d.ts +6 -6
  14. package/types/model/SnaplineModel.d.ts +1 -1
  15. package/types/model/TransformModel.d.ts +4 -4
  16. package/types/model/edge/BaseEdgeModel.d.ts +10 -8
  17. package/types/model/edge/BezierEdgeModel.d.ts +1 -0
  18. package/types/model/edge/PolylineEdgeModel.d.ts +21 -8
  19. package/types/model/node/BaseNodeModel.d.ts +27 -14
  20. package/types/model/node/CircleNodeModel.d.ts +1 -0
  21. package/types/model/node/DiamondNodeModel.d.ts +1 -0
  22. package/types/model/node/EllipseNodeModel.d.ts +1 -0
  23. package/types/model/node/PolygonNodeModel.d.ts +1 -0
  24. package/types/model/node/RectNodeModel.d.ts +1 -0
  25. package/types/model/node/TextNodeModel.d.ts +1 -0
  26. package/types/options.d.ts +16 -0
  27. package/types/tool/MultipleSelectTool.d.ts +1 -1
  28. package/types/util/drag.d.ts +7 -8
  29. package/types/util/edge.d.ts +13 -2
  30. package/types/util/node.d.ts +1 -1
  31. package/types/view/Anchor.d.ts +2 -2
  32. package/types/view/edge/AdjustPoint.d.ts +1 -1
  33. package/types/view/edge/PolylineEdge.d.ts +2 -2
  34. package/types/view/node/BaseNode.d.ts +4 -4
  35. package/types/view/node/HtmlNode.d.ts +3 -3
  36. package/types/view/node/TextNode.d.ts +1 -1
  37. package/types/view/overlay/CanvasOverlay.d.ts +9 -4
  38. package/types/view/text/BaseText.d.ts +3 -2
  39. package/types/view/text/LineText.d.ts +1 -1
  40. package/types/view/basic-shape/LinearGradient.d.ts +0 -1
  41. package/types/view/behavior/Transform.d.ts +0 -4
@@ -6,6 +6,9 @@
6
6
  background: #ffffff;
7
7
  user-select: none;
8
8
  }
9
+ .lf-graph svg {
10
+ display: block;
11
+ }
9
12
  .lf-element-text {
10
13
  cursor: text;
11
14
  }
@@ -193,3 +196,10 @@
193
196
  .lf-edge-adjust-point {
194
197
  cursor: move;
195
198
  }
199
+ /*
200
+ * svg默认会多5px,强制全部设置为block
201
+ * @see https://stackoverflow.com/questions/41437423/difference-between-display-inline-and-block-on-svg-elements
202
+ */
203
+ .lf-graph svg {
204
+ display: block;
205
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@logicflow/core",
3
- "version": "1.1.20",
3
+ "version": "1.2.0-alpha.10",
4
4
  "description": "LogicFlow core, to quickly build flowchart editor",
5
5
  "main": "dist/entry.js",
6
6
  "unpkg": "dist/logic-flow.min.js",
@@ -19,7 +19,7 @@
19
19
  "build": "npm run build:umd",
20
20
  "build:umd": "cross-env NODE_ENV=production webpack --config scripts/webpack.config.build.js && cp -r src/style/ dist/style && cp scripts/entry.js dist",
21
21
  "build-analyse": "cross-env analyse=true npm run build",
22
- "types": "tsc -d --declarationDir ./types --outDir temp && rimraf temp",
22
+ "types": "tsc -d --declarationDir ./tempTypes --outDir temp && rimraf types && mv ./tempTypes/src ./types && rimraf temp && rimraf tempTypes",
23
23
  "lint": "eslint . --ext .ts,.tsx",
24
24
  "publish-lib": "npm run types & npm run clean && npm run build && npm publish",
25
25
  "publish-next": "npm run types & npm run clean && npm run build && npm publish --tag next"
@@ -73,9 +73,8 @@
73
73
  "ids": "^1.0.0",
74
74
  "less-loader": "^6.0.0",
75
75
  "lodash-es": "^4.17.15",
76
- "mobx": "^5.15.7",
77
- "mobx-react": "^6.3.0",
78
- "mobx-utils": "^5.6.1",
76
+ "mobx": "^6.5.0",
77
+ "mobx-react": "^7.3.0",
79
78
  "prettier": "^2.2.1",
80
79
  "rimraf": "^3.0.2",
81
80
  "standard-version": "^9.0.0",
@@ -484,7 +484,7 @@ export default class LogicFlow {
484
484
  /**
485
485
  * 触发监听事件
486
486
  */
487
- emit(evt: string, arg: any): void;
487
+ emit(evt: string, arg?: any): void;
488
488
  /**
489
489
  * 添加扩展, 待讨论,这里是不是静态方法好一些?
490
490
  * 重复添加插件的时候,把上一次添加的插件的销毁。
@@ -530,7 +530,12 @@ export default class LogicFlow {
530
530
  * 用于fakerNode移除对齐线
531
531
  */
532
532
  setView(type: string, component: any): void;
533
- renderRawData(graphRawData: any): void;
533
+ /**
534
+ * 内部保留方法
535
+ * 用于支持国际化
536
+ */
537
+ static t(text: string): string;
538
+ renderRawData(graphRawData: any, isForce?: boolean): void;
534
539
  /**
535
540
  * 渲染图
536
541
  * @example
@@ -544,7 +549,7 @@ export default class LogicFlow {
544
549
  * },
545
550
  * {
546
551
  * id: 'node_2',
547
- * type: 'circel',
552
+ * type: 'circle',
548
553
  * x: 300,
549
554
  * y: 200
550
555
  * }
@@ -559,7 +564,7 @@ export default class LogicFlow {
559
564
  * })
560
565
  * @param graphData 图数据
561
566
  */
562
- render(graphData?: {}): void;
567
+ render(graphData?: {}, isForce?: boolean): void;
563
568
  /**
564
569
  * 内部保留方法
565
570
  * 获取指定类型的view
@@ -1,5 +1,5 @@
1
1
  import { Point } from '../type/index';
2
- export declare const getCorssPointOfLine: (a: Point, b: Point, c: Point, d: Point) => false | {
2
+ export declare const getCrossPointOfLine: (a: Point, b: Point, c: Point, d: Point) => false | {
3
3
  x: number;
4
4
  y: number;
5
5
  };
@@ -46,6 +46,8 @@ export declare enum EventType {
46
46
  NODE_MOUSEMOVE = "node:mousemove",
47
47
  NODE_MOUSEENTER = "node:mouseenter",
48
48
  NODE_MOUSELEAVE = "node:mouseleave",
49
+ NODE_TEXT_UPDATE = "node:text-update",
50
+ NODE_PROPERTY_UPDATE = "node:property-update",
49
51
  NODE_CONTEXTMENU = "node:contextmenu",
50
52
  EDGE_DELETE = "edge:delete",
51
53
  EDGE_ADD = "edge:add",
@@ -53,6 +55,8 @@ export declare enum EventType {
53
55
  EDGE_DBCLICK = "edge:dbclick",
54
56
  EDGE_MOUSEENTER = "edge:mouseenter",
55
57
  EDGE_MOUSELEAVE = "edge:mouseleave",
58
+ EDGE_TEXT_UPDATE = "edge:text-update",
59
+ EDGE_PROPERTY_UPDATE = "edge:property-update",
56
60
  EDGE_CONTEXTMENU = "edge:contextmenu",
57
61
  EDGE_ADJUST = "edge:adjust",
58
62
  EDGE_EXCHANGE_NODE = "edge:exchange-node",
@@ -76,7 +80,9 @@ export declare enum EventType {
76
80
  SELECTION_CONTEXTMENU = "selection:contextmenu",
77
81
  CONNECTION_NOT_ALLOWED = "connection:not-allowed",
78
82
  HISTORY_CHANGE = "history:change",
83
+ HISTORY_INSERT = "history:insert",
79
84
  TEXT_UPDATE = "text:update",
85
+ TEXT_DROP = "text:drop",
80
86
  GRAPH_TRANSFORM = "graph:transform",
81
87
  GRAPH_RENDERED = "graph:rendered"
82
88
  }
@@ -84,7 +90,7 @@ export declare enum SegmentDirection {
84
90
  HORIZONTAL = "horizontal",
85
91
  VERTICAL = "vertical"
86
92
  }
87
- export declare const ElementMaxzIndex = 9999;
93
+ export declare const ElementMaxZIndex = 9999;
88
94
  export declare enum OverlapMode {
89
95
  DEFAULT = 0,
90
96
  INCREASE = 1
@@ -8,13 +8,15 @@ declare class History {
8
8
  maxSize: number;
9
9
  waitTime: number;
10
10
  eventCenter: EventEmitter;
11
- constructor(eventCenter: any);
11
+ model: any;
12
+ constructor(graphModel: any, isPropertiesChangeHistory: any);
12
13
  add(data: any): void;
13
14
  undoAble(): boolean;
14
15
  undo(): any;
15
16
  redoAble(): boolean;
16
17
  redo(): any;
17
- watch(model: any): void;
18
+ emitHistoryChange(): void;
19
+ listenHistoryChange: () => void;
18
20
  }
19
21
  export { History };
20
22
  export default History;
package/types/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { h } from 'preact';
2
1
  import LogicFlow from './LogicFlow';
3
2
  import * as LogicFlowUtil from './util';
4
- export declare function observer<P>(props: P): any;
5
- export { LogicFlow, h };
6
- export { LogicFlowUtil };
3
+ import { version } from '../package.json';
4
+ export { h } from 'preact';
5
+ export * from './util/stateUtil';
6
+ export { LogicFlowUtil, version, LogicFlow };
7
7
  export * from './type/index';
8
8
  export * from './view';
9
9
  export * from './model';
@@ -26,7 +26,7 @@ declare class Keyboard {
26
26
  enable(force: boolean): void;
27
27
  disable(): void;
28
28
  private getKeys;
29
- protected formatkey(key: string): string;
29
+ protected formatKey(key: string): string;
30
30
  }
31
31
  export { Keyboard };
32
32
  export default Keyboard;
@@ -65,14 +65,14 @@ interface IBaseModel {
65
65
  * 在自定义节点的时候,可以重写此方法基于自己的规则生成id。
66
66
  * 注意,此方法必须是同步的。
67
67
  * 如果想要异步修改Id,建议删除此节点后再同一位置创建一个新的节点。
68
- * @overridable 可以重写
68
+ * @override 可以重写
69
69
  * @returns string
70
70
  */
71
71
  createId(): string;
72
72
  moveText(deltaX: number, deltaY: number): void;
73
73
  updateText(value: string): void;
74
74
  setSelected(flag: boolean): void;
75
- setZIndex(zindex?: number): void;
75
+ setZIndex(zIndex?: number): void;
76
76
  /**
77
77
  * 设置Node|Edge等model的状态
78
78
  * @param state 状态
@@ -68,6 +68,12 @@ export interface EditConfigInterface {
68
68
  * 不支持ctrl,ctrl会触发contextmenu
69
69
  */
70
70
  multipleSelectKey?: string;
71
+ /**
72
+ * 拖动节点靠近画布边缘时,
73
+ * 是否自动扩张画布.
74
+ * 默认false。
75
+ */
76
+ autoExpand?: string;
71
77
  }
72
78
  /**
73
79
  * 页面编辑配置
@@ -89,6 +95,7 @@ export default class EditConfigModel {
89
95
  edgeTextEdit: boolean;
90
96
  nodeTextDraggable: boolean;
91
97
  edgeTextDraggable: boolean;
98
+ autoExpand: boolean;
92
99
  multipleSelectKey: string;
93
100
  defaultConfig: {};
94
101
  constructor(config: EditConfigInterface);
@@ -1,7 +1,7 @@
1
1
  import BaseNodeModel from './node/BaseNodeModel';
2
2
  import BaseEdgeModel from './edge/BaseEdgeModel';
3
3
  import EditConfigModel from './EditConfigModel';
4
- import TransfromModel from './TransformModel';
4
+ import TransformModel from './TransformModel';
5
5
  import { OverlapMode } from '../constant/constant';
6
6
  import { AdditionData, Point, NodeConfig, EdgeConfig, PointTuple, NodeMoveRule, GraphConfigData, VirtualRectSize } from '../type';
7
7
  import EventEmitter from '../event/eventEmitter';
@@ -86,7 +86,7 @@ declare class GraphModel {
86
86
  * 控制画布的缩放、平移
87
87
  * @see todo link
88
88
  */
89
- transformModel: TransfromModel;
89
+ transformModel: TransformModel;
90
90
  /**
91
91
  * 控制流程图编辑相关配置
92
92
  * @see todo link
@@ -279,16 +279,16 @@ declare class GraphModel {
279
279
  * @param nodeModel 节点Id
280
280
  * @param deltaX X轴移动距离
281
281
  * @param deltaY Y轴移动距离
282
- * @param isignoreRule 是否忽略移动规则限制
282
+ * @param isIgnoreRule 是否忽略移动规则限制
283
283
  */
284
- moveNode(nodeId: BaseNodeModelId, deltaX: number, deltaY: number, isignoreRule?: boolean): void;
284
+ moveNode(nodeId: BaseNodeModelId, deltaX: number, deltaY: number, isIgnoreRule?: boolean): void;
285
285
  /**
286
286
  * 移动节点-绝对位置
287
287
  * @param nodeModel 节点Id
288
288
  * @param x X轴目标位置
289
289
  * @param y Y轴目标位置
290
290
  */
291
- moveNode2Coordinate(nodeId: BaseNodeModelId, x: number, y: number, isignoreRule?: boolean): void;
291
+ moveNode2Coordinate(nodeId: BaseNodeModelId, x: number, y: number, isIgnoreRule?: boolean): void;
292
292
  /**
293
293
  * 显示节点、连线文本编辑框
294
294
  * @param elementId 节点id
@@ -359,7 +359,7 @@ declare class GraphModel {
359
359
  * 批量移动节点,节点移动的时候,会动态计算所有节点与未移动节点的边位置
360
360
  * 移动的节点之间的边会保持相对位置
361
361
  */
362
- moveNodes(nodeIds: string[], deltaX: number, deltaY: number, isignoreRule?: boolean): void;
362
+ moveNodes(nodeIds: string[], deltaX: number, deltaY: number, isIgnoreRule?: boolean): void;
363
363
  /**
364
364
  * 添加节点移动限制规则,在节点移动的时候触发。
365
365
  * 如果方法返回false, 则会阻止节点移动。
@@ -25,7 +25,7 @@ export default class SnaplineModel {
25
25
  private getCenterSnapLine;
26
26
  private getHorizontalSnapline;
27
27
  private getVerticalSnapline;
28
- getSnapLinePosition(dragingNode: NodeData, nodes: BaseNodeModel[]): SnaplineInfo;
28
+ getSnapLinePosition(draggingNode: NodeData, nodes: BaseNodeModel[]): SnaplineInfo;
29
29
  private setSnaplineInfo;
30
30
  clearSnapline(): void;
31
31
  setNodeSnapLine(nodeData: NodeData): void;
@@ -1,6 +1,6 @@
1
1
  import EventEmitter from '../event/eventEmitter';
2
2
  import { PointTuple, ZoomParam } from '../type';
3
- export interface TransfromInterface {
3
+ export interface TransformInterface {
4
4
  SCALE_X: number;
5
5
  SKEW_Y: number;
6
6
  SKEW_X: number;
@@ -10,7 +10,7 @@ export interface TransfromInterface {
10
10
  ZOOM_SIZE: number;
11
11
  MINI_SCALE_SIZE: number;
12
12
  MAX_SCALE_SIZE: number;
13
- zoom: (isZoomout: ZoomParam) => string;
13
+ zoom: (isZoomOut: ZoomParam) => string;
14
14
  HtmlPointToCanvasPoint: (point: PointTuple) => PointTuple;
15
15
  CanvasPointToHtmlPoint: (point: PointTuple) => PointTuple;
16
16
  moveCanvasPointByHtml: (point: PointTuple, x: number, y: number) => PointTuple;
@@ -18,7 +18,7 @@ export interface TransfromInterface {
18
18
  transform: string;
19
19
  };
20
20
  }
21
- export default class TransfromModel implements TransfromInterface {
21
+ export default class TransformModel implements TransformInterface {
22
22
  MINI_SCALE_SIZE: number;
23
23
  MAX_SCALE_SIZE: number;
24
24
  SCALE_X: number;
@@ -43,7 +43,7 @@ export default class TransfromModel implements TransfromInterface {
43
43
  */
44
44
  CanvasPointToHtmlPoint([x, y]: PointTuple): PointTuple;
45
45
  /**
46
- * 将一个在canvas上的点,向x轴方向移动directionX距离,向y轴方向移动dirctionY距离。
46
+ * 将一个在canvas上的点,向x轴方向移动directionX距离,向y轴方向移动directionY距离。
47
47
  * 因为canvas可能被缩小或者放大了,所以其在canvas层移动的距离需要计算上缩放的量。
48
48
  * @param point 点
49
49
  * @param directionX x轴距离
@@ -25,6 +25,7 @@ declare class BaseEdgeModel implements IBaseModel {
25
25
  isHitable: boolean;
26
26
  draggable: boolean;
27
27
  visible: boolean;
28
+ virtual: boolean;
28
29
  isAnimation: boolean;
29
30
  graphModel: GraphModel;
30
31
  zIndex: number;
@@ -44,8 +45,9 @@ declare class BaseEdgeModel implements IBaseModel {
44
45
  };
45
46
  [propName: string]: any;
46
47
  constructor(data: EdgeConfig, graphModel: GraphModel);
48
+ init(): void;
47
49
  /**
48
- * @overridable 支持重写
50
+ * @override 支持重写
49
51
  * 初始化边数据
50
52
  * initNodeData和setAttributes的区别在于
51
53
  * initNodeData只在节点初始化的时候调用,用于初始化节点的所有属性。
@@ -54,16 +56,16 @@ declare class BaseEdgeModel implements IBaseModel {
54
56
  initEdgeData(data: any): void;
55
57
  /**
56
58
  * 设置model属性,每次properties发生变化会触发
57
- * @overridable 支持重写
59
+ * @override 支持重写
58
60
  */
59
61
  setAttributes(): void;
60
62
  /**
61
- * @overridable 支持重写,自定义此类型节点默认生成方式
63
+ * @override 支持重写,自定义此类型节点默认生成方式
62
64
  * @returns string
63
65
  */
64
66
  createId(): any;
65
67
  /**
66
- * @overridable 支持重写
68
+ * @override 支持重写
67
69
  * 获取当前节点样式
68
70
  * @returns 自定义边样式
69
71
  */
@@ -74,12 +76,12 @@ declare class BaseEdgeModel implements IBaseModel {
74
76
  strokeWidth?: number;
75
77
  };
76
78
  /**
77
- * @overridable 支持重写
79
+ * @override 支持重写
78
80
  * 获取当前节点文本样式
79
81
  */
80
82
  getTextStyle(): import("../../constant/DefaultTheme").EdgeTextTheme;
81
83
  /**
82
- * @overridable 支持重写
84
+ * @override 支持重写
83
85
  * 获取当前边的动画样式
84
86
  * @returns 自定义边动画样式
85
87
  */
@@ -97,7 +99,7 @@ declare class BaseEdgeModel implements IBaseModel {
97
99
  */
98
100
  getOutlineStyle(): OutlineTheme;
99
101
  /**
100
- * @overridable 支持重新,重新自定义文本位置
102
+ * @override 支持重新,重新自定义文本位置
101
103
  * @returns 文本位置
102
104
  */
103
105
  getTextPosition(): Point;
@@ -165,7 +167,7 @@ declare class BaseEdgeModel implements IBaseModel {
165
167
  moveStartPoint(deltaX: any, deltaY: any): void;
166
168
  updateEndPoint(anchor: any): void;
167
169
  moveEndPoint(deltaX: any, deltaY: any): void;
168
- setZIndex(zindex?: number): void;
170
+ setZIndex(zIndex?: number): void;
169
171
  initPoints(): void;
170
172
  updateAttributes(attributes: any): void;
171
173
  getAdjustStart(): any;
@@ -5,6 +5,7 @@ export { BezierEdgeModel };
5
5
  export default class BezierEdgeModel extends BaseEdgeModel {
6
6
  modelType: ModelType;
7
7
  path: string;
8
+ constructor(data: any, graphModel: any);
8
9
  initEdgeData(data: any): void;
9
10
  getEdgeStyle(): {
10
11
  [x: string]: any;
@@ -4,8 +4,9 @@ import BaseEdgeModel from './BaseEdgeModel';
4
4
  export { PolylineEdgeModel };
5
5
  export default class PolylineEdgeModel extends BaseEdgeModel {
6
6
  modelType: ModelType;
7
- draginngPointList: any;
7
+ draggingPointList: any;
8
8
  dbClickPosition: Point;
9
+ constructor(data: any, graphModel: any);
9
10
  initEdgeData(data: any): void;
10
11
  getEdgeStyle(): {
11
12
  [x: string]: any;
@@ -18,9 +19,9 @@ export default class PolylineEdgeModel extends BaseEdgeModel {
18
19
  y: number;
19
20
  };
20
21
  getAfterAnchor(direction: any, position: any, anchorList: any): any;
21
- getCorssPoint(direction: any, start: any, end: any): any;
22
+ getCrossPoint(direction: any, start: any, end: any): any;
22
23
  removeCrossPoints(startIndex: any, endIndex: any, pointList: any): any;
23
- getDragingPoints(direction: any, positioType: any, position: any, anchorList: any, draginngPointList: any): any;
24
+ getDraggingPoints(direction: any, positionType: any, position: any, anchorList: any, draggingPointList: any): any;
24
25
  updateCrossPoints(pointList: any): any;
25
26
  getData(): import("../../type").EdgeData & {
26
27
  pointsList: {
@@ -36,21 +37,33 @@ export default class PolylineEdgeModel extends BaseEdgeModel {
36
37
  moveEndPoint(deltaX: any, deltaY: any): void;
37
38
  dragAppendStart(): void;
38
39
  dragAppendSimple(appendInfo: any, dragInfo: any): {
39
- start: any;
40
- end: any;
40
+ start: {
41
+ x: any;
42
+ y: any;
43
+ };
44
+ end: {
45
+ x: any;
46
+ y: any;
47
+ };
41
48
  startIndex: any;
42
49
  endIndex: any;
43
50
  direction: any;
44
51
  };
45
52
  dragAppend(appendInfo: any, dragInfo: any): {
46
- start: any;
47
- end: any;
53
+ start: {
54
+ x: any;
55
+ y: any;
56
+ };
57
+ end: {
58
+ x: any;
59
+ y: any;
60
+ };
48
61
  startIndex: any;
49
62
  endIndex: any;
50
63
  direction: any;
51
64
  };
52
65
  dragAppendEnd(): void;
53
- updatePointsAfterDrage(pointsList: any): void;
66
+ updatePointsAfterDrag(pointsList: any): void;
54
67
  getAdjustStart(): any;
55
68
  getAdjustEnd(): any;
56
69
  updateAfterAdjustStartAndEnd({ startPoint, endPoint, sourceNode, targetNode }: {
@@ -45,6 +45,7 @@ export default class BaseNodeModel implements IBaseNodeModel {
45
45
  isHitable: boolean;
46
46
  draggable: boolean;
47
47
  visible: boolean;
48
+ virtual: boolean;
48
49
  graphModel: GraphModel;
49
50
  zIndex: number;
50
51
  state: number;
@@ -60,6 +61,7 @@ export default class BaseNodeModel implements IBaseNodeModel {
60
61
  hasSetSourceRules: boolean;
61
62
  [propName: string]: any;
62
63
  constructor(data: NodeConfig, graphModel: GraphModel);
64
+ init(): void;
63
65
  /**
64
66
  * 获取进入当前节点的边和节点
65
67
  */
@@ -72,7 +74,7 @@ export default class BaseNodeModel implements IBaseNodeModel {
72
74
  edges: BaseEdgeModel[];
73
75
  };
74
76
  /**
75
- * @overridable 可以重写
77
+ * @override 可以重写
76
78
  * 初始化节点数据
77
79
  * initNodeData和setAttributes的区别在于
78
80
  * initNodeData只在节点初始化的时候调用,用于初始化节点的所有属性。
@@ -89,11 +91,11 @@ export default class BaseNodeModel implements IBaseNodeModel {
89
91
  * this.height = 200
90
92
  * }
91
93
  *
92
- * @overridable 支持重写
94
+ * @override 支持重写
93
95
  */
94
96
  setAttributes(): void;
95
97
  /**
96
- * @overridable 支持重写,自定义此类型节点默认生成方式
98
+ * @override 支持重写,自定义此类型节点默认生成方式
97
99
  * @returns string
98
100
  */
99
101
  createId(): string;
@@ -103,9 +105,10 @@ export default class BaseNodeModel implements IBaseNodeModel {
103
105
  private formatText;
104
106
  /**
105
107
  * 获取被保存时返回的数据
106
- * @overridable 支持重写
108
+ * @override 支持重写
107
109
  */
108
110
  getData(): NodeData;
111
+ setIsDragging(isDragging: any): void;
109
112
  /**
110
113
  * 用于在历史记录时获取节点数据,
111
114
  * 在某些情况下,如果希望某个属性变化不引起history的变化,
@@ -117,30 +120,30 @@ export default class BaseNodeModel implements IBaseNodeModel {
117
120
  */
118
121
  getProperties(): Record<string, any>;
119
122
  /**
120
- * @overridable 支持重写
123
+ * @override 支持重写
121
124
  * 获取当前节点样式
122
125
  * @returns 自定义节点样式
123
126
  */
124
127
  getNodeStyle(): ShapeStyleAttribute;
125
128
  /**
126
- * @overridable 支持重写
129
+ * @override 支持重写
127
130
  * 获取当前节点文本样式
128
131
  */
129
132
  getTextStyle(): import("../../constant/DefaultTheme").NodeTextTheme;
130
133
  /**
131
- * @overridable 支持重写
134
+ * @override 支持重写
132
135
  * 获取当前节点锚点样式
133
136
  * @returns 自定义样式
134
137
  */
135
138
  getAnchorStyle(anchorInfo: any): Record<string, any>;
136
139
  /**
137
- * @overridable 支持重写
140
+ * @override 支持重写
138
141
  * 获取当前节点锚点拖出连线样式
139
142
  * @returns 自定义锚点拖出样式
140
143
  */
141
144
  getAnchorLineStyle(): import("../../constant/DefaultTheme").CommonTheme;
142
145
  /**
143
- * @overridable 支持重写
146
+ * @override 支持重写
144
147
  * 获取outline样式,重写可以定义此类型节点outline样式, 默认使用主题样式
145
148
  * @returns 自定义outline样式
146
149
  */
@@ -149,7 +152,7 @@ export default class BaseNodeModel implements IBaseNodeModel {
149
152
  * @over
150
153
  * 在边的时候,是否允许这个节点为source节点,边到target节点。
151
154
  */
152
- isAllowConnectedAsSource(target: BaseNodeModel, soureAnchor: AnchorConfig, targetAnchor: AnchorConfig): ConnectRuleResult | Boolean;
155
+ isAllowConnectedAsSource(target: BaseNodeModel, sourceAnchor: AnchorConfig, targetAnchor: AnchorConfig): ConnectRuleResult | Boolean;
153
156
  /**
154
157
  * 获取当前节点作为连接的起始节点规则。
155
158
  */
@@ -157,7 +160,7 @@ export default class BaseNodeModel implements IBaseNodeModel {
157
160
  /**
158
161
  * 在连线的时候,是否允许这个节点为target节点
159
162
  */
160
- isAllowConnectedAsTarget(source: BaseNodeModel, soureAnchor: AnchorConfig, targetAnchor: AnchorConfig): ConnectRuleResult | Boolean;
163
+ isAllowConnectedAsTarget(source: BaseNodeModel, sourceAnchor: AnchorConfig, targetAnchor: AnchorConfig): ConnectRuleResult | Boolean;
161
164
  /**
162
165
  * 内部方法
163
166
  * 是否允许移动节点到新的位置
@@ -172,7 +175,7 @@ export default class BaseNodeModel implements IBaseNodeModel {
172
175
  */
173
176
  getAnchorsByOffset(): PointAnchor[];
174
177
  /**
175
- * @overridable 子类重写此方法设置默认锚点
178
+ * @override 子类重写此方法设置默认锚点
176
179
  * 获取节点默认情况下的锚点
177
180
  */
178
181
  getDefaultAnchor(): PointAnchor[];
@@ -183,8 +186,8 @@ export default class BaseNodeModel implements IBaseNodeModel {
183
186
  get anchors(): PointAnchor[];
184
187
  getAnchorInfo(anchorId: string): PointAnchor;
185
188
  addNodeMoveRules(fn: NodeMoveRule): void;
186
- move(deltaX: any, deltaY: any, isignoreRule?: boolean): boolean;
187
- moveTo(x: any, y: any, isignoreRule?: boolean): boolean;
189
+ move(deltaX: any, deltaY: any, isIgnoreRule?: boolean): boolean;
190
+ moveTo(x: any, y: any, isIgnoreRule?: boolean): boolean;
188
191
  moveText(deltaX: any, deltaY: any): void;
189
192
  updateText(value: string): void;
190
193
  setSelected(flag?: boolean): void;
@@ -197,5 +200,15 @@ export default class BaseNodeModel implements IBaseNodeModel {
197
200
  setStyles(styles: any): void;
198
201
  updateStyles(styles: any): void;
199
202
  setZIndex(zindex?: number): void;
203
+ /**
204
+ * 设置节点属性;
205
+ * 支持属性请参考节点属性文档
206
+ * http://logic-flow.org/api/nodeModelApi.html#%E6%95%B0%E6%8D%AE%E5%B1%9E%E6%80%A7
207
+ * @example
208
+ * nodeModel.updateAttributes({
209
+ * width: 100,
210
+ * height: 100
211
+ * })
212
+ */
200
213
  updateAttributes(attributes: any): void;
201
214
  }
@@ -3,6 +3,7 @@ import { ModelType } from '../../constant/constant';
3
3
  declare class CircleNodeModel extends BaseNodeModel {
4
4
  modelType: ModelType;
5
5
  r: number;
6
+ constructor(data: any, graphData: any);
6
7
  get width(): number;
7
8
  get height(): number;
8
9
  getNodeStyle(): {
@@ -5,6 +5,7 @@ declare class DiamondNodeModel extends BaseNodeModel {
5
5
  modelType: ModelType;
6
6
  rx: number;
7
7
  ry: number;
8
+ constructor(data: any, graphData: any);
8
9
  getNodeStyle(): {
9
10
  [x: string]: any;
10
11
  fill?: string;
@@ -4,6 +4,7 @@ declare class EllipseNodeModel extends BaseNodeModel {
4
4
  modelType: ModelType;
5
5
  rx: number;
6
6
  ry: number;
7
+ constructor(data: any, graphData: any);
7
8
  getNodeStyle(): {
8
9
  [x: string]: any;
9
10
  fill?: string;
@@ -4,6 +4,7 @@ import { ModelType } from '../../constant/constant';
4
4
  declare class PolygonNodeModel extends BaseNodeModel {
5
5
  modelType: ModelType;
6
6
  points: PointTuple[];
7
+ constructor(data: any, graphModel: any);
7
8
  getNodeStyle(): {
8
9
  [x: string]: any;
9
10
  fill?: string;
@@ -3,6 +3,7 @@ import { ModelType } from '../../constant/constant';
3
3
  declare class RectNodeModel extends BaseNodeModel {
4
4
  modelType: ModelType;
5
5
  radius: number;
6
+ constructor(data: any, graphModel: any);
6
7
  getDefaultAnchor(): {
7
8
  x: number;
8
9
  y: number;
@@ -2,6 +2,7 @@ import BaseNodeModel from './BaseNodeModel';
2
2
  import { ModelType } from '../../constant/constant';
3
3
  declare class TextNodeModel extends BaseNodeModel {
4
4
  modelType: ModelType;
5
+ constructor(data: any, graphModel: any);
5
6
  getTextStyle(): {
6
7
  [x: string]: any;
7
8
  color?: string;