@sapudex/web-components 0.117.1 → 0.138.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 (536) hide show
  1. package/bundle.esm.js +5 -0
  2. package/config/wdio.conf.js +19 -8
  3. package/dist/Accordion.d.ts +1 -1
  4. package/dist/Accordion.js +1 -1
  5. package/dist/Accordion.js.map +1 -1
  6. package/dist/AccordionItem.d.ts +3 -2
  7. package/dist/AccordionItem.js +4 -4
  8. package/dist/AccordionItem.js.map +1 -1
  9. package/dist/Avatar.d.ts +12 -0
  10. package/dist/Avatar.js +22 -1
  11. package/dist/Avatar.js.map +1 -1
  12. package/dist/AvatarGroup.d.ts +28 -0
  13. package/dist/AvatarGroup.js +126 -0
  14. package/dist/AvatarGroup.js.map +1 -0
  15. package/dist/Checkbox.d.ts +1 -1
  16. package/dist/Checkbox.js +1 -1
  17. package/dist/Checkbox.js.map +1 -1
  18. package/dist/CountrySelector.d.ts +24 -6
  19. package/dist/CountrySelector.js +25 -7
  20. package/dist/CountrySelector.js.map +1 -1
  21. package/dist/DatePicker.d.ts +1 -0
  22. package/dist/DatePicker.js +4 -1
  23. package/dist/DatePicker.js.map +1 -1
  24. package/dist/Dropdown.d.ts +12 -2
  25. package/dist/Dropdown.js +18 -6
  26. package/dist/Dropdown.js.map +1 -1
  27. package/dist/FilterMenu.d.ts +26 -6
  28. package/dist/FilterMenu.js +61 -21
  29. package/dist/FilterMenu.js.map +1 -1
  30. package/dist/Footer.d.ts +36 -1
  31. package/dist/Footer.js +35 -37
  32. package/dist/Footer.js.map +1 -1
  33. package/dist/HeroBanner.js +3 -0
  34. package/dist/HeroBanner.js.map +1 -1
  35. package/dist/Link.d.ts +1 -1
  36. package/dist/Link.js +1 -1
  37. package/dist/Link.js.map +1 -1
  38. package/dist/List.d.ts +1 -1
  39. package/dist/List.js +17 -1
  40. package/dist/List.js.map +1 -1
  41. package/dist/ListGroupHeader.d.ts +2 -2
  42. package/dist/ListGroupHeader.js +2 -2
  43. package/dist/ListGroupHeader.js.map +1 -1
  44. package/dist/ListItem.d.ts +3 -3
  45. package/dist/ListItem.js +6 -7
  46. package/dist/ListItem.js.map +1 -1
  47. package/dist/ListSelectAll.d.ts +1 -1
  48. package/dist/ListSelectAll.js +1 -1
  49. package/dist/ListSelectAll.js.map +1 -1
  50. package/dist/MastheadItem.d.ts +10 -1
  51. package/dist/MastheadItem.js +29 -18
  52. package/dist/MastheadItem.js.map +1 -1
  53. package/dist/MastheadMenu.d.ts +5 -0
  54. package/dist/MastheadMenu.js +24 -0
  55. package/dist/MastheadMenu.js.map +1 -1
  56. package/dist/MastheadMenuItem.d.ts +2 -3
  57. package/dist/MastheadMenuItem.js +2 -17
  58. package/dist/MastheadMenuItem.js.map +1 -1
  59. package/dist/MastheadMobileMenu.d.ts +25 -5
  60. package/dist/MastheadMobileMenu.js +135 -21
  61. package/dist/MastheadMobileMenu.js.map +1 -1
  62. package/dist/MastheadProfileMenu.d.ts +13 -4
  63. package/dist/MastheadProfileMenu.js +40 -9
  64. package/dist/MastheadProfileMenu.js.map +1 -1
  65. package/dist/MastheadShell.d.ts +11 -0
  66. package/dist/MastheadShell.js +52 -8
  67. package/dist/MastheadShell.js.map +1 -1
  68. package/dist/MediaPlayer.d.ts +3 -3
  69. package/dist/MediaPlayer.js +115 -25
  70. package/dist/MediaPlayer.js.map +1 -1
  71. package/dist/MessageStrip.js +1 -1
  72. package/dist/MessageStrip.js.map +1 -1
  73. package/dist/Pagination.d.ts +3 -0
  74. package/dist/Pagination.js +16 -4
  75. package/dist/Pagination.js.map +1 -1
  76. package/dist/PasswordField.d.ts +14 -4
  77. package/dist/PasswordField.js +24 -15
  78. package/dist/PasswordField.js.map +1 -1
  79. package/dist/PhoneNumberField.d.ts +32 -0
  80. package/dist/PhoneNumberField.js +51 -2
  81. package/dist/PhoneNumberField.js.map +1 -1
  82. package/dist/RatingBar.d.ts +53 -0
  83. package/dist/RatingBar.js +96 -0
  84. package/dist/RatingBar.js.map +1 -0
  85. package/dist/Review.d.ts +71 -0
  86. package/dist/Review.js +108 -0
  87. package/dist/Review.js.map +1 -0
  88. package/dist/ReviewItem.d.ts +105 -0
  89. package/dist/ReviewItem.js +157 -0
  90. package/dist/ReviewItem.js.map +1 -0
  91. package/dist/Search.d.ts +64 -2
  92. package/dist/Search.js +62 -8
  93. package/dist/Search.js.map +1 -1
  94. package/dist/SearchableListBase.d.ts +1 -1
  95. package/dist/SearchableListBase.js +1 -1
  96. package/dist/SearchableListBase.js.map +1 -1
  97. package/dist/SecondaryNavigation.d.ts +9 -8
  98. package/dist/SecondaryNavigation.js +59 -46
  99. package/dist/SecondaryNavigation.js.map +1 -1
  100. package/dist/SecondaryNavigationItem.d.ts +1 -1
  101. package/dist/SecondaryNavigationItem.js +15 -5
  102. package/dist/SecondaryNavigationItem.js.map +1 -1
  103. package/dist/SecondaryNavigationItemBase.d.ts +16 -2
  104. package/dist/SecondaryNavigationItemBase.js +27 -1
  105. package/dist/SecondaryNavigationItemBase.js.map +1 -1
  106. package/dist/SecondaryNavigationSubItem.d.ts +2 -1
  107. package/dist/SecondaryNavigationSubItem.js +5 -2
  108. package/dist/SecondaryNavigationSubItem.js.map +1 -1
  109. package/dist/SelectBox.d.ts +33 -9
  110. package/dist/SelectBox.js +121 -60
  111. package/dist/SelectBox.js.map +1 -1
  112. package/dist/StatusBadge.d.ts +5 -5
  113. package/dist/StatusBadge.js.map +1 -1
  114. package/dist/Switch.d.ts +20 -0
  115. package/dist/Switch.js +22 -0
  116. package/dist/Switch.js.map +1 -1
  117. package/dist/Tab.d.ts +9 -1
  118. package/dist/Tab.js +4 -1
  119. package/dist/Tab.js.map +1 -1
  120. package/dist/TabNavigation.d.ts +21 -21
  121. package/dist/TabNavigation.js +83 -102
  122. package/dist/TabNavigation.js.map +1 -1
  123. package/dist/Tag.d.ts +22 -7
  124. package/dist/Tag.js +52 -21
  125. package/dist/Tag.js.map +1 -1
  126. package/dist/TagGroup.d.ts +94 -0
  127. package/dist/TagGroup.js +174 -0
  128. package/dist/TagGroup.js.map +1 -0
  129. package/dist/TextArea.d.ts +14 -1
  130. package/dist/TextArea.js +18 -0
  131. package/dist/TextArea.js.map +1 -1
  132. package/dist/TextField.d.ts +32 -13
  133. package/dist/TextField.js +32 -2
  134. package/dist/TextField.js.map +1 -1
  135. package/dist/Tooltip.d.ts +3 -3
  136. package/dist/Tooltip.js +4 -4
  137. package/dist/Tooltip.js.map +1 -1
  138. package/dist/assets/bundle.esm-bb1c7413.js +316 -0
  139. package/dist/assets/messagebundle_en-c677773a.js +1 -0
  140. package/dist/assets/parameters-bundle.css-c897ae23.js +2 -0
  141. package/dist/assets/video.es-60bfb78c.js +228 -0
  142. package/dist/css/themes/AccordionItem.css +1 -1
  143. package/dist/css/themes/Avatar.css +1 -1
  144. package/dist/css/themes/Badge.css +1 -1
  145. package/dist/css/themes/CountrySelector.css +1 -1
  146. package/dist/css/themes/Divider.css +1 -1
  147. package/dist/css/themes/FilterMenu.css +1 -1
  148. package/dist/css/themes/Footer.css +1 -1
  149. package/dist/css/themes/HeroBanner.css +1 -1
  150. package/dist/css/themes/ListItem.css +1 -1
  151. package/dist/css/themes/MastheadItem.css +1 -1
  152. package/dist/css/themes/MastheadMobileMenu.css +1 -1
  153. package/dist/css/themes/MastheadShell.css +1 -1
  154. package/dist/css/themes/Modal.css +1 -1
  155. package/dist/css/themes/Pagination.css +1 -1
  156. package/dist/css/themes/PhoneNumberField.css +1 -1
  157. package/dist/css/themes/RatingBar.css +1 -0
  158. package/dist/css/themes/RatingIndicator.css +1 -1
  159. package/dist/css/themes/Review.css +1 -0
  160. package/dist/css/themes/ReviewItem.css +1 -0
  161. package/dist/css/themes/Search.css +1 -1
  162. package/dist/css/themes/SecondaryNavigation.css +1 -1
  163. package/dist/css/themes/SecondaryNavigationItem.css +1 -1
  164. package/dist/css/themes/SecondaryNavigationSubItem.css +1 -1
  165. package/dist/css/themes/SelectBox.css +1 -1
  166. package/dist/css/themes/Slider.css +1 -1
  167. package/dist/css/themes/StepInput.css +1 -1
  168. package/dist/css/themes/TabNavigation.css +1 -1
  169. package/dist/css/themes/Tag.css +1 -1
  170. package/dist/css/themes/TagGroup.css +1 -0
  171. package/dist/css/themes/TextArea.css +1 -1
  172. package/dist/css/themes/TextField.css +1 -1
  173. package/dist/css/themes/Toast.css +1 -1
  174. package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +1 -1
  175. package/dist/custom-elements-internal.json +1435 -444
  176. package/dist/custom-elements.json +1267 -358
  177. package/dist/data/CountryListISO3166.js +162 -162
  178. package/dist/data/CountryListISO3166.js.map +1 -1
  179. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  180. package/dist/generated/assets/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.json +1 -1
  181. package/dist/generated/i18n/i18n-defaults.d.ts +11 -1
  182. package/dist/generated/i18n/i18n-defaults.js +18 -8
  183. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  184. package/dist/generated/templates/AccordionItemTemplate.lit.js +1 -1
  185. package/dist/generated/templates/AccordionItemTemplate.lit.js.map +1 -1
  186. package/dist/generated/templates/CountrySelectorTemplate.lit.js +3 -3
  187. package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
  188. package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
  189. package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
  190. package/dist/generated/templates/DropdownTemplate.lit.js +2 -2
  191. package/dist/generated/templates/DropdownTemplate.lit.js.map +1 -1
  192. package/dist/generated/templates/FilterMenuTemplate.lit.js +1 -1
  193. package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
  194. package/dist/generated/templates/FooterTemplate.lit.js +26 -28
  195. package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
  196. package/dist/generated/templates/HeroBannerTemplate.lit.js +7 -7
  197. package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
  198. package/dist/generated/templates/ListItemTemplate.lit.js +6 -6
  199. package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
  200. package/dist/generated/templates/ListSelectAllTemplate.lit.js +1 -1
  201. package/dist/generated/templates/ListSelectAllTemplate.lit.js.map +1 -1
  202. package/dist/generated/templates/MastheadItemTemplate.lit.js +3 -3
  203. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
  204. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js +1 -1
  205. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +1 -1
  206. package/dist/generated/templates/MastheadMenuTemplate.lit.js +2 -2
  207. package/dist/generated/templates/MastheadMenuTemplate.lit.js.map +1 -1
  208. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +16 -12
  209. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
  210. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js +2 -2
  211. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js.map +1 -1
  212. package/dist/generated/templates/MastheadShellTemplate.lit.js +8 -8
  213. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  214. package/dist/generated/templates/MediaPlayerTemplate.lit.js +2 -2
  215. package/dist/generated/templates/MediaPlayerTemplate.lit.js.map +1 -1
  216. package/dist/generated/templates/PaginationTemplate.lit.js +1 -1
  217. package/dist/generated/templates/PaginationTemplate.lit.js.map +1 -1
  218. package/dist/generated/templates/PasswordFieldTemplate.lit.js +1 -2
  219. package/dist/generated/templates/PasswordFieldTemplate.lit.js.map +1 -1
  220. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +6 -3
  221. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
  222. package/dist/generated/templates/RatingBarTemplate.lit.d.ts +4 -0
  223. package/dist/generated/templates/RatingBarTemplate.lit.js +6 -0
  224. package/dist/generated/templates/RatingBarTemplate.lit.js.map +1 -0
  225. package/dist/generated/templates/ReviewItemTemplate.lit.d.ts +4 -0
  226. package/dist/generated/templates/ReviewItemTemplate.lit.js +8 -0
  227. package/dist/generated/templates/ReviewItemTemplate.lit.js.map +1 -0
  228. package/dist/generated/templates/ReviewTemplate.lit.d.ts +4 -0
  229. package/dist/generated/templates/ReviewTemplate.lit.js +10 -0
  230. package/dist/generated/templates/ReviewTemplate.lit.js.map +1 -0
  231. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +1 -1
  232. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +1 -1
  233. package/dist/generated/templates/SearchTemplate.lit.js +7 -7
  234. package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
  235. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +3 -3
  236. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -1
  237. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +5 -4
  238. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +1 -1
  239. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +7 -6
  240. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  241. package/dist/generated/templates/SelectBoxTemplate.lit.js +2 -2
  242. package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
  243. package/dist/generated/templates/SwitchTemplate.lit.js +2 -2
  244. package/dist/generated/templates/SwitchTemplate.lit.js.map +1 -1
  245. package/dist/generated/templates/TabHeaderTemplate.lit.js +2 -2
  246. package/dist/generated/templates/TabHeaderTemplate.lit.js.map +1 -1
  247. package/dist/generated/templates/TabInOverflowTemplate.lit.js +6 -6
  248. package/dist/generated/templates/TabInOverflowTemplate.lit.js.map +1 -1
  249. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js +1 -1
  250. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js.map +1 -1
  251. package/dist/generated/templates/TabNavigationTemplate.lit.js +4 -2
  252. package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
  253. package/dist/generated/templates/TagGroupTemplate.lit.d.ts +4 -0
  254. package/dist/generated/templates/TagGroupTemplate.lit.js +8 -0
  255. package/dist/generated/templates/TagGroupTemplate.lit.js.map +1 -0
  256. package/dist/generated/templates/TagTemplate.lit.js +13 -3
  257. package/dist/generated/templates/TagTemplate.lit.js.map +1 -1
  258. package/dist/generated/templates/TextAreaTemplate.lit.js +1 -1
  259. package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
  260. package/dist/generated/templates/TextFieldTemplate.lit.js +2 -2
  261. package/dist/generated/templates/TextFieldTemplate.lit.js.map +1 -1
  262. package/dist/generated/templates/TooltipTemplate.lit.js +1 -1
  263. package/dist/generated/templates/TooltipTemplate.lit.js.map +1 -1
  264. package/dist/generated/themes/AccordionItem.css.js +1 -1
  265. package/dist/generated/themes/AccordionItem.css.js.map +1 -1
  266. package/dist/generated/themes/Avatar.css.js +1 -1
  267. package/dist/generated/themes/Avatar.css.js.map +1 -1
  268. package/dist/generated/themes/Badge.css.js +1 -1
  269. package/dist/generated/themes/Badge.css.js.map +1 -1
  270. package/dist/generated/themes/CountrySelector.css.js +1 -1
  271. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  272. package/dist/generated/themes/Divider.css.js +1 -1
  273. package/dist/generated/themes/Divider.css.js.map +1 -1
  274. package/dist/generated/themes/FilterMenu.css.js +1 -1
  275. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  276. package/dist/generated/themes/Footer.css.js +1 -1
  277. package/dist/generated/themes/Footer.css.js.map +1 -1
  278. package/dist/generated/themes/HeroBanner.css.js +1 -1
  279. package/dist/generated/themes/HeroBanner.css.js.map +1 -1
  280. package/dist/generated/themes/ListItem.css.js +1 -1
  281. package/dist/generated/themes/ListItem.css.js.map +1 -1
  282. package/dist/generated/themes/MastheadItem.css.js +1 -1
  283. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  284. package/dist/generated/themes/MastheadMobileMenu.css.js +1 -1
  285. package/dist/generated/themes/MastheadMobileMenu.css.js.map +1 -1
  286. package/dist/generated/themes/MastheadShell.css.js +1 -1
  287. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  288. package/dist/generated/themes/Modal.css.js +1 -1
  289. package/dist/generated/themes/Modal.css.js.map +1 -1
  290. package/dist/generated/themes/Pagination.css.js +1 -1
  291. package/dist/generated/themes/Pagination.css.js.map +1 -1
  292. package/dist/generated/themes/PhoneNumberField.css.js +1 -1
  293. package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
  294. package/dist/generated/themes/RatingBar.css.js +9 -0
  295. package/dist/generated/themes/RatingBar.css.js.map +1 -0
  296. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  297. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  298. package/dist/generated/themes/Review.css.d.ts +3 -0
  299. package/dist/generated/themes/Review.css.js +9 -0
  300. package/dist/generated/themes/Review.css.js.map +1 -0
  301. package/dist/generated/themes/ReviewItem.css.d.ts +3 -0
  302. package/dist/generated/themes/ReviewItem.css.js +9 -0
  303. package/dist/generated/themes/ReviewItem.css.js.map +1 -0
  304. package/dist/generated/themes/Search.css.js +1 -1
  305. package/dist/generated/themes/Search.css.js.map +1 -1
  306. package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
  307. package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
  308. package/dist/generated/themes/SecondaryNavigationItem.css.js +1 -1
  309. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
  310. package/dist/generated/themes/SecondaryNavigationSubItem.css.js +1 -1
  311. package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -1
  312. package/dist/generated/themes/SelectBox.css.js +1 -1
  313. package/dist/generated/themes/SelectBox.css.js.map +1 -1
  314. package/dist/generated/themes/Slider.css.js +1 -1
  315. package/dist/generated/themes/Slider.css.js.map +1 -1
  316. package/dist/generated/themes/StepInput.css.js +1 -1
  317. package/dist/generated/themes/StepInput.css.js.map +1 -1
  318. package/dist/generated/themes/TabNavigation.css.js +1 -1
  319. package/dist/generated/themes/TabNavigation.css.js.map +1 -1
  320. package/dist/generated/themes/Tag.css.js +1 -1
  321. package/dist/generated/themes/Tag.css.js.map +1 -1
  322. package/dist/generated/themes/TagGroup.css.d.ts +3 -0
  323. package/dist/generated/themes/TagGroup.css.js +9 -0
  324. package/dist/generated/themes/TagGroup.css.js.map +1 -0
  325. package/dist/generated/themes/TextArea.css.js +1 -1
  326. package/dist/generated/themes/TextArea.css.js.map +1 -1
  327. package/dist/generated/themes/TextField.css.js +1 -1
  328. package/dist/generated/themes/TextField.css.js.map +1 -1
  329. package/dist/generated/themes/Toast.css.js +1 -1
  330. package/dist/generated/themes/Toast.css.js.map +1 -1
  331. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js +1 -1
  332. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js.map +1 -1
  333. package/dist/i18n/messagebundle.properties +35 -7
  334. package/dist/i18n/messagebundle_en.properties +17 -7
  335. package/dist/vscode.html-custom-data.json +260 -95
  336. package/dist/web-types.json +605 -183
  337. package/package.json +9 -9
  338. package/src/Accordion.ts +1 -1
  339. package/src/AccordionItem.hbs +1 -4
  340. package/src/AccordionItem.ts +6 -5
  341. package/src/Avatar.ts +24 -1
  342. package/src/AvatarGroup.ts +135 -0
  343. package/src/Checkbox.ts +1 -1
  344. package/src/CountrySelector.hbs +19 -15
  345. package/src/CountrySelector.ts +42 -9
  346. package/src/DatePicker.hbs +7 -9
  347. package/src/DatePicker.ts +14 -10
  348. package/src/Dropdown.hbs +8 -2
  349. package/src/Dropdown.ts +27 -6
  350. package/src/FilterMenu.hbs +58 -56
  351. package/src/FilterMenu.ts +101 -39
  352. package/src/Footer.hbs +21 -37
  353. package/src/Footer.ts +74 -52
  354. package/src/HeroBanner.hbs +22 -15
  355. package/src/HeroBanner.ts +3 -0
  356. package/src/Link.ts +1 -1
  357. package/src/List.ts +43 -23
  358. package/src/ListGroupHeader.ts +2 -2
  359. package/src/ListItem.hbs +4 -2
  360. package/src/ListItem.ts +8 -10
  361. package/src/ListSelectAll.hbs +1 -1
  362. package/src/ListSelectAll.ts +1 -1
  363. package/src/MastheadItem.hbs +7 -5
  364. package/src/MastheadItem.ts +44 -11
  365. package/src/MastheadMenu.hbs +4 -2
  366. package/src/MastheadMenu.ts +30 -0
  367. package/src/MastheadMenuItem.hbs +0 -2
  368. package/src/MastheadMenuItem.ts +2 -16
  369. package/src/MastheadMobileMenu.hbs +36 -10
  370. package/src/MastheadMobileMenu.ts +162 -22
  371. package/src/MastheadProfileMenu.hbs +6 -2
  372. package/src/MastheadProfileMenu.ts +66 -20
  373. package/src/MastheadShell.hbs +14 -4
  374. package/src/MastheadShell.ts +67 -8
  375. package/src/MediaPlayer.hbs +1 -3
  376. package/src/MediaPlayer.ts +122 -26
  377. package/src/MessageStrip.ts +1 -1
  378. package/src/Pagination.hbs +4 -2
  379. package/src/Pagination.ts +19 -4
  380. package/src/PasswordField.hbs +6 -17
  381. package/src/PasswordField.ts +31 -23
  382. package/src/PhoneNumberField.hbs +26 -6
  383. package/src/PhoneNumberField.ts +77 -2
  384. package/src/RatingBar.hbs +11 -0
  385. package/src/RatingBar.ts +113 -0
  386. package/src/Review.hbs +44 -0
  387. package/src/Review.ts +140 -0
  388. package/src/ReviewItem.hbs +20 -0
  389. package/src/ReviewItem.ts +227 -0
  390. package/src/Search.hbs +19 -14
  391. package/src/Search.ts +113 -6
  392. package/src/SearchSuggestions.hbs +1 -0
  393. package/src/SearchableListBase.ts +1 -1
  394. package/src/SecondaryNavigation.hbs +14 -8
  395. package/src/SecondaryNavigation.ts +76 -56
  396. package/src/SecondaryNavigationItem.hbs +3 -2
  397. package/src/SecondaryNavigationItem.ts +15 -5
  398. package/src/SecondaryNavigationItemBase.ts +41 -3
  399. package/src/SecondaryNavigationSubItem.hbs +13 -10
  400. package/src/SecondaryNavigationSubItem.ts +6 -2
  401. package/src/SelectBox.hbs +84 -83
  402. package/src/SelectBox.ts +155 -72
  403. package/src/StatusBadge.ts +2 -2
  404. package/src/Switch.hbs +3 -3
  405. package/src/Switch.ts +25 -0
  406. package/src/Tab.ts +11 -1
  407. package/src/TabHeader.hbs +3 -1
  408. package/src/TabInOverflow.hbs +19 -6
  409. package/src/TabNavigation.hbs +22 -12
  410. package/src/TabNavigation.ts +93 -117
  411. package/src/TabNavigationPopover.hbs +1 -0
  412. package/src/Tag.hbs +76 -26
  413. package/src/Tag.ts +77 -36
  414. package/src/TagGroup.hbs +48 -0
  415. package/src/TagGroup.ts +222 -0
  416. package/src/TextArea.hbs +36 -34
  417. package/src/TextArea.ts +28 -0
  418. package/src/TextField.hbs +45 -39
  419. package/src/TextField.ts +73 -17
  420. package/src/Tooltip.hbs +2 -2
  421. package/src/Tooltip.ts +5 -5
  422. package/src/data/CountryListISO3166.ts +162 -162
  423. package/src/generated/i18n/i18n-defaults.ts +2 -2
  424. package/src/generated/templates/AccordionItemTemplate.lit.ts +1 -1
  425. package/src/generated/templates/CountrySelectorTemplate.lit.ts +3 -3
  426. package/src/generated/templates/DatePickerTemplate.lit.ts +1 -1
  427. package/src/generated/templates/DropdownTemplate.lit.ts +2 -2
  428. package/src/generated/templates/FilterMenuTemplate.lit.ts +1 -1
  429. package/src/generated/templates/FooterTemplate.lit.ts +26 -28
  430. package/src/generated/templates/HeroBannerTemplate.lit.ts +7 -7
  431. package/src/generated/templates/ListItemTemplate.lit.ts +6 -6
  432. package/src/generated/templates/ListSelectAllTemplate.lit.ts +1 -1
  433. package/src/generated/templates/MastheadItemTemplate.lit.ts +3 -3
  434. package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +1 -1
  435. package/src/generated/templates/MastheadMenuTemplate.lit.ts +2 -2
  436. package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +16 -12
  437. package/src/generated/templates/MastheadProfileMenuTemplate.lit.ts +2 -2
  438. package/src/generated/templates/MastheadShellTemplate.lit.ts +8 -8
  439. package/src/generated/templates/MediaPlayerTemplate.lit.ts +2 -2
  440. package/src/generated/templates/PaginationTemplate.lit.ts +1 -1
  441. package/src/generated/templates/PasswordFieldTemplate.lit.ts +1 -2
  442. package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +6 -3
  443. package/src/generated/templates/RatingBarTemplate.lit.ts +11 -0
  444. package/src/generated/templates/ReviewItemTemplate.lit.ts +13 -0
  445. package/src/generated/templates/ReviewTemplate.lit.ts +15 -0
  446. package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +1 -1
  447. package/src/generated/templates/SearchTemplate.lit.ts +7 -7
  448. package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +3 -3
  449. package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +5 -4
  450. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +7 -6
  451. package/src/generated/templates/SelectBoxTemplate.lit.ts +2 -2
  452. package/src/generated/templates/SwitchTemplate.lit.ts +2 -2
  453. package/src/generated/templates/TabHeaderTemplate.lit.ts +2 -2
  454. package/src/generated/templates/TabInOverflowTemplate.lit.ts +6 -6
  455. package/src/generated/templates/TabNavigationPopoverTemplate.lit.ts +1 -1
  456. package/src/generated/templates/TabNavigationTemplate.lit.ts +4 -2
  457. package/src/generated/templates/TagGroupTemplate.lit.ts +13 -0
  458. package/src/generated/templates/TagTemplate.lit.ts +13 -3
  459. package/src/generated/templates/TextAreaTemplate.lit.ts +1 -1
  460. package/src/generated/templates/TextFieldTemplate.lit.ts +2 -2
  461. package/src/generated/templates/TooltipTemplate.lit.ts +1 -1
  462. package/src/generated/themes/AccordionItem.css.ts +1 -1
  463. package/src/generated/themes/Avatar.css.ts +1 -1
  464. package/src/generated/themes/Badge.css.ts +1 -1
  465. package/src/generated/themes/CountrySelector.css.ts +1 -1
  466. package/src/generated/themes/Divider.css.ts +1 -1
  467. package/src/generated/themes/FilterMenu.css.ts +1 -1
  468. package/src/generated/themes/Footer.css.ts +1 -1
  469. package/src/generated/themes/HeroBanner.css.ts +1 -1
  470. package/src/generated/themes/ListItem.css.ts +1 -1
  471. package/src/generated/themes/MastheadItem.css.ts +1 -1
  472. package/src/generated/themes/MastheadMobileMenu.css.ts +1 -1
  473. package/src/generated/themes/MastheadShell.css.ts +1 -1
  474. package/src/generated/themes/Modal.css.ts +1 -1
  475. package/src/generated/themes/Pagination.css.ts +1 -1
  476. package/src/generated/themes/PhoneNumberField.css.ts +1 -1
  477. package/src/generated/themes/RatingBar.css.ts +13 -0
  478. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  479. package/src/generated/themes/Review.css.ts +13 -0
  480. package/src/generated/themes/ReviewItem.css.ts +13 -0
  481. package/src/generated/themes/Search.css.ts +1 -1
  482. package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
  483. package/src/generated/themes/SecondaryNavigationItem.css.ts +1 -1
  484. package/src/generated/themes/SecondaryNavigationSubItem.css.ts +1 -1
  485. package/src/generated/themes/SelectBox.css.ts +1 -1
  486. package/src/generated/themes/Slider.css.ts +1 -1
  487. package/src/generated/themes/StepInput.css.ts +1 -1
  488. package/src/generated/themes/TabNavigation.css.ts +1 -1
  489. package/src/generated/themes/Tag.css.ts +1 -1
  490. package/src/generated/themes/TagGroup.css.ts +13 -0
  491. package/src/generated/themes/TextArea.css.ts +1 -1
  492. package/src/generated/themes/TextField.css.ts +1 -1
  493. package/src/generated/themes/Toast.css.ts +1 -1
  494. package/src/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +1 -1
  495. package/src/i18n/messagebundle.properties +35 -7
  496. package/src/i18n/messagebundle_en.properties +17 -7
  497. package/src/themes/AccordionItem.css +6 -4
  498. package/src/themes/Avatar.css +24 -7
  499. package/src/themes/Badge.css +1 -1
  500. package/src/themes/CountrySelector.css +49 -26
  501. package/src/themes/Divider.css +6 -2
  502. package/src/themes/FilterMenu.css +52 -15
  503. package/src/themes/Footer.css +93 -168
  504. package/src/themes/HeroBanner.css +52 -24
  505. package/src/themes/ListItem.css +4 -0
  506. package/src/themes/MastheadItem.css +12 -2
  507. package/src/themes/MastheadMobileMenu.css +4 -0
  508. package/src/themes/MastheadShell.css +25 -29
  509. package/src/themes/Modal.css +6 -0
  510. package/src/themes/Pagination.css +7 -0
  511. package/src/themes/PhoneNumberField.css +15 -1
  512. package/src/themes/RatingBar.css +52 -0
  513. package/src/themes/Review.css +196 -0
  514. package/src/themes/ReviewItem.css +121 -0
  515. package/src/themes/Search.css +46 -25
  516. package/src/themes/SecondaryNavigation.css +41 -13
  517. package/src/themes/SecondaryNavigationItem.css +6 -4
  518. package/src/themes/SecondaryNavigationSubItem.css +5 -5
  519. package/src/themes/SelectBox.css +51 -24
  520. package/src/themes/StepInput.css +5 -2
  521. package/src/themes/TabNavigation.css +7 -1
  522. package/src/themes/Tag.css +200 -148
  523. package/src/themes/TagGroup.css +90 -0
  524. package/src/themes/TextArea.css +13 -0
  525. package/src/themes/TextField.css +97 -60
  526. package/src/themes/Toast.css +4 -0
  527. package/dist/assets/bundle.esm-f65ae7da.js +0 -315
  528. package/dist/assets/messagebundle_en-7249941b.js +0 -1
  529. package/dist/assets/parameters-bundle.css-76ef62fa.js +0 -2
  530. package/dist/assets/video.es-17aecf95.js +0 -219
  531. package/dist/css/themes/PasswordField.css +0 -1
  532. package/dist/generated/themes/PasswordField.css.js +0 -9
  533. package/dist/generated/themes/PasswordField.css.js.map +0 -1
  534. package/src/generated/themes/PasswordField.css.ts +0 -13
  535. package/src/themes/PasswordField.css +0 -29
  536. /package/dist/generated/themes/{PasswordField.css.d.ts → RatingBar.css.d.ts} +0 -0
package/dist/Tag.js CHANGED
@@ -14,7 +14,7 @@ import { isEnter } from "@ui5/webcomponents-base/dist/Keys.js";
14
14
  import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
15
15
  import TagTemplate from "./generated/templates/TagTemplate.lit.js";
16
16
  // Styles
17
- import TagCss from "./generated/themes/Tag.css.js";
17
+ import TagCss from "./generated/themes/Tag.css";
18
18
  export var TagType;
19
19
  (function (TagType) {
20
20
  TagType["Text"] = "Text";
@@ -27,6 +27,11 @@ export var IconPlacement;
27
27
  IconPlacement["Start"] = "Start";
28
28
  IconPlacement["End"] = "End";
29
29
  })(IconPlacement || (IconPlacement = {}));
30
+ export var TagSize;
31
+ (function (TagSize) {
32
+ TagSize["Small"] = "Small";
33
+ TagSize["Medium"] = "Medium";
34
+ })(TagSize || (TagSize = {}));
30
35
  /**
31
36
  * @class
32
37
  *
@@ -38,7 +43,7 @@ export var IconPlacement;
38
43
  * For the <code>udex-tag</code>
39
44
  * <h3>ES6 Module Import</h3>
40
45
  *
41
- * <code>import @udex/web-components/dist/Tag.js";</code>
46
+ * <code>import "@udex/web-components/dist/Tag.js";</code>
42
47
  *
43
48
  * @constructor
44
49
  * @author SAP SE
@@ -54,30 +59,19 @@ let UDExTag = class UDExTag extends UI5Element {
54
59
  if (isDesktop()) {
55
60
  this.setAttribute("desktop", "");
56
61
  }
57
- }
58
- get tagClasses() {
59
- return `udex-tag udex-tag--${this.size.toLocaleLowerCase()} udex-tag-${this.design?.toLowerCase()}
60
- ${this.readOnly ? "udex-tag--readonly" : ""}
61
- ${this.nonSelectable ? "udex-tag--nonselectable" : ""}
62
- ${this.selected ? "udex-tag--selected" : ""}`;
63
- }
64
- get startIcon() {
65
- return this.icon && !this.readOnly && this.iconPlacement === IconPlacement.Start;
66
- }
67
- get endIcon() {
68
- return this.icon && !this.readOnly && this.iconPlacement === IconPlacement.End;
62
+ if (this.accessibleRole !== "button") {
63
+ this.shadowRoot?.firstElementChild?.removeAttribute("aria-pressed");
64
+ }
69
65
  }
70
66
  setSelected() {
71
67
  this.selected = !this.selected;
72
68
  }
73
69
  iconClickHandler(e) {
74
70
  e.stopPropagation();
75
- if (!this.readOnly) {
76
- this.fireEvent("iconClick");
77
- }
71
+ this.fireEvent("iconClick");
78
72
  }
79
73
  tagClickHandler() {
80
- if (!this.readOnly && !this.toBeDeleted && !this.nonSelectable) {
74
+ if (this.isInteractiveTag) {
81
75
  this.setSelected();
82
76
  this.fireEvent("selectionChange");
83
77
  }
@@ -93,14 +87,29 @@ let UDExTag = class UDExTag extends UI5Element {
93
87
  _focusout() {
94
88
  this.focused = !this.focused;
95
89
  }
90
+ get tagClasses() {
91
+ const hasIconClass = this.hasIcon ? "udex-tag--has-icon" : "";
92
+ const readOnlyClass = this.readOnly ? "udex-tag--readonly" : "";
93
+ const nonSelectableClass = this.nonSelectable && !this.href ? "udex-tag--nonselectable" : "";
94
+ const linkTagClass = this.href ? "udex-tag--link" : "";
95
+ const selectableClass = this.selected ? "udex-tag--selected" : "";
96
+ const designClass = `udex-tag-${this.design?.toLowerCase()}`;
97
+ return `udex-tag udex-tag--${this.size.toLocaleLowerCase()} ${designClass} ${hasIconClass} ${readOnlyClass} ${nonSelectableClass} ${linkTagClass} ${selectableClass}`.trim();
98
+ }
99
+ get startIcon() {
100
+ return this.hasIcon && this.iconPlacement === IconPlacement.Start;
101
+ }
102
+ get endIcon() {
103
+ return this.hasIcon && this.iconPlacement === IconPlacement.End;
104
+ }
96
105
  get _tabIndex() {
97
- if (this.readOnly || this.overflows || this.nonSelectable) {
106
+ if (this.overflows || this.nonSelectable) {
98
107
  return -1;
99
108
  }
100
109
  return 0;
101
110
  }
102
111
  get textDom() {
103
- return this.getDomRef()?.querySelector(".udex-tag__text");
112
+ return this.getDomRef().querySelector(".udex-tag__text");
104
113
  }
105
114
  get isTruncatable() {
106
115
  if (!this.textDom) {
@@ -108,15 +117,30 @@ let UDExTag = class UDExTag extends UI5Element {
108
117
  }
109
118
  return Math.ceil(this.textDom.getBoundingClientRect().width) < Math.ceil(this.textDom.scrollWidth);
110
119
  }
120
+ get isInteractiveTag() {
121
+ return !this.readOnly && !this.toBeDeleted && !this.nonSelectable;
122
+ }
123
+ get hasIcon() {
124
+ return !!this.icon && !this.readOnly;
125
+ }
126
+ get iconAccessibleName() {
127
+ return this.accessibleName || this.text;
128
+ }
129
+ tagLinkClickHandler(e) {
130
+ this.fireEvent("tagLinkClick", { originalEvent: e }, true);
131
+ }
111
132
  };
112
133
  __decorate([
113
134
  property()
114
135
  ], UDExTag.prototype, "text", void 0);
136
+ __decorate([
137
+ property()
138
+ ], UDExTag.prototype, "href", void 0);
115
139
  __decorate([
116
140
  property({ type: TagType, defaultValue: TagType.Grey })
117
141
  ], UDExTag.prototype, "design", void 0);
118
142
  __decorate([
119
- property({ type: String, defaultValue: "Small" })
143
+ property({ type: TagSize, defaultValue: TagSize.Small })
120
144
  ], UDExTag.prototype, "size", void 0);
121
145
  __decorate([
122
146
  property()
@@ -175,6 +199,13 @@ UDExTag = __decorate([
175
199
  */
176
200
  ,
177
201
  event("iconClick")
202
+ /**
203
+ * Emitted when tag link was clicked
204
+ *
205
+ * @public
206
+ */
207
+ ,
208
+ event("tagLinkClick")
178
209
  ], UDExTag);
179
210
  UDExTag.define();
180
211
  export default UDExTag;
package/dist/Tag.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.js","sourceRoot":"","sources":["../src/Tag.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport { isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\n\nimport TagTemplate from \"./generated/templates/TagTemplate.lit.js\";\n\n// Styles\nimport TagCss from \"./generated/themes/Tag.css.js\";\n\nexport enum TagType {\n Text = \"Text\",\n White = \"White\",\n Outlined = \"Outlined\",\n Grey = \"Grey\"\n}\n\nexport enum IconPlacement {\n Start = \"Start\",\n End = \"End\"\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-tag</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/Tag.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-tag\n * @public\n */\n@customElement({\n tag: \"udex-tag\",\n renderer: litRender,\n styles: TagCss,\n template: TagTemplate,\n dependencies: [Icon],\n})\n\n/**\n * Emitted when tag was clicked\n *\n * @event sap.ui.webc.web-components.UDExTag#selectionChange\n * @public\n */\n@event(\"selectionChange\")\n/**\n * Emitted when icon in tag was clicked\n *\n * @event sap.ui.webc.web-components.UDExTag#iconClick\n * @public\n */\n@event(\"iconClick\")\nclass UDExTag extends UI5Element {\n /**\n * Defines the text of the tag\n *\n * @default \"\"\n * @public\n */\n @property()\n text!: string;\n\n /**\n * Defines the design type of tag\n *\n * @default \"Grey\"\n * @public\n */\n @property({ type: TagType, defaultValue: TagType.Grey })\n design?: `${TagType}`;\n /**\n * Defines the size of the component.\n *\n * @default \"Small\"\n * @public\n */\n @property({ type: String, defaultValue: \"Small\" })\n size!: \"Small\" | \"Medium\";\n /**\n * Defines icon name\n *\n * @default \"\"\n * @public\n */\n @property()\n icon!: string;\n\n /**\n * Defines icon placement if icon was provided\n *\n * @default \"End\"\n * @public\n */\n @property({ type: IconPlacement, defaultValue: IconPlacement.End })\n iconPlacement? : `${IconPlacement}`;\n\n /**\n * Defines if tag is in readnly state\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readOnly!: boolean;\n\n /**\n * Defines the accessible ARIA name of the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Defines the role attribute of component\n *\n * @default \"button\"\n * @public\n */\n @property({ defaultValue: \"button\" })\n accessibleRole!: string;\n\n /**\n * Defines if tag is selected\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n selected!: boolean;\n\n /**\n * Defines whether the component is focused or not.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n focused!: boolean;\n\n /**\n * Defines whether the token is being deleted\n * This flag is used in the udex-select-box\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n toBeDeleted!: boolean;\n\n /**\n * Set by the tokenizer when a token is in the \"more\" area (overflowing)\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n overflows!: boolean;\n\n @property({ type: Boolean })\n singleToken!: boolean;\n\n /**\n * Toggle on/off nonSelectable property on tag\n * @default true\n * @private\n */\n @property({ type: Boolean })\n nonSelectable!: boolean;\n\n onBeforeRendering() {\n this.toBeDeleted = false;\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n get tagClasses() {\n return `udex-tag udex-tag--${this.size.toLocaleLowerCase()} udex-tag-${this.design?.toLowerCase()}\n ${this.readOnly ? \"udex-tag--readonly\" : \"\"}\n ${this.nonSelectable ? \"udex-tag--nonselectable\" : \"\"}\n ${this.selected ? \"udex-tag--selected\" : \"\"}`;\n }\n\n get startIcon() {\n return this.icon && !this.readOnly && this.iconPlacement === IconPlacement.Start;\n }\n\n get endIcon() {\n return this.icon && !this.readOnly && this.iconPlacement === IconPlacement.End;\n }\n\n setSelected() {\n this.selected = !this.selected;\n }\n\n iconClickHandler(e: Event) {\n e.stopPropagation();\n if (!this.readOnly) {\n this.fireEvent(\"iconClick\");\n }\n }\n\n tagClickHandler() {\n if (!this.readOnly && !this.toBeDeleted && !this.nonSelectable) {\n this.setSelected();\n this.fireEvent(\"selectionChange\");\n }\n }\n\n tagKeyDown(e: KeyboardEvent) {\n if (isEnter(e)) {\n this.tagClickHandler();\n }\n }\n\n _focusin() {\n this.focused = true;\n }\n\n _focusout() {\n this.focused = !this.focused;\n }\n\n get _tabIndex() {\n if (this.readOnly || this.overflows || this.nonSelectable) {\n return -1;\n }\n return 0;\n }\n\n get textDom() {\n return this.getDomRef()?.querySelector(\".udex-tag__text\");\n }\n\n get isTruncatable() {\n if (!this.textDom) {\n return false;\n }\n\n return Math.ceil(this.textDom.getBoundingClientRect().width) < Math.ceil(this.textDom.scrollWidth);\n }\n}\n\nUDExTag.define();\n\nexport default UDExTag;\n"]}
1
+ {"version":3,"file":"Tag.js","sourceRoot":"","sources":["../src/Tag.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport { isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\n\nimport TagTemplate from \"./generated/templates/TagTemplate.lit.js\";\n\n// Styles\nimport TagCss from \"./generated/themes/Tag.css\";\n\nexport enum TagType {\n Text = \"Text\",\n White = \"White\",\n Outlined = \"Outlined\",\n Grey = \"Grey\"\n}\n\nexport enum IconPlacement {\n Start = \"Start\",\n End = \"End\"\n}\n\nexport enum TagSize {\n Small = \"Small\",\n Medium = \"Medium\"\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-tag</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/Tag.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-tag\n * @public\n */\n@customElement({\n tag: \"udex-tag\",\n renderer: litRender,\n styles: TagCss,\n template: TagTemplate,\n dependencies: [Icon],\n})\n\n/**\n * Emitted when tag was clicked\n *\n * @event sap.ui.webc.web-components.UDExTag#selectionChange\n * @public\n */\n@event(\"selectionChange\")\n\n/**\n * Emitted when icon in tag was clicked\n *\n * @event sap.ui.webc.web-components.UDExTag#iconClick\n * @public\n */\n@event(\"iconClick\")\n/**\n * Emitted when tag link was clicked\n *\n * @public\n */\n@event(\"tagLinkClick\")\nclass UDExTag extends UI5Element {\n /**\n * Defines the text of the tag\n *\n * @default \"\"\n * @public\n */\n @property()\n text!: string;\n /**\n * Defines the href for behavior of the tag as a link\n *\n * @default \"\"\n * @public\n */\n @property()\n href!: string;\n /**\n * Defines the design type of tag\n *\n * @default \"Grey\"\n * @public\n */\n @property({ type: TagType, defaultValue: TagType.Grey })\n design?: `${TagType}`;\n\n /**\n * Defines the size of the component.\n *\n * @default \"Small\"\n * @public\n */\n @property({ type: TagSize, defaultValue: TagSize.Small })\n size!: `${TagSize}`;\n\n /**\n * Defines icon name\n *\n * @default \"\"\n * @public\n */\n @property()\n icon!: string;\n\n /**\n * Defines icon placement if icon was provided\n *\n * @default \"End\"\n * @public\n */\n @property({ type: IconPlacement, defaultValue: IconPlacement.End })\n iconPlacement? : `${IconPlacement}`;\n\n /**\n * Defines if tag is in readnly state\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readOnly!: boolean;\n\n /**\n * Defines the accessible ARIA name of the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Defines the role attribute of component\n *\n * @default \"button\"\n * @public\n */\n @property({ defaultValue: \"button\" })\n accessibleRole!: string;\n\n /**\n * Defines if tag is selected\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n selected!: boolean;\n\n /**\n * Defines whether the component is focused or not.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n focused!: boolean;\n\n /**\n * Defines whether the token is being deleted\n * This flag is used in the udex-select-box\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n toBeDeleted!: boolean;\n\n /**\n * Set by the tokenizer when a token is in the \"more\" area (overflowing)\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n overflows!: boolean;\n\n @property({ type: Boolean })\n singleToken!: boolean;\n\n /**\n * Toggle on/off nonSelectable property on tag\n * @default true\n * @private\n */\n @property({ type: Boolean })\n nonSelectable!: boolean;\n\n onBeforeRendering(): void {\n this.toBeDeleted = false;\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n if (this.accessibleRole !== \"button\") {\n this.shadowRoot?.firstElementChild?.removeAttribute(\"aria-pressed\");\n }\n }\n\n setSelected(): void {\n this.selected = !this.selected;\n }\n\n iconClickHandler(e: Event): void {\n e.stopPropagation();\n this.fireEvent(\"iconClick\");\n }\n\n tagClickHandler(): void {\n if (this.isInteractiveTag) {\n this.setSelected();\n this.fireEvent(\"selectionChange\");\n }\n }\n\n tagKeyDown(e: KeyboardEvent): void {\n if (isEnter(e)) {\n this.tagClickHandler();\n }\n }\n\n _focusin(): void {\n this.focused = true;\n }\n\n _focusout(): void {\n this.focused = !this.focused;\n }\n\n get tagClasses(): string {\n const hasIconClass = this.hasIcon ? \"udex-tag--has-icon\" : \"\";\n const readOnlyClass = this.readOnly ? \"udex-tag--readonly\" : \"\";\n const nonSelectableClass = this.nonSelectable && !this.href ? \"udex-tag--nonselectable\" : \"\";\n const linkTagClass = this.href ? \"udex-tag--link\" : \"\";\n const selectableClass = this.selected ? \"udex-tag--selected\" : \"\";\n const designClass = `udex-tag-${this.design?.toLowerCase()}`;\n return `udex-tag udex-tag--${this.size.toLocaleLowerCase()} ${designClass} ${hasIconClass} ${readOnlyClass} ${nonSelectableClass} ${linkTagClass} ${selectableClass}`.trim();\n }\n\n get startIcon(): boolean {\n return this.hasIcon && this.iconPlacement === IconPlacement.Start;\n }\n\n get endIcon(): boolean {\n return this.hasIcon && this.iconPlacement === IconPlacement.End;\n }\n\n get _tabIndex(): number {\n if (this.overflows || this.nonSelectable) {\n return -1;\n }\n return 0;\n }\n\n get textDom(): HTMLElement {\n return this.getDomRef()!.querySelector(\".udex-tag__text\")!;\n }\n\n get isTruncatable(): boolean {\n if (!this.textDom) {\n return false;\n }\n\n return Math.ceil(this.textDom.getBoundingClientRect().width) < Math.ceil(this.textDom.scrollWidth);\n }\n\n get isInteractiveTag(): boolean {\n return !this.readOnly && !this.toBeDeleted && !this.nonSelectable;\n }\n\n get hasIcon(): boolean {\n return !!this.icon && !this.readOnly;\n }\n\n get iconAccessibleName(): string {\n return this.accessibleName || this.text;\n }\n\n tagLinkClickHandler(e: Event): void {\n this.fireEvent(\"tagLinkClick\", { originalEvent: e }, true);\n }\n}\n\nUDExTag.define();\n\nexport default UDExTag;\n"]}
@@ -0,0 +1,94 @@
1
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import Tokenizer from "@ui5/webcomponents/dist/Tokenizer.js";
3
+ import Token from "@ui5/webcomponents/dist/Token.js";
4
+ import UDExTag from "./Tag.js";
5
+ export declare enum PlacementType {
6
+ Left = "Left",
7
+ Right = "Right",
8
+ Top = "Top",
9
+ Bottom = "Bottom"
10
+ }
11
+ /**
12
+ * @class
13
+ *
14
+ * <h3 class="comment-api-title">Overview</h3>
15
+ *
16
+ *
17
+ * <h3>Usage</h3>
18
+ *
19
+ * For the <code>udex-tag-group</code>
20
+ * <h3>ES6 Module Import</h3>
21
+ *
22
+ * <code>import "@udex/web-components/dist/TagGroup.js";</code>
23
+ *
24
+ * @constructor
25
+ * @extends UI5Element
26
+ * @public
27
+ */
28
+ declare class UDExTagGroup extends UI5Element {
29
+ /**
30
+ * Defines whether the UI5Tokenizer is expanded.
31
+ *
32
+ * @default false
33
+ * @public
34
+ */
35
+ tokenizerExpanded: boolean;
36
+ /**
37
+ * Defines whether the component is in disabled state.
38
+ *
39
+ * @default false
40
+ * @public
41
+ */
42
+ disabled: boolean;
43
+ /**
44
+ * Defines whether the component is readonly.
45
+ *
46
+ * @default false
47
+ * @public
48
+ */
49
+ readonly: boolean;
50
+ /**
51
+ * Defines whether the component is displayonly.
52
+ *
53
+ * @default false
54
+ * @public
55
+ */
56
+ displayonly: boolean;
57
+ /**
58
+ * Defines the tags.
59
+ *
60
+ * @public
61
+ */
62
+ items: Array<UDExTag>;
63
+ /**
64
+ * Determines on which side of the component the Tooltip is displayed.
65
+ *
66
+ * @default "Bottom"
67
+ * @public
68
+ */
69
+ tooltipPlacement: `${PlacementType}`;
70
+ /**
71
+ * @private
72
+ */
73
+ _isHiddenTags: boolean;
74
+ _tokenizer: Tokenizer;
75
+ _nMoreBtn: HTMLElement | null;
76
+ _resizeHandler: () => void;
77
+ constructor();
78
+ get hiddenTags(): Token[];
79
+ get isReadOrDisplayOnly(): boolean;
80
+ get tagTabIndex(): string;
81
+ get tokenizer(): Tokenizer;
82
+ get tagRole(): string;
83
+ onAfterRendering(): void;
84
+ _nMoreKeyDownHandler(e: Event): void;
85
+ onEnterDOM(): void;
86
+ onExitDOM(): void;
87
+ _onResize(): void;
88
+ tagClickHandler(e: CustomEvent): void;
89
+ tagIconClickHandler(e: CustomEvent): void;
90
+ handleShowMoreButtonKeydown(e: KeyboardEvent): void;
91
+ handleTagKeyDown(e: KeyboardEvent): void;
92
+ showMoreItems(): void;
93
+ }
94
+ export default UDExTagGroup;
@@ -0,0 +1,174 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
8
+ import Tokenizer from "@ui5/webcomponents/dist/Tokenizer.js";
9
+ import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
10
+ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
11
+ import { isEnter, isSpace, isEscape } from "@ui5/webcomponents-base/dist/Keys.js";
12
+ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
13
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
14
+ import event from "@ui5/webcomponents-base/dist/decorators/event.js";
15
+ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
16
+ import Token from "@ui5/webcomponents/dist/Token.js";
17
+ import UDExTag from "./Tag.js";
18
+ import UDExTooltip from "./Tooltip.js";
19
+ import TagGroupTemplate from "./generated/templates/TagGroupTemplate.lit.js";
20
+ // Styles
21
+ import TagGroupCss from "./generated/themes/TagGroup.css";
22
+ export var PlacementType;
23
+ (function (PlacementType) {
24
+ PlacementType["Left"] = "Left";
25
+ PlacementType["Right"] = "Right";
26
+ PlacementType["Top"] = "Top";
27
+ PlacementType["Bottom"] = "Bottom";
28
+ })(PlacementType || (PlacementType = {}));
29
+ /**
30
+ * @class
31
+ *
32
+ * <h3 class="comment-api-title">Overview</h3>
33
+ *
34
+ *
35
+ * <h3>Usage</h3>
36
+ *
37
+ * For the <code>udex-tag-group</code>
38
+ * <h3>ES6 Module Import</h3>
39
+ *
40
+ * <code>import "@udex/web-components/dist/TagGroup.js";</code>
41
+ *
42
+ * @constructor
43
+ * @extends UI5Element
44
+ * @public
45
+ */
46
+ let UDExTagGroup = class UDExTagGroup extends UI5Element {
47
+ constructor() {
48
+ super();
49
+ this._resizeHandler = this._onResize.bind(this);
50
+ }
51
+ get hiddenTags() {
52
+ return this._tokenizer?.overflownTokens || [];
53
+ }
54
+ get isReadOrDisplayOnly() {
55
+ return this.readonly || this.displayonly;
56
+ }
57
+ get tagTabIndex() {
58
+ return this.disabled ? "-1" : "";
59
+ }
60
+ get tokenizer() {
61
+ return this.shadowRoot.querySelector(`#${this._id}-tag-group-tokenizer`);
62
+ }
63
+ get tagRole() {
64
+ return this.displayonly || this.readonly ? "option" : "";
65
+ }
66
+ onAfterRendering() {
67
+ this._tokenizer = this.tokenizer;
68
+ this._nMoreBtn = this._tokenizer.shadowRoot?.querySelector(`.ui5-tokenizer-more-text`) || null;
69
+ if (!this.readonly && !this.disabled && this._nMoreBtn && !this._nMoreBtn.hasAttribute("tabindex")) {
70
+ this._nMoreBtn.setAttribute("tabindex", "0");
71
+ this._nMoreBtn.addEventListener("keydown", this._nMoreKeyDownHandler.bind(this));
72
+ }
73
+ }
74
+ _nMoreKeyDownHandler(e) {
75
+ if (isSpace(e) || isEnter(e)) {
76
+ this.showMoreItems();
77
+ }
78
+ }
79
+ onEnterDOM() {
80
+ ResizeHandler.register(this, this._resizeHandler);
81
+ }
82
+ onExitDOM() {
83
+ ResizeHandler.deregister(this, this._resizeHandler);
84
+ this._nMoreBtn?.removeEventListener("keydown", this._nMoreKeyDownHandler.bind(this));
85
+ }
86
+ _onResize() {
87
+ this._isHiddenTags = false;
88
+ this._isHiddenTags = this._tokenizer?._nMoreCount > 0;
89
+ }
90
+ tagClickHandler(e) {
91
+ this.fireEvent("tag-click", { tag: e.target });
92
+ }
93
+ tagIconClickHandler(e) {
94
+ this.fireEvent("tag-icon-click", { tag: e.target });
95
+ }
96
+ handleShowMoreButtonKeydown(e) {
97
+ if (isEscape(e)) {
98
+ this._nMoreBtn?.focus();
99
+ }
100
+ }
101
+ handleTagKeyDown(e) {
102
+ this.fireEvent("tag-keydown", { originalEvent: e }, true);
103
+ }
104
+ showMoreItems() {
105
+ if (this.fireEvent("show-more-tags", {}, true)) {
106
+ const tooltip = this.shadowRoot.querySelector(`#${this._id}-tag-group-tooltip`);
107
+ if (this._nMoreBtn) {
108
+ tooltip?.onOpen(this._nMoreBtn);
109
+ }
110
+ }
111
+ }
112
+ };
113
+ __decorate([
114
+ property({ type: Boolean })
115
+ ], UDExTagGroup.prototype, "tokenizerExpanded", void 0);
116
+ __decorate([
117
+ property({ type: Boolean })
118
+ ], UDExTagGroup.prototype, "disabled", void 0);
119
+ __decorate([
120
+ property({ type: Boolean })
121
+ ], UDExTagGroup.prototype, "readonly", void 0);
122
+ __decorate([
123
+ property({ type: Boolean })
124
+ ], UDExTagGroup.prototype, "displayonly", void 0);
125
+ __decorate([
126
+ slot({ type: HTMLElement, "default": true })
127
+ ], UDExTagGroup.prototype, "items", void 0);
128
+ __decorate([
129
+ property({ type: PlacementType, defaultValue: PlacementType.Bottom })
130
+ ], UDExTagGroup.prototype, "tooltipPlacement", void 0);
131
+ __decorate([
132
+ property({ type: Boolean })
133
+ ], UDExTagGroup.prototype, "_isHiddenTags", void 0);
134
+ UDExTagGroup = __decorate([
135
+ customElement({
136
+ tag: "udex-tag-group",
137
+ renderer: litRender,
138
+ styles: TagGroupCss,
139
+ template: TagGroupTemplate,
140
+ dependencies: [UDExTag, UDExTooltip, Tokenizer, Token],
141
+ })
142
+ /**
143
+ * Emitted when tag was clicked
144
+ *
145
+ * @public
146
+ */
147
+ ,
148
+ event("tag-click")
149
+ /**
150
+ * Emitted when icon in tag was clicked
151
+ *
152
+ * @public
153
+ */
154
+ ,
155
+ event("tag-icon-click")
156
+ /**
157
+ * Emitted when the tooltip was opened, can be canceled
158
+ *
159
+ * @public
160
+ */
161
+ ,
162
+ event("show-more-tags")
163
+ /**
164
+ * Emitted when a keydown event occurs on a tag, can be canceled
165
+ * Emitted custom event with keycode and tag details
166
+ *
167
+ * @public
168
+ */
169
+ ,
170
+ event("tag-keydown")
171
+ ], UDExTagGroup);
172
+ UDExTagGroup.define();
173
+ export default UDExTagGroup;
174
+ //# sourceMappingURL=TagGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TagGroup.js","sourceRoot":"","sources":["../src/TagGroup.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport Tokenizer from \"@ui5/webcomponents/dist/Tokenizer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport { isEnter, isSpace, isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Token from \"@ui5/webcomponents/dist/Token.js\";\nimport UDExTag from \"./Tag.js\";\nimport UDExTooltip from \"./Tooltip.js\";\n\nimport TagGroupTemplate from \"./generated/templates/TagGroupTemplate.lit.js\";\n\n// Styles\nimport TagGroupCss from \"./generated/themes/TagGroup.css\";\n\nexport enum PlacementType {\n Left = \"Left\",\n Right = \"Right\",\n Top = \"Top\",\n Bottom = \"Bottom\",\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-tag-group</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/TagGroup.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-tag-group\",\n renderer: litRender,\n styles: TagGroupCss,\n template: TagGroupTemplate,\n dependencies: [UDExTag, UDExTooltip, Tokenizer, Token],\n})\n/**\n * Emitted when tag was clicked\n *\n * @public\n */\n@event(\"tag-click\")\n/**\n * Emitted when icon in tag was clicked\n *\n * @public\n */\n@event(\"tag-icon-click\")\n/**\n * Emitted when the tooltip was opened, can be canceled\n *\n * @public\n */\n@event(\"show-more-tags\")\n/**\n * Emitted when a keydown event occurs on a tag, can be canceled\n * Emitted custom event with keycode and tag details\n *\n * @public\n */\n@event(\"tag-keydown\")\nclass UDExTagGroup extends UI5Element {\n /**\n * Defines whether the UI5Tokenizer is expanded.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n tokenizerExpanded!: boolean;\n /**\n * Defines whether the component is in disabled state.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines whether the component is readonly.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is displayonly.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Defines the tags.\n *\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n items!: Array<UDExTag>;\n\n /**\n * Determines on which side of the component the Tooltip is displayed.\n *\n * @default \"Bottom\"\n * @public\n */\n @property({ type: PlacementType, defaultValue: PlacementType.Bottom })\n tooltipPlacement!: `${PlacementType}`;\n\n /**\n * @private\n */\n @property({ type: Boolean })\n _isHiddenTags!: boolean;\n\n _tokenizer!: Tokenizer;\n _nMoreBtn!: HTMLElement | null;\n _resizeHandler: () => void;\n\n constructor() {\n super();\n this._resizeHandler = this._onResize.bind(this);\n }\n\n get hiddenTags(): Token[] {\n return this._tokenizer?.overflownTokens || [];\n }\n\n get isReadOrDisplayOnly(): boolean {\n return this.readonly || this.displayonly;\n }\n\n get tagTabIndex(): string {\n return this.disabled ? \"-1\" : \"\";\n }\n\n get tokenizer(): Tokenizer {\n return this.shadowRoot!.querySelector<Tokenizer>(`#${this._id}-tag-group-tokenizer`)!;\n }\n\n get tagRole(): string {\n return this.displayonly || this.readonly ? \"option\" : \"\";\n }\n\n onAfterRendering(): void {\n this._tokenizer = this.tokenizer;\n this._nMoreBtn = this._tokenizer.shadowRoot?.querySelector(`.ui5-tokenizer-more-text`) || null;\n if (!this.readonly && !this.disabled && this._nMoreBtn && !this._nMoreBtn.hasAttribute(\"tabindex\")) {\n this._nMoreBtn.setAttribute(\"tabindex\", \"0\");\n this._nMoreBtn.addEventListener(\"keydown\", this._nMoreKeyDownHandler.bind(this));\n }\n }\n\n _nMoreKeyDownHandler(e: Event) {\n if (isSpace(e as KeyboardEvent) || isEnter(e as KeyboardEvent)) {\n this.showMoreItems();\n }\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._resizeHandler);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._resizeHandler);\n this._nMoreBtn?.removeEventListener(\"keydown\", this._nMoreKeyDownHandler.bind(this));\n }\n\n _onResize(): void {\n this._isHiddenTags = false;\n this._isHiddenTags = this._tokenizer?._nMoreCount > 0;\n }\n\n tagClickHandler(e: CustomEvent): void {\n this.fireEvent(\"tag-click\", { tag: e.target as HTMLElement });\n }\n\n tagIconClickHandler(e: CustomEvent): void {\n this.fireEvent(\"tag-icon-click\", { tag: e.target as HTMLElement });\n }\n\n handleShowMoreButtonKeydown(e: KeyboardEvent): void {\n if (isEscape(e)) {\n this._nMoreBtn?.focus();\n }\n }\n\n handleTagKeyDown(e: KeyboardEvent): void {\n this.fireEvent(\"tag-keydown\", { originalEvent: e }, true);\n }\n\n showMoreItems(): void {\n if (this.fireEvent(\"show-more-tags\", {}, true)) {\n const tooltip = this.shadowRoot!.querySelector<UDExTooltip>(`#${this._id}-tag-group-tooltip`)!;\n if (this._nMoreBtn) {\n tooltip?.onOpen(this._nMoreBtn);\n }\n }\n }\n}\n\nUDExTagGroup.define();\n\nexport default UDExTagGroup;\n"]}
@@ -153,6 +153,18 @@ declare class UDExTextArea extends UI5Element {
153
153
  * @public
154
154
  */
155
155
  accessibleNameRef: string;
156
+ /**
157
+ * Defines the active (focus)
158
+ * @default false
159
+ * @private
160
+ */
161
+ active: boolean;
162
+ /**
163
+ * Defines is it the touch of the textarea (only for mobile devices).
164
+ * @default false
165
+ * @private
166
+ */
167
+ _isTouched: boolean;
156
168
  static i18nBundle: I18nBundle;
157
169
  static onDefine(): Promise<void>;
158
170
  getInputDomRef(): HTMLTextAreaElement;
@@ -165,12 +177,13 @@ declare class UDExTextArea extends UI5Element {
165
177
  };
166
178
  get ariaValueStateHiddenText(): string | undefined;
167
179
  get readOnlyText(): string;
168
- get ariaDescribedBy(): string;
180
+ get ariaDescribedBy(): string | undefined;
169
181
  get _supportingText(): string | undefined;
170
182
  handleInput: (event: InputEvent) => void;
171
183
  handleChange: () => void;
172
184
  handleGrowing: () => void;
173
185
  handleFocus: () => void;
186
+ handleClick(): void;
174
187
  handleBlur: () => void;
175
188
  get ariaInvalid(): "true" | null;
176
189
  onBeforeRendering(): void;
package/dist/TextArea.js CHANGED
@@ -12,6 +12,7 @@ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
12
12
  import getEffectiveScrollbarStyle from "@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js";
13
13
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
14
14
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
15
+ import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
15
16
  import { READ_ONLY, TEXTAREA_CHARACTERS_LEFT, VALUE_STATE_TYPE_ERROR, VALUE_STATE_TYPE_STANDARD, VALUE_STATE_TYPE_SUCCESS, VALUE_STATE_TYPE_WARNING, } from "./generated/i18n/i18n-defaults.js";
16
17
  import "@ui5/webcomponents/dist/Icon.js";
17
18
  import "@ui5/webcomponents-icons/dist/accept.js";
@@ -69,16 +70,19 @@ let UDExTextArea = UDExTextArea_1 = class UDExTextArea extends UI5Element {
69
70
  };
70
71
  this.handleFocus = () => {
71
72
  if (!this.disabled && !this.readonly && !this.displayonly) {
73
+ this.active = true;
72
74
  this.labelActiveClass = this._labelActiveClassName;
73
75
  }
74
76
  };
75
77
  this.handleBlur = () => {
78
+ this._isTouched = false;
76
79
  if (this.value) {
77
80
  this.labelActiveClass = this._labelActiveClassName;
78
81
  }
79
82
  else {
80
83
  this.labelActiveClass = "";
81
84
  }
85
+ this.active = false;
82
86
  };
83
87
  }
84
88
  static async onDefine() {
@@ -114,6 +118,9 @@ let UDExTextArea = UDExTextArea_1 = class UDExTextArea extends UI5Element {
114
118
  const valueStateTextDescId = this.hasValueState ? `${this._id}-valueStateDesc` : "";
115
119
  const readonlyTextDescId = this.readonly ? `${this._id}-readonlyDesc` : "";
116
120
  const supportingTextDescId = this._supportingText ? `${this._id}-supportingTextDesc` : "";
121
+ if (!valueStateTextDescId && !supportingTextDescId && !readonlyTextDescId) {
122
+ return;
123
+ }
117
124
  return `${valueStateTextDescId} ${supportingTextDescId} ${readonlyTextDescId}`;
118
125
  }
119
126
  get _supportingText() {
@@ -128,6 +135,11 @@ let UDExTextArea = UDExTextArea_1 = class UDExTextArea extends UI5Element {
128
135
  }
129
136
  }
130
137
  }
138
+ handleClick() {
139
+ if (!isDesktop()) {
140
+ this._isTouched = true;
141
+ }
142
+ }
131
143
  get ariaInvalid() {
132
144
  return this.fieldState === FieldState.Error ? "true" : null;
133
145
  }
@@ -193,6 +205,12 @@ __decorate([
193
205
  __decorate([
194
206
  property({ defaultValue: "" })
195
207
  ], UDExTextArea.prototype, "accessibleNameRef", void 0);
208
+ __decorate([
209
+ property({ type: Boolean })
210
+ ], UDExTextArea.prototype, "active", void 0);
211
+ __decorate([
212
+ property({ type: Boolean })
213
+ ], UDExTextArea.prototype, "_isTouched", void 0);
196
214
  UDExTextArea = UDExTextArea_1 = __decorate([
197
215
  customElement({
198
216
  tag: "udex-textarea",