@8btc/whiteboard 0.0.17 → 0.0.19-beta.0
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/adapter/maze.d.ts +2 -0
- package/dist/adapter/maze.js +148 -0
- package/dist/const-Das6lRi-.js +17 -0
- package/dist/index.css +1 -1320
- package/dist/index.d.ts +74 -60
- package/dist/index.js +985 -1553
- package/dist/maze.d.ts +507 -0
- package/package.json +8 -4
- package/dist/index.umd.js +0 -3574
package/dist/maze.d.ts
ADDED
|
@@ -0,0 +1,507 @@
|
|
|
1
|
+
import { default as default_2 } from 'konva';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 计算内容左下角的插入位置
|
|
5
|
+
* @param api Canvas API 实例
|
|
6
|
+
* @returns 插入位置 { x, y }
|
|
7
|
+
*/
|
|
8
|
+
export declare function calculateBottomLeftOfCanvasContent(api: CanvasApi | null | undefined): {
|
|
9
|
+
x: number;
|
|
10
|
+
y: number;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* CanvasApi 是面向外部使用的公开 API 类
|
|
15
|
+
* 继承自 CanvasCore,只暴露必要的公开方法
|
|
16
|
+
*/
|
|
17
|
+
declare class CanvasApi extends CanvasCore {
|
|
18
|
+
/**
|
|
19
|
+
* 获取所有可用的工具类型
|
|
20
|
+
*/
|
|
21
|
+
getAvailableTools(): ToolType[];
|
|
22
|
+
/**
|
|
23
|
+
* 设置当前工具类型
|
|
24
|
+
*/
|
|
25
|
+
setToolType(type: ToolType): void;
|
|
26
|
+
/**
|
|
27
|
+
* 手动创建多个节点
|
|
28
|
+
* 如果你不知道自己在干什么,请使用更高层的封装方法,如 createImageNode
|
|
29
|
+
*/
|
|
30
|
+
createNodes(nodes: INode[], addToHistory: boolean): void;
|
|
31
|
+
/**
|
|
32
|
+
* 根据 ID 获取节点
|
|
33
|
+
*/
|
|
34
|
+
getNodeById<T extends INode = INode>(id: string): T | null;
|
|
35
|
+
/**
|
|
36
|
+
* 更新视口位置
|
|
37
|
+
*/
|
|
38
|
+
updateViewport(viewport: Partial<ICoreState["viewport"]>, addToHistory?: boolean): void;
|
|
39
|
+
/**
|
|
40
|
+
* 创建图片节点
|
|
41
|
+
*/
|
|
42
|
+
createImageNode(imageUrl: string, position?: {
|
|
43
|
+
x: number;
|
|
44
|
+
y: number;
|
|
45
|
+
}): void;
|
|
46
|
+
/**
|
|
47
|
+
* 导出全部图形为图片
|
|
48
|
+
* @param options - 导出配置
|
|
49
|
+
* @returns DataURL 格式的图片数据
|
|
50
|
+
*/
|
|
51
|
+
exportAsImage(options?: {
|
|
52
|
+
pixelRatio?: number;
|
|
53
|
+
mimeType?: string;
|
|
54
|
+
quality?: number;
|
|
55
|
+
}): string;
|
|
56
|
+
/**
|
|
57
|
+
* 导出当前选区为图片
|
|
58
|
+
* @param options - 导出配置
|
|
59
|
+
* @returns DataURL 格式的图片数据,如果没有选区则返回 null
|
|
60
|
+
*/
|
|
61
|
+
exportSelectionAsImage(options?: {
|
|
62
|
+
pixelRatio?: number;
|
|
63
|
+
mimeType?: string;
|
|
64
|
+
quality?: number;
|
|
65
|
+
padding?: number;
|
|
66
|
+
}): string | null;
|
|
67
|
+
/**
|
|
68
|
+
* 导出带有标注的图片节点为图片
|
|
69
|
+
* @param id - 图片节点 ID
|
|
70
|
+
* @returns DataURL 格式的图片数据,如果节点或者 marker 不存在则返回 null
|
|
71
|
+
*/
|
|
72
|
+
exportImageWithMarker(id: string, options?: {
|
|
73
|
+
pixelRatio?: number;
|
|
74
|
+
mimeType?: string;
|
|
75
|
+
quality?: number;
|
|
76
|
+
}): string | null;
|
|
77
|
+
/**
|
|
78
|
+
* 删除当前选中的节点
|
|
79
|
+
* 如果删除的是 image 节点,会同步删除所有关联的 image-marker
|
|
80
|
+
*/
|
|
81
|
+
deleteSelectedNodes(): void;
|
|
82
|
+
/**
|
|
83
|
+
* 删除指定的节点
|
|
84
|
+
* 如果删除的是 image 节点,会同步删除所有关联的 image-marker
|
|
85
|
+
* @param nodeIds - 要删除的节点 ID 数组
|
|
86
|
+
* @returns 被删除的节点数据数组
|
|
87
|
+
*/
|
|
88
|
+
deleteNodes(nodeIds: string[]): INode[];
|
|
89
|
+
/**
|
|
90
|
+
* 将节点移动到最上层
|
|
91
|
+
*/
|
|
92
|
+
moveNodesToTop(nodeIds: string[]): void;
|
|
93
|
+
/**
|
|
94
|
+
* 将节点移动到最下层
|
|
95
|
+
*/
|
|
96
|
+
moveNodesToBottom(nodeIds: string[]): void;
|
|
97
|
+
/**
|
|
98
|
+
* 滚动到内容区域
|
|
99
|
+
* - 如果提供了 nodeIds,将指定的节点居中显示
|
|
100
|
+
* - 如果没有提供 nodeIds 但有选中的节点,将选中节点居中显示
|
|
101
|
+
* - 如果没有选中节点,将所有内容居中显示
|
|
102
|
+
* @param options - 配置选项
|
|
103
|
+
* @param options.padding - 内容周围的留白,默认 50px
|
|
104
|
+
* @param options.scale - 是否自动调整缩放以适应内容,默认 false
|
|
105
|
+
* @param options.nodeIds - 要滚动到的节点 ID 数组
|
|
106
|
+
*/
|
|
107
|
+
scrollToContent(options?: {
|
|
108
|
+
padding?: number;
|
|
109
|
+
scale?: boolean;
|
|
110
|
+
nodeIds?: string[];
|
|
111
|
+
}): void;
|
|
112
|
+
/**
|
|
113
|
+
* 导出当前状态
|
|
114
|
+
*/
|
|
115
|
+
save(): ICoreState;
|
|
116
|
+
/**
|
|
117
|
+
* 从状态中恢复画布
|
|
118
|
+
*/
|
|
119
|
+
restore(state: ICoreState): void;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
declare class CanvasCore extends CanvasState_2 {
|
|
123
|
+
#private;
|
|
124
|
+
constructor(el: HTMLDivElement, state?: ICoreState);
|
|
125
|
+
/**
|
|
126
|
+
* 获取 CanvasStage 实例
|
|
127
|
+
*/
|
|
128
|
+
getCanvasStage(): CanvasStage;
|
|
129
|
+
/**
|
|
130
|
+
* 获取 CanvasTransformer 实例
|
|
131
|
+
*/
|
|
132
|
+
getCanvasTransformer(): CanvasTransformer;
|
|
133
|
+
/**
|
|
134
|
+
* 获取 Konva.Stage 实例
|
|
135
|
+
*/
|
|
136
|
+
getStage(): default_2.Stage;
|
|
137
|
+
/**
|
|
138
|
+
* 获取 Stage 容器元素
|
|
139
|
+
*/
|
|
140
|
+
getContainer(): HTMLDivElement;
|
|
141
|
+
/**
|
|
142
|
+
* 获取主图层
|
|
143
|
+
*/
|
|
144
|
+
getMainLayer(): default_2.Layer;
|
|
145
|
+
/**
|
|
146
|
+
* 获取当前工具类型
|
|
147
|
+
*/
|
|
148
|
+
getToolType(): ToolType;
|
|
149
|
+
/**
|
|
150
|
+
* 设置当前工具类型(内部使用)
|
|
151
|
+
*/
|
|
152
|
+
setToolType(type: ToolType): void;
|
|
153
|
+
/**
|
|
154
|
+
* 根据 ID 获取 Canvas 节点实例
|
|
155
|
+
*/
|
|
156
|
+
getCanvasNodeById(id: string): ICanvasNode | null;
|
|
157
|
+
/**
|
|
158
|
+
* 设置是否可拖拽(内部使用)
|
|
159
|
+
*/
|
|
160
|
+
protected setDraggable(draggable: boolean): void;
|
|
161
|
+
/* Excluded from this release type: _setCursor */
|
|
162
|
+
/* Excluded from this release type: _resetCursor */
|
|
163
|
+
/**
|
|
164
|
+
* 获取当前 Stage 缩放比例
|
|
165
|
+
*/
|
|
166
|
+
getStageScale(): number;
|
|
167
|
+
/* Excluded from this release type: _updateViewport */
|
|
168
|
+
protected createNodes(nodes: INode[], addToHistory: boolean): void;
|
|
169
|
+
/**
|
|
170
|
+
* 创建图片标注节点(内部使用)
|
|
171
|
+
*/
|
|
172
|
+
protected createImageMarkerNode(parentImageId: string, startPosition: {
|
|
173
|
+
x: number;
|
|
174
|
+
y: number;
|
|
175
|
+
}, endPosition: {
|
|
176
|
+
x: number;
|
|
177
|
+
y: number;
|
|
178
|
+
}, imageBounds: {
|
|
179
|
+
x: number;
|
|
180
|
+
y: number;
|
|
181
|
+
width: number;
|
|
182
|
+
height: number;
|
|
183
|
+
}): void;
|
|
184
|
+
/* Excluded from this release type: _findImageAtPosition */
|
|
185
|
+
/* Excluded from this release type: _setDrawingPosition */
|
|
186
|
+
/* Excluded from this release type: _updateDrawingPosition */
|
|
187
|
+
/* Excluded from this release type: _createDraftNode */
|
|
188
|
+
/* Excluded from this release type: _updateDraftNode */
|
|
189
|
+
/* Excluded from this release type: _finalizeDraftNode */
|
|
190
|
+
/* Excluded from this release type: _createSelectRect */
|
|
191
|
+
_updateSelectRect(): void;
|
|
192
|
+
/* Excluded from this release type: _finalizeSelectRect */
|
|
193
|
+
/* Excluded from this release type: _selectNodes */
|
|
194
|
+
/* Excluded from this release type: deleteNodes */
|
|
195
|
+
/* Excluded from this release type: deleteSelectedNodes */
|
|
196
|
+
/**
|
|
197
|
+
* 销毁 canvas
|
|
198
|
+
*/
|
|
199
|
+
dispose(): void;
|
|
200
|
+
/* Excluded from this release type: _rebuildStateAfterNodeChange */
|
|
201
|
+
/**
|
|
202
|
+
* 实现父类的状态同步方法
|
|
203
|
+
* 当 undo/redo 时被调用
|
|
204
|
+
*/
|
|
205
|
+
protected _renderCanvas(state: ICoreState): void;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* CanvasStage 封装了 Konva.Stage 的核心功能
|
|
210
|
+
* 提供视口管理、事件处理、拖拽和缩放等能力
|
|
211
|
+
*/
|
|
212
|
+
declare class CanvasStage {
|
|
213
|
+
#private;
|
|
214
|
+
constructor(core: CanvasCore, config: StageConfig);
|
|
215
|
+
/**
|
|
216
|
+
* 获取原生 Konva.Stage 实例
|
|
217
|
+
*/
|
|
218
|
+
getStage(): default_2.Stage;
|
|
219
|
+
/**
|
|
220
|
+
* 获取当前视口状态
|
|
221
|
+
*/
|
|
222
|
+
getViewport(): ViewportState;
|
|
223
|
+
/**
|
|
224
|
+
* 设置视口(包括位置、缩放和尺寸)
|
|
225
|
+
*/
|
|
226
|
+
setViewport(viewport: Partial<ViewportState>): void;
|
|
227
|
+
/**
|
|
228
|
+
* 设置是否可拖拽
|
|
229
|
+
*/
|
|
230
|
+
setDraggable(draggable: boolean): void;
|
|
231
|
+
/**
|
|
232
|
+
* 设置光标样式
|
|
233
|
+
*/
|
|
234
|
+
setCursor(cursor: string): void;
|
|
235
|
+
/**
|
|
236
|
+
* 重置光标样式
|
|
237
|
+
*/
|
|
238
|
+
resetCursor(): void;
|
|
239
|
+
/**
|
|
240
|
+
* 销毁 Stage
|
|
241
|
+
*/
|
|
242
|
+
destroy(): void;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* CanvasState 类负责管理画布的状态
|
|
247
|
+
* 包括历史记录(past/present/future)和状态监听
|
|
248
|
+
*/
|
|
249
|
+
declare abstract class CanvasState_2 {
|
|
250
|
+
#private;
|
|
251
|
+
constructor(initialState: ICoreState);
|
|
252
|
+
/**
|
|
253
|
+
* 获取当前状态
|
|
254
|
+
*/
|
|
255
|
+
getState(): ICoreState;
|
|
256
|
+
/**
|
|
257
|
+
* 获取完整历史状态
|
|
258
|
+
*/
|
|
259
|
+
getHistory(): HistoryState<ICoreState>;
|
|
260
|
+
/**
|
|
261
|
+
* 是否可以撤销
|
|
262
|
+
*/
|
|
263
|
+
canUndo(): boolean;
|
|
264
|
+
/**
|
|
265
|
+
* 是否可以重做
|
|
266
|
+
*/
|
|
267
|
+
canRedo(): boolean;
|
|
268
|
+
/**
|
|
269
|
+
* 订阅状态事件
|
|
270
|
+
*/
|
|
271
|
+
on<K extends keyof StateEvents>(event: K, handler: (data: StateEvents[K]) => void): void;
|
|
272
|
+
/**
|
|
273
|
+
* 取消订阅状态事件
|
|
274
|
+
*/
|
|
275
|
+
off<K extends keyof StateEvents>(event: K, handler: (data: StateEvents[K]) => void): void;
|
|
276
|
+
/* Excluded from this release type: _emit */
|
|
277
|
+
/**
|
|
278
|
+
* 撤销操作
|
|
279
|
+
*/
|
|
280
|
+
undo(): void;
|
|
281
|
+
/**
|
|
282
|
+
* 重做操作
|
|
283
|
+
*/
|
|
284
|
+
redo(): void;
|
|
285
|
+
/**
|
|
286
|
+
* 重置历史记录
|
|
287
|
+
*/
|
|
288
|
+
resetHistory(): void;
|
|
289
|
+
/**
|
|
290
|
+
* 更新状态
|
|
291
|
+
* @param partial - 部分状态更新
|
|
292
|
+
* @param addToHistory - 是否添加到历史记录
|
|
293
|
+
*/
|
|
294
|
+
protected _updateState(partial: Partial<ICoreState>, addToHistory: boolean): void;
|
|
295
|
+
/**
|
|
296
|
+
* 同步状态到 canvas 系统(由子类实现)
|
|
297
|
+
* @param _state - 要同步的状态
|
|
298
|
+
*/
|
|
299
|
+
protected abstract _renderCanvas(_state: ICoreState): void;
|
|
300
|
+
/**
|
|
301
|
+
* 清理资源
|
|
302
|
+
*/
|
|
303
|
+
protected _dispose(): void;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* CanvasTransformer 封装了 Konva.Transformer 的核心功能
|
|
308
|
+
* 提供变换器管理、位置计算、事件处理等能力
|
|
309
|
+
*/
|
|
310
|
+
declare class CanvasTransformer {
|
|
311
|
+
#private;
|
|
312
|
+
constructor(core: CanvasCore, config?: TransformerConfig);
|
|
313
|
+
/**
|
|
314
|
+
* 获取原生 Konva.Transformer 实例
|
|
315
|
+
*/
|
|
316
|
+
getTransformer(): default_2.Transformer;
|
|
317
|
+
/**
|
|
318
|
+
* 获取 Transformer 的位置信息
|
|
319
|
+
*/
|
|
320
|
+
getPosition(): TransformerPosition | null;
|
|
321
|
+
/**
|
|
322
|
+
* 设置要变换的节点
|
|
323
|
+
*/
|
|
324
|
+
setNodes(nodes: default_2.Node[]): void;
|
|
325
|
+
/**
|
|
326
|
+
* 获取当前变换的节点
|
|
327
|
+
*/
|
|
328
|
+
getNodes(): default_2.Node[];
|
|
329
|
+
/**
|
|
330
|
+
* 清除所有节点
|
|
331
|
+
*/
|
|
332
|
+
clearNodes(): void;
|
|
333
|
+
/**
|
|
334
|
+
* emit Transformer 位置
|
|
335
|
+
*/
|
|
336
|
+
emitPositionChange(): void;
|
|
337
|
+
/**
|
|
338
|
+
* 销毁 Transformer
|
|
339
|
+
*/
|
|
340
|
+
destroy(): void;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
declare interface CommonNodeConfig<T = NodeType> {
|
|
344
|
+
$_type: T;
|
|
345
|
+
$_line?: "solid" | "dashed" | "dotted";
|
|
346
|
+
$_size?: "small" | "medium" | "large" | "extra-large";
|
|
347
|
+
$_fill?: "none" | "semi" | "solid";
|
|
348
|
+
$_animated?: boolean;
|
|
349
|
+
$_arrowStartHead?: "none" | "arrow";
|
|
350
|
+
$_arrowEndHead?: "none" | "arrow";
|
|
351
|
+
$_parentId?: string;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
/**
|
|
355
|
+
* 根据图片标注裁剪图片并返回 base64 字符串
|
|
356
|
+
* @param api Canvas API 实例
|
|
357
|
+
* @param imageMarkerNodeId 图片标注节点 ID
|
|
358
|
+
* @returns Promise<string | null> 裁剪后的图片 base64 字符串,失败返回 null
|
|
359
|
+
*/
|
|
360
|
+
export declare function cropImageBaseOnImageMarker(api: CanvasApi | null | undefined, imageMarkerNodeId: string): Promise<string | null>;
|
|
361
|
+
|
|
362
|
+
declare type HistoryState<T> = {
|
|
363
|
+
past: T[];
|
|
364
|
+
present: T;
|
|
365
|
+
future: T[];
|
|
366
|
+
};
|
|
367
|
+
|
|
368
|
+
declare interface ICanvasNode {
|
|
369
|
+
getID(): string;
|
|
370
|
+
getElement(): default_2.Shape | default_2.Group;
|
|
371
|
+
getConfig(): INode;
|
|
372
|
+
updateNode(node: Partial<INode>): void;
|
|
373
|
+
destroy(): void;
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
declare interface ICoreState {
|
|
377
|
+
viewport: IViewport;
|
|
378
|
+
toolType: ToolType;
|
|
379
|
+
selectedNodeIds?: string[];
|
|
380
|
+
nodes?: INode[];
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
declare interface INode<T = NodeType> extends default_2.ShapeConfig, CommonNodeConfig<T> {
|
|
384
|
+
id: string;
|
|
385
|
+
x: number;
|
|
386
|
+
y: number;
|
|
387
|
+
$_imageUrl?: string;
|
|
388
|
+
$_markerNumber?: number;
|
|
389
|
+
$_bounds?: {
|
|
390
|
+
x: number;
|
|
391
|
+
y: number;
|
|
392
|
+
width: number;
|
|
393
|
+
height: number;
|
|
394
|
+
};
|
|
395
|
+
$_relativeBox?: {
|
|
396
|
+
start: {
|
|
397
|
+
ratioX: number;
|
|
398
|
+
ratioY: number;
|
|
399
|
+
};
|
|
400
|
+
end: {
|
|
401
|
+
ratioX: number;
|
|
402
|
+
ratioY: number;
|
|
403
|
+
};
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
/**
|
|
408
|
+
* 在当前 canvas 内容左下角插入图片节点
|
|
409
|
+
* @param api Canvas API 实例
|
|
410
|
+
* @param imageUrl 图片 URL 或 URL 数组
|
|
411
|
+
* @returns Promise<string[] | undefined> 返回插入的图片节点 ID 数组
|
|
412
|
+
*/
|
|
413
|
+
export declare function insertImageBesideContent(api: CanvasApi | null | undefined, imageUrl: string | string[]): Promise<string[] | undefined>;
|
|
414
|
+
|
|
415
|
+
/**
|
|
416
|
+
* 在指定位置插入图片节点
|
|
417
|
+
* @param api Canvas API 实例
|
|
418
|
+
* @param imageUrls 图片 URL 或 URL 数组
|
|
419
|
+
* @param position 插入位置 { x, y }
|
|
420
|
+
* @param options 可选配置
|
|
421
|
+
* @returns Promise<string[] | undefined> 返回插入的图片节点 ID 数组
|
|
422
|
+
*/
|
|
423
|
+
export declare function insertImagesAtPosition(api: CanvasApi | null | undefined, imageUrls: string | string[], position: {
|
|
424
|
+
x: number;
|
|
425
|
+
y: number;
|
|
426
|
+
}, options?: {
|
|
427
|
+
spacing?: number;
|
|
428
|
+
scrollToView?: boolean;
|
|
429
|
+
direction?: "horizontal" | "vertical";
|
|
430
|
+
}): Promise<string[] | undefined>;
|
|
431
|
+
|
|
432
|
+
/**
|
|
433
|
+
* 在当前选中节点右侧插入 loading 图片节点
|
|
434
|
+
* @param api Canvas API 实例
|
|
435
|
+
* @param imageUrl 图片 URL
|
|
436
|
+
* @returns string | undefined 返回插入的 loading 图片节点 ID,如果未插入则返回 undefined
|
|
437
|
+
*/
|
|
438
|
+
export declare function insertLoadingImageBesideSelection(api: CanvasApi | null | undefined, imageUrl: string): string | undefined;
|
|
439
|
+
|
|
440
|
+
declare interface IViewport {
|
|
441
|
+
x: number;
|
|
442
|
+
y: number;
|
|
443
|
+
width: number;
|
|
444
|
+
height: number;
|
|
445
|
+
scale: number;
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
declare type NodeType = "rectangle" | "image" | "image-marker";
|
|
449
|
+
|
|
450
|
+
export declare function replaceLoadingImageNode(api: CanvasApi | null | undefined, loadingNodeId: string, imageUrls: string | string[]): void;
|
|
451
|
+
|
|
452
|
+
declare type StageConfig = {
|
|
453
|
+
container: HTMLDivElement;
|
|
454
|
+
width: number;
|
|
455
|
+
height: number;
|
|
456
|
+
draggable?: boolean;
|
|
457
|
+
className?: string;
|
|
458
|
+
};
|
|
459
|
+
|
|
460
|
+
/**
|
|
461
|
+
* 状态事件类型定义
|
|
462
|
+
*/
|
|
463
|
+
declare type StateEvents = {
|
|
464
|
+
"state:change": ICoreState;
|
|
465
|
+
"state:undo": ICoreState;
|
|
466
|
+
"state:redo": ICoreState;
|
|
467
|
+
"state:reset": ICoreState;
|
|
468
|
+
"viewport:change": ICoreState["viewport"];
|
|
469
|
+
"viewport:scale:change": number;
|
|
470
|
+
"transformer:positionChange": TransformerPosition | null;
|
|
471
|
+
"toolType:change": ICoreState["toolType"];
|
|
472
|
+
"nodes:created": INode[];
|
|
473
|
+
"nodes:deleted": INode[];
|
|
474
|
+
"nodes:selected": string[];
|
|
475
|
+
};
|
|
476
|
+
|
|
477
|
+
declare type ToolType = "select" | "hand" | "rectangle" | "image-marker";
|
|
478
|
+
|
|
479
|
+
declare type TransformerConfig = {
|
|
480
|
+
rotateEnabled?: boolean;
|
|
481
|
+
ignoreStroke?: boolean;
|
|
482
|
+
anchorSize?: number;
|
|
483
|
+
borderDash?: number[];
|
|
484
|
+
anchorCornerRadius?: number;
|
|
485
|
+
padding?: number;
|
|
486
|
+
};
|
|
487
|
+
|
|
488
|
+
/**
|
|
489
|
+
* 变换器(Transformer)位置信息
|
|
490
|
+
*/
|
|
491
|
+
declare interface TransformerPosition {
|
|
492
|
+
x: number;
|
|
493
|
+
y: number;
|
|
494
|
+
width: number;
|
|
495
|
+
height: number;
|
|
496
|
+
rotation?: number;
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
declare type ViewportState = {
|
|
500
|
+
x: number;
|
|
501
|
+
y: number;
|
|
502
|
+
scale: number;
|
|
503
|
+
width?: number;
|
|
504
|
+
height?: number;
|
|
505
|
+
};
|
|
506
|
+
|
|
507
|
+
export { }
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@8btc/whiteboard",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.19-beta.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.umd.js",
|
|
7
7
|
"module": "./dist/index.js",
|
|
@@ -9,8 +9,11 @@
|
|
|
9
9
|
"exports": {
|
|
10
10
|
".": {
|
|
11
11
|
"types": "./dist/index.d.ts",
|
|
12
|
-
"import": "./dist/index.js"
|
|
13
|
-
|
|
12
|
+
"import": "./dist/index.js"
|
|
13
|
+
},
|
|
14
|
+
"./adapter/maze": {
|
|
15
|
+
"types": "./dist/maze.d.ts",
|
|
16
|
+
"import": "./dist/adapter/maze.js"
|
|
14
17
|
}
|
|
15
18
|
},
|
|
16
19
|
"files": [
|
|
@@ -25,7 +28,8 @@
|
|
|
25
28
|
"lint": "eslint .",
|
|
26
29
|
"preview": "vite preview",
|
|
27
30
|
"prepublishOnly": "pnpm build",
|
|
28
|
-
"release": "pnpm build && npm publish --access public"
|
|
31
|
+
"release": "pnpm build && npm publish --access public",
|
|
32
|
+
"release:beta": "pnpm build && npm publish --access public --tag beta"
|
|
29
33
|
},
|
|
30
34
|
"peerDependencies": {
|
|
31
35
|
"react": "^18.0.0 || ^19.0.0",
|