@sapudex/web-components 0.114.2 → 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 (456) hide show
  1. package/bundle.esm.js +6 -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 +20 -1
  7. package/dist/Avatar.js +26 -2
  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/CountrySelector.d.ts +1 -0
  13. package/dist/CountrySelector.js +3 -0
  14. package/dist/CountrySelector.js.map +1 -1
  15. package/dist/Dropdown.d.ts +11 -1
  16. package/dist/Dropdown.js +15 -3
  17. package/dist/Dropdown.js.map +1 -1
  18. package/dist/FilterMenu.d.ts +21 -5
  19. package/dist/FilterMenu.js +50 -8
  20. package/dist/FilterMenu.js.map +1 -1
  21. package/dist/Footer.d.ts +27 -0
  22. package/dist/Footer.js +27 -36
  23. package/dist/Footer.js.map +1 -1
  24. package/dist/HeroBanner.js +3 -0
  25. package/dist/HeroBanner.js.map +1 -1
  26. package/dist/InputGroup.js.map +1 -1
  27. package/dist/List.d.ts +7 -0
  28. package/dist/List.js +78 -18
  29. package/dist/List.js.map +1 -1
  30. package/dist/ListItem.d.ts +0 -1
  31. package/dist/ListItem.js +0 -6
  32. package/dist/ListItem.js.map +1 -1
  33. package/dist/ListItemBase.d.ts +3 -0
  34. package/dist/ListItemBase.js +12 -0
  35. package/dist/ListItemBase.js.map +1 -1
  36. package/dist/MastheadItem.d.ts +1 -0
  37. package/dist/MastheadItem.js +5 -11
  38. package/dist/MastheadItem.js.map +1 -1
  39. package/dist/MastheadShell.d.ts +8 -0
  40. package/dist/MastheadShell.js +10 -0
  41. package/dist/MastheadShell.js.map +1 -1
  42. package/dist/MessageStrip.js +1 -1
  43. package/dist/MessageStrip.js.map +1 -1
  44. package/dist/Pagination.d.ts +3 -0
  45. package/dist/Pagination.js +16 -4
  46. package/dist/Pagination.js.map +1 -1
  47. package/dist/PasswordField.d.ts +14 -4
  48. package/dist/PasswordField.js +24 -15
  49. package/dist/PasswordField.js.map +1 -1
  50. package/dist/PhoneNumberField.d.ts +6 -0
  51. package/dist/PhoneNumberField.js +6 -1
  52. package/dist/PhoneNumberField.js.map +1 -1
  53. package/dist/RatingBar.d.ts +53 -0
  54. package/dist/RatingBar.js +96 -0
  55. package/dist/RatingBar.js.map +1 -0
  56. package/dist/Review.d.ts +71 -0
  57. package/dist/Review.js +108 -0
  58. package/dist/Review.js.map +1 -0
  59. package/dist/Search.d.ts +51 -0
  60. package/dist/Search.js +65 -11
  61. package/dist/Search.js.map +1 -1
  62. package/dist/SearchableListBase.d.ts +1 -1
  63. package/dist/SearchableListBase.js +1 -1
  64. package/dist/SearchableListBase.js.map +1 -1
  65. package/dist/SecondaryNavigation.d.ts +35 -47
  66. package/dist/SecondaryNavigation.js +158 -167
  67. package/dist/SecondaryNavigation.js.map +1 -1
  68. package/dist/SecondaryNavigationItem.d.ts +101 -0
  69. package/dist/SecondaryNavigationItem.js +297 -0
  70. package/dist/SecondaryNavigationItem.js.map +1 -0
  71. package/dist/SecondaryNavigationItemBase.d.ts +82 -0
  72. package/dist/SecondaryNavigationItemBase.js +104 -0
  73. package/dist/SecondaryNavigationItemBase.js.map +1 -0
  74. package/dist/SecondaryNavigationSubItem.d.ts +53 -0
  75. package/dist/SecondaryNavigationSubItem.js +105 -0
  76. package/dist/SecondaryNavigationSubItem.js.map +1 -0
  77. package/dist/SelectBox.d.ts +1 -0
  78. package/dist/SelectBox.js +15 -1
  79. package/dist/SelectBox.js.map +1 -1
  80. package/dist/StatusBadge.d.ts +67 -0
  81. package/dist/StatusBadge.js +104 -0
  82. package/dist/StatusBadge.js.map +1 -0
  83. package/dist/Switch.d.ts +1 -0
  84. package/dist/Switch.js +3 -0
  85. package/dist/Switch.js.map +1 -1
  86. package/dist/Tab.d.ts +8 -0
  87. package/dist/Tab.js +4 -1
  88. package/dist/Tab.js.map +1 -1
  89. package/dist/TabNavigation.d.ts +20 -20
  90. package/dist/TabNavigation.js +82 -101
  91. package/dist/TabNavigation.js.map +1 -1
  92. package/dist/Tag.d.ts +13 -6
  93. package/dist/Tag.js +34 -20
  94. package/dist/Tag.js.map +1 -1
  95. package/dist/TextArea.d.ts +1 -1
  96. package/dist/TextArea.js +3 -0
  97. package/dist/TextArea.js.map +1 -1
  98. package/dist/TextField.d.ts +9 -0
  99. package/dist/TextField.js +16 -0
  100. package/dist/TextField.js.map +1 -1
  101. package/dist/Tooltip.d.ts +2 -2
  102. package/dist/Tooltip.js +3 -3
  103. package/dist/Tooltip.js.map +1 -1
  104. package/dist/assets/bundle.esm-7d53f4f2.js +314 -0
  105. package/dist/assets/messagebundle_en-6dcc9ab4.js +1 -0
  106. package/dist/assets/parameters-bundle.css-de55cf62.js +2 -0
  107. package/dist/css/themes/AccordionItem.css +1 -1
  108. package/dist/css/themes/Avatar.css +1 -1
  109. package/dist/css/themes/Badge.css +1 -1
  110. package/dist/css/themes/Checkbox.css +1 -1
  111. package/dist/css/themes/CountrySelector.css +1 -1
  112. package/dist/css/themes/Divider.css +1 -1
  113. package/dist/css/themes/Dropdown.css +1 -1
  114. package/dist/css/themes/FilterMenu.css +1 -1
  115. package/dist/css/themes/Footer.css +1 -1
  116. package/dist/css/themes/HeroBanner.css +1 -1
  117. package/dist/css/themes/MastheadShell.css +1 -1
  118. package/dist/css/themes/MediaPlayer.css +1 -1
  119. package/dist/css/themes/Modal.css +1 -1
  120. package/dist/css/themes/Pagination.css +1 -1
  121. package/dist/css/themes/PhoneNumberField.css +1 -1
  122. package/dist/css/themes/RatingBar.css +1 -0
  123. package/dist/css/themes/RatingIndicator.css +1 -1
  124. package/dist/css/themes/Review.css +1 -0
  125. package/dist/css/themes/Search.css +1 -1
  126. package/dist/css/themes/SecondaryNavigation.css +1 -1
  127. package/dist/css/themes/SecondaryNavigationItem.css +1 -0
  128. package/dist/css/themes/SecondaryNavigationSubItem.css +1 -0
  129. package/dist/css/themes/SelectBox.css +1 -1
  130. package/dist/css/themes/Slider.css +1 -1
  131. package/dist/css/themes/StatusBadge.css +1 -0
  132. package/dist/css/themes/StepInput.css +1 -1
  133. package/dist/css/themes/TabNavigation.css +1 -1
  134. package/dist/css/themes/Tag.css +1 -1
  135. package/dist/css/themes/TextField.css +1 -1
  136. package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +1 -1
  137. package/dist/custom-elements-internal.json +1291 -119
  138. package/dist/custom-elements.json +1298 -199
  139. package/dist/data/CountryListISO3166.js +162 -162
  140. package/dist/data/CountryListISO3166.js.map +1 -1
  141. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  142. package/dist/generated/assets/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.json +1 -1
  143. package/dist/generated/i18n/i18n-defaults.d.ts +16 -1
  144. package/dist/generated/i18n/i18n-defaults.js +20 -5
  145. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  146. package/dist/generated/templates/AccordionItemTemplate.lit.js +1 -1
  147. package/dist/generated/templates/AccordionItemTemplate.lit.js.map +1 -1
  148. package/dist/generated/templates/CountrySelectorTemplate.lit.js +1 -1
  149. package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
  150. package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
  151. package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
  152. package/dist/generated/templates/DropdownTemplate.lit.js +2 -2
  153. package/dist/generated/templates/DropdownTemplate.lit.js.map +1 -1
  154. package/dist/generated/templates/FilterMenuTemplate.lit.js +3 -3
  155. package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
  156. package/dist/generated/templates/FooterTemplate.lit.js +26 -28
  157. package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
  158. package/dist/generated/templates/HeroBannerTemplate.lit.js +9 -8
  159. package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
  160. package/dist/generated/templates/ListGroupHeaderTemplate.lit.js +4 -4
  161. package/dist/generated/templates/ListGroupHeaderTemplate.lit.js.map +1 -1
  162. package/dist/generated/templates/ListItemTemplate.lit.js +1 -1
  163. package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
  164. package/dist/generated/templates/ListSelectAllTemplate.lit.js +1 -1
  165. package/dist/generated/templates/ListSelectAllTemplate.lit.js.map +1 -1
  166. package/dist/generated/templates/MastheadItemTemplate.lit.js +3 -3
  167. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
  168. package/dist/generated/templates/MastheadShellTemplate.lit.js +2 -2
  169. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  170. package/dist/generated/templates/PaginationTemplate.lit.js +1 -1
  171. package/dist/generated/templates/PaginationTemplate.lit.js.map +1 -1
  172. package/dist/generated/templates/PasswordFieldTemplate.lit.js +1 -2
  173. package/dist/generated/templates/PasswordFieldTemplate.lit.js.map +1 -1
  174. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +3 -3
  175. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
  176. package/dist/generated/templates/RatingBarTemplate.lit.d.ts +4 -0
  177. package/dist/generated/templates/RatingBarTemplate.lit.js +6 -0
  178. package/dist/generated/templates/RatingBarTemplate.lit.js.map +1 -0
  179. package/dist/generated/templates/ReviewTemplate.lit.d.ts +4 -0
  180. package/dist/generated/templates/ReviewTemplate.lit.js +10 -0
  181. package/dist/generated/templates/ReviewTemplate.lit.js.map +1 -0
  182. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +1 -1
  183. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +1 -1
  184. package/dist/generated/templates/SearchTemplate.lit.js +7 -7
  185. package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
  186. package/dist/generated/templates/SearchableListBaseTemplate.lit.js +2 -2
  187. package/dist/generated/templates/SearchableListBaseTemplate.lit.js.map +1 -1
  188. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.d.ts +4 -0
  189. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +11 -0
  190. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -0
  191. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.d.ts +4 -0
  192. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +10 -0
  193. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +1 -0
  194. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +7 -10
  195. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  196. package/dist/generated/templates/SelectBoxTemplate.lit.js +2 -2
  197. package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
  198. package/dist/generated/templates/StatusBadgeTemplate.lit.d.ts +4 -0
  199. package/dist/generated/templates/StatusBadgeTemplate.lit.js +5 -0
  200. package/dist/generated/templates/StatusBadgeTemplate.lit.js.map +1 -0
  201. package/dist/generated/templates/SwitchTemplate.lit.js +2 -2
  202. package/dist/generated/templates/SwitchTemplate.lit.js.map +1 -1
  203. package/dist/generated/templates/TabInOverflowTemplate.lit.js +2 -2
  204. package/dist/generated/templates/TabInOverflowTemplate.lit.js.map +1 -1
  205. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js +1 -1
  206. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js.map +1 -1
  207. package/dist/generated/templates/TabNavigationTemplate.lit.js +2 -2
  208. package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
  209. package/dist/generated/templates/TagTemplate.lit.js +9 -3
  210. package/dist/generated/templates/TagTemplate.lit.js.map +1 -1
  211. package/dist/generated/templates/TextAreaTemplate.lit.js +1 -1
  212. package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
  213. package/dist/generated/templates/TextFieldTemplate.lit.js +2 -2
  214. package/dist/generated/templates/TextFieldTemplate.lit.js.map +1 -1
  215. package/dist/generated/templates/TooltipTemplate.lit.js +1 -1
  216. package/dist/generated/templates/TooltipTemplate.lit.js.map +1 -1
  217. package/dist/generated/themes/AccordionItem.css.js +1 -1
  218. package/dist/generated/themes/AccordionItem.css.js.map +1 -1
  219. package/dist/generated/themes/Avatar.css.js +1 -1
  220. package/dist/generated/themes/Avatar.css.js.map +1 -1
  221. package/dist/generated/themes/Badge.css.js +1 -1
  222. package/dist/generated/themes/Badge.css.js.map +1 -1
  223. package/dist/generated/themes/Checkbox.css.js +1 -1
  224. package/dist/generated/themes/Checkbox.css.js.map +1 -1
  225. package/dist/generated/themes/CountrySelector.css.js +1 -1
  226. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  227. package/dist/generated/themes/Divider.css.js +1 -1
  228. package/dist/generated/themes/Divider.css.js.map +1 -1
  229. package/dist/generated/themes/Dropdown.css.js +1 -1
  230. package/dist/generated/themes/Dropdown.css.js.map +1 -1
  231. package/dist/generated/themes/FilterMenu.css.js +1 -1
  232. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  233. package/dist/generated/themes/Footer.css.js +1 -1
  234. package/dist/generated/themes/Footer.css.js.map +1 -1
  235. package/dist/generated/themes/HeroBanner.css.js +1 -1
  236. package/dist/generated/themes/HeroBanner.css.js.map +1 -1
  237. package/dist/generated/themes/MastheadShell.css.js +1 -1
  238. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  239. package/dist/generated/themes/MediaPlayer.css.js +1 -1
  240. package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
  241. package/dist/generated/themes/Modal.css.js +1 -1
  242. package/dist/generated/themes/Modal.css.js.map +1 -1
  243. package/dist/generated/themes/Pagination.css.js +1 -1
  244. package/dist/generated/themes/Pagination.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/RatingBar.css.js +9 -0
  248. package/dist/generated/themes/RatingBar.css.js.map +1 -0
  249. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  250. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  251. package/dist/generated/themes/Review.css.d.ts +3 -0
  252. package/dist/generated/themes/Review.css.js +9 -0
  253. package/dist/generated/themes/Review.css.js.map +1 -0
  254. package/dist/generated/themes/Search.css.js +1 -1
  255. package/dist/generated/themes/Search.css.js.map +1 -1
  256. package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
  257. package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
  258. package/dist/generated/themes/SecondaryNavigationItem.css.d.ts +3 -0
  259. package/dist/generated/themes/SecondaryNavigationItem.css.js +9 -0
  260. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -0
  261. package/dist/generated/themes/SecondaryNavigationSubItem.css.d.ts +3 -0
  262. package/dist/generated/themes/SecondaryNavigationSubItem.css.js +9 -0
  263. package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -0
  264. package/dist/generated/themes/SelectBox.css.js +1 -1
  265. package/dist/generated/themes/SelectBox.css.js.map +1 -1
  266. package/dist/generated/themes/Slider.css.js +1 -1
  267. package/dist/generated/themes/Slider.css.js.map +1 -1
  268. package/dist/generated/themes/StatusBadge.css.d.ts +3 -0
  269. package/dist/generated/themes/StatusBadge.css.js +9 -0
  270. package/dist/generated/themes/StatusBadge.css.js.map +1 -0
  271. package/dist/generated/themes/StepInput.css.js +1 -1
  272. package/dist/generated/themes/StepInput.css.js.map +1 -1
  273. package/dist/generated/themes/TabNavigation.css.js +1 -1
  274. package/dist/generated/themes/TabNavigation.css.js.map +1 -1
  275. package/dist/generated/themes/Tag.css.js +1 -1
  276. package/dist/generated/themes/Tag.css.js.map +1 -1
  277. package/dist/generated/themes/TextField.css.js +1 -1
  278. package/dist/generated/themes/TextField.css.js.map +1 -1
  279. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js +1 -1
  280. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js.map +1 -1
  281. package/dist/i18n/messagebundle.properties +40 -5
  282. package/dist/i18n/messagebundle_en.properties +20 -5
  283. package/dist/vscode.html-custom-data.json +239 -16
  284. package/dist/web-types.json +405 -25
  285. package/package.json +8 -8
  286. package/src/AccordionItem.hbs +1 -4
  287. package/src/AccordionItem.ts +5 -4
  288. package/src/Avatar.ts +35 -3
  289. package/src/AvatarGroup.ts +135 -0
  290. package/src/CountrySelector.hbs +2 -1
  291. package/src/CountrySelector.ts +4 -1
  292. package/src/DatePicker.hbs +0 -1
  293. package/src/Dropdown.hbs +5 -3
  294. package/src/Dropdown.ts +24 -3
  295. package/src/FilterMenu.hbs +8 -1
  296. package/src/FilterMenu.ts +70 -12
  297. package/src/Footer.hbs +12 -37
  298. package/src/Footer.ts +64 -51
  299. package/src/HeroBanner.hbs +28 -21
  300. package/src/HeroBanner.ts +3 -0
  301. package/src/InputGroup.ts +6 -5
  302. package/src/List.ts +92 -21
  303. package/src/ListGroupHeader.hbs +9 -5
  304. package/src/ListItem.hbs +2 -1
  305. package/src/ListItem.ts +0 -7
  306. package/src/ListItemBase.ts +14 -0
  307. package/src/ListSelectAll.hbs +1 -0
  308. package/src/MastheadItem.hbs +3 -3
  309. package/src/MastheadItem.ts +10 -4
  310. package/src/MastheadShell.hbs +4 -0
  311. package/src/MastheadShell.ts +18 -0
  312. package/src/MessageStrip.ts +1 -1
  313. package/src/Pagination.hbs +4 -2
  314. package/src/Pagination.ts +19 -4
  315. package/src/PasswordField.hbs +6 -17
  316. package/src/PasswordField.ts +31 -23
  317. package/src/PhoneNumberField.hbs +8 -3
  318. package/src/PhoneNumberField.ts +12 -2
  319. package/src/RatingBar.hbs +11 -0
  320. package/src/RatingBar.ts +113 -0
  321. package/src/Review.hbs +44 -0
  322. package/src/Review.ts +140 -0
  323. package/src/Search.hbs +20 -14
  324. package/src/Search.ts +107 -10
  325. package/src/SearchSuggestions.hbs +2 -1
  326. package/src/SearchableListBase.hbs +2 -0
  327. package/src/SearchableListBase.ts +1 -1
  328. package/src/SecondaryNavigation.hbs +53 -71
  329. package/src/SecondaryNavigation.ts +192 -198
  330. package/src/SecondaryNavigationItem.hbs +64 -0
  331. package/src/SecondaryNavigationItem.ts +368 -0
  332. package/src/SecondaryNavigationItemBase.ts +153 -0
  333. package/src/SecondaryNavigationSubItem.hbs +44 -0
  334. package/src/SecondaryNavigationSubItem.ts +127 -0
  335. package/src/SelectBox.hbs +76 -76
  336. package/src/SelectBox.ts +18 -1
  337. package/src/StatusBadge.hbs +9 -0
  338. package/src/StatusBadge.ts +129 -0
  339. package/src/Switch.hbs +3 -3
  340. package/src/Switch.ts +4 -0
  341. package/src/Tab.ts +11 -1
  342. package/src/TabInOverflow.hbs +3 -2
  343. package/src/TabNavigation.hbs +12 -10
  344. package/src/TabNavigation.ts +92 -116
  345. package/src/TabNavigationPopover.hbs +1 -0
  346. package/src/Tag.hbs +60 -26
  347. package/src/Tag.ts +54 -34
  348. package/src/TextArea.hbs +3 -4
  349. package/src/TextArea.ts +3 -0
  350. package/src/TextField.hbs +40 -36
  351. package/src/TextField.ts +24 -0
  352. package/src/Tooltip.hbs +2 -2
  353. package/src/Tooltip.ts +4 -4
  354. package/src/data/CountryListISO3166.ts +162 -162
  355. package/src/generated/i18n/i18n-defaults.ts +2 -2
  356. package/src/generated/templates/AccordionItemTemplate.lit.ts +1 -1
  357. package/src/generated/templates/CountrySelectorTemplate.lit.ts +1 -1
  358. package/src/generated/templates/DatePickerTemplate.lit.ts +1 -1
  359. package/src/generated/templates/DropdownTemplate.lit.ts +2 -2
  360. package/src/generated/templates/FilterMenuTemplate.lit.ts +3 -3
  361. package/src/generated/templates/FooterTemplate.lit.ts +26 -28
  362. package/src/generated/templates/HeroBannerTemplate.lit.ts +9 -8
  363. package/src/generated/templates/ListGroupHeaderTemplate.lit.ts +4 -4
  364. package/src/generated/templates/ListItemTemplate.lit.ts +1 -1
  365. package/src/generated/templates/ListSelectAllTemplate.lit.ts +1 -1
  366. package/src/generated/templates/MastheadItemTemplate.lit.ts +3 -3
  367. package/src/generated/templates/MastheadShellTemplate.lit.ts +2 -2
  368. package/src/generated/templates/PaginationTemplate.lit.ts +1 -1
  369. package/src/generated/templates/PasswordFieldTemplate.lit.ts +1 -2
  370. package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +3 -3
  371. package/src/generated/templates/RatingBarTemplate.lit.ts +11 -0
  372. package/src/generated/templates/ReviewTemplate.lit.ts +15 -0
  373. package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +1 -1
  374. package/src/generated/templates/SearchTemplate.lit.ts +7 -7
  375. package/src/generated/templates/SearchableListBaseTemplate.lit.ts +2 -2
  376. package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +16 -0
  377. package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +15 -0
  378. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +7 -10
  379. package/src/generated/templates/SelectBoxTemplate.lit.ts +2 -2
  380. package/src/generated/templates/StatusBadgeTemplate.lit.ts +10 -0
  381. package/src/generated/templates/SwitchTemplate.lit.ts +2 -2
  382. package/src/generated/templates/TabInOverflowTemplate.lit.ts +2 -2
  383. package/src/generated/templates/TabNavigationPopoverTemplate.lit.ts +1 -1
  384. package/src/generated/templates/TabNavigationTemplate.lit.ts +2 -2
  385. package/src/generated/templates/TagTemplate.lit.ts +9 -3
  386. package/src/generated/templates/TextAreaTemplate.lit.ts +1 -1
  387. package/src/generated/templates/TextFieldTemplate.lit.ts +2 -2
  388. package/src/generated/templates/TooltipTemplate.lit.ts +1 -1
  389. package/src/generated/themes/AccordionItem.css.ts +1 -1
  390. package/src/generated/themes/Avatar.css.ts +1 -1
  391. package/src/generated/themes/Badge.css.ts +1 -1
  392. package/src/generated/themes/Checkbox.css.ts +1 -1
  393. package/src/generated/themes/CountrySelector.css.ts +1 -1
  394. package/src/generated/themes/Divider.css.ts +1 -1
  395. package/src/generated/themes/Dropdown.css.ts +1 -1
  396. package/src/generated/themes/FilterMenu.css.ts +1 -1
  397. package/src/generated/themes/Footer.css.ts +1 -1
  398. package/src/generated/themes/HeroBanner.css.ts +1 -1
  399. package/src/generated/themes/MastheadShell.css.ts +1 -1
  400. package/src/generated/themes/MediaPlayer.css.ts +1 -1
  401. package/src/generated/themes/Modal.css.ts +1 -1
  402. package/src/generated/themes/Pagination.css.ts +1 -1
  403. package/src/generated/themes/PhoneNumberField.css.ts +1 -1
  404. package/src/generated/themes/RatingBar.css.ts +13 -0
  405. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  406. package/src/generated/themes/Review.css.ts +13 -0
  407. package/src/generated/themes/Search.css.ts +1 -1
  408. package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
  409. package/src/generated/themes/SecondaryNavigationItem.css.ts +13 -0
  410. package/src/generated/themes/SecondaryNavigationSubItem.css.ts +13 -0
  411. package/src/generated/themes/SelectBox.css.ts +1 -1
  412. package/src/generated/themes/Slider.css.ts +1 -1
  413. package/src/generated/themes/StatusBadge.css.ts +13 -0
  414. package/src/generated/themes/StepInput.css.ts +1 -1
  415. package/src/generated/themes/TabNavigation.css.ts +1 -1
  416. package/src/generated/themes/Tag.css.ts +1 -1
  417. package/src/generated/themes/TextField.css.ts +1 -1
  418. package/src/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +1 -1
  419. package/src/i18n/messagebundle.properties +40 -5
  420. package/src/i18n/messagebundle_en.properties +20 -5
  421. package/src/themes/AccordionItem.css +6 -4
  422. package/src/themes/Avatar.css +43 -6
  423. package/src/themes/Badge.css +1 -1
  424. package/src/themes/Checkbox.css +12 -0
  425. package/src/themes/CountrySelector.css +4 -0
  426. package/src/themes/Divider.css +6 -2
  427. package/src/themes/Dropdown.css +2 -0
  428. package/src/themes/FilterMenu.css +10 -0
  429. package/src/themes/Footer.css +93 -168
  430. package/src/themes/HeroBanner.css +84 -20
  431. package/src/themes/MastheadShell.css +25 -29
  432. package/src/themes/MediaPlayer.css +3 -2
  433. package/src/themes/Modal.css +6 -0
  434. package/src/themes/Pagination.css +7 -0
  435. package/src/themes/PhoneNumberField.css +5 -0
  436. package/src/themes/RatingBar.css +52 -0
  437. package/src/themes/Review.css +196 -0
  438. package/src/themes/Search.css +37 -21
  439. package/src/themes/SecondaryNavigation.css +64 -293
  440. package/src/themes/SecondaryNavigationItem.css +221 -0
  441. package/src/themes/SecondaryNavigationSubItem.css +118 -0
  442. package/src/themes/SelectBox.css +17 -24
  443. package/src/themes/StatusBadge.css +135 -0
  444. package/src/themes/StepInput.css +5 -2
  445. package/src/themes/TabNavigation.css +7 -1
  446. package/src/themes/Tag.css +180 -148
  447. package/src/themes/TextField.css +75 -55
  448. package/dist/assets/bundle.esm-ab45813e.js +0 -312
  449. package/dist/assets/messagebundle_en-26cd7a92.js +0 -1
  450. package/dist/assets/parameters-bundle.css-76ef62fa.js +0 -2
  451. package/dist/css/themes/PasswordField.css +0 -1
  452. package/dist/generated/themes/PasswordField.css.js +0 -9
  453. package/dist/generated/themes/PasswordField.css.js.map +0 -1
  454. package/src/generated/themes/PasswordField.css.ts +0 -13
  455. package/src/themes/PasswordField.css +0 -29
  456. /package/dist/generated/themes/{PasswordField.css.d.ts → RatingBar.css.d.ts} +0 -0
@@ -6,15 +6,19 @@ import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
6
6
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
7
7
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
8
8
  import UDExTextField from "./TextField.js";
9
- import UDExControlButton from "./ControlButton.js";
10
9
  import ValueState from "./types/common.js";
11
10
 
12
11
  import PasswordFieldTemplate from "./generated/templates/PasswordFieldTemplate.lit.js";
13
12
 
14
- // Styles
15
-
16
- import PasswordFieldCss from "./generated/themes/PasswordField.css.js";
13
+ export enum InputType {
14
+ Password = "password",
15
+ Text = "text",
16
+ }
17
17
 
18
+ export enum IconType {
19
+ Hide = "hide",
20
+ Show = "show",
21
+ }
18
22
  /**
19
23
  * @class
20
24
  *
@@ -36,19 +40,19 @@ import PasswordFieldCss from "./generated/themes/PasswordField.css.js";
36
40
  @customElement({
37
41
  tag: "udex-password-field",
38
42
  renderer: litRender,
39
- styles: PasswordFieldCss,
40
43
  template: PasswordFieldTemplate,
41
- dependencies: [UDExTextField, UDExControlButton],
44
+ dependencies: [UDExTextField],
42
45
  })
46
+
43
47
  class UDExPasswordField extends UI5Element {
44
48
  /**
45
49
  * Defines supporting text under the input field.
46
50
  *
47
51
  * @default ""
48
- * @public
52
+ * @private
49
53
  */
50
- @property({ type: String, noAttribute: true, defaultValue: "password" })
51
- type!: string;
54
+ @property({ type: String, noAttribute: true, defaultValue: InputType.Password })
55
+ type!: InputType;
52
56
 
53
57
  /**
54
58
  * Defines whether the component is in disabled state.
@@ -109,8 +113,8 @@ class UDExPasswordField extends UI5Element {
109
113
  * @public
110
114
  */
111
115
 
112
- @property({ type: ValueState, defaultValue: "Standard" })
113
- valueState!: "Standard" | "Warning" | "Error" | "Success";
116
+ @property({ type: ValueState, defaultValue: ValueState.Standard })
117
+ valueState!: ValueState;
114
118
 
115
119
  /**
116
120
  * Defines supporting text under the input field.
@@ -139,8 +143,8 @@ class UDExPasswordField extends UI5Element {
139
143
  * @private
140
144
  */
141
145
 
142
- @property({ type: String, noAttribute: true, defaultValue: "show" })
143
- icon!: string;
146
+ @property({ type: String, noAttribute: true, defaultValue: IconType.Show })
147
+ icon!: IconType;
144
148
 
145
149
  /**
146
150
  * Defines the inner stored show password button tooltip.
@@ -149,7 +153,7 @@ class UDExPasswordField extends UI5Element {
149
153
  * @public
150
154
  */
151
155
 
152
- @property({ type: String, defaultValue: "" })
156
+ @property({ type: String })
153
157
  showButtonTooltip!: string;
154
158
 
155
159
  /**
@@ -176,7 +180,7 @@ class UDExPasswordField extends UI5Element {
176
180
  * @default ""
177
181
  * @public
178
182
  */
179
- @property()
183
+ @property({ type: String })
180
184
  accessibleName!: string;
181
185
 
182
186
  /**
@@ -184,7 +188,7 @@ class UDExPasswordField extends UI5Element {
184
188
  * @default ""
185
189
  * @public
186
190
  */
187
- @property({ defaultValue: "" })
191
+ @property({ type: String })
188
192
  accessibleNameRef!: string;
189
193
 
190
194
  static i18nBundle: I18nBundle;
@@ -193,20 +197,24 @@ class UDExPasswordField extends UI5Element {
193
197
  UDExPasswordField.i18nBundle = await getI18nBundle("sap-ui-webcomponents-bundle");
194
198
  }
195
199
 
196
- handleShowPassword() {
197
- const isPassword = this.type === "password";
200
+ handleShowPassword(): void {
201
+ const isPassword = this.type === InputType.Password;
198
202
 
199
- this.icon = isPassword ? "hide" : "show";
200
- this.type = isPassword ? "text" : "password";
203
+ this.icon = isPassword ? IconType.Hide : IconType.Show;
204
+ this.type = isPassword ? InputType.Text : InputType.Password;
201
205
  }
202
206
 
203
- get passwordLabel() {
204
- return `${this.label} ${this.showAsterisk && this.showAsterisk ? "*" : ""}`;
207
+ get passwordLabel(): string {
208
+ return `${this.label} ${this.showAsterisk ? "*" : ""}`;
205
209
  }
206
210
 
207
- get renderShowButton() {
211
+ get renderShowButton(): boolean {
208
212
  return !this.disabled && !this.readonly && !this.displayonly && this.showButtonEnabled;
209
213
  }
214
+
215
+ get iconButton(): IconType | null {
216
+ return this.renderShowButton ? this.icon : null;
217
+ }
210
218
  }
211
219
 
212
220
  UDExPasswordField.define();
@@ -6,8 +6,9 @@
6
6
  >
7
7
  {{#if label}}
8
8
  <label
9
+ id="udex-phone-number-field__label"
9
10
  class="udex-phone-number-field__label"
10
- for="phone"
11
+ for="{{this._id}}-phone"
11
12
  >
12
13
  {{label}}
13
14
  {{#if required}}
@@ -17,7 +18,7 @@
17
18
  {{/if}}
18
19
  <udex-dropdown
19
20
  class="udex-phone-number-field__dropdown"
20
- id="dropdown-menu"
21
+ id="{{this._id}}_dropdown-menu"
21
22
  horizontal-align="Left"
22
23
  height="{{height}}"
23
24
  >
@@ -54,7 +55,11 @@
54
55
  ?disabled="{{isButtonDisabled}}"
55
56
  aria-disabled="{{isButtonDisabled}}"
56
57
  aria-haspopup="true"
58
+ aria-label="{{countrySelectorAriaLabel}}"
57
59
  accessible-name="{{countrySelectorAriaLabel}}"
60
+ aria-expanded="{{_dropdownExpanded}}"
61
+ aria-controls="{{this._id}}_dropdown-menu"
62
+ role="combobox"
58
63
  @click="{{onClick}}"
59
64
  >
60
65
  <div class="udex-phone-number-field__open-button-text">
@@ -70,7 +75,7 @@
70
75
  {{/unless}}
71
76
  <input
72
77
  class="udex-phone-number-field__input"
73
- id="phone"
78
+ id="{{this._id}}-phone"
74
79
  type="tel"
75
80
  .value="{{value}}"
76
81
  placeholder="{{phoneFormat}}"
@@ -199,6 +199,14 @@ class UDExPhoneNumberField extends UI5Element {
199
199
  @property({ type: String, noAttribute: true, defaultValue: OpenButtonIcon.iconDown })
200
200
  buttonIcon!: string;
201
201
 
202
+ /**
203
+ * Defines the open button icon
204
+ *
205
+ * @private
206
+ */
207
+ @property({ type: Boolean, noAttribute: true })
208
+ _dropdownExpanded!: boolean;
209
+
202
210
  /**
203
211
  * Defines the phone format of the input
204
212
  *
@@ -260,14 +268,14 @@ class UDExPhoneNumberField extends UI5Element {
260
268
 
261
269
  static i18nBundle: I18nBundle;
262
270
  _dropdown!: UDExDropdown;
263
- _handleResizeBound: ResizeObserverCallback
271
+ _handleResizeBound: ResizeObserverCallback;
264
272
 
265
273
  static async onDefine() {
266
274
  UDExPhoneNumberField.i18nBundle = await getI18nBundle("sap-ui-webcomponents-bundle");
267
275
  }
268
276
 
269
277
  get countrySelectorAriaLabel() {
270
- return this.accessibleName || UDExPhoneNumberField.i18nBundle.getText(COUNTRY_SELECT);
278
+ return this.accessibleName || `${this.label} ${UDExPhoneNumberField.i18nBundle.getText(COUNTRY_SELECT)}`;
271
279
  }
272
280
 
273
281
  get countryIso() {
@@ -391,9 +399,11 @@ class UDExPhoneNumberField extends UI5Element {
391
399
 
392
400
  handleDropdownOpen() {
393
401
  this.buttonIcon = OpenButtonIcon.iconUp;
402
+ this._dropdownExpanded = true;
394
403
  }
395
404
  handleDropdownClose() {
396
405
  this.buttonIcon = OpenButtonIcon.iconDown;
406
+ this._dropdownExpanded = false;
397
407
  }
398
408
 
399
409
  autoSelectCountry(value: string) {
@@ -0,0 +1,11 @@
1
+ <div class="udex-rating-bar__container">
2
+ <div aria-hidden="true" class="udex-rating-bar__rating">{{validatedRating}}</div>
3
+ <ui5-icon role="img" aria-labelledby="ratingDescription" name="favorite" class="udex-rating__icon"></ui5-icon>
4
+ <div class="udex-rating-bar__track">
5
+ <div class="udex-rating-bar__progress"></div>
6
+ </div>
7
+ {{#if showPercentage}}
8
+ <div role="note" class="udex-rating-bar__percentage">{{validatedPercentage}}</div>
9
+ {{/if}}
10
+ <span id="ratingDescription" class="hidden-text">{{_ratingDescription}}</span>
11
+ </div>
@@ -0,0 +1,113 @@
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 litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
5
+ import I18nBundle, { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
6
+ import Icon from "@ui5/webcomponents/dist/Icon.js";
7
+ import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
8
+ import { STARS } from "./generated/i18n/i18n-defaults.js";
9
+ import RatingBarTemplate from "./generated/templates/RatingBarTemplate.lit.js";
10
+
11
+ // Styles
12
+ import RatingBarCss from "./generated/themes/RatingBar.css.js";
13
+
14
+ /**
15
+ * @class
16
+ *
17
+ * <h3 class="comment-api-title">Overview</h3>
18
+ *
19
+ *
20
+ * <h3>Usage</h3>
21
+ *
22
+ * For the <code>udex-rating-bar</code>
23
+ * <h3>ES6 Module Import</h3>
24
+ *
25
+ * <code>import "@udex/web-components/dist/RatingBar.js";</code>
26
+ *
27
+ * @constructor
28
+ * @extends UI5Element
29
+ * @public
30
+ */
31
+ @customElement({
32
+ tag: "udex-rating-bar",
33
+ renderer: litRender,
34
+ styles: RatingBarCss,
35
+ template: RatingBarTemplate,
36
+ dependencies: [Icon],
37
+ })
38
+
39
+ class UDExRatingBar extends UI5Element {
40
+ /**
41
+ * Defines the associated rating.
42
+ *
43
+ * @default 0
44
+ * @public
45
+ */
46
+ @property({ type: Number, defaultValue: 0, validator: Integer })
47
+ rating!: number;
48
+
49
+ /**
50
+ * Defines the percentage.
51
+ *
52
+ * @default 0
53
+ * @public
54
+ */
55
+ @property({ type: Number, defaultValue: 0, validator: Integer })
56
+ percentage!: number;
57
+
58
+ /**
59
+ * Defines wether the percentage is shown or not.
60
+ *
61
+ * @default false
62
+ * @public
63
+ */
64
+ @property({ type: Boolean })
65
+ showPercentage!: boolean;
66
+
67
+ static i18nBundle: I18nBundle;
68
+
69
+ _minRating: number = 0;
70
+ _maxRating: number = 5;
71
+ _minPercentage: number = 0;
72
+ _maxPercentage: number = 100;
73
+
74
+ static async onDefine() {
75
+ UDExRatingBar.i18nBundle = await getI18nBundle("@ui5/webcomponents");
76
+ }
77
+
78
+ onBeforeRendering(): void {
79
+ this.style.setProperty("--udex-rating-bar-progress", `${this.percentage}%`);
80
+ }
81
+
82
+ get validatedRating(): number {
83
+ if (this.rating > this._maxRating) {
84
+ console.warn("UDEx RatingBar: The rating shouldn't be more than 5.");
85
+ return this._maxRating;
86
+ }
87
+ if (this.rating < this._minRating) {
88
+ console.warn("UDEx RatingBar: The rating shouldn't be less than 0.");
89
+ return this._minRating;
90
+ }
91
+ return this.rating;
92
+ }
93
+
94
+ get validatedPercentage(): string {
95
+ if (this.percentage > this._maxPercentage) {
96
+ console.warn("UDEx RatingBar: The percentage shouldn't be more than 100.");
97
+ return `${this._maxPercentage}%`;
98
+ }
99
+ if (this.percentage < this._minPercentage) {
100
+ console.warn("UDEx RatingBar: The percentage shouldn't be less than 0.");
101
+ return `${this._minPercentage}%`;
102
+ }
103
+ return `${this.percentage}%`;
104
+ }
105
+
106
+ get _ratingDescription(): string {
107
+ return `${this.validatedRating} ${UDExRatingBar.i18nBundle.getText(STARS)}`;
108
+ }
109
+ }
110
+
111
+ UDExRatingBar.define();
112
+
113
+ export default UDExRatingBar;
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,9 @@
29
31
  name="search"
30
32
  class="udex-search__field"
31
33
  autocomplete="off"
32
- role="combobox"
33
- aria-controls="suggestions-popover"
34
- aria-expanded="false"
35
- aria-haspopup="{{showSuggestedPopover}}"
34
+ aria-autocomplete="list"
35
+ aria-haspopup="{{getAriaHasPopup}}"
36
+ aria-label="Search"
36
37
  placeholder="{{label}}"
37
38
  .value="{{value}}"
38
39
  @input="{{handleSearchChange}}"
@@ -54,11 +55,9 @@
54
55
  name="search"
55
56
  class="udex-search__field"
56
57
  autocomplete="off"
57
- role="combobox"
58
+ aria-autocomplete="list"
58
59
  aria-label="{{accInfo.ariaLabel}}"
59
- aria-controls="suggestions-popover"
60
- aria-expanded="false"
61
- aria-haspopup="{{showSuggestedPopover}}"
60
+ aria-haspopup="{{getAriaHasPopup}}"
62
61
  .value="{{value}}"
63
62
  @input="{{handleSearchChange}}"
64
63
  @keydown="{{handleKeyDown}}"
@@ -74,11 +73,17 @@
74
73
  id="reset-button"
75
74
  class="udex-search__button udex-search__reset-button"
76
75
  design="Default"
77
- icon="decline"
78
- tooltip="Reset Button"
76
+ tooltip="{{tooltipInfo.tooltipResetButton}}"
79
77
  @click="{{onReset}}"
80
78
  @keydown="{{handleKeyDownReset}}"
81
- ></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>
82
87
  {{/if}}
83
88
  {{#if isVoiceButton}}
84
89
  <ui5-button
@@ -86,7 +91,7 @@
86
91
  class="udex-search__button udex-search__voice-button {{voiceActiveClass}}"
87
92
  design="Default"
88
93
  icon="microphone"
89
- tooltip="Voice Button"
94
+ tooltip="{{tooltipInfo.tooltipVoiceButton}}"
90
95
  @click="{{onVoice}}"
91
96
  ></ui5-button>
92
97
  {{/if}}
@@ -94,6 +99,7 @@
94
99
  {{#if nonInteractiveSubmitButton}}
95
100
  <ui5-icon
96
101
  class="udex-search__icon"
102
+ accessible-name="{{accInfo.accessibleNameSearchIcon}}"
97
103
  name="search">
98
104
  </ui5-icon>
99
105
  {{else}}
@@ -102,7 +108,7 @@
102
108
  class="udex-search__button udex-search__submit-button {{searchButtonActiveClass}}"
103
109
  design="Default"
104
110
  icon="search"
105
- tooltip="Submit Button"
111
+ tooltip="{{tooltipInfo.tooltipSubmitButton}}"
106
112
  @click="{{onSubmit}}"
107
113
  ></ui5-button>
108
114
  {{/if}}