@@ -63,6 +63,7 @@ export class NguiDatetimePickerDirective implements OnInit, OnChanges {
63
63
64
64
inputEl : HTMLInputElement ;
65
65
clickedDatetimePicker : boolean ;
66
+ userModifyingValue : boolean = false ;
66
67
67
68
constructor (
68
69
private resolver :ComponentFactoryResolver ,
@@ -162,9 +163,14 @@ export class NguiDatetimePickerDirective implements OnInit, OnChanges {
162
163
if ( this . inputEl ) {
163
164
this . inputEl . addEventListener ( 'focus' , this . showDatetimePicker ) ;
164
165
this . inputEl . addEventListener ( 'blur' , this . hideDatetimePicker ) ;
166
+ this . inputEl . addEventListener ( 'keydown' , this . handleKeyDown ) ;
165
167
}
166
168
}
167
169
170
+ handleKeyDown = ( event ) => {
171
+ this . userModifyingValue = true ;
172
+ }
173
+
168
174
169
175
ngOnChanges ( changes : SimpleChanges ) {
170
176
let date ;
@@ -177,15 +183,17 @@ export class NguiDatetimePickerDirective implements OnInit, OnChanges {
177
183
this . updateDatepicker ( ) ;
178
184
} else if ( date && typeof date === 'string' ) {
179
185
/** if program assigns a string value, then format to date later */
180
- setTimeout ( ( ) => {
181
- let dt = this . getDate ( date ) ;
182
- dt . toString = ( ) => NguiDatetime . formatDate ( dt , this . dateFormat , this . dateOnly ) ;
183
- this . ngModel = dt ;
184
- this . inputEl . value = '' + dt ;
185
- } )
186
+ if ( ! this . userModifyingValue ) {
187
+ setTimeout ( ( ) => {
188
+ let dt = this . getDate ( date ) ;
189
+ dt . toString = ( ) => NguiDatetime . formatDate ( dt , this . dateFormat , this . dateOnly ) ;
190
+ this . ngModel = dt ;
191
+ this . inputEl . value = '' + dt ;
192
+ } )
193
+ }
186
194
}
187
195
}
188
-
196
+ this . userModifyingValue = false ;
189
197
}
190
198
191
199
updateDatepicker ( ) {
0 commit comments