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

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 (98) hide show
  1. package/README.md +54 -15
  2. package/cdn/cdn.js +1 -0
  3. package/cdn/fullWorker-DkNRgu.js +468 -0
  4. package/cdn/subWorker-BvxT1L.js +468 -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 +8 -9
  13. package/dist/core/mainEngine.d.ts +37 -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 +102 -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 +32 -0
  21. package/dist/core/msgEvent/baseForMainThread.d.ts +13 -0
  22. package/dist/core/msgEvent/copyNode/forMain.d.ts +2 -0
  23. package/dist/core/msgEvent/copyNode/forMainThread.d.ts +8 -0
  24. package/dist/core/msgEvent/deleteNode/forMainThread.d.ts +13 -0
  25. package/dist/core/msgEvent/forMainThread.d.ts +14 -0
  26. package/dist/core/msgEvent/rotateNode/forMain.d.ts +0 -1
  27. package/dist/core/msgEvent/rotateNode/forMainThread.d.ts +9 -0
  28. package/dist/core/msgEvent/scaleNode/forMain.d.ts +2 -1
  29. package/dist/core/msgEvent/scaleNode/forMainThread.d.ts +9 -0
  30. package/dist/core/msgEvent/setColor/forMain.d.ts +2 -1
  31. package/dist/core/msgEvent/setColor/forMainThread.d.ts +9 -0
  32. package/dist/core/msgEvent/setFont/forMainThread.d.ts +9 -0
  33. package/dist/core/msgEvent/setLock/forMainThread.d.ts +9 -0
  34. package/dist/core/msgEvent/setPoint/forMainThread.d.ts +9 -0
  35. package/dist/core/msgEvent/setShape/forMainThread.d.ts +9 -0
  36. package/dist/core/msgEvent/setZIndex/forMainThread.d.ts +9 -0
  37. package/dist/core/msgEvent/translateNode/forMain.d.ts +0 -1
  38. package/dist/core/msgEvent/translateNode/forMainThread.d.ts +9 -0
  39. package/dist/core/tools/arrow.d.ts +3 -3
  40. package/dist/core/tools/base.d.ts +5 -5
  41. package/dist/core/tools/ellipse.d.ts +3 -3
  42. package/dist/core/tools/eraser.d.ts +3 -3
  43. package/dist/core/tools/image.d.ts +2 -0
  44. package/dist/core/tools/pencil.d.ts +3 -2
  45. package/dist/core/tools/polygon.d.ts +4 -3
  46. package/dist/core/tools/rectangle.d.ts +4 -3
  47. package/dist/core/tools/selector.d.ts +11 -9
  48. package/dist/core/tools/speechBalloon.d.ts +4 -3
  49. package/dist/core/tools/star.d.ts +3 -3
  50. package/dist/core/tools/straight.d.ts +4 -3
  51. package/dist/core/tools/text.d.ts +7 -4
  52. package/dist/core/tools/utils.d.ts +7 -3
  53. package/dist/core/types.d.ts +16 -4
  54. package/dist/core/utils/index.d.ts +1 -1
  55. package/dist/core/utils/math.d.ts +3 -0
  56. package/dist/core/utils/spriteNode.d.ts +2 -2
  57. package/dist/core/worker/base.d.ts +17 -34
  58. package/dist/core/worker/fullWorkerLocal.d.ts +1 -1
  59. package/dist/core/worker/fullWorkerService.d.ts +23 -7
  60. package/dist/core/worker/subWorkerLocal.d.ts +1 -6
  61. package/dist/core/worker/subWorkerTopLayer.d.ts +43 -0
  62. package/dist/core/worker/vNodeManager.d.ts +3 -2
  63. package/dist/core/worker/workerManager.d.ts +16 -16
  64. package/dist/displayer/floatBar/dragBox/index.d.ts +4 -0
  65. package/dist/displayer/floatBar/index.d.ts +1 -5
  66. package/dist/fullWorker.js +468 -0
  67. package/dist/index-B3tcgIQd.js +1 -0
  68. package/dist/index-BFpq0pIU.mjs +8844 -0
  69. package/dist/index-CP5_CnSG.mjs +5419 -0
  70. package/dist/index-ChX1QimR.js +1 -0
  71. package/dist/index.d.ts +1 -0
  72. package/dist/plugin/applianceMultiPlugin.d.ts +1 -1
  73. package/dist/plugin/applianceSinglePlugin.d.ts +1 -1
  74. package/dist/plugin/baseApplianceManager.d.ts +5 -5
  75. package/dist/plugin/baseViewContainerManager.d.ts +6 -4
  76. package/dist/plugin/const.d.ts +13 -0
  77. package/dist/plugin/displayerView.d.ts +4 -11
  78. package/dist/plugin/index.d.ts +2 -3
  79. package/dist/plugin/multi/applianceMultiManager.d.ts +1 -1
  80. package/dist/plugin/multi/containerManager.d.ts +3 -1
  81. package/dist/plugin/multi/displayer/appViewDisplayerManager.d.ts +2 -1
  82. package/dist/plugin/multi/displayer/mainViewDisplayerManager.d.ts +3 -1
  83. package/dist/plugin/single/applianceSingleManager.d.ts +1 -1
  84. package/dist/plugin/single/containerManager.d.ts +1 -1
  85. package/dist/plugin/single/displayer/mainViewDisplayerManager.d.ts +3 -1
  86. package/dist/plugin/types.d.ts +9 -3
  87. package/dist/style.css +1 -1
  88. package/dist/subWorker.js +468 -0
  89. package/dist/undo/index.d.ts +1 -2
  90. package/package.json +15 -17
  91. package/cdn/appliance-plugin.js +0 -1
  92. package/cdn/appliance-plugin.mjs +0 -8639
  93. package/cdn/style.css +0 -1
  94. package/dist/core/msgEvent/activeZIndex/forMain.d.ts +0 -12
  95. package/dist/core/msgEvent/activeZIndex/forWorker.d.ts +0 -8
  96. /package/dist/displayer/{highlightBox → floatBar/highlightBox}/index.d.ts +0 -0
  97. /package/dist/displayer/{resizable → floatBar/resizable}/index.d.ts +0 -0
  98. /package/dist/displayer/{rotate → floatBar/rotate}/index.d.ts +0 -0
@@ -24,6 +24,7 @@ export declare class CopyNodeMethod extends BaseMsgMethod {
24
24
  store: BaseCollectorReducerAction;
25
25
  bgCenter?: [number, number];
26
26
  textCenter?: [number, number];
27
+ undoTickerId?: number;
27
28
  }): void;
28
29
  copySelector(param: {
29
30
  viewId: string;
@@ -43,5 +44,6 @@ export declare class CopyNodeMethod extends BaseMsgMethod {
43
44
  offset: Point;
44
45
  cameraOpt: Pick<ICameraOpt, 'centerX' | 'centerY' | 'scale'>;
45
46
  };
47
+ undoTickerId?: number;
46
48
  }): void;
47
49
  }
@@ -0,0 +1,8 @@
1
+ import { EmitEventType } from "../../../plugin/types";
2
+ import { IWorkerMessage } from "../../types";
3
+ import { BaseMsgMethodForMainThread } from "../baseForMainThread";
4
+ export declare class CopyNodeMethodForMainThread extends BaseMsgMethodForMainThread {
5
+ readonly emitEventType: EmitEventType;
6
+ consume(data: IWorkerMessage): Promise<boolean | undefined>;
7
+ consumeForLocalWorker(data: IWorkerMessage): Promise<void>;
8
+ }
@@ -0,0 +1,13 @@
1
+ import { EmitEventType } from "../../../plugin/types";
2
+ import { BaseMsgMethodForMainThread } from "../baseForMainThread";
3
+ import { IWorkerMessage, IworkId } from "../../types";
4
+ export type DeleteNodeEmtData = {
5
+ workIds: IworkId[];
6
+ };
7
+ export declare class DeleteNodeMethodForMainThread extends BaseMsgMethodForMainThread {
8
+ readonly emitEventType: EmitEventType;
9
+ consume(data: IWorkerMessage): Promise<boolean | undefined>;
10
+ consumeForLocalWorker(data: IWorkerMessage): void;
11
+ consumeForServiceWorker(data: IWorkerMessage): void;
12
+ private commandDeleteText;
13
+ }
@@ -0,0 +1,14 @@
1
+ import { EmitEventType } from '../../plugin/types';
2
+ import { BaseMsgMethodForMainThread } from './baseForMainThread';
3
+ import { IWorkerMessage } from '../types';
4
+ import type { Scene } from 'spritejs';
5
+ import type { SubLocalThread } from '../mainThread/subLocalThread';
6
+ import type { SubServiceThread } from '../mainThread/subServiceThread';
7
+ export type MsgMethodForMainThread<T extends BaseMsgMethodForMainThread> = T;
8
+ export declare class MethodBuilderWorker {
9
+ builders: Map<EmitEventType, MsgMethodForMainThread<BaseMsgMethodForMainThread> | undefined>;
10
+ constructor(emitTypes: EmitEventType[]);
11
+ build(type: EmitEventType): MsgMethodForMainThread<BaseMsgMethodForMainThread> | undefined;
12
+ registerForMainThread(localWork: SubLocalThread, serviceWork?: SubServiceThread, scene?: Scene): this;
13
+ consumeForMainThread(data: IWorkerMessage): Promise<boolean>;
14
+ }
@@ -10,7 +10,6 @@ export type RotateNodeEmtData = {
10
10
  };
11
11
  export declare class RotateNodeMethod extends BaseMsgMethod {
12
12
  readonly emitEventType: EmitEventType;
13
- private undoTickerId?;
14
13
  private cacheOriginRotate;
15
14
  collect(data: RotateNodeEmtData): void;
16
15
  }
@@ -0,0 +1,9 @@
1
+ import { EmitEventType } from "../../../plugin/types";
2
+ import { BaseMsgMethodForMainThread } from "../baseForMainThread";
3
+ import { IWorkerMessage } from "../../types";
4
+ export declare class RotateNodeMethodForMainThread extends BaseMsgMethodForMainThread {
5
+ readonly emitEventType: EmitEventType;
6
+ consume(data: IWorkerMessage): Promise<boolean | undefined>;
7
+ consumeForLocalWorker(data: IWorkerMessage): Promise<void>;
8
+ private updateSelectorCallback;
9
+ }
@@ -9,10 +9,11 @@ export type ScaleNodeEmtData = {
9
9
  box: IRectType;
10
10
  viewId: string;
11
11
  dir?: Direction;
12
+ reverseY?: boolean;
13
+ reverseX?: boolean;
12
14
  };
13
15
  export declare class ScaleNodeMethod extends BaseMsgMethod {
14
16
  readonly emitEventType: EmitEventType;
15
- private undoTickerId?;
16
17
  private targetBox;
17
18
  private targetText;
18
19
  private cacheTextInfo;
@@ -0,0 +1,9 @@
1
+ import { EmitEventType } from "../../../plugin/types";
2
+ import { BaseMsgMethodForMainThread } from "../baseForMainThread";
3
+ import { IWorkerMessage } from "../../types";
4
+ export declare class ScaleNodeMethodForMainThread extends BaseMsgMethodForMainThread {
5
+ readonly emitEventType: EmitEventType;
6
+ consume(data: IWorkerMessage): Promise<boolean | undefined>;
7
+ consumeForLocalWorker(data: IWorkerMessage): Promise<void>;
8
+ private updateSelectorCallback;
9
+ }
@@ -8,11 +8,12 @@ export type SetColorNodeEmtData = {
8
8
  fillColor?: string;
9
9
  fontColor?: string;
10
10
  fontBgColor?: string;
11
- workState?: EvevtWorkState;
11
+ workState: EvevtWorkState;
12
12
  viewId: string;
13
13
  };
14
14
  export declare class SetColorNodeMethod extends BaseMsgMethod {
15
15
  readonly emitEventType: EmitEventType;
16
+ private undoTickerId?;
16
17
  private setTextColor;
17
18
  collect(data: SetColorNodeEmtData): void;
18
19
  }
@@ -0,0 +1,9 @@
1
+ import { EmitEventType } from "../../../plugin/types";
2
+ import { BaseMsgMethodForMainThread } from "../baseForMainThread";
3
+ import { IWorkerMessage } from "../../types";
4
+ export declare class SetColorNodeMethodForMainThread extends BaseMsgMethodForMainThread {
5
+ readonly emitEventType: EmitEventType;
6
+ consume(data: IWorkerMessage): Promise<boolean | undefined>;
7
+ consumeForLocalWorker(data: IWorkerMessage): Promise<void>;
8
+ private updateSelectorCallback;
9
+ }
@@ -0,0 +1,9 @@
1
+ import { EmitEventType } from "../../../plugin/types";
2
+ import { BaseMsgMethodForMainThread } from "../baseForMainThread";
3
+ import { IWorkerMessage } from "../../types";
4
+ export declare class SetFontStyleMethodForMainThread extends BaseMsgMethodForMainThread {
5
+ readonly emitEventType: EmitEventType;
6
+ consume(data: IWorkerMessage): Promise<boolean | undefined>;
7
+ consumeForLocalWorker(data: IWorkerMessage): Promise<void>;
8
+ private updateSelectorCallback;
9
+ }
@@ -0,0 +1,9 @@
1
+ import { EmitEventType } from "../../../plugin/types";
2
+ import { BaseMsgMethodForMainThread } from "../baseForMainThread";
3
+ import { IWorkerMessage } from "../../types";
4
+ export declare class SetLockMethodForMainThread extends BaseMsgMethodForMainThread {
5
+ readonly emitEventType: EmitEventType;
6
+ consume(data: IWorkerMessage): Promise<boolean | undefined>;
7
+ consumeForLocalWorker(data: IWorkerMessage): Promise<void>;
8
+ private updateSelectorCallback;
9
+ }
@@ -0,0 +1,9 @@
1
+ import { EmitEventType } from "../../../plugin/types";
2
+ import { BaseMsgMethodForMainThread } from "../baseForMainThread";
3
+ import { IWorkerMessage } from "../../types";
4
+ export declare class SetPointMethodForMainThread extends BaseMsgMethodForMainThread {
5
+ readonly emitEventType: EmitEventType;
6
+ consume(data: IWorkerMessage): Promise<boolean | undefined>;
7
+ consumeForLocalWorker(data: IWorkerMessage): Promise<void>;
8
+ private updateSelectorCallback;
9
+ }
@@ -0,0 +1,9 @@
1
+ import { EmitEventType } from "../../../plugin/types";
2
+ import { BaseMsgMethodForMainThread } from "../baseForMainThread";
3
+ import { IWorkerMessage } from "../../types";
4
+ export declare class SetShapeOptMethodForMainThread extends BaseMsgMethodForMainThread {
5
+ readonly emitEventType: EmitEventType;
6
+ consume(data: IWorkerMessage): Promise<boolean | undefined>;
7
+ consumeForLocalWorker(data: IWorkerMessage): Promise<void>;
8
+ private updateSelectorCallback;
9
+ }
@@ -0,0 +1,9 @@
1
+ import { EmitEventType } from "../../../plugin/types";
2
+ import { BaseMsgMethodForMainThread } from "../baseForMainThread";
3
+ import { IWorkerMessage } from "../../types";
4
+ export declare class ZIndexNodeMethodForMainThread extends BaseMsgMethodForMainThread {
5
+ readonly emitEventType: EmitEventType;
6
+ consume(data: IWorkerMessage): Promise<boolean | undefined>;
7
+ consumeForLocalWorker(data: IWorkerMessage): Promise<void>;
8
+ private updateSelectorCallback;
9
+ }
@@ -14,7 +14,6 @@ export type TranslateNodeEmtData = {
14
14
  export declare class TranslateNodeMethod extends BaseMsgMethod {
15
15
  readonly emitEventType: EmitEventType;
16
16
  private undoTickerId?;
17
- private oldRect;
18
17
  private cachePosition;
19
18
  collect(data: TranslateNodeEmtData): void;
20
19
  }
@@ -0,0 +1,9 @@
1
+ import { EmitEventType } from "../../../plugin/types";
2
+ import { BaseMsgMethodForMainThread } from "../baseForMainThread";
3
+ import { IWorkerMessage } from "../../types";
4
+ export declare class TranslateNodeMethodForMainThread extends BaseMsgMethodForMainThread {
5
+ readonly emitEventType: EmitEventType;
6
+ consume(data: IWorkerMessage): Promise<boolean | undefined>;
7
+ consumeForLocalWorker(data: IWorkerMessage): Promise<void>;
8
+ private updateSelectorCallback;
9
+ }
@@ -20,9 +20,9 @@ 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
+ isSubWorker?: boolean;
25
+ isMainThread?: boolean;
26
26
  }): IMainMessage;
27
27
  consumeAll(props: {
28
28
  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;
@@ -44,20 +44,19 @@ export declare abstract class BaseShapeTool {
44
44
  abstract consume(props: {
45
45
  data: IWorkerMessage;
46
46
  isFullWork?: boolean;
47
- isClearAll?: boolean;
48
47
  isSubWorker?: boolean;
48
+ drawCount?: number;
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: {
57
57
  op: number[];
58
58
  isFullWork: boolean;
59
59
  replaceId?: string;
60
- isClearAll?: boolean;
61
60
  }): IRectType | undefined;
62
61
  /** 清除临时数据 */
63
62
  abstract clearTmpPoints(): void;
@@ -70,6 +69,7 @@ export declare abstract class BaseShapeTool {
70
69
  setWorkOptions(workOptions: BaseShapeOptions): void;
71
70
  /** 更新服务端同步配置,返回绘制结果 */
72
71
  updataOptService(opt?: IUpdateNodeOpt): IRectType | undefined;
72
+ replace(layer: Group, replaceId: string, newNode: ShapeNodes): void;
73
73
  static updateNodeOpt(param: {
74
74
  node: ShapeNodes;
75
75
  opt: IUpdateNodeOpt;
@@ -20,9 +20,9 @@ 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
+ isSubWorker?: boolean;
25
+ isMainThread?: boolean;
26
26
  }): IMainMessage;
27
27
  consumeAll(props: {
28
28
  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,8 +41,10 @@ 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;
47
+ static getScaleType(opt: ImageOptions): EScaleType.all | EScaleType.proportional;
46
48
  static updateNodeOpt(param: {
47
49
  node: ShapeNodes;
48
50
  opt: IUpdateNodeOpt;
@@ -29,8 +29,10 @@ export declare class PencilShape extends BaseShapeTool {
29
29
  consume(props: {
30
30
  data: IWorkerMessage;
31
31
  isFullWork?: boolean;
32
- isClearAll?: boolean;
33
32
  isSubWorker?: boolean;
33
+ drawCount?: number;
34
+ isMainThread?: boolean;
35
+ replaceId?: string;
34
36
  }): IMainMessage;
35
37
  consumeAll(props: {
36
38
  data?: IWorkerMessage;
@@ -40,7 +42,6 @@ export declare class PencilShape extends BaseShapeTool {
40
42
  op: number[];
41
43
  isFullWork?: boolean;
42
44
  replaceId?: string;
43
- isClearAll?: boolean;
44
45
  }): IRectType | undefined;
45
46
  private transformDataAll;
46
47
  private draw;
@@ -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,9 @@ 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
+ isSubWorker?: boolean;
28
+ isMainThread?: boolean;
29
29
  }): IMainMessage;
30
30
  consumeAll(props: {
31
31
  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;
@@ -16,13 +16,16 @@ 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
+ updateLabelsWidth(node: Group): void;
27
+ updataOptService(): IRectType | undefined;
28
+ updataOptServiceAsync(updateNodeOpt: IUpdateNodeOpt): Promise<IRectType | undefined>;
26
29
  clearTmpPoints(): void;
27
30
  static getFontWidth(param: {
28
31
  text: string;
@@ -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[];
@@ -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;