@ease-forge/designer 1.0.28 → 1.1.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/dist/components/DesignCanvas.vue.d.ts +16 -0
- package/dist/components/DesignCanvas.vue.d.ts.map +1 -0
- package/dist/components/DragGhost.vue.d.ts +9 -0
- package/dist/components/DragGhost.vue.d.ts.map +1 -0
- package/dist/components/Workbench.vue.d.ts +14 -0
- package/dist/components/Workbench.vue.d.ts.map +1 -0
- package/dist/components/panels/MaterialPanel.vue.d.ts +14 -0
- package/dist/components/panels/MaterialPanel.vue.d.ts.map +1 -0
- package/dist/components/panels/OutlinePanel.vue.d.ts +9 -0
- package/dist/components/panels/OutlinePanel.vue.d.ts.map +1 -0
- package/dist/components/panels/SetterAdvancedPanel.vue.d.ts +15 -0
- package/dist/components/panels/SetterAdvancedPanel.vue.d.ts.map +1 -0
- package/dist/components/panels/SetterEventPanel.vue.d.ts +15 -0
- package/dist/components/panels/SetterEventPanel.vue.d.ts.map +1 -0
- package/dist/components/panels/SetterPropsGroup.vue.d.ts +12 -0
- package/dist/components/panels/SetterPropsGroup.vue.d.ts.map +1 -0
- package/dist/components/panels/SetterPropsPanel.vue.d.ts +12 -0
- package/dist/components/panels/SetterPropsPanel.vue.d.ts.map +1 -0
- package/dist/components/panels/SetterStyleGroup.vue.d.ts +12 -0
- package/dist/components/panels/SetterStyleGroup.vue.d.ts.map +1 -0
- package/dist/components/panels/SetterStylePanel.vue.d.ts +12 -0
- package/dist/components/panels/SetterStylePanel.vue.d.ts.map +1 -0
- package/dist/components/panels/style/StyleGroups.d.ts +35 -0
- package/dist/components/panels/style/StyleGroups.d.ts.map +1 -0
- package/dist/components/setter/BoolSetter.vue.d.ts +5 -0
- package/dist/components/setter/BoolSetter.vue.d.ts.map +1 -0
- package/dist/components/setter/ColorSetter.vue.d.ts +5 -0
- package/dist/components/setter/ColorSetter.vue.d.ts.map +1 -0
- package/dist/components/setter/DateSetter.vue.d.ts +5 -0
- package/dist/components/setter/DateSetter.vue.d.ts.map +1 -0
- package/dist/components/setter/EditorSetter.vue.d.ts +5 -0
- package/dist/components/setter/EditorSetter.vue.d.ts.map +1 -0
- package/dist/components/setter/NumberSetter.vue.d.ts +5 -0
- package/dist/components/setter/NumberSetter.vue.d.ts.map +1 -0
- package/dist/components/setter/SelectSetter.vue.d.ts +5 -0
- package/dist/components/setter/SelectSetter.vue.d.ts.map +1 -0
- package/dist/components/setter/StringSetter.vue.d.ts +5 -0
- package/dist/components/setter/StringSetter.vue.d.ts.map +1 -0
- package/dist/components/setter/TimeSetter.vue.d.ts +5 -0
- package/dist/components/setter/TimeSetter.vue.d.ts.map +1 -0
- package/dist/core/DesignerDriver.d.ts +36 -0
- package/dist/core/DesignerDriver.d.ts.map +1 -0
- package/dist/core/DesignerEffect.d.ts +30 -0
- package/dist/core/DesignerEffect.d.ts.map +1 -0
- package/dist/core/DesignerEngine.d.ts +95 -0
- package/dist/core/DesignerEngine.d.ts.map +1 -0
- package/dist/core/DesignerModule.d.ts +28 -0
- package/dist/core/DesignerModule.d.ts.map +1 -0
- package/dist/core/EventBus.d.ts +37 -0
- package/dist/core/EventBus.d.ts.map +1 -0
- package/dist/drivers/DragDropDriver.d.ts +48 -0
- package/dist/drivers/DragDropDriver.d.ts.map +1 -0
- package/dist/drivers/KeyboardDriver.d.ts +18 -0
- package/dist/drivers/KeyboardDriver.d.ts.map +1 -0
- package/dist/drivers/MouseClickDriver.d.ts +14 -0
- package/dist/drivers/MouseClickDriver.d.ts.map +1 -0
- package/dist/drivers/MouseMoveDriver.d.ts +14 -0
- package/dist/drivers/MouseMoveDriver.d.ts.map +1 -0
- package/dist/ease-forge-designer.cjs.js +2 -1
- package/dist/ease-forge-designer.cjs.js.map +1 -0
- package/dist/ease-forge-designer.cjs.prod.js +1 -1
- package/dist/ease-forge-designer.css +2 -0
- package/dist/ease-forge-designer.esm.js +3433 -0
- package/dist/ease-forge-designer.esm.js.map +1 -0
- package/dist/ease-forge-designer.esm.prod.js +3432 -1
- package/dist/effects/AuxToolEffect.d.ts +52 -0
- package/dist/effects/AuxToolEffect.d.ts.map +1 -0
- package/dist/effects/CursorEffect.d.ts +29 -0
- package/dist/effects/CursorEffect.d.ts.map +1 -0
- package/dist/effects/DraggingEffect.d.ts +17 -0
- package/dist/effects/DraggingEffect.d.ts.map +1 -0
- package/dist/events/DesignerEvent.d.ts +26 -0
- package/dist/events/DesignerEvent.d.ts.map +1 -0
- package/dist/events/cursor/AbstractCursorEvent.d.ts +22 -0
- package/dist/events/cursor/AbstractCursorEvent.d.ts.map +1 -0
- package/dist/events/cursor/DragMoveEvent.d.ts +10 -0
- package/dist/events/cursor/DragMoveEvent.d.ts.map +1 -0
- package/dist/events/cursor/DragStartEvent.d.ts +17 -0
- package/dist/events/cursor/DragStartEvent.d.ts.map +1 -0
- package/dist/events/cursor/DragStopEvent.d.ts +10 -0
- package/dist/events/cursor/DragStopEvent.d.ts.map +1 -0
- package/dist/events/cursor/MouseClickEvent.d.ts +10 -0
- package/dist/events/cursor/MouseClickEvent.d.ts.map +1 -0
- package/dist/events/cursor/MouseDoubleClickEvent.d.ts +10 -0
- package/dist/events/cursor/MouseDoubleClickEvent.d.ts.map +1 -0
- package/dist/events/cursor/MouseMoveEvent.d.ts +10 -0
- package/dist/events/cursor/MouseMoveEvent.d.ts.map +1 -0
- package/dist/events/designer/CommandEvent.d.ts +20 -0
- package/dist/events/designer/CommandEvent.d.ts.map +1 -0
- package/dist/events/designer/DragDropEvent.d.ts +29 -0
- package/dist/events/designer/DragDropEvent.d.ts.map +1 -0
- package/dist/events/engine/EngineMountEvent.d.ts +21 -0
- package/dist/events/engine/EngineMountEvent.d.ts.map +1 -0
- package/dist/events/engine/EngineUnmountEvent.d.ts +16 -0
- package/dist/events/engine/EngineUnmountEvent.d.ts.map +1 -0
- package/dist/events/keyboard/ShortcutKeyEvent.d.ts +32 -0
- package/dist/events/keyboard/ShortcutKeyEvent.d.ts.map +1 -0
- package/dist/history/Command.d.ts +21 -0
- package/dist/history/Command.d.ts.map +1 -0
- package/dist/history/CommandStack.d.ts +46 -0
- package/dist/history/CommandStack.d.ts.map +1 -0
- package/dist/index.d.ts +90 -1
- package/dist/index.d.ts.map +1 -0
- package/dist/models/Cursor.d.ts +44 -0
- package/dist/models/Cursor.d.ts.map +1 -0
- package/dist/models/DesignerState.d.ts +76 -0
- package/dist/models/DesignerState.d.ts.map +1 -0
- package/dist/models/DraggingCmpMetas.d.ts +41 -0
- package/dist/models/DraggingCmpMetas.d.ts.map +1 -0
- package/dist/models/HoverDashed.d.ts +41 -0
- package/dist/models/HoverDashed.d.ts.map +1 -0
- package/dist/models/Insertion.d.ts +57 -0
- package/dist/models/Insertion.d.ts.map +1 -0
- package/dist/models/Selection.d.ts +8 -0
- package/dist/models/Selection.d.ts.map +1 -0
- package/dist/models/SetterShareState.d.ts +32 -0
- package/dist/models/SetterShareState.d.ts.map +1 -0
- package/dist/operations/NodeOperationEffect.d.ts +25 -0
- package/dist/operations/NodeOperationEffect.d.ts.map +1 -0
- package/dist/operations/NodePosition.d.ts +55 -0
- package/dist/operations/NodePosition.d.ts.map +1 -0
- package/dist/operations/NodeSerialize.d.ts +8 -0
- package/dist/operations/NodeSerialize.d.ts.map +1 -0
- package/dist/operations/commands/AddNodesCommand.d.ts +34 -0
- package/dist/operations/commands/AddNodesCommand.d.ts.map +1 -0
- package/dist/operations/commands/MoveNodesCommand.d.ts +42 -0
- package/dist/operations/commands/MoveNodesCommand.d.ts.map +1 -0
- package/dist/operations/commands/RemoveNodesCommand.d.ts +50 -0
- package/dist/operations/commands/RemoveNodesCommand.d.ts.map +1 -0
- package/dist/operations/commands/UpdateListenersCommand.d.ts +42 -0
- package/dist/operations/commands/UpdateListenersCommand.d.ts.map +1 -0
- package/dist/operations/commands/UpdatePropsCommand.d.ts +53 -0
- package/dist/operations/commands/UpdatePropsCommand.d.ts.map +1 -0
- package/dist/register/RegisterSetter.d.ts +8 -0
- package/dist/register/RegisterSetter.d.ts.map +1 -0
- package/dist/types/Designer.d.ts +153 -0
- package/dist/types/Designer.d.ts.map +1 -0
- package/dist/utils/ComponentMetaUtils.d.ts +13 -0
- package/dist/utils/ComponentMetaUtils.d.ts.map +1 -0
- package/dist/utils/DesignerUtils.d.ts +11 -0
- package/dist/utils/DesignerUtils.d.ts.map +1 -0
- package/dist/utils/PositionCalc.d.ts +27 -0
- package/dist/utils/PositionCalc.d.ts.map +1 -0
- package/dist/utils/SetterUtils.d.ts +59 -0
- package/dist/utils/SetterUtils.d.ts.map +1 -0
- package/dist/utils/StyleUtils.d.ts +34 -0
- package/dist/utils/StyleUtils.d.ts.map +1 -0
- package/package.json +30 -21
- package/dist/types/index.d.ts +0 -0
- /package/{index.js → index.cjs} +0 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type ComputedRef, type Ref } from "vue";
|
|
2
|
+
import { type CursorPosition, CursorStatus } from "../types/Designer";
|
|
3
|
+
/**
|
|
4
|
+
* 设计器光标信息模型
|
|
5
|
+
* 维护光标位置、拖拽状态以及拖拽过程的位置增量
|
|
6
|
+
*/
|
|
7
|
+
declare class Cursor {
|
|
8
|
+
/** 光标拖拽状态 */
|
|
9
|
+
protected readonly _status: Ref<CursorStatus>;
|
|
10
|
+
/** 光标位置 */
|
|
11
|
+
protected readonly _position: Ref<CursorPosition>;
|
|
12
|
+
/** 拖动开始位置 */
|
|
13
|
+
protected readonly _dragStartPosition: Ref<CursorPosition | undefined>;
|
|
14
|
+
/** 拖拽结束位置 */
|
|
15
|
+
protected readonly _dragEndPosition: Ref<CursorPosition | undefined>;
|
|
16
|
+
/** 拖动的增量(与上一次的光标位置比较) */
|
|
17
|
+
protected readonly _dragAtomDelta: Ref<CursorPosition>;
|
|
18
|
+
/** 拖拽起点到当前位置的增量 */
|
|
19
|
+
protected readonly _dragStartToCurrentDelta: ComputedRef<CursorPosition>;
|
|
20
|
+
/** 拖拽起点到终点位置的增量 */
|
|
21
|
+
protected readonly _dragStartToEndDelta: ComputedRef<CursorPosition>;
|
|
22
|
+
/** 光标状态 */
|
|
23
|
+
get status(): CursorStatus;
|
|
24
|
+
set status(status: CursorStatus);
|
|
25
|
+
/** 光标位置 */
|
|
26
|
+
get position(): CursorPosition;
|
|
27
|
+
set position(position: CursorPosition);
|
|
28
|
+
/** 拖动开始位置 */
|
|
29
|
+
get dragStartPosition(): CursorPosition | undefined;
|
|
30
|
+
set dragStartPosition(position: CursorPosition | undefined);
|
|
31
|
+
/** 拖拽结束位置 */
|
|
32
|
+
get dragEndPosition(): CursorPosition | undefined;
|
|
33
|
+
set dragEndPosition(position: CursorPosition | undefined);
|
|
34
|
+
/** 拖动的增量(与上一次的光标位置比较) */
|
|
35
|
+
get dragAtomDelta(): CursorPosition;
|
|
36
|
+
/** 拖拽起点到当前位置的增量 */
|
|
37
|
+
get dragStartToCurrentDelta(): CursorPosition;
|
|
38
|
+
/** 拖拽起点到终点位置的增量 */
|
|
39
|
+
get dragStartToEndDelta(): CursorPosition;
|
|
40
|
+
/** 当前是否处于拖拽中 */
|
|
41
|
+
isDragging(): boolean;
|
|
42
|
+
}
|
|
43
|
+
export { Cursor, };
|
|
44
|
+
//# sourceMappingURL=Cursor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cursor.d.ts","sourceRoot":"","sources":["../../src/models/Cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,WAAW,EAAO,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAChE,OAAO,EAAE,KAAK,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtE;;;GAGG;AACH,cAAM,MAAM;IACR,aAAa;IACb,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,CAA0C;IACvF,WAAW;IACX,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,cAAc,CAAC,CAAiD;IAClG,aAAa;IACb,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,CAAC,cAAc,GAAG,SAAS,CAAC,CAAqC;IAC3G,aAAa;IACb,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,CAAC,cAAc,GAAG,SAAS,CAAC,CAAqC;IACzG,yBAAyB;IACzB,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,cAAc,CAAC,CAAiD;IACvG,mBAAmB;IACnB,SAAS,CAAC,QAAQ,CAAC,wBAAwB,EAAE,WAAW,CAAC,cAAc,CAAC,CAOrE;IACH,mBAAmB;IACnB,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,WAAW,CAAC,cAAc,CAAC,CAKjE;IAEH,WAAW;IACX,IAAI,MAAM,IAAI,YAAY,CAEzB;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,EAE9B;IAED,WAAW;IACX,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAGpC;IAED,aAAa;IACb,IAAI,iBAAiB,IAAI,cAAc,GAAG,SAAS,CAElD;IAED,IAAI,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,SAAS,EAEzD;IAED,aAAa;IACb,IAAI,eAAe,IAAI,cAAc,GAAG,SAAS,CAEhD;IAED,IAAI,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG,SAAS,EAEvD;IAED,yBAAyB;IACzB,IAAI,aAAa,IAAI,cAAc,CAElC;IAED,mBAAmB;IACnB,IAAI,uBAAuB,IAAI,cAAc,CAE5C;IAED,mBAAmB;IACnB,IAAI,mBAAmB,IAAI,cAAc,CAExC;IAED,gBAAgB;IAChB,UAAU,IAAI,OAAO;CAGxB;AAED,OAAO,EACH,MAAM,GACT,CAAA"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { type ComputedRef, type Ref, type ShallowReactive } from "vue";
|
|
2
|
+
import { type BlockInstance, type ComponentMeta, type RuntimeNode } from "@ease-forge/runtime";
|
|
3
|
+
import type { DesignerEngine } from "../core/DesignerEngine";
|
|
4
|
+
import { HoverDashed } from "./HoverDashed";
|
|
5
|
+
import { Selection } from "./Selection";
|
|
6
|
+
import { CommandStack } from "../history/CommandStack";
|
|
7
|
+
import { SetterShareState } from "./SetterShareState";
|
|
8
|
+
/**
|
|
9
|
+
* 设计器页面状态(一个设计器页面路由对应一个 DesignerState)
|
|
10
|
+
* 持有画布容器 DOM、画布 Block 实例、悬停虚线与选中集合
|
|
11
|
+
*/
|
|
12
|
+
declare class DesignerState {
|
|
13
|
+
/** 设计器引擎 */
|
|
14
|
+
readonly designerEngine: DesignerEngine;
|
|
15
|
+
/** 设计器画布容器 DOM(DesignCanvas 组件挂载时设置) */
|
|
16
|
+
readonly _designerContainer: Ref<HTMLDivElement | undefined>;
|
|
17
|
+
/** 设计器画布的 Block 组件实例(DesignCanvas 组件挂载时设置) */
|
|
18
|
+
readonly _designerBlockInstance: Ref<BlockInstance | undefined>;
|
|
19
|
+
/** 设计器鼠标悬停时的虚线 */
|
|
20
|
+
readonly hover: HoverDashed;
|
|
21
|
+
/** 命令栈(undo/redo) */
|
|
22
|
+
readonly commandStack: CommandStack;
|
|
23
|
+
/** 组件配置面板共享状态 */
|
|
24
|
+
readonly setterShareState: SetterShareState;
|
|
25
|
+
/** 设计器选中节点集合 */
|
|
26
|
+
readonly selections: ShallowReactive<Array<Selection>>;
|
|
27
|
+
/** 设计器选择的第一个节点 */
|
|
28
|
+
protected readonly _selection: ComputedRef<Selection | undefined>;
|
|
29
|
+
/** 存在选中的节点 */
|
|
30
|
+
protected readonly _existsSelection: ComputedRef<boolean>;
|
|
31
|
+
/** selections 中只有一个选择项 */
|
|
32
|
+
protected readonly _singleSelection: ComputedRef<boolean>;
|
|
33
|
+
/** 设计器选中的节点集合(由 nodeId 解析成 RuntimeNode) */
|
|
34
|
+
protected readonly _selectNodes: ComputedRef<Array<RuntimeNode>>;
|
|
35
|
+
/** 设计器选中的第一个节点 */
|
|
36
|
+
protected readonly _selectNode: ComputedRef<RuntimeNode | undefined>;
|
|
37
|
+
/** 当前选中的 ComponentMeta(多选且类型不同时返回空) */
|
|
38
|
+
protected readonly _selectedComponentMeta: ComputedRef<ComponentMeta | undefined>;
|
|
39
|
+
constructor(designerEngine: DesignerEngine);
|
|
40
|
+
/**
|
|
41
|
+
* 获取当前选中的 ComponentMeta,如果选中多个节点且节点类型不同返回空
|
|
42
|
+
*/
|
|
43
|
+
protected getCurrentComponentMeta(): ComponentMeta | undefined;
|
|
44
|
+
/** 设计器画布容器 DOM */
|
|
45
|
+
get designerContainer(): HTMLDivElement | undefined;
|
|
46
|
+
/** 设置设计器画布容器 DOM */
|
|
47
|
+
set designerContainer(value: HTMLDivElement | undefined);
|
|
48
|
+
/** 设计器画布的 Block 组件实例 */
|
|
49
|
+
get designerBlockInstance(): BlockInstance | undefined;
|
|
50
|
+
/** 设置设计器画布的 Block 组件实例 */
|
|
51
|
+
set designerBlockInstance(value: BlockInstance | undefined);
|
|
52
|
+
/** 画布 Block 实例对象(globalContext/ops 等访问入口) */
|
|
53
|
+
get blockInstance(): BlockInstance | undefined;
|
|
54
|
+
/** 设计器选择的第一个节点(Selection) */
|
|
55
|
+
get selection(): Selection | undefined;
|
|
56
|
+
/** 存在选中的节点 */
|
|
57
|
+
get existsSelection(): boolean;
|
|
58
|
+
/** selections 中只有一个选择项 */
|
|
59
|
+
get singleSelection(): boolean;
|
|
60
|
+
/** 设计器选中的节点集合(RuntimeNode) */
|
|
61
|
+
get selectNodes(): Array<RuntimeNode>;
|
|
62
|
+
/** 设计器选中的第一个节点(RuntimeNode) */
|
|
63
|
+
get selectNode(): RuntimeNode | undefined;
|
|
64
|
+
/** 当前选中的 ComponentMeta */
|
|
65
|
+
get selectedComponentMeta(): ComponentMeta | undefined;
|
|
66
|
+
/** 清空选中的节点集合 */
|
|
67
|
+
clearSelections(): void;
|
|
68
|
+
/**
|
|
69
|
+
* 选中指定的节点集合(替换当前选中)
|
|
70
|
+
* 等待画布重新渲染完成后, 依据节点 DOM 计算选中框位置
|
|
71
|
+
* @param nodeIds 节点id集合(RuntimeNode.id)
|
|
72
|
+
*/
|
|
73
|
+
selectNodeByIds(nodeIds: Array<string>): void;
|
|
74
|
+
}
|
|
75
|
+
export { DesignerState, };
|
|
76
|
+
//# sourceMappingURL=DesignerState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DesignerState.d.ts","sourceRoot":"","sources":["../../src/models/DesignerState.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type ComputedRef, type ShallowRef } from "vue";
|
|
2
|
+
import type { ComponentMeta } from "@ease-forge/runtime";
|
|
3
|
+
import type { AuxToolPosition, InsertionData } from "../types/Designer";
|
|
4
|
+
/**
|
|
5
|
+
* 正在拖拽的组件元信息模型
|
|
6
|
+
* 由 DraggingEffect 维护: 拖拽开始时填充, 拖拽结束时清空
|
|
7
|
+
*/
|
|
8
|
+
declare class DraggingCmpMetas {
|
|
9
|
+
/** 正在拖拽的节点ID集合(与 cmpMetas 顺序一一对应, 拖拽物料时为 emptyNodeId) */
|
|
10
|
+
protected readonly _nodeIds: ShallowRef<Array<string>>;
|
|
11
|
+
/** 正在拖拽节点的区域位置 */
|
|
12
|
+
protected readonly _positions: ShallowRef<Array<AuxToolPosition>>;
|
|
13
|
+
/** 正在拖拽的组件元信息集合 */
|
|
14
|
+
protected readonly _cmpMetas: ShallowRef<Array<ComponentMeta>>;
|
|
15
|
+
/** 存在拖拽的组件 */
|
|
16
|
+
protected readonly _existsCmpMeta: ComputedRef<boolean>;
|
|
17
|
+
/** 当前是否只有一个组件在拖拽 */
|
|
18
|
+
protected readonly _onlyOne: ComputedRef<boolean>;
|
|
19
|
+
/** 设计器插入组件的位置信息 */
|
|
20
|
+
protected readonly _insertion: ShallowRef<InsertionData | undefined>;
|
|
21
|
+
/** 正在拖拽的节点ID集合(与 cmpMetas 顺序一一对应) */
|
|
22
|
+
get nodeIds(): Array<string>;
|
|
23
|
+
set nodeIds(value: Array<string>);
|
|
24
|
+
/** 正在拖拽节点的区域位置 */
|
|
25
|
+
get positions(): Array<AuxToolPosition>;
|
|
26
|
+
set positions(value: Array<AuxToolPosition>);
|
|
27
|
+
/** 正在拖拽的组件元信息集合 */
|
|
28
|
+
get cmpMetas(): Array<ComponentMeta>;
|
|
29
|
+
set cmpMetas(value: Array<ComponentMeta>);
|
|
30
|
+
/** 存在拖拽的组件 */
|
|
31
|
+
get existsCmpMeta(): boolean;
|
|
32
|
+
/** 当前是否只有一个组件在拖拽 */
|
|
33
|
+
get onlyOne(): boolean;
|
|
34
|
+
/** 设计器插入组件的位置信息 */
|
|
35
|
+
get insertion(): InsertionData | undefined;
|
|
36
|
+
set insertion(value: InsertionData | undefined);
|
|
37
|
+
/** 清空拖拽状态 */
|
|
38
|
+
clear(): void;
|
|
39
|
+
}
|
|
40
|
+
export { DraggingCmpMetas, };
|
|
41
|
+
//# sourceMappingURL=DraggingCmpMetas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DraggingCmpMetas.d.ts","sourceRoot":"","sources":["../../src/models/DraggingCmpMetas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,WAAW,EAAc,KAAK,UAAU,EAAE,MAAM,KAAK,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAExE;;;GAGG;AACH,cAAM,gBAAgB;IAClB,yDAAyD;IACzD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAiC;IACvF,kBAAkB;IAClB,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAA0C;IAC3G,mBAAmB;IACnB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAwC;IACtG,cAAc;IACd,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,OAAO,CAAC,CAA4D;IACnH,oBAAoB;IACpB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAA8D;IAC/G,mBAAmB;IACnB,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,aAAa,GAAG,SAAS,CAAC,CAA2C;IAE/G,qCAAqC;IACrC,IAAI,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAE3B;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAE/B;IAED,kBAAkB;IAClB,IAAI,SAAS,IAAI,KAAK,CAAC,eAAe,CAAC,CAEtC;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,eAAe,CAAC,EAE1C;IAED,mBAAmB;IACnB,IAAI,QAAQ,IAAI,KAAK,CAAC,aAAa,CAAC,CAEnC;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,EAEvC;IAED,cAAc;IACd,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,oBAAoB;IACpB,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,mBAAmB;IACnB,IAAI,SAAS,IAAI,aAAa,GAAG,SAAS,CAEzC;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,EAE7C;IAED,aAAa;IACb,KAAK,IAAI,IAAI;CAMhB;AAED,OAAO,EACH,gBAAgB,GACnB,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type Ref, type ShallowRef } from "vue";
|
|
2
|
+
import type { ComponentMeta } from "@ease-forge/runtime";
|
|
3
|
+
import type { AuxToolPosition } from "../types/Designer";
|
|
4
|
+
import type { DesignerState } from "./DesignerState";
|
|
5
|
+
/**
|
|
6
|
+
* 设计器鼠标悬停时的虚线框模型
|
|
7
|
+
* 记录悬停节点的元信息与虚线框位置
|
|
8
|
+
*/
|
|
9
|
+
declare class HoverDashed {
|
|
10
|
+
/** 所属的设计器状态 */
|
|
11
|
+
readonly designerState: DesignerState;
|
|
12
|
+
/** 组件元信息 */
|
|
13
|
+
protected readonly _componentMeta: ShallowRef<ComponentMeta | undefined>;
|
|
14
|
+
/** 父组件节点id(值是:RuntimeNode.id) */
|
|
15
|
+
protected readonly _parentId: Ref<string | undefined>;
|
|
16
|
+
/** 组件节点id(值是:RuntimeNode.id) */
|
|
17
|
+
protected readonly _nodeId: Ref<string | undefined>;
|
|
18
|
+
/** 虚线框区域位置 */
|
|
19
|
+
protected readonly _position: ShallowRef<AuxToolPosition | undefined>;
|
|
20
|
+
constructor(designerState: DesignerState);
|
|
21
|
+
/** 组件元信息 */
|
|
22
|
+
get componentMeta(): ComponentMeta | undefined;
|
|
23
|
+
set componentMeta(value: ComponentMeta | undefined);
|
|
24
|
+
/** 父组件节点id(值是:RuntimeNode.id) */
|
|
25
|
+
get parentId(): string | undefined;
|
|
26
|
+
set parentId(value: string | undefined);
|
|
27
|
+
/** 组件节点id(值是:RuntimeNode.id) */
|
|
28
|
+
get nodeId(): string | undefined;
|
|
29
|
+
set nodeId(value: string | undefined);
|
|
30
|
+
/** 虚线框区域位置 */
|
|
31
|
+
get position(): AuxToolPosition | undefined;
|
|
32
|
+
set position(value: AuxToolPosition | undefined);
|
|
33
|
+
/** 当前悬停的组件是否是容器组件(存在占位插槽) */
|
|
34
|
+
get isContainer(): boolean;
|
|
35
|
+
/** 重新计算虚线框的位置 */
|
|
36
|
+
recalcPosition(): void;
|
|
37
|
+
/** 清除悬停信息 */
|
|
38
|
+
clear(): void;
|
|
39
|
+
}
|
|
40
|
+
export { HoverDashed, };
|
|
41
|
+
//# sourceMappingURL=HoverDashed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HoverDashed.d.ts","sourceRoot":"","sources":["../../src/models/HoverDashed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,GAAG,EAAc,KAAK,UAAU,EAAE,MAAM,KAAK,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;GAGG;AACH,cAAM,WAAW;IACb,eAAe;IACf,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,YAAY;IACZ,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC,aAAa,GAAG,SAAS,CAAC,CAA2C;IACnH,iCAAiC;IACjC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,CAA6B;IAClF,gCAAgC;IAChC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,CAA6B;IAChF,cAAc;IACd,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,eAAe,GAAG,SAAS,CAAC,CAA6C;gBAEtG,aAAa,EAAE,aAAa;IAIxC,YAAY;IACZ,IAAI,aAAa,IAAI,aAAa,GAAG,SAAS,CAE7C;IAED,IAAI,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,EAEjD;IAED,iCAAiC;IACjC,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAErC;IAED,gCAAgC;IAChC,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAEnC;IAED,cAAc;IACd,IAAI,QAAQ,IAAI,eAAe,GAAG,SAAS,CAE1C;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,EAE9C;IAED,6BAA6B;IAC7B,IAAI,WAAW,IAAI,OAAO,CAIzB;IAED,iBAAiB;IACjB,cAAc,IAAI,IAAI;IAYtB,aAAa;IACb,KAAK,IAAI,IAAI;CAMhB;AAED,OAAO,EACH,WAAW,GACd,CAAA"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { type Ref, type ShallowRef } from "vue";
|
|
2
|
+
import { type AuxToolPosition, Direction, type InsertionData, type NodeToCursorDistance } from "../types/Designer";
|
|
3
|
+
/**
|
|
4
|
+
* 设计器插入组件的位置信息模型
|
|
5
|
+
* 拖拽过程中由 AuxToolEffect 计算, 记录"放到哪个容器的哪个位置"
|
|
6
|
+
*/
|
|
7
|
+
declare class Insertion {
|
|
8
|
+
/** 渲染节点与光标的距离信息 */
|
|
9
|
+
protected readonly _distance: ShallowRef<NodeToCursorDistance | undefined>;
|
|
10
|
+
/** 插入区域位置 */
|
|
11
|
+
protected readonly _position: ShallowRef<AuxToolPosition | undefined>;
|
|
12
|
+
/** 容器组件节点id(值是:RuntimeNode.id) */
|
|
13
|
+
protected readonly _containerId: Ref<string | undefined>;
|
|
14
|
+
/** 插入容器节点的插槽名称(子节点是一种特殊的插槽,名为:default) */
|
|
15
|
+
protected readonly _slotName: Ref<string | undefined>;
|
|
16
|
+
/** 离插入位置最近的组件节点id(值是:RuntimeNode.id) */
|
|
17
|
+
protected readonly _nodeId: Ref<string | undefined>;
|
|
18
|
+
/** 当前 node 属于占位组件 */
|
|
19
|
+
protected readonly _placeholder: Ref<boolean | undefined>;
|
|
20
|
+
/** 是否允许拖拽(通过了 DragDropConfig 校验) */
|
|
21
|
+
protected readonly _allowDrag: Ref<boolean>;
|
|
22
|
+
/** 渲染节点与光标的距离信息 */
|
|
23
|
+
get distance(): NodeToCursorDistance | undefined;
|
|
24
|
+
set distance(value: NodeToCursorDistance | undefined);
|
|
25
|
+
/** 插入区域位置 */
|
|
26
|
+
get position(): AuxToolPosition | undefined;
|
|
27
|
+
set position(value: AuxToolPosition | undefined);
|
|
28
|
+
/** 容器组件节点id(值是:RuntimeNode.id) */
|
|
29
|
+
get containerId(): string | undefined;
|
|
30
|
+
set containerId(value: string | undefined);
|
|
31
|
+
/** 插入容器节点的插槽名称(子节点是一种特殊的插槽,名为:default) */
|
|
32
|
+
get slotName(): string | undefined;
|
|
33
|
+
set slotName(value: string | undefined);
|
|
34
|
+
/** 离插入位置最近的组件节点id(值是:RuntimeNode.id) */
|
|
35
|
+
get nodeId(): string | undefined;
|
|
36
|
+
set nodeId(value: string | undefined);
|
|
37
|
+
/** 当前 node 属于占位组件 */
|
|
38
|
+
get placeholder(): boolean | undefined;
|
|
39
|
+
set placeholder(value: boolean | undefined);
|
|
40
|
+
/** 是否允许拖拽(通过了 DragDropConfig 校验) */
|
|
41
|
+
get allowDrag(): boolean;
|
|
42
|
+
set allowDrag(value: boolean);
|
|
43
|
+
/** 插入的方向 */
|
|
44
|
+
get direction(): Direction | undefined;
|
|
45
|
+
/** 是否在 nodeId 之前插入 */
|
|
46
|
+
isBefore(): boolean;
|
|
47
|
+
/** 是否是水平方向插入(left、right) */
|
|
48
|
+
isHorizontal(): boolean;
|
|
49
|
+
/** 当前是否是空的(没有有效的插入位置) */
|
|
50
|
+
isEmpty(): boolean;
|
|
51
|
+
/** 生成设计器插入组件的位置信息(给 DragDropEvent / 操作命令层使用) */
|
|
52
|
+
getInsertionData(): InsertionData | undefined;
|
|
53
|
+
/** 清除插入信息 */
|
|
54
|
+
clear(): void;
|
|
55
|
+
}
|
|
56
|
+
export { Insertion, };
|
|
57
|
+
//# sourceMappingURL=Insertion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Insertion.d.ts","sourceRoot":"","sources":["../../src/models/Insertion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,GAAG,EAAc,KAAK,UAAU,EAAE,MAAM,KAAK,CAAC;AAEjE,OAAO,EAAE,KAAK,eAAe,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEnH;;;GAGG;AACH,cAAM,SAAS;IACX,mBAAmB;IACnB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAkD;IAC5H,aAAa;IACb,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,eAAe,GAAG,SAAS,CAAC,CAA6C;IAClH,kCAAkC;IAClC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,CAA6B;IACrF,0CAA0C;IAC1C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,CAA6B;IAClF,wCAAwC;IACxC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,CAA6B;IAChF,qBAAqB;IACrB,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,CAA8B;IACvF,oCAAoC;IACpC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,CAAuB;IAElE,mBAAmB;IACnB,IAAI,QAAQ,IAAI,oBAAoB,GAAG,SAAS,CAE/C;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,oBAAoB,GAAG,SAAS,EAEnD;IAED,aAAa;IACb,IAAI,QAAQ,IAAI,eAAe,GAAG,SAAS,CAE1C;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,EAE9C;IAED,kCAAkC;IAClC,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAExC;IAED,0CAA0C;IAC1C,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAErC;IAED,wCAAwC;IACxC,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAEnC;IAED,qBAAqB;IACrB,IAAI,WAAW,IAAI,OAAO,GAAG,SAAS,CAErC;IAED,IAAI,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,EAEzC;IAED,oCAAoC;IACpC,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO,EAE3B;IAED,YAAY;IACZ,IAAI,SAAS,IAAI,SAAS,GAAG,SAAS,CAErC;IAED,sBAAsB;IACtB,QAAQ,IAAI,OAAO;IAMnB,4BAA4B;IAC5B,YAAY,IAAI,OAAO;IAMvB,yBAAyB;IACzB,OAAO,IAAI,OAAO;IAIlB,gDAAgD;IAChD,gBAAgB,IAAI,aAAa,GAAG,SAAS;IAc7C,aAAa;IACb,KAAK,IAAI,IAAI;CAShB;AAED,OAAO,EACH,SAAS,GACZ,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Selection.d.ts","sourceRoot":"","sources":["../../src/models/Selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;GAEG;AACH,cAAM,SAAU,SAAQ,WAAW;CAClC;AAED,OAAO,EACH,SAAS,GACZ,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type Ref } from "vue";
|
|
2
|
+
import type { ComponentMeta } from "@ease-forge/runtime";
|
|
3
|
+
import type { DesignerState } from "./DesignerState";
|
|
4
|
+
/**
|
|
5
|
+
* 组件配置面板共享状态(分组展开状态 + 面板刷新版本)
|
|
6
|
+
*/
|
|
7
|
+
declare class SetterShareState {
|
|
8
|
+
/** 所属的设计器状态 */
|
|
9
|
+
readonly designerState: DesignerState;
|
|
10
|
+
/** 展开的组件分组 | 面板类型 -> 展开的分组标题 */
|
|
11
|
+
protected readonly _expandGroups: Ref<Record<string, Array<string>>>;
|
|
12
|
+
/** 面板刷新版本号(每次 +1, 驱动面板重渲染) */
|
|
13
|
+
protected readonly _panelVersion: Ref<number>;
|
|
14
|
+
constructor(designerState: DesignerState);
|
|
15
|
+
/** 获取所有展开的 group title */
|
|
16
|
+
protected getAllExpandTitles(meta?: ComponentMeta): Record<string, Array<string>>;
|
|
17
|
+
/** 展开的组件分组 */
|
|
18
|
+
get expandGroups(): Record<string, Array<string>>;
|
|
19
|
+
set expandGroups(value: Record<string, Array<string>>);
|
|
20
|
+
/** 重新计算expandGroups(选中组件变化时调用) */
|
|
21
|
+
recalcExpandGroups(): void;
|
|
22
|
+
/** 面板刷新版本号(面板以它作为渲染 key) */
|
|
23
|
+
get panelVersion(): number;
|
|
24
|
+
/**
|
|
25
|
+
* 通知配置面板刷新
|
|
26
|
+
* 画布节点是非响应式对象(markRaw), 面板直接修改 node.props/node.listeners 后
|
|
27
|
+
* 依赖这些数据的显示(绑定标记、已绑定标签等)不会自动更新, 需主动递增版本号触发重渲染
|
|
28
|
+
*/
|
|
29
|
+
notifyPanelUpdate(): void;
|
|
30
|
+
}
|
|
31
|
+
export { SetterShareState, };
|
|
32
|
+
//# sourceMappingURL=SetterShareState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetterShareState.d.ts","sourceRoot":"","sources":["../../src/models/SetterShareState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,qBAAqB,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD;;GAEG;AACH,cAAM,gBAAgB;IAClB,eAAe;IACf,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,gCAAgC;IAChC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAA0C;IAC9G,8BAA8B;IAC9B,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAkB;gBAEnD,aAAa,EAAE,aAAa;IAIxC,0BAA0B;IAC1B,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAoBjF,cAAc;IACd,IAAI,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAEhD;IAED,IAAI,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAEpD;IAED,kCAAkC;IAClC,kBAAkB,IAAI,IAAI;IAI1B,4BAA4B;IAC5B,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;;;OAIG;IACH,iBAAiB,IAAI,IAAI;CAG5B;AAED,OAAO,EACH,gBAAgB,GACnB,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { DesignerEffect } from "../core/DesignerEffect";
|
|
2
|
+
import type { DesignerState } from "../models/DesignerState";
|
|
3
|
+
/**
|
|
4
|
+
* 节点操作效果(操作命令层的入口)
|
|
5
|
+
* 消费 DragDropEvent 执行节点的添加/移动命令,
|
|
6
|
+
* 消费快捷键事件执行 删除选中 / undo / redo 命令
|
|
7
|
+
*/
|
|
8
|
+
declare class NodeOperationEffect extends DesignerEffect {
|
|
9
|
+
/** 取消订阅函数集合 */
|
|
10
|
+
private readonly unsubscribes;
|
|
11
|
+
protected onEffect(): void;
|
|
12
|
+
protected onDestroy(): void;
|
|
13
|
+
/** 当前操作的页面状态 */
|
|
14
|
+
protected getActiveState(): DesignerState | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* 拖拽放下 -> 添加/移动节点命令
|
|
17
|
+
*/
|
|
18
|
+
protected dragDropEffect(): void;
|
|
19
|
+
/**
|
|
20
|
+
* 快捷键 -> 删除选中 / undo / redo
|
|
21
|
+
*/
|
|
22
|
+
protected shortcutKeyEffect(): void;
|
|
23
|
+
}
|
|
24
|
+
export { NodeOperationEffect, };
|
|
25
|
+
//# sourceMappingURL=NodeOperationEffect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeOperationEffect.d.ts","sourceRoot":"","sources":["../../src/operations/NodeOperationEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAQ7D;;;;GAIG;AACH,cAAM,mBAAoB,SAAQ,cAAc;IAC5C,eAAe;IACf,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyB;IAEtD,SAAS,CAAC,QAAQ,IAAI,IAAI;IAK1B,SAAS,CAAC,SAAS,IAAI,IAAI;IAK3B,gBAAgB;IAChB,SAAS,CAAC,cAAc,IAAI,aAAa,GAAG,SAAS;IAIrD;;OAEG;IACH,SAAS,CAAC,cAAc,IAAI,IAAI;IAoChC;;OAEG;IACH,SAAS,CAAC,iBAAiB,IAAI,IAAI;CA0CtC;AAED,OAAO,EACH,mBAAmB,GACtB,CAAA"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { type BlockInstance, type DesignNode, type RuntimeComponentSlotsItem, type RuntimeNode } from "@ease-forge/runtime";
|
|
2
|
+
/** 节点定位类型 */
|
|
3
|
+
type InsertPosition = "before" | "after" | "first" | "last";
|
|
4
|
+
/**
|
|
5
|
+
* 节点插入目标位置
|
|
6
|
+
* 统一描述"放到哪个容器的哪个位置", 由 applyXXX 函数映射到 runtime BlockOperation 的具体方法
|
|
7
|
+
*/
|
|
8
|
+
interface InsertTarget {
|
|
9
|
+
/** 容器节点id(RuntimeNode.id) */
|
|
10
|
+
parentId: string;
|
|
11
|
+
/** 插槽名称(子节点集合是特殊的插槽, 名为 default) */
|
|
12
|
+
slotName: string;
|
|
13
|
+
/** 定位类型 */
|
|
14
|
+
position: InsertPosition;
|
|
15
|
+
/** 定位节点id(position 为 before/after 时有效) */
|
|
16
|
+
positionId?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* 读取节点当前所在的插入位置(用于 undo 时恢复节点原位置)
|
|
20
|
+
* 返回 undefined 表示节点不存在或没有父节点(根节点)
|
|
21
|
+
*/
|
|
22
|
+
declare function getNodeInsertTarget(blockInstance: BlockInstance, nodeId: string): InsertTarget | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* 计算节点在其父容器子节点集合中的索引
|
|
25
|
+
* 用于多节点 undo 恢复时按删除/移动前的文档顺序依次还原
|
|
26
|
+
* (返回 -1 表示节点不存在或没有父节点)
|
|
27
|
+
*/
|
|
28
|
+
declare function getNodeDocIndex(blockInstance: BlockInstance, nodeId: string): number;
|
|
29
|
+
/**
|
|
30
|
+
* 应用插入目标: 移动已有节点
|
|
31
|
+
* @return 是否成功
|
|
32
|
+
*/
|
|
33
|
+
declare function applyMoveNodes(blockInstance: BlockInstance, target: InsertTarget, moveNodeIds: Array<string>): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* 应用插入目标: 添加新节点
|
|
36
|
+
* @return 新增的节点集合(添加失败返回空数组)
|
|
37
|
+
*/
|
|
38
|
+
declare function applyAddNodes(blockInstance: BlockInstance, target: InsertTarget, nodes: Array<DesignNode>): Array<RuntimeComponentSlotsItem>;
|
|
39
|
+
/**
|
|
40
|
+
* 把 DropEvent 的 insertion 数据转换成插入目标
|
|
41
|
+
*/
|
|
42
|
+
declare function insertionToTarget(insertion: {
|
|
43
|
+
containerId: string;
|
|
44
|
+
slotName: string;
|
|
45
|
+
nodeId: string;
|
|
46
|
+
placeholder: boolean;
|
|
47
|
+
before: boolean;
|
|
48
|
+
}): InsertTarget;
|
|
49
|
+
/**
|
|
50
|
+
* 从添加结果中提取 RuntimeNode 集合(过滤掉字符串等非节点项)
|
|
51
|
+
*/
|
|
52
|
+
declare function toRuntimeNodes(items: Array<RuntimeComponentSlotsItem>): Array<RuntimeNode>;
|
|
53
|
+
export type { InsertPosition, InsertTarget, };
|
|
54
|
+
export { getNodeInsertTarget, getNodeDocIndex, applyMoveNodes, applyAddNodes, insertionToTarget, toRuntimeNodes, };
|
|
55
|
+
//# sourceMappingURL=NodePosition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodePosition.d.ts","sourceRoot":"","sources":["../../src/operations/NodePosition.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAiB,KAAK,UAAU,EAAE,KAAK,yBAAyB,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE3I,aAAa;AACb,KAAK,cAAc,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5D;;;GAGG;AACH,UAAU,YAAY;IAClB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,QAAQ,EAAE,cAAc,CAAC;IACzB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,iBAAS,mBAAmB,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAyBnG;AAED;;;;GAIG;AACH,iBAAS,eAAe,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAe7E;AAkBD;;;GAGG;AACH,iBAAS,cAAc,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,OAAO,CAsB/G;AAED;;;GAGG;AACH,iBAAS,aAAa,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,yBAAyB,CAAC,CAoBrI;AAED;;GAEG;AACH,iBAAS,iBAAiB,CAAC,SAAS,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,YAAY,CAYpJ;AAED;;GAEG;AACH,iBAAS,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,yBAAyB,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,CAEnF;AAED,YAAY,EACR,cAAc,EACd,YAAY,GACf,CAAA;AAED,OAAO,EACH,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,cAAc,GACjB,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type DesignNode, type RuntimeNode } from "@ease-forge/runtime";
|
|
2
|
+
/**
|
|
3
|
+
* 把运行时节点(RuntimeNode/RuntimeBlock)反推回设计时节点配置(DesignNode/DesignBlock)
|
|
4
|
+
* 用于"删除节点"命令的撤销: 重新添加时需要原始的 DesignNode 配置
|
|
5
|
+
*/
|
|
6
|
+
declare function runtimeNodeToDesignNode(node: RuntimeNode): DesignNode;
|
|
7
|
+
export { runtimeNodeToDesignNode, };
|
|
8
|
+
//# sourceMappingURL=NodeSerialize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeSerialize.d.ts","sourceRoot":"","sources":["../../src/operations/NodeSerialize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAkE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAgDxI;;;GAGG;AACH,iBAAS,uBAAuB,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,CA2C9D;AAOD,OAAO,EACH,uBAAuB,GAC1B,CAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { DesignNode } from "@ease-forge/runtime";
|
|
2
|
+
import type { DesignCommand } from "../../history/Command";
|
|
3
|
+
import type { DesignerState } from "../../models/DesignerState";
|
|
4
|
+
import type { InsertTarget } from "../NodePosition";
|
|
5
|
+
/** 添加节点命令的选项 */
|
|
6
|
+
interface AddNodesCommandOptions {
|
|
7
|
+
/** 添加的目标位置 */
|
|
8
|
+
target: InsertTarget;
|
|
9
|
+
/** 添加的节点配置集合 */
|
|
10
|
+
nodes: Array<DesignNode>;
|
|
11
|
+
/** 命令执行成功后的回调(参数是新增节点的id集合, 用于选中新节点) */
|
|
12
|
+
onExecute?: (nodeIds: Array<string>) => void;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* 添加节点命令
|
|
16
|
+
* 注意: undo 后 redo 会产生新的节点id(runtime 添加节点时自动生成id)
|
|
17
|
+
*/
|
|
18
|
+
declare class AddNodesCommand implements DesignCommand {
|
|
19
|
+
readonly name: string;
|
|
20
|
+
/** 所属的设计器页面状态(实时读取 blockInstance) */
|
|
21
|
+
protected readonly designerState: DesignerState;
|
|
22
|
+
protected readonly options: AddNodesCommandOptions;
|
|
23
|
+
/** execute/redo 产生的新节点id集合(用于 undo 时删除) */
|
|
24
|
+
protected addedNodeIds: Array<string>;
|
|
25
|
+
constructor(designerState: DesignerState, name: string, options: AddNodesCommandOptions);
|
|
26
|
+
execute(): boolean;
|
|
27
|
+
undo(): boolean;
|
|
28
|
+
redo(): boolean;
|
|
29
|
+
/** 执行添加动作 */
|
|
30
|
+
protected doAdd(): boolean;
|
|
31
|
+
}
|
|
32
|
+
export type { AddNodesCommandOptions, };
|
|
33
|
+
export { AddNodesCommand, };
|
|
34
|
+
//# sourceMappingURL=AddNodesCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddNodesCommand.d.ts","sourceRoot":"","sources":["../../../src/operations/commands/AddNodesCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAA0C,MAAM,qBAAqB,CAAC;AAC9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGpD,gBAAgB;AAChB,UAAU,sBAAsB;IAC5B,cAAc;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,gBAAgB;IAChB,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACzB,wCAAwC;IACxC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;CAChD;AAED;;;GAGG;AACH,cAAM,eAAgB,YAAW,aAAa;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAChD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACnD,2CAA2C;IAC3C,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;gBAE/B,aAAa,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB;IAMvF,OAAO,IAAI,OAAO;IAIlB,IAAI,IAAI,OAAO;IASf,IAAI,IAAI,OAAO;IAIf,aAAa;IACb,SAAS,CAAC,KAAK,IAAI,OAAO;CAU7B;AAED,YAAY,EACR,sBAAsB,GACzB,CAAA;AAED,OAAO,EACH,eAAe,GAClB,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { DesignCommand } from "../../history/Command";
|
|
2
|
+
import type { DesignerState } from "../../models/DesignerState";
|
|
3
|
+
import type { InsertTarget } from "../NodePosition";
|
|
4
|
+
/** 移动节点命令的选项 */
|
|
5
|
+
interface MoveNodesCommandOptions {
|
|
6
|
+
/** 移动的目标位置 */
|
|
7
|
+
target: InsertTarget;
|
|
8
|
+
/** 移动的节点id集合 */
|
|
9
|
+
nodeIds: Array<string>;
|
|
10
|
+
/** 命令执行成功后的回调 */
|
|
11
|
+
onExecute?: () => void;
|
|
12
|
+
}
|
|
13
|
+
/** 节点原位置记录 */
|
|
14
|
+
interface OriginPosition {
|
|
15
|
+
nodeId: string;
|
|
16
|
+
/** 移动前的插入位置(用于 undo 恢复) */
|
|
17
|
+
target: InsertTarget;
|
|
18
|
+
/** 移动前在父容器子节点集合中的索引(undo 按此顺序恢复) */
|
|
19
|
+
docIndex: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 移动节点命令
|
|
23
|
+
* undo 依据移动前记录的原位置逐个恢复:
|
|
24
|
+
* 恢复顺序按移动前的文档顺序(docIndex)而非选中顺序 ——
|
|
25
|
+
* 定位语义是"插入到前一个兄弟节点之后", 前兄弟必须先于依赖它的节点回到原位
|
|
26
|
+
*/
|
|
27
|
+
declare class MoveNodesCommand implements DesignCommand {
|
|
28
|
+
readonly name: string;
|
|
29
|
+
protected readonly designerState: DesignerState;
|
|
30
|
+
protected readonly options: MoveNodesCommandOptions;
|
|
31
|
+
/** 移动前的节点原位置记录 */
|
|
32
|
+
protected originPositions: Array<OriginPosition>;
|
|
33
|
+
constructor(designerState: DesignerState, name: string, options: MoveNodesCommandOptions);
|
|
34
|
+
execute(): boolean;
|
|
35
|
+
undo(): boolean;
|
|
36
|
+
redo(): boolean;
|
|
37
|
+
/** 执行移动动作(首次执行时记录原位置) */
|
|
38
|
+
protected doMove(): boolean;
|
|
39
|
+
}
|
|
40
|
+
export type { MoveNodesCommandOptions, };
|
|
41
|
+
export { MoveNodesCommand, };
|
|
42
|
+
//# sourceMappingURL=MoveNodesCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MoveNodesCommand.d.ts","sourceRoot":"","sources":["../../../src/operations/commands/MoveNodesCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGpD,gBAAgB;AAChB,UAAU,uBAAuB;IAC7B,cAAc;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,gBAAgB;IAChB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,cAAc;AACd,UAAU,cAAc;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,cAAM,gBAAiB,YAAW,aAAa;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAChD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;IACpD,kBAAkB;IAClB,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC,cAAc,CAAC,CAAM;gBAE1C,aAAa,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB;IAMxF,OAAO,IAAI,OAAO;IAIlB,IAAI,IAAI,OAAO;IAaf,IAAI,IAAI,OAAO;IAIf,yBAAyB;IACzB,SAAS,CAAC,MAAM,IAAI,OAAO;CAiB9B;AAED,YAAY,EACR,uBAAuB,GAC1B,CAAA;AAED,OAAO,EACH,gBAAgB,GACnB,CAAA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { DesignNode } from "@ease-forge/runtime";
|
|
2
|
+
import type { DesignCommand } from "../../history/Command";
|
|
3
|
+
import type { DesignerState } from "../../models/DesignerState";
|
|
4
|
+
import type { InsertTarget } from "../NodePosition";
|
|
5
|
+
/** 删除节点命令的选项 */
|
|
6
|
+
interface RemoveNodesCommandOptions {
|
|
7
|
+
/** 删除的节点id集合 */
|
|
8
|
+
nodeIds: Array<string>;
|
|
9
|
+
/** 命令执行成功后的回调(参数是被删除的节点名称集合) */
|
|
10
|
+
onExecute?: (names: Array<string>) => void;
|
|
11
|
+
}
|
|
12
|
+
/** 被删除节点的记录 */
|
|
13
|
+
interface RemovedNode {
|
|
14
|
+
/** 被删除节点的原始 DesignNode 配置(用于 undo 恢复) */
|
|
15
|
+
designNode: DesignNode;
|
|
16
|
+
/** 被删除前的插入位置 */
|
|
17
|
+
target: InsertTarget;
|
|
18
|
+
/** 被删除前在父容器子节点集合中的索引(undo 时按此顺序恢复) */
|
|
19
|
+
docIndex: number;
|
|
20
|
+
/** 被删除前的节点id(undo 重新添加后 id 会变化) */
|
|
21
|
+
oldNodeId: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* 删除节点命令
|
|
25
|
+
* undo 通过记录的原始 DesignNode 配置重新添加回原位置:
|
|
26
|
+
* - runtime 重新添加节点时会生成新的 id, 因此 undo 需记录"旧id -> 新id"映射,
|
|
27
|
+
* 后续恢复节点的定位(positionId)才能正确指向已恢复的兄弟节点;
|
|
28
|
+
* - 恢复按删除前的文档顺序(docIndex)进行, 保证"前兄弟定位"依次生效;
|
|
29
|
+
* - redo 直接删除 undo 恢复出的新节点(currentNodeIds), 不会因旧 id 失效而丢失命令
|
|
30
|
+
*/
|
|
31
|
+
declare class RemoveNodesCommand implements DesignCommand {
|
|
32
|
+
readonly name: string;
|
|
33
|
+
protected readonly designerState: DesignerState;
|
|
34
|
+
protected readonly options: RemoveNodesCommandOptions;
|
|
35
|
+
/** 被删除节点的记录(execute/redo 时重建) */
|
|
36
|
+
protected removedNodes: Array<RemovedNode>;
|
|
37
|
+
/** 最近一次删除/恢复动作对应的节点id集合(redo 删除时使用) */
|
|
38
|
+
protected currentNodeIds: Array<string>;
|
|
39
|
+
constructor(designerState: DesignerState, name: string, options: RemoveNodesCommandOptions);
|
|
40
|
+
execute(): boolean;
|
|
41
|
+
undo(): boolean;
|
|
42
|
+
redo(): boolean;
|
|
43
|
+
/** 把插入目标中指向"已恢复节点(新id)"的定位 id 替换成新 id, 未失效的定位保持不变 */
|
|
44
|
+
protected mapInsertTarget(target: InsertTarget, idMap: Map<string, string>): InsertTarget;
|
|
45
|
+
/** 执行删除动作 */
|
|
46
|
+
protected doRemove(): boolean;
|
|
47
|
+
}
|
|
48
|
+
export type { RemoveNodesCommandOptions, };
|
|
49
|
+
export { RemoveNodesCommand, };
|
|
50
|
+
//# sourceMappingURL=RemoveNodesCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RemoveNodesCommand.d.ts","sourceRoot":"","sources":["../../../src/operations/commands/RemoveNodesCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAA0C,MAAM,qBAAqB,CAAC;AAC9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAIpD,gBAAgB;AAChB,UAAU,yBAAyB;IAC/B,gBAAgB;IAChB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,gCAAgC;IAChC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;CAC9C;AAED,eAAe;AACf,UAAU,WAAW;IACjB,yCAAyC;IACzC,UAAU,EAAE,UAAU,CAAC;IACvB,gBAAgB;IAChB,MAAM,EAAE,YAAY,CAAC;IACrB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,cAAM,kBAAmB,YAAW,aAAa;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAChD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC;IACtD,iCAAiC;IACjC,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,CAAM;IAChD,uCAAuC;IACvC,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;gBAEjC,aAAa,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,yBAAyB;IAM1F,OAAO,IAAI,OAAO;IAIlB,IAAI,IAAI,OAAO;IAuBf,IAAI,IAAI,OAAO;IAIf,qDAAqD;IACrD,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY;IAMzF,aAAa;IACb,SAAS,CAAC,QAAQ,IAAI,OAAO;CA4BhC;AAED,YAAY,EACR,yBAAyB,GAC5B,CAAA;AAED,OAAO,EACH,kBAAkB,GACrB,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { RuntimeListener } from "@ease-forge/runtime";
|
|
2
|
+
import type { DesignCommand } from "../../history/Command";
|
|
3
|
+
import type { DesignerState } from "../../models/DesignerState";
|
|
4
|
+
/** 单个节点的事件监听修改描述 */
|
|
5
|
+
interface UpdateListenersChange {
|
|
6
|
+
/** 目标节点id */
|
|
7
|
+
nodeId: string;
|
|
8
|
+
/** 事件名(原始事件名, 如 click; runtime 内部会转换成 onXxx 属性名) */
|
|
9
|
+
event: string;
|
|
10
|
+
/** 修改前的监听器(undefined 表示原本未绑定) */
|
|
11
|
+
oldListener?: RuntimeListener;
|
|
12
|
+
/** 修改后的监听器(undefined 表示解绑) */
|
|
13
|
+
newListener?: RuntimeListener;
|
|
14
|
+
}
|
|
15
|
+
/** 事件监听修改命令的选项 */
|
|
16
|
+
interface UpdateListenersCommandOptions {
|
|
17
|
+
/** 修改描述集合 */
|
|
18
|
+
changes: Array<UpdateListenersChange>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* 修改事件监听命令(绑定/修改/解绑)
|
|
22
|
+
* 经由 runtime 的 bindListenerById / removeListenerById 执行:
|
|
23
|
+
* 除写入 node.listeners 外, 还会同步维护 ext.bindListeners(渲染时真正传给组件的
|
|
24
|
+
* 事件处理器)、runtimeBlock.methods 函数池并触发重渲染 —— 直接改 node.listeners
|
|
25
|
+
* 不会同步这些状态, 事件修改将无法生效
|
|
26
|
+
*/
|
|
27
|
+
declare class UpdateListenersCommand implements DesignCommand {
|
|
28
|
+
readonly name: string;
|
|
29
|
+
protected readonly designerState: DesignerState;
|
|
30
|
+
protected readonly options: UpdateListenersCommandOptions;
|
|
31
|
+
constructor(designerState: DesignerState, name: string, options: UpdateListenersCommandOptions);
|
|
32
|
+
execute(): boolean;
|
|
33
|
+
undo(): boolean;
|
|
34
|
+
redo(): boolean;
|
|
35
|
+
/** 应用修改(toOld = true 时恢复修改前的监听器) */
|
|
36
|
+
protected applyChanges(toOld: boolean): boolean;
|
|
37
|
+
/** 命令合并: 同一节点同一事件的连续修改合并成一条历史 */
|
|
38
|
+
tryMerge(next: DesignCommand): boolean;
|
|
39
|
+
}
|
|
40
|
+
export type { UpdateListenersChange, UpdateListenersCommandOptions, };
|
|
41
|
+
export { UpdateListenersCommand, };
|
|
42
|
+
//# sourceMappingURL=UpdateListenersCommand.d.ts.map
|