@vrx-arco/nuxt
Version:
<p align="center"> <img src="https://vrx-arco.github.io/arco-design-pro/favicon.svg" width="200" height="250"> </p>
2,005 lines (1,997 loc) • 47.1 kB
JavaScript
import { createRequire } from "node:module";
import { addComponent, defineNuxtModule, extendViteConfig } from "@nuxt/kit";
import { dirname } from "node:path";
import { ProComponentsConstant } from "@vrx-arco/helper";
import { ColorPickerConstant } from "@vrx-arco/color-picker-import-resolver";
import { componentStyle } from "@vrx-cp/nuxt-utils";
import { kebabCase } from "scule";
//#region src/transpile.ts
const require = createRequire(import.meta.url);
const transpileNoSSRFriendly = (nuxt) => {
nuxt.options.build.transpile ||= [];
nuxt.options.build.transpile.push(/@arco-design\/web-vue/);
nuxt.options.build.transpile.push("@vrx-arco/pro-components");
nuxt.options.alias ||= {};
const dayjsAlias = dirname(require.resolve("dayjs/esm"));
nuxt.options.alias["dayjs/esm"] = dayjsAlias;
nuxt.options.alias.dayjs = dayjsAlias;
};
//#endregion
//#region src/config.ts
const arco = [
{
filePath: "@arco-design/web-vue/es/affix/index.js",
name: "Affix"
},
{
filePath: "@arco-design/web-vue/es/alert/index.js",
name: "Alert"
},
{
filePath: "@arco-design/web-vue/es/anchor/index.js",
name: "Anchor"
},
{
filePath: "@arco-design/web-vue/es/auto-complete/index.js",
name: "AutoComplete"
},
{
filePath: "@arco-design/web-vue/es/avatar/index.js",
name: "Avatar"
},
{
filePath: "@arco-design/web-vue/es/back-top/index.js",
name: "BackTop"
},
{
filePath: "@arco-design/web-vue/es/badge/index.js",
name: "Badge"
},
{
filePath: "@arco-design/web-vue/es/breadcrumb/index.js",
name: "Breadcrumb"
},
{
filePath: "@arco-design/web-vue/es/button/index.js",
name: "Button"
},
{
filePath: "@arco-design/web-vue/es/card/index.js",
name: "Card"
},
{
filePath: "@arco-design/web-vue/es/calendar/index.js",
name: "Calendar"
},
{
filePath: "@arco-design/web-vue/es/carousel/index.js",
name: "Carousel"
},
{
filePath: "@arco-design/web-vue/es/cascader/index.js",
name: "Cascader"
},
{
filePath: "@arco-design/web-vue/es/checkbox/index.js",
name: "Checkbox"
},
{
filePath: "@arco-design/web-vue/es/collapse/index.js",
name: "Collapse"
},
{
filePath: "@arco-design/web-vue/es/comment/index.js",
name: "Comment"
},
{
filePath: "@arco-design/web-vue/es/color-picker/index.js",
name: "ColorPicker"
},
{
filePath: "@arco-design/web-vue/es/config-provider/index.js",
name: "ConfigProvider"
},
{
filePath: "@arco-design/web-vue/es/date-picker/index.js",
name: "DatePicker"
},
{
filePath: "@arco-design/web-vue/es/descriptions/index.js",
name: "Descriptions"
},
{
filePath: "@arco-design/web-vue/es/divider/index.js",
name: "Divider"
},
{
filePath: "@arco-design/web-vue/es/drawer/index.js",
name: "Drawer"
},
{
filePath: "@arco-design/web-vue/es/dropdown/index.js",
name: "Dropdown"
},
{
filePath: "@arco-design/web-vue/es/empty/index.js",
name: "Empty"
},
{
filePath: "@arco-design/web-vue/es/form/index.js",
name: "Form"
},
{
filePath: "@arco-design/web-vue/es/grid/index.js",
name: "Grid"
},
{
filePath: "@arco-design/web-vue/es/icon-component/index.js",
name: "Icon"
},
{
filePath: "@arco-design/web-vue/es/image/index.js",
name: "Image"
},
{
filePath: "@arco-design/web-vue/es/input/index.js",
name: "Input"
},
{
filePath: "@arco-design/web-vue/es/input-number/index.js",
name: "InputNumber"
},
{
filePath: "@arco-design/web-vue/es/input-tag/index.js",
name: "InputTag"
},
{
filePath: "@arco-design/web-vue/es/layout/index.js",
name: "Layout"
},
{
filePath: "@arco-design/web-vue/es/link/index.js",
name: "Link"
},
{
filePath: "@arco-design/web-vue/es/list/index.js",
name: "List"
},
{
filePath: "@arco-design/web-vue/es/mention/index.js",
name: "Mention"
},
{
filePath: "@arco-design/web-vue/es/menu/index.js",
name: "Menu"
},
{
filePath: "@arco-design/web-vue/es/message/index.js",
name: "Message"
},
{
filePath: "@arco-design/web-vue/es/modal/index.js",
name: "Modal"
},
{
filePath: "@arco-design/web-vue/es/notification/index.js",
name: "Notification"
},
{
filePath: "@arco-design/web-vue/es/page-header/index.js",
name: "PageHeader"
},
{
filePath: "@arco-design/web-vue/es/pagination/index.js",
name: "Pagination"
},
{
filePath: "@arco-design/web-vue/es/popconfirm/index.js",
name: "Popconfirm"
},
{
filePath: "@arco-design/web-vue/es/popover/index.js",
name: "Popover"
},
{
filePath: "@arco-design/web-vue/es/progress/index.js",
name: "Progress"
},
{
filePath: "@arco-design/web-vue/es/radio/index.js",
name: "Radio"
},
{
filePath: "@arco-design/web-vue/es/rate/index.js",
name: "Rate"
},
{
filePath: "@arco-design/web-vue/es/resize-box/index.js",
name: "ResizeBox"
},
{
filePath: "@arco-design/web-vue/es/result/index.js",
name: "Result"
},
{
filePath: "@arco-design/web-vue/es/scrollbar/index.js",
name: "Scrollbar"
},
{
filePath: "@arco-design/web-vue/es/select/index.js",
name: "Select"
},
{
filePath: "@arco-design/web-vue/es/skeleton/index.js",
name: "Skeleton"
},
{
filePath: "@arco-design/web-vue/es/slider/index.js",
name: "Slider"
},
{
filePath: "@arco-design/web-vue/es/space/index.js",
name: "Space"
},
{
filePath: "@arco-design/web-vue/es/spin/index.js",
name: "Spin"
},
{
filePath: "@arco-design/web-vue/es/split/index.js",
name: "Split"
},
{
filePath: "@arco-design/web-vue/es/statistic/index.js",
name: "Statistic"
},
{
filePath: "@arco-design/web-vue/es/steps/index.js",
name: "Steps"
},
{
filePath: "@arco-design/web-vue/es/switch/index.js",
name: "Switch"
},
{
filePath: "@arco-design/web-vue/es/table/index.js",
name: "Table"
},
{
filePath: "@arco-design/web-vue/es/tabs/index.js",
name: "Tabs"
},
{
filePath: "@arco-design/web-vue/es/tag/index.js",
name: "Tag"
},
{
filePath: "@arco-design/web-vue/es/textarea/index.js",
name: "Textarea"
},
{
filePath: "@arco-design/web-vue/es/time-picker/index.js",
name: "TimePicker"
},
{
filePath: "@arco-design/web-vue/es/timeline/index.js",
name: "Timeline"
},
{
filePath: "@arco-design/web-vue/es/tooltip/index.js",
name: "Tooltip"
},
{
filePath: "@arco-design/web-vue/es/transfer/index.js",
name: "Transfer"
},
{
filePath: "@arco-design/web-vue/es/tree/index.js",
name: "Tree"
},
{
filePath: "@arco-design/web-vue/es/tree-select/index.js",
name: "TreeSelect"
},
{
filePath: "@arco-design/web-vue/es/trigger/index.js",
name: "Trigger"
},
{
filePath: "@arco-design/web-vue/es/typography/index.js",
name: "Typography"
},
{
filePath: "@arco-design/web-vue/es/upload/index.js",
name: "Upload"
},
{
filePath: "@arco-design/web-vue/es/overflow-list/index.js",
name: "OverflowList"
},
{
filePath: "@arco-design/web-vue/es/verification-code/index.js",
name: "VerificationCode"
},
{
filePath: "@arco-design/web-vue/es/watermark/index.js",
name: "Watermark"
},
{
filePath: "@arco-design/web-vue/es/anchor/anchor-link.js",
name: "AnchorLink"
},
{
filePath: "@arco-design/web-vue/es/avatar/avatar-group.js",
name: "AvatarGroup"
},
{
filePath: "@arco-design/web-vue/es/breadcrumb/breadcrumb-item.js",
name: "BreadcrumbItem"
},
{
filePath: "@arco-design/web-vue/es/button/button-group.js",
name: "ButtonGroup"
},
{
filePath: "@arco-design/web-vue/es/card/card-grid.js",
name: "CardGrid"
},
{
filePath: "@arco-design/web-vue/es/card/card-meta.js",
name: "CardMeta"
},
{
filePath: "@arco-design/web-vue/es/carousel/carousel-item.js",
name: "CarouselItem"
},
{
filePath: "@arco-design/web-vue/es/cascader/cascader-panel.js",
name: "CascaderPanel"
},
{
filePath: "@arco-design/web-vue/es/checkbox/checkbox-group.js",
name: "CheckboxGroup"
},
{
filePath: "@arco-design/web-vue/es/collapse/collapse-item.js",
name: "CollapseItem"
},
{
filePath: "@arco-design/web-vue/es/date-picker/pickers/month-picker.js",
name: "MonthPicker"
},
{
filePath: "@arco-design/web-vue/es/date-picker/pickers/quarter-picker.js",
name: "QuarterPicker"
},
{
filePath: "@arco-design/web-vue/es/date-picker/pickers/week-picker.js",
name: "WeekPicker"
},
{
filePath: "@arco-design/web-vue/es/date-picker/pickers/year-picker.js",
name: "YearPicker"
},
{
filePath: "@arco-design/web-vue/es/date-picker/range-picker.js",
name: "RangePicker"
},
{
filePath: "@arco-design/web-vue/es/descriptions/descriptions-item.js",
name: "DescriptionsItem"
},
{
filePath: "@arco-design/web-vue/es/dropdown/dropdown-group.js",
name: "Dgroup"
},
{
filePath: "@arco-design/web-vue/es/dropdown/dropdown-option.js",
name: "Doption"
},
{
filePath: "@arco-design/web-vue/es/dropdown/dropdown-button.js",
name: "DropdownButton"
},
{
filePath: "@arco-design/web-vue/es/dropdown/dropdown-submenu.js",
name: "Dsubmenu"
},
{
filePath: "@arco-design/web-vue/es/form/form-item.js",
name: "FormItem"
},
{
filePath: "@arco-design/web-vue/es/grid/grid-col.js",
name: "Col"
},
{
filePath: "@arco-design/web-vue/es/grid/grid-row.js",
name: "Row"
},
{
filePath: "@arco-design/web-vue/es/grid/grid-item.js",
name: "GridItem"
},
{
filePath: "@arco-design/web-vue/es/image/preview-action.js",
name: "ImagePreviewAction"
},
{
filePath: "@arco-design/web-vue/es/image/preview.js",
name: "ImagePreview"
},
{
filePath: "@arco-design/web-vue/es/image/preview-group.js",
name: "ImagePreviewGroup"
},
{
filePath: "@arco-design/web-vue/es/input/input-group.js",
name: "InputGroup"
},
{
filePath: "@arco-design/web-vue/es/input/input-password.js",
name: "InputPassword"
},
{
filePath: "@arco-design/web-vue/es/input/input-search.js",
name: "InputSearch"
},
{
filePath: "@arco-design/web-vue/es/layout/content.js",
name: "LayoutContent"
},
{
filePath: "@arco-design/web-vue/es/layout/footer.js",
name: "LayoutFooter"
},
{
filePath: "@arco-design/web-vue/es/layout/header.js",
name: "LayoutHeader"
},
{
filePath: "@arco-design/web-vue/es/layout/sider.js",
name: "LayoutSider"
},
{
filePath: "@arco-design/web-vue/es/list/list-item.js",
name: "ListItem"
},
{
filePath: "@arco-design/web-vue/es/list/list-item-meta.js",
name: "ListItemMeta"
},
{
filePath: "@arco-design/web-vue/es/menu/item.js",
name: "MenuItem"
},
{
filePath: "@arco-design/web-vue/es/menu/item-group.js",
name: "MenuItemGroup"
},
{
filePath: "@arco-design/web-vue/es/menu/sub-menu.js",
name: "SubMenu"
},
{
filePath: "@arco-design/web-vue/es/radio/radio-group.js",
name: "RadioGroup"
},
{
filePath: "@arco-design/web-vue/es/select/optgroup.js",
name: "Optgroup"
},
{
filePath: "@arco-design/web-vue/es/select/option.js",
name: "Option"
},
{
filePath: "@arco-design/web-vue/es/skeleton/line.js",
name: "SkeletonLine"
},
{
filePath: "@arco-design/web-vue/es/skeleton/shape.js",
name: "SkeletonShape"
},
{
filePath: "@arco-design/web-vue/es/statistic/countdown.js",
name: "Countdown"
},
{
filePath: "@arco-design/web-vue/es/steps/step.js",
name: "Step"
},
{
filePath: "@arco-design/web-vue/es/table/table-thead.js",
name: "Thead"
},
{
filePath: "@arco-design/web-vue/es/table/table-td.js",
name: "Td"
},
{
filePath: "@arco-design/web-vue/es/table/table-th.js",
name: "Th"
},
{
filePath: "@arco-design/web-vue/es/table/table-tr.js",
name: "Tr"
},
{
filePath: "@arco-design/web-vue/es/table/table-tbody.js",
name: "Tbody"
},
{
filePath: "@arco-design/web-vue/es/table/table-column.js",
name: "TableColumn"
},
{
filePath: "@arco-design/web-vue/es/tabs/tab-pane.js",
name: "TabPane"
},
{
filePath: "@arco-design/web-vue/es/timeline/item.js",
name: "TimelineItem"
},
{
filePath: "@arco-design/web-vue/es/typography/paragraph.js",
name: "TypographyParagraph"
},
{
filePath: "@arco-design/web-vue/es/typography/text.js",
name: "TypographyText"
},
{
filePath: "@arco-design/web-vue/es/typography/title.js",
name: "TypographyTitle"
}
];
const vrxArco = [
"AvatarDropDown",
"EditFormDialog",
"FormGrid",
"FormGridItem",
"LoginForm",
"LoginPage",
"ProCardList",
"ProCardMeta",
"ProList",
"ProPagination",
"SearchBar",
"SearchBarItem",
"SearchLayout",
"SearchLayoutContent",
"SearchLayoutHeader",
"SpaceDivider",
"ThemeDarkLight",
"ToggleFullScreen"
];
const arcoIcon = [
{
filePath: "@arco-design/web-vue/es/icon/icon-arrow-down/index.js",
name: "IconArrowDown"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-arrow-fall/index.js",
name: "IconArrowFall"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-arrow-left/index.js",
name: "IconArrowLeft"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-arrow-right/index.js",
name: "IconArrowRight"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-arrow-rise/index.js",
name: "IconArrowRise"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-arrow-up/index.js",
name: "IconArrowUp"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-caret-down/index.js",
name: "IconCaretDown"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-caret-left/index.js",
name: "IconCaretLeft"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-caret-right/index.js",
name: "IconCaretRight"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-caret-up/index.js",
name: "IconCaretUp"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-double-down/index.js",
name: "IconDoubleDown"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-double-left/index.js",
name: "IconDoubleLeft"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-double-right/index.js",
name: "IconDoubleRight"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-double-up/index.js",
name: "IconDoubleUp"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-down-circle/index.js",
name: "IconDownCircle"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-down/index.js",
name: "IconDown"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-drag-arrow/index.js",
name: "IconDragArrow"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-expand/index.js",
name: "IconExpand"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-left-circle/index.js",
name: "IconLeftCircle"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-left/index.js",
name: "IconLeft"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-menu-fold/index.js",
name: "IconMenuFold"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-menu-unfold/index.js",
name: "IconMenuUnfold"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-right-circle/index.js",
name: "IconRightCircle"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-right/index.js",
name: "IconRight"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-rotate-left/index.js",
name: "IconRotateLeft"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-rotate-right/index.js",
name: "IconRotateRight"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-shrink/index.js",
name: "IconShrink"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-swap/index.js",
name: "IconSwap"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-to-bottom/index.js",
name: "IconToBottom"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-to-left/index.js",
name: "IconToLeft"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-to-right/index.js",
name: "IconToRight"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-to-top/index.js",
name: "IconToTop"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-up-circle/index.js",
name: "IconUpCircle"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-up/index.js",
name: "IconUp"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-check-circle-fill/index.js",
name: "IconCheckCircleFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-close-circle-fill/index.js",
name: "IconCloseCircleFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-exclamation-circle-fill/index.js",
name: "IconExclamationCircleFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-exclamation-polygon-fill/index.js",
name: "IconExclamationPolygonFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-info-circle-fill/index.js",
name: "IconInfoCircleFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-minus-circle-fill/index.js",
name: "IconMinusCircleFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-plus-circle-fill/index.js",
name: "IconPlusCircleFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-question-circle-fill/index.js",
name: "IconQuestionCircleFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-check-circle/index.js",
name: "IconCheckCircle"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-check-square/index.js",
name: "IconCheckSquare"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-check/index.js",
name: "IconCheck"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-clock-circle/index.js",
name: "IconClockCircle"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-close-circle/index.js",
name: "IconCloseCircle"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-close/index.js",
name: "IconClose"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-exclamation-circle/index.js",
name: "IconExclamationCircle"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-exclamation/index.js",
name: "IconExclamation"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-info-circle/index.js",
name: "IconInfoCircle"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-info/index.js",
name: "IconInfo"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-minus-circle/index.js",
name: "IconMinusCircle"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-minus/index.js",
name: "IconMinus"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-plus-circle/index.js",
name: "IconPlusCircle"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-plus/index.js",
name: "IconPlus"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-question-circle/index.js",
name: "IconQuestionCircle"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-question/index.js",
name: "IconQuestion"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-stop/index.js",
name: "IconStop"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-heart-fill/index.js",
name: "IconHeartFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-star-fill/index.js",
name: "IconStarFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-thumb-down-fill/index.js",
name: "IconThumbDownFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-thumb-up-fill/index.js",
name: "IconThumbUpFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-at/index.js",
name: "IconAt"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-cloud-download/index.js",
name: "IconCloudDownload"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-code-block/index.js",
name: "IconCodeBlock"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-code-square/index.js",
name: "IconCodeSquare"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-code/index.js",
name: "IconCode"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-customer-service/index.js",
name: "IconCustomerService"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-download/index.js",
name: "IconDownload"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-export/index.js",
name: "IconExport"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-eye-invisible/index.js",
name: "IconEyeInvisible"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-eye/index.js",
name: "IconEye"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-heart/index.js",
name: "IconHeart"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-history/index.js",
name: "IconHistory"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-home/index.js",
name: "IconHome"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-import/index.js",
name: "IconImport"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-launch/index.js",
name: "IconLaunch"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-list/index.js",
name: "IconList"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-message-banned/index.js",
name: "IconMessageBanned"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-message/index.js",
name: "IconMessage"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-more-vertical/index.js",
name: "IconMoreVertical"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-more/index.js",
name: "IconMore"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-poweroff/index.js",
name: "IconPoweroff"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-refresh/index.js",
name: "IconRefresh"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-reply/index.js",
name: "IconReply"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-save/index.js",
name: "IconSave"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-scan/index.js",
name: "IconScan"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-search/index.js",
name: "IconSearch"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-select-all/index.js",
name: "IconSelectAll"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-send/index.js",
name: "IconSend"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-settings/index.js",
name: "IconSettings"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-share-alt/index.js",
name: "IconShareAlt"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-share-external/index.js",
name: "IconShareExternal"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-share-internal/index.js",
name: "IconShareInternal"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-star/index.js",
name: "IconStar"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-sync/index.js",
name: "IconSync"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-thumb-down/index.js",
name: "IconThumbDown"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-thumb-up/index.js",
name: "IconThumbUp"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-translate/index.js",
name: "IconTranslate"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-upload/index.js",
name: "IconUpload"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-voice/index.js",
name: "IconVoice"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-align-center/index.js",
name: "IconAlignCenter"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-align-left/index.js",
name: "IconAlignLeft"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-align-right/index.js",
name: "IconAlignRight"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-attachment/index.js",
name: "IconAttachment"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-bg-colors/index.js",
name: "IconBgColors"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-bold/index.js",
name: "IconBold"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-brush/index.js",
name: "IconBrush"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-copy/index.js",
name: "IconCopy"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-delete/index.js",
name: "IconDelete"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-edit/index.js",
name: "IconEdit"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-eraser/index.js",
name: "IconEraser"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-filter/index.js",
name: "IconFilter"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-find-replace/index.js",
name: "IconFindReplace"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-font-colors/index.js",
name: "IconFontColors"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-formula/index.js",
name: "IconFormula"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-h1/index.js",
name: "IconH1"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-h2/index.js",
name: "IconH2"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-h3/index.js",
name: "IconH3"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-h4/index.js",
name: "IconH4"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-h5/index.js",
name: "IconH5"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-h6/index.js",
name: "IconH6"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-h7/index.js",
name: "IconH7"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-highlight/index.js",
name: "IconHighlight"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-italic/index.js",
name: "IconItalic"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-line-height/index.js",
name: "IconLineHeight"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-link/index.js",
name: "IconLink"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-oblique-line/index.js",
name: "IconObliqueLine"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-ordered-list/index.js",
name: "IconOrderedList"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-original-size/index.js",
name: "IconOriginalSize"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-paste/index.js",
name: "IconPaste"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-quote/index.js",
name: "IconQuote"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-redo/index.js",
name: "IconRedo"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-scissor/index.js",
name: "IconScissor"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-sort-ascending/index.js",
name: "IconSortAscending"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-sort-descending/index.js",
name: "IconSortDescending"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-sort/index.js",
name: "IconSort"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-strikethrough/index.js",
name: "IconStrikethrough"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-underline/index.js",
name: "IconUnderline"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-undo/index.js",
name: "IconUndo"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-unordered-list/index.js",
name: "IconUnorderedList"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-zoom-in/index.js",
name: "IconZoomIn"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-zoom-out/index.js",
name: "IconZoomOut"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-mute-fill/index.js",
name: "IconMuteFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-pause-circle-fill/index.js",
name: "IconPauseCircleFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-play-arrow-fill/index.js",
name: "IconPlayArrowFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-play-circle-fill/index.js",
name: "IconPlayCircleFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-skip-next-fill/index.js",
name: "IconSkipNextFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-skip-previous-fill/index.js",
name: "IconSkipPreviousFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-sound-fill/index.js",
name: "IconSoundFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-backward/index.js",
name: "IconBackward"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-forward/index.js",
name: "IconForward"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-fullscreen-exit/index.js",
name: "IconFullscreenExit"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-fullscreen/index.js",
name: "IconFullscreen"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-live-broadcast/index.js",
name: "IconLiveBroadcast"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-music/index.js",
name: "IconMusic"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-mute/index.js",
name: "IconMute"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-pause-circle/index.js",
name: "IconPauseCircle"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-pause/index.js",
name: "IconPause"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-play-arrow/index.js",
name: "IconPlayArrow"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-play-circle/index.js",
name: "IconPlayCircle"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-record-stop/index.js",
name: "IconRecordStop"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-record/index.js",
name: "IconRecord"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-skip-next/index.js",
name: "IconSkipNext"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-skip-previous/index.js",
name: "IconSkipPrevious"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-sound/index.js",
name: "IconSound"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-bytedance-color/index.js",
name: "IconBytedanceColor"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-lark-color/index.js",
name: "IconLarkColor"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-tiktok-color/index.js",
name: "IconTiktokColor"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-xigua-color/index.js",
name: "IconXiguaColor"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-faceBook-circle-fill/index.js",
name: "IconFaceBookCircleFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-facebook-square-fill/index.js",
name: "IconFacebookSquareFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-google-circle-fill/index.js",
name: "IconGoogleCircleFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-qq-circle-fill/index.js",
name: "IconQqCircleFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-twitter-circle-fill/index.js",
name: "IconTwitterCircleFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-weibo-circle-fill/index.js",
name: "IconWeiboCircleFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-alipay-circle/index.js",
name: "IconAlipayCircle"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-code-sandbox/index.js",
name: "IconCodeSandbox"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-codepen/index.js",
name: "IconCodepen"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-facebook/index.js",
name: "IconFacebook"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-github/index.js",
name: "IconGithub"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-gitlab/index.js",
name: "IconGitlab"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-google/index.js",
name: "IconGoogle"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-qq-zone/index.js",
name: "IconQqZone"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-qq/index.js",
name: "IconQq"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-twitter/index.js",
name: "IconTwitter"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-wechat/index.js",
name: "IconWechat"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-wechatpay/index.js",
name: "IconWechatpay"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-weibo/index.js",
name: "IconWeibo"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-chinese-fill/index.js",
name: "IconChineseFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-english-fill/index.js",
name: "IconEnglishFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-face-frown-fill/index.js",
name: "IconFaceFrownFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-face-meh-fill/index.js",
name: "IconFaceMehFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-face-smile-fill/index.js",
name: "IconFaceSmileFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-moon-fill/index.js",
name: "IconMoonFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-pen-fill/index.js",
name: "IconPenFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-sun-fill/index.js",
name: "IconSunFill"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-apps/index.js",
name: "IconApps"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-archive/index.js",
name: "IconArchive"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-bar-chart/index.js",
name: "IconBarChart"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-book/index.js",
name: "IconBook"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-bookmark/index.js",
name: "IconBookmark"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-branch/index.js",
name: "IconBranch"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-bug/index.js",
name: "IconBug"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-bulb/index.js",
name: "IconBulb"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-calendar-clock/index.js",
name: "IconCalendarClock"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-calendar/index.js",
name: "IconCalendar"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-camera/index.js",
name: "IconCamera"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-cloud/index.js",
name: "IconCloud"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-command/index.js",
name: "IconCommand"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-common/index.js",
name: "IconCommon"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-compass/index.js",
name: "IconCompass"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-computer/index.js",
name: "IconComputer"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-copyright/index.js",
name: "IconCopyright"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-dashboard/index.js",
name: "IconDashboard"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-desktop/index.js",
name: "IconDesktop"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-dice/index.js",
name: "IconDice"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-drag-dot-vertical/index.js",
name: "IconDragDotVertical"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-drag-dot/index.js",
name: "IconDragDot"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-drive-file/index.js",
name: "IconDriveFile"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-ear/index.js",
name: "IconEar"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-email/index.js",
name: "IconEmail"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-empty/index.js",
name: "IconEmpty"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-experiment/index.js",
name: "IconExperiment"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-file-audio/index.js",
name: "IconFileAudio"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-file-image/index.js",
name: "IconFileImage"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-file-pdf/index.js",
name: "IconFilePdf"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-file-video/index.js",
name: "IconFileVideo"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-file/index.js",
name: "IconFile"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-fire/index.js",
name: "IconFire"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-folder-add/index.js",
name: "IconFolderAdd"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-folder-delete/index.js",
name: "IconFolderDelete"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-folder/index.js",
name: "IconFolder"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-gift/index.js",
name: "IconGift"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-idcard/index.js",
name: "IconIdcard"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-image-close/index.js",
name: "IconImageClose"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-image/index.js",
name: "IconImage"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-interaction/index.js",
name: "IconInteraction"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-language/index.js",
name: "IconLanguage"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-layers/index.js",
name: "IconLayers"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-layout/index.js",
name: "IconLayout"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-loading/index.js",
name: "IconLoading"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-location/index.js",
name: "IconLocation"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-lock/index.js",
name: "IconLock"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-loop/index.js",
name: "IconLoop"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-man/index.js",
name: "IconMan"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-menu/index.js",
name: "IconMenu"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-mind-mapping/index.js",
name: "IconMindMapping"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-mobile/index.js",
name: "IconMobile"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-moon/index.js",
name: "IconMoon"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-mosaic/index.js",
name: "IconMosaic"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-nav/index.js",
name: "IconNav"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-notification-close/index.js",
name: "IconNotificationClose"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-notification/index.js",
name: "IconNotification"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-palette/index.js",
name: "IconPalette"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-pen/index.js",
name: "IconPen"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-phone/index.js",
name: "IconPhone"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-printer/index.js",
name: "IconPrinter"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-public/index.js",
name: "IconPublic"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-pushpin/index.js",
name: "IconPushpin"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-qrcode/index.js",
name: "IconQrcode"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-relation/index.js",
name: "IconRelation"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-robot-add/index.js",
name: "IconRobotAdd"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-robot/index.js",
name: "IconRobot"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-safe/index.js",
name: "IconSafe"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-schedule/index.js",
name: "IconSchedule"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-shake/index.js",
name: "IconShake"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-skin/index.js",
name: "IconSkin"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-stamp/index.js",
name: "IconStamp"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-storage/index.js",
name: "IconStorage"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-subscribe-add/index.js",
name: "IconSubscribeAdd"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-subscribe/index.js",
name: "IconSubscribe"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-subscribed/index.js",
name: "IconSubscribed"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-sun/index.js",
name: "IconSun"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-tag/index.js",
name: "IconTag"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-tags/index.js",
name: "IconTags"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-thunderbolt/index.js",
name: "IconThunderbolt"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-tool/index.js",
name: "IconTool"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-trophy/index.js",
name: "IconTrophy"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-unlock/index.js",
name: "IconUnlock"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-user-add/index.js",
name: "IconUserAdd"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-user-group/index.js",
name: "IconUserGroup"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-user/index.js",
name: "IconUser"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-video-camera/index.js",
name: "IconVideoCamera"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-wifi/index.js",
name: "IconWifi"
},
{
filePath: "@arco-design/web-vue/es/icon/icon-woman/index.js",
name: "IconWoman"
}
];
const vrxArcoColorPicker = ["ColorPicker", "ColorPickerPanel"];
//#endregion
//#region src/vrx-arco/components.ts
const vrxArcoComponents = () => {
vrxArco.forEach((key) => {
if (/^[a-z]/.test(key)) return;
addComponent({
name: key,
filePath: "@vrx-arco/pro-components",
export: key,
global: false
});
});
};
const vrxArcoColorPickerComponents = () => {
vrxArcoColorPicker.forEach((key) => {
if (/^[a-z]/.test(key)) return;
addComponent({
name: key,
filePath: "@vrx-arco/color-picker",
export: key,
global: false
});
});
};
//#endregion
//#region src/vrx-arco/style.ts
const vrxArcoUnplugin = (nuxtoption, vrxArco$1) => {
const { mjsStyleCssComp, mjsStyleJsComp, vrxStyle } = ProComponentsConstant;
componentStyle(nuxtoption, {
name: "vrx-arco:nuxt",
component(component) {
const styles = [];
if (mjsStyleCssComp[component]) {
const arcoCss = {
less: mjsStyleJsComp[component],
css: mjsStyleCssComp[component]
};
arcoCss[vrxArco$1.importStyle].forEach((item) => {
if (vrxArco$1.theme) {
styles.push(item.replace(/^@arco-design\/web-vue/, vrxArco$1.theme));
return;
}
styles.push(item);
});
}
if (mjsStyleCssComp[component]) vrxStyle[component].forEach((item) => {
styles.push(item);
});
return styles;
},
...vrxArco$1.importStyleDir
}, vrxArco$1.importStylePlugin);
};
const vrxArcoColorPickerUnplugin = (nuxtoption, vrxArco$1) => {
const { mjsStyleCssComp, mjsStyleJsComp, vrxStyle } = ColorPickerConstant;
componentStyle(nuxtoption, {
name: "vrx-arco:nuxt",
component(component) {
const styles = [];
if (mjsStyleCssComp[component]) {
const arcoCss = {
less: mjsStyleJsComp[component],
css: mjsStyleCssComp[component]
};
arcoCss[vrxArco$1.importStyle].forEach((item) => {
if (vrxArco$1.theme) {
styles.push(item.replace(/^@arco-design\/web-vue/, vrxArco$1.theme));
return;
}
styles.push(item);
});
}
if (mjsStyleCssComp[component]) vrxStyle[component].forEach((item) => {
styles.push(item);
});
return styles;
},
...vrxArco$1.importStyleDir
}, vrxArco$1.importStylePlugin);
};
//#endregion
//#region src/arco/components.ts
const arcoComponents = () => {
arco.forEach((item) => {
addComponent({
...item,
name: `A${item.name}`
});
});
};
const arcoIconComponents = () => {
arcoIcon.forEach((item) => {
addComponent(item);
});
};
//#endregion
//#region src/arco/style.ts
const matchComponents = [
{
pattern: /^AnchorLink$/,
componentDir: "anchor"
},
{
pattern: /^AvatarGroup$/,
componentDir: "avatar"
},
{
pattern: /^BreadcrumbItem$/,
componentDir: "breadcrumb"
},
{
pattern: /^ButtonGroup$/,
componentDir: "button"
},
{
pattern: /^(CardMeta|CardGrid)$/,
componentDir: "card"
},
{
pattern: /^CarouselItem$/,
componentDir: "carousel"
},
{
pattern: /^CascaderPanel$/,
componentDir: "cascader"
},
{
pattern: /^CheckboxGroup$/,
componentDir: "checkbox"
},
{
pattern: /^CollapseItem$/,
componentDir: "collapse"
},
{
pattern: /^(WeekPicker|MonthPicker|YearPicker|QuarterPicker|RangePicker)$/,
componentDir: "date-picker"
},
{
pattern: /^DescriptionsItem$/,
componentDir: "descriptions"
},
{
pattern: /^(Doption|Dgroup|Dsubmenu|DropdownButton)$/,
componentDir: "dropdown"
},
{
pattern: /^FormItem$/,
componentDir: "form"
},
{
pattern: /^(Col|Row|GridItem)$/,
componentDir: "grid"
},
{
pattern: /^(ImagePreview|ImagePreviewGroup)$/,
componentDir: "image"
},
{
pattern: /^(InputGroup|InputSearch|InputPassword)$/,
componentDir: "input"
},
{
pattern: /^(LayoutHeader|LayoutContent|LayoutFooter|LayoutSider)$/,
componentDir: "layout"
},
{
pattern: /^(ListItem|ListItemMeta)$/,
componentDir: "list"
},
{
pattern: /^(MenuItem|MenuItemGroup|SubMenu)$/,
componentDir: "menu"
},
{
pattern: /^RadioGroup$/,
componentDir: "radio"
},
{
pattern: /^(Option|Optgroup)$/,
componentDir: "select"
},
{
pattern: /^(SkeletonLine|SkeletonShape)$/,
componentDir: "skeleton"
},
{
pattern: /^Countdown$/,
componentDir: "statistic"
},
{
pattern: /^Step$/,
componentDir: "steps"
},
{
pattern: /^(Thead|Td|Th|Tr|Tbody|TableColumn)$/,
componentDir: "table"
},
{
pattern: /^TagGroup$/,
componentDir: "tag"
},
{
pattern: /^TabPane$/,
componentDir: "tabs"
},
{
pattern: /^TimelineItem$/,
componentDir: "timeline"
},
{
pattern: /^(TypographyParagraph|TypographyTitle|TypographyText)$/,
componentDir: "typography"
}
];
function getComponentStyleDir(theme = "@arco-design/web-vue", importName, importStyle) {
if (["ConfigProvider", "Icon"].includes(importName)) return;
let componentDir = kebabCase(importName);
for (const item of matchComponents) if (item.pattern.test(importName)) {
componentDir = item.componentDir;
break;
}
if (importStyle === "less") return `${theme}/es/${componentDir}/style/index.js`;
if (importStyle === "css" || importStyle) return `${theme}/es/${componentDir}/style/css.js`;
}
/**
* 按需导入arco-design/web-vue 的样式
* 改写自 https://github.com/antfu/unplugin-vue-components/blob/main/src/core/resolvers/arco.ts
*/
const arcoUnplugin = (nuxtoption, vrxArco$1) => {
componentStyle(nuxtoption, {
name: "vrx-arco:nuxt",
component(name) {
const styles = [];
if (name.match(/^A[A-Z]/)) {
const importStyle = vrxArco$1.importStyle || "css";
const importName = name.slice(1);
const style = getComponentStyleDir(vrxArco$1.theme, importName, importStyle);
style && styles.push(style);
}
return styles;
},
...vrxArco$1.importStyleDir
}, vrxArco$1.importStylePlugin);
};
//#endregion
//#region src/index.ts
var src_default = defineNuxtModule({
meta: {
name: "vrx-arco",
configKey: "vrxArco"
},
defaults: {
sideEffect: true,
importStyle: "css",
transpile: true,
arco: false,
resolveIcons: false,
colorPicker: false
},
setup(option, nuxt) {
extendViteConfig((config) => {
config.optimizeDeps ||= {};
config.optimizeDeps.exclude ||= [];
config.optimizeDeps.exclude.push("@vrx/core", "@vill-v/type-as", "klona", "@vueuse/core");
});
if (option.transpile) transpileNoSSRFriendly(nuxt);
vrxArcoComponents();
option.arco && arcoComponents();
option.resolveIcons && arcoIconComponents();
option.colorPicker && vrxArcoColorPickerComponents();
if (option.sideEffect) {
vrxArcoUnplugin(nuxt.options, option);
option.arco && arcoUnplugin(nuxt.options, option);
option.colorPicker && vrxArcoColorPickerUnplugin(nuxt.options, option);
}
}
});
//#endregion
export { src_default as default };