@netless/appliance-plugin 1.1.22-beta.0 → 1.1.22-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 (50) hide show
  1. package/cdn/cdn.js +1 -1
  2. package/cdn/fullWorker-C1rEr3.js +473 -0
  3. package/cdn/subWorker-h9xdtI.js +473 -0
  4. package/dist/appliance-plugin.js +1 -1
  5. package/dist/appliance-plugin.mjs +13 -13
  6. package/dist/core/enum.d.ts +3 -3
  7. package/dist/core/mainEngine.d.ts +22 -7
  8. package/dist/core/mainThread/index.d.ts +1 -1
  9. package/dist/core/msgEvent/baseForWorker.d.ts +2 -1
  10. package/dist/core/tools/arrow.d.ts +3 -20
  11. package/dist/core/tools/base.d.ts +2 -0
  12. package/dist/core/tools/ellipse.d.ts +3 -20
  13. package/dist/core/tools/image.d.ts +2 -2
  14. package/dist/core/tools/pencil.d.ts +6 -5
  15. package/dist/core/tools/polygon.d.ts +3 -20
  16. package/dist/core/tools/rectangle.d.ts +3 -20
  17. package/dist/core/tools/selector.d.ts +10 -21
  18. package/dist/core/tools/speechBalloon.d.ts +3 -20
  19. package/dist/core/tools/star.d.ts +3 -20
  20. package/dist/core/tools/straight.d.ts +3 -20
  21. package/dist/core/types.d.ts +20 -0
  22. package/dist/core/utils/indexDB.d.ts +17 -0
  23. package/dist/core/worker/base.d.ts +17 -12
  24. package/dist/core/worker/fullWorkerLocal.d.ts +25 -15
  25. package/dist/core/worker/fullWorkerService.d.ts +9 -9
  26. package/dist/core/worker/simpleWorker.d.ts +27 -0
  27. package/dist/core/worker/snapshotWork.d.ts +27 -0
  28. package/dist/core/worker/subWorkerLocal.d.ts +1 -3
  29. package/dist/core/worker/workerManager.d.ts +50 -34
  30. package/dist/fullWorker.js +190 -156
  31. package/dist/index-CCC5Xtq9.mjs +14769 -0
  32. package/dist/index-CG_tIsul.js +1 -0
  33. package/dist/index-CKcWRyxy.js +1 -0
  34. package/dist/index-DsqYUFoa.mjs +9516 -0
  35. package/dist/plugin/baseApplianceManager.d.ts +16 -7
  36. package/dist/plugin/baseViewContainerManager.d.ts +46 -78
  37. package/dist/plugin/displayerView.d.ts +2 -2
  38. package/dist/plugin/multi/displayer/appViewDisplayerManager.d.ts +2 -2
  39. package/dist/plugin/multi/displayer/mainViewDisplayerManager.d.ts +2 -2
  40. package/dist/plugin/single/displayer/mainViewDisplayerManager.d.ts +2 -3
  41. package/dist/plugin/types.d.ts +22 -8
  42. package/dist/subWorker.js +190 -156
  43. package/package.json +4 -2
  44. package/cdn/fullWorker-DcOpdP.js +0 -439
  45. package/cdn/subWorker-C7_sTp.js +0 -439
  46. package/dist/core/mainThread/workerMainThread.d.ts +0 -100
  47. package/dist/index-B9kYeuKl.js +0 -1
  48. package/dist/index-CgNZ4Jek.mjs +0 -2779
  49. package/dist/index-CrvwiTPc.js +0 -1
  50. package/dist/index-DG58Ru9C.mjs +0 -21387
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-B9kYeuKl.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-CG_tIsul.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-DG58Ru9C.mjs";
1
+ import { ad as s, a7 as p, aa as r, a9 as t, a8 as l, al as n, T as i, o, ae as E, l as y, E as T, ai as g, n as c, aj as u, m as v, t as S, k, ag as m, a1 as A, af as M, q as P, ah as W, ac as f, ak as h, ab as R, a5 as b, a6 as d } from "./index-CCC5Xtq9.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
+ b as fullWorkerUrl,
29
+ d as subWorkerUrl
30
30
  };
@@ -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
  /** 授权可写权限 */
@@ -121,7 +119,9 @@ export declare enum EPostMessageType {
121
119
  /** 获取vNode信息 */
122
120
  GetVNodeInfo = 28,
123
121
  /** 变更dpr */
124
- UpdateDpr = 29
122
+ UpdateDpr = 29,
123
+ /** 设置字体库 */
124
+ SetFontFace = 30
125
125
  }
126
126
  export type ECanvasContextType = "webgl2" | "webgl" | "2d";
127
127
  export declare enum ECanvasShowType {
@@ -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,9 +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
+ private setFontFacesResolve;
159
160
  private isLocalWorkActive;
161
+ /** IndexedDB工具类实例 */
162
+ private readonly indexDBUtils;
160
163
  constructor(props: BaseSubWorkModuleProps);
161
164
  get isBezier(): boolean;
162
165
  destroy(): void;
@@ -177,6 +180,19 @@ export declare class MasterControlForWorker extends MasterController {
177
180
  init(): Promise<void>;
178
181
  private useMainThread;
179
182
  on(): Promise<void>;
183
+ /**
184
+ * 清理字体缓存数据库
185
+ */
186
+ clearFontCache(): Promise<boolean>;
187
+ /**
188
+ * 获取字体缓存状态
189
+ */
190
+ getFontCacheStatus(): Promise<{
191
+ count: number;
192
+ totalSize: number;
193
+ }>;
194
+ loadFontInMainThread(url: string): Promise<ArrayBuffer | undefined>;
195
+ private validateFontData;
180
196
  clearReRenders(num?: number): void;
181
197
  get isBusy(): boolean;
182
198
  getLockSentEventCursor(): boolean;
@@ -212,7 +228,7 @@ export declare class MasterControlForWorker extends MasterController {
212
228
  setLocalWorkViewId(viewId?: string): void;
213
229
  setCurrentToolsData(currentToolsData: IActiveToolsDataType): void;
214
230
  private prepareOnceWork;
215
- createViewWorker(viewId: string, options: ViewWorkerOptions): void;
231
+ createViewWorker(viewId: string, options: ViewWorkerOptions, displayer: MainViewDisplayerManager | AppViewDisplayerManager): void;
216
232
  destroyViewWorker(viewId: string, isLocal?: boolean): void;
217
233
  onServiceDerive(key: string, data: DiffOneData<BaseCollectorReducerAction | undefined>): void;
218
234
  pullServiceData(viewId: string, scenePath: string, options?: {
@@ -253,7 +269,6 @@ export declare class MasterControlForWorker extends MasterController {
253
269
  setShapeSelectorByWorkId(workId: string, viewId: string): void;
254
270
  blurSelector(viewId: string, scenePath: string, workId?: string): void;
255
271
  consoleWorkerInfo(): void;
256
- setPriority(priority: PriorityType): void;
257
272
  sendClearUids(viewId: string, clearUids?: _SetTrue): void;
258
273
  getVNodeInfo(uuid: string, viewId: string, workIds: string[]): Promise<{
259
274
  uuid: string;
@@ -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[];
@@ -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,19 @@ 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
+ };
151
+ /** 字体库 */
152
+ fontBuffers?: {
153
+ fontFamily: string;
154
+ buffer: ArrayBuffer;
155
+ }[];
137
156
  [key: string]: any;
138
157
  };
139
158
  export interface IRectType {
@@ -186,6 +205,7 @@ export interface IMainMessage extends INormalPushMsg {
186
205
  toolsTypes?: EToolsKey[];
187
206
  isLockSentEventCursor?: boolean;
188
207
  nextTasks?: IMainMessage[];
208
+ setFontFaceResult?: boolean;
189
209
  [key: string]: any;
190
210
  }
191
211
  export interface IMainMessageRenderData {
@@ -0,0 +1,17 @@
1
+ export declare class IndexDBUtils {
2
+ private static instance;
3
+ private fontDB?;
4
+ private readonly FONT_DB_NAME;
5
+ private readonly FONT_STORE_NAME;
6
+ private readonly FONT_DB_VERSION;
7
+ private constructor();
8
+ static getInstance(): IndexDBUtils;
9
+ initFontDB(): Promise<IDBDatabase>;
10
+ getFontFromDB(fontFamily: string): Promise<ArrayBuffer | null>;
11
+ saveFontToDB(fontFamily: string, url: string, buffer: ArrayBuffer): Promise<boolean>;
12
+ clearFontCache(): Promise<boolean>;
13
+ getFontCacheStatus(): Promise<{
14
+ count: number;
15
+ totalSize: number;
16
+ }>;
17
+ }