|
8 | 8 | </li>
|
9 | 9 | </template>
|
10 | 10 |
|
11 |
| -<script lang="ts"> |
12 |
| -import {ButtonVariant, Size} from '../types' |
13 |
| -import {defineComponent, PropType} from 'vue' |
| 11 | +<script setup lang="ts"> |
| 12 | +// import type {BNavItemDropdownProps} from '@/types/components' |
| 13 | +import type {ButtonVariant, Size} from '@/types' |
14 | 14 | import BDropdown from './BDropdown/BDropdown.vue'
|
15 | 15 |
|
16 |
| -export default defineComponent({ |
17 |
| - name: 'BNavItemDropdown', |
18 |
| - components: { |
19 |
| - BDropdown, |
20 |
| - }, |
21 |
| - props: { |
22 |
| - autoClose: {type: String, default: 'true'}, |
23 |
| - id: {type: String}, |
24 |
| - dark: {type: Boolean, default: false}, |
25 |
| - dropleft: {type: Boolean, default: false}, |
26 |
| - dropright: {type: Boolean, default: false}, |
27 |
| - dropup: {type: Boolean, default: false}, |
28 |
| - right: {type: [Boolean, String], default: false}, |
29 |
| - left: {type: [Boolean, String], default: false}, |
30 |
| - text: {type: String}, |
31 |
| - offset: {type: String}, |
32 |
| - offsetParent: {type: Boolean, default: false}, |
33 |
| - split: {type: Boolean, default: false}, |
34 |
| - splitVariant: {type: String as PropType<ButtonVariant>}, |
35 |
| - size: {type: String as PropType<Size>}, |
36 |
| - variant: {type: String as PropType<ButtonVariant>, default: 'link'}, |
37 |
| - }, |
38 |
| - setup(props) { |
39 |
| - return { |
40 |
| - props, |
41 |
| - } |
42 |
| - }, |
| 16 | +interface BNavItemDropdownProps { |
| 17 | + id: string |
| 18 | + text: string |
| 19 | + size: Size |
| 20 | + offset: string |
| 21 | + autoClose?: string |
| 22 | + dark?: boolean |
| 23 | + dropleft?: boolean |
| 24 | + dropright?: boolean |
| 25 | + dropup?: boolean |
| 26 | + right?: boolean | string |
| 27 | + left?: boolean | string |
| 28 | + offsetParent?: boolean |
| 29 | + split?: boolean |
| 30 | + splitVariant: ButtonVariant |
| 31 | + variant?: ButtonVariant |
| 32 | +} |
| 33 | +
|
| 34 | +withDefaults(defineProps<BNavItemDropdownProps>(), { |
| 35 | + autoClose: 'true', |
| 36 | + dark: false, |
| 37 | + dropleft: false, |
| 38 | + dropright: false, |
| 39 | + dropup: false, |
| 40 | + right: false, |
| 41 | + left: false, |
| 42 | + offsetParent: false, |
| 43 | + split: false, |
| 44 | + variant: 'link', |
43 | 45 | })
|
44 | 46 | </script>
|
0 commit comments