mirror of https://gitee.com/xiaonuobase/snowy
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
299 lines
4.9 KiB
299 lines
4.9 KiB
/** |
|
* Copyright [2022] [https://www.xiaonuo.vip] |
|
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: |
|
* 1.请不要删除和修改根目录下的LICENSE文件。 |
|
* 2.请不要删除和修改Snowy源码头部的版权声明。 |
|
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 |
|
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip |
|
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 |
|
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip |
|
*/ |
|
function kebabCase(value) { |
|
return value |
|
.replace(/([A-Z])/g, ' $1') |
|
.trim() |
|
.split(' ') |
|
.join('-') |
|
.toLowerCase() |
|
} |
|
const antComponents = [ |
|
'Affix', |
|
'Alert', |
|
'Anchor', |
|
'AnchorLink', |
|
'AutoComplete', |
|
'AutoCompleteOptGroup', |
|
'AutoCompleteOption', |
|
'Avatar', |
|
'AvatarGroup', |
|
'BackTop', |
|
'Badge', |
|
'BadgeRibbon', |
|
'Breadcrumb', |
|
'BreadcrumbItem', |
|
'BreadcrumbSeparator', |
|
'Button', |
|
'ButtonGroup', |
|
'Calendar', |
|
'Card', |
|
'CardGrid', |
|
'CardMeta', |
|
'Carousel', |
|
'Cascader', |
|
'CheckableTag', |
|
'Checkbox', |
|
'CheckboxGroup', |
|
'Col', |
|
'Collapse', |
|
'CollapsePanel', |
|
'Comment', |
|
'ConfigProvider', |
|
'DatePicker', |
|
'Descriptions', |
|
'DescriptionsItem', |
|
'DirectoryTree', |
|
'Divider', |
|
'Drawer', |
|
'Dropdown', |
|
'DropdownButton', |
|
'Empty', |
|
'Form', |
|
'FormItem', |
|
'FormItemRest', |
|
'Image', |
|
'ImagePreviewGroup', |
|
'Input', |
|
'InputGroup', |
|
'InputNumber', |
|
'InputPassword', |
|
'InputSearch', |
|
'Layout', |
|
'LayoutContent', |
|
'LayoutFooter', |
|
'LayoutHeader', |
|
'LayoutSider', |
|
'List', |
|
'ListItem', |
|
'ListItemMeta', |
|
'LocaleProvider', |
|
'Mentions', |
|
'MentionsOption', |
|
'Menu', |
|
'MenuDivider', |
|
'MenuItem', |
|
'MenuItemGroup', |
|
'Modal', |
|
'MonthPicker', |
|
'PageHeader', |
|
'Pagination', |
|
'Popconfirm', |
|
'Popover', |
|
'Progress', |
|
'QuarterPicker', |
|
'Radio', |
|
'RadioButton', |
|
'RadioGroup', |
|
'RangePicker', |
|
'Rate', |
|
'Result', |
|
'Row', |
|
'Select', |
|
'SelectOptGroup', |
|
'SelectOption', |
|
'Skeleton', |
|
'SkeletonAvatar', |
|
'SkeletonButton', |
|
'SkeletonImage', |
|
'SkeletonInput', |
|
'Slider', |
|
'Space', |
|
'Spin', |
|
'Statistic', |
|
'StatisticCountdown', |
|
'Step', |
|
'Steps', |
|
'SubMenu', |
|
'Switch', |
|
'TabPane', |
|
'Table', |
|
'TableColumn', |
|
'TableColumnGroup', |
|
'TableSummary', |
|
'TableSummaryCell', |
|
'TableSummaryRow', |
|
'Tabs', |
|
'Tag', |
|
'Textarea', |
|
'TimePicker', |
|
'TimeRangePicker', |
|
'Timeline', |
|
'TimelineItem', |
|
'Tooltip', |
|
'Transfer', |
|
'Tree', |
|
'TreeNode', |
|
'TreeSelect', |
|
'TreeSelectNode', |
|
'Typography', |
|
'TypographyLink', |
|
'TypographyParagraph', |
|
'TypographyText', |
|
'TypographyTitle', |
|
'Upload', |
|
'UploadDragger', |
|
'WeekPicker' |
|
] |
|
const matchComponents = [ |
|
{ |
|
pattern: /^Avatar/, |
|
styleDir: 'avatar' |
|
}, |
|
{ |
|
pattern: /^AutoComplete/, |
|
styleDir: 'auto-complete' |
|
}, |
|
{ |
|
pattern: /^Anchor/, |
|
styleDir: 'anchor' |
|
}, |
|
{ |
|
pattern: /^Badge/, |
|
styleDir: 'badge' |
|
}, |
|
{ |
|
pattern: /^Breadcrumb/, |
|
styleDir: 'breadcrumb' |
|
}, |
|
{ |
|
pattern: /^Button/, |
|
styleDir: 'button' |
|
}, |
|
{ |
|
pattern: /^Checkbox/, |
|
styleDir: 'checkbox' |
|
}, |
|
{ |
|
pattern: /^Card/, |
|
styleDir: 'card' |
|
}, |
|
{ |
|
pattern: /^Collapse/, |
|
styleDir: 'collapse' |
|
}, |
|
{ |
|
pattern: /^Descriptions/, |
|
styleDir: 'descriptions' |
|
}, |
|
{ |
|
pattern: /^RangePicker|^WeekPicker|^MonthPicker|^QuarterPicker/, |
|
styleDir: 'date-picker' |
|
}, |
|
{ |
|
pattern: /^TimeRangePicker/, |
|
styleDir: 'time-picker' |
|
}, |
|
{ |
|
pattern: /^Dropdown/, |
|
styleDir: 'dropdown' |
|
}, |
|
{ |
|
pattern: /^Form/, |
|
styleDir: 'form' |
|
}, |
|
{ |
|
pattern: /^InputNumber/, |
|
styleDir: 'input-number' |
|
}, |
|
{ |
|
pattern: /^Input|^Textarea/, |
|
styleDir: 'input' |
|
}, |
|
{ |
|
pattern: /^Statistic/, |
|
styleDir: 'statistic' |
|
}, |
|
{ |
|
pattern: /^CheckableTag/, |
|
styleDir: 'tag' |
|
}, |
|
{ |
|
pattern: /^Layout/, |
|
styleDir: 'layout' |
|
}, |
|
{ |
|
pattern: /^Menu|^SubMenu/, |
|
styleDir: 'menu' |
|
}, |
|
{ |
|
pattern: /^Table/, |
|
styleDir: 'table' |
|
}, |
|
{ |
|
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: 'tree-select' |
|
}, |
|
{ |
|
pattern: /^Tree|^DirectoryTree/, |
|
styleDir: 'tree' |
|
}, |
|
{ |
|
pattern: /^Typography/, |
|
styleDir: 'typography' |
|
}, |
|
{ |
|
pattern: /^Timeline/, |
|
styleDir: 'timeline' |
|
}, |
|
{ |
|
pattern: /^Upload/, |
|
styleDir: 'upload' |
|
} |
|
] |
|
const antStyleDeps = Array.from( |
|
new Set( |
|
antComponents.map((name) => { |
|
for (let i = 0; i < matchComponents.length; i++) { |
|
if (name.match(matchComponents[i].pattern)) { |
|
return matchComponents[i].styleDir |
|
} |
|
} |
|
return kebabCase(name) |
|
}) |
|
) |
|
).map((name) => { |
|
return `ant-design-vue/es/${name}/style` |
|
}) |
|
|
|
export default antStyleDeps
|
|
|