@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
@@ -0,0 +1,135 @@
1
+ import AvatarGroup, { IAvatarGroupItem } from "@ui5/webcomponents/dist/AvatarGroup.js";
2
+ import AvatarGroupType from "@ui5/webcomponents/dist/types/AvatarGroupType.js";
3
+ import ItemNavigation from "@ui5/webcomponents-base/dist/delegate/ItemNavigation.js";
4
+ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
5
+ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
6
+
7
+ // Styles
8
+ import UI5AvatarGroupCss from "@ui5/webcomponents/dist/generated/themes/AvatarGroup.css.js";
9
+
10
+ import UDExAvatar, { AvatarColorScheme, AvatarSize } from "./Avatar.js";
11
+
12
+ const avatarOffsets = {
13
+ [AvatarSize.XS]: {
14
+ [AvatarGroupType.Individual]: "0.0625rem",
15
+ [AvatarGroupType.Group]: "-0.75rem",
16
+ },
17
+ [AvatarSize.S]: {
18
+ [AvatarGroupType.Individual]: "0.125rem",
19
+ [AvatarGroupType.Group]: "-1.25rem",
20
+ },
21
+ [AvatarSize.M]: {
22
+ [AvatarGroupType.Individual]: "0.125rem",
23
+ [AvatarGroupType.Group]: "-1.625rem",
24
+ },
25
+ [AvatarSize.L]: {
26
+ [AvatarGroupType.Individual]: "0.125rem",
27
+ [AvatarGroupType.Group]: "-2rem",
28
+ },
29
+ [AvatarSize.XL]: {
30
+ [AvatarGroupType.Individual]: "0.25rem",
31
+ [AvatarGroupType.Group]: "-2.75rem",
32
+ },
33
+ };
34
+
35
+ /**
36
+ * @class
37
+ *
38
+ * <h3 class="comment-api-title">Overview</h3>
39
+ *
40
+ *
41
+ * <h3>Usage</h3>
42
+ *
43
+ * For the <code>udex-avatar-group</code>
44
+ * <h3>ES6 Module Import</h3>
45
+ *
46
+ * <code>import "@udex/web-components/dist/AvatarGroup.js";</code>
47
+ *
48
+ * @constructor
49
+ * @author SAP SE
50
+ * @extends AvatarGroup
51
+ * @public
52
+ */
53
+ @customElement({
54
+ tag: "udex-avatar-group",
55
+ renderer: litRender,
56
+ styles: [UI5AvatarGroupCss],
57
+ dependencies: [UDExAvatar],
58
+ })
59
+
60
+ class UDExAvatarGroup extends AvatarGroup {
61
+ constructor() {
62
+ super();
63
+
64
+ this._itemNavigation = new ItemNavigation(this, {
65
+ getItemsCallback: () => {
66
+ return this._isGroup
67
+ ? []
68
+ : this.items.slice(0, this._hiddenStartIndex).map(
69
+ item => item.shadowRoot?.firstElementChild as IAvatarGroupItem,
70
+ );
71
+ },
72
+ });
73
+ }
74
+ onEnterDOM(): void {
75
+ super.onEnterDOM();
76
+ const container: HTMLElement = this.shadowRoot?.querySelector(".ui5-avatar-group-items") as HTMLElement;
77
+ container?.addEventListener("mouseenter", this._onHover.bind(this, true));
78
+ container?.addEventListener("mouseleave", this._onHover.bind(this, false));
79
+ }
80
+
81
+ onExitDOM(): void {
82
+ super.onExitDOM();
83
+ const container: HTMLElement = this.shadowRoot?.querySelector(".ui5-avatar-group-items") as HTMLElement;
84
+ container?.removeEventListener("mouseenter", this._onHover.bind(this, true));
85
+ container?.removeEventListener("mouseleave", this._onHover.bind(this, false));
86
+ }
87
+
88
+ _onHover(hover: boolean) {
89
+ if (this._isGroup) {
90
+ this.items.every(avatar => {
91
+ avatar.toggleAttribute("hover", hover);
92
+ return !avatar.hidden;
93
+ });
94
+ }
95
+ }
96
+
97
+ _onfocusin(e: FocusEvent) {
98
+ const targetItem = this._isGroup
99
+ ? e.currentTarget
100
+ : (e.target as HTMLElement).shadowRoot?.firstElementChild;
101
+ this._itemNavigation.setCurrentItem(targetItem as IAvatarGroupItem);
102
+ }
103
+
104
+ _prepareAvatars() {
105
+ this._colorIndex = 0;
106
+ const visibleColors = Object.values(AvatarColorScheme);
107
+ let avatarInitials = "";
108
+
109
+ this.items.forEach((avatar, index) => {
110
+ if (++this._colorIndex > visibleColors.length - 3) {
111
+ this._colorIndex = 1;
112
+ }
113
+ avatar.interactive = !this._isGroup;
114
+ avatar.toggleAttribute("ui5-avatar", true);
115
+ avatarInitials += this._isGroup && avatar.hasAttribute("initials") && !avatar.shadowRoot?.firstElementChild?.hasAttribute("_has-image")
116
+ ? `${avatar.getAttribute("initials")} ` : "";
117
+
118
+ if (!avatar.getAttribute("color-scheme")) {
119
+ avatar.setAttribute("color-scheme", visibleColors[this._colorIndex]);
120
+ }
121
+
122
+ if (index !== this._itemsCount - 1 || this._customOverflowButton) {
123
+ avatar.style.marginInlineEnd = avatarOffsets[avatar.effectiveSize][this.type];
124
+ }
125
+ });
126
+
127
+ if (avatarInitials) {
128
+ this.shadowRoot?.querySelector(".ui5-avatar-group-items")?.setAttribute("aria-label", `${avatarInitials}${this._ariaLabelText}`);
129
+ }
130
+ }
131
+ }
132
+
133
+ UDExAvatarGroup.define();
134
+
135
+ export default UDExAvatarGroup;
@@ -16,7 +16,6 @@
16
16
  ?readonly="{{readonly}}"
17
17
  value="{{value}}"
18
18
  icon="appointment-2"
19
- tabindex="0"
20
19
  value-state="{{valueState}}"
21
20
  >
22
21
  </udex-text-field>
package/src/Dropdown.hbs CHANGED
@@ -2,14 +2,17 @@
2
2
  {{#if hasTriggerSlot}}
3
3
  <div
4
4
  class="udex-dropdown__opener"
5
+ role="{{triggerAccessibleRole}}"
6
+ aria-label="{{triggerAccessibleName}}"
7
+ aria-expanded="{{open}}"
5
8
  aria-haspopup="true"
6
- aria-controls="udex-dropdown"
9
+ aria-controls="{{this._id}}_udex-dropdown"
7
10
  @click="{{onTriggerClick}}">
8
11
  <slot slot="trigger" name="trigger"></slot>
9
12
  </div>
10
13
  {{/if}}
11
14
  <ui5-popover
12
- id="udex-dropdown"
15
+ id="{{this._id}}_udex-dropdown"
13
16
  class="udex-dropdown__pane"
14
17
  ?allow-target-overlap="{{disableAllowTargetOverlap}}"
15
18
  hide-arrow
package/src/Dropdown.ts CHANGED
@@ -7,8 +7,11 @@ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
7
7
  import event from "@ui5/webcomponents-base/dist/decorators/event.js";
8
8
  import getEffectiveScrollbarStyle from "@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js";
9
9
  import PopupAccessibleRole from "@ui5/webcomponents/dist/types/PopupAccessibleRole.js";
10
+ import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
11
+ import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
10
12
  import DropdownTemplate from "./generated/templates/DropdownTemplate.lit.js";
11
13
  import { PlacementType, HorizontalAlign } from "./types/Dropdown.js";
14
+ import { TRIGGER } from "./generated/i18n/i18n-defaults.js";
12
15
 
13
16
  // Styles
14
17
  import DropdownCss from "./generated/themes/Dropdown.css";
@@ -120,12 +123,20 @@ class UDExDropdown extends UI5Element {
120
123
 
121
124
  /**
122
125
  * Allows setting a custom role.
123
- * @default "Dialog"
126
+ * @default "None"
124
127
  * @public
125
128
  */
126
- @property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.Dialog })
129
+ @property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.None })
127
130
  accessibleRole!: `${PopupAccessibleRole}`;
128
131
 
132
+ /**
133
+ * Allows setting a custom role for dropdown trigger.
134
+ * @default "combobox"
135
+ * @public
136
+ */
137
+ @property({ type: String, defaultValue: "combobox" })
138
+ triggerAccessibleRole!: string;
139
+
129
140
  /**
130
141
  * Defines the content of the Dropdown.
131
142
  *
@@ -188,6 +199,12 @@ class UDExDropdown extends UI5Element {
188
199
  @property({ type: String })
189
200
  _direction?: string;
190
201
 
202
+ static i18nBundle: I18nBundle;
203
+
204
+ static async onDefine(): Promise<void> {
205
+ UDExDropdown.i18nBundle = await getI18nBundle("sap-ui-webcomponents-bundle");
206
+ }
207
+
191
208
  onAfterRendering() {
192
209
  this.handleDirection();
193
210
  }
@@ -283,9 +300,13 @@ class UDExDropdown extends UI5Element {
283
300
  return !!this.footer.length;
284
301
  }
285
302
 
286
- get disableAllowTargetOverlap() {
303
+ get disableAllowTargetOverlap(): boolean {
287
304
  return this.disableTargetOverlap?.toString() !== "true";
288
305
  }
306
+
307
+ get triggerAccessibleName(): string {
308
+ return UDExDropdown.i18nBundle.getText(TRIGGER);
309
+ }
289
310
  }
290
311
 
291
312
  UDExDropdown.define();
@@ -1,4 +1,5 @@
1
1
  <udex-dropdown
2
+ id="{{this._id}}_dropdown-menu"
2
3
  class="udex-filter-menu"
3
4
  ?disable-target-overlap="{{disableTargetOverlap}}"
4
5
  placement-type="{{placementType}}"
@@ -30,6 +31,8 @@
30
31
  aria-label="{{accessibleName}}"
31
32
  aria-expanded="{{_open}}"
32
33
  aria-haspopup="true"
34
+ role="{{triggerAccessibleRole}}"
35
+ aria-controls="{{this._id}}_dropdown-menu"
33
36
  ?disabled="{{disabled}}"
34
37
  class="udex-filter-menu__trigger"
35
38
  slot="trigger"
package/src/FilterMenu.ts CHANGED
@@ -269,12 +269,20 @@ class UDExFilterMenu extends UDExSearchableListBase {
269
269
 
270
270
  /**
271
271
  * Allows setting a custom role.
272
- * @default "Dialog"
272
+ * @default "None"
273
273
  * @public
274
274
  */
275
- @property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.Dialog })
275
+ @property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.None })
276
276
  accessibleRole!: `${PopupAccessibleRole}`;
277
277
 
278
+ /**
279
+ * Allows setting a custom role for dropdown trigger.
280
+ * @default "combobox"
281
+ * @public
282
+ */
283
+ @property({ type: String, defaultValue: "combobox" })
284
+ triggerAccessibleRole!: string;
285
+
278
286
  _dropdown!: UDExDropdown;
279
287
  _search!: UDExSearch;
280
288
  _hasFooterButtons!: boolean;
package/src/Footer.hbs CHANGED
@@ -1,11 +1,10 @@
1
1
  <footer class="udex-footer">
2
2
  <div class="udex-footer__content">
3
3
  <div class="udex-footer__contact-social">
4
- <div class="udex-footer__contact-wrapper">
5
4
  {{#if logoUrl}}
6
5
  <div class="udex-footer__logo">
7
6
  {{#if logoLink}}
8
- <a href="{{parsedRef}}" @click="{{_onLogoClick}}">
7
+ <a href="{{parsedRef}}" @click="{{_onLogoClick}}" title="{{logoTitle}}" aria-label="{{logoAriaLabel}}">
9
8
  <img id="udex-footer__logo-image" src="{{logoUrl}}" class="udex-footer__logo-image" alt="{{logoAlt}}"/>
10
9
  </a>
11
10
  {{else}}
@@ -16,7 +15,6 @@
16
15
  {{#if isContactContainerVisible}}
17
16
  <div class="udex-footer__contact">
18
17
  {{#if contactNumbersArray.length}}
19
- <div>
20
18
  <div class="udex-footer__numbers">
21
19
  <div class="udex-footer__icon-container">
22
20
  <ui5-icon class="udex-footer__icon" name="headset"></ui5-icon>
@@ -43,10 +41,8 @@
43
41
  {{/if}}
44
42
  </div>
45
43
  </div>
46
- </div>
47
44
  {{/if}}
48
45
  {{#if contactUsLink}}
49
- <div>
50
46
  <div class="udex-footer__contact-us">
51
47
  <div class="udex-footer__icon-container">
52
48
  <ui5-icon class="udex-footer__icon" name="email"></ui5-icon>
@@ -59,45 +55,17 @@
59
55
  @click="{{_onContactEmailClick}}"
60
56
  >{{contactUsAccessibleName}}</a>
61
57
  </div>
62
- </div>
63
58
  {{/if}}
64
59
  {{#if chatWithUsLink}}
65
- <div>
66
60
  <div class="udex-footer__chat-with-us">
67
61
  <div class="udex-footer__icon-container">
68
62
  <ui5-icon class="udex-footer__icon" name="discussion-2"></ui5-icon>
69
63
  </div>
70
64
  <a href="{{chatWithUsLink}}" class="udex-footer__chat-with-us-link" @click="{{_onContactChatClick}}">{{chatWithUsAccessibleName}}</a>
71
65
  </div>
72
- </div>
73
66
  {{/if}}
74
67
  </div>
75
68
  {{/if}}
76
- </div>
77
-
78
- {{#if socialLinksArray.length}}
79
- <div class="udex-footer__social udex-footer__links-list--desktop">
80
- <div class="udex-footer__social-container">
81
- {{#each socialLinksArray}}
82
- <div>
83
- <a
84
- href="{{this.url}}"
85
- class="udex-footer__social-icon"
86
- data-name="{{this.name}}"
87
- @click="{{../_onSocialMediaLinkClick}}"
88
- >
89
- <img
90
- alt="{{this.name}} {{../socialIconAccessibleName}}"
91
- title="{{this.name}}"
92
- src="{{this.iconUrl}}"
93
- loading="lazy"
94
- />
95
- </a>
96
- </div>
97
- {{/each}}
98
- </div>
99
- </div>
100
- {{/if}}
101
69
  </div>
102
70
 
103
71
  {{#if isContactContainerVisible}}
@@ -113,26 +81,25 @@
113
81
  <udex-divider class="udex-footer__divider"></udex-divider>
114
82
 
115
83
  {{#if socialLinksArray.length}}
116
- <div class="udex-footer__social udex-footer__links-list--mobile">
117
84
  <div class="udex-footer__social-container">
118
85
  {{#each socialLinksArray}}
119
- <div>
120
86
  <a
121
87
  href="{{this.url}}"
122
88
  class="udex-footer__social-icon"
123
89
  data-name="{{this.name}}"
90
+ data-id="{{this.id}}"
124
91
  @click="{{../_onSocialMediaLinkClick}}"
125
92
  >
126
93
  <img
94
+ data-name="{{this.name}}"
95
+ data-id="{{this.id}}"
127
96
  alt="{{this.name}} {{../socialIconAccessibleName}}"
128
97
  src="{{this.iconUrl}}"
129
98
  loading="lazy"
130
99
  />
131
100
  </a>
132
- </div>
133
101
  {{/each}}
134
102
  </div>
135
- </div>
136
103
  {{/if}}
137
104
  </div>
138
105
 
@@ -156,6 +123,7 @@
156
123
  <a
157
124
  aria-describedby="udex-footer__quick-links"
158
125
  href="{{this.url}}"
126
+ data-id="{{this.id}}"
159
127
  @click="{{../_onQuickLinksClick}}"
160
128
  >{{this.title}}</a>
161
129
  </li>
@@ -174,6 +142,7 @@
174
142
  aria-describedby="udex-footer__footer__trending"
175
143
  href="{{this.url}}"
176
144
  @click="{{../_onTrendingClick}}"
145
+ data-id="{{this.id}}"
177
146
  >{{this.title}}</a>
178
147
  </li>
179
148
  {{/each}}
@@ -190,6 +159,7 @@
190
159
  <a
191
160
  aria-describedby="udex-footer__about"
192
161
  href="{{this.url}}"
162
+ data-id="{{this.id}}"
193
163
  @click="{{../_onAboutSapClick}}"
194
164
  >{{this.title}}</a>
195
165
  </li>
@@ -207,6 +177,7 @@
207
177
  <a
208
178
  aria-describedby="udex-footer__site-information"
209
179
  href="{{this.url}}"
180
+ data-id="{{this.id}}"
210
181
  @click="{{../_onSiteInformationClick}}"
211
182
  >{{this.title}}</a>
212
183
  </li>
@@ -228,6 +199,7 @@
228
199
  <li>
229
200
  <a
230
201
  aria-describedby="udex-footer__quick-links"
202
+ data-id="{{this.id}}"
231
203
  href="{{this.url}}"
232
204
  @click="{{../_onQuickLinksClick}}"
233
205
  >{{this.title}}</a>
@@ -244,6 +216,7 @@
244
216
  <li>
245
217
  <a
246
218
  aria-describedby="udex-footer__footer__trending"
219
+ data-id="{{this.id}}"
247
220
  href="{{this.url}}"
248
221
  @click="{{../_onTrendingClick}}"
249
222
  >{{this.title}}</a>
@@ -260,6 +233,7 @@
260
233
  <li>
261
234
  <a
262
235
  aria-describedby="udex-footer__about"
236
+ data-id="{{this.id}}"
263
237
  href="{{this.url}}"
264
238
  @click="{{../_onAboutSapClick}}"
265
239
  >{{this.title}}</a>
@@ -276,6 +250,7 @@
276
250
  <li>
277
251
  <a
278
252
  aria-describedby="udex-footer__site-information"
253
+ data-id="{{this.id}}"
279
254
  href="{{this.url}}"
280
255
  @click="{{../_onSiteInformationClick}}"
281
256
  >{{this.title}}</a>
package/src/Footer.ts CHANGED
@@ -51,6 +51,17 @@ export type FooterContactNumber = {
51
51
  country: string;
52
52
  };
53
53
 
54
+ export type FooterDetailedClickEvent = {
55
+ originalEvent: PointerEvent,
56
+ name: string;
57
+ id?: string;
58
+ sourceNode: HTMLElement;
59
+ }
60
+
61
+ export type FooterBaseEventEvent = {
62
+ originalEvent: PointerEvent,
63
+ }
64
+
54
65
  export const FooterBaseEvent = {
55
66
  detail: {
56
67
  originalEvent: { type: PointerEvent },
@@ -61,6 +72,7 @@ export const FooterDetailedEvent = {
61
72
  detail: {
62
73
  originalEvent: { type: PointerEvent },
63
74
  name: { type: String },
75
+ id: { type: String },
64
76
  sourceNode: { type: HTMLElement },
65
77
  },
66
78
  };
@@ -96,71 +108,81 @@ export const FooterDetailedEvent = {
96
108
  * @public
97
109
  * @allowPreventDefault
98
110
  */
99
- @event("logo-click", FooterBaseEvent)
111
+ @event<FooterBaseEventEvent>("logo-click", FooterBaseEvent)
100
112
  /**
101
113
  * Triggered on click interaction with "Back to Top" button
102
114
  * @public
103
115
  * @allowPreventDefault
104
116
  */
105
- @event("back-to-top-click", FooterBaseEvent)
117
+ @event<FooterBaseEventEvent>("back-to-top-click", FooterBaseEvent)
106
118
 
107
119
  /**
108
120
  * Triggered on click interaction with phone number link in footer
109
121
  * @public
110
122
  * @allowPreventDefault
111
123
  */
112
- @event("contact-phone-click", FooterBaseEvent)
124
+ @event<FooterBaseEventEvent>("contact-phone-click", FooterBaseEvent)
113
125
  /**
114
126
  * Triggered on click interaction with local country numbers list link
115
127
  * @public
116
128
  * @allowPreventDefault
117
129
  */
118
- @event("contact-phone-local-numbers-click", FooterBaseEvent)
130
+ @event<FooterBaseEventEvent>("contact-phone-local-numbers-click", FooterBaseEvent)
119
131
  /**
120
132
  * Triggered on click interaction with "Contact us by email" link
121
133
  * @public
122
134
  * @allowPreventDefault
123
135
  */
124
- @event("contact-email-click", FooterBaseEvent)
136
+ @event<FooterBaseEventEvent>("contact-email-click", FooterBaseEvent)
125
137
  /**
126
138
  * Triggered on click interaction with "Contact us by chat" link
127
139
  * @public
128
140
  * @allowPreventDefault
129
141
  */
130
- @event("contact-chat-click", FooterBaseEvent)
142
+ @event<FooterBaseEventEvent>("contact-chat-click", FooterBaseEvent)
131
143
 
132
144
  /**
133
145
  * Triggered on click interaction with a link within "Quick Links" category
134
146
  * @public
135
147
  * @allowPreventDefault
136
148
  */
137
- @event("quick-links-click", FooterDetailedEvent)
149
+ @event<FooterDetailedClickEvent>("quick-links-click", FooterDetailedEvent)
138
150
  /**
139
151
  * Triggered on click interaction with a link within "Trending" category
140
152
  * @public
141
153
  * @allowPreventDefault
142
154
  */
143
- @event("trending-click", FooterDetailedEvent)
155
+ @event<FooterDetailedClickEvent>("trending-click", FooterDetailedEvent)
144
156
  /**
145
157
  * Triggered on click interaction with a link within "About SAP" category
146
158
  * @public
147
159
  * @allowPreventDefault
148
160
  */
149
- @event("about-sap-click", FooterDetailedEvent)
161
+ @event<FooterDetailedClickEvent>("about-sap-click", FooterDetailedEvent)
150
162
  /**
151
163
  * Triggered on click interaction with a link within "Site Information" category
152
164
  * @public
153
165
  * @allowPreventDefault
154
166
  */
155
- @event("site-information-click", FooterDetailedEvent)
167
+ @event<FooterDetailedClickEvent>("site-information-click", FooterDetailedEvent)
156
168
 
157
169
  /**
158
170
  * Triggered on click interaction with any of the social media links within footer
159
171
  * @public
160
172
  * @allowPreventDefault
161
173
  */
162
- @event("social-media-link-click", FooterDetailedEvent)
174
+ @event<FooterDetailedClickEvent>("social-media-link-click", FooterDetailedEvent)
175
+
163
176
  class UDExFooter extends UI5Element {
177
+ /**
178
+ * Defines the Logo default title
179
+ *
180
+ * @default ""
181
+ * @public
182
+ */
183
+ @property({ type: String, defaultValue: "" })
184
+ logoTitle!: string;
185
+
164
186
  /**
165
187
  * Defines the Logo URL
166
188
  *
@@ -269,6 +291,14 @@ class UDExFooter extends UI5Element {
269
291
  @property({ type: String, defaultValue: "" })
270
292
  logoAlt!: string;
271
293
 
294
+ /**
295
+ * Defines an aria label for the logo link
296
+ *
297
+ * @public
298
+ */
299
+ @property({ type: String })
300
+ logoAriaLabel!: string;
301
+
272
302
  /**
273
303
  * Defines should render the mobile navigation.
274
304
  *
@@ -295,7 +325,7 @@ class UDExFooter extends UI5Element {
295
325
  ResizeHandler.deregister(this, this._handleResizeBound);
296
326
  }
297
327
 
298
- onEnterDOM() {
328
+ onEnterDOM(): void {
299
329
  if (isDesktop()) {
300
330
  this.setAttribute("desktop", "");
301
331
  }
@@ -316,7 +346,7 @@ class UDExFooter extends UI5Element {
316
346
  return string ? JSON.parse(string) as T[] : [];
317
347
  }
318
348
 
319
- get parsedRef() {
349
+ get parsedRef(): string | undefined {
320
350
  return (this.logoLink && this.logoLink.length > 0) ? this.logoLink : undefined;
321
351
  }
322
352
 
@@ -400,70 +430,53 @@ class UDExFooter extends UI5Element {
400
430
  }
401
431
 
402
432
  _onLogoClick(e: Event): void {
403
- this.fireEvent("logo-click", { originalEvent: e }, true);
433
+ this.fireFooterBaseEvent(e, "logo-click");
404
434
  }
405
435
 
406
436
  _onContactPhoneClick(e: Event): void {
407
- this.fireEvent("contact-phone-click", { originalEvent: e }, true);
437
+ this.fireFooterBaseEvent(e, "contact-phone-click");
408
438
  }
409
439
  _onContactPhoneLocalNumbersClick(e: Event): void {
410
- this.fireEvent("contact-phone-local-numbers-click", { originalEvent: e }, true);
440
+ this.fireFooterBaseEvent(e, "contact-phone-local-numbers-click");
411
441
  }
412
442
  _onContactEmailClick(e: Event): void {
413
- this.fireEvent("contact-email-click", { originalEvent: e }, true);
443
+ this.fireFooterBaseEvent(e, "contact-email-click");
414
444
  }
415
445
  _onContactChatClick(e: Event): void {
416
- this.fireEvent("contact-chat-click", { originalEvent: e }, true);
446
+ this.fireFooterBaseEvent(e, "contact-chat-click");
417
447
  }
418
448
 
419
449
  _onQuickLinksClick(e: Event): void {
420
- const sourceNode = e.composedPath()[0]as HTMLElement;
421
-
422
- this.fireEvent("quick-links-click", {
423
- name: sourceNode.innerText,
424
- originalEvent: e,
425
- sourceNode,
426
- }, true);
450
+ this.fireFooterDetailedClickEvent(e, "quick-links-click");
427
451
  }
428
452
 
429
453
  _onTrendingClick(e: Event): void {
430
- const sourceNode = e.composedPath()[0]as HTMLElement;
431
-
432
- this.fireEvent("trending-click", {
433
- name: sourceNode.innerText,
434
- originalEvent: e,
435
- sourceNode,
436
- }, true);
454
+ this.fireFooterDetailedClickEvent(e, "trending-click");
437
455
  }
438
456
 
439
457
  _onAboutSapClick(e: Event): void {
440
- const sourceNode = e.composedPath()[0]as HTMLElement;
441
-
442
- this.fireEvent("about-sap-click", {
443
- name: sourceNode.innerText,
444
- originalEvent: e,
445
- sourceNode,
446
- }, true);
458
+ this.fireFooterDetailedClickEvent(e, "about-sap-click");
447
459
  }
448
460
 
449
461
  _onSiteInformationClick(e: Event): void {
450
- const sourceNode = e.composedPath()[0]as HTMLElement;
451
-
452
- this.fireEvent("site-information-click", {
453
- name: sourceNode.innerText,
454
- originalEvent: e,
455
- sourceNode,
456
- }, true);
462
+ this.fireFooterDetailedClickEvent(e, "site-information-click");
457
463
  }
458
464
 
459
465
  _onSocialMediaLinkClick(e: Event): void {
460
- const nodes = e.composedPath() as HTMLElement[];
461
- let sourceNode = nodes[0];
466
+ this.fireFooterDetailedClickEvent(e, "social-media-link-click");
467
+ }
468
+
469
+ fireFooterBaseEvent(e: Event, eventName: string): void {
470
+ this.fireEvent(eventName, { originalEvent: e }, true);
471
+ }
462
472
 
463
- if (nodes[0] instanceof HTMLImageElement) { sourceNode = nodes[1]; }
473
+ fireFooterDetailedClickEvent(e: Event, eventName: string): void {
474
+ const sourceNode = e.composedPath()[0] as HTMLElement;
475
+ const { innerText, dataset: { id, name } } = sourceNode;
464
476
 
465
- this.fireEvent("social-media-link-click", {
466
- name: sourceNode?.dataset?.name,
477
+ this.fireEvent(eventName, {
478
+ ...(!!id?.length && { id }),
479
+ name: innerText.length ? innerText : name,
467
480
  originalEvent: e,
468
481
  sourceNode,
469
482
  }, true);