Skip to content

Commit ca2fa23

Browse files
authored
feat: ui5-combobox initial implementation (#1123)
* feat: ui5-combobox initial implementation * add test for item selection * improve test page * add 3 types of filters * improve lazy loading sample * correct test after starts with per term implementation * add more tests
1 parent c9e54da commit ca2fa23

14 files changed

+1216
-40
lines changed

packages/main/bundle.esm.js

+2
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ import TimelineItem from "./dist/TimelineItem.js";
4747
import Title from "./dist/Title.js";
4848
import Toast from "./dist/Toast.js";
4949
import ToggleButton from "./dist/ToggleButton.js";
50+
import ComboBox from "./dist/ComboBox.js";
51+
import ComboBoxItem from "./dist/ComboBoxItem.js";
5052

5153
import List from "./dist/List.js";
5254
import StandardListItem from "./dist/StandardListItem.js";

packages/main/src/ComboBox.hbs

+71
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
<div class="ui5-combobox-root"
2+
role="combobox"
3+
aria-haspopup="listbox"
4+
aria-expanded="{{open}}"
5+
>
6+
7+
<input id="ui5-combobox-input"
8+
.value="{{_tempValue}}"
9+
inner-input
10+
placeholder="{{placeholder}}"
11+
?disabled={{disabled}}
12+
?readonly={{readonly}}
13+
?required={{required}}
14+
value-state="{{valueState}}"
15+
@input="{{_input}}"
16+
@change="{{_inputChange}}"
17+
@keydown="{{_keydown}}"
18+
@focusin="{{_focusin}}"
19+
@focusout="{{_focusout}}"
20+
aria-autocomplete="both"
21+
/>
22+
23+
{{#unless readonly}}
24+
<ui5-icon
25+
name="slim-arrow-down"
26+
slot="icon"
27+
tabindex="-1"
28+
input-icon
29+
?pressed="{{_iconPressed}}"
30+
@click="{{_arrowClick}}"
31+
dir="{{dir}}"
32+
></ui5-icon>
33+
{{/unless}}
34+
35+
<ui5-popover
36+
class="ui5-combobox-popover"
37+
style={{styles.popover}}
38+
horizontal-align="Left"
39+
?no-arrow={{editable}}
40+
no-padding="true"
41+
placement-type="Bottom"
42+
initial-focus="ui5-combobox-input"
43+
@ui5-afterOpen={{_afterOpenPopover}}
44+
@ui5-afterClose={{_afterClosePopover}}
45+
>
46+
47+
<ui5-busyindicator
48+
?active={{loading}}
49+
size="Medium"
50+
class="ui5-combobox-busy"
51+
>
52+
</ui5-busyindicator>
53+
54+
<ui5-list
55+
separators="None"
56+
@ui5-itemClick={{_selectItem}}
57+
mode="SingleSelect"
58+
>
59+
{{#each _filteredItems}}
60+
<ui5-li
61+
type="Active"
62+
.mappedItem={{this}}
63+
?selected={{this.selected}}
64+
>
65+
{{this.text}}
66+
</ui5-li>
67+
{{/each}}
68+
</ui5-list>
69+
</ui5-popover>
70+
71+
</div>

0 commit comments

Comments
 (0)