mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2025-12-12 03:01:16 +00:00
feat: the advanced.autoruns parameter uses a shell wrapper
This commit is contained in:
parent
6482609ac1
commit
5cf395957c
@ -27,6 +27,7 @@ import { ExclusiveGroup, isExclusiveGroup } from './exclusive-group';
|
|||||||
import { includeSlot, removeSlot } from '../../utils/slot';
|
import { includeSlot, removeSlot } from '../../utils/slot';
|
||||||
import { foreachReverse } from '../../utils/tree';
|
import { foreachReverse } from '../../utils/tree';
|
||||||
import { NodeRemoveOptions, EDITOR_EVENT } from '../../types';
|
import { NodeRemoveOptions, EDITOR_EVENT } from '../../types';
|
||||||
|
import { Prop as ShellProp } from '@alilc/lowcode-shell';
|
||||||
|
|
||||||
export interface NodeStatus {
|
export interface NodeStatus {
|
||||||
locking: boolean;
|
locking: boolean;
|
||||||
@ -376,7 +377,7 @@ export class Node<Schema extends IPublicTypeNodeSchema = IPublicTypeNodeSchema>
|
|||||||
}
|
}
|
||||||
this.autoruns = autoruns.map((item) => {
|
this.autoruns = autoruns.map((item) => {
|
||||||
return autorun(() => {
|
return autorun(() => {
|
||||||
item.autorun(this.props.get(item.name, true) as any);
|
item.autorun(ShellProp.create(this.props.get(item.name, true))!);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -44,6 +44,8 @@ export interface IProps extends Omit<IPublicModelProps, 'getProp' | 'getExtraPro
|
|||||||
getNode(): INode;
|
getNode(): INode;
|
||||||
|
|
||||||
getProp(path: string): IProp | null;
|
getProp(path: string): IProp | null;
|
||||||
|
|
||||||
|
get(path: string, createIfNone: boolean): Prop;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class Props implements IProps, IPropParent {
|
export class Props implements IProps, IPropParent {
|
||||||
|
|||||||
@ -1,31 +1,37 @@
|
|||||||
import { IPublicTypePropType, IPublicTypeComponentAction } from './';
|
import { IPublicTypePropType, IPublicTypeComponentAction } from './';
|
||||||
import { IPublicModelSettingTarget } from '../model';
|
import { IPublicModelProp, IPublicModelSettingTarget } from '../model';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 嵌套控制函数
|
* 嵌套控制函数
|
||||||
*/
|
*/
|
||||||
export type IPublicTypeNestingFilter = (testNode: any, currentNode: any) => boolean;
|
export type IPublicTypeNestingFilter = (testNode: any, currentNode: any) => boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 嵌套控制
|
* 嵌套控制
|
||||||
* 防止错误的节点嵌套,比如 a 嵌套 a, FormField 只能在 Form 容器下,Column 只能在 Table 下等
|
* 防止错误的节点嵌套,比如 a 嵌套 a, FormField 只能在 Form 容器下,Column 只能在 Table 下等
|
||||||
*/
|
*/
|
||||||
export interface IPublicTypeNestingRule {
|
export interface IPublicTypeNestingRule {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 子级白名单
|
* 子级白名单
|
||||||
*/
|
*/
|
||||||
childWhitelist?: string[] | string | RegExp | IPublicTypeNestingFilter;
|
childWhitelist?: string[] | string | RegExp | IPublicTypeNestingFilter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 父级白名单
|
* 父级白名单
|
||||||
*/
|
*/
|
||||||
parentWhitelist?: string[] | string | RegExp | IPublicTypeNestingFilter;
|
parentWhitelist?: string[] | string | RegExp | IPublicTypeNestingFilter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 后裔白名单
|
* 后裔白名单
|
||||||
*/
|
*/
|
||||||
descendantWhitelist?: string[] | string | RegExp | IPublicTypeNestingFilter;
|
descendantWhitelist?: string[] | string | RegExp | IPublicTypeNestingFilter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 后裔黑名单
|
* 后裔黑名单
|
||||||
*/
|
*/
|
||||||
descendantBlacklist?: string[] | string | RegExp | IPublicTypeNestingFilter;
|
descendantBlacklist?: string[] | string | RegExp | IPublicTypeNestingFilter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 祖先白名单 可用来做区域高亮
|
* 祖先白名单 可用来做区域高亮
|
||||||
*/
|
*/
|
||||||
@ -36,22 +42,27 @@ export interface IPublicTypeNestingRule {
|
|||||||
* 组件能力配置
|
* 组件能力配置
|
||||||
*/
|
*/
|
||||||
export interface IPublicTypeComponentConfigure {
|
export interface IPublicTypeComponentConfigure {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否容器组件
|
* 是否容器组件
|
||||||
*/
|
*/
|
||||||
isContainer?: boolean;
|
isContainer?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 组件是否带浮层,浮层组件拖入设计器时会遮挡画布区域,此时应当辅助一些交互以防止阻挡
|
* 组件是否带浮层,浮层组件拖入设计器时会遮挡画布区域,此时应当辅助一些交互以防止阻挡
|
||||||
*/
|
*/
|
||||||
isModal?: boolean;
|
isModal?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否存在渲染的根节点
|
* 是否存在渲染的根节点
|
||||||
*/
|
*/
|
||||||
isNullNode?: boolean;
|
isNullNode?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 组件树描述信息
|
* 组件树描述信息
|
||||||
*/
|
*/
|
||||||
descriptor?: string;
|
descriptor?: string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 嵌套控制:防止错误的节点嵌套
|
* 嵌套控制:防止错误的节点嵌套
|
||||||
* 比如 a 嵌套 a, FormField 只能在 Form 容器下,Column 只能在 Table 下等
|
* 比如 a 嵌套 a, FormField 只能在 Form 容器下,Column 只能在 Table 下等
|
||||||
@ -68,10 +79,12 @@ export interface IPublicTypeComponentConfigure {
|
|||||||
* 组件选中框的 cssSelector
|
* 组件选中框的 cssSelector
|
||||||
*/
|
*/
|
||||||
rootSelector?: string;
|
rootSelector?: string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 禁用的行为,可以为 `'copy'`, `'move'`, `'remove'` 或它们组成的数组
|
* 禁用的行为,可以为 `'copy'`, `'move'`, `'remove'` 或它们组成的数组
|
||||||
*/
|
*/
|
||||||
disableBehaviors?: string[] | string;
|
disableBehaviors?: string[] | string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用于详细配置上述操作项的内容
|
* 用于详细配置上述操作项的内容
|
||||||
*/
|
*/
|
||||||
@ -88,7 +101,7 @@ export interface IPublicTypeFilterItem {
|
|||||||
}
|
}
|
||||||
export interface IPublicTypeAutorunItem {
|
export interface IPublicTypeAutorunItem {
|
||||||
name: string;
|
name: string;
|
||||||
autorun: (target: IPublicModelSettingTarget) => any;
|
autorun: (prop: IPublicModelProp) => any;
|
||||||
}
|
}
|
||||||
|
|
||||||
// thinkof Array
|
// thinkof Array
|
||||||
@ -96,19 +109,23 @@ export interface IPublicTypeAutorunItem {
|
|||||||
* Live Text Editing(如果 children 内容是纯文本,支持双击直接编辑)的可配置项目
|
* Live Text Editing(如果 children 内容是纯文本,支持双击直接编辑)的可配置项目
|
||||||
*/
|
*/
|
||||||
export interface IPublicTypeLiveTextEditingConfig {
|
export interface IPublicTypeLiveTextEditingConfig {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @todo 待补充文档
|
* @todo 待补充文档
|
||||||
*/
|
*/
|
||||||
propTarget: string;
|
propTarget: string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @todo 待补充文档
|
* @todo 待补充文档
|
||||||
*/
|
*/
|
||||||
selector?: string;
|
selector?: string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 编辑模式 纯文本 | 段落编辑 | 文章编辑(默认纯文本,无跟随工具条)
|
* 编辑模式 纯文本 | 段落编辑 | 文章编辑(默认纯文本,无跟随工具条)
|
||||||
* @default 'plaintext'
|
* @default 'plaintext'
|
||||||
*/
|
*/
|
||||||
mode?: 'plaintext' | 'paragraph' | 'article';
|
mode?: 'plaintext' | 'paragraph' | 'article';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 从 contentEditable 获取内容并设置到属性
|
* 从 contentEditable 获取内容并设置到属性
|
||||||
*/
|
*/
|
||||||
@ -125,27 +142,33 @@ export type ConfigureSupportEvent = string | {
|
|||||||
* 通用扩展面板支持性配置
|
* 通用扩展面板支持性配置
|
||||||
*/
|
*/
|
||||||
export interface ConfigureSupport {
|
export interface ConfigureSupport {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支持事件列表
|
* 支持事件列表
|
||||||
*/
|
*/
|
||||||
events?: ConfigureSupportEvent[];
|
events?: ConfigureSupportEvent[];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支持 className 设置
|
* 支持 className 设置
|
||||||
*/
|
*/
|
||||||
className?: boolean;
|
className?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支持样式设置
|
* 支持样式设置
|
||||||
*/
|
*/
|
||||||
style?: boolean;
|
style?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支持生命周期设置
|
* 支持生命周期设置
|
||||||
*/
|
*/
|
||||||
lifecycles?: any[];
|
lifecycles?: any[];
|
||||||
|
|
||||||
// general?: boolean;
|
// general?: boolean;
|
||||||
/**
|
/**
|
||||||
* 支持循环设置
|
* 支持循环设置
|
||||||
*/
|
*/
|
||||||
loop?: boolean;
|
loop?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支持条件式渲染设置
|
* 支持条件式渲染设置
|
||||||
*/
|
*/
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user