@netless/appliance-plugin 1.0.0-beta.0 → 1.0.0-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/README.md +54 -15
  2. package/cdn/cdn.js +1 -0
  3. package/cdn/fullWorker-BPqPUZ.js +467 -0
  4. package/cdn/subWorker-BQgE8H.js +467 -0
  5. package/dist/appliance-plugin.js +1 -1
  6. package/dist/appliance-plugin.mjs +22 -8637
  7. package/dist/cdn.d.ts +3 -0
  8. package/dist/collector/types.d.ts +0 -1
  9. package/dist/component/textEditor/manager.d.ts +2 -5
  10. package/dist/component/textEditor/types.d.ts +1 -0
  11. package/dist/component/textEditor/view.d.ts +9 -7
  12. package/dist/core/enum.d.ts +16 -10
  13. package/dist/core/mainEngine.d.ts +40 -15
  14. package/dist/core/mainThread/base.d.ts +81 -0
  15. package/dist/core/mainThread/index.d.ts +23 -0
  16. package/dist/core/mainThread/snapshotThread.d.ts +39 -0
  17. package/dist/core/mainThread/subLocalThread.d.ts +106 -0
  18. package/dist/core/mainThread/subServiceThread.d.ts +42 -0
  19. package/dist/core/mainThread/subTopThread.d.ts +46 -0
  20. package/dist/core/mainThread/vNodeManager.d.ts +33 -0
  21. package/dist/core/msgEvent/base.d.ts +6 -2
  22. package/dist/core/msgEvent/baseForMainThread.d.ts +13 -0
  23. package/dist/core/msgEvent/copyNode/forMain.d.ts +3 -0
  24. package/dist/core/msgEvent/copyNode/forMainThread.d.ts +8 -0
  25. package/dist/core/msgEvent/deleteNode/forMain.d.ts +1 -0
  26. package/dist/core/msgEvent/deleteNode/forMainThread.d.ts +10 -0
  27. package/dist/core/msgEvent/deleteNode/forWorker.d.ts +1 -4
  28. package/dist/core/msgEvent/forMainThread.d.ts +14 -0
  29. package/dist/core/msgEvent/index.d.ts +4 -0
  30. package/dist/core/msgEvent/rotateNode/forMain.d.ts +2 -2
  31. package/dist/core/msgEvent/rotateNode/forMainThread.d.ts +9 -0
  32. package/dist/core/msgEvent/scaleNode/forMain.d.ts +4 -2
  33. package/dist/core/msgEvent/scaleNode/forMainThread.d.ts +9 -0
  34. package/dist/core/msgEvent/setColor/forMain.d.ts +3 -1
  35. package/dist/core/msgEvent/setColor/forMainThread.d.ts +9 -0
  36. package/dist/core/msgEvent/setFont/forMain.d.ts +1 -0
  37. package/dist/core/msgEvent/setFont/forMainThread.d.ts +9 -0
  38. package/dist/core/msgEvent/setLock/forMain.d.ts +1 -0
  39. package/dist/core/msgEvent/setLock/forMainThread.d.ts +9 -0
  40. package/dist/core/msgEvent/setPoint/forMain.d.ts +1 -0
  41. package/dist/core/msgEvent/setPoint/forMainThread.d.ts +9 -0
  42. package/dist/core/msgEvent/setShape/forMain.d.ts +1 -0
  43. package/dist/core/msgEvent/setShape/forMainThread.d.ts +9 -0
  44. package/dist/core/msgEvent/setZIndex/forMain.d.ts +1 -0
  45. package/dist/core/msgEvent/setZIndex/forMainThread.d.ts +9 -0
  46. package/dist/core/msgEvent/translateNode/forMain.d.ts +2 -2
  47. package/dist/core/msgEvent/translateNode/forMainThread.d.ts +9 -0
  48. package/dist/core/tools/arrow.d.ts +3 -3
  49. package/dist/core/tools/base.d.ts +6 -6
  50. package/dist/core/tools/ellipse.d.ts +3 -3
  51. package/dist/core/tools/eraser.d.ts +3 -3
  52. package/dist/core/tools/image.d.ts +2 -0
  53. package/dist/core/tools/pencil.d.ts +3 -2
  54. package/dist/core/tools/polygon.d.ts +4 -3
  55. package/dist/core/tools/rectangle.d.ts +4 -3
  56. package/dist/core/tools/selector.d.ts +11 -9
  57. package/dist/core/tools/speechBalloon.d.ts +4 -3
  58. package/dist/core/tools/star.d.ts +3 -3
  59. package/dist/core/tools/straight.d.ts +4 -3
  60. package/dist/core/tools/text.d.ts +7 -11
  61. package/dist/core/tools/utils.d.ts +7 -3
  62. package/dist/core/types.d.ts +17 -5
  63. package/dist/core/utils/index.d.ts +1 -1
  64. package/dist/core/utils/math.d.ts +3 -0
  65. package/dist/core/utils/spriteNode.d.ts +2 -2
  66. package/dist/core/worker/base.d.ts +32 -42
  67. package/dist/core/worker/fullWorkerLocal.d.ts +2 -1
  68. package/dist/core/worker/fullWorkerService.d.ts +23 -7
  69. package/dist/core/worker/subWorkerLocal.d.ts +4 -6
  70. package/dist/core/worker/subWorkerTopLayer.d.ts +43 -0
  71. package/dist/core/worker/vNodeManager.d.ts +4 -2
  72. package/dist/core/worker/workerManager.d.ts +17 -16
  73. package/dist/displayer/floatBar/dragBox/index.d.ts +4 -0
  74. package/dist/displayer/floatBar/index.d.ts +1 -5
  75. package/dist/fullWorker.js +467 -0
  76. package/dist/index-BFSMbeSf.mjs +5460 -0
  77. package/dist/index-Cmeli2Rl.js +1 -0
  78. package/dist/index-CoeOpY3D.mjs +9125 -0
  79. package/dist/index-DWgB0sHh.js +1 -0
  80. package/dist/index.d.ts +1 -0
  81. package/dist/plugin/applianceMultiPlugin.d.ts +1 -1
  82. package/dist/plugin/applianceSinglePlugin.d.ts +1 -1
  83. package/dist/plugin/baseApplianceManager.d.ts +5 -5
  84. package/dist/plugin/baseViewContainerManager.d.ts +6 -4
  85. package/dist/plugin/const.d.ts +13 -0
  86. package/dist/plugin/displayerView.d.ts +4 -11
  87. package/dist/plugin/index.d.ts +2 -3
  88. package/dist/plugin/multi/applianceMultiManager.d.ts +1 -1
  89. package/dist/plugin/multi/containerManager.d.ts +3 -1
  90. package/dist/plugin/multi/displayer/appViewDisplayerManager.d.ts +2 -1
  91. package/dist/plugin/multi/displayer/mainViewDisplayerManager.d.ts +3 -1
  92. package/dist/plugin/single/applianceDisplayer.d.ts +0 -1
  93. package/dist/plugin/single/applianceSingleManager.d.ts +1 -1
  94. package/dist/plugin/single/containerManager.d.ts +1 -1
  95. package/dist/plugin/single/displayer/mainViewDisplayerManager.d.ts +3 -1
  96. package/dist/plugin/types.d.ts +15 -17
  97. package/dist/style.css +1 -1
  98. package/dist/subWorker.js +467 -0
  99. package/dist/undo/index.d.ts +1 -2
  100. package/package.json +15 -17
  101. package/cdn/appliance-plugin.js +0 -1
  102. package/cdn/appliance-plugin.mjs +0 -8639
  103. package/cdn/style.css +0 -1
  104. package/dist/core/msgEvent/activeZIndex/forMain.d.ts +0 -12
  105. package/dist/core/msgEvent/activeZIndex/forWorker.d.ts +0 -8
  106. /package/dist/displayer/{highlightBox → floatBar/highlightBox}/index.d.ts +0 -0
  107. /package/dist/displayer/{resizable → floatBar/resizable}/index.d.ts +0 -0
  108. /package/dist/displayer/{rotate → floatBar/rotate}/index.d.ts +0 -0
@@ -16,21 +16,17 @@ export declare class TextShape extends BaseShapeTool {
16
16
  constructor(props: BaseShapeToolProps);
17
17
  consume(): IMainMessage;
18
18
  consumeAll(): IMainMessage;
19
+ consumeService(): IRectType | undefined;
19
20
  private draw;
20
- consumeService(props: {
21
+ consumeServiceAsync(props: {
21
22
  isFullWork: boolean;
22
23
  replaceId?: string;
23
- isDrawLabel?: boolean;
24
- }): IRectType | undefined;
25
- updataOptService(updateNodeOpt: IUpdateNodeOpt): IRectType | undefined;
24
+ isDrawLabel?: true;
25
+ }): Promise<IRectType | undefined>;
26
+ updataOptService(): IRectType | undefined;
27
+ updataOptServiceAsync(updateNodeOpt: IUpdateNodeOpt): Promise<IRectType | undefined>;
26
28
  clearTmpPoints(): void;
27
- static getFontWidth(param: {
28
- text: string;
29
- ctx: OffscreenCanvasRenderingContext2D;
30
- opt: TextOptions;
31
- worldScaling: number[];
32
- }): number;
33
- static createLabels(textOpt: TextOptions, layer: Group): (Polyline | Label)[];
29
+ static createLabels(textOpt: TextOptions, group: Group): Promise<(Polyline | Label)[]>;
34
30
  static updateNodeOpt(param: {
35
31
  node: ShapeNodes;
36
32
  opt: IUpdateNodeOpt;
@@ -17,9 +17,13 @@ import { TextShape } from "./text";
17
17
  import { TextOptions } from "../../component/textEditor";
18
18
  import { ImageOptions, ImageShape } from "./image";
19
19
  import type { ServiceWorkForFullWorker } from "../worker/fullWorkerService";
20
+ import type { SubServiceThread } from "../mainThread/subServiceThread";
21
+ import { BaseShapeTool } from "./base";
20
22
  export type ShapeTools = typeof PencilShape | typeof LaserPenShape | typeof EraserShape | typeof StarShape | typeof SelectorShape | typeof ArrowShape | typeof EllipseShape | typeof RectangleShape | typeof StarShape | typeof PolygonShape | typeof TextShape | typeof SpeechBalloonShape | typeof ImageShape;
23
+ export type ShapeToolsClass = BaseShapeTool | PencilShape | LaserPenShape | EraserShape | StarShape | SelectorShape | ArrowShape | EllipseShape | RectangleShape | StarShape | PolygonShape | TextShape | SpeechBalloonShape | ImageShape;
21
24
  export type ShapeOptions = PencilOptions | LaserPenOptions | EraserOptions | StarOptions | SelectorOptions | ArrowOptions | EllipseOptions | RectangleOptions | StarOptions | PolygonOptions | StraightOptions | TextOptions | SpeechBalloonOptions | ImageOptions;
22
25
  export type ShapeNodes = Group | Path | Polyline | Rect | Ellipse | Sprite;
26
+ export type ServiceThreadSubWork = SubServiceThread | ServiceWorkForFullWorker;
23
27
  export interface CombineConsumeResult {
24
28
  type: EPostMessageType;
25
29
  rect: IRectType | undefined;
@@ -28,12 +32,12 @@ export interface CombineConsumeResult {
28
32
  export interface ShapeStateInfo {
29
33
  willClear: boolean;
30
34
  }
31
- export declare function getShapeTools(toolsType: EToolsKey): typeof PencilShape | typeof LaserPenShape | typeof ArrowShape | typeof StraightShape | typeof EllipseShape | typeof PolygonShape | typeof StarShape | typeof RectangleShape | typeof SpeechBalloonShape | typeof TextShape | typeof EraserShape | typeof SelectorShape | typeof ImageShape | undefined;
35
+ export declare function getShapeTools(toolsType: EToolsKey): typeof ArrowShape | typeof PencilShape | typeof StraightShape | typeof EllipseShape | typeof PolygonShape | typeof StarShape | typeof RectangleShape | typeof SpeechBalloonShape | typeof TextShape | typeof LaserPenShape | typeof EraserShape | typeof SelectorShape | typeof ImageShape | undefined;
32
36
  export declare function getShapeInstance(param: {
33
37
  toolsType: EToolsKey;
34
38
  toolsOpt: ShapeOptions;
35
- vNodes: VNodeManager;
39
+ vNodes?: VNodeManager;
36
40
  fullLayer: Group;
37
41
  drawLayer?: Group;
38
- }, serviceWork?: ServiceWorkForFullWorker): SelectorShape | PencilShape | LaserPenShape | ArrowShape | StraightShape | EllipseShape | PolygonShape | StarShape | RectangleShape | SpeechBalloonShape | TextShape | EraserShape | ImageShape | undefined;
42
+ }, serviceWork?: ServiceThreadSubWork): ArrowShape | PencilShape | StraightShape | EllipseShape | PolygonShape | StarShape | RectangleShape | SpeechBalloonShape | TextShape | LaserPenShape | EraserShape | SelectorShape | ImageShape | undefined;
39
43
  export declare function findShapeBody(nodes: ShapeNodes[]): ShapeNodes[];
@@ -30,7 +30,7 @@ export interface IOffscreenCanvasOptionType {
30
30
  width: number;
31
31
  /** offscreenCanvas 高度 */
32
32
  height: number;
33
- /** 上下文类型,默认webgl2 */
33
+ /** 上下文类型 */
34
34
  contextType?: ECanvasContextType;
35
35
  /** 是否自动渲染,默认自动渲染 */
36
36
  autoRender?: boolean;
@@ -120,7 +120,6 @@ export type IWorkerMessage = Omit<Partial<BaseCollectorReducerAction>, 'op'> & {
120
120
  }>;
121
121
  willSerializeData?: boolean;
122
122
  isRunSubWork?: boolean;
123
- undoTickerId?: number;
124
123
  scenes?: ISerializableStorageData;
125
124
  textType?: ETextEditorType;
126
125
  mainTasksqueueCount?: number;
@@ -162,7 +161,6 @@ export interface IMainMessage extends INormalPushMsg {
162
161
  workId: IworkId;
163
162
  toolsType: EToolsKey;
164
163
  }>;
165
- undoTickerId?: number;
166
164
  scenePath?: string;
167
165
  canvasWidth?: number;
168
166
  canvasHeight?: number;
@@ -179,6 +177,7 @@ export interface IMainMessage extends INormalPushMsg {
179
177
  isLocked?: boolean;
180
178
  shapeOpt?: ShapeOptType;
181
179
  toolsTypes?: EToolsKey[];
180
+ waitWorker?: boolean;
182
181
  }
183
182
  export interface IMainMessageRenderData {
184
183
  viewId: string;
@@ -191,13 +190,13 @@ export interface IMainMessageRenderData {
191
190
  clearCanvas?: ECanvasShowType;
192
191
  /** 是否需要销毁imageBitmap */
193
192
  isUnClose?: boolean;
194
- isFullWork?: boolean;
195
193
  workerType?: EDataType.Local | EDataType.Service;
196
194
  offset?: {
197
195
  x: number;
198
196
  y: number;
199
197
  };
200
198
  translate?: [number, number];
199
+ workId?: string;
201
200
  }
202
201
  export interface IBatchMainMessage {
203
202
  /** 绘制数据 */
@@ -206,6 +205,7 @@ export interface IBatchMainMessage {
206
205
  sp?: Array<IMainMessage>;
207
206
  drawCount?: number;
208
207
  workerTasksqueueCount?: number;
208
+ workIds?: Set<string>;
209
209
  }
210
210
  export interface ICameraOpt {
211
211
  centerX: number;
@@ -244,7 +244,6 @@ export interface IActiveWorkDataType {
244
244
  toolsOpt?: ShapeOptions;
245
245
  viewId?: string;
246
246
  workId?: IworkId;
247
- undoTickerId?: number;
248
247
  }
249
248
  export type IServiceWorkItem = {
250
249
  toolsType: EToolsKey;
@@ -263,6 +262,16 @@ export type IServiceWorkItem = {
263
262
  totalRect?: IRectType;
264
263
  isDiff?: boolean;
265
264
  };
265
+ export type ILocalWorkItem = {
266
+ toolsType: EToolsKey;
267
+ node: BaseShapeTool;
268
+ data?: IWorkerMessage;
269
+ result?: IMainMessage;
270
+ totalRect?: IRectType;
271
+ workState: EvevtWorkState;
272
+ isDel?: boolean;
273
+ willRefresh?: boolean;
274
+ };
266
275
  export type BaseNodeMapItem = {
267
276
  name: string;
268
277
  rect: IRectType;
@@ -272,6 +281,9 @@ export type BaseNodeMapItem = {
272
281
  toolsType: EToolsKey;
273
282
  canRotate: boolean;
274
283
  scaleType: EScaleType;
284
+ /** 是否被框选中,框选中的元素不能被其它人操作 */
285
+ isSelected: boolean;
286
+ isHid?: boolean;
275
287
  };
276
288
  export type Size = {
277
289
  /**
@@ -361,4 +361,4 @@ export declare function toFixed(v: number): number;
361
361
  */
362
362
  export declare const isSafeFloat: (n: number) => boolean;
363
363
  export declare const requestAsyncCallBack: (callBack: () => void, timeout: number) => Promise<void>;
364
- export declare const getRatioWithContext: (context: CanvasRenderingContext2D) => number;
364
+ export declare const getRatioWithContext: (context?: CanvasRenderingContext2D) => number;
@@ -37,6 +37,7 @@ export declare function getRectTranslated(rect: IRectType, translate: [number, n
37
37
  w: number;
38
38
  h: number;
39
39
  };
40
+ export declare function getRectRotatedPoints(rect: IRectType, angle: number): Vec2d[];
40
41
  export declare function getRectRotated(rect: IRectType, angle: number): {
41
42
  x: number;
42
43
  y: number;
@@ -49,6 +50,8 @@ export declare function getRectScaleed(rect: IRectType, scale: [number, number])
49
50
  w: number;
50
51
  h: number;
51
52
  };
53
+ export declare function getScalePoints(points: Vec2d[], originPos: Vec2d, scale: [number, number]): Vec2d[];
54
+ export declare function getRotatePoints(points: Vec2d[], originPos: Vec2d, angle: number): Vec2d[];
52
55
  export declare function rotatePoints(points: number[], originPos: [number, number], angle: number): void;
53
56
  export declare function scalePoints(points: number[], originPos: [number, number], scale: [number, number]): void;
54
57
  export declare function getNodeRect(key: string, layer?: Group, safeBorderPadding?: number): IRectType | undefined;
@@ -1,4 +1,4 @@
1
1
  import { Group, Node, Path } from "spritejs";
2
- import { EToolsKey } from "../enum";
2
+ import { BaseNodeMapItem } from "../types";
3
3
  export declare const isSealedGroup: (group: Group | Path | Node) => boolean;
4
- export declare const isRenderNode: (toolsType: EToolsKey) => boolean;
4
+ export declare const isRenderNode: (param: Pick<BaseNodeMapItem, 'isHid'>) => boolean;
@@ -1,13 +1,14 @@
1
1
  import { Group, Scene } from "spritejs";
2
- import { IActiveToolsDataType, IActiveWorkDataType, IBatchMainMessage, ICameraOpt, ILayerOptionType, IMainMessage, IOffscreenCanvasOptionType, IServiceWorkItem, IWorkerMessage, IworkId } from "../types";
2
+ import { IActiveToolsDataType, IActiveWorkDataType, IBatchMainMessage, ICameraOpt, ILayerOptionType, IOffscreenCanvasOptionType, IRectType, IWorkerMessage } from "../types";
3
3
  import { VNodeManager } from "./vNodeManager";
4
- import { EDataType, EToolsKey } from "../enum";
4
+ import { ECanvasShowType, EDataType, EvevtWorkState } from "../enum";
5
5
  import { ShapeStateInfo } from "../tools/utils";
6
6
  import { BaseShapeOptions, BaseShapeTool } from "../tools/base";
7
7
  import { ServiceWorkForFullWorker } from "./fullWorkerService";
8
8
  import { LocalWorkForFullWorker } from "./fullWorkerLocal";
9
9
  import { LocalWorkForSubWorker } from "./subWorkerLocal";
10
10
  import type { WorkThreadEngineForFullWorker, WorkThreadEngineForSubWorker } from "./workerManager";
11
+ import { EmitEventType } from "../../plugin/types";
11
12
  export interface IWorkerInitOption {
12
13
  dpr: number;
13
14
  offscreenCanvasOpt: IOffscreenCanvasOptionType;
@@ -18,37 +19,48 @@ export interface ISubWorkerInitOption {
18
19
  viewId: string;
19
20
  vNodes: VNodeManager;
20
21
  fullLayer: Group;
22
+ topLayer?: Group;
21
23
  drawLayer?: Group;
22
- post: (msg: IBatchMainMessage) => Promise<void>;
23
24
  }
24
25
  export declare abstract class WorkThreadEngineBase {
25
26
  readonly viewId: string;
26
27
  readonly fullLayer: Group;
27
28
  readonly vNodes: VNodeManager;
28
29
  readonly dpr: number;
29
- readonly abstract drawLayer?: Group;
30
- readonly abstract snapshotFullLayer?: Group;
31
30
  protected opt: IWorkerInitOption;
32
31
  protected cameraOpt?: ICameraOpt;
33
32
  protected scene: Scene;
34
33
  abstract localWork: LocalWorkForFullWorker | LocalWorkForSubWorker;
35
34
  abstract serviceWork?: ServiceWorkForFullWorker;
36
35
  protected isSafari: boolean;
37
- protected abstract _post: (msg: IBatchMainMessage, transfer?: Transferable[]) => void;
36
+ protected abstract _post: (msg: IBatchMainMessage) => void;
37
+ combinePostMsg: Set<IBatchMainMessage>;
38
+ protected workerTaskId?: number | undefined;
39
+ protected protectedTask?: {
40
+ isProtected: boolean;
41
+ workName: EmitEventType;
42
+ workState: EvevtWorkState;
43
+ };
38
44
  constructor(viewId: string, opt: IWorkerInitOption);
39
45
  setIsSafari(isSafari: boolean): void;
40
- on(msg: IWorkerMessage): void;
46
+ on(msg: IWorkerMessage, workerTasksqueueCount?: number): Promise<void>;
41
47
  protected updateScene(offscreenCanvasOpt: IOffscreenCanvasOptionType): void;
42
48
  protected updateLayer(layerOpt: ILayerOptionType): void;
49
+ private getSupportContextType;
43
50
  protected createScene(opt: IOffscreenCanvasOptionType): Scene;
44
51
  protected createLayer(name: string, scene: Scene, opt: ILayerOptionType): Group;
45
52
  protected clearAll(): void;
46
53
  protected setToolsOpt(opt: IActiveToolsDataType): void;
47
54
  protected setWorkOpt(opt: Partial<IActiveWorkDataType>): void;
48
55
  protected destroy(): void;
56
+ post(msg: IBatchMainMessage): void;
57
+ private runBatchPostData;
58
+ protected combinePostData(): IBatchMainMessage;
59
+ protected safariFixRect(rect: IRectType): IRectType | undefined;
60
+ protected getSceneRect(): IRectType;
61
+ abstract combinePost(): Promise<void>;
62
+ protected abstract getLayer(workLayer: ECanvasShowType): Group | undefined;
49
63
  abstract setCameraOpt(cameraOpt: ICameraOpt): void;
50
- abstract getOffscreen(isFullWork: boolean): OffscreenCanvas;
51
- abstract post(msg: IBatchMainMessage): Promise<void>;
52
64
  abstract consumeDraw(type: EDataType, data: IWorkerMessage): void;
53
65
  abstract consumeDrawAll(type: EDataType, data: IWorkerMessage): void;
54
66
  }
@@ -58,46 +70,24 @@ export declare abstract class LocalWork {
58
70
  readonly thread: WorkThreadEngineForFullWorker | WorkThreadEngineForSubWorker;
59
71
  fullLayer: Group;
60
72
  drawLayer?: Group;
61
- readonly _post: (msg: IBatchMainMessage) => Promise<void>;
73
+ readonly _post: (msg: IBatchMainMessage) => void;
62
74
  protected tmpWorkShapeNode?: BaseShapeTool;
63
75
  protected tmpOpt?: IActiveToolsDataType;
64
- workShapes: Map<IworkId, BaseShapeTool>;
65
- workShapeState: Map<IworkId, ShapeStateInfo>;
66
- protected effectWorkId?: number;
76
+ workShapes: Map<string, BaseShapeTool>;
77
+ workShapeState: Map<string, ShapeStateInfo>;
67
78
  protected drawCount: number;
68
79
  constructor(opt: ISubWorkerInitOption);
69
80
  destroy(): void;
70
- getWorkShape(workId: IworkId): BaseShapeTool | undefined;
81
+ getWorkShapes(): Map<string, BaseShapeTool>;
82
+ getWorkShape(workId: string): BaseShapeTool | undefined;
71
83
  getTmpWorkShapeNode(): BaseShapeTool | undefined;
72
- setTmpWorkId(workId: IworkId | undefined): void;
73
- setTmpWorkOptions(opt: BaseShapeOptions): void;
74
- setWorkOptions(workId: IworkId, opt: BaseShapeOptions): void;
84
+ setTmpWorkId(workId: string | undefined): void;
85
+ setWorkOptions(workId: string, opt: BaseShapeOptions): void;
75
86
  createWorkShapeNode(opt: IActiveToolsDataType & {
76
- workId?: IworkId;
77
- }): import("../tools").SelectorShape | import("../tools").PencilShape | import("../tools").LaserPenShape | import("../tools").ArrowShape | import("../tools/straight").StraightShape | import("../tools").EllipseShape | import("../tools").PolygonShape | import("../tools").StarShape | import("../tools").RectangleShape | import("../tools").SpeechBalloonShape | import("../tools/text").TextShape | import("../tools").EraserShape | import("../tools").ImageShape | undefined;
87
+ workId?: string;
88
+ }): import("../tools").ArrowShape | import("../tools").PencilShape | import("../tools/straight").StraightShape | import("../tools").EllipseShape | import("../tools").PolygonShape | import("../tools").StarShape | import("../tools").RectangleShape | import("../tools").SpeechBalloonShape | import("../tools/text").TextShape | import("../tools").LaserPenShape | import("../tools").EraserShape | import("../tools").SelectorShape | import("../tools").ImageShape | undefined;
78
89
  setToolsOpt(opt: IActiveToolsDataType): void;
79
- clearWorkShapeNodeCache(workId: IworkId): void;
90
+ clearWorkShapeNodeCache(workId: string): void;
80
91
  clearAllWorkShapesCache(): void;
81
- setFullWork(data: Pick<IWorkerMessage, 'workId' | 'opt' | 'toolsType'>): BaseShapeTool | import("../tools").LaserPenShape | import("../tools").SpeechBalloonShape | import("../tools/text").TextShape | import("../tools").EraserShape | undefined;
82
- abstract consumeDraw(data: IWorkerMessage, serviceWork?: ServiceWork): IMainMessage | undefined;
83
- abstract consumeDrawAll(data: IWorkerMessage, serviceWork?: ServiceWork): IMainMessage | undefined;
84
- }
85
- export interface ServiceWork {
86
- readonly viewId: string;
87
- readonly vNodes: VNodeManager;
88
- readonly fullLayer: Group;
89
- readonly drawLayer: Group;
90
- readonly post: (msg: IBatchMainMessage) => Promise<void>;
91
- selectorWorkShapes: Map<string, IServiceWorkItem>;
92
- clearAllWorkShapesCache(): void;
93
- runSelectWork(data: IWorkerMessage): void;
94
- consumeDraw(data: IWorkerMessage): void;
95
- setNodeKey(workShape: IServiceWorkItem, tools: EToolsKey, opt: BaseShapeOptions): IServiceWorkItem;
96
- runReverseSelectWork(selectIds: string[]): void;
97
- removeWork(data: IWorkerMessage): void;
98
- removeSelectWork(data: IWorkerMessage): void;
99
- runSelectWork(data: IWorkerMessage): void;
100
- consumeFull(data: IWorkerMessage): void;
101
- consumeDraw(data: IWorkerMessage): void;
102
- destroy(): void;
92
+ setFullWork(data: Pick<IWorkerMessage, 'workId' | 'opt' | 'toolsType'>): BaseShapeTool | import("../tools/straight").StraightShape | import("../tools").PolygonShape | import("../tools").RectangleShape | import("../tools").SpeechBalloonShape | import("../tools").LaserPenShape | undefined;
103
93
  }
@@ -12,8 +12,9 @@ export declare class LocalWorkForFullWorker extends LocalWork {
12
12
  constructor(opt: ISubWorkerInitOption);
13
13
  consumeDraw(data: IWorkerMessage, serviceWork: ServiceWorkForFullWorker): IMainMessage | undefined;
14
14
  consumeDrawAll(data: IWorkerMessage, serviceWork: ServiceWorkForFullWorker): IMainMessage | undefined;
15
+ workShapesDone(scenePath: string, serviceWork: ServiceWorkForFullWorker): void;
15
16
  consumeFull(data: IWorkerMessage, scene?: Scene): Promise<void>;
16
- removeWork(data: IWorkerMessage): Promise<void>;
17
+ removeWork(data: IWorkerMessage): void;
17
18
  removeNode(key: string): IRectType | undefined;
18
19
  checkTextActive(data: IWorkerMessage): Promise<void>;
19
20
  colloctEffectSelectWork(data: IWorkerMessage): Promise<IWorkerMessage | undefined>;
@@ -1,25 +1,41 @@
1
1
  import { Group } from "spritejs";
2
- import { ISubWorkerInitOption, ServiceWork } from "./base";
2
+ import { ISubWorkerInitOption } from "./base";
3
3
  import { VNodeManager } from "./vNodeManager";
4
4
  import { IBatchMainMessage, IServiceWorkItem, IWorkerMessage } from "../types";
5
5
  import { EToolsKey } from "../enum";
6
6
  import { BaseShapeOptions } from "../tools";
7
+ export interface ServiceWork {
8
+ readonly viewId: string;
9
+ readonly vNodes: VNodeManager;
10
+ readonly fullLayer: Group;
11
+ readonly drawLayer: Group;
12
+ readonly post: (msg: IBatchMainMessage) => void;
13
+ selectorWorkShapes: Map<string, IServiceWorkItem>;
14
+ clearAllWorkShapesCache(): void;
15
+ runSelectWork(data: IWorkerMessage): void;
16
+ consumeDraw(data: IWorkerMessage): void;
17
+ setNodeKey(workShape: IServiceWorkItem, tools: EToolsKey, opt: BaseShapeOptions): IServiceWorkItem;
18
+ runReverseSelectWork(selectIds: string[]): void;
19
+ removeWork(data: IWorkerMessage): void;
20
+ removeSelectWork(data: IWorkerMessage): void;
21
+ runSelectWork(data: IWorkerMessage): void;
22
+ consumeFull(data: IWorkerMessage): void;
23
+ consumeDraw(data: IWorkerMessage): void;
24
+ destroy(): void;
25
+ }
7
26
  export declare class ServiceWorkForFullWorker implements ServiceWork {
8
27
  viewId: string;
9
28
  vNodes: VNodeManager;
10
29
  fullLayer: Group;
11
30
  drawLayer: Group;
12
- serviceDrawLayer: Group;
13
31
  workShapes: Map<string, IServiceWorkItem>;
14
32
  selectorWorkShapes: Map<string, IServiceWorkItem>;
15
33
  protected animationId?: number | undefined;
16
34
  private willRunEffectSelectorIds;
17
35
  private runEffectId?;
18
36
  private noAnimationRect;
19
- post: (msg: IBatchMainMessage, transfer?: Transferable[]) => Promise<void>;
20
- constructor(opt: ISubWorkerInitOption & {
21
- serviceDrawLayer: Group;
22
- });
37
+ post: (msg: IBatchMainMessage) => void;
38
+ constructor(opt: ISubWorkerInitOption);
23
39
  destroy(): void;
24
40
  consumeDraw(data: IWorkerMessage): void;
25
41
  consumeFull(data: IWorkerMessage): void;
@@ -27,7 +43,7 @@ export declare class ServiceWorkForFullWorker implements ServiceWork {
27
43
  runSelectWork(data: IWorkerMessage): void;
28
44
  setNodeKey(workShape: IServiceWorkItem, tools: EToolsKey, opt: BaseShapeOptions): IServiceWorkItem;
29
45
  runReverseSelectWork(selectIds: string[]): void;
30
- removeWork(data: IWorkerMessage): Promise<void>;
46
+ removeWork(data: IWorkerMessage): void;
31
47
  removeSelectWork(data: IWorkerMessage): void;
32
48
  private removeNode;
33
49
  private activeWorkShape;
@@ -3,18 +3,16 @@ import { IWorkerMessage, IRectType, IMainMessage } from "..";
3
3
  import { BaseCollectorReducerAction } from "../../collector/types";
4
4
  import { LocalWork, ISubWorkerInitOption } from "./base";
5
5
  export declare class LocalWorkForSubWorker extends LocalWork {
6
- private animationWorkRects?;
7
6
  protected combineDrawTimer?: number;
8
- private animationId?;
9
- private closeAnimationTime;
10
- private runLaserPenStep;
11
7
  constructor(opt: ISubWorkerInitOption);
12
- runFullWork(data: IWorkerMessage, isDrawLabel?: boolean): Promise<IRectType | undefined>;
8
+ runFullWork(data: IWorkerMessage): Promise<IRectType | undefined>;
13
9
  runSelectWork(data: IWorkerMessage): undefined;
10
+ workShapesDone(): void;
14
11
  consumeDraw(data: IWorkerMessage): IMainMessage | undefined;
15
12
  consumeDrawAll(data: IWorkerMessage): undefined;
16
13
  updateLabels(labelGroup: Group, value: BaseCollectorReducerAction): void;
17
- private runLaserPenAnimation;
14
+ removeWork(data: IWorkerMessage): void;
15
+ private removeNode;
18
16
  private drawPencil;
19
17
  private drawArrow;
20
18
  }
@@ -0,0 +1,43 @@
1
+ import { Group } from "spritejs";
2
+ import { BaseShapeOptions, BaseShapeTool } from "../tools";
3
+ import { ISubWorkerInitOption } from "./base";
4
+ import { VNodeManager } from "./vNodeManager";
5
+ import { IActiveToolsDataType, IBatchMainMessage, ILocalWorkItem, IServiceWorkItem, IWorkerMessage } from "../types";
6
+ export interface TopLayerWork {
7
+ readonly viewId: string;
8
+ readonly vNodes: VNodeManager;
9
+ readonly topLayer: Group;
10
+ readonly post: (msg: IBatchMainMessage) => void;
11
+ consumeDraw(data: IWorkerMessage): void;
12
+ consumeDrawAll(data: IWorkerMessage): void;
13
+ destroy(): void;
14
+ }
15
+ export declare class TopLayerWorkForSubWorker implements TopLayerWork {
16
+ viewId: string;
17
+ vNodes: VNodeManager;
18
+ topLayer: Group;
19
+ post: (msg: IBatchMainMessage) => void;
20
+ serviceWorkShapes: Map<string, IServiceWorkItem>;
21
+ localWorkShapes: Map<string, ILocalWorkItem>;
22
+ protected tmpOpt?: IActiveToolsDataType;
23
+ protected tmpWorkShapeNode?: BaseShapeTool;
24
+ protected animationId?: number | undefined;
25
+ constructor(opt: ISubWorkerInitOption);
26
+ getWorkShape(workId: string): ILocalWorkItem | undefined;
27
+ getTmpWorkShapeNode(): BaseShapeTool | undefined;
28
+ setTmpWorkId(workId: string | undefined): void;
29
+ setWorkOptions(workId: string, opt: BaseShapeOptions): void;
30
+ createWorkShapeNode(opt: IActiveToolsDataType & {
31
+ workId?: string;
32
+ }): import("../tools").ArrowShape | import("../tools").PencilShape | import("../tools/straight").StraightShape | import("../tools").EllipseShape | import("../tools").PolygonShape | import("../tools").StarShape | import("../tools").RectangleShape | import("../tools").SpeechBalloonShape | import("../tools/text").TextShape | import("../tools").LaserPenShape | import("../tools").EraserShape | import("../tools").SelectorShape | import("../tools").ImageShape | undefined;
33
+ clearAllWorkShapesCache(): void;
34
+ setToolsOpt(opt: IActiveToolsDataType): void;
35
+ consumeDraw(data: IWorkerMessage): void;
36
+ consumeDrawAll(data: IWorkerMessage): void;
37
+ destroy(): void;
38
+ private setNodeKey;
39
+ private activeServiceWorkShape;
40
+ private computNextAnimationIndex;
41
+ private animationDraw;
42
+ private runAnimation;
43
+ }
@@ -4,16 +4,17 @@ export declare class VNodeManager {
4
4
  viewId: string;
5
5
  scene: Scene;
6
6
  scenePath?: string;
7
- drawLayer?: Group;
8
7
  fullLayer?: Group;
9
8
  curNodeMap: Map<string, BaseNodeMapItem>;
10
9
  targetNodeMap: Map<string, BaseNodeMapItem>[];
11
10
  constructor(viewId: string, scene: Scene);
12
- init(fullLayer: Group, drawLayer?: Group): void;
11
+ init(fullLayer: Group): void;
13
12
  get(name: string): BaseNodeMapItem | undefined;
14
13
  hasRenderNodes(): boolean;
15
14
  has(name: string): void;
16
15
  setInfo(name: string, info: Partial<BaseNodeMapItem>): void;
16
+ selected(name: string): void;
17
+ unSelected(name: string): void;
17
18
  delete(name: string): void;
18
19
  clear(): void;
19
20
  hasRectIntersectRange(rect: IRectType, filterLock?: boolean): boolean;
@@ -29,4 +30,5 @@ export declare class VNodeManager {
29
30
  deleteLastTarget(): void;
30
31
  getTarget(i: number): Map<string, BaseNodeMapItem>;
31
32
  deleteTarget(i: number): void;
33
+ clearTarget(): void;
32
34
  }
@@ -1,10 +1,11 @@
1
1
  import { Group } from "spritejs";
2
- import { EDataType } from "../enum";
2
+ import { ECanvasShowType, EDataType } from "../enum";
3
3
  import { IBatchMainMessage, ICameraOpt, ILayerOptionType, IWorkerMessage } from "../types";
4
4
  import { IWorkerInitOption, WorkThreadEngineBase } from "./base";
5
5
  import { LocalWorkForFullWorker } from "./fullWorkerLocal";
6
6
  import { ServiceWorkForFullWorker } from "./fullWorkerService";
7
7
  import { LocalWorkForSubWorker } from "./subWorkerLocal";
8
+ import { TopLayerWorkForSubWorker } from "./subWorkerTopLayer";
8
9
  export declare enum EWorkThreadType {
9
10
  Full = "full",
10
11
  Sub = "sub"
@@ -21,51 +22,51 @@ export declare class WorkerManager<T extends WorkThreadEngineBase> {
21
22
  /** full worker */
22
23
  export declare class WorkThreadEngineForFullWorker extends WorkThreadEngineBase {
23
24
  serviceDrawLayer: Group;
24
- drawLayer: Group;
25
+ localDrawLayer: Group;
25
26
  snapshotFullLayer: undefined;
26
27
  private methodBuilder;
27
28
  localWork: LocalWorkForFullWorker;
28
29
  serviceWork: ServiceWorkForFullWorker;
29
30
  protected _post: (msg: IBatchMainMessage, transfer?: Transferable[] | undefined) => void;
30
31
  constructor(viewId: string, opt: IWorkerInitOption, _post: (msg: IBatchMainMessage, transfer?: Transferable[]) => void);
31
- post(msg: IBatchMainMessage, transfer?: Transferable[]): Promise<void>;
32
- on(msg: IWorkerMessage): void;
32
+ combinePost(): Promise<void>;
33
+ on(msg: IWorkerMessage, workerTasksqueueCount?: number): Promise<void>;
33
34
  removeNode(data: IWorkerMessage): Promise<void>;
34
35
  checkTextActive(data: IWorkerMessage): void;
35
36
  clearAll(): void;
36
37
  protected updateLayer(layerOpt: ILayerOptionType): void;
37
38
  setCameraOpt(cameraOpt: ICameraOpt): void;
38
- getLayer(isFullWork?: boolean, workerType?: EDataType.Local | EDataType.Service): Group;
39
- getOffscreen(isFullWork: boolean, workerType?: EDataType.Local | EDataType.Service): OffscreenCanvas;
39
+ protected getLayer(drawCanvas: ECanvasShowType): Group | undefined;
40
+ getOffscreen(drawCanvas: ECanvasShowType): OffscreenCanvas;
40
41
  consumeFull(type: EDataType, data: IWorkerMessage): Promise<void>;
41
42
  consumeDraw(type: EDataType, data: IWorkerMessage): void;
42
43
  consumeDrawAll(type: EDataType, data: IWorkerMessage): void;
43
44
  private updateCamera;
44
45
  private getRectImageBitmap;
45
- private safariFixRect;
46
- private getSceneRect;
47
- private checkRightRectBoundingBox;
48
46
  private cursorHover;
49
47
  }
50
48
  /** sub worker */
51
49
  export declare class WorkThreadEngineForSubWorker extends WorkThreadEngineBase {
52
50
  protected _post: (msg: IBatchMainMessage, transfer?: Transferable[] | undefined) => void;
53
- drawLayer: undefined;
51
+ topLayer: Group;
54
52
  snapshotFullLayer: Group | undefined;
55
53
  serviceWork: undefined;
56
54
  localWork: LocalWorkForSubWorker;
55
+ topLayerWork: TopLayerWorkForSubWorker;
57
56
  constructor(viewId: string, opt: IWorkerInitOption, _post: (msg: IBatchMainMessage, transfer?: Transferable[]) => void);
58
- post(msg: IBatchMainMessage, transfer?: Transferable[]): Promise<void>;
59
- on(msg: IWorkerMessage): void;
60
- getOffscreen(isSnapshot: boolean): OffscreenCanvas;
61
- consumeDraw(type: EDataType, data: IWorkerMessage): void;
57
+ combinePost(): Promise<void>;
58
+ getLayer(drawCanvas: ECanvasShowType, isSnapshot?: boolean): Group;
59
+ on(msg: IWorkerMessage): Promise<void>;
60
+ removeNode(data: IWorkerMessage): Promise<void>;
61
+ getOffscreen(drawCanvas: ECanvasShowType, isSnapshot?: boolean): OffscreenCanvas;
62
+ consumeDraw(_type: EDataType, data: IWorkerMessage): void;
62
63
  consumeDrawAll(_type: EDataType, data: IWorkerMessage): void;
64
+ clearAll(): void;
63
65
  private getRectImageBitmap;
64
- private safariFixRect;
66
+ protected updateLayer(layerOpt: ILayerOptionType): void;
65
67
  private updateCamera;
66
68
  setCameraOpt(cameraOpt: ICameraOpt, layer?: Group): void;
67
69
  private getSnapshot;
68
- private willRenderSpecialLabel;
69
70
  private getSnapshotRender;
70
71
  private getBoundingRect;
71
72
  }
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ export declare const DraggableBox: (props: {
3
+ onClickHandle: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
4
+ }) => React.JSX.Element;
@@ -1,10 +1,6 @@
1
1
  import React from "react";
2
2
  import { TextEditorInfo } from "../../component/textEditor";
3
3
  export declare const FloatBar: React.MemoExoticComponent<React.ForwardRefExoticComponent<{
4
- className: string;
5
4
  editors?: Map<string, TextEditorInfo> | undefined;
6
5
  activeTextId?: string | undefined;
7
- } & React.RefAttributes<HTMLCanvasElement>>>;
8
- export declare const FloatBarBtn: (props: {
9
- className: string;
10
- }) => React.JSX.Element | null;
6
+ } & React.RefAttributes<HTMLDivElement>>>;