@netless/appliance-plugin 1.1.17-beta.8 → 1.1.17
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/cdn/cdn.js +1 -1
- package/cdn/fullWorker-CTwuMS.js +500 -0
- package/cdn/subWorker-D7gqd9.js +500 -0
- package/dist/appliance-plugin.js +1 -1
- package/dist/appliance-plugin.mjs +16 -15
- package/dist/collector/collector.d.ts +1 -0
- package/dist/component/textEditor/manager.d.ts +1 -0
- package/dist/component/textEditor/view.d.ts +27 -47
- package/dist/core/mainEngine.d.ts +7 -1
- package/dist/core/mainThread/subLocalThread.d.ts +3 -5
- package/dist/core/tools/pencil.d.ts +5 -0
- package/dist/core/tools/pencilEraser.d.ts +63 -38
- package/dist/core/tools/selector.d.ts +29 -0
- package/dist/core/types.d.ts +1 -0
- package/dist/core/utils/clipper.d.ts +8 -0
- package/dist/core/utils/polygonUtils.d.ts +8 -0
- package/dist/core/worker/base.d.ts +5 -0
- package/dist/core/worker/fullWorkerLocal.d.ts +2 -3
- package/dist/core/worker/subWorkerLocal.d.ts +1 -0
- package/dist/cursors/index.d.ts +0 -4
- package/dist/displayer/const.d.ts +1 -0
- package/dist/displayer/floatBar/dragBox/index.d.ts +7 -1
- package/dist/displayer/floatBar/index.d.ts +1 -1
- package/dist/displayer/utils.d.ts +1 -0
- package/dist/fullWorker.js +211 -152
- package/dist/index-BqLItWo1.js +1 -0
- package/dist/{index-DZmnrj_U.mjs → index-D5p9NBLd.mjs} +217 -204
- package/dist/index-DGks_HwI.mjs +17530 -0
- package/dist/index-DI0wKkQa.js +1 -0
- package/dist/plugin/baseApplianceManager.d.ts +7 -5
- package/dist/plugin/baseViewContainerManager.d.ts +14 -2
- package/dist/plugin/const.d.ts +6 -0
- package/dist/plugin/displayerView.d.ts +9 -2
- package/dist/plugin/types.d.ts +36 -7
- package/dist/style.css +1 -1
- package/dist/subWorker.js +211 -152
- package/package.json +5 -3
- package/cdn/fullWorker-Dma-pe.js +0 -441
- package/cdn/subWorker-1KsgJX.js +0 -441
- package/dist/collector/eventCollector.d.ts +0 -31
- package/dist/collector/magixEventCollector.d.ts +0 -31
- package/dist/index-BwYgPPna.mjs +0 -17069
- package/dist/index-D1nbiAD6.js +0 -1
- package/dist/index-DR0wLn0R.js +0 -1
package/dist/appliance-plugin.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-DI0wKkQa.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,29 +1,30 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { B as s, A as p, x as r, w as t, v as l, Q as n, G as i, b as y, F as E, j as o, l as T, N as g, c as u, O as v, K as c, y as S, a as A, J as P, h as k, H as m, E as M, L as W, I as h, P as w, z as x, s as F, u as I } from "./index-DGks_HwI.mjs";
|
|
2
2
|
export {
|
|
3
3
|
s as ActiveContainerType,
|
|
4
4
|
p as ApplianceMultiPlugin,
|
|
5
5
|
r as ApplianceNames,
|
|
6
6
|
t as ApplianceSigleWrapper,
|
|
7
7
|
l as ApplianceSinglePlugin,
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
n as AutoDrawPlugin,
|
|
9
|
+
i as ECanvasShowType,
|
|
10
10
|
y as EDataType,
|
|
11
|
-
E as
|
|
11
|
+
E as EForceStopReason,
|
|
12
|
+
o as EImageType,
|
|
12
13
|
T as EMatrixrRelationType,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
g as EOperationType,
|
|
15
|
+
u as EPostMessageType,
|
|
16
|
+
v as ERenderFilterType,
|
|
17
|
+
c as EScaleType,
|
|
18
|
+
S as EStrokeType,
|
|
18
19
|
A as EToolsKey,
|
|
19
|
-
|
|
20
|
+
P as ElayerType,
|
|
20
21
|
k as EmitEventType,
|
|
21
22
|
m as EventMessageType,
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
M as EvevtWorkState,
|
|
24
|
+
W as EvevtWorkType,
|
|
25
|
+
h as InternalMsgEmitterType,
|
|
25
26
|
w as Plugin,
|
|
26
27
|
x as ShapeType,
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
F as fullWorkerUrl,
|
|
29
|
+
I as subWorkerUrl
|
|
29
30
|
};
|
|
@@ -27,6 +27,7 @@ export declare class Collector extends BaseCollector<ISerializableStorageViewDat
|
|
|
27
27
|
getScenePathData(scenePath: string): ISerializableStorageData | undefined;
|
|
28
28
|
getStorageData(viewId: string, scenePath: string): ISerializableStorageData | undefined;
|
|
29
29
|
hasSelector(viewId: string, scenePath: string): boolean;
|
|
30
|
+
hasIncludeSelector(targetKey: string, targetViewId?: string, targetScenePath?: string): boolean;
|
|
30
31
|
addStorageStateListener(callBack: (diff: Diff) => void): void;
|
|
31
32
|
removeStorageStateListener(): void;
|
|
32
33
|
private diffFunByView;
|
|
@@ -8,6 +8,7 @@ export interface TextEditorManager {
|
|
|
8
8
|
readonly publicMsgEmitter: EventEmitter2;
|
|
9
9
|
readonly control: BaseApplianceManager;
|
|
10
10
|
editors: Map<string, TextEditorInfo>;
|
|
11
|
+
/** 当前激活的文本编辑器 */
|
|
11
12
|
activeId?: string;
|
|
12
13
|
/** 通过view组建中更新文本 */
|
|
13
14
|
updateForViewEdited(activeId?: string, info?: TextEditorInfo): void;
|
|
@@ -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
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;
|
|
@@ -10,9 +10,12 @@ import { BaseShapeOptions } from "./tools";
|
|
|
10
10
|
export declare abstract class MasterController {
|
|
11
11
|
/** 异步同步时间间隔 */
|
|
12
12
|
maxLastSyncTime: number;
|
|
13
|
+
/** 合并绘制时间间隔 */
|
|
14
|
+
combineUnitTime: number;
|
|
13
15
|
/** 插件管理器 */
|
|
14
16
|
readonly abstract control: BaseApplianceManager;
|
|
15
17
|
readonly abstract internalMsgEmitter: EventEmitter2;
|
|
18
|
+
readonly abstract publicMsgEmitter: EventEmitter2;
|
|
16
19
|
/** worker线程管理器 */
|
|
17
20
|
/** 本地原始点数据批任务数据池 */
|
|
18
21
|
protected abstract localPointsBatchData: Map<IworkId, {
|
|
@@ -39,7 +42,7 @@ export declare abstract class MasterController {
|
|
|
39
42
|
/** 获取当前激活的工作任务id */
|
|
40
43
|
protected getWorkId(): IworkId | undefined;
|
|
41
44
|
/** 获取当前work的工作状态 */
|
|
42
|
-
|
|
45
|
+
get workState(): EvevtWorkState;
|
|
43
46
|
/** 用于接收服务端同步的数据 */
|
|
44
47
|
abstract onServiceDerive(key: string, data: DiffOneData<BaseCollectorReducerAction | undefined>): void;
|
|
45
48
|
/** 消费批处理池数据 */
|
|
@@ -96,6 +99,7 @@ export declare class MasterControlForWorker extends MasterController {
|
|
|
96
99
|
protected currentLocalWorkData: IActiveWorkDataType;
|
|
97
100
|
control: BaseApplianceManager;
|
|
98
101
|
internalMsgEmitter: EventEmitter2;
|
|
102
|
+
publicMsgEmitter: EventEmitter2;
|
|
99
103
|
taskBatchData: Set<IWorkerMessage>;
|
|
100
104
|
protected fullWorker: Worker;
|
|
101
105
|
protected subWorker: Worker;
|
|
@@ -138,6 +142,7 @@ export declare class MasterControlForWorker extends MasterController {
|
|
|
138
142
|
private isLockSentEventCursor;
|
|
139
143
|
private subMainThreadWorker?;
|
|
140
144
|
private getVNodeInfoResolveMap;
|
|
145
|
+
private isLocalWorkActive;
|
|
141
146
|
constructor(props: BaseSubWorkModuleProps);
|
|
142
147
|
destroy(): void;
|
|
143
148
|
private get consumeCount();
|
|
@@ -167,6 +172,7 @@ export declare class MasterControlForWorker extends MasterController {
|
|
|
167
172
|
getMaxDrawCount(): number;
|
|
168
173
|
setSubWorkerDrawCount(num: number): void;
|
|
169
174
|
setConsumeCount(num: number): void;
|
|
175
|
+
getConsumeCount(): number;
|
|
170
176
|
setWorkerTasksqueueCount(num: number): void;
|
|
171
177
|
collectorSyncData(sp: IMainMessage[]): void;
|
|
172
178
|
private collectorAsyncData;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IActiveToolsDataType, IWorkerMessage, IMainMessage, IUpdateSelectorPropsType, IBatchMainMessage } from "../types";
|
|
2
|
-
import type { BaseShapeTool, BaseShapeOptions, SelectorShape, ImageShape, ShapeToolsClass
|
|
2
|
+
import type { BaseShapeTool, BaseShapeOptions, SelectorShape, ImageShape, ShapeToolsClass } from "../tools";
|
|
3
3
|
import { MainThreadEngineImpl, ISubThreadInitOption } from "./base";
|
|
4
4
|
import { VNodeManager } from "../vNodeManager";
|
|
5
5
|
import { EToolsKey } from "../enum";
|
|
@@ -101,10 +101,8 @@ export declare class SubLocalMainThreadImpl implements SubLocalThread {
|
|
|
101
101
|
blurSelector(data?: IWorkerMessage): Promise<void>;
|
|
102
102
|
clearWorkShapeNodeCache(workId: string): void;
|
|
103
103
|
private drawBitMapEraserFull;
|
|
104
|
-
private
|
|
104
|
+
private drawPencilEraserFull;
|
|
105
105
|
private drawEraser;
|
|
106
|
-
private updateBatchEraserCombineNode;
|
|
107
|
-
private batchEraserCombine;
|
|
108
106
|
getWorkShape(workId: string): BaseShapeTool | undefined;
|
|
109
107
|
getWorkShapes(): Map<string, BaseShapeTool>;
|
|
110
108
|
consumeDraw(data: IWorkerMessage, serviceWork: SubServiceThread): void;
|
|
@@ -114,5 +112,5 @@ export declare class SubLocalMainThreadImpl implements SubLocalThread {
|
|
|
114
112
|
setWorkOptions(workId: string, opt: BaseShapeOptions): void;
|
|
115
113
|
createWorkShapeNode(opt: IActiveToolsDataType & {
|
|
116
114
|
workId: string;
|
|
117
|
-
}): import("../tools").ArrowShape | PencilShape | import("../tools/straight").StraightShape | import("../tools").EllipseShape | import("../tools").PolygonShape | import("../tools").StarShape | import("../tools").RectangleShape | import("../tools").SpeechBalloonShape | TextShape | import("../tools").LaserPenShape | import("../tools").EraserShape | import("../tools/pencilEraser").PencilEraserShape | BitMapEraserShape | SelectorShape | ImageShape | undefined;
|
|
115
|
+
}): import("../tools").ArrowShape | import("../tools").PencilShape | import("../tools/straight").StraightShape | import("../tools").EllipseShape | import("../tools").PolygonShape | import("../tools").StarShape | import("../tools").RectangleShape | import("../tools").SpeechBalloonShape | TextShape | import("../tools").LaserPenShape | import("../tools").EraserShape | import("../tools/pencilEraser").PencilEraserShape | BitMapEraserShape | SelectorShape | ImageShape | undefined;
|
|
118
116
|
}
|
|
@@ -77,6 +77,11 @@ export declare class PencilShape extends BaseShapeTool {
|
|
|
77
77
|
replaceId?: string;
|
|
78
78
|
workState?: EvevtWorkState;
|
|
79
79
|
}): IRectType | undefined;
|
|
80
|
+
computPencilPoints(params: {
|
|
81
|
+
op: number[];
|
|
82
|
+
eraserPolylines: number[][];
|
|
83
|
+
eraserThickness: number;
|
|
84
|
+
}): number[][] | undefined;
|
|
80
85
|
private transformDataAll;
|
|
81
86
|
private draw;
|
|
82
87
|
private computDrawPoints;
|
|
@@ -1,74 +1,99 @@
|
|
|
1
1
|
import { BaseShapeOptions, BaseShapeTool, BaseShapeToolProps } from "./base";
|
|
2
|
-
import { EPostMessageType, EScaleType, EToolsKey } from "../enum";
|
|
3
|
-
import { IWorkerMessage, IRectType,
|
|
4
|
-
import type {
|
|
2
|
+
import { EDataType, EPostMessageType, EScaleType, EToolsKey } from "../enum";
|
|
3
|
+
import { IWorkerMessage, IRectType, BaseNodeMapItem } from "../types";
|
|
4
|
+
import type { IMainMessage } from "../types";
|
|
5
|
+
import { Point2d } from "../utils/primitives/Point2d";
|
|
6
|
+
import type { LocalWorkForFullWorker } from "../worker/fullWorkerLocal";
|
|
7
|
+
import type { SubLocalMainThreadImpl } from "../mainThread/subLocalThread";
|
|
8
|
+
export type SerializerEraserLines = Array<SerializerEraserItem>;
|
|
9
|
+
export interface SerializerEraserItem {
|
|
10
|
+
op: number[][];
|
|
11
|
+
thickness: number;
|
|
12
|
+
}
|
|
5
13
|
export interface PencilEraserOptions extends BaseShapeOptions {
|
|
6
14
|
thickness: number;
|
|
15
|
+
eraserColor: string;
|
|
7
16
|
}
|
|
8
17
|
export declare class PencilEraserShape extends BaseShapeTool {
|
|
9
18
|
readonly canRotate: boolean;
|
|
10
19
|
readonly scaleType: EScaleType;
|
|
11
20
|
readonly toolsType: EToolsKey;
|
|
12
|
-
readonly serviceWork?: ServiceThreadSubWork;
|
|
13
21
|
private static readonly eraserSizes;
|
|
14
|
-
protected tmpPoints: Array<
|
|
22
|
+
protected tmpPoints: Array<Point2d>;
|
|
15
23
|
protected workOptions: PencilEraserOptions;
|
|
16
24
|
worldPosition: [number, number];
|
|
17
25
|
worldScaling: [number, number];
|
|
18
26
|
eraserRect: IRectType | undefined;
|
|
19
27
|
eraserPolyline?: [number, number, number, number];
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
private
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
syncUnitTime: number;
|
|
29
|
+
private syncIndex;
|
|
30
|
+
private syncTimestamp;
|
|
31
|
+
constructor(props: BaseShapeToolProps);
|
|
32
|
+
/** 批量合并消费本地数据,返回绘制结果 */
|
|
33
|
+
combineConsume(): IMainMessage | undefined;
|
|
34
|
+
consumeService(params: {
|
|
35
|
+
op: number[];
|
|
36
|
+
isFullWork?: boolean;
|
|
37
|
+
replaceId?: string;
|
|
38
|
+
}): IRectType | undefined;
|
|
39
|
+
private updateTempPoints;
|
|
40
|
+
private getChangeNodes;
|
|
30
41
|
consume(props: {
|
|
31
42
|
data: IWorkerMessage;
|
|
43
|
+
isFullWork: boolean;
|
|
44
|
+
isSubWorker?: boolean;
|
|
45
|
+
isMainThread?: boolean;
|
|
46
|
+
drawCount?: number;
|
|
47
|
+
removeDrawCount?: number;
|
|
32
48
|
}): {
|
|
33
49
|
workId: string;
|
|
34
50
|
toolsType: EToolsKey;
|
|
35
51
|
opt: import("./utils").ShapeOptions;
|
|
36
52
|
type: EPostMessageType;
|
|
37
53
|
rect?: undefined;
|
|
38
|
-
|
|
39
|
-
newWorkDatas?: undefined;
|
|
54
|
+
dataType?: undefined;
|
|
40
55
|
} | {
|
|
56
|
+
rect: IRectType | undefined;
|
|
41
57
|
type: EPostMessageType;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
58
|
+
dataType: EDataType;
|
|
59
|
+
} | {
|
|
60
|
+
type: EPostMessageType;
|
|
61
|
+
dataType: EDataType;
|
|
62
|
+
rect: IRectType | undefined;
|
|
63
|
+
op: number[] | undefined;
|
|
64
|
+
index: number | undefined;
|
|
65
|
+
updateNodeOpt: {
|
|
66
|
+
useAnimation: boolean;
|
|
67
|
+
};
|
|
68
|
+
workId: string;
|
|
69
|
+
toolsType: EToolsKey;
|
|
70
|
+
opt: import("./utils").ShapeOptions;
|
|
50
71
|
};
|
|
72
|
+
private draw;
|
|
73
|
+
private computEraserPointLines;
|
|
51
74
|
consumeAll(props: {
|
|
52
|
-
|
|
75
|
+
workerEngine?: LocalWorkForFullWorker | SubLocalMainThreadImpl;
|
|
53
76
|
}): {
|
|
54
77
|
workId: string;
|
|
55
78
|
toolsType: EToolsKey;
|
|
56
79
|
opt: import("./utils").ShapeOptions;
|
|
57
80
|
type: EPostMessageType;
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
81
|
+
} | {
|
|
82
|
+
rect: IRectType | undefined;
|
|
83
|
+
workId: string;
|
|
84
|
+
toolsType: EToolsKey;
|
|
85
|
+
opt: import("./utils").ShapeOptions;
|
|
86
|
+
type: EPostMessageType;
|
|
61
87
|
} | {
|
|
62
88
|
type: EPostMessageType;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
89
|
+
dataType: EDataType;
|
|
90
|
+
rect: IRectType | undefined;
|
|
91
|
+
ops: string;
|
|
92
|
+
willNewNodes: Map<string, BaseNodeMapItem>;
|
|
93
|
+
willDeleteNodes: Set<string>;
|
|
94
|
+
workId: string;
|
|
95
|
+
toolsType: EToolsKey;
|
|
96
|
+
opt: import("./utils").ShapeOptions;
|
|
71
97
|
};
|
|
72
98
|
clearTmpPoints(): void;
|
|
73
|
-
private getCanEraserNodeMap;
|
|
74
99
|
}
|
|
@@ -41,6 +41,7 @@ export declare class SelectorShape extends BaseShapeTool {
|
|
|
41
41
|
getChildrenPoints(): [number, number][] | undefined;
|
|
42
42
|
consume(props: {
|
|
43
43
|
data: IWorkerMessage;
|
|
44
|
+
isSubWorker?: boolean;
|
|
44
45
|
}): {
|
|
45
46
|
type: EPostMessageType;
|
|
46
47
|
} | {
|
|
@@ -98,6 +99,34 @@ export declare class SelectorShape extends BaseShapeTool {
|
|
|
98
99
|
type: EPostMessageType;
|
|
99
100
|
};
|
|
100
101
|
consumeService(): undefined;
|
|
102
|
+
private updateTempPointsForSubWorker;
|
|
103
|
+
private computDrawPoints;
|
|
104
|
+
private drawForSubWorker;
|
|
105
|
+
private transformData;
|
|
106
|
+
subWorkerConsume(props: {
|
|
107
|
+
data: IWorkerMessage;
|
|
108
|
+
isFullWork?: boolean;
|
|
109
|
+
}): {
|
|
110
|
+
type: EPostMessageType;
|
|
111
|
+
} | {
|
|
112
|
+
workId: string;
|
|
113
|
+
toolsType: EToolsKey;
|
|
114
|
+
opt: import("./utils").ShapeOptions;
|
|
115
|
+
rect: IRectType | undefined;
|
|
116
|
+
type: EPostMessageType;
|
|
117
|
+
dataType: EDataType;
|
|
118
|
+
};
|
|
119
|
+
subWorkerConsumeAll(props: {
|
|
120
|
+
data: IWorkerMessage;
|
|
121
|
+
isFullWork?: boolean;
|
|
122
|
+
}): {
|
|
123
|
+
workId: string;
|
|
124
|
+
toolsType: EToolsKey;
|
|
125
|
+
opt: import("./utils").ShapeOptions;
|
|
126
|
+
rect: IRectType | undefined;
|
|
127
|
+
type: EPostMessageType;
|
|
128
|
+
dataType: EDataType;
|
|
129
|
+
};
|
|
101
130
|
clearTmpPoints(): void;
|
|
102
131
|
clearSelectData(): void;
|
|
103
132
|
private selectSingleTool;
|
package/dist/core/types.d.ts
CHANGED
|
@@ -244,6 +244,7 @@ export interface IUpdateSelectorCallbackPropsType {
|
|
|
244
244
|
export interface IActiveToolsDataType {
|
|
245
245
|
toolsType: EToolsKey;
|
|
246
246
|
toolsOpt: ShapeOptions;
|
|
247
|
+
combineUnitTime?: number;
|
|
247
248
|
}
|
|
248
249
|
export interface IActiveWorkDataType {
|
|
249
250
|
workState: EvevtWorkState;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Point2d } from './primitives/Point2d';
|
|
2
|
+
/**
|
|
3
|
+
* 折线减去多个多边形,返回差集片段(去除冗余点、近似闭环、孤点)
|
|
4
|
+
* @param polyline 原始折线
|
|
5
|
+
* @param polygons 多个多边形数组
|
|
6
|
+
* @param epsilon 精度阈值
|
|
7
|
+
*/
|
|
8
|
+
export declare function polylineMinusPolygon(polyline: Point2d[], polygons: [number, number][][], epsilon?: number): [number, number, number][][];
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 计算两条线段的交点
|
|
3
|
+
*/
|
|
4
|
+
export declare function getIntersection(p1: [number, number], p2: [number, number], p3: [number, number], p4: [number, number]): [number, number] | null;
|
|
5
|
+
/**
|
|
6
|
+
* 判断点是否在多边形内
|
|
7
|
+
*/
|
|
8
|
+
export declare function isPointInPolygon(point: [number, number], polygon: [number, number][]): boolean;
|
|
@@ -12,6 +12,8 @@ export interface IWorkerInitOption {
|
|
|
12
12
|
dpr: number;
|
|
13
13
|
offscreenCanvasOpt: IOffscreenCanvasOptionType;
|
|
14
14
|
layerOpt: ILayerOptionType;
|
|
15
|
+
combineUnitTime?: number;
|
|
16
|
+
syncUnitTime?: number;
|
|
15
17
|
}
|
|
16
18
|
export interface ISubWorkerInitOption {
|
|
17
19
|
thread: WorkThreadEngineForFullWorker | WorkThreadEngineForSubWorker;
|
|
@@ -101,6 +103,9 @@ export declare abstract class LocalWork {
|
|
|
101
103
|
protected drawCount: number;
|
|
102
104
|
protected consumeCount: number;
|
|
103
105
|
protected syncUnitTime: number;
|
|
106
|
+
protected combineUnitTime: number;
|
|
107
|
+
setCombineUnitTime(combineUnitTime: number): void;
|
|
108
|
+
setSyncUnitTime(syncUnitTime: number): void;
|
|
104
109
|
constructor(opt: ISubWorkerInitOption);
|
|
105
110
|
destroy(): void;
|
|
106
111
|
getWorkShapes(): Map<string, BaseShapeTool>;
|
|
@@ -4,7 +4,6 @@ import { ISubWorkerInitOption, LocalWork } from "./base";
|
|
|
4
4
|
import { ServiceWorkForFullWorker } from "./fullWorkerService";
|
|
5
5
|
import { WorkThreadEngineForFullWorker } from "./workerManager";
|
|
6
6
|
export declare class LocalWorkForFullWorker extends LocalWork {
|
|
7
|
-
private combineUnitTime;
|
|
8
7
|
private combineTimerId?;
|
|
9
8
|
private combineDrawResolve?;
|
|
10
9
|
private combineDrawActiveId?;
|
|
@@ -52,13 +51,13 @@ export declare class LocalWorkForFullWorker extends LocalWork {
|
|
|
52
51
|
private drawBitMapCombine;
|
|
53
52
|
private drawPencilCombine;
|
|
54
53
|
private drawSelector;
|
|
54
|
+
private drawPencilEraserCombine;
|
|
55
55
|
private drawPencilEraser;
|
|
56
|
+
private drawPencilEraserFull;
|
|
56
57
|
private drawEraser;
|
|
57
|
-
private batchEraserCombine;
|
|
58
58
|
private drawShape;
|
|
59
59
|
private drawPencil;
|
|
60
60
|
private drawPencilFull;
|
|
61
|
-
private updateBatchEraserCombineNode;
|
|
62
61
|
private runEffectSelectWork;
|
|
63
62
|
cursorHover(msg: IWorkerMessage): Promise<void>;
|
|
64
63
|
cursorBlur(): Promise<void>;
|
package/dist/cursors/index.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { EventMessageType, EvevtWorkState, IMainMessage } from "../core";
|
|
2
|
-
import { EventCollector } from "../collector/eventCollector";
|
|
3
2
|
import { BaseSubWorkModuleProps, Displayer, RoomMember } from "../plugin/types";
|
|
4
3
|
import { MemberDiff, RoomMemberManager } from "../members";
|
|
5
4
|
import type { BaseApplianceManager } from "../plugin/baseApplianceManager";
|
|
@@ -39,8 +38,6 @@ export declare abstract class CursorManager {
|
|
|
39
38
|
abstract readonly internalMsgEmitter: EventEmitter2;
|
|
40
39
|
/** 插件管理器 */
|
|
41
40
|
abstract readonly control: BaseApplianceManager;
|
|
42
|
-
/** 事件收集器 */
|
|
43
|
-
abstract eventCollector?: EventCollector;
|
|
44
41
|
/** 房间成员管理器 */
|
|
45
42
|
abstract readonly roomMember: RoomMemberManager;
|
|
46
43
|
/** 激活事件收集器 */
|
|
@@ -79,7 +76,6 @@ export declare class CursorManagerImpl implements CursorManager {
|
|
|
79
76
|
private cursorInfoMap;
|
|
80
77
|
private doneRenderCursorInfoMap;
|
|
81
78
|
constructor(props: BaseSubWorkModuleProps);
|
|
82
|
-
eventCollector?: EventCollector | undefined;
|
|
83
79
|
activeCollector(): void;
|
|
84
80
|
private mainMagixEventListener;
|
|
85
81
|
onFocusViewChange(): void;
|
|
@@ -9,3 +9,4 @@ export declare const BarPadding: Margin;
|
|
|
9
9
|
export declare const BarMargin: Margin;
|
|
10
10
|
export declare const FontSizeList: readonly number[];
|
|
11
11
|
export declare const SpeechBalloonPlacements: SpeechBalloonPlacement[];
|
|
12
|
+
export declare const DefaultCursorIconMap: Map<string, string>;
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { TextEditorInfo } from "../../../component/textEditor/types";
|
|
3
|
+
export type PositionType = {
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
};
|
|
2
7
|
export declare const DraggableBox: (props: {
|
|
3
|
-
|
|
8
|
+
editors?: Map<string, TextEditorInfo>;
|
|
9
|
+
canSelectorSwitch: boolean;
|
|
4
10
|
}) => React.JSX.Element;
|
|
@@ -3,5 +3,5 @@ import { TextEditorInfo } from "../../component/textEditor";
|
|
|
3
3
|
export declare const FloatBar: React.MemoExoticComponent<React.ForwardRefExoticComponent<{
|
|
4
4
|
isHide: boolean;
|
|
5
5
|
editors?: Map<string, TextEditorInfo>;
|
|
6
|
-
|
|
6
|
+
canSelectorSwitch: boolean;
|
|
7
7
|
} & React.RefAttributes<HTMLDivElement>>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const stopPropagationFunc: (e: React.PointerEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>) => void;
|