@alilc/lowcode-shell
Version:
Shell Layer for AliLowCodeEngine
361 lines (360 loc) • 9.86 kB
TypeScript
import { INode as InnerNode } from '@alilc/lowcode-designer';
import { IPublicTypeCompositeValue, IPublicTypeNodeSchema, IPublicEnumTransformStage, IPublicModelNode, IPublicTypeIconType, IPublicTypeI18nData, IPublicModelComponentMeta, IPublicModelDocumentModel, IPublicModelNodeChildren, IPublicModelProp, IPublicModelProps, IPublicTypePropsMap, IPublicTypePropsList, IPublicModelSettingTopEntry, IPublicModelExclusiveGroup } from '@alilc/lowcode-types';
import { documentSymbol, nodeSymbol } from '../symbols';
import { ReactElement } from 'react';
export declare class Node implements IPublicModelNode {
private readonly [documentSymbol];
private readonly [nodeSymbol];
private _id;
/**
* 节点 id
*/
get id(): string;
/**
* set id
*/
set id(id: string);
/**
* 节点标题
*/
get title(): string | IPublicTypeI18nData | ReactElement;
/**
* @deprecated
* 是否为「容器型」节点
*/
get isContainer(): boolean;
/**
* 是否为「容器型」节点
*/
get isContainerNode(): boolean;
/**
* @deprecated
* 是否为根节点
*/
get isRoot(): boolean;
/**
* 是否为根节点
*/
get isRootNode(): boolean;
/**
* @deprecated
* 是否为空节点(无 children 或者 children 为空)
*/
get isEmpty(): boolean;
/**
* 是否为空节点(无 children 或者 children 为空)
*/
get isEmptyNode(): boolean;
/**
* @deprecated
* 是否为 Page 节点
*/
get isPage(): boolean;
/**
* 是否为 Page 节点
*/
get isPageNode(): boolean;
/**
* @deprecated
* 是否为 Component 节点
*/
get isComponent(): boolean;
/**
* 是否为 Component 节点
*/
get isComponentNode(): boolean;
/**
* @deprecated
* 是否为「模态框」节点
*/
get isModal(): boolean;
/**
* 是否为「模态框」节点
*/
get isModalNode(): boolean;
/**
* @deprecated
* 是否为插槽节点
*/
get isSlot(): boolean;
/**
* 是否为插槽节点
*/
get isSlotNode(): boolean;
/**
* @deprecated
* 是否为父类/分支节点
*/
get isParental(): boolean;
/**
* 是否为父类/分支节点
*/
get isParentalNode(): boolean;
/**
* @deprecated
* 是否为叶子节点
*/
get isLeaf(): boolean;
/**
* 是否为叶子节点
*/
get isLeafNode(): boolean;
/**
* judge if it is a node or not
*/
readonly isNode = true;
/**
* 获取当前节点的锁定状态
*/
get isLocked(): boolean;
/**
* 下标
*/
get index(): number;
/**
* 图标
*/
get icon(): IPublicTypeIconType;
/**
* 节点所在树的层级深度,根节点深度为 0
*/
get zLevel(): number;
/**
* 节点 componentName
*/
get componentName(): string;
/**
* 节点的物料元数据
*/
get componentMeta(): IPublicModelComponentMeta | null;
/**
* 获取节点所属的文档模型对象
* @returns
*/
get document(): IPublicModelDocumentModel | null;
/**
* 获取当前节点的前一个兄弟节点
* @returns
*/
get prevSibling(): IPublicModelNode | null;
/**
* 获取当前节点的后一个兄弟节点
* @returns
*/
get nextSibling(): IPublicModelNode | null;
/**
* 获取当前节点的父亲节点
* @returns
*/
get parent(): IPublicModelNode | null;
/**
* 获取当前节点的孩子节点模型
* @returns
*/
get children(): IPublicModelNodeChildren | null;
/**
* 节点上挂载的插槽节点们
*/
get slots(): IPublicModelNode[];
/**
* 当前节点为插槽节点时,返回节点对应的属性实例
*/
get slotFor(): IPublicModelProp | null | undefined;
/**
* 返回节点的属性集
*/
get props(): IPublicModelProps | null;
/**
* 返回节点的属性集
*/
get propsData(): IPublicTypePropsMap | IPublicTypePropsList | null;
/**
* 获取符合搭建协议 - 节点 schema 结构
*/
get schema(): IPublicTypeNodeSchema;
get settingEntry(): IPublicModelSettingTopEntry;
constructor(node: InnerNode);
static create(node: InnerNode | IPublicModelNode | null | undefined): IPublicModelNode | null;
/**
* @deprecated use .children instead
*/
getChildren(): IPublicModelNodeChildren<IPublicModelNode>;
/**
* 获取节点实例对应的 dom 节点
*/
getDOMNode(): any;
/**
* 执行新增、删除、排序等操作
* @param remover
* @param adder
* @param sorter
*/
mergeChildren(remover: (node: IPublicModelNode, idx: number) => boolean, adder: (children: IPublicModelNode[]) => any, sorter: (firstNode: IPublicModelNode, secondNode: IPublicModelNode) => number): any;
/**
* 返回节点的尺寸、位置信息
* @returns
*/
getRect(): DOMRect | null;
/**
* 是否有挂载插槽节点
* @returns
*/
hasSlots(): boolean;
/**
* 是否设定了渲染条件
* @returns
*/
hasCondition(): boolean;
/**
* 是否设定了循环数据
* @returns
*/
hasLoop(): boolean;
get visible(): boolean;
set visible(value: boolean);
getVisible(): boolean;
setVisible(flag: boolean): void;
isConditionalVisible(): boolean | undefined;
/**
* 设置节点锁定状态
* @param flag
*/
lock(flag?: boolean): void;
/**
* @deprecated use .props instead
*/
getProps(): IPublicModelProps;
contains(node: IPublicModelNode): boolean;
/**
* 获取指定 path 的属性模型实例
* @param path 属性路径,支持 a / a.b / a.0 等格式
* @returns
*/
getProp(path: string, createIfNone?: boolean): IPublicModelProp | null;
/**
* 获取指定 path 的属性模型实例值
* @param path 属性路径,支持 a / a.b / a.0 等格式
* @returns
*/
getPropValue(path: string): any;
/**
* 获取指定 path 的属性模型实例,
* 注:导出时,不同于普通属性,该属性并不挂载在 props 之下,而是与 props 同级
* @param path 属性路径,支持 a / a.b / a.0 等格式
* @param createIfNone 当没有属性的时候,是否创建一个属性
* @returns
*/
getExtraProp(path: string, createIfNone?: boolean): IPublicModelProp | null;
/**
* 获取指定 path 的属性模型实例,
* 注:导出时,不同于普通属性,该属性并不挂载在 props 之下,而是与 props 同级
* @param path 属性路径,支持 a / a.b / a.0 等格式
* @returns
*/
getExtraPropValue(path: string): any;
/**
* 设置指定 path 的属性模型实例值
* @param path 属性路径,支持 a / a.b / a.0 等格式
* @param value 值
* @returns
*/
setPropValue(path: string, value: IPublicTypeCompositeValue): void;
/**
* 设置指定 path 的属性模型实例值
* @param path 属性路径,支持 a / a.b / a.0 等格式
* @param value 值
* @returns
*/
setExtraPropValue(path: string, value: IPublicTypeCompositeValue): void;
/**
* 导入节点数据
* @param data
*/
importSchema(data: IPublicTypeNodeSchema): void;
/**
* 导出节点数据
* @param stage
* @param options
* @returns
*/
exportSchema(stage?: IPublicEnumTransformStage, options?: any): IPublicTypeNodeSchema;
/**
* 在指定位置之前插入一个节点
* @param node
* @param ref
* @param useMutator
*/
insertBefore(node: IPublicModelNode, ref?: IPublicModelNode | undefined, useMutator?: boolean): void;
/**
* 在指定位置之后插入一个节点
* @param node
* @param ref
* @param useMutator
*/
insertAfter(node: IPublicModelNode, ref?: IPublicModelNode | undefined, useMutator?: boolean): void;
/**
* 替换指定节点
* @param node 待替换的子节点
* @param data 用作替换的节点对象或者节点描述
* @returns
*/
replaceChild(node: IPublicModelNode, data: any): IPublicModelNode | null;
/**
* 将当前节点替换成指定节点描述
* @param schema
*/
replaceWith(schema: IPublicTypeNodeSchema): any;
/**
* 选中当前节点实例
*/
select(): void;
/**
* 设置悬停态
* @param flag
*/
hover(flag?: boolean): void;
/**
* 删除当前节点实例
*/
remove(): void;
/**
* @deprecated
* 设置为磁贴布局节点
*/
set isRGLContainer(flag: boolean);
/**
* @deprecated
* 获取磁贴布局节点设置状态
* @returns Boolean
*/
get isRGLContainer(): boolean;
/**
* 设置为磁贴布局节点
*/
set isRGLContainerNode(flag: boolean);
/**
* 获取磁贴布局节点设置状态
* @returns Boolean
*/
get isRGLContainerNode(): boolean;
internalToShellNode(): this;
canPerformAction(actionName: string): boolean;
/**
* get conditionGroup
* @since v1.1.0
*/
get conditionGroup(): IPublicModelExclusiveGroup | null;
/**
* set value for conditionalVisible
* @since v1.1.0
*/
setConditionalVisible(): void;
getRGL(): {
isContainerNode: boolean;
isEmptyNode: boolean;
isRGLContainerNode: boolean;
isRGLNode: boolean;
isRGL: boolean;
rglNode: IPublicModelNode;
};
}