diff --git a/packages/editor-preset-general/src/index.ts b/packages/editor-preset-general/src/index.ts index 4d6a340db..90cf7ab3c 100644 --- a/packages/editor-preset-general/src/index.ts +++ b/packages/editor-preset-general/src/index.ts @@ -1,6 +1,6 @@ import { render } from 'react-dom'; import { createElement } from 'react'; -import { Workbench, Skeleton, SettingsPrimaryPane } from '@ali/lowcode-editor-skeleton'; +import { Workbench, Skeleton, SettingsPrimaryPane, registerDefaults } from '@ali/lowcode-editor-skeleton'; import { globalContext, Editor } from '@ali/lowcode-editor-core'; import { Designer } from '@ali/lowcode-designer'; import Outline, { OutlineBackupPane, getTreeMaster } from '@ali/lowcode-plugin-outline-pane'; @@ -19,6 +19,7 @@ globalContext.register(editor, Editor); export const skeleton = new Skeleton(editor); editor.set(Skeleton, skeleton); editor.set('skeleton', skeleton); +registerDefaults(); export const designer = new Designer({ editor: editor }); editor.set(Designer, designer); diff --git a/packages/editor-preset-vision/src/editor.ts b/packages/editor-preset-vision/src/editor.ts index 3ba57fe7d..caeb0f920 100644 --- a/packages/editor-preset-vision/src/editor.ts +++ b/packages/editor-preset-vision/src/editor.ts @@ -9,7 +9,7 @@ import bus from './bus'; import { VE_EVENTS } from './base/const'; import DesignerPlugin from '@ali/lowcode-plugin-designer'; -import { Skeleton, SettingsPrimaryPane } from '@ali/lowcode-editor-skeleton'; +import { Skeleton, SettingsPrimaryPane, registerDefaults } from '@ali/lowcode-editor-skeleton'; import { deepValueParser } from './deep-value-parser'; import { liveEditingRule, liveEditingSaveHander } from './vc-live-editing'; @@ -20,6 +20,7 @@ globalContext.register(editor, Editor); export const skeleton = new Skeleton(editor); editor.set(Skeleton, skeleton); editor.set('skeleton', skeleton); +registerDefaults(); export const designer = new Designer({ editor: editor }); editor.set(Designer, designer); diff --git a/packages/editor-skeleton/src/index.ts b/packages/editor-skeleton/src/index.ts index 05c35594d..c8e4bfc65 100644 --- a/packages/editor-skeleton/src/index.ts +++ b/packages/editor-skeleton/src/index.ts @@ -4,5 +4,4 @@ export * from './types'; export * from './components/settings'; export * from './components/field'; export * from './context'; - -import './register-defaults'; +export * from './register-defaults'; diff --git a/packages/editor-skeleton/src/register-defaults.ts b/packages/editor-skeleton/src/register-defaults.ts index 3c114e43d..ccaf9110e 100644 --- a/packages/editor-skeleton/src/register-defaults.ts +++ b/packages/editor-skeleton/src/register-defaults.ts @@ -9,54 +9,56 @@ import addonCombine from './transducers/addon-combine'; import SlotSetter from './components/slot-setter'; import { isJSSlot } from '@ali/lowcode-types'; -registerSetter('ArraySetter', { - component: ArraySetter, - defaultProps: {}, - title: 'ArraySetter', // TODO - condition: (field: any) => { - const v = field.getValue(); - return v == null || Array.isArray(v); - }, - initialValue: [], - recommend: true, -}); -registerSetter('ObjectSetter', { - component: ObjectSetter, - // todo: defaultProps - defaultProps: {}, - title: 'ObjectSetter', // TODO - condition: (field: any) => { - const v = field.getValue(); - return v == null || isPlainObject(v); - }, - initialValue: {}, - recommend: true, -}); -registerSetter('SlotSetter', { - component: SlotSetter, - title: { - type: 'i18n', - 'zh-CN': '插槽输入', - 'en-US': 'Slot Setter' - }, - condition: (field: any) => { - return isJSSlot(field.getValue()); - }, - initialValue: (field: any, value: any) => { - if (isJSSlot(value)) { - return value; - } - return { - type: 'JSSlot', - value: value - }; - }, - recommend: true, -}); -registerSetter('MixedSetter', MixedSetter); +export const registerDefaults = () => { + registerSetter('ArraySetter', { + component: ArraySetter, + defaultProps: {}, + title: 'ArraySetter', // TODO + condition: (field: any) => { + const v = field.getValue(); + return v == null || Array.isArray(v); + }, + initialValue: [], + recommend: true, + }); + registerSetter('ObjectSetter', { + component: ObjectSetter, + // todo: defaultProps + defaultProps: {}, + title: 'ObjectSetter', // TODO + condition: (field: any) => { + const v = field.getValue(); + return v == null || isPlainObject(v); + }, + initialValue: {}, + recommend: true, + }); + registerSetter('SlotSetter', { + component: SlotSetter, + title: { + type: 'i18n', + 'zh-CN': '插槽输入', + 'en-US': 'Slot Setter', + }, + condition: (field: any) => { + return isJSSlot(field.getValue()); + }, + initialValue: (field: any, value: any) => { + if (isJSSlot(value)) { + return value; + } + return { + type: 'JSSlot', + value: value, + }; + }, + recommend: true, + }); + registerSetter('MixedSetter', MixedSetter); -// parseProps -registerMetadataTransducer(parseProps, 10, 'parse-props'); + // parseProps + registerMetadataTransducer(parseProps, 10, 'parse-props'); -// addon/platform custom -registerMetadataTransducer(addonCombine, 11, 'combine-props'); + // addon/platform custom + registerMetadataTransducer(addonCombine, 11, 'combine-props'); +};