@netless/appliance-plugin 1.1.1 → 1.1.3-4.beta.0
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 +993 -0
- package/README.md +963 -176
- package/cdn/cdn.js +1 -1
- package/cdn/fullWorker-Dwf7nY.js +486 -0
- package/cdn/subWorker-DXBnNm.js +486 -0
- package/dist/ObserverMap-BudneEfB.mjs +58 -0
- package/dist/ObserverMap-DTz9zucn.js +1 -0
- package/dist/appliance-plugin.js +1 -1
- package/dist/appliance-plugin.mjs +27 -18
- package/dist/cdn.d.ts +2 -2
- package/dist/collector/base.d.ts +3 -1
- package/dist/collector/collector.d.ts +57 -15
- package/dist/collector/index.d.ts +4 -4
- package/dist/collector/types.d.ts +49 -16
- package/dist/component/autoDraw/index.d.ts +0 -0
- package/dist/component/miniMap/index.d.ts +1 -0
- package/dist/component/miniMap/manager.d.ts +37 -0
- package/dist/component/miniMap/view.d.ts +14 -0
- package/dist/component/svg/base.d.ts +30 -0
- package/dist/component/svg/manager.d.ts +44 -0
- package/dist/component/svg/markmap.d.ts +41 -0
- package/dist/component/svg/mermaid-check.d.ts +18 -0
- package/dist/component/svg/mermaid-loader.d.ts +29 -0
- package/dist/component/svg/mermaid.d.ts +109 -0
- package/dist/component/svg/snapshot.d.ts +31 -0
- package/dist/component/svg/svgElemt.d.ts +43 -0
- package/dist/component/svg/svgToImageLoader.d.ts +25 -0
- package/dist/component/svg/types.d.ts +10 -0
- package/dist/component/svg/utils.d.ts +9 -0
- package/dist/component/svg/vNodeManager.d.ts +28 -0
- package/dist/component/textEditor/index.d.ts +2 -2
- package/dist/component/textEditor/manager.d.ts +22 -3
- package/dist/component/textEditor/types.d.ts +5 -4
- package/dist/component/textEditor/utils.d.ts +1 -0
- package/dist/component/textEditor/view.d.ts +28 -48
- package/dist/core/autoShape/index.d.ts +12 -0
- package/dist/core/autoShape/mapper.d.ts +3 -0
- package/dist/core/autoShape/recognizer.d.ts +8 -0
- package/dist/core/autoShape/registry.d.ts +2 -0
- package/dist/core/autoShape/templates.d.ts +2 -0
- package/dist/core/autoShape/types.d.ts +78 -0
- package/dist/core/backGroundThread/index.d.ts +35 -0
- package/dist/core/backGroundThread/types.d.ts +12 -0
- package/dist/core/enum.d.ts +74 -13
- package/dist/core/index.d.ts +3 -3
- package/dist/core/mainEngine.d.ts +101 -27
- package/dist/core/mainThread/base.d.ts +10 -6
- package/dist/core/mainThread/index.d.ts +2 -2
- package/dist/core/mainThread/snapshotThread.d.ts +8 -4
- package/dist/core/mainThread/subLocalThread.d.ts +21 -16
- package/dist/core/mainThread/subServiceThread.d.ts +2 -2
- package/dist/core/mainThread/subTopThread.d.ts +2 -2
- package/dist/core/msgEvent/base.d.ts +1 -0
- package/dist/core/msgEvent/baseForBackgroundThread.d.ts +9 -0
- package/dist/core/msgEvent/baseForWorker.d.ts +2 -1
- package/dist/core/msgEvent/copyNode/forBackgroundThread.d.ts +8 -0
- package/dist/core/msgEvent/copyNode/forMain.d.ts +2 -2
- package/dist/core/msgEvent/forBackgroundThread.d.ts +12 -0
- package/dist/core/msgEvent/forMainThread.d.ts +4 -4
- package/dist/core/msgEvent/forWorker.d.ts +4 -4
- package/dist/core/msgEvent/index.d.ts +4 -4
- package/dist/core/msgEvent/rotateNode/forMain.d.ts +2 -2
- package/dist/core/msgEvent/scaleNode/forMain.d.ts +2 -2
- package/dist/core/msgEvent/setColor/forMain.d.ts +2 -2
- package/dist/core/msgEvent/setPoint/forMain.d.ts +2 -2
- package/dist/core/msgEvent/setZIndex/forMain.d.ts +7 -0
- package/dist/core/msgEvent/translateNode/forMain.d.ts +2 -2
- package/dist/core/plugin.d.ts +49 -0
- package/dist/core/renderCotrol.d.ts +15 -28
- package/dist/core/tools/arrow.d.ts +10 -22
- package/dist/core/tools/base.d.ts +52 -9
- package/dist/core/tools/ellipse.d.ts +10 -22
- package/dist/core/tools/image.d.ts +9 -7
- package/dist/core/tools/index.d.ts +14 -13
- package/dist/core/tools/laserPen.d.ts +1 -1
- package/dist/core/tools/pencil.d.ts +18 -8
- package/dist/core/tools/pencilEraser.d.ts +36 -41
- package/dist/core/tools/pencilEraserBitMap.d.ts +20 -27
- package/dist/core/tools/polygon.d.ts +10 -22
- package/dist/core/tools/rectangle.d.ts +10 -22
- package/dist/core/tools/selector.d.ts +42 -24
- package/dist/core/tools/shadowSvg.d.ts +36 -0
- package/dist/core/tools/speechBalloon.d.ts +10 -22
- package/dist/core/tools/star.d.ts +10 -22
- package/dist/core/tools/straight.d.ts +10 -22
- package/dist/core/tools/text.d.ts +2 -1
- package/dist/core/tools/utils.d.ts +11 -12
- package/dist/core/types.d.ts +98 -18
- package/dist/core/utils/ObserverMap.d.ts +19 -0
- package/dist/core/utils/clipper.d.ts +8 -0
- package/dist/core/utils/getSvgPathFromPoints.d.ts +1 -1
- package/dist/core/utils/index.d.ts +6 -5
- package/dist/core/utils/indexDB.d.ts +17 -0
- package/dist/core/utils/math.d.ts +1 -0
- package/dist/core/utils/polygonUtils.d.ts +8 -0
- package/dist/core/utils/primitives/Box2d.d.ts +4 -4
- package/dist/core/utils/proxy.d.ts +3 -4
- package/dist/core/utils/spriteNode.d.ts +8 -1
- package/dist/core/vNodeManager.d.ts +13 -9
- package/dist/core/worker/base.d.ts +43 -21
- package/dist/core/worker/fullWorkerLocal.d.ts +29 -25
- package/dist/core/worker/fullWorkerService.d.ts +9 -9
- package/dist/core/worker/simpleWorker.d.ts +28 -0
- package/dist/core/worker/snapshotWork.d.ts +27 -0
- package/dist/core/worker/subWorkerLocal.d.ts +2 -3
- package/dist/core/worker/subWorkerTopLayer.d.ts +2 -2
- package/dist/core/worker/workerManager.d.ts +52 -36
- package/dist/cursors/index.d.ts +9 -11
- package/dist/displayer/const.d.ts +1 -0
- package/dist/displayer/cursor/index.d.ts +1 -0
- package/dist/displayer/floatBar/dragBox/index.d.ts +9 -3
- package/dist/displayer/floatBar/index.d.ts +2 -1
- package/dist/displayer/floatBtns/index.d.ts +2 -0
- package/dist/displayer/utils.d.ts +1 -0
- package/dist/extend.d.ts +1 -0
- package/dist/fullWorker.js +242 -195
- package/dist/index-BCI9ZJly.mjs +9884 -0
- package/dist/index-CRWsZj1z.mjs +16601 -0
- package/dist/index-D2XqHUO-.js +1 -0
- package/dist/index-Dfujq78k.js +3 -0
- package/dist/index-TQPJgovl.mjs +1263 -0
- package/dist/index-ZvQrVWzu.js +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/plugin/applianceMultiPlugin.d.ts +2 -3
- package/dist/plugin/applianceSinglePlugin.d.ts +3 -4
- package/dist/plugin/baseApplianceManager.d.ts +58 -14
- package/dist/plugin/baseViewContainerManager.d.ts +72 -73
- package/dist/plugin/const.d.ts +2 -22
- package/dist/plugin/displayerView.d.ts +18 -4
- package/dist/plugin/index.d.ts +1 -0
- package/dist/plugin/multi/applianceMultiManager.d.ts +0 -1
- package/dist/plugin/multi/containerManager.d.ts +8 -1
- package/dist/plugin/multi/displayer/appViewDisplayerManager.d.ts +3 -2
- package/dist/plugin/multi/displayer/mainViewDisplayerManager.d.ts +4 -2
- package/dist/plugin/single/displayer/mainViewDisplayerManager.d.ts +4 -3
- package/dist/plugin/types.d.ts +393 -32
- package/dist/style.css +1 -1
- package/dist/subWorker.js +242 -195
- package/dist/svgToImageLoader-DPRAAhwW.js +1 -0
- package/dist/svgToImageLoader-mXH53h-l.mjs +18 -0
- package/dist/undo/index.d.ts +25 -31
- package/dist/undo/proxyArray.d.ts +37 -0
- package/package.json +31 -9
- package/cdn/fullWorker-BOTjIN.js +0 -439
- package/cdn/subWorker-CiM9eF.js +0 -439
- package/dist/collector/eventCollector.d.ts +0 -31
- package/dist/collector/magixEventCollector.d.ts +0 -31
- package/dist/core/mainThread/workerMainThread.d.ts +0 -99
- package/dist/core/msgEvent/deleteNode/forMainThread.d.ts +0 -6
- package/dist/core/msgEvent/deleteNode/forWorker.d.ts +0 -6
- package/dist/index-AeMVHd25.mjs +0 -2497
- package/dist/index-BJ92LABo.mjs +0 -14958
- package/dist/index-CjuLwRGu.js +0 -1
- package/dist/index-DqtwzzbR.js +0 -1
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { Transformer } from "./markmap";
|
|
2
|
+
/**
|
|
3
|
+
* Mermaid 管理器(单例模式)
|
|
4
|
+
* 统一管理 mermaid 代码块的存储、HTML 生成和 markdown 扩展
|
|
5
|
+
* 使用 workId 作为命名空间,避免多个 ISvgElement 实例互相影响
|
|
6
|
+
*/
|
|
7
|
+
export declare class MermaidManager {
|
|
8
|
+
private static instance;
|
|
9
|
+
private mermaidCodeBlocksByWorkId;
|
|
10
|
+
private constructor();
|
|
11
|
+
/**
|
|
12
|
+
* 获取 MermaidManager 单例实例
|
|
13
|
+
*/
|
|
14
|
+
static getInstance(): MermaidManager;
|
|
15
|
+
/**
|
|
16
|
+
* 生成唯一的 mermaid ID
|
|
17
|
+
*/
|
|
18
|
+
generateId(): string;
|
|
19
|
+
/**
|
|
20
|
+
* 生成 mermaid HTML 容器
|
|
21
|
+
* @param id mermaid ID
|
|
22
|
+
* @param mermaidCode mermaid 代码(可选,如果提供则存储)
|
|
23
|
+
* @param workId 工作 ID(用于命名空间隔离)
|
|
24
|
+
* @returns HTML 字符串
|
|
25
|
+
*/
|
|
26
|
+
createContainer(id: string, mermaidCode?: string, workId?: string): string;
|
|
27
|
+
/**
|
|
28
|
+
* 获取 mermaid 代码块
|
|
29
|
+
* @param id mermaid ID
|
|
30
|
+
* @param workId 工作 ID(用于命名空间隔离)
|
|
31
|
+
* @returns mermaid 代码或 undefined
|
|
32
|
+
*/
|
|
33
|
+
getCode(id: string, workId: string): string | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* 清空指定 workId 的 mermaid 代码块
|
|
36
|
+
* @param workId 工作 ID(如果未提供,清空所有)
|
|
37
|
+
*/
|
|
38
|
+
clear(workId?: string): void;
|
|
39
|
+
/**
|
|
40
|
+
* 扩展 markdown-it 的渲染规则,处理 mermaid 代码块
|
|
41
|
+
* @param transformer Transformer 实例
|
|
42
|
+
* @param workId 工作 ID(用于命名空间隔离)
|
|
43
|
+
*/
|
|
44
|
+
extendMarkdown(transformer: Transformer, workId: string): void;
|
|
45
|
+
static generateId(): string;
|
|
46
|
+
static createContainer(id: string, mermaidCode?: string, workId?: string): string;
|
|
47
|
+
static getCode(id: string, workId: string): string | undefined;
|
|
48
|
+
static clear(workId?: string): void;
|
|
49
|
+
static extendMarkdown(transformer: Transformer, workId: string): void;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Mermaid 渲染器工具类
|
|
53
|
+
* 负责处理 markmap 中的 mermaid 图表渲染相关逻辑
|
|
54
|
+
*/
|
|
55
|
+
export declare class MermaidRenderer {
|
|
56
|
+
/**
|
|
57
|
+
* 检查 markmap 节点及其子节点是否包含 mermaid 代码块
|
|
58
|
+
* @param node markmap 节点数据
|
|
59
|
+
* @returns 如果节点或其子节点包含 mermaid 代码块,返回 true
|
|
60
|
+
*/
|
|
61
|
+
static checkNodeHasMermaid(node: any): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* 等待 DOM 更新后渲染 Mermaid 图表
|
|
64
|
+
* @param svgElement SVG 元素
|
|
65
|
+
* @param workId 工作 ID
|
|
66
|
+
* @returns Promise<void>
|
|
67
|
+
*/
|
|
68
|
+
static renderMermaidAfterDOMUpdate(svgElement: SVGSVGElement, workId: string): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* 渲染所有 mermaid 容器中的图表
|
|
71
|
+
* @param svgElement SVG 元素
|
|
72
|
+
* @param workId 工作 ID
|
|
73
|
+
* @returns Promise<void>
|
|
74
|
+
*/
|
|
75
|
+
static renderMermaidBlocks(svgElement: SVGSVGElement, workId: string): Promise<void>;
|
|
76
|
+
/**
|
|
77
|
+
* 检测是否是 Safari 浏览器
|
|
78
|
+
* @returns 如果是 Safari 返回 true,否则返回 false
|
|
79
|
+
*/
|
|
80
|
+
static isSafari(): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* 将 mermaid SVG 从 foreignObject 移出,直接添加到 markmap SVG 中(Safari 兼容性处理)
|
|
83
|
+
* 克隆 mermaid SVG 元素,设置正确的尺寸和位置,然后将 foreignObject 中的 mermaid-container 透明度设为 0
|
|
84
|
+
* @param svgElement markmap SVG 元素
|
|
85
|
+
* @returns Promise<void>
|
|
86
|
+
*/
|
|
87
|
+
static transformMermaidSvgToMarkmapSvg(svgElement: SVGSVGElement): Promise<void>;
|
|
88
|
+
/**
|
|
89
|
+
* 在 root 数据中注入 mermaid HTML
|
|
90
|
+
* 找到包含 mermaid 代码块的节点,将 HTML 添加到其 content 中
|
|
91
|
+
* @param root markmap root 数据
|
|
92
|
+
* @param markdown markdown 文本
|
|
93
|
+
* @param workId 工作 ID(用于命名空间隔离)
|
|
94
|
+
* @returns 修改后的 root 数据
|
|
95
|
+
*/
|
|
96
|
+
static injectMermaidHtml(root: any, markdown: string, workId: string): any;
|
|
97
|
+
/**
|
|
98
|
+
* 解码 HTML 实体
|
|
99
|
+
* @param str HTML 字符串
|
|
100
|
+
* @returns 解码后的字符串
|
|
101
|
+
*/
|
|
102
|
+
private static decodeHtmlEntities;
|
|
103
|
+
/**
|
|
104
|
+
* 检查 divElement 中是否包含 mermaid SVG 元素
|
|
105
|
+
* @param divElement HTMLDivElement 或 SVGSVGElement 元素
|
|
106
|
+
* @returns 如果包含 mermaid SVG 元素,返回 true,否则返回 false
|
|
107
|
+
*/
|
|
108
|
+
static hasMermaidSvg(divElement: HTMLDivElement | SVGSVGElement): boolean;
|
|
109
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { IBackgroundThreadInitOption } from "../../core/backGroundThread";
|
|
2
|
+
import { MasterControlForWorker } from "../../core/mainEngine";
|
|
3
|
+
import { BaseShapeTool } from "../../core/tools";
|
|
4
|
+
import { ICameraOpt, IWorkerMessage } from "../../core/types";
|
|
5
|
+
import { VBackgroundNodeManager } from "./vNodeManager";
|
|
6
|
+
import { View } from "../../plugin/types";
|
|
7
|
+
import { IMarkmapOptions } from "./markmap";
|
|
8
|
+
export declare class BackgroundSnapshotThreadImpl {
|
|
9
|
+
viewId: string;
|
|
10
|
+
fullLayer: HTMLDivElement;
|
|
11
|
+
master: MasterControlForWorker;
|
|
12
|
+
vNodes: VBackgroundNodeManager;
|
|
13
|
+
private cameraOpt?;
|
|
14
|
+
readonly opt: IBackgroundThreadInitOption;
|
|
15
|
+
workShapes: Map<string, BaseShapeTool>;
|
|
16
|
+
get camera(): ICameraOpt;
|
|
17
|
+
get view(): View | undefined;
|
|
18
|
+
get markmapOptions(): Partial<IMarkmapOptions> | undefined;
|
|
19
|
+
constructor(viewId: string, opt: IBackgroundThreadInitOption);
|
|
20
|
+
createOffscreenCanvas(opt: IBackgroundThreadInitOption): void;
|
|
21
|
+
setCameraOpt(cameraOpt: ICameraOpt): Promise<void>;
|
|
22
|
+
getPagePoint(x: number, y: number): {
|
|
23
|
+
x: number;
|
|
24
|
+
y: number;
|
|
25
|
+
};
|
|
26
|
+
getSnapshot(data: IWorkerMessage): Promise<void>;
|
|
27
|
+
private createWorkShapeNode;
|
|
28
|
+
private setFullWork;
|
|
29
|
+
runFullWork(data: IWorkerMessage): Promise<void>;
|
|
30
|
+
destroy(): void;
|
|
31
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { EToolsKey, ISVGOptions } from "../../core";
|
|
2
|
+
import { ISVGElementToolProps } from "./types";
|
|
3
|
+
import { VBackgroundNodeManager } from "./vNodeManager";
|
|
4
|
+
import type { BackgroundThreadEngineImpl } from "./manager";
|
|
5
|
+
import { Markmap } from "./markmap";
|
|
6
|
+
import type { Collector } from "../../collector";
|
|
7
|
+
import type { BackgroundSnapshotThreadImpl } from "./snapshot";
|
|
8
|
+
export declare class ISvgElement {
|
|
9
|
+
readonly toolsType: EToolsKey;
|
|
10
|
+
readonly vNodes: VBackgroundNodeManager;
|
|
11
|
+
private workOptions;
|
|
12
|
+
readonly workId: string;
|
|
13
|
+
markmapInstance: ReturnType<typeof Markmap.create> | null;
|
|
14
|
+
private isDestroyed;
|
|
15
|
+
private element;
|
|
16
|
+
readonly manager: BackgroundThreadEngineImpl | BackgroundSnapshotThreadImpl;
|
|
17
|
+
get fullLayer(): HTMLDivElement;
|
|
18
|
+
get collector(): Collector | undefined;
|
|
19
|
+
get scenePath(): string | undefined;
|
|
20
|
+
constructor(props: ISVGElementToolProps);
|
|
21
|
+
init(): Promise<void>;
|
|
22
|
+
private createElement;
|
|
23
|
+
private render;
|
|
24
|
+
private isSameSize;
|
|
25
|
+
private isSamePosition;
|
|
26
|
+
private isSameZIndex;
|
|
27
|
+
private isSameState;
|
|
28
|
+
private isSameData;
|
|
29
|
+
private updateElementPosition;
|
|
30
|
+
private updateSvg;
|
|
31
|
+
private fit;
|
|
32
|
+
private serializeData;
|
|
33
|
+
private transformState;
|
|
34
|
+
updateCamera(): Promise<void>;
|
|
35
|
+
setWorkOptions(toolsOpt: ISVGOptions, forceRender?: boolean): Promise<void>;
|
|
36
|
+
destroy(): void;
|
|
37
|
+
getRectFromLayer(): {
|
|
38
|
+
x: number;
|
|
39
|
+
y: number;
|
|
40
|
+
w: number;
|
|
41
|
+
h: number;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SVG to Image 库的按需加载工具
|
|
3
|
+
* 使用 dom-to-image 库,用于将包含 SVG foreignObject 的 DOM 转换为图片
|
|
4
|
+
* dom-to-image 支持 SVG foreignObject,可以可靠地将 DOM 节点转换为图片
|
|
5
|
+
*/
|
|
6
|
+
type DomToImageLib = {
|
|
7
|
+
toPng: (node: Node, options?: any) => Promise<string>;
|
|
8
|
+
toBlob: (node: Node, options?: any) => Promise<Blob>;
|
|
9
|
+
toJpeg: (node: Node, options?: any) => Promise<string>;
|
|
10
|
+
toSvg: (node: Node, options?: any) => Promise<string>;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* 按需加载 svg-to-image 库(使用 dom-to-image)
|
|
14
|
+
* @returns Promise<DomToImageLib> 返回加载的库对象
|
|
15
|
+
*/
|
|
16
|
+
export declare function loadSvgToImageLib(): Promise<DomToImageLib>;
|
|
17
|
+
/**
|
|
18
|
+
* 检查库是否已加载
|
|
19
|
+
*/
|
|
20
|
+
export declare function isSvgToImageLibLoaded(): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* 获取已加载的库(如果未加载则返回 null)
|
|
23
|
+
*/
|
|
24
|
+
export declare function getSvgToImageLib(): DomToImageLib | null;
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ISVGOptions } from "../../core";
|
|
2
|
+
import { BackgroundThreadEngineImpl } from "./manager";
|
|
3
|
+
import { BackgroundSnapshotThreadImpl } from "./snapshot";
|
|
4
|
+
import { VBackgroundNodeManager } from "./vNodeManager";
|
|
5
|
+
export interface ISVGElementToolProps {
|
|
6
|
+
workId: string;
|
|
7
|
+
toolsOpt: ISVGOptions;
|
|
8
|
+
vNodes: VBackgroundNodeManager;
|
|
9
|
+
manager: BackgroundThreadEngineImpl | BackgroundSnapshotThreadImpl;
|
|
10
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function loadAllImages(element: HTMLDivElement): Promise<unknown[]>;
|
|
2
|
+
export declare function loadSvg(svg: SVGSVGElement): Promise<void>;
|
|
3
|
+
export declare function loadAllSvgs(divElement: HTMLDivElement): Promise<void>;
|
|
4
|
+
export declare function loadMermaidSvg(divElement: HTMLDivElement | SVGSVGElement): Promise<void>;
|
|
5
|
+
export declare function divToImageElement(container: HTMLDivElement, options?: {
|
|
6
|
+
width?: number;
|
|
7
|
+
height?: number;
|
|
8
|
+
scale?: number;
|
|
9
|
+
}): Promise<HTMLImageElement | null>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ObserverMap } from "../../core/utils/ObserverMap";
|
|
2
|
+
import { ISvgElement } from "./svgElemt";
|
|
3
|
+
export interface IBackgroundNodeMapItem {
|
|
4
|
+
name: string;
|
|
5
|
+
workShape: ISvgElement;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* 背景节点管理器
|
|
9
|
+
* 覆盖父类的 curNodeMap 类型,使用 IBackgroundNodeMapItem 作为节点项类型
|
|
10
|
+
* IBackgroundNodeMapItem 是 BaseNodeMapItem 的简化版本,专门用于背景节点管理
|
|
11
|
+
*/
|
|
12
|
+
export declare class VBackgroundNodeManager {
|
|
13
|
+
viewId: string;
|
|
14
|
+
fullLayer?: HTMLDivElement;
|
|
15
|
+
curNodeMap: ObserverMap<string, IBackgroundNodeMapItem>;
|
|
16
|
+
constructor(viewId: string);
|
|
17
|
+
init(fullLayer: HTMLDivElement): void;
|
|
18
|
+
get(name: string): IBackgroundNodeMapItem | undefined;
|
|
19
|
+
setInfo(name: string, info: Partial<IBackgroundNodeMapItem>): void;
|
|
20
|
+
getNodeRectFormShape(key: string): {
|
|
21
|
+
x: number;
|
|
22
|
+
y: number;
|
|
23
|
+
w: number;
|
|
24
|
+
h: number;
|
|
25
|
+
} | undefined;
|
|
26
|
+
delete(name: string): void;
|
|
27
|
+
clear(): void;
|
|
28
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
1
|
+
export * from "./types";
|
|
2
|
+
export * from "./manager";
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import { TextEditorInfo, TextOptions } from "./types";
|
|
2
2
|
import { BaseSubWorkModuleProps } from "../../plugin/types";
|
|
3
|
-
import { ICameraOpt, IWorkerMessage } from "../../core";
|
|
3
|
+
import { ICameraOpt, IUpdateNodeOpt, IWorkerMessage } from "../../core";
|
|
4
4
|
import type EventEmitter2 from "eventemitter2";
|
|
5
5
|
import { BaseApplianceManager } from "../../plugin/baseApplianceManager";
|
|
6
|
+
import { WorkId } from "../../collector/types";
|
|
7
|
+
export declare const TextBoxPadding = 5;
|
|
6
8
|
export interface TextEditorManager {
|
|
7
9
|
readonly internalMsgEmitter: EventEmitter2;
|
|
10
|
+
readonly publicMsgEmitter: EventEmitter2;
|
|
8
11
|
readonly control: BaseApplianceManager;
|
|
12
|
+
UndoTickerId?: number;
|
|
9
13
|
editors: Map<string, TextEditorInfo>;
|
|
14
|
+
/** 当前激活的文本编辑器 */
|
|
10
15
|
activeId?: string;
|
|
16
|
+
/** 添加撤销栈 */
|
|
17
|
+
addUndoTicker(undoTickerId: number, viewId: string): void;
|
|
11
18
|
/** 通过view组建中更新文本 */
|
|
12
19
|
updateForViewEdited(activeId?: string, info?: TextEditorInfo): void;
|
|
13
20
|
/** 过滤文本编辑器 */
|
|
@@ -17,7 +24,7 @@ export interface TextEditorManager {
|
|
|
17
24
|
/** 校验是否删除空文本或事失焦 */
|
|
18
25
|
checkEmptyTextBlur(): void;
|
|
19
26
|
/** 激活文本编辑组件 */
|
|
20
|
-
active(workId: string): void;
|
|
27
|
+
active(workId: string, undoTickerId?: number): void;
|
|
21
28
|
/** 不激活文本编辑组件 */
|
|
22
29
|
unActive(blurId: string): void;
|
|
23
30
|
/** 创建文本来源于main */
|
|
@@ -48,6 +55,7 @@ export interface TextEditorManager {
|
|
|
48
55
|
viewId: string;
|
|
49
56
|
canWorker: boolean;
|
|
50
57
|
canSync: boolean;
|
|
58
|
+
updateNodeOpt?: IUpdateNodeOpt;
|
|
51
59
|
}, undoTickerId?: number): void;
|
|
52
60
|
/** 编辑文本 */
|
|
53
61
|
/** 获取组建信息 */
|
|
@@ -64,16 +72,23 @@ export interface TextEditorManager {
|
|
|
64
72
|
onServiceDerive(data: IWorkerMessage): void;
|
|
65
73
|
/** 监听camera变化 */
|
|
66
74
|
onCameraChange(cameraOpt: ICameraOpt, viewId: string): void;
|
|
75
|
+
/** 插入文本 */
|
|
76
|
+
insertText(viewId: string, x: number, y: number, textContent: string): WorkId | undefined;
|
|
77
|
+
/** 更新指定文本 */
|
|
78
|
+
updateText(workId: WorkId, textContent: string): void;
|
|
67
79
|
}
|
|
68
80
|
export declare class TextEditorManagerImpl implements TextEditorManager {
|
|
69
81
|
readonly internalMsgEmitter: EventEmitter2;
|
|
82
|
+
readonly publicMsgEmitter: EventEmitter2;
|
|
70
83
|
readonly control: BaseApplianceManager;
|
|
71
84
|
editors: Map<string, TextEditorInfo>;
|
|
72
85
|
activeId?: string;
|
|
73
86
|
private proxyMap;
|
|
74
87
|
private taskqueue;
|
|
88
|
+
private undoTickerId?;
|
|
75
89
|
constructor(props: BaseSubWorkModuleProps);
|
|
76
90
|
get collector(): import("../../collector").Collector | undefined;
|
|
91
|
+
set UndoTickerId(value: number);
|
|
77
92
|
filterEditor(viewId: string): Map<string, TextEditorInfo>;
|
|
78
93
|
get interceptors(): {
|
|
79
94
|
set: (workId: string, info: TextEditorInfo) => true | undefined;
|
|
@@ -81,12 +96,14 @@ export declare class TextEditorManagerImpl implements TextEditorManager {
|
|
|
81
96
|
clear(): boolean;
|
|
82
97
|
};
|
|
83
98
|
computeTextActive(point: [number, number], viewId: string): void;
|
|
99
|
+
checkLocalTextBlur: import("lodash").DebouncedFunc<() => void>;
|
|
84
100
|
checkEmptyTextBlur(): void;
|
|
85
101
|
onCameraChange(cameraOpt: ICameraOpt, viewId: string): void;
|
|
86
102
|
onServiceDerive(data: IWorkerMessage): void;
|
|
87
103
|
updateForViewEdited(activeId: string, info: TextEditorInfo): void;
|
|
88
|
-
active(workId: string): void;
|
|
104
|
+
active(workId: string, undoTickerId?: number): void;
|
|
89
105
|
unActive(blurId: string): void;
|
|
106
|
+
addUndoTicker(undoTickerId: number, viewId: string): void;
|
|
90
107
|
createTextForMasterController(params: TextEditorInfo & {
|
|
91
108
|
workId: string;
|
|
92
109
|
viewId: string;
|
|
@@ -114,4 +131,6 @@ export declare class TextEditorManagerImpl implements TextEditorManager {
|
|
|
114
131
|
deleteBatch(workIds: string[], canSync?: boolean | undefined, canWorker?: boolean | undefined): void;
|
|
115
132
|
clear(viewId: string, justLocal?: boolean): void;
|
|
116
133
|
destory(): void;
|
|
134
|
+
insertText(viewId: string, x: number, y: number, textContent: string): WorkId | undefined;
|
|
135
|
+
updateText(workId: WorkId, textContent: string): void;
|
|
117
136
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EDataType,
|
|
1
|
+
import { EDataType, EventWorkState, IUpdateNodeOpt } from "../../core";
|
|
2
2
|
import { BaseShapeOptions } from "../../core/tools";
|
|
3
3
|
export declare enum ETextEditorType {
|
|
4
4
|
Text = 1,
|
|
@@ -6,8 +6,8 @@ export declare enum ETextEditorType {
|
|
|
6
6
|
}
|
|
7
7
|
export type VerticalAlignType = "top" | "middle" | "bottom";
|
|
8
8
|
export type TextAlignType = "left" | "center" | "right";
|
|
9
|
-
export type FontWeightType =
|
|
10
|
-
export type FontStyleType =
|
|
9
|
+
export type FontWeightType = "bold" | "normal";
|
|
10
|
+
export type FontStyleType = "italic" | "normal";
|
|
11
11
|
export interface TextOptions extends BaseShapeOptions {
|
|
12
12
|
fontColor: string;
|
|
13
13
|
fontSize: number;
|
|
@@ -26,7 +26,7 @@ export interface TextOptions extends BaseShapeOptions {
|
|
|
26
26
|
boxPoint?: [number, number];
|
|
27
27
|
boxSize?: [number, number];
|
|
28
28
|
/** 状态 */
|
|
29
|
-
workState?:
|
|
29
|
+
workState?: EventWorkState;
|
|
30
30
|
/** 正在编辑的用户 */
|
|
31
31
|
uid?: string;
|
|
32
32
|
}
|
|
@@ -47,4 +47,5 @@ export type TextEditorInfo = {
|
|
|
47
47
|
dataType?: EDataType;
|
|
48
48
|
translate?: [number, number];
|
|
49
49
|
justLocal?: boolean;
|
|
50
|
+
updateNodeOpt?: IUpdateNodeOpt;
|
|
50
51
|
};
|
|
@@ -1,73 +1,53 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from "react";
|
|
2
2
|
import { TextEditorInfo, TextOptions } from "./types";
|
|
3
|
-
import {
|
|
4
|
-
export
|
|
5
|
-
export interface TextSelectorManagerProps {
|
|
6
|
-
selectIds: string[];
|
|
3
|
+
import { EmitEventType } from "../../plugin/types";
|
|
4
|
+
export interface TextManagerProps {
|
|
7
5
|
className?: string;
|
|
8
6
|
editors?: Map<string, TextEditorInfo>;
|
|
9
|
-
|
|
7
|
+
selectIds?: string[];
|
|
10
8
|
box?: {
|
|
11
9
|
x: number;
|
|
12
10
|
y: number;
|
|
13
11
|
w: number;
|
|
14
12
|
h: number;
|
|
15
13
|
};
|
|
16
|
-
manager: ApplianceViewManagerLike;
|
|
17
14
|
showFloatBtns?: boolean;
|
|
18
15
|
operationType?: EmitEventType;
|
|
16
|
+
rightBoundBreak?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface TextSelectorManagerProps extends TextManagerProps {
|
|
19
|
+
handleTextEditorPointerDown: (workId: string) => void;
|
|
20
|
+
handleTextEditorPointerUp: () => void;
|
|
19
21
|
}
|
|
20
22
|
export interface TextViewProps {
|
|
21
23
|
workId: string;
|
|
22
24
|
data: TextEditorInfo;
|
|
23
|
-
isSelect?: boolean;
|
|
24
|
-
isActive?: boolean;
|
|
25
|
-
manager: ApplianceViewManagerLike;
|
|
26
25
|
}
|
|
27
26
|
export interface TextSelectorViewProps extends TextViewProps {
|
|
28
|
-
left: string;
|
|
29
|
-
top: string;
|
|
30
|
-
selectIds?: string[];
|
|
31
27
|
updateOptInfo: (param: {
|
|
32
28
|
activeTextId: string;
|
|
33
29
|
update: Partial<TextOptions>;
|
|
34
|
-
syncData?: Pick<TextEditorInfo,
|
|
30
|
+
syncData?: Pick<TextEditorInfo, "canSync" | "canWorker">;
|
|
35
31
|
}) => void;
|
|
32
|
+
handlePointerDown: (workId: string) => void;
|
|
33
|
+
handlePointerUp: () => void;
|
|
36
34
|
}
|
|
37
35
|
export interface TextEditorProps extends TextViewProps {
|
|
38
36
|
showFloatBtns: boolean;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
update: Partial<TextOptions>;
|
|
45
|
-
syncData?: Pick<TextEditorInfo, 'canSync' | 'canWorker'>;
|
|
46
|
-
}) => void;
|
|
47
|
-
}
|
|
48
|
-
export declare const TextView: (props: TextViewProps) => React.JSX.Element;
|
|
49
|
-
export declare const TextSelectorView: React.MemoExoticComponent<(props: TextSelectorViewProps) => React.JSX.Element>;
|
|
50
|
-
export declare const TextEditor: (props: TextEditorProps) => React.JSX.Element;
|
|
51
|
-
export declare class TextViewInSelector extends React.Component<TextSelectorManagerProps, {
|
|
52
|
-
hasEditor: boolean;
|
|
53
|
-
}> {
|
|
54
|
-
constructor(props: TextSelectorManagerProps);
|
|
55
|
-
getInnerText(target: HTMLDivElement): string[];
|
|
56
|
-
updateOptInfo(param: {
|
|
57
|
-
activeTextId: string;
|
|
58
|
-
update: Partial<TextOptions>;
|
|
59
|
-
syncData?: Pick<TextEditorInfo, 'canSync' | 'canWorker'>;
|
|
60
|
-
}): void;
|
|
61
|
-
get editorUI(): JSX.Element[] | null;
|
|
62
|
-
render(): React.JSX.Element;
|
|
63
|
-
}
|
|
64
|
-
export declare class TextEditorContainer extends TextViewInSelector {
|
|
65
|
-
ref: React.RefObject<HTMLDivElement> | undefined;
|
|
66
|
-
isRunAnimation?: number;
|
|
67
|
-
constructor(props: TextSelectorManagerProps);
|
|
68
|
-
runAnimation(): void;
|
|
69
|
-
handleKeyUp(e: any): void;
|
|
70
|
-
handleFocus(e: any): void;
|
|
71
|
-
get editorUI(): JSX.Element[] | null;
|
|
72
|
-
render(): React.JSX.Element;
|
|
37
|
+
rightBoundBreak: boolean;
|
|
38
|
+
handleKeyUp: (div: HTMLDivElement) => void;
|
|
39
|
+
handleFocus: (div: HTMLDivElement) => void;
|
|
40
|
+
runAnimation: (callback?: () => void) => void;
|
|
41
|
+
updateSize: (updateId: string, boxSize: [number, number]) => void;
|
|
73
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* 文本编辑器类型
|
|
45
|
+
* hover: 当前文本被当前用户获焦中
|
|
46
|
+
* editing: 当前文本编辑中(被其他用户编辑中)
|
|
47
|
+
* active: 当前文本可编辑状态被激活(暂无用户编辑)
|
|
48
|
+
* none: 无状态
|
|
49
|
+
*/
|
|
50
|
+
export type TextEditorType = "hover" | "editing" | "active" | "none";
|
|
51
|
+
export declare const TextSelectorView: (props: TextSelectorViewProps) => React.JSX.Element;
|
|
52
|
+
export declare const TextViewInSelector: (props: TextSelectorManagerProps) => React.JSX.Element;
|
|
53
|
+
export declare const TextEditorContainer: (props: TextManagerProps) => React.JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { serializeAutoShapeWork } from "./mapper";
|
|
2
|
+
import type { AutoShapeContext, AutoShapeMappedWork, AutoShapePoint, AutoShapeResult } from "./types";
|
|
3
|
+
export * from "./types";
|
|
4
|
+
export declare function buildAutoShapeContext(params: {
|
|
5
|
+
rawPoints: AutoShapePoint[];
|
|
6
|
+
pencilOptions: AutoShapeContext["pencilOptions"];
|
|
7
|
+
viewId: string;
|
|
8
|
+
scenePath?: string;
|
|
9
|
+
}): AutoShapeContext | null;
|
|
10
|
+
export declare function detectAutoShape(context: AutoShapeContext): AutoShapeResult;
|
|
11
|
+
export declare function mapAutoShapeResult(result: AutoShapeResult, context: AutoShapeContext): AutoShapeMappedWork | null;
|
|
12
|
+
export { serializeAutoShapeWork };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { AutoShapeDefinition, AutoShapeMappedWork } from "./types";
|
|
2
|
+
export declare const defaultAutoShapeMappers: Record<Exclude<AutoShapeDefinition["kind"], "none">, AutoShapeDefinition["mapper"]>;
|
|
3
|
+
export declare function serializeAutoShapeWork(work: AutoShapeMappedWork): string;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AutoShapeContext, AutoShapePoint, AutoShapeResult } from "./types";
|
|
2
|
+
export declare function createAutoShapeContext(params: {
|
|
3
|
+
rawPoints: AutoShapePoint[];
|
|
4
|
+
pencilOptions: AutoShapeContext["pencilOptions"];
|
|
5
|
+
viewId: string;
|
|
6
|
+
scenePath?: string;
|
|
7
|
+
}): AutoShapeContext | null;
|
|
8
|
+
export declare function recognizeAutoShape(context: AutoShapeContext): AutoShapeResult;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { EToolsKey } from "../enum";
|
|
2
|
+
import type { ShapeOptions } from "../tools";
|
|
3
|
+
import type { PencilOptions } from "../tools/pencil";
|
|
4
|
+
export type AutoShapePoint = [number, number];
|
|
5
|
+
export type AutoShapeKind = "straight" | "arrow" | "rectangle" | "ellipse" | "triangle" | "rhombus" | "star" | "none";
|
|
6
|
+
export interface AutoShapeBounds {
|
|
7
|
+
minX: number;
|
|
8
|
+
minY: number;
|
|
9
|
+
maxX: number;
|
|
10
|
+
maxY: number;
|
|
11
|
+
}
|
|
12
|
+
export interface AutoShapeMetrics {
|
|
13
|
+
pathLength: number;
|
|
14
|
+
chordLength: number;
|
|
15
|
+
straightness: number;
|
|
16
|
+
closureDistance: number;
|
|
17
|
+
closureRatio: number;
|
|
18
|
+
bboxWidth: number;
|
|
19
|
+
bboxHeight: number;
|
|
20
|
+
bboxDiagonal: number;
|
|
21
|
+
aspectRatio: number;
|
|
22
|
+
cornerCount: number;
|
|
23
|
+
angleVariance: number;
|
|
24
|
+
radialVariance: number;
|
|
25
|
+
bboxCornerCloseness: number;
|
|
26
|
+
diamondCloseness: number;
|
|
27
|
+
}
|
|
28
|
+
export interface AutoShapeContext {
|
|
29
|
+
viewId: string;
|
|
30
|
+
scenePath?: string;
|
|
31
|
+
pencilOptions: PencilOptions;
|
|
32
|
+
rawPoints: AutoShapePoint[];
|
|
33
|
+
points: AutoShapePoint[];
|
|
34
|
+
start: AutoShapePoint;
|
|
35
|
+
end: AutoShapePoint;
|
|
36
|
+
bbox: AutoShapeBounds;
|
|
37
|
+
metrics: AutoShapeMetrics;
|
|
38
|
+
}
|
|
39
|
+
export interface AutoShapeTemplateDefinition {
|
|
40
|
+
id: string;
|
|
41
|
+
semanticKind: Exclude<AutoShapeKind, "none">;
|
|
42
|
+
points: AutoShapePoint[];
|
|
43
|
+
threshold?: number;
|
|
44
|
+
}
|
|
45
|
+
export interface AutoShapeCandidate {
|
|
46
|
+
kind: Exclude<AutoShapeKind, "none">;
|
|
47
|
+
templateId: string;
|
|
48
|
+
score: number;
|
|
49
|
+
threshold: number;
|
|
50
|
+
distance: number;
|
|
51
|
+
}
|
|
52
|
+
export interface AutoShapeResult {
|
|
53
|
+
kind: AutoShapeKind;
|
|
54
|
+
score: number;
|
|
55
|
+
threshold: number;
|
|
56
|
+
recognized: boolean;
|
|
57
|
+
bbox: AutoShapeBounds;
|
|
58
|
+
start: AutoShapePoint;
|
|
59
|
+
end: AutoShapePoint;
|
|
60
|
+
points: AutoShapePoint[];
|
|
61
|
+
templateId?: string;
|
|
62
|
+
metrics: AutoShapeMetrics;
|
|
63
|
+
candidates: AutoShapeCandidate[];
|
|
64
|
+
}
|
|
65
|
+
export interface AutoShapeMappedWork {
|
|
66
|
+
toolsType: EToolsKey;
|
|
67
|
+
opt: ShapeOptions;
|
|
68
|
+
op: number[];
|
|
69
|
+
}
|
|
70
|
+
export type AutoShapePostProcessor = (candidate: AutoShapeCandidate, context: AutoShapeContext) => AutoShapeCandidate | null;
|
|
71
|
+
export type AutoShapeMapper = (result: AutoShapeResult, context: AutoShapeContext) => AutoShapeMappedWork | null;
|
|
72
|
+
export interface AutoShapeDefinition {
|
|
73
|
+
kind: Exclude<AutoShapeKind, "none">;
|
|
74
|
+
templates: AutoShapeTemplateDefinition[];
|
|
75
|
+
postProcessor?: AutoShapePostProcessor;
|
|
76
|
+
mapper: AutoShapeMapper;
|
|
77
|
+
enabledInV1?: boolean;
|
|
78
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { MasterControlForWorker } from "../mainEngine";
|
|
2
|
+
import { IBatchMainMessage, ILayerOptionType, IWorkerMessage } from "../types";
|
|
3
|
+
import { AppViewDisplayerManager, MainViewDisplayerManager } from "../../plugin/baseViewContainerManager";
|
|
4
|
+
import { BackgroundThreadEngineImpl } from "../../component/svg/manager";
|
|
5
|
+
import { ICanvasOptionType } from "./types";
|
|
6
|
+
import { BackgroundSnapshotThreadImpl } from "../../component/svg/snapshot";
|
|
7
|
+
export interface IBackgroundThreadInitOption {
|
|
8
|
+
master: MasterControlForWorker;
|
|
9
|
+
container: HTMLDivElement;
|
|
10
|
+
canvasOpt: ICanvasOptionType;
|
|
11
|
+
layerOpt: ILayerOptionType;
|
|
12
|
+
displayer: MainViewDisplayerManager | AppViewDisplayerManager;
|
|
13
|
+
post(sp: Omit<IBatchMainMessage, "render">): void;
|
|
14
|
+
}
|
|
15
|
+
export interface BackgroundThreadManager {
|
|
16
|
+
master: MasterControlForWorker;
|
|
17
|
+
backgroundThreadMap: Map<string, BackgroundThreadEngineImpl>;
|
|
18
|
+
createBackgroundThread(viewId: string, opt: IBackgroundThreadInitOption): BackgroundThreadEngineImpl;
|
|
19
|
+
createSnapshotThread(viewId: string, opt: IBackgroundThreadInitOption): BackgroundSnapshotThreadImpl;
|
|
20
|
+
consume(msg: Set<IWorkerMessage>): Promise<void>;
|
|
21
|
+
post(sp: Omit<IBatchMainMessage, "render">): void;
|
|
22
|
+
destroy(): void;
|
|
23
|
+
}
|
|
24
|
+
export declare class BackgroundThreadManagerImpl implements BackgroundThreadManager {
|
|
25
|
+
backgroundThreadMap: Map<string, BackgroundThreadEngineImpl>;
|
|
26
|
+
private snapshotThread?;
|
|
27
|
+
master: MasterControlForWorker;
|
|
28
|
+
constructor(master: MasterControlForWorker);
|
|
29
|
+
createBackgroundThread(viewId: string, opt: IBackgroundThreadInitOption): BackgroundThreadEngineImpl;
|
|
30
|
+
createSnapshotThread(viewId: string, opt: IBackgroundThreadInitOption): BackgroundSnapshotThreadImpl;
|
|
31
|
+
consume(msg: Set<IWorkerMessage>): Promise<void>;
|
|
32
|
+
consumeTargetOne(viewId: string, msg: IWorkerMessage): Promise<void>;
|
|
33
|
+
post: (msg: Omit<IBatchMainMessage, "render">) => void;
|
|
34
|
+
destroy(): void;
|
|
35
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IOffscreenCanvasOptionType, ILayerOptionType, IBatchMainMessage } from "..";
|
|
2
|
+
import { MainViewDisplayerManager, AppViewDisplayerManager } from "../../plugin/baseViewContainerManager";
|
|
3
|
+
import { MasterControlForWorker } from "../mainEngine";
|
|
4
|
+
export type ICanvasOptionType = IOffscreenCanvasOptionType;
|
|
5
|
+
export interface IMainThreadInitOption {
|
|
6
|
+
container: HTMLDivElement;
|
|
7
|
+
canvasOpt: ICanvasOptionType;
|
|
8
|
+
layerOpt: ILayerOptionType;
|
|
9
|
+
master: MasterControlForWorker;
|
|
10
|
+
displayer: MainViewDisplayerManager | AppViewDisplayerManager;
|
|
11
|
+
post(sp: Omit<IBatchMainMessage, "render">): void;
|
|
12
|
+
}
|