@8btc/whiteboard 0.0.18 → 0.0.19-beta.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.
- package/dist/adapter/maze.d.ts +2 -0
- package/dist/adapter/maze.js +161 -0
- package/dist/const-Das6lRi-.js +17 -0
- package/dist/index.css +1 -1320
- package/dist/index.d.ts +99 -62
- package/dist/index.js +1096 -1565
- package/dist/maze.d.ts +538 -0
- package/package.json +8 -4
- package/dist/index.umd.js +0 -3574
package/dist/index.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export declare class CanvasApi extends CanvasCore {
|
|
|
18
18
|
* 手动创建多个节点
|
|
19
19
|
* 如果你不知道自己在干什么,请使用更高层的封装方法,如 createImageNode
|
|
20
20
|
*/
|
|
21
|
-
createNodes(nodes: INode[]): void;
|
|
21
|
+
createNodes(nodes: INode[], addToHistory: boolean): void;
|
|
22
22
|
/**
|
|
23
23
|
* 根据 ID 获取节点
|
|
24
24
|
*/
|
|
@@ -100,11 +100,27 @@ export declare class CanvasApi extends CanvasCore {
|
|
|
100
100
|
scale?: boolean;
|
|
101
101
|
nodeIds?: string[];
|
|
102
102
|
}): void;
|
|
103
|
+
/**
|
|
104
|
+
* 导出当前状态
|
|
105
|
+
*/
|
|
106
|
+
save(): ICoreState;
|
|
107
|
+
/**
|
|
108
|
+
* 从状态中恢复画布
|
|
109
|
+
*/
|
|
110
|
+
restore(state: ICoreState): void;
|
|
103
111
|
}
|
|
104
112
|
|
|
105
113
|
declare class CanvasCore extends CanvasState_2 {
|
|
106
114
|
#private;
|
|
107
|
-
constructor(el: HTMLDivElement);
|
|
115
|
+
constructor(el: HTMLDivElement, state?: ICoreState);
|
|
116
|
+
/**
|
|
117
|
+
* 注册全局主题
|
|
118
|
+
*/
|
|
119
|
+
static registerTheme(theme: Theme): void;
|
|
120
|
+
/**
|
|
121
|
+
* 获取主题,如果没有注册过返回默认主题
|
|
122
|
+
*/
|
|
123
|
+
getTheme(): Theme;
|
|
108
124
|
/**
|
|
109
125
|
* 获取 CanvasStage 实例
|
|
110
126
|
*/
|
|
@@ -113,10 +129,6 @@ declare class CanvasCore extends CanvasState_2 {
|
|
|
113
129
|
* 获取 CanvasTransformer 实例
|
|
114
130
|
*/
|
|
115
131
|
getCanvasTransformer(): CanvasTransformer;
|
|
116
|
-
/**
|
|
117
|
-
* 发射事件(供内部类使用)
|
|
118
|
-
*/
|
|
119
|
-
emitEvent<StageEvent extends keyof StateEvents>(event: StageEvent, data: StateEvents[StageEvent]): void;
|
|
120
132
|
/**
|
|
121
133
|
* 获取 Konva.Stage 实例
|
|
122
134
|
*/
|
|
@@ -137,18 +149,22 @@ declare class CanvasCore extends CanvasState_2 {
|
|
|
137
149
|
* 设置当前工具类型(内部使用)
|
|
138
150
|
*/
|
|
139
151
|
setToolType(type: ToolType): void;
|
|
152
|
+
/**
|
|
153
|
+
* 根据 ID 获取 Canvas 节点实例
|
|
154
|
+
*/
|
|
155
|
+
getCanvasNodeById(id: string): ICanvasNode | null;
|
|
140
156
|
/**
|
|
141
157
|
* 设置是否可拖拽(内部使用)
|
|
142
158
|
*/
|
|
143
159
|
protected setDraggable(draggable: boolean): void;
|
|
144
|
-
/* Excluded from this release type:
|
|
145
|
-
/* Excluded from this release type:
|
|
160
|
+
/* Excluded from this release type: _setCursor */
|
|
161
|
+
/* Excluded from this release type: _resetCursor */
|
|
146
162
|
/**
|
|
147
163
|
* 获取当前 Stage 缩放比例
|
|
148
164
|
*/
|
|
149
165
|
getStageScale(): number;
|
|
150
|
-
/* Excluded from this release type:
|
|
151
|
-
protected createNodes(nodes: INode[]): void;
|
|
166
|
+
/* Excluded from this release type: _updateViewport */
|
|
167
|
+
protected createNodes(nodes: INode[], addToHistory: boolean): void;
|
|
152
168
|
/**
|
|
153
169
|
* 创建图片标注节点(内部使用)
|
|
154
170
|
*/
|
|
@@ -164,26 +180,28 @@ declare class CanvasCore extends CanvasState_2 {
|
|
|
164
180
|
width: number;
|
|
165
181
|
height: number;
|
|
166
182
|
}): void;
|
|
167
|
-
/* Excluded from this release type:
|
|
168
|
-
/* Excluded from this release type:
|
|
169
|
-
/* Excluded from this release type:
|
|
170
|
-
/* Excluded from this release type:
|
|
171
|
-
/* Excluded from this release type:
|
|
183
|
+
/* Excluded from this release type: _findImageAtPosition */
|
|
184
|
+
/* Excluded from this release type: _setDrawingPosition */
|
|
185
|
+
/* Excluded from this release type: _updateDrawingPosition */
|
|
186
|
+
/* Excluded from this release type: _createDraftNode */
|
|
187
|
+
/* Excluded from this release type: _updateDraftNode */
|
|
188
|
+
/* Excluded from this release type: _finalizeDraftNode */
|
|
189
|
+
/* Excluded from this release type: _createSelectRect */
|
|
190
|
+
_updateSelectRect(): void;
|
|
191
|
+
/* Excluded from this release type: _finalizeSelectRect */
|
|
192
|
+
/* Excluded from this release type: _selectNodes */
|
|
172
193
|
/* Excluded from this release type: deleteNodes */
|
|
173
194
|
/* Excluded from this release type: deleteSelectedNodes */
|
|
174
195
|
/**
|
|
175
196
|
* 销毁 canvas
|
|
176
197
|
*/
|
|
177
198
|
dispose(): void;
|
|
178
|
-
|
|
179
|
-
* 从元素同步节点数据(供节点类内部使用)
|
|
180
|
-
*/
|
|
181
|
-
_syncNodeFromElement(nodeId: string, updates: Partial<INode>): void;
|
|
199
|
+
/* Excluded from this release type: _rebuildStateAfterNodeChange */
|
|
182
200
|
/**
|
|
183
201
|
* 实现父类的状态同步方法
|
|
184
202
|
* 当 undo/redo 时被调用
|
|
185
203
|
*/
|
|
186
|
-
protected
|
|
204
|
+
protected _renderCanvas(state: ICoreState): void;
|
|
187
205
|
}
|
|
188
206
|
|
|
189
207
|
/**
|
|
@@ -227,11 +245,8 @@ declare class CanvasStage {
|
|
|
227
245
|
* CanvasState 类负责管理画布的状态
|
|
228
246
|
* 包括历史记录(past/present/future)和状态监听
|
|
229
247
|
*/
|
|
230
|
-
declare class CanvasState_2 {
|
|
231
|
-
private
|
|
232
|
-
private _present;
|
|
233
|
-
private _future;
|
|
234
|
-
private _emitter;
|
|
248
|
+
declare abstract class CanvasState_2 {
|
|
249
|
+
#private;
|
|
235
250
|
constructor(initialState: ICoreState);
|
|
236
251
|
/**
|
|
237
252
|
* 获取当前状态
|
|
@@ -257,10 +272,7 @@ declare class CanvasState_2 {
|
|
|
257
272
|
* 取消订阅状态事件
|
|
258
273
|
*/
|
|
259
274
|
off<K extends keyof StateEvents>(event: K, handler: (data: StateEvents[K]) => void): void;
|
|
260
|
-
|
|
261
|
-
* 发送事件
|
|
262
|
-
*/
|
|
263
|
-
protected emit<K extends keyof StateEvents>(event: K, data: StateEvents[K]): void;
|
|
275
|
+
/* Excluded from this release type: _emit */
|
|
264
276
|
/**
|
|
265
277
|
* 撤销操作
|
|
266
278
|
*/
|
|
@@ -278,12 +290,12 @@ declare class CanvasState_2 {
|
|
|
278
290
|
* @param partial - 部分状态更新
|
|
279
291
|
* @param addToHistory - 是否添加到历史记录
|
|
280
292
|
*/
|
|
281
|
-
protected _updateState(partial: Partial<ICoreState>, addToHistory
|
|
293
|
+
protected _updateState(partial: Partial<ICoreState>, addToHistory: boolean): void;
|
|
282
294
|
/**
|
|
283
|
-
*
|
|
295
|
+
* 同步状态到 canvas 系统(由子类实现)
|
|
284
296
|
* @param _state - 要同步的状态
|
|
285
297
|
*/
|
|
286
|
-
protected
|
|
298
|
+
protected abstract _renderCanvas(_state: ICoreState): void;
|
|
287
299
|
/**
|
|
288
300
|
* 清理资源
|
|
289
301
|
*/
|
|
@@ -327,6 +339,17 @@ declare class CanvasTransformer {
|
|
|
327
339
|
destroy(): void;
|
|
328
340
|
}
|
|
329
341
|
|
|
342
|
+
declare interface CommonNodeConfig<T = NodeType> extends Partial<NodeStyle> {
|
|
343
|
+
$_type: T;
|
|
344
|
+
$_line?: "solid" | "dashed" | "dotted";
|
|
345
|
+
$_size?: "small" | "medium" | "large" | "extra-large";
|
|
346
|
+
$_fill?: "none" | "semi" | "solid";
|
|
347
|
+
$_animated?: boolean;
|
|
348
|
+
$_arrowStartHead?: "none" | "arrow";
|
|
349
|
+
$_arrowEndHead?: "none" | "arrow";
|
|
350
|
+
$_parentId?: string;
|
|
351
|
+
}
|
|
352
|
+
|
|
330
353
|
declare type HistoryState<T> = {
|
|
331
354
|
past: T[];
|
|
332
355
|
present: T;
|
|
@@ -334,8 +357,9 @@ declare type HistoryState<T> = {
|
|
|
334
357
|
};
|
|
335
358
|
|
|
336
359
|
export declare interface ICanvasNode {
|
|
360
|
+
getID(): string;
|
|
337
361
|
getElement(): default_2.Shape | default_2.Group;
|
|
338
|
-
|
|
362
|
+
getConfig(): INode;
|
|
339
363
|
updateNode(node: Partial<INode>): void;
|
|
340
364
|
destroy(): void;
|
|
341
365
|
}
|
|
@@ -343,41 +367,37 @@ export declare interface ICanvasNode {
|
|
|
343
367
|
export declare interface ICoreState {
|
|
344
368
|
viewport: IViewport;
|
|
345
369
|
toolType: ToolType;
|
|
346
|
-
nodes?: INode[];
|
|
347
370
|
selectedNodeIds?: string[];
|
|
371
|
+
nodes?: INode[];
|
|
348
372
|
}
|
|
349
373
|
|
|
350
|
-
export declare interface INode<T = NodeType> {
|
|
374
|
+
export declare interface INode<T = NodeType> extends default_2.ShapeConfig, CommonNodeConfig<T> {
|
|
351
375
|
id: string;
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
376
|
+
x: number;
|
|
377
|
+
y: number;
|
|
378
|
+
$_imageUrl?: string;
|
|
379
|
+
$_markerNumber?: number;
|
|
380
|
+
$_bounds?: {
|
|
355
381
|
x: number;
|
|
356
382
|
y: number;
|
|
357
|
-
width
|
|
358
|
-
height
|
|
359
|
-
rotation?: number;
|
|
360
|
-
visible?: boolean;
|
|
361
|
-
points?: [number, number][];
|
|
383
|
+
width: number;
|
|
384
|
+
height: number;
|
|
362
385
|
};
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
386
|
+
$_relativeBox?: {
|
|
387
|
+
start: {
|
|
388
|
+
ratioX: number;
|
|
389
|
+
ratioY: number;
|
|
390
|
+
};
|
|
391
|
+
end: {
|
|
392
|
+
ratioX: number;
|
|
393
|
+
ratioY: number;
|
|
394
|
+
};
|
|
372
395
|
};
|
|
373
|
-
meta: Record<string, any>;
|
|
374
396
|
}
|
|
375
397
|
|
|
376
398
|
declare interface IViewport {
|
|
377
399
|
x: number;
|
|
378
400
|
y: number;
|
|
379
|
-
width: number;
|
|
380
|
-
height: number;
|
|
381
401
|
scale: number;
|
|
382
402
|
}
|
|
383
403
|
|
|
@@ -389,14 +409,13 @@ export declare const NODE_NAMES: {
|
|
|
389
409
|
imageMarker: string;
|
|
390
410
|
};
|
|
391
411
|
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
declare interface PureCanvasProps {
|
|
397
|
-
setApi?: (core: CanvasApi) => void;
|
|
412
|
+
declare interface NodeStyle {
|
|
413
|
+
$_strokeColor: "theme.stroke-color.1" | "theme.stroke-color.2" | "theme.stroke-color.3";
|
|
414
|
+
$_fillColor: "theme.fill-color.1" | "theme.fill-color.2" | "theme.fill-color.3";
|
|
398
415
|
}
|
|
399
416
|
|
|
417
|
+
export declare type NodeType = "rectangle" | "image" | "image-marker";
|
|
418
|
+
|
|
400
419
|
declare type StageConfig = {
|
|
401
420
|
container: HTMLDivElement;
|
|
402
421
|
width: number;
|
|
@@ -417,11 +436,23 @@ declare type StateEvents = {
|
|
|
417
436
|
"viewport:scale:change": number;
|
|
418
437
|
"transformer:positionChange": TransformerPosition | null;
|
|
419
438
|
"toolType:change": ICoreState["toolType"];
|
|
420
|
-
"nodes:created":
|
|
439
|
+
"nodes:created": INode[];
|
|
421
440
|
"nodes:deleted": INode[];
|
|
422
441
|
"nodes:selected": string[];
|
|
423
442
|
};
|
|
424
443
|
|
|
444
|
+
export declare interface Theme {
|
|
445
|
+
"theme.select-rect-border": string;
|
|
446
|
+
"theme.select-rect-fill": string;
|
|
447
|
+
"theme.image-marker-color": string;
|
|
448
|
+
"theme.stroke-color.1": string;
|
|
449
|
+
"theme.stroke-color.2": string;
|
|
450
|
+
"theme.stroke-color.3": string;
|
|
451
|
+
"theme.fill-color.1": string;
|
|
452
|
+
"theme.fill-color.2": string;
|
|
453
|
+
"theme.fill-color.3": string;
|
|
454
|
+
}
|
|
455
|
+
|
|
425
456
|
export declare type ToolType = "select" | "hand" | "rectangle" | "image-marker";
|
|
426
457
|
|
|
427
458
|
declare type TransformerConfig = {
|
|
@@ -452,4 +483,10 @@ declare type ViewportState = {
|
|
|
452
483
|
height?: number;
|
|
453
484
|
};
|
|
454
485
|
|
|
486
|
+
export declare function Whiteboard({ setApi }: WhiteboardProps): JSX.Element;
|
|
487
|
+
|
|
488
|
+
declare interface WhiteboardProps {
|
|
489
|
+
setApi?: (core: CanvasApi) => void;
|
|
490
|
+
}
|
|
491
|
+
|
|
455
492
|
export { }
|