@ui5/webcomponents-fiori 2.12.0-rc.0 → 2.12.0-rc.2

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 (235) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/DynamicPage.d.ts +2 -0
  4. package/dist/DynamicPage.js +6 -0
  5. package/dist/DynamicPage.js.map +1 -1
  6. package/dist/DynamicPageTemplate.js +1 -1
  7. package/dist/DynamicPageTemplate.js.map +1 -1
  8. package/dist/DynamicPageTitle.d.ts +1 -0
  9. package/dist/DynamicPageTitle.js +3 -0
  10. package/dist/DynamicPageTitle.js.map +1 -1
  11. package/dist/DynamicPageTitleTemplate.js +1 -1
  12. package/dist/DynamicPageTitleTemplate.js.map +1 -1
  13. package/dist/NavigationMenuItem.d.ts +2 -3
  14. package/dist/NavigationMenuItem.js +1 -14
  15. package/dist/NavigationMenuItem.js.map +1 -1
  16. package/dist/NavigationMenuTemplate.js +1 -1
  17. package/dist/NavigationMenuTemplate.js.map +1 -1
  18. package/dist/ShellBar.d.ts +11 -6
  19. package/dist/ShellBar.js +86 -52
  20. package/dist/ShellBar.js.map +1 -1
  21. package/dist/SideNavigation.d.ts +3 -1
  22. package/dist/SideNavigation.js +19 -4
  23. package/dist/SideNavigation.js.map +1 -1
  24. package/dist/SideNavigationPopoverTemplate.js +1 -1
  25. package/dist/SideNavigationPopoverTemplate.js.map +1 -1
  26. package/dist/UserMenuItem.js +2 -2
  27. package/dist/UserMenuItem.js.map +1 -1
  28. package/dist/css/themes/DynamicPage.css +1 -1
  29. package/dist/css/themes/DynamicPageHeader.css +1 -1
  30. package/dist/css/themes/DynamicPageHeaderActions.css +1 -1
  31. package/dist/css/themes/DynamicPageTitle.css +1 -1
  32. package/dist/css/themes/FlexibleColumnLayout.css +1 -1
  33. package/dist/css/themes/MediaGallery.css +1 -1
  34. package/dist/css/themes/MediaGalleryItem.css +1 -1
  35. package/dist/css/themes/NavigationMenu.css +1 -1
  36. package/dist/css/themes/NavigationMenuItem.css +1 -1
  37. package/dist/css/themes/NotificationListGroupItem.css +1 -1
  38. package/dist/css/themes/NotificationListItem.css +1 -1
  39. package/dist/css/themes/NotificationListItemBase.css +1 -1
  40. package/dist/css/themes/NotificationStateIcon.css +1 -1
  41. package/dist/css/themes/Page.css +1 -1
  42. package/dist/css/themes/ProductSwitchItem.css +1 -1
  43. package/dist/css/themes/Search.css +1 -1
  44. package/dist/css/themes/SearchField.css +1 -1
  45. package/dist/css/themes/SearchItem.css +1 -1
  46. package/dist/css/themes/ShellBar.css +1 -1
  47. package/dist/css/themes/ShellBarPopover.css +1 -1
  48. package/dist/css/themes/SideNavigation.css +1 -1
  49. package/dist/css/themes/SideNavigationGroup.css +1 -1
  50. package/dist/css/themes/SideNavigationItem.css +1 -1
  51. package/dist/css/themes/SideNavigationItemBase.css +1 -1
  52. package/dist/css/themes/SideNavigationSubItem.css +1 -1
  53. package/dist/css/themes/Timeline.css +1 -1
  54. package/dist/css/themes/TimelineGroupItem.css +1 -1
  55. package/dist/css/themes/TimelineItem.css +1 -1
  56. package/dist/css/themes/UploadCollection.css +1 -1
  57. package/dist/css/themes/UploadCollectionItem.css +1 -1
  58. package/dist/css/themes/UserMenu.css +1 -1
  59. package/dist/css/themes/UserSettingsItem.css +1 -1
  60. package/dist/css/themes/ViewSettingsDialog.css +1 -1
  61. package/dist/css/themes/Wizard.css +1 -1
  62. package/dist/css/themes/WizardTab.css +1 -1
  63. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  64. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  65. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  66. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  67. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  68. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  69. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  70. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  71. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  72. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  73. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  74. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  75. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  76. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  77. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  78. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  79. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  80. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  81. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  82. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  83. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  84. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  85. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  86. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  87. package/dist/generated/themes/DynamicPage.css.d.ts +1 -1
  88. package/dist/generated/themes/DynamicPage.css.js +1 -1
  89. package/dist/generated/themes/DynamicPage.css.js.map +1 -1
  90. package/dist/generated/themes/DynamicPageHeader.css.d.ts +1 -1
  91. package/dist/generated/themes/DynamicPageHeader.css.js +1 -1
  92. package/dist/generated/themes/DynamicPageHeader.css.js.map +1 -1
  93. package/dist/generated/themes/DynamicPageHeaderActions.css.d.ts +1 -1
  94. package/dist/generated/themes/DynamicPageHeaderActions.css.js +1 -1
  95. package/dist/generated/themes/DynamicPageHeaderActions.css.js.map +1 -1
  96. package/dist/generated/themes/DynamicPageTitle.css.d.ts +1 -1
  97. package/dist/generated/themes/DynamicPageTitle.css.js +1 -1
  98. package/dist/generated/themes/DynamicPageTitle.css.js.map +1 -1
  99. package/dist/generated/themes/FlexibleColumnLayout.css.d.ts +1 -1
  100. package/dist/generated/themes/FlexibleColumnLayout.css.js +1 -1
  101. package/dist/generated/themes/FlexibleColumnLayout.css.js.map +1 -1
  102. package/dist/generated/themes/MediaGallery.css.d.ts +1 -1
  103. package/dist/generated/themes/MediaGallery.css.js +1 -1
  104. package/dist/generated/themes/MediaGallery.css.js.map +1 -1
  105. package/dist/generated/themes/MediaGalleryItem.css.d.ts +1 -1
  106. package/dist/generated/themes/MediaGalleryItem.css.js +1 -1
  107. package/dist/generated/themes/MediaGalleryItem.css.js.map +1 -1
  108. package/dist/generated/themes/NavigationMenu.css.d.ts +1 -1
  109. package/dist/generated/themes/NavigationMenu.css.js +1 -1
  110. package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
  111. package/dist/generated/themes/NavigationMenuItem.css.d.ts +1 -1
  112. package/dist/generated/themes/NavigationMenuItem.css.js +1 -1
  113. package/dist/generated/themes/NavigationMenuItem.css.js.map +1 -1
  114. package/dist/generated/themes/NotificationListGroupItem.css.d.ts +1 -1
  115. package/dist/generated/themes/NotificationListGroupItem.css.js +1 -1
  116. package/dist/generated/themes/NotificationListGroupItem.css.js.map +1 -1
  117. package/dist/generated/themes/NotificationListItem.css.d.ts +1 -1
  118. package/dist/generated/themes/NotificationListItem.css.js +1 -1
  119. package/dist/generated/themes/NotificationListItem.css.js.map +1 -1
  120. package/dist/generated/themes/NotificationListItemBase.css.d.ts +1 -1
  121. package/dist/generated/themes/NotificationListItemBase.css.js +1 -1
  122. package/dist/generated/themes/NotificationListItemBase.css.js.map +1 -1
  123. package/dist/generated/themes/NotificationStateIcon.css.d.ts +1 -1
  124. package/dist/generated/themes/NotificationStateIcon.css.js +1 -1
  125. package/dist/generated/themes/NotificationStateIcon.css.js.map +1 -1
  126. package/dist/generated/themes/Page.css.d.ts +1 -1
  127. package/dist/generated/themes/Page.css.js +1 -1
  128. package/dist/generated/themes/Page.css.js.map +1 -1
  129. package/dist/generated/themes/ProductSwitchItem.css.d.ts +1 -1
  130. package/dist/generated/themes/ProductSwitchItem.css.js +1 -1
  131. package/dist/generated/themes/ProductSwitchItem.css.js.map +1 -1
  132. package/dist/generated/themes/Search.css.d.ts +1 -1
  133. package/dist/generated/themes/Search.css.js +1 -1
  134. package/dist/generated/themes/Search.css.js.map +1 -1
  135. package/dist/generated/themes/SearchField.css.d.ts +1 -1
  136. package/dist/generated/themes/SearchField.css.js +1 -1
  137. package/dist/generated/themes/SearchField.css.js.map +1 -1
  138. package/dist/generated/themes/SearchItem.css.d.ts +1 -1
  139. package/dist/generated/themes/SearchItem.css.js +1 -1
  140. package/dist/generated/themes/SearchItem.css.js.map +1 -1
  141. package/dist/generated/themes/ShellBar.css.d.ts +1 -1
  142. package/dist/generated/themes/ShellBar.css.js +1 -1
  143. package/dist/generated/themes/ShellBar.css.js.map +1 -1
  144. package/dist/generated/themes/ShellBarPopover.css.d.ts +1 -1
  145. package/dist/generated/themes/ShellBarPopover.css.js +1 -1
  146. package/dist/generated/themes/ShellBarPopover.css.js.map +1 -1
  147. package/dist/generated/themes/SideNavigation.css.d.ts +1 -1
  148. package/dist/generated/themes/SideNavigation.css.js +1 -1
  149. package/dist/generated/themes/SideNavigation.css.js.map +1 -1
  150. package/dist/generated/themes/SideNavigationGroup.css.d.ts +1 -1
  151. package/dist/generated/themes/SideNavigationGroup.css.js +1 -1
  152. package/dist/generated/themes/SideNavigationGroup.css.js.map +1 -1
  153. package/dist/generated/themes/SideNavigationItem.css.d.ts +1 -1
  154. package/dist/generated/themes/SideNavigationItem.css.js +1 -1
  155. package/dist/generated/themes/SideNavigationItem.css.js.map +1 -1
  156. package/dist/generated/themes/SideNavigationItemBase.css.d.ts +1 -1
  157. package/dist/generated/themes/SideNavigationItemBase.css.js +1 -1
  158. package/dist/generated/themes/SideNavigationItemBase.css.js.map +1 -1
  159. package/dist/generated/themes/SideNavigationSubItem.css.d.ts +1 -1
  160. package/dist/generated/themes/SideNavigationSubItem.css.js +1 -1
  161. package/dist/generated/themes/SideNavigationSubItem.css.js.map +1 -1
  162. package/dist/generated/themes/Timeline.css.d.ts +1 -1
  163. package/dist/generated/themes/Timeline.css.js +1 -1
  164. package/dist/generated/themes/Timeline.css.js.map +1 -1
  165. package/dist/generated/themes/TimelineGroupItem.css.d.ts +1 -1
  166. package/dist/generated/themes/TimelineGroupItem.css.js +1 -1
  167. package/dist/generated/themes/TimelineGroupItem.css.js.map +1 -1
  168. package/dist/generated/themes/TimelineItem.css.d.ts +1 -1
  169. package/dist/generated/themes/TimelineItem.css.js +1 -1
  170. package/dist/generated/themes/TimelineItem.css.js.map +1 -1
  171. package/dist/generated/themes/UploadCollection.css.d.ts +1 -1
  172. package/dist/generated/themes/UploadCollection.css.js +1 -1
  173. package/dist/generated/themes/UploadCollection.css.js.map +1 -1
  174. package/dist/generated/themes/UploadCollectionItem.css.d.ts +1 -1
  175. package/dist/generated/themes/UploadCollectionItem.css.js +1 -1
  176. package/dist/generated/themes/UploadCollectionItem.css.js.map +1 -1
  177. package/dist/generated/themes/UserMenu.css.d.ts +1 -1
  178. package/dist/generated/themes/UserMenu.css.js +1 -1
  179. package/dist/generated/themes/UserMenu.css.js.map +1 -1
  180. package/dist/generated/themes/UserSettingsItem.css.d.ts +1 -1
  181. package/dist/generated/themes/UserSettingsItem.css.js +1 -1
  182. package/dist/generated/themes/UserSettingsItem.css.js.map +1 -1
  183. package/dist/generated/themes/ViewSettingsDialog.css.d.ts +1 -1
  184. package/dist/generated/themes/ViewSettingsDialog.css.js +1 -1
  185. package/dist/generated/themes/ViewSettingsDialog.css.js.map +1 -1
  186. package/dist/generated/themes/Wizard.css.d.ts +1 -1
  187. package/dist/generated/themes/Wizard.css.js +1 -1
  188. package/dist/generated/themes/Wizard.css.js.map +1 -1
  189. package/dist/generated/themes/WizardTab.css.d.ts +1 -1
  190. package/dist/generated/themes/WizardTab.css.js +1 -1
  191. package/dist/generated/themes/WizardTab.css.js.map +1 -1
  192. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  193. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  194. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  195. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  196. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  197. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  198. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  199. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  200. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  201. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  202. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  203. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  204. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  205. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  206. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  207. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  208. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  209. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  210. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.d.ts +1 -1
  211. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  212. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  213. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.d.ts +1 -1
  214. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  215. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  216. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  217. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  218. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  219. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.d.ts +1 -1
  220. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  221. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  222. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  223. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  224. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  225. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.d.ts +1 -1
  226. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  227. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  228. package/dist/web-types.json +1 -1
  229. package/package.json +8 -8
  230. package/src/DynamicPageTemplate.tsx +2 -2
  231. package/src/DynamicPageTitleTemplate.tsx +1 -1
  232. package/src/NavigationMenuTemplate.tsx +0 -1
  233. package/src/SideNavigationPopoverTemplate.tsx +1 -0
  234. package/src/themes/ShellBar.css +0 -2
  235. package/src/themes/WizardTab.css +1 -0
@@ -136,6 +136,8 @@ declare class DynamicPage extends UI5Element {
136
136
  get hasHeading(): boolean;
137
137
  get headerSnapped(): boolean;
138
138
  get hasSnappedTitleOnMobile(): number | false | undefined;
139
+ get headerAriaLabel(): string | undefined;
140
+ get headerAriaExpanded(): boolean | undefined;
139
141
  /**
140
142
  * Defines if the header is snapped.
141
143
  *
@@ -179,6 +179,12 @@ let DynamicPage = DynamicPage_1 = class DynamicPage extends UI5Element {
179
179
  get hasSnappedTitleOnMobile() {
180
180
  return isPhone() && this.headerSnapped && this.dynamicPageTitle?.snappedTitleOnMobile.length;
181
181
  }
182
+ get headerAriaLabel() {
183
+ return this.hasHeading ? this._headerLabel : undefined;
184
+ }
185
+ get headerAriaExpanded() {
186
+ return this.hasHeading ? this._headerExpanded : undefined;
187
+ }
182
188
  /**
183
189
  * Defines if the header is snapped.
184
190
  *
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicPage.js","sourceRoot":"","sources":["../src/DynamicPage.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element 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.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\n\nimport debounce from \"@ui5/webcomponents-base/dist/util/debounce.js\";\n\n// Template\nimport DynamicPageTemplate from \"./DynamicPageTemplate.js\";\n\n// Styles\nimport DynamicPageCss from \"./generated/themes/DynamicPage.css.js\";\n\nimport DynamicPageHeader from \"./DynamicPageHeader.js\";\nimport DynamicPageTitle from \"./DynamicPageTitle.js\";\nimport type DynamicPageHeaderActions from \"./DynamicPageHeaderActions.js\";\n\n// Texts\nimport {\n\tDYNAMIC_PAGE_ARIA_LABEL_EXPANDED_HEADER,\n\tDYNAMIC_PAGE_ARIA_LABEL_SNAPPED_HEADER,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nconst SCROLL_DEBOUNCE_RATE = 5; // ms\nconst SCROLL_THRESHOLD = 10; // px\n/**\n * @class\n *\n * ### Overview\n *\n * A layout component, representing a web page, consisting of a title, header with dynamic behavior, a content area, and an optional floating footer.\n *\n * The component consist of several components:\n *\n * - `DynamicPageTitle` - a component, holding the title of the page, the navigation actions and the content. The displayed content changes based on the current mode of the `DynamicPageHeader`.\n * - `DynamicPageHeader` - a generic container, which can contain a single layout component and any other HTML elements. The header works in two modes - expanded and snapped and its behavior can be adjusted with the help of different properties.\n * - `Content area` - a generic container, which can have a single UI5 layout.\n * - `Footer` - positioned at the bottom with a small offset and used for additional actions, the footer floats above the content.\n *\n * ### Usage\n *\n * Use the `DynamicPage` if you need to have a title, that is always visible\n * and a header, that has configurable Expanding/Snapping functionality.\n * If you don't need the Expanding/Snapping functionality it is better to use the\n * `ui5-page` as a lighter component.\n *\n * The app can add to the `default` slot of the ui5-dynamic-page either content that is designed to fit its container (e.g. has 100% height),\n * or content with own height that may overflow its container. In the second case the `DynamicPage` will show a scrollbar that allows the user\n * scroll through the content.\n *\n * ## Notes:\n *\n * - Snapping of the `DynamicPageTitle` is not supported in the following case:\n * - When the `DynamicPage` has a scroll bar, the component usually scrolls to the snapping point - the point, where the `DynamicPageHeader` is scrolled out completely. However, when there is a scroll bar, but not enough content to reach the snapping point, the snapping is not possible using scrolling.\n *\n * ### Responsive Behavior\n *\n * Dynamic page web component implements the responsive paddings design.\n *\n * ### Keyboard Handling\n *\n *\n * ### Basic Navigation\n *\n * - [SPACE, ENTER, RETURN] - If focus is on a button inside DynamicPageTitle its action is being triggered, once activated.\n * If focus is on the snap header button (arrow button), or on the header itself, once activated, it triggers the associated action (such as snap/expand the header).\n * If focus is on pin button (the button with pin icon on the bottom of the header), once activated, it triggers the associated action (pinning of the header).\n *\n * ### Fast Navigation\n * - This component provides a build in fast navigation group which can be used via `F6 / Shift + F6` or ` Ctrl + Alt(Option) + Down / Ctrl + Alt(Option) + Up`.\n * In order to use this functionality, you need to import the following module:\n *\n * - `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/DynamicPage.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @since 2.0.0\n * @public\n * @csspart content - Used to style the content of the component\n * @csspart fit-content - Used to style the fit content container of the component.\n * @csspart footer - Used to style the footer of the component\n */\n@customElement({\n\ttag: \"ui5-dynamic-page\",\n\trenderer: jsxRenderer,\n\tstyles: DynamicPageCss,\n\ttemplate: DynamicPageTemplate,\n})\n\n/**\n * Fired when the pin header button is toggled.\n *\n * @public\n */\n@event(\"pin-button-toggle\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the expand/collapse area of the title is toggled.\n *\n * @public\n */\n@event(\"title-toggle\", {\n\tbubbles: true,\n})\n\nclass DynamicPage extends UI5Element {\n\teventDetails!: {\n\t\t\"pin-button-toggle\": void;\n\t\t\"title-toggle\": void;\n\t}\n\t/**\n\t * Defines if the pin button is hidden.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thidePinButton = false;\n\n\t/**\n\t * Defines if the header is pinned.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\theaderPinned = false;\n\n\t/**\n\t * Defines if the footer is shown.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowFooter = false;\n\n\t/**\n\t * Defines the content of the Dynamic Page.\n\t *\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement })\n\tcontent!: HTMLElement[];\n\n\t/**\n\t * Defines the title HTML Element.\n\t *\n\t * @public\n\t */\n\t@slot({ type: DynamicPageTitle })\n\ttitleArea!: Array<DynamicPageTitle>;\n\n\t/**\n\t * Defines the header HTML Element.\n\t *\n\t * @public\n\t */\n\t@slot({ type: DynamicPageHeader })\n\theaderArea!: Array<DynamicPageHeader>;\n\n\t/**\n\t * Defines the footer HTML Element.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tfooterArea!: HTMLElement[];\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\tskipSnapOnScroll = false;\n\tshowHeaderInStickArea = false;\n\tisToggled = false;\n\n\t@property({ type: Boolean })\n\t_headerSnapped = false;\n\n\t@query(\".ui5-dynamic-page-scroll-container\")\n\tscrollContainer?: HTMLElement;\n\n\t@query(\"[ui5-dynamic-page-header-actions]\")\n\theaderActions?: DynamicPageHeaderActions;\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tonBeforeRendering() {\n\t\tif (this.dynamicPageTitle) {\n\t\t\tthis.dynamicPageTitle.snapped = this._headerSnapped;\n\t\t\tthis.dynamicPageTitle.interactive = this.hasHeading;\n\t\t\tthis.dynamicPageTitle.hasSnappedTitleOnMobile = !!this.hasSnappedTitleOnMobile;\n\t\t\tthis.dynamicPageTitle.removeAttribute(\"hovered\");\n\t\t}\n\t\tconst titleHeight = this.dynamicPageTitle?.getBoundingClientRect().height || 0;\n\t\tconst headerHeight = this.dynamicPageHeader?.getBoundingClientRect().height || 0;\n\t\tconst footerHeight = this.showFooter ? this.footerWrapper?.getBoundingClientRect().height : 0;\n\n\t\tif (this.scrollContainer) {\n\t\t\tthis.scrollContainer.style.setProperty(\"scroll-padding-block-end\", `${footerHeight}px`);\n\n\t\t\tif (this._headerSnapped) {\n\t\t\t this.scrollContainer.style.setProperty(\"scroll-padding-block-start\", `${titleHeight}px`);\n\t\t\t} else {\n\t\t\t this.scrollContainer.style.setProperty(\"scroll-padding-block-start\", `${headerHeight + titleHeight}px`);\n\t\t\t}\n\t\t}\n\t}\n\n\tget dynamicPageTitle(): DynamicPageTitle | null {\n\t\treturn this.querySelector<DynamicPageTitle>(\"[ui5-dynamic-page-title]\");\n\t}\n\n\tget dynamicPageHeader(): DynamicPageHeader | null {\n\t\treturn this.querySelector<DynamicPageHeader>(\"[ui5-dynamic-page-header]\");\n\t}\n\n\tget footerWrapper() {\n\t\treturn this.shadowRoot?.querySelector(\".ui5-dynamic-page-footer\");\n\t}\n\n\tget actionsInTitle(): boolean {\n\t\treturn this._headerSnapped || this.showHeaderInStickArea || this.headerPinned;\n\t}\n\n\tget headerInTitle(): boolean {\n\t\treturn !this._headerSnapped && (this.showHeaderInStickArea || this.headerPinned);\n\t}\n\n\tget headerInContent(): boolean {\n\t\treturn !this.showHeaderInStickArea && !this.headerInTitle && !this.hasSnappedTitleOnMobile;\n\t}\n\n\tget _headerLabel() {\n\t\treturn this._headerSnapped\n\t\t\t? DynamicPage.i18nBundle.getText(DYNAMIC_PAGE_ARIA_LABEL_SNAPPED_HEADER)\n\t\t\t: DynamicPage.i18nBundle.getText(DYNAMIC_PAGE_ARIA_LABEL_EXPANDED_HEADER);\n\t}\n\n\tget _headerExpanded() {\n\t\treturn !this._headerSnapped;\n\t}\n\n\tget headerTabIndex() {\n\t\treturn (this._headerSnapped || this.showHeaderInStickArea) ? -1 : 0;\n\t}\n\n\tget headerAriaHidden() {\n\t\treturn (this._headerSnapped || this.showHeaderInStickArea);\n\t}\n\n\tget hasHeading() {\n\t\treturn this.headerArea.length > 0;\n\t}\n\n\tget headerSnapped(): boolean {\n\t\treturn this._headerSnapped;\n\t}\n\n\tget hasSnappedTitleOnMobile() {\n\t\treturn isPhone() && this.headerSnapped && this.dynamicPageTitle?.snappedTitleOnMobile.length;\n\t}\n\n\t/**\n\t * Defines if the header is snapped.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tset headerSnapped(snapped: boolean) {\n\t\tif (snapped !== this._headerSnapped) {\n\t\t\tthis._toggleHeader();\n\t\t}\n\t}\n\n\tsnapOnScroll() {\n\t\tdebounce(() => this.snapTitleByScroll(), SCROLL_DEBOUNCE_RATE);\n\t}\n\n\tsnapTitleByScroll() {\n\t\tif (!this.dynamicPageTitle || !this.dynamicPageHeader || this.headerPinned) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.isToggled) {\n\t\t\tthis.isToggled = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.skipSnapOnScroll) {\n\t\t\tthis.skipSnapOnScroll = false;\n\t\t\treturn;\n\t\t}\n\n\t\tconst scrollTop = this.scrollContainer!.scrollTop;\n\t\tconst headerHeight = this.dynamicPageHeader.getBoundingClientRect().height;\n\t\tconst lastHeaderSnapped = this._headerSnapped;\n\n\t\tif (this._headerSnapped && scrollTop > headerHeight) {\n\t\t\tthis.showHeaderInStickArea = false;\n\t\t}\n\n\t\tconst shouldSnap = !this._headerSnapped && scrollTop > headerHeight + SCROLL_THRESHOLD;\n\t\tconst shouldExpand = this._headerSnapped && (scrollTop < headerHeight - SCROLL_THRESHOLD\n\t\t\t|| (!scrollTop && !headerHeight));\n\n\t\tif (shouldSnap) {\n\t\t\tthis.showHeaderInStickArea = false;\n\t\t\tthis._headerSnapped = true;\n\n\t\t\t//* snappedTitleOnMobile\n\t\t\t// If the header is snapped and the scroll is at the top, scroll down a bit\n\t\t\t// to avoid ending in an endless loop of snapping and unsnapping\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tif (this.scrollContainer!.scrollTop === 0) {\n\t\t\t\t\tthis.scrollContainer!.scrollTop = SCROLL_THRESHOLD;\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (shouldExpand) {\n\t\t\tthis._headerSnapped = false;\n\t\t}\n\n\t\t// Fire event if snapped state changed\n\t\tif (lastHeaderSnapped !== this._headerSnapped) {\n\t\t\tthis.fireDecoratorEvent(\"title-toggle\");\n\t\t}\n\t}\n\n\tasync onExpandClick() {\n\t\tthis.isToggled = true;\n\t\tthis._toggleHeader();\n\t\tthis.fireDecoratorEvent(\"title-toggle\");\n\t\tawait renderFinished();\n\t\tthis.headerActions?.focusExpandButton();\n\n\t\tif (this.hasSnappedTitleOnMobile) {\n\t\t\tthis.dynamicPageTitle?.focus();\n\t\t}\n\n\t\tannounce(this._headerLabel, InvisibleMessageMode.Polite);\n\t}\n\n\tasync onPinClick() {\n\t\tthis.headerPinned = !this.headerPinned;\n\t\tif (this.headerPinned) {\n\t\t\tthis.showHeaderInStickArea = true;\n\t\t} else if (this.scrollContainer!.scrollTop === 0) {\n\t\t\tthis.showHeaderInStickArea = false;\n\t\t}\n\t\tthis.fireDecoratorEvent(\"pin-button-toggle\");\n\t\tawait renderFinished();\n\t\tthis.headerActions?.focusPinButton();\n\t}\n\n\tasync onToggleTitle() {\n\t\tif (!this.hasHeading) {\n\t\t\treturn;\n\t\t}\n\t\tthis.isToggled = true;\n\t\tthis._toggleHeader();\n\t\tthis.fireDecoratorEvent(\"title-toggle\");\n\t\tawait renderFinished();\n\t\tthis.dynamicPageTitle!.focus();\n\t}\n\n\tasync _toggleHeader() {\n\t\tconst headerHeight = this.dynamicPageHeader?.getBoundingClientRect().height || 0;\n\t\tconst currentScrollTop = this.scrollContainer!.scrollTop;\n\n\t\tif (!this._headerSnapped && this.headerPinned) {\n\t\t\tthis.headerPinned = false;\n\t\t\tthis.fireDecoratorEvent(\"pin-button-toggle\");\n\t\t}\n\n\t\tif (currentScrollTop <= SCROLL_THRESHOLD) {\n\t\t\tthis._headerSnapped = !this._headerSnapped;\n\t\t\tthis.showHeaderInStickArea = this._headerSnapped;\n\t\t\treturn;\n\t\t}\n\n\t\tif (currentScrollTop > SCROLL_THRESHOLD && currentScrollTop < headerHeight) {\n\t\t\tif (!this._headerSnapped) {\n\t\t\t\tthis._headerSnapped = true;\n\t\t\t\tthis.showHeaderInStickArea = true;\n\t\t\t\tthis.scrollContainer!.scrollTop = 0;\n\t\t\t} else {\n\t\t\t\tthis.showHeaderInStickArea = false;\n\t\t\t\tthis._headerSnapped = false;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.scrollContainer!.scrollTop === SCROLL_THRESHOLD) {\n\t\t\tthis.scrollContainer!.scrollTop = 0;\n\t\t}\n\n\t\tthis.showHeaderInStickArea = !this.showHeaderInStickArea;\n\t\tthis._headerSnapped = !this._headerSnapped;\n\n\t\tthis.skipSnapOnScroll = true;\n\n\t\tawait renderFinished();\n\t\tif (this._headerSnapped && this.scrollContainer!.scrollTop < SCROLL_THRESHOLD) {\n\t\t\tthis.scrollContainer!.scrollTop = SCROLL_THRESHOLD;\n\t\t}\n\t}\n\n\tasync onExpandHoverIn() {\n\t\tthis.dynamicPageTitle?.setAttribute(\"hovered\", \"\");\n\t\tawait renderFinished();\n\t}\n\n\tasync onExpandHoverOut() {\n\t\tthis.dynamicPageTitle?.removeAttribute(\"hovered\");\n\t\tawait renderFinished();\n\t}\n}\n\nDynamicPage.define();\n\nexport default DynamicPage;\n"]}
1
+ {"version":3,"file":"DynamicPage.js","sourceRoot":"","sources":["../src/DynamicPage.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element 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.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\n\nimport debounce from \"@ui5/webcomponents-base/dist/util/debounce.js\";\n\n// Template\nimport DynamicPageTemplate from \"./DynamicPageTemplate.js\";\n\n// Styles\nimport DynamicPageCss from \"./generated/themes/DynamicPage.css.js\";\n\nimport DynamicPageHeader from \"./DynamicPageHeader.js\";\nimport DynamicPageTitle from \"./DynamicPageTitle.js\";\nimport type DynamicPageHeaderActions from \"./DynamicPageHeaderActions.js\";\n\n// Texts\nimport {\n\tDYNAMIC_PAGE_ARIA_LABEL_EXPANDED_HEADER,\n\tDYNAMIC_PAGE_ARIA_LABEL_SNAPPED_HEADER,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nconst SCROLL_DEBOUNCE_RATE = 5; // ms\nconst SCROLL_THRESHOLD = 10; // px\n/**\n * @class\n *\n * ### Overview\n *\n * A layout component, representing a web page, consisting of a title, header with dynamic behavior, a content area, and an optional floating footer.\n *\n * The component consist of several components:\n *\n * - `DynamicPageTitle` - a component, holding the title of the page, the navigation actions and the content. The displayed content changes based on the current mode of the `DynamicPageHeader`.\n * - `DynamicPageHeader` - a generic container, which can contain a single layout component and any other HTML elements. The header works in two modes - expanded and snapped and its behavior can be adjusted with the help of different properties.\n * - `Content area` - a generic container, which can have a single UI5 layout.\n * - `Footer` - positioned at the bottom with a small offset and used for additional actions, the footer floats above the content.\n *\n * ### Usage\n *\n * Use the `DynamicPage` if you need to have a title, that is always visible\n * and a header, that has configurable Expanding/Snapping functionality.\n * If you don't need the Expanding/Snapping functionality it is better to use the\n * `ui5-page` as a lighter component.\n *\n * The app can add to the `default` slot of the ui5-dynamic-page either content that is designed to fit its container (e.g. has 100% height),\n * or content with own height that may overflow its container. In the second case the `DynamicPage` will show a scrollbar that allows the user\n * scroll through the content.\n *\n * ## Notes:\n *\n * - Snapping of the `DynamicPageTitle` is not supported in the following case:\n * - When the `DynamicPage` has a scroll bar, the component usually scrolls to the snapping point - the point, where the `DynamicPageHeader` is scrolled out completely. However, when there is a scroll bar, but not enough content to reach the snapping point, the snapping is not possible using scrolling.\n *\n * ### Responsive Behavior\n *\n * Dynamic page web component implements the responsive paddings design.\n *\n * ### Keyboard Handling\n *\n *\n * ### Basic Navigation\n *\n * - [SPACE, ENTER, RETURN] - If focus is on a button inside DynamicPageTitle its action is being triggered, once activated.\n * If focus is on the snap header button (arrow button), or on the header itself, once activated, it triggers the associated action (such as snap/expand the header).\n * If focus is on pin button (the button with pin icon on the bottom of the header), once activated, it triggers the associated action (pinning of the header).\n *\n * ### Fast Navigation\n * - This component provides a build in fast navigation group which can be used via `F6 / Shift + F6` or ` Ctrl + Alt(Option) + Down / Ctrl + Alt(Option) + Up`.\n * In order to use this functionality, you need to import the following module:\n *\n * - `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/DynamicPage.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @since 2.0.0\n * @public\n * @csspart content - Used to style the content of the component\n * @csspart fit-content - Used to style the fit content container of the component.\n * @csspart footer - Used to style the footer of the component\n */\n@customElement({\n\ttag: \"ui5-dynamic-page\",\n\trenderer: jsxRenderer,\n\tstyles: DynamicPageCss,\n\ttemplate: DynamicPageTemplate,\n})\n\n/**\n * Fired when the pin header button is toggled.\n *\n * @public\n */\n@event(\"pin-button-toggle\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the expand/collapse area of the title is toggled.\n *\n * @public\n */\n@event(\"title-toggle\", {\n\tbubbles: true,\n})\n\nclass DynamicPage extends UI5Element {\n\teventDetails!: {\n\t\t\"pin-button-toggle\": void;\n\t\t\"title-toggle\": void;\n\t}\n\t/**\n\t * Defines if the pin button is hidden.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thidePinButton = false;\n\n\t/**\n\t * Defines if the header is pinned.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\theaderPinned = false;\n\n\t/**\n\t * Defines if the footer is shown.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowFooter = false;\n\n\t/**\n\t * Defines the content of the Dynamic Page.\n\t *\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement })\n\tcontent!: HTMLElement[];\n\n\t/**\n\t * Defines the title HTML Element.\n\t *\n\t * @public\n\t */\n\t@slot({ type: DynamicPageTitle })\n\ttitleArea!: Array<DynamicPageTitle>;\n\n\t/**\n\t * Defines the header HTML Element.\n\t *\n\t * @public\n\t */\n\t@slot({ type: DynamicPageHeader })\n\theaderArea!: Array<DynamicPageHeader>;\n\n\t/**\n\t * Defines the footer HTML Element.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tfooterArea!: HTMLElement[];\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\tskipSnapOnScroll = false;\n\tshowHeaderInStickArea = false;\n\tisToggled = false;\n\n\t@property({ type: Boolean })\n\t_headerSnapped = false;\n\n\t@query(\".ui5-dynamic-page-scroll-container\")\n\tscrollContainer?: HTMLElement;\n\n\t@query(\"[ui5-dynamic-page-header-actions]\")\n\theaderActions?: DynamicPageHeaderActions;\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tonBeforeRendering() {\n\t\tif (this.dynamicPageTitle) {\n\t\t\tthis.dynamicPageTitle.snapped = this._headerSnapped;\n\t\t\tthis.dynamicPageTitle.interactive = this.hasHeading;\n\t\t\tthis.dynamicPageTitle.hasSnappedTitleOnMobile = !!this.hasSnappedTitleOnMobile;\n\t\t\tthis.dynamicPageTitle.removeAttribute(\"hovered\");\n\t\t}\n\t\tconst titleHeight = this.dynamicPageTitle?.getBoundingClientRect().height || 0;\n\t\tconst headerHeight = this.dynamicPageHeader?.getBoundingClientRect().height || 0;\n\t\tconst footerHeight = this.showFooter ? this.footerWrapper?.getBoundingClientRect().height : 0;\n\n\t\tif (this.scrollContainer) {\n\t\t\tthis.scrollContainer.style.setProperty(\"scroll-padding-block-end\", `${footerHeight}px`);\n\n\t\t\tif (this._headerSnapped) {\n\t\t\t this.scrollContainer.style.setProperty(\"scroll-padding-block-start\", `${titleHeight}px`);\n\t\t\t} else {\n\t\t\t this.scrollContainer.style.setProperty(\"scroll-padding-block-start\", `${headerHeight + titleHeight}px`);\n\t\t\t}\n\t\t}\n\t}\n\n\tget dynamicPageTitle(): DynamicPageTitle | null {\n\t\treturn this.querySelector<DynamicPageTitle>(\"[ui5-dynamic-page-title]\");\n\t}\n\n\tget dynamicPageHeader(): DynamicPageHeader | null {\n\t\treturn this.querySelector<DynamicPageHeader>(\"[ui5-dynamic-page-header]\");\n\t}\n\n\tget footerWrapper() {\n\t\treturn this.shadowRoot?.querySelector(\".ui5-dynamic-page-footer\");\n\t}\n\n\tget actionsInTitle(): boolean {\n\t\treturn this._headerSnapped || this.showHeaderInStickArea || this.headerPinned;\n\t}\n\n\tget headerInTitle(): boolean {\n\t\treturn !this._headerSnapped && (this.showHeaderInStickArea || this.headerPinned);\n\t}\n\n\tget headerInContent(): boolean {\n\t\treturn !this.showHeaderInStickArea && !this.headerInTitle && !this.hasSnappedTitleOnMobile;\n\t}\n\n\tget _headerLabel() {\n\t\treturn this._headerSnapped\n\t\t\t? DynamicPage.i18nBundle.getText(DYNAMIC_PAGE_ARIA_LABEL_SNAPPED_HEADER)\n\t\t\t: DynamicPage.i18nBundle.getText(DYNAMIC_PAGE_ARIA_LABEL_EXPANDED_HEADER);\n\t}\n\n\tget _headerExpanded() {\n\t\treturn !this._headerSnapped;\n\t}\n\n\tget headerTabIndex() {\n\t\treturn (this._headerSnapped || this.showHeaderInStickArea) ? -1 : 0;\n\t}\n\n\tget headerAriaHidden() {\n\t\treturn (this._headerSnapped || this.showHeaderInStickArea);\n\t}\n\n\tget hasHeading() {\n\t\treturn this.headerArea.length > 0;\n\t}\n\n\tget headerSnapped(): boolean {\n\t\treturn this._headerSnapped;\n\t}\n\n\tget hasSnappedTitleOnMobile() {\n\t\treturn isPhone() && this.headerSnapped && this.dynamicPageTitle?.snappedTitleOnMobile.length;\n\t}\n\n\tget headerAriaLabel() {\n\t\treturn this.hasHeading ? this._headerLabel : undefined;\n\t}\n\n\tget headerAriaExpanded() {\n\t\treturn this.hasHeading ? this._headerExpanded : undefined;\n\t}\n\n\t/**\n\t * Defines if the header is snapped.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tset headerSnapped(snapped: boolean) {\n\t\tif (snapped !== this._headerSnapped) {\n\t\t\tthis._toggleHeader();\n\t\t}\n\t}\n\n\tsnapOnScroll() {\n\t\tdebounce(() => this.snapTitleByScroll(), SCROLL_DEBOUNCE_RATE);\n\t}\n\n\tsnapTitleByScroll() {\n\t\tif (!this.dynamicPageTitle || !this.dynamicPageHeader || this.headerPinned) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.isToggled) {\n\t\t\tthis.isToggled = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.skipSnapOnScroll) {\n\t\t\tthis.skipSnapOnScroll = false;\n\t\t\treturn;\n\t\t}\n\n\t\tconst scrollTop = this.scrollContainer!.scrollTop;\n\t\tconst headerHeight = this.dynamicPageHeader.getBoundingClientRect().height;\n\t\tconst lastHeaderSnapped = this._headerSnapped;\n\n\t\tif (this._headerSnapped && scrollTop > headerHeight) {\n\t\t\tthis.showHeaderInStickArea = false;\n\t\t}\n\n\t\tconst shouldSnap = !this._headerSnapped && scrollTop > headerHeight + SCROLL_THRESHOLD;\n\t\tconst shouldExpand = this._headerSnapped && (scrollTop < headerHeight - SCROLL_THRESHOLD\n\t\t\t|| (!scrollTop && !headerHeight));\n\n\t\tif (shouldSnap) {\n\t\t\tthis.showHeaderInStickArea = false;\n\t\t\tthis._headerSnapped = true;\n\n\t\t\t//* snappedTitleOnMobile\n\t\t\t// If the header is snapped and the scroll is at the top, scroll down a bit\n\t\t\t// to avoid ending in an endless loop of snapping and unsnapping\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tif (this.scrollContainer!.scrollTop === 0) {\n\t\t\t\t\tthis.scrollContainer!.scrollTop = SCROLL_THRESHOLD;\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (shouldExpand) {\n\t\t\tthis._headerSnapped = false;\n\t\t}\n\n\t\t// Fire event if snapped state changed\n\t\tif (lastHeaderSnapped !== this._headerSnapped) {\n\t\t\tthis.fireDecoratorEvent(\"title-toggle\");\n\t\t}\n\t}\n\n\tasync onExpandClick() {\n\t\tthis.isToggled = true;\n\t\tthis._toggleHeader();\n\t\tthis.fireDecoratorEvent(\"title-toggle\");\n\t\tawait renderFinished();\n\t\tthis.headerActions?.focusExpandButton();\n\n\t\tif (this.hasSnappedTitleOnMobile) {\n\t\t\tthis.dynamicPageTitle?.focus();\n\t\t}\n\n\t\tannounce(this._headerLabel, InvisibleMessageMode.Polite);\n\t}\n\n\tasync onPinClick() {\n\t\tthis.headerPinned = !this.headerPinned;\n\t\tif (this.headerPinned) {\n\t\t\tthis.showHeaderInStickArea = true;\n\t\t} else if (this.scrollContainer!.scrollTop === 0) {\n\t\t\tthis.showHeaderInStickArea = false;\n\t\t}\n\t\tthis.fireDecoratorEvent(\"pin-button-toggle\");\n\t\tawait renderFinished();\n\t\tthis.headerActions?.focusPinButton();\n\t}\n\n\tasync onToggleTitle() {\n\t\tif (!this.hasHeading) {\n\t\t\treturn;\n\t\t}\n\t\tthis.isToggled = true;\n\t\tthis._toggleHeader();\n\t\tthis.fireDecoratorEvent(\"title-toggle\");\n\t\tawait renderFinished();\n\t\tthis.dynamicPageTitle!.focus();\n\t}\n\n\tasync _toggleHeader() {\n\t\tconst headerHeight = this.dynamicPageHeader?.getBoundingClientRect().height || 0;\n\t\tconst currentScrollTop = this.scrollContainer!.scrollTop;\n\n\t\tif (!this._headerSnapped && this.headerPinned) {\n\t\t\tthis.headerPinned = false;\n\t\t\tthis.fireDecoratorEvent(\"pin-button-toggle\");\n\t\t}\n\n\t\tif (currentScrollTop <= SCROLL_THRESHOLD) {\n\t\t\tthis._headerSnapped = !this._headerSnapped;\n\t\t\tthis.showHeaderInStickArea = this._headerSnapped;\n\t\t\treturn;\n\t\t}\n\n\t\tif (currentScrollTop > SCROLL_THRESHOLD && currentScrollTop < headerHeight) {\n\t\t\tif (!this._headerSnapped) {\n\t\t\t\tthis._headerSnapped = true;\n\t\t\t\tthis.showHeaderInStickArea = true;\n\t\t\t\tthis.scrollContainer!.scrollTop = 0;\n\t\t\t} else {\n\t\t\t\tthis.showHeaderInStickArea = false;\n\t\t\t\tthis._headerSnapped = false;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.scrollContainer!.scrollTop === SCROLL_THRESHOLD) {\n\t\t\tthis.scrollContainer!.scrollTop = 0;\n\t\t}\n\n\t\tthis.showHeaderInStickArea = !this.showHeaderInStickArea;\n\t\tthis._headerSnapped = !this._headerSnapped;\n\n\t\tthis.skipSnapOnScroll = true;\n\n\t\tawait renderFinished();\n\t\tif (this._headerSnapped && this.scrollContainer!.scrollTop < SCROLL_THRESHOLD) {\n\t\t\tthis.scrollContainer!.scrollTop = SCROLL_THRESHOLD;\n\t\t}\n\t}\n\n\tasync onExpandHoverIn() {\n\t\tthis.dynamicPageTitle?.setAttribute(\"hovered\", \"\");\n\t\tawait renderFinished();\n\t}\n\n\tasync onExpandHoverOut() {\n\t\tthis.dynamicPageTitle?.removeAttribute(\"hovered\");\n\t\tawait renderFinished();\n\t}\n}\n\nDynamicPage.define();\n\nexport default DynamicPage;\n"]}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
2
2
  import DynamicPageHeaderActions from "./DynamicPageHeaderActions.js";
3
3
  export default function DynamicPageTemplate() {
4
- return (_jsxs("div", { class: "ui5-dynamic-page-root", children: [_jsxs("div", { class: "ui5-dynamic-page-scroll-container", onScroll: this.snapOnScroll, children: [_jsxs("header", { class: "ui5-dynamic-page-title-header-wrapper", id: `${this._id}-header`, "aria-label": this._headerLabel, "aria-expanded": this._headerExpanded, "onui5-toggle-title": this.onToggleTitle, children: [_jsx("slot", { name: "titleArea" }), this.headerInTitle &&
4
+ return (_jsxs("div", { class: "ui5-dynamic-page-root", children: [_jsxs("div", { class: "ui5-dynamic-page-scroll-container", onScroll: this.snapOnScroll, children: [_jsxs("header", { class: "ui5-dynamic-page-title-header-wrapper", id: `${this._id}-header`, "aria-label": this.headerAriaLabel, "aria-expanded": this.headerAriaExpanded, "onui5-toggle-title": this.onToggleTitle, children: [_jsx("slot", { name: "titleArea" }), this.headerInTitle &&
5
5
  _jsx("slot", { tabIndex: this.headerTabIndex, "aria-hidden": this.headerAriaHidden, name: "headerArea" }), this.actionsInTitle && headerActions.call(this)] }), this.headerInContent &&
6
6
  _jsx("slot", { tabIndex: this.headerTabIndex, "aria-hidden": this.headerAriaHidden, name: "headerArea" }), !this.actionsInTitle && headerActions.call(this), _jsx("div", { class: "ui5-dynamic-page-content", part: "content", children: _jsxs("div", { class: "ui5-dynamic-page-fit-content", part: "fit-content", children: [_jsx("slot", {}), this.showFooter &&
7
7
  _jsx("div", { class: "ui5-dynamic-page-spacer" })] }) })] }), _jsx("div", { class: "ui5-dynamic-page-footer", part: "footer", children: _jsx("slot", { name: "footerArea" }) })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicPageTemplate.js","sourceRoot":"","sources":["../src/DynamicPageTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AAErE,MAAM,CAAC,OAAO,UAAU,mBAAmB;IAC1C,OAAO,CACN,eAAK,KAAK,EAAC,uBAAuB,aACjC,eAAK,KAAK,EAAC,mCAAmC,EAC7C,QAAQ,EAAE,IAAI,CAAC,YAAY,aAE3B,kBACC,KAAK,EAAC,uCAAuC,EAC7C,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,SAAS,gBACZ,IAAI,CAAC,YAAY,mBACd,IAAI,CAAC,eAAe,wBACf,IAAI,CAAC,aAAa,aAEtC,eAAM,IAAI,EAAC,WAAW,GAAQ,EAC7B,IAAI,CAAC,aAAa;gCAClB,eAAM,QAAQ,EAAE,IAAI,CAAC,cAAc,iBACrB,IAAI,CAAC,gBAAgB,EAClC,IAAI,EAAC,YAAY,GACV,EAGR,IAAI,CAAC,cAAc,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IACxC,EAER,IAAI,CAAC,eAAe;wBACpB,eAAM,QAAQ,EAAE,IAAI,CAAC,cAAc,iBACrB,IAAI,CAAC,gBAAgB,EAClC,IAAI,EAAC,YAAY,GACV,EAGR,CAAC,IAAI,CAAC,cAAc,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAEjD,cAAK,KAAK,EAAC,0BAA0B,EAAC,IAAI,EAAC,SAAS,YACnD,eAAK,KAAK,EAAC,8BAA8B,EAAC,IAAI,EAAC,aAAa,aAC3D,gBAAa,EACZ,IAAI,CAAC,UAAU;oCACf,cAAK,KAAK,EAAC,yBAAyB,GAAO,IAEvC,GACD,IACD,EAEN,cAAK,KAAK,EAAC,yBAAyB,EAAC,IAAI,EAAC,QAAQ,YACjD,eAAM,IAAI,EAAC,YAAY,GAAQ,GAC1B,IACD,CACN,CAAC;AACH,CAAC;AAED,SAAS,aAAa;IACrB,IAAI,CAAC,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACtD,OAAO,CACN,KAAC,wBAAwB,IACxB,OAAO,EAAE,IAAI,CAAC,aAAa,EAC3B,MAAM,EAAE,IAAI,CAAC,YAAY,EACzB,aAAa,EAAE,IAAI,CAAC,aAAa,+BACN,IAAI,CAAC,aAAa,4BACrB,IAAI,CAAC,UAAU,kCACT,IAAI,CAAC,eAAe,mCACnB,IAAI,CAAC,gBAAgB,GACnD,CACF,CAAC;IACH,CAAC;AACF,CAAC","sourcesContent":["import type DynamicPage from \"./DynamicPage.js\";\nimport DynamicPageHeaderActions from \"./DynamicPageHeaderActions.js\";\n\nexport default function DynamicPageTemplate(this: DynamicPage) {\n\treturn (\n\t\t<div class=\"ui5-dynamic-page-root\">\n\t\t\t<div class=\"ui5-dynamic-page-scroll-container\"\n\t\t\t\tonScroll={this.snapOnScroll}\n\t\t\t>\n\t\t\t\t<header\n\t\t\t\t\tclass=\"ui5-dynamic-page-title-header-wrapper\"\n\t\t\t\t\tid={`${this._id}-header`}\n\t\t\t\t\taria-label={this._headerLabel}\n\t\t\t\t\taria-expanded={this._headerExpanded}\n\t\t\t\t\tonui5-toggle-title={this.onToggleTitle}\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"titleArea\"></slot>\n\t\t\t\t\t{this.headerInTitle &&\n\t\t\t\t\t\t<slot tabIndex={this.headerTabIndex}\n\t\t\t\t\t\t\taria-hidden={this.headerAriaHidden}\n\t\t\t\t\t\t\tname=\"headerArea\"\n\t\t\t\t\t\t></slot>\n\t\t\t\t\t}\n\n\t\t\t\t\t{this.actionsInTitle && headerActions.call(this)}\n\t\t\t\t</header>\n\n\t\t\t\t{this.headerInContent &&\n\t\t\t\t\t<slot tabIndex={this.headerTabIndex}\n\t\t\t\t\t\taria-hidden={this.headerAriaHidden}\n\t\t\t\t\t\tname=\"headerArea\"\n\t\t\t\t\t></slot>\n\t\t\t\t}\n\n\t\t\t\t{!this.actionsInTitle && headerActions.call(this)}\n\n\t\t\t\t<div class=\"ui5-dynamic-page-content\" part=\"content\">\n\t\t\t\t\t<div class=\"ui5-dynamic-page-fit-content\" part=\"fit-content\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t{this.showFooter &&\n\t\t\t\t\t\t\t<div class=\"ui5-dynamic-page-spacer\"></div>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"ui5-dynamic-page-footer\" part=\"footer\">\n\t\t\t\t<slot name=\"footerArea\"></slot>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nfunction headerActions(this: DynamicPage) {\n\tif (!this.hasSnappedTitleOnMobile && this.hasHeading) {\n\t\treturn (\n\t\t\t<DynamicPageHeaderActions\n\t\t\t\tsnapped={this.headerSnapped}\n\t\t\t\tpinned={this.headerPinned}\n\t\t\t\thidePinButton={this.hidePinButton}\n\t\t\t\tonui5-expand-button-click={this.onExpandClick}\n\t\t\t\tonui5-pin-button-click={this.onPinClick}\n\t\t\t\tonui5-expand-button-hover-in={this.onExpandHoverIn}\n\t\t\t\tonui5-expand-button-hover-out={this.onExpandHoverOut}\n\t\t\t/>\n\t\t);\n\t}\n}\n"]}
1
+ {"version":3,"file":"DynamicPageTemplate.js","sourceRoot":"","sources":["../src/DynamicPageTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AAErE,MAAM,CAAC,OAAO,UAAU,mBAAmB;IAC1C,OAAO,CACN,eAAK,KAAK,EAAC,uBAAuB,aACjC,eAAK,KAAK,EAAC,mCAAmC,EAC7C,QAAQ,EAAE,IAAI,CAAC,YAAY,aAE3B,kBACC,KAAK,EAAC,uCAAuC,EAC7C,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,SAAS,gBACZ,IAAI,CAAC,eAAe,mBACjB,IAAI,CAAC,kBAAkB,wBAClB,IAAI,CAAC,aAAa,aAEtC,eAAM,IAAI,EAAC,WAAW,GAAQ,EAC7B,IAAI,CAAC,aAAa;gCAClB,eAAM,QAAQ,EAAE,IAAI,CAAC,cAAc,iBACrB,IAAI,CAAC,gBAAgB,EAClC,IAAI,EAAC,YAAY,GACV,EAGR,IAAI,CAAC,cAAc,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IACxC,EAER,IAAI,CAAC,eAAe;wBACpB,eAAM,QAAQ,EAAE,IAAI,CAAC,cAAc,iBACrB,IAAI,CAAC,gBAAgB,EAClC,IAAI,EAAC,YAAY,GACV,EAGR,CAAC,IAAI,CAAC,cAAc,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAEjD,cAAK,KAAK,EAAC,0BAA0B,EAAC,IAAI,EAAC,SAAS,YACnD,eAAK,KAAK,EAAC,8BAA8B,EAAC,IAAI,EAAC,aAAa,aAC3D,gBAAa,EACZ,IAAI,CAAC,UAAU;oCACf,cAAK,KAAK,EAAC,yBAAyB,GAAO,IAEvC,GACD,IACD,EAEN,cAAK,KAAK,EAAC,yBAAyB,EAAC,IAAI,EAAC,QAAQ,YACjD,eAAM,IAAI,EAAC,YAAY,GAAQ,GAC1B,IACD,CACN,CAAC;AACH,CAAC;AAED,SAAS,aAAa;IACrB,IAAI,CAAC,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACtD,OAAO,CACN,KAAC,wBAAwB,IACxB,OAAO,EAAE,IAAI,CAAC,aAAa,EAC3B,MAAM,EAAE,IAAI,CAAC,YAAY,EACzB,aAAa,EAAE,IAAI,CAAC,aAAa,+BACN,IAAI,CAAC,aAAa,4BACrB,IAAI,CAAC,UAAU,kCACT,IAAI,CAAC,eAAe,mCACnB,IAAI,CAAC,gBAAgB,GACnD,CACF,CAAC;IACH,CAAC;AACF,CAAC","sourcesContent":["import type DynamicPage from \"./DynamicPage.js\";\nimport DynamicPageHeaderActions from \"./DynamicPageHeaderActions.js\";\n\nexport default function DynamicPageTemplate(this: DynamicPage) {\n\treturn (\n\t\t<div class=\"ui5-dynamic-page-root\">\n\t\t\t<div class=\"ui5-dynamic-page-scroll-container\"\n\t\t\t\tonScroll={this.snapOnScroll}\n\t\t\t>\n\t\t\t\t<header\n\t\t\t\t\tclass=\"ui5-dynamic-page-title-header-wrapper\"\n\t\t\t\t\tid={`${this._id}-header`}\n\t\t\t\t\taria-label={this.headerAriaLabel}\n\t\t\t\t\taria-expanded={this.headerAriaExpanded}\n\t\t\t\t\tonui5-toggle-title={this.onToggleTitle}\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"titleArea\"></slot>\n\t\t\t\t\t{this.headerInTitle &&\n\t\t\t\t\t\t<slot tabIndex={this.headerTabIndex}\n\t\t\t\t\t\t\taria-hidden={this.headerAriaHidden}\n\t\t\t\t\t\t\tname=\"headerArea\"\n\t\t\t\t\t\t></slot>\n\t\t\t\t\t}\n\n\t\t\t\t\t{this.actionsInTitle && headerActions.call(this)}\n\t\t\t\t</header>\n\n\t\t\t\t{this.headerInContent &&\n\t\t\t\t\t<slot tabIndex={this.headerTabIndex}\n\t\t\t\t\t\taria-hidden={this.headerAriaHidden}\n\t\t\t\t\t\tname=\"headerArea\"\n\t\t\t\t\t></slot>\n\t\t\t\t}\n\n\t\t\t\t{!this.actionsInTitle && headerActions.call(this)}\n\n\t\t\t\t<div class=\"ui5-dynamic-page-content\" part=\"content\">\n\t\t\t\t\t<div class=\"ui5-dynamic-page-fit-content\" part=\"fit-content\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t{this.showFooter &&\n\t\t\t\t\t\t\t<div class=\"ui5-dynamic-page-spacer\"></div>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"ui5-dynamic-page-footer\" part=\"footer\">\n\t\t\t\t<slot name=\"footerArea\"></slot>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nfunction headerActions(this: DynamicPage) {\n\tif (!this.hasSnappedTitleOnMobile && this.hasHeading) {\n\t\treturn (\n\t\t\t<DynamicPageHeaderActions\n\t\t\t\tsnapped={this.headerSnapped}\n\t\t\t\tpinned={this.headerPinned}\n\t\t\t\thidePinButton={this.hidePinButton}\n\t\t\t\tonui5-expand-button-click={this.onExpandClick}\n\t\t\t\tonui5-pin-button-click={this.onPinClick}\n\t\t\t\tonui5-expand-button-hover-in={this.onExpandHoverIn}\n\t\t\t\tonui5-expand-button-hover-out={this.onExpandHoverOut}\n\t\t\t/>\n\t\t);\n\t}\n}\n"]}
@@ -159,6 +159,7 @@ declare class DynamicPageTitle extends UI5Element {
159
159
  get _ariaDescribedbyText(): string;
160
160
  get _ariaLabelledBy(): string | undefined;
161
161
  get _needsSeparator(): boolean;
162
+ get forAriaExpanded(): boolean | undefined;
162
163
  prepareLayoutActions(): void;
163
164
  handleResize(): void;
164
165
  onMinContentWidthChange(e: CustomEvent<ToolbarMinWidthChangeEventDetail>): void;
@@ -128,6 +128,9 @@ let DynamicPageTitle = DynamicPageTitle_1 = class DynamicPageTitle extends UI5El
128
128
  get _needsSeparator() {
129
129
  return (this.navigationBar.length > 0 && this.actionsBar.length > 0);
130
130
  }
131
+ get forAriaExpanded() {
132
+ return this.interactive ? this._headerExpanded : undefined;
133
+ }
131
134
  prepareLayoutActions() {
132
135
  const navigationBar = this.querySelector("[ui5-toolbar][slot='navigationBar']"), isWideScreen = this.offsetWidth >= 1280;
133
136
  if (!navigationBar) {
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicPageTitle.js","sourceRoot":"","sources":["../src/DynamicPageTitle.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element 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.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type Toolbar from \"@ui5/webcomponents/dist/Toolbar.js\";\nimport type { ToolbarMinWidthChangeEventDetail } from \"@ui5/webcomponents/dist/Toolbar.js\";\nimport ToolbarItemOverflowBehavior from \"@ui5/webcomponents/dist/types/ToolbarItemOverflowBehavior.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type Title from \"@ui5/webcomponents/dist/Title.js\";\n\n// Template\nimport DynamicPageTitleTemplate from \"./DynamicPageTitleTemplate.js\";\n\n// Styles\nimport DynamicPageTitleCss from \"./generated/themes/DynamicPageTitle.css.js\";\n\n// Texts\nimport {\n\tDYNAMIC_PAGE_ARIA_DESCR_TOGGLE_HEADER,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * Title of the `DynamicPage`.\n *\n * The `DynamicPageTitle` component is part of the `DynamicPage`\n * family and is used to serve as title of the `DynamicPage`.\n *\n * ### Usage\n *\n * The `DynamicPageTitle` can hold any component and displays the most important\n * information regarding the object that will always remain visible while scrolling.\n *\n * **Note:** The `actions` slot accepts any UI5 web component, but it's\n * recommended to use `ui5-toolbar`.\n *\n * The user can switch between the expanded/collapsed states of the\n * `DynamicPage` by clicking on the `DynamicPageTitle`\n * or by using the expand/collapse visual indicators, positioned at the bottom of the\n * `DynamicPageTitle` and the `DynamicPageHeader` inside `ui5-dynamic-page-header-actions`.\n *\n * ### Responsive Behavior\n *\n * The responsive behavior of the `DynamicPageTitle` depends on the behavior of the\n * content that is displayed.\n * @constructor\n * @extends UI5Element\n * @public\n * @since 2.0.0\n */\n@customElement({\n\ttag: \"ui5-dynamic-page-title\",\n\tfastNavigation: true,\n\trenderer: jsxRenderer,\n\tstyles: DynamicPageTitleCss,\n\ttemplate: DynamicPageTitleTemplate,\n})\n\n/**\n * Event is fired when the title is toggled.\n * @private\n */\n@event(\"toggle-title\", {\n\tbubbles: true,\n})\n\nclass DynamicPageTitle extends UI5Element {\n\teventDetails!: {\n\t\t\"toggle-title\": void;\n\t}\n\t/**\n\t * Defines if the title is snapped.\n\t *\n\t * @protected\n\t * @default false\n\t */\n\t@property({ type: Boolean })\n\tsnapped = false;\n\n\t/**\n\t * Defines if the mobileNavigationActions are shown.\n\t *\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tmobileNavigationActions = false;\n\n\t/**\n\t * Indicates if the elements is on focus\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused = false;\n\n\t/**\n\t * Defines the minimum width of the content area.\n\t * @private\n\t */\n\t@property({ type: Number })\n\tminContentWidth?: number;\n\n\t/**\n\t * Defines the minimum width of the actions area.\n\t * @private\n\t */\n\t@property({ type: Number })\n\tminActionsWidth?: number;\n\n\t/**\n\t * Indicates whether the title has snapped on mobile devices.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thasSnappedTitleOnMobile = false;\n\n\t/**\n\t * Defines the content of the Heading of the Dynamic Page.\n\t *\n\t * The font size of the title within the `heading` slot can be adjusted to the recommended values using the following CSS variables:\n\t *\n\t * **Expanded:** `var(--sapObjectHeader_Title_FontSize)`\n\t *\n\t * **Collapsed:** `var(--sapObjectHeader_Title_SnappedFontSize)`\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\theading!: HTMLElement[];\n\n\t/**\n\t * Defines the heading that is shown only when the header is snapped.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tsnappedHeading!: HTMLElement[];\n\n\t/**\n\t * Defines the content of the snapped title on mobile devices.\n\t *\n\t * This slot is displayed only when the `DynamicPageTitle` is in the snapped state on mobile devices.\n\t * It should be used to provide a simplified, single-line title that takes up less space on smaller screens.\n\t *\n\t * **Note:**\n\t * - The content set in this slot **overrides** all other content set in the `DynamicPageTitle` slots when displayed.\n\t * - The slot is intended for a single `ui5-title` component.\n\t *\n\t * @public\n\t * @since 2.3.0\n\t */\n\t@slot({ type: HTMLElement })\n\tsnappedTitleOnMobile!: Array<Title>;\n\n\t/**\n\t * Defines the bar with actions in the Dynamic page title.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tactionsBar!: HTMLElement[];\n\n\t/**\n\t * Defines the bar with navigation actions in the Dynamic page title.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tnavigationBar!: Array<Toolbar>;\n\n\t/**\n\t * Defines the content of the Dynamic page title.\n\t *\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement })\n\tcontent!: HTMLElement[];\n\n\t/**\n\t * Defines the content of the title that is shown only when the header is not snapped.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tsubheading!: HTMLElement[];\n\n\t/**\n\t * Defines the content of the title that is shown only when the header is snapped.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tsnappedSubheading!: HTMLElement[];\n\n\t/**\n\t * Defines the content of the breadcrumbs inside Dynamic Page Title.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tbreadcrumbs!: HTMLElement[];\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tinteractive = false;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\t_handleResize: ResizeObserverCallback;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._handleResize = this.handleResize.bind(this);\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._handleResize);\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._handleResize);\n\t}\n\n\tonBeforeRendering() {\n\t\tthis.prepareLayoutActions();\n\t}\n\n\tget hasContent() {\n\t\treturn !!this.content.length;\n\t}\n\n\tget headingSlotName() {\n\t\tif (!this.snapped) {\n\t\t\treturn \"heading\";\n\t\t}\n\t\treturn \"snappedHeading\";\n\t}\n\n\tget subheadingSlotName() {\n\t\treturn !this.snapped ? \"subheading\" : \"snappedSubheading\";\n\t}\n\n\tget _tabIndex() {\n\t\treturn this.interactive ? 0 : undefined;\n\t}\n\n\tget _headerExpanded() {\n\t\treturn !this.snapped;\n\t}\n\n\tget _ariaDescribedbyText() {\n\t\treturn DynamicPageTitle.i18nBundle.getText(DYNAMIC_PAGE_ARIA_DESCR_TOGGLE_HEADER);\n\t}\n\n\tget _ariaLabelledBy() {\n\t\tconst hasAnyHeading = this[this.headingSlotName].length;\n\t\tif (hasAnyHeading) {\n\t\t\treturn `${this._id}-heading`;\n\t\t}\n\t}\n\n\tget _needsSeparator(): boolean {\n\t\treturn (this.navigationBar.length > 0 && this.actionsBar.length > 0);\n\t}\n\n\tprepareLayoutActions() {\n\t\tconst navigationBar = this.querySelector<Toolbar>(\"[ui5-toolbar][slot='navigationBar']\"),\n\t\t\tisWideScreen = this.offsetWidth >= 1280;\n\n\t\tif (!navigationBar) {\n\t\t\treturn;\n\t\t}\n\n\t\tnavigationBar.items.forEach(action => {\n\t\t\taction.overflowPriority = isWideScreen\n\t\t\t\t? ToolbarItemOverflowBehavior.NeverOverflow\n\t\t\t\t: ToolbarItemOverflowBehavior.Default;\n\t\t});\n\t}\n\n\thandleResize() {\n\t\tthis.mobileNavigationActions = this.offsetWidth < 1280;\n\t}\n\n\tonMinContentWidthChange(e: CustomEvent<ToolbarMinWidthChangeEventDetail>) {\n\t\tconst slotName = (<HTMLElement>e.target)?.assignedSlot?.name;\n\t\tif (!slotName || slotName === \"content\") {\n\t\t\tthis.minContentWidth = e.detail.minWidth;\n\t\t} else if (slotName === \"actionsBar\") {\n\t\t\tthis.minActionsWidth = e.detail.minWidth;\n\t\t}\n\t}\n\n\tonTitleClick() {\n\t\tthis.fireDecoratorEvent(\"toggle-title\");\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e) || isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.fireDecoratorEvent(\"toggle-title\");\n\t\t}\n\t}\n}\n\nDynamicPageTitle.define();\n\nexport default DynamicPageTitle;\n"]}
1
+ {"version":3,"file":"DynamicPageTitle.js","sourceRoot":"","sources":["../src/DynamicPageTitle.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element 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.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type Toolbar from \"@ui5/webcomponents/dist/Toolbar.js\";\nimport type { ToolbarMinWidthChangeEventDetail } from \"@ui5/webcomponents/dist/Toolbar.js\";\nimport ToolbarItemOverflowBehavior from \"@ui5/webcomponents/dist/types/ToolbarItemOverflowBehavior.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type Title from \"@ui5/webcomponents/dist/Title.js\";\n\n// Template\nimport DynamicPageTitleTemplate from \"./DynamicPageTitleTemplate.js\";\n\n// Styles\nimport DynamicPageTitleCss from \"./generated/themes/DynamicPageTitle.css.js\";\n\n// Texts\nimport {\n\tDYNAMIC_PAGE_ARIA_DESCR_TOGGLE_HEADER,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * Title of the `DynamicPage`.\n *\n * The `DynamicPageTitle` component is part of the `DynamicPage`\n * family and is used to serve as title of the `DynamicPage`.\n *\n * ### Usage\n *\n * The `DynamicPageTitle` can hold any component and displays the most important\n * information regarding the object that will always remain visible while scrolling.\n *\n * **Note:** The `actions` slot accepts any UI5 web component, but it's\n * recommended to use `ui5-toolbar`.\n *\n * The user can switch between the expanded/collapsed states of the\n * `DynamicPage` by clicking on the `DynamicPageTitle`\n * or by using the expand/collapse visual indicators, positioned at the bottom of the\n * `DynamicPageTitle` and the `DynamicPageHeader` inside `ui5-dynamic-page-header-actions`.\n *\n * ### Responsive Behavior\n *\n * The responsive behavior of the `DynamicPageTitle` depends on the behavior of the\n * content that is displayed.\n * @constructor\n * @extends UI5Element\n * @public\n * @since 2.0.0\n */\n@customElement({\n\ttag: \"ui5-dynamic-page-title\",\n\tfastNavigation: true,\n\trenderer: jsxRenderer,\n\tstyles: DynamicPageTitleCss,\n\ttemplate: DynamicPageTitleTemplate,\n})\n\n/**\n * Event is fired when the title is toggled.\n * @private\n */\n@event(\"toggle-title\", {\n\tbubbles: true,\n})\n\nclass DynamicPageTitle extends UI5Element {\n\teventDetails!: {\n\t\t\"toggle-title\": void;\n\t}\n\t/**\n\t * Defines if the title is snapped.\n\t *\n\t * @protected\n\t * @default false\n\t */\n\t@property({ type: Boolean })\n\tsnapped = false;\n\n\t/**\n\t * Defines if the mobileNavigationActions are shown.\n\t *\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tmobileNavigationActions = false;\n\n\t/**\n\t * Indicates if the elements is on focus\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused = false;\n\n\t/**\n\t * Defines the minimum width of the content area.\n\t * @private\n\t */\n\t@property({ type: Number })\n\tminContentWidth?: number;\n\n\t/**\n\t * Defines the minimum width of the actions area.\n\t * @private\n\t */\n\t@property({ type: Number })\n\tminActionsWidth?: number;\n\n\t/**\n\t * Indicates whether the title has snapped on mobile devices.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thasSnappedTitleOnMobile = false;\n\n\t/**\n\t * Defines the content of the Heading of the Dynamic Page.\n\t *\n\t * The font size of the title within the `heading` slot can be adjusted to the recommended values using the following CSS variables:\n\t *\n\t * **Expanded:** `var(--sapObjectHeader_Title_FontSize)`\n\t *\n\t * **Collapsed:** `var(--sapObjectHeader_Title_SnappedFontSize)`\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\theading!: HTMLElement[];\n\n\t/**\n\t * Defines the heading that is shown only when the header is snapped.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tsnappedHeading!: HTMLElement[];\n\n\t/**\n\t * Defines the content of the snapped title on mobile devices.\n\t *\n\t * This slot is displayed only when the `DynamicPageTitle` is in the snapped state on mobile devices.\n\t * It should be used to provide a simplified, single-line title that takes up less space on smaller screens.\n\t *\n\t * **Note:**\n\t * - The content set in this slot **overrides** all other content set in the `DynamicPageTitle` slots when displayed.\n\t * - The slot is intended for a single `ui5-title` component.\n\t *\n\t * @public\n\t * @since 2.3.0\n\t */\n\t@slot({ type: HTMLElement })\n\tsnappedTitleOnMobile!: Array<Title>;\n\n\t/**\n\t * Defines the bar with actions in the Dynamic page title.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tactionsBar!: HTMLElement[];\n\n\t/**\n\t * Defines the bar with navigation actions in the Dynamic page title.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tnavigationBar!: Array<Toolbar>;\n\n\t/**\n\t * Defines the content of the Dynamic page title.\n\t *\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement })\n\tcontent!: HTMLElement[];\n\n\t/**\n\t * Defines the content of the title that is shown only when the header is not snapped.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tsubheading!: HTMLElement[];\n\n\t/**\n\t * Defines the content of the title that is shown only when the header is snapped.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tsnappedSubheading!: HTMLElement[];\n\n\t/**\n\t * Defines the content of the breadcrumbs inside Dynamic Page Title.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tbreadcrumbs!: HTMLElement[];\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tinteractive = false;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\t_handleResize: ResizeObserverCallback;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._handleResize = this.handleResize.bind(this);\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._handleResize);\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._handleResize);\n\t}\n\n\tonBeforeRendering() {\n\t\tthis.prepareLayoutActions();\n\t}\n\n\tget hasContent() {\n\t\treturn !!this.content.length;\n\t}\n\n\tget headingSlotName() {\n\t\tif (!this.snapped) {\n\t\t\treturn \"heading\";\n\t\t}\n\t\treturn \"snappedHeading\";\n\t}\n\n\tget subheadingSlotName() {\n\t\treturn !this.snapped ? \"subheading\" : \"snappedSubheading\";\n\t}\n\n\tget _tabIndex() {\n\t\treturn this.interactive ? 0 : undefined;\n\t}\n\n\tget _headerExpanded() {\n\t\treturn !this.snapped;\n\t}\n\n\tget _ariaDescribedbyText() {\n\t\treturn DynamicPageTitle.i18nBundle.getText(DYNAMIC_PAGE_ARIA_DESCR_TOGGLE_HEADER);\n\t}\n\n\tget _ariaLabelledBy() {\n\t\tconst hasAnyHeading = this[this.headingSlotName].length;\n\t\tif (hasAnyHeading) {\n\t\t\treturn `${this._id}-heading`;\n\t\t}\n\t}\n\n\tget _needsSeparator(): boolean {\n\t\treturn (this.navigationBar.length > 0 && this.actionsBar.length > 0);\n\t}\n\n\tget forAriaExpanded() {\n\t\treturn this.interactive ? this._headerExpanded : undefined;\n\t}\n\n\tprepareLayoutActions() {\n\t\tconst navigationBar = this.querySelector<Toolbar>(\"[ui5-toolbar][slot='navigationBar']\"),\n\t\t\tisWideScreen = this.offsetWidth >= 1280;\n\n\t\tif (!navigationBar) {\n\t\t\treturn;\n\t\t}\n\n\t\tnavigationBar.items.forEach(action => {\n\t\t\taction.overflowPriority = isWideScreen\n\t\t\t\t? ToolbarItemOverflowBehavior.NeverOverflow\n\t\t\t\t: ToolbarItemOverflowBehavior.Default;\n\t\t});\n\t}\n\n\thandleResize() {\n\t\tthis.mobileNavigationActions = this.offsetWidth < 1280;\n\t}\n\n\tonMinContentWidthChange(e: CustomEvent<ToolbarMinWidthChangeEventDetail>) {\n\t\tconst slotName = (<HTMLElement>e.target)?.assignedSlot?.name;\n\t\tif (!slotName || slotName === \"content\") {\n\t\t\tthis.minContentWidth = e.detail.minWidth;\n\t\t} else if (slotName === \"actionsBar\") {\n\t\t\tthis.minActionsWidth = e.detail.minWidth;\n\t\t}\n\t}\n\n\tonTitleClick() {\n\t\tthis.fireDecoratorEvent(\"toggle-title\");\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e) || isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.fireDecoratorEvent(\"toggle-title\");\n\t\t}\n\t}\n}\n\nDynamicPageTitle.define();\n\nexport default DynamicPageTitle;\n"]}
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ui5/webcompo
2
2
  import Icon from "@ui5/webcomponents/dist/Icon.js";
3
3
  import slimArrowDownIcon from "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
4
4
  export default function DynamicPageTitleTemplate() {
5
- return (_jsxs("div", { class: "ui5-dynamic-page-title-root", children: [_jsx("span", { class: "ui5-dynamic-page-title-focus-area", "data-sap-focus-ref": true, tabIndex: this._tabIndex, onKeyDown: this._onkeydown, onClick: this.onTitleClick, role: "button", "aria-expanded": this._headerExpanded, "aria-labelledby": this._ariaLabelledBy, "aria-describedby": `${this._id}-toggle-description` }), this.hasSnappedTitleOnMobile ?
5
+ return (_jsxs("div", { class: "ui5-dynamic-page-title-root", children: [_jsx("span", { class: "ui5-dynamic-page-title-focus-area", "data-sap-focus-ref": true, tabIndex: this._tabIndex, onKeyDown: this._onkeydown, onClick: this.onTitleClick, role: "button", "aria-expanded": this.forAriaExpanded, "aria-labelledby": this._ariaLabelledBy, "aria-describedby": `${this._id}-toggle-description` }), this.hasSnappedTitleOnMobile ?
6
6
  _jsxs("div", { id: `${this._id}-heading`, class: "ui5-dynamic-page--snapped-title-on-mobile", children: [_jsx("slot", { name: "snappedTitleOnMobile" }), _jsx(Icon, { name: slimArrowDownIcon, mode: "Decorative" })] })
7
7
  : _jsxs(_Fragment, { children: [_jsxs("div", { class: "ui5-dynamic-page-title--top-area", children: [_jsx("slot", { name: "breadcrumbs" }), this.mobileNavigationActions &&
8
8
  _jsx("slot", { name: "navigationBar" })] }), _jsxs("div", { class: "ui5-dynamic-page-title--wrapper", "onui5-_min-content-width-change": this.onMinContentWidthChange, children: [_jsx("div", { id: `${this._id}-heading`, class: "ui5-dynamic-page-title--heading", children: _jsx("slot", { name: this.headingSlotName }) }), this.hasContent &&
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicPageTitleTemplate.js","sourceRoot":"","sources":["../src/DynamicPageTitleTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,IAAI,MAAM,iCAAiC,CAAC;AAEnD,OAAO,iBAAiB,MAAM,kDAAkD,CAAC;AAEjF,MAAM,CAAC,OAAO,UAAU,wBAAwB;IAC/C,OAAO,CACN,eAAK,KAAK,EAAC,6BAA6B,aACvC,eAAM,KAAK,EAAC,mCAAmC,8BAE9C,QAAQ,EAAE,IAAI,CAAC,SAAS,EACxB,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,IAAI,EAAC,QAAQ,mBACE,IAAI,CAAC,eAAe,qBAClB,IAAI,CAAC,eAAe,sBACnB,GAAG,IAAI,CAAC,GAAG,qBAAqB,GAC3C,EAEP,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBAC9B,eAAK,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU,EAC5B,KAAK,EAAC,2CAA2C,aAElD,eAAM,IAAI,EAAC,sBAAsB,GAAQ,EACzC,KAAC,IAAI,IAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAC,YAAY,GAAG,IAC9C;gBACN,CAAC,CAAC,8BACD,eAAK,KAAK,EAAC,kCAAkC,aAC5C,eAAM,IAAI,EAAC,aAAa,GAAQ,EAE/B,IAAI,CAAC,uBAAuB;oCAC7B,eAAM,IAAI,EAAC,eAAe,GAAQ,IAE7B,EACN,eAAK,KAAK,EAAC,iCAAiC,qCACV,IAAI,CAAC,uBAAuB,aAE7D,cAAK,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU,EAC7B,KAAK,EAAC,iCAAiC,YAEvC,eAAM,IAAI,EAAE,IAAI,CAAC,eAAe,GAAS,GACpC,EAEL,IAAI,CAAC,UAAU;oCAChB,cAAK,KAAK,EAAC,iCAAiC,EAC3C,KAAK,EAAE;4CACN,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;yCAChF,YAED,gBAAa,GACR,EAGN,eAAK,KAAK,EAAC,iCAAiC,EAC3C,KAAK,EAAE;wCACN,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;qCAChF,aAED,eAAM,IAAI,EAAC,YAAY,GAAQ,EAC9B,CAAC,IAAI,CAAC,uBAAuB,IAAI,8BAChC,IAAI,CAAC,eAAe;oDACrB,cAAK,KAAK,EAAC,2CAA2C,GAAO,EAE7D,eAAM,IAAI,EAAC,eAAe,GAAQ,IAChC,IACE,IACD,EACN,cAAK,KAAK,EAAC,oCAAoC,YAC9C,eAAM,IAAI,EAAE,IAAI,CAAC,kBAAkB,GAAS,GACvC,IACJ,EAEJ,eAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,qBAAqB,EACzC,KAAK,EAAC,iBAAiB,YACtB,IAAI,CAAC,oBAAoB,GAAQ,IAC9B,CACN,CAAC;AACH,CAAC","sourcesContent":["import Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport type DynamicPageTitle from \"./DynamicPageTitle.js\";\nimport slimArrowDownIcon from \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\n\nexport default function DynamicPageTitleTemplate(this: DynamicPageTitle) {\n\treturn (\n\t\t<div class=\"ui5-dynamic-page-title-root\">\n\t\t\t<span class=\"ui5-dynamic-page-title-focus-area\"\n\t\t\t\tdata-sap-focus-ref\n\t\t\t\ttabIndex={this._tabIndex}\n\t\t\t\tonKeyDown={this._onkeydown}\n\t\t\t\tonClick={this.onTitleClick}\n\t\t\t\trole=\"button\"\n\t\t\t\taria-expanded={this._headerExpanded}\n\t\t\t\taria-labelledby={this._ariaLabelledBy}\n\t\t\t\taria-describedby={`${this._id}-toggle-description`}\n\t\t\t></span>\n\n\t\t\t{this.hasSnappedTitleOnMobile ?\n\t\t\t\t<div id={`${this._id}-heading`}\n\t\t\t\t\t class=\"ui5-dynamic-page--snapped-title-on-mobile\"\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"snappedTitleOnMobile\"></slot>\n\t\t\t\t\t<Icon name={slimArrowDownIcon} mode=\"Decorative\" />\n\t\t\t\t</div>\n\t\t\t\t: <>\n\t\t\t\t\t<div class=\"ui5-dynamic-page-title--top-area\">\n\t\t\t\t\t\t<slot name=\"breadcrumbs\"></slot>\n\n\t\t\t\t\t\t{this.mobileNavigationActions &&\n\t\t\t\t\t\t<slot name=\"navigationBar\"></slot>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"ui5-dynamic-page-title--wrapper\"\n\t\t\t\t\t\tonui5-_min-content-width-change={this.onMinContentWidthChange}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div id={`${this._id}-heading`}\n\t\t\t\t\t\t class=\"ui5-dynamic-page-title--heading\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<slot name={this.headingSlotName}></slot>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{this.hasContent &&\n\t\t\t\t\t\t<div class=\"ui5-dynamic-page-title--content\"\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\"min-width\": this.minContentWidth ? `${this.minContentWidth || 0}px` : undefined,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t<div class=\"ui5-dynamic-page-title--actions\"\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\"min-width\": this.minActionsWidth ? `${this.minActionsWidth || 0}px` : undefined,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<slot name=\"actionsBar\"></slot>\n\t\t\t\t\t\t\t{!this.mobileNavigationActions && <>\n\t\t\t\t\t\t\t\t{this._needsSeparator &&\n\t\t\t\t\t\t\t\t<div class=\"ui5-dynamic-page-title--actions-separator\"></div>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t<slot name=\"navigationBar\"></slot>\n\t\t\t\t\t\t\t</>}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"ui5-dynamic-page-title--subheading\">\n\t\t\t\t\t\t<slot name={this.subheadingSlotName}></slot>\n\t\t\t\t\t</div>\n\t\t\t\t</>}\n\n\t\t\t<span id={`${this._id}-toggle-description`}\n\t\t\t\tclass=\"ui5-hidden-text\"\n\t\t\t>{this._ariaDescribedbyText}</span>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"file":"DynamicPageTitleTemplate.js","sourceRoot":"","sources":["../src/DynamicPageTitleTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,IAAI,MAAM,iCAAiC,CAAC;AAEnD,OAAO,iBAAiB,MAAM,kDAAkD,CAAC;AAEjF,MAAM,CAAC,OAAO,UAAU,wBAAwB;IAC/C,OAAO,CACN,eAAK,KAAK,EAAC,6BAA6B,aACvC,eAAM,KAAK,EAAC,mCAAmC,8BAE9C,QAAQ,EAAE,IAAI,CAAC,SAAS,EACxB,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,IAAI,EAAC,QAAQ,mBACE,IAAI,CAAC,eAAe,qBAClB,IAAI,CAAC,eAAe,sBACnB,GAAG,IAAI,CAAC,GAAG,qBAAqB,GAC3C,EAEP,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBAC9B,eAAK,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU,EAC5B,KAAK,EAAC,2CAA2C,aAElD,eAAM,IAAI,EAAC,sBAAsB,GAAQ,EACzC,KAAC,IAAI,IAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAC,YAAY,GAAG,IAC9C;gBACN,CAAC,CAAC,8BACD,eAAK,KAAK,EAAC,kCAAkC,aAC5C,eAAM,IAAI,EAAC,aAAa,GAAQ,EAE/B,IAAI,CAAC,uBAAuB;oCAC7B,eAAM,IAAI,EAAC,eAAe,GAAQ,IAE7B,EACN,eAAK,KAAK,EAAC,iCAAiC,qCACV,IAAI,CAAC,uBAAuB,aAE7D,cAAK,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU,EAC7B,KAAK,EAAC,iCAAiC,YAEvC,eAAM,IAAI,EAAE,IAAI,CAAC,eAAe,GAAS,GACpC,EAEL,IAAI,CAAC,UAAU;oCAChB,cAAK,KAAK,EAAC,iCAAiC,EAC3C,KAAK,EAAE;4CACN,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;yCAChF,YAED,gBAAa,GACR,EAGN,eAAK,KAAK,EAAC,iCAAiC,EAC3C,KAAK,EAAE;wCACN,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;qCAChF,aAED,eAAM,IAAI,EAAC,YAAY,GAAQ,EAC9B,CAAC,IAAI,CAAC,uBAAuB,IAAI,8BAChC,IAAI,CAAC,eAAe;oDACrB,cAAK,KAAK,EAAC,2CAA2C,GAAO,EAE7D,eAAM,IAAI,EAAC,eAAe,GAAQ,IAChC,IACE,IACD,EACN,cAAK,KAAK,EAAC,oCAAoC,YAC9C,eAAM,IAAI,EAAE,IAAI,CAAC,kBAAkB,GAAS,GACvC,IACJ,EAEJ,eAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,qBAAqB,EACzC,KAAK,EAAC,iBAAiB,YACtB,IAAI,CAAC,oBAAoB,GAAQ,IAC9B,CACN,CAAC;AACH,CAAC","sourcesContent":["import Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport type DynamicPageTitle from \"./DynamicPageTitle.js\";\nimport slimArrowDownIcon from \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\n\nexport default function DynamicPageTitleTemplate(this: DynamicPageTitle) {\n\treturn (\n\t\t<div class=\"ui5-dynamic-page-title-root\">\n\t\t\t<span class=\"ui5-dynamic-page-title-focus-area\"\n\t\t\t\tdata-sap-focus-ref\n\t\t\t\ttabIndex={this._tabIndex}\n\t\t\t\tonKeyDown={this._onkeydown}\n\t\t\t\tonClick={this.onTitleClick}\n\t\t\t\trole=\"button\"\n\t\t\t\taria-expanded={this.forAriaExpanded}\n\t\t\t\taria-labelledby={this._ariaLabelledBy}\n\t\t\t\taria-describedby={`${this._id}-toggle-description`}\n\t\t\t></span>\n\n\t\t\t{this.hasSnappedTitleOnMobile ?\n\t\t\t\t<div id={`${this._id}-heading`}\n\t\t\t\t\t class=\"ui5-dynamic-page--snapped-title-on-mobile\"\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"snappedTitleOnMobile\"></slot>\n\t\t\t\t\t<Icon name={slimArrowDownIcon} mode=\"Decorative\" />\n\t\t\t\t</div>\n\t\t\t\t: <>\n\t\t\t\t\t<div class=\"ui5-dynamic-page-title--top-area\">\n\t\t\t\t\t\t<slot name=\"breadcrumbs\"></slot>\n\n\t\t\t\t\t\t{this.mobileNavigationActions &&\n\t\t\t\t\t\t<slot name=\"navigationBar\"></slot>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"ui5-dynamic-page-title--wrapper\"\n\t\t\t\t\t\tonui5-_min-content-width-change={this.onMinContentWidthChange}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div id={`${this._id}-heading`}\n\t\t\t\t\t\t class=\"ui5-dynamic-page-title--heading\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<slot name={this.headingSlotName}></slot>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{this.hasContent &&\n\t\t\t\t\t\t<div class=\"ui5-dynamic-page-title--content\"\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\"min-width\": this.minContentWidth ? `${this.minContentWidth || 0}px` : undefined,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t<div class=\"ui5-dynamic-page-title--actions\"\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\"min-width\": this.minActionsWidth ? `${this.minActionsWidth || 0}px` : undefined,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<slot name=\"actionsBar\"></slot>\n\t\t\t\t\t\t\t{!this.mobileNavigationActions && <>\n\t\t\t\t\t\t\t\t{this._needsSeparator &&\n\t\t\t\t\t\t\t\t<div class=\"ui5-dynamic-page-title--actions-separator\"></div>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t<slot name=\"navigationBar\"></slot>\n\t\t\t\t\t\t\t</>}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"ui5-dynamic-page-title--subheading\">\n\t\t\t\t\t\t<slot name={this.subheadingSlotName}></slot>\n\t\t\t\t\t</div>\n\t\t\t\t</>}\n\n\t\t\t<span id={`${this._id}-toggle-description`}\n\t\t\t\tclass=\"ui5-hidden-text\"\n\t\t\t>{this._ariaDescribedbyText}</span>\n\t\t</div>\n\t);\n}\n"]}
@@ -60,8 +60,9 @@ declare class NavigationMenuItem extends MenuItem {
60
60
  role: import("@ui5/webcomponents-base/dist/types.js").AriaRole;
61
61
  ariaHaspopup?: `${import("@ui5/webcomponents-base/dist/types.js").AriaHasPopup}`;
62
62
  ariaKeyShortcuts?: string;
63
- ariaHidden?: boolean;
64
63
  ariaExpanded?: boolean;
64
+ ariaHidden?: boolean;
65
+ ariaChecked?: boolean;
65
66
  ariaLevel?: number;
66
67
  ariaLabel: string;
67
68
  ariaLabelRadioButton: string;
@@ -69,7 +70,6 @@ declare class NavigationMenuItem extends MenuItem {
69
70
  posinset?: number;
70
71
  setsize?: number;
71
72
  ariaSelected?: boolean;
72
- ariaChecked?: boolean;
73
73
  listItemAriaLabel?: string;
74
74
  ariaOwns?: string;
75
75
  tooltip?: string;
@@ -77,7 +77,6 @@ declare class NavigationMenuItem extends MenuItem {
77
77
  get classes(): ClassMap;
78
78
  _onclick(e: MouseEvent): void;
79
79
  _activate(e: MouseEvent | KeyboardEvent): void;
80
- _handleFocus(associatedItem: SideNavigationSelectableItemBase): void;
81
80
  _onkeydown(e: KeyboardEvent): Promise<void>;
82
81
  _onkeyup(e: KeyboardEvent): void;
83
82
  get acessibleNameText(): string;
@@ -97,20 +97,7 @@ let NavigationMenuItem = class NavigationMenuItem extends MenuItem {
97
97
  sideNav?._selectItem(item);
98
98
  }
99
99
  if (!this.hasSubmenu) {
100
- sideNav?.closeMenu();
101
- this._handleFocus(item);
102
- }
103
- }
104
- _handleFocus(associatedItem) {
105
- const sideNavigation = associatedItem.sideNavigation;
106
- if (associatedItem.nodeName.toLowerCase() === "ui5-side-navigation-sub-item") {
107
- const parent = associatedItem.parentElement;
108
- sideNavigation?.focusItem(parent);
109
- parent?.focus();
110
- }
111
- else {
112
- sideNavigation?.focusItem(associatedItem);
113
- associatedItem?.focus();
100
+ sideNav?.closeMenu(shouldSelect);
114
101
  }
115
102
  }
116
103
  async _onkeydown(e) {
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenuItem.js","sourceRoot":"","sources":["../src/NavigationMenuItem.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type { ClassMap } from \"@ui5/webcomponents-base/dist/types.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport MenuItem from \"@ui5/webcomponents/dist/MenuItem.js\";\nimport type SideNavigationItemDesign from \"./types/SideNavigationItemDesign.js\";\nimport NavigationMenu from \"./NavigationMenu.js\";\nimport { isSpace, isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type SideNavigationSelectableItemBase from \"./SideNavigationSelectableItemBase.js\";\n\n// Templates\nimport NavigationMenuItemTemplate from \"./NavigationMenuItemTemplate.js\";\n\n// Styles\nimport navigationMenuItemCss from \"./generated/themes/NavigationMenuItem.css.js\";\n\nimport {\n\tNAVIGATION_MENU_POPOVER_HIDDEN_TEXT,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport type SideNavigationItem from \"./SideNavigationItem.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * `ui5-navigation-menu-item` is the item to use inside a `ui5-navigation-menu`.\n * An arbitrary hierarchy structure can be represented by recursively nesting navigation menu items.\n *\n * ### Usage\n *\n * `ui5-navigation-menu-item` represents a node in a `ui5-navigation-menu`. The navigation menu itself is rendered as a list,\n * and each `ui5-navigation-menu-item` is represented by a list item in that list. Therefore, you should only use\n * `ui5-navigation-menu-item` directly in your apps. The `ui5-li` list item is internal for the list, and not intended for public use.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/NavigationMenuItem.js\";`\n * @constructor\n * @extends MenuItem\n * @since 1.22.0\n * @private\n */\n@customElement({\n\trenderer: jsxRenderer,\n\ttag: \"ui5-navigation-menu-item\",\n\ttemplate: NavigationMenuItemTemplate,\n\tstyles: [MenuItem.styles, navigationMenuItemCss],\n})\nclass NavigationMenuItem extends MenuItem {\n\t/**\n\t * Defines the link target URI. Supports standard hyperlink behavior.\n\t * If a JavaScript action should be triggered,\n\t * this should not be set, but instead an event handler\n\t * for the `click` event should be registered.\n\t * @public\n\t * @default undefined\n\t * @since 1.22.0\n\t */\n\t@property()\n\thref?: string;\n\n\t/**\n\t * Defines the component target.\n\t *\n\t * **Notes:**\n\t *\n\t * - `_self`\n\t * - `_top`\n\t * - `_blank`\n\t * - `_parent`\n\t * - `_search`\n\t *\n\t * **This property must only be used when the `href` property is set.**\n\t * @public\n\t * @default undefined\n\t * @since 1.22.0\n\t */\n\t@property()\n\ttarget?: string;\n\n\t@property()\n\tdesign: `${SideNavigationItemDesign}` = \"Default\";\n\n\tassociatedItem?: SideNavigationSelectableItemBase;\n\n\tget isExternalLink() {\n\t\treturn this.href && this.target === \"_blank\";\n\t}\n\n\tget _href() {\n\t\treturn (!this.disabled && this.href) ? this.href : undefined;\n\t}\n\n\tget _accInfo() {\n\t\tconst accInfo = super._accInfo;\n\n\t\taccInfo.role = this.href ? \"none\" : \"treeitem\";\n\n\t\tif (!accInfo.ariaHaspopup) {\n\t\t\taccInfo.ariaHaspopup = this.accessibilityAttributes.hasPopup;\n\t\t}\n\n\t\treturn accInfo;\n\t}\n\n\tget classes(): ClassMap {\n\t\tconst result = super.classes;\n\n\t\tresult.main[\"ui5-navigation-menu-item-root\"] = true;\n\n\t\treturn result;\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tthis._activate(e);\n\t}\n\n\t_activate(e: MouseEvent | KeyboardEvent) {\n\t\te.stopPropagation();\n\n\t\tconst item = this.associatedItem;\n\n\t\tif (this.disabled || !item) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst sideNav = item.sideNavigation;\n\t\tconst overflowMenu = sideNav?.getOverflowPopover();\n\t\tconst isSelectable = item.isSelectable;\n\n\t\tconst executeEvent = item.fireDecoratorEvent(\"click\", {\n\t\t\taltKey: e.altKey,\n\t\t\tctrlKey: e.ctrlKey,\n\t\t\tmetaKey: e.metaKey,\n\t\t\tshiftKey: e.shiftKey,\n\t\t});\n\n\t\tif (!executeEvent) {\n\t\t\te.preventDefault();\n\n\t\t\tif (this.hasSubmenu) {\n\t\t\t\toverflowMenu?._openItemSubMenu(this);\n\t\t\t} else {\n\t\t\t\tsideNav?.closeMenu();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst shouldSelect = !this.hasSubmenu && isSelectable;\n\n\t\tif (this.hasSubmenu) {\n\t\t\toverflowMenu?._openItemSubMenu(this);\n\t\t}\n\n\t\tif (shouldSelect) {\n\t\t\tsideNav?._selectItem(item);\n\t\t}\n\n\t\tif (!this.hasSubmenu) {\n\t\t\tsideNav?.closeMenu();\n\t\t\tthis._handleFocus(item);\n\t\t}\n\t}\n\n\t_handleFocus(associatedItem: SideNavigationSelectableItemBase) {\n\t\tconst sideNavigation = associatedItem.sideNavigation;\n\n\t\tif (associatedItem.nodeName.toLowerCase() === \"ui5-side-navigation-sub-item\") {\n\t\t\tconst parent = associatedItem.parentElement as SideNavigationItem;\n\t\t\tsideNavigation?.focusItem(parent);\n\t\t\tparent?.focus();\n\t\t} else {\n\t\t\tsideNavigation?.focusItem(associatedItem);\n\t\t\tassociatedItem?.focus();\n\t\t}\n\t}\n\n\tasync _onkeydown(e: KeyboardEvent): Promise<void> {\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis._activate(e);\n\t\t}\n\n\t\treturn Promise.resolve();\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._activate(e);\n\n\t\t\tif (this.href && !e.defaultPrevented) {\n\t\t\t\tconst customEvent = new MouseEvent(\"click\");\n\n\t\t\t\tcustomEvent.stopImmediatePropagation();\n\t\t\t\tif (this.getDomRef()!.querySelector(\"a\")) {\n\t\t\t\t\tthis.getDomRef()!.querySelector(\"a\")!.dispatchEvent(customEvent);\n\t\t\t\t} else {\n\t\t\t\t\t// when Side Navigation is collapsed and it is first level item we have directly <a> element\n\t\t\t\t\tthis.getDomRef()!.dispatchEvent(customEvent);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tget acessibleNameText() {\n\t\treturn NavigationMenu.i18nBundle.getText(NAVIGATION_MENU_POPOVER_HIDDEN_TEXT);\n\t}\n}\n\nNavigationMenuItem.define();\n\nexport default NavigationMenuItem;\n"]}
1
+ {"version":3,"file":"NavigationMenuItem.js","sourceRoot":"","sources":["../src/NavigationMenuItem.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type { ClassMap } from \"@ui5/webcomponents-base/dist/types.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport MenuItem from \"@ui5/webcomponents/dist/MenuItem.js\";\nimport type SideNavigationItemDesign from \"./types/SideNavigationItemDesign.js\";\nimport NavigationMenu from \"./NavigationMenu.js\";\nimport { isSpace, isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type SideNavigationSelectableItemBase from \"./SideNavigationSelectableItemBase.js\";\n\n// Templates\nimport NavigationMenuItemTemplate from \"./NavigationMenuItemTemplate.js\";\n\n// Styles\nimport navigationMenuItemCss from \"./generated/themes/NavigationMenuItem.css.js\";\n\nimport {\n\tNAVIGATION_MENU_POPOVER_HIDDEN_TEXT,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * `ui5-navigation-menu-item` is the item to use inside a `ui5-navigation-menu`.\n * An arbitrary hierarchy structure can be represented by recursively nesting navigation menu items.\n *\n * ### Usage\n *\n * `ui5-navigation-menu-item` represents a node in a `ui5-navigation-menu`. The navigation menu itself is rendered as a list,\n * and each `ui5-navigation-menu-item` is represented by a list item in that list. Therefore, you should only use\n * `ui5-navigation-menu-item` directly in your apps. The `ui5-li` list item is internal for the list, and not intended for public use.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/NavigationMenuItem.js\";`\n * @constructor\n * @extends MenuItem\n * @since 1.22.0\n * @private\n */\n@customElement({\n\trenderer: jsxRenderer,\n\ttag: \"ui5-navigation-menu-item\",\n\ttemplate: NavigationMenuItemTemplate,\n\tstyles: [MenuItem.styles, navigationMenuItemCss],\n})\nclass NavigationMenuItem extends MenuItem {\n\t/**\n\t * Defines the link target URI. Supports standard hyperlink behavior.\n\t * If a JavaScript action should be triggered,\n\t * this should not be set, but instead an event handler\n\t * for the `click` event should be registered.\n\t * @public\n\t * @default undefined\n\t * @since 1.22.0\n\t */\n\t@property()\n\thref?: string;\n\n\t/**\n\t * Defines the component target.\n\t *\n\t * **Notes:**\n\t *\n\t * - `_self`\n\t * - `_top`\n\t * - `_blank`\n\t * - `_parent`\n\t * - `_search`\n\t *\n\t * **This property must only be used when the `href` property is set.**\n\t * @public\n\t * @default undefined\n\t * @since 1.22.0\n\t */\n\t@property()\n\ttarget?: string;\n\n\t@property()\n\tdesign: `${SideNavigationItemDesign}` = \"Default\";\n\n\tassociatedItem?: SideNavigationSelectableItemBase;\n\n\tget isExternalLink() {\n\t\treturn this.href && this.target === \"_blank\";\n\t}\n\n\tget _href() {\n\t\treturn (!this.disabled && this.href) ? this.href : undefined;\n\t}\n\n\tget _accInfo() {\n\t\tconst accInfo = super._accInfo;\n\n\t\taccInfo.role = this.href ? \"none\" : \"treeitem\";\n\n\t\tif (!accInfo.ariaHaspopup) {\n\t\t\taccInfo.ariaHaspopup = this.accessibilityAttributes.hasPopup;\n\t\t}\n\n\t\treturn accInfo;\n\t}\n\n\tget classes(): ClassMap {\n\t\tconst result = super.classes;\n\n\t\tresult.main[\"ui5-navigation-menu-item-root\"] = true;\n\n\t\treturn result;\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tthis._activate(e);\n\t}\n\n\t_activate(e: MouseEvent | KeyboardEvent) {\n\t\te.stopPropagation();\n\n\t\tconst item = this.associatedItem;\n\n\t\tif (this.disabled || !item) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst sideNav = item.sideNavigation;\n\t\tconst overflowMenu = sideNav?.getOverflowPopover();\n\t\tconst isSelectable = item.isSelectable;\n\n\t\tconst executeEvent = item.fireDecoratorEvent(\"click\", {\n\t\t\taltKey: e.altKey,\n\t\t\tctrlKey: e.ctrlKey,\n\t\t\tmetaKey: e.metaKey,\n\t\t\tshiftKey: e.shiftKey,\n\t\t});\n\n\t\tif (!executeEvent) {\n\t\t\te.preventDefault();\n\n\t\t\tif (this.hasSubmenu) {\n\t\t\t\toverflowMenu?._openItemSubMenu(this);\n\t\t\t} else {\n\t\t\t\tsideNav?.closeMenu();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst shouldSelect = !this.hasSubmenu && isSelectable;\n\n\t\tif (this.hasSubmenu) {\n\t\t\toverflowMenu?._openItemSubMenu(this);\n\t\t}\n\n\t\tif (shouldSelect) {\n\t\t\tsideNav?._selectItem(item);\n\t\t}\n\n\t\tif (!this.hasSubmenu) {\n\t\t\tsideNav?.closeMenu(shouldSelect);\n\t\t}\n\t}\n\n\tasync _onkeydown(e: KeyboardEvent): Promise<void> {\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis._activate(e);\n\t\t}\n\n\t\treturn Promise.resolve();\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._activate(e);\n\n\t\t\tif (this.href && !e.defaultPrevented) {\n\t\t\t\tconst customEvent = new MouseEvent(\"click\");\n\n\t\t\t\tcustomEvent.stopImmediatePropagation();\n\t\t\t\tif (this.getDomRef()!.querySelector(\"a\")) {\n\t\t\t\t\tthis.getDomRef()!.querySelector(\"a\")!.dispatchEvent(customEvent);\n\t\t\t\t} else {\n\t\t\t\t\t// when Side Navigation is collapsed and it is first level item we have directly <a> element\n\t\t\t\t\tthis.getDomRef()!.dispatchEvent(customEvent);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tget acessibleNameText() {\n\t\treturn NavigationMenu.i18nBundle.getText(NAVIGATION_MENU_POPOVER_HIDDEN_TEXT);\n\t}\n}\n\nNavigationMenuItem.define();\n\nexport default NavigationMenuItem;\n"]}
@@ -5,7 +5,7 @@ import BusyIndicator from "@ui5/webcomponents/dist/BusyIndicator.js";
5
5
  import ResponsivePopover from "@ui5/webcomponents/dist/ResponsivePopover.js";
6
6
  import declineIcon from "@ui5/webcomponents-icons/dist/decline.js";
7
7
  export default function NavigationMenuTemplate() {
8
- return (_jsxs(ResponsivePopover, { id: `${this._id}-navigation-menu-rp`, class: "ui5-menu-rp ui5-navigation-menu", verticalAlign: "Center", opener: this.opener, open: this.open, preventInitialFocus: true, preventFocusRestore: true, accessibleNameRef: `${this._id}-navigationMenuPopoverText`, onBeforeOpen: this._beforePopoverOpen, onOpen: this._afterPopoverOpen, onBeforeClose: this._beforePopoverClose, onClose: this._afterPopoverClose, hideArrow: true, children: [_jsx("span", { id: `${this._id}-navigationMenuPopoverText`, class: "ui5-hidden-text", children: this.accSideNavigationPopoverHiddenText }), this.isPhone &&
8
+ return (_jsxs(ResponsivePopover, { id: `${this._id}-navigation-menu-rp`, class: "ui5-menu-rp ui5-navigation-menu", verticalAlign: "Center", opener: this.opener, open: this.open, preventInitialFocus: true, accessibleNameRef: `${this._id}-navigationMenuPopoverText`, onBeforeOpen: this._beforePopoverOpen, onOpen: this._afterPopoverOpen, onBeforeClose: this._beforePopoverClose, onClose: this._afterPopoverClose, hideArrow: true, children: [_jsx("span", { id: `${this._id}-navigationMenuPopoverText`, class: "ui5-hidden-text", children: this.accSideNavigationPopoverHiddenText }), this.isPhone &&
9
9
  _jsxs("div", { slot: "header", class: "ui5-menu-dialog-header", children: [_jsx("div", { class: "ui5-menu-dialog-title", children: _jsx("div", { children: this.headerText }) }), _jsx(Button, { icon: declineIcon, design: "Transparent", "aria-label": this.labelClose, onClick: this._close })] }), _jsx("div", { id: `${this._id}-menu-main`, class: "ui5-navigation-menu-main", children: this.items.length > 0 ?
10
10
  _jsx(List, { id: `${this._id}-menu-list`, accessibleRole: "Tree", selectionMode: "None", loading: this.loading, loadingDelay: this.loadingDelay, separators: "None", onItemClick: this._itemClick, onKeyDown: this._itemKeyDown, "onui5-close-menu": this._close, children: _jsx("slot", {}) })
11
11
  :
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenuTemplate.js","sourceRoot":"","sources":["../src/NavigationMenuTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,MAAM,MAAM,mCAAmC,CAAC;AACvD,OAAO,aAAa,MAAM,0CAA0C,CAAC;AACrE,OAAO,iBAAiB,MAAM,8CAA8C,CAAC;AAE7E,OAAO,WAAW,MAAM,0CAA0C,CAAC;AAEnE,MAAM,CAAC,OAAO,UAAU,sBAAsB;IAC7C,OAAO,CACN,MAAC,iBAAiB,IACjB,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,qBAAqB,EACpC,KAAK,EAAC,iCAAiC,EACvC,aAAa,EAAC,QAAQ,EACtB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,mBAAmB,EAAE,IAAI,EACzB,mBAAmB,EAAE,IAAI,EACzB,iBAAiB,EAAE,GAAG,IAAI,CAAC,GAAG,4BAA4B,EAC1D,YAAY,EAAE,IAAI,CAAC,kBAAkB,EACrC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAC9B,aAAa,EAAE,IAAI,CAAC,mBAAmB,EACvC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAChC,SAAS,EAAE,IAAI,aAEf,eAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,4BAA4B,EAAE,KAAK,EAAC,iBAAiB,YAAE,IAAI,CAAC,kCAAkC,GAAQ,EAC1H,IAAI,CAAC,OAAO;gBACZ,eAAK,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,wBAAwB,aAChD,cAAK,KAAK,EAAC,uBAAuB,YACjC,wBAAM,IAAI,CAAC,UAAU,GAAO,GACvB,EACN,KAAC,MAAM,IACN,IAAI,EAAE,WAAW,EACjB,MAAM,EAAC,aAAa,gBACR,IAAI,CAAC,UAAU,EAC3B,OAAO,EAAE,IAAI,CAAC,MAAM,GAEZ,IACJ,EAEP,cAAK,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,YAAY,EAAE,KAAK,EAAC,0BAA0B,YAChE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACvB,KAAC,IAAI,IACJ,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,YAAY,EAC3B,cAAc,EAAC,MAAM,EACrB,aAAa,EAAC,MAAM,EACpB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,UAAU,EAAC,MAAM,EACjB,WAAW,EAAE,IAAI,CAAC,UAAU,EAC5B,SAAS,EAAE,IAAI,CAAC,YAAY,sBAEV,IAAI,CAAC,MAAM,YAE7B,gBAAa,GACP;oBACP,CAAC;wBACD,IAAI,CAAC,OAAO;4BACX,KAAC,aAAa,IACb,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,sBAAsB,EACrC,MAAM,EAAE,IAAI,EACZ,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,KAAK,EAAC,yBAAyB,GACf,GAEd,IACa,CACpB,CAAC;AACH,CAAC","sourcesContent":["import List from \"@ui5/webcomponents/dist/List.js\";\nimport Button from \"@ui5/webcomponents/dist/Button.js\";\nimport BusyIndicator from \"@ui5/webcomponents/dist/BusyIndicator.js\";\nimport ResponsivePopover from \"@ui5/webcomponents/dist/ResponsivePopover.js\";\nimport type NavigationMenu from \"./NavigationMenu.js\";\nimport declineIcon from \"@ui5/webcomponents-icons/dist/decline.js\";\n\nexport default function NavigationMenuTemplate(this: NavigationMenu) {\n\treturn (\n\t\t<ResponsivePopover\n\t\t\tid={`${this._id}-navigation-menu-rp`}\n\t\t\tclass=\"ui5-menu-rp ui5-navigation-menu\"\n\t\t\tverticalAlign=\"Center\"\n\t\t\topener={this.opener}\n\t\t\topen={this.open}\n\t\t\tpreventInitialFocus={true}\n\t\t\tpreventFocusRestore={true}\n\t\t\taccessibleNameRef={`${this._id}-navigationMenuPopoverText`}\n\t\t\tonBeforeOpen={this._beforePopoverOpen}\n\t\t\tonOpen={this._afterPopoverOpen}\n\t\t\tonBeforeClose={this._beforePopoverClose}\n\t\t\tonClose={this._afterPopoverClose}\n\t\t\thideArrow={true}\n\t\t>\n\t\t\t<span id={`${this._id}-navigationMenuPopoverText`} class=\"ui5-hidden-text\">{this.accSideNavigationPopoverHiddenText}</span>\n\t\t\t{this.isPhone &&\n\t\t\t\t<div slot=\"header\" class=\"ui5-menu-dialog-header\">\n\t\t\t\t\t<div class=\"ui5-menu-dialog-title\">\n\t\t\t\t\t\t<div>{this.headerText}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={declineIcon}\n\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\taria-label={this.labelClose}\n\t\t\t\t\t\tonClick={this._close}\n\t\t\t\t\t>\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t<div id={`${this._id}-menu-main`} class=\"ui5-navigation-menu-main\">\n\t\t\t\t{this.items.length > 0 ?\n\t\t\t\t\t<List\n\t\t\t\t\t\tid={`${this._id}-menu-list`}\n\t\t\t\t\t\taccessibleRole=\"Tree\"\n\t\t\t\t\t\tselectionMode=\"None\"\n\t\t\t\t\t\tloading={this.loading}\n\t\t\t\t\t\tloadingDelay={this.loadingDelay}\n\t\t\t\t\t\tseparators=\"None\"\n\t\t\t\t\t\tonItemClick={this._itemClick}\n\t\t\t\t\t\tonKeyDown={this._itemKeyDown}\n\t\t\t\t\t\t// events bubbling from slotted items\n\t\t\t\t\t\tonui5-close-menu={this._close}\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</List>\n\t\t\t\t\t:\n\t\t\t\t\tthis.loading &&\n\t\t\t\t\t\t<BusyIndicator\n\t\t\t\t\t\t\tid={`${this._id}-menu-busy-indicator`}\n\t\t\t\t\t\t\tactive={true}\n\t\t\t\t\t\t\tdelay={this.loadingDelay}\n\t\t\t\t\t\t\tclass=\"ui5-menu-busy-indicator\"\n\t\t\t\t\t\t></BusyIndicator>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</ResponsivePopover>\n\t);\n}\n"]}
1
+ {"version":3,"file":"NavigationMenuTemplate.js","sourceRoot":"","sources":["../src/NavigationMenuTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,MAAM,MAAM,mCAAmC,CAAC;AACvD,OAAO,aAAa,MAAM,0CAA0C,CAAC;AACrE,OAAO,iBAAiB,MAAM,8CAA8C,CAAC;AAE7E,OAAO,WAAW,MAAM,0CAA0C,CAAC;AAEnE,MAAM,CAAC,OAAO,UAAU,sBAAsB;IAC7C,OAAO,CACN,MAAC,iBAAiB,IACjB,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,qBAAqB,EACpC,KAAK,EAAC,iCAAiC,EACvC,aAAa,EAAC,QAAQ,EACtB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,mBAAmB,EAAE,IAAI,EACzB,iBAAiB,EAAE,GAAG,IAAI,CAAC,GAAG,4BAA4B,EAC1D,YAAY,EAAE,IAAI,CAAC,kBAAkB,EACrC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAC9B,aAAa,EAAE,IAAI,CAAC,mBAAmB,EACvC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAChC,SAAS,EAAE,IAAI,aAEf,eAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,4BAA4B,EAAE,KAAK,EAAC,iBAAiB,YAAE,IAAI,CAAC,kCAAkC,GAAQ,EAC1H,IAAI,CAAC,OAAO;gBACZ,eAAK,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,wBAAwB,aAChD,cAAK,KAAK,EAAC,uBAAuB,YACjC,wBAAM,IAAI,CAAC,UAAU,GAAO,GACvB,EACN,KAAC,MAAM,IACN,IAAI,EAAE,WAAW,EACjB,MAAM,EAAC,aAAa,gBACR,IAAI,CAAC,UAAU,EAC3B,OAAO,EAAE,IAAI,CAAC,MAAM,GAEZ,IACJ,EAEP,cAAK,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,YAAY,EAAE,KAAK,EAAC,0BAA0B,YAChE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACvB,KAAC,IAAI,IACJ,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,YAAY,EAC3B,cAAc,EAAC,MAAM,EACrB,aAAa,EAAC,MAAM,EACpB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,UAAU,EAAC,MAAM,EACjB,WAAW,EAAE,IAAI,CAAC,UAAU,EAC5B,SAAS,EAAE,IAAI,CAAC,YAAY,sBAEV,IAAI,CAAC,MAAM,YAE7B,gBAAa,GACP;oBACP,CAAC;wBACD,IAAI,CAAC,OAAO;4BACX,KAAC,aAAa,IACb,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,sBAAsB,EACrC,MAAM,EAAE,IAAI,EACZ,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,KAAK,EAAC,yBAAyB,GACf,GAEd,IACa,CACpB,CAAC;AACH,CAAC","sourcesContent":["import List from \"@ui5/webcomponents/dist/List.js\";\nimport Button from \"@ui5/webcomponents/dist/Button.js\";\nimport BusyIndicator from \"@ui5/webcomponents/dist/BusyIndicator.js\";\nimport ResponsivePopover from \"@ui5/webcomponents/dist/ResponsivePopover.js\";\nimport type NavigationMenu from \"./NavigationMenu.js\";\nimport declineIcon from \"@ui5/webcomponents-icons/dist/decline.js\";\n\nexport default function NavigationMenuTemplate(this: NavigationMenu) {\n\treturn (\n\t\t<ResponsivePopover\n\t\t\tid={`${this._id}-navigation-menu-rp`}\n\t\t\tclass=\"ui5-menu-rp ui5-navigation-menu\"\n\t\t\tverticalAlign=\"Center\"\n\t\t\topener={this.opener}\n\t\t\topen={this.open}\n\t\t\tpreventInitialFocus={true}\n\t\t\taccessibleNameRef={`${this._id}-navigationMenuPopoverText`}\n\t\t\tonBeforeOpen={this._beforePopoverOpen}\n\t\t\tonOpen={this._afterPopoverOpen}\n\t\t\tonBeforeClose={this._beforePopoverClose}\n\t\t\tonClose={this._afterPopoverClose}\n\t\t\thideArrow={true}\n\t\t>\n\t\t\t<span id={`${this._id}-navigationMenuPopoverText`} class=\"ui5-hidden-text\">{this.accSideNavigationPopoverHiddenText}</span>\n\t\t\t{this.isPhone &&\n\t\t\t\t<div slot=\"header\" class=\"ui5-menu-dialog-header\">\n\t\t\t\t\t<div class=\"ui5-menu-dialog-title\">\n\t\t\t\t\t\t<div>{this.headerText}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={declineIcon}\n\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\taria-label={this.labelClose}\n\t\t\t\t\t\tonClick={this._close}\n\t\t\t\t\t>\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t<div id={`${this._id}-menu-main`} class=\"ui5-navigation-menu-main\">\n\t\t\t\t{this.items.length > 0 ?\n\t\t\t\t\t<List\n\t\t\t\t\t\tid={`${this._id}-menu-list`}\n\t\t\t\t\t\taccessibleRole=\"Tree\"\n\t\t\t\t\t\tselectionMode=\"None\"\n\t\t\t\t\t\tloading={this.loading}\n\t\t\t\t\t\tloadingDelay={this.loadingDelay}\n\t\t\t\t\t\tseparators=\"None\"\n\t\t\t\t\t\tonItemClick={this._itemClick}\n\t\t\t\t\t\tonKeyDown={this._itemKeyDown}\n\t\t\t\t\t\t// events bubbling from slotted items\n\t\t\t\t\t\tonui5-close-menu={this._close}\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</List>\n\t\t\t\t\t:\n\t\t\t\t\tthis.loading &&\n\t\t\t\t\t\t<BusyIndicator\n\t\t\t\t\t\t\tid={`${this._id}-menu-busy-indicator`}\n\t\t\t\t\t\t\tactive={true}\n\t\t\t\t\t\t\tdelay={this.loadingDelay}\n\t\t\t\t\t\t\tclass=\"ui5-menu-busy-indicator\"\n\t\t\t\t\t\t></BusyIndicator>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</ResponsivePopover>\n\t);\n}\n"]}
@@ -309,21 +309,24 @@ declare class ShellBar extends UI5Element {
309
309
  _lastOffsetWidth: number;
310
310
  _observableContent: Array<HTMLElement>;
311
311
  _autoRestoreSearchField: boolean;
312
+ _onSearchOpenBound: (e: Event) => void;
313
+ _onSearchCloseBound: (e: Event) => void;
314
+ _onSearchBound: (e: Event) => void;
312
315
  _headerPress: () => void;
313
- onSearchOpen: () => void;
314
- onSearchClose: () => void;
315
- onSearch: () => void;
316
316
  static get FIORI_3_BREAKPOINTS(): number[];
317
317
  static get FIORI_3_BREAKPOINTS_MAP(): Record<string, string>;
318
318
  constructor();
319
+ _onSearchOpen(e: Event): void;
320
+ _onSearchClose(e: Event): void;
321
+ _onSearch(e: Event): void;
319
322
  _updateSearchFieldState(): void;
320
323
  _onKeyDown(e: KeyboardEvent): void;
324
+ private _allowChildNavigation;
325
+ private _allowInputNavigation;
321
326
  _focusNextItem(items: HTMLElement[], currentIndex: number): void;
322
327
  _focusPreviousItem(items: HTMLElement[], currentIndex: number): void;
323
328
  _isVisible(element: HTMLElement): boolean;
324
- _getNavigableContent(): HTMLElement[];
325
329
  _getRightChildItems(): HTMLElement[];
326
- _getVisibleAndInteractiveItems(): HTMLElement[];
327
330
  _menuItemPress(e: CustomEvent<ListItemClickEventDetail>): void;
328
331
  _logoPress(): void;
329
332
  _menuPopoverBeforeOpen(): void;
@@ -359,6 +362,8 @@ declare class ShellBar extends UI5Element {
359
362
  _toggleActionPopover(): void;
360
363
  onEnterDOM(): void;
361
364
  onExitDOM(): void;
365
+ _attachSearchFieldListeners(searchField: HTMLElement | null): void;
366
+ _detachSearchFieldListeners(searchField: HTMLElement | null): void;
362
367
  _handleSearchIconPress(): void;
363
368
  _handleActionListClick(): Promise<void>;
364
369
  _handleCustomActionPress(e: UI5CustomEvent<Button, "click">): void;
@@ -521,7 +526,7 @@ declare class ShellBar extends UI5Element {
521
526
  get hasSelfCollapsibleSearch(): boolean;
522
527
  get search(): Input | null;
523
528
  }
524
- interface IShellBarSelfCollapsibleSearch {
529
+ interface IShellBarSelfCollapsibleSearch extends UI5Element {
525
530
  collapsed: boolean;
526
531
  open: boolean;
527
532
  }