eapp-amis-theme-editor
Version:
amis主题编辑器
64 lines (60 loc) • 1.5 kB
JavaScript
/**
* amis-theme-editor v2.0.11-beta.2
* Copyright 2018-2023 @fex
*/
import { __assign } from 'tslib';
import { cloneDeep, find } from 'lodash';
import { i18n } from 'i18n-runtime';
var componentFactory = {};
var componentGroup = [{
label: i18n("aa05fd09a619ddbf07d8d903e6d32c5e"),
key: 'common',
children: []
}, {
label: i18n("5aefca559c5a41d10078e21e6d616825"),
key: 'layout',
children: []
}, {
label: i18n("9f03503d5c6df67ce0f7a8942734f7ca"),
key: 'data-entry',
children: []
}, {
label: i18n("b590af8d54b0b9151594c51239acffdc"),
key: 'data-show',
children: []
}, {
label: i18n("1d50fa5b3a01d0b513df8f4b8be40158"),
key: 'feedback',
children: []
}];
function getComponent(key) {
return componentFactory[key];
}
function getAllComponent() {
var allComponent = cloneDeep(componentGroup);
allComponent.forEach(function (item) {
for (var key in componentFactory) {
if (componentFactory[key].type === item.key) {
item.children.push(componentFactory[key]);
}
}
});
return allComponent;
}
function hasComponent(name) {
return !!getComponent(name);
}
function registerComponent(key, component) {
componentFactory[key] = component;
}
function registerGroup(option) {
if (find(componentGroup, function (item) {
return item.key === option.key;
})) {
return;
}
componentGroup.push(__assign({
children: []
}, option));
}
export { getAllComponent, getComponent, hasComponent, registerComponent, registerGroup };