@@ -188,10 +188,13 @@ const generateComponentCode = ({
188
188
189
189
const imports = pro
190
190
? ''
191
- : external . map ( ( ext , index ) => {
192
- const type = externalTypes [ index ] ?. replace ( / [ [ \] ] / g, '' )
193
- return `import type { ${ type } } from '@nuxt/${ pro ? 'ui-pro' : 'ui' } '`
194
- } ) . join ( '\n' )
191
+ : external
192
+ . filter ( ( _ , index ) => externalTypes [ index ] && externalTypes [ index ] !== 'undefined' )
193
+ . map ( ( ext , index ) => {
194
+ const type = externalTypes [ index ] ?. replace ( / [ [ \] ] / g, '' )
195
+ return `import type { ${ type } } from '@nuxt/${ pro ? 'ui-pro' : 'ui' } '`
196
+ } )
197
+ . join ( '\n' )
195
198
196
199
let itemsCode = ''
197
200
if ( props . items ) {
@@ -201,6 +204,11 @@ const generateComponentCode = ({
201
204
delete filteredProps . items
202
205
}
203
206
207
+ let calendarValueCode = ''
208
+ if ( componentName === 'calendar' && props . modelValue && Array . isArray ( props . modelValue ) ) {
209
+ calendarValueCode = `const value = ref(new CalendarDate(${ props . modelValue . join ( ', ' ) } ))`
210
+ }
211
+
204
212
const propsString = Object . entries ( filteredProps )
205
213
. map ( ( [ key , value ] ) => {
206
214
const formattedKey = kebabCase ( key )
@@ -217,14 +225,16 @@ const generateComponentCode = ({
217
225
. join ( ' ' )
218
226
219
227
const itemsProp = props . items ? ':items="items"' : ''
220
- const allProps = [ propsString , itemsProp ] . filter ( Boolean ) . join ( ' ' )
228
+ const vModelProp = componentName === 'calendar' && props . modelValue ? 'v-model="value"' : ''
229
+ const allProps = [ propsString , itemsProp , vModelProp ] . filter ( Boolean ) . join ( ' ' )
221
230
const formattedProps = allProps ? ` ${ allProps } ` : ''
222
231
223
232
let scriptSetup = ''
224
- if ( imports || itemsCode ) {
233
+ if ( imports || itemsCode || calendarValueCode ) {
225
234
scriptSetup = '<script setup lang="ts">'
226
235
if ( imports ) scriptSetup += `\n${ imports } `
227
- if ( imports && itemsCode ) scriptSetup += '\n'
236
+ if ( imports && ( itemsCode || calendarValueCode ) ) scriptSetup += '\n'
237
+ if ( calendarValueCode ) scriptSetup += `\n${ calendarValueCode } `
228
238
if ( itemsCode ) scriptSetup += `\n${ itemsCode } `
229
239
scriptSetup += '\n</script>\n\n'
230
240
}
0 commit comments