@sapudex/web-components 0.114.2 → 0.127.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (456) hide show
  1. package/bundle.esm.js +6 -0
  2. package/config/wdio.conf.js +19 -8
  3. package/dist/AccordionItem.d.ts +2 -1
  4. package/dist/AccordionItem.js +3 -3
  5. package/dist/AccordionItem.js.map +1 -1
  6. package/dist/Avatar.d.ts +20 -1
  7. package/dist/Avatar.js +26 -2
  8. package/dist/Avatar.js.map +1 -1
  9. package/dist/AvatarGroup.d.ts +28 -0
  10. package/dist/AvatarGroup.js +126 -0
  11. package/dist/AvatarGroup.js.map +1 -0
  12. package/dist/CountrySelector.d.ts +1 -0
  13. package/dist/CountrySelector.js +3 -0
  14. package/dist/CountrySelector.js.map +1 -1
  15. package/dist/Dropdown.d.ts +11 -1
  16. package/dist/Dropdown.js +15 -3
  17. package/dist/Dropdown.js.map +1 -1
  18. package/dist/FilterMenu.d.ts +21 -5
  19. package/dist/FilterMenu.js +50 -8
  20. package/dist/FilterMenu.js.map +1 -1
  21. package/dist/Footer.d.ts +27 -0
  22. package/dist/Footer.js +27 -36
  23. package/dist/Footer.js.map +1 -1
  24. package/dist/HeroBanner.js +3 -0
  25. package/dist/HeroBanner.js.map +1 -1
  26. package/dist/InputGroup.js.map +1 -1
  27. package/dist/List.d.ts +7 -0
  28. package/dist/List.js +78 -18
  29. package/dist/List.js.map +1 -1
  30. package/dist/ListItem.d.ts +0 -1
  31. package/dist/ListItem.js +0 -6
  32. package/dist/ListItem.js.map +1 -1
  33. package/dist/ListItemBase.d.ts +3 -0
  34. package/dist/ListItemBase.js +12 -0
  35. package/dist/ListItemBase.js.map +1 -1
  36. package/dist/MastheadItem.d.ts +1 -0
  37. package/dist/MastheadItem.js +5 -11
  38. package/dist/MastheadItem.js.map +1 -1
  39. package/dist/MastheadShell.d.ts +8 -0
  40. package/dist/MastheadShell.js +10 -0
  41. package/dist/MastheadShell.js.map +1 -1
  42. package/dist/MessageStrip.js +1 -1
  43. package/dist/MessageStrip.js.map +1 -1
  44. package/dist/Pagination.d.ts +3 -0
  45. package/dist/Pagination.js +16 -4
  46. package/dist/Pagination.js.map +1 -1
  47. package/dist/PasswordField.d.ts +14 -4
  48. package/dist/PasswordField.js +24 -15
  49. package/dist/PasswordField.js.map +1 -1
  50. package/dist/PhoneNumberField.d.ts +6 -0
  51. package/dist/PhoneNumberField.js +6 -1
  52. package/dist/PhoneNumberField.js.map +1 -1
  53. package/dist/RatingBar.d.ts +53 -0
  54. package/dist/RatingBar.js +96 -0
  55. package/dist/RatingBar.js.map +1 -0
  56. package/dist/Review.d.ts +71 -0
  57. package/dist/Review.js +108 -0
  58. package/dist/Review.js.map +1 -0
  59. package/dist/Search.d.ts +51 -0
  60. package/dist/Search.js +65 -11
  61. package/dist/Search.js.map +1 -1
  62. package/dist/SearchableListBase.d.ts +1 -1
  63. package/dist/SearchableListBase.js +1 -1
  64. package/dist/SearchableListBase.js.map +1 -1
  65. package/dist/SecondaryNavigation.d.ts +35 -47
  66. package/dist/SecondaryNavigation.js +158 -167
  67. package/dist/SecondaryNavigation.js.map +1 -1
  68. package/dist/SecondaryNavigationItem.d.ts +101 -0
  69. package/dist/SecondaryNavigationItem.js +297 -0
  70. package/dist/SecondaryNavigationItem.js.map +1 -0
  71. package/dist/SecondaryNavigationItemBase.d.ts +82 -0
  72. package/dist/SecondaryNavigationItemBase.js +104 -0
  73. package/dist/SecondaryNavigationItemBase.js.map +1 -0
  74. package/dist/SecondaryNavigationSubItem.d.ts +53 -0
  75. package/dist/SecondaryNavigationSubItem.js +105 -0
  76. package/dist/SecondaryNavigationSubItem.js.map +1 -0
  77. package/dist/SelectBox.d.ts +1 -0
  78. package/dist/SelectBox.js +15 -1
  79. package/dist/SelectBox.js.map +1 -1
  80. package/dist/StatusBadge.d.ts +67 -0
  81. package/dist/StatusBadge.js +104 -0
  82. package/dist/StatusBadge.js.map +1 -0
  83. package/dist/Switch.d.ts +1 -0
  84. package/dist/Switch.js +3 -0
  85. package/dist/Switch.js.map +1 -1
  86. package/dist/Tab.d.ts +8 -0
  87. package/dist/Tab.js +4 -1
  88. package/dist/Tab.js.map +1 -1
  89. package/dist/TabNavigation.d.ts +20 -20
  90. package/dist/TabNavigation.js +82 -101
  91. package/dist/TabNavigation.js.map +1 -1
  92. package/dist/Tag.d.ts +13 -6
  93. package/dist/Tag.js +34 -20
  94. package/dist/Tag.js.map +1 -1
  95. package/dist/TextArea.d.ts +1 -1
  96. package/dist/TextArea.js +3 -0
  97. package/dist/TextArea.js.map +1 -1
  98. package/dist/TextField.d.ts +9 -0
  99. package/dist/TextField.js +16 -0
  100. package/dist/TextField.js.map +1 -1
  101. package/dist/Tooltip.d.ts +2 -2
  102. package/dist/Tooltip.js +3 -3
  103. package/dist/Tooltip.js.map +1 -1
  104. package/dist/assets/bundle.esm-7d53f4f2.js +314 -0
  105. package/dist/assets/messagebundle_en-6dcc9ab4.js +1 -0
  106. package/dist/assets/parameters-bundle.css-de55cf62.js +2 -0
  107. package/dist/css/themes/AccordionItem.css +1 -1
  108. package/dist/css/themes/Avatar.css +1 -1
  109. package/dist/css/themes/Badge.css +1 -1
  110. package/dist/css/themes/Checkbox.css +1 -1
  111. package/dist/css/themes/CountrySelector.css +1 -1
  112. package/dist/css/themes/Divider.css +1 -1
  113. package/dist/css/themes/Dropdown.css +1 -1
  114. package/dist/css/themes/FilterMenu.css +1 -1
  115. package/dist/css/themes/Footer.css +1 -1
  116. package/dist/css/themes/HeroBanner.css +1 -1
  117. package/dist/css/themes/MastheadShell.css +1 -1
  118. package/dist/css/themes/MediaPlayer.css +1 -1
  119. package/dist/css/themes/Modal.css +1 -1
  120. package/dist/css/themes/Pagination.css +1 -1
  121. package/dist/css/themes/PhoneNumberField.css +1 -1
  122. package/dist/css/themes/RatingBar.css +1 -0
  123. package/dist/css/themes/RatingIndicator.css +1 -1
  124. package/dist/css/themes/Review.css +1 -0
  125. package/dist/css/themes/Search.css +1 -1
  126. package/dist/css/themes/SecondaryNavigation.css +1 -1
  127. package/dist/css/themes/SecondaryNavigationItem.css +1 -0
  128. package/dist/css/themes/SecondaryNavigationSubItem.css +1 -0
  129. package/dist/css/themes/SelectBox.css +1 -1
  130. package/dist/css/themes/Slider.css +1 -1
  131. package/dist/css/themes/StatusBadge.css +1 -0
  132. package/dist/css/themes/StepInput.css +1 -1
  133. package/dist/css/themes/TabNavigation.css +1 -1
  134. package/dist/css/themes/Tag.css +1 -1
  135. package/dist/css/themes/TextField.css +1 -1
  136. package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +1 -1
  137. package/dist/custom-elements-internal.json +1291 -119
  138. package/dist/custom-elements.json +1298 -199
  139. package/dist/data/CountryListISO3166.js +162 -162
  140. package/dist/data/CountryListISO3166.js.map +1 -1
  141. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  142. package/dist/generated/assets/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.json +1 -1
  143. package/dist/generated/i18n/i18n-defaults.d.ts +16 -1
  144. package/dist/generated/i18n/i18n-defaults.js +20 -5
  145. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  146. package/dist/generated/templates/AccordionItemTemplate.lit.js +1 -1
  147. package/dist/generated/templates/AccordionItemTemplate.lit.js.map +1 -1
  148. package/dist/generated/templates/CountrySelectorTemplate.lit.js +1 -1
  149. package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
  150. package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
  151. package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
  152. package/dist/generated/templates/DropdownTemplate.lit.js +2 -2
  153. package/dist/generated/templates/DropdownTemplate.lit.js.map +1 -1
  154. package/dist/generated/templates/FilterMenuTemplate.lit.js +3 -3
  155. package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
  156. package/dist/generated/templates/FooterTemplate.lit.js +26 -28
  157. package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
  158. package/dist/generated/templates/HeroBannerTemplate.lit.js +9 -8
  159. package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
  160. package/dist/generated/templates/ListGroupHeaderTemplate.lit.js +4 -4
  161. package/dist/generated/templates/ListGroupHeaderTemplate.lit.js.map +1 -1
  162. package/dist/generated/templates/ListItemTemplate.lit.js +1 -1
  163. package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
  164. package/dist/generated/templates/ListSelectAllTemplate.lit.js +1 -1
  165. package/dist/generated/templates/ListSelectAllTemplate.lit.js.map +1 -1
  166. package/dist/generated/templates/MastheadItemTemplate.lit.js +3 -3
  167. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
  168. package/dist/generated/templates/MastheadShellTemplate.lit.js +2 -2
  169. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  170. package/dist/generated/templates/PaginationTemplate.lit.js +1 -1
  171. package/dist/generated/templates/PaginationTemplate.lit.js.map +1 -1
  172. package/dist/generated/templates/PasswordFieldTemplate.lit.js +1 -2
  173. package/dist/generated/templates/PasswordFieldTemplate.lit.js.map +1 -1
  174. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +3 -3
  175. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
  176. package/dist/generated/templates/RatingBarTemplate.lit.d.ts +4 -0
  177. package/dist/generated/templates/RatingBarTemplate.lit.js +6 -0
  178. package/dist/generated/templates/RatingBarTemplate.lit.js.map +1 -0
  179. package/dist/generated/templates/ReviewTemplate.lit.d.ts +4 -0
  180. package/dist/generated/templates/ReviewTemplate.lit.js +10 -0
  181. package/dist/generated/templates/ReviewTemplate.lit.js.map +1 -0
  182. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +1 -1
  183. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +1 -1
  184. package/dist/generated/templates/SearchTemplate.lit.js +7 -7
  185. package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
  186. package/dist/generated/templates/SearchableListBaseTemplate.lit.js +2 -2
  187. package/dist/generated/templates/SearchableListBaseTemplate.lit.js.map +1 -1
  188. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.d.ts +4 -0
  189. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +11 -0
  190. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -0
  191. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.d.ts +4 -0
  192. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +10 -0
  193. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +1 -0
  194. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +7 -10
  195. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  196. package/dist/generated/templates/SelectBoxTemplate.lit.js +2 -2
  197. package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
  198. package/dist/generated/templates/StatusBadgeTemplate.lit.d.ts +4 -0
  199. package/dist/generated/templates/StatusBadgeTemplate.lit.js +5 -0
  200. package/dist/generated/templates/StatusBadgeTemplate.lit.js.map +1 -0
  201. package/dist/generated/templates/SwitchTemplate.lit.js +2 -2
  202. package/dist/generated/templates/SwitchTemplate.lit.js.map +1 -1
  203. package/dist/generated/templates/TabInOverflowTemplate.lit.js +2 -2
  204. package/dist/generated/templates/TabInOverflowTemplate.lit.js.map +1 -1
  205. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js +1 -1
  206. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js.map +1 -1
  207. package/dist/generated/templates/TabNavigationTemplate.lit.js +2 -2
  208. package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
  209. package/dist/generated/templates/TagTemplate.lit.js +9 -3
  210. package/dist/generated/templates/TagTemplate.lit.js.map +1 -1
  211. package/dist/generated/templates/TextAreaTemplate.lit.js +1 -1
  212. package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
  213. package/dist/generated/templates/TextFieldTemplate.lit.js +2 -2
  214. package/dist/generated/templates/TextFieldTemplate.lit.js.map +1 -1
  215. package/dist/generated/templates/TooltipTemplate.lit.js +1 -1
  216. package/dist/generated/templates/TooltipTemplate.lit.js.map +1 -1
  217. package/dist/generated/themes/AccordionItem.css.js +1 -1
  218. package/dist/generated/themes/AccordionItem.css.js.map +1 -1
  219. package/dist/generated/themes/Avatar.css.js +1 -1
  220. package/dist/generated/themes/Avatar.css.js.map +1 -1
  221. package/dist/generated/themes/Badge.css.js +1 -1
  222. package/dist/generated/themes/Badge.css.js.map +1 -1
  223. package/dist/generated/themes/Checkbox.css.js +1 -1
  224. package/dist/generated/themes/Checkbox.css.js.map +1 -1
  225. package/dist/generated/themes/CountrySelector.css.js +1 -1
  226. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  227. package/dist/generated/themes/Divider.css.js +1 -1
  228. package/dist/generated/themes/Divider.css.js.map +1 -1
  229. package/dist/generated/themes/Dropdown.css.js +1 -1
  230. package/dist/generated/themes/Dropdown.css.js.map +1 -1
  231. package/dist/generated/themes/FilterMenu.css.js +1 -1
  232. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  233. package/dist/generated/themes/Footer.css.js +1 -1
  234. package/dist/generated/themes/Footer.css.js.map +1 -1
  235. package/dist/generated/themes/HeroBanner.css.js +1 -1
  236. package/dist/generated/themes/HeroBanner.css.js.map +1 -1
  237. package/dist/generated/themes/MastheadShell.css.js +1 -1
  238. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  239. package/dist/generated/themes/MediaPlayer.css.js +1 -1
  240. package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
  241. package/dist/generated/themes/Modal.css.js +1 -1
  242. package/dist/generated/themes/Modal.css.js.map +1 -1
  243. package/dist/generated/themes/Pagination.css.js +1 -1
  244. package/dist/generated/themes/Pagination.css.js.map +1 -1
  245. package/dist/generated/themes/PhoneNumberField.css.js +1 -1
  246. package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
  247. package/dist/generated/themes/RatingBar.css.js +9 -0
  248. package/dist/generated/themes/RatingBar.css.js.map +1 -0
  249. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  250. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  251. package/dist/generated/themes/Review.css.d.ts +3 -0
  252. package/dist/generated/themes/Review.css.js +9 -0
  253. package/dist/generated/themes/Review.css.js.map +1 -0
  254. package/dist/generated/themes/Search.css.js +1 -1
  255. package/dist/generated/themes/Search.css.js.map +1 -1
  256. package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
  257. package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
  258. package/dist/generated/themes/SecondaryNavigationItem.css.d.ts +3 -0
  259. package/dist/generated/themes/SecondaryNavigationItem.css.js +9 -0
  260. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -0
  261. package/dist/generated/themes/SecondaryNavigationSubItem.css.d.ts +3 -0
  262. package/dist/generated/themes/SecondaryNavigationSubItem.css.js +9 -0
  263. package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -0
  264. package/dist/generated/themes/SelectBox.css.js +1 -1
  265. package/dist/generated/themes/SelectBox.css.js.map +1 -1
  266. package/dist/generated/themes/Slider.css.js +1 -1
  267. package/dist/generated/themes/Slider.css.js.map +1 -1
  268. package/dist/generated/themes/StatusBadge.css.d.ts +3 -0
  269. package/dist/generated/themes/StatusBadge.css.js +9 -0
  270. package/dist/generated/themes/StatusBadge.css.js.map +1 -0
  271. package/dist/generated/themes/StepInput.css.js +1 -1
  272. package/dist/generated/themes/StepInput.css.js.map +1 -1
  273. package/dist/generated/themes/TabNavigation.css.js +1 -1
  274. package/dist/generated/themes/TabNavigation.css.js.map +1 -1
  275. package/dist/generated/themes/Tag.css.js +1 -1
  276. package/dist/generated/themes/Tag.css.js.map +1 -1
  277. package/dist/generated/themes/TextField.css.js +1 -1
  278. package/dist/generated/themes/TextField.css.js.map +1 -1
  279. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js +1 -1
  280. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js.map +1 -1
  281. package/dist/i18n/messagebundle.properties +40 -5
  282. package/dist/i18n/messagebundle_en.properties +20 -5
  283. package/dist/vscode.html-custom-data.json +239 -16
  284. package/dist/web-types.json +405 -25
  285. package/package.json +8 -8
  286. package/src/AccordionItem.hbs +1 -4
  287. package/src/AccordionItem.ts +5 -4
  288. package/src/Avatar.ts +35 -3
  289. package/src/AvatarGroup.ts +135 -0
  290. package/src/CountrySelector.hbs +2 -1
  291. package/src/CountrySelector.ts +4 -1
  292. package/src/DatePicker.hbs +0 -1
  293. package/src/Dropdown.hbs +5 -3
  294. package/src/Dropdown.ts +24 -3
  295. package/src/FilterMenu.hbs +8 -1
  296. package/src/FilterMenu.ts +70 -12
  297. package/src/Footer.hbs +12 -37
  298. package/src/Footer.ts +64 -51
  299. package/src/HeroBanner.hbs +28 -21
  300. package/src/HeroBanner.ts +3 -0
  301. package/src/InputGroup.ts +6 -5
  302. package/src/List.ts +92 -21
  303. package/src/ListGroupHeader.hbs +9 -5
  304. package/src/ListItem.hbs +2 -1
  305. package/src/ListItem.ts +0 -7
  306. package/src/ListItemBase.ts +14 -0
  307. package/src/ListSelectAll.hbs +1 -0
  308. package/src/MastheadItem.hbs +3 -3
  309. package/src/MastheadItem.ts +10 -4
  310. package/src/MastheadShell.hbs +4 -0
  311. package/src/MastheadShell.ts +18 -0
  312. package/src/MessageStrip.ts +1 -1
  313. package/src/Pagination.hbs +4 -2
  314. package/src/Pagination.ts +19 -4
  315. package/src/PasswordField.hbs +6 -17
  316. package/src/PasswordField.ts +31 -23
  317. package/src/PhoneNumberField.hbs +8 -3
  318. package/src/PhoneNumberField.ts +12 -2
  319. package/src/RatingBar.hbs +11 -0
  320. package/src/RatingBar.ts +113 -0
  321. package/src/Review.hbs +44 -0
  322. package/src/Review.ts +140 -0
  323. package/src/Search.hbs +20 -14
  324. package/src/Search.ts +107 -10
  325. package/src/SearchSuggestions.hbs +2 -1
  326. package/src/SearchableListBase.hbs +2 -0
  327. package/src/SearchableListBase.ts +1 -1
  328. package/src/SecondaryNavigation.hbs +53 -71
  329. package/src/SecondaryNavigation.ts +192 -198
  330. package/src/SecondaryNavigationItem.hbs +64 -0
  331. package/src/SecondaryNavigationItem.ts +368 -0
  332. package/src/SecondaryNavigationItemBase.ts +153 -0
  333. package/src/SecondaryNavigationSubItem.hbs +44 -0
  334. package/src/SecondaryNavigationSubItem.ts +127 -0
  335. package/src/SelectBox.hbs +76 -76
  336. package/src/SelectBox.ts +18 -1
  337. package/src/StatusBadge.hbs +9 -0
  338. package/src/StatusBadge.ts +129 -0
  339. package/src/Switch.hbs +3 -3
  340. package/src/Switch.ts +4 -0
  341. package/src/Tab.ts +11 -1
  342. package/src/TabInOverflow.hbs +3 -2
  343. package/src/TabNavigation.hbs +12 -10
  344. package/src/TabNavigation.ts +92 -116
  345. package/src/TabNavigationPopover.hbs +1 -0
  346. package/src/Tag.hbs +60 -26
  347. package/src/Tag.ts +54 -34
  348. package/src/TextArea.hbs +3 -4
  349. package/src/TextArea.ts +3 -0
  350. package/src/TextField.hbs +40 -36
  351. package/src/TextField.ts +24 -0
  352. package/src/Tooltip.hbs +2 -2
  353. package/src/Tooltip.ts +4 -4
  354. package/src/data/CountryListISO3166.ts +162 -162
  355. package/src/generated/i18n/i18n-defaults.ts +2 -2
  356. package/src/generated/templates/AccordionItemTemplate.lit.ts +1 -1
  357. package/src/generated/templates/CountrySelectorTemplate.lit.ts +1 -1
  358. package/src/generated/templates/DatePickerTemplate.lit.ts +1 -1
  359. package/src/generated/templates/DropdownTemplate.lit.ts +2 -2
  360. package/src/generated/templates/FilterMenuTemplate.lit.ts +3 -3
  361. package/src/generated/templates/FooterTemplate.lit.ts +26 -28
  362. package/src/generated/templates/HeroBannerTemplate.lit.ts +9 -8
  363. package/src/generated/templates/ListGroupHeaderTemplate.lit.ts +4 -4
  364. package/src/generated/templates/ListItemTemplate.lit.ts +1 -1
  365. package/src/generated/templates/ListSelectAllTemplate.lit.ts +1 -1
  366. package/src/generated/templates/MastheadItemTemplate.lit.ts +3 -3
  367. package/src/generated/templates/MastheadShellTemplate.lit.ts +2 -2
  368. package/src/generated/templates/PaginationTemplate.lit.ts +1 -1
  369. package/src/generated/templates/PasswordFieldTemplate.lit.ts +1 -2
  370. package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +3 -3
  371. package/src/generated/templates/RatingBarTemplate.lit.ts +11 -0
  372. package/src/generated/templates/ReviewTemplate.lit.ts +15 -0
  373. package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +1 -1
  374. package/src/generated/templates/SearchTemplate.lit.ts +7 -7
  375. package/src/generated/templates/SearchableListBaseTemplate.lit.ts +2 -2
  376. package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +16 -0
  377. package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +15 -0
  378. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +7 -10
  379. package/src/generated/templates/SelectBoxTemplate.lit.ts +2 -2
  380. package/src/generated/templates/StatusBadgeTemplate.lit.ts +10 -0
  381. package/src/generated/templates/SwitchTemplate.lit.ts +2 -2
  382. package/src/generated/templates/TabInOverflowTemplate.lit.ts +2 -2
  383. package/src/generated/templates/TabNavigationPopoverTemplate.lit.ts +1 -1
  384. package/src/generated/templates/TabNavigationTemplate.lit.ts +2 -2
  385. package/src/generated/templates/TagTemplate.lit.ts +9 -3
  386. package/src/generated/templates/TextAreaTemplate.lit.ts +1 -1
  387. package/src/generated/templates/TextFieldTemplate.lit.ts +2 -2
  388. package/src/generated/templates/TooltipTemplate.lit.ts +1 -1
  389. package/src/generated/themes/AccordionItem.css.ts +1 -1
  390. package/src/generated/themes/Avatar.css.ts +1 -1
  391. package/src/generated/themes/Badge.css.ts +1 -1
  392. package/src/generated/themes/Checkbox.css.ts +1 -1
  393. package/src/generated/themes/CountrySelector.css.ts +1 -1
  394. package/src/generated/themes/Divider.css.ts +1 -1
  395. package/src/generated/themes/Dropdown.css.ts +1 -1
  396. package/src/generated/themes/FilterMenu.css.ts +1 -1
  397. package/src/generated/themes/Footer.css.ts +1 -1
  398. package/src/generated/themes/HeroBanner.css.ts +1 -1
  399. package/src/generated/themes/MastheadShell.css.ts +1 -1
  400. package/src/generated/themes/MediaPlayer.css.ts +1 -1
  401. package/src/generated/themes/Modal.css.ts +1 -1
  402. package/src/generated/themes/Pagination.css.ts +1 -1
  403. package/src/generated/themes/PhoneNumberField.css.ts +1 -1
  404. package/src/generated/themes/RatingBar.css.ts +13 -0
  405. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  406. package/src/generated/themes/Review.css.ts +13 -0
  407. package/src/generated/themes/Search.css.ts +1 -1
  408. package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
  409. package/src/generated/themes/SecondaryNavigationItem.css.ts +13 -0
  410. package/src/generated/themes/SecondaryNavigationSubItem.css.ts +13 -0
  411. package/src/generated/themes/SelectBox.css.ts +1 -1
  412. package/src/generated/themes/Slider.css.ts +1 -1
  413. package/src/generated/themes/StatusBadge.css.ts +13 -0
  414. package/src/generated/themes/StepInput.css.ts +1 -1
  415. package/src/generated/themes/TabNavigation.css.ts +1 -1
  416. package/src/generated/themes/Tag.css.ts +1 -1
  417. package/src/generated/themes/TextField.css.ts +1 -1
  418. package/src/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +1 -1
  419. package/src/i18n/messagebundle.properties +40 -5
  420. package/src/i18n/messagebundle_en.properties +20 -5
  421. package/src/themes/AccordionItem.css +6 -4
  422. package/src/themes/Avatar.css +43 -6
  423. package/src/themes/Badge.css +1 -1
  424. package/src/themes/Checkbox.css +12 -0
  425. package/src/themes/CountrySelector.css +4 -0
  426. package/src/themes/Divider.css +6 -2
  427. package/src/themes/Dropdown.css +2 -0
  428. package/src/themes/FilterMenu.css +10 -0
  429. package/src/themes/Footer.css +93 -168
  430. package/src/themes/HeroBanner.css +84 -20
  431. package/src/themes/MastheadShell.css +25 -29
  432. package/src/themes/MediaPlayer.css +3 -2
  433. package/src/themes/Modal.css +6 -0
  434. package/src/themes/Pagination.css +7 -0
  435. package/src/themes/PhoneNumberField.css +5 -0
  436. package/src/themes/RatingBar.css +52 -0
  437. package/src/themes/Review.css +196 -0
  438. package/src/themes/Search.css +37 -21
  439. package/src/themes/SecondaryNavigation.css +64 -293
  440. package/src/themes/SecondaryNavigationItem.css +221 -0
  441. package/src/themes/SecondaryNavigationSubItem.css +118 -0
  442. package/src/themes/SelectBox.css +17 -24
  443. package/src/themes/StatusBadge.css +135 -0
  444. package/src/themes/StepInput.css +5 -2
  445. package/src/themes/TabNavigation.css +7 -1
  446. package/src/themes/Tag.css +180 -148
  447. package/src/themes/TextField.css +75 -55
  448. package/dist/assets/bundle.esm-ab45813e.js +0 -312
  449. package/dist/assets/messagebundle_en-26cd7a92.js +0 -1
  450. package/dist/assets/parameters-bundle.css-76ef62fa.js +0 -2
  451. package/dist/css/themes/PasswordField.css +0 -1
  452. package/dist/generated/themes/PasswordField.css.js +0 -9
  453. package/dist/generated/themes/PasswordField.css.js.map +0 -1
  454. package/src/generated/themes/PasswordField.css.ts +0 -13
  455. package/src/themes/PasswordField.css +0 -29
  456. /package/dist/generated/themes/{PasswordField.css.d.ts → RatingBar.css.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Footer.js","sourceRoot":"","sources":["../src/Footer.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.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 ResizeHandler, { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\n\nimport \"@ui5/webcomponents-icons/dist/headset.js\";\nimport \"@ui5/webcomponents-icons/dist/email.js\";\nimport \"@ui5/webcomponents-icons/dist/back-to-top.js\";\nimport \"@ui5/webcomponents-icons/dist/discussion-2.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-right-arrow.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\n\n// Template\nimport FooterTemplate from \"./generated/templates/FooterTemplate.lit.js\";\n\n// Styles\nimport FooterCss from \"./generated/themes/Footer.css\";\nimport UDExAccordionItem from \"./AccordionItem.js\";\nimport {\n ABOUT_SAP,\n CHAT_WITH_US,\n CONTACT_US,\n EMAIL,\n LOCAL_COUNTRY_NAMES,\n PHONE_NUMBER,\n QUICK_LINKS,\n SEE_COMPLETE_LIST,\n SITE_INFORMATION,\n SOCIAL_LINK_ICON,\n TRENDING,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nconst BreakpointSizeS: number = 979;\n\nexport type FooterLink = {\n title: string;\n url: string;\n};\n\nexport type FooterSocialLink = {\n url: string;\n iconUrl: string;\n};\n\nexport type FooterContactNumber = {\n number: string;\n country: string;\n};\n\nexport const FooterBaseEvent = {\n detail: {\n originalEvent: { type: PointerEvent },\n },\n};\n\nexport const FooterDetailedEvent = {\n detail: {\n originalEvent: { type: PointerEvent },\n name: { type: String },\n sourceNode: { type: HTMLElement },\n },\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-footer</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/Footer.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-footer\n * @public\n */\n@customElement({\n tag: \"udex-footer\",\n renderer: litRender,\n styles: [FooterCss],\n template: FooterTemplate,\n dependencies: [UDExAccordionItem],\n})\n/**\n * Triggered on click interaction with logo in footer\n * @public\n * @allowPreventDefault\n */\n@event(\"logo-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with \"Back to Top\" button\n * @public\n * @allowPreventDefault\n */\n@event(\"back-to-top-click\", FooterBaseEvent)\n\n/**\n * Triggered on click interaction with phone number link in footer\n * @public\n * @allowPreventDefault\n */\n@event(\"contact-phone-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with local country numbers list link\n * @public\n * @allowPreventDefault\n */\n@event(\"contact-phone-local-numbers-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with \"Contact us by email\" link\n * @public\n * @allowPreventDefault\n */\n@event(\"contact-email-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with \"Contact us by chat\" link\n * @public\n * @allowPreventDefault\n */\n@event(\"contact-chat-click\", FooterBaseEvent)\n\n/**\n * Triggered on click interaction with a link within \"Quick Links\" category\n * @public\n * @allowPreventDefault\n */\n@event(\"quick-links-click\", FooterDetailedEvent)\n/**\n * Triggered on click interaction with a link within \"Trending\" category\n * @public\n * @allowPreventDefault\n */\n@event(\"trending-click\", FooterDetailedEvent)\n/**\n * Triggered on click interaction with a link within \"About SAP\" category\n * @public\n * @allowPreventDefault\n */\n@event(\"about-sap-click\", FooterDetailedEvent)\n/**\n * Triggered on click interaction with a link within \"Site Information\" category\n * @public\n * @allowPreventDefault\n */\n@event(\"site-information-click\", FooterDetailedEvent)\n\n/**\n * Triggered on click interaction with any of the social media links within footer\n * @public\n * @allowPreventDefault\n */\n@event(\"social-media-link-click\", FooterDetailedEvent)\nclass UDExFooter extends UI5Element {\n /**\n * Defines the Logo URL\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoUrl!: string;\n\n /**\n * Defines the optional component href link for the logo.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoLink?: string;\n\n /**\n * List of the Quick links\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n quickLinks!: string;\n\n /**\n * List of the Trending links\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n trendingLinks!: string;\n\n /**\n * List of the About SAP links\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n aboutLinks!: string;\n\n /**\n * List of the Site Information links\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n siteInformationLinks!: string;\n\n /**\n * List of the contact numbers\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n contactNumbersList!: string;\n\n /**\n * Defines the local country numbers link's href\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n localCountryNumbersLink!: string;\n\n /**\n * Defines the Contact us link's href\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n contactUsLink!: string;\n\n /**\n * Defines the Chat with us link's href\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n chatWithUsLink!: string;\n\n /**\n * List of the Social links and their icons\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n socialLinks!: string;\n\n /**\n * Alt for Logo\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoAlt!: string;\n\n /**\n * Defines should render the mobile navigation.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _shouldRenderMobileMenu!: boolean;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine(): Promise<void> {\n UDExFooter.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n _handleResizeBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onEnterDOM() {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n _handleResize(): void {\n this._shouldRenderMobileMenu = this.isMobile;\n }\n\n onBackToTopClick(e: Event): void {\n this.fireEvent(\"back-to-top-click\", { originalEvent: e }, true);\n\n window.scrollTo(0, 0);\n }\n\n parseArrayFromString<T>(string: string): T[] {\n return string ? JSON.parse(string) as T[] : [];\n }\n\n get parsedRef() {\n return (this.logoLink && this.logoLink.length > 0) ? this.logoLink : undefined;\n }\n\n get quickLinksArray(): FooterLink[] {\n return this.parseArrayFromString<FooterLink>(this.quickLinks);\n }\n\n get trendingLinksArray(): FooterLink[] {\n return this.parseArrayFromString<FooterLink>(this.trendingLinks);\n }\n\n get aboutLinksArray(): FooterLink[] {\n return this.parseArrayFromString<FooterLink>(this.aboutLinks);\n }\n\n get siteInformationLinksArray(): FooterLink[] {\n return this.parseArrayFromString<FooterLink>(this.siteInformationLinks);\n }\n\n get contactNumbersArray(): FooterContactNumber[] {\n return this.parseArrayFromString<FooterContactNumber>(this.contactNumbersList);\n }\n\n get socialLinksArray(): FooterSocialLink[] {\n return this.parseArrayFromString<FooterSocialLink>(this.socialLinks);\n }\n\n get isContactContainerVisible(): boolean {\n return !!this.contactNumbersArray.length || !!this.contactUsLink || !!this.chatWithUsLink;\n }\n\n get socialIconAccessibleName() {\n return ` ${UDExFooter.i18nBundle.getText(SOCIAL_LINK_ICON)}`;\n }\n\n get phoneNumberAccessibleName() {\n return `${UDExFooter.i18nBundle.getText(PHONE_NUMBER)} `;\n }\n\n get contactUsAccessibleName() {\n return UDExFooter.i18nBundle.getText(CONTACT_US);\n }\n\n get contactUsAccessibleLabel() {\n if (this.contactUsLink.includes(\"mailto:\")) {\n return `${this.contactUsAccessibleName} ${UDExFooter.i18nBundle.getText(EMAIL)}`;\n }\n return `${this.contactUsAccessibleName}`;\n }\n\n get chatWithUsAccessibleName() {\n return UDExFooter.i18nBundle.getText(CHAT_WITH_US);\n }\n\n get quickLinksTitle() {\n return UDExFooter.i18nBundle.getText(QUICK_LINKS);\n }\n\n get trendingTitle() {\n return UDExFooter.i18nBundle.getText(TRENDING);\n }\n\n get aboutSapTitle() {\n return UDExFooter.i18nBundle.getText(ABOUT_SAP);\n }\n\n get siteInformationTitle() {\n return UDExFooter.i18nBundle.getText(SITE_INFORMATION);\n }\n\n get completeListTitle() {\n return `${UDExFooter.i18nBundle.getText(SEE_COMPLETE_LIST)} `;\n }\n\n get localCountryTitle() {\n return UDExFooter.i18nBundle.getText(LOCAL_COUNTRY_NAMES);\n }\n\n get isMobile(): boolean {\n return window.innerWidth <= BreakpointSizeS;\n }\n\n _onLogoClick(e: Event): void {\n this.fireEvent(\"logo-click\", { originalEvent: e }, true);\n }\n\n _onContactPhoneClick(e: Event): void {\n this.fireEvent(\"contact-phone-click\", { originalEvent: e }, true);\n }\n _onContactPhoneLocalNumbersClick(e: Event): void {\n this.fireEvent(\"contact-phone-local-numbers-click\", { originalEvent: e }, true);\n }\n _onContactEmailClick(e: Event): void {\n this.fireEvent(\"contact-email-click\", { originalEvent: e }, true);\n }\n _onContactChatClick(e: Event): void {\n this.fireEvent(\"contact-chat-click\", { originalEvent: e }, true);\n }\n\n _onQuickLinksClick(e: Event): void {\n const sourceNode = e.composedPath()[0]as HTMLElement;\n\n this.fireEvent(\"quick-links-click\", {\n name: sourceNode.innerText,\n originalEvent: e,\n sourceNode,\n }, true);\n }\n\n _onTrendingClick(e: Event): void {\n const sourceNode = e.composedPath()[0]as HTMLElement;\n\n this.fireEvent(\"trending-click\", {\n name: sourceNode.innerText,\n originalEvent: e,\n sourceNode,\n }, true);\n }\n\n _onAboutSapClick(e: Event): void {\n const sourceNode = e.composedPath()[0]as HTMLElement;\n\n this.fireEvent(\"about-sap-click\", {\n name: sourceNode.innerText,\n originalEvent: e,\n sourceNode,\n }, true);\n }\n\n _onSiteInformationClick(e: Event): void {\n const sourceNode = e.composedPath()[0]as HTMLElement;\n\n this.fireEvent(\"site-information-click\", {\n name: sourceNode.innerText,\n originalEvent: e,\n sourceNode,\n }, true);\n }\n\n _onSocialMediaLinkClick(e: Event): void {\n const nodes = e.composedPath() as HTMLElement[];\n let sourceNode = nodes[0];\n\n if (nodes[0] instanceof HTMLImageElement) { sourceNode = nodes[1]; }\n\n this.fireEvent(\"social-media-link-click\", {\n name: sourceNode?.dataset?.name,\n originalEvent: e,\n sourceNode,\n }, true);\n }\n}\n\nUDExFooter.define();\n\nexport default UDExFooter;\n"]}
1
+ {"version":3,"file":"Footer.js","sourceRoot":"","sources":["../src/Footer.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.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 ResizeHandler, { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\n\nimport \"@ui5/webcomponents-icons/dist/headset.js\";\nimport \"@ui5/webcomponents-icons/dist/email.js\";\nimport \"@ui5/webcomponents-icons/dist/back-to-top.js\";\nimport \"@ui5/webcomponents-icons/dist/discussion-2.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-right-arrow.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\n\n// Template\nimport FooterTemplate from \"./generated/templates/FooterTemplate.lit.js\";\n\n// Styles\nimport FooterCss from \"./generated/themes/Footer.css\";\nimport UDExAccordionItem from \"./AccordionItem.js\";\nimport {\n ABOUT_SAP,\n CHAT_WITH_US,\n CONTACT_US,\n EMAIL,\n LOCAL_COUNTRY_NAMES,\n PHONE_NUMBER,\n QUICK_LINKS,\n SEE_COMPLETE_LIST,\n SITE_INFORMATION,\n SOCIAL_LINK_ICON,\n TRENDING,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nconst BreakpointSizeS: number = 979;\n\nexport type FooterLink = {\n title: string;\n url: string;\n};\n\nexport type FooterSocialLink = {\n url: string;\n iconUrl: string;\n};\n\nexport type FooterContactNumber = {\n number: string;\n country: string;\n};\n\nexport type FooterDetailedClickEvent = {\n originalEvent: PointerEvent,\n name: string;\n id?: string;\n sourceNode: HTMLElement;\n}\n\nexport type FooterBaseEventEvent = {\n originalEvent: PointerEvent,\n}\n\nexport const FooterBaseEvent = {\n detail: {\n originalEvent: { type: PointerEvent },\n },\n};\n\nexport const FooterDetailedEvent = {\n detail: {\n originalEvent: { type: PointerEvent },\n name: { type: String },\n id: { type: String },\n sourceNode: { type: HTMLElement },\n },\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-footer</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/Footer.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-footer\n * @public\n */\n@customElement({\n tag: \"udex-footer\",\n renderer: litRender,\n styles: [FooterCss],\n template: FooterTemplate,\n dependencies: [UDExAccordionItem],\n})\n/**\n * Triggered on click interaction with logo in footer\n * @public\n * @allowPreventDefault\n */\n@event<FooterBaseEventEvent>(\"logo-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with \"Back to Top\" button\n * @public\n * @allowPreventDefault\n */\n@event<FooterBaseEventEvent>(\"back-to-top-click\", FooterBaseEvent)\n\n/**\n * Triggered on click interaction with phone number link in footer\n * @public\n * @allowPreventDefault\n */\n@event<FooterBaseEventEvent>(\"contact-phone-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with local country numbers list link\n * @public\n * @allowPreventDefault\n */\n@event<FooterBaseEventEvent>(\"contact-phone-local-numbers-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with \"Contact us by email\" link\n * @public\n * @allowPreventDefault\n */\n@event<FooterBaseEventEvent>(\"contact-email-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with \"Contact us by chat\" link\n * @public\n * @allowPreventDefault\n */\n@event<FooterBaseEventEvent>(\"contact-chat-click\", FooterBaseEvent)\n\n/**\n * Triggered on click interaction with a link within \"Quick Links\" category\n * @public\n * @allowPreventDefault\n */\n@event<FooterDetailedClickEvent>(\"quick-links-click\", FooterDetailedEvent)\n/**\n * Triggered on click interaction with a link within \"Trending\" category\n * @public\n * @allowPreventDefault\n */\n@event<FooterDetailedClickEvent>(\"trending-click\", FooterDetailedEvent)\n/**\n * Triggered on click interaction with a link within \"About SAP\" category\n * @public\n * @allowPreventDefault\n */\n@event<FooterDetailedClickEvent>(\"about-sap-click\", FooterDetailedEvent)\n/**\n * Triggered on click interaction with a link within \"Site Information\" category\n * @public\n * @allowPreventDefault\n */\n@event<FooterDetailedClickEvent>(\"site-information-click\", FooterDetailedEvent)\n\n/**\n * Triggered on click interaction with any of the social media links within footer\n * @public\n * @allowPreventDefault\n */\n@event<FooterDetailedClickEvent>(\"social-media-link-click\", FooterDetailedEvent)\n\nclass UDExFooter extends UI5Element {\n /**\n * Defines the Logo default title\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoTitle!: string;\n\n /**\n * Defines the Logo URL\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoUrl!: string;\n\n /**\n * Defines the optional component href link for the logo.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoLink?: string;\n\n /**\n * List of the Quick links\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n quickLinks!: string;\n\n /**\n * List of the Trending links\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n trendingLinks!: string;\n\n /**\n * List of the About SAP links\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n aboutLinks!: string;\n\n /**\n * List of the Site Information links\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n siteInformationLinks!: string;\n\n /**\n * List of the contact numbers\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n contactNumbersList!: string;\n\n /**\n * Defines the local country numbers link's href\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n localCountryNumbersLink!: string;\n\n /**\n * Defines the Contact us link's href\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n contactUsLink!: string;\n\n /**\n * Defines the Chat with us link's href\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n chatWithUsLink!: string;\n\n /**\n * List of the Social links and their icons\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n socialLinks!: string;\n\n /**\n * Alt for Logo\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoAlt!: string;\n\n /**\n * Defines an aria label for the logo link\n *\n * @public\n */\n @property({ type: String })\n logoAriaLabel!: string;\n\n /**\n * Defines should render the mobile navigation.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _shouldRenderMobileMenu!: boolean;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine(): Promise<void> {\n UDExFooter.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n _handleResizeBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n _handleResize(): void {\n this._shouldRenderMobileMenu = this.isMobile;\n }\n\n onBackToTopClick(e: Event): void {\n this.fireEvent(\"back-to-top-click\", { originalEvent: e }, true);\n\n window.scrollTo(0, 0);\n }\n\n parseArrayFromString<T>(string: string): T[] {\n return string ? JSON.parse(string) as T[] : [];\n }\n\n get parsedRef(): string | undefined {\n return (this.logoLink && this.logoLink.length > 0) ? this.logoLink : undefined;\n }\n\n get quickLinksArray(): FooterLink[] {\n return this.parseArrayFromString<FooterLink>(this.quickLinks);\n }\n\n get trendingLinksArray(): FooterLink[] {\n return this.parseArrayFromString<FooterLink>(this.trendingLinks);\n }\n\n get aboutLinksArray(): FooterLink[] {\n return this.parseArrayFromString<FooterLink>(this.aboutLinks);\n }\n\n get siteInformationLinksArray(): FooterLink[] {\n return this.parseArrayFromString<FooterLink>(this.siteInformationLinks);\n }\n\n get contactNumbersArray(): FooterContactNumber[] {\n return this.parseArrayFromString<FooterContactNumber>(this.contactNumbersList);\n }\n\n get socialLinksArray(): FooterSocialLink[] {\n return this.parseArrayFromString<FooterSocialLink>(this.socialLinks);\n }\n\n get isContactContainerVisible(): boolean {\n return !!this.contactNumbersArray.length || !!this.contactUsLink || !!this.chatWithUsLink;\n }\n\n get socialIconAccessibleName() {\n return ` ${UDExFooter.i18nBundle.getText(SOCIAL_LINK_ICON)}`;\n }\n\n get phoneNumberAccessibleName() {\n return `${UDExFooter.i18nBundle.getText(PHONE_NUMBER)} `;\n }\n\n get contactUsAccessibleName() {\n return UDExFooter.i18nBundle.getText(CONTACT_US);\n }\n\n get contactUsAccessibleLabel() {\n if (this.contactUsLink.includes(\"mailto:\")) {\n return `${this.contactUsAccessibleName} ${UDExFooter.i18nBundle.getText(EMAIL)}`;\n }\n return `${this.contactUsAccessibleName}`;\n }\n\n get chatWithUsAccessibleName() {\n return UDExFooter.i18nBundle.getText(CHAT_WITH_US);\n }\n\n get quickLinksTitle() {\n return UDExFooter.i18nBundle.getText(QUICK_LINKS);\n }\n\n get trendingTitle() {\n return UDExFooter.i18nBundle.getText(TRENDING);\n }\n\n get aboutSapTitle() {\n return UDExFooter.i18nBundle.getText(ABOUT_SAP);\n }\n\n get siteInformationTitle() {\n return UDExFooter.i18nBundle.getText(SITE_INFORMATION);\n }\n\n get completeListTitle() {\n return `${UDExFooter.i18nBundle.getText(SEE_COMPLETE_LIST)} `;\n }\n\n get localCountryTitle() {\n return UDExFooter.i18nBundle.getText(LOCAL_COUNTRY_NAMES);\n }\n\n get isMobile(): boolean {\n return window.innerWidth <= BreakpointSizeS;\n }\n\n _onLogoClick(e: Event): void {\n this.fireFooterBaseEvent(e, \"logo-click\");\n }\n\n _onContactPhoneClick(e: Event): void {\n this.fireFooterBaseEvent(e, \"contact-phone-click\");\n }\n _onContactPhoneLocalNumbersClick(e: Event): void {\n this.fireFooterBaseEvent(e, \"contact-phone-local-numbers-click\");\n }\n _onContactEmailClick(e: Event): void {\n this.fireFooterBaseEvent(e, \"contact-email-click\");\n }\n _onContactChatClick(e: Event): void {\n this.fireFooterBaseEvent(e, \"contact-chat-click\");\n }\n\n _onQuickLinksClick(e: Event): void {\n this.fireFooterDetailedClickEvent(e, \"quick-links-click\");\n }\n\n _onTrendingClick(e: Event): void {\n this.fireFooterDetailedClickEvent(e, \"trending-click\");\n }\n\n _onAboutSapClick(e: Event): void {\n this.fireFooterDetailedClickEvent(e, \"about-sap-click\");\n }\n\n _onSiteInformationClick(e: Event): void {\n this.fireFooterDetailedClickEvent(e, \"site-information-click\");\n }\n\n _onSocialMediaLinkClick(e: Event): void {\n this.fireFooterDetailedClickEvent(e, \"social-media-link-click\");\n }\n\n fireFooterBaseEvent(e: Event, eventName: string): void {\n this.fireEvent(eventName, { originalEvent: e }, true);\n }\n\n fireFooterDetailedClickEvent(e: Event, eventName: string): void {\n const sourceNode = e.composedPath()[0] as HTMLElement;\n const { innerText, dataset: { id, name } } = sourceNode;\n\n this.fireEvent(eventName, {\n ...(!!id?.length && { id }),\n name: innerText.length ? innerText : name,\n originalEvent: e,\n sourceNode,\n }, true);\n }\n}\n\nUDExFooter.define();\n\nexport default UDExFooter;\n"]}
@@ -92,6 +92,9 @@ let UDExHeroBanner = class UDExHeroBanner extends UI5Element {
92
92
  }
93
93
  onEnterDOM() {
94
94
  if (this.backgroundVideo) {
95
+ if (this.backgroundColor) {
96
+ this.style.setProperty("--udexHeroBannerBackgroundVideoColor", `${this.wrapperBackgroundColor}`);
97
+ }
95
98
  this._video?.addEventListener("play", () => {
96
99
  this._calculateMediaButtonState();
97
100
  });
@@ -1 +1 @@
1
- {"version":3,"file":"HeroBanner.js","sourceRoot":"","sources":["../src/HeroBanner.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 slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/media-play.js\";\nimport \"@ui5/webcomponents-icons/dist/media-pause.js\";\n\nimport HeroBannerTemplate from \"./generated/templates/HeroBannerTemplate.lit.js\";\n\n// Styles\nimport HeroBannerCss from \"./generated/themes/HeroBanner.css.js\";\n\nexport enum imageLoadingStrategies {\n eager = \"eager\",\n lazy = \"lazy\",\n}\n\n/**\n * @class\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-hero-banner\n * @public\n */\n@customElement({\n tag: \"udex-hero-banner\",\n renderer: litRender,\n styles: HeroBannerCss,\n template: HeroBannerTemplate,\n})\nclass UDExHeroBanner extends UI5Element {\n /**\n * Allows control over the background image source.\n *\n * @public\n */\n @property({ type: String })\n backgroundImage?: string;\n\n /**\n * Allows control over the background image loading strategy.\n *\n * @public\n */\n @property({\n type: imageLoadingStrategies,\n defaultValue: imageLoadingStrategies.eager,\n })\n backgroundImageLoadingStrategy?: `${imageLoadingStrategies}`;\n\n /**\n * Used as the label for background image.\n *\n * @public\n */\n @property({ type: String })\n backgroundImageLabel?: string;\n\n /**\n * Allows control over the background video source.\n *\n * @public\n */\n @property({ type: String })\n backgroundVideo?: string;\n\n /**\n * Used as the label for background video.\n *\n * @public\n */\n @property({ type: String })\n backgroundVideoLabel?: string;\n\n /**\n * Allows control over the background color.\n * Value provided should be compatible with standard CSS rendering, e.g:\n * - HEX: \"#FFF\", \"#FFFFFF\", \"FFFFFFFF\"\n * - RGB/A: \"rgb(255, 255, 255)\", \"rgba(255, 255, 255, 1)\"\n * - HSL/A: \"hsl(0, 100%, 100%)\", \"hsla(0, 100%, 100%, 1\"\n * - Variables: \"var(--sapShell_Background)\", \"var(--udexColorNeutralWhite)\"\n * - Text values: \"white\", \"red\"\n *\n * @public\n */\n @property({ type: String })\n backgroundColor?: string;\n\n @property({ type: Boolean, noAttribute: true })\n _isVideoRunning?: boolean;\n\n /**\n * Slot for primary content.\n *\n * @slot\n * @public\n */\n @slot()\n content?: Array<HTMLElement>;\n\n /**\n * Slot for any additional content.\n *\n * @slot\n * @public\n */\n @slot()\n additionalContent?: Array<HTMLElement>;\n\n /**\n * Slot background picture override.\n *\n * @slot\n * @public\n */\n @slot()\n backgroundPicture?: Array<HTMLElement>;\n\n get hasBackgroundImage() {\n return !!this.backgroundImage;\n }\n get hasBackgroundVideo() {\n return !!this.backgroundVideo;\n }\n get wrapperBackgroundColor() {\n return this.backgroundColor ? this.backgroundColor : \"transparent\";\n }\n\n /**\n * Determines if the video should autoplay based on the user's global preference.\n */\n get shouldVideoAutoplay() {\n return !window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n }\n\n get heroBannerClasses(): string {\n const heroBannerClasses = [\"udex-hero-banner\"];\n if (this.hasBackgroundVideo) {\n heroBannerClasses.push(\"udex-hero-banner--video\");\n }\n return heroBannerClasses.join(\" \");\n }\n get hasAdditionalContent() {\n return !!this.additionalContent?.length;\n }\n\n get hasCustomBackgroundPicture() {\n return !!this.backgroundPicture?.length;\n }\n\n get mediaButtonIconName() {\n return this._isVideoRunning ? \"media-pause\" : \"media-play\";\n }\n get _video() {\n return this.shadowRoot?.querySelector<HTMLVideoElement>(\"video\");\n }\n\n _toggleMediaButton(): void {\n if (this._video?.paused) {\n this._video?.play();\n } else {\n this._video?.pause();\n }\n this._calculateMediaButtonState();\n }\n\n _calculateMediaButtonState() {\n this._isVideoRunning = !this._video?.paused ?? false;\n }\n\n _isHTMLDivElement = (element: HTMLElement): element is HTMLDivElement => {\n return element.tagName === \"DIV\";\n };\n\n _handleKeydown(event: KeyboardEvent): void {\n const target = <HTMLElement>event.target;\n if (this._isHTMLDivElement(target) && isSpace(event)) {\n event.preventDefault();\n event.stopPropagation();\n this._toggleMediaButton();\n }\n }\n\n onEnterDOM() {\n if (this.backgroundVideo) {\n this._video?.addEventListener(\"play\", () => {\n this._calculateMediaButtonState();\n });\n }\n }\n}\nUDExHeroBanner.define();\n\nexport default UDExHeroBanner;\n"]}
1
+ {"version":3,"file":"HeroBanner.js","sourceRoot":"","sources":["../src/HeroBanner.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 slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/media-play.js\";\nimport \"@ui5/webcomponents-icons/dist/media-pause.js\";\n\nimport HeroBannerTemplate from \"./generated/templates/HeroBannerTemplate.lit.js\";\n\n// Styles\nimport HeroBannerCss from \"./generated/themes/HeroBanner.css.js\";\n\nexport enum imageLoadingStrategies {\n eager = \"eager\",\n lazy = \"lazy\",\n}\n\n/**\n * @class\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-hero-banner\n * @public\n */\n@customElement({\n tag: \"udex-hero-banner\",\n renderer: litRender,\n styles: HeroBannerCss,\n template: HeroBannerTemplate,\n})\nclass UDExHeroBanner extends UI5Element {\n /**\n * Allows control over the background image source.\n *\n * @public\n */\n @property({ type: String })\n backgroundImage?: string;\n\n /**\n * Allows control over the background image loading strategy.\n *\n * @public\n */\n @property({\n type: imageLoadingStrategies,\n defaultValue: imageLoadingStrategies.eager,\n })\n backgroundImageLoadingStrategy?: `${imageLoadingStrategies}`;\n\n /**\n * Used as the label for background image.\n *\n * @public\n */\n @property({ type: String })\n backgroundImageLabel?: string;\n\n /**\n * Allows control over the background video source.\n *\n * @public\n */\n @property({ type: String })\n backgroundVideo?: string;\n\n /**\n * Used as the label for background video.\n *\n * @public\n */\n @property({ type: String })\n backgroundVideoLabel?: string;\n\n /**\n * Allows control over the background color.\n * Value provided should be compatible with standard CSS rendering, e.g:\n * - HEX: \"#FFF\", \"#FFFFFF\", \"FFFFFFFF\"\n * - RGB/A: \"rgb(255, 255, 255)\", \"rgba(255, 255, 255, 1)\"\n * - HSL/A: \"hsl(0, 100%, 100%)\", \"hsla(0, 100%, 100%, 1\"\n * - Variables: \"var(--sapShell_Background)\", \"var(--udexColorNeutralWhite)\"\n * - Text values: \"white\", \"red\"\n *\n * @public\n */\n @property({ type: String })\n backgroundColor?: string;\n\n @property({ type: Boolean, noAttribute: true })\n _isVideoRunning?: boolean;\n\n /**\n * Slot for primary content.\n *\n * @slot\n * @public\n */\n @slot()\n content?: Array<HTMLElement>;\n\n /**\n * Slot for any additional content.\n *\n * @slot\n * @public\n */\n @slot()\n additionalContent?: Array<HTMLElement>;\n\n /**\n * Slot background picture override.\n *\n * @slot\n * @public\n */\n @slot()\n backgroundPicture?: Array<HTMLElement>;\n\n get hasBackgroundImage() {\n return !!this.backgroundImage;\n }\n get hasBackgroundVideo() {\n return !!this.backgroundVideo;\n }\n get wrapperBackgroundColor() {\n return this.backgroundColor ? this.backgroundColor : \"transparent\";\n }\n\n /**\n * Determines if the video should autoplay based on the user's global preference.\n */\n get shouldVideoAutoplay() {\n return !window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n }\n\n get heroBannerClasses(): string {\n const heroBannerClasses = [\"udex-hero-banner\"];\n if (this.hasBackgroundVideo) {\n heroBannerClasses.push(\"udex-hero-banner--video\");\n }\n return heroBannerClasses.join(\" \");\n }\n get hasAdditionalContent() {\n return !!this.additionalContent?.length;\n }\n\n get hasCustomBackgroundPicture() {\n return !!this.backgroundPicture?.length;\n }\n\n get mediaButtonIconName() {\n return this._isVideoRunning ? \"media-pause\" : \"media-play\";\n }\n get _video() {\n return this.shadowRoot?.querySelector<HTMLVideoElement>(\"video\");\n }\n\n _toggleMediaButton(): void {\n if (this._video?.paused) {\n this._video?.play();\n } else {\n this._video?.pause();\n }\n this._calculateMediaButtonState();\n }\n\n _calculateMediaButtonState() {\n this._isVideoRunning = !this._video?.paused ?? false;\n }\n\n _isHTMLDivElement = (element: HTMLElement): element is HTMLDivElement => {\n return element.tagName === \"DIV\";\n };\n\n _handleKeydown(event: KeyboardEvent): void {\n const target = <HTMLElement>event.target;\n if (this._isHTMLDivElement(target) && isSpace(event)) {\n event.preventDefault();\n event.stopPropagation();\n this._toggleMediaButton();\n }\n }\n\n onEnterDOM() {\n if (this.backgroundVideo) {\n if (this.backgroundColor) {\n this.style.setProperty(\"--udexHeroBannerBackgroundVideoColor\", `${this.wrapperBackgroundColor}`);\n }\n this._video?.addEventListener(\"play\", () => {\n this._calculateMediaButtonState();\n });\n }\n }\n}\nUDExHeroBanner.define();\n\nexport default UDExHeroBanner;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"InputGroup.js","sourceRoot":"","sources":["../src/InputGroup.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 slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport UDExCheckbox from \"./Checkbox.js\";\nimport UDExRadioButton from \"./RadioButton.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\nimport InputGroupTemplate from \"./generated/templates/InputGroupTemplate.lit.js\";\nimport {\n VALUE_STATE_ERROR,\n VALUE_STATE_SUCCESS,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport InputGroupCss from \"./generated/themes/InputGroup.css.js\";\n\nexport enum GroupValueState {\n Standard = \"Standard\",\n Error = \"Error\",\n Success = \"Success\",\n}\n\nexport enum Orientation {\n Vertical = \"Vertical\",\n Horizontal = \"Horizontal\",\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-input-group</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/InputGroup.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n\n@customElement({\n tag: \"udex-input-group\",\n renderer: litRender,\n styles: InputGroupCss,\n template: InputGroupTemplate,\n dependencies: [Icon, UDExStatusMessage],\n})\n\nclass UDExInputGroup extends UI5Element {\n /**\n * Defines the group name of the component.\n *\n * @public\n */\n @property({ type: String })\n groupName?: string;\n\n /**\n * Defines the orientation of the component.\n *\n * @default \"Vertical\"\n * @public\n */\n @property({ type: Orientation, defaultValue: Orientation.Vertical })\n orientation!: `${Orientation}`;\n\n /**\n * Defines the value state of the component.\n *\n * @default \"Standard\"\n * @public\n */\n @property({ type: GroupValueState, defaultValue: GroupValueState.Standard })\n valueState!: `${GroupValueState}`;\n\n /**\n * Defines supporting text under the Input Group.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n supportingText!: string;\n\n /**\n * Slot for input elements items.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true, individualSlots: true }) items!: Array<UDExCheckbox | UDExRadioButton>;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine() {\n UDExInputGroup.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n get _items() {\n return this.items.map(el => {\n if (this.groupName) { el.name = this.groupName; }\n return {\n item: el,\n };\n });\n }\n\n get valueStateTypeMappings(): Record<string, string> {\n return {\n \"Success\": UDExInputGroup.i18nBundle.getText(VALUE_STATE_SUCCESS),\n \"Error\": UDExInputGroup.i18nBundle.getText(VALUE_STATE_ERROR),\n };\n }\n\n get hasValueState(): boolean {\n return this.valueState !== GroupValueState.Standard;\n }\n\n get valueStateText(): string | undefined {\n return this.supportingText || this.valueStateTypeMappings[this.valueState];\n }\n}\n\nUDExInputGroup.define();\n\nexport default UDExInputGroup;\n"]}
1
+ {"version":3,"file":"InputGroup.js","sourceRoot":"","sources":["../src/InputGroup.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 slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport UDExCheckbox from \"./Checkbox.js\";\nimport UDExRadioButton from \"./RadioButton.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\nimport InputGroupTemplate from \"./generated/templates/InputGroupTemplate.lit.js\";\nimport {\n VALUE_STATE_ERROR,\n VALUE_STATE_SUCCESS,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport InputGroupCss from \"./generated/themes/InputGroup.css.js\";\n\nexport enum GroupValueState {\n Standard = \"Standard\",\n Error = \"Error\",\n Success = \"Success\",\n}\n\nexport enum Orientation {\n Vertical = \"Vertical\",\n Horizontal = \"Horizontal\",\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-input-group</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/InputGroup.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n\n@customElement({\n tag: \"udex-input-group\",\n renderer: litRender,\n styles: InputGroupCss,\n template: InputGroupTemplate,\n dependencies: [Icon, UDExStatusMessage],\n})\n\nclass UDExInputGroup extends UI5Element {\n /**\n * Defines the group name of the component.\n *\n * @public\n */\n @property({ type: String })\n groupName?: string;\n\n /**\n * Defines the orientation of the component.\n *\n * @default \"Vertical\"\n * @public\n */\n @property({ type: Orientation, defaultValue: Orientation.Vertical })\n orientation!: `${Orientation}`;\n\n /**\n * Defines the value state of the component.\n *\n * @default \"Standard\"\n * @public\n */\n @property({ type: GroupValueState, defaultValue: GroupValueState.Standard })\n valueState!: `${GroupValueState}`;\n\n /**\n * Defines supporting text under the Input Group.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n supportingText!: string;\n\n /**\n * Slot for input elements items.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true, individualSlots: true })\n items!: Array<UDExCheckbox | UDExRadioButton>;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine() {\n UDExInputGroup.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n get _items() {\n return this.items.map(el => {\n if (this.groupName) { el.name = this.groupName; }\n return {\n item: el,\n };\n });\n }\n\n get valueStateTypeMappings(): Record<string, string> {\n return {\n \"Success\": UDExInputGroup.i18nBundle.getText(VALUE_STATE_SUCCESS),\n \"Error\": UDExInputGroup.i18nBundle.getText(VALUE_STATE_ERROR),\n };\n }\n\n get hasValueState(): boolean {\n return this.valueState !== GroupValueState.Standard;\n }\n\n get valueStateText(): string | undefined {\n return this.supportingText || this.valueStateTypeMappings[this.valueState];\n }\n}\n\nUDExInputGroup.define();\n\nexport default UDExInputGroup;\n"]}
package/dist/List.d.ts CHANGED
@@ -90,12 +90,16 @@ declare class UDExList extends UI5Element {
90
90
  onBeforeRendering(): void;
91
91
  handleItemPress(e: CustomEvent): void;
92
92
  handleKeyDown(e: KeyboardEvent): void;
93
+ handleEnterOrSpace(e: KeyboardEvent): void;
93
94
  handleUpArrow(e: KeyboardEvent): void;
94
95
  handleDownArrow(e: KeyboardEvent): void;
95
96
  handleHomeKey(e: KeyboardEvent): void;
96
97
  handleEndKey(e: KeyboardEvent): void;
98
+ onItemPress(clickedItem: UDExListItemBase): void;
97
99
  revertSelectedItems(items: Array<UDExListItemBase>): void;
98
100
  focusHeader(item: UDExListItemBase): void;
101
+ unsetTabIndexByIndex(items: UDExListItemBase[], index: number): void;
102
+ setTabIndexByIndex(items: UDExListItemBase[], index: number): void;
99
103
  getItems(): Array<UDExListItemBase>;
100
104
  getSelectedItems(): Array<UDExListItemBase>;
101
105
  getCurrentIndex(items: Array<UDExListItemBase>, item: UDExListItemBase): number;
@@ -103,6 +107,9 @@ declare class UDExList extends UI5Element {
103
107
  getKeyboardNavigationItems(): Array<UDExListItemBase>;
104
108
  getItemsFromList(): Array<UDExListItemBase>;
105
109
  prepareListItemsMode(): void;
110
+ getTabIndex(index: number, item: UDExListItemBase): string;
111
+ resetTabIndexes(): void;
112
+ get isGroupList(): boolean;
106
113
  get ariaLabelModeText(): string;
107
114
  get ariaLabelledBy(): string;
108
115
  get modeRadioGroup(): boolean;
package/dist/List.js CHANGED
@@ -11,7 +11,7 @@ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
11
11
  import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
12
12
  import event from "@ui5/webcomponents-base/dist/decorators/event.js";
13
13
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
14
- import { isUp, isDown, isHome, isEnd, } from "@ui5/webcomponents-base/dist/Keys.js";
14
+ import { isUp, isDown, isHome, isEnd, isEnter, isSpace, } from "@ui5/webcomponents-base/dist/Keys.js";
15
15
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
16
16
  import getEffectiveScrollbarStyle from "@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js";
17
17
  import { ListStyleType, ListMode } from "./types/List.js";
@@ -47,27 +47,21 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
47
47
  }
48
48
  handleItemPress(e) {
49
49
  const clickedItem = e.detail.item;
50
- if (this.modeSingleSelect && !this.controlled) {
51
- this.revertSelectedItems(this.getSelectedItems());
52
- clickedItem.selected = true;
53
- }
54
- if (this.modeRadioGroup && !this.controlled) {
55
- const groupHeader = clickedItem.parentElement;
56
- const groupItems = groupHeader.getItems();
57
- this.revertSelectedItems(groupItems);
58
- clickedItem.selected = true;
59
- }
60
- this.fireEvent("selection-change", {
61
- listItems: this.getItemsFromList(),
62
- selectedItems: this.getSelectedItems(),
63
- item: clickedItem,
64
- });
50
+ this.onItemPress(clickedItem);
65
51
  }
66
52
  handleKeyDown(e) {
67
53
  this.handleUpArrow(e);
68
54
  this.handleDownArrow(e);
69
55
  this.handleHomeKey(e);
70
56
  this.handleEndKey(e);
57
+ this.handleEnterOrSpace(e);
58
+ }
59
+ handleEnterOrSpace(e) {
60
+ if (isEnter(e) || isSpace(e)) {
61
+ e.preventDefault();
62
+ const clickedItem = e.target;
63
+ this.onItemPress(clickedItem);
64
+ }
71
65
  }
72
66
  handleUpArrow(e) {
73
67
  if (isUp(e)) {
@@ -79,17 +73,25 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
79
73
  const isHeaderItem = items[previousSelectIndex].isGroup;
80
74
  const nonInteractiveHeader = items[previousSelectIndex].nonInteractive;
81
75
  if (nonInteractiveHeader && previousSelectIndex === 0) {
76
+ this.unsetTabIndexByIndex(items, currentSelectedIndex);
77
+ this.setTabIndexByIndex(items, lastItemIndex);
82
78
  items[lastItemIndex].focus();
83
79
  return;
84
80
  }
85
81
  if (nonInteractiveHeader) {
82
+ this.unsetTabIndexByIndex(items, currentSelectedIndex);
83
+ this.setTabIndexByIndex(items, previousSelectIndex - 1);
86
84
  items[previousSelectIndex - 1].focus();
87
85
  return;
88
86
  }
89
87
  if (isHeaderItem) {
88
+ this.unsetTabIndexByIndex(items, currentSelectedIndex);
89
+ this.setTabIndexByIndex(items, previousSelectIndex);
90
90
  this.focusHeader(items[previousSelectIndex]);
91
91
  return;
92
92
  }
93
+ this.unsetTabIndexByIndex(items, currentSelectedIndex);
94
+ this.setTabIndexByIndex(items, previousSelectIndex);
93
95
  items[previousSelectIndex].focus();
94
96
  }
95
97
  }
@@ -102,13 +104,19 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
102
104
  const isHeaderItem = items[nextSelectIndex].isGroup;
103
105
  const nonInteractiveHeader = items[nextSelectIndex].nonInteractive;
104
106
  if (nonInteractiveHeader) {
107
+ this.unsetTabIndexByIndex(items, currentSelectedIndex);
108
+ this.setTabIndexByIndex(items, nextSelectIndex + 1);
105
109
  items[nextSelectIndex + 1].focus();
106
110
  return;
107
111
  }
108
112
  if (isHeaderItem) {
113
+ this.unsetTabIndexByIndex(items, currentSelectedIndex);
114
+ this.setTabIndexByIndex(items, nextSelectIndex);
109
115
  this.focusHeader(items[nextSelectIndex]);
110
116
  return;
111
117
  }
118
+ this.unsetTabIndexByIndex(items, currentSelectedIndex);
119
+ this.setTabIndexByIndex(items, nextSelectIndex);
112
120
  items[nextSelectIndex].focus();
113
121
  }
114
122
  }
@@ -116,17 +124,24 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
116
124
  if (isHome(e)) {
117
125
  e.preventDefault();
118
126
  const items = this.getKeyboardNavigationItems();
127
+ const currentSelectedIndex = this.getCurrentIndex(items, e.target);
119
128
  const firstItem = items[0];
120
129
  const isHeaderItem = firstItem.isGroup;
121
130
  const nonInteractiveItem = firstItem.nonInteractive;
122
131
  if (nonInteractiveItem) {
132
+ this.unsetTabIndexByIndex(items, currentSelectedIndex);
133
+ this.setTabIndexByIndex(items, 1);
123
134
  items[1].focus();
124
135
  return;
125
136
  }
126
137
  if (isHeaderItem) {
138
+ this.unsetTabIndexByIndex(items, currentSelectedIndex);
139
+ this.setTabIndexByIndex(items, 0);
127
140
  this.focusHeader(items[0]);
128
141
  return;
129
142
  }
143
+ this.unsetTabIndexByIndex(items, currentSelectedIndex);
144
+ this.setTabIndexByIndex(items, 0);
130
145
  items[0].focus();
131
146
  }
132
147
  }
@@ -134,9 +149,31 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
134
149
  if (isEnd(e)) {
135
150
  e.preventDefault();
136
151
  const items = this.getKeyboardNavigationItems();
152
+ const currentSelectedIndex = this.getCurrentIndex(items, e.target);
153
+ this.unsetTabIndexByIndex(items, currentSelectedIndex);
154
+ this.setTabIndexByIndex(items, items.length - 1);
137
155
  items[items.length - 1].focus();
138
156
  }
139
157
  }
158
+ onItemPress(clickedItem) {
159
+ if (this.modeSingleSelect && !this.controlled) {
160
+ this.revertSelectedItems(this.getSelectedItems());
161
+ clickedItem.selected = true;
162
+ }
163
+ if (this.modeRadioGroup && !this.controlled) {
164
+ const groupHeader = clickedItem.parentElement;
165
+ const groupItems = groupHeader.getItems();
166
+ this.revertSelectedItems(groupItems);
167
+ clickedItem.selected = true;
168
+ }
169
+ this.resetTabIndexes();
170
+ clickedItem._tabIndex = "0";
171
+ this.fireEvent("selection-change", {
172
+ listItems: this.getItemsFromList(),
173
+ selectedItems: this.getSelectedItems(),
174
+ item: clickedItem,
175
+ });
176
+ }
140
177
  revertSelectedItems(items) {
141
178
  items.forEach((item) => {
142
179
  if (!item.disabled) {
@@ -148,6 +185,12 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
148
185
  const header = item.shadowRoot?.querySelector(".udex-list__group-header");
149
186
  header.focus();
150
187
  }
188
+ unsetTabIndexByIndex(items, index) {
189
+ items[index]._tabIndex = "-1";
190
+ }
191
+ setTabIndexByIndex(items, index) {
192
+ items[index]._tabIndex = "0";
193
+ }
151
194
  getItems() {
152
195
  return this.getSlottedNodes("items");
153
196
  }
@@ -174,14 +217,31 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
174
217
  return items;
175
218
  }
176
219
  prepareListItemsMode() {
177
- const slottedItems = this.getItemsFromList();
178
- slottedItems.forEach(item => {
220
+ this.getItemsFromList().forEach((item, index) => {
179
221
  item.mode = this.mode;
180
222
  item.controlled = this.controlled;
181
223
  item.type = this.type;
182
224
  item._icon = this.itemIcon;
225
+ item._tabIndex = this.getTabIndex(index, item);
183
226
  });
184
227
  }
228
+ getTabIndex(index, item) {
229
+ if ((item.modeSingleSelect || this.modeRadioGroup) && this.isGroupList && index === 1) {
230
+ return "0";
231
+ }
232
+ if (this.modeSelected && index === 0) {
233
+ return "0";
234
+ }
235
+ return "-1";
236
+ }
237
+ resetTabIndexes() {
238
+ this.getItemsFromList().forEach(item => {
239
+ item._tabIndex = "-1";
240
+ });
241
+ }
242
+ get isGroupList() {
243
+ return this.getItemsFromList().some(item => item.isGroup);
244
+ }
185
245
  get ariaLabelModeText() {
186
246
  if (this.modeSingleSelect || this.modeRadioGroup) {
187
247
  return UDExList_1.i18nBundle.getText(ARIA_LABEL_LIST_SELECTABLE);
package/dist/List.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"List.js","sourceRoot":"","sources":["../src/List.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 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 {\n isUp,\n isDown,\n isHome,\n isEnd,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport getEffectiveScrollbarStyle from \"@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js\";\nimport UDExListItem from \"./ListItem.js\";\nimport { ListStyleType, ListMode } from \"./types/List.js\";\nimport UDExListGroupHeader from \"./ListGroupHeader.js\";\nimport UDExListGroupHeaderBase from \"./ListGroupHeaderBase.js\";\nimport {\n ARIA_LABEL_LIST_MULTISELECTABLE,\n ARIA_LABEL_LIST_SELECTABLE,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport ListTemplate from \"./generated/templates/ListTemplate.lit.js\";\n\n// Styles\nimport ListCss from \"./generated/themes/List.css.js\";\n\nexport type UDExListItemBase = UDExListItem & UDExListGroupHeader;\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\\e\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-list</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/List.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-list\n * @public\n */\n@customElement({\n tag: \"udex-list\",\n renderer: litRender,\n styles: [ListCss, getEffectiveScrollbarStyle()],\n template: ListTemplate,\n dependencies: [],\n})\n\n@event(\"selection-change\", {\n detail: {\n listItems: { type: Array },\n selectedItems: { type: Array },\n item: { type: HTMLElement },\n },\n})\n\nclass UDExList extends UI5Element {\n /**\n * Defines the accessible role of the component.\n *\n * @default \"list\"\n * @public\n */\n @property({ defaultValue: \"list\" })\n accessibleRole!: string;\n\n /**\n * Defines the accessible name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Defines the mode of the component.\n *\n * @default \"SingleSelect\"\n * @public\n */\n @property({ type: ListMode, defaultValue: ListMode.SingleSelect })\n mode!: `${ListMode}`;\n\n /**\n * Defines the type of the item.\n *\n * @defaultvalue \"None\"\n * @public\n */\n @property({ type: ListStyleType, defaultValue: ListStyleType.None })\n type!: `${ListStyleType}`;\n\n /**\n * Allows control over the height.\n *\n * @public\n */\n @property({ type: String })\n height?: string;\n\n /**\n * Defines the controlled of the component.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n controlled?: boolean;\n\n /**\n * Defines the headerText, displayed in the top of the list.\n *\n * @public\n */\n @property({ type: String })\n headerText?: string;\n\n /**\n * Defines the name of the UI5 Icon, that will be displayed for each item of the list.\n *\n * @defaultvalue \"\"\n * @private\n */\n @property({ type: String, defaultValue: \"\" })\n itemIcon?: string;\n\n /**\n * Slot for list items.\n *\n * @slot items\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n items!: Array<UDExListItemBase>;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine(): Promise<void> {\n UDExList.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n onBeforeRendering() {\n this.prepareListItemsMode();\n }\n\n handleItemPress(e: CustomEvent) {\n const clickedItem: UDExListItemBase = e.detail.item;\n\n if (this.modeSingleSelect && !this.controlled) {\n this.revertSelectedItems(this.getSelectedItems());\n clickedItem.selected = true;\n }\n\n if (this.modeRadioGroup && !this.controlled) {\n const groupHeader = clickedItem.parentElement as UDExListGroupHeaderBase;\n const groupItems = groupHeader.getItems() as Array<UDExListItemBase>;\n this.revertSelectedItems(groupItems);\n\n clickedItem.selected = true;\n }\n\n this.fireEvent(\"selection-change\", {\n listItems: this.getItemsFromList(),\n selectedItems: this.getSelectedItems(),\n item: clickedItem,\n });\n }\n\n handleKeyDown(e: KeyboardEvent) {\n this.handleUpArrow(e);\n this.handleDownArrow(e);\n this.handleHomeKey(e);\n this.handleEndKey(e);\n }\n\n handleUpArrow(e: KeyboardEvent) {\n if (isUp(e)) {\n e.preventDefault();\n const items = this.getKeyboardNavigationItems();\n const currentSelectedIndex = this.getCurrentIndex(items, e.target as UDExListItemBase);\n const lastItemIndex = items.length - 1;\n const previousSelectIndex = currentSelectedIndex - 1 < 0 ? lastItemIndex : currentSelectedIndex - 1;\n const isHeaderItem = items[previousSelectIndex].isGroup;\n const nonInteractiveHeader = items[previousSelectIndex].nonInteractive;\n\n if (nonInteractiveHeader && previousSelectIndex === 0) {\n items[lastItemIndex].focus();\n return;\n }\n\n if (nonInteractiveHeader) {\n items[previousSelectIndex - 1].focus();\n return;\n }\n\n if (isHeaderItem) {\n this.focusHeader(items[previousSelectIndex]);\n return;\n }\n\n items[previousSelectIndex].focus();\n }\n }\n\n handleDownArrow(e: KeyboardEvent) {\n if (isDown(e)) {\n e.preventDefault();\n const items = this.getKeyboardNavigationItems();\n const currentSelectedIndex = this.getCurrentIndex(items, e.target as UDExListItemBase);\n const nextSelectIndex = currentSelectedIndex + 1 > items.length - 1 ? 0 : currentSelectedIndex + 1;\n const isHeaderItem = items[nextSelectIndex].isGroup;\n const nonInteractiveHeader = items[nextSelectIndex].nonInteractive;\n\n if (nonInteractiveHeader) {\n items[nextSelectIndex + 1].focus();\n return;\n }\n\n if (isHeaderItem) {\n this.focusHeader(items[nextSelectIndex]);\n return;\n }\n\n items[nextSelectIndex].focus();\n }\n }\n\n handleHomeKey(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n const items = this.getKeyboardNavigationItems();\n const firstItem = items[0];\n const isHeaderItem = firstItem.isGroup;\n const nonInteractiveItem = firstItem.nonInteractive;\n\n if (nonInteractiveItem) {\n items[1].focus();\n return;\n }\n\n if (isHeaderItem) {\n this.focusHeader(items[0]);\n return;\n }\n\n items[0].focus();\n }\n }\n\n handleEndKey(e: KeyboardEvent) {\n if (isEnd(e)) {\n e.preventDefault();\n const items = this.getKeyboardNavigationItems();\n items[items.length - 1].focus();\n }\n }\n\n revertSelectedItems(items: Array<UDExListItemBase>) {\n items.forEach((item: UDExListItemBase) => {\n if (!item.disabled) {\n item.selected = false;\n }\n });\n }\n\n focusHeader(item: UDExListItemBase) {\n const header = item.shadowRoot?.querySelector(\".udex-list__group-header\") as HTMLElement;\n header.focus();\n }\n\n getItems(): Array<UDExListItemBase> {\n return this.getSlottedNodes<UDExListItemBase>(\"items\");\n }\n\n getSelectedItems(): Array<UDExListItemBase> {\n return this.getItemsFromList().filter(item => item.selected);\n }\n\n getCurrentIndex(items: Array<UDExListItemBase>, item: UDExListItemBase): number {\n return items.indexOf(item);\n }\n\n getItemsWithoutHeader(): Array<UDExListItemBase> {\n return this.getItemsFromList().filter(item => !item.isGroup);\n }\n\n getKeyboardNavigationItems(): Array<UDExListItemBase> {\n const items = this.modeMultiSelect ? this.getItemsFromList() : this.getItemsWithoutHeader();\n return items.filter(item => !item.disabled);\n }\n\n getItemsFromList(): Array<UDExListItemBase> {\n const items: UDExListItemBase[] = [];\n const slottedItems = this.getItems();\n\n slottedItems.forEach(item => {\n const childItems = item.isGroup ? item.children : [];\n items.push(item, ...childItems as UDExListItemBase[]);\n });\n\n return items;\n }\n\n prepareListItemsMode() {\n const slottedItems = this.getItemsFromList();\n slottedItems.forEach(item => {\n item.mode = this.mode;\n item.controlled = this.controlled;\n item.type = this.type;\n item._icon = this.itemIcon;\n });\n }\n\n get ariaLabelModeText(): string {\n if (this.modeSingleSelect || this.modeRadioGroup) {\n return UDExList.i18nBundle.getText(ARIA_LABEL_LIST_SELECTABLE);\n }\n return UDExList.i18nBundle.getText(ARIA_LABEL_LIST_MULTISELECTABLE);\n }\n\n get ariaLabelledBy() {\n return `${this._id}-mode-label`;\n }\n\n get modeRadioGroup() {\n return this.mode === ListMode.RadioGroup;\n }\n\n get modeMultiSelect() {\n return this.mode === ListMode.MultiSelect;\n }\n\n get modeSingleSelect() {\n return this.mode === ListMode.SingleSelect;\n }\n\n get modeSingleContent() {\n return this.mode === ListMode.SingleContent;\n }\n\n get modeSelected() {\n return [ListMode.SingleSelect, ListMode.MultiSelect, ListMode.RadioGroup].includes(this.mode as ListMode);\n }\n\n get holderHeight() {\n return this.height ? this.height : \"auto\";\n }\n}\n\nUDExList.define();\n\nexport default UDExList;\n"]}
1
+ {"version":3,"file":"List.js","sourceRoot":"","sources":["../src/List.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 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 {\n isUp,\n isDown,\n isHome,\n isEnd,\n isEnter,\n isSpace,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport getEffectiveScrollbarStyle from \"@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js\";\nimport UDExListItem from \"./ListItem.js\";\nimport { ListStyleType, ListMode } from \"./types/List.js\";\nimport UDExListGroupHeader from \"./ListGroupHeader.js\";\nimport UDExListGroupHeaderBase from \"./ListGroupHeaderBase.js\";\nimport {\n ARIA_LABEL_LIST_MULTISELECTABLE,\n ARIA_LABEL_LIST_SELECTABLE,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport ListTemplate from \"./generated/templates/ListTemplate.lit.js\";\n\n// Styles\nimport ListCss from \"./generated/themes/List.css.js\";\n\nexport type UDExListItemBase = UDExListItem & UDExListGroupHeader;\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\\e\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-list</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/List.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-list\n * @public\n */\n@customElement({\n tag: \"udex-list\",\n renderer: litRender,\n styles: [ListCss, getEffectiveScrollbarStyle()],\n template: ListTemplate,\n dependencies: [],\n})\n\n@event(\"selection-change\", {\n detail: {\n listItems: { type: Array },\n selectedItems: { type: Array },\n item: { type: HTMLElement },\n },\n})\n\nclass UDExList extends UI5Element {\n /**\n * Defines the accessible role of the component.\n *\n * @default \"list\"\n * @public\n */\n @property({ defaultValue: \"list\" })\n accessibleRole!: string;\n\n /**\n * Defines the accessible name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Defines the mode of the component.\n *\n * @default \"SingleSelect\"\n * @public\n */\n @property({ type: ListMode, defaultValue: ListMode.SingleSelect })\n mode!: `${ListMode}`;\n\n /**\n * Defines the type of the item.\n *\n * @defaultvalue \"None\"\n * @public\n */\n @property({ type: ListStyleType, defaultValue: ListStyleType.None })\n type!: `${ListStyleType}`;\n\n /**\n * Allows control over the height.\n *\n * @public\n */\n @property({ type: String })\n height?: string;\n\n /**\n * Defines the controlled of the component.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n controlled?: boolean;\n\n /**\n * Defines the headerText, displayed in the top of the list.\n *\n * @public\n */\n @property({ type: String })\n headerText?: string;\n\n /**\n * Defines the name of the UI5 Icon, that will be displayed for each item of the list.\n *\n * @defaultvalue \"\"\n * @private\n */\n @property({ type: String, defaultValue: \"\" })\n itemIcon?: string;\n\n /**\n * Slot for list items.\n *\n * @slot items\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n items!: Array<UDExListItemBase>;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine(): Promise<void> {\n UDExList.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n onBeforeRendering() {\n this.prepareListItemsMode();\n }\n\n handleItemPress(e: CustomEvent) {\n const clickedItem: UDExListItemBase = e.detail.item;\n this.onItemPress(clickedItem);\n }\n\n handleKeyDown(e: KeyboardEvent) {\n this.handleUpArrow(e);\n this.handleDownArrow(e);\n this.handleHomeKey(e);\n this.handleEndKey(e);\n this.handleEnterOrSpace(e);\n }\n\n handleEnterOrSpace(e: KeyboardEvent) {\n if (isEnter(e) || isSpace(e)) {\n e.preventDefault();\n const clickedItem = e.target as UDExListItemBase;\n this.onItemPress(clickedItem);\n }\n }\n\n handleUpArrow(e: KeyboardEvent) {\n if (isUp(e)) {\n e.preventDefault();\n const items = this.getKeyboardNavigationItems();\n const currentSelectedIndex = this.getCurrentIndex(items, e.target as UDExListItemBase);\n const lastItemIndex = items.length - 1;\n const previousSelectIndex = currentSelectedIndex - 1 < 0 ? lastItemIndex : currentSelectedIndex - 1;\n const isHeaderItem = items[previousSelectIndex].isGroup;\n const nonInteractiveHeader = items[previousSelectIndex].nonInteractive;\n\n if (nonInteractiveHeader && previousSelectIndex === 0) {\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, lastItemIndex);\n items[lastItemIndex].focus();\n return;\n }\n\n if (nonInteractiveHeader) {\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, previousSelectIndex - 1);\n items[previousSelectIndex - 1].focus();\n return;\n }\n\n if (isHeaderItem) {\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, previousSelectIndex);\n this.focusHeader(items[previousSelectIndex]);\n return;\n }\n\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, previousSelectIndex);\n items[previousSelectIndex].focus();\n }\n }\n\n handleDownArrow(e: KeyboardEvent) {\n if (isDown(e)) {\n e.preventDefault();\n const items = this.getKeyboardNavigationItems();\n const currentSelectedIndex = this.getCurrentIndex(items, e.target as UDExListItemBase);\n const nextSelectIndex = currentSelectedIndex + 1 > items.length - 1 ? 0 : currentSelectedIndex + 1;\n const isHeaderItem = items[nextSelectIndex].isGroup;\n const nonInteractiveHeader = items[nextSelectIndex].nonInteractive;\n\n if (nonInteractiveHeader) {\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, nextSelectIndex + 1);\n items[nextSelectIndex + 1].focus();\n return;\n }\n\n if (isHeaderItem) {\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, nextSelectIndex);\n this.focusHeader(items[nextSelectIndex]);\n return;\n }\n\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, nextSelectIndex);\n items[nextSelectIndex].focus();\n }\n }\n\n handleHomeKey(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n const items = this.getKeyboardNavigationItems();\n const currentSelectedIndex = this.getCurrentIndex(items, e.target as UDExListItemBase);\n const firstItem = items[0];\n const isHeaderItem = firstItem.isGroup;\n const nonInteractiveItem = firstItem.nonInteractive;\n\n if (nonInteractiveItem) {\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, 1);\n items[1].focus();\n return;\n }\n\n if (isHeaderItem) {\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, 0);\n this.focusHeader(items[0]);\n return;\n }\n\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, 0);\n items[0].focus();\n }\n }\n\n handleEndKey(e: KeyboardEvent) {\n if (isEnd(e)) {\n e.preventDefault();\n const items = this.getKeyboardNavigationItems();\n const currentSelectedIndex = this.getCurrentIndex(items, e.target as UDExListItemBase);\n\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, items.length - 1);\n items[items.length - 1].focus();\n }\n }\n\n onItemPress(clickedItem :UDExListItemBase) {\n if (this.modeSingleSelect && !this.controlled) {\n this.revertSelectedItems(this.getSelectedItems());\n clickedItem.selected = true;\n }\n\n if (this.modeRadioGroup && !this.controlled) {\n const groupHeader = clickedItem.parentElement as UDExListGroupHeaderBase;\n const groupItems = groupHeader.getItems() as Array<UDExListItemBase>;\n this.revertSelectedItems(groupItems);\n clickedItem.selected = true;\n }\n\n this.resetTabIndexes();\n clickedItem._tabIndex = \"0\";\n\n this.fireEvent(\"selection-change\", {\n listItems: this.getItemsFromList(),\n selectedItems: this.getSelectedItems(),\n item: clickedItem,\n });\n }\n\n revertSelectedItems(items: Array<UDExListItemBase>) {\n items.forEach((item: UDExListItemBase) => {\n if (!item.disabled) {\n item.selected = false;\n }\n });\n }\n\n focusHeader(item: UDExListItemBase) {\n const header = item.shadowRoot?.querySelector(\".udex-list__group-header\") as HTMLElement;\n header.focus();\n }\n\n unsetTabIndexByIndex(items: UDExListItemBase[], index: number) {\n items[index]._tabIndex = \"-1\";\n }\n\n setTabIndexByIndex(items: UDExListItemBase[], index: number) {\n items[index]._tabIndex = \"0\";\n }\n\n getItems(): Array<UDExListItemBase> {\n return this.getSlottedNodes<UDExListItemBase>(\"items\");\n }\n\n getSelectedItems(): Array<UDExListItemBase> {\n return this.getItemsFromList().filter(item => item.selected);\n }\n\n getCurrentIndex(items: Array<UDExListItemBase>, item: UDExListItemBase): number {\n return items.indexOf(item);\n }\n\n getItemsWithoutHeader(): Array<UDExListItemBase> {\n return this.getItemsFromList().filter(item => !item.isGroup);\n }\n\n getKeyboardNavigationItems(): Array<UDExListItemBase> {\n const items = this.modeMultiSelect ? this.getItemsFromList() : this.getItemsWithoutHeader();\n return items.filter(item => !item.disabled);\n }\n\n getItemsFromList(): Array<UDExListItemBase> {\n const items: UDExListItemBase[] = [];\n const slottedItems = this.getItems();\n\n slottedItems.forEach(item => {\n const childItems = item.isGroup ? item.children : [];\n items.push(item, ...childItems as UDExListItemBase[]);\n });\n\n return items;\n }\n\n prepareListItemsMode() {\n this.getItemsFromList().forEach((item, index) => {\n item.mode = this.mode;\n item.controlled = this.controlled;\n item.type = this.type;\n item._icon = this.itemIcon;\n item._tabIndex = this.getTabIndex(index, item);\n });\n }\n\n getTabIndex(index: number, item: UDExListItemBase): string {\n if ((item.modeSingleSelect || this.modeRadioGroup) && this.isGroupList && index === 1) {\n return \"0\";\n }\n\n if (this.modeSelected && index === 0) {\n return \"0\";\n }\n\n return \"-1\";\n }\n\n resetTabIndexes() {\n this.getItemsFromList().forEach(item => {\n item._tabIndex = \"-1\";\n });\n }\n\n get isGroupList(): boolean {\n return this.getItemsFromList().some(item => item.isGroup);\n }\n\n get ariaLabelModeText(): string {\n if (this.modeSingleSelect || this.modeRadioGroup) {\n return UDExList.i18nBundle.getText(ARIA_LABEL_LIST_SELECTABLE);\n }\n return UDExList.i18nBundle.getText(ARIA_LABEL_LIST_MULTISELECTABLE);\n }\n\n get ariaLabelledBy() {\n return `${this._id}-mode-label`;\n }\n\n get modeRadioGroup() {\n return this.mode === ListMode.RadioGroup;\n }\n\n get modeMultiSelect() {\n return this.mode === ListMode.MultiSelect;\n }\n\n get modeSingleSelect() {\n return this.mode === ListMode.SingleSelect;\n }\n\n get modeSingleContent() {\n return this.mode === ListMode.SingleContent;\n }\n\n get modeSelected() {\n return [ListMode.SingleSelect, ListMode.MultiSelect, ListMode.RadioGroup].includes(this.mode as ListMode);\n }\n\n get holderHeight() {\n return this.height ? this.height : \"auto\";\n }\n}\n\nUDExList.define();\n\nexport default UDExList;\n"]}
@@ -141,7 +141,6 @@ declare class UDExListItem extends UDExListItemBase {
141
141
  get className(): string;
142
142
  get roleItem(): string;
143
143
  get _ariaDisabled(): true | undefined;
144
- get _tabIndex(): -1 | 0;
145
144
  get modeSingleContent(): boolean;
146
145
  get modeRadioGroup(): boolean;
147
146
  get modeSelected(): boolean;
package/dist/ListItem.js CHANGED
@@ -155,12 +155,6 @@ let UDExListItem = UDExListItem_1 = class UDExListItem extends UDExListItemBase
155
155
  get _ariaDisabled() {
156
156
  return this.disabled ? true : undefined;
157
157
  }
158
- get _tabIndex() {
159
- if (this.disabled) {
160
- return -1;
161
- }
162
- return 0;
163
- }
164
158
  get modeSingleContent() {
165
159
  return this.mode === ListMode.SingleContent;
166
160
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ListItem.js","sourceRoot":"","sources":["../src/ListItem.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.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 { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport I18nBundle, { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport UDExCheckbox from \"./Checkbox.js\";\nimport UDExListItemBase from \"./ListItemBase.js\";\nimport UDExListGroupHeaderBase from \"./ListGroupHeaderBase.js\";\nimport UDExAvatar, { AvatarShape, AvatarSize } from \"./Avatar.js\";\nimport UDExButton from \"./Button.js\";\nimport {\n ListItemSize, ListMode, AdditionalTextState,\n} from \"./types/List.js\";\nimport UDExRadioButton from \"./RadioButton.js\";\nimport {\n DELETE_BUTTON, EDIT_BUTTON, INDETERMINATE, SELECTED, UNSELECTED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport ListItemTemplate from \"./generated/templates/ListItemTemplate.lit.js\";\n\n// Styles\nimport ListItemCss from \"./generated/themes/ListItem.css.js\";\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-list-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/ListItem.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UDExListItemBase\n * @tagname udex-list-item\n * @public\n */\n\n@customElement({\n tag: \"udex-list-item\",\n renderer: litRender,\n styles: ListItemCss,\n template: ListItemTemplate,\n dependencies: [\n UDExAvatar,\n UDExButton,\n UDExRadioButton,\n UDExCheckbox,\n Icon,\n ],\n})\n\n/**\n * Fired event when the user click on a list item.\n *\n * @event sap.ui.webc.web-components.UDExListItem#itemPress\n * @public\n */\n@event(\"item-press\", {\n detail: {\n selected: { type: Boolean },\n item: { type: HTMLElement },\n },\n})\n/**\n * Fired event when the user focuses on a list item.\n *\n * @event sap.ui.webc.web-components.UDExListItem#itemFocus\n * @public\n */\n@event(\"item-focus\", {\n detail: {\n item: { type: HTMLElement },\n },\n})\n/**\n * Fired event when the user click on the delete icon.\n *\n * @event sap.ui.webc.web-components.UDExListItem#deletePress\n * @public\n */\n@event(\"delete-press\", {\n detail: {\n item: { type: HTMLElement },\n },\n})\n/**\n * Fired event when the user click on the edit icon.\n *\n * @event sap.ui.webc.web-components.UDExListItem#editPress\n * @public\n */\n@event(\"edit-press\", {\n detail: {\n item: { type: HTMLElement },\n },\n})\n\nclass UDExListItem extends UDExListItemBase {\n /**\n * Defines the accessible name of the item.\n *\n * @defaultvalue \"\"\n * @public\n */\n @property()\n accessibleName?: string;\n\n /**\n * Defines the position for flag image.\n *\n * @public\n */\n @property({ type: String })\n flagPosition?: string;\n\n /**\n * Defines the image, displayed at the start of the item.\n *\n * @public\n */\n @property({ type: Boolean })\n flag?: boolean;\n\n /**\n * Indicates if the item is active.\n *\n * @private\n */\n @property({ type: Boolean })\n active!: boolean;\n\n /**\n * Indicates if the item is on focus\n *\n * @private\n */\n @property({ type: Boolean })\n focused!: boolean;\n\n /**\n * Defines the additionalText, displayed at the end of the list item.\n *\n * @public\n */\n @property({ type: String })\n additionalText?: string;\n\n /**\n * Defines the state of the additionalText.\n *\n * @defaultvalue \"Circle\"\n * @public\n */\n @property({ type: AdditionalTextState, defaultValue: AdditionalTextState.None })\n additionalTextState?: `${AdditionalTextState}`;\n\n /**\n * Allows control over the image source.\n *\n * @public\n */\n @property({ type: String })\n image?: string;\n\n /**\n * Allows control over the alternative text of the image.\n *\n * @public\n */\n @property({ type: String })\n imageAlt?: string;\n\n /**\n * Defines the shape of the image.\n *\n * @defaultvalue \"Circle\"\n * @public\n */\n @property({ type: AvatarShape, defaultValue: AvatarShape.Circle })\n imageShape?: `${AvatarShape}`;\n\n /**\n * Allows control over the size of the image.\n *\n * @defaultvalue \"S\"\n * @public\n */\n @property({ type: AvatarSize, defaultValue: AvatarSize.S })\n imageSize!: `${AvatarSize}`;\n\n /**\n * Defines the name of the edit icon, displayed in the end of the list item.\n *\n * @defaultvalue \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n editIcon?: string;\n\n /**\n * Defines the name of the delete icon, displayed in the end of the list item.\n *\n * @defaultvalue \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n deleteIcon?: string;\n\n /**\n * Slot for list item content.\n *\n * @slot\n * @public\n */\n @slot({ type: Node, \"default\": true })\n content!: Array<Node>;\n\n /**\n * Defines the role attribute of component\n *\n * @public\n */\n @property({ type: String })\n accessibleRole!: string;\n\n @property({ type: String })\n _additionalClassName!: string;\n\n deactivate: () => void;\n\n static i18nBundle: I18nBundle;\n\n constructor() {\n super();\n\n this.deactivate = () => {\n if (this.active) {\n this.active = false;\n }\n };\n }\n\n static async onDefine(): Promise<void> {\n UDExListItem.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n onEnterDOM() {\n document.addEventListener(\"mouseup\", this.deactivate);\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onExitDOM() {\n document.removeEventListener(\"mouseup\", this.deactivate);\n }\n\n handleMouseDown() {\n this.activate();\n }\n\n handleMouseUp() {\n this.deactivate();\n }\n\n handleKeyUp(e: KeyboardEvent) {\n e.preventDefault();\n if (isSpace(e) || isEnter(e)) {\n this.deactivate();\n }\n }\n\n handleKeyDown(e: KeyboardEvent) {\n if (isSpace(e)) {\n e.preventDefault();\n }\n if (isSpace(e) || isEnter(e)) {\n this.activate();\n this.handleItemClick(e);\n }\n }\n\n handleKeyDownIcon(e: KeyboardEvent) {\n e.stopPropagation();\n }\n\n handleItemClick(e: Event) {\n if (this.disabled) {\n return;\n }\n if (!this.indeterminate && !this.controlled) {\n this.selected = !this.selected;\n }\n this.fireItemPress(e);\n }\n\n handleFocusIn() {\n if (!this.disabled) {\n this.focused = true;\n this.fireEvent(\"item-focus\", {\n item: this,\n });\n }\n }\n\n handleFocusOut() {\n if (!this.disabled) {\n this.focused = false;\n this.deactivate();\n }\n }\n\n handleDeleteClick(e: Event) {\n if (!this.disabled) {\n e.stopPropagation();\n this.fireEvent(\"delete-press\", {\n item: this,\n });\n }\n }\n\n handleEditClick(e: Event) {\n if (!this.disabled) {\n e.stopPropagation();\n this.fireEvent(\"edit-press\", {\n item: this,\n });\n }\n }\n\n fireItemPress(e: Event) {\n if (isEnter(e as KeyboardEvent)) {\n e.preventDefault();\n }\n this.fireEvent(\"item-press\", {\n selected: this.selected,\n item: this,\n });\n }\n\n activate() {\n if (!this.disabled) {\n this.active = true;\n }\n }\n\n get className() {\n const isGroupChild = this?.parentElement as UDExListGroupHeaderBase;\n const className = \"udex-list__item\";\n const controlledClassName = this.controlled ? `${className}_controlled` : \"\";\n const groupClassName = isGroupChild?.isGroup ? `${className}_group` : \"\";\n const largeSizeClassName = this.isLargeSize ? `${className}_large` : \"\";\n return `${className} ${groupClassName} ${this._additionalClassName} ${controlledClassName} ${largeSizeClassName}`;\n }\n\n get roleItem() {\n return this.accessibleRole.length > 0 ? this.accessibleRole : \"listitem\";\n }\n\n get _ariaDisabled() {\n return this.disabled ? true : undefined;\n }\n\n get _tabIndex() {\n if (this.disabled) {\n return -1;\n }\n return 0;\n }\n\n get modeSingleContent() {\n return this.mode === ListMode.SingleContent;\n }\n\n get modeRadioGroup() {\n return this.mode === ListMode.RadioGroup;\n }\n\n get modeSelected() {\n return [ListMode.SingleSelect, ListMode.MultiSelect, ListMode.RadioGroup].includes(this.mode as ListMode);\n }\n\n get isLargeSize() {\n return this.size === ListItemSize.Large;\n }\n\n get _accessibleNameRef(): string {\n if (this.accessibleName) {\n return `${this._id}-invisibleText`;\n }\n\n return `${this._id}-content`;\n }\n\n get stateAccessibleName(): string {\n if (this.indeterminate) { return UDExListItem.i18nBundle.getText(INDETERMINATE); }\n return `${this.selected ? UDExListItem.i18nBundle.getText(SELECTED) : UDExListItem.i18nBundle.getText(UNSELECTED)} `;\n }\n\n get editButtonAccessibleName(): string {\n return UDExListItem.i18nBundle.getText(EDIT_BUTTON);\n }\n\n get deleteButtonAccessibleName(): string {\n return UDExListItem.i18nBundle.getText(DELETE_BUTTON);\n }\n}\n\nUDExListItem.define();\n\nexport default UDExListItem;\n"]}
1
+ {"version":3,"file":"ListItem.js","sourceRoot":"","sources":["../src/ListItem.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAmB,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,gBAAgB,MAAM,mBAAmB,CAAC;AAEjD,OAAO,UAAU,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,YAAY,EAAE,QAAQ,EAAE,mBAAmB,GAC5C,MAAM,iBAAiB,CAAC;AACzB,OAAO,eAAe,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,GAChE,MAAM,mCAAmC,CAAC;AAE3C,OAAO,gBAAgB,MAAM,+CAA+C,CAAC;AAE7E,SAAS;AACT,OAAO,WAAW,MAAM,oCAAoC,CAAC;AAE7D;;;;;;;;;;;;;;;;;;GAkBG;AA8DH,IAAM,YAAY,oBAAlB,MAAM,YAAa,SAAQ,gBAAgB;IAuIzC;QACE,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE;YACrB,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;QACH,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ;QACnB,cAAY,CAAC,UAAU,GAAG,MAAM,aAAa,CAAC,6BAA6B,CAAC,CAAC;IAC/E,CAAC;IAED,UAAU;QACR,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,SAAS,EAAE,EAAE;YACf,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;SAClC;IACH,CAAC;IAED,SAAS;QACP,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3D,CAAC;IAED,eAAe;QACb,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,aAAa;QACX,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,WAAW,CAAC,CAAgB;QAC1B,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;YAC5B,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;IACH,CAAC;IAED,aAAa,CAAC,CAAgB;QAC5B,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;YACd,CAAC,CAAC,cAAc,EAAE,CAAC;SACpB;QACD,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;SACzB;IACH,CAAC;IAED,iBAAiB,CAAC,CAAgB;QAChC,CAAC,CAAC,eAAe,EAAE,CAAC;IACtB,CAAC;IAED,eAAe,CAAC,CAAQ;QACtB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO;SACR;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAC3C,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;SAChC;QACD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,aAAa;QACX,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;gBAC3B,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;SACJ;IACH,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;IACH,CAAC;IAED,iBAAiB,CAAC,CAAQ;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;gBAC7B,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;SACJ;IACH,CAAC;IAED,eAAe,CAAC,CAAQ;QACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;gBAC3B,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;SACJ;IACH,CAAC;IAED,aAAa,CAAC,CAAQ;QACpB,IAAI,OAAO,CAAC,CAAkB,CAAC,EAAE;YAC/B,CAAC,CAAC,cAAc,EAAE,CAAC;SACpB;QACD,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB;IACH,CAAC;IAED,IAAI,SAAS;QACX,MAAM,YAAY,GAAG,IAAI,EAAE,aAAwC,CAAC;QACpE,MAAM,SAAS,GAAG,iBAAiB,CAAC;QACpC,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,MAAM,cAAc,GAAG,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,OAAO,GAAG,SAAS,IAAI,cAAc,IAAI,IAAI,CAAC,oBAAoB,IAAI,mBAAmB,IAAI,kBAAkB,EAAE,CAAC;IACpH,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC;IAC3E,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1C,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,aAAa,CAAC;IAC9C,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,UAAU,CAAC;IAC3C,CAAC;IAED,IAAI,YAAY;QACd,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAgB,CAAC,CAAC;IAC5G,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,KAAK,CAAC;IAC1C,CAAC;IAED,IAAI,kBAAkB;QACpB,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,OAAO,GAAG,IAAI,CAAC,GAAG,gBAAgB,CAAC;SACpC;QAED,OAAO,GAAG,IAAI,CAAC,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,IAAI,mBAAmB;QACrB,IAAI,IAAI,CAAC,aAAa,EAAE;YAAE,OAAO,cAAY,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SAAE;QAClF,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAY,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAY,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;IACvH,CAAC;IAED,IAAI,wBAAwB;QAC1B,OAAO,cAAY,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,0BAA0B;QAC5B,OAAO,cAAY,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACxD,CAAC;CACF,CAAA;AAtSG;IADD,QAAQ,EAAE;oDACe;AAQxB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kDACH;AAQtB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACX;AAQf;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4CACT;AAQjB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;6CACR;AAQlB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oDACD;AASxB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,CAAC,IAAI,EAAE,CAAC;yDAC/B;AAQ/C;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2CACV;AAQf;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8CACP;AASlB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC;gDAClC;AAS9B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;+CAC7B;AAS5B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;8CACzB;AASlB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;gDACvB;AASpB;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;6CACd;AAQtB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oDACD;AAGxB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0DACK;AAjI5B,YAAY;IA5DjB,aAAa,CAAC;QACb,GAAG,EAAE,gBAAgB;QACrB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,WAAW;QACnB,QAAQ,EAAE,gBAAgB;QAC1B,YAAY,EAAE;YACZ,UAAU;YACV,UAAU;YACV,eAAe;YACf,YAAY;YACZ,IAAI;SACL;KACF,CAAC;IAEF;;;;;OAKG;;IACF,KAAK,CAAC,YAAY,EAAE;QACnB,MAAM,EAAE;YACN,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YAC3B,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC5B;KACF,CAAC;IACF;;;;;OAKG;;IACF,KAAK,CAAC,YAAY,EAAE;QACnB,MAAM,EAAE;YACN,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC5B;KACF,CAAC;IACF;;;;;OAKG;;IACF,KAAK,CAAC,cAAc,EAAE;QACrB,MAAM,EAAE;YACN,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC5B;KACF,CAAC;IACF;;;;;OAKG;;IACF,KAAK,CAAC,YAAY,EAAE;QACnB,MAAM,EAAE;YACN,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC5B;KACF,CAAC;GAEI,YAAY,CA8SjB;AAED,YAAY,CAAC,MAAM,EAAE,CAAC;AAEtB,eAAe,YAAY,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.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 { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport I18nBundle, { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport UDExCheckbox from \"./Checkbox.js\";\nimport UDExListItemBase from \"./ListItemBase.js\";\nimport UDExListGroupHeaderBase from \"./ListGroupHeaderBase.js\";\nimport UDExAvatar, { AvatarShape, AvatarSize } from \"./Avatar.js\";\nimport UDExButton from \"./Button.js\";\nimport {\n ListItemSize, ListMode, AdditionalTextState,\n} from \"./types/List.js\";\nimport UDExRadioButton from \"./RadioButton.js\";\nimport {\n DELETE_BUTTON, EDIT_BUTTON, INDETERMINATE, SELECTED, UNSELECTED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport ListItemTemplate from \"./generated/templates/ListItemTemplate.lit.js\";\n\n// Styles\nimport ListItemCss from \"./generated/themes/ListItem.css.js\";\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-list-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/ListItem.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UDExListItemBase\n * @tagname udex-list-item\n * @public\n */\n\n@customElement({\n tag: \"udex-list-item\",\n renderer: litRender,\n styles: ListItemCss,\n template: ListItemTemplate,\n dependencies: [\n UDExAvatar,\n UDExButton,\n UDExRadioButton,\n UDExCheckbox,\n Icon,\n ],\n})\n\n/**\n * Fired event when the user click on a list item.\n *\n * @event sap.ui.webc.web-components.UDExListItem#itemPress\n * @public\n */\n@event(\"item-press\", {\n detail: {\n selected: { type: Boolean },\n item: { type: HTMLElement },\n },\n})\n/**\n * Fired event when the user focuses on a list item.\n *\n * @event sap.ui.webc.web-components.UDExListItem#itemFocus\n * @public\n */\n@event(\"item-focus\", {\n detail: {\n item: { type: HTMLElement },\n },\n})\n/**\n * Fired event when the user click on the delete icon.\n *\n * @event sap.ui.webc.web-components.UDExListItem#deletePress\n * @public\n */\n@event(\"delete-press\", {\n detail: {\n item: { type: HTMLElement },\n },\n})\n/**\n * Fired event when the user click on the edit icon.\n *\n * @event sap.ui.webc.web-components.UDExListItem#editPress\n * @public\n */\n@event(\"edit-press\", {\n detail: {\n item: { type: HTMLElement },\n },\n})\n\nclass UDExListItem extends UDExListItemBase {\n /**\n * Defines the accessible name of the item.\n *\n * @defaultvalue \"\"\n * @public\n */\n @property()\n accessibleName?: string;\n\n /**\n * Defines the position for flag image.\n *\n * @public\n */\n @property({ type: String })\n flagPosition?: string;\n\n /**\n * Defines the image, displayed at the start of the item.\n *\n * @public\n */\n @property({ type: Boolean })\n flag?: boolean;\n\n /**\n * Indicates if the item is active.\n *\n * @private\n */\n @property({ type: Boolean })\n active!: boolean;\n\n /**\n * Indicates if the item is on focus\n *\n * @private\n */\n @property({ type: Boolean })\n focused!: boolean;\n\n /**\n * Defines the additionalText, displayed at the end of the list item.\n *\n * @public\n */\n @property({ type: String })\n additionalText?: string;\n\n /**\n * Defines the state of the additionalText.\n *\n * @defaultvalue \"Circle\"\n * @public\n */\n @property({ type: AdditionalTextState, defaultValue: AdditionalTextState.None })\n additionalTextState?: `${AdditionalTextState}`;\n\n /**\n * Allows control over the image source.\n *\n * @public\n */\n @property({ type: String })\n image?: string;\n\n /**\n * Allows control over the alternative text of the image.\n *\n * @public\n */\n @property({ type: String })\n imageAlt?: string;\n\n /**\n * Defines the shape of the image.\n *\n * @defaultvalue \"Circle\"\n * @public\n */\n @property({ type: AvatarShape, defaultValue: AvatarShape.Circle })\n imageShape?: `${AvatarShape}`;\n\n /**\n * Allows control over the size of the image.\n *\n * @defaultvalue \"S\"\n * @public\n */\n @property({ type: AvatarSize, defaultValue: AvatarSize.S })\n imageSize!: `${AvatarSize}`;\n\n /**\n * Defines the name of the edit icon, displayed in the end of the list item.\n *\n * @defaultvalue \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n editIcon?: string;\n\n /**\n * Defines the name of the delete icon, displayed in the end of the list item.\n *\n * @defaultvalue \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n deleteIcon?: string;\n\n /**\n * Slot for list item content.\n *\n * @slot\n * @public\n */\n @slot({ type: Node, \"default\": true })\n content!: Array<Node>;\n\n /**\n * Defines the role attribute of component\n *\n * @public\n */\n @property({ type: String })\n accessibleRole!: string;\n\n @property({ type: String })\n _additionalClassName!: string;\n\n deactivate: () => void;\n\n static i18nBundle: I18nBundle;\n\n constructor() {\n super();\n\n this.deactivate = () => {\n if (this.active) {\n this.active = false;\n }\n };\n }\n\n static async onDefine(): Promise<void> {\n UDExListItem.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n onEnterDOM() {\n document.addEventListener(\"mouseup\", this.deactivate);\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onExitDOM() {\n document.removeEventListener(\"mouseup\", this.deactivate);\n }\n\n handleMouseDown() {\n this.activate();\n }\n\n handleMouseUp() {\n this.deactivate();\n }\n\n handleKeyUp(e: KeyboardEvent) {\n e.preventDefault();\n if (isSpace(e) || isEnter(e)) {\n this.deactivate();\n }\n }\n\n handleKeyDown(e: KeyboardEvent) {\n if (isSpace(e)) {\n e.preventDefault();\n }\n if (isSpace(e) || isEnter(e)) {\n this.activate();\n this.handleItemClick(e);\n }\n }\n\n handleKeyDownIcon(e: KeyboardEvent) {\n e.stopPropagation();\n }\n\n handleItemClick(e: Event) {\n if (this.disabled) {\n return;\n }\n if (!this.indeterminate && !this.controlled) {\n this.selected = !this.selected;\n }\n this.fireItemPress(e);\n }\n\n handleFocusIn() {\n if (!this.disabled) {\n this.focused = true;\n this.fireEvent(\"item-focus\", {\n item: this,\n });\n }\n }\n\n handleFocusOut() {\n if (!this.disabled) {\n this.focused = false;\n this.deactivate();\n }\n }\n\n handleDeleteClick(e: Event) {\n if (!this.disabled) {\n e.stopPropagation();\n this.fireEvent(\"delete-press\", {\n item: this,\n });\n }\n }\n\n handleEditClick(e: Event) {\n if (!this.disabled) {\n e.stopPropagation();\n this.fireEvent(\"edit-press\", {\n item: this,\n });\n }\n }\n\n fireItemPress(e: Event) {\n if (isEnter(e as KeyboardEvent)) {\n e.preventDefault();\n }\n this.fireEvent(\"item-press\", {\n selected: this.selected,\n item: this,\n });\n }\n\n activate() {\n if (!this.disabled) {\n this.active = true;\n }\n }\n\n get className() {\n const isGroupChild = this?.parentElement as UDExListGroupHeaderBase;\n const className = \"udex-list__item\";\n const controlledClassName = this.controlled ? `${className}_controlled` : \"\";\n const groupClassName = isGroupChild?.isGroup ? `${className}_group` : \"\";\n const largeSizeClassName = this.isLargeSize ? `${className}_large` : \"\";\n return `${className} ${groupClassName} ${this._additionalClassName} ${controlledClassName} ${largeSizeClassName}`;\n }\n\n get roleItem() {\n return this.accessibleRole.length > 0 ? this.accessibleRole : \"listitem\";\n }\n\n get _ariaDisabled() {\n return this.disabled ? true : undefined;\n }\n\n get modeSingleContent() {\n return this.mode === ListMode.SingleContent;\n }\n\n get modeRadioGroup() {\n return this.mode === ListMode.RadioGroup;\n }\n\n get modeSelected() {\n return [ListMode.SingleSelect, ListMode.MultiSelect, ListMode.RadioGroup].includes(this.mode as ListMode);\n }\n\n get isLargeSize() {\n return this.size === ListItemSize.Large;\n }\n\n get _accessibleNameRef(): string {\n if (this.accessibleName) {\n return `${this._id}-invisibleText`;\n }\n\n return `${this._id}-content`;\n }\n\n get stateAccessibleName(): string {\n if (this.indeterminate) { return UDExListItem.i18nBundle.getText(INDETERMINATE); }\n return `${this.selected ? UDExListItem.i18nBundle.getText(SELECTED) : UDExListItem.i18nBundle.getText(UNSELECTED)} `;\n }\n\n get editButtonAccessibleName(): string {\n return UDExListItem.i18nBundle.getText(EDIT_BUTTON);\n }\n\n get deleteButtonAccessibleName(): string {\n return UDExListItem.i18nBundle.getText(DELETE_BUTTON);\n }\n}\n\nUDExListItem.define();\n\nexport default UDExListItem;\n"]}