@sapudex/web-components 0.127.6 → 0.143.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 (434) hide show
  1. package/bundle.esm.js +2 -0
  2. package/dist/Accordion.d.ts +1 -1
  3. package/dist/Accordion.js +2 -2
  4. package/dist/Accordion.js.map +1 -1
  5. package/dist/AccordionItem.d.ts +1 -1
  6. package/dist/AccordionItem.js +2 -2
  7. package/dist/AccordionItem.js.map +1 -1
  8. package/dist/Avatar.js +1 -1
  9. package/dist/Avatar.js.map +1 -1
  10. package/dist/Breadcrumbs.js +1 -1
  11. package/dist/Breadcrumbs.js.map +1 -1
  12. package/dist/Carousel.js +1 -1
  13. package/dist/Carousel.js.map +1 -1
  14. package/dist/Checkbox.d.ts +1 -1
  15. package/dist/Checkbox.js +1 -1
  16. package/dist/Checkbox.js.map +1 -1
  17. package/dist/CountrySelector.d.ts +24 -6
  18. package/dist/CountrySelector.js +32 -10
  19. package/dist/CountrySelector.js.map +1 -1
  20. package/dist/DatePicker.d.ts +1 -0
  21. package/dist/DatePicker.js +5 -2
  22. package/dist/DatePicker.js.map +1 -1
  23. package/dist/Dropdown.d.ts +2 -1
  24. package/dist/Dropdown.js +16 -4
  25. package/dist/Dropdown.js.map +1 -1
  26. package/dist/FilterMenu.d.ts +21 -6
  27. package/dist/FilterMenu.js +66 -21
  28. package/dist/FilterMenu.js.map +1 -1
  29. package/dist/Footer.d.ts +9 -1
  30. package/dist/Footer.js +9 -2
  31. package/dist/Footer.js.map +1 -1
  32. package/dist/InputGroup.js +1 -1
  33. package/dist/InputGroup.js.map +1 -1
  34. package/dist/Link.d.ts +1 -1
  35. package/dist/Link.js +1 -1
  36. package/dist/Link.js.map +1 -1
  37. package/dist/List.d.ts +1 -1
  38. package/dist/List.js +18 -2
  39. package/dist/List.js.map +1 -1
  40. package/dist/ListGroupHeader.d.ts +2 -2
  41. package/dist/ListGroupHeader.js +2 -2
  42. package/dist/ListGroupHeader.js.map +1 -1
  43. package/dist/ListItem.d.ts +3 -3
  44. package/dist/ListItem.js +7 -8
  45. package/dist/ListItem.js.map +1 -1
  46. package/dist/ListItemBase.d.ts +2 -2
  47. package/dist/ListItemBase.js.map +1 -1
  48. package/dist/ListSelectAll.d.ts +1 -1
  49. package/dist/ListSelectAll.js +2 -2
  50. package/dist/ListSelectAll.js.map +1 -1
  51. package/dist/MastheadItem.d.ts +9 -1
  52. package/dist/MastheadItem.js +28 -16
  53. package/dist/MastheadItem.js.map +1 -1
  54. package/dist/MastheadMenu.d.ts +5 -0
  55. package/dist/MastheadMenu.js +24 -0
  56. package/dist/MastheadMenu.js.map +1 -1
  57. package/dist/MastheadMenuItem.d.ts +2 -3
  58. package/dist/MastheadMenuItem.js +2 -17
  59. package/dist/MastheadMenuItem.js.map +1 -1
  60. package/dist/MastheadMobileMenu.d.ts +25 -5
  61. package/dist/MastheadMobileMenu.js +136 -22
  62. package/dist/MastheadMobileMenu.js.map +1 -1
  63. package/dist/MastheadProfileMenu.d.ts +13 -4
  64. package/dist/MastheadProfileMenu.js +41 -10
  65. package/dist/MastheadProfileMenu.js.map +1 -1
  66. package/dist/MastheadShell.d.ts +24 -5
  67. package/dist/MastheadShell.js +77 -29
  68. package/dist/MastheadShell.js.map +1 -1
  69. package/dist/MediaPlayer.d.ts +3 -3
  70. package/dist/MediaPlayer.js +115 -25
  71. package/dist/MediaPlayer.js.map +1 -1
  72. package/dist/MessageStrip.js +1 -1
  73. package/dist/MessageStrip.js.map +1 -1
  74. package/dist/Pagination.js +1 -1
  75. package/dist/Pagination.js.map +1 -1
  76. package/dist/PasswordField.js +1 -1
  77. package/dist/PasswordField.js.map +1 -1
  78. package/dist/PhoneNumberField.d.ts +26 -0
  79. package/dist/PhoneNumberField.js +47 -3
  80. package/dist/PhoneNumberField.js.map +1 -1
  81. package/dist/RatingBar.js +1 -1
  82. package/dist/RatingBar.js.map +1 -1
  83. package/dist/Review.js +1 -1
  84. package/dist/Review.js.map +1 -1
  85. package/dist/ReviewItem.d.ts +105 -0
  86. package/dist/ReviewItem.js +157 -0
  87. package/dist/ReviewItem.js.map +1 -0
  88. package/dist/Search.d.ts +15 -1
  89. package/dist/Search.js +31 -6
  90. package/dist/Search.js.map +1 -1
  91. package/dist/SearchableListBase.d.ts +5 -0
  92. package/dist/SearchableListBase.js +11 -4
  93. package/dist/SearchableListBase.js.map +1 -1
  94. package/dist/SecondaryNavigation.d.ts +2 -0
  95. package/dist/SecondaryNavigation.js +19 -12
  96. package/dist/SecondaryNavigation.js.map +1 -1
  97. package/dist/SecondaryNavigationItem.d.ts +8 -0
  98. package/dist/SecondaryNavigationItem.js +20 -1
  99. package/dist/SecondaryNavigationItem.js.map +1 -1
  100. package/dist/SecondaryNavigationItemBase.js +1 -1
  101. package/dist/SecondaryNavigationItemBase.js.map +1 -1
  102. package/dist/SecondaryNavigationSubItem.js +1 -1
  103. package/dist/SecondaryNavigationSubItem.js.map +1 -1
  104. package/dist/SelectBox.d.ts +33 -9
  105. package/dist/SelectBox.js +119 -60
  106. package/dist/SelectBox.js.map +1 -1
  107. package/dist/StatusBadge.js +1 -1
  108. package/dist/StatusBadge.js.map +1 -1
  109. package/dist/StepInput.js +1 -1
  110. package/dist/StepInput.js.map +1 -1
  111. package/dist/Switch.d.ts +19 -0
  112. package/dist/Switch.js +19 -0
  113. package/dist/Switch.js.map +1 -1
  114. package/dist/Tab.d.ts +1 -1
  115. package/dist/Tab.js +2 -2
  116. package/dist/Tab.js.map +1 -1
  117. package/dist/TabNavigation.d.ts +1 -1
  118. package/dist/TabNavigation.js +2 -2
  119. package/dist/TabNavigation.js.map +1 -1
  120. package/dist/Table.js +1 -1
  121. package/dist/Table.js.map +1 -1
  122. package/dist/Tag.d.ts +9 -1
  123. package/dist/Tag.js +20 -3
  124. package/dist/Tag.js.map +1 -1
  125. package/dist/TagGroup.d.ts +94 -0
  126. package/dist/TagGroup.js +174 -0
  127. package/dist/TagGroup.js.map +1 -0
  128. package/dist/TextArea.d.ts +13 -0
  129. package/dist/TextArea.js +16 -1
  130. package/dist/TextArea.js.map +1 -1
  131. package/dist/TextField.d.ts +23 -13
  132. package/dist/TextField.js +17 -4
  133. package/dist/TextField.js.map +1 -1
  134. package/dist/Tooltip.d.ts +1 -1
  135. package/dist/Tooltip.js +1 -1
  136. package/dist/Tooltip.js.map +1 -1
  137. package/dist/TruncatedText.js +1 -1
  138. package/dist/TruncatedText.js.map +1 -1
  139. package/dist/assets/{bundle.esm-7d53f4f2.js → bundle.esm-8623b7b1.js} +190 -188
  140. package/dist/assets/messagebundle_en-c677773a.js +1 -0
  141. package/dist/assets/parameters-bundle.css-c897ae23.js +2 -0
  142. package/dist/assets/video.es-60bfb78c.js +228 -0
  143. package/dist/css/themes/Button.css +1 -1
  144. package/dist/css/themes/CountrySelector.css +1 -1
  145. package/dist/css/themes/Dropdown.css +1 -1
  146. package/dist/css/themes/FilterMenu.css +1 -1
  147. package/dist/css/themes/ListItem.css +1 -1
  148. package/dist/css/themes/MastheadItem.css +1 -1
  149. package/dist/css/themes/MastheadMobileMenu.css +1 -1
  150. package/dist/css/themes/MastheadShell.css +1 -1
  151. package/dist/css/themes/PhoneNumberField.css +1 -1
  152. package/dist/css/themes/RatingIndicator.css +1 -1
  153. package/dist/css/themes/ReviewItem.css +1 -0
  154. package/dist/css/themes/Search.css +1 -1
  155. package/dist/css/themes/SecondaryNavigation.css +1 -1
  156. package/dist/css/themes/SecondaryNavigationItem.css +1 -1
  157. package/dist/css/themes/SecondaryNavigationSubItem.css +1 -1
  158. package/dist/css/themes/SelectBox.css +1 -1
  159. package/dist/css/themes/Slider.css +1 -1
  160. package/dist/css/themes/Tag.css +1 -1
  161. package/dist/css/themes/TagGroup.css +1 -0
  162. package/dist/css/themes/TextArea.css +1 -1
  163. package/dist/css/themes/TextField.css +1 -1
  164. package/dist/css/themes/Toast.css +1 -1
  165. package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +1 -1
  166. package/dist/custom-elements-internal.json +881 -404
  167. package/dist/custom-elements.json +787 -350
  168. package/dist/data/CountryListISO3166.js +1 -1
  169. package/dist/data/CountryListISO3166.js.map +1 -1
  170. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  171. package/dist/generated/assets/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.json +1 -1
  172. package/dist/generated/i18n/i18n-defaults.d.ts +3 -1
  173. package/dist/generated/i18n/i18n-defaults.js +6 -4
  174. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  175. package/dist/generated/templates/CountrySelectorTemplate.lit.js +3 -3
  176. package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
  177. package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
  178. package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
  179. package/dist/generated/templates/DropdownTemplate.lit.js +2 -2
  180. package/dist/generated/templates/DropdownTemplate.lit.js.map +1 -1
  181. package/dist/generated/templates/FilterMenuTemplate.lit.js +1 -1
  182. package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
  183. package/dist/generated/templates/FooterTemplate.lit.js +9 -9
  184. package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
  185. package/dist/generated/templates/HeroBannerTemplate.lit.js +7 -8
  186. package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
  187. package/dist/generated/templates/ListItemTemplate.lit.js +6 -6
  188. package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
  189. package/dist/generated/templates/ListSelectAllTemplate.lit.js +1 -1
  190. package/dist/generated/templates/ListSelectAllTemplate.lit.js.map +1 -1
  191. package/dist/generated/templates/MastheadItemTemplate.lit.js +3 -3
  192. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
  193. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js +1 -1
  194. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +1 -1
  195. package/dist/generated/templates/MastheadMenuTemplate.lit.js +2 -2
  196. package/dist/generated/templates/MastheadMenuTemplate.lit.js.map +1 -1
  197. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +16 -12
  198. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
  199. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js +2 -2
  200. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js.map +1 -1
  201. package/dist/generated/templates/MastheadShellTemplate.lit.js +13 -11
  202. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  203. package/dist/generated/templates/MediaPlayerTemplate.lit.js +2 -2
  204. package/dist/generated/templates/MediaPlayerTemplate.lit.js.map +1 -1
  205. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +5 -2
  206. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
  207. package/dist/generated/templates/ReviewItemTemplate.lit.d.ts +4 -0
  208. package/dist/generated/templates/ReviewItemTemplate.lit.js +8 -0
  209. package/dist/generated/templates/ReviewItemTemplate.lit.js.map +1 -0
  210. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +7 -6
  211. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  212. package/dist/generated/templates/SelectBoxTemplate.lit.js +2 -2
  213. package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
  214. package/dist/generated/templates/TabHeaderTemplate.lit.js +2 -2
  215. package/dist/generated/templates/TabHeaderTemplate.lit.js.map +1 -1
  216. package/dist/generated/templates/TabInOverflowTemplate.lit.js +6 -6
  217. package/dist/generated/templates/TabInOverflowTemplate.lit.js.map +1 -1
  218. package/dist/generated/templates/TabNavigationTemplate.lit.js +3 -1
  219. package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
  220. package/dist/generated/templates/TagGroupTemplate.lit.d.ts +4 -0
  221. package/dist/generated/templates/TagGroupTemplate.lit.js +8 -0
  222. package/dist/generated/templates/TagGroupTemplate.lit.js.map +1 -0
  223. package/dist/generated/templates/TagTemplate.lit.js +11 -7
  224. package/dist/generated/templates/TagTemplate.lit.js.map +1 -1
  225. package/dist/generated/templates/TextAreaTemplate.lit.js +1 -1
  226. package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
  227. package/dist/generated/templates/TextFieldTemplate.lit.js +1 -1
  228. package/dist/generated/templates/TextFieldTemplate.lit.js.map +1 -1
  229. package/dist/generated/themes/Button.css.js +1 -1
  230. package/dist/generated/themes/Button.css.js.map +1 -1
  231. package/dist/generated/themes/CountrySelector.css.js +1 -1
  232. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  233. package/dist/generated/themes/Dropdown.css.js +1 -1
  234. package/dist/generated/themes/Dropdown.css.js.map +1 -1
  235. package/dist/generated/themes/FilterMenu.css.js +1 -1
  236. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  237. package/dist/generated/themes/ListItem.css.js +1 -1
  238. package/dist/generated/themes/ListItem.css.js.map +1 -1
  239. package/dist/generated/themes/MastheadItem.css.js +1 -1
  240. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  241. package/dist/generated/themes/MastheadMobileMenu.css.js +1 -1
  242. package/dist/generated/themes/MastheadMobileMenu.css.js.map +1 -1
  243. package/dist/generated/themes/MastheadShell.css.js +1 -1
  244. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  245. package/dist/generated/themes/PhoneNumberField.css.js +1 -1
  246. package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
  247. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  248. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  249. package/dist/generated/themes/ReviewItem.css.d.ts +3 -0
  250. package/dist/generated/themes/ReviewItem.css.js +9 -0
  251. package/dist/generated/themes/ReviewItem.css.js.map +1 -0
  252. package/dist/generated/themes/Search.css.js +1 -1
  253. package/dist/generated/themes/Search.css.js.map +1 -1
  254. package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
  255. package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
  256. package/dist/generated/themes/SecondaryNavigationItem.css.js +1 -1
  257. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
  258. package/dist/generated/themes/SecondaryNavigationSubItem.css.js +1 -1
  259. package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -1
  260. package/dist/generated/themes/SelectBox.css.js +1 -1
  261. package/dist/generated/themes/SelectBox.css.js.map +1 -1
  262. package/dist/generated/themes/Slider.css.js +1 -1
  263. package/dist/generated/themes/Slider.css.js.map +1 -1
  264. package/dist/generated/themes/Tag.css.js +1 -1
  265. package/dist/generated/themes/Tag.css.js.map +1 -1
  266. package/dist/generated/themes/TagGroup.css.d.ts +3 -0
  267. package/dist/generated/themes/TagGroup.css.js +9 -0
  268. package/dist/generated/themes/TagGroup.css.js.map +1 -0
  269. package/dist/generated/themes/TextArea.css.js +1 -1
  270. package/dist/generated/themes/TextArea.css.js.map +1 -1
  271. package/dist/generated/themes/TextField.css.js +1 -1
  272. package/dist/generated/themes/TextField.css.js.map +1 -1
  273. package/dist/generated/themes/Toast.css.js +1 -1
  274. package/dist/generated/themes/Toast.css.js.map +1 -1
  275. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js +1 -1
  276. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js.map +1 -1
  277. package/dist/i18n/messagebundle.properties +7 -3
  278. package/dist/i18n/messagebundle_en.properties +5 -3
  279. package/dist/vscode.html-custom-data.json +156 -81
  280. package/dist/web-types.json +394 -144
  281. package/package.json +8 -8
  282. package/src/Accordion.ts +2 -2
  283. package/src/AccordionItem.ts +2 -2
  284. package/src/Avatar.ts +1 -1
  285. package/src/Breadcrumbs.ts +1 -1
  286. package/src/Carousel.ts +1 -1
  287. package/src/Checkbox.ts +1 -1
  288. package/src/CountrySelector.hbs +19 -15
  289. package/src/CountrySelector.ts +50 -13
  290. package/src/DatePicker.hbs +7 -8
  291. package/src/DatePicker.ts +15 -11
  292. package/src/Dropdown.hbs +3 -0
  293. package/src/Dropdown.ts +12 -4
  294. package/src/FilterMenu.hbs +58 -59
  295. package/src/FilterMenu.ts +101 -42
  296. package/src/Footer.hbs +9 -0
  297. package/src/Footer.ts +11 -2
  298. package/src/HeroBanner.hbs +4 -1
  299. package/src/InputGroup.ts +1 -1
  300. package/src/Link.ts +1 -1
  301. package/src/List.ts +44 -24
  302. package/src/ListGroupHeader.ts +2 -2
  303. package/src/ListItem.hbs +4 -2
  304. package/src/ListItem.ts +9 -11
  305. package/src/ListItemBase.ts +1 -1
  306. package/src/ListSelectAll.hbs +1 -1
  307. package/src/ListSelectAll.ts +2 -2
  308. package/src/MastheadItem.hbs +5 -3
  309. package/src/MastheadItem.ts +39 -17
  310. package/src/MastheadMenu.hbs +4 -2
  311. package/src/MastheadMenu.ts +30 -0
  312. package/src/MastheadMenuItem.hbs +0 -2
  313. package/src/MastheadMenuItem.ts +2 -16
  314. package/src/MastheadMobileMenu.hbs +36 -10
  315. package/src/MastheadMobileMenu.ts +163 -23
  316. package/src/MastheadProfileMenu.hbs +6 -2
  317. package/src/MastheadProfileMenu.ts +67 -21
  318. package/src/MastheadShell.hbs +33 -20
  319. package/src/MastheadShell.ts +101 -32
  320. package/src/MediaPlayer.hbs +1 -3
  321. package/src/MediaPlayer.ts +122 -26
  322. package/src/MessageStrip.ts +1 -3
  323. package/src/Pagination.ts +1 -1
  324. package/src/PasswordField.ts +1 -1
  325. package/src/PhoneNumberField.hbs +18 -3
  326. package/src/PhoneNumberField.ts +68 -3
  327. package/src/RatingBar.ts +1 -1
  328. package/src/Review.ts +1 -1
  329. package/src/ReviewItem.hbs +20 -0
  330. package/src/ReviewItem.ts +227 -0
  331. package/src/Search.ts +42 -5
  332. package/src/SearchableListBase.ts +15 -7
  333. package/src/SecondaryNavigation.hbs +11 -7
  334. package/src/SecondaryNavigation.ts +22 -13
  335. package/src/SecondaryNavigationItem.ts +30 -1
  336. package/src/SecondaryNavigationItemBase.ts +1 -1
  337. package/src/SecondaryNavigationSubItem.ts +1 -1
  338. package/src/SelectBox.hbs +9 -7
  339. package/src/SelectBox.ts +153 -72
  340. package/src/StatusBadge.ts +1 -1
  341. package/src/StepInput.ts +1 -1
  342. package/src/Switch.ts +21 -0
  343. package/src/Tab.ts +2 -2
  344. package/src/TabHeader.hbs +3 -1
  345. package/src/TabInOverflow.hbs +16 -4
  346. package/src/TabNavigation.hbs +15 -7
  347. package/src/TabNavigation.ts +2 -2
  348. package/src/Table.ts +1 -1
  349. package/src/Tag.hbs +28 -12
  350. package/src/Tag.ts +25 -4
  351. package/src/TagGroup.hbs +48 -0
  352. package/src/TagGroup.ts +222 -0
  353. package/src/TextArea.hbs +36 -33
  354. package/src/TextArea.ts +26 -1
  355. package/src/TextField.hbs +8 -6
  356. package/src/TextField.ts +51 -20
  357. package/src/Tooltip.ts +1 -1
  358. package/src/TruncatedText.ts +1 -1
  359. package/src/data/CountryListISO3166.ts +1 -1
  360. package/src/generated/i18n/i18n-defaults.ts +2 -2
  361. package/src/generated/templates/CountrySelectorTemplate.lit.ts +3 -3
  362. package/src/generated/templates/DatePickerTemplate.lit.ts +1 -1
  363. package/src/generated/templates/DropdownTemplate.lit.ts +2 -2
  364. package/src/generated/templates/FilterMenuTemplate.lit.ts +1 -1
  365. package/src/generated/templates/FooterTemplate.lit.ts +9 -9
  366. package/src/generated/templates/HeroBannerTemplate.lit.ts +7 -8
  367. package/src/generated/templates/ListItemTemplate.lit.ts +6 -6
  368. package/src/generated/templates/ListSelectAllTemplate.lit.ts +1 -1
  369. package/src/generated/templates/MastheadItemTemplate.lit.ts +3 -3
  370. package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +1 -1
  371. package/src/generated/templates/MastheadMenuTemplate.lit.ts +2 -2
  372. package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +16 -12
  373. package/src/generated/templates/MastheadProfileMenuTemplate.lit.ts +2 -2
  374. package/src/generated/templates/MastheadShellTemplate.lit.ts +13 -11
  375. package/src/generated/templates/MediaPlayerTemplate.lit.ts +2 -2
  376. package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +5 -2
  377. package/src/generated/templates/ReviewItemTemplate.lit.ts +13 -0
  378. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +7 -6
  379. package/src/generated/templates/SelectBoxTemplate.lit.ts +2 -2
  380. package/src/generated/templates/TabHeaderTemplate.lit.ts +2 -2
  381. package/src/generated/templates/TabInOverflowTemplate.lit.ts +6 -6
  382. package/src/generated/templates/TabNavigationTemplate.lit.ts +3 -1
  383. package/src/generated/templates/TagGroupTemplate.lit.ts +13 -0
  384. package/src/generated/templates/TagTemplate.lit.ts +11 -7
  385. package/src/generated/templates/TextAreaTemplate.lit.ts +1 -1
  386. package/src/generated/templates/TextFieldTemplate.lit.ts +1 -1
  387. package/src/generated/themes/Button.css.ts +1 -1
  388. package/src/generated/themes/CountrySelector.css.ts +1 -1
  389. package/src/generated/themes/Dropdown.css.ts +1 -1
  390. package/src/generated/themes/FilterMenu.css.ts +1 -1
  391. package/src/generated/themes/ListItem.css.ts +1 -1
  392. package/src/generated/themes/MastheadItem.css.ts +1 -1
  393. package/src/generated/themes/MastheadMobileMenu.css.ts +1 -1
  394. package/src/generated/themes/MastheadShell.css.ts +1 -1
  395. package/src/generated/themes/PhoneNumberField.css.ts +1 -1
  396. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  397. package/src/generated/themes/ReviewItem.css.ts +13 -0
  398. package/src/generated/themes/Search.css.ts +1 -1
  399. package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
  400. package/src/generated/themes/SecondaryNavigationItem.css.ts +1 -1
  401. package/src/generated/themes/SecondaryNavigationSubItem.css.ts +1 -1
  402. package/src/generated/themes/SelectBox.css.ts +1 -1
  403. package/src/generated/themes/Slider.css.ts +1 -1
  404. package/src/generated/themes/Tag.css.ts +1 -1
  405. package/src/generated/themes/TagGroup.css.ts +13 -0
  406. package/src/generated/themes/TextArea.css.ts +1 -1
  407. package/src/generated/themes/TextField.css.ts +1 -1
  408. package/src/generated/themes/Toast.css.ts +1 -1
  409. package/src/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +1 -1
  410. package/src/i18n/messagebundle.properties +7 -3
  411. package/src/i18n/messagebundle_en.properties +5 -3
  412. package/src/themes/Button.css +10 -0
  413. package/src/themes/CountrySelector.css +60 -35
  414. package/src/themes/Dropdown.css +10 -0
  415. package/src/themes/FilterMenu.css +65 -15
  416. package/src/themes/ListItem.css +4 -0
  417. package/src/themes/MastheadItem.css +18 -4
  418. package/src/themes/MastheadMobileMenu.css +4 -0
  419. package/src/themes/MastheadShell.css +88 -9
  420. package/src/themes/PhoneNumberField.css +36 -21
  421. package/src/themes/ReviewItem.css +121 -0
  422. package/src/themes/Search.css +13 -0
  423. package/src/themes/SecondaryNavigation.css +13 -14
  424. package/src/themes/SecondaryNavigationItem.css +11 -3
  425. package/src/themes/SecondaryNavigationSubItem.css +5 -5
  426. package/src/themes/SelectBox.css +42 -0
  427. package/src/themes/Tag.css +20 -0
  428. package/src/themes/TagGroup.css +90 -0
  429. package/src/themes/TextArea.css +13 -0
  430. package/src/themes/TextField.css +25 -8
  431. package/src/themes/Toast.css +4 -0
  432. package/dist/assets/messagebundle_en-6dcc9ab4.js +0 -1
  433. package/dist/assets/parameters-bundle.css-de55cf62.js +0 -2
  434. package/dist/assets/video.es-17aecf95.js +0 -219
@@ -6,7 +6,9 @@ import event from "@ui5/webcomponents-base/dist/decorators/event.js";
6
6
  import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
7
7
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
8
8
  import ResizeHandler, { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
9
- import { isLeft, isRight } from "@ui5/webcomponents-base/dist/Keys.js";
9
+ import {
10
+ isLeft, isRight, isSpace, isEnter,
11
+ } from "@ui5/webcomponents-base/dist/Keys.js";
10
12
  import "@ui5/webcomponents-icons/dist/decline.js";
11
13
  import "@ui5/webcomponents-icons/dist/menu2.js";
12
14
  import "@ui5/webcomponents-icons/dist/search.js";
@@ -22,7 +24,6 @@ import MastheadShellTemplate from "./generated/templates/MastheadShellTemplate.l
22
24
  // Styles
23
25
  import MastheadShellCss from "./generated/themes/MastheadShell.css.js";
24
26
 
25
- const mobileMenuActiveClass: string = "udex-masthead-shell_mobile-menu-open";
26
27
  const breakpointSizeM: number = 1279;
27
28
  /**
28
29
  * @class
@@ -58,7 +59,6 @@ const breakpointSizeM: number = 1279;
58
59
  /**
59
60
  * Fired event when the user clicks the search button trigger.
60
61
  *
61
- * @event sap.ui.webc.web-components.UDExMastheadShell#searchClick
62
62
  * @public
63
63
  */
64
64
  @event("search-click")
@@ -66,7 +66,6 @@ const breakpointSizeM: number = 1279;
66
66
  /**
67
67
  * Fired event when the user clicks the cart button trigger.
68
68
  *
69
- * @event sap.ui.webc.web-components.UDExMastheadShell#cartClick
70
69
  * @public
71
70
  */
72
71
  @event("cart-click")
@@ -74,10 +73,36 @@ const breakpointSizeM: number = 1279;
74
73
  /**
75
74
  * Fired event when the user clicks the profile button trigger.
76
75
  *
77
- * @event sap.ui.webc.web-components.UDExMastheadShell#profileClick
78
76
  * @public
79
77
  */
80
78
  @event("profile-click")
79
+
80
+ /**
81
+ * Fired event when the user clicks the logo.
82
+ *
83
+ * @public
84
+ */
85
+ @event("logo-click", {
86
+ detail: {
87
+ originalEvent: {
88
+ type: PointerEvent,
89
+ },
90
+ },
91
+ })
92
+
93
+ /**
94
+ * Fired event when the user clicks the site label.
95
+ *
96
+ * @public
97
+ */
98
+ @event("site-label-click", {
99
+ detail: {
100
+ originalEvent: {
101
+ type: PointerEvent,
102
+ },
103
+ },
104
+ })
105
+
81
106
  class UDExMastheadShell extends UI5Element {
82
107
  /**
83
108
  * Slot for mobile menu
@@ -156,6 +181,15 @@ class UDExMastheadShell extends UI5Element {
156
181
  @property({ type: Boolean })
157
182
  bodyOverflow!: boolean;
158
183
 
184
+ /**
185
+ * Defines the visibility of the Search by default.
186
+ *
187
+ * @default ""
188
+ * @public
189
+ */
190
+ @property({ type: Boolean })
191
+ showSearchByDefault!: boolean;
192
+
159
193
  /**
160
194
  * Defines sticky position for component
161
195
  *
@@ -226,12 +260,20 @@ class UDExMastheadShell extends UI5Element {
226
260
  siteLabelAriaLabel!: string;
227
261
 
228
262
  /**
229
- * Defines if the search container is visible
263
+ * Defines if the search container is opened
230
264
  *
231
265
  * @private
232
266
  */
233
267
  @property({ type: Boolean })
234
- _isSearchVisible!: boolean;
268
+ _isSearchOpened!: boolean;
269
+
270
+ /**
271
+ * Defines if the mobile menu is open
272
+ *
273
+ * @private
274
+ */
275
+ @property({ type: Boolean })
276
+ _isMobileMenuOpen!: boolean;
235
277
 
236
278
  /**
237
279
  * Defines if the close button was clicked
@@ -259,7 +301,7 @@ class UDExMastheadShell extends UI5Element {
259
301
 
260
302
  this.handleOutsideClick();
261
303
 
262
- if (this._isSearchVisible) {
304
+ if (this._isSearchOpened) {
263
305
  this.focusSearchInput();
264
306
  }
265
307
 
@@ -277,15 +319,15 @@ class UDExMastheadShell extends UI5Element {
277
319
  }
278
320
 
279
321
  _handleResize(): void {
280
- if (this.isMobileView) {
281
- this._isSearchVisible = false;
322
+ if (this.isBreakpointSizeM) {
323
+ this._isSearchOpened = false;
282
324
  }
283
325
 
284
- if (this._shouldHandleResize) {
285
- this._mobileMenu?.showFirstLevelMenu();
286
- this.removeOverflowBody();
326
+ if (this._shouldHandleResize && this.isBreakpointSizeM) {
327
+ this.closeMobileMenu();
287
328
  return;
288
329
  }
330
+
289
331
  this._shouldHandleResize = true;
290
332
  }
291
333
 
@@ -313,9 +355,17 @@ class UDExMastheadShell extends UI5Element {
313
355
  }
314
356
  }
315
357
 
358
+ handleLogoClick(e: CustomEvent): void {
359
+ this.fireEvent("logo-click", { originalEvent: e });
360
+ }
361
+
362
+ handleSiteLabelClick(e: CustomEvent): void {
363
+ this.fireEvent("site-label-click", { originalEvent: e });
364
+ }
365
+
316
366
  handleSearchClick(e: CustomEvent): void {
317
367
  e.stopPropagation();
318
- this._isSearchVisible = true;
368
+ this._isSearchOpened = true;
319
369
  this.resetSelectedItems();
320
370
  if (this._searchOpener) {
321
371
  this._searchOpener.selected = false;
@@ -325,20 +375,18 @@ class UDExMastheadShell extends UI5Element {
325
375
 
326
376
  handleCartClick(e: CustomEvent) {
327
377
  e.stopPropagation();
328
- this.setSelectedItem(e);
329
378
  this.fireEvent("cart-click");
330
379
  }
331
380
 
332
381
  handleProfileClick(e: CustomEvent): void {
333
382
  e.stopPropagation();
334
- this.setSelectedItem(e);
335
383
  this.fireEvent("profile-click");
336
384
  }
337
385
 
338
386
  handleMobileMenuClick(e: CustomEvent) {
339
387
  e.stopPropagation();
340
388
  this.setSelectedItem(e);
341
- this.addActiveMobileClass();
389
+ this._isMobileMenuOpen = true;
342
390
 
343
391
  if (this.bodyOverflow) {
344
392
  this.setOverflowBody();
@@ -347,12 +395,14 @@ class UDExMastheadShell extends UI5Element {
347
395
 
348
396
  handleMobileCloseClick(e: CustomEvent) {
349
397
  e.preventDefault();
350
- this.removeActiveMobileClass();
351
- this.setSelectedItem(e);
352
- this._mobileMenu?.showFirstLevelMenu();
398
+ this.closeMobileMenu();
399
+ }
353
400
 
354
- if (this.bodyOverflow) {
355
- this.removeOverflowBody();
401
+ handleEnterAndSpaceOnCloseBtn(e: KeyboardEvent) {
402
+ e.preventDefault();
403
+ if (isSpace(e) || isEnter(e)) {
404
+ this.closeMobileMenu();
405
+ this.mobileBtn?.focus();
356
406
  }
357
407
  }
358
408
 
@@ -394,14 +444,6 @@ class UDExMastheadShell extends UI5Element {
394
444
  });
395
445
  }
396
446
 
397
- addActiveMobileClass() {
398
- this._rootHolder?.classList.add(mobileMenuActiveClass);
399
- }
400
-
401
- removeActiveMobileClass() {
402
- this._rootHolder?.classList.remove(mobileMenuActiveClass);
403
- }
404
-
405
447
  setSelectedItem(e: CustomEvent): void {
406
448
  const clickedItem: UDExMastheadItem = e.detail.item;
407
449
  if (!clickedItem) {
@@ -418,11 +460,12 @@ class UDExMastheadShell extends UI5Element {
418
460
  focusSearchBtn(): void {
419
461
  if (this._searchOpener) {
420
462
  this._searchOpener.focus();
463
+ this._closeBtnClicked = false;
421
464
  }
422
465
  }
423
466
 
424
467
  hideSearch(): void {
425
- this._isSearchVisible = false;
468
+ this._isSearchOpened = false;
426
469
  this._closeBtnClicked = true;
427
470
  }
428
471
 
@@ -457,6 +500,16 @@ class UDExMastheadShell extends UI5Element {
457
500
  style.removeProperty("overflow");
458
501
  }
459
502
 
503
+ closeMobileMenu(): void {
504
+ this._isMobileMenuOpen = false;
505
+ this.resetSelectedItems();
506
+ this._mobileMenu?.showFirstLevelMenu();
507
+
508
+ if (this.bodyOverflow) {
509
+ this.removeOverflowBody();
510
+ }
511
+ }
512
+
460
513
  get searchOpener(): UDExMastheadItem | null | undefined {
461
514
  return this.shadowRoot?.querySelector(".udex-masthead-shell__search-btn");
462
515
  }
@@ -489,13 +542,29 @@ class UDExMastheadShell extends UI5Element {
489
542
  return !!this.search.length;
490
543
  }
491
544
 
545
+ get hasExploreSAP(): boolean {
546
+ return !!this.exploreSAP.length;
547
+ }
548
+
492
549
  get hasMobileMenuButtons(): boolean {
493
550
  return !!this.mobileMenu.length;
494
551
  }
495
552
 
496
- get isMobileView(): boolean {
553
+ get isBreakpointSizeM(): boolean {
497
554
  return window.innerWidth <= breakpointSizeM;
498
555
  }
556
+
557
+ get isMainMenuVisible(): boolean {
558
+ return !this.showSearchByDefault && !this._isSearchOpened;
559
+ }
560
+
561
+ get isRightMenuVisible(): boolean {
562
+ return this.showSearchByDefault || !this._isSearchOpened;
563
+ }
564
+
565
+ get isSearchVisible(): boolean {
566
+ return this.showSearchByDefault || this._isSearchOpened;
567
+ }
499
568
  }
500
569
 
501
570
  UDExMastheadShell.define();
@@ -10,8 +10,7 @@
10
10
  <audio
11
11
  id="{{playerElementId}}"
12
12
  class="udex-media-player__video video-js {{aspectRatioClass}}"
13
- preload="auto"
14
- data-setup="{{dataSetup}}"
13
+ preload="auto"
15
14
  >
16
15
  <source src="{{source}}" type="{{type}}" />
17
16
  </audio>
@@ -21,7 +20,6 @@
21
20
  <video
22
21
  id="{{playerElementId}}"
23
22
  class="udex-media-player__video video-js {{aspectRatioClass}}"
24
- data-setup="{{dataSetup}}"
25
23
  >
26
24
  <source src="{{source}}" type="{{type}}">
27
25
  {{#each _tracks}}
@@ -50,7 +50,7 @@ export interface VideoJSPlayer extends Player{
50
50
  * For the <code>udex-media-player</code>
51
51
  * <h3>ES6 Module Import</h3>
52
52
  *
53
- * <code>import @udex/web-components/dist/MediaPlayer.js";</code>
53
+ * <code>import "@udex/web-components/dist/MediaPlayer.js";</code>
54
54
  *
55
55
  * @constructor
56
56
  * @author SAP SE
@@ -357,41 +357,135 @@ class UDExMediaPlayer extends UI5Element {
357
357
  return this.shadowRoot?.querySelector(".video-js video") as HTMLVideoElement || this.shadowRoot?.querySelector(".video-js audio") || null;
358
358
  }
359
359
 
360
- get optionsValue() {
360
+ setupHotkeys(e: KeyboardEvent, player: VideoJSPlayer) {
361
+ // Back to start
362
+ if (e.key === "0") {
363
+ e.preventDefault();
364
+ e.stopPropagation();
365
+ player.currentTime(0);
366
+ player.play();
367
+ return;
368
+ }
369
+
370
+ // Full screen toggle
371
+ if (e.key.toLowerCase() === "f") {
372
+ e.preventDefault();
373
+ e.stopPropagation();
374
+ if (!player.isFullscreen()) {
375
+ player.requestFullscreen();
376
+ } else {
377
+ player.exitFullscreen();
378
+ }
379
+ return;
380
+ }
381
+
382
+ // Mute / Unmute
383
+ if (e.key.toLowerCase() === "m") {
384
+ e.preventDefault();
385
+ e.stopPropagation();
386
+ player.muted(!player.muted());
387
+ return;
388
+ }
389
+
390
+ // Play / Pause
391
+ if (e.key === " ") {
392
+ e.preventDefault();
393
+ e.stopPropagation();
394
+ if (player.paused()) {
395
+ player.play();
396
+ } else {
397
+ player.pause();
398
+ }
399
+ return;
400
+ }
401
+
402
+ // Speed up the video - set higher playback rate
403
+ if (e.key === "ArrowRight" && e.shiftKey) {
404
+ e.preventDefault();
405
+ e.stopPropagation();
406
+ const playbackRatesOptions: Array<number> = player.options_.playbackRates;
407
+ const currentRateIndex = playbackRatesOptions.indexOf(player.playbackRate() ?? 1);
408
+ if (currentRateIndex < playbackRatesOptions.length - 1) {
409
+ const newPlaybackRate = currentRateIndex + 1;
410
+ player.playbackRate(playbackRatesOptions[newPlaybackRate]);
411
+ }
412
+ return;
413
+ }
414
+
415
+ // Slow down the video - set lower playback rate
416
+ if (e.key === "ArrowLeft" && e.shiftKey) {
417
+ e.preventDefault();
418
+ e.stopPropagation();
419
+ const playbackRatesOptions: Array<number> = player.options_.playbackRates;
420
+ const currentRateIndex = playbackRatesOptions.indexOf(player.playbackRate() ?? 1);
421
+ if (currentRateIndex > 0) {
422
+ const newPlaybackRate = currentRateIndex - 1;
423
+ player.playbackRate(playbackRatesOptions[newPlaybackRate]);
424
+ }
425
+ return;
426
+ }
427
+
428
+ // Skip forward / Skip backward
429
+ if (e.key === "ArrowRight" || e.key === "ArrowLeft") {
430
+ e.preventDefault();
431
+ e.stopPropagation();
432
+ const stepSeconds = player.controlBar.progressControl.seekBar.options_.stepSeconds;
433
+ const duration: number = player.duration() ?? 0;
434
+ const currentTime: number = player.currentTime() ?? 0;
435
+ const delta: number = (e.key === "ArrowRight" ? stepSeconds : -stepSeconds);
436
+ const newTime = Math.min(Math.max(currentTime + delta, 0), duration);
437
+ player.currentTime(newTime);
438
+ return;
439
+ }
440
+
441
+ // Volume change
442
+ if (((e.key === "ArrowUp" || e.key === "ArrowDown") && e.ctrlKey)
443
+ || ((e.key === "ArrowUp" || e.key === "ArrowDown") && e.metaKey)) {
444
+ e.preventDefault();
445
+ e.stopPropagation();
446
+ const volumeStep: number = 0.1;
447
+ const volume: number = player.volume() ?? 0;
448
+ let newVolume = volume + (e.key === "ArrowUp" ? volumeStep : -volumeStep);
449
+ newVolume = Math.min(Math.max(newVolume, 0), 1);
450
+ player.volume(newVolume);
451
+ }
452
+ }
453
+
454
+ getOptionsValue() {
361
455
  const baseOptions = {
362
456
  playbackRates: [1, 1.5, 2],
363
457
  controls: true,
364
- audioOnly: this.audioOnly,
365
458
  poster: this.poster,
459
+ audioOnly: this.audioOnly,
366
460
  controlBar: {
367
- children: [
368
- "PlayToggle",
369
- "VolumePanel",
370
- "ProgressControl",
371
- "RemainingTimeDisplay",
372
- "SubsCapsButton",
373
- "PlaybackRateMenuButton",
374
- "FullscreenToggle",
375
- "MediaLoader",
376
- ],
461
+ playToggle: true,
462
+ volumePanel: true,
463
+ progressControl: {
464
+ seekBar: {
465
+ stepSeconds: 10,
466
+ },
467
+ },
468
+ remainingTimeDisplay: true,
469
+ subsCapsButton: true,
470
+ playbackRateMenuButton: true,
471
+ fullscreenToggle: true,
472
+ pictureInPictureToggle: false,
377
473
  },
378
474
  userActions: {
379
- hotkeys: true,
475
+ hotkeys: (e: KeyboardEvent) => {
476
+ this.setupHotkeys(e, this.player);
477
+ },
380
478
  },
381
479
  };
382
480
 
383
- if (typeof this.options === "string") {
384
- return this.options ? {
385
- ...baseOptions,
386
- ...JSON.parse(this.options),
387
- } : baseOptions;
481
+ if (!this.options) {
482
+ return baseOptions;
388
483
  }
389
484
 
390
- return this.options;
391
- }
392
-
393
- get dataSetup() {
394
- return JSON.stringify(this.optionsValue);
485
+ return {
486
+ ...baseOptions,
487
+ ...JSON.parse(this.options),
488
+ };
395
489
  }
396
490
 
397
491
  async setupLanguage(language: string) {
@@ -411,12 +505,14 @@ class UDExMediaPlayer extends UI5Element {
411
505
  if (this.enableGlobalDependency) {
412
506
  window.videojs = videojs;
413
507
  }
414
- const language: string = this.optionsValue?.language;
508
+
509
+ const options = this.getOptionsValue();
510
+ const language: string = options?.language;
415
511
  if (language) {
416
512
  videojs.addLanguage(language, await this.setupLanguage(language));
417
513
  }
418
514
 
419
- this.player = videojs(this.shadowRoot?.querySelector(".video-js") || "");
515
+ this.player = videojs(this.shadowRoot?.querySelector(".video-js") || "", options);
420
516
  this.attachListeners(this.player);
421
517
 
422
518
  if (this.audioOnly) { return; }
@@ -133,9 +133,7 @@ class UDExMessageStrip extends MessageStrip {
133
133
  static i18nBundle: I18nBundle;
134
134
 
135
135
  static async onDefine() {
136
- UDExMessageStrip.i18nBundle = await getI18nBundle(
137
- "sap-ui-webcomponents-bundle",
138
- );
136
+ UDExMessageStrip.i18nBundle = await getI18nBundle("@udex/web-components");
139
137
  }
140
138
 
141
139
  getTranslation(text: I18nText): string {
package/src/Pagination.ts CHANGED
@@ -245,7 +245,7 @@ class UDExPagination extends UI5Element {
245
245
  }
246
246
 
247
247
  static async onDefine() {
248
- UDExPagination.i18nBundle = await getI18nBundle("sap-ui-webcomponents-bundle");
248
+ UDExPagination.i18nBundle = await getI18nBundle("@udex/web-components");
249
249
  }
250
250
 
251
251
  setActive(element: HTMLElement): void {
@@ -194,7 +194,7 @@ class UDExPasswordField extends UI5Element {
194
194
  static i18nBundle: I18nBundle;
195
195
 
196
196
  static async onDefine() {
197
- UDExPasswordField.i18nBundle = await getI18nBundle("sap-ui-webcomponents-bundle");
197
+ UDExPasswordField.i18nBundle = await getI18nBundle("@udex/web-components");
198
198
  }
199
199
 
200
200
  handleShowPassword(): void {
@@ -53,10 +53,9 @@
53
53
  design="Tertiary"
54
54
  icon-end
55
55
  ?disabled="{{isButtonDisabled}}"
56
- aria-disabled="{{isButtonDisabled}}"
57
56
  aria-haspopup="true"
57
+ accessible-name-ref="{{_id}}-countrySelectorAriaLabel {{ariaDescribedById}}"
58
58
  aria-label="{{countrySelectorAriaLabel}}"
59
- accessible-name="{{countrySelectorAriaLabel}}"
60
59
  aria-expanded="{{_dropdownExpanded}}"
61
60
  aria-controls="{{this._id}}_dropdown-menu"
62
61
  role="combobox"
@@ -85,13 +84,15 @@
85
84
  ?required="{{required}}"
86
85
  autocomplete="tel"
87
86
  aria-label="{{accessibleName}}"
88
- aria-labelledby="{{accessibleNameRef}}"
87
+ aria-labelledby="{{accessibleName}}"
89
88
  aria-required="{{required}}"
90
89
  aria-readonly="{{isInputReadonly}}"
91
90
  aria-disabled="{{disabled}}"
92
91
  aria-invalid="{{ariaInvalid}}"
92
+ aria-describedby="{{ariaDescribedById}}"
93
93
  @input="{{handleInput}}"
94
94
  @change="{{handleChange}}"
95
+ @click="{{handleClick}}"
95
96
  @focus="{{handleFocus}}"
96
97
  @blur="{{handleBlur}}"
97
98
  @keydown={{handleKeyDown}}
@@ -106,3 +107,17 @@
106
107
  value-state="{{fieldState}}">
107
108
  </udex-status-message>
108
109
  {{/if}}
110
+
111
+ {{#if supportingText}}
112
+ <span id="{{_id}}-supportingTextDesc" class="hidden-text">{{supportingText}}</span>
113
+ {{/if}}
114
+
115
+ {{#if hasValueState}}
116
+ <span id="{{_id}}-valueStateDesc" class="hidden-text">{{valueStateText}}</span>
117
+ {{/if}}
118
+
119
+ {{#if readonly}}
120
+ <span id="{{_id}}-stateReadOnlyDesc" class="hidden-text">{{readOnlyStateText}}</span>
121
+ {{/if}}
122
+
123
+ <span id="{{_id}}-countrySelectorAriaLabel" class="hidden-text">{{countrySelectorAriaLabel}}</span>
@@ -7,7 +7,10 @@ import event from "@ui5/webcomponents-base/dist/decorators/event.js";
7
7
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
8
8
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
9
9
  import ResizeHandler, { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
10
- import { COUNTRY_SELECT } from "./generated/i18n/i18n-defaults.js";
10
+ import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
11
+ import {
12
+ COUNTRY_SELECT, READ_ONLY, VALUE_STATE_ERROR, VALUE_STATE_INFORMATION, VALUE_STATE_SUCCESS, VALUE_STATE_WARNING,
13
+ } from "./generated/i18n/i18n-defaults.js";
11
14
  import { Country, CountryListDB } from "./data/CountryListISO3166.js";
12
15
  import UDExDropdown from "./Dropdown.js";
13
16
  import UDExList from "./List.js";
@@ -266,16 +269,32 @@ class UDExPhoneNumberField extends UI5Element {
266
269
  @property({ type: String, multiple: false, noAttribute: true })
267
270
  previousKey!: string;
268
271
 
272
+ /**
273
+ * Defines the active (focus)
274
+ * @default false
275
+ * @private
276
+ */
277
+ @property({ type: Boolean })
278
+ active!: boolean;
279
+
280
+ /**
281
+ * Defines is it the touch of the input field (only for mobile devices).
282
+ * @default false
283
+ * @private
284
+ */
285
+ @property({ type: Boolean })
286
+ _isTouched!: boolean;
287
+
269
288
  static i18nBundle: I18nBundle;
270
289
  _dropdown!: UDExDropdown;
271
290
  _handleResizeBound: ResizeObserverCallback;
272
291
 
273
292
  static async onDefine() {
274
- UDExPhoneNumberField.i18nBundle = await getI18nBundle("sap-ui-webcomponents-bundle");
293
+ UDExPhoneNumberField.i18nBundle = await getI18nBundle("@udex/web-components");
275
294
  }
276
295
 
277
296
  get countrySelectorAriaLabel() {
278
- return this.accessibleName || `${this.label} ${UDExPhoneNumberField.i18nBundle.getText(COUNTRY_SELECT)}`;
297
+ return this.accessibleName || `${UDExPhoneNumberField.i18nBundle.getText(COUNTRY_SELECT)} ${this.label}`.trim();
279
298
  }
280
299
 
281
300
  get countryIso() {
@@ -360,6 +379,7 @@ class UDExPhoneNumberField extends UI5Element {
360
379
  }
361
380
 
362
381
  handleFocus() {
382
+ this.active = true;
363
383
  if (this.countryIso.length === 0) {
364
384
  this.phoneFormat = initialPlaceholder;
365
385
  }
@@ -369,7 +389,15 @@ class UDExPhoneNumberField extends UI5Element {
369
389
  }
370
390
  }
371
391
 
392
+ handleClick(): void {
393
+ if (!isDesktop()) {
394
+ this._isTouched = true;
395
+ }
396
+ }
397
+
372
398
  handleBlur() {
399
+ this.active = false;
400
+ this._isTouched = false;
373
401
  this.applyPlaceholder();
374
402
 
375
403
  const prefixLength = this.selectedPhonePrefix.length;
@@ -547,6 +575,43 @@ class UDExPhoneNumberField extends UI5Element {
547
575
  });
548
576
  }
549
577
 
578
+ get valueStateTypeMappings() {
579
+ return {
580
+ "Success": UDExPhoneNumberField.i18nBundle.getText(VALUE_STATE_SUCCESS),
581
+ "Standard": UDExPhoneNumberField.i18nBundle.getText(VALUE_STATE_INFORMATION),
582
+ "Error": UDExPhoneNumberField.i18nBundle.getText(VALUE_STATE_ERROR),
583
+ "Warning": UDExPhoneNumberField.i18nBundle.getText(VALUE_STATE_WARNING),
584
+ };
585
+ }
586
+
587
+ get hasValueState() {
588
+ return this.fieldState !== FieldState.Standard;
589
+ }
590
+
591
+ get valueStateText() {
592
+ return this.fieldState !== FieldState.Standard ? this.valueStateTypeMappings[this.fieldState] : undefined;
593
+ }
594
+
595
+ get readOnlyStateText() {
596
+ return UDExPhoneNumberField.i18nBundle.getText(READ_ONLY);
597
+ }
598
+
599
+ get ariaDescribedById(): string {
600
+ return `${this.supportingTextId} ${this.valueStateTextId} ${this.readOnlyStateTextId}`.trim();
601
+ }
602
+
603
+ get supportingTextId():string {
604
+ return this.supportingText ? `${this._id}-supportingTextDesc` : "";
605
+ }
606
+
607
+ get valueStateTextId():string {
608
+ return this.hasValueState ? `${this._id}-valueStateDesc` : "";
609
+ }
610
+
611
+ get readOnlyStateTextId():string {
612
+ return this.readonly ? `${this._id}-stateReadOnlyDesc` : "";
613
+ }
614
+
550
615
  onBeforeRendering() {
551
616
  this.applyPlaceholder();
552
617
 
package/src/RatingBar.ts CHANGED
@@ -72,7 +72,7 @@ class UDExRatingBar extends UI5Element {
72
72
  _maxPercentage: number = 100;
73
73
 
74
74
  static async onDefine() {
75
- UDExRatingBar.i18nBundle = await getI18nBundle("@ui5/webcomponents");
75
+ UDExRatingBar.i18nBundle = await getI18nBundle("@udex/web-components");
76
76
  }
77
77
 
78
78
  onBeforeRendering(): void {
package/src/Review.ts CHANGED
@@ -94,7 +94,7 @@ class UDExReview extends UI5Element {
94
94
  _maxRatingBars: number = 5;
95
95
 
96
96
  static async onDefine() {
97
- UDExReview.i18nBundle = await getI18nBundle("@ui5/webcomponents");
97
+ UDExReview.i18nBundle = await getI18nBundle("@udex/web-components");
98
98
  }
99
99
 
100
100
  get reviewsText(): string {