diff --git a/docs/docs/api/canvas.md b/docs/docs/api/canvas.md
index 8340bd348..344223bcb 100644
--- a/docs/docs/api/canvas.md
+++ b/docs/docs/api/canvas.md
@@ -42,7 +42,7 @@ get dragon(): IPublicModelDragon | null;
get activeTracker(): IPublicModelActiveTracker | null;
```
-## 方法签名
+## 方法
### createLocation
创建一个文档插入位置对象,该对象用来描述一个即将插入的节点在文档中的位置
diff --git a/docs/docs/api/common.md b/docs/docs/api/common.md
index a6b21974d..e5bfa8629 100644
--- a/docs/docs/api/common.md
+++ b/docs/docs/api/common.md
@@ -20,7 +20,7 @@ sidebar_position: 11
#### skeletonCabin
面板扩展相关,详见下方方法签名
-## 方法签名
+## 方法
### utils
#### isNodeSchema
是否为合法的 schema 结构
diff --git a/docs/docs/api/config.md b/docs/docs/api/config.md
index fee26d436..ea4c7dbfc 100644
--- a/docs/docs/api/config.md
+++ b/docs/docs/api/config.md
@@ -10,7 +10,7 @@ sidebar_position: 8
## 模块简介
配置模块,负责配置的读、写等操作。
-## 方法签名
+## 方法
### get
获取指定 key 的值
diff --git a/docs/docs/api/event.md b/docs/docs/api/event.md
index be3c768e0..0eb8b9738 100644
--- a/docs/docs/api/event.md
+++ b/docs/docs/api/event.md
@@ -10,7 +10,7 @@ sidebar_position: 7
## 模块简介
负责事件处理 API,支持自定义监听事件、触发事件。
-## 方法签名
+## 方法
### on
监听事件
diff --git a/docs/docs/api/hotkey.md b/docs/docs/api/hotkey.md
index a8c717342..a244b94c2 100644
--- a/docs/docs/api/hotkey.md
+++ b/docs/docs/api/hotkey.md
@@ -9,7 +9,7 @@ sidebar_position: 5
## 模块简介
绑定快捷键 API,可以自定义项目快捷键使用。
-## 方法签名
+## 方法
### bind
绑定快捷键
diff --git a/docs/docs/api/init.md b/docs/docs/api/init.md
index 185e76355..f8bf2cdbe 100644
--- a/docs/docs/api/init.md
+++ b/docs/docs/api/init.md
@@ -8,7 +8,7 @@ sidebar_position: 10
## 模块简介
提供 init 等方法
-## 方法签名
+## 方法
#### 1. init
初始化引擎
diff --git a/docs/docs/api/logger.md b/docs/docs/api/logger.md
index 68681438b..7493f34dc 100644
--- a/docs/docs/api/logger.md
+++ b/docs/docs/api/logger.md
@@ -12,7 +12,7 @@ sidebar_position: 9
> 注:日志级别可以通过 url query 动态调整,详见下方[查看示例](#查看示例)。
> 参考 [zen-logger](https://web.npm.alibaba-inc.com/package/zen-logger) 实现进行封装
-## 方法签名
+## 方法
日志记录方法
diff --git a/docs/docs/api/material.md b/docs/docs/api/material.md
index c060b9bef..0732c568e 100644
--- a/docs/docs/api/material.md
+++ b/docs/docs/api/material.md
@@ -22,7 +22,7 @@ get componentsMap(): { [key: string]: IPublicTypeNpmInfo | ComponentType |
```
相关类型:[IPublicTypeNpmInfo](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/npm-info.ts)
-## 方法签名
+## 方法
### 资产包
#### setAssets
diff --git a/docs/docs/api/model/detecting.md b/docs/docs/api/model/detecting.md
index 15e1cfca7..c7a20ddcb 100644
--- a/docs/docs/api/model/detecting.md
+++ b/docs/docs/api/model/detecting.md
@@ -9,7 +9,7 @@ sidebar_position: 6
画布节点悬停模型
-## 变量
+## 属性
### current
@@ -28,7 +28,7 @@ sidebar_position: 6
`@type {boolean}`
-## 方法签名
+## 方法
### capture
hover 指定节点
diff --git a/docs/docs/api/model/document-model.md b/docs/docs/api/model/document-model.md
index 9e5064371..c9f338609 100644
--- a/docs/docs/api/model/document-model.md
+++ b/docs/docs/api/model/document-model.md
@@ -9,7 +9,7 @@ sidebar_position: 0
文档模型
-## 变量
+## 属性
### id
@@ -95,7 +95,7 @@ sidebar_position: 0
**@since v1.1.0**
-## 方法签名
+## 方法
### getNodeById
根据 nodeId 返回 [Node](./node) 实例
diff --git a/docs/docs/api/model/dragon.md b/docs/docs/api/model/dragon.md
index 82884224b..995fd1b1f 100644
--- a/docs/docs/api/model/dragon.md
+++ b/docs/docs/api/model/dragon.md
@@ -18,7 +18,7 @@ import { IPublicModelDragon } from '@alilc/lowcode-types';
**@since** v1.1.0
-## 变量
+## 属性
### dragging
@@ -31,7 +31,7 @@ import { IPublicModelDragon } from '@alilc/lowcode-types';
get dragging(): boolean;
```
-## 方法签名
+## 方法
### onDragstart
diff --git a/docs/docs/api/model/drop-location.md b/docs/docs/api/model/drop-location.md
index 37497741c..853da842c 100644
--- a/docs/docs/api/model/drop-location.md
+++ b/docs/docs/api/model/drop-location.md
@@ -11,7 +11,7 @@ sidebar_position: 13
拖拽放置位置模型
-## 变量
+## 属性
### target
@@ -37,7 +37,7 @@ sidebar_position: 13
相关类型:[IPublicModelLocateEvent](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/model/location-event.ts)
-## 方法签名
+## 方法
### clone
diff --git a/docs/docs/api/model/history.md b/docs/docs/api/model/history.md
index db6800850..b8c4d791b 100644
--- a/docs/docs/api/model/history.md
+++ b/docs/docs/api/model/history.md
@@ -9,7 +9,7 @@ sidebar_position: 5
操作历史记录模型
-## 方法签名
+## 方法
### go
历史记录跳转到指定位置
diff --git a/docs/docs/api/model/modal-nodes-manager.md b/docs/docs/api/model/modal-nodes-manager.md
index ed89ce31b..acff26734 100644
--- a/docs/docs/api/model/modal-nodes-manager.md
+++ b/docs/docs/api/model/modal-nodes-manager.md
@@ -9,40 +9,86 @@ sidebar_position: 7
模态节点管理器模型
-## 方法签名
+## 方法
### setNodes
-setNodes()
-
设置模态节点,触发内部事件
+```typescript
+/**
+ * 设置模态节点,触发内部事件
+ * set modal nodes, trigger internal events
+ */
+setNodes(): void;
+```
+
### getModalNodes
-getModalNodes()
-
获取模态节点(们)
+```typescript
+/**
+ * 获取模态节点(们)
+ * get modal nodes
+ */
+getModalNodes(): IPublicModelNode[];
+```
+
+相关类型:[IPublicModelNode](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/model/node.ts)
+
### getVisibleModalNode
-getVisibleModalNode()
-
获取当前可见的模态节点
+```typescript
+/**
+ * 获取当前可见的模态节点
+ * get current visible modal node
+ */
+getVisibleModalNode(): IPublicModelNode | null;
+```
+
+相关类型:[IPublicModelNode](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/model/node.ts)
+
### hideModalNodes
-hideModalNodes()
-
隐藏模态节点(们)
+```typescript
+/**
+ * 隐藏模态节点(们)
+ * hide modal nodes
+ */
+hideModalNodes(): void;
+```
+
### setVisible
-setVisible(node: Node)
-
设置指定节点为可见态
+```typescript
+/**
+ * 设置指定节点为可见态
+ * set specfic model node as visible
+ * @param node Node
+ */
+setVisible(node: IPublicModelNode): void;
+```
+
+相关类型:[IPublicModelNode](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/model/node.ts)
+
### setInvisible
-setInvisible(node: Node)
-
设置指定节点为不可见态
+
+```typescript
+/**
+ * 设置指定节点为不可见态
+ * set specfic model node as invisible
+ * @param node Node
+ */
+setInvisible(node: IPublicModelNode): void;
+```
+
+相关类型:[IPublicModelNode](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/model/node.ts)
diff --git a/docs/docs/api/model/node-children.md b/docs/docs/api/model/node-children.md
index 2e8769411..10488a733 100644
--- a/docs/docs/api/model/node-children.md
+++ b/docs/docs/api/model/node-children.md
@@ -8,7 +8,7 @@ sidebar_position: 2
## 基本介绍
节点孩子模型
-## 变量
+## 属性
### owner
返回当前 children 实例所属的节点实例
@@ -41,7 +41,7 @@ children 内的节点实例数
**@since v1.1.0**
-## 方法签名
+## 方法
### delete
删除指定节点
diff --git a/docs/docs/api/model/node.md b/docs/docs/api/model/node.md
index 60678ad34..fbc88034b 100644
--- a/docs/docs/api/model/node.md
+++ b/docs/docs/api/model/node.md
@@ -9,7 +9,7 @@ sidebar_position: 1
节点模型
-## 变量
+## 属性
### id
节点 id
@@ -263,7 +263,7 @@ sidebar_position: 1
**@since v1.1.0**
-## 方法签名
+## 方法
### getRect
diff --git a/docs/docs/api/model/plugin-instance.md b/docs/docs/api/model/plugin-instance.md
index 8f764c68b..14ce38837 100644
--- a/docs/docs/api/model/plugin-instance.md
+++ b/docs/docs/api/model/plugin-instance.md
@@ -17,38 +17,24 @@ sidebar_position: 12
插件名字
-```typescript
-get name(): string;
-```
+`@type {string}`
### dep
插件依赖
-```typescript
-get dep(): string[];
-```
+`@type {string[]}`
### disabled
插件是否禁用
-```typescript
-get disabled(): boolean
-
-set disabled(disabled: boolean): void;
-
-```
+`@type {boolean}`
### meta
插件 meta 信息
-```typescript
-get meta(): IPublicTypePluginMeta
-
-```
-
-- [IPublicTypePluginMeta](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/plugin-meta.ts)
-
+`@type {IPublicTypePluginMeta}`
+相关类型:[IPublicTypePluginMeta](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/plugin-meta.ts)
diff --git a/docs/docs/api/model/prop.md b/docs/docs/api/model/prop.md
index e619cdc33..d9b0d14f4 100644
--- a/docs/docs/api/model/prop.md
+++ b/docs/docs/api/model/prop.md
@@ -9,7 +9,7 @@ sidebar_position: 3
属性模型
-## 变量
+## 属性
### id
@@ -46,7 +46,7 @@ key 值
相关类型:[IPublicModelNode](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/model/node.ts)
-## 方法签名
+## 方法
### setValue
diff --git a/docs/docs/api/model/props.md b/docs/docs/api/model/props.md
index f76919d49..9bd6eaa66 100644
--- a/docs/docs/api/model/props.md
+++ b/docs/docs/api/model/props.md
@@ -9,7 +9,7 @@ sidebar_position: 4
属性集模型
-## 变量
+## 属性
### id
id
@@ -32,7 +32,7 @@ id
相关类型:[IPublicModelNode](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/model/node.ts)
-## 方法签名
+## 方法
### getProp
获取指定 path 的属性模型实例
diff --git a/docs/docs/api/model/resource.md b/docs/docs/api/model/resource.md
index 33a6e3119..30b1e9f41 100644
--- a/docs/docs/api/model/resource.md
+++ b/docs/docs/api/model/resource.md
@@ -7,7 +7,7 @@ sidebar_position: 12
> **@types** [IPublicModelWindow](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/model/resource.ts)
> **@since** v1.1.0
-## 变量
+## 属性
### title
diff --git a/docs/docs/api/model/selection.md b/docs/docs/api/model/selection.md
index 529a3e5a2..9fc2e3a1c 100644
--- a/docs/docs/api/model/selection.md
+++ b/docs/docs/api/model/selection.md
@@ -9,7 +9,7 @@ sidebar_position: 6
画布节点选中模型
-## 变量
+## 属性
### selected
返回选中的节点 id
@@ -25,7 +25,7 @@ sidebar_position: 6
**@since v1.1.0**
-## 方法签名
+## 方法
### select
选中指定节点(覆盖方式)
diff --git a/docs/docs/api/model/window.md b/docs/docs/api/model/window.md
index f70c33e4d..7814ae6ea 100644
--- a/docs/docs/api/model/window.md
+++ b/docs/docs/api/model/window.md
@@ -12,7 +12,7 @@ sidebar_position: 12
低代码设计器窗口模型
-## 变量
+## 属性
### id
@@ -38,7 +38,7 @@ sidebar_position: 12
关联模型 [IPublicModelResource](./resource)
-## 方法签名
+## 方法
### importSchema
当前窗口导入 schema, 会调用当前窗口对应资源的 import 钩子
diff --git a/docs/docs/api/plugins.md b/docs/docs/api/plugins.md
index 9b1993b10..58be1fde0 100644
--- a/docs/docs/api/plugins.md
+++ b/docs/docs/api/plugins.md
@@ -8,7 +8,7 @@ sidebar_position: 4
## 模块简介
插件管理器,提供编排模块中管理插件的能力。
-## 方法签名
+## 方法
### register
注册插件
diff --git a/docs/docs/api/project.md b/docs/docs/api/project.md
index 15fb3cb7e..0c7213aac 100644
--- a/docs/docs/api/project.md
+++ b/docs/docs/api/project.md
@@ -69,7 +69,7 @@ get simulatorHost(): IPublicApiSimulatorHost | null;
相关类型:[IPublicApiSimulatorHost](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/api/simulator-host.ts)
-## 方法签名
+## 方法
### openDocument
打开一个 document
diff --git a/docs/docs/api/setters.md b/docs/docs/api/setters.md
index 3c5fd9f75..92d24f4e1 100644
--- a/docs/docs/api/setters.md
+++ b/docs/docs/api/setters.md
@@ -8,7 +8,7 @@ sidebar_position: 6
## 模块简介
负责注册设置器、管理设置器的 API。注册自定义设置器之后可以在物料中进行使用。
-## 方法签名
+## 方法
### getSetter
获取指定 setter
diff --git a/docs/docs/api/skeleton.md b/docs/docs/api/skeleton.md
index 5ad82accf..e7ae391eb 100644
--- a/docs/docs/api/skeleton.md
+++ b/docs/docs/api/skeleton.md
@@ -135,7 +135,7 @@ skeleton.add({
});
```
-## 方法签名
+## 方法
### add
diff --git a/docs/docs/api/workspace.md b/docs/docs/api/workspace.md
index 138693cfa..81301d110 100644
--- a/docs/docs/api/workspace.md
+++ b/docs/docs/api/workspace.md
@@ -57,7 +57,7 @@ get resourceList(): IPublicModelResource;
关联模型 [IPublicModelResource](./model/resource)
-## 方法签名
+## 方法
### registerResourceType
注册资源
diff --git a/packages/designer/src/document/document-model.ts b/packages/designer/src/document/document-model.ts
index 8bccde2ef..cb345cc82 100644
--- a/packages/designer/src/document/document-model.ts
+++ b/packages/designer/src/document/document-model.ts
@@ -753,7 +753,7 @@ export class DocumentModel implements IDocumentModel {
}));
}
- onNodeCreate(func: (node: Node) => void) {
+ onNodeCreate(func: (node: INode) => void) {
const wrappedFunc = wrapWithEventSwitch(func);
this.emitter.on('nodecreate', wrappedFunc);
return () => {
@@ -761,7 +761,7 @@ export class DocumentModel implements IDocumentModel {
};
}
- onNodeDestroy(func: (node: Node) => void) {
+ onNodeDestroy(func: (node: INode) => void) {
const wrappedFunc = wrapWithEventSwitch(func);
this.emitter.on('nodedestroy', wrappedFunc);
return () => {
diff --git a/packages/designer/src/document/node/modal-nodes-manager.ts b/packages/designer/src/document/node/modal-nodes-manager.ts
index 68bca607b..585b52f5f 100644
--- a/packages/designer/src/document/node/modal-nodes-manager.ts
+++ b/packages/designer/src/document/node/modal-nodes-manager.ts
@@ -1,15 +1,15 @@
-import { Node } from './node';
+import { INode, Node } from './node';
import { DocumentModel } from '../document-model';
import { IPublicModelModalNodesManager } from '@alilc/lowcode-types';
import { createModuleEventBus, IEventBus } from '@alilc/lowcode-editor-core';
-export function getModalNodes(node: Node) {
+export function getModalNodes(node: INode | Node) {
if (!node) return [];
let nodes: any = [];
if (node.componentMeta.isModal) {
nodes.push(node);
}
- const children = node.getChildren();
+ const { children } = node;
if (children) {
children.forEach((child) => {
nodes = nodes.concat(getModalNodes(child));
@@ -20,14 +20,17 @@ export function getModalNodes(node: Node) {
export interface IModalNodesManager extends IPublicModelModalNodesManager {
+ getModalNodes(): INode[];
+
+ getVisibleModalNode(): INode | null;
}
export class ModalNodesManager implements IModalNodesManager {
- public willDestroy: any;
+ willDestroy: any;
private page: DocumentModel;
- private modalNodes: Node[];
+ private modalNodes: INode[];
private nodeRemoveEvents: any;
@@ -45,26 +48,27 @@ export class ModalNodesManager implements IModalNodesManager {
];
}
- getModalNodes() {
+ getModalNodes(): INode[] {
return this.modalNodes;
}
- getVisibleModalNode() {
- return this.getModalNodes().find((node: Node) => node.getVisible());
+ getVisibleModalNode(): INode | null {
+ const visibleNode = this.getModalNodes().find((node: INode) => node.getVisible());
+ return visibleNode || null;
}
hideModalNodes() {
- this.modalNodes.forEach((node: Node) => {
+ this.modalNodes.forEach((node: INode) => {
node.setVisible(false);
});
}
- setVisible(node: Node) {
+ setVisible(node: INode) {
this.hideModalNodes();
node.setVisible(true);
}
- setInvisible(node: Node) {
+ setInvisible(node: INode) {
node.setVisible(false);
}
@@ -82,7 +86,7 @@ export class ModalNodesManager implements IModalNodesManager {
};
}
- private addNode(node: Node) {
+ private addNode(node: INode) {
if (node.componentMeta.isModal) {
this.hideModalNodes();
this.modalNodes.push(node);
@@ -92,7 +96,7 @@ export class ModalNodesManager implements IModalNodesManager {
}
}
- private removeNode(node: Node) {
+ private removeNode(node: INode) {
if (node.componentMeta.isModal) {
const index = this.modalNodes.indexOf(node);
if (index >= 0) {
@@ -106,24 +110,24 @@ export class ModalNodesManager implements IModalNodesManager {
}
}
- private addNodeEvent(node: Node) {
- this.nodeRemoveEvents[node.getId()] =
+ private addNodeEvent(node: INode) {
+ this.nodeRemoveEvents[node.id] =
node.onVisibleChange(() => {
this.emitter.emit('visibleChange');
});
}
- private removeNodeEvent(node: Node) {
- if (this.nodeRemoveEvents[node.getId()]) {
- this.nodeRemoveEvents[node.getId()]();
- delete this.nodeRemoveEvents[node.getId()];
+ private removeNodeEvent(node: INode) {
+ if (this.nodeRemoveEvents[node.id]) {
+ this.nodeRemoveEvents[node.id]();
+ delete this.nodeRemoveEvents[node.id];
}
}
setNodes() {
- const nodes = getModalNodes(this.page.getRoot()!);
+ const nodes = getModalNodes(this.page.rootNode!);
this.modalNodes = nodes;
- this.modalNodes.forEach((node: Node) => {
+ this.modalNodes.forEach((node: INode) => {
this.addNodeEvent(node);
});
diff --git a/packages/designer/src/document/node/node.ts b/packages/designer/src/document/node/node.ts
index ef837a329..8a7e9732a 100644
--- a/packages/designer/src/document/node/node.ts
+++ b/packages/designer/src/document/node/node.ts
@@ -36,6 +36,11 @@ export interface NodeStatus {
export interface INode extends IPublicModelNode {
+ /**
+ * 当前节点子集
+ */
+ get children(): INodeChildren | null;
+
setVisible(flag: boolean): void;
getVisible(): boolean;
@@ -70,6 +75,10 @@ export interface INode extends IPublicModelNode {
internalSetSlotFor(slotFor: Prop | null | undefined): void;
addSlot(slotNode: INode): void;
+
+ get componentMeta(): ComponentMeta;
+
+ onVisibleChange(func: (flag: boolean) => any): () => void;
}
/**
@@ -204,6 +213,74 @@ export class Node
isInited = false;
+ _settingEntry: SettingTopEntry;
+
+ get settingEntry(): SettingTopEntry {
+ if (this._settingEntry) return this._settingEntry;
+ this._settingEntry = this.document.designer.createSettingEntry([this]);
+ return this._settingEntry;
+ }
+
+ private autoruns?: Array<() => void>;
+
+ private _isRGLContainer = false;
+
+ set isRGLContainer(status: boolean) {
+ this._isRGLContainer = status;
+ }
+
+ get isRGLContainer(): boolean {
+ return !!this._isRGLContainer;
+ }
+
+ set isRGLContainerNode(status: boolean) {
+ this._isRGLContainer = status;
+ }
+
+ get isRGLContainerNode(): boolean {
+ return !!this._isRGLContainer;
+ }
+
+ private _slotFor?: Prop | null = null;
+
+ @obx.shallow _slots: INode[] = [];
+
+ get slots() {
+ return this._slots;
+ }
+
+ /* istanbul ignore next */
+ @obx.ref private _conditionGroup: IPublicModelExclusiveGroup | null = null;
+
+ /* istanbul ignore next */
+ get conditionGroup(): IPublicModelExclusiveGroup | null {
+ return this._conditionGroup;
+ }
+
+ private purged = false;
+
+ /**
+ * 是否已销毁
+ */
+ get isPurged() {
+ return this.purged;
+ }
+
+ private purging: boolean = false;
+
+ /**
+ * 是否正在销毁
+ */
+ get isPurging() {
+ return this.purging;
+ }
+
+ @obx.shallow status: NodeStatus = {
+ inPlaceEditing: false,
+ locking: false,
+ pseudo: false,
+ };
+
constructor(readonly document: IDocumentModel, nodeSchema: Schema, options: any = {}) {
makeObservable(this);
const { componentName, id, children, props, ...extras } = nodeSchema;
@@ -237,14 +314,6 @@ export class Node
});
}
- _settingEntry: SettingTopEntry;
-
- get settingEntry(): SettingTopEntry {
- if (this._settingEntry) return this._settingEntry;
- this._settingEntry = this.document.designer.createSettingEntry([this]);
- return this._settingEntry;
- }
-
/**
* 节点初始化期间就把内置的一些 prop 初始化好,避免后续不断构造实例导致 reaction 执行多次
*/
@@ -268,8 +337,6 @@ export class Node
return this.document.designer.transformProps(props, this, IPublicEnumTransformStage.Upgrade);
}
- private autoruns?: Array<() => void>;
-
private setupAutoruns() {
const autoruns = this.componentMeta.getMetadata().configure.advanced?.autoruns;
if (!autoruns || autoruns.length < 1) {
@@ -296,24 +363,6 @@ export class Node
return children || [];
}
- private _isRGLContainer = false;
-
- set isRGLContainer(status: boolean) {
- this._isRGLContainer = status;
- }
-
- get isRGLContainer(): boolean {
- return !!this._isRGLContainer;
- }
-
- set isRGLContainerNode(status: boolean) {
- this._isRGLContainer = status;
- }
-
- get isRGLContainerNode(): boolean {
- return !!this._isRGLContainer;
- }
-
isContainer(): boolean {
return this.isContainerNode;
}
@@ -449,8 +498,6 @@ export class Node
}
}
- private _slotFor?: Prop | null = null;
-
internalSetSlotFor(slotFor: Prop | null | undefined) {
this._slotFor = slotFor;
}
@@ -536,24 +583,10 @@ export class Node
return this.props.export(IPublicEnumTransformStage.Serilize).props || null;
}
- @obx.shallow _slots: INode[] = [];
-
hasSlots() {
return this._slots.length > 0;
}
- get slots() {
- return this._slots;
- }
-
- /* istanbul ignore next */
- @obx.ref private _conditionGroup: IPublicModelExclusiveGroup | null = null;
-
- /* istanbul ignore next */
- get conditionGroup(): IPublicModelExclusiveGroup | null {
- return this._conditionGroup;
- }
-
/* istanbul ignore next */
setConditionGroup(grp: IPublicModelExclusiveGroup | string | null) {
if (!grp) {
@@ -929,15 +962,6 @@ export class Node
this.children?.delete(node);
}
- private purged = false;
-
- /**
- * 是否已销毁
- */
- get isPurged() {
- return this.purged;
- }
-
/**
* 销毁
*/
@@ -952,18 +976,10 @@ export class Node
// this.document.destroyNode(this);
}
- private purging: boolean = false;
internalPurgeStart() {
this.purging = true;
}
- /**
- * 是否正在销毁
- */
- get isPurging() {
- return this.purging;
- }
-
/**
* 是否可执行某action
*/
@@ -1044,12 +1060,6 @@ export class Node
this.children?.mergeChildren(remover, adder, sorter);
}
- @obx.shallow status: NodeStatus = {
- inPlaceEditing: false,
- locking: false,
- pseudo: false,
- };
-
/**
* @deprecated
*/
diff --git a/packages/shell/src/model/modal-nodes-manager.ts b/packages/shell/src/model/modal-nodes-manager.ts
index 71c94666c..b1e27596f 100644
--- a/packages/shell/src/model/modal-nodes-manager.ts
+++ b/packages/shell/src/model/modal-nodes-manager.ts
@@ -1,6 +1,9 @@
-import { ModalNodesManager as InnerModalNodesManager } from '@alilc/lowcode-designer';
+import {
+ IModalNodesManager as InnerModalNodesManager,
+ INode as InnerNode,
+} from '@alilc/lowcode-designer';
import { IPublicModelModalNodesManager, IPublicModelNode } from '@alilc/lowcode-types';
-import { Node } from './node';
+import { Node as ShellNode } from './node';
import { nodeSymbol, modalNodesManagerSymbol } from '../symbols';
export class ModalNodesManager implements IPublicModelModalNodesManager {
@@ -28,18 +31,24 @@ export class ModalNodesManager implements IPublicModelModalNodesManager {
/**
* 获取模态节点(们)
- * @returns
*/
- getModalNodes(): any {
- return this[modalNodesManagerSymbol].getModalNodes().map((node) => Node.create(node));
+ getModalNodes(): IPublicModelNode[] {
+ const innerNodes = this[modalNodesManagerSymbol].getModalNodes();
+ const shellNodes: IPublicModelNode[] = [];
+ innerNodes?.forEach((node: InnerNode) => {
+ const shellNode = ShellNode.create(node);
+ if (shellNode) {
+ shellNodes.push(shellNode);
+ }
+ });
+ return shellNodes;
}
/**
* 获取当前可见的模态节点
- * @returns
*/
- getVisibleModalNode(): any {
- return Node.create(this[modalNodesManagerSymbol].getVisibleModalNode());
+ getVisibleModalNode(): IPublicModelNode | null {
+ return ShellNode.create(this[modalNodesManagerSymbol].getVisibleModalNode());
}
/**
@@ -54,7 +63,7 @@ export class ModalNodesManager implements IPublicModelModalNodesManager {
* @param node Node
*/
setVisible(node: IPublicModelNode): void {
- this[modalNodesManagerSymbol].setVisible(node[nodeSymbol]);
+ this[modalNodesManagerSymbol].setVisible((node as any)[nodeSymbol]);
}
/**
@@ -62,6 +71,6 @@ export class ModalNodesManager implements IPublicModelModalNodesManager {
* @param node Node
*/
setInvisible(node: IPublicModelNode): void {
- this[modalNodesManagerSymbol].setInvisible(node[nodeSymbol]);
+ this[modalNodesManagerSymbol].setInvisible((node as any)[nodeSymbol]);
}
}
\ No newline at end of file
diff --git a/packages/types/src/shell/model/modal-nodes-manager.ts b/packages/types/src/shell/model/modal-nodes-manager.ts
index d24a3d037..bfbba50ec 100644
--- a/packages/types/src/shell/model/modal-nodes-manager.ts
+++ b/packages/types/src/shell/model/modal-nodes-manager.ts
@@ -1,36 +1,41 @@
import { IPublicModelNode } from './';
export interface IPublicModelModalNodesManager {
+
/**
* 设置模态节点,触发内部事件
+ * set modal nodes, trigger internal events
*/
setNodes(): void;
/**
* 获取模态节点(们)
- * @returns
+ * get modal nodes
*/
- getModalNodes(): any;
+ getModalNodes(): IPublicModelNode[];
/**
* 获取当前可见的模态节点
- * @returns
+ * get current visible modal node
*/
- getVisibleModalNode(): any;
+ getVisibleModalNode(): IPublicModelNode | null;
/**
* 隐藏模态节点(们)
+ * hide modal nodes
*/
hideModalNodes(): void;
/**
* 设置指定节点为可见态
+ * set specfic model node as visible
* @param node Node
*/
setVisible(node: IPublicModelNode): void;
/**
* 设置指定节点为不可见态
+ * set specfic model node as invisible
* @param node Node
*/
setInvisible(node: IPublicModelNode): void;