diff --git a/src/config.json b/src/config.json index 8d8845d88e..f8c5368df1 100644 --- a/src/config.json +++ b/src/config.json @@ -1082,6 +1082,7 @@ "cName": "折叠面板", "type": "component", "show": true, + "setup": true, "desc": "折叠面板", "author": "Ymm0008" }, @@ -1095,6 +1096,7 @@ "show": false, "exportEmpty": true, "exportEmptyTaro": true, + "setup": true, "desc": "折叠面板-item", "author": "Ymm0008" }, diff --git a/src/packages/__VUE/collapse/__tests__/collapse.spec.tsx b/src/packages/__VUE/collapse/__tests__/collapse.spec.tsx index f23e9426a9..170c92bfff 100644 --- a/src/packages/__VUE/collapse/__tests__/collapse.spec.tsx +++ b/src/packages/__VUE/collapse/__tests__/collapse.spec.tsx @@ -1,8 +1,8 @@ import { mount } from '@vue/test-utils'; import { nextTick } from 'vue'; import { Heart } from '@nutui/icons-vue'; -import Collapse from '../index.vue'; -import CollapseItem from '../../collapseitem/index.vue'; +import Collapse from '../'; +import CollapseItem from '../../collapseitem'; test('Collapse: should props active', async () => { const wrapper = mount(() => { @@ -131,10 +131,17 @@ test('Collapse: v-model is undefined', async () => { const collapseTitles = wrapper.findAll('.nut-collapse-item__title'); expect(collapseTitles.length).toBe(2); collapseTitles[1].trigger('click'); - expect(onChange).toBeCalledWith([222222], 222222, true); + expect(onChange).toBeCalledTimes(1); + expect(onChange).toHaveBeenLastCalledWith([222222], 222222, true); // collapse-item can expand const items = wrapper.findAllComponents(CollapseItem); + // @ts-ignore expect(items[0].vm.expanded).toBe(false); + // @ts-ignore expect(items[1].vm.expanded).toBe(true); + + collapseTitles[1].trigger('click'); + expect(onChange).toBeCalledTimes(2); + expect(onChange).toHaveBeenLastCalledWith([], 222222, false); }); diff --git a/src/packages/__VUE/collapse/collapse.taro.vue b/src/packages/__VUE/collapse/collapse.taro.vue new file mode 100644 index 0000000000..6c2f25dd00 --- /dev/null +++ b/src/packages/__VUE/collapse/collapse.taro.vue @@ -0,0 +1,76 @@ + + diff --git a/src/packages/__VUE/collapse/collapse.vue b/src/packages/__VUE/collapse/collapse.vue new file mode 100644 index 0000000000..6c2f25dd00 --- /dev/null +++ b/src/packages/__VUE/collapse/collapse.vue @@ -0,0 +1,76 @@ + + diff --git a/src/packages/__VUE/collapse/doc.en-US.md b/src/packages/__VUE/collapse/doc.en-US.md index 235e5eac4a..2da9fd0713 100644 --- a/src/packages/__VUE/collapse/doc.en-US.md +++ b/src/packages/__VUE/collapse/doc.en-US.md @@ -84,6 +84,20 @@ Set a custom icon through the `slots.icon` or `props.icon` property. | --- | --- | --- | | change | Triggered when switching panels | `(modelValue, currName, status)` | +### Types version + +The component exports the following type definitions: + +```js +import type { + CollapseValue, + CollapseProps, + CollapseInstance, + CollapseItemProps, + CollapseItemInstance +} from '@nutui/nutui'; +``` + ## 主题定制 ### 样式变量 diff --git a/src/packages/__VUE/collapse/doc.md b/src/packages/__VUE/collapse/doc.md index ac1d41360c..1081e18954 100644 --- a/src/packages/__VUE/collapse/doc.md +++ b/src/packages/__VUE/collapse/doc.md @@ -84,6 +84,20 @@ CollapseItem 组件必须设置 name 属性作为唯一标识符。 | --- | --- | --- | | change | 切换面板时触发 | `(modelValue, currName, status)` | +### 类型定义 version + +组件导出以下类型定义: + +```js +import type { + CollapseValue, + CollapseProps, + CollapseInstance, + CollapseItemProps, + CollapseItemInstance +} from '@nutui/nutui'; +``` + ## 主题定制 ### 样式变量 diff --git a/src/packages/__VUE/collapse/doc.taro.md b/src/packages/__VUE/collapse/doc.taro.md index d29b7b8cf5..31742eed6e 100644 --- a/src/packages/__VUE/collapse/doc.taro.md +++ b/src/packages/__VUE/collapse/doc.taro.md @@ -84,6 +84,20 @@ CollapseItem 组件必须设置 name 属性作为唯一标识符。 | --- | --- | --- | | change | 切换面板时触发 | `(modelValue, currName, status)` | +### 类型定义 version + +组件导出以下类型定义: + +```js +import type { + CollapseValue, + CollapseProps, + CollapseInstance, + CollapseItemProps, + CollapseItemInstance +} from '@nutui/nutui-taro'; +``` + ## 主题定制 ### 样式变量 diff --git a/src/packages/__VUE/collapse/index.taro.ts b/src/packages/__VUE/collapse/index.taro.ts new file mode 100644 index 0000000000..8557b2acd7 --- /dev/null +++ b/src/packages/__VUE/collapse/index.taro.ts @@ -0,0 +1,13 @@ +import Collapse from './collapse.taro.vue'; +import type { ComponentPublicInstance } from 'vue'; +import { withInstall } from '@/packages/utils'; + +withInstall(Collapse); + +export type { CollapseProps } from './collapse.taro.vue'; + +export type { CollapseValue } from './types'; + +export type CollapseInstance = ComponentPublicInstance & InstanceType; + +export { Collapse, Collapse as default }; diff --git a/src/packages/__VUE/collapse/index.taro.vue b/src/packages/__VUE/collapse/index.taro.vue deleted file mode 100644 index 8461f746f5..0000000000 --- a/src/packages/__VUE/collapse/index.taro.vue +++ /dev/null @@ -1,79 +0,0 @@ - - diff --git a/src/packages/__VUE/collapse/index.ts b/src/packages/__VUE/collapse/index.ts new file mode 100644 index 0000000000..e38004f9af --- /dev/null +++ b/src/packages/__VUE/collapse/index.ts @@ -0,0 +1,13 @@ +import Collapse from './collapse.vue'; +import type { ComponentPublicInstance } from 'vue'; +import { withInstall } from '@/packages/utils'; + +withInstall(Collapse); + +export type { CollapseProps } from './collapse.vue'; + +export type { CollapseValue } from './types'; + +export type CollapseInstance = ComponentPublicInstance & InstanceType; + +export { Collapse, Collapse as default }; diff --git a/src/packages/__VUE/collapse/index.vue b/src/packages/__VUE/collapse/index.vue deleted file mode 100644 index 8461f746f5..0000000000 --- a/src/packages/__VUE/collapse/index.vue +++ /dev/null @@ -1,79 +0,0 @@ - - diff --git a/src/packages/__VUE/collapse/types.ts b/src/packages/__VUE/collapse/types.ts index 99e00c5832..d4bc9a139d 100644 --- a/src/packages/__VUE/collapse/types.ts +++ b/src/packages/__VUE/collapse/types.ts @@ -1,6 +1,8 @@ import type { InjectionKey } from 'vue'; export const COLLAPSE_KEY = Symbol('nut-collapse') as InjectionKey<{ - updateVal: Function; - isExpanded: Function; + updateVal: (name: string | number) => void; + isExpanded: (name: string | number) => boolean; }>; + +export type CollapseValue = string | number | (string | number)[]; diff --git a/src/packages/__VUE/collapseitem/collapse-item.taro.vue b/src/packages/__VUE/collapseitem/collapse-item.taro.vue new file mode 100644 index 0000000000..934136f6c0 --- /dev/null +++ b/src/packages/__VUE/collapseitem/collapse-item.taro.vue @@ -0,0 +1,169 @@ + + diff --git a/src/packages/__VUE/collapseitem/collapse-item.vue b/src/packages/__VUE/collapseitem/collapse-item.vue new file mode 100644 index 0000000000..a06d2ebeae --- /dev/null +++ b/src/packages/__VUE/collapseitem/collapse-item.vue @@ -0,0 +1,134 @@ + + diff --git a/src/packages/__VUE/collapseitem/index.taro.ts b/src/packages/__VUE/collapseitem/index.taro.ts new file mode 100644 index 0000000000..010bb330a6 --- /dev/null +++ b/src/packages/__VUE/collapseitem/index.taro.ts @@ -0,0 +1,11 @@ +import CollapseItem from './collapse-item.taro.vue'; +import type { ComponentPublicInstance } from 'vue'; +import { withInstall } from '@/packages/utils'; + +withInstall(CollapseItem); + +export type { CollapseItemProps } from './collapse-item.taro.vue'; + +export type CollapseItemInstance = ComponentPublicInstance & InstanceType; + +export { CollapseItem, CollapseItem as default }; diff --git a/src/packages/__VUE/collapseitem/index.taro.vue b/src/packages/__VUE/collapseitem/index.taro.vue deleted file mode 100644 index 2a0f666ddf..0000000000 --- a/src/packages/__VUE/collapseitem/index.taro.vue +++ /dev/null @@ -1,191 +0,0 @@ - - diff --git a/src/packages/__VUE/collapseitem/index.ts b/src/packages/__VUE/collapseitem/index.ts new file mode 100644 index 0000000000..063e0d9521 --- /dev/null +++ b/src/packages/__VUE/collapseitem/index.ts @@ -0,0 +1,11 @@ +import CollapseItem from './collapse-item.vue'; +import type { ComponentPublicInstance } from 'vue'; +import { withInstall } from '@/packages/utils'; + +withInstall(CollapseItem); + +export type { CollapseItemProps } from './collapse-item.vue'; + +export type CollapseItemInstance = ComponentPublicInstance & InstanceType; + +export { CollapseItem, CollapseItem as default }; diff --git a/src/packages/__VUE/collapseitem/index.vue b/src/packages/__VUE/collapseitem/index.vue deleted file mode 100644 index dc0429ebaa..0000000000 --- a/src/packages/__VUE/collapseitem/index.vue +++ /dev/null @@ -1,160 +0,0 @@ - -