@netless/appliance-plugin 1.1.36-beta.0 → 1.1.36-beta.2
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 +47 -48
- package/README.md +17 -49
- package/dist/appliance-plugin.js +1 -1
- package/dist/appliance-plugin.mjs +1 -1
- package/dist/assets/fullWorker-D9xRgd20.js +593 -0
- package/dist/assets/subWorker-DDz22vt8.js +593 -0
- package/dist/{bridge-DO3A2FRh.js → bridge-BKHuhuVK.js} +1 -1
- package/dist/bridge-g7eU9k12.mjs +67 -0
- package/dist/bridge.js +1 -1
- package/dist/bridge.mjs +1 -1
- package/dist/collector/collector.d.ts +1 -0
- package/dist/collector/types.d.ts +5 -1
- package/dist/component/textEditor/manager.d.ts +8 -1
- package/dist/component/textEditor/types.d.ts +5 -0
- package/dist/component/textEditor/utils.d.ts +21 -0
- package/dist/component/textEditor/view.d.ts +0 -4
- package/dist/core/enum.d.ts +3 -1
- package/dist/core/mainEngine.d.ts +4 -1
- package/dist/core/msgEvent/copyNode/forMain.d.ts +3 -0
- package/dist/core/msgEvent/copyNode/utils.d.ts +9 -0
- package/dist/core/msgEvent/deleteNode/forMain.d.ts +1 -0
- package/dist/core/msgEvent/setColor/forMain.d.ts +2 -0
- package/dist/core/msgEvent/setFont/forMain.d.ts +1 -0
- package/dist/core/msgEvent/setLock/forMain.d.ts +1 -0
- package/dist/core/msgEvent/setShape/forMain.d.ts +1 -0
- package/dist/core/msgEvent/setZIndex/forMain.d.ts +2 -0
- package/dist/core/tools/pencil.d.ts +1 -0
- package/dist/core/tools/selector.d.ts +4 -0
- package/dist/core/types.d.ts +6 -0
- package/dist/core/worker/fullWorkerLocal.d.ts +4 -4
- package/dist/core/worker/simpleWorker.d.ts +2 -2
- package/dist/displayer/floatBar/dragBox/activateSelectorText.d.ts +13 -0
- package/dist/displayer/floatBar/dragBox/selectorSwitch.d.ts +19 -0
- package/dist/fullWorker.js +110 -110
- package/dist/index-B7w-GcID.js +1 -0
- package/dist/index-BLzjGoXh.js +1 -0
- package/dist/{index-CqQPnW7_.js → index-BjEjHeEF.js} +1 -1
- package/dist/{index-B4Npl8dw.mjs → index-C019qtsS.mjs} +3234 -3057
- package/dist/index-CfKLCV2y.mjs +19590 -0
- package/dist/{index-DDULymwD.mjs → index-L2uoKaSf.mjs} +3234 -3057
- package/dist/index-L470yte_.js +1 -0
- package/dist/index-LBCXcuGb.mjs +19564 -0
- package/dist/{index-vfn-RVQz.js → index-PebKJQE3.js} +1 -1
- package/dist/index-Yc4OIUoM.js +1 -0
- package/dist/{index-BBcEMXkc.mjs → index-bMvJ4igq.mjs} +1 -1
- package/dist/{index-BVkfyJQn.mjs → index-hePUiGEB.mjs} +1 -1
- package/dist/plugin/baseApplianceManager.d.ts +7 -0
- package/dist/plugin/baseViewContainerManager.d.ts +23 -9
- package/dist/plugin/displayerView.d.ts +4 -1
- package/dist/plugin/elementCapability.d.ts +29 -0
- package/dist/plugin/multi/displayer/appViewDisplayerManager.d.ts +1 -0
- package/dist/plugin/multi/displayer/mainViewDisplayerManager.d.ts +1 -0
- package/dist/plugin/selectorApi.d.ts +141 -0
- package/dist/plugin/single/displayer/mainViewDisplayerManager.d.ts +1 -0
- package/dist/plugin/types.d.ts +339 -5
- package/dist/plugin/utils.d.ts +9 -0
- package/dist/style.css +1 -1
- package/dist/subWorker.js +110 -110
- package/dist/undo/index.d.ts +44 -4
- package/dist/undo/timing.d.ts +50 -0
- package/package.json +13 -4
- package/cdn/cdn.js +0 -1
- package/cdn/fullWorker-Cu37fr.js +0 -486
- package/cdn/subWorker-le1nnC.js +0 -486
- package/dist/assets/fullWorker-C_pHxd3d.js +0 -593
- package/dist/assets/subWorker-mLNCeIEX.js +0 -593
- package/dist/bridge-DskXXarZ.mjs +0 -67
- package/dist/bridge-white-web-sdk.d.ts +0 -1
- package/dist/index-B00mKJ2E.js +0 -1
- package/dist/index-BAT55jp1.mjs +0 -16599
- package/dist/index-D50QxS0c.js +0 -1
- package/dist/index-DTMQbvIh.mjs +0 -16625
- package/dist/index-DlkXPynh.js +0 -1
- package/dist/index-DoKk1ccL.js +0 -1
|
@@ -14,6 +14,7 @@ import { HotkeyManager } from "../hotkey";
|
|
|
14
14
|
import { RenderCotrolImple } from "../core/renderCotrol";
|
|
15
15
|
import { MiniMapManagerImpl } from "../component/miniMap/manager";
|
|
16
16
|
import { PluginManager, Plugin } from "../core/plugin";
|
|
17
|
+
import { SelectorApiManager } from "./selectorApi";
|
|
17
18
|
export interface BaseApplianceManagerProps {
|
|
18
19
|
displayer: Displayer<DisplayerCallbacks>;
|
|
19
20
|
plugin?: AppliancePluginLike;
|
|
@@ -47,6 +48,12 @@ export declare abstract class BaseApplianceManager {
|
|
|
47
48
|
readonly renderControl: RenderCotrolImple;
|
|
48
49
|
readonly miniMapManager?: MiniMapManagerImpl;
|
|
49
50
|
readonly pluginManager?: PluginManager;
|
|
51
|
+
/** WB-429: selector 公开 API / 事件实现入口 */
|
|
52
|
+
selectorApi?: SelectorApiManager;
|
|
53
|
+
/** WB-429: selector API 事件派发用,指向 BaseApplianceManager.PublicMsgEmitter */
|
|
54
|
+
get publicMsgEmitter(): EventEmitter2;
|
|
55
|
+
/** WB-429: selector API 监听内部 method emit 用 */
|
|
56
|
+
get internalMsgEmitter(): EventEmitter2;
|
|
50
57
|
private _isPolyfill;
|
|
51
58
|
constructor(params: BaseApplianceManagerProps);
|
|
52
59
|
hasPolyfillMethod(methodName: "requestIdleCallback" | "cancelIdleCallback"): boolean;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type EventEmitter2 from "eventemitter2";
|
|
2
2
|
import { ICameraOpt, ILayerOptionType, IMainMessageRenderData, IOffscreenCanvasOptionType, ViewWorkerOptions } from "../core/types";
|
|
3
3
|
import { BaseSubWorkModuleProps, ApplianceManagerLike } from "./types";
|
|
4
|
-
import type { CameraState, View } from "./types";
|
|
4
|
+
import type { CameraState, SelectorViewOffset, View } from "./types";
|
|
5
5
|
import type { DebouncedFunc, DebouncedFuncLeading } from "lodash";
|
|
6
6
|
import { EToolsKey } from "../core/enum";
|
|
7
7
|
import { ShowFloatBarMsgValue } from "../displayer/types";
|
|
8
8
|
import { UndoRedoMethod } from "../undo";
|
|
9
|
+
import type { ExpectedAcks } from "../undo/timing";
|
|
9
10
|
import { BaseViewDisplayer } from "./displayerView";
|
|
10
11
|
export interface ViewInfo {
|
|
11
12
|
id: string;
|
|
@@ -31,9 +32,23 @@ export declare abstract class ViewContainerManager {
|
|
|
31
32
|
get worker(): import("../core/mainEngine").MasterControlForWorker;
|
|
32
33
|
abstract getViewInitData(viewId: string): ViewWorkerOptions | undefined;
|
|
33
34
|
getUndoTickerId(viewId: string): number | undefined;
|
|
34
|
-
undoTickerStart: (id: number, viewId: string) => void;
|
|
35
|
-
undoTickerEnd: (id: number, viewId: string) => void;
|
|
35
|
+
undoTickerStart: (id: number, viewId: string, expectedAcks?: ExpectedAcks) => void;
|
|
36
36
|
addExcludeIds: (ids: string[], viewId: string) => void;
|
|
37
|
+
/** worker 渲染链 None ack 路由:把 render 那只脚标记到对应 view 的 commiter */
|
|
38
|
+
onAckRenderUndoTicker: (id: number, viewId: string, scenePath?: string, meta?: {
|
|
39
|
+
requestId?: string;
|
|
40
|
+
emitEventType?: string;
|
|
41
|
+
}) => void;
|
|
42
|
+
/** collector storage 写入完成 ack 路由:把 storage 那只脚标记到对应 view 的 commiter */
|
|
43
|
+
onAckStorageUndoTicker: (id: number, viewId: string, scenePath?: string, workId?: string, meta?: {
|
|
44
|
+
requestId?: string;
|
|
45
|
+
emitEventType?: string;
|
|
46
|
+
}) => void;
|
|
47
|
+
/** 多元素入口给 ticker 预先登记期望集合:双脚里 storage 那只脚必须等 scope 全部到齐 */
|
|
48
|
+
onCollectExpectedWorkIds: (id: number, viewId: string, workIds: string[], scenePath?: string) => void;
|
|
49
|
+
onFinalizeRequested: (id: number, viewId: string, workIds: string[], scenePath?: string) => void;
|
|
50
|
+
onReopenStorageAck: (id: number, viewId: string, workIds: string[], scenePath?: string) => void;
|
|
51
|
+
onCancelUndoTicker: (id: number, viewId: string, scenePath?: string) => void;
|
|
37
52
|
undo(): number;
|
|
38
53
|
redo(): number;
|
|
39
54
|
protected validator(target: ViewInfo, key: string, value: any): void;
|
|
@@ -43,6 +58,10 @@ export declare abstract class ViewContainerManager {
|
|
|
43
58
|
createAppView(originAppView: ViewInfo): void;
|
|
44
59
|
isAppView(viewId: string): boolean;
|
|
45
60
|
getView(viewId: string): ViewInfo | undefined;
|
|
61
|
+
private resolveView;
|
|
62
|
+
private getViewElement;
|
|
63
|
+
getFloatbarContainer(viewId?: string): HTMLElement | undefined;
|
|
64
|
+
getViewOffsetToContainer(container: HTMLElement, viewId?: string): SelectorViewOffset | undefined;
|
|
46
65
|
getCurScenePath(viewId: string): string | undefined;
|
|
47
66
|
getAllViews(): (ViewInfo | undefined)[];
|
|
48
67
|
setViewScenePath(viewId: string, scenePath: string): void;
|
|
@@ -87,6 +106,7 @@ export declare abstract class BaseViewDisplayerManager {
|
|
|
87
106
|
abstract canvasBgRef: React.RefObject<HTMLCanvasElement>;
|
|
88
107
|
abstract backgroundContainerRef?: React.RefObject<HTMLDivElement>;
|
|
89
108
|
abstract floatBarRef: React.RefObject<HTMLDivElement>;
|
|
109
|
+
abstract customFloatbarContainerRef: React.RefObject<HTMLDivElement>;
|
|
90
110
|
abstract containerOffset: {
|
|
91
111
|
x: number;
|
|
92
112
|
y: number;
|
|
@@ -137,12 +157,6 @@ export declare abstract class BaseViewDisplayerManager {
|
|
|
137
157
|
y: any;
|
|
138
158
|
};
|
|
139
159
|
abstract get viewId(): string;
|
|
140
|
-
protected mousedown: (e: MouseEvent) => void;
|
|
141
|
-
protected mousemove: (e: MouseEvent) => void;
|
|
142
|
-
protected mouseup: (e: MouseEvent) => void;
|
|
143
|
-
protected touchstart: (e: TouchEvent) => void;
|
|
144
|
-
protected touchmove: (e: TouchEvent) => void;
|
|
145
|
-
protected touchend: (e: TouchEvent) => void;
|
|
146
160
|
protected keydown: (e: KeyboardEvent) => void;
|
|
147
161
|
protected pointerdown: (e: PointerEvent) => void;
|
|
148
162
|
protected pointermove: (e: PointerEvent) => void;
|
|
@@ -2,6 +2,7 @@ import React, { ReactNode } from "react";
|
|
|
2
2
|
import { EmitEventType, ApplianceViewManagerLike } from "./types";
|
|
3
3
|
import { TextEditorInfo } from "../component/textEditor";
|
|
4
4
|
import { ShowFloatBarMsgValue } from "../displayer/types";
|
|
5
|
+
import type { SelectorStyleOverrides } from "./types";
|
|
5
6
|
export interface BaseDisplayerProps {
|
|
6
7
|
viewId: string;
|
|
7
8
|
mananger: ApplianceViewManagerLike;
|
|
@@ -16,6 +17,7 @@ export interface BaseDisplayerProps {
|
|
|
16
17
|
canvasBgRef: React.RefObject<HTMLCanvasElement>;
|
|
17
18
|
canvasTopRef?: React.RefObject<HTMLCanvasElement>;
|
|
18
19
|
floatBarRef: React.RefObject<HTMLDivElement>;
|
|
20
|
+
customFloatbarContainerRef: React.RefObject<HTMLDivElement>;
|
|
19
21
|
};
|
|
20
22
|
}
|
|
21
23
|
export interface BaseDisplayerState {
|
|
@@ -31,11 +33,12 @@ export interface BaseDisplayerState {
|
|
|
31
33
|
activeMiniMapViewId?: string;
|
|
32
34
|
activeTextEditor?: boolean;
|
|
33
35
|
}
|
|
34
|
-
export declare const DisplayerContext: React.Context<Pick<BaseDisplayerState, "scale" | "
|
|
36
|
+
export declare const DisplayerContext: React.Context<Pick<BaseDisplayerState, "scale" | "dpr" | "angle" | "floatBarData" | "operationType" | "activeTextEditor" | "activeTextId"> & {
|
|
35
37
|
viewId: string;
|
|
36
38
|
isNoPointerEvents: boolean;
|
|
37
39
|
mananger?: ApplianceViewManagerLike;
|
|
38
40
|
floatBarColors: [number, number, number][];
|
|
41
|
+
overwriteSelectorStyles: SelectorStyleOverrides;
|
|
39
42
|
setAngle: (angle: number) => void;
|
|
40
43
|
setOperationType: (type: EmitEventType) => void;
|
|
41
44
|
setFloatBarData: (data: Partial<ShowFloatBarMsgValue>) => void;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ElayerType, EToolsKey } from "../core/enum";
|
|
2
|
+
import type { FontStyleType, FontWeightType } from "../component/textEditor/types";
|
|
3
|
+
import { ElementPropertyField, EStrokeType, SpeechBalloonPlacement } from "./types";
|
|
4
|
+
export type NormalizedUpdateElementFields = {
|
|
5
|
+
strokeColor?: string;
|
|
6
|
+
fillColor?: string;
|
|
7
|
+
thickness?: number;
|
|
8
|
+
strokeType?: EStrokeType;
|
|
9
|
+
fontColor?: string;
|
|
10
|
+
fontBgColor?: string;
|
|
11
|
+
fontSize?: number;
|
|
12
|
+
bold?: FontWeightType;
|
|
13
|
+
italic?: FontStyleType;
|
|
14
|
+
underline?: boolean;
|
|
15
|
+
lineThrough?: boolean;
|
|
16
|
+
isLocked?: boolean;
|
|
17
|
+
zIndexLayer?: ElayerType;
|
|
18
|
+
shape?: {
|
|
19
|
+
vertices?: number;
|
|
20
|
+
innerVerticeStep?: number;
|
|
21
|
+
innerRatio?: number;
|
|
22
|
+
placement?: SpeechBalloonPlacement;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
export declare function isValidStrokeTypeValue(strokeType: EStrokeType | undefined): boolean;
|
|
26
|
+
export declare function isElementPropertySupported(toolsType: EToolsKey | undefined, field: ElementPropertyField): boolean;
|
|
27
|
+
export declare function listSupportedElementProperties(toolsType: EToolsKey | undefined): ElementPropertyField[];
|
|
28
|
+
export declare function enumeratePresentFields(changes: NormalizedUpdateElementFields): ElementPropertyField[];
|
|
29
|
+
export declare function isStrokeTypeForToolsTypeSupported(toolsType: EToolsKey | undefined, strokeType: EStrokeType | undefined): boolean;
|
|
@@ -17,6 +17,7 @@ export declare class AppViewDisplayerManagerImpl extends AppViewDisplayerManager
|
|
|
17
17
|
canvasBgRef: React.RefObject<HTMLCanvasElement>;
|
|
18
18
|
backgroundContainerRef?: React.RefObject<HTMLDivElement>;
|
|
19
19
|
floatBarRef: React.RefObject<HTMLDivElement>;
|
|
20
|
+
customFloatbarContainerRef: React.RefObject<HTMLDivElement>;
|
|
20
21
|
containerOffset: {
|
|
21
22
|
x: number;
|
|
22
23
|
y: number;
|
|
@@ -19,6 +19,7 @@ export declare class MainViewMultiDisplayerManager extends MainViewDisplayerMana
|
|
|
19
19
|
canvasBgRef: React.RefObject<HTMLCanvasElement>;
|
|
20
20
|
backgroundContainerRef?: React.RefObject<HTMLDivElement>;
|
|
21
21
|
floatBarRef: React.RefObject<HTMLDivElement>;
|
|
22
|
+
customFloatbarContainerRef: React.RefObject<HTMLDivElement>;
|
|
22
23
|
containerOffset: {
|
|
23
24
|
x: number;
|
|
24
25
|
y: number;
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import type { BaseApplianceManager } from "./baseApplianceManager";
|
|
2
|
+
import { EmitEventType, type SelectorInfo, type SelectedElementsSnapshot, type SelectorTransformChangeInfo, type UpdateSelectedElementChanges, type UpdateElementInfo, type UpdateSelectedElementsResult, type ClearSelectedElementsResult, type CopySelectedElementsResult, type DeleteSelectedElementsResult } from "./types";
|
|
3
|
+
import { EToolsKey } from "../core/enum";
|
|
4
|
+
/**
|
|
5
|
+
* WB-429: selector 公开能力的实现入口。
|
|
6
|
+
*
|
|
7
|
+
* - 由 BaseApplianceManager 持有,单白板 / 多窗口共享同一套实现。
|
|
8
|
+
* - 通过 control.publicMsgEmitter 派发 selectedElementsChange / selectorGeometryChange / selectorTransformChange / remoteSelectorChange。
|
|
9
|
+
* - 通过 control.logger (即 room.logger) 写入可上报日志。
|
|
10
|
+
* - requestId 串联 API 调用、事件和日志。
|
|
11
|
+
*/
|
|
12
|
+
export declare class SelectorApiManager {
|
|
13
|
+
private control;
|
|
14
|
+
private logger;
|
|
15
|
+
private lastSelectedIdsByView;
|
|
16
|
+
private lastViewRectByView;
|
|
17
|
+
/** updateSelectedElements 的 requestId → resolver */
|
|
18
|
+
private updateResolveMap;
|
|
19
|
+
/** blurSelector 的 requestId → resolver */
|
|
20
|
+
private clearResolveMap;
|
|
21
|
+
/** copySelectedElements 的 requestId → resolver */
|
|
22
|
+
private copyResolveMap;
|
|
23
|
+
/** deleteSelectedElements 的 requestId → resolver */
|
|
24
|
+
private deleteResolveMap;
|
|
25
|
+
/** 远端 selector 上次同步快照:viewId → (uid → {selectedIds, viewRect?}) */
|
|
26
|
+
private lastRemoteSelectorByView;
|
|
27
|
+
/** camera-change 几何事件节流:每个 view 最多每 60ms 派发一次 */
|
|
28
|
+
private cameraEmitThrottleByView;
|
|
29
|
+
/** camera-change 挂起窗口:等待 selector rect 真正重算后,把随后的 rect 变化归因为 cameraTransform */
|
|
30
|
+
private pendingCameraChangeByView;
|
|
31
|
+
/** 同一次属性更新导致的几何变化做尾部合并,只派发最后一次 */
|
|
32
|
+
private pendingPropertyGeometryByKey;
|
|
33
|
+
constructor(control: BaseApplianceManager);
|
|
34
|
+
private stringifyLogValue;
|
|
35
|
+
private formatFieldsFromChanges;
|
|
36
|
+
private formatMethods;
|
|
37
|
+
private hasShapeChanges;
|
|
38
|
+
private resolveShapeDispatchToolsTypes;
|
|
39
|
+
private getStorageShapeSnapshot;
|
|
40
|
+
private cancelUndoTicker;
|
|
41
|
+
private resolveCancelableUndoTickerId;
|
|
42
|
+
private captureUndoTickerDuringDispatch;
|
|
43
|
+
destroy(): void;
|
|
44
|
+
/** 解析 viewId:未传时取 focuedView / mainView */
|
|
45
|
+
resolveViewId(viewId?: string): string | undefined;
|
|
46
|
+
/** 当前 selector 选中态快照 */
|
|
47
|
+
getSelectedElements(viewId?: string): SelectedElementsSnapshot | undefined;
|
|
48
|
+
isElementPropertySupported(toolsType: EToolsKey, field: import("./types").ElementPropertyField): boolean;
|
|
49
|
+
/** 主动清空当前 selector 选中态 */
|
|
50
|
+
blurSelector(viewId?: string): Promise<ClearSelectedElementsResult>;
|
|
51
|
+
/** 更新当前 selector 选中的元素集合属性 */
|
|
52
|
+
updateSelectedElements(viewId: string | undefined, changes: UpdateSelectedElementChanges): Promise<UpdateSelectedElementsResult>;
|
|
53
|
+
/** 复制当前 selector 选中的元素 */
|
|
54
|
+
copySelectedElements(viewId?: string): Promise<CopySelectedElementsResult>;
|
|
55
|
+
/** 删除当前 selector 选中的元素 */
|
|
56
|
+
deleteSelectedElements(viewId?: string): Promise<DeleteSelectedElementsResult>;
|
|
57
|
+
updateElement(elementId: string, scenePath: string, viewId: string, updateElementInfo: UpdateElementInfo, useUndoRedoStack?: boolean): Promise<boolean>;
|
|
58
|
+
onSelectorTransform(params: SelectorTransformChangeInfo): void;
|
|
59
|
+
/**
|
|
60
|
+
* 在 mainEngine.collectorSyncData 的 Select 分支调用。
|
|
61
|
+
* 负责派发 selectedElementsChange(仅 selectedIds 变化时)和 selectorGeometryChange。
|
|
62
|
+
*/
|
|
63
|
+
onSelectorSync(params: {
|
|
64
|
+
viewId: string;
|
|
65
|
+
scenePath?: string;
|
|
66
|
+
selectIds?: string[];
|
|
67
|
+
selectRect?: {
|
|
68
|
+
x: number;
|
|
69
|
+
y: number;
|
|
70
|
+
w: number;
|
|
71
|
+
h: number;
|
|
72
|
+
};
|
|
73
|
+
selectorInfo?: SelectorInfo;
|
|
74
|
+
}): void;
|
|
75
|
+
/** selector 因清空而消失时(来自 collectorSyncData Clear 或主动 blurSelector) */
|
|
76
|
+
onSelectorCleared(params: {
|
|
77
|
+
viewId: string;
|
|
78
|
+
scenePath?: string;
|
|
79
|
+
requestId?: string;
|
|
80
|
+
}): void;
|
|
81
|
+
/**
|
|
82
|
+
* camera 变化导致 selector viewRect 变化时调用。
|
|
83
|
+
* 节流派发 selectorGeometryChange,source=camera-change。
|
|
84
|
+
*/
|
|
85
|
+
onCameraChange(viewId: string): void;
|
|
86
|
+
private emitCameraGeometry;
|
|
87
|
+
private publicStorageHandler?;
|
|
88
|
+
private bindPublicStorageListener;
|
|
89
|
+
private unbindPublicStorageListener;
|
|
90
|
+
private tryResolveUpdateElements;
|
|
91
|
+
onRemoveNodeApplied(params: {
|
|
92
|
+
viewId: string;
|
|
93
|
+
requestId?: string;
|
|
94
|
+
removeIds?: string[];
|
|
95
|
+
}): void;
|
|
96
|
+
private onSyncStorageChange;
|
|
97
|
+
private handleRemoteSelectorState;
|
|
98
|
+
private logRemoteSelector;
|
|
99
|
+
private genRequestId;
|
|
100
|
+
private setPendingCameraChange;
|
|
101
|
+
private clearPendingCameraChange;
|
|
102
|
+
private getDebounceLogger;
|
|
103
|
+
private detectSelectorTransforming;
|
|
104
|
+
private isArrayEqual;
|
|
105
|
+
private isRectEqual;
|
|
106
|
+
onPropertyApplied(params: {
|
|
107
|
+
type: EmitEventType;
|
|
108
|
+
viewId: string;
|
|
109
|
+
scenePath?: string;
|
|
110
|
+
requestId?: string;
|
|
111
|
+
data: any;
|
|
112
|
+
}): void;
|
|
113
|
+
private schedulePropertyGeometryEmit;
|
|
114
|
+
/** 查询某个 workId 的 toolsType,用于 strokeType / zIndex 能力判断 */
|
|
115
|
+
private lookupToolsType;
|
|
116
|
+
/**
|
|
117
|
+
* 校验 changes.strokeType 是否被该 toolsType 支持。
|
|
118
|
+
* 不支持时移除 strokeType 字段,并写入 warnings。
|
|
119
|
+
*/
|
|
120
|
+
private validateStrokeTypeForChanges;
|
|
121
|
+
private flushUpdateSelectedElementsWarnings;
|
|
122
|
+
/** snapshot collector.storage 的 key 集合,用于 copy 后确认新增元素 */
|
|
123
|
+
/** 找出本次 copy 之后新增到 storage 的 local ids */
|
|
124
|
+
onUndoAckApplied: (params: {
|
|
125
|
+
viewId: string;
|
|
126
|
+
scenePath?: string;
|
|
127
|
+
requestId?: string;
|
|
128
|
+
emitEventType?: EmitEventType;
|
|
129
|
+
}) => void;
|
|
130
|
+
/** 收集本次 selector 更新需要等待的内部 method ack */
|
|
131
|
+
private collectPendingMethods;
|
|
132
|
+
private hasApplicableChangesForToolsType;
|
|
133
|
+
private buildUpdatedElementValue;
|
|
134
|
+
private normalizeUpdateElementInfo;
|
|
135
|
+
/** 把 UpdateSelectedElementChanges 分发到对应的内部 method emit */
|
|
136
|
+
private dispatchUpdate;
|
|
137
|
+
/** 根据 collector storage + floatBarData 组装单条元素信息 */
|
|
138
|
+
private buildSelectedElementInfo;
|
|
139
|
+
private buildRemoteSelectedElements;
|
|
140
|
+
private logGeometry;
|
|
141
|
+
}
|
|
@@ -19,6 +19,7 @@ export declare class MainViewSingleDisplayerManager extends MainViewDisplayerMan
|
|
|
19
19
|
canvasFloatRef: React.RefObject<HTMLCanvasElement>;
|
|
20
20
|
canvasBgRef: React.RefObject<HTMLCanvasElement>;
|
|
21
21
|
floatBarRef: React.RefObject<HTMLDivElement>;
|
|
22
|
+
customFloatbarContainerRef: React.RefObject<HTMLDivElement>;
|
|
22
23
|
containerOffset: {
|
|
23
24
|
x: number;
|
|
24
25
|
y: number;
|