From 96ac725ce9e55af38bba670371eda8149e287e08 Mon Sep 17 00:00:00 2001 From: "lihao.ylh" Date: Wed, 5 Jan 2022 19:28:34 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=B0=86=20experimental=20?= =?UTF-8?q?=E6=9B=B4=E5=90=8D=E4=B8=BA=20advanced?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bem-tools/border-detecting.tsx | 2 +- .../bem-tools/border-resizing.tsx | 44 +++++++------------ .../bem-tools/border-selecting.tsx | 2 +- .../builtin-simulator/bem-tools/insertion.tsx | 2 +- .../designer/src/builtin-simulator/host.ts | 2 +- packages/designer/src/component-meta.ts | 7 ++- packages/designer/src/designer/designer.ts | 2 +- .../src/designer/drag-ghost/index.tsx | 2 +- .../src/document/node/node-children.ts | 4 +- packages/designer/src/document/node/node.ts | 8 ++-- packages/plugin-outline-pane/src/main.ts | 2 +- packages/types/src/metadata.ts | 12 +++-- packages/utils/src/misc.ts | 2 +- packages/utils/src/node-helper.ts | 2 +- 14 files changed, 44 insertions(+), 49 deletions(-) diff --git a/packages/designer/src/builtin-simulator/bem-tools/border-detecting.tsx b/packages/designer/src/builtin-simulator/bem-tools/border-detecting.tsx index 595048dba..fcf74a6e8 100644 --- a/packages/designer/src/builtin-simulator/bem-tools/border-detecting.tsx +++ b/packages/designer/src/builtin-simulator/bem-tools/border-detecting.tsx @@ -78,7 +78,7 @@ export class BorderDetecting extends Component<{ host: BuiltinSimulatorHost }> { const { current } = this; - const canHoverHook = current?.componentMeta.getMetadata()?.experimental?.callbacks?.onHoverHook; + const canHoverHook = current?.componentMeta.getMetadata()?.advanced?.callbacks?.onHoverHook; const canHover = (canHoverHook && typeof canHoverHook === 'function') ? canHoverHook(current.internalToShellNode()) : true; diff --git a/packages/designer/src/builtin-simulator/bem-tools/border-resizing.tsx b/packages/designer/src/builtin-simulator/bem-tools/border-resizing.tsx index 720cff9d9..c337bd2de 100644 --- a/packages/designer/src/builtin-simulator/bem-tools/border-resizing.tsx +++ b/packages/designer/src/builtin-simulator/bem-tools/border-resizing.tsx @@ -41,7 +41,7 @@ export default class BoxResizing extends Component<{ host: BuiltinSimulatorHost } // const componentMeta = selecting[0].componentMeta; - // const metaData = componentMeta.getMetadata(); + // const metadata = componentMeta.getMetadata(); return ( @@ -130,57 +130,45 @@ export class BoxResizingInstance extends Component<{ this.props.observed.purge(); } - getExperiMentalFns = (metaData: any) => { - if (metaData.experimental && metaData.experimental.callbacks) { - return metaData.experimantal.callbacks; - } - }; - componentDidMount() { // this.hoveringCapture.setBoundary(this.outline); this.willBind(); const resize = (e: MouseEvent, direction: string, node: any, moveX: number, moveY: number) => { - const metaData = node.componentMeta.getMetadata(); + const metadata = node.componentMeta.getMetadata(); if ( - metaData && - metaData.experimental && - metaData.experimental.callbacks && - typeof metaData.experimental.callbacks.onResize === 'function' + metadata?.advanced?.callbacks && + typeof metadata.advanced.callbacks.onResize === 'function' ) { (e as any).trigger = direction; (e as any).deltaX = moveX; (e as any).deltaY = moveY; const cbNode = node?.isNode ? node.internalToShellNode() : node; - metaData.experimental.callbacks.onResize(e, cbNode); + metadata.advanced.callbacks.onResize(e, cbNode); } }; const resizeStart = (e: MouseEvent, direction: string, node: any) => { - const metaData = node.componentMeta.getMetadata(); + const metadata = node.componentMeta.getMetadata(); if ( - metaData && - metaData.experimental && - metaData.experimental.callbacks && - typeof metaData.experimental.callbacks.onResizeStart === 'function' + metadata?.advanced?.callbacks && + typeof metadata.advanced.callbacks.onResizeStart === 'function' ) { (e as any).trigger = direction; const cbNode = node?.isNode ? node.internalToShellNode() : node; - metaData.experimental.callbacks.onResizeStart(e, cbNode); + metadata.advanced.callbacks.onResizeStart(e, cbNode); } }; const resizeEnd = (e: MouseEvent, direction: string, node: any) => { - const metaData = node.componentMeta.getMetadata(); + const metadata = node.componentMeta.getMetadata(); if ( - metaData && - metaData.experimental && - metaData.experimental.callbacks && - typeof metaData.experimental.callbacks.onResizeEnd === 'function' + metadata?.advanced?.callbacks && + typeof metadata.advanced.callbacks.onResizeEnd === 'function' ) { (e as any).trigger = direction; const cbNode = node?.isNode ? node.internalToShellNode() : node; - metaData.experimental.callbacks.onResizeEnd(e, cbNode); + metadata.advanced.callbacks.onResizeEnd(e, cbNode); } const editor = globalContext.get(Editor); @@ -252,9 +240,9 @@ export class BoxResizingInstance extends Component<{ const { node, offsetWidth, offsetHeight, offsetTop, offsetLeft } = observed; let triggerVisible: any = []; - const metaData = node.componentMeta.getMetadata(); - if (metaData && metaData.experimental && metaData.experimental.getResizingHandlers) { - triggerVisible = metaData.experimental.getResizingHandlers(node); + const metadata = node.componentMeta.getMetadata(); + if (metadata?.advanced?.getResizingHandlers) { + triggerVisible = metadata.advanced.getResizingHandlers(node); } const baseSideClass = 'lc-borders lc-resize-side'; diff --git a/packages/designer/src/builtin-simulator/bem-tools/border-selecting.tsx b/packages/designer/src/builtin-simulator/bem-tools/border-selecting.tsx index bb0b1b6d3..2d81d9c18 100644 --- a/packages/designer/src/builtin-simulator/bem-tools/border-selecting.tsx +++ b/packages/designer/src/builtin-simulator/bem-tools/border-selecting.tsx @@ -46,7 +46,7 @@ export class BorderSelectingInstance extends Component<{ dragging, }); - const hideSelectTools = observed.node.componentMeta.getMetadata().experimental?.hideSelectTools; + const hideSelectTools = observed.node.componentMeta.getMetadata().advanced?.hideSelectTools; if (hideSelectTools) { return null; diff --git a/packages/designer/src/builtin-simulator/bem-tools/insertion.tsx b/packages/designer/src/builtin-simulator/bem-tools/insertion.tsx index 5b14f6a40..fc85b9fdb 100644 --- a/packages/designer/src/builtin-simulator/bem-tools/insertion.tsx +++ b/packages/designer/src/builtin-simulator/bem-tools/insertion.tsx @@ -123,7 +123,7 @@ export class InsertionView extends Component<{ host: BuiltinSimulatorHost }> { return null; } // 如果是个绝对定位容器,不需要渲染插入标记 - if (loc.target.componentMeta.getMetadata().experimental?.isAbsoluteLayoutContainer) { + if (loc.target.componentMeta.getMetadata().advanced?.isAbsoluteLayoutContainer) { return null; } diff --git a/packages/designer/src/builtin-simulator/host.ts b/packages/designer/src/builtin-simulator/host.ts index 0a4f83b15..8e449f1d4 100644 --- a/packages/designer/src/builtin-simulator/host.ts +++ b/packages/designer/src/builtin-simulator/host.ts @@ -1139,7 +1139,7 @@ export class BuiltinSimulatorHost implements ISimulatorHost { - const onMoveHook = node.componentMeta?.getMetadata()?.experimental?.callbacks?.onMoveHook; + const onMoveHook = node.componentMeta?.getMetadata()?.advanced?.callbacks?.onMoveHook; const canMove = onMoveHook && typeof onMoveHook === 'function' ? onMoveHook(node.internalToShellNode()) : true; return canMove; diff --git a/packages/designer/src/component-meta.ts b/packages/designer/src/component-meta.ts index f35e8f499..df3543a8e 100644 --- a/packages/designer/src/component-meta.ts +++ b/packages/designer/src/component-meta.ts @@ -199,7 +199,7 @@ export class ComponentMeta { : title; } - const liveTextEditing = this._transformedMetadata.experimental?.liveTextEditing || []; + const liveTextEditing = this._transformedMetadata.advanced?.liveTextEditing || []; function collectLiveTextEditing(items: FieldConfig[]) { items.forEach((config) => { @@ -219,7 +219,7 @@ export class ComponentMeta { collectLiveTextEditing(this.configure); this._liveTextEditing = liveTextEditing.length > 0 ? liveTextEditing : undefined; - const isTopFiexd = this._transformedMetadata.experimental?.isTopFixed; + const isTopFiexd = this._transformedMetadata.advanced?.isTopFixed; if (isTopFiexd) { this._isTopFixed = isTopFiexd; @@ -259,6 +259,9 @@ export class ComponentMeta { if (!result.configure) { result.configure = {}; } + if (result.experimental && !result.advanced) { + result.advanced = result.experimental; + } return result as any; } diff --git a/packages/designer/src/designer/designer.ts b/packages/designer/src/designer/designer.ts index 022859b0f..935ced04f 100644 --- a/packages/designer/src/designer/designer.ts +++ b/packages/designer/src/designer/designer.ts @@ -524,7 +524,7 @@ export class Designer { if (metaData.devMode === 'lowcode') { maps[key] = metaData.schema; } else { - const view = metaData.experimental?.view; + const view = metaData.advanced?.view; if (view) { maps[key] = view; } else { diff --git a/packages/designer/src/designer/drag-ghost/index.tsx b/packages/designer/src/designer/drag-ghost/index.tsx index f881f9bd8..0f58055e0 100644 --- a/packages/designer/src/designer/drag-ghost/index.tsx +++ b/packages/designer/src/designer/drag-ghost/index.tsx @@ -38,7 +38,7 @@ export default class DragGhost extends Component<{ designer: Designer }> { this.y = e.globalY; if (isSimulatorHost(e.sensor)) { const container = e.sensor.getDropContainer(e); - if (container?.container.componentMeta.getMetadata().experimental?.isAbsoluteLayoutContainer) { + if (container?.container.componentMeta.getMetadata().advanced?.isAbsoluteLayoutContainer) { this.isAbsoluteLayoutContainer = true; return; } diff --git a/packages/designer/src/document/node/node-children.ts b/packages/designer/src/document/node/node-children.ts index 57894f1a0..dd9a427d4 100644 --- a/packages/designer/src/document/node/node-children.ts +++ b/packages/designer/src/document/node/node-children.ts @@ -416,7 +416,7 @@ export class NodeChildren { if (node.isRoot()) { return; } - const callbacks = owner.componentMeta.getMetadata().experimental?.callbacks; + const callbacks = owner.componentMeta.getMetadata().advanced?.callbacks; if (callbacks?.onSubtreeModified) { try { callbacks?.onSubtreeModified.call( @@ -425,7 +425,7 @@ export class NodeChildren { options, ); } catch (e) { - console.error('error when excute experimental.callbacks.onSubtreeModified', e); + console.error('error when execute advanced.callbacks.onSubtreeModified', e); } } diff --git a/packages/designer/src/document/node/node.ts b/packages/designer/src/document/node/node.ts index 0d03761ba..7186d7c6a 100644 --- a/packages/designer/src/document/node/node.ts +++ b/packages/designer/src/document/node/node.ts @@ -223,7 +223,7 @@ export class Node { private autoruns?: Array<() => void>; private setupAutoruns() { - const autoruns = this.componentMeta.getMetadata().experimental?.autoruns; + const autoruns = this.componentMeta.getMetadata().advanced?.autoruns; if (!autoruns || autoruns.length < 1) { return; } @@ -237,7 +237,7 @@ export class Node { private initialChildren(children: any): NodeData[] { // FIXME! this is dirty code if (children == null) { - const initialChildren = this.componentMeta.getMetadata().experimental?.initialChildren; + const initialChildren = this.componentMeta.getMetadata().advanced?.initialChildren; if (initialChildren) { if (typeof initialChildren === 'function') { return initialChildren(this as any) || []; @@ -298,7 +298,7 @@ export class Node { } private didDropIn(dragment: Node) { - const callbacks = this.componentMeta.getMetadata().experimental?.callbacks; + const callbacks = this.componentMeta.getMetadata().advanced?.callbacks; if (callbacks?.onNodeAdd) { const cbThis = this.internalToShellNode(); callbacks?.onNodeAdd.call(cbThis, dragment.internalToShellNode(), cbThis); @@ -309,7 +309,7 @@ export class Node { } private didDropOut(dragment: Node) { - const callbacks = this.componentMeta.getMetadata().experimental?.callbacks; + const callbacks = this.componentMeta.getMetadata().advanced?.callbacks; if (callbacks?.onNodeRemove) { const cbThis = this.internalToShellNode(); callbacks?.onNodeRemove.call(cbThis, dragment.internalToShellNode(), cbThis); diff --git a/packages/plugin-outline-pane/src/main.ts b/packages/plugin-outline-pane/src/main.ts index 94aa7409d..10e6c88b5 100644 --- a/packages/plugin-outline-pane/src/main.ts +++ b/packages/plugin-outline-pane/src/main.ts @@ -146,7 +146,7 @@ export class OutlineMain implements ISensor, ITreeBoard, IScrollable { } const operationalNodes = nodes?.filter((node: any) => { - const onMoveHook = node.componentMeta?.getMetadata()?.experimental?.callbacks?.onMoveHook; + const onMoveHook = node.componentMeta?.getMetadata()?.advanced?.callbacks?.onMoveHook; const canMove = onMoveHook && typeof onMoveHook === 'function' ? onMoveHook(node) : true; return canMove; diff --git a/packages/types/src/metadata.ts b/packages/types/src/metadata.ts index c6b5559a8..b2fb91211 100644 --- a/packages/types/src/metadata.ts +++ b/packages/types/src/metadata.ts @@ -126,9 +126,9 @@ export interface AutorunItem { } /** - * 试验特性配置 + * 高级特性配置 */ -export interface Experimental { +export interface Advanced { /** * @todo 待补充文档 */ @@ -389,9 +389,13 @@ export interface ComponentMetadata { */ configure?: FieldConfig[] | Configure; /** - * 试验特性配置 + * 高级特性配置 */ - experimental?: Experimental; + advanced?: Advanced; + /** + * @deprecated, use advanced instead + */ + experimental?: Advanced; /** * @todo 待补充文档 */ diff --git a/packages/utils/src/misc.ts b/packages/utils/src/misc.ts index b192102b9..ab5aae7e0 100644 --- a/packages/utils/src/misc.ts +++ b/packages/utils/src/misc.ts @@ -66,7 +66,7 @@ export function arrShallowEquals(arr1: any[], arr2: any[]): boolean { * @param meta */ export function isFromVC(meta: ComponentMeta) { - return !!meta?.getMetadata()?.experimental; + return !!meta?.getMetadata()?.advanced; } export function executePendingFn(fn: () => void, timeout: number = 2000) { diff --git a/packages/utils/src/node-helper.ts b/packages/utils/src/node-helper.ts index 71089424d..4aadf896d 100644 --- a/packages/utils/src/node-helper.ts +++ b/packages/utils/src/node-helper.ts @@ -20,7 +20,7 @@ export const getClosestNode = (node: Node, until: (node: Node) => boolean): Node * @returns {boolean} 是否可点击,true表示可点击 */ export const canClickNode = (node: Node, e: unknown): boolean => { - const onClickHook = node.componentMeta?.getMetadata()?.experimental?.callbacks?.onClickHook; + const onClickHook = node.componentMeta?.getMetadata()?.advanced?.callbacks?.onClickHook; const canClick = typeof onClickHook === 'function' ? onClickHook(e as MouseEvent, node) : true; return canClick; };