@ui5/webcomponents-fiori 2.5.0-rc.2 → 2.5.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +3 -0
  3. package/cypress/specs/UserMenu.cy.ts +345 -0
  4. package/dist/.tsbuildinfo +1 -1
  5. package/dist/BarcodeScannerDialog.d.ts +5 -0
  6. package/dist/BarcodeScannerDialog.js +1 -17
  7. package/dist/BarcodeScannerDialog.js.map +1 -1
  8. package/dist/DynamicPage.d.ts +4 -0
  9. package/dist/DynamicPage.js +1 -1
  10. package/dist/DynamicPage.js.map +1 -1
  11. package/dist/DynamicPageHeaderActions.d.ts +6 -0
  12. package/dist/DynamicPageHeaderActions.js +1 -1
  13. package/dist/DynamicPageHeaderActions.js.map +1 -1
  14. package/dist/DynamicPageTitle.d.ts +3 -0
  15. package/dist/DynamicPageTitle.js +1 -1
  16. package/dist/DynamicPageTitle.js.map +1 -1
  17. package/dist/DynamicSideContent.d.ts +3 -0
  18. package/dist/DynamicSideContent.js +1 -27
  19. package/dist/DynamicSideContent.js.map +1 -1
  20. package/dist/FlexibleColumnLayout.d.ts +3 -0
  21. package/dist/FlexibleColumnLayout.js +1 -31
  22. package/dist/FlexibleColumnLayout.js.map +1 -1
  23. package/dist/MediaGallery.d.ts +5 -0
  24. package/dist/MediaGallery.js +1 -7
  25. package/dist/MediaGallery.js.map +1 -1
  26. package/dist/MediaGalleryItem.d.ts +5 -0
  27. package/dist/MediaGalleryItem.js +1 -1
  28. package/dist/MediaGalleryItem.js.map +1 -1
  29. package/dist/NotificationList.d.ts +6 -0
  30. package/dist/NotificationList.js +1 -19
  31. package/dist/NotificationList.js.map +1 -1
  32. package/dist/NotificationListGroupItem.d.ts +4 -0
  33. package/dist/NotificationListGroupItem.js +1 -1
  34. package/dist/NotificationListGroupItem.js.map +1 -1
  35. package/dist/NotificationListGroupList.d.ts +1 -0
  36. package/dist/NotificationListGroupList.js +3 -0
  37. package/dist/NotificationListGroupList.js.map +1 -1
  38. package/dist/NotificationListItem.d.ts +4 -0
  39. package/dist/NotificationListItem.js +1 -9
  40. package/dist/NotificationListItem.js.map +1 -1
  41. package/dist/NotificationListItemBase.d.ts +1 -0
  42. package/dist/NotificationListItemBase.js.map +1 -1
  43. package/dist/ProductSwitchItem.d.ts +7 -1
  44. package/dist/ProductSwitchItem.js +3 -3
  45. package/dist/ProductSwitchItem.js.map +1 -1
  46. package/dist/ShellBar.d.ts +8 -0
  47. package/dist/ShellBar.js +1 -35
  48. package/dist/ShellBar.js.map +1 -1
  49. package/dist/ShellBarItem.d.ts +3 -0
  50. package/dist/ShellBarItem.js +1 -4
  51. package/dist/ShellBarItem.js.map +1 -1
  52. package/dist/SideNavigation.d.ts +5 -2
  53. package/dist/SideNavigation.js +5 -9
  54. package/dist/SideNavigation.js.map +1 -1
  55. package/dist/SideNavigationSelectableItemBase.d.ts +3 -0
  56. package/dist/SideNavigationSelectableItemBase.js +1 -1
  57. package/dist/SideNavigationSelectableItemBase.js.map +1 -1
  58. package/dist/TimelineGroupItem.d.ts +3 -0
  59. package/dist/TimelineGroupItem.js +1 -1
  60. package/dist/TimelineGroupItem.js.map +1 -1
  61. package/dist/TimelineItem.d.ts +3 -0
  62. package/dist/TimelineItem.js +2 -2
  63. package/dist/TimelineItem.js.map +1 -1
  64. package/dist/UploadCollection.d.ts +4 -0
  65. package/dist/UploadCollection.js +4 -17
  66. package/dist/UploadCollection.js.map +1 -1
  67. package/dist/UploadCollectionItem.d.ts +8 -0
  68. package/dist/UploadCollectionItem.js +1 -1
  69. package/dist/UploadCollectionItem.js.map +1 -1
  70. package/dist/UserMenu.d.ts +128 -0
  71. package/dist/UserMenu.js +293 -0
  72. package/dist/UserMenu.js.map +1 -0
  73. package/dist/UserMenuAccount.d.ts +47 -0
  74. package/dist/UserMenuAccount.js +101 -0
  75. package/dist/UserMenuAccount.js.map +1 -0
  76. package/dist/UserMenuItem.d.ts +35 -0
  77. package/dist/UserMenuItem.js +53 -0
  78. package/dist/UserMenuItem.js.map +1 -0
  79. package/dist/ViewSettingsDialog.d.ts +7 -0
  80. package/dist/ViewSettingsDialog.js +2 -46
  81. package/dist/ViewSettingsDialog.js.map +1 -1
  82. package/dist/Wizard.d.ts +3 -0
  83. package/dist/Wizard.js +1 -15
  84. package/dist/Wizard.js.map +1 -1
  85. package/dist/WizardTab.d.ts +4 -0
  86. package/dist/WizardTab.js +1 -1
  87. package/dist/WizardTab.js.map +1 -1
  88. package/dist/bundle.esm.js +3 -0
  89. package/dist/bundle.esm.js.map +1 -1
  90. package/dist/css/themes/DynamicPage.css +1 -1
  91. package/dist/css/themes/DynamicPageHeader.css +1 -1
  92. package/dist/css/themes/DynamicPageHeaderActions.css +1 -1
  93. package/dist/css/themes/DynamicPageTitle.css +1 -1
  94. package/dist/css/themes/FlexibleColumnLayout.css +1 -1
  95. package/dist/css/themes/MediaGallery.css +1 -1
  96. package/dist/css/themes/MediaGalleryItem.css +1 -1
  97. package/dist/css/themes/NotificationListGroupItem.css +1 -1
  98. package/dist/css/themes/NotificationListItem.css +1 -1
  99. package/dist/css/themes/NotificationListItemBase.css +1 -1
  100. package/dist/css/themes/NotificationStateIcon.css +1 -1
  101. package/dist/css/themes/Page.css +1 -1
  102. package/dist/css/themes/ProductSwitchItem.css +1 -1
  103. package/dist/css/themes/ShellBar.css +1 -1
  104. package/dist/css/themes/SideNavigation.css +1 -1
  105. package/dist/css/themes/SideNavigationGroup.css +1 -1
  106. package/dist/css/themes/SideNavigationItem.css +1 -1
  107. package/dist/css/themes/SideNavigationItemBase.css +1 -1
  108. package/dist/css/themes/SideNavigationPopover.css +1 -1
  109. package/dist/css/themes/SideNavigationSubItem.css +1 -1
  110. package/dist/css/themes/Timeline.css +1 -1
  111. package/dist/css/themes/TimelineGroupItem.css +1 -1
  112. package/dist/css/themes/TimelineItem.css +1 -1
  113. package/dist/css/themes/UploadCollection.css +1 -1
  114. package/dist/css/themes/UploadCollectionItem.css +1 -1
  115. package/dist/css/themes/UserMenu.css +1 -0
  116. package/dist/css/themes/UserMenuItem.css +1 -0
  117. package/dist/css/themes/ViewSettingsDialog.css +1 -1
  118. package/dist/css/themes/Wizard.css +1 -1
  119. package/dist/css/themes/WizardTab.css +1 -1
  120. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  121. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  122. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  123. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  124. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  125. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  126. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  127. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  128. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  129. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  130. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  131. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  132. package/dist/custom-elements-internal.json +566 -19
  133. package/dist/custom-elements.json +400 -8
  134. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  135. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  136. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  137. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  138. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  139. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  140. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  141. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  142. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  143. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  144. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  145. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  146. package/dist/generated/i18n/i18n-defaults.d.ts +8 -1
  147. package/dist/generated/i18n/i18n-defaults.js +8 -1
  148. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  149. package/dist/generated/templates/UserMenuItemTemplate.lit.d.ts +4 -0
  150. package/dist/generated/templates/UserMenuItemTemplate.lit.js +35 -0
  151. package/dist/generated/templates/UserMenuItemTemplate.lit.js.map +1 -0
  152. package/dist/generated/templates/UserMenuTemplate.lit.d.ts +4 -0
  153. package/dist/generated/templates/UserMenuTemplate.lit.js +21 -0
  154. package/dist/generated/templates/UserMenuTemplate.lit.js.map +1 -0
  155. package/dist/generated/templates/ViewSettingsDialogTemplate.lit.js +1 -1
  156. package/dist/generated/templates/ViewSettingsDialogTemplate.lit.js.map +1 -1
  157. package/dist/generated/themes/DynamicPage.css.js +1 -1
  158. package/dist/generated/themes/DynamicPage.css.js.map +1 -1
  159. package/dist/generated/themes/DynamicPageHeader.css.js +1 -1
  160. package/dist/generated/themes/DynamicPageHeader.css.js.map +1 -1
  161. package/dist/generated/themes/DynamicPageHeaderActions.css.js +1 -1
  162. package/dist/generated/themes/DynamicPageHeaderActions.css.js.map +1 -1
  163. package/dist/generated/themes/DynamicPageTitle.css.js +1 -1
  164. package/dist/generated/themes/DynamicPageTitle.css.js.map +1 -1
  165. package/dist/generated/themes/FlexibleColumnLayout.css.js +1 -1
  166. package/dist/generated/themes/FlexibleColumnLayout.css.js.map +1 -1
  167. package/dist/generated/themes/MediaGallery.css.js +1 -1
  168. package/dist/generated/themes/MediaGallery.css.js.map +1 -1
  169. package/dist/generated/themes/MediaGalleryItem.css.js +1 -1
  170. package/dist/generated/themes/MediaGalleryItem.css.js.map +1 -1
  171. package/dist/generated/themes/NotificationListGroupItem.css.js +1 -1
  172. package/dist/generated/themes/NotificationListGroupItem.css.js.map +1 -1
  173. package/dist/generated/themes/NotificationListItem.css.js +1 -1
  174. package/dist/generated/themes/NotificationListItem.css.js.map +1 -1
  175. package/dist/generated/themes/NotificationListItemBase.css.js +1 -1
  176. package/dist/generated/themes/NotificationListItemBase.css.js.map +1 -1
  177. package/dist/generated/themes/NotificationStateIcon.css.js +1 -1
  178. package/dist/generated/themes/NotificationStateIcon.css.js.map +1 -1
  179. package/dist/generated/themes/Page.css.js +1 -1
  180. package/dist/generated/themes/Page.css.js.map +1 -1
  181. package/dist/generated/themes/ProductSwitchItem.css.js +1 -1
  182. package/dist/generated/themes/ProductSwitchItem.css.js.map +1 -1
  183. package/dist/generated/themes/ShellBar.css.js +1 -1
  184. package/dist/generated/themes/ShellBar.css.js.map +1 -1
  185. package/dist/generated/themes/SideNavigation.css.js +1 -1
  186. package/dist/generated/themes/SideNavigation.css.js.map +1 -1
  187. package/dist/generated/themes/SideNavigationGroup.css.js +1 -1
  188. package/dist/generated/themes/SideNavigationGroup.css.js.map +1 -1
  189. package/dist/generated/themes/SideNavigationItem.css.js +1 -1
  190. package/dist/generated/themes/SideNavigationItem.css.js.map +1 -1
  191. package/dist/generated/themes/SideNavigationItemBase.css.js +1 -1
  192. package/dist/generated/themes/SideNavigationItemBase.css.js.map +1 -1
  193. package/dist/generated/themes/SideNavigationPopover.css.js +1 -1
  194. package/dist/generated/themes/SideNavigationPopover.css.js.map +1 -1
  195. package/dist/generated/themes/SideNavigationSubItem.css.js +1 -1
  196. package/dist/generated/themes/SideNavigationSubItem.css.js.map +1 -1
  197. package/dist/generated/themes/Timeline.css.js +1 -1
  198. package/dist/generated/themes/Timeline.css.js.map +1 -1
  199. package/dist/generated/themes/TimelineGroupItem.css.js +1 -1
  200. package/dist/generated/themes/TimelineGroupItem.css.js.map +1 -1
  201. package/dist/generated/themes/TimelineItem.css.js +1 -1
  202. package/dist/generated/themes/TimelineItem.css.js.map +1 -1
  203. package/dist/generated/themes/UploadCollection.css.js +1 -1
  204. package/dist/generated/themes/UploadCollection.css.js.map +1 -1
  205. package/dist/generated/themes/UploadCollectionItem.css.js +1 -1
  206. package/dist/generated/themes/UploadCollectionItem.css.js.map +1 -1
  207. package/dist/generated/themes/UserMenu.css.d.ts +3 -0
  208. package/dist/generated/themes/UserMenu.css.js +9 -0
  209. package/dist/generated/themes/UserMenu.css.js.map +1 -0
  210. package/dist/generated/themes/UserMenuItem.css.d.ts +3 -0
  211. package/dist/generated/themes/UserMenuItem.css.js +9 -0
  212. package/dist/generated/themes/UserMenuItem.css.js.map +1 -0
  213. package/dist/generated/themes/ViewSettingsDialog.css.js +1 -1
  214. package/dist/generated/themes/ViewSettingsDialog.css.js.map +1 -1
  215. package/dist/generated/themes/Wizard.css.js +1 -1
  216. package/dist/generated/themes/Wizard.css.js.map +1 -1
  217. package/dist/generated/themes/WizardTab.css.js +1 -1
  218. package/dist/generated/themes/WizardTab.css.js.map +1 -1
  219. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  220. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  221. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  222. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  223. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  224. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  225. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  226. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  227. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  228. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  229. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  230. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  231. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  232. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  233. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  234. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  235. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  236. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  237. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  238. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  239. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  240. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  241. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  242. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  243. package/dist/vscode.html-custom-data.json +76 -1
  244. package/dist/web-types.json +214 -12
  245. package/package.json +7 -7
  246. package/src/UserMenu.hbs +99 -0
  247. package/src/UserMenuItem.hbs +1 -0
  248. package/src/ViewSettingsDialog.hbs +1 -1
  249. package/src/i18n/messagebundle.properties +23 -0
  250. package/src/themes/UserMenu.css +107 -0
  251. package/src/themes/UserMenuItem.css +11 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,24 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [2.5.0-rc.3](https://github.com/SAP/ui5-webcomponents/compare/v2.5.0-rc.2...v2.5.0-rc.3) (2024-12-05)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **ui5-list:** enable focusin event bubbling ([#10156](https://github.com/SAP/ui5-webcomponents/issues/10156)) ([3b6cc84](https://github.com/SAP/ui5-webcomponents/commit/3b6cc8457ab47c1651a34f04b9401ee3112bd8c5)), closes [#9787](https://github.com/SAP/ui5-webcomponents/issues/9787)
12
+ * **ui5-view-settings-dialog:** adjust dialog heading level ([#10289](https://github.com/SAP/ui5-webcomponents/issues/10289)) ([08d48a3](https://github.com/SAP/ui5-webcomponents/commit/08d48a3eb5e16708242b4a721ead74aebb8bb8ae))
13
+
14
+
15
+ ### Features
16
+
17
+ * **framework:** add strict event type checking ([#10235](https://github.com/SAP/ui5-webcomponents/issues/10235)) ([4ff8ab7](https://github.com/SAP/ui5-webcomponents/commit/4ff8ab7c34db5058b92511767be1b96c69a91cb5))
18
+ * **ui5-user-menu:** introduce new component ([#10244](https://github.com/SAP/ui5-webcomponents/issues/10244)) ([1558499](https://github.com/SAP/ui5-webcomponents/commit/15584993472c2a9d34349da999da74bfe450e76e))
19
+
20
+
21
+
22
+
23
+
6
24
  # [2.5.0-rc.2](https://github.com/SAP/ui5-webcomponents/compare/v2.5.0-rc.1...v2.5.0-rc.2) (2024-11-28)
7
25
 
8
26
 
package/README.md CHANGED
@@ -31,6 +31,9 @@ such as a common header (ShellBar).
31
31
  | Timeline Item | `ui5-timeline-item` | comes with `ui5-timeline` |
32
32
  | Upload Collection | `ui5-upload-collection` | `import "@ui5/webcomponents-fiori/dist/UploadCollection.js";` |
33
33
  | Upload Collection Item | `ui5-upload-collection-item` | `import "@ui5/webcomponents-fiori/dist/UploadCollectionItem.js";` |
34
+ | User Menu | `ui5-user-menu` | `import "@ui5/webcomponents-fiori/dist/UserMenu.js";` |
35
+ | User Menu Account | `ui5-user-menu-account` | `import "@ui5/webcomponents-fiori/dist/UserMenuAccount.js";` |
36
+ | User Menu Item | `ui5-user-menu-item` | `import "@ui5/webcomponents-fiori/dist/UserMenuItem.js";` |
34
37
  | View Settings Dialog | `ui5-view-settings-dialog` | `import "@ui5/webcomponents-fiori/dist/ViewSettingsDialog.js";` |
35
38
  | View Settings Dialog - Sort Item | `ui5-sort-item` | `import "@ui5/webcomponents-fiori/dist/SortItem.js";` |
36
39
  | View Settings Dialog - Filter Item | `ui5-filter-item` | `import "@ui5/webcomponents-fiori/dist/FilterItem.js";` |
@@ -0,0 +1,345 @@
1
+ import { html } from "lit";
2
+ import "../../src/UserMenu.js";
3
+ import "../../src/UserMenuAccount.js";
4
+ import "../../src/UserMenuItem.js";
5
+
6
+ import "@ui5/webcomponents/dist/Avatar.js";
7
+ import "@ui5/webcomponents/dist/Button.js";
8
+ import "@ui5/webcomponents-icons/dist/action-settings.js";
9
+
10
+ describe("Initial rendering", () => {
11
+ it("tests no config provided", () => {
12
+ cy.mount(html`<ui5-button id="openUserMenuBtn">Open User Menu</ui5-button>
13
+ <ui5-user-menu open opener="openUserMenuBtn">
14
+ </ui5-user-menu>`);
15
+ cy.get("[ui5-user-menu]").as("userMenu");
16
+ cy.get("@userMenu").should("exist");
17
+ cy.get("@userMenu").shadow().find("[ui5-responsive-popover]").as("responsivePopover");
18
+ cy.get("@responsivePopover").should("exist");
19
+ cy.get("@responsivePopover").find("[ui5-button]").contains("Sign Out");
20
+ cy.get("@responsivePopover").find("[ui5-button]").should("have.length", 1);
21
+ });
22
+
23
+ it("tests config show-manage-account", () => {
24
+ cy.mount(html`<ui5-button id="openUserMenuBtn">Open User Menu</ui5-button>
25
+ <ui5-user-menu open opener="openUserMenuBtn" show-manage-account>
26
+ <ui5-user-menu-account slot="accounts"
27
+ title-text="Alain Chevalier 1"
28
+ subtitle-text="alian.chevalier@sap.com"
29
+ description="Delivery Manager, SAP SE">
30
+ </ui5-user-menu-account>
31
+ </ui5-user-menu>`);
32
+ cy.get("[ui5-user-menu]").as("userMenu");
33
+ cy.get("@userMenu").should("exist");
34
+ cy.get("@userMenu").shadow().find("[ui5-responsive-popover]").as("responsivePopover");
35
+ cy.get("@responsivePopover").should("exist");
36
+ cy.get("@responsivePopover").find("[ui5-button]").contains("Manage account");
37
+ cy.get("@responsivePopover").find("[ui5-button]").should("have.length", 2);
38
+ });
39
+
40
+ it("tests config show-other-accounts", () => {
41
+ cy.mount(html`<ui5-button id="openUserMenuBtn">Open User Menu</ui5-button>
42
+ <ui5-user-menu open opener="openUserMenuBtn" show-other-accounts>
43
+ <ui5-user-menu-account slot="accounts"
44
+ title-text="Alain Chevalier 1"
45
+ subtitle-text="alian.chevalier@sap.com"
46
+ description="Delivery Manager, SAP SE"
47
+ selected>
48
+ </ui5-user-menu-account>
49
+ <ui5-user-menu-account slot="accounts"
50
+ avatar-initials="AC"
51
+ title-text="Alain Chevalier 2"
52
+ subtitle-text="test.alian.chevalier@sap.com">
53
+ </ui5-user-menu-account>
54
+ </ui5-user-menu>`);
55
+ cy.get("[ui5-user-menu]").as("userMenu");
56
+ cy.get("@userMenu").should("exist");
57
+ cy.get("@userMenu").shadow().find("[ui5-responsive-popover]").as("responsivePopover");
58
+ cy.get("@responsivePopover").should("exist");
59
+ cy.get("@responsivePopover").find("[ui5-panel]").contains("Other accounts (1)");
60
+ cy.get("@responsivePopover").find("[ui5-button]").should("have.length", 1);
61
+ });
62
+
63
+ it("tests config show-add-account", () => {
64
+ cy.mount(html`<ui5-button id="openUserMenuBtn">Open User Menu</ui5-button>
65
+ <ui5-user-menu open opener="openUserMenuBtn" show-other-accounts show-add-account>
66
+ <ui5-user-menu-account slot="accounts"
67
+ title-text="Alain Chevalier 1"
68
+ subtitle-text="alian.chevalier@sap.com"
69
+ description="Delivery Manager, SAP SE"
70
+ selected>
71
+ </ui5-user-menu-account>
72
+ <ui5-user-menu-account slot="accounts"
73
+ avatar-initials="AC"
74
+ title-text="Alain Chevalier 2"
75
+ subtitle-text="test.alian.chevalier@sap.com">
76
+ </ui5-user-menu-account>
77
+ </ui5-user-menu>`);
78
+ cy.get("[ui5-user-menu]").as("userMenu");
79
+ cy.get("@userMenu").should("exist");
80
+ cy.get("@userMenu").shadow().find("[ui5-responsive-popover]").as("responsivePopover");
81
+ cy.get("@responsivePopover").should("exist");
82
+ cy.get("@responsivePopover").find(".ui5-pm-add-account-btn").should("exist");
83
+ cy.get("@responsivePopover").find("[ui5-button]").should("have.length", 2);
84
+ });
85
+ });
86
+
87
+ describe("Menu configuration", () => {
88
+ it("tests config items", () => {
89
+ cy.mount(html`<ui5-button id="openUserMenuBtn">Open User Menu</ui5-button>
90
+ <ui5-user-menu open opener="openUserMenuBtn">
91
+ <ui5-user-menu-account slot="accounts"
92
+ title-text="Alain Chevalier 1"
93
+ subtitle-text="alian.chevalier@sap.com"
94
+ description="Delivery Manager, SAP SE">
95
+ </ui5-user-menu-account>
96
+ <ui5-user-menu-item text="Setting" data-id="setting"></ui5-user-menu-item>
97
+ <ui5-user-menu-item text="Product-specific account action"
98
+ data-id="account-action2"></ui5-user-menu-item>
99
+ </ui5-user-menu>`);
100
+ cy.get("[ui5-user-menu]").as("userMenu");
101
+ cy.get("@userMenu").should("exist");
102
+ cy.get("@userMenu").find("[ui5-user-menu-item]").as("userMenuItems");
103
+ cy.get("@userMenuItems").should("exist");
104
+ cy.get("@userMenuItems").should("have.length", 2);
105
+ });
106
+
107
+ it("tests config items with submenu items", () => {
108
+ cy.mount(html`<ui5-button id="openUserMenuBtn">Open User Menu</ui5-button>
109
+ <ui5-user-menu open opener="openUserMenuBtn">
110
+ <ui5-user-menu-account slot="accounts"
111
+ title-text="Alain Chevalier 1"
112
+ subtitle-text="alian.chevalier@sap.com"
113
+ description="Delivery Manager, SAP SE">
114
+ </ui5-user-menu-account>
115
+ <ui5-user-menu-item text="Setting" data-id="setting"></ui5-user-menu-item>
116
+ <ui5-user-menu-item text="Product-specific account action"
117
+ data-id="account-action2"></ui5-user-menu-item>
118
+ <ui5-user-menu-item text="Legal Information">
119
+ <ui5-user-menu-item text="Private Policy" data-id="privacy-policy"></ui5-user-menu-item>
120
+ <ui5-user-menu-item text="Terms of Use" data-id="terms-of-use"></ui5-user-menu-item>
121
+ </ui5-user-menu-item>
122
+ </ui5-user-menu>`);
123
+ cy.get("[ui5-user-menu]").as("userMenu");
124
+ cy.get("@userMenu").should("exist");
125
+ cy.get("@userMenu").find("[ui5-user-menu-item]").as("userMenuItems");
126
+ cy.get("@userMenuItems").should("exist");
127
+ cy.get("@userMenuItems").find("[ui5-user-menu-item]").as("userSubMenuItems");
128
+ cy.get("@userSubMenuItems").should("exist");
129
+ cy.get("@userSubMenuItems").should("have.length", 2);
130
+ });
131
+
132
+ it("tests config items with icon", () => {
133
+ cy.mount(html`<ui5-button id="openUserMenuBtn">Open User Menu</ui5-button>
134
+ <ui5-user-menu open opener="openUserMenuBtn">
135
+ <ui5-user-menu-account slot="accounts"
136
+ title-text="Alain Chevalier 1"
137
+ subtitle-text="alian.chevalier@sap.com"
138
+ description="Delivery Manager, SAP SE">
139
+ </ui5-user-menu-account>
140
+ <ui5-user-menu-item icon="action-settings" text="Setting" data-id="setting"></ui5-user-menu-item>
141
+ </ui5-user-menu>`);
142
+ cy.get("[ui5-user-menu]").as("userMenu");
143
+ cy.get("@userMenu").should("exist");
144
+ cy.get("@userMenu").find("[ui5-user-menu-item]").as("userMenuItems");
145
+ cy.get("@userMenuItems").should("exist");
146
+ cy.get("@userMenuItems").should("have.length", 1);
147
+ cy.get("@userMenuItems").should("have.attr", "icon", "action-settings");
148
+ });
149
+ });
150
+
151
+ describe("Avatar configuration", () => {
152
+ it("tests default", () => {
153
+ cy.mount(html`<ui5-button id="openUserMenuBtn">Open User Menu</ui5-button>
154
+ <ui5-user-menu open opener="openUserMenuBtn">
155
+ <ui5-user-menu-account slot="accounts"
156
+ title-text="Alain Chevalier 1"
157
+ subtitle-text="alian.chevalier@sap.com"
158
+ description="Delivery Manager, SAP SE">
159
+ </ui5-user-menu-account>
160
+ </ui5-user-menu>`);
161
+ cy.get("[ui5-user-menu]").as("userMenu");
162
+ cy.get("@userMenu").should("exist");
163
+ cy.get("@userMenu").shadow().find("[ui5-avatar]").as("avatar");
164
+ cy.get("@avatar").should("exist");
165
+ cy.get("@avatar").should("have.length", 1);
166
+ cy.get("@avatar").should("have.attr", "fallback-icon", "person-placeholder");
167
+ });
168
+
169
+ it("tests initials", () => {
170
+ cy.mount(html`<ui5-button id="openUserMenuBtn">Open User Menu</ui5-button>
171
+ <ui5-user-menu open opener="openUserMenuBtn">
172
+ <ui5-user-menu-account slot="accounts"
173
+ avatar-initials="AC"
174
+ title-text="Alain Chevalier 1"
175
+ subtitle-text="alian.chevalier@sap.com"
176
+ description="Delivery Manager, SAP SE">
177
+ </ui5-user-menu-account>
178
+ </ui5-user-menu>`);
179
+ cy.get("[ui5-user-menu]").as("userMenu");
180
+ cy.get("@userMenu").should("exist");
181
+ cy.get("@userMenu").shadow().find("[ui5-avatar]").as("avatar");
182
+ cy.get("@avatar").should("exist");
183
+ cy.get("@avatar").should("have.length", 1);
184
+ cy.get("@avatar").should("have.attr", "initials", "AC");
185
+ });
186
+
187
+ it("tests image", () => {
188
+ cy.mount(html`<ui5-button id="openUserMenuBtn">Open User Menu</ui5-button>
189
+ <ui5-user-menu open opener="openUserMenuBtn">
190
+ <ui5-user-menu-account slot="accounts"
191
+ avatar-src="./../../test/pages/img/man_avatar_1.png"
192
+ title-text="Alain Chevalier 1"
193
+ subtitle-text="alian.chevalier@sap.com"
194
+ description="Delivery Manager, SAP SE">
195
+ </ui5-user-menu-account>
196
+ </ui5-user-menu>`);
197
+ cy.get("[ui5-user-menu]").as("userMenu");
198
+ cy.get("@userMenu").should("exist");
199
+ cy.get("@userMenu").shadow().find("[ui5-avatar]").as("avatar");
200
+ cy.get("@avatar").should("exist");
201
+ cy.get("@avatar").should("have.length", 1);
202
+ cy.get("@avatar").find("img").as("image");
203
+ cy.get("@image").should("have.length", 1);
204
+ cy.get("@image").should("have.attr", "src", "./../../test/pages/img/man_avatar_1.png");
205
+ });
206
+ });
207
+
208
+ describe("Events", () => {
209
+ it("tests avatar-click event", () => {
210
+ cy.mount(html`<ui5-button id="openUserMenuBtn">Open User Menu</ui5-button>
211
+ <ui5-user-menu open opener="openUserMenuBtn">
212
+ <ui5-user-menu-account slot="accounts"
213
+ title-text="Alain Chevalier 1"
214
+ </ui5-user-menu-account>
215
+ </ui5-user-menu>`);
216
+ cy.get("[ui5-user-menu]").as("userMenu");
217
+ cy.get("@userMenu")
218
+ .shadow()
219
+ .find("[ui5-responsive-popover]")
220
+ .find("[ui5-avatar]")
221
+ .as("avatar");
222
+
223
+ cy.get("@userMenu")
224
+ .then($avatar => {
225
+ $avatar.get(0).addEventListener("avatar-click", cy.stub().as("clicked"));
226
+ });
227
+
228
+ cy.get("@avatar").click();
229
+
230
+ cy.get("@clicked").should("have.been.calledOnce");
231
+ });
232
+
233
+ it("tests manage-account-click event", () => {
234
+ cy.mount(html`<ui5-button id="openUserMenuBtn">Open User Menu</ui5-button>
235
+ <ui5-user-menu open opener="openUserMenuBtn" show-manage-account>
236
+ <ui5-user-menu-account slot="accounts"
237
+ title-text="Alain Chevalier 1"
238
+ </ui5-user-menu-account>
239
+ </ui5-user-menu>`);
240
+ cy.get("[ui5-user-menu]").as("userMenu");
241
+ cy.get("@userMenu")
242
+ .shadow()
243
+ .find("[ui5-button]")
244
+ .eq(0)
245
+ .as("manageAccountBtn");
246
+
247
+ cy.get("@userMenu").then($userMenu => {
248
+ $userMenu.get(0).addEventListener("manage-account-click", cy.stub().as("clicked"));
249
+ });
250
+
251
+ cy.get("@manageAccountBtn").click();
252
+
253
+ cy.get("@clicked").should("have.been.calledOnce");
254
+ });
255
+
256
+ it("tests add-account-click event", () => {
257
+ cy.mount(html`<ui5-button id="openUserMenuBtn">Open User Menu</ui5-button>
258
+ <ui5-user-menu open opener="openUserMenuBtn" show-add-account show-other-accounts>
259
+ </ui5-user-menu>`);
260
+ cy.get("[ui5-user-menu]").as("userMenu");
261
+ cy.get("@userMenu")
262
+ .shadow()
263
+ .find(".ui5-pm-add-account-btn")
264
+ .as("addAccountBtn");
265
+
266
+ cy.get("@userMenu")
267
+ .then($userMenu => {
268
+ $userMenu.get(0).addEventListener("add-account-click", cy.stub().as("clicked"));
269
+ });
270
+
271
+ cy.get("@addAccountBtn").click();
272
+
273
+ cy.get("@clicked").should("have.been.calledOnce");
274
+ });
275
+
276
+ it("tests change-account event", () => {
277
+ cy.mount(html`<ui5-button id="openUserMenuBtn">Open User Menu</ui5-button>
278
+ <ui5-user-menu open opener="openUserMenuBtn" show-other-accounts>
279
+ <ui5-user-menu-account slot="accounts" title-text="Alain Chevalier 1">
280
+ </ui5-user-menu-account>
281
+ <ui5-user-menu-account slot="accounts" title-text="Alain Chevalier 2">
282
+ </ui5-user-menu-account>
283
+ </ui5-user-menu>`);
284
+ cy.get("[ui5-user-menu]").as("userMenu");
285
+ cy.get("@userMenu")
286
+ .shadow()
287
+ .find("[ui5-panel]")
288
+ .as("otherAccounts");
289
+
290
+ cy.get("@userMenu").then($userMenu => {
291
+ $userMenu.get(0).addEventListener("change-account", cy.stub().as("changedAccount"));
292
+ });
293
+
294
+ cy.get("@otherAccounts")
295
+ .shadow()
296
+ .find("[ui5-button]")
297
+ .click();
298
+
299
+ cy.get("@otherAccounts")
300
+ .find("[ui5-li-custom]")
301
+ .click();
302
+
303
+ cy.get("@changedAccount").should("have.been.calledOnce");
304
+ cy.get("@changedAccount").its("args.0.0.detail.prevSelectedAccount").should("have.property", "titleText", "Alain Chevalier 1");
305
+ cy.get("@changedAccount").its("args.0.0.detail.selectedAccount").should("have.property", "titleText", "Alain Chevalier 2");
306
+ });
307
+
308
+ it("tests item-click event", () => {
309
+ cy.mount(html`<ui5-button id="openUserMenuBtn">Open User Menu</ui5-button>
310
+ <ui5-user-menu open opener="openUserMenuBtn">
311
+ <ui5-user-menu-item text="Setting" data-id="setting"></ui5-user-menu-item>
312
+ </ui5-user-menu>`);
313
+ cy.get("[ui5-user-menu]").as("userMenu");
314
+ cy.get("@userMenu")
315
+ .find("[ui5-user-menu-item]")
316
+ .as("userMenuItem");
317
+
318
+ cy.get("@userMenu")
319
+ .then($userMenu => {
320
+ $userMenu.get(0).addEventListener("item-click", cy.stub().as("clicked"));
321
+ });
322
+
323
+ cy.get("@userMenuItem").click();
324
+
325
+ cy.get("@clicked").should("have.been.calledOnce");
326
+ cy.get("@clicked").its("args.0.0.detail.item").should("have.property", "text", "Setting");
327
+ });
328
+
329
+ it("tests sign-out-click event", () => {
330
+ cy.mount(html`<ui5-button id="openUserMenuBtn">Open User Menu</ui5-button>
331
+ <ui5-user-menu open opener="openUserMenuBtn">
332
+ </ui5-user-menu>`);
333
+ cy.get("[ui5-user-menu]").as("userMenu");
334
+ cy.get("@userMenu").shadow().find("[ui5-button]").as("signOutBtn");
335
+
336
+ cy.get("@userMenu")
337
+ .then($userMenu => {
338
+ $userMenu.get(0).addEventListener("sign-out-click", cy.stub().as("clicked"));
339
+ });
340
+
341
+ cy.get("@signOutBtn").click();
342
+
343
+ cy.get("@clicked").should("have.been.calledOnce");
344
+ });
345
+ });