@netless/appliance-plugin 1.1.37 → 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.
- package/READMA.zh-CN.md +9 -4
- package/README.md +7 -2
- package/dist/appliance-plugin.js +1 -1
- package/dist/appliance-plugin.mjs +1 -1
- package/dist/assets/fullWorker-mk6jXaYV.js +593 -0
- package/dist/assets/subWorker-BTJNF38L.js +593 -0
- package/dist/bridge-8hheCrpO.mjs +67 -0
- package/dist/bridge-D7r_MSkR.js +1 -0
- package/dist/bridge.js +1 -1
- package/dist/bridge.mjs +1 -1
- package/dist/component/textEditor/manager.d.ts +11 -0
- package/dist/component/textEditor/utils.d.ts +11 -0
- package/dist/core/enum.d.ts +5 -1
- package/dist/core/fontFace.d.ts +48 -0
- package/dist/core/mainEngine.d.ts +8 -11
- package/dist/core/types.d.ts +2 -0
- package/dist/core/utils/indexDB.d.ts +1 -1
- package/dist/core/worker/workerManager.d.ts +2 -0
- package/dist/fullWorker.js +103 -103
- package/dist/{index-CNcfXUx4.mjs → index-B8f2dYn9.mjs} +1201 -1193
- package/dist/{index-nxeYRf5P.mjs → index-BFAazxId.mjs} +1 -1
- package/dist/{index-D-4DoHbs.mjs → index-BULYNDpO.mjs} +1 -1
- package/dist/{index-BCNBmzwR.mjs → index-BkG3emHj.mjs} +7970 -7224
- package/dist/{index-Bl1tLXFo.js → index-Bx3AKYbY.js} +1 -1
- package/dist/{index-DKbaEDea.js → index-C9pp5WWl.js} +1 -1
- package/dist/{index-r9ho55PA.js → index-CuPiwtu4.js} +1 -1
- package/dist/index-DF1p4jdp.js +1 -0
- package/dist/index-DLcwwCLh.js +1 -0
- package/dist/{index-DqCdgRfA.js → index-R_b0AlP5.js} +1 -1
- package/dist/{index-TIV0naEi.mjs → index-VZTgaAnB.mjs} +7867 -7121
- package/dist/{index-rYcPxCxx.mjs → index-cAAZZmgn.mjs} +1201 -1193
- package/dist/plugin/applianceMultiPlugin.d.ts +1 -1
- package/dist/plugin/applianceSinglePlugin.d.ts +1 -1
- package/dist/plugin/baseApplianceManager.d.ts +25 -1
- package/dist/plugin/baseViewContainerManager.d.ts +5 -1
- package/dist/plugin/displayerView.d.ts +2 -1
- package/dist/plugin/types.d.ts +31 -0
- package/dist/subWorker.js +103 -103
- package/package.json +1 -1
- package/dist/assets/fullWorker-BnxU9bnt.js +0 -593
- package/dist/assets/subWorker-BsTroxB8.js +0 -593
- package/dist/bridge-C7tN2qjT.js +0 -1
- package/dist/bridge-DmxbEjIC.mjs +0 -67
- package/dist/index-09gdXQ2w.js +0 -1
- package/dist/index-BW3Xkxk-.js +0 -1
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
var o = Object.defineProperty;
|
|
2
|
+
var l = (s, e, t) => e in s ? o(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
|
|
3
|
+
var i = (s, e, t) => l(s, typeof e != "symbol" ? e + "" : e, t);
|
|
4
|
+
let r;
|
|
5
|
+
function c(s) {
|
|
6
|
+
r = s;
|
|
7
|
+
}
|
|
8
|
+
function u() {
|
|
9
|
+
if (!r)
|
|
10
|
+
throw new Error(
|
|
11
|
+
"[@netless/appliance-plugin/bridge] white-web-sdk runtime has not been bound yet."
|
|
12
|
+
);
|
|
13
|
+
return r;
|
|
14
|
+
}
|
|
15
|
+
const h = "/assets/fullWorker-mk6jXaYV.js", g = "/assets/subWorker-BTJNF38L.js";
|
|
16
|
+
class d {
|
|
17
|
+
constructor() {
|
|
18
|
+
i(this, "control");
|
|
19
|
+
i(this, "_listeners", {});
|
|
20
|
+
}
|
|
21
|
+
_inject(e) {
|
|
22
|
+
this.control = e;
|
|
23
|
+
}
|
|
24
|
+
_onEvent(e, t) {
|
|
25
|
+
this._listeners[e] && this._listeners[e](...t);
|
|
26
|
+
}
|
|
27
|
+
callbacks(e, t) {
|
|
28
|
+
this._listeners[e] = t;
|
|
29
|
+
}
|
|
30
|
+
removeCallback(e) {
|
|
31
|
+
delete this._listeners[e];
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
class k {
|
|
35
|
+
constructor(e) {
|
|
36
|
+
i(this, "control");
|
|
37
|
+
i(this, "worker");
|
|
38
|
+
i(this, "publicMsgEmitter");
|
|
39
|
+
i(this, "plugins", /* @__PURE__ */ new Map());
|
|
40
|
+
const { control: t, publicMsgEmitter: n } = e;
|
|
41
|
+
this.control = t, this.publicMsgEmitter = n, this.worker = t.worker;
|
|
42
|
+
}
|
|
43
|
+
use(e) {
|
|
44
|
+
this.plugins.set(e.kind, e), e._inject(this.control), e.onCreate();
|
|
45
|
+
}
|
|
46
|
+
destroy() {
|
|
47
|
+
this.plugins.forEach((e) => {
|
|
48
|
+
this.plugins.delete(e.kind), e.onDestroy();
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
dispatchPluginEvent(e, ...t) {
|
|
52
|
+
this.plugins.forEach((n) => {
|
|
53
|
+
n._onEvent(e, t);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
async function b(s) {
|
|
58
|
+
return c(s), import("./index-BkG3emHj.mjs").then((e) => e.a8);
|
|
59
|
+
}
|
|
60
|
+
export {
|
|
61
|
+
k as P,
|
|
62
|
+
d as a,
|
|
63
|
+
h as f,
|
|
64
|
+
u as g,
|
|
65
|
+
b as l,
|
|
66
|
+
g as s
|
|
67
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
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-
|
|
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
|
@@ -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;
|
|
@@ -4,6 +4,17 @@ export declare function getTextEditorType(toolsKey: EToolsKey): ETextEditorType
|
|
|
4
4
|
export declare function escapeCSS(id: string): string;
|
|
5
5
|
export declare function ensureTextEditorCursorTarget(currentDiv: HTMLDivElement): Text | ChildNode;
|
|
6
6
|
export declare function setTextEditorSelectionToEnd(sel: Selection, currentDiv: HTMLDivElement): void;
|
|
7
|
+
export declare function resolveTextEditorPointOffset(currentDiv: HTMLDivElement, point: {
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
}): {
|
|
11
|
+
node: Text;
|
|
12
|
+
offset: number;
|
|
13
|
+
} | undefined;
|
|
14
|
+
export declare function setTextEditorSelectionFromPoint(sel: Selection, currentDiv: HTMLDivElement, point: {
|
|
15
|
+
x: number;
|
|
16
|
+
y: number;
|
|
17
|
+
}): boolean;
|
|
7
18
|
export declare function hasSelectionInTextEditor(selection: Selection | null | undefined, currentDiv: HTMLDivElement): boolean;
|
|
8
19
|
export declare function normalizeTextEditorRootLines(currentDiv: HTMLDivElement): {
|
|
9
20
|
changed: boolean;
|
package/dist/core/enum.d.ts
CHANGED
|
@@ -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
|
|
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
|
-
|
|
204
|
-
|
|
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;
|
package/dist/core/types.d.ts
CHANGED
|
@@ -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
|
}
|