Skip to content

Commit 7742590

Browse files
authored
feat(ui5-multi-combobox): support two column layout for items (#2642)
Enables two-column layout items in the MultiComboBox. The MultiComboBoxItem already inherits the additionalText property from the ComboBoxItem, but never used it. The property is visible in the API reference and misleading users that can have two-column layout in the MultiComboBox as well. The change just uses the property in the template and forwards it to the physically rendered list item. FIXES: #2637
1 parent 4d713d5 commit 7742590

File tree

3 files changed

+33
-0
lines changed

3 files changed

+33
-0
lines changed

packages/main/src/MultiComboBoxPopover.hbs

+1
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
{{#each _filteredItems}}
7070
<ui5-li
7171
type="{{../_listItemsType}}"
72+
info={{this.additionalText}}
7273
?selected={{this.selected}}
7374
data-ui5-token-id="{{this._id}}"
7475
data-ui5-stable="{{this.stableDomRef}}"

packages/main/test/pages/MultiComboBox.html

+16
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,22 @@ <h3>MultiComboBox in Compact</h3>
279279
</div>
280280
</section>
281281

282+
<div class="demo-section">
283+
<ui5-label>Two-column items </ui5-label>
284+
<br/>
285+
<ui5-multi-combobox id="mcb-two-column-layout" style="width: 360px;">
286+
<ui5-mcb-item text="Algeria" additional-text="DZ"></ui5-mcb-item>
287+
<ui5-mcb-item text="Argentina" additional-text="AR"></ui5-mcb-item>
288+
<ui5-mcb-item text="Australia" additional-text="AU"></ui5-mcb-item>
289+
<ui5-mcb-item text="Austria" additional-text="AT"></ui5-mcb-item>
290+
<ui5-mcb-item text="Bahrain" additional-text="BH"></ui5-mcb-item>
291+
<ui5-mcb-item text="Belgium" additional-text="BE"></ui5-mcb-item>
292+
<ui5-mcb-item text="Brazil" additional-text="BR"></ui5-mcb-item>
293+
<ui5-mcb-item text="Bulgaria" additional-text="BG"></ui5-mcb-item>
294+
<ui5-mcb-item text="Canada" additional-text="CA"></ui5-mcb-item>
295+
<ui5-mcb-item text="Chile" additional-text="CL"></ui5-mcb-item>
296+
</ui5-multi-combobox>
297+
282298
<script>
283299
var eventNameInput = document.getElementById("events-input");
284300
var eventParamsInput = document.getElementById("events-parameters");

packages/main/test/specs/MultiComboBox.spec.js

+16
Original file line numberDiff line numberDiff line change
@@ -221,4 +221,20 @@ describe("MultiComboBox general interaction", () => {
221221
assert.strictEqual(tokens.length, 2, "2 tokens are visible");
222222
});
223223
});
224+
225+
describe("keyboard handling", () => {
226+
browser.url("http://localhost:8080/test-resources/pages/MultiComboBox.html");
227+
228+
it ("tests two-column layout", () => {
229+
const mcb = $("#mcb-two-column-layout");
230+
const staticAreaItemClassName = browser.getStaticAreaItemClassName("#mcb-two-column-layout");
231+
const icon = mcb.shadow$("[input-icon]");
232+
const popover = browser.$(`.${staticAreaItemClassName}`).shadow$(".ui5-multi-combobox-all-items-responsive-popover");
233+
const listItem = popover.$("ui5-list").$$("ui5-li")[0];
234+
235+
icon.click();
236+
assert.strictEqual(listItem.shadow$(".ui5-li-info").getText(), "DZ", "Additional item text should be displayed");
237+
icon.click();
238+
});
239+
});
224240
});

0 commit comments

Comments
 (0)