From 83562989d57f2eba29d4d5b34e35216e7dbf0941 Mon Sep 17 00:00:00 2001 From: JackLian Date: Mon, 6 Feb 2023 16:00:11 +0800 Subject: [PATCH] docs: add doc for api/model/component-meta --- docs/docs/api/canvas.md | 4 +- docs/docs/api/model/component-meta.md | 173 ++++++++++++++++++ docs/docs/api/model/resource.md | 4 +- packages/designer/src/component-meta.ts | 9 +- packages/designer/src/designer/designer.ts | 6 +- packages/designer/src/designer/scroller.ts | 22 +-- packages/designer/src/simulator.ts | 4 +- .../src/controllers/pane-controller.ts | 4 +- packages/shell/src/api/canvas.ts | 6 +- packages/shell/src/model/component-meta.ts | 4 +- packages/types/src/shell/api/canvas.ts | 6 +- .../types/src/shell/model/component-meta.ts | 45 +++-- packages/types/src/shell/model/dragon.ts | 2 +- .../types/src/shell/model/engine-config.ts | 2 +- packages/types/src/shell/model/index.ts | 3 +- .../types/src/shell/model/node-children.ts | 1 + packages/types/src/shell/model/preference.ts | 1 + .../src/shell/model/setting-prop-entry.ts | 2 +- .../src/shell/model/setting-top-entry.ts | 1 + .../types/src/shell/type/component-action.ts | 5 + packages/types/src/shell/type/field-config.ts | 8 + packages/types/src/shell/type/index.ts | 3 +- .../src/shell/{model => type}/scrollable.ts | 6 +- 23 files changed, 268 insertions(+), 53 deletions(-) create mode 100644 docs/docs/api/model/component-meta.md rename packages/types/src/shell/{model => type}/scrollable.ts (50%) diff --git a/docs/docs/api/canvas.md b/docs/docs/api/canvas.md index c16ba62c5..582f2354b 100644 --- a/docs/docs/api/canvas.md +++ b/docs/docs/api/canvas.md @@ -62,7 +62,7 @@ createLocation(locationData: IPublicTypeLocationData): IPublicModelDropLocation; ```typescript /** * 创建一个滚动控制器 Scroller,赋予一个视图滚动的基本能力, - * a Scroller is a controller that gives a view (IPublicModelScrollable) the ability scrolling + * a Scroller is a controller that gives a view (IPublicTypeScrollable) the ability scrolling * to some cordination by api scrollTo. * * when a scroller is inited, will need to pass is a scrollable, which has a scrollTarget. @@ -70,7 +70,7 @@ createLocation(locationData: IPublicTypeLocationData): IPublicModelDropLocation; * move scrollTarget`s top-left corner to (options.left, options.top) that passed in. * @since v1.1.0 */ -createScroller(scrollable: IPublicModelScrollable): IPublicModelScroller; +createScroller(scrollable: IPublicTypeScrollable): IPublicModelScroller; ``` diff --git a/docs/docs/api/model/component-meta.md b/docs/docs/api/model/component-meta.md new file mode 100644 index 000000000..28f7fe740 --- /dev/null +++ b/docs/docs/api/model/component-meta.md @@ -0,0 +1,173 @@ +--- +title: ComponentMeta +sidebar_position: 15 +--- + +> **@types** [IPublicModelComponentMeta](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/model/component-meta.ts)
+> **@since** v1.0.0 + +## 基本介绍 + +组件元数据信息模型 + +## 属性 + +### componentName + +组件名 + +`@type {string}` + +### isContainer + +是否是「容器型」组件 + +`@type {boolean}` + +### isMinimalRenderUnit +是否是最小渲染单元 + +当组件需要重新渲染时: +- 若为最小渲染单元,则只渲染当前组件, +- 若不为最小渲染单元,则寻找到上层最近的最小渲染单元进行重新渲染,直至根节点。 + +`@type {boolean}` + +### isModal + +是否为「模态框」组件 + +`@type {boolean}` + +### configure + +获取用于设置面板显示用的配置 + +`@type {IPublicTypeFieldConfig[]}` + +相关类型:[IPublicTypeFieldConfig](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/field-config.ts) + +### title + +标题 + +`@type {string | IPublicTypeI18nData | ReactElement}` + +相关类型:[IPublicTypeI18nData](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/i18n-data.ts) + +### icon + +图标 + +`@type {IPublicTypeIconType}` + +相关类型:[IPublicTypeIconType](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/icon-type.ts) + +### npm + +组件 npm 信息 + +`@type {IPublicTypeNpmInfo}` + +相关类型:[IPublicTypeNpmInfo](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/npm-info.ts) + +### availableActions + +获取元数据 + +`@type {IPublicTypeTransformedComponentMetadata}` + +相关类型:[IPublicTypeTransformedComponentMetadata](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/transformed-component-metadata.ts) + +### advanced + +组件元数据中高级配置部分 + +`@type {IPublicTypeAdvanced}` + +相关类型:[IPublicTypeAdvanced](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/advanced.ts) + +## 方法 + +### setNpm + +设置 npm 信息 + +```typescript +/** + * 设置 npm 信息 + * set method for npm inforamtion + * @param npm + */ +setNpm(npm: IPublicTypeNpmInfo): void; +``` + +相关类型:[IPublicTypeNpmInfo](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/npm-info.ts) + +### getMetadata + +获取元数据 + +```typescript +/** + * 获取元数据 + * get component metadata + */ +getMetadata(): IPublicTypeTransformedComponentMetadata; +``` + +相关类型:[IPublicTypeTransformedComponentMetadata](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/transformed-component-metadata.ts) + +### checkNestingUp + +检测当前对应节点是否可被放置在父节点中 + +```typescript +/** + * 检测当前对应节点是否可被放置在父节点中 + * check if the current node could be placed in parent node + * @param my 当前节点 + * @param parent 父节点 + */ +checkNestingUp(my: IPublicModelNode | IPublicTypeNodeData, parent: any): boolean; +``` + +相关类型: +- [IPublicModelNode](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/model/node.ts) +- [IPublicTypeNodeData](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/node-data.ts) + + +### checkNestingDown + +检测目标节点是否可被放置在父节点中 + +```typescript +/** + * 检测目标节点是否可被放置在父节点中 + * check if the target node(s) could be placed in current node + * @param my 当前节点 + * @param parent 父节点 + */ +checkNestingDown( + my: IPublicModelNode | IPublicTypeNodeData, + target: IPublicTypeNodeSchema | IPublicModelNode | IPublicTypeNodeSchema[], + ): boolean; +``` + +相关类型: +- [IPublicModelNode](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/model/node.ts) +- [IPublicTypeNodeData](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/node-data.ts) +- [IPublicTypeNodeSchema](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/type/node-schema.ts) + + +### refreshMetadata + +刷新元数据,会触发元数据的重新解析和刷新 + +```typescript +/** + * 刷新元数据,会触发元数据的重新解析和刷新 + * refresh metadata + */ +refreshMetadata(): void; +``` diff --git a/docs/docs/api/model/resource.md b/docs/docs/api/model/resource.md index 74f8d8f71..397723454 100644 --- a/docs/docs/api/model/resource.md +++ b/docs/docs/api/model/resource.md @@ -4,7 +4,7 @@ sidebar_position: 13 --- > **[@experimental](./#experimental)**
-> **@types** [IPublicModelWindow](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/model/resource.ts)
+> **@types** [IPublicModelResource](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/model/resource.ts)
> **@since** v1.1.0 ## 属性 @@ -43,4 +43,4 @@ sidebar_position: 13 资源配置信息 -`@type {Object}` \ No newline at end of file +`@type {Object}` diff --git a/packages/designer/src/component-meta.ts b/packages/designer/src/component-meta.ts index 4ca5a24dc..c361b21c9 100644 --- a/packages/designer/src/component-meta.ts +++ b/packages/designer/src/component-meta.ts @@ -110,7 +110,7 @@ export class ComponentMeta implements IComponentMeta { private _transformedMetadata?: IPublicTypeTransformedComponentMetadata; - get configure() { + get configure(): IPublicTypeFieldConfig[] { const config = this._transformedMetadata?.configure; return config?.combined || config?.props || []; } @@ -272,8 +272,11 @@ export class ComponentMeta implements IComponentMeta { this.parseMetadata(this.getMetadata()); } - private transformMetadata(metadta: IPublicTypeComponentMetadata): IPublicTypeTransformedComponentMetadata { - const result = this.designer.componentActions.getRegisteredMetadataTransducers().reduce((prevMetadata, current) => { + private transformMetadata( + metadta: IPublicTypeComponentMetadata, + ): IPublicTypeTransformedComponentMetadata { + const registeredTransducers = this.designer.componentActions.getRegisteredMetadataTransducers(); + const result = registeredTransducers.reduce((prevMetadata, current) => { return current(prevMetadata); }, preprocessMetadata(metadta)); diff --git a/packages/designer/src/designer/designer.ts b/packages/designer/src/designer/designer.ts index 968b54ce5..c39e439aa 100644 --- a/packages/designer/src/designer/designer.ts +++ b/packages/designer/src/designer/designer.ts @@ -12,7 +12,7 @@ import { IPublicTypePropsTransducer, IShellModelFactory, IPublicModelDragObject, - IPublicModelScrollable, + IPublicTypeScrollable, IPublicModelScroller, IPublicTypeLocationData, IPublicEnumTransformStage, @@ -70,7 +70,7 @@ export interface IDesigner { get editor(): IPublicModelEditor; - createScroller(scrollable: IPublicModelScrollable): IPublicModelScroller; + createScroller(scrollable: IPublicTypeScrollable): IPublicModelScroller; /** * 创建插入位置,考虑放到 dragon 中 @@ -302,7 +302,7 @@ export class Designer implements IDesigner { this._dropLocation = undefined; } - createScroller(scrollable: IPublicModelScrollable): IPublicModelScroller { + createScroller(scrollable: IPublicTypeScrollable): IPublicModelScroller { return new Scroller(scrollable); } diff --git a/packages/designer/src/designer/scroller.ts b/packages/designer/src/designer/scroller.ts index b4dc7467e..67efe7f44 100644 --- a/packages/designer/src/designer/scroller.ts +++ b/packages/designer/src/designer/scroller.ts @@ -1,5 +1,5 @@ import { isElement } from '@alilc/lowcode-utils'; -import { IPublicModelScrollTarget, IPublicModelScrollable, IPublicModelScroller } from '@alilc/lowcode-types'; +import { IPublicModelScrollTarget, IPublicTypeScrollable, IPublicModelScroller } from '@alilc/lowcode-types'; export interface IScrollTarget extends IPublicModelScrollTarget { } @@ -13,6 +13,14 @@ export class ScrollTarget implements IScrollTarget { return 'scrollY' in this.target ? this.target.scrollY : this.target.scrollTop; } + private doc?: HTMLElement; + + constructor(private target: Window | Element) { + if (isWindow(target)) { + this.doc = target.document.documentElement; + } + } + scrollTo(options: { left?: number; top?: number }) { this.target.scrollTo(options); } @@ -28,14 +36,6 @@ export class ScrollTarget implements IScrollTarget { get scrollWidth(): number { return ((this.doc || this.target) as any).scrollWidth; } - - private doc?: HTMLElement; - - constructor(private target: Window | Element) { - if (isWindow(target)) { - this.doc = target.document.documentElement; - } - } } function isWindow(obj: any): obj is Window { @@ -53,9 +53,9 @@ export interface IScroller extends IPublicModelScroller { } export class Scroller implements IScroller { private pid: number | undefined; - scrollable: IPublicModelScrollable; + scrollable: IPublicTypeScrollable; - constructor(scrollable: IPublicModelScrollable) { + constructor(scrollable: IPublicTypeScrollable) { this.scrollable = scrollable; } diff --git a/packages/designer/src/simulator.ts b/packages/designer/src/simulator.ts index 642e5ad67..5a2fb8efc 100644 --- a/packages/designer/src/simulator.ts +++ b/packages/designer/src/simulator.ts @@ -1,5 +1,5 @@ import { ComponentType } from 'react'; -import { IPublicTypeComponentMetadata, IPublicTypeNodeSchema, IPublicModelScrollable, IPublicTypeComponentInstance, IPublicModelSensor, IPublicTypeNodeInstance } from '@alilc/lowcode-types'; +import { IPublicTypeComponentMetadata, IPublicTypeNodeSchema, IPublicTypeScrollable, IPublicTypeComponentInstance, IPublicModelSensor, IPublicTypeNodeInstance } from '@alilc/lowcode-types'; import { Point, ScrollTarget, ILocateEvent } from './designer'; import { BuiltinSimulatorRenderer } from './builtin-simulator/renderer'; import { Node, INode } from './document'; @@ -8,7 +8,7 @@ export type AutoFit = '100%'; // eslint-disable-next-line no-redeclare export const AutoFit = '100%'; -export interface IScrollable extends IPublicModelScrollable { +export interface IScrollable extends IPublicTypeScrollable { } export interface IViewport extends IScrollable { diff --git a/packages/plugin-outline-pane/src/controllers/pane-controller.ts b/packages/plugin-outline-pane/src/controllers/pane-controller.ts index 0d565c15f..d3187687a 100644 --- a/packages/plugin-outline-pane/src/controllers/pane-controller.ts +++ b/packages/plugin-outline-pane/src/controllers/pane-controller.ts @@ -8,7 +8,7 @@ import { } from '@alilc/lowcode-utils'; import { IPublicModelDragObject, - IPublicModelScrollable, + IPublicTypeScrollable, IPublicModelSensor, IPublicTypeLocationChildrenDetail, IPublicTypeLocationDetailType, @@ -24,7 +24,7 @@ import { IndentTrack } from '../helper/indent-track'; import DwellTimer from '../helper/dwell-timer'; import { ITreeBoard, TreeMaster } from './tree-master'; -export class PaneController implements IPublicModelSensor, ITreeBoard, IPublicModelScrollable { +export class PaneController implements IPublicModelSensor, ITreeBoard, IPublicTypeScrollable { private pluginContext: IPublicModelPluginContext; private treeMaster?: TreeMaster; diff --git a/packages/shell/src/api/canvas.ts b/packages/shell/src/api/canvas.ts index 444894452..d20ebd9d9 100644 --- a/packages/shell/src/api/canvas.ts +++ b/packages/shell/src/api/canvas.ts @@ -2,7 +2,7 @@ import { IPublicApiCanvas, IPublicModelDropLocation, IPublicModelScrollTarget, - IPublicModelScrollable, + IPublicTypeScrollable, IPublicModelScroller, IPublicTypeLocationData, IPublicModelEditor, @@ -58,7 +58,7 @@ export class Canvas implements IPublicApiCanvas { return new InnerScrollTarget(shell); } - createScroller(scrollable: IPublicModelScrollable): IPublicModelScroller { + createScroller(scrollable: IPublicTypeScrollable): IPublicModelScroller { return this[designerSymbol].createScroller(scrollable); } @@ -78,4 +78,4 @@ export class Canvas implements IPublicApiCanvas { get dropLocation() { return ShellDropLocation.create((this[designerSymbol] as any).dropLocation || null); } -} \ No newline at end of file +} diff --git a/packages/shell/src/model/component-meta.ts b/packages/shell/src/model/component-meta.ts index c913c2c0f..448f0584e 100644 --- a/packages/shell/src/model/component-meta.ts +++ b/packages/shell/src/model/component-meta.ts @@ -2,7 +2,7 @@ import { IComponentMeta as InnerComponentMeta, INode, } from '@alilc/lowcode-designer'; -import { IPublicTypeNodeData, IPublicTypeNodeSchema, IPublicModelComponentMeta, IPublicTypeI18nData, IPublicTypeIconType, IPublicTypeNpmInfo, IPublicTypeTransformedComponentMetadata, IPublicModelNode, IPublicTypeAdvanced } from '@alilc/lowcode-types'; +import { IPublicTypeNodeData, IPublicTypeNodeSchema, IPublicModelComponentMeta, IPublicTypeI18nData, IPublicTypeIconType, IPublicTypeNpmInfo, IPublicTypeTransformedComponentMetadata, IPublicModelNode, IPublicTypeAdvanced, IPublicTypeFieldConfig } from '@alilc/lowcode-types'; import { componentMetaSymbol, nodeSymbol } from '../symbols'; import { ReactElement } from 'react'; @@ -56,7 +56,7 @@ export class ComponentMeta implements IPublicModelComponentMeta { /** * 元数据配置 */ - get configure(): any { + get configure(): IPublicTypeFieldConfig[] { return this[componentMetaSymbol].configure; } diff --git a/packages/types/src/shell/api/canvas.ts b/packages/types/src/shell/api/canvas.ts index 33fbc7781..699e1a35d 100644 --- a/packages/types/src/shell/api/canvas.ts +++ b/packages/types/src/shell/api/canvas.ts @@ -1,4 +1,4 @@ -import { IPublicModelDragon, IPublicModelDropLocation, IPublicModelScrollTarget, IPublicModelScrollable, IPublicModelScroller, IPublicModelActiveTracker, IPublicModelClipboard } from '../model'; +import { IPublicModelDragon, IPublicModelDropLocation, IPublicModelScrollTarget, IPublicTypeScrollable, IPublicModelScroller, IPublicModelActiveTracker, IPublicModelClipboard } from '../model'; import { IPublicTypeLocationData } from '../type'; /** @@ -8,7 +8,7 @@ export interface IPublicApiCanvas { /** * 创一个滚动控制器 Scroller,赋予一个视图滚动的基本能力, - * a Scroller is a controller that gives a view (IPublicModelScrollable) the ability scrolling + * a Scroller is a controller that gives a view (IPublicTypeScrollable) the ability scrolling * to some cordination by api scrollTo. * * when a scroller is inited, will need to pass is a scrollable, which has a scrollTarget. @@ -16,7 +16,7 @@ export interface IPublicApiCanvas { * move scrollTarget`s top-left corner to (options.left, options.top) that passed in. * @since v1.1.0 */ - createScroller(scrollable: IPublicModelScrollable): IPublicModelScroller; + createScroller(scrollable: IPublicTypeScrollable): IPublicModelScroller; /** * 创建一个 ScrollTarget,与 Scroller 一起发挥作用,详见 createScroller 中的描述 diff --git a/packages/types/src/shell/model/component-meta.ts b/packages/types/src/shell/model/component-meta.ts index 7a5f3fa8c..369680fd6 100644 --- a/packages/types/src/shell/model/component-meta.ts +++ b/packages/types/src/shell/model/component-meta.ts @@ -1,4 +1,4 @@ -import { IPublicTypeNodeSchema, IPublicTypeNodeData, IPublicTypeIconType, IPublicTypeTransformedComponentMetadata, IPublicTypeI18nData, IPublicTypeNpmInfo, IPublicTypeAdvanced } from '../type'; +import { IPublicTypeNodeSchema, IPublicTypeNodeData, IPublicTypeIconType, IPublicTypeTransformedComponentMetadata, IPublicTypeI18nData, IPublicTypeNpmInfo, IPublicTypeAdvanced, IPublicTypeFieldConfig, IPublicTypeComponentAction } from '../type'; import { ReactElement } from 'react'; import { IPublicModelNode } from './node'; @@ -6,11 +6,13 @@ export interface IPublicModelComponentMeta { /** * 组件名 + * component name */ get componentName(): string; /** * 是否是「容器型」组件 + * is container node or not */ get isContainer(): boolean; @@ -19,37 +21,53 @@ export interface IPublicModelComponentMeta { * 当组件需要重新渲染时: * 若为最小渲染单元,则只渲染当前组件, * 若不为最小渲染单元,则寻找到上层最近的最小渲染单元进行重新渲染,直至根节点。 + * + * check if this is a mininal render unit. + * when a rerender is needed for a component: + * case 'it`s a mininal render unit': only render itself. + * case 'it`s not a mininal render unit': find a mininal render unit to render in + * its ancesters until root node is reached. */ get isMinimalRenderUnit(): boolean; /** * 是否为「模态框」组件 + * check if this is a modal component or not. */ get isModal(): boolean; /** - * 元数据配置 + * 获取用于设置面板显示用的配置 + * get configs for Settings Panel */ - get configure(): any; + get configure(): IPublicTypeFieldConfig[]; /** * 标题 + * title for this component */ get title(): string | IPublicTypeI18nData | ReactElement; /** * 图标 + * icon config for this component */ get icon(): IPublicTypeIconType; /** * 组件 npm 信息 + * npm informations */ get npm(): IPublicTypeNpmInfo; - get availableActions(): any; + /** + * 当前组件的可用 Action + * available actions + */ + get availableActions(): IPublicTypeComponentAction[]; /** + * 组件元数据中高级配置部分 * configure.advanced * @since v1.1.0 */ @@ -57,34 +75,39 @@ export interface IPublicModelComponentMeta { /** * 设置 npm 信息 + * set method for npm inforamtion * @param npm */ setNpm(npm: IPublicTypeNpmInfo): void; /** * 获取元数据 - * @returns + * get component metadata */ getMetadata(): IPublicTypeTransformedComponentMetadata; /** + * 检测当前对应节点是否可被放置在父节点中 * check if the current node could be placed in parent node - * @param my - * @param parent - * @returns + * @param my 当前节点 + * @param parent 父节点 */ checkNestingUp(my: IPublicModelNode | IPublicTypeNodeData, parent: any): boolean; /** + * 检测目标节点是否可被放置在父节点中 * check if the target node(s) could be placed in current node - * @param my - * @param parent - * @returns + * @param my 当前节点 + * @param parent 父节点 */ checkNestingDown( my: IPublicModelNode | IPublicTypeNodeData, target: IPublicTypeNodeSchema | IPublicModelNode | IPublicTypeNodeSchema[], ): boolean; + /** + * 刷新元数据,会触发元数据的重新解析和刷新 + * refresh metadata + */ refreshMetadata(): void; } diff --git a/packages/types/src/shell/model/dragon.ts b/packages/types/src/shell/model/dragon.ts index 6a6daf034..602284e63 100644 --- a/packages/types/src/shell/model/dragon.ts +++ b/packages/types/src/shell/model/dragon.ts @@ -3,6 +3,7 @@ import { IPublicTypeDragNodeDataObject, IPublicTypeDragObject } from '../type'; import { IPublicModelDragObject, IPublicModelLocateEvent, IPublicModelNode } from './'; export interface IPublicModelDragon { + /** * 是否正在拖动 * is dragging or not @@ -33,7 +34,6 @@ export interface IPublicModelDragon { */ onDragend(func: (o: { dragObject: IPublicModelDragObject; copy?: boolean }) => any): () => void; - /** * 设置拖拽监听的区域 shell,以及自定义拖拽转换函数 boost * set a html element as shell to dragon as monitoring target, and diff --git a/packages/types/src/shell/model/engine-config.ts b/packages/types/src/shell/model/engine-config.ts index 99d3a9071..2b17d7e72 100644 --- a/packages/types/src/shell/model/engine-config.ts +++ b/packages/types/src/shell/model/engine-config.ts @@ -1,7 +1,7 @@ import { IPublicModelPreference } from './'; - export interface IPublicModelEngineConfig { + /** * 判断指定 key 是否有值 * check if config has certain key configed diff --git a/packages/types/src/shell/model/index.ts b/packages/types/src/shell/model/index.ts index 8f48f68f1..23b6a6431 100644 --- a/packages/types/src/shell/model/index.ts +++ b/packages/types/src/shell/model/index.ts @@ -18,7 +18,6 @@ export * from '../type/plugin'; export * from './window'; export * from './scroll-target'; export * from './scroller'; -export * from './scrollable'; export * from './active-tracker'; export * from './exclusive-group'; export * from './plugin-context'; @@ -29,4 +28,4 @@ export * from './preference'; export * from './plugin-instance'; export * from './sensor'; export * from './resource'; -export * from './clipboard'; \ No newline at end of file +export * from './clipboard'; diff --git a/packages/types/src/shell/model/node-children.ts b/packages/types/src/shell/model/node-children.ts index c6fde9403..d18bf78a3 100644 --- a/packages/types/src/shell/model/node-children.ts +++ b/packages/types/src/shell/model/node-children.ts @@ -3,6 +3,7 @@ import { IPublicEnumTransformStage } from '../enum'; import { IPublicModelNode } from './'; export interface IPublicModelNodeChildren { + /** * 返回当前 children 实例所属的节点实例 * get owner node of this nodeChildren diff --git a/packages/types/src/shell/model/preference.ts b/packages/types/src/shell/model/preference.ts index a58b76573..e200dae9d 100644 --- a/packages/types/src/shell/model/preference.ts +++ b/packages/types/src/shell/model/preference.ts @@ -1,5 +1,6 @@ export interface IPublicModelPreference { + /** * set value from local storage by module and key */ diff --git a/packages/types/src/shell/model/setting-prop-entry.ts b/packages/types/src/shell/model/setting-prop-entry.ts index 90785ff19..f392cda33 100644 --- a/packages/types/src/shell/model/setting-prop-entry.ts +++ b/packages/types/src/shell/model/setting-prop-entry.ts @@ -1,8 +1,8 @@ import { IPublicTypeCustomView, IPublicTypeCompositeValue, IPublicTypeSetterType, IPublicTypeSetValueOptions, IPublicTypeFieldConfig, IPublicTypeFieldExtraProps } from '../type'; import { IPublicModelNode, IPublicModelComponentMeta, IPublicModelSettingTopEntry } from './'; - export interface IPublicModelSettingPropEntry { + /** * 获取设置属性的 isGroup */ diff --git a/packages/types/src/shell/model/setting-top-entry.ts b/packages/types/src/shell/model/setting-top-entry.ts index da2e586d3..b609d24f3 100644 --- a/packages/types/src/shell/model/setting-top-entry.ts +++ b/packages/types/src/shell/model/setting-top-entry.ts @@ -1,6 +1,7 @@ import { IPublicModelNode, IPublicModelSettingPropEntry } from './'; export interface IPublicModelSettingTopEntry { + /** * 返回所属的节点实例 */ diff --git a/packages/types/src/shell/type/component-action.ts b/packages/types/src/shell/type/component-action.ts index 853e82ce0..f86324e7a 100644 --- a/packages/types/src/shell/type/component-action.ts +++ b/packages/types/src/shell/type/component-action.ts @@ -6,23 +6,28 @@ import { IPublicTypeActionContentObject } from './'; */ export interface IPublicTypeComponentAction { + /** * behaviorName */ name: string; + /** * 菜单名称 */ content: string | ReactNode | IPublicTypeActionContentObject; + /** * 子集 */ items?: IPublicTypeComponentAction[]; + /** * 显示与否 * always: 无法禁用 */ condition?: boolean | ((currentNode: any) => boolean) | 'always'; + /** * 显示在工具条上 */ diff --git a/packages/types/src/shell/type/field-config.ts b/packages/types/src/shell/type/field-config.ts index 41b737807..32b40f157 100644 --- a/packages/types/src/shell/type/field-config.ts +++ b/packages/types/src/shell/type/field-config.ts @@ -4,38 +4,46 @@ import { IPublicTypeTitleContent, IPublicTypeSetterType, IPublicTypeFieldExtraPr * 属性面板配置 */ export interface IPublicTypeFieldConfig extends IPublicTypeFieldExtraProps { + /** * 面板配置隶属于单个 field 还是分组 */ type?: 'field' | 'group'; + /** * the name of this setting field, which used in quickEditor */ name: string | number; + /** * the field title * @default sameas .name */ title?: IPublicTypeTitleContent; + /** * 单个属性的 setter 配置 * * the field body contains when .type = 'field' */ setter?: IPublicTypeSetterType | IPublicTypeDynamicSetter; + /** * the setting items which group body contains when .type = 'group' */ items?: IPublicTypeFieldConfig[]; + /** * extra props for field * 其他配置属性(不做流通要求) */ extraProps?: IPublicTypeFieldExtraProps; + /** * @deprecated */ description?: IPublicTypeTitleContent; + /** * @deprecated */ diff --git a/packages/types/src/shell/type/index.ts b/packages/types/src/shell/type/index.ts index a066e1f57..b5dad9bb6 100644 --- a/packages/types/src/shell/type/index.ts +++ b/packages/types/src/shell/type/index.ts @@ -88,4 +88,5 @@ export * from './resource-type'; export * from './resource-type-config'; export * from './editor-view-config'; export * from './hotkey-callback-config'; -export * from './hotkey-callbacks'; \ No newline at end of file +export * from './hotkey-callbacks'; +export * from './scrollable'; diff --git a/packages/types/src/shell/model/scrollable.ts b/packages/types/src/shell/type/scrollable.ts similarity index 50% rename from packages/types/src/shell/model/scrollable.ts rename to packages/types/src/shell/type/scrollable.ts index d97a2984c..b308637e0 100644 --- a/packages/types/src/shell/model/scrollable.ts +++ b/packages/types/src/shell/type/scrollable.ts @@ -1,7 +1,7 @@ -import { IPublicModelScrollTarget } from './'; +import { IPublicModelScrollTarget } from '../model'; -export interface IPublicModelScrollable { +export interface IPublicTypeScrollable { scrollTarget?: IPublicModelScrollTarget | Element; bounds?: DOMRect | null; scale?: number; -} \ No newline at end of file +}