mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-03-19 20:23:49 +00:00
49 lines
1.5 KiB
TypeScript
49 lines
1.5 KiB
TypeScript
import { IPublicTypeTransformedComponentMetadata as Metadata } from '@alilc/lowcode-types';
|
|
|
|
export function legacyIssues(metadata: Metadata): Metadata {
|
|
const { devMode } = metadata;
|
|
return {
|
|
...metadata,
|
|
devMode: devMode?.replace(/(low|pro)code/, '$1Code') as Metadata['devMode'],
|
|
};
|
|
}
|
|
|
|
export function componentDefaults(metadata: Metadata): Metadata {
|
|
const { configure, componentName } = metadata;
|
|
const { component = {} } = configure;
|
|
if (!component.nestingRule) {
|
|
let m;
|
|
// uri match xx.Group set subcontrolling: true, childWhiteList
|
|
// eslint-disable-next-line no-cond-assign
|
|
if ((m = /^(.+)\.Group$/.exec(componentName))) {
|
|
// component.subControlling = true;
|
|
component.nestingRule = {
|
|
childWhitelist: [`${m[1]}`],
|
|
};
|
|
// eslint-disable-next-line no-cond-assign
|
|
} else if ((m = /^(.+)\.Node$/.exec(componentName))) {
|
|
// uri match xx.Node set selfControlled: false, parentWhiteList
|
|
// component.selfControlled = false;
|
|
component.nestingRule = {
|
|
parentWhitelist: [`${m[1]}`, componentName],
|
|
};
|
|
// eslint-disable-next-line no-cond-assign
|
|
} else if ((m = /^(.+)\.(Item|Node|Option)$/.exec(componentName))) {
|
|
// uri match .Item .Node .Option set parentWhiteList
|
|
component.nestingRule = {
|
|
parentWhitelist: [`${m[1]}`],
|
|
};
|
|
}
|
|
}
|
|
// if (component.isModal == null && /Dialog/.test(componentName)) {
|
|
// component.isModal = true;
|
|
// }
|
|
return {
|
|
...metadata,
|
|
configure: {
|
|
...configure,
|
|
component,
|
|
},
|
|
};
|
|
}
|