@netless/appliance-plugin 1.1.22-beta.1 → 1.1.22-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/cdn/cdn.js +1 -1
  2. package/cdn/fullWorker-Cmt1v9.js +516 -0
  3. package/cdn/subWorker-B8K4_U.js +516 -0
  4. package/dist/appliance-plugin.js +1 -1
  5. package/dist/appliance-plugin.mjs +13 -13
  6. package/dist/component/textEditor/manager.d.ts +2 -0
  7. package/dist/core/enum.d.ts +0 -2
  8. package/dist/core/mainEngine.d.ts +19 -7
  9. package/dist/core/mainThread/base.d.ts +2 -2
  10. package/dist/core/mainThread/index.d.ts +1 -1
  11. package/dist/core/msgEvent/baseForWorker.d.ts +2 -1
  12. package/dist/core/tools/arrow.d.ts +3 -20
  13. package/dist/core/tools/base.d.ts +2 -0
  14. package/dist/core/tools/ellipse.d.ts +3 -20
  15. package/dist/core/tools/image.d.ts +2 -2
  16. package/dist/core/tools/pencil.d.ts +6 -5
  17. package/dist/core/tools/polygon.d.ts +3 -20
  18. package/dist/core/tools/rectangle.d.ts +3 -20
  19. package/dist/core/tools/selector.d.ts +10 -21
  20. package/dist/core/tools/speechBalloon.d.ts +3 -20
  21. package/dist/core/tools/star.d.ts +3 -20
  22. package/dist/core/tools/straight.d.ts +3 -20
  23. package/dist/core/tools/text.d.ts +2 -1
  24. package/dist/core/types.d.ts +14 -0
  25. package/dist/core/utils/indexDB.d.ts +17 -0
  26. package/dist/core/worker/base.d.ts +17 -12
  27. package/dist/core/worker/fullWorkerLocal.d.ts +25 -15
  28. package/dist/core/worker/fullWorkerService.d.ts +9 -9
  29. package/dist/core/worker/simpleWorker.d.ts +27 -0
  30. package/dist/core/worker/snapshotWork.d.ts +27 -0
  31. package/dist/core/worker/subWorkerLocal.d.ts +1 -3
  32. package/dist/core/worker/workerManager.d.ts +48 -34
  33. package/dist/fullWorker.js +252 -176
  34. package/dist/index-CNsKOzf9.mjs +9527 -0
  35. package/dist/index-CoK9t8SC.js +1 -0
  36. package/dist/index-DLovHS7O.mjs +14783 -0
  37. package/dist/index-DiIjscTK.js +1 -0
  38. package/dist/plugin/baseApplianceManager.d.ts +10 -7
  39. package/dist/plugin/baseViewContainerManager.d.ts +46 -80
  40. package/dist/plugin/displayerView.d.ts +2 -2
  41. package/dist/plugin/multi/displayer/appViewDisplayerManager.d.ts +2 -2
  42. package/dist/plugin/multi/displayer/mainViewDisplayerManager.d.ts +2 -2
  43. package/dist/plugin/single/displayer/mainViewDisplayerManager.d.ts +2 -3
  44. package/dist/plugin/types.d.ts +13 -8
  45. package/dist/style.css +1 -1
  46. package/dist/subWorker.js +252 -176
  47. package/package.json +4 -2
  48. package/cdn/fullWorker-BQclbf.js +0 -440
  49. package/cdn/subWorker-Co2GgG.js +0 -440
  50. package/dist/core/mainThread/workerMainThread.d.ts +0 -100
  51. package/dist/index-7Ry75r2W.js +0 -1
  52. package/dist/index-CEBD0CPi.mjs +0 -2779
  53. package/dist/index-Cyb4w2Wb.mjs +0 -21456
  54. package/dist/index-ggI7Ru6d.js +0 -1
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-7Ry75r2W.js");exports.ActiveContainerType=e.ActiveContainerType;exports.ApplianceMultiPlugin=e.ApplianceMultiPlugin;exports.ApplianceNames=e.ApplianceNames;exports.ApplianceSigleWrapper=e.ApplianceSigleWrapper;exports.ApplianceSinglePlugin=e.ApplianceSinglePlugin;exports.AutoDrawPlugin=e.AutoDrawPlugin;exports.ECanvasShowType=e.ECanvasShowType;exports.EDataType=e.EDataType;exports.EForceStopReason=e.EForceStopReason;exports.EImageType=e.EImageType;exports.EMatrixrRelationType=e.EMatrixrRelationType;exports.EOperationType=e.EOperationType;exports.EPostMessageType=e.EPostMessageType;exports.ERenderFilterType=e.ERenderFilterType;exports.EScaleType=e.EScaleType;exports.EStrokeType=e.EStrokeType;exports.EToolsKey=e.EToolsKey;exports.ElayerType=e.ElayerType;exports.EmitEventType=e.EmitEventType;exports.EventMessageType=e.EventMessageType;exports.EvevtWorkState=e.EvevtWorkState;exports.EvevtWorkType=e.EvevtWorkType;exports.InternalMsgEmitterType=e.InternalMsgEmitterType;exports.Plugin=e.Plugin;exports.ShapeType=e.ShapeType;exports.fullWorkerUrl=e.fullWorker;exports.subWorkerUrl=e.subWorker;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-DiIjscTK.js");exports.ActiveContainerType=e.ActiveContainerType;exports.ApplianceMultiPlugin=e.ApplianceMultiPlugin;exports.ApplianceNames=e.ApplianceNames;exports.ApplianceSigleWrapper=e.ApplianceSigleWrapper;exports.ApplianceSinglePlugin=e.ApplianceSinglePlugin;exports.AutoDrawPlugin=e.AutoDrawPlugin;exports.ECanvasShowType=e.ECanvasShowType;exports.EDataType=e.EDataType;exports.EForceStopReason=e.EForceStopReason;exports.EImageType=e.EImageType;exports.EMatrixrRelationType=e.EMatrixrRelationType;exports.EOperationType=e.EOperationType;exports.EPostMessageType=e.EPostMessageType;exports.ERenderFilterType=e.ERenderFilterType;exports.EScaleType=e.EScaleType;exports.EStrokeType=e.EStrokeType;exports.EToolsKey=e.EToolsKey;exports.ElayerType=e.ElayerType;exports.EmitEventType=e.EmitEventType;exports.EventMessageType=e.EventMessageType;exports.EvevtWorkState=e.EvevtWorkState;exports.EvevtWorkType=e.EvevtWorkType;exports.InternalMsgEmitterType=e.InternalMsgEmitterType;exports.Plugin=e.Plugin;exports.ShapeType=e.ShapeType;exports.fullWorkerUrl=e.fullWorker;exports.subWorkerUrl=e.subWorker;
@@ -1,4 +1,4 @@
1
- import { H as s, A as p, B as r, z as t, y as l, U as n, k as i, b as o, J as y, m as E, o as T, P as g, c, Q as u, N as v, F as S, a as A, L as k, l as m, K as P, E as M, O as W, I as R, R as w, G as x, w as F, x as I } from "./index-Cyb4w2Wb.mjs";
1
+ import { ae as s, a8 as p, ab as r, aa as t, a9 as l, am as n, U as i, o, af as E, l as y, E as T, aj as g, n as c, ak as u, m as v, t as S, k, ah as m, a2 as A, ag as M, q as P, ai as W, ad as f, al as h, ac as R, a6 as U, a7 as b } from "./index-DLovHS7O.mjs";
2
2
  export {
3
3
  s as ActiveContainerType,
4
4
  p as ApplianceMultiPlugin,
@@ -8,23 +8,23 @@ export {
8
8
  n as AutoDrawPlugin,
9
9
  i as ECanvasShowType,
10
10
  o as EDataType,
11
- y as EForceStopReason,
12
- E as EImageType,
11
+ E as EForceStopReason,
12
+ y as EImageType,
13
13
  T as EMatrixrRelationType,
14
14
  g as EOperationType,
15
15
  c as EPostMessageType,
16
16
  u as ERenderFilterType,
17
17
  v as EScaleType,
18
18
  S as EStrokeType,
19
- A as EToolsKey,
20
- k as ElayerType,
21
- m as EmitEventType,
22
- P as EventMessageType,
23
- M as EvevtWorkState,
19
+ k as EToolsKey,
20
+ m as ElayerType,
21
+ A as EmitEventType,
22
+ M as EventMessageType,
23
+ P as EvevtWorkState,
24
24
  W as EvevtWorkType,
25
- R as InternalMsgEmitterType,
26
- w as Plugin,
27
- x as ShapeType,
28
- F as fullWorkerUrl,
29
- I as subWorkerUrl
25
+ f as InternalMsgEmitterType,
26
+ h as Plugin,
27
+ R as ShapeType,
28
+ U as fullWorkerUrl,
29
+ b as subWorkerUrl
30
30
  };
@@ -4,6 +4,7 @@ import { ICameraOpt, IUpdateNodeOpt, IWorkerMessage } from "../../core";
4
4
  import type EventEmitter2 from "eventemitter2";
5
5
  import { BaseApplianceManager } from "../../plugin/baseApplianceManager";
6
6
  import { WorkId } from "../../collector/types";
7
+ export declare const TextBoxPadding = 5;
7
8
  export interface TextEditorManager {
8
9
  readonly internalMsgEmitter: EventEmitter2;
9
10
  readonly publicMsgEmitter: EventEmitter2;
@@ -90,6 +91,7 @@ export declare class TextEditorManagerImpl implements TextEditorManager {
90
91
  clear(): boolean;
91
92
  };
92
93
  computeTextActive(point: [number, number], viewId: string): void;
94
+ checkLocalTextBlur: import("lodash").DebouncedFunc<() => void>;
93
95
  checkEmptyTextBlur(): void;
94
96
  onCameraChange(cameraOpt: ICameraOpt, viewId: string): void;
95
97
  onServiceDerive(data: IWorkerMessage): void;
@@ -105,9 +105,7 @@ export declare enum EPostMessageType {
105
105
  /** 前端日志 */
106
106
  Console = 20,
107
107
  /** 优先激活worker */
108
- PriorityWorker = 21,
109
108
  /** 优先激活worker */
110
- PriorityMainThreadWorker = 22,
111
109
  /** 获取图片位图 */
112
110
  GetImageBitMap = 23,
113
111
  /** 授权可写权限 */
@@ -3,10 +3,11 @@ import { BaseCollectorReducerAction, DiffOneData } from "../collector";
3
3
  import { BaseApplianceManager } from "../plugin/baseApplianceManager";
4
4
  import { BaseNodeMapItem, IActiveToolsDataType, IActiveWorkDataType, ICameraOpt, IMainMessage, IRectType, IUpdateNodeOpt, IWorkerMessage, IqueryTask, IworkId, ViewWorkerOptions } from "./types";
5
5
  import { BaseSubWorkModuleProps } from "../plugin/types";
6
- import type { IconifyInformation, ImageInformation, PriorityType, _SetTrue } from "../plugin/types";
6
+ import type { IconifyInformation, ImageInformation, _SetTrue } from "../plugin/types";
7
7
  import { MethodBuilderMain } from "./msgEvent";
8
8
  import { EvevtWorkState } from "./enum";
9
9
  import { BaseShapeOptions } from "./tools";
10
+ import { AppViewDisplayerManager, MainViewDisplayerManager } from "../plugin/baseViewContainerManager";
10
11
  export declare abstract class MasterController {
11
12
  /** 异步同步时间间隔 */
12
13
  abstract readonly maxLastSyncTime: number;
@@ -33,7 +34,7 @@ export declare abstract class MasterController {
33
34
  /** 主线程和工作线程通信机 */
34
35
  protected abstract fullWorker: Worker;
35
36
  /** 子线程和工作线程通信机 */
36
- protected abstract subWorker: Worker;
37
+ protected abstract subWorker?: Worker;
37
38
  /** 当前选中的工具配置数据 */
38
39
  abstract currentToolsData?: IActiveToolsDataType;
39
40
  /** 当前工作任务数据 */
@@ -79,7 +80,7 @@ export declare abstract class MasterController {
79
80
  /** 更新指定view场景路径下的相机参数 */
80
81
  abstract updateCamera(viewId: string, cameraOpt: ICameraOpt): void;
81
82
  /** 创建一个新的viewWorker */
82
- abstract createViewWorker(viewId: string, options: ViewWorkerOptions): void;
83
+ abstract createViewWorker(viewId: string, options: ViewWorkerOptions, displayer: MainViewDisplayerManager | AppViewDisplayerManager): void;
83
84
  /** 本地发送cursor事件 */
84
85
  abstract sendCursorEvent(point: [number | undefined, number | undefined], viewId: string): void;
85
86
  /** 获取某个场景路径下的包围盒 */
@@ -116,7 +117,7 @@ export declare class MasterControlForWorker extends MasterController {
116
117
  publicMsgEmitter: EventEmitter2;
117
118
  taskBatchData: Set<IWorkerMessage>;
118
119
  protected fullWorker: Worker;
119
- protected subWorker: Worker;
120
+ protected subWorker?: Worker;
120
121
  private fullWorkerUrl;
121
122
  private subWorkerUrl;
122
123
  methodBuilder?: MethodBuilderMain;
@@ -154,10 +155,11 @@ export declare class MasterControlForWorker extends MasterController {
154
155
  private mainThread?;
155
156
  private willSelectorWorkId?;
156
157
  private isLockSentEventCursor;
157
- private subMainThreadWorker?;
158
158
  private getVNodeInfoResolveMap;
159
159
  private setFontFacesResolve;
160
160
  private isLocalWorkActive;
161
+ /** IndexedDB工具类实例 */
162
+ private readonly indexDBUtils;
161
163
  constructor(props: BaseSubWorkModuleProps);
162
164
  get isBezier(): boolean;
163
165
  destroy(): void;
@@ -178,6 +180,17 @@ export declare class MasterControlForWorker extends MasterController {
178
180
  init(): Promise<void>;
179
181
  private useMainThread;
180
182
  on(): Promise<void>;
183
+ /**
184
+ * 清理字体缓存数据库
185
+ */
186
+ clearFontCache(): Promise<boolean>;
187
+ /**
188
+ * 获取字体缓存状态
189
+ */
190
+ getFontCacheStatus(): Promise<{
191
+ count: number;
192
+ totalSize: number;
193
+ }>;
181
194
  loadFontInMainThread(url: string): Promise<ArrayBuffer | undefined>;
182
195
  private validateFontData;
183
196
  clearReRenders(num?: number): void;
@@ -215,7 +228,7 @@ export declare class MasterControlForWorker extends MasterController {
215
228
  setLocalWorkViewId(viewId?: string): void;
216
229
  setCurrentToolsData(currentToolsData: IActiveToolsDataType): void;
217
230
  private prepareOnceWork;
218
- createViewWorker(viewId: string, options: ViewWorkerOptions): void;
231
+ createViewWorker(viewId: string, options: ViewWorkerOptions, displayer: MainViewDisplayerManager | AppViewDisplayerManager): void;
219
232
  destroyViewWorker(viewId: string, isLocal?: boolean): void;
220
233
  onServiceDerive(key: string, data: DiffOneData<BaseCollectorReducerAction | undefined>): void;
221
234
  pullServiceData(viewId: string, scenePath: string, options?: {
@@ -256,7 +269,6 @@ export declare class MasterControlForWorker extends MasterController {
256
269
  setShapeSelectorByWorkId(workId: string, viewId: string): void;
257
270
  blurSelector(viewId: string, scenePath: string, workId?: string): void;
258
271
  consoleWorkerInfo(): void;
259
- setPriority(priority: PriorityType): void;
260
272
  sendClearUids(viewId: string, clearUids?: _SetTrue): void;
261
273
  getVNodeInfo(uuid: string, viewId: string, workIds: string[]): Promise<{
262
274
  uuid: string;
@@ -1,5 +1,5 @@
1
1
  import { Group } from "spritejs";
2
- import { IBatchMainMessage, ICameraOpt, ILayerOptionType, IMainMessage, IOffscreenCanvasOptionType, IWorkerMessage } from "../types";
2
+ import { IBatchMainMessage, ICameraOpt, ILayerOptionType, IMainMessage, IOffscreenCanvasOptionType, IRectType, IWorkerMessage } from "../types";
3
3
  import { VNodeManager } from "../vNodeManager";
4
4
  import type { MasterControlForWorker } from "../mainEngine";
5
5
  import type { AppViewDisplayerManager, MainViewDisplayerManager } from "../../plugin/baseViewContainerManager";
@@ -86,7 +86,7 @@ export declare class MainThreadEngineImpl implements MainThreadEngine {
86
86
  private consumeDrawAll;
87
87
  private consumeDraw;
88
88
  private updateCamera;
89
- private getSceneRect;
89
+ getSceneRect(): IRectType;
90
90
  private createScene;
91
91
  private createLayer;
92
92
  private updateScene;
@@ -15,7 +15,7 @@ export declare class MainThreadManagerImpl implements MainThreadManager {
15
15
  private snapshotThread?;
16
16
  master: MasterControlForWorker;
17
17
  constructor(master: MasterControlForWorker);
18
- post(msg: Omit<IBatchMainMessage, "render">): void;
18
+ post: (msg: Omit<IBatchMainMessage, "render">) => void;
19
19
  destroy(): void;
20
20
  createMainThread(viewId: string, opt: IMainThreadInitOption): MainThreadEngineImpl;
21
21
  createSnapshotThread(viewId: string, opt: IMainThreadInitOption): SnapshotThreadImpl;
@@ -2,10 +2,11 @@ import { EmitEventType } from "../../plugin/types";
2
2
  import { IWorkerMessage } from "../types";
3
3
  import { LocalWorkForFullWorker } from "../worker/fullWorkerLocal";
4
4
  import { ServiceWorkForFullWorker } from "../worker/fullWorkerService";
5
+ import { LocalWorkForSimpleWorker } from "../worker/simpleWorker";
5
6
  import type { WorkThreadEngineForFullWorker } from "../worker/workerManager";
6
7
  export declare abstract class BaseMsgMethodForWorker {
7
8
  abstract readonly emitEventType: EmitEventType;
8
- localWork: LocalWorkForFullWorker | undefined;
9
+ localWork: LocalWorkForFullWorker | LocalWorkForSimpleWorker | undefined;
9
10
  serviceWork: ServiceWorkForFullWorker | undefined;
10
11
  threadEngine: WorkThreadEngineForFullWorker | undefined;
11
12
  registerForWorker(threadEngine: WorkThreadEngineForFullWorker): this;
@@ -1,7 +1,7 @@
1
1
  import { IWorkerMessage, IRectType, IUpdateNodeOpt } from "../types";
2
2
  import { EDataType, EPostMessageType, EScaleType, EToolsKey, EvevtWorkState } from "../enum";
3
3
  import { Point2d } from "../utils/primitives/Point2d";
4
- import { BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
4
+ import { BaseConsumeResultType, BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
5
5
  import { VNodeManager } from "../vNodeManager";
6
6
  import { ShapeNodes } from "./utils";
7
7
  import { EStrokeType } from "../../plugin/types";
@@ -26,25 +26,8 @@ export declare class ArrowShape extends BaseShapeTool {
26
26
  isSubWorker?: boolean;
27
27
  isMainThread?: boolean;
28
28
  smoothSync?: boolean;
29
- }): {
30
- type: EPostMessageType;
31
- } | {
32
- type: EPostMessageType;
33
- dataType: EDataType;
34
- op: number[];
35
- isSync: boolean;
36
- index: number;
37
- workId: string;
38
- toolsType: EToolsKey;
39
- opt: import("./utils").ShapeOptions;
40
- } | {
41
- type: EPostMessageType;
42
- dataType: EDataType;
43
- workId: string;
44
- toolsType: EToolsKey;
45
- opt: import("./utils").ShapeOptions;
46
- rect: IRectType | undefined;
47
- };
29
+ isSimpleWorker?: boolean;
30
+ }): BaseConsumeResultType;
48
31
  consumeAll(): {
49
32
  type: EPostMessageType;
50
33
  removeIds: string[];
@@ -67,6 +67,7 @@ export declare abstract class BaseShapeTool {
67
67
  isSubWorker?: boolean;
68
68
  drawCount?: number;
69
69
  isMainThread?: boolean;
70
+ isSimpleWorker?: boolean;
70
71
  removeDrawCount?: number;
71
72
  smoothSync?: boolean;
72
73
  }): BaseConsumeResultType;
@@ -79,6 +80,7 @@ export declare abstract class BaseShapeTool {
79
80
  abstract consumeService(props: {
80
81
  op: number[];
81
82
  isFullWork: boolean;
83
+ isSimpleWorker?: boolean;
82
84
  replaceId?: string;
83
85
  workState?: EvevtWorkState;
84
86
  }): IRectType | undefined;
@@ -1,7 +1,7 @@
1
1
  import { IWorkerMessage, IRectType, IUpdateNodeOpt } from "../types";
2
2
  import { EDataType, EPostMessageType, EScaleType, EToolsKey, EvevtWorkState } from "../enum";
3
3
  import { Point2d } from "../utils/primitives/Point2d";
4
- import { BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
4
+ import { BaseConsumeResultType, BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
5
5
  import { VNodeManager } from "../vNodeManager";
6
6
  import { ShapeNodes } from "./utils";
7
7
  import { EStrokeType } from "../../plugin/types";
@@ -26,25 +26,8 @@ export declare class EllipseShape extends BaseShapeTool {
26
26
  isSubWorker?: boolean;
27
27
  isMainThread?: boolean;
28
28
  smoothSync?: boolean;
29
- }): {
30
- type: EPostMessageType;
31
- } | {
32
- op: number[];
33
- isSync: boolean;
34
- index: number;
35
- workId: string;
36
- toolsType: EToolsKey;
37
- opt: import("./utils").ShapeOptions;
38
- type: EPostMessageType;
39
- dataType: EDataType;
40
- } | {
41
- workId: string;
42
- toolsType: EToolsKey;
43
- opt: import("./utils").ShapeOptions;
44
- rect: IRectType | undefined;
45
- type: EPostMessageType;
46
- dataType: EDataType;
47
- };
29
+ isSimpleWorker?: boolean;
30
+ }): BaseConsumeResultType;
48
31
  consumeAll(): {
49
32
  type: EPostMessageType;
50
33
  removeIds: string[];
@@ -8,7 +8,7 @@ import type { LocalWorkForFullWorker } from "../worker/fullWorkerLocal";
8
8
  import type { SubLocalMainThreadImpl } from "../mainThread/subLocalThread";
9
9
  import type { SnapshotThreadImpl } from "../mainThread/snapshotThread";
10
10
  import type { SubServiceMainThreadImpl } from "../mainThread/subServiceThread";
11
- import { type WorkThreadEngineForFullWorker, WorkThreadEngineForSubWorker } from "../worker/workerManager";
11
+ import { type WorkThreadEngineForFullWorker, type WorkThreadEngineForSimpleWorker, WorkThreadEngineForSubWorker } from "../worker/workerManager";
12
12
  export interface ImageOptions extends BaseShapeOptions {
13
13
  /** 图片地址 */
14
14
  src: string;
@@ -49,7 +49,7 @@ export declare class ImageShape extends BaseShapeTool {
49
49
  consumeService(): IRectType | undefined;
50
50
  consumeServiceAsync(props: {
51
51
  isFullWork: boolean;
52
- worker: LocalWorkForFullWorker | WorkThreadEngineForFullWorker | WorkThreadEngineForSubWorker | SubLocalMainThreadImpl | SnapshotThreadImpl | SubServiceMainThreadImpl;
52
+ worker: WorkThreadEngineForSimpleWorker | LocalWorkForFullWorker | WorkThreadEngineForFullWorker | WorkThreadEngineForSubWorker | SubLocalMainThreadImpl | SnapshotThreadImpl | SubServiceMainThreadImpl;
53
53
  replaceId?: string;
54
54
  }): Promise<IRectType | undefined>;
55
55
  clearTmpPoints(): void;
@@ -30,25 +30,26 @@ export declare class PencilShape extends BaseShapeTool {
30
30
  data: IWorkerMessage;
31
31
  isFullWork?: boolean;
32
32
  isSubWorker?: boolean;
33
+ isSimpleWorker?: boolean;
33
34
  drawCount?: number;
34
35
  isMainThread?: boolean;
35
36
  removeDrawCount?: number;
36
37
  }): {
37
- rect: IRectType | undefined;
38
38
  type: EPostMessageType;
39
39
  dataType: EDataType;
40
- } | {
41
- type: EPostMessageType;
42
- dataType: EDataType;
43
- rect: IRectType | undefined;
44
40
  op: number[] | undefined;
45
41
  index: number | undefined;
42
+ rect: IRectType | undefined;
46
43
  updateNodeOpt: {
47
44
  useAnimation: boolean;
48
45
  };
49
46
  workId: string;
50
47
  toolsType: EToolsKey;
51
48
  opt: import("./utils").ShapeOptions;
49
+ } | {
50
+ rect: IRectType | undefined;
51
+ type: EPostMessageType;
52
+ dataType: EDataType;
52
53
  };
53
54
  consumeAll(props: {
54
55
  data?: IWorkerMessage;
@@ -1,7 +1,7 @@
1
1
  import { IWorkerMessage, IRectType, IUpdateNodeOpt } from "../types";
2
2
  import { EDataType, EPostMessageType, EScaleType, EToolsKey, EvevtWorkState } from "../enum";
3
3
  import { Point2d } from "../utils/primitives/Point2d";
4
- import { BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
4
+ import { BaseConsumeResultType, BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
5
5
  import { VNodeManager } from "../vNodeManager";
6
6
  import { ShapeNodes } from "./utils";
7
7
  import { EStrokeType } from "../../plugin/types";
@@ -28,25 +28,8 @@ export declare class PolygonShape extends BaseShapeTool {
28
28
  isSubWorker?: boolean;
29
29
  isMainThread?: boolean;
30
30
  smoothSync?: boolean;
31
- }): {
32
- type: EPostMessageType;
33
- } | {
34
- workId: string;
35
- toolsType: EToolsKey;
36
- opt: import("./utils").ShapeOptions;
37
- type: EPostMessageType;
38
- dataType: EDataType;
39
- op: number[];
40
- isSync: boolean;
41
- index: number;
42
- } | {
43
- workId: string;
44
- toolsType: EToolsKey;
45
- opt: import("./utils").ShapeOptions;
46
- rect: IRectType | undefined;
47
- type: EPostMessageType;
48
- dataType: EDataType;
49
- };
31
+ isSimpleWorker?: boolean;
32
+ }): BaseConsumeResultType;
50
33
  consumeAll(): {
51
34
  type: EPostMessageType;
52
35
  removeIds: string[];
@@ -1,7 +1,7 @@
1
1
  import { IWorkerMessage, IRectType, IUpdateNodeOpt } from "../types";
2
2
  import { EDataType, EPostMessageType, EScaleType, EToolsKey, EvevtWorkState } from "../enum";
3
3
  import { Point2d } from "../utils/primitives/Point2d";
4
- import { BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
4
+ import { BaseConsumeResultType, BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
5
5
  import { VNodeManager } from "../vNodeManager";
6
6
  import { ShapeNodes } from "./utils";
7
7
  import { EStrokeType } from "../../plugin/types";
@@ -29,25 +29,8 @@ export declare class RectangleShape extends BaseShapeTool {
29
29
  isSubWorker?: boolean;
30
30
  isMainThread?: boolean;
31
31
  smoothSync?: boolean;
32
- }): {
33
- type: EPostMessageType;
34
- } | {
35
- workId: string;
36
- toolsType: EToolsKey;
37
- opt: import("./utils").ShapeOptions;
38
- type: EPostMessageType;
39
- dataType: EDataType;
40
- op: number[];
41
- isSync: boolean;
42
- index: number;
43
- } | {
44
- workId: string;
45
- toolsType: EToolsKey;
46
- opt: import("./utils").ShapeOptions;
47
- rect: IRectType | undefined;
48
- type: EPostMessageType;
49
- dataType: EDataType;
50
- };
32
+ isSimpleWorker?: boolean;
33
+ }): BaseConsumeResultType;
51
34
  consumeAll(): {
52
35
  type: EPostMessageType;
53
36
  removeIds: string[];
@@ -1,4 +1,4 @@
1
- import { BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
1
+ import { BaseConsumeResultType, BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
2
2
  import { EDataType, EPostMessageType, EScaleType, EToolsKey } from "../enum";
3
3
  import { IWorkerMessage, IMainMessage, IRectType, IUpdateNodeOpt, IServiceWorkItem } from "../types";
4
4
  import { Point2d } from "../utils/primitives/Point2d";
@@ -14,6 +14,7 @@ export declare class SelectorShape extends BaseShapeTool {
14
14
  readonly toolsType: EToolsKey;
15
15
  static selectorBorderId: string;
16
16
  protected tmpPoints: Array<Point2d>;
17
+ protected subTmpPoints: Array<Point2d>;
17
18
  protected workOptions: BaseShapeOptions;
18
19
  vNodes: VNodeManager;
19
20
  selectIds?: string[];
@@ -21,6 +22,7 @@ export declare class SelectorShape extends BaseShapeTool {
21
22
  strokeColor?: string;
22
23
  fillColor?: string;
23
24
  oldSelectRect?: IRectType;
25
+ oldSubSelectRect?: IRectType;
24
26
  canRotate: boolean;
25
27
  canTextEdit: boolean;
26
28
  canLock: boolean;
@@ -42,33 +44,17 @@ export declare class SelectorShape extends BaseShapeTool {
42
44
  consume(props: {
43
45
  data: IWorkerMessage;
44
46
  isSubWorker?: boolean;
45
- }): {
47
+ isSimpleWorker?: boolean;
48
+ }): BaseConsumeResultType | {
46
49
  type: EPostMessageType;
50
+ rect: undefined;
47
51
  } | {
48
52
  workId: string;
49
53
  toolsType: EToolsKey;
50
54
  opt: import("./utils").ShapeOptions;
55
+ rect: IRectType | undefined;
51
56
  type: EPostMessageType;
52
57
  dataType: EDataType;
53
- rect: IRectType | undefined;
54
- selectIds: never[] | string[];
55
- selectRect: IRectType | undefined;
56
- selectorColor: string | undefined;
57
- strokeColor: string | undefined;
58
- fillColor: string | undefined;
59
- textOpt: TextOptions | undefined;
60
- canTextEdit: boolean;
61
- canRotate: boolean;
62
- canLock: boolean;
63
- scaleType: EScaleType;
64
- willSyncService: boolean;
65
- points: [number, number][] | undefined;
66
- isLocked: boolean | undefined;
67
- toolsTypes: EToolsKey[] | undefined;
68
- shapeOpt: ShapeOptType | undefined;
69
- thickness: number | undefined;
70
- useStroke: boolean | undefined;
71
- strokeType: EStrokeType | undefined;
72
58
  };
73
59
  consumeAll(): {
74
60
  workId: string;
@@ -108,6 +94,7 @@ export declare class SelectorShape extends BaseShapeTool {
108
94
  isFullWork?: boolean;
109
95
  }): {
110
96
  type: EPostMessageType;
97
+ rect: undefined;
111
98
  } | {
112
99
  workId: string;
113
100
  toolsType: EToolsKey;
@@ -127,7 +114,9 @@ export declare class SelectorShape extends BaseShapeTool {
127
114
  type: EPostMessageType;
128
115
  dataType: EDataType;
129
116
  };
117
+ clearSubTmpPoints(): void;
130
118
  clearTmpPoints(): void;
119
+ clearSubSelectData(): void;
131
120
  clearSelectData(): void;
132
121
  private selectSingleTool;
133
122
  private unSelectedAllIds;
@@ -1,7 +1,7 @@
1
1
  import { IWorkerMessage, IRectType, IUpdateNodeOpt } from "../types";
2
2
  import { EDataType, EPostMessageType, EScaleType, EToolsKey, EvevtWorkState } from "../enum";
3
3
  import { Point2d } from "../utils/primitives/Point2d";
4
- import { BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
4
+ import { BaseConsumeResultType, BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
5
5
  import { VNodeManager } from "../vNodeManager";
6
6
  import { EStrokeType, SpeechBalloonPlacement } from "../../plugin/types";
7
7
  import { ShapeNodes } from "./utils";
@@ -29,25 +29,8 @@ export declare class SpeechBalloonShape extends BaseShapeTool {
29
29
  isSubWorker?: boolean;
30
30
  isMainThread?: boolean;
31
31
  smoothSync?: boolean;
32
- }): {
33
- type: EPostMessageType;
34
- } | {
35
- workId: string;
36
- toolsType: EToolsKey;
37
- opt: import("./utils").ShapeOptions;
38
- type: EPostMessageType;
39
- dataType: EDataType;
40
- op: number[];
41
- isSync: boolean;
42
- index: number;
43
- } | {
44
- workId: string;
45
- toolsType: EToolsKey;
46
- opt: import("./utils").ShapeOptions;
47
- rect: IRectType | undefined;
48
- type: EPostMessageType;
49
- dataType: EDataType;
50
- };
32
+ isSimpleWorker?: boolean;
33
+ }): BaseConsumeResultType;
51
34
  consumeAll(): {
52
35
  type: EPostMessageType;
53
36
  removeIds: string[];
@@ -1,7 +1,7 @@
1
1
  import { IWorkerMessage, IRectType, IUpdateNodeOpt } from "../types";
2
2
  import { EDataType, EPostMessageType, EScaleType, EToolsKey, EvevtWorkState } from "../enum";
3
3
  import { Point2d } from "../utils/primitives/Point2d";
4
- import { BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
4
+ import { BaseConsumeResultType, BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
5
5
  import { VNodeManager } from "../vNodeManager";
6
6
  import { ShapeNodes } from "./utils";
7
7
  import { EStrokeType } from "../../plugin/types";
@@ -29,25 +29,8 @@ export declare class StarShape extends BaseShapeTool {
29
29
  isSubWorker?: boolean;
30
30
  isMainThread?: boolean;
31
31
  smoothSync?: boolean;
32
- }): {
33
- type: EPostMessageType;
34
- } | {
35
- workId: string;
36
- toolsType: EToolsKey;
37
- opt: import("./utils").ShapeOptions;
38
- type: EPostMessageType;
39
- dataType: EDataType;
40
- op: number[];
41
- isSync: boolean;
42
- index: number;
43
- } | {
44
- workId: string;
45
- toolsType: EToolsKey;
46
- opt: import("./utils").ShapeOptions;
47
- rect: IRectType | undefined;
48
- type: EPostMessageType;
49
- dataType: EDataType;
50
- };
32
+ isSimpleWorker?: boolean;
33
+ }): BaseConsumeResultType;
51
34
  consumeAll(): {
52
35
  type: EPostMessageType;
53
36
  removeIds: string[];
@@ -1,7 +1,7 @@
1
1
  import { IWorkerMessage, IRectType, IUpdateNodeOpt } from "../types";
2
2
  import { EDataType, EPostMessageType, EScaleType, EToolsKey, EvevtWorkState } from "../enum";
3
3
  import { Point2d } from "../utils/primitives/Point2d";
4
- import { BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
4
+ import { BaseConsumeResultType, BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
5
5
  import { VNodeManager } from "../vNodeManager";
6
6
  import { ShapeNodes } from "./utils";
7
7
  import { EStrokeType } from "../../plugin/types";
@@ -27,25 +27,8 @@ export declare class StraightShape extends BaseShapeTool {
27
27
  isSubWorker?: boolean;
28
28
  isMainThread?: boolean;
29
29
  smoothSync?: boolean;
30
- }): {
31
- type: EPostMessageType;
32
- } | {
33
- workId: string;
34
- toolsType: EToolsKey;
35
- opt: import("./utils").ShapeOptions;
36
- type: EPostMessageType;
37
- dataType: EDataType;
38
- op: number[];
39
- isSync: boolean;
40
- index: number;
41
- } | {
42
- workId: string;
43
- toolsType: EToolsKey;
44
- opt: import("./utils").ShapeOptions;
45
- rect: IRectType | undefined;
46
- type: EPostMessageType;
47
- dataType: EDataType;
48
- };
30
+ isSimpleWorker?: boolean;
31
+ }): BaseConsumeResultType;
49
32
  consumeAll(): {
50
33
  type: EPostMessageType;
51
34
  removeIds: string[];
@@ -28,9 +28,10 @@ export declare class TextShape extends BaseShapeTool {
28
28
  isFullWork: boolean;
29
29
  replaceId?: string;
30
30
  isDrawLabel?: boolean;
31
+ boxRect?: IRectType;
31
32
  }): Promise<IRectType | undefined>;
32
33
  updataOptService(): IRectType | undefined;
33
- updataOptServiceAsync(updateNodeOpt: IUpdateNodeOpt, isDrawLabel?: boolean): Promise<IRectType | undefined>;
34
+ updataOptServiceAsync(updateNodeOpt: IUpdateNodeOpt, isDrawLabel?: boolean, boxRect?: IRectType): Promise<IRectType | undefined>;
34
35
  clearTmpPoints(): void;
35
36
  static getSafetySnippetRatio(layer: Group): number;
36
37
  static getSafetySnippetFontLength(fontSize: number): number;
@@ -17,6 +17,11 @@ export type ViewWorkerOptions = {
17
17
  dpr: number;
18
18
  originalPoint: [number, number];
19
19
  cameraOpt: ICameraOpt;
20
+ transferOffscreenCanvas?: {
21
+ bgCanvas: OffscreenCanvas;
22
+ serviceCanvas: OffscreenCanvas;
23
+ localCanvas: OffscreenCanvas;
24
+ };
20
25
  };
21
26
  export interface ICanvasSceneType {
22
27
  /** canvas 上下文 */
@@ -41,6 +46,7 @@ export interface IOffscreenCanvasOptionType {
41
46
  [key: string]: any;
42
47
  }
43
48
  export interface ILayerOptionType {
49
+ canvas?: OffscreenCanvas;
44
50
  offscreen?: boolean;
45
51
  handleEvent?: boolean;
46
52
  depth?: boolean;
@@ -134,6 +140,14 @@ export type IWorkerMessage = Omit<Partial<BaseCollectorReducerAction>, "op"> & {
134
140
  maxCombineEraserTime?: number;
135
141
  /** 平滑同步 */
136
142
  smoothSync?: boolean;
143
+ /** 是否使用单一worker模式 */
144
+ isUseSimple?: boolean;
145
+ /** 离屏canvas */
146
+ offscreenCanvas?: {
147
+ localCanvas: OffscreenCanvas;
148
+ bgCanvas: OffscreenCanvas;
149
+ serviceCanvas: OffscreenCanvas;
150
+ };
137
151
  /** 字体库 */
138
152
  fontBuffers?: {
139
153
  fontFamily: string;