resolvers.mjs 41 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582
  1. import {
  2. camelCase,
  3. getPkgVersion,
  4. isSSR,
  5. kebabCase,
  6. pascalCase,
  7. resolveImportPath
  8. } from "./chunk-IN2W2XFC.mjs";
  9. import {
  10. __require,
  11. __spreadProps,
  12. __spreadValues
  13. } from "./chunk-ZKNUHGJ4.mjs";
  14. // src/core/resolvers/antdv.ts
  15. var matchComponents = [
  16. {
  17. pattern: /^Avatar/,
  18. styleDir: "avatar"
  19. },
  20. {
  21. pattern: /^AutoComplete/,
  22. styleDir: "auto-complete"
  23. },
  24. {
  25. pattern: /^Anchor/,
  26. styleDir: "anchor"
  27. },
  28. {
  29. pattern: /^Badge/,
  30. styleDir: "badge"
  31. },
  32. {
  33. pattern: /^Breadcrumb/,
  34. styleDir: "breadcrumb"
  35. },
  36. {
  37. pattern: /^Button/,
  38. styleDir: "button"
  39. },
  40. {
  41. pattern: /^Checkbox/,
  42. styleDir: "checkbox"
  43. },
  44. {
  45. pattern: /^Card/,
  46. styleDir: "card"
  47. },
  48. {
  49. pattern: /^Collapse/,
  50. styleDir: "collapse"
  51. },
  52. {
  53. pattern: /^Descriptions/,
  54. styleDir: "descriptions"
  55. },
  56. {
  57. pattern: /^RangePicker|^WeekPicker|^MonthPicker/,
  58. styleDir: "date-picker"
  59. },
  60. {
  61. pattern: /^Dropdown/,
  62. styleDir: "dropdown"
  63. },
  64. {
  65. pattern: /^Form/,
  66. styleDir: "form"
  67. },
  68. {
  69. pattern: /^InputNumber/,
  70. styleDir: "input-number"
  71. },
  72. {
  73. pattern: /^Input|^Textarea/,
  74. styleDir: "input"
  75. },
  76. {
  77. pattern: /^Statistic/,
  78. styleDir: "statistic"
  79. },
  80. {
  81. pattern: /^CheckableTag/,
  82. styleDir: "tag"
  83. },
  84. {
  85. pattern: /^TimeRangePicker/,
  86. styleDir: "time-picker"
  87. },
  88. {
  89. pattern: /^Layout/,
  90. styleDir: "layout"
  91. },
  92. {
  93. pattern: /^Menu|^SubMenu/,
  94. styleDir: "menu"
  95. },
  96. {
  97. pattern: /^Table/,
  98. styleDir: "table"
  99. },
  100. {
  101. pattern: /^TimePicker|^TimeRangePicker/,
  102. styleDir: "time-picker"
  103. },
  104. {
  105. pattern: /^Radio/,
  106. styleDir: "radio"
  107. },
  108. {
  109. pattern: /^Image/,
  110. styleDir: "image"
  111. },
  112. {
  113. pattern: /^List/,
  114. styleDir: "list"
  115. },
  116. {
  117. pattern: /^Tab/,
  118. styleDir: "tabs"
  119. },
  120. {
  121. pattern: /^Mentions/,
  122. styleDir: "mentions"
  123. },
  124. {
  125. pattern: /^Step/,
  126. styleDir: "steps"
  127. },
  128. {
  129. pattern: /^Skeleton/,
  130. styleDir: "skeleton"
  131. },
  132. {
  133. pattern: /^Select/,
  134. styleDir: "select"
  135. },
  136. {
  137. pattern: /^TreeSelect/,
  138. styleDir: "tree-select"
  139. },
  140. {
  141. pattern: /^Tree|^DirectoryTree/,
  142. styleDir: "tree"
  143. },
  144. {
  145. pattern: /^Typography/,
  146. styleDir: "typography"
  147. },
  148. {
  149. pattern: /^Timeline/,
  150. styleDir: "timeline"
  151. },
  152. {
  153. pattern: /^Upload/,
  154. styleDir: "upload"
  155. }
  156. ];
  157. function getStyleDir(compName) {
  158. let styleDir;
  159. const total = matchComponents.length;
  160. for (let i = 0; i < total; i++) {
  161. const matcher = matchComponents[i];
  162. if (compName.match(matcher.pattern)) {
  163. styleDir = matcher.styleDir;
  164. break;
  165. }
  166. }
  167. if (!styleDir)
  168. styleDir = kebabCase(compName);
  169. return styleDir;
  170. }
  171. function getSideEffects(compName, options) {
  172. const {
  173. importStyle = true,
  174. importLess = false
  175. } = options;
  176. if (!importStyle)
  177. return;
  178. const lib = options.cjs ? "lib" : "es";
  179. const packageName = (options == null ? void 0 : options.packageName) || "ant-design-vue";
  180. if (importStyle === "less" || importLess) {
  181. const styleDir = getStyleDir(compName);
  182. return `${packageName}/${lib}/${styleDir}/style`;
  183. } else {
  184. const styleDir = getStyleDir(compName);
  185. return `${packageName}/${lib}/${styleDir}/style/css`;
  186. }
  187. }
  188. var primitiveNames = ["Affix", "Anchor", "AnchorLink", "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"];
  189. var prefix = "A";
  190. var antdvNames;
  191. function genAntdNames(primitiveNames2) {
  192. antdvNames = new Set(primitiveNames2.map((name) => `${prefix}${name}`));
  193. }
  194. genAntdNames(primitiveNames);
  195. function isAntdv(compName) {
  196. return antdvNames.has(compName);
  197. }
  198. function AntDesignVueResolver(options = {}) {
  199. return {
  200. type: "component",
  201. resolve: (name) => {
  202. var _a;
  203. if (options.resolveIcons && name.match(/(Outlined|Filled|TwoTone)$/)) {
  204. return {
  205. name,
  206. from: "@ant-design/icons-vue"
  207. };
  208. }
  209. if (isAntdv(name) && !((_a = options == null ? void 0 : options.exclude) == null ? void 0 : _a.includes(name))) {
  210. const importName = name.slice(1);
  211. const { cjs = false, packageName = "ant-design-vue" } = options;
  212. const path = `${packageName}/${cjs ? "lib" : "es"}`;
  213. return {
  214. name: importName,
  215. from: path,
  216. sideEffects: getSideEffects(importName, options)
  217. };
  218. }
  219. }
  220. };
  221. }
  222. // node_modules/.pnpm/compare-versions@5.0.1/node_modules/compare-versions/lib/esm/index.js
  223. var compareVersions = (v1, v2) => {
  224. const n1 = validateAndParse(v1);
  225. const n2 = validateAndParse(v2);
  226. const p1 = n1.pop();
  227. const p2 = n2.pop();
  228. const r = compareSegments(n1, n2);
  229. if (r !== 0)
  230. return r;
  231. if (p1 && p2) {
  232. return compareSegments(p1.split("."), p2.split("."));
  233. } else if (p1 || p2) {
  234. return p1 ? -1 : 1;
  235. }
  236. return 0;
  237. };
  238. var compare = (v1, v2, operator) => {
  239. assertValidOperator(operator);
  240. const res = compareVersions(v1, v2);
  241. return operatorResMap[operator].includes(res);
  242. };
  243. var semver = /^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i;
  244. var validateAndParse = (version) => {
  245. if (typeof version !== "string") {
  246. throw new TypeError("Invalid argument expected string");
  247. }
  248. const match = version.match(semver);
  249. if (!match) {
  250. throw new Error(`Invalid argument not valid semver ('${version}' received)`);
  251. }
  252. match.shift();
  253. return match;
  254. };
  255. var isWildcard = (s) => s === "*" || s === "x" || s === "X";
  256. var tryParse = (v) => {
  257. const n = parseInt(v, 10);
  258. return isNaN(n) ? v : n;
  259. };
  260. var forceType = (a, b) => typeof a !== typeof b ? [String(a), String(b)] : [a, b];
  261. var compareStrings = (a, b) => {
  262. if (isWildcard(a) || isWildcard(b))
  263. return 0;
  264. const [ap, bp] = forceType(tryParse(a), tryParse(b));
  265. if (ap > bp)
  266. return 1;
  267. if (ap < bp)
  268. return -1;
  269. return 0;
  270. };
  271. var compareSegments = (a, b) => {
  272. for (let i = 0; i < Math.max(a.length, b.length); i++) {
  273. const r = compareStrings(a[i] || "0", b[i] || "0");
  274. if (r !== 0)
  275. return r;
  276. }
  277. return 0;
  278. };
  279. var operatorResMap = {
  280. ">": [1],
  281. ">=": [0, 1],
  282. "=": [0],
  283. "<=": [-1, 0],
  284. "<": [-1]
  285. };
  286. var allowedOperators = Object.keys(operatorResMap);
  287. var assertValidOperator = (op) => {
  288. if (typeof op !== "string") {
  289. throw new TypeError(`Invalid operator type, expected string but got ${typeof op}`);
  290. }
  291. if (allowedOperators.indexOf(op) === -1) {
  292. throw new Error(`Invalid operator, expected one of ${allowedOperators.join("|")}`);
  293. }
  294. };
  295. // src/core/resolvers/element-plus.ts
  296. function getSideEffectsLegacy(partialName, options) {
  297. const { importStyle } = options;
  298. if (!importStyle)
  299. return;
  300. if (importStyle === "sass") {
  301. return [
  302. "element-plus/packages/theme-chalk/src/base.scss",
  303. `element-plus/packages/theme-chalk/src/${partialName}.scss`
  304. ];
  305. } else if (importStyle === true || importStyle === "css") {
  306. return [
  307. "element-plus/lib/theme-chalk/base.css",
  308. `element-plus/lib/theme-chalk/el-${partialName}.css`
  309. ];
  310. }
  311. }
  312. function getSideEffects2(dirName, options) {
  313. const { importStyle, ssr } = options;
  314. const themeFolder = "element-plus/theme-chalk";
  315. const esComponentsFolder = "element-plus/es/components";
  316. if (importStyle === "sass")
  317. return ssr ? `${themeFolder}/src/${dirName}.scss` : `${esComponentsFolder}/${dirName}/style/index`;
  318. else if (importStyle === true || importStyle === "css")
  319. return ssr ? `${themeFolder}/el-${dirName}.css` : `${esComponentsFolder}/${dirName}/style/css`;
  320. }
  321. function resolveComponent(name, options) {
  322. if (options.exclude && name.match(options.exclude))
  323. return;
  324. if (!name.match(/^El[A-Z]/))
  325. return;
  326. if (name.match(/^ElIcon.+/)) {
  327. return {
  328. name: name.replace(/^ElIcon/, ""),
  329. from: "@element-plus/icons-vue"
  330. };
  331. }
  332. const partialName = kebabCase(name.slice(2));
  333. const { version, ssr } = options;
  334. if (compare(version, "1.1.0-beta.1", ">=")) {
  335. return {
  336. name,
  337. from: `element-plus/${ssr ? "lib" : "es"}`,
  338. sideEffects: getSideEffects2(partialName, options)
  339. };
  340. } else if (compare(version, "1.0.2-beta.28", ">=")) {
  341. return {
  342. from: `element-plus/es/el-${partialName}`,
  343. sideEffects: getSideEffectsLegacy(partialName, options)
  344. };
  345. } else {
  346. return {
  347. from: `element-plus/lib/el-${partialName}`,
  348. sideEffects: getSideEffectsLegacy(partialName, options)
  349. };
  350. }
  351. }
  352. function resolveDirective(name, options) {
  353. if (!options.directives)
  354. return;
  355. const directives2 = {
  356. Loading: { importName: "ElLoadingDirective", styleName: "loading" },
  357. Popover: { importName: "ElPopoverDirective", styleName: "popover" },
  358. InfiniteScroll: { importName: "ElInfiniteScroll", styleName: "infinite-scroll" }
  359. };
  360. const directive = directives2[name];
  361. if (!directive)
  362. return;
  363. const { version, ssr } = options;
  364. if (compare(version, "1.1.0-beta.1", ">=")) {
  365. return {
  366. name: directive.importName,
  367. from: `element-plus/${ssr ? "lib" : "es"}`,
  368. sideEffects: getSideEffects2(directive.styleName, options)
  369. };
  370. }
  371. }
  372. var noStylesComponents = ["ElAutoResizer"];
  373. function ElementPlusResolver(options = {}) {
  374. let optionsResolved;
  375. async function resolveOptions() {
  376. if (optionsResolved)
  377. return optionsResolved;
  378. optionsResolved = __spreadValues({
  379. ssr: false,
  380. version: await getPkgVersion("element-plus", "2.2.2"),
  381. importStyle: "css",
  382. directives: true,
  383. exclude: void 0,
  384. noStylesComponents: options.noStylesComponents || []
  385. }, options);
  386. return optionsResolved;
  387. }
  388. return [
  389. {
  390. type: "component",
  391. resolve: async (name) => {
  392. const options2 = await resolveOptions();
  393. if ([...options2.noStylesComponents, ...noStylesComponents].includes(name))
  394. return resolveComponent(name, __spreadProps(__spreadValues({}, options2), { importStyle: false }));
  395. else
  396. return resolveComponent(name, options2);
  397. }
  398. },
  399. {
  400. type: "directive",
  401. resolve: async (name) => {
  402. return resolveDirective(name, await resolveOptions());
  403. }
  404. }
  405. ];
  406. }
  407. // src/core/resolvers/element-ui.ts
  408. function getSideEffects3(partialName, options) {
  409. const { importStyle = "css" } = options;
  410. if (!importStyle)
  411. return;
  412. if (importStyle === "sass") {
  413. return [
  414. "element-ui/packages/theme-chalk/src/base.scss",
  415. `element-ui/packages/theme-chalk/src/${partialName}.scss`
  416. ];
  417. } else {
  418. return [
  419. "element-ui/lib/theme-chalk/base.css",
  420. `element-ui/lib/theme-chalk/${partialName}.css`
  421. ];
  422. }
  423. }
  424. function ElementUiResolver(options = {}) {
  425. return {
  426. type: "component",
  427. resolve: (name) => {
  428. if (options.exclude && name.match(options.exclude))
  429. return;
  430. if (/^El[A-Z]/.test(name)) {
  431. const compName = name.slice(2);
  432. const partialName = kebabCase(compName);
  433. if (partialName === "collapse-transition") {
  434. return {
  435. from: `element-ui/lib/transitions/${partialName}`
  436. };
  437. }
  438. return {
  439. from: `element-ui/lib/${partialName}`,
  440. sideEffects: getSideEffects3(partialName, options)
  441. };
  442. }
  443. }
  444. };
  445. }
  446. // src/core/resolvers/headless-ui.ts
  447. var components = [
  448. "Combobox",
  449. "ComboboxButton",
  450. "ComboboxInput",
  451. "ComboboxLabel",
  452. "ComboboxOption",
  453. "ComboboxOptions",
  454. "Dialog",
  455. "DialogDescription",
  456. "DialogOverlay",
  457. "DialogTitle",
  458. "DialogPanel",
  459. "Disclosure",
  460. "DisclosureButton",
  461. "DisclosurePanel",
  462. "FocusTrap",
  463. "Listbox",
  464. "ListboxButton",
  465. "ListboxLabel",
  466. "ListboxOption",
  467. "ListboxOptions",
  468. "Menu",
  469. "MenuButton",
  470. "MenuItem",
  471. "MenuItems",
  472. "Popover",
  473. "PopoverButton",
  474. "PopoverGroup",
  475. "PopoverOverlay",
  476. "PopoverPanel",
  477. "Portal",
  478. "PortalGroup",
  479. "RadioGroup",
  480. "RadioGroupDescription",
  481. "RadioGroupLabel",
  482. "RadioGroupOption",
  483. "Switch",
  484. "SwitchDescription",
  485. "SwitchGroup",
  486. "SwitchLabel",
  487. "TransitionChild",
  488. "TransitionRoot",
  489. "TabGroup",
  490. "TabList",
  491. "Tab",
  492. "TabPanels",
  493. "TabPanel"
  494. ];
  495. function HeadlessUiResolver(options = {}) {
  496. const { prefix: prefix2 = "" } = options;
  497. return {
  498. type: "component",
  499. resolve: (name) => {
  500. if (name.startsWith(prefix2)) {
  501. const componentName = name.substring(prefix2.length);
  502. if (components.includes(componentName)) {
  503. return {
  504. name: componentName,
  505. from: "@headlessui/vue"
  506. };
  507. }
  508. }
  509. }
  510. };
  511. }
  512. // src/core/resolvers/idux.ts
  513. var specialComponents = {
  514. CdkVirtualScroll: "scroll",
  515. IxAutoComplete: "auto-complete",
  516. IxBackTop: "back-top",
  517. IxDatePicker: "date-picker",
  518. IxDateRangePicker: "date-picker",
  519. IxCol: "grid",
  520. IxRow: "grid",
  521. IxInputNumber: "input-number",
  522. IxTab: "tabs",
  523. IxTreeSelect: "tree-select",
  524. IxTimePicker: "time-picker",
  525. IxTimeRangePicker: "time-picker"
  526. };
  527. function IduxResolver(options = {}) {
  528. return {
  529. type: "component",
  530. resolve: (name) => {
  531. const { importStyle, importStyleTheme = "default", exclude = [], scope = "@idux" } = options;
  532. if (exclude.includes(name))
  533. return;
  534. const packageName = getPackageName(name);
  535. if (!packageName)
  536. return;
  537. let dirname = specialComponents[name];
  538. if (!dirname) {
  539. const nameIndex = packageName === "pro" ? 2 : 1;
  540. dirname = kebabCase(name).split("-")[nameIndex];
  541. }
  542. const path = `${scope}/${packageName}/${dirname}`;
  543. let sideEffects;
  544. if (packageName !== "cdk" && importStyle)
  545. sideEffects = `${path}/style/themes/${importStyle === "css" ? `${importStyleTheme}_css` : importStyleTheme}`;
  546. return { name, from: path, sideEffects };
  547. }
  548. };
  549. }
  550. function getPackageName(name) {
  551. let packageName;
  552. if (name.match(/^Cdk[A-Z]/))
  553. packageName = "cdk";
  554. else if (name.match(/^IxPro[A-Z]/))
  555. packageName = "pro";
  556. else if (name.match(/^Ix[A-Z]/))
  557. packageName = "components";
  558. return packageName;
  559. }
  560. // src/core/resolvers/inkline.ts
  561. function InklineResolver() {
  562. return {
  563. type: "component",
  564. resolve: (name) => {
  565. if (name.match(/^I[A-Z]/)) {
  566. return {
  567. name,
  568. from: "@inkline/inkline"
  569. };
  570. }
  571. }
  572. };
  573. }
  574. // src/core/resolvers/naive-ui.ts
  575. function NaiveUiResolver() {
  576. return {
  577. type: "component",
  578. resolve: (name) => {
  579. if (name.match(/^(N[A-Z]|n-[a-z])/))
  580. return { name, from: "naive-ui" };
  581. }
  582. };
  583. }
  584. // src/core/resolvers/prime-vue.ts
  585. var components2 = [
  586. "Accordion",
  587. "AccordionTab",
  588. "AutoComplete",
  589. "Avatar",
  590. "AvatarGroup",
  591. "Badge",
  592. "BlockUI",
  593. "Breadcrumb",
  594. "Button",
  595. "Calendar",
  596. "Card",
  597. "Carousel",
  598. "CascadeSelect",
  599. "Chart",
  600. "Checkbox",
  601. "Chip",
  602. "Chips",
  603. "ColorPicker",
  604. "Column",
  605. "ColumnGroup",
  606. "ContextMenu",
  607. "DataTable",
  608. "DataView",
  609. "DataViewLayoutOptions",
  610. "DeferredContent",
  611. "Dialog",
  612. "Divider",
  613. "Dock",
  614. "Dropdown",
  615. "Editor",
  616. "Fieldset",
  617. "FileUpload",
  618. "FullCalendar",
  619. "Galleria",
  620. "Image",
  621. "InlineMessage",
  622. "Inplace",
  623. "InputMask",
  624. "InputNumber",
  625. "InputSwitch",
  626. "InputText",
  627. "Knob",
  628. "Listbox",
  629. "MegaMenu",
  630. "Menu",
  631. "Menubar",
  632. "Message",
  633. "MultiSelect",
  634. "OrderList",
  635. "OrganizationChart",
  636. "OverlayPanel",
  637. "Paginator",
  638. "Panel",
  639. "PanelMenu",
  640. "Password",
  641. "PickList",
  642. "ProgressBar",
  643. "ProgressSpinner",
  644. "RadioButton",
  645. "Rating",
  646. "Row",
  647. "ScrollPanel",
  648. "ScrollTop",
  649. "SelectButton",
  650. "Sidebar",
  651. "Skeleton",
  652. "Slider",
  653. "SpeedDial",
  654. "SplitButton",
  655. "Splitter",
  656. "SplitterPanel",
  657. "Steps",
  658. "TabMenu",
  659. "TabPanel",
  660. "TabView",
  661. "Tag",
  662. "Terminal",
  663. "TerminalService",
  664. "Textarea",
  665. "TieredMenu",
  666. "Timeline",
  667. "Timelist",
  668. "ToggleButton",
  669. "Toolbar",
  670. "Tree",
  671. "TreeSelect",
  672. "TreeTable",
  673. "TriStateCheckbox",
  674. "VirtualScroller"
  675. ];
  676. function PrimeVueResolver(options = {}) {
  677. return {
  678. type: "component",
  679. resolve: (name) => {
  680. const sideEffects = [];
  681. if (options.importStyle)
  682. sideEffects.push("primevue/resources/primevue.min.css");
  683. if (options.importIcons)
  684. sideEffects.push("primeicons/primeicons.css");
  685. if (options.importTheme) {
  686. sideEffects.push(
  687. `primevue/resources/themes/${options.importTheme}/theme.css`
  688. );
  689. }
  690. if (options.prefix) {
  691. if (!name.startsWith(options.prefix))
  692. return;
  693. name = name.substring(options.prefix.length);
  694. }
  695. if (components2.includes(name)) {
  696. return {
  697. from: `primevue/${name.toLowerCase()}`,
  698. sideEffects
  699. };
  700. }
  701. }
  702. };
  703. }
  704. // src/core/resolvers/vant.ts
  705. var moduleType = isSSR ? "lib" : "es";
  706. function getSideEffects4(dirName, options) {
  707. const { importStyle = true } = options;
  708. if (!importStyle || isSSR)
  709. return;
  710. if (importStyle === "less")
  711. return `vant/${moduleType}/${dirName}/style/less`;
  712. if (importStyle === "css")
  713. return `vant/${moduleType}/${dirName}/style/index`;
  714. return `vant/${moduleType}/${dirName}/style/index`;
  715. }
  716. function VantResolver(options = {}) {
  717. return {
  718. type: "component",
  719. resolve: (name) => {
  720. if (name.startsWith("Van")) {
  721. const partialName = name.slice(3);
  722. return {
  723. name: partialName,
  724. from: `vant/${moduleType}`,
  725. sideEffects: getSideEffects4(kebabCase(partialName), options)
  726. };
  727. }
  728. }
  729. };
  730. }
  731. // src/core/resolvers/varlet-ui.ts
  732. var varFunctions = ["ImagePreview", "Snackbar", "Picker", "ActionSheet", "Dialog", "Locale", "StyleProvider", "LoadingBar"];
  733. var varDirectives = ["Ripple", "Lazy"];
  734. function getResolved(name, options) {
  735. const {
  736. importStyle = "css",
  737. importCss = true,
  738. importLess,
  739. autoImport = false,
  740. version = "vue3"
  741. } = options;
  742. const path = version === "vue2" ? "@varlet-vue2/ui" : "@varlet/ui";
  743. const sideEffects = [];
  744. if (importStyle || importCss) {
  745. if (importStyle === "less" || importLess)
  746. sideEffects.push(`${path}/es/${kebabCase(name)}/style/less.js`);
  747. else
  748. sideEffects.push(`${path}/es/${kebabCase(name)}/style`);
  749. }
  750. return {
  751. from: path,
  752. name: autoImport ? name : `_${name}Component`,
  753. sideEffects
  754. };
  755. }
  756. function VarletUIResolver(options = {}) {
  757. return [
  758. {
  759. type: "component",
  760. resolve: (name) => {
  761. const { autoImport = false } = options;
  762. if (autoImport && varFunctions.includes(name))
  763. return getResolved(name, options);
  764. if (name.startsWith("Var"))
  765. return getResolved(name.slice(3), options);
  766. }
  767. },
  768. {
  769. type: "directive",
  770. resolve: (name) => {
  771. const { directives: directives2 = true } = options;
  772. if (!directives2)
  773. return;
  774. if (!varDirectives.includes(name))
  775. return;
  776. return getResolved(name, options);
  777. }
  778. }
  779. ];
  780. }
  781. // src/core/resolvers/veui.ts
  782. import { join, normalize } from "path";
  783. var VEUI_PACKAGE_NAME = "veui";
  784. var components3;
  785. function VeuiResolver(options = {}) {
  786. const { alias = VEUI_PACKAGE_NAME } = options;
  787. if (!components3) {
  788. try {
  789. const componentsData = __require(`${alias}/components.json`);
  790. components3 = new Set(componentsData.map(({ name }) => name));
  791. } catch (e) {
  792. throw new Error("[unplugin-vue-components:veui] VEUI is not installed");
  793. }
  794. }
  795. return {
  796. type: "component",
  797. resolve: (name) => {
  798. if (name.match(/^Veui[A-Z]/)) {
  799. const componentName = name.slice(4);
  800. if (!components3.has(componentName))
  801. return;
  802. const sideEffects = getSideEffects5(componentName, options);
  803. return { name: componentName, from: alias, sideEffects };
  804. }
  805. }
  806. };
  807. }
  808. var formatters = {
  809. "kebab-case": kebabCase,
  810. "camelCase": camelCase,
  811. "PascalCase": pascalCase
  812. };
  813. var peerPaths = /* @__PURE__ */ new Map();
  814. function assertPeerPath(peerPath) {
  815. if (!peerPaths.has(peerPath)) {
  816. try {
  817. resolveImportPath(peerPath);
  818. peerPaths.set(peerPath, true);
  819. } catch (e) {
  820. peerPaths.set(peerPath, false);
  821. }
  822. }
  823. return peerPaths.get(peerPath);
  824. }
  825. function getSideEffects5(name, {
  826. alias = VEUI_PACKAGE_NAME,
  827. modules = [],
  828. locale = "zh-Hans",
  829. global = []
  830. }) {
  831. const localeModules = (locale ? Array.isArray(locale) ? locale : [locale] : []).map((locale2) => `${alias}/locale/${locale2}/${name}.js`);
  832. const peerModules = modules.map(
  833. ({
  834. package: pack,
  835. path = "components",
  836. fileName = "{module}.css",
  837. transform = "kebab-case"
  838. }) => {
  839. const peer = transform ? formatters[transform](name) : name;
  840. const file = fileName.replace(/\$?\{module\}/g, peer);
  841. return normalize(join(pack, path, file));
  842. }
  843. );
  844. return [...localeModules, ...global, ...peerModules].filter(assertPeerPath);
  845. }
  846. // src/core/resolvers/view-ui.ts
  847. function getSideEffects6(componentName) {
  848. const sideEffects = [
  849. "view-design/dist/styles/iview.css",
  850. "popper.js/dist/umd/popper.js"
  851. ];
  852. if (/^Table|^Slider|^Tab/.test(componentName))
  853. sideEffects.push("element-resize-detector");
  854. if (componentName.startsWith("Date"))
  855. sideEffects.push("js-calendar");
  856. return sideEffects;
  857. }
  858. var matchComponents2 = [
  859. {
  860. pattern: /^List/,
  861. compDir: "list"
  862. }
  863. ];
  864. function getCompDir(compName) {
  865. let compPath;
  866. const total = matchComponents2.length;
  867. for (let i = 0; i < total; i++) {
  868. const matcher = matchComponents2[i];
  869. if (compName.match(matcher.pattern)) {
  870. compPath = `${matcher.compDir}/${kebabCase(compName)}.vue`;
  871. break;
  872. }
  873. }
  874. if (!compPath)
  875. compPath = kebabCase(compName);
  876. return compPath;
  877. }
  878. function ViewUiResolver() {
  879. return {
  880. type: "component",
  881. resolve: (name) => {
  882. if (name.match(/^I[A-Z]/)) {
  883. const compName = name.slice(1);
  884. return {
  885. from: `view-design/src/components/${getCompDir(compName)}`,
  886. sideEffects: getSideEffects6(compName)
  887. };
  888. }
  889. }
  890. };
  891. }
  892. // src/core/resolvers/vuetify.ts
  893. function VuetifyResolver() {
  894. return {
  895. type: "component",
  896. resolve: (name) => {
  897. if (name.match(/^V[A-Z]/))
  898. return { name, from: "vuetify/lib" };
  899. }
  900. };
  901. }
  902. function Vuetify3Resolver() {
  903. return {
  904. type: "component",
  905. resolve: (name) => {
  906. if (name.match(/^V[A-Z]/))
  907. return { name, from: "vuetify/components" };
  908. }
  909. };
  910. }
  911. // src/core/resolvers/vueuse.ts
  912. import { readFileSync } from "fs";
  913. import { resolveModule } from "local-pkg";
  914. var components4;
  915. function VueUseComponentsResolver() {
  916. return {
  917. type: "component",
  918. resolve: (name) => {
  919. if (!components4) {
  920. let indexesJson;
  921. try {
  922. const corePath = resolveModule("@vueuse/core") || process.cwd();
  923. const path = resolveModule("@vueuse/core/indexes.json") || resolveModule("@vueuse/metadata/index.json") || resolveModule("@vueuse/metadata/index.json", { paths: [corePath] });
  924. indexesJson = JSON.parse(readFileSync(path, "utf-8"));
  925. components4 = indexesJson.functions.filter((i) => i.component && i.name).map(({ name: name2 }) => name2[0].toUpperCase() + name2.slice(1));
  926. } catch (error) {
  927. console.error(error);
  928. throw new Error("[vue-components] failed to load @vueuse/core, have you installed it?");
  929. }
  930. }
  931. if (components4 && components4.includes(name))
  932. return { name, as: name, from: "@vueuse/components" };
  933. }
  934. };
  935. }
  936. // src/core/resolvers/vueuse-directive.ts
  937. import { readFileSync as readFileSync2 } from "fs";
  938. import { resolveModule as resolveModule2 } from "local-pkg";
  939. var directives;
  940. function VueUseDirectiveResolver() {
  941. return {
  942. type: "directive",
  943. resolve: (name) => {
  944. if (!directives) {
  945. let indexesJson;
  946. try {
  947. const corePath = resolveModule2("@vueuse/core") || process.cwd();
  948. const path = resolveModule2("@vueuse/core/indexes.json") || resolveModule2("@vueuse/metadata/index.json") || resolveModule2("@vueuse/metadata/index.json", { paths: [corePath] });
  949. indexesJson = JSON.parse(readFileSync2(path, "utf-8"));
  950. directives = indexesJson.functions.filter((i) => i.directive && i.name).map(({ name: name2 }) => name2[0].toUpperCase() + name2.slice(1)).map((name2) => name2.startsWith("Use") ? name2.slice(3) : name2);
  951. } catch (error) {
  952. console.error(error);
  953. throw new Error("[vue-components] failed to load @vueuse/core, have you installed it?");
  954. }
  955. }
  956. if (directives && directives.includes(name))
  957. return { name: `v${name}`, as: name, from: "@vueuse/components" };
  958. }
  959. };
  960. }
  961. // src/core/resolvers/quasar.ts
  962. import { promises as fs } from "fs";
  963. import { resolveModule as resolveModule3 } from "local-pkg";
  964. function QuasarResolver() {
  965. let components5 = [];
  966. return {
  967. type: "component",
  968. resolve: async (name) => {
  969. if (!components5.length) {
  970. const quasarApiListPath = resolveModule3("quasar/dist/transforms/api-list.json");
  971. if (quasarApiListPath)
  972. components5 = JSON.parse(await fs.readFile(quasarApiListPath, "utf-8"));
  973. }
  974. if (components5.includes(name))
  975. return { name, from: "quasar" };
  976. }
  977. };
  978. }
  979. // src/core/resolvers/devui.ts
  980. var LIB_NAME = "vue-devui";
  981. var HARMLESS = ["ripple"];
  982. function resolveDirectory(name, filename) {
  983. return `${LIB_NAME}/${name}/${filename}`;
  984. }
  985. function getSideEffects7(name) {
  986. if (HARMLESS.includes(name))
  987. return;
  988. if (["row", "col"].includes(name))
  989. return resolveDirectory("grid", "style.css");
  990. if (["aside", "content", "footer", "header", "layout"].includes(name))
  991. return resolveDirectory("layout", "style.css");
  992. if (["overlay", "fixed-overlay", "flexible-overlay"].includes(name))
  993. return resolveDirectory("overlay", "style.css");
  994. return resolveDirectory(name, "style.css");
  995. }
  996. function componentsResolver(name, { ssr }) {
  997. if (!name.match(/^D[A-Z]/))
  998. return;
  999. const resolveId = kebabCase(name = name.slice(1));
  1000. return {
  1001. name,
  1002. sideEffects: getSideEffects7(resolveId),
  1003. from: resolveDirectory(resolveId, `index.${ssr ? "umd" : "es"}.js`)
  1004. };
  1005. }
  1006. function directivesResolver(name, { ssr }) {
  1007. const resolveId = kebabCase(name);
  1008. return {
  1009. name: `${name}Directive`,
  1010. sideEffects: getSideEffects7(resolveId),
  1011. from: resolveDirectory(resolveId, `index.${ssr ? "umd" : "es"}.js`)
  1012. };
  1013. }
  1014. function DevUiResolver(options = {}) {
  1015. const config = __spreadValues({ directives: true, importStyle: true, ssr: false }, options);
  1016. const resolvers = [
  1017. {
  1018. type: "component",
  1019. resolve: (name) => componentsResolver(name, config)
  1020. }
  1021. ];
  1022. if (config.directives) {
  1023. resolvers.push({
  1024. type: "directive",
  1025. resolve: (name) => directivesResolver(name, config)
  1026. });
  1027. }
  1028. return resolvers;
  1029. }
  1030. // src/core/resolvers/arco.ts
  1031. import Debug from "debug";
  1032. var debug = Debug("unplugin-vue-components:resolvers:arco");
  1033. var matchComponents3 = [
  1034. {
  1035. pattern: /^AnchorLink$/,
  1036. componentDir: "anchor"
  1037. },
  1038. {
  1039. pattern: /^AvatarGroup$/,
  1040. componentDir: "avatar"
  1041. },
  1042. {
  1043. pattern: /^BreadcrumbItem$/,
  1044. componentDir: "breadcrumb"
  1045. },
  1046. {
  1047. pattern: /^ButtonGroup$/,
  1048. componentDir: "button"
  1049. },
  1050. {
  1051. pattern: /^(CardMeta|CardGrid)$/,
  1052. componentDir: "card"
  1053. },
  1054. {
  1055. pattern: /^CarouselItem$/,
  1056. componentDir: "carousel"
  1057. },
  1058. {
  1059. pattern: /^CascaderPanel$/,
  1060. componentDir: "cascader"
  1061. },
  1062. {
  1063. pattern: /^CheckboxGroup$/,
  1064. componentDir: "checkbox"
  1065. },
  1066. {
  1067. pattern: /^CollapseItem$/,
  1068. componentDir: "collapse"
  1069. },
  1070. {
  1071. pattern: /^(WeekPicker|MonthPicker|YearPicker|QuarterPicker|RangePicker)$/,
  1072. componentDir: "date-picker"
  1073. },
  1074. {
  1075. pattern: /^DescriptionsItem$/,
  1076. componentDir: "descriptions"
  1077. },
  1078. {
  1079. pattern: /^(Doption|Dgroup|Dsubmenu|DropdownButton)$/,
  1080. componentDir: "dropdown"
  1081. },
  1082. {
  1083. pattern: /^FormItem$/,
  1084. componentDir: "form"
  1085. },
  1086. {
  1087. pattern: /^(Col|Row|GridItem)$/,
  1088. componentDir: "grid"
  1089. },
  1090. {
  1091. pattern: /^(ImagePreview|ImagePreviewGroup)$/,
  1092. componentDir: "image"
  1093. },
  1094. {
  1095. pattern: /^(InputGroup|InputSearch|InputPassword)$/,
  1096. componentDir: "input"
  1097. },
  1098. {
  1099. pattern: /^(LayoutHeader|LayoutContent|LayoutFooter|LayoutSider)$/,
  1100. componentDir: "layout"
  1101. },
  1102. {
  1103. pattern: /^(ListItem|ListItemMeta)$/,
  1104. componentDir: "list"
  1105. },
  1106. {
  1107. pattern: /^(MenuItem|MenuItemGroup|SubMenu)$/,
  1108. componentDir: "menu"
  1109. },
  1110. {
  1111. pattern: /^RadioGroup$/,
  1112. componentDir: "radio"
  1113. },
  1114. {
  1115. pattern: /^(Option|Optgroup)$/,
  1116. componentDir: "select"
  1117. },
  1118. {
  1119. pattern: /^(SkeletonLine|SkeletonShape)$/,
  1120. componentDir: "skeleton"
  1121. },
  1122. {
  1123. pattern: /^Countdown$/,
  1124. componentDir: "statistic"
  1125. },
  1126. {
  1127. pattern: /^Step$/,
  1128. componentDir: "steps"
  1129. },
  1130. {
  1131. pattern: /^(Thead|Td|Th|Tr|Tbody|TableColumn)$/,
  1132. componentDir: "table"
  1133. },
  1134. {
  1135. pattern: /^TagGroup$/,
  1136. componentDir: "tag"
  1137. },
  1138. {
  1139. pattern: /^TabPane$/,
  1140. componentDir: "tabs"
  1141. },
  1142. {
  1143. pattern: /^TimelineItem$/,
  1144. componentDir: "timeline"
  1145. },
  1146. {
  1147. pattern: /^(TypographyParagraph|TypographyTitle|TypographyText)$/,
  1148. componentDir: "typography"
  1149. }
  1150. ];
  1151. function getComponentStyleDir(importName, importStyle) {
  1152. if (["ConfigProvider", "Icon"].includes(importName))
  1153. return void 0;
  1154. let componentDir = kebabCase(importName);
  1155. for (const item of matchComponents3) {
  1156. if (item.pattern.test(importName)) {
  1157. componentDir = item.componentDir;
  1158. break;
  1159. }
  1160. }
  1161. if (importStyle === "less")
  1162. return `@arco-design/web-vue/es/${componentDir}/style/index.js`;
  1163. if (importStyle === "css" || importStyle)
  1164. return `@arco-design/web-vue/es/${componentDir}/style/css.js`;
  1165. }
  1166. function canResolveIcons(options) {
  1167. if (options === void 0)
  1168. return false;
  1169. if (typeof options === "boolean")
  1170. return options;
  1171. else
  1172. return options.enable;
  1173. }
  1174. function getResolveIconPrefix(options) {
  1175. var _a;
  1176. if (canResolveIcons(options)) {
  1177. if (typeof options === "boolean" && options)
  1178. return "";
  1179. else if (options.enable)
  1180. return (_a = options.iconPrefix) != null ? _a : "";
  1181. else
  1182. return "";
  1183. }
  1184. return "";
  1185. }
  1186. function ArcoResolver(options = {}) {
  1187. return {
  1188. type: "component",
  1189. resolve: (name) => {
  1190. var _a;
  1191. if (canResolveIcons(options.resolveIcons)) {
  1192. const iconPrefix = pascalCase(getResolveIconPrefix(options.resolveIcons));
  1193. const newNameRegexp = new RegExp(`^${iconPrefix}Icon`);
  1194. if (newNameRegexp.test(name)) {
  1195. debug("found icon component name %s", name);
  1196. const rawComponentName = name.slice(iconPrefix.length);
  1197. debug("found icon component raw name %s", rawComponentName);
  1198. return {
  1199. name: rawComponentName,
  1200. as: name,
  1201. from: "@arco-design/web-vue/es/icon"
  1202. };
  1203. }
  1204. }
  1205. if (name.match(/^A[A-Z]/)) {
  1206. const importStyle = (_a = options.importStyle) != null ? _a : "css";
  1207. const importName = name.slice(1);
  1208. const config = {
  1209. name: importName,
  1210. from: "@arco-design/web-vue"
  1211. };
  1212. if (options.sideEffect !== false)
  1213. config.sideEffects = getComponentStyleDir(importName, importStyle);
  1214. return config;
  1215. }
  1216. }
  1217. };
  1218. }
  1219. // src/core/resolvers/tdesign.ts
  1220. function getSideEffects8(importName, options) {
  1221. const { library = "vue", importStyle = "css" } = options;
  1222. let fileName = kebabCase(importName);
  1223. if (!importStyle)
  1224. return;
  1225. if (["config-provider", "icon"].includes(fileName))
  1226. return;
  1227. if (fileName.includes("-") && fileName !== "input-number") {
  1228. const prefix2 = fileName.slice(0, fileName.indexOf("-"));
  1229. const container = ["anchor", "avatar", "breadcrumb", "checkbox", "dropdown", "form", "input", "list", "menu", "radio", "slider", "swiper", "color-picker", "text", "collapse", "timeline"];
  1230. if (container.includes(prefix2))
  1231. fileName = prefix2;
  1232. }
  1233. if (["row", "col"].includes(fileName))
  1234. fileName = "grid";
  1235. if (fileName === "addon")
  1236. fileName = "input";
  1237. if (["aside", "layout", "header", "footer", "content"].includes(fileName))
  1238. fileName = "layout";
  1239. if (["head-menu", "submenu"].includes(fileName))
  1240. fileName = "menu";
  1241. if (["option", "option-group"].includes(fileName))
  1242. fileName = "select";
  1243. if (["tab-nav", "tab-panel"].includes(fileName))
  1244. fileName = "tabs";
  1245. if (fileName === "step-item")
  1246. fileName = "steps";
  1247. if (fileName === "check-tag")
  1248. fileName = "tag";
  1249. if (["time-range-picker", "time-range-picker-panel", "time-picker-panel"].includes(fileName))
  1250. fileName = "time-picker";
  1251. if (["date-range-picker", "date-range-picker-panel", "date-picker-panel"].includes(fileName))
  1252. fileName = "date-picker";
  1253. if (["color-picker", "color-picker-panel"].includes(fileName))
  1254. fileName = "color-picker";
  1255. if (["enhanced-table", "base-table"].includes(fileName))
  1256. fileName = "table";
  1257. if (importStyle === "less")
  1258. return `tdesign-${library}/esm/${fileName}/style`;
  1259. return `tdesign-${library}/es/${fileName}/style`;
  1260. }
  1261. function TDesignResolver(options = {}) {
  1262. return {
  1263. type: "component",
  1264. resolve: (name) => {
  1265. const { library = "vue", exclude } = options;
  1266. const importFrom = options.esm ? "/esm" : "";
  1267. if (options.exclude && isExclude(name, exclude))
  1268. return;
  1269. if (options.resolveIcons && name.match(/[a-z]Icon$/)) {
  1270. return {
  1271. name,
  1272. from: `tdesign-icons-${library}${importFrom}`
  1273. };
  1274. }
  1275. if (name.match(/^T[A-Z]/)) {
  1276. const importName = name.slice(1);
  1277. return {
  1278. name: importName,
  1279. from: `tdesign-${library}${importFrom}`,
  1280. sideEffects: getSideEffects8(importName, options)
  1281. };
  1282. }
  1283. }
  1284. };
  1285. }
  1286. function isExclude(name, exclude) {
  1287. if (typeof exclude === "string")
  1288. return name === exclude;
  1289. if (exclude instanceof RegExp)
  1290. return !!name.match(exclude);
  1291. if (Array.isArray(exclude)) {
  1292. for (const item of exclude) {
  1293. if (name === item || name.match(item))
  1294. return true;
  1295. }
  1296. }
  1297. return false;
  1298. }
  1299. // src/core/resolvers/layui-vue.ts
  1300. var matchComponents4 = [
  1301. {
  1302. pattern: /^LayAvatarList$/,
  1303. styleDir: "avatar"
  1304. },
  1305. {
  1306. pattern: /^LayBreadcrumbItem$/,
  1307. styleDir: "breadcrumb"
  1308. },
  1309. {
  1310. pattern: /^(LayCarouselItem)$/,
  1311. styleDir: "carousel"
  1312. },
  1313. {
  1314. pattern: /^(LayCheckboxGroup)$/,
  1315. styleDir: "checkbox"
  1316. },
  1317. {
  1318. pattern: /^LayCol$/,
  1319. styleDir: "row"
  1320. },
  1321. {
  1322. pattern: /^(LayCollapseItem)$/,
  1323. styleDir: "collapse"
  1324. },
  1325. {
  1326. pattern: /^LayConfigProvider$/,
  1327. styleDir: void 0
  1328. },
  1329. {
  1330. pattern: /^LayCountUp$/,
  1331. styleDir: void 0
  1332. },
  1333. {
  1334. pattern: /^(LayDropdownMenu|LayDropdownMenuItem|LayDropdownSubMenu)$/,
  1335. styleDir: "dropdown"
  1336. },
  1337. {
  1338. pattern: /^(LayFormItem)$/,
  1339. styleDir: "form"
  1340. },
  1341. {
  1342. pattern: /^(LayMenuItem|LaySubMenu)$/,
  1343. styleDir: "menu"
  1344. },
  1345. {
  1346. pattern: /^(LayRadioGroup)$/,
  1347. styleDir: "radio"
  1348. },
  1349. {
  1350. pattern: /^LaySelectOption$/,
  1351. styleDir: "select"
  1352. },
  1353. {
  1354. pattern: /^LaySkeletonItem$/,
  1355. styleDir: "skeleton"
  1356. },
  1357. {
  1358. pattern: /^LaySplitPanelItem$/,
  1359. styleDir: "splitPanel"
  1360. },
  1361. {
  1362. pattern: /^LayStepItem$/,
  1363. styleDir: "step"
  1364. },
  1365. {
  1366. pattern: /^(LayTabItem)$/,
  1367. styleDir: "tab"
  1368. },
  1369. {
  1370. pattern: /^LayTimelineItem$/,
  1371. styleDir: "timeline"
  1372. }
  1373. ];
  1374. var layuiRE = /^Lay[A-Z]/;
  1375. var layerRE = /^(layer|LayLayer)$/;
  1376. var iconsRE = /^([A-Z][\w]+Icon|LayIcon)$/;
  1377. var libName = "@layui/layui-vue";
  1378. function lowerCamelCase(str) {
  1379. return str.charAt(0).toLowerCase() + str.slice(1);
  1380. }
  1381. function getSideEffects9(importName, options) {
  1382. const { importStyle = "css" } = options;
  1383. if (!importStyle)
  1384. return void 0;
  1385. if (libName !== "@layui/layui-vue")
  1386. return `${libName}/lib/index.css`;
  1387. let styleDir = lowerCamelCase(importName.slice(3));
  1388. for (const item of matchComponents4) {
  1389. if (item.pattern.test(importName)) {
  1390. styleDir = item.styleDir;
  1391. break;
  1392. }
  1393. }
  1394. if (importStyle === "css" || importStyle) {
  1395. return styleDir ? [`@layui/layui-vue/es/${styleDir}/index.css`, "@layui/layui-vue/es/index/index.css"] : void 0;
  1396. }
  1397. }
  1398. function resolveComponent2(importName, options) {
  1399. let name;
  1400. if (options.exclude && isExclude2(importName, options.exclude))
  1401. return void 0;
  1402. if (options.resolveIcons && importName.match(iconsRE)) {
  1403. name = importName;
  1404. libName = "@layui/icons-vue";
  1405. } else if (importName.match(layerRE)) {
  1406. name = importName;
  1407. libName = "@layui/layer-vue";
  1408. } else if (importName.match(layuiRE) && !importName.match(iconsRE)) {
  1409. name = importName;
  1410. libName = "@layui/layui-vue";
  1411. }
  1412. return name ? { name, from: libName, sideEffects: getSideEffects9(name, options) } : void 0;
  1413. }
  1414. function isExclude2(name, exclude) {
  1415. for (const item of exclude) {
  1416. if (name === item || name.match(item))
  1417. return true;
  1418. }
  1419. return false;
  1420. }
  1421. function LayuiVueResolver(options = {}) {
  1422. return {
  1423. type: "component",
  1424. resolve: (name) => {
  1425. return resolveComponent2(name, options);
  1426. }
  1427. };
  1428. }
  1429. // src/core/resolvers/bootstrap-vue.ts
  1430. var COMPONENT_ALIASES = {
  1431. BBtn: "BButton",
  1432. BBtnClose: "BButtonClose",
  1433. BBtnGroup: "BButtonGroup",
  1434. BBtnToolbar: "BButtonToolbar",
  1435. BCheck: "BFormCheckbox",
  1436. BCheckbox: "BFormCheckbox",
  1437. BCheckboxGroup: "BFormCheckboxGroup",
  1438. BCheckGroup: "BFormCheckboxGroup",
  1439. BDatalist: "BFormDatalist",
  1440. BDd: "BDropdown",
  1441. BDdDivider: "BDropdownDivider",
  1442. BDdForm: "BDropdownForm",
  1443. BDdGroup: "BDropdownGroup",
  1444. BDdHeader: "BDropdownHeader",
  1445. BDdItem: "BDropdownItem",
  1446. BDdItemButton: "BDropdownItemButton",
  1447. BDdItemBtn: "BDropdownItemButton",
  1448. BDdText: "BDropdownText",
  1449. BDropdownItemBtn: "BDropdownItemButton",
  1450. BFile: "BFormFile",
  1451. BDatepicker: "BFormDatepicker",
  1452. BInput: "BFormInput",
  1453. BNavDd: "BNavItemDropdown",
  1454. BNavDropdown: "BNavItemDropdown",
  1455. BNavItemDd: "BNavItemDropdown",
  1456. BNavToggle: "BNavbarToggle",
  1457. BRadio: "BFormRadio",
  1458. BRadioGroup: "BFormRadioGroup",
  1459. BRating: "BFormRating",
  1460. BSelect: "BFormSelect",
  1461. BSelectOption: "BFormSelectOption",
  1462. BSelectOptionGroup: "BFormSelectOptionGroup",
  1463. BSpinbutton: "BFormSpinbutton",
  1464. BTag: "BFormTag",
  1465. BTags: "BFormTags",
  1466. BTextarea: "BFormTextarea",
  1467. BTimepicker: "BFormTimepicker"
  1468. };
  1469. function BootstrapVueResolver(_options = {}) {
  1470. const options = __spreadValues({ directives: true }, _options);
  1471. const resolvers = [{
  1472. type: "component",
  1473. resolve: (name) => {
  1474. if (name.match(/^B[A-Z]/)) {
  1475. return {
  1476. name: COMPONENT_ALIASES[name] || name,
  1477. from: "bootstrap-vue"
  1478. };
  1479. }
  1480. }
  1481. }];
  1482. if (options.directives) {
  1483. resolvers.push({
  1484. type: "directive",
  1485. resolve: (name) => {
  1486. if (name.match(/^B[A-Z]/)) {
  1487. return {
  1488. name: `V${name}`,
  1489. from: "bootstrap-vue"
  1490. };
  1491. }
  1492. }
  1493. });
  1494. }
  1495. return resolvers;
  1496. }
  1497. // src/core/resolvers/bootstrap-vue-3.ts
  1498. var BootstrapVue3Resolver = (_options = {}) => {
  1499. const options = __spreadValues({ directives: true }, _options);
  1500. const resolvers = [{
  1501. type: "component",
  1502. resolve: (name) => {
  1503. if (name.match(/^B[A-Z]/))
  1504. return { name, from: "bootstrap-vue-3" };
  1505. }
  1506. }];
  1507. if (options.directives) {
  1508. resolvers.push({
  1509. type: "directive",
  1510. resolve: (name) => {
  1511. if (name.match(/^B[A-Z]/))
  1512. return { name: `V${name}`, from: "bootstrap-vue-3" };
  1513. }
  1514. });
  1515. }
  1516. return resolvers;
  1517. };
  1518. // src/core/resolvers/ionic.ts
  1519. function IonicResolver() {
  1520. return {
  1521. type: "component",
  1522. resolve: (name) => {
  1523. if (name.startsWith("Ion")) {
  1524. return {
  1525. name,
  1526. from: "@ionic/vue"
  1527. };
  1528. }
  1529. }
  1530. };
  1531. }
  1532. export {
  1533. AntDesignVueResolver,
  1534. ArcoResolver,
  1535. BootstrapVue3Resolver,
  1536. BootstrapVueResolver,
  1537. DevUiResolver,
  1538. ElementPlusResolver,
  1539. ElementUiResolver,
  1540. HeadlessUiResolver,
  1541. IduxResolver,
  1542. InklineResolver,
  1543. IonicResolver,
  1544. LayuiVueResolver,
  1545. NaiveUiResolver,
  1546. PrimeVueResolver,
  1547. QuasarResolver,
  1548. TDesignResolver,
  1549. VantResolver,
  1550. VarletUIResolver,
  1551. VeuiResolver,
  1552. ViewUiResolver,
  1553. VueUseComponentsResolver,
  1554. VueUseDirectiveResolver,
  1555. Vuetify3Resolver,
  1556. VuetifyResolver,
  1557. getResolved
  1558. };