@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
package/src/options.ts DELETED
@@ -1,150 +0,0 @@
1
- import type { TransformModel, BaseNodeModel, Model } from './model'
2
-
3
- import { assign } from 'lodash-es'
4
- import { createElement as h } from 'preact/compat'
5
- import LogicFlow from './LogicFlow'
6
- import { KeyboardDef } from './keyboard'
7
- import { OverlapMode, TextMode } from './constant'
8
- import { Grid } from './view/overlay'
9
-
10
- import GridOptions = Grid.GridOptions
11
-
12
- export namespace Options {
13
- import NodeData = LogicFlow.NodeData
14
- import EdgeData = LogicFlow.EdgeData
15
- import GraphData = LogicFlow.GraphData
16
- import ExtensionType = LogicFlow.ExtensionType
17
- export type EdgeType = 'line' | 'polyline' | 'bezier' | string
18
- export type BackgroundConfig = {
19
- // 背景图片地址
20
- backgroundImage?: string
21
- // CSS background-repeat 属性
22
- backgroundRepeat?:
23
- | 'repeat'
24
- | 'repeat-x'
25
- | 'repeat-y'
26
- | 'no-repeat'
27
- | 'initial'
28
- | 'inherit'
29
- // TODO: 根据具体情况添加各种自定义样式
30
- [key: string]: any
31
- }
32
-
33
- export type AnimationConfig = {
34
- node: boolean
35
- edge: boolean
36
- }
37
-
38
- export type EdgeGeneratorType = (
39
- sourceNode: LogicFlow.NodeData,
40
- targetNode: LogicFlow.NodeData,
41
- currentEdge?: Partial<LogicFlow.EdgeConfig>,
42
- ) => any
43
-
44
- export type customTargetAnchorType = (
45
- nodeModel: BaseNodeModel,
46
- position: LogicFlow.Point,
47
- ) => Model.AnchorInfo | undefined
48
- export interface CustomAnchorLineProps {
49
- sourcePoint: LogicFlow.Point
50
- targetPoint: LogicFlow.Point
51
-
52
- [key: string]: any
53
- }
54
-
55
- export interface GuardsConfig {
56
- beforeClone?: (data: NodeData | GraphData) => boolean
57
- beforeDelete?: (data: NodeData | EdgeData) => boolean
58
- }
59
-
60
- export interface Common {
61
- container: HTMLElement
62
- // REMIND: 注意,当在 SSR 框架(比如 Next.js Nuxt.js)项目中使用 LogicFlow 时,在初始化时需要设置宽高
63
- width?: number
64
- height?: number
65
- background?: false | BackgroundConfig
66
- /**
67
- * Grid 网格配置
68
- */
69
- grid?: number | boolean | GridOptions
70
-
71
- partial?: boolean
72
- keyboard?: KeyboardDef
73
- style?: Partial<LogicFlow.Theme> // 主题配置
74
- edgeType?: EdgeType
75
- adjustEdge?: boolean
76
-
77
- // 元素文本类型:text or label
78
- textMode?: TextMode
79
- edgeTextMode?: TextMode
80
- nodeTextMode?: TextMode
81
-
82
- allowRotate?: boolean // 允许节点旋转
83
- allowResize?: boolean // 是否允许缩放
84
-
85
- isSilentMode?: boolean // 是否为静默模式:可以简单理解为“只读”模式,这种模式下,画布中的节点和边不可移动,不可进行文案修改,没有锚点。
86
- stopScrollGraph?: boolean
87
- stopZoomGraph?: boolean
88
- stopMoveGraph?:
89
- | boolean
90
- | 'vertical'
91
- | 'horizontal'
92
- | [number, number, number, number]
93
- animation?: boolean | Partial<AnimationConfig>
94
- history?: boolean
95
- outline?: boolean
96
- snapline?: boolean
97
- snaplineEpsilon?: number
98
- textEdit?: boolean
99
-
100
- guards?: GuardsConfig
101
- overlapMode?: OverlapMode
102
-
103
- plugins?: ExtensionType[]
104
- pluginsOptions?: Record<string, any>
105
- disabledPlugins?: string[]
106
- disabledTools?: string[]
107
-
108
- idGenerator?: (type?: string) => string
109
- edgeGenerator?: EdgeGeneratorType
110
-
111
- customTargetAnchor?: customTargetAnchorType
112
- customTrajectory?: (props: CustomAnchorLineProps) => h.JSX.Element
113
- themeMode?: LogicFlow.ThemeMode // 主题模式
114
-
115
- parentTransform?: TransformModel // 父级变换模型,用于嵌套变换
116
-
117
- [key: string]: unknown
118
- }
119
-
120
- export interface ManualBooleans {}
121
-
122
- export interface Manual extends Partial<Common>, Partial<ManualBooleans> {}
123
-
124
- export interface Definition extends Common {}
125
- }
126
-
127
- export namespace Options {
128
- export function get(options: Partial<Manual>) {
129
- const { ...others } = options
130
- const container = options.container
131
- if (!container) {
132
- throw new Error(
133
- 'Ensure the container of LogicFlow is specified and valid.',
134
- )
135
- }
136
-
137
- return assign({}, defaults, others) as Options.Definition
138
- }
139
- }
140
-
141
- export namespace Options {
142
- export const defaults: Partial<Definition> = {
143
- background: false,
144
- grid: false,
145
- textEdit: true,
146
- snapline: true,
147
- outline: false,
148
- disabledTools: [],
149
- }
150
- }
@@ -1,262 +0,0 @@
1
- .lf-graph {
2
- position: relative;
3
- z-index: 0;
4
- width: 100%;
5
- height: 100%;
6
- background: #fff;
7
- user-select: none;
8
- }
9
-
10
- .lf-element-text {
11
- cursor: text;
12
- }
13
-
14
- .lf-text-disabled {
15
- pointer-events: none;
16
- }
17
-
18
- .lf-text-draggable {
19
- cursor: move;
20
- }
21
-
22
- // 在元素focus时浏览器会给元素outline设置一个5像素宽的默认样式,这里先全局禁用一下,后续再根据需要再做调整
23
- *:focus {
24
- outline: none;
25
- }
26
-
27
- .lf-node-anchor {
28
- cursor: crosshair;
29
- }
30
-
31
- .lf-node-anchor-hover {
32
- visibility: hidden;
33
- }
34
-
35
- .lf-anchor:hover .lf-node-anchor-hover {
36
- visibility: visible;
37
- }
38
-
39
- .lf-edge.pointer-none {
40
- pointer-events: none;
41
- }
42
-
43
- .lf-edge-append {
44
- cursor: pointer;
45
- }
46
-
47
- .lf-edge-animation {
48
- stroke-dashoffset: 100%;
49
- animation: lf_animate_dash 5s linear infinite;
50
- }
51
-
52
- @keyframes lf_animate_dash {
53
- to {
54
- stroke-dashoffset: 0;
55
- }
56
- }
57
-
58
- /* node */
59
- .lf-node-not-allow {
60
- cursor: not-allowed;
61
- }
62
-
63
- .lf-polyline-append-ns-resize {
64
- cursor: ns-resize;
65
- }
66
-
67
- .lf-polyline-append-ew-resize {
68
- cursor: ew-resize;
69
- }
70
-
71
- .lf-dragging {
72
- cursor: move;
73
- }
74
-
75
- .lf-dragging .lf-element-text {
76
- cursor: move;
77
- }
78
-
79
- .lf-draggable {
80
- cursor: default;
81
- }
82
-
83
- .lf-bezier-adjust-anchor {
84
- cursor: pointer;
85
- }
86
-
87
- /* background */
88
- .lf-background,
89
- .lf-grid {
90
- position: absolute;
91
- inset: 0;
92
- z-index: -1;
93
- }
94
-
95
- .lf-background-area {
96
- width: 100%;
97
- height: 100%;
98
- }
99
-
100
- /* html-overlay */
101
- .lf-html-overlay {
102
- position: absolute;
103
- inset: 0;
104
- z-index: 1;
105
- overflow: hidden;
106
- user-select: none;
107
- pointer-events: none;
108
- }
109
-
110
- .lf-html-overlay__transform > * {
111
- pointer-events: all;
112
- }
113
-
114
- .lf-text-editable {
115
- pointer-events: all;
116
- }
117
-
118
- .lf-text-input {
119
- position: absolute;
120
- box-sizing: border-box;
121
- min-width: 100px;
122
- min-height: 20px;
123
- padding: 5px;
124
- line-height: 1.2;
125
- white-space: pre;
126
- text-align: center;
127
- background: #fff;
128
- border: 1px solid #edefed;
129
- border-radius: 3px;
130
- outline: none;
131
- transform: translate(-50%, -50%);
132
- resize: none;
133
- }
134
-
135
- .lf-get-text-height {
136
- display: inline-block;
137
- box-sizing: border-box;
138
- word-break: break-all;
139
- /* 为了跟输入效果保持一致,设置透明边框占位 */
140
- border: 1px solid transparent;
141
- }
142
-
143
- .lf-node-text-auto-wrap {
144
- display: flex;
145
- align-items: center;
146
- justify-content: center;
147
- box-sizing: border-box;
148
- /* border: 1px solid transparent; */
149
- }
150
-
151
- .lf-node-text-auto-wrap-content {
152
- width: 100%;
153
- line-height: 1.2;
154
- text-align: center;
155
- word-break: break-all;
156
- background: transparent;
157
- }
158
-
159
- .lf-node-text-ellipsis-content {
160
- width: 100%;
161
- line-height: 1.2;
162
- white-space: nowrap;
163
- text-align: center;
164
- background: transparent;
165
- /* overflow: hidden;
166
- text-overflow: ellipsis; */
167
- }
168
-
169
- .lf-node-text-ellipsis-content > div {
170
- overflow: hidden;
171
- text-overflow: ellipsis;
172
- }
173
-
174
- /* tool-overlay */
175
- .lf-tool-overlay {
176
- position: absolute;
177
- inset: 0;
178
- z-index: 2;
179
- overflow: hidden;
180
- pointer-events: none;
181
- }
182
-
183
- .lf-tool-overlay > * {
184
- pointer-events: all;
185
- }
186
-
187
- /* modification-overlay */
188
- .modification-overlay {
189
- position: absolute;
190
- inset: 0;
191
- z-index: 1;
192
- overflow: hidden;
193
- pointer-events: none;
194
- }
195
-
196
- .modification-overlay > * {
197
- pointer-events: all;
198
- }
199
-
200
- .lf-outline,
201
- .lf-snapline {
202
- pointer-events: none;
203
- }
204
-
205
- .lf-keyboard-tips {
206
- float: right;
207
- }
208
-
209
- .lf-node-select-decorate {
210
- position: absolute;
211
- border: 1px dashed #343435;
212
- transform: translate(-50%, -50%);
213
- pointer-events: none;
214
- }
215
-
216
- .lf-multiple-select {
217
- position: absolute;
218
- border: 2px dashed #4271dfcc;
219
- border-radius: 12px;
220
- box-shadow: 0 0 3px 0 #4271df80;
221
- cursor: move;
222
- }
223
-
224
- .lf-edge-adjust-point {
225
- cursor: move;
226
- }
227
-
228
- .lf-rotate-control {
229
- cursor: grabbing;
230
- }
231
-
232
- .lf-resize-control-nw {
233
- cursor: nw-resize;
234
- }
235
-
236
- .lf-resize-control-n {
237
- cursor: n-resize;
238
- }
239
-
240
- .lf-resize-control-ne {
241
- cursor: ne-resize;
242
- }
243
-
244
- .lf-resize-control-e {
245
- cursor: e-resize;
246
- }
247
-
248
- .lf-resize-control-se {
249
- cursor: se-resize;
250
- }
251
-
252
- .lf-resize-control-s {
253
- cursor: s-resize;
254
- }
255
-
256
- .lf-resize-control-sw {
257
- cursor: sw-resize;
258
- }
259
-
260
- .lf-resize-control-w {
261
- cursor: w-resize;
262
- }
package/src/style/raw.ts DELETED
@@ -1,221 +0,0 @@
1
- /* eslint-disable */
2
-
3
- /**
4
- * Auto generated file, do not modify it!
5
- */
6
-
7
- export const content = `.lf-graph {
8
- position: relative;
9
- z-index: 0;
10
- width: 100%;
11
- height: 100%;
12
- background: #fff;
13
- user-select: none;
14
- }
15
- .lf-element-text {
16
- cursor: text;
17
- }
18
- .lf-text-disabled {
19
- pointer-events: none;
20
- }
21
- .lf-text-draggable {
22
- cursor: move;
23
- }
24
- *:focus {
25
- outline: none;
26
- }
27
- .lf-node-anchor {
28
- cursor: crosshair;
29
- }
30
- .lf-node-anchor-hover {
31
- visibility: hidden;
32
- }
33
- .lf-anchor:hover .lf-node-anchor-hover {
34
- visibility: visible;
35
- }
36
- .lf-edge.pointer-none {
37
- pointer-events: none;
38
- }
39
- .lf-edge-append {
40
- cursor: pointer;
41
- }
42
- .lf-edge-animation {
43
- stroke-dashoffset: 100%;
44
- animation: lf_animate_dash 5s linear infinite;
45
- }
46
- @keyframes lf_animate_dash {
47
- to {
48
- stroke-dashoffset: 0;
49
- }
50
- }
51
- /* node */
52
- .lf-node-not-allow {
53
- cursor: not-allowed;
54
- }
55
- .lf-polyline-append-ns-resize {
56
- cursor: ns-resize;
57
- }
58
- .lf-polyline-append-ew-resize {
59
- cursor: ew-resize;
60
- }
61
- .lf-dragging {
62
- cursor: move;
63
- }
64
- .lf-dragging .lf-element-text {
65
- cursor: move;
66
- }
67
- .lf-draggable {
68
- cursor: default;
69
- }
70
- .lf-bezier-adjust-anchor {
71
- cursor: pointer;
72
- }
73
- /* background */
74
- .lf-background,
75
- .lf-grid {
76
- position: absolute;
77
- inset: 0;
78
- z-index: -1;
79
- }
80
- .lf-background-area {
81
- width: 100%;
82
- height: 100%;
83
- }
84
- /* html-overlay */
85
- .lf-html-overlay {
86
- position: absolute;
87
- inset: 0;
88
- z-index: 1;
89
- overflow: hidden;
90
- user-select: none;
91
- pointer-events: none;
92
- }
93
- .lf-html-overlay__transform > * {
94
- pointer-events: all;
95
- }
96
- .lf-text-editable {
97
- pointer-events: all;
98
- }
99
- .lf-text-input {
100
- position: absolute;
101
- box-sizing: border-box;
102
- min-width: 100px;
103
- min-height: 20px;
104
- padding: 5px;
105
- line-height: 1.2;
106
- white-space: pre;
107
- text-align: center;
108
- background: #fff;
109
- border: 1px solid #edefed;
110
- border-radius: 3px;
111
- outline: none;
112
- transform: translate(-50%, -50%);
113
- resize: none;
114
- }
115
- .lf-get-text-height {
116
- display: inline-block;
117
- box-sizing: border-box;
118
- word-break: break-all;
119
- /* 为了跟输入效果保持一致,设置透明边框占位 */
120
- border: 1px solid transparent;
121
- }
122
- .lf-node-text-auto-wrap {
123
- display: flex;
124
- align-items: center;
125
- justify-content: center;
126
- box-sizing: border-box;
127
- /* border: 1px solid transparent; */
128
- }
129
- .lf-node-text-auto-wrap-content {
130
- width: 100%;
131
- line-height: 1.2;
132
- text-align: center;
133
- word-break: break-all;
134
- background: transparent;
135
- }
136
- .lf-node-text-ellipsis-content {
137
- width: 100%;
138
- line-height: 1.2;
139
- white-space: nowrap;
140
- text-align: center;
141
- background: transparent;
142
- /* overflow: hidden;
143
- text-overflow: ellipsis; */
144
- }
145
- .lf-node-text-ellipsis-content > div {
146
- overflow: hidden;
147
- text-overflow: ellipsis;
148
- }
149
- /* tool-overlay */
150
- .lf-tool-overlay {
151
- position: absolute;
152
- inset: 0;
153
- z-index: 2;
154
- overflow: hidden;
155
- pointer-events: none;
156
- }
157
- .lf-tool-overlay > * {
158
- pointer-events: all;
159
- }
160
- /* modification-overlay */
161
- .modification-overlay {
162
- position: absolute;
163
- inset: 0;
164
- z-index: 1;
165
- overflow: hidden;
166
- pointer-events: none;
167
- }
168
- .modification-overlay > * {
169
- pointer-events: all;
170
- }
171
- .lf-outline,
172
- .lf-snapline {
173
- pointer-events: none;
174
- }
175
- .lf-keyboard-tips {
176
- float: right;
177
- }
178
- .lf-node-select-decorate {
179
- position: absolute;
180
- border: 1px dashed #343435;
181
- transform: translate(-50%, -50%);
182
- pointer-events: none;
183
- }
184
- .lf-multiple-select {
185
- position: absolute;
186
- border: 2px dashed #4271dfcc;
187
- border-radius: 12px;
188
- box-shadow: 0 0 3px 0 #4271df80;
189
- cursor: move;
190
- }
191
- .lf-edge-adjust-point {
192
- cursor: move;
193
- }
194
- .lf-rotate-control {
195
- cursor: grabbing;
196
- }
197
- .lf-resize-control-nw {
198
- cursor: nw-resize;
199
- }
200
- .lf-resize-control-n {
201
- cursor: n-resize;
202
- }
203
- .lf-resize-control-ne {
204
- cursor: ne-resize;
205
- }
206
- .lf-resize-control-e {
207
- cursor: e-resize;
208
- }
209
- .lf-resize-control-se {
210
- cursor: se-resize;
211
- }
212
- .lf-resize-control-s {
213
- cursor: s-resize;
214
- }
215
- .lf-resize-control-sw {
216
- cursor: sw-resize;
217
- }
218
- .lf-resize-control-w {
219
- cursor: w-resize;
220
- }
221
- `