@ui5/webcomponents-fiori 2.25.0-rc.0 → 2.25.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 (82) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/MediaGalleryTemplate.js +1 -1
  4. package/dist/MediaGalleryTemplate.js.map +1 -1
  5. package/dist/ShellBar.js +7 -1
  6. package/dist/ShellBar.js.map +1 -1
  7. package/dist/ShellBarSearch.d.ts +1 -0
  8. package/dist/ShellBarSearch.js +6 -0
  9. package/dist/ShellBarSearch.js.map +1 -1
  10. package/dist/UserSettingsAccountView.js +2 -2
  11. package/dist/UserSettingsAccountView.js.map +1 -1
  12. package/dist/UserSettingsAppearanceViewItemTemplate.js +1 -1
  13. package/dist/UserSettingsAppearanceViewItemTemplate.js.map +1 -1
  14. package/dist/UserSettingsAppearanceViewTemplate.js +2 -2
  15. package/dist/UserSettingsAppearanceViewTemplate.js.map +1 -1
  16. package/dist/UserSettingsDialog.d.ts +18 -0
  17. package/dist/UserSettingsDialog.js +49 -3
  18. package/dist/UserSettingsDialog.js.map +1 -1
  19. package/dist/UserSettingsDialogTemplate.js +3 -3
  20. package/dist/UserSettingsDialogTemplate.js.map +1 -1
  21. package/dist/UserSettingsItemTemplate.js +1 -1
  22. package/dist/UserSettingsItemTemplate.js.map +1 -1
  23. package/dist/css/themes/UserSettingsAccountView.css +1 -1
  24. package/dist/css/themes/UserSettingsAppearanceViewItem.css +1 -1
  25. package/dist/css/themes/UserSettingsDialog.css +1 -1
  26. package/dist/css/themes/UserSettingsItem.css +1 -1
  27. package/dist/css/themes/UserSettingsView.css +1 -1
  28. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  29. package/dist/css/themes/sap_horizon_auto/parameters-bundle.css +2 -2
  30. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +2 -2
  31. package/dist/custom-elements-internal.json +44 -3
  32. package/dist/custom-elements.json +36 -3
  33. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  34. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  35. package/dist/generated/assets/themes/sap_horizon_auto/parameters-bundle.css.json +1 -1
  36. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  37. package/dist/generated/i18n/i18n-defaults.d.ts +3 -1
  38. package/dist/generated/i18n/i18n-defaults.js +6 -4
  39. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  40. package/dist/generated/themes/UserSettingsAccountView.css.d.ts +1 -1
  41. package/dist/generated/themes/UserSettingsAccountView.css.js +1 -1
  42. package/dist/generated/themes/UserSettingsAccountView.css.js.map +1 -1
  43. package/dist/generated/themes/UserSettingsAppearanceViewItem.css.d.ts +1 -1
  44. package/dist/generated/themes/UserSettingsAppearanceViewItem.css.js +1 -1
  45. package/dist/generated/themes/UserSettingsAppearanceViewItem.css.js.map +1 -1
  46. package/dist/generated/themes/UserSettingsDialog.css.d.ts +1 -1
  47. package/dist/generated/themes/UserSettingsDialog.css.js +1 -1
  48. package/dist/generated/themes/UserSettingsDialog.css.js.map +1 -1
  49. package/dist/generated/themes/UserSettingsItem.css.d.ts +1 -1
  50. package/dist/generated/themes/UserSettingsItem.css.js +1 -1
  51. package/dist/generated/themes/UserSettingsItem.css.js.map +1 -1
  52. package/dist/generated/themes/UserSettingsView.css.d.ts +1 -1
  53. package/dist/generated/themes/UserSettingsView.css.js +1 -1
  54. package/dist/generated/themes/UserSettingsView.css.js.map +1 -1
  55. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  56. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  57. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  58. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.d.ts +1 -1
  59. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js +2 -2
  60. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js.map +1 -1
  61. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.d.ts +1 -1
  62. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +2 -2
  63. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  64. package/dist/shellbar/ShellBarSearch.d.ts +3 -1
  65. package/dist/shellbar/ShellBarSearch.js +3 -2
  66. package/dist/shellbar/ShellBarSearch.js.map +1 -1
  67. package/dist/vscode.html-custom-data.json +6 -1
  68. package/dist/web-types.json +34 -8
  69. package/package.json +8 -8
  70. package/src/MediaGalleryTemplate.tsx +6 -2
  71. package/src/UserSettingsAppearanceViewItemTemplate.tsx +1 -3
  72. package/src/UserSettingsAppearanceViewTemplate.tsx +2 -2
  73. package/src/UserSettingsDialogTemplate.tsx +9 -2
  74. package/src/UserSettingsItemTemplate.tsx +1 -1
  75. package/src/i18n/messagebundle.properties +9 -3
  76. package/src/i18n/messagebundle_en.properties +3 -3
  77. package/src/themes/UserSettingsAccountView.css +2 -0
  78. package/src/themes/UserSettingsAppearanceViewItem.css +3 -10
  79. package/src/themes/UserSettingsDialog.css +5 -0
  80. package/src/themes/UserSettingsItem.css +3 -2
  81. package/src/themes/UserSettingsView.css +4 -17
  82. package/src/themes/sap_horizon/HeroBanner-parameters.css +2 -2
@@ -5,6 +5,6 @@ import Button from "@ui5/webcomponents/dist/Button.js";
5
5
  export default function MediaGalleryTemplate() {
6
6
  return (_jsxs("div", { class: "ui5-media-gallery-root", children: [_jsx("div", { class: "ui5-media-gallery-display-wrapper", children: _jsx("div", { class: "ui5-media-gallery-display", onClick: this._onDisplayAreaClick, children: this._isPhonePlatform
7
7
  ? _jsx(Carousel, { onNavigate: this._onCarouselNavigate, hideNavigationArrows: true, children: this._selectableItems.map(item => _jsx("slot", { name: item._individualSlot })) })
8
- : _jsx(MediaGalleryItem, { _interactive: this.interactiveDisplayArea, _square: this._shouldHaveSquareDisplay, tabIndex: this._mainItemTabIndex }) }) }), this._showThumbnails && _jsx("div", { class: "ui5-media-gallery-thumbnails-wrapper", children: _jsxs("ul", { children: [this._visibleItems.map(item => _jsx("li", { id: item.id, class: "ui5-media-gallery-thumbnail", role: "option", onClick: this._onThumbnailClick, children: _jsx("slot", { name: item._individualSlot }) })), this._showOverflowBtn && _jsx("li", { class: "ui5-media-gallery-overflow", children: _jsxs(Button, { onClick: this._onOverflowBtnClick, children: ["+", this._overflowSize] }) })] }) })] }));
8
+ : _jsx(MediaGalleryItem, { _interactive: this.interactiveDisplayArea, _square: this._shouldHaveSquareDisplay, tabIndex: this._mainItemTabIndex }) }) }), this._showThumbnails && _jsx("div", { class: "ui5-media-gallery-thumbnails-wrapper", children: _jsxs("ul", { role: "listbox", children: [this._visibleItems.map(item => _jsx("li", { id: item.id, class: "ui5-media-gallery-thumbnail", role: "option", "aria-checked": item.selected, onClick: this._onThumbnailClick, children: _jsx("slot", { name: item._individualSlot }) })), this._showOverflowBtn && _jsx("li", { class: "ui5-media-gallery-overflow", role: "option", "aria-checked": "false", children: _jsxs(Button, { onClick: this._onOverflowBtnClick, children: ["+", this._overflowSize] }) })] }) })] }));
9
9
  }
10
10
  //# sourceMappingURL=MediaGalleryTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MediaGalleryTemplate.js","sourceRoot":"","sources":["../src/MediaGalleryTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,QAAQ,MAAM,qCAAqC,CAAC;AAC3D,OAAO,MAAM,MAAM,mCAAmC,CAAC;AAEvD,MAAM,CAAC,OAAO,UAAU,oBAAoB;IAC3C,OAAO,CACN,eAAK,KAAK,EAAC,wBAAwB,aAClC,cAAK,KAAK,EAAC,mCAAmC,YAC7C,cAAK,KAAK,EAAC,2BAA2B,EACrC,OAAO,EAAE,IAAI,CAAC,mBAAmB,YAChC,IAAI,CAAC,gBAAgB;wBACrB,CAAC,CAAC,KAAC,QAAQ,IACV,UAAU,EAAE,IAAI,CAAC,mBAAmB,EACpC,oBAAoB,EAAE,IAAI,YAEzB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACjC,eAAM,IAAI,EAAE,IAAI,CAAC,eAAe,GAAS,CACzC,GACS;wBACX,CAAC,CAAC,KAAC,gBAAgB,IAClB,YAAY,EAAE,IAAI,CAAC,sBAAsB,EACzC,OAAO,EAAE,IAAI,CAAC,wBAAwB,EACtC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,GACb,GAEhB,GACD,EAEL,IAAI,CAAC,eAAe,IAAI,cAAK,KAAK,EAAC,sCAAsC,YACzE,yBACE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAC9B,aAAI,EAAE,EAAE,IAAI,CAAC,EAAE,EACd,KAAK,EAAC,6BAA6B,EACnC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,IAAI,CAAC,iBAAiB,YAE/B,eAAM,IAAI,EAAE,IAAI,CAAC,eAAe,GAAS,GACrC,CACL,EACA,IAAI,CAAC,gBAAgB,IAAI,aAAI,KAAK,EAAC,4BAA4B,YAC/D,MAAC,MAAM,IAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,kBACtC,IAAI,CAAC,aAAa,IACZ,GACL,IACD,GACA,IACD,CACN,CAAC;AACH,CAAC","sourcesContent":["import type MediaGallery from \"./MediaGallery.js\";\nimport MediaGalleryItem from \"./MediaGalleryItem.js\";\nimport Carousel from \"@ui5/webcomponents/dist/Carousel.js\";\nimport Button from \"@ui5/webcomponents/dist/Button.js\";\n\nexport default function MediaGalleryTemplate(this: MediaGallery) {\n\treturn (\n\t\t<div class=\"ui5-media-gallery-root\">\n\t\t\t<div class=\"ui5-media-gallery-display-wrapper\">\n\t\t\t\t<div class=\"ui5-media-gallery-display\"\n\t\t\t\t\tonClick={this._onDisplayAreaClick}>\n\t\t\t\t\t{this._isPhonePlatform\n\t\t\t\t\t\t? <Carousel\n\t\t\t\t\t\t\tonNavigate={this._onCarouselNavigate}\n\t\t\t\t\t\t\thideNavigationArrows={true}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{this._selectableItems.map(item =>\n\t\t\t\t\t\t\t\t<slot name={item._individualSlot}></slot>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Carousel>\n\t\t\t\t\t\t: <MediaGalleryItem\n\t\t\t\t\t\t\t_interactive={this.interactiveDisplayArea}\n\t\t\t\t\t\t\t_square={this._shouldHaveSquareDisplay}\n\t\t\t\t\t\t\ttabIndex={this._mainItemTabIndex}\n\t\t\t\t\t\t></MediaGalleryItem>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{this._showThumbnails && <div class=\"ui5-media-gallery-thumbnails-wrapper\">\n\t\t\t\t<ul>\n\t\t\t\t\t{this._visibleItems.map(item =>\n\t\t\t\t\t\t<li id={item.id}\n\t\t\t\t\t\t\tclass=\"ui5-media-gallery-thumbnail\"\n\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\tonClick={this._onThumbnailClick}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<slot name={item._individualSlot}></slot>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t)}\n\t\t\t\t\t{this._showOverflowBtn && <li class=\"ui5-media-gallery-overflow\">\n\t\t\t\t\t\t<Button onClick={this._onOverflowBtnClick}>\n\t\t\t\t\t\t\t+{this._overflowSize}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</li>}\n\t\t\t\t</ul>\n\t\t\t</div>}\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"file":"MediaGalleryTemplate.js","sourceRoot":"","sources":["../src/MediaGalleryTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,QAAQ,MAAM,qCAAqC,CAAC;AAC3D,OAAO,MAAM,MAAM,mCAAmC,CAAC;AAEvD,MAAM,CAAC,OAAO,UAAU,oBAAoB;IAC3C,OAAO,CACN,eAAK,KAAK,EAAC,wBAAwB,aAClC,cAAK,KAAK,EAAC,mCAAmC,YAC7C,cAAK,KAAK,EAAC,2BAA2B,EACrC,OAAO,EAAE,IAAI,CAAC,mBAAmB,YAChC,IAAI,CAAC,gBAAgB;wBACrB,CAAC,CAAC,KAAC,QAAQ,IACV,UAAU,EAAE,IAAI,CAAC,mBAAmB,EACpC,oBAAoB,EAAE,IAAI,YAEzB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACjC,eAAM,IAAI,EAAE,IAAI,CAAC,eAAe,GAAS,CACzC,GACS;wBACX,CAAC,CAAC,KAAC,gBAAgB,IAClB,YAAY,EAAE,IAAI,CAAC,sBAAsB,EACzC,OAAO,EAAE,IAAI,CAAC,wBAAwB,EACtC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,GACb,GAEhB,GACD,EAEL,IAAI,CAAC,eAAe,IAAI,cAAK,KAAK,EAAC,sCAAsC,YACzE,cAAI,IAAI,EAAC,SAAS,aAChB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAC9B,aAAI,EAAE,EAAE,IAAI,CAAC,EAAE,EACd,KAAK,EAAC,6BAA6B,EACnC,IAAI,EAAC,QAAQ,kBACC,IAAI,CAAC,QAAQ,EAC3B,OAAO,EAAE,IAAI,CAAC,iBAAiB,YAE/B,eAAM,IAAI,EAAE,IAAI,CAAC,eAAe,GAAS,GACrC,CACL,EACA,IAAI,CAAC,gBAAgB,IAAI,aAAI,KAAK,EAAC,4BAA4B,EAC/D,IAAI,EAAC,QAAQ,kBACA,OAAO,YAEpB,MAAC,MAAM,IAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,kBACtC,IAAI,CAAC,aAAa,IACZ,GACL,IACD,GACA,IACD,CACN,CAAC;AACH,CAAC","sourcesContent":["import type MediaGallery from \"./MediaGallery.js\";\nimport MediaGalleryItem from \"./MediaGalleryItem.js\";\nimport Carousel from \"@ui5/webcomponents/dist/Carousel.js\";\nimport Button from \"@ui5/webcomponents/dist/Button.js\";\n\nexport default function MediaGalleryTemplate(this: MediaGallery) {\n\treturn (\n\t\t<div class=\"ui5-media-gallery-root\">\n\t\t\t<div class=\"ui5-media-gallery-display-wrapper\">\n\t\t\t\t<div class=\"ui5-media-gallery-display\"\n\t\t\t\t\tonClick={this._onDisplayAreaClick}>\n\t\t\t\t\t{this._isPhonePlatform\n\t\t\t\t\t\t? <Carousel\n\t\t\t\t\t\t\tonNavigate={this._onCarouselNavigate}\n\t\t\t\t\t\t\thideNavigationArrows={true}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{this._selectableItems.map(item =>\n\t\t\t\t\t\t\t\t<slot name={item._individualSlot}></slot>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Carousel>\n\t\t\t\t\t\t: <MediaGalleryItem\n\t\t\t\t\t\t\t_interactive={this.interactiveDisplayArea}\n\t\t\t\t\t\t\t_square={this._shouldHaveSquareDisplay}\n\t\t\t\t\t\t\ttabIndex={this._mainItemTabIndex}\n\t\t\t\t\t\t></MediaGalleryItem>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{this._showThumbnails && <div class=\"ui5-media-gallery-thumbnails-wrapper\">\n\t\t\t\t<ul role=\"listbox\">\n\t\t\t\t\t{this._visibleItems.map(item =>\n\t\t\t\t\t\t<li id={item.id}\n\t\t\t\t\t\t\tclass=\"ui5-media-gallery-thumbnail\"\n\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\taria-checked={item.selected}\n\t\t\t\t\t\t\tonClick={this._onThumbnailClick}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<slot name={item._individualSlot}></slot>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t)}\n\t\t\t\t\t{this._showOverflowBtn && <li class=\"ui5-media-gallery-overflow\"\n\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\taria-checked=\"false\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button onClick={this._onOverflowBtnClick}>\n\t\t\t\t\t\t\t+{this._overflowSize}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</li>}\n\t\t\t\t</ul>\n\t\t\t</div>}\n\t\t</div>\n\t);\n}\n"]}
package/dist/ShellBar.js CHANGED
@@ -463,6 +463,7 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
463
463
  getSearchState: () => this.enabledFeatures.search && this.showSearchField,
464
464
  getCSSVariable: (cssVar) => this.getCSSVariable(cssVar),
465
465
  setSearchState: (expanded) => this.setSearchState(expanded),
466
+ handleSearchButtonClick: () => this.handleSearchButtonClick(),
466
467
  getOverflowed: () => this.overflow.isOverflowing(this.overflowOuter, this.overflowInner),
467
468
  };
468
469
  }
@@ -473,7 +474,9 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
473
474
  return this._searchAdaptorLegacy;
474
475
  }
475
476
  handleSearchButtonClick() {
476
- const searchButton = this.shadowRoot.querySelector(".ui5-shellbar-search-button");
477
+ const searchButton = this.isSelfCollapsibleSearch
478
+ ? this.search?.shadowRoot?.querySelector(".ui5-shell-search-field-button") ?? null
479
+ : this.shadowRoot.querySelector(".ui5-shellbar-search-button");
477
480
  const defaultPrevented = !this.fireDecoratorEvent("search-button-click", {
478
481
  targetRef: searchButton,
479
482
  searchFieldVisible: this.showSearchField,
@@ -686,6 +689,9 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
686
689
  */
687
690
  async getSearchButtonDomRef() {
688
691
  await renderFinished();
692
+ if (this.isSelfCollapsibleSearch) {
693
+ return this.search.getSearchButtonDomRef();
694
+ }
689
695
  return this.shadowRoot.querySelector(`*[data-ui5-stable="toggle-search"]`);
690
696
  }
691
697
  _fireClickEvent(eventName, domRef) {
@@ -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, { 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\tif (this.isHidden(ShellBarActions.Notifications)) {\n\t\t\treturn this.overflowDomRef;\n\t\t}\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 type ShellBarSearchComponent from \"./ShellBarSearch.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\thandleSearchButtonClick: () => this.handleSearchButtonClick(),\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.isSelfCollapsibleSearch\n\t\t\t? this.search?.shadowRoot?.querySelector<HTMLElement>(\".ui5-shell-search-field-button\") ?? null\n\t\t\t: 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\tif (this.isHidden(ShellBarActions.Notifications)) {\n\t\t\treturn this.overflowDomRef;\n\t\t}\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\tif (this.isSelfCollapsibleSearch) {\n\t\t\treturn (this.search as unknown as ShellBarSearchComponent).getSearchButtonDomRef();\n\t\t}\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"]}
@@ -21,6 +21,7 @@ declare class ShellBarSearch extends Search {
21
21
  _handleInput(e: InputEvent): void;
22
22
  get _effectiveIconTooltip(): string;
23
23
  get nativeInput(): HTMLInputElement | null | undefined;
24
+ getSearchButtonDomRef(): HTMLElement | null;
24
25
  _onfocusin(): void;
25
26
  onBeforeRendering(): void;
26
27
  }
@@ -47,6 +47,9 @@ let ShellBarSearch = ShellBarSearch_1 = class ShellBarSearch extends Search {
47
47
  }
48
48
  _handleEnter() {
49
49
  if (!this.value && !this.collapsed) {
50
+ // Fire `ui5-search` so a host ShellBar collapses in sync; also collapse
51
+ // locally for standalone usage (host converges on the same state).
52
+ this._handleSearchEvent();
50
53
  this.collapsed = true;
51
54
  setTimeout(() => {
52
55
  this.focus();
@@ -81,6 +84,9 @@ let ShellBarSearch = ShellBarSearch_1 = class ShellBarSearch extends Search {
81
84
  const domRef = this.shadowRoot;
82
85
  return isPhone() ? domRef?.querySelector(`[ui5-responsive-popover] input`) : super.nativeInput;
83
86
  }
87
+ getSearchButtonDomRef() {
88
+ return this.shadowRoot?.querySelector(".ui5-shell-search-field-button") ?? null;
89
+ }
84
90
  _onfocusin() {
85
91
  super._onfocusin();
86
92
  if (this.autoOpen) {
@@ -1 +1 @@
1
- {"version":3,"file":"ShellBarSearch.js","sourceRoot":"","sources":["../src/ShellBarSearch.ts"],"names":[],"mappings":"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","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport Search from \"./Search.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport ShellBarSearchTemplate from \"./ShellBarSearchTemplate.js\";\nimport ShellBarSearchCss from \"./generated/themes/ShellBarSearch.css.js\";\n\nimport {\n\tSEARCH_FIELD_SEARCH_ICON,\n\tSHELLBAR_SEARCH_EXPANDED,\n\tSHELLBAR_SEARCH_COLLAPSED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n * Search field for the ShellBar component.\n * @constructor\n * @extends Search\n * @public\n * @since 2.10.0\n * @experimental\n */\n@customElement({\n\ttag: \"ui5-shellbar-search\",\n\ttemplate: ShellBarSearchTemplate,\n\tstyles: [\n\t\tSearch.styles,\n\t\tShellBarSearchCss,\n\t],\n})\n\nclass ShellBarSearch extends Search {\n\t/**\n\t * Indicates whether the suggestions popover should be opened on focus.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tautoOpen = false;\n\n\t_handleSearchIconPress() {\n\t\tif (isPhone() && this.open) {\n\t\t\tthis._handleSearchEvent();\n\t\t\tthis._closePopupAndResetState();\n\t\t\treturn;\n\t\t}\n\n\t\tsuper._handleSearchIconPress();\n\n\t\tif (this.collapsed) {\n\t\t\tthis.collapsed = false;\n\t\t} else if (!this.value) {\n\t\t\tthis.collapsed = true;\n\t\t}\n\t}\n\n\t_handleEnter() {\n\t\tif (!this.value && !this.collapsed) {\n\t\t\tthis.collapsed = true;\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.focus();\n\t\t\t}, 0);\n\t\t} else {\n\t\t\tsuper._handleEnter();\n\t\t}\n\t}\n\n\t_onFocusOutSearch(e: FocusEvent) {\n\t\tif (isPhone()) {\n\t\t\treturn;\n\t\t}\n\n\t\tsuper._onFocusOutSearch(e);\n\t}\n\n\t_handleInput(e: InputEvent) {\n\t\tsuper._handleInput(e);\n\n\t\tif (isPhone()) {\n\t\t\tthis._performItemSelectionOnMobile = this._shouldPerformSelectionOnMobile(e.inputType);\n\t\t}\n\t}\n\n\tget _effectiveIconTooltip() {\n\t\tif (this.collapsed) {\n\t\t\treturn ShellBarSearch.i18nBundle.getText(SHELLBAR_SEARCH_COLLAPSED);\n\t\t}\n\n\t\tif (this.value) {\n\t\t\treturn ShellBarSearch.i18nBundle.getText(SEARCH_FIELD_SEARCH_ICON);\n\t\t}\n\n\t\treturn ShellBarSearch.i18nBundle.getText(SHELLBAR_SEARCH_EXPANDED);\n\t}\n\n\tget nativeInput() {\n\t\tconst domRef = this.shadowRoot;\n\n\t\treturn isPhone() ? domRef?.querySelector<HTMLInputElement>(`[ui5-responsive-popover] input`) : super.nativeInput;\n\t}\n\n\t_onfocusin() {\n\t\tsuper._onfocusin();\n\n\t\tif (this.autoOpen) {\n\t\t\tthis.open = true;\n\t\t\tthis.fireDecoratorEvent(\"open\");\n\t\t}\n\t}\n\n\tonBeforeRendering(): void {\n\t\tsuper.onBeforeRendering();\n\n\t\tif (isPhone()) {\n\t\t\tthis.collapsed = true;\n\t\t}\n\t}\n}\n\nShellBarSearch.define();\n\nexport default ShellBarSearch;\n"]}
1
+ {"version":3,"file":"ShellBarSearch.js","sourceRoot":"","sources":["../src/ShellBarSearch.ts"],"names":[],"mappings":"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","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport Search from \"./Search.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport ShellBarSearchTemplate from \"./ShellBarSearchTemplate.js\";\nimport ShellBarSearchCss from \"./generated/themes/ShellBarSearch.css.js\";\n\nimport {\n\tSEARCH_FIELD_SEARCH_ICON,\n\tSHELLBAR_SEARCH_EXPANDED,\n\tSHELLBAR_SEARCH_COLLAPSED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n * Search field for the ShellBar component.\n * @constructor\n * @extends Search\n * @public\n * @since 2.10.0\n * @experimental\n */\n@customElement({\n\ttag: \"ui5-shellbar-search\",\n\ttemplate: ShellBarSearchTemplate,\n\tstyles: [\n\t\tSearch.styles,\n\t\tShellBarSearchCss,\n\t],\n})\n\nclass ShellBarSearch extends Search {\n\t/**\n\t * Indicates whether the suggestions popover should be opened on focus.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tautoOpen = false;\n\n\t_handleSearchIconPress() {\n\t\tif (isPhone() && this.open) {\n\t\t\tthis._handleSearchEvent();\n\t\t\tthis._closePopupAndResetState();\n\t\t\treturn;\n\t\t}\n\n\t\tsuper._handleSearchIconPress();\n\n\t\tif (this.collapsed) {\n\t\t\tthis.collapsed = false;\n\t\t} else if (!this.value) {\n\t\t\tthis.collapsed = true;\n\t\t}\n\t}\n\n\t_handleEnter() {\n\t\tif (!this.value && !this.collapsed) {\n\t\t\t// Fire `ui5-search` so a host ShellBar collapses in sync; also collapse\n\t\t\t// locally for standalone usage (host converges on the same state).\n\t\t\tthis._handleSearchEvent();\n\t\t\tthis.collapsed = true;\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.focus();\n\t\t\t}, 0);\n\t\t} else {\n\t\t\tsuper._handleEnter();\n\t\t}\n\t}\n\n\t_onFocusOutSearch(e: FocusEvent) {\n\t\tif (isPhone()) {\n\t\t\treturn;\n\t\t}\n\n\t\tsuper._onFocusOutSearch(e);\n\t}\n\n\t_handleInput(e: InputEvent) {\n\t\tsuper._handleInput(e);\n\n\t\tif (isPhone()) {\n\t\t\tthis._performItemSelectionOnMobile = this._shouldPerformSelectionOnMobile(e.inputType);\n\t\t}\n\t}\n\n\tget _effectiveIconTooltip() {\n\t\tif (this.collapsed) {\n\t\t\treturn ShellBarSearch.i18nBundle.getText(SHELLBAR_SEARCH_COLLAPSED);\n\t\t}\n\n\t\tif (this.value) {\n\t\t\treturn ShellBarSearch.i18nBundle.getText(SEARCH_FIELD_SEARCH_ICON);\n\t\t}\n\n\t\treturn ShellBarSearch.i18nBundle.getText(SHELLBAR_SEARCH_EXPANDED);\n\t}\n\n\tget nativeInput() {\n\t\tconst domRef = this.shadowRoot;\n\n\t\treturn isPhone() ? domRef?.querySelector<HTMLInputElement>(`[ui5-responsive-popover] input`) : super.nativeInput;\n\t}\n\n\tgetSearchButtonDomRef(): HTMLElement | null {\n\t\treturn this.shadowRoot?.querySelector<HTMLElement>(\".ui5-shell-search-field-button\") ?? null;\n\t}\n\n\t_onfocusin() {\n\t\tsuper._onfocusin();\n\n\t\tif (this.autoOpen) {\n\t\t\tthis.open = true;\n\t\t\tthis.fireDecoratorEvent(\"open\");\n\t\t}\n\t}\n\n\tonBeforeRendering(): void {\n\t\tsuper.onBeforeRendering();\n\n\t\tif (isPhone()) {\n\t\t\tthis.collapsed = true;\n\t\t}\n\t}\n}\n\nShellBarSearch.define();\n\nexport default ShellBarSearch;\n"]}
@@ -46,10 +46,10 @@ class UserSettingsAccountView extends UserSettingsView {
46
46
  this.fireDecoratorEvent("manage-account-click");
47
47
  }
48
48
  get _manageAccountButtonText() {
49
- return UserSettingsAccountView_1.i18nBundle.getText(USER_SETTINGS_ACCOUNT_MANAGE_ACCOUNT_BUTTON_TXT);
49
+ return UserSettingsAccountView_1.i18nBundle?.getText(USER_SETTINGS_ACCOUNT_MANAGE_ACCOUNT_BUTTON_TXT);
50
50
  }
51
51
  get _editAvatarTooltip() {
52
- return UserSettingsAccountView_1.i18nBundle.getText(USER_SETTINGS_ACCOUNT_EDIT_AVATAR_TXT);
52
+ return UserSettingsAccountView_1.i18nBundle?.getText(USER_SETTINGS_ACCOUNT_EDIT_AVATAR_TXT);
53
53
  }
54
54
  get _account() {
55
55
  return this?.account?.[0];
@@ -1 +1 @@
1
- {"version":3,"file":"UserSettingsAccountView.js","sourceRoot":"","sources":["../src/UserSettingsAccountView.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,+BAA+B,MAAM,sCAAsC,CAAC;AACnF,OAAO,EACN,aAAa,EAAE,UAAU,IAAI,IAAI,EAAE,WAAW,IAAI,KAAK,EAAE,QAAQ,GACjE,MAAM,4CAA4C,CAAC;AACpD,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAE/E,OAAO,kBAAkB,MAAM,4CAA4C,CAAC;AAC5E,OAAO,0BAA0B,MAAM,mDAAmD,CAAC;AAG3F,QAAQ;AACR,OAAO,EACN,qCAAqC,EACrC,+CAA+C,GAC/C,MAAM,mCAAmC,CAAC;AAC3C,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAgCnE,IAAM,uBAAuB;AAX7B;;;;;;;;;;GAUG;AACH,MAAM,uBAAwB,SAAQ,gBAAgB;IAAtD;;QAmBC;;;;;WAKG;QAEH,sBAAiB,GAAG,KAAK,CAAC;IA0B3B,CAAC;IArBA,sBAAsB,CAAC,CAAc;QACpC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;QAChD,CAAC;IACF,CAAC;IAED,yBAAyB;QACxB,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,wBAAwB;QAC3B,OAAO,yBAAuB,CAAC,UAAU,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC;IACpG,CAAC;IAED,IAAI,kBAAkB;QACrB,OAAO,yBAAuB,CAAC,UAAU,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;IAC1F,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;CACD,CAAA;AAnCA;IAPC,IAAI,CAAC;QACL,IAAI,EAAE,WAAW;QACjB,uBAAuB,EAAE;YACxB,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,KAAK;SACZ;KACD,CAAC;wDAC8B;AAShC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kEACF;AAGnB;IADN,IAAI,CAAC,0BAA0B,CAAC;iDACH;AA7BzB,uBAAuB;IA7B5B,aAAa,CAAC;QACd,GAAG,EAAE,gCAAgC;QACrC,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,+BAA+B;QACzC,MAAM,EAAE,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;KACxD,CAAC;IACF;;;OAGG;;IACF,KAAK,CAAC,qBAAqB,CAAC;IAE7B;;;OAGG;;IACF,KAAK,CAAC,sBAAsB,CAAC;IAE9B;;;;;;;;;;OAUG;GACG,uBAAuB,CAoD5B;AAED,uBAAuB,CAAC,MAAM,EAAE,CAAC;AACjC,eAAe,uBAAuB,CAAC","sourcesContent":["import UserSettingsView from \"./UserSettingsView.js\";\nimport UserSettingsAccountViewTemplate from \"./UserSettingsAccountViewTemplate.js\";\nimport {\n\tcustomElement, slotStrict as slot, eventStrict as event, property,\n} from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport UserSettingViewCss from \"./generated/themes/UserSettingsView.css.js\";\nimport UserSettingsAccountViewCss from \"./generated/themes/UserSettingsAccountView.css.js\";\nimport type UserMenuAccount from \"./UserMenuAccount.js\";\n\n// Texts\nimport {\n\tUSER_SETTINGS_ACCOUNT_EDIT_AVATAR_TXT,\n\tUSER_SETTINGS_ACCOUNT_MANAGE_ACCOUNT_BUTTON_TXT,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type { Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\n@customElement({\n\ttag: \"ui5-user-settings-account-view\",\n\trenderer: jsxRenderer,\n\ttemplate: UserSettingsAccountViewTemplate,\n\tstyles: [UserSettingViewCss, UserSettingsAccountViewCss],\n})\n/**\n * Fired when the `Edit Accounts` button is selected.\n * @public\n */\n@event(\"edit-accounts-click\")\n\n/**\n * Fired when the `Manage Account` button is selected.\n * @public\n */\n@event(\"manage-account-click\")\n\n/**\n * @class\n * ### Overview\n *\n * The `ui5-user-settings-account-view` represents a view displayed in the `ui5-user-settings-item`.\n *\n * @constructor\n * @extends UserSettingsView\n * @public\n * @since 2.17.0\n */\nclass UserSettingsAccountView extends UserSettingsView {\n\teventDetails!: {\n\t\t\"edit-accounts-click\": void;\n\t\t\"manage-account-click\": void;\n\t}\n\t/**\n\t * Defines the user account.\n\t *\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: true,\n\t\t\tslots: false,\n\t\t},\n\t})\n\taccount!: Slot<UserMenuAccount>;\n\n\t/**\n\t * Defines if the User Menu shows the `Manage Account` option.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowManageAccount = false;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\t_handleEditAvatarClick(e: CustomEvent) {\n\t\tif (e.type === \"click\") {\n\t\t\tthis.fireDecoratorEvent(\"edit-accounts-click\");\n\t\t}\n\t}\n\n\t_handleManageAccountClick() {\n\t\tthis.fireDecoratorEvent(\"manage-account-click\");\n\t}\n\n\tget _manageAccountButtonText() {\n\t\treturn UserSettingsAccountView.i18nBundle.getText(USER_SETTINGS_ACCOUNT_MANAGE_ACCOUNT_BUTTON_TXT);\n\t}\n\n\tget _editAvatarTooltip() {\n\t\treturn UserSettingsAccountView.i18nBundle.getText(USER_SETTINGS_ACCOUNT_EDIT_AVATAR_TXT);\n\t}\n\n\tget _account() {\n\t\treturn this?.account?.[0];\n\t}\n}\n\nUserSettingsAccountView.define();\nexport default UserSettingsAccountView;\n"]}
1
+ {"version":3,"file":"UserSettingsAccountView.js","sourceRoot":"","sources":["../src/UserSettingsAccountView.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,+BAA+B,MAAM,sCAAsC,CAAC;AACnF,OAAO,EACN,aAAa,EAAE,UAAU,IAAI,IAAI,EAAE,WAAW,IAAI,KAAK,EAAE,QAAQ,GACjE,MAAM,4CAA4C,CAAC;AACpD,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAE/E,OAAO,kBAAkB,MAAM,4CAA4C,CAAC;AAC5E,OAAO,0BAA0B,MAAM,mDAAmD,CAAC;AAG3F,QAAQ;AACR,OAAO,EACN,qCAAqC,EACrC,+CAA+C,GAC/C,MAAM,mCAAmC,CAAC;AAC3C,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAgCnE,IAAM,uBAAuB;AAX7B;;;;;;;;;;GAUG;AACH,MAAM,uBAAwB,SAAQ,gBAAgB;IAAtD;;QAmBC;;;;;WAKG;QAEH,sBAAiB,GAAG,KAAK,CAAC;IA0B3B,CAAC;IArBA,sBAAsB,CAAC,CAAc;QACpC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;QAChD,CAAC;IACF,CAAC;IAED,yBAAyB;QACxB,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,wBAAwB;QAC3B,OAAO,yBAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,+CAA+C,CAAC,CAAC;IACrG,CAAC;IAED,IAAI,kBAAkB;QACrB,OAAO,yBAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,qCAAqC,CAAC,CAAC;IAC3F,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;CACD,CAAA;AAnCA;IAPC,IAAI,CAAC;QACL,IAAI,EAAE,WAAW;QACjB,uBAAuB,EAAE;YACxB,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,KAAK;SACZ;KACD,CAAC;wDAC8B;AAShC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kEACF;AAGnB;IADN,IAAI,CAAC,0BAA0B,CAAC;iDACH;AA7BzB,uBAAuB;IA7B5B,aAAa,CAAC;QACd,GAAG,EAAE,gCAAgC;QACrC,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,+BAA+B;QACzC,MAAM,EAAE,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;KACxD,CAAC;IACF;;;OAGG;;IACF,KAAK,CAAC,qBAAqB,CAAC;IAE7B;;;OAGG;;IACF,KAAK,CAAC,sBAAsB,CAAC;IAE9B;;;;;;;;;;OAUG;GACG,uBAAuB,CAoD5B;AAED,uBAAuB,CAAC,MAAM,EAAE,CAAC;AACjC,eAAe,uBAAuB,CAAC","sourcesContent":["import UserSettingsView from \"./UserSettingsView.js\";\nimport UserSettingsAccountViewTemplate from \"./UserSettingsAccountViewTemplate.js\";\nimport {\n\tcustomElement, slotStrict as slot, eventStrict as event, property,\n} from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport UserSettingViewCss from \"./generated/themes/UserSettingsView.css.js\";\nimport UserSettingsAccountViewCss from \"./generated/themes/UserSettingsAccountView.css.js\";\nimport type UserMenuAccount from \"./UserMenuAccount.js\";\n\n// Texts\nimport {\n\tUSER_SETTINGS_ACCOUNT_EDIT_AVATAR_TXT,\n\tUSER_SETTINGS_ACCOUNT_MANAGE_ACCOUNT_BUTTON_TXT,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type { Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\n@customElement({\n\ttag: \"ui5-user-settings-account-view\",\n\trenderer: jsxRenderer,\n\ttemplate: UserSettingsAccountViewTemplate,\n\tstyles: [UserSettingViewCss, UserSettingsAccountViewCss],\n})\n/**\n * Fired when the `Edit Accounts` button is selected.\n * @public\n */\n@event(\"edit-accounts-click\")\n\n/**\n * Fired when the `Manage Account` button is selected.\n * @public\n */\n@event(\"manage-account-click\")\n\n/**\n * @class\n * ### Overview\n *\n * The `ui5-user-settings-account-view` represents a view displayed in the `ui5-user-settings-item`.\n *\n * @constructor\n * @extends UserSettingsView\n * @public\n * @since 2.17.0\n */\nclass UserSettingsAccountView extends UserSettingsView {\n\teventDetails!: {\n\t\t\"edit-accounts-click\": void;\n\t\t\"manage-account-click\": void;\n\t}\n\t/**\n\t * Defines the user account.\n\t *\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: true,\n\t\t\tslots: false,\n\t\t},\n\t})\n\taccount!: Slot<UserMenuAccount>;\n\n\t/**\n\t * Defines if the User Menu shows the `Manage Account` option.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowManageAccount = false;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\t_handleEditAvatarClick(e: CustomEvent) {\n\t\tif (e.type === \"click\") {\n\t\t\tthis.fireDecoratorEvent(\"edit-accounts-click\");\n\t\t}\n\t}\n\n\t_handleManageAccountClick() {\n\t\tthis.fireDecoratorEvent(\"manage-account-click\");\n\t}\n\n\tget _manageAccountButtonText() {\n\t\treturn UserSettingsAccountView.i18nBundle?.getText(USER_SETTINGS_ACCOUNT_MANAGE_ACCOUNT_BUTTON_TXT);\n\t}\n\n\tget _editAvatarTooltip() {\n\t\treturn UserSettingsAccountView.i18nBundle?.getText(USER_SETTINGS_ACCOUNT_EDIT_AVATAR_TXT);\n\t}\n\n\tget _account() {\n\t\treturn this?.account?.[0];\n\t}\n}\n\nUserSettingsAccountView.define();\nexport default UserSettingsAccountView;\n"]}
@@ -8,6 +8,6 @@ export default function UserSettingsAppearanceViewItemTemplate() {
8
8
  });
9
9
  }
10
10
  function listItemContent() {
11
- return (_jsx("div", { class: "list-item", children: _jsxs("div", { class: "item-left", children: [_jsx(Avatar, { class: "avatar-cozy", shape: "Square", icon: this.icon, "color-scheme": this.colorScheme, size: AvatarSize.S }), _jsx(Avatar, { class: "avatar-compact", shape: "Square", icon: this.icon, "color-scheme": this.colorScheme, size: AvatarSize.XS }), _jsx("div", { class: "item-texts", children: _jsx("span", { class: "item-title", children: this.text }) })] }) }));
11
+ return (_jsx("div", { class: "list-item", children: _jsxs("div", { class: "item-left", children: [_jsx(Avatar, { shape: "Square", icon: this.icon, "color-scheme": this.colorScheme, size: AvatarSize.S }), _jsx("div", { class: "item-texts", children: _jsx("span", { class: "item-title", children: this.text }) })] }) }));
12
12
  }
13
13
  //# sourceMappingURL=UserSettingsAppearanceViewItemTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserSettingsAppearanceViewItemTemplate.js","sourceRoot":"","sources":["../src/UserSettingsAppearanceViewItemTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,sBAAsB,MAAM,mDAAmD,CAAC;AACvF,OAAO,MAAM,MAAM,mCAAmC,CAAC;AACvD,OAAO,UAAU,MAAM,6CAA6C,CAAC;AAErE,MAAM,CAAC,OAAO,UAAU,sCAAsC;IAC7D,OAAO,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE;QACxC,eAAe,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;KAC3C,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe;IACvB,OAAO,CACN,cAAK,KAAK,EAAC,WAAW,YACrB,eAAK,KAAK,EAAC,WAAW,aAErB,KAAC,MAAM,IAAC,KAAK,EAAC,aAAa,EAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,kBAAgB,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,GAAW,EACzH,KAAC,MAAM,IAAC,KAAK,EAAC,gBAAgB,EAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,kBAAgB,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,GAAW,EAC7H,cAAK,KAAK,EAAC,YAAY,YACtB,eAAM,KAAK,EAAC,YAAY,YAAE,IAAI,CAAC,IAAI,GAAQ,GACtC,IACD,GACD,CACN,CAAC;AACH,CAAC","sourcesContent":["import type UserSettingsAppearanceViewItem from \"./UserSettingsAppearanceViewItem.js\";\nimport ListItemCustomTemplate from \"@ui5/webcomponents/dist/ListItemCustomTemplate.js\";\nimport Avatar from \"@ui5/webcomponents/dist/Avatar.js\";\nimport AvatarSize from \"@ui5/webcomponents/dist/types/AvatarSize.js\";\n\nexport default function UserSettingsAppearanceViewItemTemplate(this: UserSettingsAppearanceViewItem) {\n\treturn ListItemCustomTemplate.call(this, {\n\t\tlistItemContent: listItemContent.bind(this),\n\t});\n}\n\nfunction listItemContent(this: UserSettingsAppearanceViewItem) {\n\treturn (\n\t\t<div class=\"list-item\">\n\t\t\t<div class=\"item-left\">\n\t\t\t\t{/* Two avatars are rendered for different content density modes - CSS controls visibility */}\n\t\t\t\t<Avatar class=\"avatar-cozy\" shape=\"Square\" icon={this.icon} color-scheme={this.colorScheme} size={AvatarSize.S}></Avatar>\n\t\t\t\t<Avatar class=\"avatar-compact\" shape=\"Square\" icon={this.icon} color-scheme={this.colorScheme} size={AvatarSize.XS}></Avatar>\n\t\t\t\t<div class=\"item-texts\">\n\t\t\t\t\t<span class=\"item-title\">{this.text}</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"file":"UserSettingsAppearanceViewItemTemplate.js","sourceRoot":"","sources":["../src/UserSettingsAppearanceViewItemTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,sBAAsB,MAAM,mDAAmD,CAAC;AACvF,OAAO,MAAM,MAAM,mCAAmC,CAAC;AACvD,OAAO,UAAU,MAAM,6CAA6C,CAAC;AAErE,MAAM,CAAC,OAAO,UAAU,sCAAsC;IAC7D,OAAO,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE;QACxC,eAAe,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;KAC3C,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe;IACvB,OAAO,CACN,cAAK,KAAK,EAAC,WAAW,YACrB,eAAK,KAAK,EAAC,WAAW,aACrB,KAAC,MAAM,IAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,kBAAgB,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,GAAW,EACrG,cAAK,KAAK,EAAC,YAAY,YACtB,eAAM,KAAK,EAAC,YAAY,YAAE,IAAI,CAAC,IAAI,GAAQ,GACtC,IACD,GACD,CACN,CAAC;AACH,CAAC","sourcesContent":["import type UserSettingsAppearanceViewItem from \"./UserSettingsAppearanceViewItem.js\";\nimport ListItemCustomTemplate from \"@ui5/webcomponents/dist/ListItemCustomTemplate.js\";\nimport Avatar from \"@ui5/webcomponents/dist/Avatar.js\";\nimport AvatarSize from \"@ui5/webcomponents/dist/types/AvatarSize.js\";\n\nexport default function UserSettingsAppearanceViewItemTemplate(this: UserSettingsAppearanceViewItem) {\n\treturn ListItemCustomTemplate.call(this, {\n\t\tlistItemContent: listItemContent.bind(this),\n\t});\n}\n\nfunction listItemContent(this: UserSettingsAppearanceViewItem) {\n\treturn (\n\t\t<div class=\"list-item\">\n\t\t\t<div class=\"item-left\">\n\t\t\t\t<Avatar shape=\"Square\" icon={this.icon} color-scheme={this.colorScheme} size={AvatarSize.S}></Avatar>\n\t\t\t\t<div class=\"item-texts\">\n\t\t\t\t\t<span class=\"item-title\">{this.text}</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
2
2
  import List from "@ui5/webcomponents/dist/List.js";
3
- import Title from "@ui5/webcomponents/dist/Title.js";
3
+ import ListItemGroupHeader from "@ui5/webcomponents/dist/ListItemGroupHeader.js";
4
4
  export default function UserSettingsAppearanceViewTemplate() {
5
- return (_jsx("div", { class: "ui5-user-settings-view-container", children: _jsxs("div", { class: "ui5-user-settings-view", children: [_jsx("slot", { name: "additionalContent" }), _jsxs(List, { class: "user-settings-appearance-view-list", onItemClick: this._handleItemClick, "data-sap-ui-fastnavgroup": "false", children: [this.text && _jsx(Title, { slot: "header", level: "H3", class: "user-settings-appearance-view-list-header", children: this.text }), _jsx("slot", {})] })] }) }));
5
+ return (_jsx("div", { class: "ui5-user-settings-view-container", children: _jsxs("div", { class: "ui5-user-settings-view", children: [_jsx("slot", { name: "additionalContent" }), _jsxs(List, { class: "user-settings-appearance-view-list", onItemClick: this._handleItemClick, "data-sap-ui-fastnavgroup": "false", children: [this.text && _jsx(ListItemGroupHeader, { class: "user-settings-appearance-view-top-header", children: this.text }), _jsx("slot", {})] })] }) }));
6
6
  }
7
7
  //# sourceMappingURL=UserSettingsAppearanceViewTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserSettingsAppearanceViewTemplate.js","sourceRoot":"","sources":["../src/UserSettingsAppearanceViewTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,KAAK,MAAM,kCAAkC,CAAC;AAErD,MAAM,CAAC,OAAO,UAAU,kCAAkC;IACzD,OAAO,CACN,cAAK,KAAK,EAAC,kCAAkC,YAC5C,eAAK,KAAK,EAAC,wBAAwB,aAClC,eAAM,IAAI,EAAC,mBAAmB,GAAQ,EACtC,MAAC,IAAI,IAAC,KAAK,EAAC,oCAAoC,EAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,8BAA2B,OAAO,aACnH,IAAI,CAAC,IAAI,IAAI,KAAC,KAAK,IAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,2CAA2C,YAAE,IAAI,CAAC,IAAI,GAAS,EACnH,gBAAa,IACP,IACF,GACD,CACN,CAAC;AACH,CAAC","sourcesContent":["import type UserSettingsAppearanceView from \"./UserSettingsAppearanceView.js\";\nimport List from \"@ui5/webcomponents/dist/List.js\";\nimport Title from \"@ui5/webcomponents/dist/Title.js\";\n\nexport default function UserSettingsAppearanceViewTemplate(this: UserSettingsAppearanceView) {\n\treturn (\n\t\t<div class=\"ui5-user-settings-view-container\">\n\t\t\t<div class=\"ui5-user-settings-view\">\n\t\t\t\t<slot name=\"additionalContent\"></slot>\n\t\t\t\t<List class=\"user-settings-appearance-view-list\" onItemClick={this._handleItemClick} data-sap-ui-fastnavgroup=\"false\">\n\t\t\t\t\t{this.text && <Title slot=\"header\" level=\"H3\" class=\"user-settings-appearance-view-list-header\">{this.text}</Title>}\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</List>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"file":"UserSettingsAppearanceViewTemplate.js","sourceRoot":"","sources":["../src/UserSettingsAppearanceViewTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,mBAAmB,MAAM,gDAAgD,CAAC;AAEjF,MAAM,CAAC,OAAO,UAAU,kCAAkC;IACzD,OAAO,CACN,cAAK,KAAK,EAAC,kCAAkC,YAC5C,eAAK,KAAK,EAAC,wBAAwB,aAClC,eAAM,IAAI,EAAC,mBAAmB,GAAQ,EACtC,MAAC,IAAI,IAAC,KAAK,EAAC,oCAAoC,EAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,8BAA2B,OAAO,aACnH,IAAI,CAAC,IAAI,IAAI,KAAC,mBAAmB,IAAC,KAAK,EAAC,0CAA0C,YAAE,IAAI,CAAC,IAAI,GAAuB,EACrH,gBAAa,IACP,IACF,GACD,CACN,CAAC;AACH,CAAC","sourcesContent":["import type UserSettingsAppearanceView from \"./UserSettingsAppearanceView.js\";\nimport List from \"@ui5/webcomponents/dist/List.js\";\nimport ListItemGroupHeader from \"@ui5/webcomponents/dist/ListItemGroupHeader.js\";\n\nexport default function UserSettingsAppearanceViewTemplate(this: UserSettingsAppearanceView) {\n\treturn (\n\t\t<div class=\"ui5-user-settings-view-container\">\n\t\t\t<div class=\"ui5-user-settings-view\">\n\t\t\t\t<slot name=\"additionalContent\"></slot>\n\t\t\t\t<List class=\"user-settings-appearance-view-list\" onItemClick={this._handleItemClick} data-sap-ui-fastnavgroup=\"false\">\n\t\t\t\t\t{this.text && <ListItemGroupHeader class=\"user-settings-appearance-view-top-header\">{this.text}</ListItemGroupHeader>}\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</List>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
@@ -30,6 +30,8 @@ declare class UserSettingsDialog extends UI5Element {
30
30
  "open": void;
31
31
  "before-close": UserSettingsBeforeCloseEventDetail;
32
32
  "close": void;
33
+ "save": void;
34
+ "cancel": void;
33
35
  };
34
36
  /**
35
37
  * Defines, if the User Settings Dialog is opened.
@@ -53,6 +55,18 @@ declare class UserSettingsDialog extends UI5Element {
53
55
  * @public
54
56
  */
55
57
  showSearchField: boolean;
58
+ /**
59
+ * Defines whether the dialog offers Save and Cancel actions in its footer.
60
+ *
61
+ * When true, the footer renders a Save (Emphasized) and a Cancel button
62
+ * instead of the default Close button. Save and Cancel each fire a
63
+ * corresponding event; the application is responsible for closing the
64
+ * dialog (typically after persisting or discarding the changes).
65
+ *
66
+ * @default false
67
+ * @public
68
+ */
69
+ saveMode: boolean;
56
70
  /**
57
71
  * Defines the user settings items.
58
72
  *
@@ -105,10 +119,14 @@ declare class UserSettingsDialog extends UI5Element {
105
119
  get accessibleNameText(): string;
106
120
  get ariaRoleDescList(): string;
107
121
  get closeButtonText(): string;
122
+ get saveButtonText(): string;
123
+ get cancelButtonText(): string;
108
124
  get noSearchResultsText(): string;
109
125
  get _selectedItemSlotName(): string | undefined;
110
126
  get _showSettingWithNavigation(): boolean;
111
127
  _handleCloseButtonClick(): void;
128
+ _handleSaveButtonClick(): void;
129
+ _handleCancelButtonClick(): void;
112
130
  _handleCollapseClick(): void;
113
131
  _handleInput(e: CustomEvent<InputEventDetail>): void;
114
132
  captureRef(ref: HTMLElement & {