From 5a09a2eb5a9e22e14ef5494bdd7920848f746c61 Mon Sep 17 00:00:00 2001 From: FENG/XIAODONG Date: Thu, 27 Jul 2023 22:24:24 +0800 Subject: [PATCH 1/3] feat(idux): add new components (#665) --- src/core/resolvers/idux.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/core/resolvers/idux.ts b/src/core/resolvers/idux.ts index f9cd036e..bff2034c 100644 --- a/src/core/resolvers/idux.ts +++ b/src/core/resolvers/idux.ts @@ -3,6 +3,11 @@ import { kebabCase } from '../utils' const specialComponents: Record = { CdkVirtualScroll: 'scroll', + CdkClickOutside: 'click-outside', + CdkDraggable: 'drag-drop', + CdkResizable: 'resize', + CdkResizableHandle: 'resize', + CdkResizeObserver: 'resize', IxAutoComplete: 'auto-complete', IxBackTop: 'back-top', IxDatePicker: 'date-picker', @@ -14,6 +19,8 @@ const specialComponents: Record = { IxTreeSelect: 'tree-select', IxTimePicker: 'time-picker', IxTimeRangePicker: 'time-picker', + IxLoadingBar: 'loading-bar', + IxLoadingBarProvider: 'loading-bar', } export interface IduxResolverOptions { From 4db550cd53dfe68f9b48355451fa893a055b9f72 Mon Sep 17 00:00:00 2001 From: Cherry7 <79909910+CCherry07@users.noreply.github.com> Date: Fri, 28 Jul 2023 01:01:16 +0800 Subject: [PATCH 2/3] chore: support antdv4 new components (#658) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: 内小子 --- src/core/resolvers/antdv.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/core/resolvers/antdv.ts b/src/core/resolvers/antdv.ts index 35c38865..16f64d37 100644 --- a/src/core/resolvers/antdv.ts +++ b/src/core/resolvers/antdv.ts @@ -164,6 +164,10 @@ const matchComponents: IMatcher[] = [ pattern: /^Qrcode/, styleDir: 'qrcode', }, + { + pattern: /^Space/, + styleDir: 'space', + }, ] export interface AntDesignVueResolverOptions { @@ -246,7 +250,7 @@ function getSideEffects(compName: string, options: AntDesignVueResolverOptions): return `${packageName}/${lib}/${styleDir}/style/css` } } -const 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', 'FloatButton', 'FloatButtonGroup', 'Qrcode', 'Watermark', 'Segmented', 'Tour'] +const 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', 'FloatButton', 'FloatButtonGroup', 'Qrcode', 'Watermark', 'Segmented', 'Tour', 'SpaceCompact', 'StyleProvider'] const prefix = 'A' let antdvNames: Set @@ -263,6 +267,8 @@ function isAntdv(compName: string): boolean { function getImportName(compName: string): string { if (compName === 'Qrcode') return 'QRCode' + else if (compName === 'SpaceCompact') + return 'Compact' return compName } From 7c9169841dd83f54a4034a1d3a34c044f468ef4a Mon Sep 17 00:00:00 2001 From: lishaobos Date: Mon, 7 Aug 2023 18:40:15 +0800 Subject: [PATCH 3/3] fix: tsx component type declaration --- src/core/declaration.ts | 12 +++++--- test/__snapshots__/dts.test.ts.snap | 48 ++++++++++++++++++++++++++--- 2 files changed, 51 insertions(+), 9 deletions(-) diff --git a/src/core/declaration.ts b/src/core/declaration.ts index fa6241c4..9dc9a9ed 100644 --- a/src/core/declaration.ts +++ b/src/core/declaration.ts @@ -114,11 +114,9 @@ export function getDeclaration(ctx: Context, filepath: string, originalImports?: directive: stringifyDeclarationImports({ ...originalImports?.directive, ...imports.directive }), } - const head = ctx.options.version === 2.7 - ? `export {} + const head = `export {} -declare module 'vue' {` - : `export {} +import { GlobalComponents } from 'vue' declare module 'vue' {` @@ -142,6 +140,12 @@ ${head}` }` } code += '\n}\n' + if (Object.keys(declarations.component).length > 0) { + code += ` +declare global { + ${declarations.component.map(d => d.replace(/(.+):/, 'const $1:')).join('\n ')} +}` + } return code } diff --git a/test/__snapshots__/dts.test.ts.snap b/test/__snapshots__/dts.test.ts.snap index ea2af4da..e3db46a4 100644 --- a/test/__snapshots__/dts.test.ts.snap +++ b/test/__snapshots__/dts.test.ts.snap @@ -8,6 +8,8 @@ exports[`dts > components only 1`] = ` // Read more: https://github.com/vuejs/core/pull/3399 export {} +import { GlobalComponents } from 'vue' + declare module 'vue' { export interface GlobalComponents { RouterLink: typeof import('vue-router')['RouterLink'] @@ -15,7 +17,12 @@ declare module 'vue' { TestComp: typeof import('test/component/TestComp')['default'] } } -" + +declare global { + const RouterLink: typeof import('vue-router')['RouterLink'] + const RouterView: typeof import('vue-router')['RouterView'] + const TestComp: typeof import('test/component/TestComp')['default'] +}" `; exports[`dts > directive only 1`] = ` @@ -26,6 +33,8 @@ exports[`dts > directive only 1`] = ` // Read more: https://github.com/vuejs/core/pull/3399 export {} +import { GlobalComponents } from 'vue' + declare module 'vue' { export interface ComponentCustomProperties { vLoading: typeof import('test/directive/Loading')['default'] @@ -42,6 +51,8 @@ exports[`dts > getDeclaration 1`] = ` // Read more: https://github.com/vuejs/core/pull/3399 export {} +import { GlobalComponents } from 'vue' + declare module 'vue' { export interface GlobalComponents { RouterLink: typeof import('vue-router')['RouterLink'] @@ -52,7 +63,12 @@ declare module 'vue' { vLoading: typeof import('test/directive/Loading')['default'] } } -" + +declare global { + const RouterLink: typeof import('vue-router')['RouterLink'] + const RouterView: typeof import('vue-router')['RouterView'] + const TestComp: typeof import('test/component/TestComp')['default'] +}" `; exports[`dts > parseDeclaration - has icon component like 1`] = ` @@ -100,6 +116,8 @@ exports[`dts > vue 2.7 components only 1`] = ` // Read more: https://github.com/vuejs/core/pull/3399 export {} +import { GlobalComponents } from 'vue' + declare module 'vue' { export interface GlobalComponents { RouterLink: typeof import('vue-router')['RouterLink'] @@ -107,7 +125,12 @@ declare module 'vue' { TestComp: typeof import('test/component/TestComp')['default'] } } -" + +declare global { + const RouterLink: typeof import('vue-router')['RouterLink'] + const RouterView: typeof import('vue-router')['RouterView'] + const TestComp: typeof import('test/component/TestComp')['default'] +}" `; exports[`dts > writeDeclaration - keep unused 1`] = ` @@ -118,6 +141,8 @@ exports[`dts > writeDeclaration - keep unused 1`] = ` // Read more: https://github.com/vuejs/core/pull/3399 export {} +import { GlobalComponents } from 'vue' + declare module 'vue' { export interface GlobalComponents { RouterLink: typeof import('vue-router')['RouterLink'] @@ -131,7 +156,13 @@ declare module 'vue' { vSome: typeof import('test/directive/Some')['default'] } } -" + +declare global { + const RouterLink: typeof import('vue-router')['RouterLink'] + const RouterView: typeof import('vue-router')['RouterView'] + const SomeComp: typeof import('test/component/SomeComp')['default'] + const TestComp: typeof import('test/component/TestComp')['default'] +}" `; exports[`dts > writeDeclaration 1`] = ` @@ -142,6 +173,8 @@ exports[`dts > writeDeclaration 1`] = ` // Read more: https://github.com/vuejs/core/pull/3399 export {} +import { GlobalComponents } from 'vue' + declare module 'vue' { export interface GlobalComponents { RouterLink: typeof import('vue-router')['RouterLink'] @@ -152,5 +185,10 @@ declare module 'vue' { vLoading: typeof import('test/directive/Loading')['default'] } } -" + +declare global { + const RouterLink: typeof import('vue-router')['RouterLink'] + const RouterView: typeof import('vue-router')['RouterView'] + const TestComp: typeof import('test/component/TestComp')['default'] +}" `;