@netless/appliance-plugin 1.1.38-beta.0 → 1.1.38-beta.1

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 (40) hide show
  1. package/dist/appliance-plugin.js +1 -1
  2. package/dist/appliance-plugin.mjs +1 -1
  3. package/dist/assets/fullWorker-mk6jXaYV.js +593 -0
  4. package/dist/assets/subWorker-BTJNF38L.js +593 -0
  5. package/dist/{bridge-DwZ1Wbur.mjs → bridge-8hheCrpO.mjs} +9 -9
  6. package/dist/{bridge-Dy4qAJh2.js → bridge-D7r_MSkR.js} +1 -1
  7. package/dist/bridge.js +1 -1
  8. package/dist/bridge.mjs +1 -1
  9. package/dist/component/textEditor/manager.d.ts +11 -0
  10. package/dist/core/enum.d.ts +5 -1
  11. package/dist/core/fontFace.d.ts +48 -0
  12. package/dist/core/mainEngine.d.ts +8 -11
  13. package/dist/core/types.d.ts +2 -0
  14. package/dist/core/utils/indexDB.d.ts +1 -1
  15. package/dist/core/worker/workerManager.d.ts +2 -0
  16. package/dist/fullWorker.js +103 -103
  17. package/dist/{index-_2fP_0Sl.mjs → index-B8f2dYn9.mjs} +1201 -1193
  18. package/dist/{index-RGIk2cUF.mjs → index-BFAazxId.mjs} +1 -1
  19. package/dist/{index-S9-T6OvV.mjs → index-BULYNDpO.mjs} +1 -1
  20. package/dist/{index-BhVU2Mya.mjs → index-BkG3emHj.mjs} +7677 -7001
  21. package/dist/{index-WaXfuCxD.js → index-Bx3AKYbY.js} +1 -1
  22. package/dist/{index-DZ-ZGSXh.js → index-C9pp5WWl.js} +1 -1
  23. package/dist/{index-I3Kp1ALi.js → index-CuPiwtu4.js} +1 -1
  24. package/dist/index-DF1p4jdp.js +1 -0
  25. package/dist/index-DLcwwCLh.js +1 -0
  26. package/dist/{index-DTbzQbDD.js → index-R_b0AlP5.js} +1 -1
  27. package/dist/{index-C2MVZqzb.mjs → index-VZTgaAnB.mjs} +7474 -6798
  28. package/dist/{index-CElZ0WHE.mjs → index-cAAZZmgn.mjs} +1201 -1193
  29. package/dist/plugin/applianceMultiPlugin.d.ts +1 -1
  30. package/dist/plugin/applianceSinglePlugin.d.ts +1 -1
  31. package/dist/plugin/baseApplianceManager.d.ts +25 -1
  32. package/dist/plugin/baseViewContainerManager.d.ts +5 -1
  33. package/dist/plugin/displayerView.d.ts +2 -1
  34. package/dist/plugin/types.d.ts +31 -0
  35. package/dist/subWorker.js +103 -103
  36. package/package.json +1 -1
  37. package/dist/assets/fullWorker-B0Pt8Py_.js +0 -593
  38. package/dist/assets/subWorker-CleNZH9d.js +0 -593
  39. package/dist/index-BQ6rzeq9.js +0 -1
  40. package/dist/index-CsPVcYdq.js +0 -1
@@ -12,8 +12,8 @@ function u() {
12
12
  );
13
13
  return r;
14
14
  }
15
- const h = "/assets/fullWorker-B0Pt8Py_.js", d = "/assets/subWorker-CleNZH9d.js";
16
- class g {
15
+ const h = "/assets/fullWorker-mk6jXaYV.js", g = "/assets/subWorker-BTJNF38L.js";
16
+ class d {
17
17
  constructor() {
18
18
  i(this, "control");
19
19
  i(this, "_listeners", {});
@@ -31,7 +31,7 @@ class g {
31
31
  delete this._listeners[e];
32
32
  }
33
33
  }
34
- class b {
34
+ class k {
35
35
  constructor(e) {
36
36
  i(this, "control");
37
37
  i(this, "worker");
@@ -54,14 +54,14 @@ class b {
54
54
  });
55
55
  }
56
56
  }
57
- async function k(s) {
58
- return c(s), import("./index-BhVU2Mya.mjs").then((e) => e.a8);
57
+ async function b(s) {
58
+ return c(s), import("./index-BkG3emHj.mjs").then((e) => e.a8);
59
59
  }
60
60
  export {
61
- b as P,
62
- g as a,
61
+ k as P,
62
+ d as a,
63
63
  h as f,
64
64
  u as g,
65
- k as l,
66
- d as s
65
+ b as l,
66
+ g as s
67
67
  };
@@ -1 +1 @@
1
- "use strict";var l=Object.defineProperty;var o=(i,e,t)=>e in i?l(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var s=(i,e,t)=>o(i,typeof e!="symbol"?e+"":e,t);let n;function u(i){n=i}function c(){if(!n)throw new Error("[@netless/appliance-plugin/bridge] white-web-sdk runtime has not been bound yet.");return n}const a="/assets/fullWorker-B0Pt8Py_.js",h="/assets/subWorker-CleNZH9d.js";class g{constructor(){s(this,"control");s(this,"_listeners",{})}_inject(e){this.control=e}_onEvent(e,t){this._listeners[e]&&this._listeners[e](...t)}callbacks(e,t){this._listeners[e]=t}removeCallback(e){delete this._listeners[e]}}class d{constructor(e){s(this,"control");s(this,"worker");s(this,"publicMsgEmitter");s(this,"plugins",new Map);const{control:t,publicMsgEmitter:r}=e;this.control=t,this.publicMsgEmitter=r,this.worker=t.worker}use(e){this.plugins.set(e.kind,e),e._inject(this.control),e.onCreate()}destroy(){this.plugins.forEach(e=>{this.plugins.delete(e.kind),e.onDestroy()})}dispatchPluginEvent(e,...t){this.plugins.forEach(r=>{r._onEvent(e,t)})}}async function k(i){return u(i),Promise.resolve().then(()=>require("./index-BQ6rzeq9.js")).then(e=>e.index)}exports.Plugin=g;exports.PluginManager=d;exports.fullWorker=a;exports.getWhiteWebSdkBridgeRuntime=c;exports.loadAppliancePluginBridge=k;exports.subWorker=h;
1
+ "use strict";var o=Object.defineProperty;var l=(i,e,t)=>e in i?o(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var s=(i,e,t)=>l(i,typeof e!="symbol"?e+"":e,t);let n;function u(i){n=i}function c(){if(!n)throw new Error("[@netless/appliance-plugin/bridge] white-web-sdk runtime has not been bound yet.");return n}const a="/assets/fullWorker-mk6jXaYV.js",h="/assets/subWorker-BTJNF38L.js";class g{constructor(){s(this,"control");s(this,"_listeners",{})}_inject(e){this.control=e}_onEvent(e,t){this._listeners[e]&&this._listeners[e](...t)}callbacks(e,t){this._listeners[e]=t}removeCallback(e){delete this._listeners[e]}}class d{constructor(e){s(this,"control");s(this,"worker");s(this,"publicMsgEmitter");s(this,"plugins",new Map);const{control:t,publicMsgEmitter:r}=e;this.control=t,this.publicMsgEmitter=r,this.worker=t.worker}use(e){this.plugins.set(e.kind,e),e._inject(this.control),e.onCreate()}destroy(){this.plugins.forEach(e=>{this.plugins.delete(e.kind),e.onDestroy()})}dispatchPluginEvent(e,...t){this.plugins.forEach(r=>{r._onEvent(e,t)})}}async function k(i){return u(i),Promise.resolve().then(()=>require("./index-DLcwwCLh.js")).then(e=>e.index)}exports.Plugin=g;exports.PluginManager=d;exports.fullWorker=a;exports.getWhiteWebSdkBridgeRuntime=c;exports.loadAppliancePluginBridge=k;exports.subWorker=h;
package/dist/bridge.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./bridge-Dy4qAJh2.js");exports.Plugin=r.Plugin;exports.fullWorkerUrl=r.fullWorker;exports.loadAppliancePluginBridge=r.loadAppliancePluginBridge;exports.subWorkerUrl=r.subWorker;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./bridge-D7r_MSkR.js");exports.Plugin=r.Plugin;exports.fullWorkerUrl=r.fullWorker;exports.loadAppliancePluginBridge=r.loadAppliancePluginBridge;exports.subWorkerUrl=r.subWorker;
package/dist/bridge.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { a, f as s, l as e, s as o } from "./bridge-DwZ1Wbur.mjs";
1
+ import { a, f as s, l as e, s as o } from "./bridge-8hheCrpO.mjs";
2
2
  export {
3
3
  a as Plugin,
4
4
  s as fullWorkerUrl,
@@ -72,6 +72,12 @@ export interface TextEditorManager {
72
72
  destory(): void;
73
73
  /** 监听服务端数据变动 */
74
74
  onServiceDerive(data: IWorkerMessage): void;
75
+ /** 从服务端数据派生本地文字编辑器信息 */
76
+ deriveTextEditorInfoFromServiceData(data: IWorkerMessage, options?: {
77
+ canWorker?: boolean;
78
+ canSync?: boolean;
79
+ updateView?: boolean;
80
+ }): TextEditorInfo | undefined;
75
81
  /** 监听camera变化 */
76
82
  onCameraChange(cameraOpt: ICameraOpt, viewId: string): void;
77
83
  /** 插入文本 */
@@ -104,6 +110,11 @@ export declare class TextEditorManagerImpl implements TextEditorManager {
104
110
  checkLocalTextBlur: import("lodash").DebouncedFunc<() => void>;
105
111
  checkEmptyTextBlur(): void;
106
112
  onCameraChange(cameraOpt: ICameraOpt, viewId: string): void;
113
+ deriveTextEditorInfoFromServiceData(data: IWorkerMessage, options?: {
114
+ canWorker?: boolean;
115
+ canSync?: boolean;
116
+ updateView?: boolean;
117
+ }): TextEditorInfo | undefined;
107
118
  onServiceDerive(data: IWorkerMessage): void;
108
119
  updateForViewEdited(activeId: string, info: TextEditorInfo): void;
109
120
  active(workId: string, undoTickerId?: number): void;
@@ -134,7 +134,11 @@ export declare enum EPostMessageType {
134
134
  /** delete background svg */
135
135
  BackgroundSVGDelete = 34,
136
136
  /** 选择框过渡动画 */
137
- SelectorTransform = 35
137
+ SelectorTransform = 35,
138
+ /** 查询字体库是否已加载 */
139
+ CheckFontFace = 36,
140
+ /** 内部文字刷新绘制完成 */
141
+ RefreshTextRender = 37
138
142
  }
139
143
  export type ECanvasContextType = "webgl2" | "webgl" | "2d";
140
144
  export declare enum ECanvasShowType {
@@ -0,0 +1,48 @@
1
+ import type { BaseApplianceManager } from "../plugin/baseApplianceManager";
2
+ import type { ApplianceFontFaceLoadState } from "../plugin/types";
3
+ import type { IMainMessage } from "./types";
4
+ type FontFaceManagerProps = {
5
+ control: BaseApplianceManager;
6
+ getFullWorker: () => Worker | undefined;
7
+ getSubWorker: () => Worker | undefined;
8
+ };
9
+ export declare class FontFaceManager {
10
+ private readonly control;
11
+ private readonly getFullWorker;
12
+ private readonly getSubWorker;
13
+ private readonly indexDBUtils;
14
+ private fontFaceWorkerResolveMap;
15
+ private fontFacesLoadingPromise?;
16
+ private lastFontFacesAlreadyReady;
17
+ private fontFaceLoadStateStarted;
18
+ private documentFontsReadyLogged;
19
+ constructor(props: FontFaceManagerProps);
20
+ destroy(): void;
21
+ private get Logger();
22
+ waitDocumentFontsReady(reason: string): Promise<void>;
23
+ clearFontCache(): Promise<boolean>;
24
+ getFontCacheStatus(): Promise<{
25
+ count: number;
26
+ totalSize: number;
27
+ }>;
28
+ private createFontFaceRequestId;
29
+ private getFontFaceCssValue;
30
+ private isDocumentFontFaceReady;
31
+ private areDocumentFontFacesReady;
32
+ private resolveFontFaceWorkerRequest;
33
+ private requestFontFaceWorker;
34
+ private getWorkers;
35
+ private areWorkerFontFacesReady;
36
+ private waitWorkerReadyForFontFaces;
37
+ private getRuntimeFontFacesReadyState;
38
+ private loadFontFaceBuffers;
39
+ private setDocumentFontFaces;
40
+ private setWorkerFontFaces;
41
+ private doLoadFontFaces;
42
+ getLastFontFacesAlreadyReady(): boolean;
43
+ loadFontFaces(): Promise<ApplianceFontFaceLoadState>;
44
+ private loadFontInMainThread;
45
+ private validateFontData;
46
+ handleWorkerMessage(data: IMainMessage): boolean;
47
+ }
48
+ export {};
@@ -161,10 +161,9 @@ export declare class MasterControlForWorker extends MasterController {
161
161
  private willSelectorWorkId?;
162
162
  private isLockSentEventCursor;
163
163
  private getVNodeInfoResolveMap;
164
- private setFontFacesResolve;
164
+ private refreshTextRenderResolveMap;
165
+ private readonly fontFaceManager;
165
166
  private isLocalWorkActive;
166
- /** IndexedDB工具类实例 */
167
- private readonly indexDBUtils;
168
167
  private markmapIdResolveMap;
169
168
  constructor(props: BaseSubWorkModuleProps);
170
169
  get isBezier(): boolean;
@@ -189,19 +188,17 @@ export declare class MasterControlForWorker extends MasterController {
189
188
  private useBackgroundThread;
190
189
  private useMainThread;
191
190
  on(): Promise<void>;
192
- /**
193
- * 清理字体缓存数据库
194
- */
195
191
  clearFontCache(): Promise<boolean>;
196
- /**
197
- * 获取字体缓存状态
198
- */
199
192
  getFontCacheStatus(): Promise<{
200
193
  count: number;
201
194
  totalSize: number;
202
195
  }>;
203
- loadFontInMainThread(url: string): Promise<ArrayBuffer | undefined>;
204
- private validateFontData;
196
+ getLastFontFacesAlreadyReady(): boolean;
197
+ loadFontFaces(): Promise<import("..").ApplianceFontFaceLoadState>;
198
+ private createInternalRequestId;
199
+ private waitRefreshTextRender;
200
+ private resolveRefreshTextRender;
201
+ refreshTextRenderForWorker(tasks: Array<Pick<IWorkerMessage, "viewId" | "scenePath" | "workId" | "opt">>): Promise<boolean>;
205
202
  private buildPropertyAppliedData;
206
203
  clearReRenders(num?: number): void;
207
204
  get isBusy(): boolean;
@@ -318,6 +318,8 @@ export type IServiceWorkItem = {
318
318
  isDiff?: boolean;
319
319
  imageBitmap?: ImageBitmap;
320
320
  isEnableCursor?: boolean;
321
+ requestId?: string;
322
+ refreshTextRender?: boolean;
321
323
  };
322
324
  export type ILocalWorkItem = {
323
325
  toolsType: EToolsKey;
@@ -7,7 +7,7 @@ export declare class IndexDBUtils {
7
7
  private constructor();
8
8
  static getInstance(): IndexDBUtils;
9
9
  initFontDB(): Promise<IDBDatabase>;
10
- getFontFromDB(fontFamily: string): Promise<ArrayBuffer | null>;
10
+ getFontFromDB(fontFamily: string, url?: string): Promise<ArrayBuffer | null>;
11
11
  saveFontToDB(fontFamily: string, url: string, buffer: ArrayBuffer): Promise<boolean>;
12
12
  clearFontCache(): Promise<boolean>;
13
13
  getFontCacheStatus(): Promise<{
@@ -20,8 +20,10 @@ export declare class WorkerManager<T extends WorkThreadEngineBase> {
20
20
  protected workThreadMap: Map<string, T>;
21
21
  constructor(worker: Worker, type: EWorkThreadType);
22
22
  private init;
23
+ private getFontFaceCssValue;
23
24
  private setFontFaces;
24
25
  private isFontAvailable;
26
+ private areFontFacesAvailable;
25
27
  private register;
26
28
  post: (msg: IBatchMainMessage, transfer?: Transferable[]) => void;
27
29
  }