@logicflow/core 2.2.0-alpha.7 → 2.2.1

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 (137) hide show
  1. package/package.json +6 -1
  2. package/.turbo/turbo-build$colon$dev.log +0 -10
  3. package/.turbo/turbo-build.log +0 -33
  4. package/CHANGELOG.md +0 -1901
  5. package/__tests__/algorithm/egde.test.ts +0 -131
  6. package/__tests__/algorithm/index.test.ts +0 -74
  7. package/__tests__/algorithm/outline.test.ts +0 -43
  8. package/__tests__/bugs/1545-spec.test.ts +0 -42
  9. package/__tests__/event/event.test.ts +0 -22
  10. package/__tests__/history/history.test.ts +0 -28
  11. package/__tests__/logicflow.test.ts +0 -575
  12. package/__tests__/model/graphmodel.test.ts +0 -87
  13. package/__tests__/util/compatible.test.ts +0 -48
  14. package/__tests__/util/edge.test.ts +0 -224
  15. package/__tests__/util/geometry.test.ts +0 -14
  16. package/__tests__/util/graph.test.ts +0 -16
  17. package/__tests__/util/matrix.test.ts +0 -41
  18. package/__tests__/util/node.test.ts +0 -68
  19. package/__tests__/util/sampling.test.ts +0 -12
  20. package/__tests__/util/vector.test.ts +0 -50
  21. package/__tests__/util/zIndex.test.ts +0 -10
  22. package/src/LogicFlow.tsx +0 -2017
  23. package/src/algorithm/edge.ts +0 -67
  24. package/src/algorithm/index.ts +0 -70
  25. package/src/algorithm/outline.ts +0 -77
  26. package/src/algorithm/rotate.ts +0 -55
  27. package/src/common/drag.ts +0 -219
  28. package/src/common/history.ts +0 -108
  29. package/src/common/index.ts +0 -6
  30. package/src/common/keyboard.ts +0 -108
  31. package/src/common/matrix.ts +0 -122
  32. package/src/common/vector.ts +0 -93
  33. package/src/constant/index.ts +0 -179
  34. package/src/constant/theme.ts +0 -708
  35. package/src/event/event.md +0 -66
  36. package/src/event/eventArgs.ts +0 -643
  37. package/src/event/eventEmitter.ts +0 -156
  38. package/src/history/index.ts +0 -119
  39. package/src/index.less +0 -1
  40. package/src/index.ts +0 -26
  41. package/src/keyboard/index.ts +0 -112
  42. package/src/keyboard/shortcut.ts +0 -200
  43. package/src/model/BaseModel.ts +0 -250
  44. package/src/model/EditConfigModel.ts +0 -334
  45. package/src/model/GraphModel.ts +0 -1824
  46. package/src/model/NestedTransformModel.ts +0 -121
  47. package/src/model/SnaplineModel.ts +0 -256
  48. package/src/model/TransformModel.ts +0 -258
  49. package/src/model/edge/BaseEdgeModel.ts +0 -785
  50. package/src/model/edge/BezierEdgeModel.ts +0 -197
  51. package/src/model/edge/LineEdgeModel.ts +0 -36
  52. package/src/model/edge/PolylineEdgeModel.ts +0 -817
  53. package/src/model/edge/index.ts +0 -4
  54. package/src/model/index.ts +0 -9
  55. package/src/model/node/BaseNodeModel.ts +0 -959
  56. package/src/model/node/CircleNodeModel.ts +0 -91
  57. package/src/model/node/DiamondNodeModel.ts +0 -132
  58. package/src/model/node/EllipseNodeModel.ts +0 -98
  59. package/src/model/node/HtmlNodeModel.ts +0 -64
  60. package/src/model/node/PolygonNodeModel.ts +0 -152
  61. package/src/model/node/RectNodeModel.ts +0 -69
  62. package/src/model/node/TextNodeModel.ts +0 -54
  63. package/src/model/node/index.ts +0 -8
  64. package/src/options.ts +0 -150
  65. package/src/style/index.less +0 -262
  66. package/src/style/raw.ts +0 -221
  67. package/src/tool/MultipleSelectTool.tsx +0 -140
  68. package/src/tool/TextEditTool.tsx +0 -193
  69. package/src/tool/index.ts +0 -101
  70. package/src/typings.d.ts +0 -5
  71. package/src/util/animation.ts +0 -29
  72. package/src/util/browser.ts +0 -4
  73. package/src/util/compatible.ts +0 -15
  74. package/src/util/drag.ts +0 -219
  75. package/src/util/edge.ts +0 -1094
  76. package/src/util/geometry.ts +0 -154
  77. package/src/util/graph.ts +0 -46
  78. package/src/util/index.ts +0 -17
  79. package/src/util/matrix.ts +0 -129
  80. package/src/util/mobx.ts +0 -23
  81. package/src/util/node.ts +0 -543
  82. package/src/util/raf.ts +0 -28
  83. package/src/util/resize.ts +0 -606
  84. package/src/util/sampling.ts +0 -85
  85. package/src/util/theme.ts +0 -84
  86. package/src/util/uuid.ts +0 -26
  87. package/src/util/vector.ts +0 -93
  88. package/src/util/zIndex.ts +0 -6
  89. package/src/view/Anchor.tsx +0 -462
  90. package/src/view/Control.tsx +0 -510
  91. package/src/view/Graph.tsx +0 -141
  92. package/src/view/Rotate.tsx +0 -113
  93. package/src/view/behavior/dnd.ts +0 -162
  94. package/src/view/behavior/index.ts +0 -2
  95. package/src/view/behavior/snapline.ts +0 -16
  96. package/src/view/edge/AdjustPoint.tsx +0 -425
  97. package/src/view/edge/Arrow.tsx +0 -54
  98. package/src/view/edge/BaseEdge.tsx +0 -660
  99. package/src/view/edge/BezierEdge.tsx +0 -101
  100. package/src/view/edge/LineEdge.tsx +0 -81
  101. package/src/view/edge/PolylineEdge.tsx +0 -311
  102. package/src/view/edge/index.ts +0 -6
  103. package/src/view/index.ts +0 -8
  104. package/src/view/node/BaseNode.tsx +0 -585
  105. package/src/view/node/CircleNode.tsx +0 -21
  106. package/src/view/node/DiamondNode.tsx +0 -24
  107. package/src/view/node/EllipseNode.tsx +0 -22
  108. package/src/view/node/HtmlNode.tsx +0 -112
  109. package/src/view/node/PolygonNode.tsx +0 -28
  110. package/src/view/node/RectNode.tsx +0 -30
  111. package/src/view/node/TextNode.tsx +0 -39
  112. package/src/view/node/index.ts +0 -8
  113. package/src/view/overlay/BackgroundOverlay.tsx +0 -34
  114. package/src/view/overlay/BezierAdjustOverlay.tsx +0 -150
  115. package/src/view/overlay/CanvasOverlay.tsx +0 -290
  116. package/src/view/overlay/Grid.tsx +0 -319
  117. package/src/view/overlay/ModificationOverlay.tsx +0 -31
  118. package/src/view/overlay/OutlineOverlay.tsx +0 -158
  119. package/src/view/overlay/SnaplineOverlay.tsx +0 -44
  120. package/src/view/overlay/ToolOverlay.tsx +0 -65
  121. package/src/view/overlay/getTransformHoc.tsx +0 -50
  122. package/src/view/overlay/gridConfig.ts +0 -103
  123. package/src/view/overlay/index.ts +0 -8
  124. package/src/view/shape/Circle.tsx +0 -41
  125. package/src/view/shape/Ellipse.tsx +0 -42
  126. package/src/view/shape/Line.tsx +0 -39
  127. package/src/view/shape/Path.tsx +0 -22
  128. package/src/view/shape/Polygon.tsx +0 -54
  129. package/src/view/shape/Polyline.tsx +0 -31
  130. package/src/view/shape/Rect.tsx +0 -44
  131. package/src/view/shape/Text.tsx +0 -168
  132. package/src/view/shape/index.ts +0 -8
  133. package/src/view/text/BaseText.tsx +0 -134
  134. package/src/view/text/LineText.tsx +0 -168
  135. package/src/view/text/index.ts +0 -2
  136. package/stats.html +0 -4842
  137. package/tsconfig.json +0 -18
@@ -1,197 +0,0 @@
1
- import { get, assign, cloneDeep } from 'lodash-es'
2
- import { action, observable } from 'mobx'
3
- import BaseEdgeModel from './BaseEdgeModel'
4
- import { BaseNodeModel } from '../node'
5
- import LogicFlow from '../../LogicFlow'
6
- import GraphModel from '../GraphModel'
7
- import { ModelType } from '../../constant'
8
- import { getBezierControlPoints, IBezierControls } from '../../util'
9
-
10
- import Point = LogicFlow.Point
11
- import EdgeConfig = LogicFlow.EdgeConfig
12
-
13
- export class BezierEdgeModel extends BaseEdgeModel {
14
- modelType = ModelType.BEZIER_EDGE
15
-
16
- @observable offset!: number
17
- @observable path = ''
18
- constructor(data: EdgeConfig, graphModel: GraphModel) {
19
- super(data, graphModel)
20
- this.initEdgeData(data)
21
- this.setAttributes()
22
- }
23
- initEdgeData(data: EdgeConfig): void {
24
- this.offset = get(data, 'properties.offset', 100)
25
- super.initEdgeData(data)
26
- }
27
- getEdgeStyle() {
28
- const { bezier } = this.graphModel.theme
29
- const style = super.getEdgeStyle()
30
- const { style: customStyle = {} } = this.properties
31
- return {
32
- ...style,
33
- ...cloneDeep(bezier),
34
- ...cloneDeep(customStyle),
35
- }
36
- }
37
- getTextPosition(): Point {
38
- if (this.pointsList && this.pointsList.length > 0) {
39
- let pointsXSum = 0
40
- let pointsYSum = 0
41
- this.pointsList.forEach(({ x, y }) => {
42
- pointsXSum += x
43
- pointsYSum += y
44
- })
45
- return {
46
- x: pointsXSum / this.pointsList.length,
47
- y: pointsYSum / this.pointsList.length,
48
- }
49
- }
50
- return {
51
- x: (this.startPoint.x + this.endPoint.x) / 2,
52
- y: (this.startPoint.y + this.endPoint.y) / 2,
53
- }
54
- }
55
- getData() {
56
- const data = super.getData()
57
- const pointsList = this.pointsList.map(({ x, y }) => ({ x, y }))
58
- return {
59
- ...data,
60
- pointsList,
61
- }
62
- }
63
-
64
- /* 获取贝塞尔曲线的控制点 */
65
- private getControls(): IBezierControls {
66
- const start = this.startPoint
67
- const end = this.endPoint
68
- const points = getBezierControlPoints({
69
- start,
70
- end,
71
- sourceNode: this.sourceNode,
72
- targetNode: this.targetNode,
73
- offset: this.offset,
74
- })
75
- return points
76
- }
77
- /* 获取贝塞尔曲线的path */
78
- private getPath(points: Point[]): string {
79
- const [start, sNext, ePre, end] = points
80
- return `M ${start.x} ${start.y}
81
- C ${sNext.x} ${sNext.y},
82
- ${ePre.x} ${ePre.y},
83
- ${end.x} ${end.y}`
84
- }
85
- @action
86
- initPoints() {
87
- if (this.pointsList.length > 0) {
88
- this.path = this.getPath(this.pointsList)
89
- } else {
90
- this.updatePoints()
91
- }
92
- }
93
-
94
- @action
95
- updatePoints() {
96
- const { sNext, ePre } = this.getControls()
97
- this.updatePath(sNext, ePre)
98
- }
99
- updatePath(sNext: Point, ePre: Point) {
100
- sNext = cloneDeep(sNext)
101
- ePre = cloneDeep(ePre)
102
- const start = {
103
- x: this.startPoint.x,
104
- y: this.startPoint.y,
105
- }
106
- const end = {
107
- x: this.endPoint.x,
108
- y: this.endPoint.y,
109
- }
110
- if (!sNext || !ePre) {
111
- const control = this.getControls()
112
- sNext = control.sNext
113
- ePre = control.ePre
114
- }
115
- this.pointsList = [start, sNext, ePre, end]
116
- this.path = this.getPath(this.pointsList)
117
- }
118
- @action
119
- updateStartPoint(anchor: Point) {
120
- this.startPoint = Object.assign({}, anchor)
121
- this.updatePoints()
122
- }
123
-
124
- @action
125
- updateEndPoint(anchor: Point) {
126
- this.endPoint = Object.assign({}, anchor)
127
- this.updatePoints()
128
- }
129
- @action
130
- moveStartPoint(deltaX: number, deltaY: number): void {
131
- this.startPoint.x += deltaX
132
- this.startPoint.y += deltaY
133
- const [, sNext, ePre] = this.pointsList
134
- // 保持调整点一起移动
135
- sNext.x += deltaX
136
- sNext.y += deltaY
137
- this.updatePath(sNext, ePre)
138
- }
139
- @action
140
- moveEndPoint(deltaX: number, deltaY: number): void {
141
- this.endPoint.x += deltaX
142
- this.endPoint.y += deltaY
143
- const [, sNext, ePre] = this.pointsList
144
- // 保持调整点一起移动
145
- ePre.x += deltaX
146
- ePre.y += deltaY
147
- this.updatePath(sNext, ePre)
148
- }
149
- @action
150
- updateAdjustAnchor(anchor: Point, type: string) {
151
- if (type === 'sNext') {
152
- this.pointsList[1] = anchor
153
- } else if (type === 'ePre') {
154
- this.pointsList[2] = anchor
155
- }
156
- this.path = this.getPath(this.pointsList)
157
- if (this.text?.value) {
158
- this.setText(assign({}, this.text, this.textPosition))
159
- }
160
- }
161
- // 获取边调整的起点
162
- @action
163
- getAdjustStart() {
164
- return this.pointsList[0] || this.startPoint
165
- }
166
- // 获取边调整的终点
167
- @action
168
- getAdjustEnd() {
169
- const { pointsList } = this
170
- return pointsList[pointsList.length - 1] || this.endPoint
171
- }
172
- // 起终点拖拽调整过程中,进行曲线路径更新
173
- @action
174
- updateAfterAdjustStartAndEnd({
175
- startPoint,
176
- endPoint,
177
- sourceNode,
178
- targetNode,
179
- }: {
180
- startPoint: Point
181
- endPoint: Point
182
- sourceNode: BaseNodeModel
183
- targetNode: BaseNodeModel
184
- }) {
185
- const { sNext, ePre } = getBezierControlPoints({
186
- start: startPoint,
187
- end: endPoint,
188
- sourceNode,
189
- targetNode,
190
- offset: this.offset,
191
- })
192
- this.pointsList = [startPoint, sNext, ePre, endPoint]
193
- this.initPoints()
194
- }
195
- }
196
-
197
- export default BezierEdgeModel
@@ -1,36 +0,0 @@
1
- import { cloneDeep } from 'lodash-es'
2
- import LogicFlow from '../../LogicFlow'
3
- import BaseEdgeModel from './BaseEdgeModel'
4
- import { ModelType } from '../../constant'
5
-
6
- import Point = LogicFlow.Point
7
-
8
- export class LineEdgeModel extends BaseEdgeModel {
9
- modelType = ModelType.LINE_EDGE
10
- getEdgeStyle() {
11
- const { line } = this.graphModel.theme
12
- const style = super.getEdgeStyle()
13
- const { style: customStyle = {} } = this.properties
14
- return {
15
- ...style,
16
- ...cloneDeep(line),
17
- ...cloneDeep(customStyle),
18
- }
19
- }
20
- initEdgeData(data: LogicFlow.EdgeConfig): void {
21
- super.initEdgeData(data)
22
- this.points = this.getPath([this.startPoint, this.endPoint])
23
- }
24
- getPath(points: Point[]): string {
25
- const [start, end] = points
26
- return `${start.x},${start.y} ${end.x},${end.y}`
27
- }
28
- getTextPosition(): Point {
29
- return {
30
- x: (this.startPoint.x + this.endPoint.x) / 2,
31
- y: (this.startPoint.y + this.endPoint.y) / 2,
32
- }
33
- }
34
- }
35
-
36
- export default LineEdgeModel