@alilc/lowcode-shell
Version:
Shell Layer for AliLowCodeEngine
132 lines (131 loc) • 3.63 kB
TypeScript
import { INodeChildren } from '@alilc/lowcode-designer';
import { IPublicTypeNodeData, IPublicEnumTransformStage, IPublicModelNodeChildren, IPublicModelNode } from '@alilc/lowcode-types';
import { nodeChildrenSymbol } from '../symbols';
export declare class NodeChildren implements IPublicModelNodeChildren {
private readonly [nodeChildrenSymbol];
constructor(nodeChildren: INodeChildren);
static create(nodeChildren: INodeChildren | null): IPublicModelNodeChildren | null;
/**
* 返回当前 children 实例所属的节点实例
*/
get owner(): IPublicModelNode | null;
/**
* children 内的节点实例数
*/
get size(): number;
/**
* @deprecated
* 是否为空
* @returns
*/
get isEmpty(): boolean;
/**
* 是否为空
* @returns
*/
get isEmptyNode(): boolean;
/**
* @deprecated
* judge if it is not empty
*/
get notEmpty(): boolean;
/**
* judge if it is not empty
*/
get notEmptyNode(): boolean;
/**
* 删除指定节点
* delete the node
* @param node
*/
delete(node: IPublicModelNode): boolean;
/**
* 插入一个节点
* @param node 待插入节点
* @param at 插入下标
* @returns
*/
insert(node: IPublicModelNode, at?: number | null): void;
/**
* 返回指定节点的下标
* @param node
* @returns
*/
indexOf(node: IPublicModelNode): number;
/**
* 类似数组 splice 操作
* @param start
* @param deleteCount
* @param node
*/
splice(start: number, deleteCount: number, node?: IPublicModelNode): IPublicModelNode[];
/**
* 返回指定下标的节点
* @param index
* @returns
*/
get(index: number): IPublicModelNode | null;
/**
* 是否包含指定节点
* @param node
* @returns
*/
has(node: IPublicModelNode): boolean;
/**
* 类似数组的 forEach
* @param fn
*/
forEach(fn: (node: IPublicModelNode, index: number) => void): void;
/**
* 类似数组的 reverse
*/
reverse(): IPublicModelNode[];
/**
* 类似数组的 map
* @param fn
*/
map<T = any>(fn: (node: IPublicModelNode, index: number) => T): T[] | null;
/**
* 类似数组的 every
* @param fn
*/
every(fn: (node: IPublicModelNode, index: number) => boolean): boolean;
/**
* 类似数组的 some
* @param fn
*/
some(fn: (node: IPublicModelNode, index: number) => boolean): boolean;
/**
* 类似数组的 filter
* @param fn
*/
filter(fn: (node: IPublicModelNode, index: number) => boolean): any;
/**
* 类似数组的 find
* @param fn
*/
find(fn: (node: IPublicModelNode, index: number) => boolean): IPublicModelNode | null;
/**
* 类似数组的 reduce
* @param fn
*/
reduce(fn: (acc: any, cur: IPublicModelNode) => any, initialValue: any): void;
/**
* 导入 schema
* @param data
*/
importSchema(data?: IPublicTypeNodeData | IPublicTypeNodeData[]): void;
/**
* 导出 schema
* @param stage
* @returns
*/
exportSchema(stage?: IPublicEnumTransformStage): any;
/**
* 执行新增、删除、排序等操作
* @param remover
* @param adder
* @param sorter
*/
mergeChildren(remover: (node: IPublicModelNode, idx: number) => boolean, adder: (children: IPublicModelNode[]) => any, originalSorter: (firstNode: IPublicModelNode, secondNode: IPublicModelNode) => number): void;
}