diff --git a/packages/shell/src/common.tsx b/packages/shell/src/common.tsx
index d6511edef..dc25e4668 100644
--- a/packages/shell/src/common.tsx
+++ b/packages/shell/src/common.tsx
@@ -9,31 +9,31 @@ import {
isNodeSchema as innerIsNodeSchema,
NodeSchema,
TransitionType,
+ TransformStage as InnerTransitionStage,
} from '@alilc/lowcode-types';
import {
- SettingField,
- isSettingField,
+ SettingField as InnerSettingField,
+ isSettingField as innerIsSettingField,
Designer,
- TransformStage,
- LiveEditing,
- isDragNodeDataObject,
- isDragNodeObject,
- isDragAnyObject,
- DragObjectType,
- isNode,
- isShaken,
- contains,
- LocationDetailType,
- isLocationChildrenDetail,
- ScrollTarget,
+ LiveEditing as InnerLiveEditing,
+ isDragNodeDataObject as innerIsDragNodeDataObject,
+ isDragNodeObject as innerIsDragNodeObject,
+ isDragAnyObject as innerIsDragAnyObject,
+ DragObjectType as InnerDragObjectType,
+ isNode as innerIsNode,
+ isShaken as innerIsShaken,
+ contains as innerContains,
+ LocationDetailType as InnerLocationDetailType,
+ isLocationChildrenDetail as innerIsLocationChildrenDetail,
+ ScrollTarget as InnerScrollTarget,
getConvertedExtraKey as innerGetConvertedExtraKey,
getOriginalExtraKey as innerGetOriginalExtraKey,
} from '@alilc/lowcode-designer';
import {
Skeleton as InnerSkeleton,
- createSettingFieldView,
- PopupContext,
- PopupPipe,
+ createSettingFieldView as innerCreateSettingFieldView,
+ PopupContext as InnerPopupContext,
+ PopupPipe as InnerPopupPipe,
Workbench as InnerWorkbench,
} from '@alilc/lowcode-editor-skeleton';
import Dragon from './dragon';
@@ -41,60 +41,145 @@ import {
Editor,
Title as InnerTitle,
Tip as InnerTip,
- shallowIntl,
+ shallowIntl as innerShallowIntl,
createIntl as innerCreateIntl,
- intl,
- createSetterContent,
- obx,
- observable,
- makeObservable,
- untracked,
- computed,
- observer,
- globalLocale,
+ intl as innerIntl,
+ createSetterContent as innerCreateSetterContent,
+ globalLocale as innerGlobalLocale,
+ obx as innerObx,
+ observable as innerObservable,
+ makeObservable as innerMakeObservable,
+ untracked as innerUntracked,
+ computed as innerComputed,
+ observer as innerObserver,
} from '@alilc/lowcode-editor-core';
import { ReactNode } from 'react';
-const getDesignerCabin = (editor: Editor) => {
- const designer = editor.get('designer') as Designer;
+class DesignerCabin {
+ private readonly [editorSymbol]: Editor;
+ /**
+ * @deprecated
+ */
+ readonly [designerCabinSymbol]: any;
- return {
- SettingField,
- isSettingField,
- dragon: Dragon.create(designer.dragon),
- TransformStage,
- LiveEditing,
- DragObjectType,
- isDragNodeDataObject,
- isNode,
- [designerCabinSymbol]: {
- isDragNodeObject,
- isDragAnyObject,
- isShaken,
- contains,
- LocationDetailType,
- isLocationChildrenDetail,
- ScrollTarget,
- isSettingField,
- TransformStage,
- SettingField,
- LiveEditing,
- DragObjectType,
- isDragNodeDataObject,
- isNode,
- },
- };
-};
+ constructor(editor: Editor) {
+ this[editorSymbol] = editor;
+ this[designerCabinSymbol] = {
+ isDragNodeObject: innerIsDragNodeObject,
+ isDragAnyObject: innerIsDragAnyObject,
+ isShaken: innerIsShaken,
+ contains: innerContains,
+ LocationDetailType: InnerLocationDetailType,
+ isLocationChildrenDetail: innerIsLocationChildrenDetail,
+ ScrollTarget: InnerScrollTarget,
+ isSettingField: innerIsSettingField,
+ TransformStage: InnerTransitionStage,
+ SettingField: InnerSettingField,
+ LiveEditing: InnerLiveEditing,
+ DragObjectType: InnerDragObjectType,
+ isDragNodeDataObject: innerIsDragNodeDataObject,
+ isNode: innerIsNode,
+ };
+ }
-const getSkeletonCabin = (skeleton: InnerSkeleton) => {
- return {
- createSettingFieldView,
- PopupContext,
- PopupPipe,
- Workbench: (props: any) => , // hijack skeleton
- };
-};
+ /**
+ * 是否是 SettingField 实例
+ *
+ * @param {*} obj
+ * @returns {obj is SettingField}
+ * @memberof DesignerCabin
+ */
+ isSettingField(obj: any): obj is InnerSettingField {
+ return innerIsSettingField(obj);
+ }
+
+ /**
+ * 转换类型枚举对象,包含 init / upgrade / render 等类型
+ * [参考](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/transform-stage.ts)
+ * @deprecated use { TransformStage } from '@alilc/lowcode-types' instead
+ */
+ get TransformStage() {
+ return InnerTransitionStage;
+ }
+
+ /**
+ * @deprecated
+ */
+ get SettingField() {
+ return InnerSettingField;
+ }
+
+ /**
+ * @deprecated
+ */
+ get dragon() {
+ const designer = this[editorSymbol].get('designer') as Designer;
+ return Dragon.create(designer.dragon);
+ }
+
+ /**
+ * @deprecated
+ */
+ get LiveEditing() {
+ return InnerLiveEditing;
+ }
+
+ /**
+ * @deprecated
+ */
+ get DragObjectType() {
+ return InnerDragObjectType;
+ }
+
+ /**
+ * @deprecated
+ */
+ isDragNodeDataObject(obj: any): boolean {
+ return innerIsDragNodeDataObject(obj);
+ }
+
+ /**
+ * @deprecated
+ */
+ isNode(node: any): boolean {
+ return innerIsNode(node);
+ }
+}
+
+class SkeletonCabin {
+ private readonly [skeletonSymbol]: InnerSkeleton;
+
+ constructor(skeleton: InnerSkeleton) {
+ this[skeletonSymbol] = skeleton;
+ }
+
+ get Workbench(): any {
+ const innerSkeleton = this[skeletonSymbol];
+ return (props: any) => ;
+ }
+
+ /**
+ * @deprecated
+ */
+ createSettingFieldView(item: any, field: any) {
+ return innerCreateSettingFieldView(item, field);
+ }
+
+ /**
+ * @deprecated
+ */
+ get PopupContext(): any {
+ return InnerPopupContext;
+ }
+
+ /**
+ * @deprecated
+ */
+ get PopupPipe(): any {
+ return InnerPopupPipe;
+ }
+}
class Utils {
isNodeSchema(data: any): data is NodeSchema {
@@ -135,19 +220,110 @@ class Utils {
}
}
+class EditorCabin {
+ /**
+ * @deprecated
+ */
+ get Title() {
+ return InnerTitle;
+ }
+
+ /**
+ * @deprecated
+ */
+ get Tip() {
+ return InnerTip;
+ }
+
+ /**
+ * @deprecated
+ */
+ shallowIntl(data: any): any {
+ return innerShallowIntl(data);
+ }
+
+ /**
+ * @deprecated use common.utils.createIntl instead
+ */
+ createIntl(instance: any): any {
+ return innerCreateIntl(instance);
+ }
+
+ /**
+ * @deprecated
+ */
+ intl(data: any, params?: object): any {
+ return innerIntl(data, params);
+ }
+
+ /**
+ * @deprecated
+ */
+ createSetterContent(setter: any, props: Record): ReactNode {
+ return innerCreateSetterContent(setter, props);
+ }
+
+ /**
+ * @deprecated
+ */
+ get globalLocale() {
+ return innerGlobalLocale;
+ }
+
+ /**
+ * @deprecated
+ */
+ get obx() {
+ return innerObx;
+ }
+
+ /**
+ * @deprecated
+ */
+ get observable() {
+ return innerObservable;
+ }
+
+ /**
+ * @deprecated
+ */
+ makeObservable(target: any, annotations: any, options: any) {
+ return innerMakeObservable(target, annotations, options);
+ }
+
+ /**
+ * @deprecated
+ */
+ untracked(action: any) {
+ return innerUntracked(action);
+ }
+
+ /**
+ * @deprecated
+ */
+ get computed() {
+ return innerComputed;
+ }
+
+ /**
+ * @deprecated
+ */
+ observer(component: any) {
+ return innerObserver(component);
+ }
+}
+
+
export default class Common {
- private readonly [editorSymbol]: Editor;
- private readonly [skeletonSymbol]: InnerSkeleton;
private readonly __designerCabin: any;
private readonly __skeletonCabin: any;
private readonly __editorCabin: any;
private readonly __utils: Utils;
constructor(editor: Editor, skeleton: InnerSkeleton) {
- this[editorSymbol] = editor;
- this[skeletonSymbol] = skeleton;
- this.__designerCabin = getDesignerCabin(this[editorSymbol]);
- this.__skeletonCabin = getSkeletonCabin(this[skeletonSymbol]);
+ this.__designerCabin = new DesignerCabin(editor);
+ this.__skeletonCabin = new SkeletonCabin(skeleton);
+ this.__editorCabin = new EditorCabin();
this.__utils = new Utils();
}
@@ -155,22 +331,13 @@ export default class Common {
return this.__utils;
}
+ /**
+ * 历史原因导致此处设计不合理,慎用。
+ * this load of crap will be removed in some future versions, don`t use it.
+ * @deprecated
+ */
get editorCabin(): any {
- return {
- Title: InnerTitle,
- Tip: InnerTip,
- shallowIntl,
- createIntl: innerCreateIntl,
- intl,
- createSetterContent,
- obx,
- observable,
- makeObservable,
- untracked,
- computed,
- observer,
- globalLocale,
- };
+ return this.__editorCabin;
}
get designerCabin(): any {
@@ -180,4 +347,15 @@ export default class Common {
get skeletonCabin(): any {
return this.__skeletonCabin;
}
+
+ /**
+ * 历史原因导致此处设计不合理,慎用。
+ * this load of crap will be removed in some future versions, don`t use it.
+ * @deprecated use { TransformStage } from '@alilc/lowcode-types' instead
+ */
+ get objects(): any {
+ return {
+ TransformStage: InnerTransitionStage,
+ };
+ }
}
\ No newline at end of file