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 { 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);

View File

@ -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);

View File

@ -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';

View File

@ -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');
};