@@ -19,7 +19,6 @@ import { useInjectFormItemContext } from '../form/FormItemContext';
1919import omit from '../_util/omit' ;
2020import useConfigInject from '../_util/hooks/useConfigInject' ;
2121import type { ChangeEvent , FocusEventHandler } from '../_util/EventInterface' ;
22- import { controlDefaultValue } from '../_util/util' ;
2322
2423export function fixControlledValue ( value : string | number ) {
2524 if ( typeof value === 'undefined' || value === null ) {
@@ -134,13 +133,21 @@ export default defineComponent({
134133 let removePasswordTimeout : any ;
135134 const formItemContext = useInjectFormItemContext ( ) ;
136135 const { direction, prefixCls, size, autocomplete } = useConfigInject ( 'input' , props ) ;
137- const stateValue = ref ( props . value === controlDefaultValue ? props . defaultValue : props . value ) ;
136+ const stateValue = ref ( props . value === undefined ? props . defaultValue : props . value ) ;
138137 const focused = ref ( false ) ;
139138
140139 watch (
141140 ( ) => props . value ,
142141 ( ) => {
143- if ( props . value !== controlDefaultValue ) {
142+ if ( props . value !== undefined ) {
143+ stateValue . value = props . value ;
144+ }
145+ } ,
146+ ) ;
147+ watch (
148+ ( ) => props . disabled ,
149+ ( ) => {
150+ if ( props . value !== undefined ) {
144151 stateValue . value = props . value ;
145152 }
146153 } ,
@@ -181,7 +188,7 @@ export default defineComponent({
181188 expose ( {
182189 focus,
183190 blur,
184- inputRef,
191+ input : inputRef ,
185192 stateValue,
186193 setSelectionRange,
187194 select,
@@ -217,7 +224,7 @@ export default defineComponent({
217224 if ( stateValue . value === value ) {
218225 return ;
219226 }
220- if ( props . value === controlDefaultValue ) {
227+ if ( props . value === undefined ) {
221228 stateValue . value = value ;
222229 } else {
223230 instance . update ( ) ;
@@ -234,9 +241,10 @@ export default defineComponent({
234241 } ;
235242
236243 const handleChange = ( e : ChangeEvent ) => {
237- const { value, composing, isComposing } = e . target as any ;
244+ const { value, composing } = e . target as any ;
238245 // https://github.com/vueComponent/ant-design-vue/issues/2203
239- if ( ( ( isComposing || composing ) && props . lazy ) || stateValue . value === value ) return ;
246+ if ( ( ( ( e as any ) . isComposing || composing ) && props . lazy ) || stateValue . value === value )
247+ return ;
240248 const newVal = e . target . value ;
241249 resolveOnChange ( inputRef . value , e , triggerChange ) ;
242250 setValue ( newVal , ( ) => {
@@ -270,6 +278,7 @@ export default defineComponent({
270278 disabled,
271279 bordered = true ,
272280 valueModifiers = { } ,
281+ htmlSize,
273282 } = props ;
274283 const otherProps = omit ( props as InputProps & { inputType : any ; placeholder : string } , [
275284 'prefixCls' ,
@@ -285,9 +294,11 @@ export default defineComponent({
285294 'size' ,
286295 'inputType' ,
287296 'bordered' ,
297+ 'htmlSize' ,
288298 ] ) ;
289299 const inputProps = {
290300 ...otherProps ,
301+ ...attrs ,
291302 autocomplete : autocomplete . value ,
292303 onChange : handleChange ,
293304 onInput : handleChange ,
@@ -302,6 +313,7 @@ export default defineComponent({
302313 ) ,
303314 ref : inputRef ,
304315 key : 'ant-input' ,
316+ size : htmlSize ,
305317 } ;
306318 if ( valueModifiers . lazy ) {
307319 delete inputProps . onInput ;
@@ -321,7 +333,7 @@ export default defineComponent({
321333 inputType : 'input' ,
322334 value : fixControlledValue ( stateValue . value ) ,
323335 handleReset,
324- focused : focused . value ,
336+ focused : focused . value && props . disabled ,
325337 } ;
326338
327339 return (
0 commit comments