@@ -110,10 +110,30 @@ export const VDatePicker = genericComponent<new <
110
110
111
111
const viewMode = useProxiedModel ( props , 'viewMode' )
112
112
// const inputMode = useProxiedModel(props, 'inputMode')
113
+
114
+ const minDate = computed ( ( ) => {
115
+ const date = adapter . date ( props . min )
116
+
117
+ return props . min && adapter . isValid ( date ) ? date : null
118
+ } )
119
+ const maxDate = computed ( ( ) => {
120
+ const date = adapter . date ( props . max )
121
+
122
+ return props . max && adapter . isValid ( date ) ? date : null
123
+ } )
124
+
113
125
const internal = computed ( ( ) => {
114
- const value = adapter . date ( model . value ?. [ 0 ] )
126
+ const today = adapter . date ( )
127
+ let value = today
128
+ if ( model . value ?. [ 0 ] ) {
129
+ value = adapter . date ( model . value [ 0 ] )
130
+ } else if ( minDate . value && adapter . isBefore ( today , minDate . value ) ) {
131
+ value = minDate . value
132
+ } else if ( maxDate . value && adapter . isAfter ( today , maxDate . value ) ) {
133
+ value = maxDate . value
134
+ }
115
135
116
- return value && adapter . isValid ( value ) ? value : adapter . date ( )
136
+ return value && adapter . isValid ( value ) ? value : today
117
137
} )
118
138
119
139
const month = ref ( Number ( props . month ?? adapter . getMonth ( adapter . startOfMonth ( internal . value ) ) ) )
@@ -140,16 +160,7 @@ export const VDatePicker = genericComponent<new <
140
160
} )
141
161
// const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)
142
162
const headerTransition = computed ( ( ) => `date-picker-header${ isReversing . value ? '-reverse' : '' } -transition` )
143
- const minDate = computed ( ( ) => {
144
- const date = adapter . date ( props . min )
145
163
146
- return props . min && adapter . isValid ( date ) ? date : null
147
- } )
148
- const maxDate = computed ( ( ) => {
149
- const date = adapter . date ( props . max )
150
-
151
- return props . max && adapter . isValid ( date ) ? date : null
152
- } )
153
164
const disabled = computed ( ( ) => {
154
165
if ( props . disabled ) return true
155
166
0 commit comments