@next-bricks/diagram 0.68.8 → 0.68.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.
- package/dist/bricks.json +3 -3
- package/dist/chunks/1265.bf280e6d.js +3 -0
- package/dist/chunks/1265.bf280e6d.js.map +1 -0
- package/dist/chunks/1889.fa8b5dbe.js +2 -0
- package/dist/chunks/1889.fa8b5dbe.js.map +1 -0
- package/dist/chunks/3171.8057c0f4.js +2 -0
- package/dist/chunks/3171.8057c0f4.js.map +1 -0
- package/dist/chunks/{3654.59bd8992.js → 3654.6a028b09.js} +3 -3
- package/dist/chunks/{3654.59bd8992.js.map → 3654.6a028b09.js.map} +1 -1
- package/dist/chunks/{3746.591c50d8.js → 3746.7fad241d.js} +2 -2
- package/dist/chunks/{3746.591c50d8.js.map → 3746.7fad241d.js.map} +1 -1
- package/dist/chunks/515.23d8419d.js +2 -0
- package/dist/chunks/515.23d8419d.js.map +1 -0
- package/dist/chunks/5399.d786845a.js +2 -0
- package/dist/chunks/5399.d786845a.js.map +1 -0
- package/dist/chunks/5552.7718c4ca.js +2 -0
- package/dist/chunks/5552.7718c4ca.js.map +1 -0
- package/dist/chunks/577.c9c65352.js.map +1 -1
- package/dist/chunks/6376.a8716290.js +2 -0
- package/dist/chunks/6376.a8716290.js.map +1 -0
- package/dist/chunks/7920.367555e2.js +3 -0
- package/dist/chunks/7920.367555e2.js.map +1 -0
- package/dist/chunks/9118.8a9d6592.js +3 -0
- package/dist/chunks/9118.8a9d6592.js.LICENSE.txt +11 -0
- package/dist/chunks/9118.8a9d6592.js.map +1 -0
- package/dist/chunks/948.e308c274.js +3 -0
- package/dist/chunks/948.e308c274.js.map +1 -0
- package/dist/chunks/editable-label.667b04d5.js.map +1 -1
- package/dist/chunks/eo-diagram.78450578.js.map +1 -1
- package/dist/chunks/eo-display-canvas.2a43ce91.js.map +1 -1
- package/dist/chunks/eo-draw-canvas.e01342d6.js.map +1 -1
- package/dist/chunks/experimental-node.2f4d802a.js.map +1 -1
- package/dist/chunks/main.91a8e473.js +2 -0
- package/dist/chunks/main.91a8e473.js.map +1 -0
- package/dist/examples.json +10 -7
- package/dist/index.f358949f.js +2 -0
- package/dist/index.f358949f.js.map +1 -0
- package/dist/manifest.json +359 -220
- package/dist/types.json +5163 -5163
- package/dist-types/diagram/index.d.ts +48 -1
- package/dist-types/diagram/interfaces.d.ts +3 -3
- package/dist-types/display-canvas/index.d.ts +37 -3
- package/dist-types/draw-canvas/index.d.ts +75 -7
- package/dist-types/draw-canvas/interfaces.d.ts +3 -3
- package/dist-types/editable-label/index.d.ts +14 -1
- package/dist-types/experimental-node/index.d.ts +11 -1
- package/docs/editable-label.md +71 -1
- package/docs/editable-label.react.md +100 -0
- package/docs/eo-diagram.md +54 -87
- package/docs/eo-diagram.react.md +399 -0
- package/docs/eo-display-canvas.md +60 -21
- package/docs/eo-display-canvas.react.md +376 -0
- package/docs/eo-draw-canvas.md +95 -40
- package/docs/eo-draw-canvas.react.md +989 -0
- package/docs/experimental-node.md +156 -0
- package/docs/experimental-node.react.md +157 -0
- package/package.json +2 -2
- package/dist/chunks/1265.55a02b5a.js +0 -3
- package/dist/chunks/1265.55a02b5a.js.map +0 -1
- package/dist/chunks/1889.9e9ad16a.js +0 -2
- package/dist/chunks/1889.9e9ad16a.js.map +0 -1
- package/dist/chunks/3171.3bd2c8f0.js +0 -2
- package/dist/chunks/3171.3bd2c8f0.js.map +0 -1
- package/dist/chunks/4667.53203ccd.js +0 -2
- package/dist/chunks/4667.53203ccd.js.map +0 -1
- package/dist/chunks/4837.32dece7c.js +0 -2
- package/dist/chunks/4837.32dece7c.js.map +0 -1
- package/dist/chunks/5399.b1b4981d.js +0 -2
- package/dist/chunks/5399.b1b4981d.js.map +0 -1
- package/dist/chunks/5552.e3e728b7.js +0 -2
- package/dist/chunks/5552.e3e728b7.js.map +0 -1
- package/dist/chunks/7218.e0bf22af.js +0 -2
- package/dist/chunks/7218.e0bf22af.js.map +0 -1
- package/dist/chunks/7920.df65d810.js +0 -3
- package/dist/chunks/7920.df65d810.js.map +0 -1
- package/dist/chunks/948.83e23068.js +0 -3
- package/dist/chunks/948.83e23068.js.map +0 -1
- package/dist/chunks/main.4630d30e.js +0 -2
- package/dist/chunks/main.4630d30e.js.map +0 -1
- package/dist/index.c366c6da.js +0 -2
- package/dist/index.c366c6da.js.map +0 -1
- /package/dist/chunks/{1265.55a02b5a.js.LICENSE.txt → 1265.bf280e6d.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{3654.59bd8992.js.LICENSE.txt → 3654.6a028b09.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{7920.df65d810.js.LICENSE.txt → 7920.367555e2.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{948.83e23068.js.LICENSE.txt → 948.e308c274.js.LICENSE.txt} +0 -0
|
@@ -39,27 +39,74 @@ export interface EoDiagramEventsMapping {
|
|
|
39
39
|
onNodesConnect: "nodes.connect";
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
|
-
*
|
|
42
|
+
* @description 图表构件,支持 dagre(有向无环图)和 force(力导向图)两种布局,可渲染节点和连线,支持缩放、平移、拖拽节点、连线交互等功能。
|
|
43
|
+
* @category diagram
|
|
43
44
|
*/
|
|
44
45
|
export declare class EoDiagram extends ReactNextElement implements EoDiagramProps {
|
|
45
46
|
#private;
|
|
46
47
|
/**
|
|
48
|
+
* @description 图表布局类型,支持 `dagre`(层次有向图)和 `force`(力导向图)。
|
|
47
49
|
* @required
|
|
48
50
|
*/
|
|
49
51
|
accessor layout: "dagre" | "force" | undefined;
|
|
52
|
+
/**
|
|
53
|
+
* @description 节点数据列表,每个节点需包含唯一 `id` 字段。
|
|
54
|
+
*/
|
|
50
55
|
accessor nodes: DiagramNode[] | undefined;
|
|
56
|
+
/**
|
|
57
|
+
* @description 边(连线)数据列表,每条边需包含 `source` 和 `target` 字段,指向节点 id。
|
|
58
|
+
*/
|
|
51
59
|
accessor edges: DiagramEdge[] | undefined;
|
|
60
|
+
/**
|
|
61
|
+
* @description 节点砖块配置,指定渲染节点使用的自定义构件,可按节点类型匹配不同配置。
|
|
62
|
+
*/
|
|
52
63
|
accessor nodeBricks: NodeBrickConf[] | undefined;
|
|
64
|
+
/**
|
|
65
|
+
* @description 连线样式配置,支持箭头、颜色、标签、交互等多种选项。
|
|
66
|
+
*/
|
|
53
67
|
accessor lines: LineConf[] | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* @description 布局算法选项,dagre 布局支持 rankdir、ranksep、nodesep 等,force 布局支持 dummyNodesOnEdges、collide 等。
|
|
70
|
+
*/
|
|
54
71
|
accessor layoutOptions: LayoutOptions | undefined;
|
|
72
|
+
/**
|
|
73
|
+
* @description 当前激活目标,可以是节点(`{ type: "node", nodeId }`) 或边(`{ type: "edge", edge }`),为 null 表示无激活目标。
|
|
74
|
+
*/
|
|
55
75
|
accessor activeTarget: ActiveTarget | null | undefined;
|
|
76
|
+
/**
|
|
77
|
+
* @description 是否禁用键盘操作(删除节点/边、切换激活节点),当有标签正在编辑时可临时禁用以避免冲突。
|
|
78
|
+
*/
|
|
56
79
|
accessor disableKeyboardAction: boolean | undefined;
|
|
80
|
+
/**
|
|
81
|
+
* @description 连线交互配置,启用后支持从节点拖拽出新的连线,可配置连线样式和源节点过滤条件。
|
|
82
|
+
*/
|
|
57
83
|
accessor connectNodes: ConnectNodesOptions | undefined;
|
|
84
|
+
/**
|
|
85
|
+
* @description 拖拽节点配置,启用后支持手动拖拽节点调整位置,可配置是否保存用户视图。
|
|
86
|
+
*/
|
|
58
87
|
accessor dragNodes: DragNodesOptions | undefined;
|
|
88
|
+
/**
|
|
89
|
+
* @description 是否允许通过鼠标滚轮或触控板捏合手势缩放图表,默认为 true。
|
|
90
|
+
*/
|
|
59
91
|
accessor zoomable: boolean | undefined;
|
|
92
|
+
/**
|
|
93
|
+
* @description 是否允许通过滚轮平移图表(非捏合手势),默认为 true。
|
|
94
|
+
*/
|
|
60
95
|
accessor scrollable: boolean | undefined;
|
|
96
|
+
/**
|
|
97
|
+
* @description 是否允许通过鼠标拖拽平移图表,默认为 true。
|
|
98
|
+
*/
|
|
61
99
|
accessor pannable: boolean | undefined;
|
|
100
|
+
/**
|
|
101
|
+
* @description 缩放比例范围,格式为 `[min, max]`,默认范围由内部常量决定。
|
|
102
|
+
*/
|
|
62
103
|
accessor scaleRange: RangeTuple | undefined;
|
|
104
|
+
/**
|
|
105
|
+
* @description 调用指定 id 的连线标签构件上的方法,常用于触发标签编辑(如 `callOnLineLabel(id, "enableEditing")`)。
|
|
106
|
+
* @param id 连线标签的 id(格式通常为 `${lineId}-${placement}`)
|
|
107
|
+
* @param method 要调用的方法名
|
|
108
|
+
* @param args 传递给方法的参数列表
|
|
109
|
+
*/
|
|
63
110
|
callOnLineLabel(id: string, method: string, ...args: unknown[]): void;
|
|
64
111
|
render(): React.JSX.Element;
|
|
65
112
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CSSProperties } from "react";
|
|
2
|
-
import type {
|
|
2
|
+
import type { UseSingleBrickConfOrRenderFunction } from "@next-core/react-runtime";
|
|
3
3
|
export interface DiagramNode {
|
|
4
4
|
id: DiagramNodeId;
|
|
5
5
|
type?: string;
|
|
@@ -96,7 +96,7 @@ export interface LineMarker {
|
|
|
96
96
|
export type DiagramNodeId = string;
|
|
97
97
|
export type RefRepository = Map<DiagramNodeId, HTMLElement>;
|
|
98
98
|
export interface NodeBrickConf {
|
|
99
|
-
useBrick:
|
|
99
|
+
useBrick: UseSingleBrickConfOrRenderFunction;
|
|
100
100
|
nodeType?: string | string[];
|
|
101
101
|
if?: string | boolean | null;
|
|
102
102
|
}
|
|
@@ -134,7 +134,7 @@ export interface LineConfOverridable {
|
|
|
134
134
|
}
|
|
135
135
|
export interface LineLabelConf extends LabelOrTextBaseOptions {
|
|
136
136
|
if?: string | boolean | null;
|
|
137
|
-
useBrick:
|
|
137
|
+
useBrick: UseSingleBrickConfOrRenderFunction;
|
|
138
138
|
}
|
|
139
139
|
export interface TextOptions extends LabelOrTextBaseOptions {
|
|
140
140
|
content: string;
|
|
@@ -36,18 +36,34 @@ export interface EoDisplayCanvasEventsMapping {
|
|
|
36
36
|
onCellClick: "cell.click";
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
|
-
*
|
|
39
|
+
* @description 用于展示查看的画布构件,支持 manual、force、dagre 多种布局,可展示节点、边和装饰器,支持缩放、平移、激活目标高亮、淡化无关元素等功能。
|
|
40
|
+
* @category diagram
|
|
40
41
|
*/
|
|
41
42
|
export declare class EoDisplayCanvas extends ReactNextElement implements EoDisplayCanvasProps {
|
|
42
43
|
#private;
|
|
43
44
|
/**
|
|
44
|
-
*
|
|
45
|
+
* @description 画布中的单元格数据,包含节点(node)、边(edge)和装饰器(decorator)。
|
|
45
46
|
*/
|
|
46
47
|
accessor cells: InitialCell[] | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* @description 画布布局类型,支持 `manual`(手动定位)、`force`(力导向)、`dagre`(层次有向图)。
|
|
50
|
+
*/
|
|
47
51
|
accessor layout: LayoutType;
|
|
52
|
+
/**
|
|
53
|
+
* @description 布局算法选项,根据 layout 类型不同,支持不同参数(如 dagre 的 ranksep/nodesep,force 的碰撞参数等)。
|
|
54
|
+
*/
|
|
48
55
|
accessor layoutOptions: LayoutOptions | undefined;
|
|
56
|
+
/**
|
|
57
|
+
* @description 是否自动计算节点尺寸,启用后画布会根据节点内容自动调整节点大小。
|
|
58
|
+
*/
|
|
49
59
|
accessor autoSize: AutoSize | undefined;
|
|
60
|
+
/**
|
|
61
|
+
* @description 节点默认尺寸,格式为 `[width, height]`,在节点未指定尺寸时使用。
|
|
62
|
+
*/
|
|
50
63
|
accessor defaultNodeSize: SizeTuple;
|
|
64
|
+
/**
|
|
65
|
+
* @description 节点默认砖块配置,指定渲染节点的自定义构件,可按节点类型匹配不同配置。
|
|
66
|
+
*/
|
|
51
67
|
accessor defaultNodeBricks: NodeBrickConf[] | undefined;
|
|
52
68
|
/**
|
|
53
69
|
* 当节点数量达到或超过 `degradedThreshold` 时,节点将被降级展示。
|
|
@@ -71,14 +87,29 @@ export declare class EoDisplayCanvas extends ReactNextElement implements EoDispl
|
|
|
71
87
|
* ```
|
|
72
88
|
*/
|
|
73
89
|
accessor defaultEdgeLines: EdgeLineConf[] | undefined;
|
|
90
|
+
/**
|
|
91
|
+
* @description 当前激活目标,可以是节点(`{ type: "node", id }`)或边(`{ type: "edge", id }`)等,为 null 表示无激活目标。
|
|
92
|
+
*/
|
|
74
93
|
accessor activeTarget: ActiveTarget | null | undefined;
|
|
75
94
|
/**
|
|
76
|
-
*
|
|
95
|
+
* @description 当鼠标悬浮到某节点上时,隐藏其他跟该节点无关的元素,高亮相关节点和边。
|
|
77
96
|
*/
|
|
78
97
|
accessor fadeUnrelatedCells: boolean | undefined;
|
|
98
|
+
/**
|
|
99
|
+
* @description 是否允许通过鼠标滚轮或触控板捏合手势缩放画布,默认为 true。
|
|
100
|
+
*/
|
|
79
101
|
accessor zoomable: boolean | undefined;
|
|
102
|
+
/**
|
|
103
|
+
* @description 是否允许通过滚轮平移画布(非捏合手势),默认为 true。
|
|
104
|
+
*/
|
|
80
105
|
accessor scrollable: boolean | undefined;
|
|
106
|
+
/**
|
|
107
|
+
* @description 是否允许通过鼠标拖拽平移画布,默认为 true。
|
|
108
|
+
*/
|
|
81
109
|
accessor pannable: boolean | undefined;
|
|
110
|
+
/**
|
|
111
|
+
* @description 缩放比例范围,格式为 `[min, max]`,默认范围由内部常量决定。
|
|
112
|
+
*/
|
|
82
113
|
accessor scaleRange: RangeTuple | undefined;
|
|
83
114
|
/**
|
|
84
115
|
* 隐藏右下角放大缩小的控制栏
|
|
@@ -97,6 +128,9 @@ export declare class EoDisplayCanvas extends ReactNextElement implements EoDispl
|
|
|
97
128
|
*/
|
|
98
129
|
accessor doNotResetActiveTargetOutsideCanvas: boolean | undefined;
|
|
99
130
|
accessor extraStyleTexts: string[] | undefined;
|
|
131
|
+
/**
|
|
132
|
+
* @description 将画布视图重置并居中,使所有单元格重新显示在视口中央。
|
|
133
|
+
*/
|
|
100
134
|
center(): void;
|
|
101
135
|
render(): React.JSX.Element;
|
|
102
136
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { ReactNextElement } from "@next-core/react-element";
|
|
3
|
-
import type {
|
|
3
|
+
import type { UseSingleBrickConfOrRenderFunction } from "@next-core/react-runtime";
|
|
4
4
|
import "@next-core/theme";
|
|
5
5
|
import type { NodePosition, PositionTuple, RangeTuple, SizeTuple, TransformLiteral } from "../diagram/interfaces";
|
|
6
6
|
import type { ActiveTarget, Cell, EdgeCell, InitialCell, NodeBrickConf, NodeCell, NodeId, DecoratorCell, DecoratorType, CellContextMenuDetail, ConnectNodesDetail, EdgeLineConf, DecoratorTextChangeDetail, LayoutType, LayoutOptions, LineConnecterConf, Direction, LineSettings, DecoratorView, DecoratorLineView } from "./interfaces";
|
|
@@ -55,7 +55,7 @@ export interface DropDecoratorInfo {
|
|
|
55
55
|
}
|
|
56
56
|
export interface AddNodeInfo {
|
|
57
57
|
id: NodeId;
|
|
58
|
-
useBrick?:
|
|
58
|
+
useBrick?: UseSingleBrickConfOrRenderFunction;
|
|
59
59
|
data?: unknown;
|
|
60
60
|
size?: SizeTuple;
|
|
61
61
|
containerId?: NodeId;
|
|
@@ -132,22 +132,32 @@ export interface EoDrawCanvasEventsMapping {
|
|
|
132
132
|
onCanvasUngroup: "canvas.ungroup";
|
|
133
133
|
}
|
|
134
134
|
/**
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
* 注意:将配套另外一个用于展示的画布构件。
|
|
135
|
+
* @description 用于手工绘图的画布构件,支持节点拖放、连线绘制、元素移动/缩放/删除等交互操作,配合展示画布(eo-display-canvas)使用。
|
|
136
|
+
* @category diagram
|
|
138
137
|
*/
|
|
139
138
|
export declare class EoDrawCanvas extends ReactNextElement implements EoDrawCanvasProps {
|
|
140
139
|
#private;
|
|
141
140
|
/**
|
|
142
|
-
*
|
|
141
|
+
* @description 初始化画布单元格数据,包含节点(node)、边(edge)和装饰器(decorator)。仅当初始化时使用,渲染后重新设置 `cells` 将无效,请使用 `updateCells` 方法代替。
|
|
143
142
|
*/
|
|
144
143
|
accessor cells: InitialCell[] | undefined;
|
|
144
|
+
/**
|
|
145
|
+
* @description 画布布局类型,支持 `manual`(手动定位)、`force`(力导向)、`dagre`(层次有向图)。
|
|
146
|
+
*/
|
|
145
147
|
accessor layout: LayoutType;
|
|
148
|
+
/**
|
|
149
|
+
* @description 布局算法选项,根据 layout 类型不同,支持不同参数(如 dagre 的 ranksep/nodesep 等)。
|
|
150
|
+
*/
|
|
146
151
|
accessor layoutOptions: LayoutOptions | undefined;
|
|
147
152
|
/**
|
|
153
|
+
* @description 节点默认尺寸,格式为 `[width, height]`,在节点未指定尺寸时使用。
|
|
154
|
+
*
|
|
148
155
|
* @default [100,20]
|
|
149
156
|
*/
|
|
150
157
|
accessor defaultNodeSize: SizeTuple;
|
|
158
|
+
/**
|
|
159
|
+
* @description 节点默认砖块配置,指定渲染节点的自定义构件,可按节点类型匹配不同配置。
|
|
160
|
+
*/
|
|
151
161
|
accessor defaultNodeBricks: NodeBrickConf[] | undefined;
|
|
152
162
|
/**
|
|
153
163
|
* 当节点数量达到或超过 `degradedThreshold` 时,节点将被降级展示。
|
|
@@ -171,14 +181,29 @@ export declare class EoDrawCanvas extends ReactNextElement implements EoDrawCanv
|
|
|
171
181
|
* ```
|
|
172
182
|
*/
|
|
173
183
|
accessor defaultEdgeLines: EdgeLineConf[] | undefined;
|
|
184
|
+
/**
|
|
185
|
+
* @description 当前激活目标,可以是节点、边或装饰器,为 null 表示无激活目标。
|
|
186
|
+
*/
|
|
174
187
|
accessor activeTarget: ActiveTarget | null | undefined;
|
|
175
188
|
/**
|
|
176
|
-
* 当 `activeTarget` 不为 `null` 时,隐藏其他跟该 `activeTarget`
|
|
189
|
+
* @description 当 `activeTarget` 不为 `null` 时,隐藏其他跟该 `activeTarget` 无关的元素,高亮相关节点和边。
|
|
177
190
|
*/
|
|
178
191
|
accessor fadeUnrelatedCells: boolean | undefined;
|
|
192
|
+
/**
|
|
193
|
+
* @description 是否允许通过鼠标滚轮或触控板捏合手势缩放画布,默认为 true。
|
|
194
|
+
*/
|
|
179
195
|
accessor zoomable: boolean | undefined;
|
|
196
|
+
/**
|
|
197
|
+
* @description 是否允许通过滚轮平移画布(非捏合手势),默认为 true。
|
|
198
|
+
*/
|
|
180
199
|
accessor scrollable: boolean | undefined;
|
|
200
|
+
/**
|
|
201
|
+
* @description 是否允许通过鼠标拖拽平移画布,默认为 true。
|
|
202
|
+
*/
|
|
181
203
|
accessor pannable: boolean | undefined;
|
|
204
|
+
/**
|
|
205
|
+
* @description 是否允许将边连接到区域(area)装饰器,默认为 false。
|
|
206
|
+
*/
|
|
182
207
|
accessor allowEdgeToArea: boolean | undefined;
|
|
183
208
|
/**
|
|
184
209
|
* 按住鼠标拖动时的行为:
|
|
@@ -197,8 +222,17 @@ export declare class EoDrawCanvas extends ReactNextElement implements EoDrawCanv
|
|
|
197
222
|
* @default "none"
|
|
198
223
|
*/
|
|
199
224
|
accessor ctrlDragBehavior: CtrlDragBehavior | undefined;
|
|
225
|
+
/**
|
|
226
|
+
* @description 缩放比例范围,格式为 `[min, max]`,默认范围由内部常量决定。
|
|
227
|
+
*/
|
|
200
228
|
accessor scaleRange: RangeTuple | undefined;
|
|
229
|
+
/**
|
|
230
|
+
* @description 连线设置,包含连线类型、箭头等属性,用于新建连线时的默认样式。
|
|
231
|
+
*/
|
|
201
232
|
accessor lineSettings: LineSettings | undefined;
|
|
233
|
+
/**
|
|
234
|
+
* @description 连线连接器配置,设置为 `true` 或配置对象以启用智能连线功能,允许从节点边缘拖出连线。
|
|
235
|
+
*/
|
|
202
236
|
accessor lineConnector: LineConnecterConf | boolean | undefined;
|
|
203
237
|
/**
|
|
204
238
|
* 选择器,点击该选择器对应的元素时不重置 `activeTarget`。
|
|
@@ -208,14 +242,48 @@ export declare class EoDrawCanvas extends ReactNextElement implements EoDrawCanv
|
|
|
208
242
|
* 在画布外点击时不重置 `activeTarget`。
|
|
209
243
|
*/
|
|
210
244
|
accessor doNotResetActiveTargetOutsideCanvas: boolean | undefined;
|
|
245
|
+
/**
|
|
246
|
+
* @description 将一个节点拖放到画布中指定位置。如果放置位置不在画布内,则返回 null。
|
|
247
|
+
* @param info 拖放节点信息,包含节点 id、拖放位置(clientX/clientY)、尺寸和数据
|
|
248
|
+
* @returns 成功时返回创建的 NodeCell,否则返回 null
|
|
249
|
+
*/
|
|
211
250
|
dropNode({ id, position, size, data, useBrick, }: DropNodeInfo): Promise<NodeCell | null>;
|
|
251
|
+
/**
|
|
252
|
+
* @description 将一个装饰器(area、container、text、line 等)拖放到画布中指定位置。如果放置位置不在画布内,则返回 null。
|
|
253
|
+
* @param info 拖放装饰器信息,包含装饰器类型、拖放位置、文本和方向等
|
|
254
|
+
* @returns 成功时返回创建的 DecoratorCell,否则返回 null
|
|
255
|
+
*/
|
|
212
256
|
dropDecorator({ position, decorator, text, direction, source, target, view, }: DropDecoratorInfo): Promise<DecoratorCell | null>;
|
|
257
|
+
/**
|
|
258
|
+
* @description 批量添加节点到画布,节点位置由布局算法自动计算。
|
|
259
|
+
* @param nodes 要添加的节点信息列表,每项包含 id、数据、尺寸等
|
|
260
|
+
* @returns 创建的 NodeCell 列表
|
|
261
|
+
*/
|
|
213
262
|
addNodes(nodes: AddNodeInfo[]): Promise<NodeCell[]>;
|
|
263
|
+
/**
|
|
264
|
+
* @description 以编程方式添加一条边(连线)到画布。注意:此方法不会触发 `edge.add` 事件。
|
|
265
|
+
* @param info 边信息,包含 source(起始节点 id)、target(目标节点 id)和可选的 data
|
|
266
|
+
* @returns 创建的 EdgeCell 对象
|
|
267
|
+
*/
|
|
214
268
|
addEdge({ source, target, data }: AddEdgeInfo): Promise<EdgeCell>;
|
|
269
|
+
/**
|
|
270
|
+
* @description 以编程方式启动从指定源节点到目标节点的手动连线流程,等待用户在画布上点击目标节点后返回连线详情。
|
|
271
|
+
* @param source 起始节点的 id
|
|
272
|
+
* @returns Promise,解析为 ConnectNodesDetail 包含 source 和 target 节点信息
|
|
273
|
+
*/
|
|
215
274
|
manuallyConnectNodes(source: NodeId): Promise<ConnectNodesDetail>;
|
|
275
|
+
/**
|
|
276
|
+
* @description 更新画布中的单元格数据,支持增量更新(新增、修改),已渲染的画布使用此方法代替直接设置 `cells` 属性。
|
|
277
|
+
* @param cells 新的单元格数据列表
|
|
278
|
+
* @param ctx 可选的更新上下文,用于指定更新原因和位置参考节点
|
|
279
|
+
* @returns 返回实际被更新的单元格列表
|
|
280
|
+
*/
|
|
216
281
|
updateCells(cells: InitialCell[], ctx?: UpdateCellsContext): Promise<{
|
|
217
282
|
updated: Cell[];
|
|
218
283
|
}>;
|
|
284
|
+
/**
|
|
285
|
+
* @description 将画布视图重置并居中,使所有单元格重新显示在视口中央。
|
|
286
|
+
*/
|
|
219
287
|
reCenter(): Promise<void>;
|
|
220
288
|
/**
|
|
221
289
|
* 切换锁定状态。
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { UseSingleBrickConfOrRenderFunction } from "@next-core/react-runtime";
|
|
2
2
|
import type { SimulationLinkDatum, SimulationNodeDatum } from "d3-force";
|
|
3
3
|
import type { CSSProperties, FunctionComponent } from "react";
|
|
4
4
|
import type { ResizeCellPayload } from "./reducers/interfaces";
|
|
@@ -21,7 +21,7 @@ export type NodeComponent = FunctionComponent<{
|
|
|
21
21
|
}>;
|
|
22
22
|
export type NodeId = string;
|
|
23
23
|
export interface BaseBrickCell extends BaseCell {
|
|
24
|
-
useBrick?:
|
|
24
|
+
useBrick?: UseSingleBrickConfOrRenderFunction;
|
|
25
25
|
}
|
|
26
26
|
export interface BaseNodeCell extends BaseCell {
|
|
27
27
|
type: "node";
|
|
@@ -96,7 +96,7 @@ export type InitialNodeCell = Omit<NodeCell, "view"> & {
|
|
|
96
96
|
};
|
|
97
97
|
export type InitialCell = InitialNodeCell | EdgeCell | DecoratorCell;
|
|
98
98
|
export interface NodeBrickConf {
|
|
99
|
-
useBrick?:
|
|
99
|
+
useBrick?: UseSingleBrickConfOrRenderFunction;
|
|
100
100
|
component?: NodeComponent;
|
|
101
101
|
if?: string | boolean | null;
|
|
102
102
|
}
|
|
@@ -20,13 +20,26 @@ export interface EditableLabelEventsMapping {
|
|
|
20
20
|
onLabelChange: "label.change";
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
23
|
+
* @description 可编辑标签构件,用于在图表连线或节点上展示可双击编辑的文本标签,支持只读模式,常配合 `eo-draw-canvas` 和 `eo-diagram` 使用。
|
|
24
|
+
* @category diagram
|
|
24
25
|
*/
|
|
25
26
|
export declare class EditableLabel extends ReactNextElement implements EditableLabelProps {
|
|
26
27
|
#private;
|
|
28
|
+
/**
|
|
29
|
+
* @description 标签文本内容。
|
|
30
|
+
*/
|
|
27
31
|
accessor label: string | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* @description 标签类型,`line` 用于连线标签样式,`default` 为默认节点标签样式,影响外观渲染(使用 `render: false` 仅更新属性不触发重渲染)。
|
|
34
|
+
*/
|
|
28
35
|
accessor type: LabelType | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* @description 是否为只读模式,启用后双击不会进入编辑状态,`enableEditing` 方法调用也不会生效。
|
|
38
|
+
*/
|
|
29
39
|
accessor readOnly: boolean | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* @description 以编程方式启用标签的编辑状态(相当于用户双击),只读模式下不生效。
|
|
42
|
+
*/
|
|
30
43
|
enableEditing(): void;
|
|
31
44
|
render(): React.JSX.Element;
|
|
32
45
|
}
|
|
@@ -20,12 +20,22 @@ export interface ExperimentalNodeEventsMapping {
|
|
|
20
20
|
onDragEnd: "drag.end";
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
23
|
+
* @description 实验性图表节点构件,支持从素材库拖拽到画布(`usage: "library"`)和画布内节点渲染(`usage: "default"`),支持高亮、淡化等状态样式,常配合 `eo-draw-canvas` 和 `eo-display-canvas` 使用。
|
|
24
|
+
* @category diagram
|
|
24
25
|
*/
|
|
25
26
|
export declare class ExperimentalNode extends ReactNextElement implements ExperimentalNodeProps {
|
|
26
27
|
#private;
|
|
28
|
+
/**
|
|
29
|
+
* @description 节点使用场景:`library` 表示素材库中的拖拽源,`dragging` 表示正在拖拽中的幽灵节点,`default` 表示画布内正常渲染的节点。
|
|
30
|
+
*/
|
|
27
31
|
accessor usage: ExperimentalUsage | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* @description 节点状态,影响外观样式:`highlighted` 高亮、`faded` 淡化、`default` 默认(使用 `render: false` 仅更新属性不触发重渲染)。
|
|
34
|
+
*/
|
|
28
35
|
accessor status: NodeStatus | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* @description 装饰器类型,用于渲染不同类型的装饰器外观(area、container、text 等),与 `usage: "dragging"` 配合使用。
|
|
38
|
+
*/
|
|
29
39
|
accessor decorator: DecoratorType | undefined;
|
|
30
40
|
render(): React.JSX.Element;
|
|
31
41
|
}
|
package/docs/editable-label.md
CHANGED
|
@@ -1,9 +1,42 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
tagName: diagram.editable-label
|
|
3
|
+
displayName: WrappedDiagramEditableLabel
|
|
4
|
+
description: 可编辑标签构件,用于在图表连线或节点上展示可双击编辑的文本标签,支持只读模式,常配合 `eo-draw-canvas` 和 `eo-diagram` 使用。
|
|
5
|
+
category: diagram
|
|
6
|
+
source: "@next-bricks/diagram"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# diagram.editable-label
|
|
10
|
+
|
|
11
|
+
> 可编辑标签构件,用于在图表连线或节点上展示可双击编辑的文本标签,支持只读模式,常配合 `eo-draw-canvas` 和 `eo-diagram` 使用。
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
16
|
+
| -------- | ------------------------ | ---- | ------ | ------------------------------------------------------------------------------------------------------------------------------ |
|
|
17
|
+
| label | `string \| undefined` | - | - | 标签文本内容。 |
|
|
18
|
+
| type | `LabelType \| undefined` | - | - | 标签类型,`line` 用于连线标签样式,`default` 为默认节点标签样式,影响外观渲染(使用 `render: false` 仅更新属性不触发重渲染)。 |
|
|
19
|
+
| readOnly | `boolean \| undefined` | - | - | 是否为只读模式,启用后双击不会进入编辑状态,`enableEditing` 方法调用也不会生效。 |
|
|
20
|
+
|
|
21
|
+
## Events
|
|
22
|
+
|
|
23
|
+
| 事件 | detail | 说明 |
|
|
24
|
+
| -------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
|
|
25
|
+
| label.editing.change | `boolean` — 当前是否处于编辑状态,true 表示正在编辑,false 表示结束编辑 | 标签编辑状态变化时触发,当用户开始编辑(双击或调用 `enableEditing`)或结束编辑(失焦/按 Enter)时触发。 |
|
|
26
|
+
| label.change | `string` — 编辑完成后的新标签文本 | 标签编辑完成后触发(用户失焦或按 Enter 键),即使内容未变化也会触发,需自行判断是否发生实际变更。 |
|
|
27
|
+
|
|
28
|
+
## Methods
|
|
29
|
+
|
|
30
|
+
| 方法 | 参数 | 返回值 | 说明 |
|
|
31
|
+
| ------------- | ------------ | ------ | ------------------------------------------------------------------ |
|
|
32
|
+
| enableEditing | `() => void` | `void` | 以编程方式启用标签的编辑状态(相当于用户双击),只读模式下不生效。 |
|
|
2
33
|
|
|
3
34
|
## Examples
|
|
4
35
|
|
|
5
36
|
### Basic
|
|
6
37
|
|
|
38
|
+
展示可编辑标签的基本用法,双击标签可进入编辑模式,失焦或按 Enter 键确认修改。
|
|
39
|
+
|
|
7
40
|
```yaml preview
|
|
8
41
|
brick: diagram.editable-label
|
|
9
42
|
properties:
|
|
@@ -15,3 +48,40 @@ events:
|
|
|
15
48
|
args:
|
|
16
49
|
- "<% `Label changed to: ${EVENT.detail}` %>"
|
|
17
50
|
```
|
|
51
|
+
|
|
52
|
+
### Read Only
|
|
53
|
+
|
|
54
|
+
展示只读模式下的标签,双击不会进入编辑状态。
|
|
55
|
+
|
|
56
|
+
```yaml preview
|
|
57
|
+
brick: diagram.editable-label
|
|
58
|
+
properties:
|
|
59
|
+
type: line
|
|
60
|
+
label: Read Only Label
|
|
61
|
+
readOnly: true
|
|
62
|
+
events:
|
|
63
|
+
label.change:
|
|
64
|
+
action: message.success
|
|
65
|
+
args:
|
|
66
|
+
- "<% `Label changed to: ${EVENT.detail}` %>"
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Editing State Change
|
|
70
|
+
|
|
71
|
+
展示监听编辑状态变化事件,在用户开始/结束编辑时响应。
|
|
72
|
+
|
|
73
|
+
```yaml preview
|
|
74
|
+
brick: diagram.editable-label
|
|
75
|
+
properties:
|
|
76
|
+
type: default
|
|
77
|
+
label: Click to edit
|
|
78
|
+
events:
|
|
79
|
+
label.editing.change:
|
|
80
|
+
action: message.info
|
|
81
|
+
args:
|
|
82
|
+
- "<% EVENT.detail ? 'Editing started' : 'Editing ended' %>"
|
|
83
|
+
label.change:
|
|
84
|
+
action: message.success
|
|
85
|
+
args:
|
|
86
|
+
- "<% `New label: ${EVENT.detail}` %>"
|
|
87
|
+
```
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: diagram.editable-label
|
|
3
|
+
displayName: WrappedDiagramEditableLabel
|
|
4
|
+
description: 可编辑标签构件,用于在图表连线或节点上展示可双击编辑的文本标签,支持只读模式,常配合 `eo-draw-canvas` 和 `eo-diagram` 使用。
|
|
5
|
+
category: diagram
|
|
6
|
+
source: "@next-bricks/diagram"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# WrappedDiagramEditableLabel
|
|
10
|
+
|
|
11
|
+
> 可编辑标签构件,用于在图表连线或节点上展示可双击编辑的文本标签,支持只读模式,常配合 `eo-draw-canvas` 和 `eo-diagram` 使用。
|
|
12
|
+
|
|
13
|
+
## 导入
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { WrappedDiagramEditableLabel } from "@easyops/wrapped-components";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
22
|
+
| -------------------- | ----------------------------------- | ---- | ------ | ------------------------------------------------------------------------------------------------------------------------------ |
|
|
23
|
+
| label | `string \| undefined` | - | - | 标签文本内容。 |
|
|
24
|
+
| type | `LabelType \| undefined` | - | - | 标签类型,`line` 用于连线标签样式,`default` 为默认节点标签样式,影响外观渲染(使用 `render: false` 仅更新属性不触发重渲染)。 |
|
|
25
|
+
| readOnly | `boolean \| undefined` | - | - | 是否为只读模式,启用后双击不会进入编辑状态,`enableEditing` 方法调用也不会生效。 |
|
|
26
|
+
| onLabelEditingChange | `(e: CustomEvent<boolean>) => void` | - | - | 标签编辑状态变化时触发。 |
|
|
27
|
+
| onLabelChange | `(e: CustomEvent<string>) => void` | - | - | 标签编辑完成后触发。 |
|
|
28
|
+
|
|
29
|
+
## Events
|
|
30
|
+
|
|
31
|
+
| 事件 | detail | 说明 |
|
|
32
|
+
| -------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
|
|
33
|
+
| onLabelEditingChange | `boolean` — 当前是否处于编辑状态,true 表示正在编辑,false 表示结束编辑 | 标签编辑状态变化时触发,当用户开始编辑(双击或调用 `enableEditing`)或结束编辑(失焦/按 Enter)时触发。 |
|
|
34
|
+
| onLabelChange | `string` — 编辑完成后的新标签文本 | 标签编辑完成后触发(用户失焦或按 Enter 键),即使内容未变化也会触发,需自行判断是否发生实际变更。 |
|
|
35
|
+
|
|
36
|
+
## Methods
|
|
37
|
+
|
|
38
|
+
| 方法 | 参数 | 返回值 | 说明 |
|
|
39
|
+
| ------------- | ------------ | ------ | ------------------------------------------------------------------ |
|
|
40
|
+
| enableEditing | `() => void` | `void` | 以编程方式启用标签的编辑状态(相当于用户双击),只读模式下不生效。 |
|
|
41
|
+
|
|
42
|
+
## Examples
|
|
43
|
+
|
|
44
|
+
### Basic
|
|
45
|
+
|
|
46
|
+
展示可编辑标签的基本用法,双击标签可进入编辑模式,失焦或按 Enter 键确认修改。
|
|
47
|
+
|
|
48
|
+
```tsx
|
|
49
|
+
import { WrappedDiagramEditableLabel } from "@easyops/wrapped-components";
|
|
50
|
+
|
|
51
|
+
function BasicEditableLabel() {
|
|
52
|
+
return (
|
|
53
|
+
<WrappedDiagramEditableLabel
|
|
54
|
+
type="line"
|
|
55
|
+
label="Relation"
|
|
56
|
+
onLabelChange={(e) => alert(`Label changed to: ${e.detail}`)}
|
|
57
|
+
/>
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Read Only
|
|
63
|
+
|
|
64
|
+
展示只读模式下的标签,双击不会进入编辑状态。
|
|
65
|
+
|
|
66
|
+
```tsx
|
|
67
|
+
import { WrappedDiagramEditableLabel } from "@easyops/wrapped-components";
|
|
68
|
+
|
|
69
|
+
function ReadOnlyLabel() {
|
|
70
|
+
return (
|
|
71
|
+
<WrappedDiagramEditableLabel
|
|
72
|
+
type="line"
|
|
73
|
+
label="Read Only Label"
|
|
74
|
+
readOnly={true}
|
|
75
|
+
onLabelChange={(e) => alert(`Label changed to: ${e.detail}`)}
|
|
76
|
+
/>
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Editing State Change
|
|
82
|
+
|
|
83
|
+
展示监听编辑状态变化事件,在用户开始/结束编辑时响应。
|
|
84
|
+
|
|
85
|
+
```tsx
|
|
86
|
+
import { WrappedDiagramEditableLabel } from "@easyops/wrapped-components";
|
|
87
|
+
|
|
88
|
+
function EditingStateLabel() {
|
|
89
|
+
return (
|
|
90
|
+
<WrappedDiagramEditableLabel
|
|
91
|
+
type="default"
|
|
92
|
+
label="Click to edit"
|
|
93
|
+
onLabelEditingChange={(e) =>
|
|
94
|
+
console.log(e.detail ? "Editing started" : "Editing ended")
|
|
95
|
+
}
|
|
96
|
+
onLabelChange={(e) => console.log(`New label: ${e.detail}`)}
|
|
97
|
+
/>
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
```
|