@netless/appliance-plugin 1.0.0-beta.2 → 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 (83) hide show
  1. package/README.md +19 -2
  2. package/cdn/cdn.js +1 -1
  3. package/cdn/fullWorker-wE6a5h.js +566 -0
  4. package/cdn/subWorker-C2CJhY.js +566 -0
  5. package/dist/appliance-plugin.js +1 -1
  6. package/dist/appliance-plugin.mjs +22 -8620
  7. package/dist/component/textEditor/types.d.ts +1 -0
  8. package/dist/component/textEditor/view.d.ts +9 -7
  9. package/dist/core/enum.d.ts +7 -7
  10. package/dist/core/mainEngine.d.ts +8 -5
  11. package/dist/core/mainThread/base.d.ts +81 -0
  12. package/dist/core/mainThread/index.d.ts +23 -0
  13. package/dist/core/mainThread/snapshotThread.d.ts +40 -0
  14. package/dist/core/mainThread/subLocalThread.d.ts +101 -0
  15. package/dist/core/mainThread/subServiceThread.d.ts +42 -0
  16. package/dist/core/mainThread/subTopThread.d.ts +46 -0
  17. package/dist/core/mainThread/vNodeManager.d.ts +32 -0
  18. package/dist/core/msgEvent/baseForMainThread.d.ts +13 -0
  19. package/dist/core/msgEvent/copyNode/forMainThread.d.ts +8 -0
  20. package/dist/core/msgEvent/deleteNode/forMainThread.d.ts +13 -0
  21. package/dist/core/msgEvent/forMainThread.d.ts +14 -0
  22. package/dist/core/msgEvent/rotateNode/forMainThread.d.ts +9 -0
  23. package/dist/core/msgEvent/scaleNode/forMainThread.d.ts +9 -0
  24. package/dist/core/msgEvent/setColor/forMainThread.d.ts +9 -0
  25. package/dist/core/msgEvent/setFont/forMainThread.d.ts +9 -0
  26. package/dist/core/msgEvent/setLock/forMainThread.d.ts +9 -0
  27. package/dist/core/msgEvent/setPoint/forMainThread.d.ts +9 -0
  28. package/dist/core/msgEvent/setShape/forMainThread.d.ts +9 -0
  29. package/dist/core/msgEvent/setZIndex/forMainThread.d.ts +9 -0
  30. package/dist/core/msgEvent/translateNode/forMain.d.ts +0 -1
  31. package/dist/core/msgEvent/translateNode/forMainThread.d.ts +9 -0
  32. package/dist/core/tools/arrow.d.ts +4 -3
  33. package/dist/core/tools/base.d.ts +3 -3
  34. package/dist/core/tools/ellipse.d.ts +4 -3
  35. package/dist/core/tools/eraser.d.ts +3 -3
  36. package/dist/core/tools/image.d.ts +1 -0
  37. package/dist/core/tools/pencil.d.ts +1 -0
  38. package/dist/core/tools/polygon.d.ts +4 -3
  39. package/dist/core/tools/rectangle.d.ts +4 -3
  40. package/dist/core/tools/selector.d.ts +11 -9
  41. package/dist/core/tools/speechBalloon.d.ts +4 -3
  42. package/dist/core/tools/star.d.ts +4 -3
  43. package/dist/core/tools/straight.d.ts +4 -3
  44. package/dist/core/tools/utils.d.ts +7 -3
  45. package/dist/core/types.d.ts +13 -1
  46. package/dist/core/utils/index.d.ts +1 -1
  47. package/dist/core/worker/base.d.ts +17 -34
  48. package/dist/core/worker/fullWorkerLocal.d.ts +1 -1
  49. package/dist/core/worker/fullWorkerService.d.ts +23 -7
  50. package/dist/core/worker/subWorkerLocal.d.ts +0 -5
  51. package/dist/core/worker/subWorkerTopLayer.d.ts +43 -0
  52. package/dist/core/worker/vNodeManager.d.ts +3 -2
  53. package/dist/core/worker/workerManager.d.ts +16 -15
  54. package/dist/displayer/floatBar/dragBox/index.d.ts +4 -0
  55. package/dist/displayer/floatBar/index.d.ts +1 -5
  56. package/dist/fullWorker.js +10 -10
  57. package/dist/index-0-ebfVjb.mjs +8732 -0
  58. package/dist/index-CQlnAm5S.mjs +5405 -0
  59. package/dist/index-DMJjpzvq.js +1 -0
  60. package/dist/index-h_PU7sdS.js +1 -0
  61. package/dist/index.d.ts +1 -0
  62. package/dist/plugin/baseApplianceManager.d.ts +3 -3
  63. package/dist/plugin/baseViewContainerManager.d.ts +6 -3
  64. package/dist/plugin/const.d.ts +13 -0
  65. package/dist/plugin/displayerView.d.ts +4 -11
  66. package/dist/plugin/multi/applianceMultiManager.d.ts +1 -1
  67. package/dist/plugin/multi/containerManager.d.ts +1 -1
  68. package/dist/plugin/multi/displayer/appViewDisplayerManager.d.ts +2 -1
  69. package/dist/plugin/multi/displayer/mainViewDisplayerManager.d.ts +3 -1
  70. package/dist/plugin/single/applianceSingleManager.d.ts +1 -1
  71. package/dist/plugin/single/containerManager.d.ts +1 -1
  72. package/dist/plugin/single/displayer/mainViewDisplayerManager.d.ts +3 -1
  73. package/dist/plugin/types.d.ts +1 -2
  74. package/dist/style.css +1 -1
  75. package/dist/subWorker.js +10 -10
  76. package/package.json +3 -3
  77. package/cdn/fullWorker-O4uzWn.js +0 -566
  78. package/cdn/subWorker-CvBoLi.js +0 -566
  79. package/dist/core/msgEvent/activeZIndex/forMain.d.ts +0 -12
  80. package/dist/core/msgEvent/activeZIndex/forWorker.d.ts +0 -8
  81. /package/dist/displayer/{highlightBox → floatBar/highlightBox}/index.d.ts +0 -0
  82. /package/dist/displayer/{resizable → floatBar/resizable}/index.d.ts +0 -0
  83. /package/dist/displayer/{rotate → floatBar/rotate}/index.d.ts +0 -0
@@ -47,4 +47,5 @@ export type TextEditorInfo = {
47
47
  dataType?: EDataType;
48
48
  translate?: [number, number];
49
49
  justLocal?: boolean;
50
+ waitWorker?: boolean;
50
51
  };
@@ -1,18 +1,20 @@
1
1
  import React, { FocusEventHandler, KeyboardEventHandler } from "react";
2
2
  import { TextEditorInfo, TextOptions } from "./types";
3
- import { ApplianceViewManagerLike } from "../../plugin/types";
3
+ import { ApplianceViewManagerLike, EmitEventType } from "../../plugin/types";
4
4
  export interface TextSelectorManagerProps {
5
5
  selectIds: string[];
6
6
  className?: string;
7
7
  editors?: Map<string, TextEditorInfo>;
8
8
  activeTextId?: string;
9
- position?: {
9
+ box?: {
10
10
  x: number;
11
11
  y: number;
12
+ w: number;
13
+ h: number;
12
14
  };
13
- textRef?: React.RefObject<HTMLDivElement>;
14
15
  manager: ApplianceViewManagerLike;
15
16
  showFloatBtns?: boolean;
17
+ operationType?: EmitEventType;
16
18
  }
17
19
  export interface TextViewProps {
18
20
  workId: string;
@@ -22,10 +24,8 @@ export interface TextViewProps {
22
24
  manager: ApplianceViewManagerLike;
23
25
  }
24
26
  export interface TextSelectorViewProps extends TextViewProps {
25
- position?: {
26
- x: number;
27
- y: number;
28
- };
27
+ left: string;
28
+ top: string;
29
29
  selectIds?: string[];
30
30
  updateOptInfo: (param: {
31
31
  activeTextId: string;
@@ -37,6 +37,7 @@ export interface TextEditorProps extends TextViewProps {
37
37
  showFloatBtns: boolean;
38
38
  handleKeyUp: KeyboardEventHandler<HTMLDivElement>;
39
39
  handleFocus: FocusEventHandler<HTMLDivElement>;
40
+ handleBlur: FocusEventHandler<HTMLDivElement>;
40
41
  updateOptInfo: (param: {
41
42
  activeTextId: string;
42
43
  update: Partial<TextOptions>;
@@ -60,6 +61,7 @@ export declare class TextViewInSelector extends React.Component<TextSelectorMana
60
61
  render(): React.JSX.Element;
61
62
  }
62
63
  export declare class TextEditorContainer extends TextViewInSelector {
64
+ ref: React.RefObject<HTMLDivElement> | undefined;
63
65
  constructor(props: TextSelectorManagerProps);
64
66
  handleKeyUp(e: any): void;
65
67
  handleFocus(e: any): void;
@@ -103,15 +103,15 @@ export declare enum ECanvasContextType {
103
103
  Canvas2d = "2d"
104
104
  }
105
105
  export declare enum ECanvasShowType {
106
- /** 本地前置画布 */
107
- Float = 1,
106
+ None = 0,
108
107
  /** 背景画布 */
109
- Bg = 2,
110
- /** 选择框中的画布 */
111
- Selector = 3,
108
+ Bg = 1,
112
109
  /** 服务端前置画布 */
113
- ServiceFloat = 4,
114
- None = 5
110
+ ServiceFloat = 2,
111
+ /** 本地前置画布 */
112
+ Float = 3,
113
+ /** 绝对最顶层 */
114
+ TopFloat = 4
115
115
  }
116
116
  export declare enum EventMessageType {
117
117
  /** cursor事件 */
@@ -1,7 +1,7 @@
1
1
  import EventEmitter2 from "eventemitter2";
2
2
  import { BaseCollectorReducerAction, DiffOne } from "../collector";
3
3
  import { BaseApplianceManager } from "../plugin/baseApplianceManager";
4
- import { IActiveToolsDataType, IActiveWorkDataType, ICameraOpt, IRectType, IUpdateNodeOpt, IWorkerMessage, IqueryTask, IworkId, ViewWorkerOptions } from "./types";
4
+ import { IActiveToolsDataType, IActiveWorkDataType, ICameraOpt, IMainMessage, IRectType, IUpdateNodeOpt, IWorkerMessage, IqueryTask, IworkId, ViewWorkerOptions } from "./types";
5
5
  import { BaseSubWorkModuleProps } from "../plugin/types";
6
6
  import type { ImageInformation } from "../plugin/types";
7
7
  import { MethodBuilderMain } from "./msgEvent";
@@ -108,8 +108,9 @@ export declare class MasterControlForWorker extends MasterController {
108
108
  private clearAllResolve?;
109
109
  private delayWorkStateToDone?;
110
110
  private delayWorkStateToDoneResolve?;
111
- private undoTickerId?;
112
111
  private animationId;
112
+ private tmpImageConfigMap;
113
+ private mainThread?;
113
114
  constructor(props: BaseSubWorkModuleProps);
114
115
  private get viewContainerManager();
115
116
  private get collector();
@@ -118,9 +119,11 @@ export declare class MasterControlForWorker extends MasterController {
118
119
  private get isUseZIndex();
119
120
  private get isCanRecordUndoRedo();
120
121
  private get isCanSentCursor();
121
- init(): void;
122
- on(): void;
123
- private collectorSyncData;
122
+ init(): Promise<void>;
123
+ on(): Promise<void>;
124
+ setMaxDrawCount(num: number): void;
125
+ setWorkerTasksqueueCount(num: number): void;
126
+ collectorSyncData(sp: IMainMessage[]): void;
124
127
  private collectorAsyncData;
125
128
  private onLocalEventEnd;
126
129
  private onLocalEventDoing;
@@ -0,0 +1,81 @@
1
+ import { Group } from "spritejs";
2
+ import { IBatchMainMessage, ICameraOpt, ILayerOptionType, IMainMessage, IOffscreenCanvasOptionType, IWorkerMessage } from "../types";
3
+ import { VNodeManager } from "./vNodeManager";
4
+ import type { MasterControlForWorker } from '../mainEngine';
5
+ import type { AppViewDisplayerManager, MainViewDisplayerManager } from "../../plugin/baseViewContainerManager";
6
+ import { EDataType } from "../enum";
7
+ import { SubTopThread } from "./subTopThread";
8
+ import { SubLocalThread } from "./subLocalThread";
9
+ import { SubServiceThread } from "./subServiceThread";
10
+ export type ICanvasOptionType = IOffscreenCanvasOptionType;
11
+ export interface IMainThreadInitOption {
12
+ container: HTMLDivElement;
13
+ canvasOpt: ICanvasOptionType;
14
+ layerOpt: ILayerOptionType;
15
+ master: MasterControlForWorker;
16
+ displayer: MainViewDisplayerManager | AppViewDisplayerManager;
17
+ post(sp: Omit<IBatchMainMessage, 'render'>): void;
18
+ }
19
+ export interface ISubThreadInitOption {
20
+ thread: MainThreadEngineImpl;
21
+ vNodes: VNodeManager;
22
+ }
23
+ export interface ISubWorkerInitOption {
24
+ thread: MainThreadEngine;
25
+ viewId: string;
26
+ vNodes: VNodeManager;
27
+ topLayer: Group;
28
+ localLayer: Group;
29
+ serviceLayer: Group;
30
+ fullLayer: Group;
31
+ }
32
+ export interface MainThreadEngine {
33
+ readonly viewId: string;
34
+ readonly fullLayer: Group;
35
+ readonly topLayer: Group;
36
+ readonly localLayer: Group;
37
+ readonly serviceLayer: Group;
38
+ readonly vNodes: VNodeManager;
39
+ readonly master: MasterControlForWorker;
40
+ setCameraOpt(cameraOpt: ICameraOpt): void;
41
+ on(msg: IWorkerMessage, workerTasksqueueCount?: number): Promise<void>;
42
+ post(sp: IMainMessage): void;
43
+ destroy(): void;
44
+ }
45
+ export declare class MainThreadEngineImpl implements MainThreadEngine {
46
+ viewId: string;
47
+ fullLayer: Group;
48
+ topLayer: Group;
49
+ localLayer: Group;
50
+ serviceLayer: Group;
51
+ snapshotFullLayer?: Group;
52
+ vNodes: VNodeManager;
53
+ master: MasterControlForWorker;
54
+ private opt;
55
+ private cameraOpt?;
56
+ private scene;
57
+ localWork: SubLocalThread;
58
+ serviceWork: SubServiceThread;
59
+ topWork: SubTopThread;
60
+ private mainThreadPostId?;
61
+ private combinePostMsg;
62
+ private methodBuilder;
63
+ constructor(viewId: string, opt: IMainThreadInitOption);
64
+ post(msg: Omit<IBatchMainMessage, 'render'>): void;
65
+ on(msg: IWorkerMessage, workerTasksqueueCount?: number | undefined): Promise<void>;
66
+ private removeNode;
67
+ consumeFull(type: EDataType, data: IWorkerMessage): Promise<void>;
68
+ setCameraOpt(cameraOpt: ICameraOpt): void;
69
+ private runBatchPostData;
70
+ private combinePostData;
71
+ combinePost(): void;
72
+ clearAll(): void;
73
+ private consumeDrawAll;
74
+ private consumeDraw;
75
+ private updateCamera;
76
+ private createScene;
77
+ private createLayer;
78
+ private updateScene;
79
+ private updateLayer;
80
+ destroy(): void;
81
+ }
@@ -0,0 +1,23 @@
1
+ import { MasterControlForWorker } from "../mainEngine";
2
+ import { IBatchMainMessage, IWorkerMessage } from "../types";
3
+ import { IMainThreadInitOption, MainThreadEngineImpl } from "./base";
4
+ import { SnapshotThreadImpl } from "./snapshotThread";
5
+ export interface MainThreadManager {
6
+ master: MasterControlForWorker;
7
+ mainThreadMap: Map<string, MainThreadEngineImpl>;
8
+ createMainThread(viewId: string, opt: IMainThreadInitOption): MainThreadEngineImpl;
9
+ consume(msg: Set<IWorkerMessage>): void;
10
+ post(sp: Omit<IBatchMainMessage, 'render'>): void;
11
+ destroy(): void;
12
+ }
13
+ export declare class MainThreadManagerImpl implements MainThreadManager {
14
+ mainThreadMap: Map<string, MainThreadEngineImpl>;
15
+ private snapshotThread?;
16
+ master: MasterControlForWorker;
17
+ constructor(master: MasterControlForWorker);
18
+ post(msg: Omit<IBatchMainMessage, 'render'>): void;
19
+ destroy(): void;
20
+ createMainThread(viewId: string, opt: IMainThreadInitOption): MainThreadEngineImpl;
21
+ createSnapshotThread(viewId: string, opt: IMainThreadInitOption): SnapshotThreadImpl;
22
+ consume(msg: Set<IWorkerMessage>): void;
23
+ }
@@ -0,0 +1,40 @@
1
+ import { Group } from "spritejs";
2
+ import { IMainThreadInitOption } from "./base";
3
+ import { MasterControlForWorker } from "../mainEngine";
4
+ import { IActiveToolsDataType, IBatchMainMessage, ICameraOpt, IRectType, IWorkerMessage, IworkId } from "../types";
5
+ import type { BaseShapeTool } from "../tools/base";
6
+ import type { ImageShape } from "../tools/image";
7
+ export declare class SnapshotThreadImpl {
8
+ viewId: string;
9
+ fullLayer: Group;
10
+ master: MasterControlForWorker;
11
+ private opt;
12
+ private scene;
13
+ private mainThreadPostId?;
14
+ private combinePostMsg;
15
+ workShapes: Map<IworkId, BaseShapeTool>;
16
+ constructor(viewId: string, opt: IMainThreadInitOption);
17
+ post(msg: Omit<IBatchMainMessage, 'render'>): void;
18
+ on(msg: IWorkerMessage): Promise<void>;
19
+ createWorkShapeNode(opt: IActiveToolsDataType & {
20
+ workId?: IworkId;
21
+ }): 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 | ImageShape | undefined;
22
+ setFullWork(data: Pick<IWorkerMessage, 'workId' | 'opt' | 'toolsType'>): BaseShapeTool | import("../tools/text").TextShape | import("../tools").LaserPenShape | undefined;
23
+ runFullWork(data: IWorkerMessage, isDrawLabel?: boolean): Promise<IRectType | undefined>;
24
+ private getSnapshot;
25
+ private updateLabels;
26
+ private willRenderSpecialLabel;
27
+ private getSceneRect;
28
+ private getRectImageBitmap;
29
+ private getSnapshotRender;
30
+ private getBoundingRect;
31
+ setCameraOpt(cameraOpt: ICameraOpt): void;
32
+ private runBatchPostData;
33
+ private combinePostData;
34
+ combinePost(): void;
35
+ private createScene;
36
+ private createLayer;
37
+ private updateScene;
38
+ private updateLayer;
39
+ destroy(): void;
40
+ }
@@ -0,0 +1,101 @@
1
+ import { IworkId, IActiveToolsDataType, IWorkerMessage, IMainMessage, IUpdateSelectorPropsType, IBatchMainMessage } from "../types";
2
+ import type { BaseShapeTool, BaseShapeOptions, SelectorShape, ImageShape, ShapeToolsClass, PencilShape } from "../tools";
3
+ import { MainThreadEngineImpl, ISubThreadInitOption } from "./base";
4
+ import { VNodeManager } from "./vNodeManager";
5
+ import { EToolsKey } from "../enum";
6
+ import { Scene } from "spritejs";
7
+ import { SubServiceThread } from "./subServiceThread";
8
+ export interface SubLocalThread {
9
+ readonly vNodes: VNodeManager;
10
+ readonly thread: MainThreadEngineImpl;
11
+ workShapes: Map<IworkId, BaseShapeTool>;
12
+ effectSelectNodeData: Set<IWorkerMessage>;
13
+ destroy(): void;
14
+ clearAll(): void;
15
+ clearWorkShapeNodeCache(workId: IworkId): void;
16
+ setToolsOpt(opt: IActiveToolsDataType): void;
17
+ createWorkShapeNode(opt: IActiveToolsDataType & {
18
+ workId?: IworkId;
19
+ }): void;
20
+ getTmpWorkShapeNode(): BaseShapeTool | undefined;
21
+ setWorkOptions(workId: IworkId, opt: BaseShapeOptions): void;
22
+ consumeDrawAll(data: IWorkerMessage, serviceWork: SubServiceThread): void;
23
+ consumeDraw(data: IWorkerMessage, serviceWork: SubServiceThread): void;
24
+ colloctEffectSelectWork(data: IWorkerMessage): Promise<IWorkerMessage | undefined>;
25
+ reRenderSelector(willSyncService?: boolean): void;
26
+ blurSelector(data?: IWorkerMessage): Promise<void>;
27
+ getWorkShape(workId: IworkId): BaseShapeTool | undefined;
28
+ setFullWork(data: Pick<IWorkerMessage, 'workId' | 'opt' | 'toolsType'>): ShapeToolsClass | undefined;
29
+ consumeFull(data: IWorkerMessage, scene?: Scene): Promise<void>;
30
+ removeWork(data: IWorkerMessage): void;
31
+ updateFullSelectWork(data: IWorkerMessage): void;
32
+ cursorHover(msg: IWorkerMessage): void;
33
+ checkTextActive(data: IWorkerMessage): Promise<void>;
34
+ removeNode(key: string): void;
35
+ updateSelector(params: IUpdateSelectorPropsType & {
36
+ callback?: (props: {
37
+ res?: IMainMessage;
38
+ param: IUpdateSelectorPropsType;
39
+ postData: Pick<IBatchMainMessage, 'sp' | 'render'>;
40
+ workShapeNode: SelectorShape;
41
+ newServiceStore: Map<string, {
42
+ opt: BaseShapeOptions;
43
+ toolsType: EToolsKey;
44
+ ops?: string;
45
+ }>;
46
+ }) => void;
47
+ }): Promise<IMainMessage | undefined>;
48
+ }
49
+ export declare class SubLocalThreadImpl implements SubLocalThread {
50
+ readonly vNodes: VNodeManager;
51
+ readonly thread: MainThreadEngineImpl;
52
+ workShapes: Map<IworkId, BaseShapeTool>;
53
+ effectSelectNodeData: Set<IWorkerMessage>;
54
+ private batchEraserRemoveNodes;
55
+ private batchEraserWorks;
56
+ private tmpOpt?;
57
+ private tmpWorkShapeNode?;
58
+ private drawCount;
59
+ constructor(opt: ISubThreadInitOption);
60
+ updateSelector(params: IUpdateSelectorPropsType & {
61
+ callback?: ((props: {
62
+ res?: IMainMessage | undefined;
63
+ param: IUpdateSelectorPropsType;
64
+ postData: Pick<IBatchMainMessage, "sp">;
65
+ workShapeNode: SelectorShape;
66
+ newServiceStore: Map<string, {
67
+ opt: BaseShapeOptions;
68
+ toolsType: EToolsKey;
69
+ ops?: string | undefined;
70
+ }>;
71
+ }) => void) | undefined;
72
+ }): Promise<IMainMessage | undefined>;
73
+ destroy(): void;
74
+ private clearAllWorkShapesCache;
75
+ clearAll(): void;
76
+ checkTextActive(data: IWorkerMessage): Promise<void>;
77
+ cursorHover(msg: IWorkerMessage): void;
78
+ updateFullSelectWork(data: IWorkerMessage): void;
79
+ removeWork(data: IWorkerMessage): void;
80
+ removeNode(key: string): void;
81
+ setFullWork(data: Pick<IWorkerMessage, 'workId' | 'opt' | 'toolsType'>): BaseShapeTool | import("../tools/text").TextShape | import("../tools").LaserPenShape | undefined;
82
+ consumeFull(data: IWorkerMessage, scene?: Scene): Promise<void>;
83
+ colloctEffectSelectWork(data: IWorkerMessage): Promise<IWorkerMessage | undefined>;
84
+ private runEffectSelectWork;
85
+ reRenderSelector(willSyncService?: boolean): Promise<void> | undefined;
86
+ blurSelector(data?: IWorkerMessage): Promise<void>;
87
+ clearWorkShapeNodeCache(workId: IworkId): void;
88
+ private drawEraser;
89
+ private updateBatchEraserCombineNode;
90
+ private batchEraserCombine;
91
+ getWorkShape(workId: IworkId): BaseShapeTool | undefined;
92
+ consumeDraw(data: IWorkerMessage, serviceWork: SubServiceThread): void;
93
+ consumeDrawAll(data: IWorkerMessage, serviceWork: SubServiceThread): void;
94
+ getTmpWorkShapeNode(): BaseShapeTool | undefined;
95
+ setToolsOpt(opt: IActiveToolsDataType): void;
96
+ setTmpWorkId(workId: IworkId | undefined): void;
97
+ setWorkOptions(workId: IworkId, opt: BaseShapeOptions): void;
98
+ createWorkShapeNode(opt: IActiveToolsDataType & {
99
+ workId?: IworkId;
100
+ }): import("../tools").ArrowShape | 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 | SelectorShape | ImageShape | undefined;
101
+ }
@@ -0,0 +1,42 @@
1
+ import { IServiceWorkItem, IWorkerMessage } from "../types";
2
+ import { MainThreadEngineImpl, ISubThreadInitOption } from "./base";
3
+ import { VNodeManager } from "./vNodeManager";
4
+ export interface SubServiceThread {
5
+ workShapes: Map<string, IServiceWorkItem>;
6
+ selectorWorkShapes: Map<string, IServiceWorkItem>;
7
+ destroy(): void;
8
+ clearAll(): void;
9
+ consumeDraw(data: IWorkerMessage): void;
10
+ runReverseSelectWork(selectIds: string[]): void;
11
+ consumeFull(data: IWorkerMessage): void;
12
+ removeWork(data: IWorkerMessage): void;
13
+ runSelectWork(data: IWorkerMessage): void;
14
+ }
15
+ export declare class SubServiceThreadImpl implements SubServiceThread {
16
+ readonly vNodes: VNodeManager;
17
+ readonly thread: MainThreadEngineImpl;
18
+ workShapes: Map<string, IServiceWorkItem>;
19
+ selectorWorkShapes: Map<string, IServiceWorkItem>;
20
+ private willRunEffectSelectorIds;
21
+ private runEffectId?;
22
+ private animationId?;
23
+ constructor(opt: ISubThreadInitOption);
24
+ destroy(): void;
25
+ clearAll(): void;
26
+ private runEffect;
27
+ private effectRunSelector;
28
+ runSelectWork(data: IWorkerMessage): void;
29
+ removeWork(data: IWorkerMessage): void;
30
+ consumeFull(data: IWorkerMessage): void;
31
+ runReverseSelectWork(selectIds: string[]): void;
32
+ consumeDraw(data: IWorkerMessage): void;
33
+ private computNextAnimationIndex;
34
+ private animationDraw;
35
+ private runAnimation;
36
+ private hasDiffData;
37
+ private activeWorkShape;
38
+ private removeNode;
39
+ private removeSelectWork;
40
+ private activeSelectorShape;
41
+ private setNodeKey;
42
+ }
@@ -0,0 +1,46 @@
1
+ import { IServiceWorkItem, IworkId, ILocalWorkItem, IActiveToolsDataType, IWorkerMessage } from "../types";
2
+ import { BaseShapeTool, BaseShapeOptions } from "../tools";
3
+ import { MainThreadEngineImpl, ISubThreadInitOption } from "./base";
4
+ import { VNodeManager } from "./vNodeManager";
5
+ export interface SubTopThread {
6
+ readonly vNodes: VNodeManager;
7
+ readonly thread: MainThreadEngineImpl;
8
+ serviceWorkShapes: Map<string, IServiceWorkItem>;
9
+ localWorkShapes: Map<IworkId, ILocalWorkItem>;
10
+ destroy(): void;
11
+ clearAll(): void;
12
+ setToolsOpt(opt: IActiveToolsDataType): void;
13
+ createWorkShapeNode(opt: IActiveToolsDataType & {
14
+ workId?: IworkId;
15
+ }): BaseShapeTool | undefined;
16
+ getTmpWorkShapeNode(): BaseShapeTool | undefined;
17
+ setWorkOptions(workId: IworkId, opt: BaseShapeOptions): void;
18
+ consumeDrawAll(data: IWorkerMessage): void;
19
+ consumeDraw(data: IWorkerMessage): void;
20
+ }
21
+ export declare class SubTopThreadImpl implements SubTopThread {
22
+ readonly vNodes: VNodeManager;
23
+ readonly thread: MainThreadEngineImpl;
24
+ serviceWorkShapes: Map<string, IServiceWorkItem>;
25
+ localWorkShapes: Map<IworkId, ILocalWorkItem>;
26
+ private tmpOpt?;
27
+ private tmpWorkShapeNode?;
28
+ private animationId?;
29
+ constructor(opt: ISubThreadInitOption);
30
+ destroy(): void;
31
+ clearAll(): void;
32
+ consumeDraw(data: IWorkerMessage): void;
33
+ setToolsOpt(opt: IActiveToolsDataType): void;
34
+ createWorkShapeNode(opt: IActiveToolsDataType & {
35
+ workId?: IworkId | undefined;
36
+ }): BaseShapeTool | undefined;
37
+ getTmpWorkShapeNode(): BaseShapeTool | undefined;
38
+ private setTmpWorkId;
39
+ private setNodeKey;
40
+ private activeServiceWorkShape;
41
+ private computNextAnimationIndex;
42
+ private animationDraw;
43
+ private runAnimation;
44
+ setWorkOptions(workId: IworkId, opt: BaseShapeOptions): void;
45
+ consumeDrawAll(data: IWorkerMessage): void;
46
+ }
@@ -0,0 +1,32 @@
1
+ import { Group, Scene } from "spritejs";
2
+ import { BaseNodeMapItem, IRectType } from "../types";
3
+ export declare class VNodeManager {
4
+ viewId: string;
5
+ scene: Scene;
6
+ fullLayer?: Group;
7
+ curNodeMap: Map<string, BaseNodeMapItem>;
8
+ targetNodeMap: Map<string, BaseNodeMapItem>[];
9
+ constructor(viewId: string, scene: Scene);
10
+ init(fullLayer: Group): void;
11
+ get(name: string): BaseNodeMapItem | undefined;
12
+ hasRenderNodes(): boolean;
13
+ has(name: string): void;
14
+ setInfo(name: string, info: Partial<BaseNodeMapItem>): void;
15
+ selected(name: string): void;
16
+ unSelected(name: string): void;
17
+ delete(name: string): void;
18
+ clear(): void;
19
+ hasRectIntersectRange(rect: IRectType, filterLock?: boolean): boolean;
20
+ getRectIntersectRange(rect: IRectType, filterLock?: boolean): {
21
+ rectRange: IRectType | undefined;
22
+ nodeRange: Map<string, BaseNodeMapItem>;
23
+ };
24
+ getNodeRectFormShape(name: string, value: BaseNodeMapItem): IRectType | undefined;
25
+ updateNodesRect(): void;
26
+ combineIntersectRect(rect: IRectType): IRectType;
27
+ setTarget(): number;
28
+ getLastTarget(): Map<string, BaseNodeMapItem>;
29
+ deleteLastTarget(): void;
30
+ getTarget(i: number): Map<string, BaseNodeMapItem>;
31
+ deleteTarget(i: number): void;
32
+ }
@@ -0,0 +1,13 @@
1
+ import type { Scene } from "spritejs";
2
+ import { EmitEventType } from "../../plugin/types";
3
+ import { IWorkerMessage } from "../types";
4
+ import { SubLocalThread } from "../mainThread/subLocalThread";
5
+ import { SubServiceThread } from "../mainThread/subServiceThread";
6
+ export declare abstract class BaseMsgMethodForMainThread {
7
+ abstract readonly emitEventType: EmitEventType;
8
+ localWork?: SubLocalThread;
9
+ serviceWork?: SubServiceThread;
10
+ scene: Scene | undefined;
11
+ registerMainThread(localWork: SubLocalThread, serviceWork?: SubServiceThread, scene?: Scene): this;
12
+ abstract consume(data: IWorkerMessage): Promise<boolean | undefined>;
13
+ }
@@ -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
+ }
@@ -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
+ }
@@ -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
+ }
@@ -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
+ }