@sapudex/web-components 0.117.1 → 0.127.6

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 (371) hide show
  1. package/bundle.esm.js +3 -0
  2. package/config/wdio.conf.js +19 -8
  3. package/dist/AccordionItem.d.ts +2 -1
  4. package/dist/AccordionItem.js +3 -3
  5. package/dist/AccordionItem.js.map +1 -1
  6. package/dist/Avatar.d.ts +12 -0
  7. package/dist/Avatar.js +22 -1
  8. package/dist/Avatar.js.map +1 -1
  9. package/dist/AvatarGroup.d.ts +28 -0
  10. package/dist/AvatarGroup.js +126 -0
  11. package/dist/AvatarGroup.js.map +1 -0
  12. package/dist/Dropdown.d.ts +11 -1
  13. package/dist/Dropdown.js +15 -3
  14. package/dist/Dropdown.js.map +1 -1
  15. package/dist/FilterMenu.d.ts +7 -1
  16. package/dist/FilterMenu.js +4 -1
  17. package/dist/FilterMenu.js.map +1 -1
  18. package/dist/Footer.d.ts +27 -0
  19. package/dist/Footer.js +27 -36
  20. package/dist/Footer.js.map +1 -1
  21. package/dist/HeroBanner.js +3 -0
  22. package/dist/HeroBanner.js.map +1 -1
  23. package/dist/MastheadItem.d.ts +1 -0
  24. package/dist/MastheadItem.js +5 -11
  25. package/dist/MastheadItem.js.map +1 -1
  26. package/dist/MastheadShell.d.ts +8 -0
  27. package/dist/MastheadShell.js +10 -0
  28. package/dist/MastheadShell.js.map +1 -1
  29. package/dist/MessageStrip.js +1 -1
  30. package/dist/MessageStrip.js.map +1 -1
  31. package/dist/Pagination.d.ts +3 -0
  32. package/dist/Pagination.js +16 -4
  33. package/dist/Pagination.js.map +1 -1
  34. package/dist/PasswordField.d.ts +14 -4
  35. package/dist/PasswordField.js +24 -15
  36. package/dist/PasswordField.js.map +1 -1
  37. package/dist/PhoneNumberField.d.ts +6 -0
  38. package/dist/PhoneNumberField.js +6 -1
  39. package/dist/PhoneNumberField.js.map +1 -1
  40. package/dist/RatingBar.d.ts +53 -0
  41. package/dist/RatingBar.js +96 -0
  42. package/dist/RatingBar.js.map +1 -0
  43. package/dist/Review.d.ts +71 -0
  44. package/dist/Review.js +108 -0
  45. package/dist/Review.js.map +1 -0
  46. package/dist/Search.d.ts +49 -1
  47. package/dist/Search.js +32 -3
  48. package/dist/Search.js.map +1 -1
  49. package/dist/SearchableListBase.d.ts +1 -1
  50. package/dist/SearchableListBase.js +1 -1
  51. package/dist/SearchableListBase.js.map +1 -1
  52. package/dist/SecondaryNavigation.d.ts +8 -8
  53. package/dist/SecondaryNavigation.js +51 -39
  54. package/dist/SecondaryNavigation.js.map +1 -1
  55. package/dist/SecondaryNavigationItem.d.ts +1 -1
  56. package/dist/SecondaryNavigationItem.js +15 -5
  57. package/dist/SecondaryNavigationItem.js.map +1 -1
  58. package/dist/SecondaryNavigationItemBase.d.ts +16 -2
  59. package/dist/SecondaryNavigationItemBase.js +27 -1
  60. package/dist/SecondaryNavigationItemBase.js.map +1 -1
  61. package/dist/SecondaryNavigationSubItem.d.ts +2 -1
  62. package/dist/SecondaryNavigationSubItem.js +5 -2
  63. package/dist/SecondaryNavigationSubItem.js.map +1 -1
  64. package/dist/SelectBox.js +2 -0
  65. package/dist/SelectBox.js.map +1 -1
  66. package/dist/StatusBadge.d.ts +5 -5
  67. package/dist/StatusBadge.js.map +1 -1
  68. package/dist/Switch.d.ts +1 -0
  69. package/dist/Switch.js +3 -0
  70. package/dist/Switch.js.map +1 -1
  71. package/dist/Tab.d.ts +8 -0
  72. package/dist/Tab.js +3 -0
  73. package/dist/Tab.js.map +1 -1
  74. package/dist/TabNavigation.d.ts +20 -20
  75. package/dist/TabNavigation.js +82 -101
  76. package/dist/TabNavigation.js.map +1 -1
  77. package/dist/Tag.d.ts +13 -6
  78. package/dist/Tag.js +34 -20
  79. package/dist/Tag.js.map +1 -1
  80. package/dist/TextArea.d.ts +1 -1
  81. package/dist/TextArea.js +3 -0
  82. package/dist/TextArea.js.map +1 -1
  83. package/dist/TextField.d.ts +9 -0
  84. package/dist/TextField.js +16 -0
  85. package/dist/TextField.js.map +1 -1
  86. package/dist/Tooltip.d.ts +2 -2
  87. package/dist/Tooltip.js +3 -3
  88. package/dist/Tooltip.js.map +1 -1
  89. package/dist/assets/bundle.esm-7d53f4f2.js +314 -0
  90. package/dist/assets/messagebundle_en-6dcc9ab4.js +1 -0
  91. package/dist/assets/parameters-bundle.css-de55cf62.js +2 -0
  92. package/dist/css/themes/AccordionItem.css +1 -1
  93. package/dist/css/themes/Avatar.css +1 -1
  94. package/dist/css/themes/Badge.css +1 -1
  95. package/dist/css/themes/Divider.css +1 -1
  96. package/dist/css/themes/Footer.css +1 -1
  97. package/dist/css/themes/HeroBanner.css +1 -1
  98. package/dist/css/themes/MastheadShell.css +1 -1
  99. package/dist/css/themes/Modal.css +1 -1
  100. package/dist/css/themes/Pagination.css +1 -1
  101. package/dist/css/themes/PhoneNumberField.css +1 -1
  102. package/dist/css/themes/RatingBar.css +1 -0
  103. package/dist/css/themes/RatingIndicator.css +1 -1
  104. package/dist/css/themes/Review.css +1 -0
  105. package/dist/css/themes/Search.css +1 -1
  106. package/dist/css/themes/SecondaryNavigation.css +1 -1
  107. package/dist/css/themes/SecondaryNavigationItem.css +1 -1
  108. package/dist/css/themes/SelectBox.css +1 -1
  109. package/dist/css/themes/Slider.css +1 -1
  110. package/dist/css/themes/StepInput.css +1 -1
  111. package/dist/css/themes/TabNavigation.css +1 -1
  112. package/dist/css/themes/Tag.css +1 -1
  113. package/dist/css/themes/TextField.css +1 -1
  114. package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +1 -1
  115. package/dist/custom-elements-internal.json +670 -100
  116. package/dist/custom-elements.json +594 -67
  117. package/dist/data/CountryListISO3166.js +162 -162
  118. package/dist/data/CountryListISO3166.js.map +1 -1
  119. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  120. package/dist/generated/assets/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.json +1 -1
  121. package/dist/generated/i18n/i18n-defaults.d.ts +9 -1
  122. package/dist/generated/i18n/i18n-defaults.js +13 -5
  123. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  124. package/dist/generated/templates/AccordionItemTemplate.lit.js +1 -1
  125. package/dist/generated/templates/AccordionItemTemplate.lit.js.map +1 -1
  126. package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
  127. package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
  128. package/dist/generated/templates/DropdownTemplate.lit.js +2 -2
  129. package/dist/generated/templates/DropdownTemplate.lit.js.map +1 -1
  130. package/dist/generated/templates/FilterMenuTemplate.lit.js +1 -1
  131. package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
  132. package/dist/generated/templates/FooterTemplate.lit.js +26 -28
  133. package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
  134. package/dist/generated/templates/HeroBannerTemplate.lit.js +9 -8
  135. package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
  136. package/dist/generated/templates/MastheadItemTemplate.lit.js +3 -3
  137. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
  138. package/dist/generated/templates/MastheadShellTemplate.lit.js +2 -2
  139. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  140. package/dist/generated/templates/PaginationTemplate.lit.js +1 -1
  141. package/dist/generated/templates/PaginationTemplate.lit.js.map +1 -1
  142. package/dist/generated/templates/PasswordFieldTemplate.lit.js +1 -2
  143. package/dist/generated/templates/PasswordFieldTemplate.lit.js.map +1 -1
  144. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +3 -3
  145. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
  146. package/dist/generated/templates/RatingBarTemplate.lit.d.ts +4 -0
  147. package/dist/generated/templates/RatingBarTemplate.lit.js +6 -0
  148. package/dist/generated/templates/RatingBarTemplate.lit.js.map +1 -0
  149. package/dist/generated/templates/ReviewTemplate.lit.d.ts +4 -0
  150. package/dist/generated/templates/ReviewTemplate.lit.js +10 -0
  151. package/dist/generated/templates/ReviewTemplate.lit.js.map +1 -0
  152. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +1 -1
  153. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +1 -1
  154. package/dist/generated/templates/SearchTemplate.lit.js +7 -7
  155. package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
  156. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +3 -3
  157. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -1
  158. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +5 -4
  159. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +1 -1
  160. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +3 -3
  161. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  162. package/dist/generated/templates/SelectBoxTemplate.lit.js +2 -2
  163. package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
  164. package/dist/generated/templates/SwitchTemplate.lit.js +2 -2
  165. package/dist/generated/templates/SwitchTemplate.lit.js.map +1 -1
  166. package/dist/generated/templates/TabInOverflowTemplate.lit.js +2 -2
  167. package/dist/generated/templates/TabInOverflowTemplate.lit.js.map +1 -1
  168. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js +1 -1
  169. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js.map +1 -1
  170. package/dist/generated/templates/TabNavigationTemplate.lit.js +2 -2
  171. package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
  172. package/dist/generated/templates/TagTemplate.lit.js +9 -3
  173. package/dist/generated/templates/TagTemplate.lit.js.map +1 -1
  174. package/dist/generated/templates/TextAreaTemplate.lit.js +1 -1
  175. package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
  176. package/dist/generated/templates/TextFieldTemplate.lit.js +2 -2
  177. package/dist/generated/templates/TextFieldTemplate.lit.js.map +1 -1
  178. package/dist/generated/templates/TooltipTemplate.lit.js +1 -1
  179. package/dist/generated/templates/TooltipTemplate.lit.js.map +1 -1
  180. package/dist/generated/themes/AccordionItem.css.js +1 -1
  181. package/dist/generated/themes/AccordionItem.css.js.map +1 -1
  182. package/dist/generated/themes/Avatar.css.js +1 -1
  183. package/dist/generated/themes/Avatar.css.js.map +1 -1
  184. package/dist/generated/themes/Badge.css.js +1 -1
  185. package/dist/generated/themes/Badge.css.js.map +1 -1
  186. package/dist/generated/themes/Divider.css.js +1 -1
  187. package/dist/generated/themes/Divider.css.js.map +1 -1
  188. package/dist/generated/themes/Footer.css.js +1 -1
  189. package/dist/generated/themes/Footer.css.js.map +1 -1
  190. package/dist/generated/themes/HeroBanner.css.js +1 -1
  191. package/dist/generated/themes/HeroBanner.css.js.map +1 -1
  192. package/dist/generated/themes/MastheadShell.css.js +1 -1
  193. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  194. package/dist/generated/themes/Modal.css.js +1 -1
  195. package/dist/generated/themes/Modal.css.js.map +1 -1
  196. package/dist/generated/themes/Pagination.css.js +1 -1
  197. package/dist/generated/themes/Pagination.css.js.map +1 -1
  198. package/dist/generated/themes/PhoneNumberField.css.js +1 -1
  199. package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
  200. package/dist/generated/themes/RatingBar.css.js +9 -0
  201. package/dist/generated/themes/RatingBar.css.js.map +1 -0
  202. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  203. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  204. package/dist/generated/themes/Review.css.d.ts +3 -0
  205. package/dist/generated/themes/Review.css.js +9 -0
  206. package/dist/generated/themes/Review.css.js.map +1 -0
  207. package/dist/generated/themes/Search.css.js +1 -1
  208. package/dist/generated/themes/Search.css.js.map +1 -1
  209. package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
  210. package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
  211. package/dist/generated/themes/SecondaryNavigationItem.css.js +1 -1
  212. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
  213. package/dist/generated/themes/SelectBox.css.js +1 -1
  214. package/dist/generated/themes/SelectBox.css.js.map +1 -1
  215. package/dist/generated/themes/Slider.css.js +1 -1
  216. package/dist/generated/themes/Slider.css.js.map +1 -1
  217. package/dist/generated/themes/StepInput.css.js +1 -1
  218. package/dist/generated/themes/StepInput.css.js.map +1 -1
  219. package/dist/generated/themes/TabNavigation.css.js +1 -1
  220. package/dist/generated/themes/TabNavigation.css.js.map +1 -1
  221. package/dist/generated/themes/Tag.css.js +1 -1
  222. package/dist/generated/themes/Tag.css.js.map +1 -1
  223. package/dist/generated/themes/TextField.css.js +1 -1
  224. package/dist/generated/themes/TextField.css.js.map +1 -1
  225. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js +1 -1
  226. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js.map +1 -1
  227. package/dist/i18n/messagebundle.properties +28 -4
  228. package/dist/i18n/messagebundle_en.properties +12 -4
  229. package/dist/vscode.html-custom-data.json +112 -17
  230. package/dist/web-types.json +215 -33
  231. package/package.json +8 -8
  232. package/src/AccordionItem.hbs +1 -4
  233. package/src/AccordionItem.ts +5 -4
  234. package/src/Avatar.ts +24 -1
  235. package/src/AvatarGroup.ts +135 -0
  236. package/src/DatePicker.hbs +0 -1
  237. package/src/Dropdown.hbs +5 -2
  238. package/src/Dropdown.ts +24 -3
  239. package/src/FilterMenu.hbs +3 -0
  240. package/src/FilterMenu.ts +10 -2
  241. package/src/Footer.hbs +12 -37
  242. package/src/Footer.ts +64 -51
  243. package/src/HeroBanner.hbs +18 -14
  244. package/src/HeroBanner.ts +3 -0
  245. package/src/MastheadItem.hbs +3 -3
  246. package/src/MastheadItem.ts +10 -4
  247. package/src/MastheadShell.hbs +4 -0
  248. package/src/MastheadShell.ts +18 -0
  249. package/src/MessageStrip.ts +1 -1
  250. package/src/Pagination.hbs +4 -2
  251. package/src/Pagination.ts +19 -4
  252. package/src/PasswordField.hbs +6 -17
  253. package/src/PasswordField.ts +31 -23
  254. package/src/PhoneNumberField.hbs +8 -3
  255. package/src/PhoneNumberField.ts +11 -1
  256. package/src/RatingBar.hbs +11 -0
  257. package/src/RatingBar.ts +113 -0
  258. package/src/Review.hbs +44 -0
  259. package/src/Review.ts +140 -0
  260. package/src/Search.hbs +19 -14
  261. package/src/Search.ts +72 -2
  262. package/src/SearchSuggestions.hbs +1 -0
  263. package/src/SearchableListBase.ts +1 -1
  264. package/src/SecondaryNavigation.hbs +5 -1
  265. package/src/SecondaryNavigation.ts +67 -49
  266. package/src/SecondaryNavigationItem.hbs +3 -2
  267. package/src/SecondaryNavigationItem.ts +15 -5
  268. package/src/SecondaryNavigationItemBase.ts +41 -3
  269. package/src/SecondaryNavigationSubItem.hbs +13 -10
  270. package/src/SecondaryNavigationSubItem.ts +6 -2
  271. package/src/SelectBox.hbs +75 -76
  272. package/src/SelectBox.ts +2 -0
  273. package/src/StatusBadge.ts +2 -2
  274. package/src/Switch.hbs +3 -3
  275. package/src/Switch.ts +4 -0
  276. package/src/Tab.ts +10 -0
  277. package/src/TabInOverflow.hbs +3 -2
  278. package/src/TabNavigation.hbs +12 -10
  279. package/src/TabNavigation.ts +92 -116
  280. package/src/TabNavigationPopover.hbs +1 -0
  281. package/src/Tag.hbs +60 -26
  282. package/src/Tag.ts +54 -34
  283. package/src/TextArea.hbs +3 -4
  284. package/src/TextArea.ts +3 -0
  285. package/src/TextField.hbs +40 -36
  286. package/src/TextField.ts +24 -0
  287. package/src/Tooltip.hbs +2 -2
  288. package/src/Tooltip.ts +4 -4
  289. package/src/data/CountryListISO3166.ts +162 -162
  290. package/src/generated/i18n/i18n-defaults.ts +2 -2
  291. package/src/generated/templates/AccordionItemTemplate.lit.ts +1 -1
  292. package/src/generated/templates/DatePickerTemplate.lit.ts +1 -1
  293. package/src/generated/templates/DropdownTemplate.lit.ts +2 -2
  294. package/src/generated/templates/FilterMenuTemplate.lit.ts +1 -1
  295. package/src/generated/templates/FooterTemplate.lit.ts +26 -28
  296. package/src/generated/templates/HeroBannerTemplate.lit.ts +9 -8
  297. package/src/generated/templates/MastheadItemTemplate.lit.ts +3 -3
  298. package/src/generated/templates/MastheadShellTemplate.lit.ts +2 -2
  299. package/src/generated/templates/PaginationTemplate.lit.ts +1 -1
  300. package/src/generated/templates/PasswordFieldTemplate.lit.ts +1 -2
  301. package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +3 -3
  302. package/src/generated/templates/RatingBarTemplate.lit.ts +11 -0
  303. package/src/generated/templates/ReviewTemplate.lit.ts +15 -0
  304. package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +1 -1
  305. package/src/generated/templates/SearchTemplate.lit.ts +7 -7
  306. package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +3 -3
  307. package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +5 -4
  308. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +3 -3
  309. package/src/generated/templates/SelectBoxTemplate.lit.ts +2 -2
  310. package/src/generated/templates/SwitchTemplate.lit.ts +2 -2
  311. package/src/generated/templates/TabInOverflowTemplate.lit.ts +2 -2
  312. package/src/generated/templates/TabNavigationPopoverTemplate.lit.ts +1 -1
  313. package/src/generated/templates/TabNavigationTemplate.lit.ts +2 -2
  314. package/src/generated/templates/TagTemplate.lit.ts +9 -3
  315. package/src/generated/templates/TextAreaTemplate.lit.ts +1 -1
  316. package/src/generated/templates/TextFieldTemplate.lit.ts +2 -2
  317. package/src/generated/templates/TooltipTemplate.lit.ts +1 -1
  318. package/src/generated/themes/AccordionItem.css.ts +1 -1
  319. package/src/generated/themes/Avatar.css.ts +1 -1
  320. package/src/generated/themes/Badge.css.ts +1 -1
  321. package/src/generated/themes/Divider.css.ts +1 -1
  322. package/src/generated/themes/Footer.css.ts +1 -1
  323. package/src/generated/themes/HeroBanner.css.ts +1 -1
  324. package/src/generated/themes/MastheadShell.css.ts +1 -1
  325. package/src/generated/themes/Modal.css.ts +1 -1
  326. package/src/generated/themes/Pagination.css.ts +1 -1
  327. package/src/generated/themes/PhoneNumberField.css.ts +1 -1
  328. package/src/generated/themes/RatingBar.css.ts +13 -0
  329. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  330. package/src/generated/themes/Review.css.ts +13 -0
  331. package/src/generated/themes/Search.css.ts +1 -1
  332. package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
  333. package/src/generated/themes/SecondaryNavigationItem.css.ts +1 -1
  334. package/src/generated/themes/SelectBox.css.ts +1 -1
  335. package/src/generated/themes/Slider.css.ts +1 -1
  336. package/src/generated/themes/StepInput.css.ts +1 -1
  337. package/src/generated/themes/TabNavigation.css.ts +1 -1
  338. package/src/generated/themes/Tag.css.ts +1 -1
  339. package/src/generated/themes/TextField.css.ts +1 -1
  340. package/src/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +1 -1
  341. package/src/i18n/messagebundle.properties +28 -4
  342. package/src/i18n/messagebundle_en.properties +12 -4
  343. package/src/themes/AccordionItem.css +6 -4
  344. package/src/themes/Avatar.css +24 -7
  345. package/src/themes/Badge.css +1 -1
  346. package/src/themes/Divider.css +6 -2
  347. package/src/themes/Footer.css +93 -168
  348. package/src/themes/HeroBanner.css +52 -24
  349. package/src/themes/MastheadShell.css +25 -29
  350. package/src/themes/Modal.css +6 -0
  351. package/src/themes/Pagination.css +7 -0
  352. package/src/themes/PhoneNumberField.css +1 -0
  353. package/src/themes/RatingBar.css +52 -0
  354. package/src/themes/Review.css +196 -0
  355. package/src/themes/Search.css +37 -25
  356. package/src/themes/SecondaryNavigation.css +33 -4
  357. package/src/themes/SecondaryNavigationItem.css +3 -2
  358. package/src/themes/SelectBox.css +17 -24
  359. package/src/themes/StepInput.css +5 -2
  360. package/src/themes/TabNavigation.css +7 -1
  361. package/src/themes/Tag.css +180 -148
  362. package/src/themes/TextField.css +75 -55
  363. package/dist/assets/bundle.esm-f65ae7da.js +0 -315
  364. package/dist/assets/messagebundle_en-7249941b.js +0 -1
  365. package/dist/assets/parameters-bundle.css-76ef62fa.js +0 -2
  366. package/dist/css/themes/PasswordField.css +0 -1
  367. package/dist/generated/themes/PasswordField.css.js +0 -9
  368. package/dist/generated/themes/PasswordField.css.js.map +0 -1
  369. package/src/generated/themes/PasswordField.css.ts +0 -13
  370. package/src/themes/PasswordField.css +0 -29
  371. /package/dist/generated/themes/{PasswordField.css.d.ts → RatingBar.css.d.ts} +0 -0
package/src/Review.hbs ADDED
@@ -0,0 +1,44 @@
1
+ {{#if isEmpty}}
2
+ <div class="udex-review__empty-container">
3
+ <slot class="udex-review__default-text" name="defaultText"></slot>
4
+ <slot name="reviewButton"></slot>
5
+ </div>
6
+ {{else}}
7
+ {{#if withoutBreakdown}}
8
+ <div class="udex-review__container-without-breakdown">
9
+ {{> noBreakdown}}
10
+ </div>
11
+ {{else}}
12
+ <div class="udex-review__container">
13
+ <div class="udex-review__content">
14
+ <div class="udex-review__rating-info">
15
+ <div aria-level="2" role="heading" aria-hidden="true" class="udex-review__rating">{{validatedRating}}</div>
16
+ <ui5-icon aria-labelledby="ratingDescription" role="img" name="favorite" class="udex-review__icon"></ui5-icon>
17
+ </div>
18
+ <div class="udex-review__reviews-text">{{reviewsText}}</div>
19
+ <slot name="reviewButton"></slot>
20
+ </div>
21
+ <div class="udex-review__additional-content">
22
+ {{#each validatedRatingBars}}
23
+ <slot name="{{this._individualSlot}}"></slot>
24
+ {{/each}}
25
+ </div>
26
+ </div>
27
+ <span id="ratingDescription" class="hidden-text">{{_ratingDescription}}</span>
28
+ {{/if}}
29
+ {{/if}}
30
+
31
+
32
+ {{#*inline "noBreakdown"}}
33
+ <div class="udex-review__content-without-breakdown">
34
+ <div aria-level="2" role="heading" aria-hidden="true" class="udex-review__rating">{{validatedRating}}</div>
35
+ <div class="udex-review__rating-info-without-breakdown">
36
+ <udex-rating-indicator readonly value="{{validatedRating}}" max="{{_maxRating}}"></udex-rating-indicator>
37
+ <div class="udex-review__reviews-text">{{reviewsText}}</div>
38
+ </div>
39
+ </div>
40
+ <div class="udex-review__additional-content-without-breakdown">
41
+ <slot class="udex-review__default-text" name="defaultText"></slot>
42
+ <slot name="reviewButton"></slot>
43
+ </div>
44
+ {{/inline}}
package/src/Review.ts ADDED
@@ -0,0 +1,140 @@
1
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
3
+ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
4
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
5
+ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
6
+ import Icon from "@ui5/webcomponents/dist/Icon.js";
7
+ import I18nBundle, { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
8
+ import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
9
+ import Float from "@ui5/webcomponents-base/dist/types/Float.js";
10
+ import { REVIEWS, STARS } from "./generated/i18n/i18n-defaults.js";
11
+ import UDExRatingBar from "./RatingBar.js";
12
+ import UDExRatingIndicator from "./RatingIndicator.js";
13
+ import UDExButton from "./Button.js";
14
+ import "@ui5/webcomponents-icons/dist/favorite.js";
15
+ import ReviewTemplate from "./generated/templates/ReviewTemplate.lit.js";
16
+
17
+ // Styles
18
+ import ReviewCss from "./generated/themes/Review.css.js";
19
+
20
+ /**
21
+ * @class
22
+ *
23
+ * <h3 class="comment-api-title">Overview</h3>
24
+ *
25
+ *
26
+ * <h3>Usage</h3>
27
+ *
28
+ * For the <code>udex-review</code>
29
+ * <h3>ES6 Module Import</h3>
30
+ *
31
+ * <code>import "@udex/web-components/dist/Review.js";</code>
32
+ *
33
+ * @constructor
34
+ * @extends UI5Element
35
+ * @public
36
+ */
37
+ @customElement({
38
+ tag: "udex-review",
39
+ renderer: litRender,
40
+ styles: ReviewCss,
41
+ template: ReviewTemplate,
42
+ dependencies: [UDExRatingBar, UDExRatingIndicator, Icon],
43
+ })
44
+
45
+ class UDExReview extends UI5Element {
46
+ /**
47
+ * Defines the rating.
48
+ *
49
+ * @default 0
50
+ * @public
51
+ */
52
+ @property({ type: Number, defaultValue: 0, validator: Float })
53
+ rating!: number;
54
+
55
+ /**
56
+ * Defines the total number of reviews.
57
+ *
58
+ * @default 0
59
+ * @public
60
+ */
61
+ @property({ type: Number, defaultValue: 0, validator: Integer })
62
+ reviews!: number;
63
+
64
+ /**
65
+ * Slot for a button for writing a review.
66
+ *
67
+ * @slot
68
+ * @public
69
+ */
70
+ @slot({ type: HTMLElement })
71
+ reviewButton!: UDExButton;
72
+
73
+ /**
74
+ * Slot for the default text when there are no reviews or rating.
75
+ *
76
+ * @slot
77
+ * @public
78
+ */
79
+ @slot({ type: HTMLElement })
80
+ defaultText!: HTMLElement;
81
+
82
+ /**
83
+ * Slot for rating bars.
84
+ *
85
+ * @slot
86
+ * @public
87
+ */
88
+ @slot({ type: HTMLElement, "default": true, individualSlots: true })
89
+ bars!: Array<UDExRatingBar>;
90
+
91
+ static i18nBundle: I18nBundle;
92
+ _minRating: number = 0;
93
+ _maxRating: number = 5;
94
+ _maxRatingBars: number = 5;
95
+
96
+ static async onDefine() {
97
+ UDExReview.i18nBundle = await getI18nBundle("@ui5/webcomponents");
98
+ }
99
+
100
+ get reviewsText(): string {
101
+ return `${this.reviews} ${UDExReview.i18nBundle.getText(REVIEWS)}`;
102
+ }
103
+
104
+ get withoutBreakdown(): boolean {
105
+ return this.bars.length === 0;
106
+ }
107
+
108
+ get isEmpty(): boolean {
109
+ return this.reviews === 0 && this.rating === 0;
110
+ }
111
+
112
+ get validatedRating(): number {
113
+ if (this.rating > this._maxRating) {
114
+ console.warn("UDEx Review: The rating shouldn't be more than 5.");
115
+ return this._maxRating;
116
+ }
117
+ if (this.rating < this._minRating) {
118
+ console.warn("UDEx Review: The rating shouldn't be less than 0.");
119
+ return this._minRating;
120
+ }
121
+ return this.rating;
122
+ }
123
+
124
+ get validatedRatingBars(): Array<UDExRatingBar> {
125
+ if (this.bars.length > this._maxRatingBars) {
126
+ console.warn("UDEx Review: There shouldn't be more than 5 RatingBars.");
127
+ return this.bars.slice(-this._maxRatingBars);
128
+ }
129
+
130
+ return this.bars;
131
+ }
132
+
133
+ get _ratingDescription(): string {
134
+ return `${this.validatedRating} ${UDExRatingBar.i18nBundle.getText(STARS)}`;
135
+ }
136
+ }
137
+
138
+ UDExReview.define();
139
+
140
+ export default UDExReview;
package/src/Search.hbs CHANGED
@@ -2,6 +2,8 @@
2
2
  {{#if isShowSearchHomePrefix}}
3
3
  <div class="udex-search__prefix">
4
4
  <button type="button"
5
+ role="combobox"
6
+ aria-expanded="{{_prefixDropdownExpanded}}"
5
7
  aria-haspopup="true"
6
8
  aria-controls="udex-search-prefix"
7
9
  class="udex-search__prefix-button"
@@ -14,7 +16,7 @@
14
16
  class="udex-search__prefix-popover"
15
17
  hide-arrow
16
18
  placement-type="Bottom"
17
- horizontal-align="Left"
19
+ horizontal-align="Left"
18
20
  style="{{prefixPopoverStyles}}"
19
21
  @after-close="{{handleAfterClosePrefixPopover}}">
20
22
  <slot></slot>
@@ -29,10 +31,8 @@
29
31
  name="search"
30
32
  class="udex-search__field"
31
33
  autocomplete="off"
32
- role="combobox"
33
- aria-controls="{{getAriaControls}}"
34
- aria-expanded="false"
35
- aria-haspopup="{{showSuggestedPopover}}"
34
+ aria-autocomplete="list"
35
+ aria-haspopup="{{getAriaHasPopup}}"
36
36
  aria-label="Search"
37
37
  placeholder="{{label}}"
38
38
  .value="{{value}}"
@@ -55,11 +55,9 @@
55
55
  name="search"
56
56
  class="udex-search__field"
57
57
  autocomplete="off"
58
- role="combobox"
58
+ aria-autocomplete="list"
59
59
  aria-label="{{accInfo.ariaLabel}}"
60
- aria-controls="{{getAriaControls}}"
61
- aria-expanded="false"
62
- aria-haspopup="{{showSuggestedPopover}}"
60
+ aria-haspopup="{{getAriaHasPopup}}"
63
61
  .value="{{value}}"
64
62
  @input="{{handleSearchChange}}"
65
63
  @keydown="{{handleKeyDown}}"
@@ -75,11 +73,17 @@
75
73
  id="reset-button"
76
74
  class="udex-search__button udex-search__reset-button"
77
75
  design="Default"
78
- icon="decline"
79
- tooltip="Reset Button"
76
+ tooltip="{{tooltipInfo.tooltipResetButton}}"
80
77
  @click="{{onReset}}"
81
78
  @keydown="{{handleKeyDownReset}}"
82
- ></ui5-button>
79
+ >
80
+ <ui5-icon
81
+ class="udex-search__button-icon"
82
+ accessible-name="{{accInfo.accessibleNameResetIcon}}"
83
+ accessible-role="presentation"
84
+ name="decline">
85
+ </ui5-icon>
86
+ </ui5-button>
83
87
  {{/if}}
84
88
  {{#if isVoiceButton}}
85
89
  <ui5-button
@@ -87,7 +91,7 @@
87
91
  class="udex-search__button udex-search__voice-button {{voiceActiveClass}}"
88
92
  design="Default"
89
93
  icon="microphone"
90
- tooltip="Voice Button"
94
+ tooltip="{{tooltipInfo.tooltipVoiceButton}}"
91
95
  @click="{{onVoice}}"
92
96
  ></ui5-button>
93
97
  {{/if}}
@@ -95,6 +99,7 @@
95
99
  {{#if nonInteractiveSubmitButton}}
96
100
  <ui5-icon
97
101
  class="udex-search__icon"
102
+ accessible-name="{{accInfo.accessibleNameSearchIcon}}"
98
103
  name="search">
99
104
  </ui5-icon>
100
105
  {{else}}
@@ -103,7 +108,7 @@
103
108
  class="udex-search__button udex-search__submit-button {{searchButtonActiveClass}}"
104
109
  design="Default"
105
110
  icon="search"
106
- tooltip="Submit Button"
111
+ tooltip="{{tooltipInfo.tooltipSubmitButton}}"
107
112
  @click="{{onSubmit}}"
108
113
  ></ui5-button>
109
114
  {{/if}}
package/src/Search.ts CHANGED
@@ -30,6 +30,11 @@ import {
30
30
  RECOMMENDED_TEXT,
31
31
  AVAILABLE_VALUES,
32
32
  NO_MATCHES_FOUND,
33
+ ACCESSIBLE_NAME_RESET_ICON,
34
+ ACCESSIBLE_NAME_SEARCH_ICON,
35
+ TOOLTIP_RESET_BUTTON,
36
+ TOOLTIP_VOICE_BUTTON,
37
+ TOOLTIP_SUBMIT_BUTTON,
33
38
  } from "./generated/i18n/i18n-defaults.js";
34
39
  import type SearchInputSuggestion from "./features/SearchSuggestionsPopover.js";
35
40
 
@@ -316,6 +321,51 @@ class UDExSearch extends UI5Element {
316
321
  @property()
317
322
  accessibleName!: string;
318
323
 
324
+ /**
325
+ * Defines the accessible ARIA name of the reset icon.
326
+ *
327
+ * @default "Clear"
328
+ * @public
329
+ */
330
+ @property({ type: String })
331
+ accessibleNameResetIcon!: string;
332
+
333
+ /**
334
+ * Defines the accessible ARIA name of the search icon (applied just when "nonInteractiveSubmitButton" is active).
335
+ *
336
+ * @default "Search"
337
+ * @public
338
+ */
339
+ @property({ type: String })
340
+ accessibleNameSearchIcon!: string;
341
+
342
+ /**
343
+ * Defines the tooltip of the clear button.
344
+ *
345
+ * @default "Clear"
346
+ * @public
347
+ */
348
+ @property({ type: String })
349
+ tooltipResetButton!: string;
350
+
351
+ /**
352
+ * Defines the tooltip of the voice button.
353
+ *
354
+ * @default "Voice"
355
+ * @public
356
+ */
357
+ @property({ type: String })
358
+ tooltipVoiceButton!: string;
359
+
360
+ /**
361
+ * Defines the tooltip of the submit button.
362
+ *
363
+ * @default "Search"
364
+ * @public
365
+ */
366
+ @property({ type: String })
367
+ tooltipSubmitButton!: string;
368
+
319
369
  /**
320
370
  * Defines the text if the suggestion list doesn't return results.
321
371
  *
@@ -423,6 +473,14 @@ class UDExSearch extends UI5Element {
423
473
  @slot({ type: HTMLElement, "default": true })
424
474
  dropdownPrefix!: Array<List>;
425
475
 
476
+ /**
477
+ * Defines the open button icon
478
+ *
479
+ * @private
480
+ */
481
+ @property({ type: Boolean, noAttribute: true })
482
+ _prefixDropdownExpanded!: boolean;
483
+
426
484
  constructor() {
427
485
  super();
428
486
  this._handleResizeBound = this._handleResize.bind(this);
@@ -648,6 +706,7 @@ class UDExSearch extends UI5Element {
648
706
  const dropdown = this.getPrefixPopover();
649
707
  const button = this.getPrefixButton();
650
708
 
709
+ this._prefixDropdownExpanded = true;
651
710
  dropdown.showAt(this.getPrefixButton());
652
711
  dropdown.style.width = `${button.offsetWidth + 1}px`;
653
712
  button.classList.add("udex-search__prefix-button--active");
@@ -669,6 +728,7 @@ class UDExSearch extends UI5Element {
669
728
  const dropdown = this.getPrefixPopover();
670
729
 
671
730
  dropdown.close();
731
+ this._prefixDropdownExpanded = false;
672
732
  this.handleAfterClosePrefixPopover();
673
733
  }
674
734
 
@@ -1039,8 +1099,8 @@ class UDExSearch extends UI5Element {
1039
1099
  return !!(this.suggestedList?.length || this.recommendedList?.length);
1040
1100
  }
1041
1101
 
1042
- get getAriaControls(): string {
1043
- return this.hasPopoverContent ? this.getSuggestionsPopoverId : "";
1102
+ get getAriaHasPopup(): string {
1103
+ return this.showSuggestedPopover ? "dialog" : "false";
1044
1104
  }
1045
1105
 
1046
1106
  get getSuggestionsPopoverId(): string {
@@ -1098,6 +1158,16 @@ class UDExSearch extends UI5Element {
1098
1158
  get accInfo() {
1099
1159
  return {
1100
1160
  "ariaLabel": this.accessibleName || undefined,
1161
+ "accessibleNameResetIcon": this.accessibleNameResetIcon || UDExSearch.i18nBundle.getText(ACCESSIBLE_NAME_RESET_ICON) as string,
1162
+ "accessibleNameSearchIcon": this.accessibleNameSearchIcon || UDExSearch.i18nBundle.getText(ACCESSIBLE_NAME_SEARCH_ICON) as string,
1163
+ };
1164
+ }
1165
+
1166
+ get tooltipInfo() {
1167
+ return {
1168
+ "tooltipResetButton": this.tooltipResetButton || UDExSearch.i18nBundle.getText(TOOLTIP_RESET_BUTTON) as string,
1169
+ "tooltipVoiceButton": this.tooltipVoiceButton || UDExSearch.i18nBundle.getText(TOOLTIP_VOICE_BUTTON) as string,
1170
+ "tooltipSubmitButton": this.tooltipSubmitButton || UDExSearch.i18nBundle.getText(TOOLTIP_SUBMIT_BUTTON) as string,
1101
1171
  };
1102
1172
  }
1103
1173
 
@@ -7,6 +7,7 @@
7
7
  style="{{popoverStyles}}"
8
8
  id="{{getSuggestionsPopoverId}}"
9
9
  aria-orientation="vertical"
10
+ accessible-role="Dialog"
10
11
  accessible-name="{{suggestionsAccessibleName}}">
11
12
  {{#if showNoResultMessage}}
12
13
  <span class="udex-search-suggestions__message">{{noResultMessage}}</span>
@@ -16,7 +16,7 @@ import { NO_MATCHES_FOUND } from "./generated/i18n/i18n-defaults.js";
16
16
  * @class
17
17
  *
18
18
  * A class to serve as a foundation
19
- * for the <code>UDExFilterMenu</code> and <code>UDExSelectBox</code> classes.
19
+ * for the <code>UDExFilterMenu</code> , <code>UDExSelectBox</code> and <code>UDExCountrySelector/code> classes.
20
20
  *
21
21
  * @constructor
22
22
  * @author SAP SE
@@ -1,4 +1,4 @@
1
- <div class="udex-secondary-navigation__root">
1
+ <div class="{{rootClass}}">
2
2
  {{#if hasBreadcrumbsSlot}}
3
3
  <div class="udex-secondary-navigation__breadcrumbs">
4
4
  <slot name="breadcrumbs"></slot>
@@ -22,9 +22,11 @@
22
22
  role="none"
23
23
  class="udex-secondary-navigation__list-item">
24
24
  <udex-secondary-navigation-item
25
+ index="{{@index}}"
25
26
  ?active="{{this.active}}"
26
27
  path="{{this.path}}"
27
28
  label="{{this.title}}"
29
+ mobile-link-title="{{this.mobileLinkTitle}}"
28
30
  target="{{this.target}}"
29
31
  .subItems="{{this.items}}"
30
32
  @ui5-sub-item-click="{{../handleSubItemClick}}"
@@ -37,6 +39,7 @@
37
39
  role="none"
38
40
  class="udex-secondary-navigation__list-item">
39
41
  <udex-secondary-navigation-item
42
+ index="{{visibleItems.length}}"
40
43
  @ui5-sub-item-click="{{../handleSubItemClick}}"
41
44
  @ui5-nav-item-click="{{../handleItemClick}}"
42
45
  label="{{this.moreButtonText}}"
@@ -55,6 +58,7 @@
55
58
  role="button"
56
59
  aria-label="{{mobileMenuOpenerAriaLabel}}"
57
60
  label="{{title}}"
61
+ mobile-link-title="{{title}}"
58
62
  @ui5-sub-item-click="{{handleSubItemClick}}"
59
63
  .subItems="{{this.parsedItems}}">
60
64
  {{#if hasMobileButtonsSlot}}
@@ -24,21 +24,15 @@ import SecondaryNavigationTemplate from "./generated/templates/SecondaryNavigati
24
24
  import SecondaryNavigationCss from "./generated/themes/SecondaryNavigation.css.js";
25
25
 
26
26
  const canvasContentFont: string = "16px / 17.6px '72 Brand Variable'";
27
- const breakpointSizeS: number = 979;
27
+ const rootClass = "udex-secondary-navigation__root";
28
+ export const breakpointSizeS: number = 979;
28
29
 
29
- export type SecondaryNavigationItemClickDetail = {
30
+ export type ItemClickDetail = {
30
31
  originalEvent: Event,
31
- clickedItem: UDExSecondaryNavigationItem;
32
+ clickedItem: NavItem;
32
33
  clickedIndex: number;
33
34
  };
34
35
 
35
- export type SecondaryNavigationSubItemClickDetail = {
36
- originalEvent: Event,
37
- clickedItem: {
38
- items: Array<NavItem>
39
- };
40
- }
41
-
42
36
  /**
43
37
  * @class
44
38
  *
@@ -70,13 +64,13 @@ export type SecondaryNavigationSubItemClickDetail = {
70
64
  * @allowPreventDefault
71
65
  * @public
72
66
  */
73
- @event<SecondaryNavigationItemClickDetail>("item-click", {
67
+ @event<ItemClickDetail>("item-click", {
74
68
  detail: {
75
69
  originalEvent: {
76
70
  type: Event,
77
71
  },
78
72
  clickedItem: {
79
- type: HTMLElement,
73
+ type: Object,
80
74
  },
81
75
  clickedIndex: {
82
76
  type: Integer,
@@ -84,23 +78,6 @@ export type SecondaryNavigationSubItemClickDetail = {
84
78
  },
85
79
  })
86
80
 
87
- /**
88
- * Fires when sub item is clicked
89
- *
90
- * @allowPreventDefault
91
- * @public
92
- */
93
- @event<SecondaryNavigationSubItemClickDetail>("sub-item-click", {
94
- detail: {
95
- originalEvent: {
96
- type: Event,
97
- },
98
- clickedItem: {
99
- type: HTMLElement,
100
- },
101
- },
102
- })
103
-
104
81
  class UDExSecondaryNavigation extends UI5Element {
105
82
  /**
106
83
  * Defines an aria label for the mobile menu opener
@@ -272,32 +249,42 @@ class UDExSecondaryNavigation extends UI5Element {
272
249
  }
273
250
 
274
251
  getItemWidth(item: NavItem): number {
275
- const canvas = document.createElement("canvas");
276
- const context = canvas.getContext("2d")!;
252
+ const context = this.getCanvasContext();
277
253
  context.font = canvasContentFont;
278
254
 
279
255
  return Math.ceil(context.measureText(item.title).width);
280
256
  }
281
257
 
282
258
  getMoreButtonWidth(): number {
283
- const canvas = document.createElement("canvas");
284
- const context = canvas.getContext("2d")!;
259
+ const context = this.getCanvasContext();
285
260
  context.font = canvasContentFont;
286
261
 
287
262
  return Math.ceil(context.measureText(this.moreButtonText).width);
288
263
  }
289
264
 
265
+ getCanvasContext(): CanvasRenderingContext2D {
266
+ const canvas = document.createElement("canvas");
267
+ return canvas.getContext("2d")!;
268
+ }
269
+
290
270
  getCurrentIndex(item: UDExSecondaryNavigationItem): number {
291
271
  return this.domNavItems.indexOf(item);
292
272
  }
293
273
 
294
274
  handleItemClick(e: CustomEvent): void {
295
275
  const clickedItem = e.detail.item as UDExSecondaryNavigationItem;
296
- const prevented = !this.fireEvent("item-click", {
297
- originalEvent: e,
298
- clickedItem,
299
- clickedIndex: this.getCurrentIndex(clickedItem),
300
- }, true);
276
+ const {
277
+ path, target, title, active, subItems, _id, mobileLinkTitle,
278
+ } = clickedItem;
279
+
280
+ const prevented = !this.fireEventItemClick(e, {
281
+ path,
282
+ target,
283
+ title,
284
+ active,
285
+ mobileLinkTitle,
286
+ items: subItems,
287
+ });
301
288
 
302
289
  if (prevented) {
303
290
  e.preventDefault();
@@ -305,9 +292,9 @@ class UDExSecondaryNavigation extends UI5Element {
305
292
  }
306
293
 
307
294
  this._clickedNavItem = clickedItem;
308
- this.closePrevDropdown(clickedItem._id);
295
+ this.closePrevDropdown(_id);
309
296
 
310
- if (!clickedItem.hasNestedItems) {
297
+ if (!subItems.length) {
311
298
  this.setActiveItem(this.parsedItems, clickedItem);
312
299
  }
313
300
  }
@@ -315,10 +302,7 @@ class UDExSecondaryNavigation extends UI5Element {
315
302
  handleSubItemClick(e: CustomEvent): void {
316
303
  const item = e.detail.item as UDExSecondaryNavigationSubItem;
317
304
  const { items } = item as NavItem;
318
- const prevented = !this.fireEvent("sub-item-click", {
319
- originalEvent: e,
320
- clickedItem: item,
321
- }, true);
305
+ const prevented = !this.fireEventItemClick(e, item);
322
306
 
323
307
  if (prevented) {
324
308
  e.preventDefault();
@@ -335,10 +319,30 @@ class UDExSecondaryNavigation extends UI5Element {
335
319
  }
336
320
  }
337
321
 
322
+ fireEventItemClick(
323
+ e: CustomEvent,
324
+ {
325
+ items, target, path, title, active, mobileLinkTitle,
326
+ }: NavItem,
327
+ ): boolean {
328
+ return this.fireEvent("item-click", {
329
+ originalEvent: e,
330
+ clickedItem: {
331
+ mobileLinkTitle: mobileLinkTitle || "",
332
+ path: path || "",
333
+ active: active || false,
334
+ items: items || [],
335
+ target,
336
+ title,
337
+ },
338
+ clickedIndex: e.detail.index,
339
+ }, true);
340
+ }
341
+
338
342
  setActiveItem(navItems: Array<NavItem>, clickedItem: UDExSecondaryNavigationItemBase): void {
339
343
  const updateNav = (items: Array<NavItem>, { title, path }: UDExSecondaryNavigationItemBase) => {
340
344
  items.forEach(item => {
341
- if (item.title === title && item.path === path) {
345
+ if (item.title === title && (item.path === path || !item.path)) {
342
346
  item.active = true;
343
347
  return;
344
348
  }
@@ -357,17 +361,27 @@ class UDExSecondaryNavigation extends UI5Element {
357
361
  handleOutsideClick(): void {
358
362
  document.addEventListener("click", (e: MouseEvent) => {
359
363
  if (this.isMobileScreen && e.target !== this) {
360
- this.mobileNav?.closeDropdown();
364
+ this.closeMobileDropdown();
361
365
  return;
362
366
  }
363
367
 
364
- const isClickedNavItem = e.composedPath().includes(this._clickedNavItem);
365
- if (this.isDesktopScreen && !isClickedNavItem && this._clickedNavItem) {
366
- this._clickedNavItem.closeDropdown();
368
+ if (this.isDesktopScreen) {
369
+ this.handleDesktopDropdown(e);
367
370
  }
368
371
  });
369
372
  }
370
373
 
374
+ closeMobileDropdown(): void {
375
+ this.mobileNav?.closeDropdown();
376
+ }
377
+
378
+ handleDesktopDropdown(e: MouseEvent): void {
379
+ const isClickedNavItem = e.composedPath().includes(this._clickedNavItem);
380
+ if (!isClickedNavItem && this._clickedNavItem) {
381
+ this._clickedNavItem.closeDropdown();
382
+ }
383
+ }
384
+
371
385
  closePrevDropdown(clickedItemId: string): void {
372
386
  this.domNavItems.forEach(item => {
373
387
  if (clickedItemId !== item._id) {
@@ -417,6 +431,10 @@ class UDExSecondaryNavigation extends UI5Element {
417
431
  return !!this.getSlottedNodes("breadcrumbs").length && this.isDesktopScreen;
418
432
  }
419
433
 
434
+ get rootClass(): string {
435
+ return `${rootClass} ${this.hasBreadcrumbsSlot ? "" : `${rootClass}_centered`}`.trim();
436
+ }
437
+
420
438
  get hasDesktopButtonsSlot(): boolean {
421
439
  return this.hasButtons && this.isDesktopScreen;
422
440
  }
@@ -7,7 +7,7 @@
7
7
  target="{{target}}"
8
8
  @keydown="{{handleItemLinkKeyDown}}"
9
9
  @click="{{onItemClick}}">
10
- {{label}}
10
+ {{itemLabel}}
11
11
  </a>
12
12
  {{else}}
13
13
  <button
@@ -20,7 +20,7 @@
20
20
  @keydown="{{handleItemButtonKeyDown}}"
21
21
  @click="{{onItemClick}}">
22
22
  <span class="udex-secondary-navigation__item-text-wrap">
23
- {{label}}
23
+ {{itemLabel}}
24
24
  {{#if _subTitle}}
25
25
  <span
26
26
  class="udex-secondary-navigation__item-sub-title">
@@ -49,6 +49,7 @@
49
49
  @ui5-back-item-click="{{../onBackClick}}"
50
50
  is-back="{{this.isBack}}"
51
51
  label="{{this.title}}"
52
+ mobile-link-title="{{this.mobileLinkTitle}}"
52
53
  .nestedItems="{{this.items}}"
53
54
  path="{{this.path}}"
54
55
  target="{{this.target}}"