@sapudex/web-components 0.117.1 → 0.138.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (536) hide show
  1. package/bundle.esm.js +5 -0
  2. package/config/wdio.conf.js +19 -8
  3. package/dist/Accordion.d.ts +1 -1
  4. package/dist/Accordion.js +1 -1
  5. package/dist/Accordion.js.map +1 -1
  6. package/dist/AccordionItem.d.ts +3 -2
  7. package/dist/AccordionItem.js +4 -4
  8. package/dist/AccordionItem.js.map +1 -1
  9. package/dist/Avatar.d.ts +12 -0
  10. package/dist/Avatar.js +22 -1
  11. package/dist/Avatar.js.map +1 -1
  12. package/dist/AvatarGroup.d.ts +28 -0
  13. package/dist/AvatarGroup.js +126 -0
  14. package/dist/AvatarGroup.js.map +1 -0
  15. package/dist/Checkbox.d.ts +1 -1
  16. package/dist/Checkbox.js +1 -1
  17. package/dist/Checkbox.js.map +1 -1
  18. package/dist/CountrySelector.d.ts +24 -6
  19. package/dist/CountrySelector.js +25 -7
  20. package/dist/CountrySelector.js.map +1 -1
  21. package/dist/DatePicker.d.ts +1 -0
  22. package/dist/DatePicker.js +4 -1
  23. package/dist/DatePicker.js.map +1 -1
  24. package/dist/Dropdown.d.ts +12 -2
  25. package/dist/Dropdown.js +18 -6
  26. package/dist/Dropdown.js.map +1 -1
  27. package/dist/FilterMenu.d.ts +26 -6
  28. package/dist/FilterMenu.js +61 -21
  29. package/dist/FilterMenu.js.map +1 -1
  30. package/dist/Footer.d.ts +36 -1
  31. package/dist/Footer.js +35 -37
  32. package/dist/Footer.js.map +1 -1
  33. package/dist/HeroBanner.js +3 -0
  34. package/dist/HeroBanner.js.map +1 -1
  35. package/dist/Link.d.ts +1 -1
  36. package/dist/Link.js +1 -1
  37. package/dist/Link.js.map +1 -1
  38. package/dist/List.d.ts +1 -1
  39. package/dist/List.js +17 -1
  40. package/dist/List.js.map +1 -1
  41. package/dist/ListGroupHeader.d.ts +2 -2
  42. package/dist/ListGroupHeader.js +2 -2
  43. package/dist/ListGroupHeader.js.map +1 -1
  44. package/dist/ListItem.d.ts +3 -3
  45. package/dist/ListItem.js +6 -7
  46. package/dist/ListItem.js.map +1 -1
  47. package/dist/ListSelectAll.d.ts +1 -1
  48. package/dist/ListSelectAll.js +1 -1
  49. package/dist/ListSelectAll.js.map +1 -1
  50. package/dist/MastheadItem.d.ts +10 -1
  51. package/dist/MastheadItem.js +29 -18
  52. package/dist/MastheadItem.js.map +1 -1
  53. package/dist/MastheadMenu.d.ts +5 -0
  54. package/dist/MastheadMenu.js +24 -0
  55. package/dist/MastheadMenu.js.map +1 -1
  56. package/dist/MastheadMenuItem.d.ts +2 -3
  57. package/dist/MastheadMenuItem.js +2 -17
  58. package/dist/MastheadMenuItem.js.map +1 -1
  59. package/dist/MastheadMobileMenu.d.ts +25 -5
  60. package/dist/MastheadMobileMenu.js +135 -21
  61. package/dist/MastheadMobileMenu.js.map +1 -1
  62. package/dist/MastheadProfileMenu.d.ts +13 -4
  63. package/dist/MastheadProfileMenu.js +40 -9
  64. package/dist/MastheadProfileMenu.js.map +1 -1
  65. package/dist/MastheadShell.d.ts +11 -0
  66. package/dist/MastheadShell.js +52 -8
  67. package/dist/MastheadShell.js.map +1 -1
  68. package/dist/MediaPlayer.d.ts +3 -3
  69. package/dist/MediaPlayer.js +115 -25
  70. package/dist/MediaPlayer.js.map +1 -1
  71. package/dist/MessageStrip.js +1 -1
  72. package/dist/MessageStrip.js.map +1 -1
  73. package/dist/Pagination.d.ts +3 -0
  74. package/dist/Pagination.js +16 -4
  75. package/dist/Pagination.js.map +1 -1
  76. package/dist/PasswordField.d.ts +14 -4
  77. package/dist/PasswordField.js +24 -15
  78. package/dist/PasswordField.js.map +1 -1
  79. package/dist/PhoneNumberField.d.ts +32 -0
  80. package/dist/PhoneNumberField.js +51 -2
  81. package/dist/PhoneNumberField.js.map +1 -1
  82. package/dist/RatingBar.d.ts +53 -0
  83. package/dist/RatingBar.js +96 -0
  84. package/dist/RatingBar.js.map +1 -0
  85. package/dist/Review.d.ts +71 -0
  86. package/dist/Review.js +108 -0
  87. package/dist/Review.js.map +1 -0
  88. package/dist/ReviewItem.d.ts +105 -0
  89. package/dist/ReviewItem.js +157 -0
  90. package/dist/ReviewItem.js.map +1 -0
  91. package/dist/Search.d.ts +64 -2
  92. package/dist/Search.js +62 -8
  93. package/dist/Search.js.map +1 -1
  94. package/dist/SearchableListBase.d.ts +1 -1
  95. package/dist/SearchableListBase.js +1 -1
  96. package/dist/SearchableListBase.js.map +1 -1
  97. package/dist/SecondaryNavigation.d.ts +9 -8
  98. package/dist/SecondaryNavigation.js +59 -46
  99. package/dist/SecondaryNavigation.js.map +1 -1
  100. package/dist/SecondaryNavigationItem.d.ts +1 -1
  101. package/dist/SecondaryNavigationItem.js +15 -5
  102. package/dist/SecondaryNavigationItem.js.map +1 -1
  103. package/dist/SecondaryNavigationItemBase.d.ts +16 -2
  104. package/dist/SecondaryNavigationItemBase.js +27 -1
  105. package/dist/SecondaryNavigationItemBase.js.map +1 -1
  106. package/dist/SecondaryNavigationSubItem.d.ts +2 -1
  107. package/dist/SecondaryNavigationSubItem.js +5 -2
  108. package/dist/SecondaryNavigationSubItem.js.map +1 -1
  109. package/dist/SelectBox.d.ts +33 -9
  110. package/dist/SelectBox.js +121 -60
  111. package/dist/SelectBox.js.map +1 -1
  112. package/dist/StatusBadge.d.ts +5 -5
  113. package/dist/StatusBadge.js.map +1 -1
  114. package/dist/Switch.d.ts +20 -0
  115. package/dist/Switch.js +22 -0
  116. package/dist/Switch.js.map +1 -1
  117. package/dist/Tab.d.ts +9 -1
  118. package/dist/Tab.js +4 -1
  119. package/dist/Tab.js.map +1 -1
  120. package/dist/TabNavigation.d.ts +21 -21
  121. package/dist/TabNavigation.js +83 -102
  122. package/dist/TabNavigation.js.map +1 -1
  123. package/dist/Tag.d.ts +22 -7
  124. package/dist/Tag.js +52 -21
  125. package/dist/Tag.js.map +1 -1
  126. package/dist/TagGroup.d.ts +94 -0
  127. package/dist/TagGroup.js +174 -0
  128. package/dist/TagGroup.js.map +1 -0
  129. package/dist/TextArea.d.ts +14 -1
  130. package/dist/TextArea.js +18 -0
  131. package/dist/TextArea.js.map +1 -1
  132. package/dist/TextField.d.ts +32 -13
  133. package/dist/TextField.js +32 -2
  134. package/dist/TextField.js.map +1 -1
  135. package/dist/Tooltip.d.ts +3 -3
  136. package/dist/Tooltip.js +4 -4
  137. package/dist/Tooltip.js.map +1 -1
  138. package/dist/assets/bundle.esm-bb1c7413.js +316 -0
  139. package/dist/assets/messagebundle_en-c677773a.js +1 -0
  140. package/dist/assets/parameters-bundle.css-c897ae23.js +2 -0
  141. package/dist/assets/video.es-60bfb78c.js +228 -0
  142. package/dist/css/themes/AccordionItem.css +1 -1
  143. package/dist/css/themes/Avatar.css +1 -1
  144. package/dist/css/themes/Badge.css +1 -1
  145. package/dist/css/themes/CountrySelector.css +1 -1
  146. package/dist/css/themes/Divider.css +1 -1
  147. package/dist/css/themes/FilterMenu.css +1 -1
  148. package/dist/css/themes/Footer.css +1 -1
  149. package/dist/css/themes/HeroBanner.css +1 -1
  150. package/dist/css/themes/ListItem.css +1 -1
  151. package/dist/css/themes/MastheadItem.css +1 -1
  152. package/dist/css/themes/MastheadMobileMenu.css +1 -1
  153. package/dist/css/themes/MastheadShell.css +1 -1
  154. package/dist/css/themes/Modal.css +1 -1
  155. package/dist/css/themes/Pagination.css +1 -1
  156. package/dist/css/themes/PhoneNumberField.css +1 -1
  157. package/dist/css/themes/RatingBar.css +1 -0
  158. package/dist/css/themes/RatingIndicator.css +1 -1
  159. package/dist/css/themes/Review.css +1 -0
  160. package/dist/css/themes/ReviewItem.css +1 -0
  161. package/dist/css/themes/Search.css +1 -1
  162. package/dist/css/themes/SecondaryNavigation.css +1 -1
  163. package/dist/css/themes/SecondaryNavigationItem.css +1 -1
  164. package/dist/css/themes/SecondaryNavigationSubItem.css +1 -1
  165. package/dist/css/themes/SelectBox.css +1 -1
  166. package/dist/css/themes/Slider.css +1 -1
  167. package/dist/css/themes/StepInput.css +1 -1
  168. package/dist/css/themes/TabNavigation.css +1 -1
  169. package/dist/css/themes/Tag.css +1 -1
  170. package/dist/css/themes/TagGroup.css +1 -0
  171. package/dist/css/themes/TextArea.css +1 -1
  172. package/dist/css/themes/TextField.css +1 -1
  173. package/dist/css/themes/Toast.css +1 -1
  174. package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +1 -1
  175. package/dist/custom-elements-internal.json +1435 -444
  176. package/dist/custom-elements.json +1267 -358
  177. package/dist/data/CountryListISO3166.js +162 -162
  178. package/dist/data/CountryListISO3166.js.map +1 -1
  179. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  180. package/dist/generated/assets/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.json +1 -1
  181. package/dist/generated/i18n/i18n-defaults.d.ts +11 -1
  182. package/dist/generated/i18n/i18n-defaults.js +18 -8
  183. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  184. package/dist/generated/templates/AccordionItemTemplate.lit.js +1 -1
  185. package/dist/generated/templates/AccordionItemTemplate.lit.js.map +1 -1
  186. package/dist/generated/templates/CountrySelectorTemplate.lit.js +3 -3
  187. package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
  188. package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
  189. package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
  190. package/dist/generated/templates/DropdownTemplate.lit.js +2 -2
  191. package/dist/generated/templates/DropdownTemplate.lit.js.map +1 -1
  192. package/dist/generated/templates/FilterMenuTemplate.lit.js +1 -1
  193. package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
  194. package/dist/generated/templates/FooterTemplate.lit.js +26 -28
  195. package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
  196. package/dist/generated/templates/HeroBannerTemplate.lit.js +7 -7
  197. package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
  198. package/dist/generated/templates/ListItemTemplate.lit.js +6 -6
  199. package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
  200. package/dist/generated/templates/ListSelectAllTemplate.lit.js +1 -1
  201. package/dist/generated/templates/ListSelectAllTemplate.lit.js.map +1 -1
  202. package/dist/generated/templates/MastheadItemTemplate.lit.js +3 -3
  203. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
  204. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js +1 -1
  205. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +1 -1
  206. package/dist/generated/templates/MastheadMenuTemplate.lit.js +2 -2
  207. package/dist/generated/templates/MastheadMenuTemplate.lit.js.map +1 -1
  208. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +16 -12
  209. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
  210. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js +2 -2
  211. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js.map +1 -1
  212. package/dist/generated/templates/MastheadShellTemplate.lit.js +8 -8
  213. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  214. package/dist/generated/templates/MediaPlayerTemplate.lit.js +2 -2
  215. package/dist/generated/templates/MediaPlayerTemplate.lit.js.map +1 -1
  216. package/dist/generated/templates/PaginationTemplate.lit.js +1 -1
  217. package/dist/generated/templates/PaginationTemplate.lit.js.map +1 -1
  218. package/dist/generated/templates/PasswordFieldTemplate.lit.js +1 -2
  219. package/dist/generated/templates/PasswordFieldTemplate.lit.js.map +1 -1
  220. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +6 -3
  221. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
  222. package/dist/generated/templates/RatingBarTemplate.lit.d.ts +4 -0
  223. package/dist/generated/templates/RatingBarTemplate.lit.js +6 -0
  224. package/dist/generated/templates/RatingBarTemplate.lit.js.map +1 -0
  225. package/dist/generated/templates/ReviewItemTemplate.lit.d.ts +4 -0
  226. package/dist/generated/templates/ReviewItemTemplate.lit.js +8 -0
  227. package/dist/generated/templates/ReviewItemTemplate.lit.js.map +1 -0
  228. package/dist/generated/templates/ReviewTemplate.lit.d.ts +4 -0
  229. package/dist/generated/templates/ReviewTemplate.lit.js +10 -0
  230. package/dist/generated/templates/ReviewTemplate.lit.js.map +1 -0
  231. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +1 -1
  232. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +1 -1
  233. package/dist/generated/templates/SearchTemplate.lit.js +7 -7
  234. package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
  235. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +3 -3
  236. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -1
  237. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +5 -4
  238. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +1 -1
  239. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +7 -6
  240. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  241. package/dist/generated/templates/SelectBoxTemplate.lit.js +2 -2
  242. package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
  243. package/dist/generated/templates/SwitchTemplate.lit.js +2 -2
  244. package/dist/generated/templates/SwitchTemplate.lit.js.map +1 -1
  245. package/dist/generated/templates/TabHeaderTemplate.lit.js +2 -2
  246. package/dist/generated/templates/TabHeaderTemplate.lit.js.map +1 -1
  247. package/dist/generated/templates/TabInOverflowTemplate.lit.js +6 -6
  248. package/dist/generated/templates/TabInOverflowTemplate.lit.js.map +1 -1
  249. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js +1 -1
  250. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js.map +1 -1
  251. package/dist/generated/templates/TabNavigationTemplate.lit.js +4 -2
  252. package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
  253. package/dist/generated/templates/TagGroupTemplate.lit.d.ts +4 -0
  254. package/dist/generated/templates/TagGroupTemplate.lit.js +8 -0
  255. package/dist/generated/templates/TagGroupTemplate.lit.js.map +1 -0
  256. package/dist/generated/templates/TagTemplate.lit.js +13 -3
  257. package/dist/generated/templates/TagTemplate.lit.js.map +1 -1
  258. package/dist/generated/templates/TextAreaTemplate.lit.js +1 -1
  259. package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
  260. package/dist/generated/templates/TextFieldTemplate.lit.js +2 -2
  261. package/dist/generated/templates/TextFieldTemplate.lit.js.map +1 -1
  262. package/dist/generated/templates/TooltipTemplate.lit.js +1 -1
  263. package/dist/generated/templates/TooltipTemplate.lit.js.map +1 -1
  264. package/dist/generated/themes/AccordionItem.css.js +1 -1
  265. package/dist/generated/themes/AccordionItem.css.js.map +1 -1
  266. package/dist/generated/themes/Avatar.css.js +1 -1
  267. package/dist/generated/themes/Avatar.css.js.map +1 -1
  268. package/dist/generated/themes/Badge.css.js +1 -1
  269. package/dist/generated/themes/Badge.css.js.map +1 -1
  270. package/dist/generated/themes/CountrySelector.css.js +1 -1
  271. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  272. package/dist/generated/themes/Divider.css.js +1 -1
  273. package/dist/generated/themes/Divider.css.js.map +1 -1
  274. package/dist/generated/themes/FilterMenu.css.js +1 -1
  275. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  276. package/dist/generated/themes/Footer.css.js +1 -1
  277. package/dist/generated/themes/Footer.css.js.map +1 -1
  278. package/dist/generated/themes/HeroBanner.css.js +1 -1
  279. package/dist/generated/themes/HeroBanner.css.js.map +1 -1
  280. package/dist/generated/themes/ListItem.css.js +1 -1
  281. package/dist/generated/themes/ListItem.css.js.map +1 -1
  282. package/dist/generated/themes/MastheadItem.css.js +1 -1
  283. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  284. package/dist/generated/themes/MastheadMobileMenu.css.js +1 -1
  285. package/dist/generated/themes/MastheadMobileMenu.css.js.map +1 -1
  286. package/dist/generated/themes/MastheadShell.css.js +1 -1
  287. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  288. package/dist/generated/themes/Modal.css.js +1 -1
  289. package/dist/generated/themes/Modal.css.js.map +1 -1
  290. package/dist/generated/themes/Pagination.css.js +1 -1
  291. package/dist/generated/themes/Pagination.css.js.map +1 -1
  292. package/dist/generated/themes/PhoneNumberField.css.js +1 -1
  293. package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
  294. package/dist/generated/themes/RatingBar.css.js +9 -0
  295. package/dist/generated/themes/RatingBar.css.js.map +1 -0
  296. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  297. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  298. package/dist/generated/themes/Review.css.d.ts +3 -0
  299. package/dist/generated/themes/Review.css.js +9 -0
  300. package/dist/generated/themes/Review.css.js.map +1 -0
  301. package/dist/generated/themes/ReviewItem.css.d.ts +3 -0
  302. package/dist/generated/themes/ReviewItem.css.js +9 -0
  303. package/dist/generated/themes/ReviewItem.css.js.map +1 -0
  304. package/dist/generated/themes/Search.css.js +1 -1
  305. package/dist/generated/themes/Search.css.js.map +1 -1
  306. package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
  307. package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
  308. package/dist/generated/themes/SecondaryNavigationItem.css.js +1 -1
  309. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
  310. package/dist/generated/themes/SecondaryNavigationSubItem.css.js +1 -1
  311. package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -1
  312. package/dist/generated/themes/SelectBox.css.js +1 -1
  313. package/dist/generated/themes/SelectBox.css.js.map +1 -1
  314. package/dist/generated/themes/Slider.css.js +1 -1
  315. package/dist/generated/themes/Slider.css.js.map +1 -1
  316. package/dist/generated/themes/StepInput.css.js +1 -1
  317. package/dist/generated/themes/StepInput.css.js.map +1 -1
  318. package/dist/generated/themes/TabNavigation.css.js +1 -1
  319. package/dist/generated/themes/TabNavigation.css.js.map +1 -1
  320. package/dist/generated/themes/Tag.css.js +1 -1
  321. package/dist/generated/themes/Tag.css.js.map +1 -1
  322. package/dist/generated/themes/TagGroup.css.d.ts +3 -0
  323. package/dist/generated/themes/TagGroup.css.js +9 -0
  324. package/dist/generated/themes/TagGroup.css.js.map +1 -0
  325. package/dist/generated/themes/TextArea.css.js +1 -1
  326. package/dist/generated/themes/TextArea.css.js.map +1 -1
  327. package/dist/generated/themes/TextField.css.js +1 -1
  328. package/dist/generated/themes/TextField.css.js.map +1 -1
  329. package/dist/generated/themes/Toast.css.js +1 -1
  330. package/dist/generated/themes/Toast.css.js.map +1 -1
  331. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js +1 -1
  332. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js.map +1 -1
  333. package/dist/i18n/messagebundle.properties +35 -7
  334. package/dist/i18n/messagebundle_en.properties +17 -7
  335. package/dist/vscode.html-custom-data.json +260 -95
  336. package/dist/web-types.json +605 -183
  337. package/package.json +9 -9
  338. package/src/Accordion.ts +1 -1
  339. package/src/AccordionItem.hbs +1 -4
  340. package/src/AccordionItem.ts +6 -5
  341. package/src/Avatar.ts +24 -1
  342. package/src/AvatarGroup.ts +135 -0
  343. package/src/Checkbox.ts +1 -1
  344. package/src/CountrySelector.hbs +19 -15
  345. package/src/CountrySelector.ts +42 -9
  346. package/src/DatePicker.hbs +7 -9
  347. package/src/DatePicker.ts +14 -10
  348. package/src/Dropdown.hbs +8 -2
  349. package/src/Dropdown.ts +27 -6
  350. package/src/FilterMenu.hbs +58 -56
  351. package/src/FilterMenu.ts +101 -39
  352. package/src/Footer.hbs +21 -37
  353. package/src/Footer.ts +74 -52
  354. package/src/HeroBanner.hbs +22 -15
  355. package/src/HeroBanner.ts +3 -0
  356. package/src/Link.ts +1 -1
  357. package/src/List.ts +43 -23
  358. package/src/ListGroupHeader.ts +2 -2
  359. package/src/ListItem.hbs +4 -2
  360. package/src/ListItem.ts +8 -10
  361. package/src/ListSelectAll.hbs +1 -1
  362. package/src/ListSelectAll.ts +1 -1
  363. package/src/MastheadItem.hbs +7 -5
  364. package/src/MastheadItem.ts +44 -11
  365. package/src/MastheadMenu.hbs +4 -2
  366. package/src/MastheadMenu.ts +30 -0
  367. package/src/MastheadMenuItem.hbs +0 -2
  368. package/src/MastheadMenuItem.ts +2 -16
  369. package/src/MastheadMobileMenu.hbs +36 -10
  370. package/src/MastheadMobileMenu.ts +162 -22
  371. package/src/MastheadProfileMenu.hbs +6 -2
  372. package/src/MastheadProfileMenu.ts +66 -20
  373. package/src/MastheadShell.hbs +14 -4
  374. package/src/MastheadShell.ts +67 -8
  375. package/src/MediaPlayer.hbs +1 -3
  376. package/src/MediaPlayer.ts +122 -26
  377. package/src/MessageStrip.ts +1 -1
  378. package/src/Pagination.hbs +4 -2
  379. package/src/Pagination.ts +19 -4
  380. package/src/PasswordField.hbs +6 -17
  381. package/src/PasswordField.ts +31 -23
  382. package/src/PhoneNumberField.hbs +26 -6
  383. package/src/PhoneNumberField.ts +77 -2
  384. package/src/RatingBar.hbs +11 -0
  385. package/src/RatingBar.ts +113 -0
  386. package/src/Review.hbs +44 -0
  387. package/src/Review.ts +140 -0
  388. package/src/ReviewItem.hbs +20 -0
  389. package/src/ReviewItem.ts +227 -0
  390. package/src/Search.hbs +19 -14
  391. package/src/Search.ts +113 -6
  392. package/src/SearchSuggestions.hbs +1 -0
  393. package/src/SearchableListBase.ts +1 -1
  394. package/src/SecondaryNavigation.hbs +14 -8
  395. package/src/SecondaryNavigation.ts +76 -56
  396. package/src/SecondaryNavigationItem.hbs +3 -2
  397. package/src/SecondaryNavigationItem.ts +15 -5
  398. package/src/SecondaryNavigationItemBase.ts +41 -3
  399. package/src/SecondaryNavigationSubItem.hbs +13 -10
  400. package/src/SecondaryNavigationSubItem.ts +6 -2
  401. package/src/SelectBox.hbs +84 -83
  402. package/src/SelectBox.ts +155 -72
  403. package/src/StatusBadge.ts +2 -2
  404. package/src/Switch.hbs +3 -3
  405. package/src/Switch.ts +25 -0
  406. package/src/Tab.ts +11 -1
  407. package/src/TabHeader.hbs +3 -1
  408. package/src/TabInOverflow.hbs +19 -6
  409. package/src/TabNavigation.hbs +22 -12
  410. package/src/TabNavigation.ts +93 -117
  411. package/src/TabNavigationPopover.hbs +1 -0
  412. package/src/Tag.hbs +76 -26
  413. package/src/Tag.ts +77 -36
  414. package/src/TagGroup.hbs +48 -0
  415. package/src/TagGroup.ts +222 -0
  416. package/src/TextArea.hbs +36 -34
  417. package/src/TextArea.ts +28 -0
  418. package/src/TextField.hbs +45 -39
  419. package/src/TextField.ts +73 -17
  420. package/src/Tooltip.hbs +2 -2
  421. package/src/Tooltip.ts +5 -5
  422. package/src/data/CountryListISO3166.ts +162 -162
  423. package/src/generated/i18n/i18n-defaults.ts +2 -2
  424. package/src/generated/templates/AccordionItemTemplate.lit.ts +1 -1
  425. package/src/generated/templates/CountrySelectorTemplate.lit.ts +3 -3
  426. package/src/generated/templates/DatePickerTemplate.lit.ts +1 -1
  427. package/src/generated/templates/DropdownTemplate.lit.ts +2 -2
  428. package/src/generated/templates/FilterMenuTemplate.lit.ts +1 -1
  429. package/src/generated/templates/FooterTemplate.lit.ts +26 -28
  430. package/src/generated/templates/HeroBannerTemplate.lit.ts +7 -7
  431. package/src/generated/templates/ListItemTemplate.lit.ts +6 -6
  432. package/src/generated/templates/ListSelectAllTemplate.lit.ts +1 -1
  433. package/src/generated/templates/MastheadItemTemplate.lit.ts +3 -3
  434. package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +1 -1
  435. package/src/generated/templates/MastheadMenuTemplate.lit.ts +2 -2
  436. package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +16 -12
  437. package/src/generated/templates/MastheadProfileMenuTemplate.lit.ts +2 -2
  438. package/src/generated/templates/MastheadShellTemplate.lit.ts +8 -8
  439. package/src/generated/templates/MediaPlayerTemplate.lit.ts +2 -2
  440. package/src/generated/templates/PaginationTemplate.lit.ts +1 -1
  441. package/src/generated/templates/PasswordFieldTemplate.lit.ts +1 -2
  442. package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +6 -3
  443. package/src/generated/templates/RatingBarTemplate.lit.ts +11 -0
  444. package/src/generated/templates/ReviewItemTemplate.lit.ts +13 -0
  445. package/src/generated/templates/ReviewTemplate.lit.ts +15 -0
  446. package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +1 -1
  447. package/src/generated/templates/SearchTemplate.lit.ts +7 -7
  448. package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +3 -3
  449. package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +5 -4
  450. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +7 -6
  451. package/src/generated/templates/SelectBoxTemplate.lit.ts +2 -2
  452. package/src/generated/templates/SwitchTemplate.lit.ts +2 -2
  453. package/src/generated/templates/TabHeaderTemplate.lit.ts +2 -2
  454. package/src/generated/templates/TabInOverflowTemplate.lit.ts +6 -6
  455. package/src/generated/templates/TabNavigationPopoverTemplate.lit.ts +1 -1
  456. package/src/generated/templates/TabNavigationTemplate.lit.ts +4 -2
  457. package/src/generated/templates/TagGroupTemplate.lit.ts +13 -0
  458. package/src/generated/templates/TagTemplate.lit.ts +13 -3
  459. package/src/generated/templates/TextAreaTemplate.lit.ts +1 -1
  460. package/src/generated/templates/TextFieldTemplate.lit.ts +2 -2
  461. package/src/generated/templates/TooltipTemplate.lit.ts +1 -1
  462. package/src/generated/themes/AccordionItem.css.ts +1 -1
  463. package/src/generated/themes/Avatar.css.ts +1 -1
  464. package/src/generated/themes/Badge.css.ts +1 -1
  465. package/src/generated/themes/CountrySelector.css.ts +1 -1
  466. package/src/generated/themes/Divider.css.ts +1 -1
  467. package/src/generated/themes/FilterMenu.css.ts +1 -1
  468. package/src/generated/themes/Footer.css.ts +1 -1
  469. package/src/generated/themes/HeroBanner.css.ts +1 -1
  470. package/src/generated/themes/ListItem.css.ts +1 -1
  471. package/src/generated/themes/MastheadItem.css.ts +1 -1
  472. package/src/generated/themes/MastheadMobileMenu.css.ts +1 -1
  473. package/src/generated/themes/MastheadShell.css.ts +1 -1
  474. package/src/generated/themes/Modal.css.ts +1 -1
  475. package/src/generated/themes/Pagination.css.ts +1 -1
  476. package/src/generated/themes/PhoneNumberField.css.ts +1 -1
  477. package/src/generated/themes/RatingBar.css.ts +13 -0
  478. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  479. package/src/generated/themes/Review.css.ts +13 -0
  480. package/src/generated/themes/ReviewItem.css.ts +13 -0
  481. package/src/generated/themes/Search.css.ts +1 -1
  482. package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
  483. package/src/generated/themes/SecondaryNavigationItem.css.ts +1 -1
  484. package/src/generated/themes/SecondaryNavigationSubItem.css.ts +1 -1
  485. package/src/generated/themes/SelectBox.css.ts +1 -1
  486. package/src/generated/themes/Slider.css.ts +1 -1
  487. package/src/generated/themes/StepInput.css.ts +1 -1
  488. package/src/generated/themes/TabNavigation.css.ts +1 -1
  489. package/src/generated/themes/Tag.css.ts +1 -1
  490. package/src/generated/themes/TagGroup.css.ts +13 -0
  491. package/src/generated/themes/TextArea.css.ts +1 -1
  492. package/src/generated/themes/TextField.css.ts +1 -1
  493. package/src/generated/themes/Toast.css.ts +1 -1
  494. package/src/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +1 -1
  495. package/src/i18n/messagebundle.properties +35 -7
  496. package/src/i18n/messagebundle_en.properties +17 -7
  497. package/src/themes/AccordionItem.css +6 -4
  498. package/src/themes/Avatar.css +24 -7
  499. package/src/themes/Badge.css +1 -1
  500. package/src/themes/CountrySelector.css +49 -26
  501. package/src/themes/Divider.css +6 -2
  502. package/src/themes/FilterMenu.css +52 -15
  503. package/src/themes/Footer.css +93 -168
  504. package/src/themes/HeroBanner.css +52 -24
  505. package/src/themes/ListItem.css +4 -0
  506. package/src/themes/MastheadItem.css +12 -2
  507. package/src/themes/MastheadMobileMenu.css +4 -0
  508. package/src/themes/MastheadShell.css +25 -29
  509. package/src/themes/Modal.css +6 -0
  510. package/src/themes/Pagination.css +7 -0
  511. package/src/themes/PhoneNumberField.css +15 -1
  512. package/src/themes/RatingBar.css +52 -0
  513. package/src/themes/Review.css +196 -0
  514. package/src/themes/ReviewItem.css +121 -0
  515. package/src/themes/Search.css +46 -25
  516. package/src/themes/SecondaryNavigation.css +41 -13
  517. package/src/themes/SecondaryNavigationItem.css +6 -4
  518. package/src/themes/SecondaryNavigationSubItem.css +5 -5
  519. package/src/themes/SelectBox.css +51 -24
  520. package/src/themes/StepInput.css +5 -2
  521. package/src/themes/TabNavigation.css +7 -1
  522. package/src/themes/Tag.css +200 -148
  523. package/src/themes/TagGroup.css +90 -0
  524. package/src/themes/TextArea.css +13 -0
  525. package/src/themes/TextField.css +97 -60
  526. package/src/themes/Toast.css +4 -0
  527. package/dist/assets/bundle.esm-f65ae7da.js +0 -315
  528. package/dist/assets/messagebundle_en-7249941b.js +0 -1
  529. package/dist/assets/parameters-bundle.css-76ef62fa.js +0 -2
  530. package/dist/assets/video.es-17aecf95.js +0 -219
  531. package/dist/css/themes/PasswordField.css +0 -1
  532. package/dist/generated/themes/PasswordField.css.js +0 -9
  533. package/dist/generated/themes/PasswordField.css.js.map +0 -1
  534. package/src/generated/themes/PasswordField.css.ts +0 -13
  535. package/src/themes/PasswordField.css +0 -29
  536. /package/dist/generated/themes/{PasswordField.css.d.ts → RatingBar.css.d.ts} +0 -0
@@ -11,15 +11,36 @@
11
11
  {{/if}}
12
12
  {{#if _showCategories}}
13
13
  <li class="udex-masthead-mobile-menu__list-item" role="menuitem">
14
- <udex-masthead-menu-item
15
- class="udex-masthead-mobile-menu__back-item"
16
- @click="{{handleBackToMenuItems}}"
17
- label="{{_clickedItem.innerText}}"
18
- type="Button"
19
- has-border
20
- icon-start
21
- back-to-nav>
22
- </udex-masthead-menu-item>
14
+ {{#if _hideExploreSapBtn}}
15
+ <udex-masthead-menu-item
16
+ class="udex-masthead-mobile-menu__back-item"
17
+ @click="{{handleExploreBackToMenuItems}}"
18
+ label="{{_clickedItem.innerText}}"
19
+ type="Button"
20
+ has-border
21
+ icon-start
22
+ is-explore-back>
23
+ </udex-masthead-menu-item>
24
+ {{else}}
25
+ {{#if isNotMultipleMode}}
26
+ <udex-masthead-menu-item
27
+ class="udex-masthead-mobile-menu__heading"
28
+ label="{{_clickedItem.innerText}}"
29
+ type="Heading"
30
+ has-border>
31
+ </udex-masthead-menu-item>
32
+ {{else}}
33
+ <udex-masthead-menu-item
34
+ class="udex-masthead-mobile-menu__back-item"
35
+ @click="{{handleBackToMenuItems}}"
36
+ label="{{_clickedItem.innerText}}"
37
+ type="Button"
38
+ has-border
39
+ icon-start
40
+ is-back-to-nav>
41
+ </udex-masthead-menu-item>
42
+ {{/if}}
43
+ {{/if}}
23
44
  </li>
24
45
  {{>categories}}
25
46
  {{/if}}
@@ -32,7 +53,7 @@
32
53
  type="Button"
33
54
  has-border
34
55
  icon-start
35
- back-to-categories>
56
+ is-back-to-categories>
36
57
  </udex-masthead-menu-item>
37
58
  </li>
38
59
  {{>category-items}}
@@ -69,6 +90,7 @@
69
90
  </udex-masthead-menu-item>
70
91
  {{else}}
71
92
  <udex-masthead-menu-item
93
+ @click="{{../handleMobileItemEvent}}"
72
94
  url="{{this.href}}"
73
95
  label="{{this.innerText}}"
74
96
  has-border>
@@ -84,6 +106,7 @@
84
106
  <udex-masthead-menu-item
85
107
  url="{{_clickedItem.href}}"
86
108
  label="{{overviewLinkText}}"
109
+ @click="{{handleMobileItemEvent}}"
87
110
  has-border>
88
111
  </udex-masthead-menu-item>
89
112
  </li>
@@ -106,6 +129,7 @@
106
129
  {{#each this.items}}
107
130
  <li class="udex-masthead-mobile-menu__list-item" role="menuitem">
108
131
  <udex-masthead-menu-item
132
+ @click="{{../handleMobileItemEvent}}"
109
133
  url="{{this.url}}"
110
134
  label="{{this.title}}"
111
135
  has-border>
@@ -120,6 +144,7 @@
120
144
  {{#if _category.url}}
121
145
  <li class="udex-masthead-mobile-menu__list-item" role="menuitem">
122
146
  <udex-masthead-menu-item
147
+ @click="{{../handleMobileItemEvent}}"
123
148
  url="{{this._category.url}}"
124
149
  label="{{overviewLinkText}}"
125
150
  has-border>
@@ -129,6 +154,7 @@
129
154
  {{#each _category.items}}
130
155
  <li class="udex-masthead-mobile-menu__list-item" role="menuitem">
131
156
  <udex-masthead-menu-item
157
+ @click="{{../handleMobileItemEvent}}"
132
158
  label="{{this.title}}"
133
159
  url="{{this.url}}"
134
160
  has-border>
@@ -3,6 +3,7 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
3
3
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
4
4
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
5
5
  import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
6
+ import event from "@ui5/webcomponents-base/dist/decorators/event.js";
6
7
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
7
8
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
8
9
  import {
@@ -13,9 +14,15 @@ import UDExMastheadMenuItem from "./MastheadMenuItem.js";
13
14
  import { OVERVIEW } from "./generated/i18n/i18n-defaults.js";
14
15
 
15
16
  import MastheadMobileMenuTemplate from "./generated/templates/MastheadMobileMenuTemplate.lit.js";
17
+
16
18
  // Styles
17
19
  import MastheadMobileMenuCss from "./generated/themes/MastheadMobileMenu.css.js";
18
20
 
21
+ export type MobileItemClickEventDetail = {
22
+ originalEvent: Event,
23
+ item: UDExMastheadMenuItem,
24
+ }
25
+
19
26
  /**
20
27
  * @class
21
28
  *
@@ -41,6 +48,31 @@ import MastheadMobileMenuCss from "./generated/themes/MastheadMobileMenu.css.js"
41
48
  dependencies: [UDExMastheadMenuItem],
42
49
  })
43
50
 
51
+ /**
52
+ * Fires when item is clicked
53
+ *
54
+ * @allowPreventDefault
55
+ * @public
56
+ */
57
+ @event("item-click", {
58
+ detail: {
59
+ item: {
60
+ type: HTMLElement,
61
+ },
62
+ originalEvent: {
63
+ type: PointerEvent,
64
+ },
65
+ },
66
+ })
67
+
68
+ /**
69
+ * Fires when explorer menu button is clicked
70
+ *
71
+ * @allowPreventDefault
72
+ * @public
73
+ */
74
+ @event("explorer-menu-click")
75
+
44
76
  class UDExMastheadMobileMenu extends UI5Element {
45
77
  /**
46
78
  * Slot for search
@@ -83,6 +115,9 @@ class UDExMastheadMobileMenu extends UI5Element {
83
115
  _clickedItem!: UDExMastheadItem;
84
116
  _categories!: Array<SubMenuLinkItem>;
85
117
  _category!: SubMenuLinkItem;
118
+ _shouldFocusItemByIndex!: boolean;
119
+ _shouldFocusExploreBtn!: boolean;
120
+ _focusedItemIndex!: number;
86
121
 
87
122
  static i18nBundle: I18nBundle;
88
123
 
@@ -91,34 +126,53 @@ class UDExMastheadMobileMenu extends UI5Element {
91
126
  }
92
127
 
93
128
  onAfterRendering() {
94
- if (this.hasAttribute("slot")) {
95
- this.focusFirstItem();
96
- }
129
+ this.handleMenuMode();
130
+ this.handleFocusItem();
97
131
  }
98
132
 
99
133
  handleMenuItemClick(e: Event) {
100
134
  e.preventDefault();
101
- this.openCategories(e);
135
+ e.stopPropagation();
136
+ const item = this.getItemByList(e.target as UDExMastheadItem);
137
+ this.openCategories(item);
138
+ this.setFocusItemByIndex(0);
139
+ this.fireMobileItemEvent(e);
102
140
  }
103
141
 
104
142
  handleMenuCategoryClick(e: Event) {
105
143
  e.preventDefault();
144
+ e.stopPropagation();
106
145
  this.openCategoryItems(e);
146
+ this.setFocusItemByIndex(0);
147
+ this.fireMobileItemEvent(e);
107
148
  }
108
149
 
109
150
  handleExploreSapClick(e: Event) {
110
151
  e.preventDefault();
111
- this._hideExploreSapBtn = true;
112
- this._showCategoryItems = false;
113
- this.openCategories(e);
152
+ this.openExploreSapMenu(e);
153
+ this.setFocusItemByIndex(0);
154
+ this.fireEvent("explorer-menu-click");
114
155
  }
115
156
 
116
- handleBackToMenuItems() {
157
+ handleBackToMenuItems(e: Event) {
158
+ e.stopPropagation();
117
159
  this.showFirstLevelMenu();
160
+ this.setFocusItemByIndex(this.items.indexOf(this._clickedItem));
161
+ this.fireMobileItemEvent(e);
118
162
  }
119
163
 
120
- handleBackToCategories() {
164
+ handleBackToCategories(e: Event) {
165
+ e.stopPropagation();
121
166
  this.showCategories();
167
+ this.setFocusItemByIndex(this._category.index + 1);
168
+ this.fireMobileItemEvent(e);
169
+ }
170
+
171
+ handleExploreBackToMenuItems(e: Event) {
172
+ e.stopPropagation();
173
+ this.showFirstLevelMenu();
174
+ this.setFocusExploreBtn();
175
+ this.fireMobileItemEvent(e);
122
176
  }
123
177
 
124
178
  handleKeyDown(e: KeyboardEvent) {
@@ -175,36 +229,85 @@ class UDExMastheadMobileMenu extends UI5Element {
175
229
  }
176
230
  }
177
231
 
232
+ handleMobileItemEvent(e: Event) {
233
+ e.stopPropagation();
234
+ this.fireMobileItemEvent(e);
235
+ }
236
+
237
+ handleMenuMode() {
238
+ if (this.isCategoriesOpen) {
239
+ if (this.isNoMenuItemsMode) {
240
+ this.openCategories(this.exploreItem);
241
+ }
242
+
243
+ if (this.isSingleMenuMode) {
244
+ this.openCategories(this.items[0]);
245
+ }
246
+ }
247
+ }
248
+
249
+ handleFocusItem() {
250
+ if (this._shouldFocusItemByIndex) {
251
+ this.focusItemByIndex(this._focusedItemIndex);
252
+ }
253
+
254
+ if (this._shouldFocusExploreBtn) {
255
+ this.focusExploreBtn();
256
+ }
257
+ }
258
+
178
259
  moveToBackWithKeyboard(e: KeyboardEvent) {
179
- const target = e.target as UDExMastheadItem;
180
- if (target.hasAttribute("back-to-nav")) {
260
+ const target = e.target as UDExMastheadMenuItem;
261
+ if (target.hasAttribute("is-back-to-nav")) {
181
262
  this.showFirstLevelMenu();
263
+ this.setFocusItemByIndex(this.items.indexOf(this._clickedItem));
264
+ this.fireMobileItemEvent(e);
182
265
  }
183
266
 
184
- if (target.hasAttribute("back-to-categories")) {
267
+ if (target.hasAttribute("is-back-to-categories")) {
185
268
  this.showCategories();
269
+ this.setFocusItemByIndex(this._category.index + 1);
270
+ this.fireMobileItemEvent(e);
271
+ }
272
+
273
+ if (target.hasAttribute("is-explore-back")) {
274
+ this.showFirstLevelMenu();
275
+ this.setFocusExploreBtn();
276
+ this.fireMobileItemEvent(e);
186
277
  }
187
278
  }
188
279
 
189
280
  moveToNextLevelWithKeyboard(e: KeyboardEvent) {
190
281
  const target = e.target as UDExMastheadItem;
282
+ const item = this.getItemByList(e.target as UDExMastheadItem);
191
283
 
192
284
  if (target.hasAttribute("is-explore")) {
193
285
  this._hideExploreSapBtn = true;
194
286
  this._showCategoryItems = false;
287
+ this.fireMobileItemEvent(e);
195
288
  }
196
289
 
197
290
  if (target.hasAttribute("first-level")) {
198
- this.openCategories(e);
291
+ this.openCategories(item);
292
+ this.fireMobileItemEvent(e);
199
293
  }
200
294
 
201
295
  if (target.hasAttribute("second-level")) {
202
296
  this.openCategoryItems(e);
297
+ this.fireMobileItemEvent(e);
203
298
  }
299
+
300
+ this.setFocusItemByIndex(0);
301
+ }
302
+
303
+ focusItemByIndex(index: number): void {
304
+ this.getListItemByIndex(index)?.focus();
305
+ this._shouldFocusItemByIndex = false;
204
306
  }
205
307
 
206
- focusFirstItem(): void {
207
- this.getListItemByIndex(0)?.focus();
308
+ focusExploreBtn(): void {
309
+ this.exploreBtnMenu.focus();
310
+ this._shouldFocusExploreBtn = false;
208
311
  }
209
312
 
210
313
  focusPreviousItem(e: KeyboardEvent): void {
@@ -226,17 +329,23 @@ class UDExMastheadMobileMenu extends UI5Element {
226
329
  listItem?.focus();
227
330
  }
228
331
 
229
- openCategories(e: Event) {
332
+ openExploreSapMenu(e: Event) {
230
333
  const item = this.getItemByList(e.target as UDExMastheadItem);
334
+ this._hideExploreSapBtn = true;
335
+ this._showCategoryItems = false;
336
+ this.openCategories(item);
337
+ }
338
+
339
+ openCategories(item: UDExMastheadItem) {
231
340
  this._clickedItem = item;
232
341
  this._categories = this.getCategories(item.getSubItems());
233
- this.setCategoryByItem(item);
234
342
  this._showCategories = true;
235
343
  }
236
344
 
237
345
  openCategoryItems(e: Event) {
238
346
  const item = e.target as UDExMastheadMenuItem;
239
- this.setCategoryByItem(item);
347
+ const index = Number(item.getAttribute("id"));
348
+ this._category = { ...this._categories[index], index };
240
349
  this._showCategories = false;
241
350
  this._showCategoryItems = true;
242
351
  }
@@ -252,9 +361,20 @@ class UDExMastheadMobileMenu extends UI5Element {
252
361
  this._showCategoryItems = false;
253
362
  }
254
363
 
255
- setCategoryByItem(item: UDExMastheadMenuItem | UDExMastheadItem) {
256
- const index = Number(item.getAttribute("id"));
257
- this._category = this._categories[index];
364
+ fireMobileItemEvent(e: Event) {
365
+ this.fireEvent<MobileItemClickEventDetail>("item-click", {
366
+ item: e.target as UDExMastheadMenuItem,
367
+ originalEvent: e,
368
+ }, true, false);
369
+ }
370
+
371
+ setFocusItemByIndex(index: number) {
372
+ this._shouldFocusItemByIndex = true;
373
+ this._focusedItemIndex = index;
374
+ }
375
+
376
+ setFocusExploreBtn(): void {
377
+ this._shouldFocusExploreBtn = true;
258
378
  }
259
379
 
260
380
  getItemByList(el: UDExMastheadItem): UDExMastheadItem {
@@ -284,6 +404,10 @@ class UDExMastheadMobileMenu extends UI5Element {
284
404
  return this.navigationItems[index]?.querySelector("udex-masthead-menu-item");
285
405
  }
286
406
 
407
+ get exploreBtnMenu(): UDExMastheadMenuItem {
408
+ return this.shadowRoot!.querySelector<UDExMastheadMenuItem>(".udex-masthead-mobile-menu__explore-btn")!;
409
+ }
410
+
287
411
  get isRtlDirection(): boolean {
288
412
  return this._direction === "rtl";
289
413
  }
@@ -305,7 +429,7 @@ class UDExMastheadMobileMenu extends UI5Element {
305
429
  }
306
430
 
307
431
  get showExploreBtn(): boolean {
308
- return this.hasExploreBtnSlot && !this._hideExploreSapBtn;
432
+ return this.hasExploreBtnSlot && !this._hideExploreSapBtn && !!this.items.length;
309
433
  }
310
434
 
311
435
  get hasExploreBtnSlot(): boolean {
@@ -315,6 +439,22 @@ class UDExMastheadMobileMenu extends UI5Element {
315
439
  get hasSearchSlot(): boolean {
316
440
  return !!this.search.length;
317
441
  }
442
+
443
+ get isCategoriesOpen(): boolean {
444
+ return !this._showCategoryItems;
445
+ }
446
+
447
+ get isSingleMenuMode(): boolean {
448
+ return this.items.length === 1 && this.isCategoriesOpen;
449
+ }
450
+
451
+ get isNoMenuItemsMode(): boolean {
452
+ return this.items.length === 0 && this.isCategoriesOpen;
453
+ }
454
+
455
+ get isNotMultipleMode(): boolean {
456
+ return this.isSingleMenuMode || this.isNoMenuItemsMode;
457
+ }
318
458
  }
319
459
 
320
460
  UDExMastheadMobileMenu.define();
@@ -20,10 +20,14 @@
20
20
  </div>
21
21
  {{/if}}
22
22
  <div class="udex-masthead-profile-menu__links">
23
- <udex-masthead-menu sub-items='{{linksList}}'></udex-masthead-menu>
23
+ <udex-masthead-menu
24
+ sub-items='{{linksList}}'
25
+ @ui5-menu-item-click={{handleProfileMenuItemClick}}>
26
+ </udex-masthead-menu>
24
27
  {{#if logoutLink}}
25
- <div class="udex-masthead-profile-menu__actions" @click={{userLogout}}>
28
+ <div class="udex-masthead-profile-menu__actions">
26
29
  <udex-masthead-menu-item
30
+ @click={{handleUserLogoutItemClick}}
27
31
  url="{{logoutUrl}}"
28
32
  label="{{logoutText}}">
29
33
  </udex-masthead-menu-item>
@@ -9,16 +9,26 @@ import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
9
9
  import { LOGOUT } from "./generated/i18n/i18n-defaults.js";
10
10
  import UDExMastheadMenu from "./MastheadMenu.js";
11
11
  import MastheadProfileMenuTemplate from "./generated/templates/MastheadProfileMenuTemplate.lit.js";
12
+ import UDExMastheadMenuItem from "./MastheadMenuItem.js";
12
13
 
13
14
  // Styles
14
15
  import MastheadProfileMenuCss from "./generated/themes/MastheadProfileMenu.css.js";
15
16
 
16
17
  interface UserData {
17
- name?: string,
18
- username?: string,
19
- email?: string,
20
- avatarUrl?: string,
21
- avatarInitials?: string
18
+ name?: string,
19
+ username?: string,
20
+ email?: string,
21
+ avatarUrl?: string,
22
+ avatarInitials?: string
23
+ }
24
+
25
+ export type LogoutClickEventDetail = {
26
+ originalEvent: Event,
27
+ }
28
+
29
+ export type ProfileMenuItemClickEventDetail = {
30
+ item: UDExMastheadMenuItem,
31
+ originalEvent: Event,
22
32
  }
23
33
 
24
34
  /**
@@ -50,7 +60,30 @@ interface UserData {
50
60
  * Fired when use click Logout link
51
61
  * @public
52
62
  */
53
- @event("logout")
63
+ @event("logout", {
64
+ detail: {
65
+ originalEvent: {
66
+ type: PointerEvent,
67
+ },
68
+ },
69
+ })
70
+
71
+ /**
72
+ * Fires when profile ment item is clicked
73
+ *
74
+ * @public
75
+ */
76
+ @event("profile-item-click", {
77
+ detail: {
78
+ item: {
79
+ type: HTMLElement,
80
+ },
81
+ originalEvent: {
82
+ type: PointerEvent,
83
+ },
84
+ },
85
+ })
86
+
54
87
  class UDExMastheadProfileMenu extends UI5Element {
55
88
  /**
56
89
  * Defines the object of link values
@@ -60,6 +93,7 @@ class UDExMastheadProfileMenu extends UI5Element {
60
93
  */
61
94
  @property()
62
95
  links!: string;
96
+
63
97
  /**
64
98
  * Defines the object of user profile data
65
99
  *
@@ -68,6 +102,7 @@ class UDExMastheadProfileMenu extends UI5Element {
68
102
  */
69
103
  @property()
70
104
  loggedInUser!: string;
105
+
71
106
  /**
72
107
  * Defines the link for logout
73
108
  *
@@ -86,10 +121,29 @@ class UDExMastheadProfileMenu extends UI5Element {
86
121
  message!: Array<Node>;
87
122
  static i18nBundle: I18nBundle;
88
123
 
89
- static async onDefine() {
124
+ static async onDefine(): Promise<void> {
90
125
  UDExMastheadProfileMenu.i18nBundle = await getI18nBundle("sap-ui-webcomponents-bundle");
91
126
  }
92
127
 
128
+ handleUserLogoutItemClick(e: Event): void {
129
+ this.fireEvent<LogoutClickEventDetail>("logout", {
130
+ originalEvent: e,
131
+ });
132
+ }
133
+
134
+ handleProfileMenuItemClick(e: CustomEvent): void {
135
+ const { item, originalEvent } = e.detail;
136
+
137
+ this.fireEvent<ProfileMenuItemClickEventDetail>("profile-item-click", {
138
+ item,
139
+ originalEvent,
140
+ });
141
+ }
142
+
143
+ parseArrayFromString<T>(string: string): T[] {
144
+ return string ? JSON.parse(string) as T[] : [];
145
+ }
146
+
93
147
  get linksList(): string {
94
148
  return this.links ? JSON.stringify([{
95
149
  subMenuLinkItems: JSON.parse(this.links),
@@ -100,25 +154,17 @@ class UDExMastheadProfileMenu extends UI5Element {
100
154
  return this.parseArrayFromString(this.loggedInUser) as UserData;
101
155
  }
102
156
 
103
- parseArrayFromString<T>(string: string): T[] {
104
- return string ? JSON.parse(string) as T[] : [];
157
+ get messageAvailable(): boolean {
158
+ return !!this.message.length;
105
159
  }
106
160
 
107
- get messageAvailable() {
108
- return this.message.length;
161
+ get logoutLink(): boolean {
162
+ return !!this.logoutUrl.length;
109
163
  }
110
164
 
111
- get logoutLink() {
112
- return this.logoutUrl.length;
113
- }
114
-
115
- get logoutText() {
165
+ get logoutText(): string {
116
166
  return UDExMastheadProfileMenu.i18nBundle.getText(LOGOUT);
117
167
  }
118
-
119
- userLogout() {
120
- this.fireEvent("logout");
121
- }
122
168
  }
123
169
 
124
170
  UDExMastheadProfileMenu.define();
@@ -23,7 +23,10 @@
23
23
  {{#if _isSearchVisible}}
24
24
  <div class="udex-masthead-shell__search-container">
25
25
  <slot name="search"></slot>
26
+ </div>
27
+ <div class="udex-masthead-shell__btn-holder">
26
28
  <udex-control-button
29
+ class="udex-masthead-shell__close-search-btn"
27
30
  size="Small"
28
31
  icon="decline"
29
32
  accessible-name="{{closeButtonAccessibleName}}"
@@ -32,7 +35,9 @@
32
35
  </div>
33
36
  {{else}}
34
37
  <div class="udex-masthead-shell__right-menu">
35
- <div class="udex-masthead-shell__explore" @click="{{setSelectedItem}}">
38
+ <div
39
+ class="udex-masthead-shell__explore"
40
+ @ui5-item-click="{{setSelectedItem}}">
36
41
  <slot name="exploreSAP"></slot>
37
42
  </div>
38
43
  {{#if hasSearch}}
@@ -48,6 +53,7 @@
48
53
  {{#if hasCart}}
49
54
  <div
50
55
  class="udex-masthead-shell__cart"
56
+ @ui5-item-click="{{setSelectedItem}}"
51
57
  @click="{{handleCartClick}}">
52
58
  <slot name="cart"></slot>
53
59
  </div>
@@ -55,13 +61,14 @@
55
61
  {{#if hasProfile}}
56
62
  <div
57
63
  class="udex-masthead-shell__profile"
64
+ @ui5-item-click="{{setSelectedItem}}"
58
65
  @click="{{handleProfileClick}}">
59
66
  <slot name="profile"></slot>
60
67
  </div>
61
68
  {{/if}}
62
69
  {{#if hasMobileMenuButtons}}
63
70
  <udex-masthead-item
64
- @click="{{handleMobileMenuClick}}"
71
+ @ui5-item-click="{{handleMobileMenuClick}}"
65
72
  class="udex-masthead-shell__menu-btn"
66
73
  accessible-role="button"
67
74
  icon="menu2"
@@ -70,7 +77,7 @@
70
77
  <slot slot="dropdown" name="mobileMenu"></slot>
71
78
  </udex-masthead-item>
72
79
  <udex-masthead-item
73
- @click="{{handleMobileCloseClick}}"
80
+ @ui5-item-click="{{handleMobileCloseClick}}"
74
81
  class="udex-masthead-shell__close-btn"
75
82
  accessible-role="button"
76
83
  icon="decline"
@@ -84,7 +91,7 @@
84
91
  </div>
85
92
 
86
93
  {{#*inline "item"}}
87
- <div @click="{{../setSelectedItem}}" class="udex-masthead-shell__item" role="menuitem">
94
+ <div @ui5-item-click="{{../setSelectedItem}}" class="udex-masthead-shell__item" role="menuitem">
88
95
  <slot name="{{_individualSlot}}"></slot>
89
96
  </div>
90
97
  {{/inline}}
@@ -92,8 +99,10 @@
92
99
  {{#*inline "logo"}}
93
100
  {{#if homeUrl}}
94
101
  <a
102
+ @click="{{handleLogoClick}}"
95
103
  role="link"
96
104
  href="{{homeUrl}}"
105
+ title="{{logoTitle}}"
97
106
  target="_self"
98
107
  aria-label="{{homepageAriaLabel}}"
99
108
  class="udex-masthead-shell__logo udex-masthead-shell__logo--link">
@@ -117,6 +126,7 @@
117
126
  {{#*inline "siteLabel"}}
118
127
  {{#if homeUrl}}
119
128
  <a
129
+ @click="{{handleSiteLabelClick}}"
120
130
  role="link"
121
131
  href="{{siteLabelUrl}}"
122
132
  target="_self"