@sapudex/web-components 2.61.0 → 2.62.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/cypress/specs/AccordionSpotlight.cy.tsx +43 -2
  2. package/cypress/specs/Carousel.cy.tsx +88 -0
  3. package/cypress/specs/CountrySelector.cy.tsx +233 -6
  4. package/cypress/specs/FilterMenu.cy.tsx +39 -45
  5. package/cypress/specs/List.cy.tsx +624 -10
  6. package/cypress/specs/ListItem.cy.tsx +50 -0
  7. package/cypress/specs/SelectBox.cy.tsx +239 -131
  8. package/cypress/specs/SelectBoxAccessibility.cy.tsx +3109 -0
  9. package/cypress/specs/TagGroup.cy.tsx +168 -0
  10. package/dist/AccordionSpotlight.d.ts +7 -2
  11. package/dist/AccordionSpotlight.js +31 -6
  12. package/dist/AccordionSpotlight.js.map +1 -1
  13. package/dist/AccordionSpotlightItem.d.ts +3 -1
  14. package/dist/AccordionSpotlightItem.js +3 -1
  15. package/dist/AccordionSpotlightItem.js.map +1 -1
  16. package/dist/Carousel.d.ts +1 -0
  17. package/dist/Carousel.js +19 -3
  18. package/dist/Carousel.js.map +1 -1
  19. package/dist/CountrySelector.js +1 -3
  20. package/dist/CountrySelector.js.map +1 -1
  21. package/dist/List.d.ts +2 -0
  22. package/dist/List.js +22 -4
  23. package/dist/List.js.map +1 -1
  24. package/dist/ListGroupHeader.js +5 -1
  25. package/dist/ListGroupHeader.js.map +1 -1
  26. package/dist/ListGroupHeaderBase.d.ts +2 -0
  27. package/dist/ListGroupHeaderBase.js +15 -2
  28. package/dist/ListGroupHeaderBase.js.map +1 -1
  29. package/dist/ListGroupHeaderTemplate.js +14 -22
  30. package/dist/ListGroupHeaderTemplate.js.map +1 -1
  31. package/dist/ListItem.d.ts +1 -2
  32. package/dist/ListItem.js +14 -12
  33. package/dist/ListItem.js.map +1 -1
  34. package/dist/ListItemBase.d.ts +5 -0
  35. package/dist/ListItemBase.js +11 -1
  36. package/dist/ListItemBase.js.map +1 -1
  37. package/dist/ListItemTemplate.js +1 -1
  38. package/dist/ListItemTemplate.js.map +1 -1
  39. package/dist/ListSelectAllTemplate.js +1 -1
  40. package/dist/ListSelectAllTemplate.js.map +1 -1
  41. package/dist/ListTemplate.js +2 -1
  42. package/dist/ListTemplate.js.map +1 -1
  43. package/dist/Search.d.ts +13 -3
  44. package/dist/Search.js +36 -11
  45. package/dist/Search.js.map +1 -1
  46. package/dist/SearchableListBase.d.ts +2 -0
  47. package/dist/SearchableListBase.js +13 -3
  48. package/dist/SearchableListBase.js.map +1 -1
  49. package/dist/SearchableListBaseTemplate.js +42 -33
  50. package/dist/SearchableListBaseTemplate.js.map +1 -1
  51. package/dist/SelectBase.d.ts +18 -33
  52. package/dist/SelectBase.js +124 -139
  53. package/dist/SelectBase.js.map +1 -1
  54. package/dist/SelectBox.d.ts +3 -0
  55. package/dist/SelectBox.js +19 -7
  56. package/dist/SelectBox.js.map +1 -1
  57. package/dist/SelectBoxTemplate.js +3 -3
  58. package/dist/SelectBoxTemplate.js.map +1 -1
  59. package/dist/SideNavigationItem.js +2 -0
  60. package/dist/SideNavigationItem.js.map +1 -1
  61. package/dist/SideNavigationItemTemplate.d.ts +2 -0
  62. package/dist/SideNavigationItemTemplate.js +15 -0
  63. package/dist/SideNavigationItemTemplate.js.map +1 -0
  64. package/dist/SideNavigationMobile.js +1 -2
  65. package/dist/SideNavigationMobile.js.map +1 -1
  66. package/dist/SideNavigationSubItem.js +2 -1
  67. package/dist/SideNavigationSubItem.js.map +1 -1
  68. package/dist/SideNavigationSubItemTemplate.js +1 -2
  69. package/dist/SideNavigationSubItemTemplate.js.map +1 -1
  70. package/dist/TagGroup.d.ts +3 -0
  71. package/dist/TagGroup.js +31 -0
  72. package/dist/TagGroup.js.map +1 -1
  73. package/dist/TagGroupTemplate.js +1 -1
  74. package/dist/TagGroupTemplate.js.map +1 -1
  75. package/dist/assets/{InputSuggestions-1OnUn6pM.js → InputSuggestions-BPKrPqPb.js} +1 -1
  76. package/dist/assets/{ListItemStandardExpandableTextTemplate-CoBAMp_v.js → ListItemStandardExpandableTextTemplate-DkdOcCxC.js} +1 -1
  77. package/dist/assets/{bundle.esm-BqaVWFKf.js → bundle.esm-17Yt5gDr.js} +232 -233
  78. package/dist/css/themes/AccordionSpotlight.css +1 -1
  79. package/dist/css/themes/ListGroupHeader.css +1 -1
  80. package/dist/css/themes/SideNavigationItem.css +1 -1
  81. package/dist/css/themes/SideNavigationMobile.css +1 -1
  82. package/dist/css/themes/SideNavigationSubItem.css +1 -1
  83. package/dist/css/themes/Table.css +1 -1
  84. package/dist/custom-elements-internal.json +7 -7
  85. package/dist/custom-elements.json +7 -7
  86. package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
  87. package/dist/generated/i18n/i18n-defaults.js +2 -1
  88. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  89. package/dist/generated/themes/AccordionSpotlight.css.d.ts +1 -1
  90. package/dist/generated/themes/AccordionSpotlight.css.js +1 -1
  91. package/dist/generated/themes/AccordionSpotlight.css.js.map +1 -1
  92. package/dist/generated/themes/ListGroupHeader.css.d.ts +1 -1
  93. package/dist/generated/themes/ListGroupHeader.css.js +1 -1
  94. package/dist/generated/themes/ListGroupHeader.css.js.map +1 -1
  95. package/dist/generated/themes/SideNavigationItem.css.d.ts +1 -1
  96. package/dist/generated/themes/SideNavigationItem.css.js +1 -1
  97. package/dist/generated/themes/SideNavigationItem.css.js.map +1 -1
  98. package/dist/generated/themes/SideNavigationMobile.css.d.ts +1 -1
  99. package/dist/generated/themes/SideNavigationMobile.css.js +1 -1
  100. package/dist/generated/themes/SideNavigationMobile.css.js.map +1 -1
  101. package/dist/generated/themes/SideNavigationSubItem.css.d.ts +1 -1
  102. package/dist/generated/themes/SideNavigationSubItem.css.js +1 -1
  103. package/dist/generated/themes/SideNavigationSubItem.css.js.map +1 -1
  104. package/dist/generated/themes/Table.css.d.ts +1 -1
  105. package/dist/generated/themes/Table.css.js +1 -1
  106. package/dist/generated/themes/Table.css.js.map +1 -1
  107. package/dist/messagebundle.properties +3 -0
  108. package/dist/vscode.html-custom-data.json +4 -4
  109. package/dist/web-types.json +9 -9
  110. package/package.json +1 -1
  111. package/src/AccordionSpotlight.ts +35 -6
  112. package/src/AccordionSpotlightItem.ts +3 -1
  113. package/src/Carousel.ts +22 -3
  114. package/src/CountrySelector.ts +1 -3
  115. package/src/List.ts +21 -4
  116. package/src/ListGroupHeader.ts +5 -1
  117. package/src/ListGroupHeaderBase.ts +16 -2
  118. package/src/ListGroupHeaderTemplate.tsx +29 -47
  119. package/src/ListItem.ts +14 -13
  120. package/src/ListItemBase.ts +14 -1
  121. package/src/ListItemTemplate.tsx +4 -4
  122. package/src/ListSelectAllTemplate.tsx +10 -8
  123. package/src/ListTemplate.tsx +14 -10
  124. package/src/Search.ts +48 -13
  125. package/src/SearchableListBase.ts +15 -3
  126. package/src/SearchableListBaseTemplate.tsx +51 -36
  127. package/src/SelectBase.ts +130 -144
  128. package/src/SelectBox.ts +21 -7
  129. package/src/SelectBoxTemplate.tsx +10 -9
  130. package/src/SideNavigationItem.ts +2 -0
  131. package/src/SideNavigationItemTemplate.tsx +97 -0
  132. package/src/SideNavigationMobile.ts +1 -2
  133. package/src/SideNavigationSubItem.ts +2 -1
  134. package/src/SideNavigationSubItemTemplate.tsx +7 -6
  135. package/src/TagGroup.ts +32 -0
  136. package/src/TagGroupTemplate.tsx +1 -1
  137. package/src/generated/i18n/i18n-defaults.ts +2 -2
  138. package/src/generated/themes/AccordionSpotlight.css.ts +1 -1
  139. package/src/generated/themes/ListGroupHeader.css.ts +1 -1
  140. package/src/generated/themes/SideNavigationItem.css.ts +1 -1
  141. package/src/generated/themes/SideNavigationMobile.css.ts +1 -1
  142. package/src/generated/themes/SideNavigationSubItem.css.ts +1 -1
  143. package/src/generated/themes/Table.css.ts +1 -1
  144. package/src/i18n/messagebundle.properties +3 -0
  145. package/src/themes/AccordionSpotlight.css +9 -9
  146. package/src/themes/ListGroupHeader.css +2 -43
  147. package/src/themes/SideNavigationItem.css +56 -6
  148. package/src/themes/SideNavigationMobile.css +61 -15
  149. package/src/themes/SideNavigationSubItem.css +14 -109
  150. package/src/themes/Table.css +6 -1
  151. package/dist/css/themes/SideNavigationMobileDropdown.css +0 -1
  152. package/dist/generated/themes/SideNavigationMobileDropdown.css.d.ts +0 -2
  153. package/dist/generated/themes/SideNavigationMobileDropdown.css.js +0 -8
  154. package/dist/generated/themes/SideNavigationMobileDropdown.css.js.map +0 -1
  155. package/src/generated/themes/SideNavigationMobileDropdown.css.ts +0 -9
  156. package/src/themes/SideNavigationMobileDropdown.css +0 -36
@@ -1 +1 @@
1
- {"version":3,"file":"ListItemTemplate.js","sourceRoot":"","sources":["../src/ListItemTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { AriaRole } from \"@ui5/webcomponents-base/dist/types.js\";\nimport type UDExListItem from \"./ListItem.js\";\nimport UDExCheckbox from \"./Checkbox.js\";\nimport UDExRadioButton from \"./RadioButton.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UDExAvatar from \"./Avatar.js\";\nimport UDExStatusBadge from \"./StatusBadge.js\";\nimport UDExRatingIndicator from \"./RatingIndicator.js\";\nimport UDExButton from \"./Button.js\";\nimport UDExButtonSize from \"./types/ButtonSize.js\";\nimport UDExButtonDesign from \"./types/ButtonDesign.js\";\nimport slimArrowRight from \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\n\nfunction ContentList(this: UDExListItem) {\n return (\n <div\n class=\"udex-list__content-wrap\"\n {...({ \"_id\": this._id } as object)}\n aria-labelledby={`${this._id}-invisibleText`}\n aria-label={this.accessibleListItemName}>\n {this.flag && (\n <div class=\"udex-list__flag-wrap\">\n <span class=\"udex-list__flag\" style={{ backgroundPosition: this.flagPosition }}></span>\n </div>\n )}\n {this.typeNumber && <span class=\"udex-list__number\">{this.numberOfItem}.</span>}\n {this.typeCircle && <span class=\"udex-list__circle\">&#x2022;</span>}\n {this.typeIcon && (\n <Icon\n name={this._icon}\n class=\"udex-list__icon\"\n accessible-role=\"presentation\"\n aria-hidden=\"true\"\n part=\"icon\"\n />\n )}\n {this.image && (\n <UDExAvatar\n class=\"udex-list__avatar\"\n part=\"avatar\"\n shape={this.imageShape}\n size={this.imageSize}>\n {this.imageBadgeState && (\n <UDExStatusBadge\n slot=\"badge\"\n value-state={this.imageBadgeState}\n size={this.imageSize}\n />\n )}\n <img src={this.image} alt={this.imageAlt} />\n </UDExAvatar>\n )}\n <div class=\"udex-list__content\" part=\"content\">\n {this.label ? (\n <>\n <div class=\"udex-list__text-holder\">\n <span part=\"title\" {...({ innerHTML: this.label } as object)}></span>\n {this.supportingText && (\n <span class=\"udex-list__supporting-text\" part=\"supporting\">{this.supportingText}</span>\n )}\n <slot part=\"content\"></slot>\n {this.hasRating && (\n <UDExRatingIndicator\n aria-label={this.ratingAriaLabel}\n value={this.rating !== undefined ? Number(this.rating) : undefined}\n rating-count={this.ratingCount}\n total-count={this.totalCount}\n max={this.ratingMax}\n display={this._displayRating}\n disabled\n readonly\n />\n )}\n </div>\n {this.additionalText && (\n <div class=\"udex-list__add-text\" part=\"additional-text\">{this.additionalText}</div>\n )}\n <div class=\"udex-list__btn-wrap\">\n {this.hasFirstIcon && <slot name=\"firstIcon\" onClick={this._fireIconClickEvent as EventListener}></slot>}\n {this.hasSecondIcon && <slot name=\"secondIcon\" onClick={this._fireIconClickEvent as EventListener}></slot>}\n </div>\n </>\n ) : (\n <>\n <div class=\"udex-list__text-holder\">\n <slot part=\"content\"></slot>\n {this.supportingText && (\n <span class=\"udex-list__supporting-text\" part=\"supporting\">{this.supportingText}</span>\n )}\n {this.hasRating && (\n <UDExRatingIndicator\n aria-label={this.ratingAriaLabel}\n value={this.rating !== undefined ? Number(this.rating) : undefined}\n rating-count={this.ratingCount}\n total-count={this.totalCount}\n max={this.ratingMax}\n display={this._displayRating}\n disabled\n readonly\n />\n )}\n </div>\n {this.additionalText && (\n <div class=\"udex-list__add-text\" part=\"additional-text\">{this.additionalText}</div>\n )}\n <div class=\"udex-list__btn-wrap\">\n {this.hasFirstIcon && <slot name=\"firstIcon\" onClick={this._fireIconClickEvent as EventListener}></slot>}\n {this.hasSecondIcon && <slot name=\"secondIcon\" onClick={this._fireIconClickEvent as EventListener}></slot>}\n </div>\n </>\n )}\n {this.collapsible && (\n <div class=\"udex-list__group-heading__icon-wrapper\">\n <UDExButton\n class=\"udex-list__group-heading__icon\"\n size={UDExButtonSize.Small}\n design={UDExButtonDesign.Tertiary}\n onMouseDown={this.handleCollapseIconMouseDown}\n onClick={this.handleCollapseIconClick as EventListener}\n tabindex={-1}\n accessible-name={this.expandButtonAccessibleName}\n {...({ \"mode\": \"Interactive\" } as object)}\n icon={slimArrowRight}\n />\n </div>\n )}\n </div>\n <div class=\"hidden\" id={`${this._id}-invisibleText`}>{this.accessibleListItemName}</div>\n </div>\n );\n}\n\nexport default function ListItemTemplate(this: UDExListItem) {\n return (\n <>\n {this.modeSelected && (\n <div\n part=\"item\"\n tabIndex={Number(this._effectiveTabIndex)}\n aria-disabled={this._ariaDisabled}\n class={this.className}\n role={this.roleItem as AriaRole}\n aria-checked={this.ariaCheckedValue}\n aria-selected={this.ariaSelectedValue}\n aria-expanded={this.ariaExpandedValue}\n aria-posinset={this._ariaPosInSet || undefined}\n aria-setsize={this._ariaSetSize || undefined}\n onFocusIn={this.handleFocusIn}\n onFocusOut={this.handleFocusOut}\n onClick={this.handleItemClick}\n onMouseDown={this.handleMouseDown}\n onMouseUp={this.handleMouseUp}\n onKeyUp={this.handleKeyUp}\n onKeyDown={this.handleKeyDown}\n {...({ divider: this.divider, \"_id\": this._id } as object)}\n data-selected={this.selected}>\n {this.modeMultiSelect && (\n <UDExCheckbox\n class=\"udex-list__checkbox\"\n part=\"checkbox\"\n tabindex={-1}\n indeterminate={this.indeterminate}\n accessible-name={`checkbox ${this.stateAccessibleName}`}\n checked={this.selected}\n disabled={this.disabled}\n aria-hidden=\"true\"\n />\n )}\n {this.modeRadioGroup && (\n <UDExRadioButton\n class=\"udex-list__radio\"\n part=\"radio\"\n tabindex={-1}\n accessible-name={`radio ${this.stateAccessibleName}`}\n checked={this.selected}\n disabled={this.disabled}\n />\n )}\n {ContentList.call(this)}\n </div>\n )}\n {this.modeSingleContent && (\n <div\n part=\"item\"\n role={this.roleItem as AriaRole}\n aria-selected={this.selected}\n class={this.className}>\n {ContentList.call(this)}\n </div>\n )}\n </>\n );\n}\n"]}
1
+ {"version":3,"file":"ListItemTemplate.js","sourceRoot":"","sources":["../src/ListItemTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { AriaRole } from \"@ui5/webcomponents-base/dist/types.js\";\nimport type UDExListItem from \"./ListItem.js\";\nimport UDExCheckbox from \"./Checkbox.js\";\nimport UDExRadioButton from \"./RadioButton.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UDExAvatar from \"./Avatar.js\";\nimport UDExStatusBadge from \"./StatusBadge.js\";\nimport UDExRatingIndicator from \"./RatingIndicator.js\";\nimport UDExButton from \"./Button.js\";\nimport UDExButtonSize from \"./types/ButtonSize.js\";\nimport UDExButtonDesign from \"./types/ButtonDesign.js\";\nimport slimArrowRight from \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\n\nfunction ContentList(this: UDExListItem) {\n return (\n <div\n class=\"udex-list__content-wrap\"\n {...({ \"_id\": this._id } as object)}\n aria-labelledby={`${this._id}-invisibleText`}\n aria-label={this.accessibleListItemName}>\n {this.flag && (\n <div class=\"udex-list__flag-wrap\">\n <span class=\"udex-list__flag\" style={{ backgroundPosition: this.flagPosition }}></span>\n </div>\n )}\n {this.typeNumber && <span class=\"udex-list__number\">{this.numberOfItem}.</span>}\n {this.typeCircle && <span class=\"udex-list__circle\">&#x2022;</span>}\n {this.typeIcon && (\n <Icon\n name={this._icon}\n class=\"udex-list__icon\"\n accessible-role=\"presentation\"\n aria-hidden=\"true\"\n part=\"icon\"\n />\n )}\n {this.image && (\n <UDExAvatar\n class=\"udex-list__avatar\"\n part=\"avatar\"\n shape={this.imageShape}\n size={this.imageSize}>\n {this.imageBadgeState && (\n <UDExStatusBadge\n slot=\"badge\"\n value-state={this.imageBadgeState}\n size={this.imageSize}\n />\n )}\n <img src={this.image} alt={this.imageAlt} />\n </UDExAvatar>\n )}\n <div class=\"udex-list__content\" part=\"content\">\n {this.label ? (\n <>\n <div class=\"udex-list__text-holder\">\n <span part=\"title\" {...({ innerHTML: this.label } as object)}></span>\n {this.supportingText && (\n <span class=\"udex-list__supporting-text\" part=\"supporting\">{this.supportingText}</span>\n )}\n <slot part=\"content\"></slot>\n {this.hasRating && (\n <UDExRatingIndicator\n aria-label={this.ratingAriaLabel}\n value={this.rating !== undefined ? Number(this.rating) : undefined}\n rating-count={this.ratingCount}\n total-count={this.totalCount}\n max={this.ratingMax}\n display={this._displayRating}\n disabled\n readonly\n />\n )}\n </div>\n {this.additionalText && (\n <div class=\"udex-list__add-text\" part=\"additional-text\">{this.additionalText}</div>\n )}\n <div class=\"udex-list__btn-wrap\">\n {this.hasFirstIcon && <slot name=\"firstIcon\" onClick={this._fireIconClickEvent as EventListener}></slot>}\n {this.hasSecondIcon && <slot name=\"secondIcon\" onClick={this._fireIconClickEvent as EventListener}></slot>}\n </div>\n </>\n ) : (\n <>\n <div class=\"udex-list__text-holder\">\n <slot part=\"content\"></slot>\n {this.supportingText && (\n <span class=\"udex-list__supporting-text\" part=\"supporting\">{this.supportingText}</span>\n )}\n {this.hasRating && (\n <UDExRatingIndicator\n aria-label={this.ratingAriaLabel}\n value={this.rating !== undefined ? Number(this.rating) : undefined}\n rating-count={this.ratingCount}\n total-count={this.totalCount}\n max={this.ratingMax}\n display={this._displayRating}\n disabled\n readonly\n />\n )}\n </div>\n {this.additionalText && (\n <div class=\"udex-list__add-text\" part=\"additional-text\">{this.additionalText}</div>\n )}\n <div class=\"udex-list__btn-wrap\">\n {this.hasFirstIcon && <slot name=\"firstIcon\" onClick={this._fireIconClickEvent as EventListener}></slot>}\n {this.hasSecondIcon && <slot name=\"secondIcon\" onClick={this._fireIconClickEvent as EventListener}></slot>}\n </div>\n </>\n )}\n {this.collapsible && (\n <div class=\"udex-list__group-heading__icon-wrapper\">\n <UDExButton\n class=\"udex-list__group-heading__icon\"\n size={UDExButtonSize.Small}\n design={UDExButtonDesign.Tertiary}\n onMouseDown={this.handleCollapseIconMouseDown}\n onClick={this.handleCollapseIconClick as EventListener}\n tabindex={-1}\n accessible-name={this.expandButtonAccessibleName}\n {...({ \"mode\": \"Interactive\" } as object)}\n icon={slimArrowRight}\n />\n </div>\n )}\n </div>\n <div class=\"hidden\" id={`${this._id}-invisibleText`}>{this.accessibleListItemName}</div>\n </div>\n );\n}\n\nexport default function ListItemTemplate(this: UDExListItem) {\n return (\n <>\n {this.modeSelected && (\n <div\n part=\"item\"\n tabIndex={this._useHostAriaRole ? undefined : Number(this._effectiveTabIndex)}\n aria-disabled={this._useHostAriaRole ? undefined : this._ariaDisabled}\n class={this.className}\n role={this.roleItem as AriaRole}\n aria-checked={this.ariaCheckedValue}\n aria-selected={this.ariaSelectedValue}\n aria-expanded={this.ariaExpandedValue}\n aria-posinset={this._ariaPosInSet || undefined}\n aria-setsize={this._ariaSetSize || undefined}\n onFocusIn={this.handleFocusIn}\n onFocusOut={this.handleFocusOut}\n onClick={this.handleItemClick}\n onMouseDown={this.handleMouseDown}\n onMouseUp={this.handleMouseUp}\n onKeyUp={this.handleKeyUp}\n onKeyDown={this.handleKeyDown}\n {...({ divider: this.divider, \"_id\": this._id } as object)}\n data-selected={this.selected}>\n {this.modeMultiSelect && (\n <UDExCheckbox\n class=\"udex-list__checkbox\"\n part=\"checkbox\"\n tabindex={-1}\n indeterminate={this.indeterminate}\n accessible-name={this._useHostAriaRole ? undefined : `checkbox ${this.stateAccessibleName}`}\n checked={this.selected}\n disabled={this.disabled}\n aria-hidden=\"true\"\n />\n )}\n {this.modeRadioGroup && (\n <UDExRadioButton\n class=\"udex-list__radio\"\n part=\"radio\"\n tabindex={-1}\n accessible-name={`radio ${this.stateAccessibleName}`}\n checked={this.selected}\n disabled={this.disabled}\n />\n )}\n {ContentList.call(this)}\n </div>\n )}\n {this.modeSingleContent && (\n <div\n part=\"item\"\n role={this.roleItem as AriaRole}\n aria-selected={this.ariaSelectedValue}\n class={this.className}>\n {ContentList.call(this)}\n </div>\n )}\n </>\n );\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
2
2
  import UDExListItem from "./ListItem.js";
3
3
  export default function ListSelectAllTemplate() {
4
- return (_jsx("div", { part: "item", class: "udex-list__group", role: "group", "aria-labelledby": "group-select-all", children: _jsxs("div", { role: "listbox", "aria-label": "select-all-group", class: this.groupListClassName, "onui5-item-press": this.handleSelectAllGroupItemsPress, children: [_jsx(UDExListItem, { role: "group", part: "group-item", "accessible-role": "option", mode: this.multiselectMode, onClick: this.handleSelectAllPress, class: this.className, selected: this.selected, "aria-current": this.selected, indeterminate: this.indeterminate, controlled: this.controlled, onKeyDown: this.handleKeyDownPress, "_tab-index": Number(this._effectiveTabIndex), "_additional-class-name": this.additionalClassName, supportingText: this.supportingText, divider: true, children: this.selectAllLabel }), _jsx("slot", {})] }) }));
4
+ return (_jsx("div", { part: "item", class: "udex-list__group", role: this._useHostAriaRole ? "presentation" : "group", "aria-labelledby": this._useHostAriaRole ? undefined : "group-select-all", children: _jsxs("div", { role: this._useHostAriaRole ? "presentation" : "listbox", "aria-label": this._useHostAriaRole ? undefined : "select-all-group", class: this.groupListClassName, "onui5-item-press": this.handleSelectAllGroupItemsPress, children: [_jsx(UDExListItem, { role: this._useHostAriaRole ? "none" : "group", part: "group-item", "accessible-role": "option", _useHostAriaRole: this._useHostAriaRole, label: this._useHostAriaRole ? this.selectAllLabel : undefined, mode: this.multiselectMode, onClick: this.handleSelectAllPress, class: this.className, selected: this.selected, "aria-current": this._useHostAriaRole ? undefined : this.selected, indeterminate: this.indeterminate, controlled: this.controlled, onKeyDown: this.handleKeyDownPress, "_tab-index": Number(this._effectiveTabIndex), "_additional-class-name": this.additionalClassName, supportingText: this.supportingText, divider: true, children: !this._useHostAriaRole && this.selectAllLabel }), this._useHostAriaRole ? _jsx("div", { role: "group", children: _jsx("slot", {}) }) : _jsx("slot", {})] }) }));
5
5
  }
6
6
  //# sourceMappingURL=ListSelectAllTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListSelectAllTemplate.js","sourceRoot":"","sources":["../src/ListSelectAllTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,MAAM,CAAC,OAAO,UAAU,qBAAqB;IAC3C,OAAO,CACL,cACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,kBAAkB,EACxB,IAAI,EAAC,OAAO,qBACI,kBAAkB,YAClC,eACE,IAAI,EAAC,SAAS,gBACH,kBAAkB,EAC7B,KAAK,EAAE,IAAI,CAAC,kBAAkB,sBACZ,IAAI,CAAC,8BAA8B,aACrD,KAAC,YAAY,IACX,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,YAAY,qBACD,QAAQ,EACxB,IAAI,EAAE,IAAI,CAAC,eAAe,EAC1B,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAClC,KAAK,EAAE,IAAI,CAAC,SAAS,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,kBACT,IAAI,CAAC,QAAQ,EAC3B,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,SAAS,EAAE,IAAI,CAAC,kBAAkB,gBACtB,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,4BACnB,IAAI,CAAC,mBAAmB,EAChD,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,OAAO,kBACN,IAAI,CAAC,cAAc,GACP,EACf,gBAAa,IACT,GACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import type UDExListSelectAll from \"./ListSelectAll.js\";\nimport UDExListItem from \"./ListItem.js\";\n\nexport default function ListSelectAllTemplate(this: UDExListSelectAll) {\n return (\n <div\n part=\"item\"\n class=\"udex-list__group\"\n role=\"group\"\n aria-labelledby=\"group-select-all\">\n <div\n role=\"listbox\"\n aria-label=\"select-all-group\"\n class={this.groupListClassName}\n onui5-item-press={this.handleSelectAllGroupItemsPress}>\n <UDExListItem\n role=\"group\"\n part=\"group-item\"\n accessible-role=\"option\"\n mode={this.multiselectMode}\n onClick={this.handleSelectAllPress}\n class={this.className}\n selected={this.selected}\n aria-current={this.selected}\n indeterminate={this.indeterminate}\n controlled={this.controlled}\n onKeyDown={this.handleKeyDownPress}\n _tab-index={Number(this._effectiveTabIndex)}\n _additional-class-name={this.additionalClassName}\n supportingText={this.supportingText}\n divider>\n {this.selectAllLabel}\n </UDExListItem>\n <slot></slot>\n </div>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"ListSelectAllTemplate.js","sourceRoot":"","sources":["../src/ListSelectAllTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,MAAM,CAAC,OAAO,UAAU,qBAAqB;IAC3C,OAAO,CACL,cACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,kBAAkB,EACxB,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,qBACrC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,YACvE,eACE,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,gBAC5C,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,EAClE,KAAK,EAAE,IAAI,CAAC,kBAAkB,sBACZ,IAAI,CAAC,8BAA8B,aACrD,KAAC,YAAY,IACX,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAC9C,IAAI,EAAC,YAAY,qBACD,QAAQ,EACxB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EACvC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,EAC9D,IAAI,EAAE,IAAI,CAAC,eAAe,EAC1B,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAClC,KAAK,EAAE,IAAI,CAAC,SAAS,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,kBACT,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAC/D,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,SAAS,EAAE,IAAI,CAAC,kBAAkB,gBACtB,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,4BACnB,IAAI,CAAC,mBAAmB,EAChD,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,OAAO,kBACN,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,cAAc,GACjC,EACd,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAK,IAAI,EAAC,OAAO,YAAC,gBAAa,GAAM,CAAC,CAAC,CAAC,gBAAa,IAC1E,GACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import type UDExListSelectAll from \"./ListSelectAll.js\";\nimport UDExListItem from \"./ListItem.js\";\n\nexport default function ListSelectAllTemplate(this: UDExListSelectAll) {\n return (\n <div\n part=\"item\"\n class=\"udex-list__group\"\n role={this._useHostAriaRole ? \"presentation\" : \"group\"}\n aria-labelledby={this._useHostAriaRole ? undefined : \"group-select-all\"}>\n <div\n role={this._useHostAriaRole ? \"presentation\" : \"listbox\"}\n aria-label={this._useHostAriaRole ? undefined : \"select-all-group\"}\n class={this.groupListClassName}\n onui5-item-press={this.handleSelectAllGroupItemsPress}>\n <UDExListItem\n role={this._useHostAriaRole ? \"none\" : \"group\"}\n part=\"group-item\"\n accessible-role=\"option\"\n _useHostAriaRole={this._useHostAriaRole}\n label={this._useHostAriaRole ? this.selectAllLabel : undefined}\n mode={this.multiselectMode}\n onClick={this.handleSelectAllPress}\n class={this.className}\n selected={this.selected}\n aria-current={this._useHostAriaRole ? undefined : this.selected}\n indeterminate={this.indeterminate}\n controlled={this.controlled}\n onKeyDown={this.handleKeyDownPress}\n _tab-index={Number(this._effectiveTabIndex)}\n _additional-class-name={this.additionalClassName}\n supportingText={this.supportingText}\n divider>\n {!this._useHostAriaRole && this.selectAllLabel}\n </UDExListItem>\n {this._useHostAriaRole ? <div role=\"group\"><slot></slot></div> : <slot></slot>}\n </div>\n </div>\n );\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ui5/webcomponents-base/jsx-runtime";
2
2
  export default function ListTemplate() {
3
- return (_jsxs(_Fragment, { children: [this.modeSelected && (_jsx("div", { class: "udex-list-root", onKeyDown: this.handleKeyDown, style: { height: this.holderHeight }, "onui5-item-press": this.handleItemPress, "onui5-header-press": this.handleItemPress, children: _jsxs("div", { class: "udex-list__scroll-container", children: [HeaderText.call(this), _jsx("span", { id: `${this._id}-mode-label`, class: "udex-list__hidden-text", children: this.ariaLabelModeText }), _jsx("div", { id: "udex-list", class: "udex-list", role: this.effectiveAccessibleRole, "aria-labelledby": this.ariaLabelledBy, "aria-multiselectable": this._listAriaMultiSelectable, "aria-busy": (this.ariaBusy ?? undefined), children: _jsx("slot", {}) })] }) })), this.modeSingleContent && (_jsxs(_Fragment, { children: [HeaderText.call(this), _jsx("div", { id: "udex-list", class: "udex-list", role: this.singleContentRole, "aria-label": this.singleContentAriaLabel, "aria-busy": (this.ariaBusy ?? undefined), children: _jsx("slot", {}) })] }))] }));
3
+ const hasHostAriaRole = this._hasHostAriaRole;
4
+ return (_jsxs(_Fragment, { children: [this.modeSelected && (_jsx("div", { class: "udex-list-root", onKeyDown: this.handleKeyDown, style: { height: this.holderHeight }, "onui5-item-press": this.handleItemPress, "onui5-header-press": this.handleItemPress, children: _jsxs("div", { class: "udex-list__scroll-container", children: [HeaderText.call(this), !hasHostAriaRole && (_jsx("span", { id: this.ariaLabelledBy, class: "udex-list__hidden-text", children: this.ariaLabelModeText })), _jsx("div", { id: "udex-list", class: "udex-list", role: (hasHostAriaRole ? "none" : this.effectiveAccessibleRole), "aria-labelledby": hasHostAriaRole ? undefined : this.ariaLabelledBy, "aria-multiselectable": (hasHostAriaRole ? undefined : this._listAriaMultiSelectable), "aria-busy": (hasHostAriaRole ? undefined : this.ariaBusy ?? undefined), children: _jsx("slot", {}) })] }) })), this.modeSingleContent && (_jsxs(_Fragment, { children: [HeaderText.call(this), _jsx("div", { id: "udex-list", class: "udex-list", role: (hasHostAriaRole ? "none" : this.singleContentRole), "aria-label": hasHostAriaRole ? undefined : this.singleContentAriaLabel, "aria-busy": (hasHostAriaRole ? undefined : this.ariaBusy ?? undefined), children: _jsx("slot", {}) })] }))] }));
4
5
  }
5
6
  function HeaderText() {
6
7
  if (!this.headerText) {
@@ -1 +1 @@
1
- {"version":3,"file":"ListTemplate.js","sourceRoot":"","sources":["../src/ListTemplate.tsx"],"names":[],"mappings":";AAGA,MAAM,CAAC,OAAO,UAAU,YAAY;IAClC,OAAO,CACL,8BACG,IAAI,CAAC,YAAY,IAAI,CACpB,cACE,KAAK,EAAC,gBAAgB,EACtB,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,sBAClB,IAAI,CAAC,eAAe,wBAClB,IAAI,CAAC,eAAe,YACxC,eAAK,KAAK,EAAC,6BAA6B,aACrC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EACtB,eAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,aAAa,EAAE,KAAK,EAAC,wBAAwB,YAC/D,IAAI,CAAC,iBAAiB,GAClB,EACP,cACE,EAAE,EAAC,WAAW,EACd,KAAK,EAAC,WAAW,EACjB,IAAI,EAAE,IAAI,CAAC,uBAAmC,qBAC7B,IAAI,CAAC,cAAc,0BACd,IAAI,CAAC,wBAA8C,eAC9D,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAiC,YACvE,gBAAa,GACT,IACF,GACF,CACP,EACA,IAAI,CAAC,iBAAiB,IAAI,CACzB,8BACG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EACtB,cACE,EAAE,EAAC,WAAW,EACd,KAAK,EAAC,WAAW,EACjB,IAAI,EAAE,IAAI,CAAC,iBAA6B,gBAC5B,IAAI,CAAC,sBAAsB,eAC5B,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAiC,YACvE,gBAAa,GACT,IACL,CACJ,IACA,CACJ,CAAC;AACJ,CAAC;AAED,SAAS,UAAU;IACjB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CACL,iBACE,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,aAAa,EAC5B,KAAK,EAAC,wBAAwB,EAC9B,IAAI,EAAC,QAAQ,YACZ,IAAI,CAAC,UAAU,GACT,CACV,CAAC;AACJ,CAAC","sourcesContent":["import type UDExList from \"./List.js\";\nimport type { AriaRole } from \"@ui5/webcomponents-base/types.js\";\n\nexport default function ListTemplate(this: UDExList) {\n return (\n <>\n {this.modeSelected && (\n <div\n class=\"udex-list-root\"\n onKeyDown={this.handleKeyDown}\n style={{ height: this.holderHeight }}\n onui5-item-press={this.handleItemPress}\n onui5-header-press={this.handleItemPress}>\n <div class=\"udex-list__scroll-container\">\n {HeaderText.call(this)}\n <span id={`${this._id}-mode-label`} class=\"udex-list__hidden-text\">\n {this.ariaLabelModeText}\n </span>\n <div\n id=\"udex-list\"\n class=\"udex-list\"\n role={this.effectiveAccessibleRole as AriaRole}\n aria-labelledby={this.ariaLabelledBy}\n aria-multiselectable={this._listAriaMultiSelectable as \"true\" | undefined}\n aria-busy={(this.ariaBusy ?? undefined) as \"true\" | \"false\" | undefined}>\n <slot></slot>\n </div>\n </div>\n </div>\n )}\n {this.modeSingleContent && (\n <>\n {HeaderText.call(this)}\n <div\n id=\"udex-list\"\n class=\"udex-list\"\n role={this.singleContentRole as AriaRole}\n aria-label={this.singleContentAriaLabel}\n aria-busy={(this.ariaBusy ?? undefined) as \"true\" | \"false\" | undefined}>\n <slot></slot>\n </div>\n </>\n )}\n </>\n );\n}\n\nfunction HeaderText(this: UDExList) {\n if (!this.headerText) {\n return null;\n }\n return (\n <header\n id={`${this._id}-mode-label`}\n class=\"udex-list__header-text\"\n part=\"header\">\n {this.headerText}\n </header>\n );\n}\n"]}
1
+ {"version":3,"file":"ListTemplate.js","sourceRoot":"","sources":["../src/ListTemplate.tsx"],"names":[],"mappings":";AAGA,MAAM,CAAC,OAAO,UAAU,YAAY;IAClC,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC;IAE9C,OAAO,CACL,8BACG,IAAI,CAAC,YAAY,IAAI,CACpB,cACE,KAAK,EAAC,gBAAgB,EACtB,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,sBAClB,IAAI,CAAC,eAAe,wBAClB,IAAI,CAAC,eAAe,YACxC,eAAK,KAAK,EAAC,6BAA6B,aACrC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EACrB,CAAC,eAAe,IAAI,CACnB,eAAM,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,EAAC,wBAAwB,YAC1D,IAAI,CAAC,iBAAiB,GAClB,CACR,EACD,cACE,EAAE,EAAC,WAAW,EACd,KAAK,EAAC,WAAW,EACjB,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAa,qBAC1D,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,0BAC5C,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAuB,eAC9F,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAiC,YACrG,gBAAa,GACT,IACF,GACF,CACP,EACA,IAAI,CAAC,iBAAiB,IAAI,CACzB,8BACG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EACtB,cACE,EAAE,EAAC,WAAW,EACd,KAAK,EAAC,WAAW,EACjB,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAa,gBACzD,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,eAC1D,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAiC,YACrG,gBAAa,GACT,IACL,CACJ,IACA,CACJ,CAAC;AACJ,CAAC;AAED,SAAS,UAAU;IACjB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CACL,iBACE,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,aAAa,EAC5B,KAAK,EAAC,wBAAwB,EAC9B,IAAI,EAAC,QAAQ,YACZ,IAAI,CAAC,UAAU,GACT,CACV,CAAC;AACJ,CAAC","sourcesContent":["import type UDExList from \"./List.js\";\nimport type { AriaRole } from \"@ui5/webcomponents-base/types.js\";\n\nexport default function ListTemplate(this: UDExList) {\n const hasHostAriaRole = this._hasHostAriaRole;\n\n return (\n <>\n {this.modeSelected && (\n <div\n class=\"udex-list-root\"\n onKeyDown={this.handleKeyDown}\n style={{ height: this.holderHeight }}\n onui5-item-press={this.handleItemPress}\n onui5-header-press={this.handleItemPress}>\n <div class=\"udex-list__scroll-container\">\n {HeaderText.call(this)}\n {!hasHostAriaRole && (\n <span id={this.ariaLabelledBy} class=\"udex-list__hidden-text\">\n {this.ariaLabelModeText}\n </span>\n )}\n <div\n id=\"udex-list\"\n class=\"udex-list\"\n role={(hasHostAriaRole ? \"none\" : this.effectiveAccessibleRole) as AriaRole}\n aria-labelledby={hasHostAriaRole ? undefined : this.ariaLabelledBy}\n aria-multiselectable={(hasHostAriaRole ? undefined : this._listAriaMultiSelectable) as \"true\" | undefined}\n aria-busy={(hasHostAriaRole ? undefined : this.ariaBusy ?? undefined) as \"true\" | \"false\" | undefined}>\n <slot></slot>\n </div>\n </div>\n </div>\n )}\n {this.modeSingleContent && (\n <>\n {HeaderText.call(this)}\n <div\n id=\"udex-list\"\n class=\"udex-list\"\n role={(hasHostAriaRole ? \"none\" : this.singleContentRole) as AriaRole}\n aria-label={hasHostAriaRole ? undefined : this.singleContentAriaLabel}\n aria-busy={(hasHostAriaRole ? undefined : this.ariaBusy ?? undefined) as \"true\" | \"false\" | undefined}>\n <slot></slot>\n </div>\n </>\n )}\n </>\n );\n}\n\nfunction HeaderText(this: UDExList) {\n if (!this.headerText) {\n return null;\n }\n return (\n <header\n id={`${this._id}-mode-label`}\n class=\"udex-list__header-text\"\n part=\"header\">\n {this.headerText}\n </header>\n );\n}\n"]}
package/dist/Search.d.ts CHANGED
@@ -180,7 +180,10 @@ declare class UDExSearch extends UI5Element {
180
180
  */
181
181
  labelPrefix: string;
182
182
  /**
183
- * Defines display the suggestion popover in the component.
183
+ * Enables the suggestion popover to open automatically as the user types.
184
+ * The popover opens when the input has 2 or more characters and closes when cleared.
185
+ * Use this property for automatic, input-driven popover management.
186
+ * For programmatic control from the host application, use <code>openSuggestionPopup</code> instead.
184
187
  *
185
188
  * @default false
186
189
  * @public
@@ -210,7 +213,12 @@ declare class UDExSearch extends UI5Element {
210
213
  */
211
214
  showPopoverWhenClickedIntoInput: boolean;
212
215
  /**
213
- * Defines open suggestion popover.
216
+ * Programmatically controls the visibility of the suggestion popover.
217
+ * Set to <code>true</code> to open the popover; set to <code>false</code> to close it.
218
+ * Use this property when the host application needs to control the popover state manually,
219
+ * for example after receiving an asynchronous API response.
220
+ * The <code>suggestionList</code> property must be populated with data for suggestions to appear.
221
+ * Use either this property or <code>showSuggestedPopover</code> — avoid using both simultaneously.
214
222
  *
215
223
  * @default false
216
224
  * @public
@@ -357,6 +365,8 @@ declare class UDExSearch extends UI5Element {
357
365
  * @private
358
366
  */
359
367
  _isTouched: boolean;
368
+ private _openSuggestionHandled;
369
+ private _intersectionObserver?;
360
370
  static i18nBundle: I18nBundle;
361
371
  constructor();
362
372
  onEnterDOM(): void;
@@ -369,7 +379,7 @@ declare class UDExSearch extends UI5Element {
369
379
  setPopoverState(changeInfo: ChangeInfo): void;
370
380
  handlePopoverTrigger(isOpenPopover: boolean): void;
371
381
  setNewSuggestionList(changeInfo: ChangeInfo): void;
372
- setSuggestedRecommendedLists(value: string): void;
382
+ setSuggestedRecommendedLists(value: string, handleClose?: boolean): void;
373
383
  private hasDataLabel;
374
384
  private hasSuggestedLabel;
375
385
  private hasRecommendedLabel;
package/dist/Search.js CHANGED
@@ -163,6 +163,7 @@ let UDExSearch = UDExSearch_1 = class UDExSearch extends UI5Element {
163
163
  * @private
164
164
  */
165
165
  this._prefixDropdownExpanded = false;
166
+ this._openSuggestionHandled = false;
166
167
  this.handleSelectItem = (itemValue, categoryName) => () => {
167
168
  this.value = itemValue;
168
169
  this.fireDropdownItemClick(itemValue, categoryName);
@@ -198,10 +199,21 @@ let UDExSearch = UDExSearch_1 = class UDExSearch extends UI5Element {
198
199
  this.isNotMozillaFirefoxIOS = !this.isMozillaFirefox("FxiOS");
199
200
  this.initSpeechRecognition();
200
201
  ResizeHandler.register(this, this._handleResizeBound);
202
+ this._intersectionObserver = new IntersectionObserver(entries => {
203
+ entries.forEach(entry => {
204
+ if (entry.isIntersecting && this.openSuggestionPopup) {
205
+ this._openSuggestionHandled = false;
206
+ this.handleOpenSuggestionPopover();
207
+ }
208
+ });
209
+ });
210
+ this._intersectionObserver.observe(this);
201
211
  }
202
212
  onExitDOM() {
203
213
  ResizeHandler.deregister(this, this._handleResizeBound);
204
214
  this.removeEventListener("dropdown-trigger-event", () => { });
215
+ this._intersectionObserver?.disconnect();
216
+ this._intersectionObserver = undefined;
205
217
  }
206
218
  initSpeechRecognition() {
207
219
  try {
@@ -248,6 +260,7 @@ let UDExSearch = UDExSearch_1 = class UDExSearch extends UI5Element {
248
260
  }
249
261
  setPopoverState(changeInfo) {
250
262
  if (changeInfo.name === "openSuggestionPopup") {
263
+ this._openSuggestionHandled = false;
251
264
  this.handlePopoverTrigger(changeInfo.newValue);
252
265
  }
253
266
  }
@@ -264,8 +277,8 @@ let UDExSearch = UDExSearch_1 = class UDExSearch extends UI5Element {
264
277
  this.setSuggestedRecommendedLists(changeInfo.newValue);
265
278
  }
266
279
  }
267
- setSuggestedRecommendedLists(value) {
268
- if (this.showSuggestedPopover && value) {
280
+ setSuggestedRecommendedLists(value, handleClose = true) {
281
+ if ((this.showSuggestedPopover || this.openSuggestionPopup) && value) {
269
282
  const parsedData = JSON.parse(value);
270
283
  const hasDataLabels = this.hasDataLabel(parsedData);
271
284
  if (this.shouldShowPopover(parsedData, hasDataLabels)) {
@@ -273,7 +286,7 @@ let UDExSearch = UDExSearch_1 = class UDExSearch extends UI5Element {
273
286
  this.suggestedList = this.getListWithSuggestion(this.getSuggestedList(hasDataLabels, parsedData), "suggested");
274
287
  this.recommendedList = this.getListWithSuggestion(this.getRecommendedList(hasDataLabels, parsedData), "recommended");
275
288
  }
276
- if (!this.shouldShowPopover(parsedData, hasDataLabels)) {
289
+ if (handleClose && !this.shouldShowPopover(parsedData, hasDataLabels)) {
277
290
  this.onClosePopover();
278
291
  this.resetSuggestedRecommendedLists();
279
292
  }
@@ -434,7 +447,7 @@ let UDExSearch = UDExSearch_1 = class UDExSearch extends UI5Element {
434
447
  this.getSearchInput()?.setAttribute("aria-expanded", value);
435
448
  }
436
449
  onOpenPopover() {
437
- if (this.showSuggestedPopover) {
450
+ if (this.showSuggestedPopover || this.openSuggestionPopup) {
438
451
  if (!this.Suggestion) {
439
452
  retryUntilSuccessful(() => this.Suggestion, this.retryDelay, this.maxRetryAttempts, this.unsuccessfulRetryMessage)
440
453
  .then(() => {
@@ -454,8 +467,8 @@ let UDExSearch = UDExSearch_1 = class UDExSearch extends UI5Element {
454
467
  }
455
468
  }
456
469
  onClosePopover() {
457
- if (this.showSuggestedPopover) {
458
- this.Suggestion.close();
470
+ if (this.showSuggestedPopover || this.open) {
471
+ this.Suggestion?.close();
459
472
  this.handleAriaExpanded();
460
473
  this.open = false;
461
474
  this.fireDecoratorEvent("suggestion-popover-closed");
@@ -465,14 +478,17 @@ let UDExSearch = UDExSearch_1 = class UDExSearch extends UI5Element {
465
478
  this.Suggestion?.handleKeyPress(e);
466
479
  }
467
480
  get rootClasses() {
468
- if (this.mode === Mode.HomeSearch && this.showSuggestedPopover && this.open) {
481
+ if (this.mode === Mode.HomeSearch && (this.showSuggestedPopover) && this.open) {
469
482
  return this.isSuggestionPopoverTop ? "udex-search__root--show-popover-top" : "udex-search__root--show-popover";
470
483
  }
471
484
  return "";
472
485
  }
473
486
  onBeforeRendering() {
474
- if (this.showSuggestedPopover) {
487
+ if (this.showSuggestedPopover || this.openSuggestionPopup) {
475
488
  this.enableSuggestions();
489
+ if (this.suggestionList && !this.suggestedList?.length && !this.recommendedList?.length) {
490
+ this.setSuggestedRecommendedLists(this.suggestionList, false);
491
+ }
476
492
  }
477
493
  if (this.isHomeSearchWithPrefixMode && this.dropdownPrefix.length) {
478
494
  const dropdownItems = Array.from(this.dropdownPrefix[0].children);
@@ -528,7 +544,7 @@ let UDExSearch = UDExSearch_1 = class UDExSearch extends UI5Element {
528
544
  });
529
545
  }
530
546
  onAfterRendering() {
531
- if (this.showSuggestedPopover) {
547
+ if (this.showSuggestedPopover || this.openSuggestionPopup) {
532
548
  const prefixPopover = this.getPrefixPopover();
533
549
  if (this.Suggestion?.popover) {
534
550
  const suggestionObserver = this._createObserver(this.Suggestion.popover);
@@ -546,9 +562,18 @@ let UDExSearch = UDExSearch_1 = class UDExSearch extends UI5Element {
546
562
  }
547
563
  }
548
564
  handleOpenSuggestionPopover() {
549
- if (this.openSuggestionPopup) {
565
+ if (this.openSuggestionPopup && !this._openSuggestionHandled) {
566
+ this._openSuggestionHandled = true;
550
567
  this.Suggestion?._getSuggestionPopover();
551
- this.handlePopoverTrigger(this.openSuggestionPopup);
568
+ // Defer to the next animation frame so the opener element has a resolved
569
+ // layout before UI5 Popover calculates its position. Without this, opening
570
+ // during onAfterRendering (which runs in a microtask, before layout) causes
571
+ // the popover to anchor at 0,0 — appearing detached from the search input.
572
+ requestAnimationFrame(() => {
573
+ if (this.openSuggestionPopup) {
574
+ this.handlePopoverTrigger(this.openSuggestionPopup);
575
+ }
576
+ });
552
577
  }
553
578
  }
554
579
  handleBlur() {