Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions packages/fiori/cypress/specs/Search.cy.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -833,6 +833,31 @@ describe("Properties", () => {
.find(".ui5-search-item-selected-delete")
.should("be.focused");
});

it("SearchItemGroup has wrapping type set to Normal", () => {
cy.mount(
<Search>
<SearchItemGroup headerText="Very long group header text that should wrap when wrapping type is set to Normal">
<SearchItem text="List Item 1" icon={history}></SearchItem>
<SearchItem text="List Item 2" icon={searchIcon}></SearchItem>
</SearchItemGroup>
</Search>
);

cy.get("[ui5-search]")
.shadow()
.find("input")
.realClick();

cy.get("[ui5-search]")
.realPress("L");

// Verify that the header element has the correct wrapping-type attribute
cy.get("ui5-search-item-group")
.shadow()
.find("[ui5-li-group-header]")
.should("have.attr", "wrapping-type", "Normal");
});
});

describe("Events", () => {
Expand Down
5 changes: 5 additions & 0 deletions packages/fiori/src/SearchItemGroup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
import ListItemGroup from "@ui5/webcomponents/dist/ListItemGroup.js";
import SearchItemGroupCss from "./generated/themes/SearchItemGroup.css.js";
import ListBoxItemGroupTemplate from "@ui5/webcomponents/dist/ListBoxItemGroupTemplate.js";
import WrappingType from "@ui5/webcomponents/dist/types/WrappingType.js";

/**
* @class
Expand All @@ -25,6 +26,10 @@ class SearchItemGroup extends ListItemGroup {
get isGroupItem(): boolean {
return true;
}

getGroupHeaderWrapping(): WrappingType {
return WrappingType.Normal;
}
}

SearchItemGroup.define();
Expand Down
4 changes: 4 additions & 0 deletions packages/fiori/src/themes/SearchItemGroup.css
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@
list-style-type: none;
}

[ui5-li-group-header]::part(native-li) {
line-height: normal;
padding-bottom: 0.5rem;
}

[ui5-li-group-header] {
border-bottom: var(--sapList_BorderWidth) solid var(--sapList_GroupHeaderBorderColor);
Expand Down
11 changes: 8 additions & 3 deletions packages/fiori/test/pages/Search.html
Original file line number Diff line number Diff line change
Expand Up @@ -258,9 +258,14 @@
<ui5-search id="search-with-loading" show-clear-icon placeholder="Search..."></ui5-search>
</div>

<div class="container last" style="padding-top: 1rem;">
<ui5-label>Search with lazy loaded Suggestions - Autocomplete and highlighting</ui5-label>
<ui5-search id="search-lazy" show-clear-icon placeholder="Type 'a'..."></ui5-search>
<div class="container last">
<ui5-label>Search with Suggestions with long group header text (wrapping)</ui5-label>
<ui5-search id="search" show-clear-icon placeholder="Placeholder">
<ui5-search-item-group header-text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue. Praesent egestas leo in pede. Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum. Maecenas adipiscing ante non diam sodales hendrerit.">
<ui5-search-item text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue. Praesent egestas leo in pede. Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum. Maecenas adipiscing ante non diam sodales hendrerit." icon="search" ></ui5-search-item>
<ui5-search-item text="List Item" icon="search" ></ui5-search-item>
</ui5-search-item-group>
</ui5-search>
</div>

<script>
Expand Down
2 changes: 1 addition & 1 deletion packages/main/src/ListBoxItemGroupTemplate.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export default function ListItemGroupTemplate(this: ListItemGroup, hooks?: { ite
onDragLeave={this._ondragleave}
>
{this.hasHeader &&
<ListItemGroupHeader focused={this.focused} part="header" accessibleRole={ListItemAccessibleRole.Group}>
<ListItemGroupHeader focused={this.focused} part="header" accessibleRole={ListItemAccessibleRole.Group} wrappingType={this.getGroupHeaderWrapping()} >
{ this.hasFormattedHeader ? <slot name="header"></slot> : this.headerText }
</ListItemGroupHeader>
}
Expand Down
4 changes: 3 additions & 1 deletion packages/main/src/ListItemGroup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import ListItemGroupTemplate from "./ListItemGroupTemplate.js";
// Styles
import ListItemGroupCss from "./generated/themes/ListItemGroup.css.js";
import type ListItemGroupHeader from "./ListItemGroupHeader.js";
import type WrappingType from "./types/WrappingType.js";
import WrappingType from "./types/WrappingType.js";

type ListItemGroupMoveEventDetail = {
source: {
Expand Down Expand Up @@ -207,6 +207,8 @@ class ListItemGroup extends UI5Element {
getFocusDomRef() {
return this.groupHeaderItem || this.items.at(0);
}

getGroupHeaderWrapping(): WrappingType { return WrappingType.None; }
}

ListItemGroup.define();
Expand Down
Loading