File tree 2 files changed +24
-0
lines changed
2 files changed +24
-0
lines changed Original file line number Diff line number Diff line change @@ -158,6 +158,7 @@ class Select extends WebComponent {
158
158
constructor ( ) {
159
159
super ( ) ;
160
160
161
+ this . _closing = false ; // Flag for handling open/close on space
161
162
this . _setSelectedItem ( null ) ;
162
163
this . _setPreviewedItem ( null ) ;
163
164
this . Suggestions = new Suggestions ( this , "items" , true /* move focus with arrow keys */ ) ;
@@ -191,6 +192,11 @@ class Select extends WebComponent {
191
192
}
192
193
193
194
if ( isSpace ( event ) ) {
195
+ if ( ! this . _isOpened ( ) ) {
196
+ this . _closing = true ;
197
+ return event . preventDefault ( ) ;
198
+ }
199
+ this . _closing = false ;
194
200
return this . Suggestions . onSpace ( event ) ;
195
201
}
196
202
@@ -206,6 +212,12 @@ class Select extends WebComponent {
206
212
}
207
213
}
208
214
215
+ onkeyup ( event ) {
216
+ if ( isSpace ( event ) ) {
217
+ return this . Suggestions . toggle ( this . _closing ) ; // Open Suggestions
218
+ }
219
+ }
220
+
209
221
onfocusin ( event ) {
210
222
this . _focused = true ; // invalidating property
211
223
}
Original file line number Diff line number Diff line change @@ -52,6 +52,18 @@ describe("Select general interaction", () => {
52
52
assert . ok ( selectText . getHTML ( false ) . indexOf ( EXPECTED_SELECTION_TEXT2 ) !== - 1 , "Select label is correct." ) ;
53
53
} ) ;
54
54
55
+ it ( "opens upon space" , ( ) => {
56
+ const btn = $ ( "#myBtn2" ) ;
57
+ const select = $ ( "#mySelect" ) ;
58
+ const popover = browser . findElementDeep ( "#mySelect >>> ui5-popover >>> .sapMPopover" ) ;
59
+
60
+ btn . click ( ) ;
61
+ btn . keys ( "Tab" ) ;
62
+
63
+ browser . keys ( "Space" ) ;
64
+ assert . ok ( popover . isDisplayedInViewport ( ) , "Select is opened." ) ;
65
+ } ) ;
66
+
55
67
it ( "toggles upon F4" , ( ) => {
56
68
const btn = $ ( "#myBtn2" ) ;
57
69
const select = $ ( "#mySelect" ) ;
You can’t perform that action at this time.
0 commit comments