@sapudex/web-components 0.117.1 → 0.127.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/bundle.esm.js +3 -0
  2. package/config/wdio.conf.js +19 -8
  3. package/dist/AccordionItem.d.ts +2 -1
  4. package/dist/AccordionItem.js +3 -3
  5. package/dist/AccordionItem.js.map +1 -1
  6. package/dist/Avatar.d.ts +12 -0
  7. package/dist/Avatar.js +22 -1
  8. package/dist/Avatar.js.map +1 -1
  9. package/dist/AvatarGroup.d.ts +28 -0
  10. package/dist/AvatarGroup.js +126 -0
  11. package/dist/AvatarGroup.js.map +1 -0
  12. package/dist/Dropdown.d.ts +11 -1
  13. package/dist/Dropdown.js +15 -3
  14. package/dist/Dropdown.js.map +1 -1
  15. package/dist/FilterMenu.d.ts +7 -1
  16. package/dist/FilterMenu.js +4 -1
  17. package/dist/FilterMenu.js.map +1 -1
  18. package/dist/Footer.d.ts +27 -0
  19. package/dist/Footer.js +27 -36
  20. package/dist/Footer.js.map +1 -1
  21. package/dist/HeroBanner.js +3 -0
  22. package/dist/HeroBanner.js.map +1 -1
  23. package/dist/MastheadItem.d.ts +1 -0
  24. package/dist/MastheadItem.js +5 -11
  25. package/dist/MastheadItem.js.map +1 -1
  26. package/dist/MastheadShell.d.ts +8 -0
  27. package/dist/MastheadShell.js +10 -0
  28. package/dist/MastheadShell.js.map +1 -1
  29. package/dist/MessageStrip.js +1 -1
  30. package/dist/MessageStrip.js.map +1 -1
  31. package/dist/Pagination.d.ts +3 -0
  32. package/dist/Pagination.js +16 -4
  33. package/dist/Pagination.js.map +1 -1
  34. package/dist/PasswordField.d.ts +14 -4
  35. package/dist/PasswordField.js +24 -15
  36. package/dist/PasswordField.js.map +1 -1
  37. package/dist/PhoneNumberField.d.ts +6 -0
  38. package/dist/PhoneNumberField.js +6 -1
  39. package/dist/PhoneNumberField.js.map +1 -1
  40. package/dist/RatingBar.d.ts +53 -0
  41. package/dist/RatingBar.js +96 -0
  42. package/dist/RatingBar.js.map +1 -0
  43. package/dist/Review.d.ts +71 -0
  44. package/dist/Review.js +108 -0
  45. package/dist/Review.js.map +1 -0
  46. package/dist/Search.d.ts +49 -1
  47. package/dist/Search.js +32 -3
  48. package/dist/Search.js.map +1 -1
  49. package/dist/SearchableListBase.d.ts +1 -1
  50. package/dist/SearchableListBase.js +1 -1
  51. package/dist/SearchableListBase.js.map +1 -1
  52. package/dist/SecondaryNavigation.d.ts +8 -8
  53. package/dist/SecondaryNavigation.js +51 -39
  54. package/dist/SecondaryNavigation.js.map +1 -1
  55. package/dist/SecondaryNavigationItem.d.ts +1 -1
  56. package/dist/SecondaryNavigationItem.js +15 -5
  57. package/dist/SecondaryNavigationItem.js.map +1 -1
  58. package/dist/SecondaryNavigationItemBase.d.ts +16 -2
  59. package/dist/SecondaryNavigationItemBase.js +27 -1
  60. package/dist/SecondaryNavigationItemBase.js.map +1 -1
  61. package/dist/SecondaryNavigationSubItem.d.ts +2 -1
  62. package/dist/SecondaryNavigationSubItem.js +5 -2
  63. package/dist/SecondaryNavigationSubItem.js.map +1 -1
  64. package/dist/SelectBox.js +2 -0
  65. package/dist/SelectBox.js.map +1 -1
  66. package/dist/StatusBadge.d.ts +5 -5
  67. package/dist/StatusBadge.js.map +1 -1
  68. package/dist/Switch.d.ts +1 -0
  69. package/dist/Switch.js +3 -0
  70. package/dist/Switch.js.map +1 -1
  71. package/dist/Tab.d.ts +8 -0
  72. package/dist/Tab.js +3 -0
  73. package/dist/Tab.js.map +1 -1
  74. package/dist/TabNavigation.d.ts +20 -20
  75. package/dist/TabNavigation.js +82 -101
  76. package/dist/TabNavigation.js.map +1 -1
  77. package/dist/Tag.d.ts +13 -6
  78. package/dist/Tag.js +34 -20
  79. package/dist/Tag.js.map +1 -1
  80. package/dist/TextArea.d.ts +1 -1
  81. package/dist/TextArea.js +3 -0
  82. package/dist/TextArea.js.map +1 -1
  83. package/dist/TextField.d.ts +9 -0
  84. package/dist/TextField.js +16 -0
  85. package/dist/TextField.js.map +1 -1
  86. package/dist/Tooltip.d.ts +2 -2
  87. package/dist/Tooltip.js +3 -3
  88. package/dist/Tooltip.js.map +1 -1
  89. package/dist/assets/bundle.esm-7d53f4f2.js +314 -0
  90. package/dist/assets/messagebundle_en-6dcc9ab4.js +1 -0
  91. package/dist/assets/parameters-bundle.css-de55cf62.js +2 -0
  92. package/dist/css/themes/AccordionItem.css +1 -1
  93. package/dist/css/themes/Avatar.css +1 -1
  94. package/dist/css/themes/Badge.css +1 -1
  95. package/dist/css/themes/Divider.css +1 -1
  96. package/dist/css/themes/Footer.css +1 -1
  97. package/dist/css/themes/HeroBanner.css +1 -1
  98. package/dist/css/themes/MastheadShell.css +1 -1
  99. package/dist/css/themes/Modal.css +1 -1
  100. package/dist/css/themes/Pagination.css +1 -1
  101. package/dist/css/themes/PhoneNumberField.css +1 -1
  102. package/dist/css/themes/RatingBar.css +1 -0
  103. package/dist/css/themes/RatingIndicator.css +1 -1
  104. package/dist/css/themes/Review.css +1 -0
  105. package/dist/css/themes/Search.css +1 -1
  106. package/dist/css/themes/SecondaryNavigation.css +1 -1
  107. package/dist/css/themes/SecondaryNavigationItem.css +1 -1
  108. package/dist/css/themes/SelectBox.css +1 -1
  109. package/dist/css/themes/Slider.css +1 -1
  110. package/dist/css/themes/StepInput.css +1 -1
  111. package/dist/css/themes/TabNavigation.css +1 -1
  112. package/dist/css/themes/Tag.css +1 -1
  113. package/dist/css/themes/TextField.css +1 -1
  114. package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +1 -1
  115. package/dist/custom-elements-internal.json +670 -100
  116. package/dist/custom-elements.json +594 -67
  117. package/dist/data/CountryListISO3166.js +162 -162
  118. package/dist/data/CountryListISO3166.js.map +1 -1
  119. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  120. package/dist/generated/assets/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.json +1 -1
  121. package/dist/generated/i18n/i18n-defaults.d.ts +9 -1
  122. package/dist/generated/i18n/i18n-defaults.js +13 -5
  123. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  124. package/dist/generated/templates/AccordionItemTemplate.lit.js +1 -1
  125. package/dist/generated/templates/AccordionItemTemplate.lit.js.map +1 -1
  126. package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
  127. package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
  128. package/dist/generated/templates/DropdownTemplate.lit.js +2 -2
  129. package/dist/generated/templates/DropdownTemplate.lit.js.map +1 -1
  130. package/dist/generated/templates/FilterMenuTemplate.lit.js +1 -1
  131. package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
  132. package/dist/generated/templates/FooterTemplate.lit.js +26 -28
  133. package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
  134. package/dist/generated/templates/HeroBannerTemplate.lit.js +9 -8
  135. package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
  136. package/dist/generated/templates/MastheadItemTemplate.lit.js +3 -3
  137. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
  138. package/dist/generated/templates/MastheadShellTemplate.lit.js +2 -2
  139. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  140. package/dist/generated/templates/PaginationTemplate.lit.js +1 -1
  141. package/dist/generated/templates/PaginationTemplate.lit.js.map +1 -1
  142. package/dist/generated/templates/PasswordFieldTemplate.lit.js +1 -2
  143. package/dist/generated/templates/PasswordFieldTemplate.lit.js.map +1 -1
  144. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +3 -3
  145. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
  146. package/dist/generated/templates/RatingBarTemplate.lit.d.ts +4 -0
  147. package/dist/generated/templates/RatingBarTemplate.lit.js +6 -0
  148. package/dist/generated/templates/RatingBarTemplate.lit.js.map +1 -0
  149. package/dist/generated/templates/ReviewTemplate.lit.d.ts +4 -0
  150. package/dist/generated/templates/ReviewTemplate.lit.js +10 -0
  151. package/dist/generated/templates/ReviewTemplate.lit.js.map +1 -0
  152. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +1 -1
  153. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +1 -1
  154. package/dist/generated/templates/SearchTemplate.lit.js +7 -7
  155. package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
  156. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +3 -3
  157. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -1
  158. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +5 -4
  159. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +1 -1
  160. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +3 -3
  161. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  162. package/dist/generated/templates/SelectBoxTemplate.lit.js +2 -2
  163. package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
  164. package/dist/generated/templates/SwitchTemplate.lit.js +2 -2
  165. package/dist/generated/templates/SwitchTemplate.lit.js.map +1 -1
  166. package/dist/generated/templates/TabInOverflowTemplate.lit.js +2 -2
  167. package/dist/generated/templates/TabInOverflowTemplate.lit.js.map +1 -1
  168. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js +1 -1
  169. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js.map +1 -1
  170. package/dist/generated/templates/TabNavigationTemplate.lit.js +2 -2
  171. package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
  172. package/dist/generated/templates/TagTemplate.lit.js +9 -3
  173. package/dist/generated/templates/TagTemplate.lit.js.map +1 -1
  174. package/dist/generated/templates/TextAreaTemplate.lit.js +1 -1
  175. package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
  176. package/dist/generated/templates/TextFieldTemplate.lit.js +2 -2
  177. package/dist/generated/templates/TextFieldTemplate.lit.js.map +1 -1
  178. package/dist/generated/templates/TooltipTemplate.lit.js +1 -1
  179. package/dist/generated/templates/TooltipTemplate.lit.js.map +1 -1
  180. package/dist/generated/themes/AccordionItem.css.js +1 -1
  181. package/dist/generated/themes/AccordionItem.css.js.map +1 -1
  182. package/dist/generated/themes/Avatar.css.js +1 -1
  183. package/dist/generated/themes/Avatar.css.js.map +1 -1
  184. package/dist/generated/themes/Badge.css.js +1 -1
  185. package/dist/generated/themes/Badge.css.js.map +1 -1
  186. package/dist/generated/themes/Divider.css.js +1 -1
  187. package/dist/generated/themes/Divider.css.js.map +1 -1
  188. package/dist/generated/themes/Footer.css.js +1 -1
  189. package/dist/generated/themes/Footer.css.js.map +1 -1
  190. package/dist/generated/themes/HeroBanner.css.js +1 -1
  191. package/dist/generated/themes/HeroBanner.css.js.map +1 -1
  192. package/dist/generated/themes/MastheadShell.css.js +1 -1
  193. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  194. package/dist/generated/themes/Modal.css.js +1 -1
  195. package/dist/generated/themes/Modal.css.js.map +1 -1
  196. package/dist/generated/themes/Pagination.css.js +1 -1
  197. package/dist/generated/themes/Pagination.css.js.map +1 -1
  198. package/dist/generated/themes/PhoneNumberField.css.js +1 -1
  199. package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
  200. package/dist/generated/themes/RatingBar.css.js +9 -0
  201. package/dist/generated/themes/RatingBar.css.js.map +1 -0
  202. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  203. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  204. package/dist/generated/themes/Review.css.d.ts +3 -0
  205. package/dist/generated/themes/Review.css.js +9 -0
  206. package/dist/generated/themes/Review.css.js.map +1 -0
  207. package/dist/generated/themes/Search.css.js +1 -1
  208. package/dist/generated/themes/Search.css.js.map +1 -1
  209. package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
  210. package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
  211. package/dist/generated/themes/SecondaryNavigationItem.css.js +1 -1
  212. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
  213. package/dist/generated/themes/SelectBox.css.js +1 -1
  214. package/dist/generated/themes/SelectBox.css.js.map +1 -1
  215. package/dist/generated/themes/Slider.css.js +1 -1
  216. package/dist/generated/themes/Slider.css.js.map +1 -1
  217. package/dist/generated/themes/StepInput.css.js +1 -1
  218. package/dist/generated/themes/StepInput.css.js.map +1 -1
  219. package/dist/generated/themes/TabNavigation.css.js +1 -1
  220. package/dist/generated/themes/TabNavigation.css.js.map +1 -1
  221. package/dist/generated/themes/Tag.css.js +1 -1
  222. package/dist/generated/themes/Tag.css.js.map +1 -1
  223. package/dist/generated/themes/TextField.css.js +1 -1
  224. package/dist/generated/themes/TextField.css.js.map +1 -1
  225. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js +1 -1
  226. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js.map +1 -1
  227. package/dist/i18n/messagebundle.properties +28 -4
  228. package/dist/i18n/messagebundle_en.properties +12 -4
  229. package/dist/vscode.html-custom-data.json +112 -17
  230. package/dist/web-types.json +215 -33
  231. package/package.json +8 -8
  232. package/src/AccordionItem.hbs +1 -4
  233. package/src/AccordionItem.ts +5 -4
  234. package/src/Avatar.ts +24 -1
  235. package/src/AvatarGroup.ts +135 -0
  236. package/src/DatePicker.hbs +0 -1
  237. package/src/Dropdown.hbs +5 -2
  238. package/src/Dropdown.ts +24 -3
  239. package/src/FilterMenu.hbs +3 -0
  240. package/src/FilterMenu.ts +10 -2
  241. package/src/Footer.hbs +12 -37
  242. package/src/Footer.ts +64 -51
  243. package/src/HeroBanner.hbs +18 -14
  244. package/src/HeroBanner.ts +3 -0
  245. package/src/MastheadItem.hbs +3 -3
  246. package/src/MastheadItem.ts +10 -4
  247. package/src/MastheadShell.hbs +4 -0
  248. package/src/MastheadShell.ts +18 -0
  249. package/src/MessageStrip.ts +1 -1
  250. package/src/Pagination.hbs +4 -2
  251. package/src/Pagination.ts +19 -4
  252. package/src/PasswordField.hbs +6 -17
  253. package/src/PasswordField.ts +31 -23
  254. package/src/PhoneNumberField.hbs +8 -3
  255. package/src/PhoneNumberField.ts +11 -1
  256. package/src/RatingBar.hbs +11 -0
  257. package/src/RatingBar.ts +113 -0
  258. package/src/Review.hbs +44 -0
  259. package/src/Review.ts +140 -0
  260. package/src/Search.hbs +19 -14
  261. package/src/Search.ts +72 -2
  262. package/src/SearchSuggestions.hbs +1 -0
  263. package/src/SearchableListBase.ts +1 -1
  264. package/src/SecondaryNavigation.hbs +5 -1
  265. package/src/SecondaryNavigation.ts +67 -49
  266. package/src/SecondaryNavigationItem.hbs +3 -2
  267. package/src/SecondaryNavigationItem.ts +15 -5
  268. package/src/SecondaryNavigationItemBase.ts +41 -3
  269. package/src/SecondaryNavigationSubItem.hbs +13 -10
  270. package/src/SecondaryNavigationSubItem.ts +6 -2
  271. package/src/SelectBox.hbs +75 -76
  272. package/src/SelectBox.ts +2 -0
  273. package/src/StatusBadge.ts +2 -2
  274. package/src/Switch.hbs +3 -3
  275. package/src/Switch.ts +4 -0
  276. package/src/Tab.ts +10 -0
  277. package/src/TabInOverflow.hbs +3 -2
  278. package/src/TabNavigation.hbs +12 -10
  279. package/src/TabNavigation.ts +92 -116
  280. package/src/TabNavigationPopover.hbs +1 -0
  281. package/src/Tag.hbs +60 -26
  282. package/src/Tag.ts +54 -34
  283. package/src/TextArea.hbs +3 -4
  284. package/src/TextArea.ts +3 -0
  285. package/src/TextField.hbs +40 -36
  286. package/src/TextField.ts +24 -0
  287. package/src/Tooltip.hbs +2 -2
  288. package/src/Tooltip.ts +4 -4
  289. package/src/data/CountryListISO3166.ts +162 -162
  290. package/src/generated/i18n/i18n-defaults.ts +2 -2
  291. package/src/generated/templates/AccordionItemTemplate.lit.ts +1 -1
  292. package/src/generated/templates/DatePickerTemplate.lit.ts +1 -1
  293. package/src/generated/templates/DropdownTemplate.lit.ts +2 -2
  294. package/src/generated/templates/FilterMenuTemplate.lit.ts +1 -1
  295. package/src/generated/templates/FooterTemplate.lit.ts +26 -28
  296. package/src/generated/templates/HeroBannerTemplate.lit.ts +9 -8
  297. package/src/generated/templates/MastheadItemTemplate.lit.ts +3 -3
  298. package/src/generated/templates/MastheadShellTemplate.lit.ts +2 -2
  299. package/src/generated/templates/PaginationTemplate.lit.ts +1 -1
  300. package/src/generated/templates/PasswordFieldTemplate.lit.ts +1 -2
  301. package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +3 -3
  302. package/src/generated/templates/RatingBarTemplate.lit.ts +11 -0
  303. package/src/generated/templates/ReviewTemplate.lit.ts +15 -0
  304. package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +1 -1
  305. package/src/generated/templates/SearchTemplate.lit.ts +7 -7
  306. package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +3 -3
  307. package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +5 -4
  308. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +3 -3
  309. package/src/generated/templates/SelectBoxTemplate.lit.ts +2 -2
  310. package/src/generated/templates/SwitchTemplate.lit.ts +2 -2
  311. package/src/generated/templates/TabInOverflowTemplate.lit.ts +2 -2
  312. package/src/generated/templates/TabNavigationPopoverTemplate.lit.ts +1 -1
  313. package/src/generated/templates/TabNavigationTemplate.lit.ts +2 -2
  314. package/src/generated/templates/TagTemplate.lit.ts +9 -3
  315. package/src/generated/templates/TextAreaTemplate.lit.ts +1 -1
  316. package/src/generated/templates/TextFieldTemplate.lit.ts +2 -2
  317. package/src/generated/templates/TooltipTemplate.lit.ts +1 -1
  318. package/src/generated/themes/AccordionItem.css.ts +1 -1
  319. package/src/generated/themes/Avatar.css.ts +1 -1
  320. package/src/generated/themes/Badge.css.ts +1 -1
  321. package/src/generated/themes/Divider.css.ts +1 -1
  322. package/src/generated/themes/Footer.css.ts +1 -1
  323. package/src/generated/themes/HeroBanner.css.ts +1 -1
  324. package/src/generated/themes/MastheadShell.css.ts +1 -1
  325. package/src/generated/themes/Modal.css.ts +1 -1
  326. package/src/generated/themes/Pagination.css.ts +1 -1
  327. package/src/generated/themes/PhoneNumberField.css.ts +1 -1
  328. package/src/generated/themes/RatingBar.css.ts +13 -0
  329. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  330. package/src/generated/themes/Review.css.ts +13 -0
  331. package/src/generated/themes/Search.css.ts +1 -1
  332. package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
  333. package/src/generated/themes/SecondaryNavigationItem.css.ts +1 -1
  334. package/src/generated/themes/SelectBox.css.ts +1 -1
  335. package/src/generated/themes/Slider.css.ts +1 -1
  336. package/src/generated/themes/StepInput.css.ts +1 -1
  337. package/src/generated/themes/TabNavigation.css.ts +1 -1
  338. package/src/generated/themes/Tag.css.ts +1 -1
  339. package/src/generated/themes/TextField.css.ts +1 -1
  340. package/src/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +1 -1
  341. package/src/i18n/messagebundle.properties +28 -4
  342. package/src/i18n/messagebundle_en.properties +12 -4
  343. package/src/themes/AccordionItem.css +6 -4
  344. package/src/themes/Avatar.css +24 -7
  345. package/src/themes/Badge.css +1 -1
  346. package/src/themes/Divider.css +6 -2
  347. package/src/themes/Footer.css +93 -168
  348. package/src/themes/HeroBanner.css +52 -24
  349. package/src/themes/MastheadShell.css +25 -29
  350. package/src/themes/Modal.css +6 -0
  351. package/src/themes/Pagination.css +7 -0
  352. package/src/themes/PhoneNumberField.css +1 -0
  353. package/src/themes/RatingBar.css +52 -0
  354. package/src/themes/Review.css +196 -0
  355. package/src/themes/Search.css +37 -25
  356. package/src/themes/SecondaryNavigation.css +33 -4
  357. package/src/themes/SecondaryNavigationItem.css +3 -2
  358. package/src/themes/SelectBox.css +17 -24
  359. package/src/themes/StepInput.css +5 -2
  360. package/src/themes/TabNavigation.css +7 -1
  361. package/src/themes/Tag.css +180 -148
  362. package/src/themes/TextField.css +75 -55
  363. package/dist/assets/bundle.esm-f65ae7da.js +0 -315
  364. package/dist/assets/messagebundle_en-7249941b.js +0 -1
  365. package/dist/assets/parameters-bundle.css-76ef62fa.js +0 -2
  366. package/dist/css/themes/PasswordField.css +0 -1
  367. package/dist/generated/themes/PasswordField.css.js +0 -9
  368. package/dist/generated/themes/PasswordField.css.js.map +0 -1
  369. package/src/generated/themes/PasswordField.css.ts +0 -13
  370. package/src/themes/PasswordField.css +0 -29
  371. /package/dist/generated/themes/{PasswordField.css.d.ts → RatingBar.css.d.ts} +0 -0
@@ -8,6 +8,7 @@ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
8
8
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
9
9
  import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
10
10
  import ResponsivePopover from "@ui5/webcomponents/dist/ResponsivePopover.js";
11
+ import executeTemplate from "@ui5/webcomponents-base/dist/renderer/executeTemplate.js";
11
12
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
12
13
  import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
13
14
  import {
@@ -18,10 +19,10 @@ import {
18
19
  isEnter,
19
20
  isSpace,
20
21
  isEscape,
21
- isTabNext,
22
- isTabPrevious,
23
22
  isHome,
24
23
  isEnd,
24
+ isTabNext,
25
+ isTabPrevious,
25
26
  } from "@ui5/webcomponents-base/dist/Keys.js";
26
27
  import Tab, { ITab } from "./Tab.js";
27
28
  import "@ui5/webcomponents/dist/Icon.js";
@@ -30,10 +31,11 @@ import { MORE } from "./generated/i18n/i18n-defaults.js";
30
31
 
31
32
  // Templates
32
33
  import TabNavigationTemplate from "./generated/templates/TabNavigationTemplate.lit.js";
33
- import TabNavigationPopover from "./generated/templates/TabNavigationPopoverTemplate.lit.js";
34
+ import TabNavigationPopoverTemplate from "./generated/templates/TabNavigationPopoverTemplate.lit.js";
34
35
 
35
36
  // Styles
36
37
  import TabNavigationCss from "./generated/themes/TabNavigation.css.js";
38
+ import TabInOverflowCss from "./generated/themes/TabInOverflow.css.js";
37
39
 
38
40
  const staticAreaTabStyles: Array<StyleData> = [];
39
41
 
@@ -68,10 +70,8 @@ export enum Mode {
68
70
  @customElement({
69
71
  tag: "udex-tab-navigation",
70
72
  renderer: litRender,
71
- styles: TabNavigationCss,
73
+ styles: [TabNavigationCss, TabInOverflowCss],
72
74
  template: TabNavigationTemplate,
73
- staticAreaTemplate: TabNavigationPopover,
74
- staticAreaStyles: [staticAreaTabStyles],
75
75
  dependencies: [ResponsivePopover],
76
76
  })
77
77
  /**
@@ -193,6 +193,7 @@ class UDExTabNavigation extends UI5Element {
193
193
  }
194
194
 
195
195
  onBeforeRendering(): void {
196
+ this.updateOverflowItems();
196
197
  this.setSelectedTab();
197
198
  }
198
199
 
@@ -220,18 +221,37 @@ class UDExTabNavigation extends UI5Element {
220
221
  }
221
222
 
222
223
  setRealTabToItems() {
223
- const contentId = this.__id!;
224
-
225
224
  this.items.forEach((tab, index, arr) => {
226
225
  tab._iconWithoutBackground = this.iconWithoutBackground;
227
226
  tab._posinset = index + 1;
228
227
  tab._setsize = arr.length;
229
- tab._contentId = `udex-${contentId}-content`;
228
+ tab._contentId = this.getContentId(index);
230
229
  tab._realTab = this._selectedTab;
231
230
  tab._width = this.tabWidth;
231
+ tab._contentTabIndex = this.getContentTabIndex(tab);
232
232
  });
233
233
  }
234
234
 
235
+ getContentId(index: number): string {
236
+ return `udex-${index + 1}-content`;
237
+ }
238
+
239
+ getContentTabIndex(tab: ITab): string {
240
+ if (tab.selected) {
241
+ const focusableSelectors = ["a[href]", "button", "textarea", "input", "select", "details", "[tabindex]:not([tabindex='-1']"];
242
+ const focusableElementsUDExTag = this.getAllCustomTags(tab, "udex");
243
+ const focusableElementsCustomTag = this.getAllCustomTags(tab, "ui5").concat(focusableElementsUDExTag);
244
+ const focusableElements = Array.from(tab.querySelectorAll(focusableSelectors.join(","))).concat(focusableElementsCustomTag);
245
+ return focusableElements.length ? "-1" : "0";
246
+ }
247
+ return "-1";
248
+ }
249
+
250
+ getAllCustomTags(tab: ITab, prefix: string) {
251
+ const allElements = tab.querySelectorAll("*");
252
+ return Array.from(allElements).filter(element => element.tagName.toLowerCase().startsWith(prefix.toLowerCase()));
253
+ }
254
+
235
255
  setElementInHeader() {
236
256
  this.items.forEach(item => {
237
257
  item.getElementInHeader = () => this.getDomRef()!.querySelector(`[id="${item.__id!}"]`);
@@ -549,8 +569,8 @@ class UDExTabNavigation extends UI5Element {
549
569
  return this.shadowRoot!.querySelector<HTMLElement>(`#${this.__id!}-header`)!;
550
570
  }
551
571
 
552
- async handleMoreButton() {
553
- this._responsivePopover = await this.getResponsePopover();
572
+ handleMoreButton() {
573
+ this._responsivePopover = this.getResponsePopover();
554
574
  this.updateOverflowItems();
555
575
  this.handleTogglePopover();
556
576
  }
@@ -578,9 +598,9 @@ class UDExTabNavigation extends UI5Element {
578
598
  }
579
599
  }
580
600
 
581
- async handleOpenPopover() {
601
+ handleOpenPopover() {
582
602
  if (!this._responsivePopover?.opened) {
583
- await this._responsivePopover!.showAt(this.getMoreButton());
603
+ this._responsivePopover!.showAt(this.getMoreButton());
584
604
  this.getMoreButton().classList.add("udex-tab-navigation__button-more--toggled");
585
605
  this._isExpanded = true;
586
606
  }
@@ -589,8 +609,6 @@ class UDExTabNavigation extends UI5Element {
589
609
  handleKeyDown(e: KeyboardEvent) {
590
610
  this.handleRightArrow(e);
591
611
  this.handleLeftArrow(e);
592
- this.handleTabNext(e);
593
- this.handleTabPrevious(e);
594
612
  this.handleHomeKey(e);
595
613
  this.handleEndKey(e);
596
614
  }
@@ -632,47 +650,16 @@ class UDExTabNavigation extends UI5Element {
632
650
  this._visibleTabs![previousSelectIndex].focus();
633
651
  }
634
652
 
635
- handleTabNext(e: KeyboardEvent) {
636
- if (isTabNext(e)) {
637
- const previousSelectedIndex = this.getTabIndexById((e.target as HTMLElement).id);
638
- this.onTabNext(e, previousSelectedIndex);
639
- }
640
- }
641
-
642
- onTabNext(e: KeyboardEvent, previousSelectedIndex: number) {
643
- const isMoreButton = this._visibleTabs![this._visibleTabs!.length - 1] === this.getMoreButton();
644
- const nextSelectIndex = previousSelectedIndex + 1;
645
-
646
- if (nextSelectIndex < this._visibleTabs!.length || (isMoreButton && nextSelectIndex < this._visibleTabs!.length)) {
647
- e.preventDefault();
648
- this._visibleTabs![nextSelectIndex].focus();
649
- }
650
- }
651
-
652
- handleTabPrevious(e: KeyboardEvent) {
653
- if (isTabPrevious(e)) {
654
- const previousSelectedIndex = this.getTabIndexById((e.target as HTMLElement).id);
655
- this.onTabPrevious(e, previousSelectedIndex);
656
- }
657
- }
658
-
659
- onTabPrevious(e: KeyboardEvent, previousSelectedIndex: number) {
660
- const previousSelectIndex = previousSelectedIndex - 1;
661
-
662
- if (previousSelectIndex >= 0) {
663
- e.preventDefault();
664
- this._visibleTabs![previousSelectIndex].focus();
665
- }
666
- }
667
-
668
653
  handleHomeKey(e: KeyboardEvent) {
669
654
  if (isHome(e)) {
655
+ e.preventDefault();
670
656
  this._visibleTabs![0].focus();
671
657
  }
672
658
  }
673
659
 
674
660
  handleEndKey(e: KeyboardEvent) {
675
661
  if (isEnd(e)) {
662
+ e.preventDefault();
676
663
  this.onEndKey();
677
664
  }
678
665
  }
@@ -686,43 +673,12 @@ class UDExTabNavigation extends UI5Element {
686
673
  }
687
674
  }
688
675
 
689
- async handleFocusMoreButton(e: KeyboardEvent) {
690
- await this.handleUpMoreButton(e);
691
- await this.handleDownMoreButton(e);
692
- this.handleTabPreviouMoreButton(e);
676
+ handleFocusMoreButton(e: KeyboardEvent) {
677
+ this.handleDownMoreButton(e);
693
678
  this.handleHomeKeyMoreButton(e);
694
679
  this.handleEnterKeyMoreButton(e);
695
680
  }
696
681
 
697
- async handleUpMoreButton(e: KeyboardEvent) {
698
- if (isUp(e)) {
699
- e.preventDefault();
700
- e.stopPropagation();
701
- this._responsivePopover = await this.getResponsePopover();
702
- await this.handleOpenPopover();
703
- this.updateOverflowItems();
704
- this.onFocusLastItemPopover();
705
- }
706
- }
707
-
708
- async onFocusLastItemPopover() {
709
- if (this._responsivePopover?.opened) {
710
- const popoverItems = await this.getItemsFromPopover();
711
- const lastOverflowTabIndex = popoverItems.length - 1;
712
- popoverItems[lastOverflowTabIndex].focus();
713
- }
714
- }
715
-
716
- handleTabPreviouMoreButton(e: KeyboardEvent) {
717
- if (isTabPrevious(e)) {
718
- e.preventDefault();
719
- e.stopPropagation();
720
-
721
- const lastVisibleTab = this._visibleTabs!.length - 2;
722
- this._visibleTabs![lastVisibleTab].focus();
723
- }
724
- }
725
-
726
682
  handleHomeKeyMoreButton(e: KeyboardEvent) {
727
683
  if (isHome(e)) {
728
684
  e.preventDefault();
@@ -731,34 +687,29 @@ class UDExTabNavigation extends UI5Element {
731
687
  }
732
688
  }
733
689
 
734
- async handleEnterKeyMoreButton(e: KeyboardEvent) {
690
+ handleEnterKeyMoreButton(e: KeyboardEvent) {
735
691
  if (isEnter(e)) {
736
692
  e.preventDefault();
737
- this._responsivePopover = await this.getResponsePopover();
693
+ this._responsivePopover = this.getResponsePopover();
738
694
  this.updateOverflowItems();
739
695
  this.handleOpenPopover();
740
696
  }
741
697
  }
742
698
 
743
- onOpenPopover() {
744
- if (!this._responsivePopover?.opened) {
745
- this.handleMoreButton();
746
- }
747
- }
748
-
749
- async handleDownMoreButton(e: KeyboardEvent) {
699
+ handleDownMoreButton(e: KeyboardEvent) {
750
700
  if (isDown(e) || isEnter(e)) {
751
- this._responsivePopover = await this.getResponsePopover();
752
- await this.handleOpenPopover();
701
+ this._responsivePopover = this.getResponsePopover();
702
+ this.handleOpenPopover();
753
703
  this.updateOverflowItems();
754
- this.onFocusFirstItemPopover();
755
704
  }
756
705
  }
757
706
 
758
- async onFocusFirstItemPopover() {
707
+ onFocusFirstItemPopover() {
759
708
  if (this._responsivePopover?.opened) {
760
- const popoverItems = await this.getItemsFromPopover();
761
- popoverItems[0].focus();
709
+ const popoverItems = this.getItemsFromPopover();
710
+ const firstPopoverItem = popoverItems[0];
711
+ firstPopoverItem.setAttribute("tabindex", "0");
712
+ firstPopoverItem.focus();
762
713
  }
763
714
  }
764
715
 
@@ -770,6 +721,13 @@ class UDExTabNavigation extends UI5Element {
770
721
  this.handleEscape(e);
771
722
  this.handleHome(e);
772
723
  this.handleEnd(e);
724
+ this.handleTab(e);
725
+ }
726
+
727
+ handleTab(e: KeyboardEvent): void {
728
+ if (isTabNext(e) || isTabPrevious(e)) {
729
+ this.handleClosePopover();
730
+ }
773
731
  }
774
732
 
775
733
  handleUp(e: KeyboardEvent) {
@@ -778,16 +736,34 @@ class UDExTabNavigation extends UI5Element {
778
736
  }
779
737
  }
780
738
 
781
- async onPreviousItemInPopover(target: HTMLElement) {
782
- const popoverItems = await this.getItemsFromPopover();
739
+ onPreviousItemInPopover(target: HTMLElement) {
740
+ const popoverItems = this.getItemsFromPopover();
783
741
  const currentSelectedTabIndex = this.getPopoverTabIndexById(popoverItems, target.id);
784
742
  const previousSelectIndex = currentSelectedTabIndex - 1 < 0 ? popoverItems.length - 1 : currentSelectedTabIndex - 1;
743
+ const prevItem = popoverItems[previousSelectIndex];
744
+
745
+ this.resetTabIndexItem(popoverItems[currentSelectedTabIndex]);
746
+ prevItem.setAttribute("tabIndex", "0");
747
+ prevItem.focus();
748
+ }
749
+
750
+ onNextItemInPopover(target: HTMLElement) {
751
+ const popoverItems = this.getItemsFromPopover();
752
+ const currentSelectedTabIndex = this.getPopoverTabIndexById(popoverItems, target.id);
753
+ const nextSelectIndex = currentSelectedTabIndex + 1 > popoverItems.length - 1 ? 0 : currentSelectedTabIndex + 1;
754
+ const nextItem = popoverItems[nextSelectIndex];
785
755
 
786
- popoverItems[previousSelectIndex].focus();
756
+ this.resetTabIndexItem(popoverItems[currentSelectedTabIndex]);
757
+ nextItem.setAttribute("tabIndex", "0");
758
+ nextItem.focus();
787
759
  }
788
760
 
789
- async getItemsFromPopover(): Promise<HTMLElement[]> {
790
- const responsivePopover = await this.getResponsePopover();
761
+ resetTabIndexItem(item: HTMLElement): void {
762
+ item.setAttribute("tabIndex", "-1");
763
+ }
764
+
765
+ getItemsFromPopover(): Array<HTMLElement> {
766
+ const responsivePopover = this.getResponsePopover();
791
767
  const [contentFromPopover] = responsivePopover.content;
792
768
  return Array.from(contentFromPopover.children) as Array<HTMLElement>;
793
769
  }
@@ -802,14 +778,6 @@ class UDExTabNavigation extends UI5Element {
802
778
  }
803
779
  }
804
780
 
805
- async onNextItemInPopover(target: HTMLElement) {
806
- const popoverItems = await this.getItemsFromPopover();
807
- const currentSelectedTabIndex = this.getPopoverTabIndexById(popoverItems, target.id);
808
- const nextSelectIndex = currentSelectedTabIndex + 1 > popoverItems.length - 1 ? 0 : currentSelectedTabIndex + 1;
809
-
810
- popoverItems[nextSelectIndex].focus();
811
- }
812
-
813
781
  handleEnterOrSpace(e: KeyboardEvent) {
814
782
  if (isEnter(e) || isSpace(e)) {
815
783
  e.preventDefault();
@@ -826,25 +794,25 @@ class UDExTabNavigation extends UI5Element {
826
794
  }
827
795
  }
828
796
 
829
- async handleHome(e: KeyboardEvent) {
797
+ handleHome(e: KeyboardEvent) {
830
798
  if (isHome(e)) {
831
799
  e.preventDefault();
832
- const popoverItems = await this.getItemsFromPopover();
800
+ const popoverItems = this.getItemsFromPopover();
833
801
  popoverItems[0].focus();
834
802
  }
835
803
  }
836
804
 
837
- async handleEnd(e: KeyboardEvent) {
805
+ handleEnd(e: KeyboardEvent) {
838
806
  if (isEnd(e)) {
839
807
  e.preventDefault();
840
- const popoverItems = await this.getItemsFromPopover();
808
+ e.stopPropagation();
809
+ const popoverItems = this.getItemsFromPopover();
841
810
  popoverItems[popoverItems.length - 1].focus();
842
811
  }
843
812
  }
844
813
 
845
- async getResponsePopover() {
846
- const staticAreaItem = await this.getStaticAreaItemDomRef();
847
- return staticAreaItem!.querySelector<ResponsivePopover>(`#${this.__id!}-overflow-popover`)!;
814
+ getResponsePopover(): ResponsivePopover {
815
+ return this.shadowRoot!.querySelector<ResponsivePopover>("[ui5-popover]")!;
848
816
  }
849
817
 
850
818
  get moreButtonText(): string {
@@ -854,6 +822,14 @@ class UDExTabNavigation extends UI5Element {
854
822
  static registerStaticAreaTabStyles(styles: StyleData) {
855
823
  staticAreaTabStyles.push(styles);
856
824
  }
825
+
826
+ static get tabNavigationPopoverTemplate() {
827
+ return TabNavigationPopoverTemplate;
828
+ }
829
+
830
+ get tabNavigationPopover() {
831
+ return executeTemplate(UDExTabNavigation.tabNavigationPopoverTemplate, this);
832
+ }
857
833
  }
858
834
 
859
835
  UDExTabNavigation.define();
@@ -3,6 +3,7 @@
3
3
  horizontal-align="Right"
4
4
  placement-type="Bottom"
5
5
  aria-orientation="vertical"
6
+ @ui5-after-open="{{onFocusFirstItemPopover}}"
6
7
  hide-arrow
7
8
  _hideHeader
8
9
  >
package/src/Tag.hbs CHANGED
@@ -1,26 +1,60 @@
1
- <div
2
- tabindex="{{_tabIndex}}"
3
- class="{{tagClasses}}"
4
- @click="{{tagClickHandler}}"
5
- @focusin="{{_focusin}}"
6
- @focusout="{{_focusout}}"
7
- @keydown="{{tagKeyDown}}"
8
- role="{{accessibleRole}}"
9
- aria-label="{{accessibleName}}"
10
- aria-pressed="{{selected}}">
11
- {{#if startIcon}}
12
- <ui5-icon
13
- class="udex-tag__icon udex-tag__icon--start"
14
- name="{{icon}}"
15
- @click="{{iconClickHandler}}">
16
- </ui5-icon>
17
- {{/if}}
18
- <span class="udex-tag__text">{{{text}}}</span>
19
- {{#if endIcon}}
20
- <ui5-icon
21
- class="udex-tag__icon udex-tag__icon--end"
22
- name="{{icon}}"
23
- @click="{{iconClickHandler}}">
24
- </ui5-icon>
25
- {{/if}}
26
- </div>
1
+ {{#if readOnly}}
2
+ <div class="{{tagClasses}}">
3
+ <span class="udex-tag__text">{{{text}}}</span>
4
+ </div>
5
+ {{else if nonSelectable}}
6
+ <div class="{{tagClasses}}">
7
+ {{#if startIcon}}
8
+ <button
9
+ class="udex-tag__btn-icon"
10
+ @click="{{iconClickHandler}}"
11
+ role="{{accessibleRole}}"
12
+ aria-label="{{iconAccessibleName}}">
13
+ <ui5-icon
14
+ class="udex-tag__icon udex-tag__icon--start"
15
+ name="{{icon}}">
16
+ </ui5-icon>
17
+ </button>
18
+ {{/if}}
19
+ <span class="udex-tag__text">{{{text}}}</span>
20
+ {{#if endIcon}}
21
+ <button
22
+ class="udex-tag__btn-icon"
23
+ @click="{{iconClickHandler}}"
24
+ role="{{accessibleRole}}"
25
+ aria-label="{{iconAccessibleName}}">
26
+ <ui5-icon
27
+ class="udex-tag__icon udex-tag__icon--end"
28
+ name="{{icon}}">
29
+ </ui5-icon>
30
+ </button>
31
+ {{/if}}
32
+ </div>
33
+ {{else}}
34
+ <div
35
+ tabindex="{{_tabIndex}}"
36
+ class="{{tagClasses}}"
37
+ @click="{{tagClickHandler}}"
38
+ @focusin="{{_focusin}}"
39
+ @focusout="{{_focusout}}"
40
+ @keydown="{{tagKeyDown}}"
41
+ role="{{accessibleRole}}"
42
+ aria-label="{{accessibleName}}"
43
+ aria-pressed="{{selected}}">
44
+ {{#if startIcon}}
45
+ <ui5-icon
46
+ class="udex-tag__icon udex-tag__icon--start"
47
+ name="{{icon}}"
48
+ @click="{{iconClickHandler}}">
49
+ </ui5-icon>
50
+ {{/if}}
51
+ <span class="udex-tag__text">{{{text}}}</span>
52
+ {{#if endIcon}}
53
+ <ui5-icon
54
+ class="udex-tag__icon udex-tag__icon--end"
55
+ name="{{icon}}"
56
+ @click="{{iconClickHandler}}">
57
+ </ui5-icon>
58
+ {{/if}}
59
+ </div>
60
+ {{/if}}
package/src/Tag.ts CHANGED
@@ -10,7 +10,7 @@ import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
10
10
  import TagTemplate from "./generated/templates/TagTemplate.lit.js";
11
11
 
12
12
  // Styles
13
- import TagCss from "./generated/themes/Tag.css.js";
13
+ import TagCss from "./generated/themes/Tag.css";
14
14
 
15
15
  export enum TagType {
16
16
  Text = "Text",
@@ -24,6 +24,11 @@ export enum IconPlacement {
24
24
  End = "End"
25
25
  }
26
26
 
27
+ export enum TagSize {
28
+ Small = "Small",
29
+ Medium = "Medium"
30
+ }
31
+
27
32
  /**
28
33
  * @class
29
34
  *
@@ -58,6 +63,7 @@ export enum IconPlacement {
58
63
  * @public
59
64
  */
60
65
  @event("selectionChange")
66
+
61
67
  /**
62
68
  * Emitted when icon in tag was clicked
63
69
  *
@@ -83,14 +89,16 @@ class UDExTag extends UI5Element {
83
89
  */
84
90
  @property({ type: TagType, defaultValue: TagType.Grey })
85
91
  design?: `${TagType}`;
92
+
86
93
  /**
87
94
  * Defines the size of the component.
88
95
  *
89
96
  * @default "Small"
90
97
  * @public
91
98
  */
92
- @property({ type: String, defaultValue: "Small" })
93
- size!: "Small" | "Medium";
99
+ @property({ type: TagSize, defaultValue: TagSize.Small })
100
+ size!: `${TagSize}`;
101
+
94
102
  /**
95
103
  * Defines icon name
96
104
  *
@@ -183,7 +191,7 @@ class UDExTag extends UI5Element {
183
191
  @property({ type: Boolean })
184
192
  nonSelectable!: boolean;
185
193
 
186
- onBeforeRendering() {
194
+ onBeforeRendering(): void {
187
195
  this.toBeDeleted = false;
188
196
  }
189
197
 
@@ -193,71 +201,83 @@ class UDExTag extends UI5Element {
193
201
  }
194
202
  }
195
203
 
196
- get tagClasses() {
197
- return `udex-tag udex-tag--${this.size.toLocaleLowerCase()} udex-tag-${this.design?.toLowerCase()}
198
- ${this.readOnly ? "udex-tag--readonly" : ""}
199
- ${this.nonSelectable ? "udex-tag--nonselectable" : ""}
200
- ${this.selected ? "udex-tag--selected" : ""}`;
201
- }
202
-
203
- get startIcon() {
204
- return this.icon && !this.readOnly && this.iconPlacement === IconPlacement.Start;
205
- }
206
-
207
- get endIcon() {
208
- return this.icon && !this.readOnly && this.iconPlacement === IconPlacement.End;
209
- }
210
-
211
- setSelected() {
204
+ setSelected(): void {
212
205
  this.selected = !this.selected;
213
206
  }
214
207
 
215
- iconClickHandler(e: Event) {
208
+ iconClickHandler(e: Event): void {
216
209
  e.stopPropagation();
217
- if (!this.readOnly) {
218
- this.fireEvent("iconClick");
219
- }
210
+ this.fireEvent("iconClick");
220
211
  }
221
212
 
222
- tagClickHandler() {
223
- if (!this.readOnly && !this.toBeDeleted && !this.nonSelectable) {
213
+ tagClickHandler(): void {
214
+ if (this.isInteractiveTag) {
224
215
  this.setSelected();
225
216
  this.fireEvent("selectionChange");
226
217
  }
227
218
  }
228
219
 
229
- tagKeyDown(e: KeyboardEvent) {
220
+ tagKeyDown(e: KeyboardEvent): void {
230
221
  if (isEnter(e)) {
231
222
  this.tagClickHandler();
232
223
  }
233
224
  }
234
225
 
235
- _focusin() {
226
+ _focusin(): void {
236
227
  this.focused = true;
237
228
  }
238
229
 
239
- _focusout() {
230
+ _focusout(): void {
240
231
  this.focused = !this.focused;
241
232
  }
242
233
 
243
- get _tabIndex() {
244
- if (this.readOnly || this.overflows || this.nonSelectable) {
234
+ get tagClasses(): string {
235
+ const hasIconClass = this.hasIcon ? "udex-tag--has-icon" : "";
236
+ const readOnlyClass = this.readOnly ? "udex-tag--readonly" : "";
237
+ const nonSelectableClass = this.nonSelectable ? "udex-tag--nonselectable" : "";
238
+ const selectableClass = this.selected ? "udex-tag--selected" : "";
239
+ const designClass = `udex-tag-${this.design?.toLowerCase()}`;
240
+ return `udex-tag udex-tag--${this.size.toLocaleLowerCase()} ${designClass} ${hasIconClass} ${readOnlyClass} ${nonSelectableClass} ${selectableClass}`.trim();
241
+ }
242
+
243
+ get startIcon(): boolean {
244
+ return this.hasIcon && this.iconPlacement === IconPlacement.Start;
245
+ }
246
+
247
+ get endIcon(): boolean {
248
+ return this.hasIcon && this.iconPlacement === IconPlacement.End;
249
+ }
250
+
251
+ get _tabIndex(): number {
252
+ if (this.overflows || this.nonSelectable) {
245
253
  return -1;
246
254
  }
247
255
  return 0;
248
256
  }
249
257
 
250
- get textDom() {
251
- return this.getDomRef()?.querySelector(".udex-tag__text");
258
+ get textDom(): HTMLElement {
259
+ return this.getDomRef()!.querySelector(".udex-tag__text")!;
252
260
  }
253
261
 
254
- get isTruncatable() {
262
+ get isTruncatable(): boolean {
255
263
  if (!this.textDom) {
256
264
  return false;
257
265
  }
258
266
 
259
267
  return Math.ceil(this.textDom.getBoundingClientRect().width) < Math.ceil(this.textDom.scrollWidth);
260
268
  }
269
+
270
+ get isInteractiveTag(): boolean {
271
+ return !this.readOnly && !this.toBeDeleted && !this.nonSelectable;
272
+ }
273
+
274
+ get hasIcon(): boolean {
275
+ return !!this.icon && !this.readOnly;
276
+ }
277
+
278
+ get iconAccessibleName(): string {
279
+ return this.accessibleName || this.text;
280
+ }
261
281
  }
262
282
 
263
283
  UDExTag.define();
package/src/TextArea.hbs CHANGED
@@ -21,12 +21,11 @@
21
21
  ?disabled="{{disabled}}"
22
22
  ?readonly="{{isInputReadonly}}"
23
23
  ?required="{{required}}"
24
- aria-label="{{accessibleName}}"
25
- aria-describedby="{{ariaDescribedBy}}"
26
- aria-labelledby="{{accessibleNameRef}}"
24
+ ?aria-label="{{accessibleName}}"
25
+ ?aria-describedby="{{ariaDescribedBy}}"
26
+ ?aria-labelledby="{{accessibleNameRef}}"
27
27
  aria-required="{{required}}"
28
28
  aria-readonly="{{isInputReadonly}}"
29
- aria-disabled="{{disabled}}"
30
29
  aria-invalid="{{ariaInvalid}}"
31
30
  @input="{{handleInput}}"
32
31
  @focus="{{handleFocus}}"
package/src/TextArea.ts CHANGED
@@ -257,6 +257,9 @@ class UDExTextArea extends UI5Element {
257
257
  const valueStateTextDescId = this.hasValueState ? `${this._id}-valueStateDesc` : "";
258
258
  const readonlyTextDescId = this.readonly ? `${this._id}-readonlyDesc` : "";
259
259
  const supportingTextDescId = this._supportingText ? `${this._id}-supportingTextDesc` : "";
260
+ if (!valueStateTextDescId && !supportingTextDescId && !readonlyTextDescId) {
261
+ return;
262
+ }
260
263
  return `${valueStateTextDescId} ${supportingTextDescId} ${readonlyTextDescId}`;
261
264
  }
262
265