mr-component
Version:
A library for Mr components
177 lines • 5.54 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import DefaultMeta from "./default/meta";
import ExampleComponentMeta from "./example-component/meta";
import MrButtonMeta from "./mr-button/meta";
import MrCardMeta from "./mr-card/meta";
import MrInputMeta from "./mr-input/meta";
import MrPaymentPopupMeta from "./mr-payment-popup/meta";
import MrSelectMeta from "./mr-select/meta";
import MrSwitchCellMeta from "./mr-switch-cell/meta";
import MrTitleMeta from "./mr-title/meta";
import VantButtonMeta from "./vant-button/meta";
import VantCellMeta from "./vant-cell/meta";
import VantImageMeta from "./vant-image/meta";
import VantInputMeta from "./vant-input/meta";
import VantTagMeta from "./vant-tag/meta";
var componentCategorySort = {};
["基础元素", "布局容器类", "表格类", "表单详情类", "帮助类", "对话框类", "业务类", "通用", "引导", "信息输入", "信息展示", "信息反馈"].reverse().forEach(function (item, index) {
componentCategorySort[item] = ++index;
});
function generateComponentList(components) {
var componentList = [{
title: '常用',
icon: '',
children: []
}, {
title: '容器',
icon: '',
children: []
}, {
title: '导航',
icon: '',
children: []
}, {
title: '内容',
icon: '',
children: []
}, {
title: 'Feedback 反馈',
icon: '',
children: []
}];
var groupMap = {
原子组件: true
};
var compGroup = {};
components.forEach(function (comp) {
var category = comp.category || '其他';
if (comp.group && !compGroup[comp.componentName]) {
compGroup[comp.componentName] = comp.group;
}
if (comp.group && !groupMap[comp.group]) {
groupMap[comp.group] = true;
}
var target = componentList.find(function (item) {
return item.title === category;
});
if (!target) {
target = {
title: category,
icon: '',
children: []
};
componentList.push(target);
}
if (comp.snippets && comp.snippets.length) {
target.children.push({
componentName: comp.componentName,
title: comp.title || comp.componentName,
sort: {
category: target.title,
group: compGroup[comp.componentName] || '原子组件',
priority: componentCategorySort[target.title] || 0
},
icon: '',
"package": comp.npm.pkg,
snippets: comp.snippets || []
});
}
});
return componentList;
}
function fillRealVersion(meta, packageName, version, basicLibraryVersion) {
if (packageName === void 0) {
packageName = 'mr-component';
}
if (version === void 0) {
version = '0.0.30';
}
if (basicLibraryVersion === void 0) {
basicLibraryVersion = {
"@alifd/next": "1.25.23",
"@alifd/meet": "2.6.3",
"antd": "4.17.3"
};
}
if (!meta || !version) {
return meta;
}
var npm = meta.npm;
if (!npm) {
return meta;
}
if (typeof basicLibraryVersion === 'object' && basicLibraryVersion[npm["package"]]) {
meta.npm = _extends({}, npm, {
version: basicLibraryVersion[npm["package"]]
});
} else if (npm["package"] === packageName) {
meta.npm = _extends({}, npm, {
version: version
});
}
return meta;
}
var componentMetas = [DefaultMeta, ExampleComponentMeta, MrButtonMeta, MrCardMeta, MrInputMeta, MrPaymentPopupMeta, MrSelectMeta, MrSwitchCellMeta, MrTitleMeta, VantButtonMeta, VantCellMeta, VantImageMeta, VantInputMeta, VantTagMeta];
var components = [];
var npmInfo = {};
componentMetas.forEach(function (meta) {
if (Array.isArray(meta)) {
components.push.apply(components, meta.map(function (item) {
if (!item.npm) {
var componentName = item.componentName;
var names = componentName.split('.');
var exportName = names[0],
subName = names[1];
item.npm = {
exportName: exportName,
main: '',
destructuring: true,
subName: names.length > 1 ? componentName.slice(componentName.indexOf('.') + 1) : subName
};
}
item.npm = _extends({}, npmInfo, item.npm || {});
return fillRealVersion(item);
}));
} else if (meta.components) {
components.push.apply(components, meta.components.map(function (item) {
if (!item.npm) {
var componentName = item.componentName;
var names = componentName.split('.');
var exportName = names[0],
subName = names[1];
item.npm = {
exportName: exportName,
main: '',
destructuring: true,
subName: names.length > 1 ? componentName.slice(componentName.indexOf('.') + 1) : subName
};
}
item.npm = _extends({}, npmInfo, item.npm || {});
return fillRealVersion(item);
}));
} else {
if (!meta.npm) {
var componentName = meta.componentName;
var names = componentName.split('.');
var exportName = names[0],
subName = names[1];
meta.npm = {
exportName: exportName,
main: '',
destructuring: true,
subName: names.length > 1 ? componentName.slice(componentName.indexOf('.') + 1) : subName
};
}
meta.npm = _extends({}, npmInfo, meta.npm || {});
components.push(fillRealVersion(meta));
}
});
var componentList = generateComponentList(components);
export { components, componentList };
var execCompile = !!true;
if (!execCompile) {
window.MrComponentMeta = {
components: components,
componentList: componentList
};
}