@8btc/whiteboard 0.0.20-alpha.34 → 0.0.20-alpha.36
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/index.css +1 -1
- package/dist/index.d.ts +653 -630
- package/dist/index.js +957 -877
- package/dist/maze.d.ts +651 -628
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -59,687 +59,710 @@ export declare class CanvasApi extends CanvasCore {
|
|
|
59
59
|
y: number;
|
|
60
60
|
}): void;
|
|
61
61
|
/**
|
|
62
|
-
*
|
|
63
|
-
* @param
|
|
64
|
-
* @returns DataURL
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
62
|
+
* 导出指定图片节点的底图、笔刷透明图和合成图
|
|
63
|
+
* @param imageId - 图片节点 ID
|
|
64
|
+
* @returns { base, brushOnly, composite } 三张 DataURL,若图片不存在返回 null
|
|
65
|
+
*/
|
|
66
|
+
exportImageWithBrush(imageId: string, options?: {
|
|
67
|
+
pixelRatio?: number;
|
|
68
|
+
}): {
|
|
69
|
+
base: string;
|
|
70
|
+
brushOnly: string;
|
|
71
|
+
composite: string;
|
|
72
|
+
} | null;
|
|
73
|
+
/**
|
|
74
|
+
* 删除指定图片节点关联的所有笔刷节点
|
|
75
|
+
* @param imageId - 图片节点 ID
|
|
76
|
+
*/
|
|
77
|
+
clearImageBrushNodes(imageId: string): void;
|
|
78
|
+
/**
|
|
79
|
+
* 导出全部图形为图片
|
|
80
|
+
* @param options - 导出配置
|
|
81
|
+
* @returns DataURL 格式的图片数据
|
|
82
|
+
*/
|
|
83
|
+
exportAsImage(options?: {
|
|
84
|
+
pixelRatio?: number;
|
|
85
|
+
mimeType?: string;
|
|
86
|
+
quality?: number;
|
|
87
|
+
}): string;
|
|
88
|
+
/**
|
|
89
|
+
* 导出当前选区为图片
|
|
90
|
+
* @param options - 导出配置
|
|
91
|
+
* @returns DataURL 格式的图片数据,如果没有选区则返回 null
|
|
92
|
+
*/
|
|
93
|
+
exportSelectionAsImage(options?: {
|
|
94
|
+
pixelRatio?: number;
|
|
95
|
+
mimeType?: string;
|
|
96
|
+
quality?: number;
|
|
97
|
+
padding?: number;
|
|
98
|
+
}): string | null;
|
|
99
|
+
/**
|
|
100
|
+
* 导出带有标注的图片节点为图片
|
|
101
|
+
* @param id - 图片节点 ID
|
|
102
|
+
* @returns DataURL 格式的图片数据,如果节点或者 marker 不存在则返回 null
|
|
103
|
+
*/
|
|
104
|
+
exportImageWithMarker(id: string, options?: {
|
|
105
|
+
pixelRatio?: number;
|
|
106
|
+
mimeType?: string;
|
|
107
|
+
quality?: number;
|
|
108
|
+
markerScale?: number;
|
|
109
|
+
}): string | null;
|
|
110
|
+
/**
|
|
111
|
+
* 删除当前选中的节点
|
|
112
|
+
* 如果删除的是 image 节点,会同步删除所有关联的 image-marker
|
|
113
|
+
*/
|
|
114
|
+
deleteSelectedNodes(): void;
|
|
115
|
+
/**
|
|
116
|
+
* 选中指定节点
|
|
117
|
+
* @param nodeIds - 要选中的节点 ID 数组,不传则取消所有选中
|
|
118
|
+
* @param multiSelect - 是否多选(追加到已选中节点),默认 false
|
|
119
|
+
*/
|
|
120
|
+
selectNodes(nodeIds?: string[], multiSelect?: boolean): void;
|
|
121
|
+
/**
|
|
122
|
+
* 更新节点样式属性
|
|
123
|
+
* @param nodeIds - 要更新的节点 ID 数组
|
|
124
|
+
* @param config - 要更新的属性配置
|
|
125
|
+
*/
|
|
126
|
+
updateNodes(nodeIds: string[], config: Partial<NodeConfig>): void;
|
|
127
|
+
/**
|
|
128
|
+
* 更新选中节点的样式属性
|
|
129
|
+
* @param config - 要更新的属性配置
|
|
130
|
+
*/
|
|
131
|
+
updateSelectedNodes(config: Partial<NodeConfig>): void;
|
|
132
|
+
/**
|
|
133
|
+
* 删除指定的节点
|
|
134
|
+
* 如果删除的是 image 节点,会同步删除所有关联的 image-marker
|
|
135
|
+
* @param nodeIds - 要删除的节点 ID 数组
|
|
136
|
+
* @returns 被删除的节点数据数组
|
|
137
|
+
*/
|
|
138
|
+
deleteNodes(nodeIds: string[]): NodeConfig[];
|
|
139
|
+
/**
|
|
140
|
+
* 将节点移动到最上层
|
|
141
|
+
*/
|
|
142
|
+
moveNodesToTop(nodeIds: string[]): void;
|
|
143
|
+
/**
|
|
144
|
+
* 将节点移动到最下层
|
|
145
|
+
*/
|
|
146
|
+
moveNodesToBottom(nodeIds: string[]): void;
|
|
147
|
+
moveNodesUp(nodeIds: string[]): void;
|
|
148
|
+
moveNodesDown(nodeIds: string[]): void;
|
|
149
|
+
/**
|
|
150
|
+
* 按照给定的 ID 数组顺序重新排列节点
|
|
151
|
+
* 数组中的第一个节点将位于最底层,最后一个节点位于最顶层
|
|
152
|
+
* @param nodeIds - 节点 ID 数组,按从底层到顶层的顺序排列
|
|
153
|
+
*/
|
|
154
|
+
reorderNodes(nodeIds: string[]): void;
|
|
155
|
+
/**
|
|
156
|
+
* 滚动到内容区域
|
|
157
|
+
* - 如果提供了 nodeIds,将指定的节点居中显示
|
|
158
|
+
* - 如果没有提供 nodeIds 但有选中的节点,将选中节点居中显示
|
|
159
|
+
* - 如果没有选中节点,将所有内容居中显示
|
|
160
|
+
* @param options - 配置选项
|
|
161
|
+
* @param options.padding - 内容周围的留白,默认 50px
|
|
162
|
+
* @param options.scale - 是否自动调整缩放以适应内容,默认 false
|
|
163
|
+
* @param options.nodeIds - 要滚动到的节点 ID 数组
|
|
164
|
+
*/
|
|
165
|
+
scrollToContent(options?: {
|
|
166
|
+
padding?: number;
|
|
167
|
+
scale?: boolean;
|
|
168
|
+
nodeIds?: string[];
|
|
169
|
+
}): void;
|
|
170
|
+
/**
|
|
171
|
+
* 导出当前状态
|
|
172
|
+
*/
|
|
173
|
+
save(): CanvasSnapshot;
|
|
174
|
+
/**
|
|
175
|
+
* 从状态中恢复画布
|
|
176
|
+
*/
|
|
177
|
+
restore(state: CanvasSnapshot): void;
|
|
178
|
+
/**
|
|
179
|
+
* 聚焦到指定节点
|
|
180
|
+
* 选中指定的节点并滚动到这些节点的位置
|
|
181
|
+
* @param nodeIds - 要聚焦的节点 ID 数组
|
|
182
|
+
* @param options - 滚动配置选项
|
|
183
|
+
* @param options.padding - 内容周围的留白,默认 50px
|
|
184
|
+
* @param options.scale - 是否自动调整缩放以适应内容,默认 false
|
|
185
|
+
*/
|
|
186
|
+
focusNodes(nodeIds: string[], options?: {
|
|
187
|
+
padding?: number;
|
|
188
|
+
scale?: boolean;
|
|
189
|
+
}): void;
|
|
190
|
+
/**
|
|
191
|
+
* 切换指定节点的可见性
|
|
192
|
+
* @param nodeId - 要切换可见性的节点 ID
|
|
193
|
+
*/
|
|
194
|
+
toggleNodeVisibility(nodeId: string): void;
|
|
195
|
+
/**
|
|
196
|
+
* 切换指定节点的锁定状态
|
|
197
|
+
* 锁定的节点无法被选中和交互(listening = false)
|
|
198
|
+
* @param nodeId - 要切换锁定状态的节点 ID
|
|
199
|
+
*/
|
|
200
|
+
toggleNodeLock(nodeId: string): void;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
declare class CanvasCore extends CanvasStore {
|
|
204
|
+
#private;
|
|
205
|
+
isEditingText: boolean;
|
|
206
|
+
constructor(el: HTMLDivElement, options?: {
|
|
207
|
+
state?: CanvasSnapshot;
|
|
208
|
+
theme?: Theme;
|
|
209
|
+
});
|
|
210
|
+
/**
|
|
211
|
+
* 获取当前主题
|
|
212
|
+
*/
|
|
213
|
+
getTheme(): Theme;
|
|
214
|
+
/**
|
|
215
|
+
* 设置主题并重新渲染
|
|
216
|
+
*/
|
|
217
|
+
setTheme(theme: Theme): void;
|
|
218
|
+
/**
|
|
219
|
+
* 获取 CanvasStage 实例
|
|
220
|
+
*/
|
|
221
|
+
getCanvasStage(): CanvasStage;
|
|
222
|
+
/**
|
|
223
|
+
* 获取 CanvasTransformer 实例
|
|
224
|
+
*/
|
|
225
|
+
getCanvasTransformer(): CanvasTransformer;
|
|
226
|
+
/**
|
|
227
|
+
* 获取 Konva.Transformer 实例
|
|
228
|
+
*/
|
|
229
|
+
getTransformer(): Transformer_2;
|
|
230
|
+
/**
|
|
231
|
+
* 获取 Konva.Stage 实例
|
|
232
|
+
*/
|
|
233
|
+
getStage(): default_2.Stage;
|
|
234
|
+
/**
|
|
235
|
+
* 获取 Stage 容器元素
|
|
236
|
+
*/
|
|
237
|
+
getContainer(): HTMLDivElement;
|
|
238
|
+
/**
|
|
239
|
+
* 获取主图层
|
|
240
|
+
*/
|
|
241
|
+
getMainLayer(): default_2.Layer;
|
|
242
|
+
/**
|
|
243
|
+
* 获取当前工具类型
|
|
244
|
+
*/
|
|
245
|
+
getToolType(): ToolType;
|
|
246
|
+
/**
|
|
247
|
+
* 获取当前工具的元数据
|
|
248
|
+
*/
|
|
249
|
+
getToolMeta(): Record<string, any> | undefined;
|
|
250
|
+
/**
|
|
251
|
+
* 设置当前工具类型(内部使用)
|
|
252
|
+
*
|
|
253
|
+
* toolMeta 是一个可选的对象,可以包含与当前工具相关的任何额外信息。例如,在绘制图形时,toolMeta 可以包含初始位置、颜色、线条样式等信息。这样,在处理工具逻辑时,就可以访问这些元数据来实现更复杂的行为。
|
|
254
|
+
*
|
|
255
|
+
* - polygon 工具可以在 toolMeta 中包含一个 $_shape 字段,指示要绘制的多边形形状(如 triangle、rectangle、pentagon 等),以便在创建草稿节点时生成对应形状的点数据。
|
|
256
|
+
*/
|
|
257
|
+
setToolType(type: ToolType, toolMeta?: any): void;
|
|
258
|
+
/**
|
|
259
|
+
* 根据 ID 获取 Canvas 节点实例
|
|
260
|
+
*/
|
|
261
|
+
getCanvasNodeById(id: string): CanvasNode | null;
|
|
262
|
+
/**
|
|
263
|
+
* 设置是否可拖拽(内部使用)
|
|
264
|
+
*/
|
|
265
|
+
protected setDraggable(draggable: boolean): void;
|
|
266
|
+
/* Excluded from this release type: _setCursor */
|
|
267
|
+
/* Excluded from this release type: _resetCursor */
|
|
268
|
+
/**
|
|
269
|
+
* 获取当前 Stage 缩放比例
|
|
270
|
+
*/
|
|
271
|
+
getStageScale(): number;
|
|
272
|
+
/* Excluded from this release type: _updateViewport */
|
|
273
|
+
protected createNodes(nodes: NodeConfig[], addToHistory: boolean): void;
|
|
274
|
+
/**
|
|
275
|
+
* 创建图片标注节点(内部使用)
|
|
276
|
+
*/
|
|
277
|
+
protected createImageMarkerNode(parentImageId: string, startPosition: {
|
|
278
|
+
x: number;
|
|
279
|
+
y: number;
|
|
280
|
+
}, endPosition: {
|
|
281
|
+
x: number;
|
|
282
|
+
y: number;
|
|
283
|
+
}, imageBounds: {
|
|
284
|
+
x: number;
|
|
285
|
+
y: number;
|
|
286
|
+
width: number;
|
|
287
|
+
height: number;
|
|
288
|
+
}): void;
|
|
289
|
+
/* Excluded from this release type: _findImageAtPosition */
|
|
290
|
+
/* Excluded from this release type: _setDrawingPosition */
|
|
291
|
+
/* Excluded from this release type: _updateDrawingPosition */
|
|
292
|
+
/* Excluded from this release type: _createDraftNode */
|
|
293
|
+
/* Excluded from this release type: _updateDraftNode */
|
|
294
|
+
/* Excluded from this release type: _appendBrushPoint */
|
|
295
|
+
/* Excluded from this release type: _finalizeDraftNode */
|
|
296
|
+
/* Excluded from this release type: _createTextNodeAtDrawingPosition */
|
|
297
|
+
/* Excluded from this release type: _createSelectRect */
|
|
298
|
+
_updateSelectRect(): void;
|
|
299
|
+
/* Excluded from this release type: _finalizeSelectRect */
|
|
300
|
+
/* Excluded from this release type: _selectNodes */
|
|
301
|
+
/* Excluded from this release type: deleteNodes */
|
|
302
|
+
/* Excluded from this release type: deleteSelectedNodes */
|
|
303
|
+
/**
|
|
304
|
+
* 销毁 canvas
|
|
305
|
+
*/
|
|
306
|
+
dispose(): void;
|
|
307
|
+
/* Excluded from this release type: _rebuildStateAfterNodeChange */
|
|
308
|
+
/**
|
|
309
|
+
* 实现父类的状态同步方法
|
|
310
|
+
* 当 undo/redo 时被调用
|
|
311
|
+
*/
|
|
312
|
+
protected _renderCanvas(state: CanvasSnapshot): void;
|
|
313
|
+
_showContextMenu(data: {
|
|
314
|
+
x: number;
|
|
315
|
+
y: number;
|
|
316
|
+
clientX: number;
|
|
317
|
+
clientY: number;
|
|
318
|
+
targetIds: string[];
|
|
319
|
+
}): void;
|
|
320
|
+
_syncNodesZIndexToStore(): void;
|
|
321
|
+
_registerTextEditor(editor: Editor): void;
|
|
322
|
+
_unregisterTextEditor(): void;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
/**
|
|
326
|
+
* 状态事件类型定义
|
|
327
|
+
*/
|
|
328
|
+
declare type CanvasEvents = {
|
|
329
|
+
"state:change": CanvasSnapshot;
|
|
330
|
+
"state:undo": CanvasSnapshot;
|
|
331
|
+
"state:redo": CanvasSnapshot;
|
|
332
|
+
"state:reset": CanvasSnapshot;
|
|
333
|
+
"viewport:change": CanvasSnapshot["viewport"];
|
|
334
|
+
"viewport:scale:change": number;
|
|
335
|
+
"transformer:positionChange": TransformerPosition | null;
|
|
336
|
+
"toolType:change": {
|
|
337
|
+
type: CanvasSnapshot["toolType"];
|
|
338
|
+
meta?: Record<string, any>;
|
|
339
|
+
};
|
|
340
|
+
"theme:change": Theme;
|
|
341
|
+
"nodes:created": NodeConfig[];
|
|
342
|
+
"nodes:deleted": NodeConfig[];
|
|
343
|
+
"nodes:selected": string[];
|
|
344
|
+
"contextmenu:show": {
|
|
345
|
+
x: number;
|
|
346
|
+
y: number;
|
|
347
|
+
clientX: number;
|
|
348
|
+
clientY: number;
|
|
349
|
+
targetIds: string[];
|
|
350
|
+
};
|
|
351
|
+
"nodes:sorted": string[];
|
|
352
|
+
"texteditor:register": any;
|
|
353
|
+
"texteditor:unregister": void;
|
|
316
354
|
};
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
355
|
+
|
|
356
|
+
export declare interface CanvasNode {
|
|
357
|
+
getID(): string;
|
|
358
|
+
getElement(): default_2.Shape | default_2.Group;
|
|
359
|
+
getConfig(): NodeConfig;
|
|
360
|
+
syncConfigFromElement(): void;
|
|
361
|
+
update(config: Partial<NodeConfig>): void;
|
|
362
|
+
destroy(): void;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
export declare interface CanvasSnapshot {
|
|
366
|
+
viewport: Viewport;
|
|
367
|
+
toolType: ToolType;
|
|
368
|
+
toolMeta?: any;
|
|
369
|
+
selectedNodeIds?: string[];
|
|
370
|
+
nodes?: NodeConfig[];
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
/**
|
|
374
|
+
* CanvasStage 封装了 Konva.Stage 的核心功能
|
|
375
|
+
* 提供视口管理、事件处理、拖拽和缩放等能力
|
|
376
|
+
*/
|
|
377
|
+
declare class CanvasStage {
|
|
378
|
+
#private;
|
|
379
|
+
constructor(core: CanvasCore, config: StageConfig);
|
|
380
|
+
/**
|
|
381
|
+
* 获取原生 Konva.Stage 实例
|
|
382
|
+
*/
|
|
383
|
+
getStage(): default_2.Stage;
|
|
384
|
+
/**
|
|
385
|
+
* 获取当前视口状态
|
|
386
|
+
*/
|
|
387
|
+
getViewport(): ViewportState;
|
|
388
|
+
/**
|
|
389
|
+
* 设置视口(包括位置、缩放和尺寸)
|
|
390
|
+
*/
|
|
391
|
+
setViewport(viewport: Partial<ViewportState>): void;
|
|
392
|
+
/**
|
|
393
|
+
* 设置是否可拖拽
|
|
394
|
+
*/
|
|
395
|
+
setDraggable(draggable: boolean): void;
|
|
396
|
+
/**
|
|
397
|
+
* 设置光标样式
|
|
398
|
+
*/
|
|
399
|
+
setCursor(cursor: string): void;
|
|
400
|
+
/**
|
|
401
|
+
* 重置光标样式
|
|
402
|
+
*/
|
|
403
|
+
resetCursor(): void;
|
|
404
|
+
/**
|
|
405
|
+
* 销毁 Stage
|
|
406
|
+
*/
|
|
407
|
+
destroy(): void;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
/**
|
|
411
|
+
* CanvasStore 类负责管理画布的状态
|
|
412
|
+
* 包括历史记录(past/present/future)和状态监听
|
|
413
|
+
*/
|
|
414
|
+
declare abstract class CanvasStore {
|
|
415
|
+
#private;
|
|
416
|
+
constructor(initialState: CanvasSnapshot);
|
|
417
|
+
/**
|
|
418
|
+
* 获取当前状态
|
|
419
|
+
*/
|
|
420
|
+
getState(): CanvasSnapshot;
|
|
421
|
+
/**
|
|
422
|
+
* 获取完整历史状态
|
|
423
|
+
*/
|
|
424
|
+
getHistory(): HistoryState<CanvasSnapshot>;
|
|
425
|
+
/**
|
|
426
|
+
* 是否可以撤销
|
|
427
|
+
*/
|
|
428
|
+
canUndo(): boolean;
|
|
429
|
+
/**
|
|
430
|
+
* 是否可以重做
|
|
431
|
+
*/
|
|
432
|
+
canRedo(): boolean;
|
|
433
|
+
/**
|
|
434
|
+
* 订阅状态事件
|
|
435
|
+
*/
|
|
436
|
+
on<K extends keyof CanvasEvents>(event: K, handler: (data: CanvasEvents[K]) => void): void;
|
|
437
|
+
/**
|
|
438
|
+
* 取消订阅状态事件
|
|
439
|
+
*/
|
|
440
|
+
off<K extends keyof CanvasEvents>(event: K, handler: (data: CanvasEvents[K]) => void): void;
|
|
441
|
+
/* Excluded from this release type: _emit */
|
|
442
|
+
/**
|
|
443
|
+
* 撤销操作
|
|
444
|
+
*/
|
|
445
|
+
undo(): void;
|
|
446
|
+
/**
|
|
447
|
+
* 重做操作
|
|
448
|
+
*/
|
|
449
|
+
redo(): void;
|
|
450
|
+
/**
|
|
451
|
+
* 重置历史记录
|
|
452
|
+
*/
|
|
453
|
+
resetHistory(): void;
|
|
454
|
+
/**
|
|
455
|
+
* 更新状态
|
|
456
|
+
* @param partial - 部分状态更新
|
|
457
|
+
* @param addToHistory - 是否添加到历史记录
|
|
458
|
+
*/
|
|
459
|
+
protected _updateState(partial: Partial<CanvasSnapshot>, addToHistory: boolean): void;
|
|
460
|
+
/**
|
|
461
|
+
* 同步状态到 canvas 系统(由子类实现)
|
|
462
|
+
* @param _state - 要同步的状态
|
|
463
|
+
*/
|
|
464
|
+
protected abstract _renderCanvas(_state: CanvasSnapshot): void;
|
|
465
|
+
/**
|
|
466
|
+
* 清理资源
|
|
467
|
+
*/
|
|
468
|
+
protected _dispose(): void;
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
/**
|
|
472
|
+
* CanvasTransformer 封装了 Konva.Transformer 的核心功能
|
|
473
|
+
* 提供变换器管理、位置计算、事件处理等能力
|
|
474
|
+
*/
|
|
475
|
+
declare class CanvasTransformer {
|
|
476
|
+
#private;
|
|
477
|
+
constructor(core: CanvasCore, config?: TransformerConfig);
|
|
478
|
+
/**
|
|
479
|
+
* 获取原生 Konva.Transformer 实例
|
|
480
|
+
*/
|
|
481
|
+
getTransformer(): default_2.Transformer;
|
|
482
|
+
/**
|
|
483
|
+
* 获取 Transformer 的位置信息
|
|
484
|
+
*/
|
|
485
|
+
getPosition(): TransformerPosition | null;
|
|
486
|
+
/**
|
|
487
|
+
* 设置要变换的节点
|
|
488
|
+
*/
|
|
489
|
+
setNodes(nodes: default_2.Node[]): void;
|
|
490
|
+
/**
|
|
491
|
+
* 获取当前变换的节点
|
|
492
|
+
*/
|
|
493
|
+
getNodes(): default_2.Node[];
|
|
494
|
+
/**
|
|
495
|
+
* 清除所有节点
|
|
496
|
+
*/
|
|
497
|
+
clearNodes(): void;
|
|
498
|
+
/**
|
|
499
|
+
* emit Transformer 位置
|
|
500
|
+
*/
|
|
501
|
+
emitPositionChange(): void;
|
|
502
|
+
/**
|
|
503
|
+
* 销毁 Transformer
|
|
504
|
+
*/
|
|
505
|
+
destroy(): void;
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
export declare interface ContextMenuItem {
|
|
509
|
+
label: string;
|
|
510
|
+
action: () => void;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
export declare interface ContextMenuState {
|
|
322
514
|
x: number;
|
|
323
515
|
y: number;
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
targetIds: string[];
|
|
327
|
-
};
|
|
328
|
-
"nodes:sorted": string[];
|
|
329
|
-
"texteditor:register": any;
|
|
330
|
-
"texteditor:unregister": void;
|
|
331
|
-
};
|
|
516
|
+
items: ContextMenuItem[];
|
|
517
|
+
}
|
|
332
518
|
|
|
333
|
-
export declare
|
|
334
|
-
getID(): string;
|
|
335
|
-
getElement(): default_2.Shape | default_2.Group;
|
|
336
|
-
getConfig(): NodeConfig;
|
|
337
|
-
syncConfigFromElement(): void;
|
|
338
|
-
update(config: Partial<NodeConfig>): void;
|
|
339
|
-
destroy(): void;
|
|
340
|
-
}
|
|
519
|
+
export declare const DARK_THEME: Theme;
|
|
341
520
|
|
|
342
|
-
export declare
|
|
343
|
-
viewport: Viewport;
|
|
344
|
-
toolType: ToolType;
|
|
345
|
-
toolMeta?: any;
|
|
346
|
-
selectedNodeIds?: string[];
|
|
347
|
-
nodes?: NodeConfig[];
|
|
348
|
-
}
|
|
521
|
+
export declare const DEFAULT_THEME: Theme;
|
|
349
522
|
|
|
350
|
-
/**
|
|
351
|
-
* CanvasStage 封装了 Konva.Stage 的核心功能
|
|
352
|
-
* 提供视口管理、事件处理、拖拽和缩放等能力
|
|
353
|
-
*/
|
|
354
|
-
declare class CanvasStage {
|
|
355
|
-
#private;
|
|
356
|
-
constructor(core: CanvasCore, config: StageConfig);
|
|
357
|
-
/**
|
|
358
|
-
* 获取原生 Konva.Stage 实例
|
|
359
|
-
*/
|
|
360
|
-
getStage(): default_2.Stage;
|
|
361
523
|
/**
|
|
362
|
-
*
|
|
524
|
+
* 椭圆节点配置
|
|
363
525
|
*/
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
*/
|
|
368
|
-
setViewport(viewport: Partial<ViewportState>): void;
|
|
369
|
-
/**
|
|
370
|
-
* 设置是否可拖拽
|
|
371
|
-
*/
|
|
372
|
-
setDraggable(draggable: boolean): void;
|
|
373
|
-
/**
|
|
374
|
-
* 设置光标样式
|
|
375
|
-
*/
|
|
376
|
-
setCursor(cursor: string): void;
|
|
377
|
-
/**
|
|
378
|
-
* 重置光标样式
|
|
379
|
-
*/
|
|
380
|
-
resetCursor(): void;
|
|
381
|
-
/**
|
|
382
|
-
* 销毁 Stage
|
|
383
|
-
*/
|
|
384
|
-
destroy(): void;
|
|
385
|
-
}
|
|
526
|
+
declare type EllipseNodeConfig = BaseNodeConfig & default_2.EllipseConfig & Partial<NodeStyle> & {
|
|
527
|
+
$_type: "ellipse";
|
|
528
|
+
};
|
|
386
529
|
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
#private;
|
|
393
|
-
constructor(initialState: CanvasSnapshot);
|
|
394
|
-
/**
|
|
395
|
-
* 获取当前状态
|
|
396
|
-
*/
|
|
397
|
-
getState(): CanvasSnapshot;
|
|
398
|
-
/**
|
|
399
|
-
* 获取完整历史状态
|
|
400
|
-
*/
|
|
401
|
-
getHistory(): HistoryState<CanvasSnapshot>;
|
|
402
|
-
/**
|
|
403
|
-
* 是否可以撤销
|
|
404
|
-
*/
|
|
405
|
-
canUndo(): boolean;
|
|
406
|
-
/**
|
|
407
|
-
* 是否可以重做
|
|
408
|
-
*/
|
|
409
|
-
canRedo(): boolean;
|
|
410
|
-
/**
|
|
411
|
-
* 订阅状态事件
|
|
412
|
-
*/
|
|
413
|
-
on<K extends keyof CanvasEvents>(event: K, handler: (data: CanvasEvents[K]) => void): void;
|
|
414
|
-
/**
|
|
415
|
-
* 取消订阅状态事件
|
|
416
|
-
*/
|
|
417
|
-
off<K extends keyof CanvasEvents>(event: K, handler: (data: CanvasEvents[K]) => void): void;
|
|
418
|
-
/* Excluded from this release type: _emit */
|
|
419
|
-
/**
|
|
420
|
-
* 撤销操作
|
|
421
|
-
*/
|
|
422
|
-
undo(): void;
|
|
423
|
-
/**
|
|
424
|
-
* 重做操作
|
|
425
|
-
*/
|
|
426
|
-
redo(): void;
|
|
427
|
-
/**
|
|
428
|
-
* 重置历史记录
|
|
429
|
-
*/
|
|
430
|
-
resetHistory(): void;
|
|
431
|
-
/**
|
|
432
|
-
* 更新状态
|
|
433
|
-
* @param partial - 部分状态更新
|
|
434
|
-
* @param addToHistory - 是否添加到历史记录
|
|
435
|
-
*/
|
|
436
|
-
protected _updateState(partial: Partial<CanvasSnapshot>, addToHistory: boolean): void;
|
|
437
|
-
/**
|
|
438
|
-
* 同步状态到 canvas 系统(由子类实现)
|
|
439
|
-
* @param _state - 要同步的状态
|
|
440
|
-
*/
|
|
441
|
-
protected abstract _renderCanvas(_state: CanvasSnapshot): void;
|
|
442
|
-
/**
|
|
443
|
-
* 清理资源
|
|
444
|
-
*/
|
|
445
|
-
protected _dispose(): void;
|
|
446
|
-
}
|
|
530
|
+
declare type HistoryState<T> = {
|
|
531
|
+
past: T[];
|
|
532
|
+
present: T;
|
|
533
|
+
future: T[];
|
|
534
|
+
};
|
|
447
535
|
|
|
448
|
-
/**
|
|
449
|
-
* CanvasTransformer 封装了 Konva.Transformer 的核心功能
|
|
450
|
-
* 提供变换器管理、位置计算、事件处理等能力
|
|
451
|
-
*/
|
|
452
|
-
declare class CanvasTransformer {
|
|
453
|
-
#private;
|
|
454
|
-
constructor(core: CanvasCore, config?: TransformerConfig);
|
|
455
536
|
/**
|
|
456
|
-
*
|
|
537
|
+
* HTML 节点配置
|
|
457
538
|
*/
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
539
|
+
export declare type HtmlNodeConfig = BaseNodeConfig & default_2.RectConfig & Partial<NodeStyle> & {
|
|
540
|
+
$_type: "html";
|
|
541
|
+
$_actualType: string;
|
|
542
|
+
$_htmlContent: string;
|
|
543
|
+
};
|
|
544
|
+
|
|
463
545
|
/**
|
|
464
|
-
*
|
|
546
|
+
* 图片笔刷节点配置(仅在绑定图片范围内涂抹)
|
|
465
547
|
*/
|
|
466
|
-
|
|
548
|
+
declare type ImageBrushNodeConfig = BaseNodeConfig & default_2.LineConfig & Partial<NodeStyle> & {
|
|
549
|
+
$_type: "image-brush";
|
|
550
|
+
points: number[];
|
|
551
|
+
$_imageId: string;
|
|
552
|
+
$_imageBounds: {
|
|
553
|
+
x: number;
|
|
554
|
+
y: number;
|
|
555
|
+
width: number;
|
|
556
|
+
height: number;
|
|
557
|
+
};
|
|
558
|
+
};
|
|
559
|
+
|
|
467
560
|
/**
|
|
468
|
-
*
|
|
561
|
+
* 图片标注节点配置
|
|
469
562
|
*/
|
|
470
|
-
|
|
563
|
+
export declare type ImageMarkerNodeConfig = BaseNodeConfig & default_2.RectConfig & Partial<NodeStyle> & {
|
|
564
|
+
$_type: "image-marker";
|
|
565
|
+
width: number;
|
|
566
|
+
height: number;
|
|
567
|
+
$_markerNumber: number;
|
|
568
|
+
$_parentId: string;
|
|
569
|
+
$_relativeBox: {
|
|
570
|
+
start: {
|
|
571
|
+
ratioX: number;
|
|
572
|
+
ratioY: number;
|
|
573
|
+
};
|
|
574
|
+
end: {
|
|
575
|
+
ratioX: number;
|
|
576
|
+
ratioY: number;
|
|
577
|
+
};
|
|
578
|
+
};
|
|
579
|
+
$_bounds?: {
|
|
580
|
+
x: number;
|
|
581
|
+
y: number;
|
|
582
|
+
width: number;
|
|
583
|
+
height: number;
|
|
584
|
+
};
|
|
585
|
+
};
|
|
586
|
+
|
|
471
587
|
/**
|
|
472
|
-
*
|
|
588
|
+
* 图片节点配置
|
|
473
589
|
*/
|
|
474
|
-
|
|
590
|
+
export declare type ImageNodeConfig = BaseNodeConfig & Omit<default_2.ImageConfig, "image"> & Partial<NodeStyle> & {
|
|
591
|
+
$_type: "image";
|
|
592
|
+
$_imageUrl: string;
|
|
593
|
+
image?: CanvasImageSource | undefined;
|
|
594
|
+
};
|
|
595
|
+
|
|
596
|
+
export declare const NODE_NAMES: {
|
|
597
|
+
nodeRoot: string;
|
|
598
|
+
selectable: string;
|
|
599
|
+
rect: string;
|
|
600
|
+
image: string;
|
|
601
|
+
imageMarker: string;
|
|
602
|
+
html: string;
|
|
603
|
+
text: string;
|
|
604
|
+
richText: string;
|
|
605
|
+
video: string;
|
|
606
|
+
star: string;
|
|
607
|
+
ellipse: string;
|
|
608
|
+
polygon: string;
|
|
609
|
+
arrow: string;
|
|
610
|
+
brush: string;
|
|
611
|
+
imageBrush: string;
|
|
612
|
+
};
|
|
613
|
+
|
|
475
614
|
/**
|
|
476
|
-
*
|
|
615
|
+
* 节点配置联合类型(判别联合)
|
|
616
|
+
* 根据 $_type 字段可以自动推断出对应节点的特定字段
|
|
477
617
|
*/
|
|
478
|
-
|
|
618
|
+
export declare type NodeConfig = RectangleNodeConfig | ImageNodeConfig | ImageMarkerNodeConfig | HtmlNodeConfig | TextNodeConfig | RichTextNodeConfig | VideoNodeConfig | StarNodeConfig | EllipseNodeConfig | PolygonNodeConfig | ArrowNodeConfig | BrushNodeConfig | ImageBrushNodeConfig;
|
|
619
|
+
|
|
479
620
|
/**
|
|
480
|
-
*
|
|
621
|
+
* 根据节点类型获取对应的配置类型
|
|
622
|
+
* @example NodeConfigByType<"image"> = ImageNodeConfig
|
|
481
623
|
*/
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
export declare interface ContextMenuItem {
|
|
486
|
-
label: string;
|
|
487
|
-
action: () => void;
|
|
488
|
-
}
|
|
489
|
-
|
|
490
|
-
export declare interface ContextMenuState {
|
|
491
|
-
x: number;
|
|
492
|
-
y: number;
|
|
493
|
-
items: ContextMenuItem[];
|
|
494
|
-
}
|
|
495
|
-
|
|
496
|
-
export declare const DARK_THEME: Theme;
|
|
624
|
+
export declare type NodeConfigByType<T extends NodeType> = Extract<NodeConfig, {
|
|
625
|
+
$_type: T;
|
|
626
|
+
}>;
|
|
497
627
|
|
|
498
|
-
|
|
628
|
+
declare interface NodeStyle {
|
|
629
|
+
$_strokeColor: ThemeKeysStartingWith<"theme.stroke-color."> | string;
|
|
630
|
+
$_fillColor: ThemeKeysStartingWith<"theme.fill-color."> | string;
|
|
631
|
+
}
|
|
499
632
|
|
|
500
|
-
|
|
501
|
-
* 椭圆节点配置
|
|
502
|
-
*/
|
|
503
|
-
declare type EllipseNodeConfig = BaseNodeConfig & default_2.EllipseConfig & Partial<NodeStyle> & {
|
|
504
|
-
$_type: "ellipse";
|
|
505
|
-
};
|
|
633
|
+
export declare type NodeType = "rectangle" | "image" | "image-marker" | "html" | "text" | "rich-text" | "video" | "star" | "ellipse" | "polygon" | "arrow" | "brush" | "image-brush";
|
|
506
634
|
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
* HTML 节点配置
|
|
515
|
-
*/
|
|
516
|
-
export declare type HtmlNodeConfig = BaseNodeConfig & default_2.RectConfig & Partial<NodeStyle> & {
|
|
517
|
-
$_type: "html";
|
|
518
|
-
$_actualType: string;
|
|
519
|
-
$_htmlContent: string;
|
|
520
|
-
};
|
|
635
|
+
/**
|
|
636
|
+
* 多边形节点配置
|
|
637
|
+
*/
|
|
638
|
+
declare type PolygonNodeConfig = BaseNodeConfig & default_2.LineConfig & Partial<NodeStyle> & {
|
|
639
|
+
$_type: "polygon";
|
|
640
|
+
$_shape: "triangle" | "diamond" | "hexagon";
|
|
641
|
+
};
|
|
521
642
|
|
|
522
|
-
/**
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
declare type
|
|
526
|
-
|
|
527
|
-
points: number[];
|
|
528
|
-
$_imageId: string;
|
|
529
|
-
$_imageBounds: {
|
|
530
|
-
x: number;
|
|
531
|
-
y: number;
|
|
643
|
+
/**
|
|
644
|
+
* 矩形节点配置
|
|
645
|
+
*/
|
|
646
|
+
export declare type RectangleNodeConfig = BaseNodeConfig & default_2.RectConfig & Partial<NodeStyle> & {
|
|
647
|
+
$_type: "rectangle";
|
|
532
648
|
width: number;
|
|
533
649
|
height: number;
|
|
534
650
|
};
|
|
535
|
-
};
|
|
536
651
|
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
export declare type ImageMarkerNodeConfig = BaseNodeConfig & default_2.RectConfig & Partial<NodeStyle> & {
|
|
541
|
-
$_type: "image-marker";
|
|
542
|
-
width: number;
|
|
543
|
-
height: number;
|
|
544
|
-
$_markerNumber: number;
|
|
545
|
-
$_parentId: string;
|
|
546
|
-
$_relativeBox: {
|
|
547
|
-
start: {
|
|
548
|
-
ratioX: number;
|
|
549
|
-
ratioY: number;
|
|
550
|
-
};
|
|
551
|
-
end: {
|
|
552
|
-
ratioX: number;
|
|
553
|
-
ratioY: number;
|
|
554
|
-
};
|
|
652
|
+
declare type RichTextNodeConfig = BaseNodeConfig & default_2.ImageConfig & Partial<NodeStyle> & {
|
|
653
|
+
$_type: "rich-text";
|
|
654
|
+
$_htmlContent: string;
|
|
555
655
|
};
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
656
|
+
|
|
657
|
+
declare type StageConfig = {
|
|
658
|
+
container: HTMLDivElement;
|
|
559
659
|
width: number;
|
|
560
660
|
height: number;
|
|
661
|
+
draggable?: boolean;
|
|
662
|
+
className?: string;
|
|
561
663
|
};
|
|
562
|
-
};
|
|
563
|
-
|
|
564
|
-
/**
|
|
565
|
-
* 图片节点配置
|
|
566
|
-
*/
|
|
567
|
-
export declare type ImageNodeConfig = BaseNodeConfig & Omit<default_2.ImageConfig, "image"> & Partial<NodeStyle> & {
|
|
568
|
-
$_type: "image";
|
|
569
|
-
$_imageUrl: string;
|
|
570
|
-
image?: CanvasImageSource | undefined;
|
|
571
|
-
};
|
|
572
664
|
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
html: string;
|
|
580
|
-
text: string;
|
|
581
|
-
richText: string;
|
|
582
|
-
video: string;
|
|
583
|
-
star: string;
|
|
584
|
-
ellipse: string;
|
|
585
|
-
polygon: string;
|
|
586
|
-
arrow: string;
|
|
587
|
-
brush: string;
|
|
588
|
-
imageBrush: string;
|
|
589
|
-
};
|
|
590
|
-
|
|
591
|
-
/**
|
|
592
|
-
* 节点配置联合类型(判别联合)
|
|
593
|
-
* 根据 $_type 字段可以自动推断出对应节点的特定字段
|
|
594
|
-
*/
|
|
595
|
-
export declare type NodeConfig = RectangleNodeConfig | ImageNodeConfig | ImageMarkerNodeConfig | HtmlNodeConfig | TextNodeConfig | RichTextNodeConfig | VideoNodeConfig | StarNodeConfig | EllipseNodeConfig | PolygonNodeConfig | ArrowNodeConfig | BrushNodeConfig | ImageBrushNodeConfig;
|
|
596
|
-
|
|
597
|
-
/**
|
|
598
|
-
* 根据节点类型获取对应的配置类型
|
|
599
|
-
* @example NodeConfigByType<"image"> = ImageNodeConfig
|
|
600
|
-
*/
|
|
601
|
-
export declare type NodeConfigByType<T extends NodeType> = Extract<NodeConfig, {
|
|
602
|
-
$_type: T;
|
|
603
|
-
}>;
|
|
604
|
-
|
|
605
|
-
declare interface NodeStyle {
|
|
606
|
-
$_strokeColor: ThemeKeysStartingWith<"theme.stroke-color."> | string;
|
|
607
|
-
$_fillColor: ThemeKeysStartingWith<"theme.fill-color."> | string;
|
|
608
|
-
}
|
|
609
|
-
|
|
610
|
-
export declare type NodeType = "rectangle" | "image" | "image-marker" | "html" | "text" | "rich-text" | "video" | "star" | "ellipse" | "polygon" | "arrow" | "brush" | "image-brush";
|
|
611
|
-
|
|
612
|
-
/**
|
|
613
|
-
* 多边形节点配置
|
|
614
|
-
*/
|
|
615
|
-
declare type PolygonNodeConfig = BaseNodeConfig & default_2.LineConfig & Partial<NodeStyle> & {
|
|
616
|
-
$_type: "polygon";
|
|
617
|
-
$_shape: "triangle" | "diamond" | "hexagon";
|
|
618
|
-
};
|
|
619
|
-
|
|
620
|
-
/**
|
|
621
|
-
* 矩形节点配置
|
|
622
|
-
*/
|
|
623
|
-
export declare type RectangleNodeConfig = BaseNodeConfig & default_2.RectConfig & Partial<NodeStyle> & {
|
|
624
|
-
$_type: "rectangle";
|
|
625
|
-
width: number;
|
|
626
|
-
height: number;
|
|
627
|
-
};
|
|
628
|
-
|
|
629
|
-
declare type RichTextNodeConfig = BaseNodeConfig & default_2.ImageConfig & Partial<NodeStyle> & {
|
|
630
|
-
$_type: "rich-text";
|
|
631
|
-
$_htmlContent: string;
|
|
632
|
-
};
|
|
633
|
-
|
|
634
|
-
declare type StageConfig = {
|
|
635
|
-
container: HTMLDivElement;
|
|
636
|
-
width: number;
|
|
637
|
-
height: number;
|
|
638
|
-
draggable?: boolean;
|
|
639
|
-
className?: string;
|
|
640
|
-
};
|
|
641
|
-
|
|
642
|
-
/**
|
|
643
|
-
* 星形节点配置
|
|
644
|
-
*/
|
|
645
|
-
export declare type StarNodeConfig = BaseNodeConfig & default_2.StarConfig & Partial<NodeStyle> & {
|
|
646
|
-
$_type: "star";
|
|
647
|
-
};
|
|
648
|
-
|
|
649
|
-
declare type TextNodeConfig = BaseNodeConfig & default_2.TextConfig & Partial<NodeStyle> & {
|
|
650
|
-
$_type: "text";
|
|
651
|
-
text: string;
|
|
652
|
-
};
|
|
665
|
+
/**
|
|
666
|
+
* 星形节点配置
|
|
667
|
+
*/
|
|
668
|
+
export declare type StarNodeConfig = BaseNodeConfig & default_2.StarConfig & Partial<NodeStyle> & {
|
|
669
|
+
$_type: "star";
|
|
670
|
+
};
|
|
653
671
|
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
"theme.stroke-color.1": string;
|
|
659
|
-
"theme.stroke-color.2": string;
|
|
660
|
-
"theme.stroke-color.3": string;
|
|
661
|
-
"theme.stroke-color.4": string;
|
|
662
|
-
"theme.stroke-color.5": string;
|
|
663
|
-
"theme.stroke-color.6": string;
|
|
664
|
-
"theme.fill-color.1": string;
|
|
665
|
-
"theme.fill-color.2": string;
|
|
666
|
-
"theme.fill-color.3": string;
|
|
667
|
-
"theme.fill-color.4": string;
|
|
668
|
-
"theme.fill-color.5": string;
|
|
669
|
-
"theme.fill-color.6": string;
|
|
670
|
-
}
|
|
672
|
+
declare type TextNodeConfig = BaseNodeConfig & default_2.TextConfig & Partial<NodeStyle> & {
|
|
673
|
+
$_type: "text";
|
|
674
|
+
text: string;
|
|
675
|
+
};
|
|
671
676
|
|
|
672
|
-
export declare
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
677
|
+
export declare interface Theme {
|
|
678
|
+
"theme.select-rect-border": string;
|
|
679
|
+
"theme.select-rect-fill": string;
|
|
680
|
+
"theme.image-marker-color": string;
|
|
681
|
+
"theme.stroke-color.1": string;
|
|
682
|
+
"theme.stroke-color.2": string;
|
|
683
|
+
"theme.stroke-color.3": string;
|
|
684
|
+
"theme.stroke-color.4": string;
|
|
685
|
+
"theme.stroke-color.5": string;
|
|
686
|
+
"theme.stroke-color.6": string;
|
|
687
|
+
"theme.fill-color.1": string;
|
|
688
|
+
"theme.fill-color.2": string;
|
|
689
|
+
"theme.fill-color.3": string;
|
|
690
|
+
"theme.fill-color.4": string;
|
|
691
|
+
"theme.fill-color.5": string;
|
|
692
|
+
"theme.fill-color.6": string;
|
|
693
|
+
}
|
|
694
|
+
|
|
695
|
+
export declare const THEME_PRESETS: {
|
|
696
|
+
readonly default: Theme;
|
|
697
|
+
readonly dark: Theme;
|
|
698
|
+
};
|
|
676
699
|
|
|
677
|
-
declare type ThemeKeysStartingWith<Prefix extends string> = Extract<keyof Theme, `${Prefix}${string}`>;
|
|
700
|
+
declare type ThemeKeysStartingWith<Prefix extends string> = Extract<keyof Theme, `${Prefix}${string}`>;
|
|
678
701
|
|
|
679
|
-
export declare type ThemePreset = keyof typeof THEME_PRESETS;
|
|
702
|
+
export declare type ThemePreset = keyof typeof THEME_PRESETS;
|
|
680
703
|
|
|
681
|
-
export declare function TipTapBubbleMenu({ api }: TipTapBubbleMenuProps): JSX.Element | null;
|
|
704
|
+
export declare function TipTapBubbleMenu({ api }: TipTapBubbleMenuProps): JSX.Element | null;
|
|
682
705
|
|
|
683
|
-
declare interface TipTapBubbleMenuProps {
|
|
684
|
-
|
|
685
|
-
}
|
|
706
|
+
declare interface TipTapBubbleMenuProps {
|
|
707
|
+
api: CanvasApi | null;
|
|
708
|
+
}
|
|
686
709
|
|
|
687
|
-
export declare type ToolType = "select" | "hand" | "rectangle" | "star" | "image-marker" | "text" | "rich-text" | "ellipse" | "polygon" | "arrow" | "brush" | "image-brush";
|
|
710
|
+
export declare type ToolType = "select" | "hand" | "rectangle" | "star" | "image-marker" | "text" | "rich-text" | "ellipse" | "polygon" | "arrow" | "brush" | "image-brush";
|
|
688
711
|
|
|
689
|
-
declare type TransformerConfig = {
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
};
|
|
712
|
+
declare type TransformerConfig = {
|
|
713
|
+
rotateEnabled?: boolean;
|
|
714
|
+
ignoreStroke?: boolean;
|
|
715
|
+
anchorSize?: number;
|
|
716
|
+
borderDash?: number[];
|
|
717
|
+
anchorCornerRadius?: number;
|
|
718
|
+
padding?: number;
|
|
719
|
+
};
|
|
697
720
|
|
|
698
|
-
/**
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
declare interface TransformerPosition {
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
}
|
|
721
|
+
/**
|
|
722
|
+
* 变换器(Transformer)位置信息
|
|
723
|
+
*/
|
|
724
|
+
declare interface TransformerPosition {
|
|
725
|
+
x: number;
|
|
726
|
+
y: number;
|
|
727
|
+
width: number;
|
|
728
|
+
height: number;
|
|
729
|
+
rotation?: number;
|
|
730
|
+
}
|
|
708
731
|
|
|
709
|
-
export declare function useContextMenu(api: CanvasApi | null): {
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
};
|
|
732
|
+
export declare function useContextMenu(api: CanvasApi | null): {
|
|
733
|
+
contextMenu: ContextMenuState | null;
|
|
734
|
+
closeContextMenu: () => void;
|
|
735
|
+
};
|
|
713
736
|
|
|
714
|
-
declare type VideoNodeConfig = BaseNodeConfig & Omit<default_2.ImageConfig, "image"> & Partial<NodeStyle> & {
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
};
|
|
737
|
+
declare type VideoNodeConfig = BaseNodeConfig & Omit<default_2.ImageConfig, "image"> & Partial<NodeStyle> & {
|
|
738
|
+
$_type: "video";
|
|
739
|
+
$_videoUrl: string;
|
|
740
|
+
$_coverUrl: string;
|
|
741
|
+
image?: CanvasImageSource | undefined;
|
|
742
|
+
};
|
|
720
743
|
|
|
721
|
-
declare interface Viewport {
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
}
|
|
744
|
+
declare interface Viewport {
|
|
745
|
+
x: number;
|
|
746
|
+
y: number;
|
|
747
|
+
scale: number;
|
|
748
|
+
}
|
|
726
749
|
|
|
727
|
-
declare type ViewportState = {
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
};
|
|
750
|
+
declare type ViewportState = {
|
|
751
|
+
x: number;
|
|
752
|
+
y: number;
|
|
753
|
+
scale: number;
|
|
754
|
+
width?: number;
|
|
755
|
+
height?: number;
|
|
756
|
+
};
|
|
734
757
|
|
|
735
|
-
export declare function Whiteboard({ setApi, theme }: WhiteboardProps): JSX.Element;
|
|
758
|
+
export declare function Whiteboard({ setApi, theme }: WhiteboardProps): JSX.Element;
|
|
736
759
|
|
|
737
|
-
declare interface WhiteboardProps {
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
}
|
|
760
|
+
declare interface WhiteboardProps {
|
|
761
|
+
setApi?: (core: CanvasApi) => void;
|
|
762
|
+
theme?: Theme;
|
|
763
|
+
}
|
|
741
764
|
|
|
742
|
-
export { }
|
|
765
|
+
export { }
|
|
743
766
|
|
|
744
767
|
|
|
745
768
|
declare module "@tiptap/core" {
|