@@ -83,11 +83,11 @@ export class UUIComboboxElement extends FormControlMixin(LitElement) {
83
83
return this . _value ;
84
84
}
85
85
set value ( newValue ) {
86
- super . value = newValue ;
87
-
88
86
if ( typeof newValue === 'string' ) {
89
87
this . _updateValue ( newValue ) ;
90
88
}
89
+
90
+ super . value = newValue ;
91
91
}
92
92
93
93
/**
@@ -185,7 +185,7 @@ export class UUIComboboxElement extends FormControlMixin(LitElement) {
185
185
private _onBlur = ( ) =>
186
186
requestAnimationFrame ( ( ) => {
187
187
if ( document . activeElement !== this ) {
188
- this . _close ( ) ;
188
+ this . _onClose ( ) ;
189
189
}
190
190
} ) ;
191
191
@@ -201,10 +201,9 @@ export class UUIComboboxElement extends FormControlMixin(LitElement) {
201
201
e . stopImmediatePropagation ( ) ;
202
202
203
203
this . value = this . _comboboxList ?. value || '' ;
204
- this . _displayValue = this . _comboboxList ?. displayValue || '' ;
205
204
this . search = this . value ? this . search : '' ;
206
205
207
- this . _close ( ) ;
206
+ this . _onClose ( ) ;
208
207
209
208
this . dispatchEvent ( new UUIComboboxEvent ( UUIComboboxEvent . CHANGE ) ) ;
210
209
} ;
@@ -214,16 +213,14 @@ export class UUIComboboxElement extends FormControlMixin(LitElement) {
214
213
this . open = true ;
215
214
} ;
216
215
217
- private _close = ( ) => {
216
+ private _onClose = ( ) => {
218
217
if ( ! this . open ) return ;
219
218
220
219
this . open = false ;
221
-
222
- // Reset display and input value:
223
- this . _displayValue = this . _comboboxList ?. displayValue || '' ;
220
+ this . search = '' ;
221
+ // Reset input(search-input) value:
224
222
this . _input . value = this . _displayValue ;
225
223
226
- this . search = '' ;
227
224
this . dispatchEvent ( new UUIComboboxEvent ( UUIComboboxEvent . SEARCH ) ) ;
228
225
} ;
229
226
@@ -238,21 +235,22 @@ export class UUIComboboxElement extends FormControlMixin(LitElement) {
238
235
}
239
236
240
237
if ( e . key === 'Escape' || e . key === 'Enter' ) {
241
- this . _close ( ) ;
238
+ this . _onClose ( ) ;
242
239
}
243
240
} ;
244
241
245
- private _clear = ( e : any ) => {
242
+ private _onClear = ( e : any ) => {
246
243
if ( e . key && e . key !== 'Enter' ) return ;
247
244
248
245
e . preventDefault ( ) ; // TODO: could we avoid this.
249
246
e . stopImmediatePropagation ( ) ; // TODO: could we avoid this.
250
247
251
- this . _displayValue = '' ;
252
- this . _input . value = this . _displayValue ;
253
- this . search = '' ;
254
248
this . value = '' ;
255
- this . _comboboxList . value = this . value ;
249
+ this . search = '' ;
250
+ // Reset input(search-input) value:
251
+ this . _input . value = this . _displayValue ;
252
+
253
+ this . dispatchEvent ( new UUIComboboxEvent ( UUIComboboxEvent . SEARCH ) ) ;
256
254
this . dispatchEvent ( new UUIComboboxEvent ( UUIComboboxEvent . CHANGE ) ) ;
257
255
} ;
258
256
@@ -263,7 +261,6 @@ export class UUIComboboxElement extends FormControlMixin(LitElement) {
263
261
label ="combobox-input "
264
262
type ="text "
265
263
.value =${ this . _displayValue }
266
- .placeholder =${ this . _displayValue }
267
264
autocomplete ="off"
268
265
@click=${ this . _open }
269
266
@input=${ this . _onInput }
@@ -284,8 +281,8 @@ export class UUIComboboxElement extends FormControlMixin(LitElement) {
284
281
return html `< uui-button
285
282
id ="clear-button "
286
283
class =${ this . value || this . search ? '--show' : '' }
287
- @click =${ this . _clear }
288
- @keydown=${ this . _clear }
284
+ @click =${ this . _onClear }
285
+ @keydown=${ this . _onClear }
289
286
label="clear"
290
287
slot="append"
291
288
compact
@@ -307,7 +304,7 @@ export class UUIComboboxElement extends FormControlMixin(LitElement) {
307
304
< uui-popover
308
305
.open =${ this . open }
309
306
.margin =${ - 1 }
310
- @close=${ ( ) => this . _close ( ) } >
307
+ @close=${ ( ) => this . _onClose ( ) } >
311
308
${ this . _renderInput ( ) } ${ this . _renderDropdown ( ) }
312
309
</ uui-popover >
313
310
` ;
0 commit comments