@ui5/webcomponents-fiori 2.24.0-rc.0 → 2.24.0-rc.3

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 (144) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/BarcodeScannerDialog.d.ts +4 -2
  4. package/dist/BarcodeScannerDialog.js +4 -2
  5. package/dist/BarcodeScannerDialog.js.map +1 -1
  6. package/dist/DynamicPage.js +17 -6
  7. package/dist/DynamicPage.js.map +1 -1
  8. package/dist/IllustratedMessageTemplate.js +1 -1
  9. package/dist/IllustratedMessageTemplate.js.map +1 -1
  10. package/dist/Search.d.ts +1 -0
  11. package/dist/Search.js +1 -0
  12. package/dist/Search.js.map +1 -1
  13. package/dist/SearchPopoverTemplate.js +1 -1
  14. package/dist/SearchPopoverTemplate.js.map +1 -1
  15. package/dist/ShellBar.d.ts +9 -0
  16. package/dist/ShellBar.js +15 -4
  17. package/dist/ShellBar.js.map +1 -1
  18. package/dist/ShellBarItem.d.ts +2 -0
  19. package/dist/ShellBarItem.js +5 -0
  20. package/dist/ShellBarItem.js.map +1 -1
  21. package/dist/ShellBarTemplate.js +1 -1
  22. package/dist/ShellBarTemplate.js.map +1 -1
  23. package/dist/Timeline.d.ts +3 -3
  24. package/dist/Timeline.js +1 -1
  25. package/dist/Timeline.js.map +1 -1
  26. package/dist/UserMenu.d.ts +10 -0
  27. package/dist/UserMenu.js +6 -0
  28. package/dist/UserMenu.js.map +1 -1
  29. package/dist/UserMenuTemplate.js +2 -1
  30. package/dist/UserMenuTemplate.js.map +1 -1
  31. package/dist/css/themes/HeroBanner.css +1 -1
  32. package/dist/css/themes/IllustratedMessage.css +1 -1
  33. package/dist/css/themes/Search.css +1 -1
  34. package/dist/css/themes/UserMenu.css +1 -1
  35. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  36. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  37. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  38. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  39. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  40. package/dist/css/themes/sap_horizon_auto/parameters-bundle.css +1 -12
  41. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -12
  42. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +0 -12
  43. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +0 -12
  44. package/dist/css/themes/sap_horizon_hc_auto/parameters-bundle.css +1 -12
  45. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -12
  46. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +0 -12
  47. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -12
  48. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +0 -12
  49. package/dist/custom-elements-internal.json +39 -10
  50. package/dist/custom-elements.json +23 -7
  51. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  52. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  53. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  54. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  55. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  56. package/dist/generated/assets/themes/sap_horizon_auto/parameters-bundle.css.json +1 -1
  57. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  58. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  59. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  60. package/dist/generated/assets/themes/sap_horizon_hc_auto/parameters-bundle.css.json +1 -1
  61. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  62. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  63. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  64. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  65. package/dist/generated/themes/HeroBanner.css.d.ts +1 -1
  66. package/dist/generated/themes/HeroBanner.css.js +1 -1
  67. package/dist/generated/themes/HeroBanner.css.js.map +1 -1
  68. package/dist/generated/themes/IllustratedMessage.css.d.ts +1 -1
  69. package/dist/generated/themes/IllustratedMessage.css.js +1 -1
  70. package/dist/generated/themes/IllustratedMessage.css.js.map +1 -1
  71. package/dist/generated/themes/Search.css.d.ts +1 -1
  72. package/dist/generated/themes/Search.css.js +1 -1
  73. package/dist/generated/themes/Search.css.js.map +1 -1
  74. package/dist/generated/themes/UserMenu.css.d.ts +1 -1
  75. package/dist/generated/themes/UserMenu.css.js +1 -1
  76. package/dist/generated/themes/UserMenu.css.js.map +1 -1
  77. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  78. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  79. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  80. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  81. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  82. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  83. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  84. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  85. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  86. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  87. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  88. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  89. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  90. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  91. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  92. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.d.ts +1 -1
  93. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js +1 -12
  94. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js.map +1 -1
  95. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  96. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -12
  97. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  98. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.d.ts +1 -1
  99. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +0 -12
  100. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  101. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.d.ts +1 -1
  102. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +0 -12
  103. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  104. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.d.ts +1 -1
  105. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js +1 -12
  106. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js.map +1 -1
  107. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  108. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -12
  109. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  110. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.d.ts +1 -1
  111. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +0 -12
  112. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  113. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  114. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -12
  115. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  116. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.d.ts +1 -1
  117. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +0 -12
  118. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  119. package/dist/vscode.html-custom-data.json +3 -3
  120. package/dist/web-types.json +14 -6
  121. package/package.json +7 -7
  122. package/src/IllustratedMessageTemplate.tsx +1 -1
  123. package/src/SearchPopoverTemplate.tsx +1 -0
  124. package/src/ShellBarTemplate.tsx +1 -1
  125. package/src/UserMenuTemplate.tsx +6 -0
  126. package/src/themes/HeroBanner.css +22 -19
  127. package/src/themes/IllustratedMessage.css +14 -14
  128. package/src/themes/Search.css +1 -0
  129. package/src/themes/UserMenu.css +19 -1
  130. package/src/themes/base/HeroBanner-parameters.css +0 -1
  131. package/src/themes/base/Search-parameters.css +1 -0
  132. package/src/themes/sap_fiori_3/parameters-bundle.css +0 -1
  133. package/src/themes/sap_fiori_3_dark/parameters-bundle.css +0 -1
  134. package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +0 -1
  135. package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +0 -1
  136. package/src/themes/sap_horizon/parameters-bundle.css +0 -1
  137. package/src/themes/sap_horizon_dark/parameters-bundle.css +0 -1
  138. package/src/themes/sap_horizon_dark_exp/parameters-bundle.css +0 -1
  139. package/src/themes/sap_horizon_exp/parameters-bundle.css +0 -1
  140. package/src/themes/sap_horizon_hcb/parameters-bundle.css +0 -1
  141. package/src/themes/sap_horizon_hcb_exp/parameters-bundle.css +0 -1
  142. package/src/themes/sap_horizon_hcw/parameters-bundle.css +0 -1
  143. package/src/themes/sap_horizon_hcw_exp/parameters-bundle.css +0 -1
  144. package/src/themes/base/IllustratedMessage-parameters.css +0 -13
@@ -1 +1 @@
1
- {"version":3,"file":"Search.js","sourceRoot":"","sources":["../src/Search.ts"],"names":[],"mappings":"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","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport type List from \"@ui5/webcomponents/dist/List.js\";\nimport {\n\tisUp,\n\tisDown,\n\tisEnter,\n\tisBackSpace,\n\tisDelete,\n\tisEscape,\n\tisTabNext,\n\tisPageUp,\n\tisPageDown,\n\tisHome,\n\tisEnd,\n\tisTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\n\nimport SearchTemplate from \"./SearchTemplate.js\";\nimport SearchCss from \"./generated/themes/Search.css.js\";\nimport SearchField from \"./SearchField.js\";\nimport { StartsWith } from \"@ui5/webcomponents/dist/Filters.js\";\nimport type UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type SearchItem from \"./SearchItem.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type Button from \"@ui5/webcomponents/dist/Button.js\";\nimport type IllustratedMessage from \"./IllustratedMessage.js\";\nimport type SearchItemGroup from \"./SearchItemGroup.js\";\nimport type SearchMessageArea from \"./SearchMessageArea.js\";\nimport { SEARCH_CANCEL_BUTTON, SEARCH_SUGGESTIONS } from \"./generated/i18n/i18n-defaults.js\";\nimport { i18n } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport type { InputEventDetail } from \"@ui5/webcomponents/dist/Input.js\";\nimport type Input from \"@ui5/webcomponents/dist/Input.js\";\nimport type { PopupBeforeCloseEventDetail } from \"@ui5/webcomponents/dist/Popup.js\";\nimport type Select from \"@ui5/webcomponents/dist/Select.js\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { ListItemBaseClickEventDetail } from \"@ui5/webcomponents/dist/ListItemBase.js\";\n\ninterface ISearchSuggestionItem extends UI5Element {\n\tselected: boolean;\n\ttext: string;\n\titems?: ISearchSuggestionItem[];\n\teventDetails: { click?: ListItemBaseClickEventDetail };\n}\n\ntype SearchEventDetails = {\n\titem?: ISearchSuggestionItem;\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * A `ui5-search` is an input with suggestions, used for user search.\n *\n * The `ui5-search` consists of several elements parts:\n * - Scope - displays a select in the beggining of the component, used for filtering results by their scope.\n * - Input field - for user input value\n * - Clear button - gives the possibility for deleting the entered value\n * - Search button - a primary button for performing search, when the user has entered a search term\n * - Suggestions - a list with available search suggestions\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/Search.js\";`\n *\n * @constructor\n * @extends SearchField\n * @public\n * @since 2.9.0\n * @experimental\n */\n@customElement({\n\ttag: \"ui5-search\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: SearchTemplate,\n\tstyles: [\n\t\tSearchField.styles,\n\t\tSearchCss,\n\t],\n})\n\n/**\n * Fired when the popup is opened.\n *\n * @public\n */\n@event(\"open\")\n\n/**\n * Fired when the popup is closed.\n *\n * @public\n */\n@event(\"close\")\n\nclass Search extends SearchField {\n\teventDetails!: SearchField[\"eventDetails\"] & {\n\t\tsearch: SearchEventDetails,\n\t\t\"popup-action-press\": void,\n\t\t\"open\": void,\n\t\t\"close\": void,\n\t};\n\n\t/**\n\t * Indicates whether a loading indicator should be shown in the popup.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines whether the value will be autcompleted to match an item.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tnoTypeahead = false;\n\n\t/**\n\t * Defines the Search suggestion items.\n\t *\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tinvalidateOnChildChange: true,\n\t})\n\titems!: DefaultSlot<SearchItem | SearchItemGroup>;\n\n\t/**\n\t * Defines the popup footer action button.\n\t *\n\t * @public\n\t */\n\t@slot()\n\taction!: Slot<Button>;\n\n\t/**\n\t * Defines the illustrated message to be shown in the popup.\n\t *\n\t * @public\n\t */\n\t@slot()\n\tillustration!: Slot<IllustratedMessage>;\n\n\t/**\n\t * Defines the illustrated message to be shown in the popup.\n\t *\n\t * @public\n\t */\n\t@slot()\n\tmessageArea!: Slot<SearchMessageArea>;\n\n\t/**\n\t * Indicates whether the items picker is open.\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\topen = false;\n\n\t/**\n\t * Defines the inner stored value of the component.\n\t *\n\t * **Note:** The property is updated upon typing.\n\t * @default \"\"\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\t_innerValue?: string;\n\n\t/**\n\t * Determines whether the item selection should be performed on mobile devices.\n\t * Similar to _performTextSelection on desktop\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_performItemSelectionOnMobile?: boolean;\n\n\t/**\n\t * Based on the key pressed, determines if the autocomplete should be performed.\n\t * @private\n\t */\n\t_shouldAutocomplete?: boolean;\n\n\t/**\n\t * Determines whether a text selection should be performed.\n\t * @private\n\t */\n\t_performTextSelection?: boolean;\n\n\t/**\n\t * Holds the typed value from the user.\n\t * @private\n\t */\n\t_typedInValue: string;\n\n\t/**\n\t * Holds the typed value before opening the picker.\n\t * @private\n\t */\n\t_valueBeforeOpen: string;\n\n\t/**\n\t * Holds the original typed value before arrow key navigation in dropdown.\n\t * Used to restore the value when navigating back to the input field.\n\t * @private\n\t */\n\t_valueBeforeArrowNav?: string;\n\n\t/**\n\t * Holds the currently proposed item which will be selected if the user presses Enter.\n\t * @private\n\t */\n\t_proposedItem?: ISearchSuggestionItem;\n\n\t/**\n\t * This property is used during rendering to indicate that the user has started typing in the input\n\t * @private\n\t */\n\t_isTyping: boolean;\n\n\t/**\n\t * Bound reference to the delete handler for proper event listener removal.\n\t * @private\n\t */\n\t_deleteHandler: (e: CustomEvent) => void;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\t// The typed in value.\n\t\tthis._typedInValue = \"\";\n\t\tthis._valueBeforeOpen = this.getAttribute(\"value\") || \"\";\n\t\tthis._isTyping = false;\n\n\t\tthis._deleteHandler = this._onItemDelete.bind(this);\n\t}\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\n\t\tif (this.collapsed && !isPhone()) {\n\t\t\tthis.open = false;\n\t\t\treturn;\n\t\t}\n\n\t\tconst innerInput = this.nativeInput;\n\t\tconst autoCompletedChars = innerInput && (innerInput.selectionEnd! - innerInput.selectionStart!);\n\n\t\tthis.open = this.open || (this._popoupHasAnyContent() && this._isTyping && innerInput!.value.length > 0);\n\n\t\t// If there is already a selection the autocomplete has already been performed\n\t\tif (this._shouldAutocomplete && !autoCompletedChars) {\n\t\t\tconst item = this._getFirstMatchingItem(this.value);\n\t\t\tthis._proposedItem = item;\n\n\t\t\tif (item) {\n\t\t\t\tthis._handleTypeAhead(item);\n\t\t\t\tthis._selectMatchingItem(item);\n\t\t\t} else {\n\t\t\t\tthis._deselectItems();\n\t\t\t}\n\t\t}\n\n\t\tif (isPhone() && this.open) {\n\t\t\tconst item = this._getFirstMatchingItem(this.value);\n\t\t\tthis._proposedItem = item;\n\n\t\t\tif (item && this._performItemSelectionOnMobile) {\n\t\t\t\tthis._selectMatchingItem(item);\n\t\t\t}\n\t\t}\n\n\t\t// Update highlight text and attach delete listeners\n\t\tthis._flattenItems.forEach(item => {\n\t\t\t(item as SearchItem).highlightText = this._typedInValue;\n\n\t\t\t// Listen for delete events on each item\n\t\t\t// Using capture phase to ensure we catch it before application handlers\n\t\t\titem.removeEventListener(\"ui5-delete\", this._deleteHandler as EventListener, true);\n\t\t\titem.addEventListener(\"ui5-delete\", this._deleteHandler as EventListener, true);\n\t\t});\n\t}\n\n\tonAfterRendering(): void {\n\t\tconst innerInput = this.nativeInput;\n\n\t\tif (this._performTextSelection && innerInput && innerInput.value !== this._innerValue) {\n\t\t\tinnerInput.value = this._innerValue || \"\";\n\t\t}\n\n\t\tif (this._performTextSelection && this._typedInValue.length && this.value.length) {\n\t\t\tinnerInput?.setSelectionRange(this._typedInValue.length, this.value.length);\n\t\t}\n\n\t\tthis._performTextSelection = false;\n\n\t\tif (!this.collapsed) {\n\t\t\tthis.style.setProperty(\"--search_width\", `${this.getBoundingClientRect().width}px`);\n\t\t}\n\t}\n\n\t_handleMobileInput(e: CustomEvent<InputEventDetail>) {\n\t\tthis.value = (e.target as Input).value;\n\t\tthis._performItemSelectionOnMobile = this._shouldPerformSelectionOnMobile(e.detail.inputType);\n\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_shouldPerformSelectionOnMobile(inputType: string): boolean {\n\t\tconst allowedEventTypes = [\n\t\t\t\"deleteWordBackward\",\n\t\t\t\"deleteWordForward\",\n\t\t\t\"deleteSoftLineBackward\",\n\t\t\t\"deleteSoftLineForward\",\n\t\t\t\"deleteEntireSoftLine\",\n\t\t\t\"deleteHardLineBackward\",\n\t\t\t\"deleteHardLineForward\",\n\t\t\t\"deleteByDrag\",\n\t\t\t\"deleteByCut\",\n\t\t\t\"deleteContent\",\n\t\t\t\"deleteContentBackward\",\n\t\t\t\"deleteContentForward\",\n\t\t\t\"historyUndo\",\n\t\t];\n\n\t\treturn !this.noTypeahead && !allowedEventTypes.includes(inputType || \"\");\n\t}\n\n\t_handleTypeAhead(item: ISearchSuggestionItem) {\n\t\tconst originalValue = item.text || \"\";\n\n\t\tthis._typedInValue = this.value;\n\t\tthis._innerValue = originalValue;\n\t\tthis._performTextSelection = true;\n\t\tthis.value = originalValue;\n\t}\n\n\t_startsWithMatchingItems(str: string): Array<ISearchSuggestionItem> {\n\t\treturn StartsWith(str, this._flattenItems.filter(item => !this._isGroupItem(item) && !this._isShowMoreItem(item)), \"text\");\n\t}\n\n\t_isGroupItem(item: HTMLElement): item is SearchItemGroup {\n\t\treturn item.hasAttribute(\"ui5-search-item-group\");\n\t}\n\n\t_isShowMoreItem(item: ISearchSuggestionItem) {\n\t\treturn item.hasAttribute(\"ui5-search-item-show-more\");\n\t}\n\n\t_deselectItems() {\n\t\tthis._flattenItems.forEach(item => {\n\t\t\titem.selected = false;\n\t\t});\n\t}\n\n\t_selectMatchingItem(item: ISearchSuggestionItem) {\n\t\tthis._deselectItems();\n\t\titem.selected = true;\n\t}\n\n\t_handleDown(e: KeyboardEvent) {\n\t\tif (this.open) {\n\t\t\te.preventDefault();\n\t\t\tthis._handleArrowDown();\n\t\t}\n\t}\n\n\t_handleArrowDown() {\n\t\tconst focusableItems = this._getItemsList().listItems;\n\t\tconst firstListItem = focusableItems.at(0);\n\n\t\t// Store the original value before navigation starts\n\t\tif (this._valueBeforeArrowNav === undefined) {\n\t\t\tthis._valueBeforeArrowNav = this._typedInValue || this.value;\n\t\t}\n\n\t\tthis._deselectItems();\n\t\tthis.value = this._typedInValue || this.value;\n\t\tthis._innerValue = this.value;\n\n\t\t// Clear any text selection to allow autocomplete to work again when navigating back\n\t\tconst innerInput = this.nativeInput;\n\t\tif (innerInput) {\n\t\t\tinnerInput.setSelectionRange(this.value.length, this.value.length);\n\t\t}\n\n\t\tfirstListItem?.focus();\n\t}\n\n\t_handleInnerClick() {\n\t\tif (isPhone()) {\n\t\t\tthis.open = true;\n\t\t}\n\t}\n\n\t_handleSearchIconPress() {\n\t\tif (isPhone()) {\n\t\t\tthis.open = true;\n\t\t} else {\n\t\t\tsuper._handleSearchIconPress();\n\t\t}\n\t}\n\n\t_handleEnter() {\n\t\tconst prevented = !this.fireDecoratorEvent(\"search\", { item: this._proposedItem });\n\n\t\tif (prevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst innerInput = this.nativeInput!;\n\n\t\tinnerInput.setSelectionRange(this.value.length, this.value.length);\n\t\tthis.open = false;\n\t\tthis._isTyping = false;\n\t\tthis._valueBeforeArrowNav = undefined;\n\t}\n\n\t_onMobileInputKeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e)) {\n\t\t\tthis.value = this.mobileInput?.value || this.value;\n\t\t\tthis._handleEnter();\n\n\t\t\tthis.blur();\n\t\t}\n\t}\n\n\t_handleSearchEvent() {\n\t\tthis.fireDecoratorEvent(\"search\", { item: this._proposedItem });\n\t}\n\n\t_handleEscape() {\n\t\t// If arrow navigation was active, restore the original typed value\n\t\tif (this._valueBeforeArrowNav !== undefined) {\n\t\t\tthis.value = this._valueBeforeArrowNav;\n\t\t\tthis._innerValue = this._valueBeforeArrowNav;\n\t\t\tthis._valueBeforeArrowNav = undefined;\n\t\t} else {\n\t\t\tthis.value = this._typedInValue || this.value;\n\t\t\tthis._innerValue = this.value;\n\t\t}\n\t\tthis._isTyping = false;\n\t}\n\n\t_handleInput(e: InputEvent) {\n\t\tsuper._handleInput(e);\n\t\tthis._typedInValue = this.value;\n\t\tthis._proposedItem = undefined;\n\t\tthis._valueBeforeArrowNav = undefined;\n\n\t\tif (isPhone()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isTyping = true;\n\t\tthis.open = this.value.length > 0 && this._popoupHasAnyContent();\n\t}\n\n\t_handleClear(): void {\n\t\tsuper._handleClear();\n\n\t\tthis._typedInValue = \"\";\n\t\tthis._innerValue = \"\";\n\t\tthis._shouldAutocomplete = false;\n\t\tthis._valueBeforeArrowNav = undefined;\n\t\tthis.open = false;\n\t}\n\n\t_popoupHasAnyContent() {\n\t\treturn this.items.length > 0 || this.illustration.length > 0 || this.messageArea.length > 0 || this.loading || this.action.length > 0;\n\t}\n\n\t_onFooterButtonKeyDown(e: KeyboardEvent) {\n\t\tif (isUp(e)) {\n\t\t\tthis._flattenItems[this._flattenItems.length - 1].focus();\n\t\t}\n\t\tif (isTabPrevious(e)) {\n\t\t\tthis._getItemsList().focus();\n\t\t}\n\t}\n\n\t_onItemKeydown(e: KeyboardEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\t// if focus is on the group header (in group's shadow dom) the target is the group itself,\n\t\t// if so using getFocusDomRef ensures the actual focused element is used\n\t\tconst focusedItem = this._isGroupItem(target) ? target?.getFocusDomRef() : target;\n\t\tconst focusableItems = this._getItemsList().listItems;\n\t\tconst isFirstItem = focusableItems.at(0) === focusedItem;\n\t\tconst isLastItem = focusableItems.at(-1) === focusedItem;\n\t\tconst isArrowUp = isUp(e);\n\t\tconst isArrowDown = isDown(e);\n\t\tconst isTab = isTabNext(e);\n\n\t\te.preventDefault();\n\n\t\tif (isFirstItem && isArrowUp) {\n\t\t\t// Restore original value when navigating back to input\n\t\t\tif (this._valueBeforeArrowNav !== undefined) {\n\t\t\t\tthis.value = this._valueBeforeArrowNav;\n\t\t\t\tthis._innerValue = this._valueBeforeArrowNav;\n\t\t\t\tthis._valueBeforeArrowNav = undefined;\n\t\t\t}\n\n\t\t\tthis.nativeInput?.focus();\n\t\t\tthis._shouldAutocomplete = true;\n\t\t}\n\n\t\tif (isEscape(e)) {\n\t\t\tthis._handleEscape();\n\t\t}\n\n\t\tif ((isLastItem && isArrowDown) || isTab) {\n\t\t\tthis._getFooterButton()?.focus();\n\t\t}\n\t}\n\n\t_onListItemFocusIn(e: FocusEvent) {\n\t\t// Update input value when an item gets focus during arrow navigation\n\t\tif (this._valueBeforeArrowNav === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst target = e.target as HTMLElement;\n\t\tconst item = target as ISearchSuggestionItem;\n\n\t\t// Don't update input value when focus is on action buttons or delete button\n\t\tif (target.hasAttribute(\"ui5-button\") || target.hasAttribute(\"ui5-icon\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (item && item.text && !this._isShowMoreItem(item)) {\n\t\t\tthis.value = item.text;\n\t\t\tthis._innerValue = item.text;\n\t\t}\n\t}\n\n\t_onItemClick(e: CustomEvent) {\n\t\tconst item = e.detail.item as ISearchSuggestionItem;\n\t\tconst prevented = !this.fireDecoratorEvent(\"search\", { item });\n\n\t\tif (prevented) {\n\t\t\tif (isPhone()) {\n\t\t\t\tthis.open = false;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.value = item.text;\n\t\tthis._innerValue = this.value;\n\t\tthis._typedInValue = this.value;\n\t\tthis._shouldAutocomplete = false;\n\t\tthis._performTextSelection = true;\n\t\tthis._valueBeforeArrowNav = undefined;\n\t\tthis.open = false;\n\t\tthis._isTyping = false;\n\t\tthis.focus();\n\t}\n\n\t_onItemDelete(e: CustomEvent) {\n\t\t// If we're in arrow navigation mode and an item was deleted,\n\t\t// update the input to show the next matching item\n\t\tif (this._valueBeforeArrowNav !== undefined) {\n\t\t\tconst deletedItem = e.target as ISearchSuggestionItem;\n\n\t\t\t// Wait for the item to be removed from DOM\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst nextItem = this._getFirstMatchingItem(this._valueBeforeArrowNav!);\n\n\t\t\t\tif (nextItem && nextItem !== deletedItem) {\n\t\t\t\t\tthis.value = nextItem.text;\n\t\t\t\t\tthis._innerValue = nextItem.text;\n\t\t\t\t\tthis._selectMatchingItem(nextItem);\n\t\t\t\t\tnextItem.focus();\n\t\t\t\t} else {\n\t\t\t\t\t// No more matching items, restore original typed value\n\t\t\t\t\tthis.value = this._valueBeforeArrowNav!;\n\t\t\t\t\tthis._innerValue = this._valueBeforeArrowNav!;\n\t\t\t\t\tthis._deselectItems();\n\t\t\t\t\tthis.nativeInput?.focus();\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tsuper._onkeydown(e);\n\n\t\tif (this.loading) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._shouldAutocomplete = !this.noTypeahead\n\t\t\t&& !(isBackSpace(e) || isDelete(e) || isEscape(e) || isUp(e) || isDown(e) || isTabNext(e) || isEnter(e) || isPageUp(e) || isPageDown(e) || isHome(e) || isEnd(e) || isEscape(e));\n\n\t\tif (isDown(e)) {\n\t\t\tthis._handleDown(e);\n\t\t}\n\n\t\tif (isEscape(e)) {\n\t\t\tthis._handleEscape();\n\t\t}\n\n\t\t// deselect item on backspace or delete\n\t\tif (isBackSpace(e) || isDelete(e)) {\n\t\t\tthis._deselectItems();\n\t\t}\n\t}\n\n\t_onFocusOutSearch(e:FocusEvent) {\n\t\tconst target = e.relatedTarget as HTMLElement;\n\n\t\tif (this._getPicker().contains(target) || this.contains(target)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.open = false;\n\t\tthis._isTyping = false;\n\t}\n\n\t_handleBeforeClose(e: CustomEvent<PopupBeforeCloseEventDetail>) {\n\t\tif (e.detail.escPressed) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\t_handleCancel() {\n\t\tthis._handleClose();\n\t\tthis.value = this._valueBeforeOpen;\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_handleClose() {\n\t\tthis.open = false;\n\t\tthis._isTyping = false;\n\t\tthis._valueBeforeArrowNav = undefined;\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\t_handleBeforeOpen() {\n\t\tthis._valueBeforeOpen = this.value;\n\n\t\tif (isPhone() && this.mobileInput) {\n\t\t\tthis.mobileInput.value = this.value;\n\t\t}\n\t}\n\n\t_handleOpen() {\n\t\tthis.fireDecoratorEvent(\"open\");\n\t}\n\n\t_handleActionKeydown(e: KeyboardEvent) {\n\t\tif (isUp(e)) {\n\t\t\tthis._flattenItems[this._flattenItems.length - 1].focus();\n\t\t}\n\t}\n\n\t_onFooterButtonClick() {\n\t\tthis.fireDecoratorEvent(\"popup-action-press\");\n\t}\n\n\t_getFirstMatchingItem(current: string): ISearchSuggestionItem | undefined {\n\t\tif (!this._flattenItems.length || !current) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst startsWithMatches = this._startsWithMatchingItems(current);\n\n\t\tif (!startsWithMatches.length) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn startsWithMatches[0];\n\t}\n\n\t_getPicker() {\n\t\treturn this.shadowRoot!.querySelector<Popover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\t_getItemsList(): List {\n\t\treturn this._getPicker().querySelector(\".ui5-search-list\") as List;\n\t}\n\n\t_getFooterButton(): Button {\n\t\treturn this.action[0];\n\t}\n\n\tget _flattenItems(): Array<ISearchSuggestionItem> {\n\t\treturn this.getSlottedNodes<ISearchSuggestionItem>(\"items\").flatMap(item => {\n\t\t\treturn this._isGroupItem(item) ? [item, ...item.items] : [item];\n\t\t});\n\t}\n\n\tget nativeInput() {\n\t\tconst domRef = this.getDomRef();\n\n\t\treturn domRef?.querySelector<HTMLInputElement>(`input`);\n\t}\n\n\tget mobileInput() {\n\t\tconst domRef = this.shadowRoot;\n\n\t\treturn domRef ? domRef.querySelector<Input>(`[ui5-input]`) : null;\n\t}\n\n\tget cancelButtonText() {\n\t\treturn Search.i18nBundle.getText(SEARCH_CANCEL_BUTTON);\n\t}\n\n\tget suggestionsText() {\n\t\treturn Search.i18nBundle.getText(SEARCH_SUGGESTIONS);\n\t}\n\n\tget scopeSelect() {\n\t\tconst domRef = this.shadowRoot;\n\n\t\treturn domRef ? domRef.querySelector<Select>(`[ui5-select]`) : null;\n\t}\n}\n\nSearch.define();\n\nexport default Search;\n"]}
1
+ {"version":3,"file":"Search.js","sourceRoot":"","sources":["../src/Search.ts"],"names":[],"mappings":"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","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport type List from \"@ui5/webcomponents/dist/List.js\";\nimport {\n\tisUp,\n\tisDown,\n\tisEnter,\n\tisBackSpace,\n\tisDelete,\n\tisEscape,\n\tisTabNext,\n\tisPageUp,\n\tisPageDown,\n\tisHome,\n\tisEnd,\n\tisTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\n\nimport SearchTemplate from \"./SearchTemplate.js\";\nimport SearchCss from \"./generated/themes/Search.css.js\";\nimport SearchField from \"./SearchField.js\";\nimport { StartsWith } from \"@ui5/webcomponents/dist/Filters.js\";\nimport type UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type SearchItem from \"./SearchItem.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type Button from \"@ui5/webcomponents/dist/Button.js\";\nimport type IllustratedMessage from \"./IllustratedMessage.js\";\nimport type SearchItemGroup from \"./SearchItemGroup.js\";\nimport type SearchMessageArea from \"./SearchMessageArea.js\";\nimport { SEARCH_CANCEL_BUTTON, SEARCH_SUGGESTIONS } from \"./generated/i18n/i18n-defaults.js\";\nimport { i18n } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport type { InputEventDetail } from \"@ui5/webcomponents/dist/Input.js\";\nimport type Input from \"@ui5/webcomponents/dist/Input.js\";\nimport type { PopupBeforeCloseEventDetail } from \"@ui5/webcomponents/dist/Popup.js\";\nimport type Select from \"@ui5/webcomponents/dist/Select.js\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { ListItemBaseClickEventDetail } from \"@ui5/webcomponents/dist/ListItemBase.js\";\n\ninterface ISearchSuggestionItem extends UI5Element {\n\tselected: boolean;\n\ttext: string;\n\titems?: ISearchSuggestionItem[];\n\teventDetails: { click?: ListItemBaseClickEventDetail };\n}\n\ntype SearchEventDetails = {\n\titem?: ISearchSuggestionItem;\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * A `ui5-search` is an input with suggestions, used for user search.\n *\n * The `ui5-search` consists of several elements parts:\n * - Scope - displays a select in the beggining of the component, used for filtering results by their scope.\n * - Input field - for user input value\n * - Clear button - gives the possibility for deleting the entered value\n * - Search button - a primary button for performing search, when the user has entered a search term\n * - Suggestions - a list with available search suggestions\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/Search.js\";`\n *\n * @constructor\n * @extends SearchField\n * @public\n * @since 2.9.0\n * @experimental\n * @csspart popover - Used to style the suggestions popup\n */\n@customElement({\n\ttag: \"ui5-search\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: SearchTemplate,\n\tstyles: [\n\t\tSearchField.styles,\n\t\tSearchCss,\n\t],\n})\n\n/**\n * Fired when the popup is opened.\n *\n * @public\n */\n@event(\"open\")\n\n/**\n * Fired when the popup is closed.\n *\n * @public\n */\n@event(\"close\")\n\nclass Search extends SearchField {\n\teventDetails!: SearchField[\"eventDetails\"] & {\n\t\tsearch: SearchEventDetails,\n\t\t\"popup-action-press\": void,\n\t\t\"open\": void,\n\t\t\"close\": void,\n\t};\n\n\t/**\n\t * Indicates whether a loading indicator should be shown in the popup.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines whether the value will be autcompleted to match an item.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tnoTypeahead = false;\n\n\t/**\n\t * Defines the Search suggestion items.\n\t *\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tinvalidateOnChildChange: true,\n\t})\n\titems!: DefaultSlot<SearchItem | SearchItemGroup>;\n\n\t/**\n\t * Defines the popup footer action button.\n\t *\n\t * @public\n\t */\n\t@slot()\n\taction!: Slot<Button>;\n\n\t/**\n\t * Defines the illustrated message to be shown in the popup.\n\t *\n\t * @public\n\t */\n\t@slot()\n\tillustration!: Slot<IllustratedMessage>;\n\n\t/**\n\t * Defines the illustrated message to be shown in the popup.\n\t *\n\t * @public\n\t */\n\t@slot()\n\tmessageArea!: Slot<SearchMessageArea>;\n\n\t/**\n\t * Indicates whether the items picker is open.\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\topen = false;\n\n\t/**\n\t * Defines the inner stored value of the component.\n\t *\n\t * **Note:** The property is updated upon typing.\n\t * @default \"\"\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\t_innerValue?: string;\n\n\t/**\n\t * Determines whether the item selection should be performed on mobile devices.\n\t * Similar to _performTextSelection on desktop\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_performItemSelectionOnMobile?: boolean;\n\n\t/**\n\t * Based on the key pressed, determines if the autocomplete should be performed.\n\t * @private\n\t */\n\t_shouldAutocomplete?: boolean;\n\n\t/**\n\t * Determines whether a text selection should be performed.\n\t * @private\n\t */\n\t_performTextSelection?: boolean;\n\n\t/**\n\t * Holds the typed value from the user.\n\t * @private\n\t */\n\t_typedInValue: string;\n\n\t/**\n\t * Holds the typed value before opening the picker.\n\t * @private\n\t */\n\t_valueBeforeOpen: string;\n\n\t/**\n\t * Holds the original typed value before arrow key navigation in dropdown.\n\t * Used to restore the value when navigating back to the input field.\n\t * @private\n\t */\n\t_valueBeforeArrowNav?: string;\n\n\t/**\n\t * Holds the currently proposed item which will be selected if the user presses Enter.\n\t * @private\n\t */\n\t_proposedItem?: ISearchSuggestionItem;\n\n\t/**\n\t * This property is used during rendering to indicate that the user has started typing in the input\n\t * @private\n\t */\n\t_isTyping: boolean;\n\n\t/**\n\t * Bound reference to the delete handler for proper event listener removal.\n\t * @private\n\t */\n\t_deleteHandler: (e: CustomEvent) => void;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\t// The typed in value.\n\t\tthis._typedInValue = \"\";\n\t\tthis._valueBeforeOpen = this.getAttribute(\"value\") || \"\";\n\t\tthis._isTyping = false;\n\n\t\tthis._deleteHandler = this._onItemDelete.bind(this);\n\t}\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\n\t\tif (this.collapsed && !isPhone()) {\n\t\t\tthis.open = false;\n\t\t\treturn;\n\t\t}\n\n\t\tconst innerInput = this.nativeInput;\n\t\tconst autoCompletedChars = innerInput && (innerInput.selectionEnd! - innerInput.selectionStart!);\n\n\t\tthis.open = this.open || (this._popoupHasAnyContent() && this._isTyping && innerInput!.value.length > 0);\n\n\t\t// If there is already a selection the autocomplete has already been performed\n\t\tif (this._shouldAutocomplete && !autoCompletedChars) {\n\t\t\tconst item = this._getFirstMatchingItem(this.value);\n\t\t\tthis._proposedItem = item;\n\n\t\t\tif (item) {\n\t\t\t\tthis._handleTypeAhead(item);\n\t\t\t\tthis._selectMatchingItem(item);\n\t\t\t} else {\n\t\t\t\tthis._deselectItems();\n\t\t\t}\n\t\t}\n\n\t\tif (isPhone() && this.open) {\n\t\t\tconst item = this._getFirstMatchingItem(this.value);\n\t\t\tthis._proposedItem = item;\n\n\t\t\tif (item && this._performItemSelectionOnMobile) {\n\t\t\t\tthis._selectMatchingItem(item);\n\t\t\t}\n\t\t}\n\n\t\t// Update highlight text and attach delete listeners\n\t\tthis._flattenItems.forEach(item => {\n\t\t\t(item as SearchItem).highlightText = this._typedInValue;\n\n\t\t\t// Listen for delete events on each item\n\t\t\t// Using capture phase to ensure we catch it before application handlers\n\t\t\titem.removeEventListener(\"ui5-delete\", this._deleteHandler as EventListener, true);\n\t\t\titem.addEventListener(\"ui5-delete\", this._deleteHandler as EventListener, true);\n\t\t});\n\t}\n\n\tonAfterRendering(): void {\n\t\tconst innerInput = this.nativeInput;\n\n\t\tif (this._performTextSelection && innerInput && innerInput.value !== this._innerValue) {\n\t\t\tinnerInput.value = this._innerValue || \"\";\n\t\t}\n\n\t\tif (this._performTextSelection && this._typedInValue.length && this.value.length) {\n\t\t\tinnerInput?.setSelectionRange(this._typedInValue.length, this.value.length);\n\t\t}\n\n\t\tthis._performTextSelection = false;\n\n\t\tif (!this.collapsed) {\n\t\t\tthis.style.setProperty(\"--search_width\", `${this.getBoundingClientRect().width}px`);\n\t\t}\n\t}\n\n\t_handleMobileInput(e: CustomEvent<InputEventDetail>) {\n\t\tthis.value = (e.target as Input).value;\n\t\tthis._performItemSelectionOnMobile = this._shouldPerformSelectionOnMobile(e.detail.inputType);\n\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_shouldPerformSelectionOnMobile(inputType: string): boolean {\n\t\tconst allowedEventTypes = [\n\t\t\t\"deleteWordBackward\",\n\t\t\t\"deleteWordForward\",\n\t\t\t\"deleteSoftLineBackward\",\n\t\t\t\"deleteSoftLineForward\",\n\t\t\t\"deleteEntireSoftLine\",\n\t\t\t\"deleteHardLineBackward\",\n\t\t\t\"deleteHardLineForward\",\n\t\t\t\"deleteByDrag\",\n\t\t\t\"deleteByCut\",\n\t\t\t\"deleteContent\",\n\t\t\t\"deleteContentBackward\",\n\t\t\t\"deleteContentForward\",\n\t\t\t\"historyUndo\",\n\t\t];\n\n\t\treturn !this.noTypeahead && !allowedEventTypes.includes(inputType || \"\");\n\t}\n\n\t_handleTypeAhead(item: ISearchSuggestionItem) {\n\t\tconst originalValue = item.text || \"\";\n\n\t\tthis._typedInValue = this.value;\n\t\tthis._innerValue = originalValue;\n\t\tthis._performTextSelection = true;\n\t\tthis.value = originalValue;\n\t}\n\n\t_startsWithMatchingItems(str: string): Array<ISearchSuggestionItem> {\n\t\treturn StartsWith(str, this._flattenItems.filter(item => !this._isGroupItem(item) && !this._isShowMoreItem(item)), \"text\");\n\t}\n\n\t_isGroupItem(item: HTMLElement): item is SearchItemGroup {\n\t\treturn item.hasAttribute(\"ui5-search-item-group\");\n\t}\n\n\t_isShowMoreItem(item: ISearchSuggestionItem) {\n\t\treturn item.hasAttribute(\"ui5-search-item-show-more\");\n\t}\n\n\t_deselectItems() {\n\t\tthis._flattenItems.forEach(item => {\n\t\t\titem.selected = false;\n\t\t});\n\t}\n\n\t_selectMatchingItem(item: ISearchSuggestionItem) {\n\t\tthis._deselectItems();\n\t\titem.selected = true;\n\t}\n\n\t_handleDown(e: KeyboardEvent) {\n\t\tif (this.open) {\n\t\t\te.preventDefault();\n\t\t\tthis._handleArrowDown();\n\t\t}\n\t}\n\n\t_handleArrowDown() {\n\t\tconst focusableItems = this._getItemsList().listItems;\n\t\tconst firstListItem = focusableItems.at(0);\n\n\t\t// Store the original value before navigation starts\n\t\tif (this._valueBeforeArrowNav === undefined) {\n\t\t\tthis._valueBeforeArrowNav = this._typedInValue || this.value;\n\t\t}\n\n\t\tthis._deselectItems();\n\t\tthis.value = this._typedInValue || this.value;\n\t\tthis._innerValue = this.value;\n\n\t\t// Clear any text selection to allow autocomplete to work again when navigating back\n\t\tconst innerInput = this.nativeInput;\n\t\tif (innerInput) {\n\t\t\tinnerInput.setSelectionRange(this.value.length, this.value.length);\n\t\t}\n\n\t\tfirstListItem?.focus();\n\t}\n\n\t_handleInnerClick() {\n\t\tif (isPhone()) {\n\t\t\tthis.open = true;\n\t\t}\n\t}\n\n\t_handleSearchIconPress() {\n\t\tif (isPhone()) {\n\t\t\tthis.open = true;\n\t\t} else {\n\t\t\tsuper._handleSearchIconPress();\n\t\t}\n\t}\n\n\t_handleEnter() {\n\t\tconst prevented = !this.fireDecoratorEvent(\"search\", { item: this._proposedItem });\n\n\t\tif (prevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst innerInput = this.nativeInput!;\n\n\t\tinnerInput.setSelectionRange(this.value.length, this.value.length);\n\t\tthis.open = false;\n\t\tthis._isTyping = false;\n\t\tthis._valueBeforeArrowNav = undefined;\n\t}\n\n\t_onMobileInputKeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e)) {\n\t\t\tthis.value = this.mobileInput?.value || this.value;\n\t\t\tthis._handleEnter();\n\n\t\t\tthis.blur();\n\t\t}\n\t}\n\n\t_handleSearchEvent() {\n\t\tthis.fireDecoratorEvent(\"search\", { item: this._proposedItem });\n\t}\n\n\t_handleEscape() {\n\t\t// If arrow navigation was active, restore the original typed value\n\t\tif (this._valueBeforeArrowNav !== undefined) {\n\t\t\tthis.value = this._valueBeforeArrowNav;\n\t\t\tthis._innerValue = this._valueBeforeArrowNav;\n\t\t\tthis._valueBeforeArrowNav = undefined;\n\t\t} else {\n\t\t\tthis.value = this._typedInValue || this.value;\n\t\t\tthis._innerValue = this.value;\n\t\t}\n\t\tthis._isTyping = false;\n\t}\n\n\t_handleInput(e: InputEvent) {\n\t\tsuper._handleInput(e);\n\t\tthis._typedInValue = this.value;\n\t\tthis._proposedItem = undefined;\n\t\tthis._valueBeforeArrowNav = undefined;\n\n\t\tif (isPhone()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isTyping = true;\n\t\tthis.open = this.value.length > 0 && this._popoupHasAnyContent();\n\t}\n\n\t_handleClear(): void {\n\t\tsuper._handleClear();\n\n\t\tthis._typedInValue = \"\";\n\t\tthis._innerValue = \"\";\n\t\tthis._shouldAutocomplete = false;\n\t\tthis._valueBeforeArrowNav = undefined;\n\t\tthis.open = false;\n\t}\n\n\t_popoupHasAnyContent() {\n\t\treturn this.items.length > 0 || this.illustration.length > 0 || this.messageArea.length > 0 || this.loading || this.action.length > 0;\n\t}\n\n\t_onFooterButtonKeyDown(e: KeyboardEvent) {\n\t\tif (isUp(e)) {\n\t\t\tthis._flattenItems[this._flattenItems.length - 1].focus();\n\t\t}\n\t\tif (isTabPrevious(e)) {\n\t\t\tthis._getItemsList().focus();\n\t\t}\n\t}\n\n\t_onItemKeydown(e: KeyboardEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\t// if focus is on the group header (in group's shadow dom) the target is the group itself,\n\t\t// if so using getFocusDomRef ensures the actual focused element is used\n\t\tconst focusedItem = this._isGroupItem(target) ? target?.getFocusDomRef() : target;\n\t\tconst focusableItems = this._getItemsList().listItems;\n\t\tconst isFirstItem = focusableItems.at(0) === focusedItem;\n\t\tconst isLastItem = focusableItems.at(-1) === focusedItem;\n\t\tconst isArrowUp = isUp(e);\n\t\tconst isArrowDown = isDown(e);\n\t\tconst isTab = isTabNext(e);\n\n\t\te.preventDefault();\n\n\t\tif (isFirstItem && isArrowUp) {\n\t\t\t// Restore original value when navigating back to input\n\t\t\tif (this._valueBeforeArrowNav !== undefined) {\n\t\t\t\tthis.value = this._valueBeforeArrowNav;\n\t\t\t\tthis._innerValue = this._valueBeforeArrowNav;\n\t\t\t\tthis._valueBeforeArrowNav = undefined;\n\t\t\t}\n\n\t\t\tthis.nativeInput?.focus();\n\t\t\tthis._shouldAutocomplete = true;\n\t\t}\n\n\t\tif (isEscape(e)) {\n\t\t\tthis._handleEscape();\n\t\t}\n\n\t\tif ((isLastItem && isArrowDown) || isTab) {\n\t\t\tthis._getFooterButton()?.focus();\n\t\t}\n\t}\n\n\t_onListItemFocusIn(e: FocusEvent) {\n\t\t// Update input value when an item gets focus during arrow navigation\n\t\tif (this._valueBeforeArrowNav === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst target = e.target as HTMLElement;\n\t\tconst item = target as ISearchSuggestionItem;\n\n\t\t// Don't update input value when focus is on action buttons or delete button\n\t\tif (target.hasAttribute(\"ui5-button\") || target.hasAttribute(\"ui5-icon\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (item && item.text && !this._isShowMoreItem(item)) {\n\t\t\tthis.value = item.text;\n\t\t\tthis._innerValue = item.text;\n\t\t}\n\t}\n\n\t_onItemClick(e: CustomEvent) {\n\t\tconst item = e.detail.item as ISearchSuggestionItem;\n\t\tconst prevented = !this.fireDecoratorEvent(\"search\", { item });\n\n\t\tif (prevented) {\n\t\t\tif (isPhone()) {\n\t\t\t\tthis.open = false;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.value = item.text;\n\t\tthis._innerValue = this.value;\n\t\tthis._typedInValue = this.value;\n\t\tthis._shouldAutocomplete = false;\n\t\tthis._performTextSelection = true;\n\t\tthis._valueBeforeArrowNav = undefined;\n\t\tthis.open = false;\n\t\tthis._isTyping = false;\n\t\tthis.focus();\n\t}\n\n\t_onItemDelete(e: CustomEvent) {\n\t\t// If we're in arrow navigation mode and an item was deleted,\n\t\t// update the input to show the next matching item\n\t\tif (this._valueBeforeArrowNav !== undefined) {\n\t\t\tconst deletedItem = e.target as ISearchSuggestionItem;\n\n\t\t\t// Wait for the item to be removed from DOM\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst nextItem = this._getFirstMatchingItem(this._valueBeforeArrowNav!);\n\n\t\t\t\tif (nextItem && nextItem !== deletedItem) {\n\t\t\t\t\tthis.value = nextItem.text;\n\t\t\t\t\tthis._innerValue = nextItem.text;\n\t\t\t\t\tthis._selectMatchingItem(nextItem);\n\t\t\t\t\tnextItem.focus();\n\t\t\t\t} else {\n\t\t\t\t\t// No more matching items, restore original typed value\n\t\t\t\t\tthis.value = this._valueBeforeArrowNav!;\n\t\t\t\t\tthis._innerValue = this._valueBeforeArrowNav!;\n\t\t\t\t\tthis._deselectItems();\n\t\t\t\t\tthis.nativeInput?.focus();\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tsuper._onkeydown(e);\n\n\t\tif (this.loading) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._shouldAutocomplete = !this.noTypeahead\n\t\t\t&& !(isBackSpace(e) || isDelete(e) || isEscape(e) || isUp(e) || isDown(e) || isTabNext(e) || isEnter(e) || isPageUp(e) || isPageDown(e) || isHome(e) || isEnd(e) || isEscape(e));\n\n\t\tif (isDown(e)) {\n\t\t\tthis._handleDown(e);\n\t\t}\n\n\t\tif (isEscape(e)) {\n\t\t\tthis._handleEscape();\n\t\t}\n\n\t\t// deselect item on backspace or delete\n\t\tif (isBackSpace(e) || isDelete(e)) {\n\t\t\tthis._deselectItems();\n\t\t}\n\t}\n\n\t_onFocusOutSearch(e:FocusEvent) {\n\t\tconst target = e.relatedTarget as HTMLElement;\n\n\t\tif (this._getPicker().contains(target) || this.contains(target)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.open = false;\n\t\tthis._isTyping = false;\n\t}\n\n\t_handleBeforeClose(e: CustomEvent<PopupBeforeCloseEventDetail>) {\n\t\tif (e.detail.escPressed) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\t_handleCancel() {\n\t\tthis._handleClose();\n\t\tthis.value = this._valueBeforeOpen;\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_handleClose() {\n\t\tthis.open = false;\n\t\tthis._isTyping = false;\n\t\tthis._valueBeforeArrowNav = undefined;\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\t_handleBeforeOpen() {\n\t\tthis._valueBeforeOpen = this.value;\n\n\t\tif (isPhone() && this.mobileInput) {\n\t\t\tthis.mobileInput.value = this.value;\n\t\t}\n\t}\n\n\t_handleOpen() {\n\t\tthis.fireDecoratorEvent(\"open\");\n\t}\n\n\t_handleActionKeydown(e: KeyboardEvent) {\n\t\tif (isUp(e)) {\n\t\t\tthis._flattenItems[this._flattenItems.length - 1].focus();\n\t\t}\n\t}\n\n\t_onFooterButtonClick() {\n\t\tthis.fireDecoratorEvent(\"popup-action-press\");\n\t}\n\n\t_getFirstMatchingItem(current: string): ISearchSuggestionItem | undefined {\n\t\tif (!this._flattenItems.length || !current) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst startsWithMatches = this._startsWithMatchingItems(current);\n\n\t\tif (!startsWithMatches.length) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn startsWithMatches[0];\n\t}\n\n\t_getPicker() {\n\t\treturn this.shadowRoot!.querySelector<Popover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\t_getItemsList(): List {\n\t\treturn this._getPicker().querySelector(\".ui5-search-list\") as List;\n\t}\n\n\t_getFooterButton(): Button {\n\t\treturn this.action[0];\n\t}\n\n\tget _flattenItems(): Array<ISearchSuggestionItem> {\n\t\treturn this.getSlottedNodes<ISearchSuggestionItem>(\"items\").flatMap(item => {\n\t\t\treturn this._isGroupItem(item) ? [item, ...item.items] : [item];\n\t\t});\n\t}\n\n\tget nativeInput() {\n\t\tconst domRef = this.getDomRef();\n\n\t\treturn domRef?.querySelector<HTMLInputElement>(`input`);\n\t}\n\n\tget mobileInput() {\n\t\tconst domRef = this.shadowRoot;\n\n\t\treturn domRef ? domRef.querySelector<Input>(`[ui5-input]`) : null;\n\t}\n\n\tget cancelButtonText() {\n\t\treturn Search.i18nBundle.getText(SEARCH_CANCEL_BUTTON);\n\t}\n\n\tget suggestionsText() {\n\t\treturn Search.i18nBundle.getText(SEARCH_SUGGESTIONS);\n\t}\n\n\tget scopeSelect() {\n\t\tconst domRef = this.shadowRoot;\n\n\t\treturn domRef ? domRef.querySelector<Select>(`[ui5-select]`) : null;\n\t}\n}\n\nSearch.define();\n\nexport default Search;\n"]}
@@ -13,7 +13,7 @@ import Button from "@ui5/webcomponents/dist/Button.js";
13
13
  import ButtonDesign from "@ui5/webcomponents/dist/types/ButtonDesign.js";
14
14
  import ListAccessibleRole from "@ui5/webcomponents/dist/types/ListAccessibleRole.js";
15
15
  export default function SearchPopoverTemplate(headerTemplate) {
16
- return (_jsxs(ResponsivePopover, { id: "ui5-search-list", hideArrow: true, preventFocusRestore: true, preventInitialFocus: !isPhone(), accessibleNameRef: "suggestions-speech-output message-area-text message-area-description", placement: PopoverPlacement.Bottom, horizontalAlign: PopoverHorizontalAlign.Start, open: this.open, opener: this, onOpen: this._handleOpen, onClose: this._handleClose, onBeforeClose: this._handleBeforeClose, onBeforeOpen: this._handleBeforeOpen, class: {
16
+ return (_jsxs(ResponsivePopover, { id: "ui5-search-list", hideArrow: true, preventFocusRestore: true, preventInitialFocus: !isPhone(), accessibleNameRef: "suggestions-speech-output message-area-text message-area-description", placement: PopoverPlacement.Bottom, horizontalAlign: PopoverHorizontalAlign.Start, open: this.open, opener: this, onOpen: this._handleOpen, onClose: this._handleClose, onBeforeClose: this._handleBeforeClose, onBeforeOpen: this._handleBeforeOpen, part: "popover", class: {
17
17
  "ui5-search-popover": true,
18
18
  "ui5-search-popover-phone": isPhone(),
19
19
  }, children: [isPhone() ? (headerTemplate ? headerTemplate.call(this) : (_jsx(_Fragment, { children: _jsxs("header", { slot: "header", class: "ui5-search-popup-searching-header", children: [_jsx(Input, { class: "ui5-search-popover-search-field", onInput: this._handleMobileInput, showClearIcon: this.showClearIcon, noTypeahead: this.noTypeahead, hint: InputKeyHint.Search, onKeyDown: this._onMobileInputKeydown, children: this._flattenItems.map(item => {
@@ -1 +1 @@
1
- {"version":3,"file":"SearchPopoverTemplate.js","sourceRoot":"","sources":["../src/SearchPopoverTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import ResponsivePopover from \"@ui5/webcomponents/dist/ResponsivePopover.js\";\nimport type Search from \"./Search.js\";\nimport BusyIndicator from \"@ui5/webcomponents/dist/BusyIndicator.js\";\nimport List from \"@ui5/webcomponents/dist/List.js\";\nimport ListSeparator from \"@ui5/webcomponents/dist/types/ListSeparator.js\";\nimport PopoverHorizontalAlign from \"@ui5/webcomponents/dist/types/PopoverHorizontalAlign.js\";\nimport PopoverPlacement from \"@ui5/webcomponents/dist/types/PopoverPlacement.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport Input from \"@ui5/webcomponents/dist/Input.js\";\nimport SuggestionItem from \"@ui5/webcomponents/dist/SuggestionItem.js\";\nimport InputKeyHint from \"@ui5/webcomponents/dist/types/InputKeyHint.js\";\nimport Button from \"@ui5/webcomponents/dist/Button.js\";\nimport ButtonDesign from \"@ui5/webcomponents/dist/types/ButtonDesign.js\";\nimport ListAccessibleRole from \"@ui5/webcomponents/dist/types/ListAccessibleRole.js\";\nimport type { JsxTemplate } from \"@ui5/webcomponents-base/dist/index.js\";\n\nexport default function SearchPopoverTemplate(this: Search, headerTemplate?: JsxTemplate) {\n\treturn (\n\t\t<ResponsivePopover\n\t\t\tid=\"ui5-search-list\"\n\t\t\thideArrow={true}\n\t\t\tpreventFocusRestore={true}\n\t\t\tpreventInitialFocus={!isPhone()}\n\t\t\taccessibleNameRef=\"suggestions-speech-output message-area-text message-area-description\"\n\t\t\tplacement={PopoverPlacement.Bottom}\n\t\t\thorizontalAlign={PopoverHorizontalAlign.Start}\n\t\t\topen={this.open}\n\t\t\topener={this}\n\t\t\tonOpen={this._handleOpen}\n\t\t\tonClose={this._handleClose}\n\t\t\tonBeforeClose={this._handleBeforeClose}\n\t\t\tonBeforeOpen={this._handleBeforeOpen}\n\t\t\tclass={{\n\t\t\t\t\"ui5-search-popover\": true,\n\t\t\t\t\"ui5-search-popover-phone\": isPhone(),\n\t\t\t}}\n\t\t>\n\n\t\t\t{isPhone() ? (headerTemplate ? headerTemplate.call(this) : (\n\t\t\t\t<>\n\t\t\t\t\t<header slot=\"header\" class=\"ui5-search-popup-searching-header\">\n\t\t\t\t\t\t<Input class=\"ui5-search-popover-search-field\" onInput={this._handleMobileInput} showClearIcon={this.showClearIcon} noTypeahead={this.noTypeahead} hint={InputKeyHint.Search} onKeyDown={this._onMobileInputKeydown}>\n\t\t\t\t\t\t\t{this._flattenItems.map(item => {\n\t\t\t\t\t\t\t\treturn (<SuggestionItem text={item.text}></SuggestionItem>);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</Input>\n\t\t\t\t\t\t<Button design={ButtonDesign.Transparent} onClick={this._handleCancel}>{this.cancelButtonText}</Button>\n\t\t\t\t\t</header>\n\t\t\t\t</>\n\t\t\t)) : null }\n\n\t\t\t<main class=\"ui5-search-popover-content\">\n\t\t\t\t<slot name=\"messageArea\"></slot>\n\t\t\t\t<div class=\"search-popover-busy-wrapper\">\n\t\t\t\t\t<BusyIndicator active={true}></BusyIndicator>\n\t\t\t\t</div>\n\n\t\t\t\t{this.items.length ?\n\t\t\t\t\t<List\n\t\t\t\t\t\tclass=\"ui5-search-list\"\n\t\t\t\t\t\tseparators={ListSeparator.None}\n\t\t\t\t\t\tonKeyDown={this._onItemKeydown}\n\t\t\t\t\t\tonFocusIn={this._onListItemFocusIn}\n\t\t\t\t\t\taccessibleRole={ListAccessibleRole.ListBox}\n\t\t\t\t\t\tonItemClick={this._onItemClick}>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</List>\n\t\t\t\t\t: (\n\t\t\t\t\t\t<slot name=\"illustration\"></slot>\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\t<span class=\"ui5-hidden-text\" id=\"suggestions-speech-output\">{this.suggestionsText}</span>\n\t\t\t\t{this.messageArea[0]?.text ? (<span class=\"ui5-hidden-text\" id=\"message-area-text\">{this.messageArea[0].text}</span>) : null}\n\t\t\t\t{this.messageArea[0]?.description ? (<span class=\"ui5-hidden-text\" id=\"message-area-description\">{this.messageArea[0].description}</span>) : null}\n\t\t\t</main>\n\n\t\t\t{this.action.length ? (<slot onKeyDown={this._handleActionKeydown} name=\"action\" slot=\"footer\"></slot>) : null}\n\t\t</ResponsivePopover>\n\t);\n}\n"]}
1
+ {"version":3,"file":"SearchPopoverTemplate.js","sourceRoot":"","sources":["../src/SearchPopoverTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import ResponsivePopover from \"@ui5/webcomponents/dist/ResponsivePopover.js\";\nimport type Search from \"./Search.js\";\nimport BusyIndicator from \"@ui5/webcomponents/dist/BusyIndicator.js\";\nimport List from \"@ui5/webcomponents/dist/List.js\";\nimport ListSeparator from \"@ui5/webcomponents/dist/types/ListSeparator.js\";\nimport PopoverHorizontalAlign from \"@ui5/webcomponents/dist/types/PopoverHorizontalAlign.js\";\nimport PopoverPlacement from \"@ui5/webcomponents/dist/types/PopoverPlacement.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport Input from \"@ui5/webcomponents/dist/Input.js\";\nimport SuggestionItem from \"@ui5/webcomponents/dist/SuggestionItem.js\";\nimport InputKeyHint from \"@ui5/webcomponents/dist/types/InputKeyHint.js\";\nimport Button from \"@ui5/webcomponents/dist/Button.js\";\nimport ButtonDesign from \"@ui5/webcomponents/dist/types/ButtonDesign.js\";\nimport ListAccessibleRole from \"@ui5/webcomponents/dist/types/ListAccessibleRole.js\";\nimport type { JsxTemplate } from \"@ui5/webcomponents-base/dist/index.js\";\n\nexport default function SearchPopoverTemplate(this: Search, headerTemplate?: JsxTemplate) {\n\treturn (\n\t\t<ResponsivePopover\n\t\t\tid=\"ui5-search-list\"\n\t\t\thideArrow={true}\n\t\t\tpreventFocusRestore={true}\n\t\t\tpreventInitialFocus={!isPhone()}\n\t\t\taccessibleNameRef=\"suggestions-speech-output message-area-text message-area-description\"\n\t\t\tplacement={PopoverPlacement.Bottom}\n\t\t\thorizontalAlign={PopoverHorizontalAlign.Start}\n\t\t\topen={this.open}\n\t\t\topener={this}\n\t\t\tonOpen={this._handleOpen}\n\t\t\tonClose={this._handleClose}\n\t\t\tonBeforeClose={this._handleBeforeClose}\n\t\t\tonBeforeOpen={this._handleBeforeOpen}\n\t\t\tpart=\"popover\"\n\t\t\tclass={{\n\t\t\t\t\"ui5-search-popover\": true,\n\t\t\t\t\"ui5-search-popover-phone\": isPhone(),\n\t\t\t}}\n\t\t>\n\n\t\t\t{isPhone() ? (headerTemplate ? headerTemplate.call(this) : (\n\t\t\t\t<>\n\t\t\t\t\t<header slot=\"header\" class=\"ui5-search-popup-searching-header\">\n\t\t\t\t\t\t<Input class=\"ui5-search-popover-search-field\" onInput={this._handleMobileInput} showClearIcon={this.showClearIcon} noTypeahead={this.noTypeahead} hint={InputKeyHint.Search} onKeyDown={this._onMobileInputKeydown}>\n\t\t\t\t\t\t\t{this._flattenItems.map(item => {\n\t\t\t\t\t\t\t\treturn (<SuggestionItem text={item.text}></SuggestionItem>);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</Input>\n\t\t\t\t\t\t<Button design={ButtonDesign.Transparent} onClick={this._handleCancel}>{this.cancelButtonText}</Button>\n\t\t\t\t\t</header>\n\t\t\t\t</>\n\t\t\t)) : null }\n\n\t\t\t<main class=\"ui5-search-popover-content\">\n\t\t\t\t<slot name=\"messageArea\"></slot>\n\t\t\t\t<div class=\"search-popover-busy-wrapper\">\n\t\t\t\t\t<BusyIndicator active={true}></BusyIndicator>\n\t\t\t\t</div>\n\n\t\t\t\t{this.items.length ?\n\t\t\t\t\t<List\n\t\t\t\t\t\tclass=\"ui5-search-list\"\n\t\t\t\t\t\tseparators={ListSeparator.None}\n\t\t\t\t\t\tonKeyDown={this._onItemKeydown}\n\t\t\t\t\t\tonFocusIn={this._onListItemFocusIn}\n\t\t\t\t\t\taccessibleRole={ListAccessibleRole.ListBox}\n\t\t\t\t\t\tonItemClick={this._onItemClick}>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</List>\n\t\t\t\t\t: (\n\t\t\t\t\t\t<slot name=\"illustration\"></slot>\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\t<span class=\"ui5-hidden-text\" id=\"suggestions-speech-output\">{this.suggestionsText}</span>\n\t\t\t\t{this.messageArea[0]?.text ? (<span class=\"ui5-hidden-text\" id=\"message-area-text\">{this.messageArea[0].text}</span>) : null}\n\t\t\t\t{this.messageArea[0]?.description ? (<span class=\"ui5-hidden-text\" id=\"message-area-description\">{this.messageArea[0].description}</span>) : null}\n\t\t\t</main>\n\n\t\t\t{this.action.length ? (<slot onKeyDown={this._handleActionKeydown} name=\"action\" slot=\"footer\"></slot>) : null}\n\t\t</ResponsivePopover>\n\t);\n}\n"]}
@@ -376,6 +376,15 @@ declare class ShellBar extends UI5Element {
376
376
  closeOverflow(): void;
377
377
  handleOverflowItemClick(e: MouseEvent): void;
378
378
  get overflowItems(): readonly import("./shellbar/ShellBarOverflow.js").ShellBarOverflowItem[];
379
+ /**
380
+ * Only entries that are actually `ui5-shellbar-item` instances participate in the
381
+ * overflow calculation and template rendering. The default slot's type is
382
+ * `HTMLElement`, so any stray child (e.g. a bare `<span>`) ends up in `this.items`;
383
+ * if such an element reaches the overflow algorithm it has no `_id` / `stableDomRef`,
384
+ * which writes `undefined` back into reactive properties on every pass and re-enters
385
+ * the render queue until `RenderQueue` throws "processed too many times".
386
+ */
387
+ get _validItems(): ShellBarItem[];
379
388
  /**
380
389
  * Returns badge text for overflow button.
381
390
  * Shows count if only one item with count is overflowed, otherwise shows attention dot.
package/dist/ShellBar.js CHANGED
@@ -40,7 +40,7 @@ import ShellBarSearchLegacy from "./shellbar/ShellBarSearchLegacy.js";
40
40
  import ShellBarOverflow from "./shellbar/ShellBarOverflow.js";
41
41
  import ShellBarAccessibility from "./shellbar/ShellBarAccessibility.js";
42
42
  import ShellBarItemNavigation from "./shellbar/ShellBarItemNavigation.js";
43
- import ShellBarItem from "./ShellBarItem.js";
43
+ import ShellBarItem, { isInstanceOfShellBarItem } from "./ShellBarItem.js";
44
44
  import ShellBarSpacer from "./ShellBarSpacer.js";
45
45
  import { SHELLBAR_LABEL, SHELLBAR_NOTIFICATIONS, SHELLBAR_NOTIFICATIONS_NO_COUNT, SHELLBAR_PROFILE, SHELLBAR_PRODUCTS, SHELLBAR_SEARCH, SHELLBAR_ASSISTANT, SHELLBAR_OVERFLOW, SHELLBAR_ADDITIONAL_CONTEXT, } from "./generated/i18n/i18n-defaults.js";
46
46
  const ShellBarActions = {
@@ -335,7 +335,7 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
335
335
  const result = this.overflow.updateOverflow({
336
336
  actions: this.actions,
337
337
  content: this.sortContent(this.content),
338
- customItems: this.items,
338
+ customItems: this._validItems,
339
339
  hiddenItemsIds: this.hiddenItemsIds,
340
340
  showSearchField: this.enabledFeatures.search && this.showSearchField,
341
341
  overflowOuter: this.overflowOuter,
@@ -353,7 +353,7 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
353
353
  handleUpdateOverflowResult(result) {
354
354
  const { hiddenItemsIds, showOverflowButton } = result;
355
355
  // Update items overflow state
356
- this.items.forEach(item => {
356
+ this._validItems.forEach(item => {
357
357
  item.inOverflow = hiddenItemsIds.includes(item._id);
358
358
  if (item.inOverflow) {
359
359
  // clear the hidden class to ensure the item is visible in the overflow popover
@@ -417,10 +417,21 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
417
417
  get overflowItems() {
418
418
  return this.overflow.getOverflowItems({
419
419
  actions: this.actions,
420
- customItems: this.items,
420
+ customItems: this._validItems,
421
421
  hiddenItemsIds: this.hiddenItemsIds,
422
422
  });
423
423
  }
424
+ /**
425
+ * Only entries that are actually `ui5-shellbar-item` instances participate in the
426
+ * overflow calculation and template rendering. The default slot's type is
427
+ * `HTMLElement`, so any stray child (e.g. a bare `<span>`) ends up in `this.items`;
428
+ * if such an element reaches the overflow algorithm it has no `_id` / `stableDomRef`,
429
+ * which writes `undefined` back into reactive properties on every pass and re-enters
430
+ * the render queue until `RenderQueue` throws "processed too many times".
431
+ */
432
+ get _validItems() {
433
+ return this.items.filter(isInstanceOfShellBarItem);
434
+ }
424
435
  /**
425
436
  * Returns badge text for overflow button.
426
437
  * Shows count if only one item with count is overflowed, otherwise shows attention dot.
@@ -1 +1 @@
1
- {"version":3,"file":"ShellBar.js","sourceRoot":"","sources":["../src/ShellBar.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScopeUtils.js\";\nimport arraysAreEqual from \"@ui5/webcomponents-base/dist/util/arraysAreEqual.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport throttle from \"@ui5/webcomponents-base/dist/util/throttle.js\";\n\nimport type { IButton } from \"@ui5/webcomponents/dist/Button.js\";\nimport Button from \"@ui5/webcomponents/dist/Button.js\";\nimport ButtonBadge from \"@ui5/webcomponents/dist/ButtonBadge.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport Menu from \"@ui5/webcomponents/dist/Menu.js\";\nimport List from \"@ui5/webcomponents/dist/List.js\";\nimport ListItemStandard from \"@ui5/webcomponents/dist/ListItemStandard.js\";\nimport searchIcon from \"@ui5/webcomponents-icons/dist/search.js\";\nimport bellIcon from \"@ui5/webcomponents-icons/dist/bell.js\";\nimport gridIcon from \"@ui5/webcomponents-icons/dist/grid.js\";\nimport daIcon from \"@ui5/webcomponents-icons/dist/da.js\";\nimport overflowIcon from \"@ui5/webcomponents-icons/dist/overflow.js\";\n\nimport ShellBarTemplate from \"./ShellBarTemplate.js\";\nimport shellBarStyles from \"./generated/themes/ShellBar.css.js\";\nimport ShellBarPopoverCss from \"./generated/themes/ShellBarPopover.css.js\";\nimport shellBarLegacyStyles from \"./generated/themes/ShellBarLegacy.css.js\";\n\nimport type { IShellBarSearchController } from \"./shellbar/IShellBarSearchController.js\";\n\nimport ShellBarLegacy from \"./shellbar/ShellBarLegacy.js\";\nimport ShellBarSearch from \"./shellbar/ShellBarSearch.js\";\nimport ShellBarSearchLegacy from \"./shellbar/ShellBarSearchLegacy.js\";\nimport ShellBarOverflow from \"./shellbar/ShellBarOverflow.js\";\nimport ShellBarAccessibility from \"./shellbar/ShellBarAccessibility.js\";\nimport ShellBarItemNavigation from \"./shellbar/ShellBarItemNavigation.js\";\n\nimport ShellBarItem from \"./ShellBarItem.js\";\nimport ShellBarSpacer from \"./ShellBarSpacer.js\";\nimport type ShellBarBranding from \"./ShellBarBranding.js\";\nimport type { ShellBarOverflowResult } from \"./shellbar/ShellBarOverflow.js\";\n\nimport type {\n\tShellBarAccessibilityInfo,\n\tShellBarAccessibilityAttributes,\n\tShellBarAreaAccessibilityAttributes,\n\tShellBarLogoAccessibilityAttributes,\n\tShellBarProfileAccessibilityAttributes,\n} from \"./shellbar/ShellBarAccessibility.js\";\n\nimport {\n\tSHELLBAR_LABEL,\n\tSHELLBAR_NOTIFICATIONS,\n\tSHELLBAR_NOTIFICATIONS_NO_COUNT,\n\tSHELLBAR_PROFILE,\n\tSHELLBAR_PRODUCTS,\n\tSHELLBAR_SEARCH,\n\tSHELLBAR_ASSISTANT,\n\tSHELLBAR_OVERFLOW,\n\tSHELLBAR_ADDITIONAL_CONTEXT,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport type ListItemBase from \"@ui5/webcomponents/dist/ListItemBase.js\";\n\ntype ShellBarBreakpoint = \"S\" | \"M\" | \"L\" | \"XL\" | \"XXL\";\n\nconst ShellBarActions = {\n\tSearch: \"search\",\n\tProfile: \"profile\",\n\tOverflow: \"overflow\",\n\tAssistant: \"assistant\",\n\tProductSwitch: \"products\",\n\tNotifications: \"notifications\",\n};\n\nconst ShellBarActionsSelectors = {\n\tSearch: \".ui5-shellbar-search-toggle\",\n\tProfile: \".ui5-shellbar-image-button\",\n\tOverflow: \".ui5-shellbar-overflow-button\",\n\tAssistant: \".ui5-shellbar-assistant-button\",\n\tProductSwitch: \".ui5-shellbar-button-product-switch\",\n\tNotifications: \".ui5-shellbar-bell-button\",\n};\n\ntype ShellBarActionId = typeof ShellBarActions[keyof typeof ShellBarActions];\n\ntype ShellBarActionItem = {\n\tid: ShellBarActionId;\n\ticon?: string;\n\tcount?: string;\n\tenabled: boolean; \t\t// Whether the action is enabled and should be displayed\n\tselector: string; \t\t// The selector by which we can target the action\n\tisProtected: boolean \t// Whether the action can go into the overflow\n\tstableDomRef?: string;\n};\n\ninterface IShellBarSearchField extends HTMLElement {\n\tfocused: boolean;\n\tvalue: string;\n\tcollapsed?: boolean;\n\topen?: boolean;\n}\n\n// Event Types\n\ntype ShellBarNotificationsClickEventDetail = {\n\ttargetRef: HTMLElement;\n};\n\ntype ShellBarProfileClickEventDetail = {\n\ttargetRef: HTMLElement;\n};\n\ntype ShellBarProductSwitchClickEventDetail = {\n\ttargetRef: HTMLElement;\n};\n\ntype ShellBarLogoClickEventDetail = {\n\ttargetRef: HTMLElement;\n};\n\ntype ShellBarMenuItemClickEventDetail = {\n\titem: HTMLElement;\n};\n\ntype ShellBarContentItemVisibilityChangeEventDetail = {\n\titems: Array<HTMLElement>\n};\n\ntype ShellBarSearchButtonEventDetail = {\n\ttargetRef: HTMLElement;\n\tsearchFieldVisible: boolean;\n};\n\ntype ShellBarSearchFieldToggleEventDetail = {\n\texpanded: boolean;\n};\n\ntype ShellBarSearchFieldClearEventDetail = {\n\ttargetRef: HTMLElement;\n};\n\n/**\n * @class\n * ### Overview\n *\n * The `ui5-shellbar` is meant to serve as an application header\n * and includes numerous built-in features, such as: logo, profile image/icon, title, search field, notifications and so on.\n *\n * ### Stable DOM Refs\n *\n * You can use the following stable DOM refs for the `ui5-shellbar`:\n *\n * - logo\n * - notifications\n * - overflow\n * - profile\n * - product-switch\n *\n * ### Keyboard Handling\n *\n * #### Fast Navigation\n * This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\n * In order to use this functionality, you need to import the following module:\n * `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n * ### ES6 Module Import\n * `import \"@ui5/webcomponents-fiori/dist/ShellBar.js\";`\n * @csspart root - Used to style the outermost wrapper of the `ui5-shellbar`\n * @constructor\n * @extends UI5Element\n * @public\n * @since 0.8.0\n */\n\n@customElement({\n\ttag: \"ui5-shellbar\",\n\tstyles: [shellBarStyles, shellBarLegacyStyles, ShellBarPopoverCss],\n\trenderer: jsxRenderer,\n\ttemplate: ShellBarTemplate,\n\tfastNavigation: true,\n\tlanguageAware: true,\n\tdependencies: [\n\t\tIcon,\n\t\tList,\n\t\tButton,\n\t\tButtonBadge,\n\t\tPopover,\n\t\tShellBarSpacer,\n\t\tShellBarItem,\n\t\tListItemStandard,\n\t\t// legacy dependencies\n\t\tMenu,\n\t],\n})\n/**\n *\n * Fired, when the notification icon is activated.\n * @param {HTMLElement} targetRef dom ref of the activated element\n * @public\n */\n@event(\"notifications-click\", {\n\tcancelable: true,\n\tbubbles: true,\n})\n\n/**\n * Fired, when the profile slot is present.\n * @param {HTMLElement} targetRef dom ref of the activated element\n * @public\n */\n@event(\"profile-click\", {\n\tbubbles: true,\n})\n\n/**\n * Fired, when the product switch icon is activated.\n *\n * **Note:** You can prevent closing of overflow popover by calling `event.preventDefault()`.\n * @param {HTMLElement} targetRef dom ref of the activated element\n * @public\n */\n@event(\"product-switch-click\", {\n\tcancelable: true,\n\tbubbles: true,\n})\n\n/**\n * Fired, when the logo is activated.\n * @param {HTMLElement} targetRef dom ref of the activated element\n * @since 0.10\n * @public\n */\n@event(\"logo-click\", {\n\tbubbles: true,\n})\n\n/**\n * Fired, when a menu item is activated\n *\n * **Note:** You can prevent closing of overflow popover by calling `event.preventDefault()`.\n * @param {HTMLElement} item DOM ref of the activated list item\n * @since 0.10\n * @public\n */\n@event(\"menu-item-click\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired, when the search button is activated.\n *\n * **Note:** You can prevent expanding/collapsing of the search field by calling `event.preventDefault()`.\n * @param {HTMLElement} targetRef dom ref of the activated element\n * @param {Boolean} searchFieldVisible whether the search field is visible\n * @public\n */\n\n@event(\"search-button-click\", {\n\tcancelable: true,\n\tbubbles: true,\n})\n\n/**\n * Fired, when the search field is expanded or collapsed.\n * @since 2.10.0\n * @param {Boolean} expanded whether the search field is expanded\n * @public\n */\n@event(\"search-field-toggle\", {\n\tbubbles: true,\n})\n\n/**\n * Fired, when the search cancel button is activated.\n *\n * **Note:** You can prevent the default behavior (clearing the search field value) by calling `event.preventDefault()`. The search will still be closed.\n * **Note:** The `search-field-clear` event is in an experimental state and is a subject to change.\n * @param {HTMLElement} targetRef dom ref of the cancel button element\n * @since 2.14.0\n * @public\n */\n@event(\"search-field-clear\", {\n\tcancelable: true,\n\tbubbles: true,\n})\n\n/**\n * Fired, when an item from the content slot is hidden or shown.\n * **Note:** The `content-item-visibility-change` event is in an experimental state and is a subject to change.\n *\n * @param {Array<HTMLElement>} array of all the items that are hidden\n * @public\n * @since 2.7.0\n */\n@event(\"content-item-visibility-change\", {\n\tbubbles: true,\n})\n\nclass ShellBar extends UI5Element {\n\teventDetails!: {\n\t\t\"notifications-click\": ShellBarNotificationsClickEventDetail,\n\t\t\"profile-click\": ShellBarProfileClickEventDetail,\n\t\t\"product-switch-click\": ShellBarProductSwitchClickEventDetail,\n\t\t\"logo-click\": ShellBarLogoClickEventDetail,\n\t\t\"menu-item-click\": ShellBarMenuItemClickEventDetail,\n\t\t\"search-button-click\": ShellBarSearchButtonEventDetail,\n\t\t\"search-field-toggle\": ShellBarSearchFieldToggleEventDetail,\n\t\t\"search-field-clear\": ShellBarSearchFieldClearEventDetail,\n\t\t\"content-item-visibility-change\": ShellBarContentItemVisibilityChangeEventDetail\n\t}\n\n\t/**\n\t * Defines a `ui5-button` in the bar that will be placed in the beginning.\n\t * We encourage this slot to be used for a menu button.\n\t * It gets overstyled to match ShellBar's styling.\n\t * @public\n\t */\n\t@slot()\n\tstartButton!: Slot<IButton>;\n\n\t/**\n\t * Defines the branding slot.\n\t * The `ui5-shellbar-branding` component is intended to be placed inside this slot.\n\t * Content placed here takes precedence over the `primaryTitle` property and the `logo` content slot.\n\t *\n\t * **Note:** The `branding` slot is in an experimental state and is a subject to change.\n\t *\n\t * @since 2.12.0\n\t * @public\n\t */\n\t@slot()\n\tbranding!: Slot<ShellBarBranding>;\n\n\t/**\n\t * Define the items displayed in the content area.\n\t *\n\t * Use the `data-hide-order` attribute with numeric value to specify the order of the items to be hidden when the space is not enough.\n\t * Lower values will be hidden first.\n\t *\n\t * **Note:** The `content` slot is in an experimental state and is a subject to change.\n\t *\n\t * @public\n\t * @since 2.7.0\n\t */\n\t@slot({ type: HTMLElement, individualSlots: true })\n\tcontent!: Slot<HTMLElement>;\n\n\t/**\n\t * Defines the `ui5-input`, that will be used as a search field.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tsearchField!: Slot<IShellBarSearchField>;\n\n\t/**\n\t * Defines the assistant slot.\n\t *\n\t * @since 2.0.0\n\t * @public\n\t */\n\t@slot()\n\tassistant!: Slot<IButton>;\n\n\t/**\n\t * Defines the `ui5-shellbar` additional items.\n\t *\n\t * **Note:**\n\t * You can use the `<ui5-shellbar-item></ui5-shellbar-item>`.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true, individualSlots: true })\n\titems!: DefaultSlot<ShellBarItem>;\n\n\t/**\n\t * You can pass `ui5-avatar` to set the profile image/icon.\n\t * If no profile slot is set - profile will be excluded from actions.\n\t *\n\t * **Note:** We recommend not using the `size` attribute of `ui5-avatar` because\n\t * it should have specific size by design in the context of `ui5-shellbar` profile.\n\t * @since 1.0.0-rc.6\n\t * @public\n\t */\n\t@slot()\n\tprofile!: Slot<HTMLElement>;\n\n\t/**\n\t * Defines the `notificationsCount`,\n\t * displayed in the notification icon top-right corner.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tnotificationsCount?: string;\n\n\t/**\n\t * Defines, if the notification icon would be displayed.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowNotifications = false;\n\n\t/**\n\t * Defines, if the product switch icon would be displayed.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowProductSwitch = false;\n\n\t/**\n\t * Defines, if the Search Field would be displayed when there is a valid `searchField` slot.\n\t *\n\t * **Note:** By default the Search Field is not displayed.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowSearchField = false;\n\n\t/**\n\t * Defines additional accessibility attributes on different areas of the component.\n\t *\n\t * The accessibilityAttributes object has the following fields,\n\t * where each field is an object supporting one or more accessibility attributes:\n\t *\n\t * - **logo** - `logo.role` and `logo.name`.\n\t * - **notifications** - `notifications.expanded` and `notifications.hasPopup`.\n\t * - **profile** - `profile.expanded`, `profile.hasPopup` and `profile.name`.\n\t * - **product** - `product.expanded` and `product.hasPopup`.\n\t * - **search** - `search.hasPopup`.\n\t * - **overflow** - `overflow.expanded` and `overflow.hasPopup`.\n\t * - **branding** - `branding.name`.\n\t *\n\t * The accessibility attributes support the following values:\n\t *\n\t * - **role**: Defines the accessible ARIA role of the logo area.\n\t * Accepts the following string values: `button` or `link`.\n\t *\n\t * - **expanded**: Indicates whether the button, or another grouping element it controls,\n\t * is currently expanded or collapsed.\n\t * Accepts the following string values: `true` or `false`.\n\t *\n\t * - **hasPopup**: Indicates the availability and type of interactive popup element,\n\t * such as menu or dialog, that can be triggered by the button.\n\t *\n\t * Accepts the following string values: `dialog`, `grid`, `listbox`, `menu` or `tree`.\n\t * - **name**: Defines the accessible ARIA name of the area.\n\t * Accepts any string.\n\t *\n\t * @default {}\n\t * @public\n\t * @since 1.10.0\n\t */\n\t@property({ type: Object })\n\taccessibilityAttributes: ShellBarAccessibilityAttributes = {};\n\n\t/**\n\t * @private\n\t */\n\t@property()\n\tbreakpointSize = \"S\";\n\n\t/**\n\t * Actions computed from controllers.\n\t * @private\n\t */\n\t@property({ type: Object })\n\tactions: ShellBarActionItem[] = [];\n\n\t/**\n\t * Show overflow button when items are hidden.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tshowOverflowButton = false;\n\n\t/**\n\t * Open state of the overflow popover.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\toverflowPopoverOpen = false;\n\n\t/**\n\t * IDs of items currently hidden due to overflow.\n\t * Used to trigger rerender for conditional rendering.\n\t * @private\n\t */\n\t@property({ type: Object })\n\thiddenItemsIds: string[] = [];\n\n\t/**\n\t * Show full-screen search overlay.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tshowFullWidthSearch = false;\n\n\t/**\n\t * Spacer element.\n\t * @private\n\t */\n\t@query(\".ui5-shellbar-spacer\")\n\tspacer?: HTMLElement;\n\n\t/**\n\t * Outer container of the overflow container.\n\t * @private\n\t */\n\t@query(\".ui5-shellbar-overflow-container\")\n\toverflowOuter?: HTMLElement;\n\n\t/**\n\t * Inner container of the overflow container.\n\t * @private\n\t */\n\t@query(\".ui5-shellbar-overflow-container-inner\")\n\toverflowInner?: HTMLElement;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\tprivate readonly RESIZE_THROTTLE_RATE = 100; // ms\n\tprivate handleResizeBound: ResizeObserverCallback = throttle(this.handleResize.bind(this), this.RESIZE_THROTTLE_RATE);\n\n\tprivate readonly breakpoints = [599, 1023, 1439, 1919, 10000];\n\tprivate readonly breakpointMap: Record<number, ShellBarBreakpoint> = {\n\t\t599: \"S\",\n\t\t1023: \"M\",\n\t\t1439: \"L\",\n\t\t1919: \"XL\",\n\t\t10000: \"XXL\",\n\t};\n\n\titemNavigation = new ShellBarItemNavigation({\n\t\tgetDomRef: () => this.getDomRef() || null,\n\t});\n\n\toverflow = new ShellBarOverflow();\n\taccessibility: ShellBarAccessibility = new ShellBarAccessibility();\n\n\tprivate _searchAdaptor = new ShellBarSearch(this.getSearchDeps());\n\tprivate _searchAdaptorLegacy = new ShellBarSearchLegacy({\n\t\t...this.getSearchDeps(),\n\t\tgetDisableSearchCollapse: () => this.disableSearchCollapse,\n\t});\n\n\t/* =================== Legacy Members =================== */\n\n\t/**\n\t * Defines the visibility state of the search button.\n\t *\n\t * **Note:** The `hideSearchButton` property is in an experimental state and is a subject to change.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideSearchButton = false;\n\n\t/**\n\t * Disables the automatic search field expansion/collapse when the available space is not enough.\n\t *\n\t * **Note:** The `disableSearchCollapse` property is in an experimental state and is a subject to change.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisableSearchCollapse = false;\n\n\t/**\n\t * Defines the `primaryTitle`.\n\t *\n\t * **Note:** The `primaryTitle` would be hidden on S screen size (less than approx. 700px).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tprimaryTitle?: string;\n\n\t/**\n\t * Defines the `secondaryTitle`.\n\t *\n\t * **Note:** The `secondaryTitle` would be hidden on S and M screen sizes (less than approx. 1300px).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tsecondaryTitle?: string;\n\n\t/**\n\t * Defines the logo of the `ui5-shellbar`.\n\t * For example, you can use `ui5-avatar` or `img` elements as logo.\n\t * @since 1.0.0-rc.8\n\t * @public\n\t */\n\t@slot()\n\tlogo!: Slot<HTMLElement>;\n\n\t/**\n\t * Defines the items displayed in menu after a click on a start button.\n\t *\n\t * **Note:** You can use the `<ui5-li></ui5-li>` and its ancestors.\n\t * @since 0.10\n\t * @public\n\t */\n\t@slot()\n\tmenuItems!: Slot<ListItemBase>;\n\n\t/**\n\t * Open state of the menu popover (legacy).\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tmenuPopoverOpen = false;\n\n\t/**\n\t * The container is positioned in the center of the `ui5-shellbar` and occupies one-third of the total length of the `ui5-shellbar`.\n\t *\n\t * **Note:** If set, the `searchField` slot is not rendered.\n\t * @private\n\t */\n\t@slot()\n\tmidContent!: Slot<HTMLElement>;\n\n\tlegacyAdaptor?: ShellBarLegacy;\n\n\t/* =================== Lifecycle Methods =================== */\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this.handleResizeBound);\n\t\tthis.searchAdaptor?.subscribe();\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this.handleResizeBound);\n\t\tthis.searchAdaptor?.unsubscribe();\n\t}\n\n\tonBeforeRendering() {\n\t\tif (!this.legacyAdaptor) {\n\t\t\tthis.initLegacyController();\n\t\t}\n\t\t// Sync branding breakpoint state\n\t\tthis.branding.forEach(brandingEl => {\n\t\t\tbrandingEl._isSBreakPoint = this.isSBreakPoint;\n\t\t});\n\n\t\tthis.buildActions();\n\n\t\tthis.searchAdaptor?.syncShowSearchFieldState();\n\t\t// subscribe to search adaptor for cases when search is added dynamically\n\t\tthis.searchAdaptor?.unsubscribe();\n\t\tthis.searchAdaptor?.subscribe();\n\t}\n\n\tonAfterRendering() {\n\t\tthis.updateBreakpoint();\n\t\tthis.updateOverflow();\n\t}\n\n\t/* =================== Actions Management =================== */\n\n\tprivate buildActions() {\n\t\tthis.actions = [\n\t\t\t{\n\t\t\t\tid: ShellBarActions.Search,\n\t\t\t\ticon: searchIcon,\n\t\t\t\tenabled: this.enabledFeatures.search,\n\t\t\t\tselector: ShellBarActionsSelectors.Search,\n\t\t\t\tisProtected: false,\n\t\t\t\tstableDomRef: \"toggle-search\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ShellBarActions.Assistant,\n\t\t\t\ticon: daIcon,\n\t\t\t\tenabled: this.enabledFeatures.assistant,\n\t\t\t\tselector: ShellBarActionsSelectors.Assistant,\n\t\t\t\tisProtected: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ShellBarActions.Notifications,\n\t\t\t\ticon: bellIcon,\n\t\t\t\tcount: this.notificationsCount,\n\t\t\t\tenabled: this.enabledFeatures.notifications,\n\t\t\t\tselector: ShellBarActionsSelectors.Notifications,\n\t\t\t\tisProtected: false,\n\t\t\t\tstableDomRef: \"notifications\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ShellBarActions.Overflow,\n\t\t\t\ticon: overflowIcon,\n\t\t\t\tenabled: this.enabledFeatures.overflow,\n\t\t\t\tselector: ShellBarActionsSelectors.Overflow,\n\t\t\t\tisProtected: true,\n\t\t\t\tstableDomRef: \"overflow\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ShellBarActions.Profile,\n\t\t\t\tenabled: this.enabledFeatures.profile,\n\t\t\t\tselector: ShellBarActionsSelectors.Profile,\n\t\t\t\tisProtected: true,\n\t\t\t\tstableDomRef: \"profile\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ShellBarActions.ProductSwitch,\n\t\t\t\ticon: gridIcon,\n\t\t\t\tenabled: this.enabledFeatures.productSwitch,\n\t\t\t\tselector: ShellBarActionsSelectors.ProductSwitch,\n\t\t\t\tisProtected: true,\n\t\t\t\tstableDomRef: \"product-switch\",\n\t\t\t},\n\t\t].filter(action => action.enabled);\n\t}\n\n\tgetAction(actionId: ShellBarActionId) {\n\t\treturn this.actions.find(action => action.id === actionId);\n\t}\n\n\tgetActionOverflowText(actionId: ShellBarActionId): string {\n\t\tconst texts: Record<string, string> = {\n\t\t\t[ShellBarActions.Search]: this.texts.search,\n\t\t\t[ShellBarActions.Profile]: this.texts.profile,\n\t\t\t[ShellBarActions.Overflow]: this.texts.overflow,\n\t\t\t[ShellBarActions.Assistant]: this.texts.assistant,\n\t\t\t[ShellBarActions.ProductSwitch]: this.texts.products,\n\t\t\t[ShellBarActions.Notifications]: this.texts.notificationsNoCount,\n\t\t};\n\t\treturn texts[actionId] || actionId;\n\t}\n\n\t/* =================== Breakpoint Management =================== */\n\n\tget isSBreakPoint() {\n\t\treturn this.breakpointSize === \"S\";\n\t}\n\n\tprivate updateBreakpoint() {\n\t\tconst width = this.getBoundingClientRect().width;\n\t\tconst bp = this.breakpoints.find(b => width <= b) || 10000;\n\t\tconst breakpoint = this.breakpointMap[bp];\n\n\t\tif (this.breakpointSize !== breakpoint) {\n\t\t\tthis.breakpointSize = breakpoint;\n\t\t}\n\t}\n\n\t/* =================== Overflow Management =================== */\n\n\tprivate updateOverflow() {\n\t\tif (!this.overflow) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst result = this.overflow.updateOverflow({\n\t\t\tactions: this.actions,\n\t\t\tcontent: this.sortContent(this.content),\n\t\t\tcustomItems: this.items,\n\t\t\thiddenItemsIds: this.hiddenItemsIds,\n\t\t\tshowSearchField: this.enabledFeatures.search && this.showSearchField,\n\t\t\toverflowOuter: this.overflowOuter!,\n\t\t\toverflowInner: this.overflowInner!,\n\t\t\tsetVisible: (selector: string, visible: boolean) => {\n\t\t\t\tconst element = this.shadowRoot!.querySelector(selector);\n\t\t\t\tif (element) {\n\t\t\t\t\telement.classList[visible ? \"remove\" : \"add\"](\"ui5-shellbar-hidden\");\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\n\t\tthis.handleUpdateOverflowResult(result);\n\n\t\treturn result.hiddenItemsIds;\n\t}\n\n\tprivate handleUpdateOverflowResult(result: ShellBarOverflowResult) {\n\t\tconst { hiddenItemsIds, showOverflowButton } = result;\n\n\t\t// Update items overflow state\n\t\tthis.items.forEach(item => {\n\t\t\titem.inOverflow = hiddenItemsIds.includes(item._id);\n\t\t\tif (item.inOverflow) {\n\t\t\t\t// clear the hidden class to ensure the item is visible in the overflow popover\n\t\t\t\titem.classList.remove(\"ui5-shellbar-hidden\");\n\t\t\t}\n\t\t});\n\n\t\tif (!arraysAreEqual(this.hiddenItemsIds, hiddenItemsIds)) {\n\t\t\tthis.handleContentVisibilityChanged(this.hiddenItemsIds, hiddenItemsIds);\n\t\t\tthis.hiddenItemsIds = hiddenItemsIds;\n\t\t\tthis.showOverflowButton = showOverflowButton;\n\t\t}\n\t\tthis.showFullWidthSearch = this.searchAdaptor?.shouldShowFullScreen() || false;\n\t}\n\n\tprivate handleContentVisibilityChanged(oldHiddenItemsIds: string[], newHiddenItemsIds: string[]) {\n\t\tconst filterContentIds = (ids: string[]) => ids.filter(id => this.content.some(item => (item as any)._individualSlot as string === id));\n\t\tconst oldHiddenContentIds = filterContentIds(oldHiddenItemsIds);\n\t\tconst newHiddenContentIds = filterContentIds(newHiddenItemsIds);\n\n\t\tif (!arraysAreEqual(oldHiddenContentIds, newHiddenContentIds)) {\n\t\t\tthis.fireDecoratorEvent(\"content-item-visibility-change\", {\n\t\t\t\titems: newHiddenContentIds.map(id => this.content.find(item => (item as any)._individualSlot as string === id)!),\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate handleResize() {\n\t\tthis.overflowPopoverOpen = false;\n\t\tthis.updateBreakpoint();\n\t\tconst hiddenItemsIds = this.updateOverflow() ?? [];\n\t\tconst spacerWidth = this.spacer?.getBoundingClientRect().width || 0;\n\t\tthis.searchAdaptor?.autoManageSearchState(hiddenItemsIds.length, spacerWidth);\n\t}\n\n\tisHidden(itemId: string) {\n\t\treturn this.hiddenItemsIds.includes(itemId);\n\t}\n\n\thandleOverflowClick() {\n\t\tthis.overflowPopoverOpen = !this.overflowPopoverOpen;\n\t}\n\n\tonPopoverClose() {\n\t\tthis.overflowPopoverOpen = false;\n\t}\n\n\t/**\n\t * Closes the overflow popover.\n\t * @public\n\t */\n\tcloseOverflow(): void {\n\t\tthis.overflowPopoverOpen = false;\n\t}\n\n\thandleOverflowItemClick(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tconst actionId = target.getAttribute(\"data-action-id\");\n\n\t\tlet prevented = e.defaultPrevented; // for custom actions\n\n\t\tif (actionId === ShellBarActions.Notifications) {\n\t\t\tprevented = this.handleNotificationsClick();\n\t\t} else if (actionId === ShellBarActions.Search) {\n\t\t\tprevented = this.handleSearchButtonClick();\n\t\t}\n\n\t\tif (!prevented) {\n\t\t\tthis.overflowPopoverOpen = false;\n\t\t}\n\t}\n\n\tget overflowItems() {\n\t\treturn this.overflow.getOverflowItems({\n\t\t\tactions: this.actions,\n\t\t\tcustomItems: this.items,\n\t\t\thiddenItemsIds: this.hiddenItemsIds,\n\t\t});\n\t}\n\n\t/**\n\t * Returns badge text for overflow button.\n\t * Shows count if only one item with count is overflowed, otherwise shows attention dot.\n\t */\n\tget overflowBadge(): string | undefined {\n\t\tconst itemsWithCount = this.overflowItems.filter(item => item.data.count);\n\t\tif (itemsWithCount.length === 1) {\n\t\t\treturn itemsWithCount[0].data.count;\n\t\t}\n\t\tif (itemsWithCount.length > 1) {\n\t\t\treturn \" \"; // Attention dot\n\t\t}\n\t\treturn undefined;\n\t}\n\n\t/* =================== Search Management =================== */\n\n\tget search() {\n\t\treturn this.searchField.length ? this.searchField[0] : null;\n\t}\n\n\tget isSelfCollapsibleSearch(): boolean {\n\t\tconst searchField = this.search;\n\t\tif (searchField) {\n\t\t\treturn \"collapsed\" in searchField && \"open\" in searchField;\n\t\t}\n\t\treturn false;\n\t}\n\n\tprivate getSearchDeps() {\n\t\treturn {\n\t\t\tgetSearchField: () => this.search,\n\t\t\tgetSearchState: () => this.enabledFeatures.search && this.showSearchField,\n\t\t\tgetCSSVariable: (cssVar: string) => this.getCSSVariable(cssVar),\n\t\t\tsetSearchState: (expanded: boolean) => this.setSearchState(expanded),\n\t\t\tgetOverflowed: () => this.overflow.isOverflowing(this.overflowOuter!, this.overflowInner!),\n\t\t};\n\t}\n\n\tget searchAdaptor(): IShellBarSearchController {\n\t\tif (this.isSelfCollapsibleSearch) {\n\t\t\treturn this._searchAdaptor;\n\t\t}\n\t\treturn this._searchAdaptorLegacy;\n\t}\n\n\thandleSearchButtonClick() {\n\t\tconst searchButton = this.shadowRoot!.querySelector<Button>(\".ui5-shellbar-search-button\");\n\t\tconst defaultPrevented = !this.fireDecoratorEvent(\"search-button-click\", {\n\t\t\ttargetRef: searchButton!,\n\t\t\tsearchFieldVisible: this.showSearchField,\n\t\t});\n\n\t\tif (defaultPrevented) {\n\t\t\treturn defaultPrevented;\n\t\t}\n\n\t\tthis.setSearchState(!this.showSearchField);\n\n\t\tif (!this.showSearchField) {\n\t\t\treturn defaultPrevented;\n\t\t}\n\n\t\tconst input = this.searchField[0];\n\t\tif (input) {\n\t\t\tinput.focused = true;\n\t\t\tsetTimeout(() => {\n\t\t\t\tinput.focus();\n\t\t\t}, 100);\n\t\t}\n\t\treturn defaultPrevented;\n\t}\n\n\tasync setSearchState(expanded: boolean) {\n\t\tif (expanded === this.showSearchField) {\n\t\t\treturn;\n\t\t}\n\t\tthis.showSearchField = expanded;\n\t\tawait renderFinished();\n\t\tthis.fireDecoratorEvent(\"search-field-toggle\", { expanded });\n\t}\n\n\thandleCancelButtonClick() {\n\t\tconst cancelBtn = this.shadowRoot!.querySelector<Button>(\".ui5-shellbar-cancel-button\");\n\t\tif (!cancelBtn) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst clearDefaultPrevented = !this.fireDecoratorEvent(\"search-field-clear\", {\n\t\t\ttargetRef: cancelBtn,\n\t\t});\n\n\t\tthis.showFullWidthSearch = false;\n\t\tthis.setSearchState(false);\n\n\t\tif (!clearDefaultPrevented && this.search) {\n\t\t\tthis.search.value = \"\";\n\t\t}\n\t}\n\n\t/* =================== Legacy Features Management =================== */\n\n\tprivate initLegacyController() {\n\t\tif (this.hasLegacyFeatures) {\n\t\t\tthis.legacyAdaptor = new ShellBarLegacy({\n\t\t\t\tcomponent: this,\n\t\t\t\tgetShadowRoot: () => this.shadowRoot,\n\t\t\t});\n\t\t}\n\t}\n\n\tget hasLegacyFeatures(): boolean {\n\t\treturn this.logo.length > 0\n\t\t\t|| !!this.primaryTitle\n\t\t\t|| !!this.secondaryTitle\n\t\t\t|| this.menuItems.length > 0;\n\t}\n\n\t/* =================== Keyboard Navigation =================== */\n\n\t_onKeyDown(e: KeyboardEvent) {\n\t\tthis.itemNavigation.handleKeyDown(e);\n\t}\n\n\t/* =================== Content Management =================== */\n\n\tget startContent(): HTMLElement[] {\n\t\treturn this.splitContent(this.content).start;\n\t}\n\n\tget endContent(): HTMLElement[] {\n\t\treturn this.splitContent(this.content).end;\n\t}\n\n\tget separatorConfig() {\n\t\tif (this.isSBreakPoint) {\n\t\t\treturn {\n\t\t\t\tshowStartSeparator: false,\n\t\t\t\tshowEndSeparator: false,\n\t\t\t};\n\t\t}\n\t\tconst { start, end } = this.splitContent(this.content);\n\n\t\treturn {\n\t\t\tshowStartSeparator: start.some(item => !this.hiddenItemsIds.includes((item as any)._individualSlot as string)),\n\t\t\tshowEndSeparator: end.some(item => !this.hiddenItemsIds.includes((item as any)._individualSlot as string)),\n\t\t};\n\t}\n\n\tsplitContent(content: readonly HTMLElement[]) {\n\t\tconst spacerIndex = content.findIndex(\n\t\t\tchild => child.hasAttribute(\"ui5-shellbar-spacer\"),\n\t\t);\n\n\t\tif (spacerIndex === -1) {\n\t\t\treturn { start: [...content], end: [] };\n\t\t}\n\n\t\treturn {\n\t\t\tstart: content.slice(0, spacerIndex),\n\t\t\tend: content.slice(spacerIndex + 1),\n\t\t};\n\t}\n\n\tsortContent(content: readonly HTMLElement[]) {\n\t\t// reverse so items on the right are hidden first\n\t\t// then sort by hide order to apply custom preferences\n\t\treturn content.toReversed().toSorted((a, b) => {\n\t\t\tconst aOrder = parseInt(a.getAttribute(\"data-hide-order\") || \"0\");\n\t\t\tconst bOrder = parseInt(b.getAttribute(\"data-hide-order\") || \"0\");\n\t\t\treturn aOrder - bOrder;\n\t\t});\n\t}\n\n\t/*\n\t * Determines whether a separator should be packed with an item.\n\t * Separators are packed with the last item that is hidden to account for\n\t * the space they occupy when next overflow calculation occurs.\n\t */\n\tgetPackedSeparatorInfo(item: HTMLElement, isStartGroup: boolean) {\n\t\tconst group = isStartGroup ? this.startContent : this.endContent;\n\t\tconst sorted = this.sortContent(group);\n\t\tconst isHidden = this.hiddenItemsIds.includes((item as any)._individualSlot as string);\n\t\tconst isLastItem = sorted.at(-1) === item;\n\n\t\treturn { shouldPack: isHidden && isLastItem };\n\t}\n\n\t/* =================== Items Management =================== */\n\n\t/* =================== Accessibility =================== */\n\n\tget actionsAccessibilityInfo(): ShellBarAccessibilityInfo {\n\t\treturn this.accessibility.getActionsAccessibilityAttributes(this.texts, {\n\t\t\toverflowPopoverOpen: this.overflowPopoverOpen,\n\t\t\taccessibilityAttributes: this.accessibilityAttributes,\n\t\t});\n\t}\n\n\tget actionsRole(): \"toolbar\" | undefined {\n\t\tconst visibleCount = this.actions.filter(a => !this.hiddenItemsIds.includes(a.id)).length;\n\t\treturn this.accessibility.getActionsRole(visibleCount);\n\t}\n\n\tget contentRole(): \"group\" | undefined {\n\t\tconst visibleItemsCount = this.content.filter(item => !this.hiddenItemsIds.includes((item as any)._individualSlot as string)).length;\n\t\treturn this.accessibility.getContentRole(visibleItemsCount);\n\t}\n\n\t/* =================== Common Members =================== */\n\n\tget enabledFeatures() {\n\t\treturn {\n\t\t\tsearch: this.searchField.length > 0,\n\t\t\tprofile: this.profile.length > 0,\n\t\t\tcontent: this.content.length > 0,\n\t\t\tbranding: this.branding.length > 0,\n\t\t\toverflow: this.showOverflowButton,\n\t\t\tassistant: this.assistant.length > 0,\n\t\t\tstartButton: this.startButton.length > 0,\n\t\t\tnotifications: this.showNotifications,\n\t\t\tproductSwitch: this.showProductSwitch,\n\t\t};\n\t}\n\n\tget texts() {\n\t\treturn {\n\t\t\tsearch: ShellBar.i18nBundle.getText(SHELLBAR_SEARCH),\n\t\t\tprofile: ShellBar.i18nBundle.getText(SHELLBAR_PROFILE),\n\t\t\tshellbar: ShellBar.i18nBundle.getText(SHELLBAR_LABEL),\n\t\t\tproducts: ShellBar.i18nBundle.getText(SHELLBAR_PRODUCTS),\n\t\t\toverflow: ShellBar.i18nBundle.getText(SHELLBAR_OVERFLOW),\n\t\t\tassistant: ShellBar.i18nBundle.getText(SHELLBAR_ASSISTANT),\n\t\t\tnotifications: ShellBar.i18nBundle.getText(SHELLBAR_NOTIFICATIONS, this.notificationsCount || 0),\n\t\t\tnotificationsNoCount: ShellBar.i18nBundle.getText(SHELLBAR_NOTIFICATIONS_NO_COUNT),\n\t\t\tcontentItems: this.content.length > 1 ? ShellBar.i18nBundle.getText(SHELLBAR_ADDITIONAL_CONTEXT) : undefined,\n\t\t};\n\t}\n\n\tget popoverHorizontalAlign(): \"Start\" | \"End\" {\n\t\treturn this.effectiveDir === \"rtl\" ? \"Start\" : \"End\";\n\t}\n\n\t/**\n\t * Returns the `logo` DOM ref.\n\t * @public\n\t * @default null\n\t * @since 1.0.0-rc.16\n\t */\n\tget logoDomRef(): HTMLElement | null {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(`*[data-ui5-stable=\"logo\"]`);\n\t}\n\n\t/**\n\t * Returns the `notifications` icon DOM ref.\n\t * @public\n\t * @default null\n\t * @since 1.0.0-rc.16\n\t */\n\tget notificationsDomRef(): HTMLElement | null {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(`*[data-ui5-stable=\"notifications\"]`);\n\t}\n\n\t/**\n\t * Returns the `overflow` icon DOM ref.\n\t * @public\n\t * @default null\n\t * @since 1.0.0-rc.16\n\t */\n\tget overflowDomRef(): HTMLElement | null {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(`*[data-ui5-stable=\"overflow\"]`);\n\t}\n\n\t/**\n\t * Returns the `profile` icon DOM ref.\n\t * @public\n\t * @default null\n\t * @since 1.0.0-rc.16\n\t */\n\tget profileDomRef(): HTMLElement | null {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(`*[data-ui5-stable=\"profile\"]`);\n\t}\n\n\t/**\n\t * Returns the `product-switch` icon DOM ref.\n\t * @public\n\t * @default null\n\t * @since 1.0.0-rc.16\n\t */\n\tget productSwitchDomRef(): HTMLElement | null {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(`*[data-ui5-stable=\"product-switch\"]`);\n\t}\n\n\t/**\n\t * Returns the search button DOM reference.\n\t * @public\n\t */\n\tasync getSearchButtonDomRef(): Promise<HTMLElement | null> {\n\t\tawait renderFinished();\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(`*[data-ui5-stable=\"toggle-search\"]`);\n\t}\n\n\tprivate _fireClickEvent(eventName: string, domRef: HTMLElement | null): boolean {\n\t\treturn domRef ? !this.fireDecoratorEvent(eventName as any, { targetRef: domRef }) : false;\n\t}\n\n\thandleNotificationsClick() {\n\t\treturn this._fireClickEvent(\"notifications-click\", this.notificationsDomRef);\n\t}\n\n\thandleProfileClick() {\n\t\treturn this._fireClickEvent(\"profile-click\", this.profileDomRef);\n\t}\n\n\thandleProductSwitchClick() {\n\t\treturn this._fireClickEvent(\"product-switch-click\", this.productSwitchDomRef);\n\t}\n\n\tgetCSSVariable(cssVar: string): string {\n\t\tconst styleSet = getComputedStyle(this.getDomRef()!);\n\t\treturn styleSet.getPropertyValue(getScopedVarName(cssVar));\n\t}\n}\n\nShellBar.define();\n\nexport default ShellBar;\nexport {\n\tShellBarActions,\n\tShellBarActionsSelectors,\n};\nexport type {\n\t/* Event Types */\n\tShellBarProfileClickEventDetail,\n\tShellBarSearchButtonEventDetail,\n\tShellBarSearchFieldClearEventDetail,\n\tShellBarSearchFieldToggleEventDetail,\n\tShellBarProductSwitchClickEventDetail,\n\tShellBarNotificationsClickEventDetail,\n\tShellBarContentItemVisibilityChangeEventDetail,\n\t/* Common Types */\n\tShellBarActionId,\n\tShellBarActionItem,\n\tIShellBarSearchField,\n\tShellBarBreakpoint,\n\t/* Accessibility Types */\n\tShellBarAccessibilityInfo,\n\tShellBarAccessibilityAttributes,\n\tShellBarAreaAccessibilityAttributes,\n\tShellBarProfileAccessibilityAttributes,\n\t/* Legacy Types (DELETE WHEN REMOVING LEGACY) */\n\tShellBarLogoClickEventDetail,\n\tShellBarMenuItemClickEventDetail,\n\tShellBarLogoAccessibilityAttributes,\n};\n"]}
1
+ {"version":3,"file":"ShellBar.js","sourceRoot":"","sources":["../src/ShellBar.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScopeUtils.js\";\nimport arraysAreEqual from \"@ui5/webcomponents-base/dist/util/arraysAreEqual.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport throttle from \"@ui5/webcomponents-base/dist/util/throttle.js\";\n\nimport type { IButton } from \"@ui5/webcomponents/dist/Button.js\";\nimport Button from \"@ui5/webcomponents/dist/Button.js\";\nimport ButtonBadge from \"@ui5/webcomponents/dist/ButtonBadge.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport Menu from \"@ui5/webcomponents/dist/Menu.js\";\nimport List from \"@ui5/webcomponents/dist/List.js\";\nimport ListItemStandard from \"@ui5/webcomponents/dist/ListItemStandard.js\";\nimport searchIcon from \"@ui5/webcomponents-icons/dist/search.js\";\nimport bellIcon from \"@ui5/webcomponents-icons/dist/bell.js\";\nimport gridIcon from \"@ui5/webcomponents-icons/dist/grid.js\";\nimport daIcon from \"@ui5/webcomponents-icons/dist/da.js\";\nimport overflowIcon from \"@ui5/webcomponents-icons/dist/overflow.js\";\n\nimport ShellBarTemplate from \"./ShellBarTemplate.js\";\nimport shellBarStyles from \"./generated/themes/ShellBar.css.js\";\nimport ShellBarPopoverCss from \"./generated/themes/ShellBarPopover.css.js\";\nimport shellBarLegacyStyles from \"./generated/themes/ShellBarLegacy.css.js\";\n\nimport type { IShellBarSearchController } from \"./shellbar/IShellBarSearchController.js\";\n\nimport ShellBarLegacy from \"./shellbar/ShellBarLegacy.js\";\nimport ShellBarSearch from \"./shellbar/ShellBarSearch.js\";\nimport ShellBarSearchLegacy from \"./shellbar/ShellBarSearchLegacy.js\";\nimport ShellBarOverflow from \"./shellbar/ShellBarOverflow.js\";\nimport ShellBarAccessibility from \"./shellbar/ShellBarAccessibility.js\";\nimport ShellBarItemNavigation from \"./shellbar/ShellBarItemNavigation.js\";\n\nimport ShellBarItem, { isInstanceOfShellBarItem } from \"./ShellBarItem.js\";\nimport ShellBarSpacer from \"./ShellBarSpacer.js\";\nimport type ShellBarBranding from \"./ShellBarBranding.js\";\nimport type { ShellBarOverflowResult } from \"./shellbar/ShellBarOverflow.js\";\n\nimport type {\n\tShellBarAccessibilityInfo,\n\tShellBarAccessibilityAttributes,\n\tShellBarAreaAccessibilityAttributes,\n\tShellBarLogoAccessibilityAttributes,\n\tShellBarProfileAccessibilityAttributes,\n} from \"./shellbar/ShellBarAccessibility.js\";\n\nimport {\n\tSHELLBAR_LABEL,\n\tSHELLBAR_NOTIFICATIONS,\n\tSHELLBAR_NOTIFICATIONS_NO_COUNT,\n\tSHELLBAR_PROFILE,\n\tSHELLBAR_PRODUCTS,\n\tSHELLBAR_SEARCH,\n\tSHELLBAR_ASSISTANT,\n\tSHELLBAR_OVERFLOW,\n\tSHELLBAR_ADDITIONAL_CONTEXT,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport type ListItemBase from \"@ui5/webcomponents/dist/ListItemBase.js\";\n\ntype ShellBarBreakpoint = \"S\" | \"M\" | \"L\" | \"XL\" | \"XXL\";\n\nconst ShellBarActions = {\n\tSearch: \"search\",\n\tProfile: \"profile\",\n\tOverflow: \"overflow\",\n\tAssistant: \"assistant\",\n\tProductSwitch: \"products\",\n\tNotifications: \"notifications\",\n};\n\nconst ShellBarActionsSelectors = {\n\tSearch: \".ui5-shellbar-search-toggle\",\n\tProfile: \".ui5-shellbar-image-button\",\n\tOverflow: \".ui5-shellbar-overflow-button\",\n\tAssistant: \".ui5-shellbar-assistant-button\",\n\tProductSwitch: \".ui5-shellbar-button-product-switch\",\n\tNotifications: \".ui5-shellbar-bell-button\",\n};\n\ntype ShellBarActionId = typeof ShellBarActions[keyof typeof ShellBarActions];\n\ntype ShellBarActionItem = {\n\tid: ShellBarActionId;\n\ticon?: string;\n\tcount?: string;\n\tenabled: boolean; \t\t// Whether the action is enabled and should be displayed\n\tselector: string; \t\t// The selector by which we can target the action\n\tisProtected: boolean \t// Whether the action can go into the overflow\n\tstableDomRef?: string;\n};\n\ninterface IShellBarSearchField extends HTMLElement {\n\tfocused: boolean;\n\tvalue: string;\n\tcollapsed?: boolean;\n\topen?: boolean;\n}\n\n// Event Types\n\ntype ShellBarNotificationsClickEventDetail = {\n\ttargetRef: HTMLElement;\n};\n\ntype ShellBarProfileClickEventDetail = {\n\ttargetRef: HTMLElement;\n};\n\ntype ShellBarProductSwitchClickEventDetail = {\n\ttargetRef: HTMLElement;\n};\n\ntype ShellBarLogoClickEventDetail = {\n\ttargetRef: HTMLElement;\n};\n\ntype ShellBarMenuItemClickEventDetail = {\n\titem: HTMLElement;\n};\n\ntype ShellBarContentItemVisibilityChangeEventDetail = {\n\titems: Array<HTMLElement>\n};\n\ntype ShellBarSearchButtonEventDetail = {\n\ttargetRef: HTMLElement;\n\tsearchFieldVisible: boolean;\n};\n\ntype ShellBarSearchFieldToggleEventDetail = {\n\texpanded: boolean;\n};\n\ntype ShellBarSearchFieldClearEventDetail = {\n\ttargetRef: HTMLElement;\n};\n\n/**\n * @class\n * ### Overview\n *\n * The `ui5-shellbar` is meant to serve as an application header\n * and includes numerous built-in features, such as: logo, profile image/icon, title, search field, notifications and so on.\n *\n * ### Stable DOM Refs\n *\n * You can use the following stable DOM refs for the `ui5-shellbar`:\n *\n * - logo\n * - notifications\n * - overflow\n * - profile\n * - product-switch\n *\n * ### Keyboard Handling\n *\n * #### Fast Navigation\n * This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\n * In order to use this functionality, you need to import the following module:\n * `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n * ### ES6 Module Import\n * `import \"@ui5/webcomponents-fiori/dist/ShellBar.js\";`\n * @csspart root - Used to style the outermost wrapper of the `ui5-shellbar`\n * @constructor\n * @extends UI5Element\n * @public\n * @since 0.8.0\n */\n\n@customElement({\n\ttag: \"ui5-shellbar\",\n\tstyles: [shellBarStyles, shellBarLegacyStyles, ShellBarPopoverCss],\n\trenderer: jsxRenderer,\n\ttemplate: ShellBarTemplate,\n\tfastNavigation: true,\n\tlanguageAware: true,\n\tdependencies: [\n\t\tIcon,\n\t\tList,\n\t\tButton,\n\t\tButtonBadge,\n\t\tPopover,\n\t\tShellBarSpacer,\n\t\tShellBarItem,\n\t\tListItemStandard,\n\t\t// legacy dependencies\n\t\tMenu,\n\t],\n})\n/**\n *\n * Fired, when the notification icon is activated.\n * @param {HTMLElement} targetRef dom ref of the activated element\n * @public\n */\n@event(\"notifications-click\", {\n\tcancelable: true,\n\tbubbles: true,\n})\n\n/**\n * Fired, when the profile slot is present.\n * @param {HTMLElement} targetRef dom ref of the activated element\n * @public\n */\n@event(\"profile-click\", {\n\tbubbles: true,\n})\n\n/**\n * Fired, when the product switch icon is activated.\n *\n * **Note:** You can prevent closing of overflow popover by calling `event.preventDefault()`.\n * @param {HTMLElement} targetRef dom ref of the activated element\n * @public\n */\n@event(\"product-switch-click\", {\n\tcancelable: true,\n\tbubbles: true,\n})\n\n/**\n * Fired, when the logo is activated.\n * @param {HTMLElement} targetRef dom ref of the activated element\n * @since 0.10\n * @public\n */\n@event(\"logo-click\", {\n\tbubbles: true,\n})\n\n/**\n * Fired, when a menu item is activated\n *\n * **Note:** You can prevent closing of overflow popover by calling `event.preventDefault()`.\n * @param {HTMLElement} item DOM ref of the activated list item\n * @since 0.10\n * @public\n */\n@event(\"menu-item-click\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired, when the search button is activated.\n *\n * **Note:** You can prevent expanding/collapsing of the search field by calling `event.preventDefault()`.\n * @param {HTMLElement} targetRef dom ref of the activated element\n * @param {Boolean} searchFieldVisible whether the search field is visible\n * @public\n */\n\n@event(\"search-button-click\", {\n\tcancelable: true,\n\tbubbles: true,\n})\n\n/**\n * Fired, when the search field is expanded or collapsed.\n * @since 2.10.0\n * @param {Boolean} expanded whether the search field is expanded\n * @public\n */\n@event(\"search-field-toggle\", {\n\tbubbles: true,\n})\n\n/**\n * Fired, when the search cancel button is activated.\n *\n * **Note:** You can prevent the default behavior (clearing the search field value) by calling `event.preventDefault()`. The search will still be closed.\n * **Note:** The `search-field-clear` event is in an experimental state and is a subject to change.\n * @param {HTMLElement} targetRef dom ref of the cancel button element\n * @since 2.14.0\n * @public\n */\n@event(\"search-field-clear\", {\n\tcancelable: true,\n\tbubbles: true,\n})\n\n/**\n * Fired, when an item from the content slot is hidden or shown.\n * **Note:** The `content-item-visibility-change` event is in an experimental state and is a subject to change.\n *\n * @param {Array<HTMLElement>} array of all the items that are hidden\n * @public\n * @since 2.7.0\n */\n@event(\"content-item-visibility-change\", {\n\tbubbles: true,\n})\n\nclass ShellBar extends UI5Element {\n\teventDetails!: {\n\t\t\"notifications-click\": ShellBarNotificationsClickEventDetail,\n\t\t\"profile-click\": ShellBarProfileClickEventDetail,\n\t\t\"product-switch-click\": ShellBarProductSwitchClickEventDetail,\n\t\t\"logo-click\": ShellBarLogoClickEventDetail,\n\t\t\"menu-item-click\": ShellBarMenuItemClickEventDetail,\n\t\t\"search-button-click\": ShellBarSearchButtonEventDetail,\n\t\t\"search-field-toggle\": ShellBarSearchFieldToggleEventDetail,\n\t\t\"search-field-clear\": ShellBarSearchFieldClearEventDetail,\n\t\t\"content-item-visibility-change\": ShellBarContentItemVisibilityChangeEventDetail\n\t}\n\n\t/**\n\t * Defines a `ui5-button` in the bar that will be placed in the beginning.\n\t * We encourage this slot to be used for a menu button.\n\t * It gets overstyled to match ShellBar's styling.\n\t * @public\n\t */\n\t@slot()\n\tstartButton!: Slot<IButton>;\n\n\t/**\n\t * Defines the branding slot.\n\t * The `ui5-shellbar-branding` component is intended to be placed inside this slot.\n\t * Content placed here takes precedence over the `primaryTitle` property and the `logo` content slot.\n\t *\n\t * **Note:** The `branding` slot is in an experimental state and is a subject to change.\n\t *\n\t * @since 2.12.0\n\t * @public\n\t */\n\t@slot()\n\tbranding!: Slot<ShellBarBranding>;\n\n\t/**\n\t * Define the items displayed in the content area.\n\t *\n\t * Use the `data-hide-order` attribute with numeric value to specify the order of the items to be hidden when the space is not enough.\n\t * Lower values will be hidden first.\n\t *\n\t * **Note:** The `content` slot is in an experimental state and is a subject to change.\n\t *\n\t * @public\n\t * @since 2.7.0\n\t */\n\t@slot({ type: HTMLElement, individualSlots: true })\n\tcontent!: Slot<HTMLElement>;\n\n\t/**\n\t * Defines the `ui5-input`, that will be used as a search field.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tsearchField!: Slot<IShellBarSearchField>;\n\n\t/**\n\t * Defines the assistant slot.\n\t *\n\t * @since 2.0.0\n\t * @public\n\t */\n\t@slot()\n\tassistant!: Slot<IButton>;\n\n\t/**\n\t * Defines the `ui5-shellbar` additional items.\n\t *\n\t * **Note:**\n\t * You can use the `<ui5-shellbar-item></ui5-shellbar-item>`.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true, individualSlots: true })\n\titems!: DefaultSlot<ShellBarItem>;\n\n\t/**\n\t * You can pass `ui5-avatar` to set the profile image/icon.\n\t * If no profile slot is set - profile will be excluded from actions.\n\t *\n\t * **Note:** We recommend not using the `size` attribute of `ui5-avatar` because\n\t * it should have specific size by design in the context of `ui5-shellbar` profile.\n\t * @since 1.0.0-rc.6\n\t * @public\n\t */\n\t@slot()\n\tprofile!: Slot<HTMLElement>;\n\n\t/**\n\t * Defines the `notificationsCount`,\n\t * displayed in the notification icon top-right corner.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tnotificationsCount?: string;\n\n\t/**\n\t * Defines, if the notification icon would be displayed.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowNotifications = false;\n\n\t/**\n\t * Defines, if the product switch icon would be displayed.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowProductSwitch = false;\n\n\t/**\n\t * Defines, if the Search Field would be displayed when there is a valid `searchField` slot.\n\t *\n\t * **Note:** By default the Search Field is not displayed.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowSearchField = false;\n\n\t/**\n\t * Defines additional accessibility attributes on different areas of the component.\n\t *\n\t * The accessibilityAttributes object has the following fields,\n\t * where each field is an object supporting one or more accessibility attributes:\n\t *\n\t * - **logo** - `logo.role` and `logo.name`.\n\t * - **notifications** - `notifications.expanded` and `notifications.hasPopup`.\n\t * - **profile** - `profile.expanded`, `profile.hasPopup` and `profile.name`.\n\t * - **product** - `product.expanded` and `product.hasPopup`.\n\t * - **search** - `search.hasPopup`.\n\t * - **overflow** - `overflow.expanded` and `overflow.hasPopup`.\n\t * - **branding** - `branding.name`.\n\t *\n\t * The accessibility attributes support the following values:\n\t *\n\t * - **role**: Defines the accessible ARIA role of the logo area.\n\t * Accepts the following string values: `button` or `link`.\n\t *\n\t * - **expanded**: Indicates whether the button, or another grouping element it controls,\n\t * is currently expanded or collapsed.\n\t * Accepts the following string values: `true` or `false`.\n\t *\n\t * - **hasPopup**: Indicates the availability and type of interactive popup element,\n\t * such as menu or dialog, that can be triggered by the button.\n\t *\n\t * Accepts the following string values: `dialog`, `grid`, `listbox`, `menu` or `tree`.\n\t * - **name**: Defines the accessible ARIA name of the area.\n\t * Accepts any string.\n\t *\n\t * @default {}\n\t * @public\n\t * @since 1.10.0\n\t */\n\t@property({ type: Object })\n\taccessibilityAttributes: ShellBarAccessibilityAttributes = {};\n\n\t/**\n\t * @private\n\t */\n\t@property()\n\tbreakpointSize = \"S\";\n\n\t/**\n\t * Actions computed from controllers.\n\t * @private\n\t */\n\t@property({ type: Object })\n\tactions: ShellBarActionItem[] = [];\n\n\t/**\n\t * Show overflow button when items are hidden.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tshowOverflowButton = false;\n\n\t/**\n\t * Open state of the overflow popover.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\toverflowPopoverOpen = false;\n\n\t/**\n\t * IDs of items currently hidden due to overflow.\n\t * Used to trigger rerender for conditional rendering.\n\t * @private\n\t */\n\t@property({ type: Object })\n\thiddenItemsIds: string[] = [];\n\n\t/**\n\t * Show full-screen search overlay.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tshowFullWidthSearch = false;\n\n\t/**\n\t * Spacer element.\n\t * @private\n\t */\n\t@query(\".ui5-shellbar-spacer\")\n\tspacer?: HTMLElement;\n\n\t/**\n\t * Outer container of the overflow container.\n\t * @private\n\t */\n\t@query(\".ui5-shellbar-overflow-container\")\n\toverflowOuter?: HTMLElement;\n\n\t/**\n\t * Inner container of the overflow container.\n\t * @private\n\t */\n\t@query(\".ui5-shellbar-overflow-container-inner\")\n\toverflowInner?: HTMLElement;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\tprivate readonly RESIZE_THROTTLE_RATE = 100; // ms\n\tprivate handleResizeBound: ResizeObserverCallback = throttle(this.handleResize.bind(this), this.RESIZE_THROTTLE_RATE);\n\n\tprivate readonly breakpoints = [599, 1023, 1439, 1919, 10000];\n\tprivate readonly breakpointMap: Record<number, ShellBarBreakpoint> = {\n\t\t599: \"S\",\n\t\t1023: \"M\",\n\t\t1439: \"L\",\n\t\t1919: \"XL\",\n\t\t10000: \"XXL\",\n\t};\n\n\titemNavigation = new ShellBarItemNavigation({\n\t\tgetDomRef: () => this.getDomRef() || null,\n\t});\n\n\toverflow = new ShellBarOverflow();\n\taccessibility: ShellBarAccessibility = new ShellBarAccessibility();\n\n\tprivate _searchAdaptor = new ShellBarSearch(this.getSearchDeps());\n\tprivate _searchAdaptorLegacy = new ShellBarSearchLegacy({\n\t\t...this.getSearchDeps(),\n\t\tgetDisableSearchCollapse: () => this.disableSearchCollapse,\n\t});\n\n\t/* =================== Legacy Members =================== */\n\n\t/**\n\t * Defines the visibility state of the search button.\n\t *\n\t * **Note:** The `hideSearchButton` property is in an experimental state and is a subject to change.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideSearchButton = false;\n\n\t/**\n\t * Disables the automatic search field expansion/collapse when the available space is not enough.\n\t *\n\t * **Note:** The `disableSearchCollapse` property is in an experimental state and is a subject to change.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisableSearchCollapse = false;\n\n\t/**\n\t * Defines the `primaryTitle`.\n\t *\n\t * **Note:** The `primaryTitle` would be hidden on S screen size (less than approx. 700px).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tprimaryTitle?: string;\n\n\t/**\n\t * Defines the `secondaryTitle`.\n\t *\n\t * **Note:** The `secondaryTitle` would be hidden on S and M screen sizes (less than approx. 1300px).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tsecondaryTitle?: string;\n\n\t/**\n\t * Defines the logo of the `ui5-shellbar`.\n\t * For example, you can use `ui5-avatar` or `img` elements as logo.\n\t * @since 1.0.0-rc.8\n\t * @public\n\t */\n\t@slot()\n\tlogo!: Slot<HTMLElement>;\n\n\t/**\n\t * Defines the items displayed in menu after a click on a start button.\n\t *\n\t * **Note:** You can use the `<ui5-li></ui5-li>` and its ancestors.\n\t * @since 0.10\n\t * @public\n\t */\n\t@slot()\n\tmenuItems!: Slot<ListItemBase>;\n\n\t/**\n\t * Open state of the menu popover (legacy).\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tmenuPopoverOpen = false;\n\n\t/**\n\t * The container is positioned in the center of the `ui5-shellbar` and occupies one-third of the total length of the `ui5-shellbar`.\n\t *\n\t * **Note:** If set, the `searchField` slot is not rendered.\n\t * @private\n\t */\n\t@slot()\n\tmidContent!: Slot<HTMLElement>;\n\n\tlegacyAdaptor?: ShellBarLegacy;\n\n\t/* =================== Lifecycle Methods =================== */\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this.handleResizeBound);\n\t\tthis.searchAdaptor?.subscribe();\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this.handleResizeBound);\n\t\tthis.searchAdaptor?.unsubscribe();\n\t}\n\n\tonBeforeRendering() {\n\t\tif (!this.legacyAdaptor) {\n\t\t\tthis.initLegacyController();\n\t\t}\n\t\t// Sync branding breakpoint state\n\t\tthis.branding.forEach(brandingEl => {\n\t\t\tbrandingEl._isSBreakPoint = this.isSBreakPoint;\n\t\t});\n\n\t\tthis.buildActions();\n\n\t\tthis.searchAdaptor?.syncShowSearchFieldState();\n\t\t// subscribe to search adaptor for cases when search is added dynamically\n\t\tthis.searchAdaptor?.unsubscribe();\n\t\tthis.searchAdaptor?.subscribe();\n\t}\n\n\tonAfterRendering() {\n\t\tthis.updateBreakpoint();\n\t\tthis.updateOverflow();\n\t}\n\n\t/* =================== Actions Management =================== */\n\n\tprivate buildActions() {\n\t\tthis.actions = [\n\t\t\t{\n\t\t\t\tid: ShellBarActions.Search,\n\t\t\t\ticon: searchIcon,\n\t\t\t\tenabled: this.enabledFeatures.search,\n\t\t\t\tselector: ShellBarActionsSelectors.Search,\n\t\t\t\tisProtected: false,\n\t\t\t\tstableDomRef: \"toggle-search\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ShellBarActions.Assistant,\n\t\t\t\ticon: daIcon,\n\t\t\t\tenabled: this.enabledFeatures.assistant,\n\t\t\t\tselector: ShellBarActionsSelectors.Assistant,\n\t\t\t\tisProtected: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ShellBarActions.Notifications,\n\t\t\t\ticon: bellIcon,\n\t\t\t\tcount: this.notificationsCount,\n\t\t\t\tenabled: this.enabledFeatures.notifications,\n\t\t\t\tselector: ShellBarActionsSelectors.Notifications,\n\t\t\t\tisProtected: false,\n\t\t\t\tstableDomRef: \"notifications\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ShellBarActions.Overflow,\n\t\t\t\ticon: overflowIcon,\n\t\t\t\tenabled: this.enabledFeatures.overflow,\n\t\t\t\tselector: ShellBarActionsSelectors.Overflow,\n\t\t\t\tisProtected: true,\n\t\t\t\tstableDomRef: \"overflow\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ShellBarActions.Profile,\n\t\t\t\tenabled: this.enabledFeatures.profile,\n\t\t\t\tselector: ShellBarActionsSelectors.Profile,\n\t\t\t\tisProtected: true,\n\t\t\t\tstableDomRef: \"profile\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: ShellBarActions.ProductSwitch,\n\t\t\t\ticon: gridIcon,\n\t\t\t\tenabled: this.enabledFeatures.productSwitch,\n\t\t\t\tselector: ShellBarActionsSelectors.ProductSwitch,\n\t\t\t\tisProtected: true,\n\t\t\t\tstableDomRef: \"product-switch\",\n\t\t\t},\n\t\t].filter(action => action.enabled);\n\t}\n\n\tgetAction(actionId: ShellBarActionId) {\n\t\treturn this.actions.find(action => action.id === actionId);\n\t}\n\n\tgetActionOverflowText(actionId: ShellBarActionId): string {\n\t\tconst texts: Record<string, string> = {\n\t\t\t[ShellBarActions.Search]: this.texts.search,\n\t\t\t[ShellBarActions.Profile]: this.texts.profile,\n\t\t\t[ShellBarActions.Overflow]: this.texts.overflow,\n\t\t\t[ShellBarActions.Assistant]: this.texts.assistant,\n\t\t\t[ShellBarActions.ProductSwitch]: this.texts.products,\n\t\t\t[ShellBarActions.Notifications]: this.texts.notificationsNoCount,\n\t\t};\n\t\treturn texts[actionId] || actionId;\n\t}\n\n\t/* =================== Breakpoint Management =================== */\n\n\tget isSBreakPoint() {\n\t\treturn this.breakpointSize === \"S\";\n\t}\n\n\tprivate updateBreakpoint() {\n\t\tconst width = this.getBoundingClientRect().width;\n\t\tconst bp = this.breakpoints.find(b => width <= b) || 10000;\n\t\tconst breakpoint = this.breakpointMap[bp];\n\n\t\tif (this.breakpointSize !== breakpoint) {\n\t\t\tthis.breakpointSize = breakpoint;\n\t\t}\n\t}\n\n\t/* =================== Overflow Management =================== */\n\n\tprivate updateOverflow() {\n\t\tif (!this.overflow) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst result = this.overflow.updateOverflow({\n\t\t\tactions: this.actions,\n\t\t\tcontent: this.sortContent(this.content),\n\t\t\tcustomItems: this._validItems,\n\t\t\thiddenItemsIds: this.hiddenItemsIds,\n\t\t\tshowSearchField: this.enabledFeatures.search && this.showSearchField,\n\t\t\toverflowOuter: this.overflowOuter!,\n\t\t\toverflowInner: this.overflowInner!,\n\t\t\tsetVisible: (selector: string, visible: boolean) => {\n\t\t\t\tconst element = this.shadowRoot!.querySelector(selector);\n\t\t\t\tif (element) {\n\t\t\t\t\telement.classList[visible ? \"remove\" : \"add\"](\"ui5-shellbar-hidden\");\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\n\t\tthis.handleUpdateOverflowResult(result);\n\n\t\treturn result.hiddenItemsIds;\n\t}\n\n\tprivate handleUpdateOverflowResult(result: ShellBarOverflowResult) {\n\t\tconst { hiddenItemsIds, showOverflowButton } = result;\n\n\t\t// Update items overflow state\n\t\tthis._validItems.forEach(item => {\n\t\t\titem.inOverflow = hiddenItemsIds.includes(item._id);\n\t\t\tif (item.inOverflow) {\n\t\t\t\t// clear the hidden class to ensure the item is visible in the overflow popover\n\t\t\t\titem.classList.remove(\"ui5-shellbar-hidden\");\n\t\t\t}\n\t\t});\n\n\t\tif (!arraysAreEqual(this.hiddenItemsIds, hiddenItemsIds)) {\n\t\t\tthis.handleContentVisibilityChanged(this.hiddenItemsIds, hiddenItemsIds);\n\t\t\tthis.hiddenItemsIds = hiddenItemsIds;\n\t\t\tthis.showOverflowButton = showOverflowButton;\n\t\t}\n\t\tthis.showFullWidthSearch = this.searchAdaptor?.shouldShowFullScreen() || false;\n\t}\n\n\tprivate handleContentVisibilityChanged(oldHiddenItemsIds: string[], newHiddenItemsIds: string[]) {\n\t\tconst filterContentIds = (ids: string[]) => ids.filter(id => this.content.some(item => (item as any)._individualSlot as string === id));\n\t\tconst oldHiddenContentIds = filterContentIds(oldHiddenItemsIds);\n\t\tconst newHiddenContentIds = filterContentIds(newHiddenItemsIds);\n\n\t\tif (!arraysAreEqual(oldHiddenContentIds, newHiddenContentIds)) {\n\t\t\tthis.fireDecoratorEvent(\"content-item-visibility-change\", {\n\t\t\t\titems: newHiddenContentIds.map(id => this.content.find(item => (item as any)._individualSlot as string === id)!),\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate handleResize() {\n\t\tthis.overflowPopoverOpen = false;\n\t\tthis.updateBreakpoint();\n\t\tconst hiddenItemsIds = this.updateOverflow() ?? [];\n\t\tconst spacerWidth = this.spacer?.getBoundingClientRect().width || 0;\n\t\tthis.searchAdaptor?.autoManageSearchState(hiddenItemsIds.length, spacerWidth);\n\t}\n\n\tisHidden(itemId: string) {\n\t\treturn this.hiddenItemsIds.includes(itemId);\n\t}\n\n\thandleOverflowClick() {\n\t\tthis.overflowPopoverOpen = !this.overflowPopoverOpen;\n\t}\n\n\tonPopoverClose() {\n\t\tthis.overflowPopoverOpen = false;\n\t}\n\n\t/**\n\t * Closes the overflow popover.\n\t * @public\n\t */\n\tcloseOverflow(): void {\n\t\tthis.overflowPopoverOpen = false;\n\t}\n\n\thandleOverflowItemClick(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tconst actionId = target.getAttribute(\"data-action-id\");\n\n\t\tlet prevented = e.defaultPrevented; // for custom actions\n\n\t\tif (actionId === ShellBarActions.Notifications) {\n\t\t\tprevented = this.handleNotificationsClick();\n\t\t} else if (actionId === ShellBarActions.Search) {\n\t\t\tprevented = this.handleSearchButtonClick();\n\t\t}\n\n\t\tif (!prevented) {\n\t\t\tthis.overflowPopoverOpen = false;\n\t\t}\n\t}\n\n\tget overflowItems() {\n\t\treturn this.overflow.getOverflowItems({\n\t\t\tactions: this.actions,\n\t\t\tcustomItems: this._validItems,\n\t\t\thiddenItemsIds: this.hiddenItemsIds,\n\t\t});\n\t}\n\n\t/**\n\t * Only entries that are actually `ui5-shellbar-item` instances participate in the\n\t * overflow calculation and template rendering. The default slot's type is\n\t * `HTMLElement`, so any stray child (e.g. a bare `<span>`) ends up in `this.items`;\n\t * if such an element reaches the overflow algorithm it has no `_id` / `stableDomRef`,\n\t * which writes `undefined` back into reactive properties on every pass and re-enters\n\t * the render queue until `RenderQueue` throws \"processed too many times\".\n\t */\n\tget _validItems(): ShellBarItem[] {\n\t\treturn this.items.filter(isInstanceOfShellBarItem);\n\t}\n\n\t/**\n\t * Returns badge text for overflow button.\n\t * Shows count if only one item with count is overflowed, otherwise shows attention dot.\n\t */\n\tget overflowBadge(): string | undefined {\n\t\tconst itemsWithCount = this.overflowItems.filter(item => item.data.count);\n\t\tif (itemsWithCount.length === 1) {\n\t\t\treturn itemsWithCount[0].data.count;\n\t\t}\n\t\tif (itemsWithCount.length > 1) {\n\t\t\treturn \" \"; // Attention dot\n\t\t}\n\t\treturn undefined;\n\t}\n\n\t/* =================== Search Management =================== */\n\n\tget search() {\n\t\treturn this.searchField.length ? this.searchField[0] : null;\n\t}\n\n\tget isSelfCollapsibleSearch(): boolean {\n\t\tconst searchField = this.search;\n\t\tif (searchField) {\n\t\t\treturn \"collapsed\" in searchField && \"open\" in searchField;\n\t\t}\n\t\treturn false;\n\t}\n\n\tprivate getSearchDeps() {\n\t\treturn {\n\t\t\tgetSearchField: () => this.search,\n\t\t\tgetSearchState: () => this.enabledFeatures.search && this.showSearchField,\n\t\t\tgetCSSVariable: (cssVar: string) => this.getCSSVariable(cssVar),\n\t\t\tsetSearchState: (expanded: boolean) => this.setSearchState(expanded),\n\t\t\tgetOverflowed: () => this.overflow.isOverflowing(this.overflowOuter!, this.overflowInner!),\n\t\t};\n\t}\n\n\tget searchAdaptor(): IShellBarSearchController {\n\t\tif (this.isSelfCollapsibleSearch) {\n\t\t\treturn this._searchAdaptor;\n\t\t}\n\t\treturn this._searchAdaptorLegacy;\n\t}\n\n\thandleSearchButtonClick() {\n\t\tconst searchButton = this.shadowRoot!.querySelector<Button>(\".ui5-shellbar-search-button\");\n\t\tconst defaultPrevented = !this.fireDecoratorEvent(\"search-button-click\", {\n\t\t\ttargetRef: searchButton!,\n\t\t\tsearchFieldVisible: this.showSearchField,\n\t\t});\n\n\t\tif (defaultPrevented) {\n\t\t\treturn defaultPrevented;\n\t\t}\n\n\t\tthis.setSearchState(!this.showSearchField);\n\n\t\tif (!this.showSearchField) {\n\t\t\treturn defaultPrevented;\n\t\t}\n\n\t\tconst input = this.searchField[0];\n\t\tif (input) {\n\t\t\tinput.focused = true;\n\t\t\tsetTimeout(() => {\n\t\t\t\tinput.focus();\n\t\t\t}, 100);\n\t\t}\n\t\treturn defaultPrevented;\n\t}\n\n\tasync setSearchState(expanded: boolean) {\n\t\tif (expanded === this.showSearchField) {\n\t\t\treturn;\n\t\t}\n\t\tthis.showSearchField = expanded;\n\t\tawait renderFinished();\n\t\tthis.fireDecoratorEvent(\"search-field-toggle\", { expanded });\n\t}\n\n\thandleCancelButtonClick() {\n\t\tconst cancelBtn = this.shadowRoot!.querySelector<Button>(\".ui5-shellbar-cancel-button\");\n\t\tif (!cancelBtn) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst clearDefaultPrevented = !this.fireDecoratorEvent(\"search-field-clear\", {\n\t\t\ttargetRef: cancelBtn,\n\t\t});\n\n\t\tthis.showFullWidthSearch = false;\n\t\tthis.setSearchState(false);\n\n\t\tif (!clearDefaultPrevented && this.search) {\n\t\t\tthis.search.value = \"\";\n\t\t}\n\t}\n\n\t/* =================== Legacy Features Management =================== */\n\n\tprivate initLegacyController() {\n\t\tif (this.hasLegacyFeatures) {\n\t\t\tthis.legacyAdaptor = new ShellBarLegacy({\n\t\t\t\tcomponent: this,\n\t\t\t\tgetShadowRoot: () => this.shadowRoot,\n\t\t\t});\n\t\t}\n\t}\n\n\tget hasLegacyFeatures(): boolean {\n\t\treturn this.logo.length > 0\n\t\t\t|| !!this.primaryTitle\n\t\t\t|| !!this.secondaryTitle\n\t\t\t|| this.menuItems.length > 0;\n\t}\n\n\t/* =================== Keyboard Navigation =================== */\n\n\t_onKeyDown(e: KeyboardEvent) {\n\t\tthis.itemNavigation.handleKeyDown(e);\n\t}\n\n\t/* =================== Content Management =================== */\n\n\tget startContent(): HTMLElement[] {\n\t\treturn this.splitContent(this.content).start;\n\t}\n\n\tget endContent(): HTMLElement[] {\n\t\treturn this.splitContent(this.content).end;\n\t}\n\n\tget separatorConfig() {\n\t\tif (this.isSBreakPoint) {\n\t\t\treturn {\n\t\t\t\tshowStartSeparator: false,\n\t\t\t\tshowEndSeparator: false,\n\t\t\t};\n\t\t}\n\t\tconst { start, end } = this.splitContent(this.content);\n\n\t\treturn {\n\t\t\tshowStartSeparator: start.some(item => !this.hiddenItemsIds.includes((item as any)._individualSlot as string)),\n\t\t\tshowEndSeparator: end.some(item => !this.hiddenItemsIds.includes((item as any)._individualSlot as string)),\n\t\t};\n\t}\n\n\tsplitContent(content: readonly HTMLElement[]) {\n\t\tconst spacerIndex = content.findIndex(\n\t\t\tchild => child.hasAttribute(\"ui5-shellbar-spacer\"),\n\t\t);\n\n\t\tif (spacerIndex === -1) {\n\t\t\treturn { start: [...content], end: [] };\n\t\t}\n\n\t\treturn {\n\t\t\tstart: content.slice(0, spacerIndex),\n\t\t\tend: content.slice(spacerIndex + 1),\n\t\t};\n\t}\n\n\tsortContent(content: readonly HTMLElement[]) {\n\t\t// reverse so items on the right are hidden first\n\t\t// then sort by hide order to apply custom preferences\n\t\treturn content.toReversed().toSorted((a, b) => {\n\t\t\tconst aOrder = parseInt(a.getAttribute(\"data-hide-order\") || \"0\");\n\t\t\tconst bOrder = parseInt(b.getAttribute(\"data-hide-order\") || \"0\");\n\t\t\treturn aOrder - bOrder;\n\t\t});\n\t}\n\n\t/*\n\t * Determines whether a separator should be packed with an item.\n\t * Separators are packed with the last item that is hidden to account for\n\t * the space they occupy when next overflow calculation occurs.\n\t */\n\tgetPackedSeparatorInfo(item: HTMLElement, isStartGroup: boolean) {\n\t\tconst group = isStartGroup ? this.startContent : this.endContent;\n\t\tconst sorted = this.sortContent(group);\n\t\tconst isHidden = this.hiddenItemsIds.includes((item as any)._individualSlot as string);\n\t\tconst isLastItem = sorted.at(-1) === item;\n\n\t\treturn { shouldPack: isHidden && isLastItem };\n\t}\n\n\t/* =================== Items Management =================== */\n\n\t/* =================== Accessibility =================== */\n\n\tget actionsAccessibilityInfo(): ShellBarAccessibilityInfo {\n\t\treturn this.accessibility.getActionsAccessibilityAttributes(this.texts, {\n\t\t\toverflowPopoverOpen: this.overflowPopoverOpen,\n\t\t\taccessibilityAttributes: this.accessibilityAttributes,\n\t\t});\n\t}\n\n\tget actionsRole(): \"toolbar\" | undefined {\n\t\tconst visibleCount = this.actions.filter(a => !this.hiddenItemsIds.includes(a.id)).length;\n\t\treturn this.accessibility.getActionsRole(visibleCount);\n\t}\n\n\tget contentRole(): \"group\" | undefined {\n\t\tconst visibleItemsCount = this.content.filter(item => !this.hiddenItemsIds.includes((item as any)._individualSlot as string)).length;\n\t\treturn this.accessibility.getContentRole(visibleItemsCount);\n\t}\n\n\t/* =================== Common Members =================== */\n\n\tget enabledFeatures() {\n\t\treturn {\n\t\t\tsearch: this.searchField.length > 0,\n\t\t\tprofile: this.profile.length > 0,\n\t\t\tcontent: this.content.length > 0,\n\t\t\tbranding: this.branding.length > 0,\n\t\t\toverflow: this.showOverflowButton,\n\t\t\tassistant: this.assistant.length > 0,\n\t\t\tstartButton: this.startButton.length > 0,\n\t\t\tnotifications: this.showNotifications,\n\t\t\tproductSwitch: this.showProductSwitch,\n\t\t};\n\t}\n\n\tget texts() {\n\t\treturn {\n\t\t\tsearch: ShellBar.i18nBundle.getText(SHELLBAR_SEARCH),\n\t\t\tprofile: ShellBar.i18nBundle.getText(SHELLBAR_PROFILE),\n\t\t\tshellbar: ShellBar.i18nBundle.getText(SHELLBAR_LABEL),\n\t\t\tproducts: ShellBar.i18nBundle.getText(SHELLBAR_PRODUCTS),\n\t\t\toverflow: ShellBar.i18nBundle.getText(SHELLBAR_OVERFLOW),\n\t\t\tassistant: ShellBar.i18nBundle.getText(SHELLBAR_ASSISTANT),\n\t\t\tnotifications: ShellBar.i18nBundle.getText(SHELLBAR_NOTIFICATIONS, this.notificationsCount || 0),\n\t\t\tnotificationsNoCount: ShellBar.i18nBundle.getText(SHELLBAR_NOTIFICATIONS_NO_COUNT),\n\t\t\tcontentItems: this.content.length > 1 ? ShellBar.i18nBundle.getText(SHELLBAR_ADDITIONAL_CONTEXT) : undefined,\n\t\t};\n\t}\n\n\tget popoverHorizontalAlign(): \"Start\" | \"End\" {\n\t\treturn this.effectiveDir === \"rtl\" ? \"Start\" : \"End\";\n\t}\n\n\t/**\n\t * Returns the `logo` DOM ref.\n\t * @public\n\t * @default null\n\t * @since 1.0.0-rc.16\n\t */\n\tget logoDomRef(): HTMLElement | null {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(`*[data-ui5-stable=\"logo\"]`);\n\t}\n\n\t/**\n\t * Returns the `notifications` icon DOM ref.\n\t * @public\n\t * @default null\n\t * @since 1.0.0-rc.16\n\t */\n\tget notificationsDomRef(): HTMLElement | null {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(`*[data-ui5-stable=\"notifications\"]`);\n\t}\n\n\t/**\n\t * Returns the `overflow` icon DOM ref.\n\t * @public\n\t * @default null\n\t * @since 1.0.0-rc.16\n\t */\n\tget overflowDomRef(): HTMLElement | null {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(`*[data-ui5-stable=\"overflow\"]`);\n\t}\n\n\t/**\n\t * Returns the `profile` icon DOM ref.\n\t * @public\n\t * @default null\n\t * @since 1.0.0-rc.16\n\t */\n\tget profileDomRef(): HTMLElement | null {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(`*[data-ui5-stable=\"profile\"]`);\n\t}\n\n\t/**\n\t * Returns the `product-switch` icon DOM ref.\n\t * @public\n\t * @default null\n\t * @since 1.0.0-rc.16\n\t */\n\tget productSwitchDomRef(): HTMLElement | null {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(`*[data-ui5-stable=\"product-switch\"]`);\n\t}\n\n\t/**\n\t * Returns the search button DOM reference.\n\t * @public\n\t */\n\tasync getSearchButtonDomRef(): Promise<HTMLElement | null> {\n\t\tawait renderFinished();\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(`*[data-ui5-stable=\"toggle-search\"]`);\n\t}\n\n\tprivate _fireClickEvent(eventName: string, domRef: HTMLElement | null): boolean {\n\t\treturn domRef ? !this.fireDecoratorEvent(eventName as any, { targetRef: domRef }) : false;\n\t}\n\n\thandleNotificationsClick() {\n\t\treturn this._fireClickEvent(\"notifications-click\", this.notificationsDomRef);\n\t}\n\n\thandleProfileClick() {\n\t\treturn this._fireClickEvent(\"profile-click\", this.profileDomRef);\n\t}\n\n\thandleProductSwitchClick() {\n\t\treturn this._fireClickEvent(\"product-switch-click\", this.productSwitchDomRef);\n\t}\n\n\tgetCSSVariable(cssVar: string): string {\n\t\tconst styleSet = getComputedStyle(this.getDomRef()!);\n\t\treturn styleSet.getPropertyValue(getScopedVarName(cssVar));\n\t}\n}\n\nShellBar.define();\n\nexport default ShellBar;\nexport {\n\tShellBarActions,\n\tShellBarActionsSelectors,\n};\nexport type {\n\t/* Event Types */\n\tShellBarProfileClickEventDetail,\n\tShellBarSearchButtonEventDetail,\n\tShellBarSearchFieldClearEventDetail,\n\tShellBarSearchFieldToggleEventDetail,\n\tShellBarProductSwitchClickEventDetail,\n\tShellBarNotificationsClickEventDetail,\n\tShellBarContentItemVisibilityChangeEventDetail,\n\t/* Common Types */\n\tShellBarActionId,\n\tShellBarActionItem,\n\tIShellBarSearchField,\n\tShellBarBreakpoint,\n\t/* Accessibility Types */\n\tShellBarAccessibilityInfo,\n\tShellBarAccessibilityAttributes,\n\tShellBarAreaAccessibilityAttributes,\n\tShellBarProfileAccessibilityAttributes,\n\t/* Legacy Types (DELETE WHEN REMOVING LEGACY) */\n\tShellBarLogoClickEventDetail,\n\tShellBarMenuItemClickEventDetail,\n\tShellBarLogoAccessibilityAttributes,\n};\n"]}
@@ -68,9 +68,11 @@ declare class ShellBarItem extends UI5Element {
68
68
  */
69
69
  inOverflow: boolean;
70
70
  get stableDomRef(): string;
71
+ get isShellBarItem(): boolean;
71
72
  hasListItems(): boolean;
72
73
  get listItems(): HTMLElement[];
73
74
  fireClickEvent(e: UI5CustomEvent<Button, "click">): boolean;
74
75
  }
75
76
  export default ShellBarItem;
77
+ export declare const isInstanceOfShellBarItem: (object: any) => object is ShellBarItem;
76
78
  export type { ShellBarItemClickEventDetail, ShellBarItemAccessibilityAttributes };