Merge branch 'feat/optional-register-defaults' into 'release/0.9.8'

feat: register-defaults 改为可选项

register-defaults 改为可选项

See merge request !931153
This commit is contained in:
力皓 2020-08-19 12:49:55 +08:00
commit 4642f2dd99
4 changed files with 56 additions and 53 deletions

View File

@ -1,6 +1,6 @@
import { render } from 'react-dom'; import { render } from 'react-dom';
import { createElement } from 'react'; 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 { globalContext, Editor } from '@ali/lowcode-editor-core';
import { Designer } from '@ali/lowcode-designer'; import { Designer } from '@ali/lowcode-designer';
import Outline, { OutlineBackupPane, getTreeMaster } from '@ali/lowcode-plugin-outline-pane'; import Outline, { OutlineBackupPane, getTreeMaster } from '@ali/lowcode-plugin-outline-pane';
@ -19,6 +19,7 @@ globalContext.register(editor, Editor);
export const skeleton = new Skeleton(editor); export const skeleton = new Skeleton(editor);
editor.set(Skeleton, skeleton); editor.set(Skeleton, skeleton);
editor.set('skeleton', skeleton); editor.set('skeleton', skeleton);
registerDefaults();
export const designer = new Designer({ editor: editor }); export const designer = new Designer({ editor: editor });
editor.set(Designer, designer); editor.set(Designer, designer);

View File

@ -9,7 +9,7 @@ import bus from './bus';
import { VE_EVENTS } from './base/const'; import { VE_EVENTS } from './base/const';
import DesignerPlugin from '@ali/lowcode-plugin-designer'; 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 { deepValueParser } from './deep-value-parser';
import { liveEditingRule, liveEditingSaveHander } from './vc-live-editing'; import { liveEditingRule, liveEditingSaveHander } from './vc-live-editing';
@ -20,6 +20,7 @@ globalContext.register(editor, Editor);
export const skeleton = new Skeleton(editor); export const skeleton = new Skeleton(editor);
editor.set(Skeleton, skeleton); editor.set(Skeleton, skeleton);
editor.set('skeleton', skeleton); editor.set('skeleton', skeleton);
registerDefaults();
export const designer = new Designer({ editor: editor }); export const designer = new Designer({ editor: editor });
editor.set(Designer, designer); editor.set(Designer, designer);

View File

@ -4,5 +4,4 @@ export * from './types';
export * from './components/settings'; export * from './components/settings';
export * from './components/field'; export * from './components/field';
export * from './context'; export * from './context';
export * from './register-defaults';
import './register-defaults';

View File

@ -9,54 +9,56 @@ import addonCombine from './transducers/addon-combine';
import SlotSetter from './components/slot-setter'; import SlotSetter from './components/slot-setter';
import { isJSSlot } from '@ali/lowcode-types'; import { isJSSlot } from '@ali/lowcode-types';
registerSetter('ArraySetter', { export const registerDefaults = () => {
component: ArraySetter, registerSetter('ArraySetter', {
defaultProps: {}, component: ArraySetter,
title: 'ArraySetter', // TODO defaultProps: {},
condition: (field: any) => { title: 'ArraySetter', // TODO
const v = field.getValue(); condition: (field: any) => {
return v == null || Array.isArray(v); const v = field.getValue();
}, return v == null || Array.isArray(v);
initialValue: [], },
recommend: true, initialValue: [],
}); recommend: true,
registerSetter('ObjectSetter', { });
component: ObjectSetter, registerSetter('ObjectSetter', {
// todo: defaultProps component: ObjectSetter,
defaultProps: {}, // todo: defaultProps
title: 'ObjectSetter', // TODO defaultProps: {},
condition: (field: any) => { title: 'ObjectSetter', // TODO
const v = field.getValue(); condition: (field: any) => {
return v == null || isPlainObject(v); const v = field.getValue();
}, return v == null || isPlainObject(v);
initialValue: {}, },
recommend: true, initialValue: {},
}); recommend: true,
registerSetter('SlotSetter', { });
component: SlotSetter, registerSetter('SlotSetter', {
title: { component: SlotSetter,
type: 'i18n', title: {
'zh-CN': '插槽输入', type: 'i18n',
'en-US': 'Slot Setter' 'zh-CN': '插槽输入',
}, 'en-US': 'Slot Setter',
condition: (field: any) => { },
return isJSSlot(field.getValue()); condition: (field: any) => {
}, return isJSSlot(field.getValue());
initialValue: (field: any, value: any) => { },
if (isJSSlot(value)) { initialValue: (field: any, value: any) => {
return value; if (isJSSlot(value)) {
} return value;
return { }
type: 'JSSlot', return {
value: value type: 'JSSlot',
}; value: value,
}, };
recommend: true, },
}); recommend: true,
registerSetter('MixedSetter', MixedSetter); });
registerSetter('MixedSetter', MixedSetter);
// parseProps // parseProps
registerMetadataTransducer(parseProps, 10, 'parse-props'); registerMetadataTransducer(parseProps, 10, 'parse-props');
// addon/platform custom // addon/platform custom
registerMetadataTransducer(addonCombine, 11, 'combine-props'); registerMetadataTransducer(addonCombine, 11, 'combine-props');
};