@netless/appliance-plugin 1.0.0-beta.3 → 1.0.0-beta.4

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 (81) hide show
  1. package/cdn/cdn.js +1 -1
  2. package/cdn/fullWorker-wE6a5h.js +566 -0
  3. package/cdn/subWorker-C2CJhY.js +566 -0
  4. package/dist/appliance-plugin.js +1 -1
  5. package/dist/appliance-plugin.mjs +22 -8598
  6. package/dist/component/textEditor/types.d.ts +1 -0
  7. package/dist/component/textEditor/view.d.ts +9 -7
  8. package/dist/core/enum.d.ts +7 -7
  9. package/dist/core/mainEngine.d.ts +7 -5
  10. package/dist/core/mainThread/base.d.ts +81 -0
  11. package/dist/core/mainThread/index.d.ts +23 -0
  12. package/dist/core/mainThread/snapshotThread.d.ts +40 -0
  13. package/dist/core/mainThread/subLocalThread.d.ts +101 -0
  14. package/dist/core/mainThread/subServiceThread.d.ts +42 -0
  15. package/dist/core/mainThread/subTopThread.d.ts +46 -0
  16. package/dist/core/mainThread/vNodeManager.d.ts +32 -0
  17. package/dist/core/msgEvent/baseForMainThread.d.ts +13 -0
  18. package/dist/core/msgEvent/copyNode/forMainThread.d.ts +8 -0
  19. package/dist/core/msgEvent/deleteNode/forMainThread.d.ts +13 -0
  20. package/dist/core/msgEvent/forMainThread.d.ts +14 -0
  21. package/dist/core/msgEvent/rotateNode/forMainThread.d.ts +9 -0
  22. package/dist/core/msgEvent/scaleNode/forMainThread.d.ts +9 -0
  23. package/dist/core/msgEvent/setColor/forMainThread.d.ts +9 -0
  24. package/dist/core/msgEvent/setFont/forMainThread.d.ts +9 -0
  25. package/dist/core/msgEvent/setLock/forMainThread.d.ts +9 -0
  26. package/dist/core/msgEvent/setPoint/forMainThread.d.ts +9 -0
  27. package/dist/core/msgEvent/setShape/forMainThread.d.ts +9 -0
  28. package/dist/core/msgEvent/setZIndex/forMainThread.d.ts +9 -0
  29. package/dist/core/msgEvent/translateNode/forMain.d.ts +0 -1
  30. package/dist/core/msgEvent/translateNode/forMainThread.d.ts +9 -0
  31. package/dist/core/tools/arrow.d.ts +4 -3
  32. package/dist/core/tools/base.d.ts +3 -3
  33. package/dist/core/tools/ellipse.d.ts +4 -3
  34. package/dist/core/tools/eraser.d.ts +3 -3
  35. package/dist/core/tools/image.d.ts +1 -0
  36. package/dist/core/tools/pencil.d.ts +1 -0
  37. package/dist/core/tools/polygon.d.ts +4 -3
  38. package/dist/core/tools/rectangle.d.ts +4 -3
  39. package/dist/core/tools/selector.d.ts +11 -9
  40. package/dist/core/tools/speechBalloon.d.ts +4 -3
  41. package/dist/core/tools/star.d.ts +4 -3
  42. package/dist/core/tools/straight.d.ts +4 -3
  43. package/dist/core/tools/utils.d.ts +7 -3
  44. package/dist/core/types.d.ts +13 -1
  45. package/dist/core/utils/index.d.ts +1 -1
  46. package/dist/core/worker/base.d.ts +17 -34
  47. package/dist/core/worker/fullWorkerLocal.d.ts +1 -1
  48. package/dist/core/worker/fullWorkerService.d.ts +23 -7
  49. package/dist/core/worker/subWorkerLocal.d.ts +0 -5
  50. package/dist/core/worker/subWorkerTopLayer.d.ts +43 -0
  51. package/dist/core/worker/vNodeManager.d.ts +3 -2
  52. package/dist/core/worker/workerManager.d.ts +16 -15
  53. package/dist/displayer/floatBar/dragBox/index.d.ts +4 -0
  54. package/dist/displayer/floatBar/index.d.ts +1 -5
  55. package/dist/fullWorker.js +10 -10
  56. package/dist/index-0-ebfVjb.mjs +8732 -0
  57. package/dist/index-CQlnAm5S.mjs +5405 -0
  58. package/dist/index-DMJjpzvq.js +1 -0
  59. package/dist/index-h_PU7sdS.js +1 -0
  60. package/dist/index.d.ts +1 -0
  61. package/dist/plugin/baseApplianceManager.d.ts +3 -3
  62. package/dist/plugin/baseViewContainerManager.d.ts +6 -3
  63. package/dist/plugin/displayerView.d.ts +4 -11
  64. package/dist/plugin/multi/applianceMultiManager.d.ts +1 -1
  65. package/dist/plugin/multi/containerManager.d.ts +1 -1
  66. package/dist/plugin/multi/displayer/appViewDisplayerManager.d.ts +2 -1
  67. package/dist/plugin/multi/displayer/mainViewDisplayerManager.d.ts +3 -1
  68. package/dist/plugin/single/applianceSingleManager.d.ts +1 -1
  69. package/dist/plugin/single/containerManager.d.ts +1 -1
  70. package/dist/plugin/single/displayer/mainViewDisplayerManager.d.ts +3 -1
  71. package/dist/plugin/types.d.ts +1 -2
  72. package/dist/style.css +1 -1
  73. package/dist/subWorker.js +10 -10
  74. package/package.json +1 -1
  75. package/cdn/fullWorker-O4uzWn.js +0 -566
  76. package/cdn/subWorker-CvBoLi.js +0 -566
  77. package/dist/core/msgEvent/activeZIndex/forMain.d.ts +0 -12
  78. package/dist/core/msgEvent/activeZIndex/forWorker.d.ts +0 -8
  79. /package/dist/displayer/{highlightBox → floatBar/highlightBox}/index.d.ts +0 -0
  80. /package/dist/displayer/{resizable → floatBar/resizable}/index.d.ts +0 -0
  81. /package/dist/displayer/{rotate → floatBar/rotate}/index.d.ts +0 -0
@@ -20,9 +20,10 @@ export declare class ArrowShape extends BaseShapeTool {
20
20
  constructor(props: BaseShapeToolProps);
21
21
  consume(props: {
22
22
  data: IWorkerMessage;
23
- isFullWork?: boolean | undefined;
24
- isClearAll?: boolean | undefined;
25
- isSubWorker?: boolean | undefined;
23
+ isFullWork?: boolean;
24
+ isClearAll?: boolean;
25
+ isSubWorker?: boolean;
26
+ isMainThread?: boolean;
26
27
  }): IMainMessage;
27
28
  consumeAll(props: {
28
29
  data?: IWorkerMessage | undefined;
@@ -22,7 +22,7 @@ export interface BaseShapeOptions {
22
22
  translate?: [number, number];
23
23
  }
24
24
  export interface BaseShapeToolProps {
25
- vNodes: VNodeManager;
25
+ vNodes?: VNodeManager;
26
26
  toolsOpt: ShapeOptions;
27
27
  fullLayer: Group;
28
28
  drawLayer?: Group;
@@ -34,7 +34,7 @@ export declare abstract class BaseShapeTool {
34
34
  readonly abstract canRotate: boolean;
35
35
  readonly abstract scaleType: EScaleType;
36
36
  syncUnitTime: number;
37
- vNodes: VNodeManager;
37
+ vNodes?: VNodeManager;
38
38
  protected drawLayer?: Group;
39
39
  protected fullLayer: Group;
40
40
  protected workId: number | string | undefined;
@@ -46,11 +46,11 @@ export declare abstract class BaseShapeTool {
46
46
  isFullWork?: boolean;
47
47
  isClearAll?: boolean;
48
48
  isSubWorker?: boolean;
49
+ isMainThread?: boolean;
49
50
  }): IMainMessage;
50
51
  /** 消费本地完整数据,返回绘制结果 */
51
52
  abstract consumeAll(props: {
52
53
  data?: IWorkerMessage;
53
- hoverId?: string;
54
54
  }): IMainMessage;
55
55
  /** 消费服务端数据,返回绘制结果 */
56
56
  abstract consumeService(props: {
@@ -20,9 +20,10 @@ export declare class EllipseShape extends BaseShapeTool {
20
20
  constructor(props: BaseShapeToolProps);
21
21
  consume(props: {
22
22
  data: IWorkerMessage;
23
- isFullWork?: boolean | undefined;
24
- isClearAll?: boolean | undefined;
25
- isSubWorker?: boolean | undefined;
23
+ isFullWork?: boolean;
24
+ isClearAll?: boolean;
25
+ isSubWorker?: boolean;
26
+ isMainThread?: boolean;
26
27
  }): IMainMessage;
27
28
  consumeAll(props: {
28
29
  data?: IWorkerMessage | undefined;
@@ -1,7 +1,7 @@
1
1
  import { BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
2
2
  import { EScaleType, EToolsKey } from "../enum";
3
3
  import { IWorkerMessage, IMainMessage, IRectType } from "../types";
4
- import type { ServiceWorkForFullWorker } from "../worker/fullWorkerService";
4
+ import type { ServiceThreadSubWork } from "./utils";
5
5
  export interface EraserOptions extends BaseShapeOptions {
6
6
  thickness: number;
7
7
  isLine: boolean;
@@ -10,7 +10,7 @@ export declare class EraserShape extends BaseShapeTool {
10
10
  readonly canRotate: boolean;
11
11
  readonly scaleType: EScaleType;
12
12
  readonly toolsType: EToolsKey;
13
- readonly serviceWork?: ServiceWorkForFullWorker;
13
+ readonly serviceWork?: ServiceThreadSubWork;
14
14
  private static readonly eraserSizes;
15
15
  protected tmpPoints: Array<number>;
16
16
  protected workOptions: EraserOptions;
@@ -18,7 +18,7 @@ export declare class EraserShape extends BaseShapeTool {
18
18
  worldScaling: [number, number];
19
19
  eraserRect: IRectType | undefined;
20
20
  eraserPolyline?: [number, number, number, number];
21
- constructor(props: BaseShapeToolProps, serviceWork?: ServiceWorkForFullWorker);
21
+ constructor(props: BaseShapeToolProps, serviceWork?: ServiceThreadSubWork);
22
22
  combineConsume(): undefined;
23
23
  consumeService(): IRectType | undefined;
24
24
  setWorkOptions(setWorkOptions: EraserOptions): void;
@@ -41,6 +41,7 @@ export declare class ImageShape extends BaseShapeTool {
41
41
  isFullWork: boolean;
42
42
  scene: Scene;
43
43
  replaceId?: string;
44
+ isMainThread?: boolean;
44
45
  }): Promise<IRectType | undefined>;
45
46
  clearTmpPoints(): void;
46
47
  static updateNodeOpt(param: {
@@ -31,6 +31,7 @@ export declare class PencilShape extends BaseShapeTool {
31
31
  isFullWork?: boolean;
32
32
  isClearAll?: boolean;
33
33
  isSubWorker?: boolean;
34
+ isMainThread?: boolean;
34
35
  }): IMainMessage;
35
36
  consumeAll(props: {
36
37
  data?: IWorkerMessage;
@@ -21,9 +21,10 @@ export declare class PolygonShape extends BaseShapeTool {
21
21
  constructor(props: BaseShapeToolProps);
22
22
  consume(props: {
23
23
  data: IWorkerMessage;
24
- isFullWork?: boolean | undefined;
25
- isClearAll?: boolean | undefined;
26
- isSubWorker?: boolean | undefined;
24
+ isFullWork?: boolean;
25
+ isClearAll?: boolean;
26
+ isSubWorker?: boolean;
27
+ isMainThread?: boolean;
27
28
  }): IMainMessage;
28
29
  consumeAll(props: {
29
30
  data?: IWorkerMessage | undefined;
@@ -22,9 +22,10 @@ export declare class RectangleShape extends BaseShapeTool {
22
22
  private computDrawPoints;
23
23
  consume(props: {
24
24
  data: IWorkerMessage;
25
- isFullWork?: boolean | undefined;
26
- isClearAll?: boolean | undefined;
27
- isSubWorker?: boolean | undefined;
25
+ isFullWork?: boolean;
26
+ isClearAll?: boolean;
27
+ isSubWorker?: boolean;
28
+ isMainThread?: boolean;
28
29
  }): IMainMessage;
29
30
  consumeAll(props: {
30
31
  data?: IWorkerMessage | undefined;
@@ -3,10 +3,11 @@ import { BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
3
3
  import { EDataType, EPostMessageType, EScaleType, EToolsKey } from "../enum";
4
4
  import { IWorkerMessage, IMainMessage, IRectType, IUpdateNodeOpt, IServiceWorkItem } from "../types";
5
5
  import { Point2d } from "../utils/primitives/Point2d";
6
- import { VNodeManager } from "../worker/vNodeManager";
6
+ import type { VNodeManager } from "../worker/vNodeManager";
7
7
  import { TextOptions } from "../../component/textEditor/types";
8
8
  import { LocalWorkForFullWorker } from "../worker/fullWorkerLocal";
9
9
  import { ShapeOptType } from "../../displayer/types";
10
+ import type { SubLocalThread } from "../mainThread/subLocalThread";
10
11
  export interface SelectorOptions extends BaseShapeOptions {
11
12
  }
12
13
  export declare class SelectorShape extends BaseShapeTool {
@@ -15,6 +16,7 @@ export declare class SelectorShape extends BaseShapeTool {
15
16
  static selectorBorderId: string;
16
17
  protected tmpPoints: Array<Point2d>;
17
18
  protected workOptions: BaseShapeOptions;
19
+ vNodes: VNodeManager;
18
20
  selectIds?: string[];
19
21
  selectorColor?: string;
20
22
  strokeColor?: string;
@@ -28,7 +30,7 @@ export declare class SelectorShape extends BaseShapeTool {
28
30
  shapeOpt?: ShapeOptType;
29
31
  textOpt?: TextOptions;
30
32
  isLocked?: boolean;
31
- constructor(props: BaseShapeToolProps);
33
+ constructor(props: Required<BaseShapeToolProps>);
32
34
  private computSelector;
33
35
  private updateTempPoints;
34
36
  private drawSelector;
@@ -38,15 +40,14 @@ export declare class SelectorShape extends BaseShapeTool {
38
40
  consume(props: {
39
41
  data: IWorkerMessage;
40
42
  }): IMainMessage;
41
- consumeAll(props?: {
42
- hoverId?: string;
43
- }): IMainMessage;
43
+ consumeAll(): IMainMessage;
44
44
  consumeService(): undefined;
45
45
  clearTmpPoints(): void;
46
46
  clearSelectData(): void;
47
47
  private selectSingleTool;
48
- private backToFullLayer;
49
- private sealToDrawLayer;
48
+ private unSelectedAllIds;
49
+ private unSelectedByIds;
50
+ private selectedByIds;
50
51
  private getSelectorRect;
51
52
  isCanFillColor(toolsType?: EToolsKey): boolean;
52
53
  updateSelector(param: {
@@ -54,9 +55,10 @@ export declare class SelectorShape extends BaseShapeTool {
54
55
  vNodes: VNodeManager;
55
56
  selectIds?: string[];
56
57
  willSerializeData?: boolean;
57
- worker?: LocalWorkForFullWorker;
58
+ worker?: LocalWorkForFullWorker | SubLocalThread;
58
59
  offset?: [number, number];
59
60
  scene?: Scene;
61
+ isMainThread?: boolean;
60
62
  }): Promise<IMainMessage | undefined>;
61
63
  blurSelector(): {
62
64
  type: EPostMessageType;
@@ -65,7 +67,7 @@ export declare class SelectorShape extends BaseShapeTool {
65
67
  selectIds: never[];
66
68
  willSyncService: boolean;
67
69
  };
68
- private getRightServiceId;
70
+ getRightServiceId(serviceWorkId: string): string;
69
71
  selectServiceNode(workId: string, workItem: Pick<IServiceWorkItem, 'selectIds'>, isService: boolean): IRectType | undefined;
70
72
  reRenderSelector(): IRectType | undefined;
71
73
  updateSelectIds(nextSelectIds: string[]): {
@@ -23,9 +23,10 @@ export declare class SpeechBalloonShape extends BaseShapeTool {
23
23
  constructor(props: BaseShapeToolProps);
24
24
  consume(props: {
25
25
  data: IWorkerMessage;
26
- isFullWork?: boolean | undefined;
27
- isClearAll?: boolean | undefined;
28
- isSubWorker?: boolean | undefined;
26
+ isFullWork?: boolean;
27
+ isClearAll?: boolean;
28
+ isSubWorker?: boolean;
29
+ isMainThread?: boolean;
29
30
  }): IMainMessage;
30
31
  consumeAll(props: {
31
32
  data?: IWorkerMessage | undefined;
@@ -23,9 +23,10 @@ export declare class StarShape extends BaseShapeTool {
23
23
  constructor(props: BaseShapeToolProps);
24
24
  consume(props: {
25
25
  data: IWorkerMessage;
26
- isFullWork?: boolean | undefined;
27
- isClearAll?: boolean | undefined;
28
- isSubWorker?: boolean | undefined;
26
+ isFullWork?: boolean;
27
+ isClearAll?: boolean;
28
+ isSubWorker?: boolean;
29
+ isMainThread?: boolean;
29
30
  }): IMainMessage;
30
31
  consumeAll(props: {
31
32
  data?: IWorkerMessage | undefined;
@@ -20,9 +20,10 @@ export declare class StraightShape extends BaseShapeTool {
20
20
  constructor(props: BaseShapeToolProps);
21
21
  consume(props: {
22
22
  data: IWorkerMessage;
23
- isFullWork?: boolean | undefined;
24
- isClearAll?: boolean | undefined;
25
- isSubWorker?: boolean | undefined;
23
+ isFullWork?: boolean;
24
+ isClearAll?: boolean;
25
+ isSubWorker?: boolean;
26
+ isMainThread?: boolean;
26
27
  }): IMainMessage;
27
28
  consumeAll(props: {
28
29
  data?: IWorkerMessage | undefined;
@@ -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[];
@@ -179,6 +179,7 @@ export interface IMainMessage extends INormalPushMsg {
179
179
  isLocked?: boolean;
180
180
  shapeOpt?: ShapeOptType;
181
181
  toolsTypes?: EToolsKey[];
182
+ waitWorker?: boolean;
182
183
  }
183
184
  export interface IMainMessageRenderData {
184
185
  viewId: string;
@@ -191,7 +192,6 @@ export interface IMainMessageRenderData {
191
192
  clearCanvas?: ECanvasShowType;
192
193
  /** 是否需要销毁imageBitmap */
193
194
  isUnClose?: boolean;
194
- isFullWork?: boolean;
195
195
  workerType?: EDataType.Local | EDataType.Service;
196
196
  offset?: {
197
197
  x: number;
@@ -263,6 +263,16 @@ export type IServiceWorkItem = {
263
263
  totalRect?: IRectType;
264
264
  isDiff?: boolean;
265
265
  };
266
+ export type ILocalWorkItem = {
267
+ toolsType: EToolsKey;
268
+ node: BaseShapeTool;
269
+ data?: IWorkerMessage;
270
+ result?: IMainMessage;
271
+ totalRect?: IRectType;
272
+ workState: EvevtWorkState;
273
+ isDel?: boolean;
274
+ willRefresh?: boolean;
275
+ };
266
276
  export type BaseNodeMapItem = {
267
277
  name: string;
268
278
  rect: IRectType;
@@ -272,6 +282,8 @@ export type BaseNodeMapItem = {
272
282
  toolsType: EToolsKey;
273
283
  canRotate: boolean;
274
284
  scaleType: EScaleType;
285
+ /** 是否被框选中,框选中的元素不能被其它人操作 */
286
+ isSelected: 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;
@@ -1,7 +1,7 @@
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, IworkId } from "../types";
3
3
  import { VNodeManager } from "./vNodeManager";
4
- import { EDataType, EToolsKey } from "../enum";
4
+ import { ECanvasShowType, EDataType } from "../enum";
5
5
  import { ShapeStateInfo } from "../tools/utils";
6
6
  import { BaseShapeOptions, BaseShapeTool } from "../tools/base";
7
7
  import { ServiceWorkForFullWorker } from "./fullWorkerService";
@@ -18,26 +18,26 @@ export interface ISubWorkerInitOption {
18
18
  viewId: string;
19
19
  vNodes: VNodeManager;
20
20
  fullLayer: Group;
21
+ topLayer?: Group;
21
22
  drawLayer?: Group;
22
- post: (msg: IBatchMainMessage) => Promise<void>;
23
23
  }
24
24
  export declare abstract class WorkThreadEngineBase {
25
25
  readonly viewId: string;
26
26
  readonly fullLayer: Group;
27
27
  readonly vNodes: VNodeManager;
28
28
  readonly dpr: number;
29
- readonly abstract drawLayer?: Group;
30
- readonly abstract snapshotFullLayer?: Group;
31
29
  protected opt: IWorkerInitOption;
32
30
  protected cameraOpt?: ICameraOpt;
33
31
  protected scene: Scene;
34
32
  abstract localWork: LocalWorkForFullWorker | LocalWorkForSubWorker;
35
33
  abstract serviceWork?: ServiceWorkForFullWorker;
36
34
  protected isSafari: boolean;
37
- protected abstract _post: (msg: IBatchMainMessage, transfer?: Transferable[]) => void;
35
+ protected abstract _post: (msg: IBatchMainMessage) => void;
36
+ combinePostMsg: Set<IBatchMainMessage>;
37
+ protected workerTaskId?: number | undefined;
38
38
  constructor(viewId: string, opt: IWorkerInitOption);
39
39
  setIsSafari(isSafari: boolean): void;
40
- on(msg: IWorkerMessage): void;
40
+ on(msg: IWorkerMessage, workerTasksqueueCount?: number): Promise<void>;
41
41
  protected updateScene(offscreenCanvasOpt: IOffscreenCanvasOptionType): void;
42
42
  protected updateLayer(layerOpt: ILayerOptionType): void;
43
43
  protected createScene(opt: IOffscreenCanvasOptionType): Scene;
@@ -46,9 +46,14 @@ export declare abstract class WorkThreadEngineBase {
46
46
  protected setToolsOpt(opt: IActiveToolsDataType): void;
47
47
  protected setWorkOpt(opt: Partial<IActiveWorkDataType>): void;
48
48
  protected destroy(): void;
49
+ post(msg: IBatchMainMessage): void;
50
+ private runBatchPostData;
51
+ protected combinePostData(): IBatchMainMessage;
52
+ protected safariFixRect(rect: IRectType): IRectType | undefined;
53
+ protected getSceneRect(): IRectType;
54
+ abstract combinePost(): Promise<void>;
55
+ protected abstract getLayer(workLayer: ECanvasShowType): Group | undefined;
49
56
  abstract setCameraOpt(cameraOpt: ICameraOpt): void;
50
- abstract getOffscreen(isFullWork: boolean): OffscreenCanvas;
51
- abstract post(msg: IBatchMainMessage): Promise<void>;
52
57
  abstract consumeDraw(type: EDataType, data: IWorkerMessage): void;
53
58
  abstract consumeDrawAll(type: EDataType, data: IWorkerMessage): void;
54
59
  }
@@ -58,7 +63,7 @@ export declare abstract class LocalWork {
58
63
  readonly thread: WorkThreadEngineForFullWorker | WorkThreadEngineForSubWorker;
59
64
  fullLayer: Group;
60
65
  drawLayer?: Group;
61
- readonly _post: (msg: IBatchMainMessage) => Promise<void>;
66
+ readonly _post: (msg: IBatchMainMessage) => void;
62
67
  protected tmpWorkShapeNode?: BaseShapeTool;
63
68
  protected tmpOpt?: IActiveToolsDataType;
64
69
  workShapes: Map<IworkId, BaseShapeTool>;
@@ -70,34 +75,12 @@ export declare abstract class LocalWork {
70
75
  getWorkShape(workId: IworkId): BaseShapeTool | undefined;
71
76
  getTmpWorkShapeNode(): BaseShapeTool | undefined;
72
77
  setTmpWorkId(workId: IworkId | undefined): void;
73
- setTmpWorkOptions(opt: BaseShapeOptions): void;
74
78
  setWorkOptions(workId: IworkId, opt: BaseShapeOptions): void;
75
79
  createWorkShapeNode(opt: IActiveToolsDataType & {
76
80
  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;
81
+ }): 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
82
  setToolsOpt(opt: IActiveToolsDataType): void;
79
83
  clearWorkShapeNodeCache(workId: IworkId): void;
80
84
  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;
85
+ setFullWork(data: Pick<IWorkerMessage, 'workId' | 'opt' | 'toolsType'>): BaseShapeTool | import("../tools/text").TextShape | import("../tools").LaserPenShape | undefined;
103
86
  }
@@ -13,7 +13,7 @@ export declare class LocalWorkForFullWorker extends LocalWork {
13
13
  consumeDraw(data: IWorkerMessage, serviceWork: ServiceWorkForFullWorker): IMainMessage | undefined;
14
14
  consumeDrawAll(data: IWorkerMessage, serviceWork: ServiceWorkForFullWorker): IMainMessage | undefined;
15
15
  consumeFull(data: IWorkerMessage, scene?: Scene): Promise<void>;
16
- removeWork(data: IWorkerMessage): Promise<void>;
16
+ removeWork(data: IWorkerMessage): void;
17
17
  removeNode(key: string): IRectType | undefined;
18
18
  checkTextActive(data: IWorkerMessage): Promise<void>;
19
19
  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,13 @@ 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
8
  runFullWork(data: IWorkerMessage, isDrawLabel?: boolean): Promise<IRectType | undefined>;
13
9
  runSelectWork(data: IWorkerMessage): undefined;
14
10
  consumeDraw(data: IWorkerMessage): IMainMessage | undefined;
15
11
  consumeDrawAll(data: IWorkerMessage): undefined;
16
12
  updateLabels(labelGroup: Group, value: BaseCollectorReducerAction): void;
17
- private runLaserPenAnimation;
18
13
  private drawPencil;
19
14
  private drawArrow;
20
15
  }
@@ -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, IworkId } 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<IworkId, ILocalWorkItem>;
22
+ protected tmpOpt?: IActiveToolsDataType;
23
+ protected tmpWorkShapeNode?: BaseShapeTool;
24
+ protected animationId?: number | undefined;
25
+ constructor(opt: ISubWorkerInitOption);
26
+ getWorkShape(workId: IworkId): ILocalWorkItem | undefined;
27
+ getTmpWorkShapeNode(): BaseShapeTool | undefined;
28
+ setTmpWorkId(workId: IworkId | undefined): void;
29
+ setWorkOptions(workId: IworkId, opt: BaseShapeOptions): void;
30
+ createWorkShapeNode(opt: IActiveToolsDataType & {
31
+ workId?: IworkId;
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;