mt-ui-components-vue3
Version:
玛果添实UI组件库(Vue3)
241 lines • 8.03 kB
JavaScript
import { AntdMatchComponents, kebabCase } from './antdv';
var matchComponents = [{
pattern: /^Avatar/,
styleDir: 'Avatar'
}, {
pattern: /^AutoComplete/,
styleDir: 'AutoComplete'
}, {
pattern: /^Anchor/,
styleDir: 'Anchor'
}, {
pattern: /^Badge/,
styleDir: 'Badge'
}, {
pattern: /^Breadcrumb/,
styleDir: 'Breadcrumb'
}, {
pattern: /^Button/,
styleDir: 'Button'
}, {
pattern: /^Checkbox/,
styleDir: 'Checkbox'
}, {
pattern: /^CardSelect/,
styleDir: 'CardSelect'
}, {
pattern: /^Card/,
styleDir: 'Card'
}, {
pattern: /^Collapse/,
styleDir: 'Collapse'
}, {
pattern: /^Descriptions/,
styleDir: 'Descriptions'
}, {
pattern: /^RangePicker|^WeekPicker|^MonthPicker/,
styleDir: 'DatePicker'
}, {
pattern: /^Dropdown/,
styleDir: 'Dropdown'
}, {
pattern: /^Form/,
styleDir: 'Form'
}, {
pattern: /^InputNumber/,
styleDir: 'InputNumber'
}, {
pattern: /^Input|^Textarea/,
styleDir: 'Input'
}, {
pattern: /^Statistic/,
styleDir: 'Statistic'
}, {
pattern: /^CheckableTag/,
styleDir: 'Tag'
}, {
pattern: /^TimeRangePicker/,
styleDir: 'TimePicker'
}, {
pattern: /^Layout/,
styleDir: 'Layout'
}, {
pattern: /^Menu|^SubMenu/,
styleDir: 'Menu'
}, {
pattern: /^Table/,
styleDir: 'Table'
}, {
pattern: /^TimePicker|^TimeRangePicker/,
styleDir: 'TimePicker'
}, {
pattern: /^Radio/,
styleDir: 'Radio'
}, {
pattern: /^Image/,
styleDir: 'Image'
}, {
pattern: /^List/,
styleDir: 'List'
}, {
pattern: /^Tab/,
styleDir: 'Tabs'
}, {
pattern: /^Mentions/,
styleDir: 'Mentions'
}, {
pattern: /^Step/,
styleDir: 'Steps'
}, {
pattern: /^Skeleton/,
styleDir: 'Skeleton'
}, {
pattern: /^Select/,
styleDir: 'Select'
}, {
pattern: /^TreeSelect/,
styleDir: 'TreeSelect'
}, {
pattern: /^Tree|^DirectoryTree/,
styleDir: 'Tree'
}, {
pattern: /^Typography/,
styleDir: 'Typography'
}, {
pattern: /^Timeline/,
styleDir: 'Timeline'
}, {
pattern: /^Upload/,
styleDir: 'Upload'
}, {
pattern: /^ProTable/,
styleDir: 'ProTable'
}, {
pattern: /^Search|^AdvancedSearch/,
styleDir: 'Search'
}, {
pattern: /^Ellipsis/,
styleDir: 'Ellipsis'
}, {
pattern: /^MonacoEditor/,
styleDir: 'MonacoEditor'
}, {
pattern: /^ProLayout/,
styleDir: 'ProLayout'
}, {
pattern: /^ScrollTable/,
styleDir: 'ScrollTable'
}, {
pattern: /^TableCard/,
styleDir: 'TableCard'
}, {
pattern: /^Scrollbar/,
styleDir: 'Scrollbar'
}, {
pattern: /^AIcon/,
styleDir: 'AIcon'
}, {
pattern: /^Tooltip/,
styleDir: 'Tooltip'
}, {
pattern: /^Empty/,
styleDir: 'Empty'
}, {
pattern: /^Popconfirm/,
styleDir: 'Popconfirm'
}, {
pattern: /^message/,
styleDir: 'Message'
}, {
pattern: /^Notification/,
styleDir: 'Notification'
}];
function getStyleDir(compName) {
var _isAntd = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
var styleDir;
var components = _isAntd ? AntdMatchComponents : matchComponents;
var total = components.length;
for (var i = 0; i < total; i++) {
var matcher = components[i];
if (compName.match(matcher.pattern)) {
styleDir = matcher.styleDir;
break;
}
}
if (!styleDir) styleDir = _isAntd ? kebabCase(compName) : compName;
return styleDir;
}
function getSideEffects(compName, options) {
var _isAntd = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var _options$importStyle = options.importStyle,
importStyle = _options$importStyle === void 0 ? true : _options$importStyle,
_options$importLess = options.importLess,
importLess = _options$importLess === void 0 ? false : _options$importLess;
if (!importStyle) return;
var lib = options.cjs ? 'lib' : 'es';
var packageName = (options === null || options === void 0 ? void 0 : options.packageName) || 'jetlinks-ui-components';
if (importStyle === 'less' || importLess) {
var styleDir = getStyleDir(compName, _isAntd);
return "".concat(packageName, "/").concat(lib, "/").concat(styleDir, "/style");
} else {
var _styleDir = getStyleDir(compName, _isAntd);
return "".concat(packageName, "/").concat(lib, "/").concat(_styleDir, "/style/css");
}
}
var filterName = ['message', 'Notification', 'AIcon'];
var primitiveNames = ['Affix', 'Anchor', 'AnchorLink', 'message', 'Notification', 'AutoComplete', 'AutoCompleteOptGroup', 'AutoCompleteOption', 'Alert', 'Avatar', 'AvatarGroup', 'BackTop', 'Badge', 'BadgeRibbon', 'Breadcrumb', 'BreadcrumbItem', 'BreadcrumbSeparator', 'Button', 'ButtonGroup', 'Calendar', 'Card', 'CardGrid', 'CardMeta', 'Collapse', 'CollapsePanel', 'Carousel', 'Cascader', 'Checkbox', 'CheckboxGroup', 'Col', 'Comment', 'ConfigProvider', 'DatePicker', 'MonthPicker', 'WeekPicker', 'RangePicker', 'QuarterPicker', 'Descriptions', 'DescriptionsItem', 'Divider', 'Dropdown', 'DropdownButton', 'Drawer', 'Empty', 'Form', 'FormItem', 'FormItemRest', 'Grid', 'Input', 'InputGroup', 'InputPassword', 'InputSearch', 'Textarea', 'Image', 'ImagePreviewGroup', 'InputNumber', 'Layout', 'LayoutHeader', 'LayoutSider', 'LayoutFooter', 'LayoutContent', 'List', 'ListItem', 'ListItemMeta', 'Menu', 'MenuDivider', 'MenuItem', 'MenuItemGroup', 'SubMenu', 'Mentions', 'MentionsOption', 'Modal', 'Statistic', 'StatisticCountdown', 'PageHeader', 'Pagination', 'Popconfirm', 'Popover', 'Progress', 'Radio', 'RadioButton', 'RadioGroup', 'Rate', 'Result', 'Row', 'Select', 'SelectOptGroup', 'SelectOption', 'Skeleton', 'SkeletonButton', 'SkeletonAvatar', 'SkeletonInput', 'SkeletonImage', 'Slider', 'Space', 'Spin', 'Steps', 'Step', 'Switch', 'Table', 'TableColumn', 'TableColumnGroup', 'TableSummary', 'TableSummaryRow', 'TableSummaryCell', 'Transfer', 'Tree', 'TreeNode', 'DirectoryTree', 'TreeSelect', 'TreeSelectNode', 'Tabs', 'TabPane', 'Tag', 'CheckableTag', 'TimePicker', 'TimeRangePicker', 'Timeline', 'TimelineItem', 'Tooltip', 'Typography', 'TypographyLink', 'TypographyParagraph', 'TypographyText', 'TypographyTitle', 'Upload', 'UploadDragger', 'LocaleProvider', 'ProTable', 'Search', 'AdvancedSearch', 'Ellipsis', 'MonacoEditor', 'ProLayout', 'ScrollTable', 'TableCard', 'Scrollbar', 'CardSelect', 'ColorPicker'];
var prefix = 'J';
var jetlinksNames;
function genJetlinksNames(primitiveNames) {
jetlinksNames = new Set(primitiveNames.map(function (name) {
return filterName.includes(name) ? name : "".concat(prefix).concat(name);
}));
}
var antdvNames;
function genAntdNames(primitiveNames) {
antdvNames = new Set(primitiveNames.map(function (name) {
return "A".concat(name);
}));
}
genAntdNames(primitiveNames.filter(function (key) {
return !filterName.includes(key);
}));
genJetlinksNames(primitiveNames);
function isJetlinks(compName) {
return jetlinksNames.has(compName);
}
function isAntdv(compName) {
return antdvNames.has(compName);
}
function JetlinksVueResolver() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return {
type: 'component',
resolve: function resolve(name) {
var _options$exclude;
if (options.resolveIcons && name.match(/(Outlined|Filled|TwoTone)$/)) {
return {
name: name,
from: '@ant-design/icons-vue'
};
}
var _isJetlinks = isJetlinks(name);
var _isAntd = isAntdv(name);
if ((_isJetlinks || _isAntd) && !(options !== null && options !== void 0 && (_options$exclude = options.exclude) !== null && _options$exclude !== void 0 && _options$exclude.includes(name))) {
var importName = filterName.includes(name) ? name : name.slice(1);
options.packageName = _isJetlinks ? 'jetlinks-ui-components' : 'ant-design-vue';
var path = "".concat(options.packageName, "/").concat(options.cjs ? 'lib' : 'es');
var stylePath = getSideEffects(importName, options, _isAntd);
if (_isJetlinks) {
console.log(name, importName, stylePath);
}
return {
name: importName,
from: path,
sideEffects: stylePath
};
}
}
};
}
export default JetlinksVueResolver;