@sapudex/web-components 0.127.6 → 0.138.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (366) hide show
  1. package/bundle.esm.js +2 -0
  2. package/dist/Accordion.d.ts +1 -1
  3. package/dist/Accordion.js +1 -1
  4. package/dist/Accordion.js.map +1 -1
  5. package/dist/AccordionItem.d.ts +1 -1
  6. package/dist/AccordionItem.js +2 -2
  7. package/dist/AccordionItem.js.map +1 -1
  8. package/dist/Checkbox.d.ts +1 -1
  9. package/dist/Checkbox.js +1 -1
  10. package/dist/Checkbox.js.map +1 -1
  11. package/dist/CountrySelector.d.ts +24 -6
  12. package/dist/CountrySelector.js +25 -7
  13. package/dist/CountrySelector.js.map +1 -1
  14. package/dist/DatePicker.d.ts +1 -0
  15. package/dist/DatePicker.js +4 -1
  16. package/dist/DatePicker.js.map +1 -1
  17. package/dist/Dropdown.d.ts +1 -1
  18. package/dist/Dropdown.js +3 -3
  19. package/dist/Dropdown.js.map +1 -1
  20. package/dist/FilterMenu.d.ts +19 -5
  21. package/dist/FilterMenu.js +57 -20
  22. package/dist/FilterMenu.js.map +1 -1
  23. package/dist/Footer.d.ts +9 -1
  24. package/dist/Footer.js +8 -1
  25. package/dist/Footer.js.map +1 -1
  26. package/dist/Link.d.ts +1 -1
  27. package/dist/Link.js +1 -1
  28. package/dist/Link.js.map +1 -1
  29. package/dist/List.d.ts +1 -1
  30. package/dist/List.js +17 -1
  31. package/dist/List.js.map +1 -1
  32. package/dist/ListGroupHeader.d.ts +2 -2
  33. package/dist/ListGroupHeader.js +2 -2
  34. package/dist/ListGroupHeader.js.map +1 -1
  35. package/dist/ListItem.d.ts +3 -3
  36. package/dist/ListItem.js +6 -7
  37. package/dist/ListItem.js.map +1 -1
  38. package/dist/ListSelectAll.d.ts +1 -1
  39. package/dist/ListSelectAll.js +1 -1
  40. package/dist/ListSelectAll.js.map +1 -1
  41. package/dist/MastheadItem.d.ts +9 -1
  42. package/dist/MastheadItem.js +26 -9
  43. package/dist/MastheadItem.js.map +1 -1
  44. package/dist/MastheadMenu.d.ts +5 -0
  45. package/dist/MastheadMenu.js +24 -0
  46. package/dist/MastheadMenu.js.map +1 -1
  47. package/dist/MastheadMenuItem.d.ts +2 -3
  48. package/dist/MastheadMenuItem.js +2 -17
  49. package/dist/MastheadMenuItem.js.map +1 -1
  50. package/dist/MastheadMobileMenu.d.ts +25 -5
  51. package/dist/MastheadMobileMenu.js +135 -21
  52. package/dist/MastheadMobileMenu.js.map +1 -1
  53. package/dist/MastheadProfileMenu.d.ts +13 -4
  54. package/dist/MastheadProfileMenu.js +40 -9
  55. package/dist/MastheadProfileMenu.js.map +1 -1
  56. package/dist/MastheadShell.d.ts +3 -0
  57. package/dist/MastheadShell.js +42 -8
  58. package/dist/MastheadShell.js.map +1 -1
  59. package/dist/MediaPlayer.d.ts +3 -3
  60. package/dist/MediaPlayer.js +115 -25
  61. package/dist/MediaPlayer.js.map +1 -1
  62. package/dist/PhoneNumberField.d.ts +26 -0
  63. package/dist/PhoneNumberField.js +46 -2
  64. package/dist/PhoneNumberField.js.map +1 -1
  65. package/dist/ReviewItem.d.ts +105 -0
  66. package/dist/ReviewItem.js +157 -0
  67. package/dist/ReviewItem.js.map +1 -0
  68. package/dist/Search.d.ts +15 -1
  69. package/dist/Search.js +30 -5
  70. package/dist/Search.js.map +1 -1
  71. package/dist/SecondaryNavigation.d.ts +1 -0
  72. package/dist/SecondaryNavigation.js +11 -10
  73. package/dist/SecondaryNavigation.js.map +1 -1
  74. package/dist/SecondaryNavigationItem.js +1 -1
  75. package/dist/SecondaryNavigationItem.js.map +1 -1
  76. package/dist/SecondaryNavigationItemBase.js +1 -1
  77. package/dist/SecondaryNavigationItemBase.js.map +1 -1
  78. package/dist/SelectBox.d.ts +33 -9
  79. package/dist/SelectBox.js +119 -60
  80. package/dist/SelectBox.js.map +1 -1
  81. package/dist/Switch.d.ts +19 -0
  82. package/dist/Switch.js +19 -0
  83. package/dist/Switch.js.map +1 -1
  84. package/dist/Tab.d.ts +1 -1
  85. package/dist/Tab.js +1 -1
  86. package/dist/Tab.js.map +1 -1
  87. package/dist/TabNavigation.d.ts +1 -1
  88. package/dist/TabNavigation.js +1 -1
  89. package/dist/TabNavigation.js.map +1 -1
  90. package/dist/Tag.d.ts +9 -1
  91. package/dist/Tag.js +20 -3
  92. package/dist/Tag.js.map +1 -1
  93. package/dist/TagGroup.d.ts +94 -0
  94. package/dist/TagGroup.js +174 -0
  95. package/dist/TagGroup.js.map +1 -0
  96. package/dist/TextArea.d.ts +13 -0
  97. package/dist/TextArea.js +15 -0
  98. package/dist/TextArea.js.map +1 -1
  99. package/dist/TextField.d.ts +23 -13
  100. package/dist/TextField.js +16 -2
  101. package/dist/TextField.js.map +1 -1
  102. package/dist/Tooltip.d.ts +1 -1
  103. package/dist/Tooltip.js +1 -1
  104. package/dist/Tooltip.js.map +1 -1
  105. package/dist/assets/{bundle.esm-7d53f4f2.js → bundle.esm-bb1c7413.js} +190 -188
  106. package/dist/assets/messagebundle_en-c677773a.js +1 -0
  107. package/dist/assets/parameters-bundle.css-c897ae23.js +2 -0
  108. package/dist/assets/video.es-60bfb78c.js +228 -0
  109. package/dist/css/themes/CountrySelector.css +1 -1
  110. package/dist/css/themes/FilterMenu.css +1 -1
  111. package/dist/css/themes/ListItem.css +1 -1
  112. package/dist/css/themes/MastheadItem.css +1 -1
  113. package/dist/css/themes/MastheadMobileMenu.css +1 -1
  114. package/dist/css/themes/PhoneNumberField.css +1 -1
  115. package/dist/css/themes/RatingIndicator.css +1 -1
  116. package/dist/css/themes/ReviewItem.css +1 -0
  117. package/dist/css/themes/Search.css +1 -1
  118. package/dist/css/themes/SecondaryNavigation.css +1 -1
  119. package/dist/css/themes/SecondaryNavigationItem.css +1 -1
  120. package/dist/css/themes/SecondaryNavigationSubItem.css +1 -1
  121. package/dist/css/themes/SelectBox.css +1 -1
  122. package/dist/css/themes/Slider.css +1 -1
  123. package/dist/css/themes/Tag.css +1 -1
  124. package/dist/css/themes/TagGroup.css +1 -0
  125. package/dist/css/themes/TextArea.css +1 -1
  126. package/dist/css/themes/TextField.css +1 -1
  127. package/dist/css/themes/Toast.css +1 -1
  128. package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +1 -1
  129. package/dist/custom-elements-internal.json +783 -362
  130. package/dist/custom-elements.json +751 -369
  131. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  132. package/dist/generated/assets/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.json +1 -1
  133. package/dist/generated/i18n/i18n-defaults.d.ts +3 -1
  134. package/dist/generated/i18n/i18n-defaults.js +6 -4
  135. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  136. package/dist/generated/templates/CountrySelectorTemplate.lit.js +3 -3
  137. package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
  138. package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
  139. package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
  140. package/dist/generated/templates/DropdownTemplate.lit.js +2 -2
  141. package/dist/generated/templates/DropdownTemplate.lit.js.map +1 -1
  142. package/dist/generated/templates/FilterMenuTemplate.lit.js +1 -1
  143. package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
  144. package/dist/generated/templates/FooterTemplate.lit.js +9 -9
  145. package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
  146. package/dist/generated/templates/HeroBannerTemplate.lit.js +7 -8
  147. package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
  148. package/dist/generated/templates/ListItemTemplate.lit.js +6 -6
  149. package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
  150. package/dist/generated/templates/ListSelectAllTemplate.lit.js +1 -1
  151. package/dist/generated/templates/ListSelectAllTemplate.lit.js.map +1 -1
  152. package/dist/generated/templates/MastheadItemTemplate.lit.js +3 -3
  153. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
  154. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js +1 -1
  155. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +1 -1
  156. package/dist/generated/templates/MastheadMenuTemplate.lit.js +2 -2
  157. package/dist/generated/templates/MastheadMenuTemplate.lit.js.map +1 -1
  158. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +16 -12
  159. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
  160. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js +2 -2
  161. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js.map +1 -1
  162. package/dist/generated/templates/MastheadShellTemplate.lit.js +7 -7
  163. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  164. package/dist/generated/templates/MediaPlayerTemplate.lit.js +2 -2
  165. package/dist/generated/templates/MediaPlayerTemplate.lit.js.map +1 -1
  166. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +5 -2
  167. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
  168. package/dist/generated/templates/ReviewItemTemplate.lit.d.ts +4 -0
  169. package/dist/generated/templates/ReviewItemTemplate.lit.js +8 -0
  170. package/dist/generated/templates/ReviewItemTemplate.lit.js.map +1 -0
  171. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +7 -6
  172. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  173. package/dist/generated/templates/SelectBoxTemplate.lit.js +2 -2
  174. package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
  175. package/dist/generated/templates/TabHeaderTemplate.lit.js +2 -2
  176. package/dist/generated/templates/TabHeaderTemplate.lit.js.map +1 -1
  177. package/dist/generated/templates/TabInOverflowTemplate.lit.js +6 -6
  178. package/dist/generated/templates/TabInOverflowTemplate.lit.js.map +1 -1
  179. package/dist/generated/templates/TabNavigationTemplate.lit.js +3 -1
  180. package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
  181. package/dist/generated/templates/TagGroupTemplate.lit.d.ts +4 -0
  182. package/dist/generated/templates/TagGroupTemplate.lit.js +8 -0
  183. package/dist/generated/templates/TagGroupTemplate.lit.js.map +1 -0
  184. package/dist/generated/templates/TagTemplate.lit.js +11 -7
  185. package/dist/generated/templates/TagTemplate.lit.js.map +1 -1
  186. package/dist/generated/templates/TextAreaTemplate.lit.js +1 -1
  187. package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
  188. package/dist/generated/templates/TextFieldTemplate.lit.js +1 -1
  189. package/dist/generated/templates/TextFieldTemplate.lit.js.map +1 -1
  190. package/dist/generated/themes/CountrySelector.css.js +1 -1
  191. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  192. package/dist/generated/themes/FilterMenu.css.js +1 -1
  193. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  194. package/dist/generated/themes/ListItem.css.js +1 -1
  195. package/dist/generated/themes/ListItem.css.js.map +1 -1
  196. package/dist/generated/themes/MastheadItem.css.js +1 -1
  197. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  198. package/dist/generated/themes/MastheadMobileMenu.css.js +1 -1
  199. package/dist/generated/themes/MastheadMobileMenu.css.js.map +1 -1
  200. package/dist/generated/themes/PhoneNumberField.css.js +1 -1
  201. package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
  202. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  203. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  204. package/dist/generated/themes/ReviewItem.css.d.ts +3 -0
  205. package/dist/generated/themes/ReviewItem.css.js +9 -0
  206. package/dist/generated/themes/ReviewItem.css.js.map +1 -0
  207. package/dist/generated/themes/Search.css.js +1 -1
  208. package/dist/generated/themes/Search.css.js.map +1 -1
  209. package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
  210. package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
  211. package/dist/generated/themes/SecondaryNavigationItem.css.js +1 -1
  212. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
  213. package/dist/generated/themes/SecondaryNavigationSubItem.css.js +1 -1
  214. package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -1
  215. package/dist/generated/themes/SelectBox.css.js +1 -1
  216. package/dist/generated/themes/SelectBox.css.js.map +1 -1
  217. package/dist/generated/themes/Slider.css.js +1 -1
  218. package/dist/generated/themes/Slider.css.js.map +1 -1
  219. package/dist/generated/themes/Tag.css.js +1 -1
  220. package/dist/generated/themes/Tag.css.js.map +1 -1
  221. package/dist/generated/themes/TagGroup.css.d.ts +3 -0
  222. package/dist/generated/themes/TagGroup.css.js +9 -0
  223. package/dist/generated/themes/TagGroup.css.js.map +1 -0
  224. package/dist/generated/themes/TextArea.css.js +1 -1
  225. package/dist/generated/themes/TextArea.css.js.map +1 -1
  226. package/dist/generated/themes/TextField.css.js +1 -1
  227. package/dist/generated/themes/TextField.css.js.map +1 -1
  228. package/dist/generated/themes/Toast.css.js +1 -1
  229. package/dist/generated/themes/Toast.css.js.map +1 -1
  230. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js +1 -1
  231. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js.map +1 -1
  232. package/dist/i18n/messagebundle.properties +7 -3
  233. package/dist/i18n/messagebundle_en.properties +5 -3
  234. package/dist/vscode.html-custom-data.json +148 -78
  235. package/dist/web-types.json +382 -142
  236. package/package.json +8 -8
  237. package/src/Accordion.ts +1 -1
  238. package/src/AccordionItem.ts +2 -2
  239. package/src/Checkbox.ts +1 -1
  240. package/src/CountrySelector.hbs +19 -15
  241. package/src/CountrySelector.ts +42 -9
  242. package/src/DatePicker.hbs +7 -8
  243. package/src/DatePicker.ts +14 -10
  244. package/src/Dropdown.hbs +3 -0
  245. package/src/Dropdown.ts +3 -3
  246. package/src/FilterMenu.hbs +58 -59
  247. package/src/FilterMenu.ts +91 -37
  248. package/src/Footer.hbs +9 -0
  249. package/src/Footer.ts +10 -1
  250. package/src/HeroBanner.hbs +4 -1
  251. package/src/Link.ts +1 -1
  252. package/src/List.ts +43 -23
  253. package/src/ListGroupHeader.ts +2 -2
  254. package/src/ListItem.hbs +4 -2
  255. package/src/ListItem.ts +8 -10
  256. package/src/ListSelectAll.hbs +1 -1
  257. package/src/ListSelectAll.ts +1 -1
  258. package/src/MastheadItem.hbs +5 -3
  259. package/src/MastheadItem.ts +35 -8
  260. package/src/MastheadMenu.hbs +4 -2
  261. package/src/MastheadMenu.ts +30 -0
  262. package/src/MastheadMenuItem.hbs +0 -2
  263. package/src/MastheadMenuItem.ts +2 -16
  264. package/src/MastheadMobileMenu.hbs +36 -10
  265. package/src/MastheadMobileMenu.ts +162 -22
  266. package/src/MastheadProfileMenu.hbs +6 -2
  267. package/src/MastheadProfileMenu.ts +66 -20
  268. package/src/MastheadShell.hbs +10 -4
  269. package/src/MastheadShell.ts +49 -8
  270. package/src/MediaPlayer.hbs +1 -3
  271. package/src/MediaPlayer.ts +122 -26
  272. package/src/PhoneNumberField.hbs +18 -3
  273. package/src/PhoneNumberField.ts +67 -2
  274. package/src/ReviewItem.hbs +20 -0
  275. package/src/ReviewItem.ts +227 -0
  276. package/src/Search.ts +41 -4
  277. package/src/SecondaryNavigation.hbs +9 -7
  278. package/src/SecondaryNavigation.ts +13 -11
  279. package/src/SecondaryNavigationItem.ts +1 -1
  280. package/src/SecondaryNavigationItemBase.ts +1 -1
  281. package/src/SelectBox.hbs +9 -7
  282. package/src/SelectBox.ts +153 -72
  283. package/src/Switch.ts +21 -0
  284. package/src/Tab.ts +1 -1
  285. package/src/TabHeader.hbs +3 -1
  286. package/src/TabInOverflow.hbs +16 -4
  287. package/src/TabNavigation.hbs +15 -7
  288. package/src/TabNavigation.ts +1 -1
  289. package/src/Tag.hbs +28 -12
  290. package/src/Tag.ts +25 -4
  291. package/src/TagGroup.hbs +48 -0
  292. package/src/TagGroup.ts +222 -0
  293. package/src/TextArea.hbs +36 -33
  294. package/src/TextArea.ts +25 -0
  295. package/src/TextField.hbs +8 -6
  296. package/src/TextField.ts +50 -18
  297. package/src/Tooltip.ts +1 -1
  298. package/src/generated/i18n/i18n-defaults.ts +2 -2
  299. package/src/generated/templates/CountrySelectorTemplate.lit.ts +3 -3
  300. package/src/generated/templates/DatePickerTemplate.lit.ts +1 -1
  301. package/src/generated/templates/DropdownTemplate.lit.ts +2 -2
  302. package/src/generated/templates/FilterMenuTemplate.lit.ts +1 -1
  303. package/src/generated/templates/FooterTemplate.lit.ts +9 -9
  304. package/src/generated/templates/HeroBannerTemplate.lit.ts +7 -8
  305. package/src/generated/templates/ListItemTemplate.lit.ts +6 -6
  306. package/src/generated/templates/ListSelectAllTemplate.lit.ts +1 -1
  307. package/src/generated/templates/MastheadItemTemplate.lit.ts +3 -3
  308. package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +1 -1
  309. package/src/generated/templates/MastheadMenuTemplate.lit.ts +2 -2
  310. package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +16 -12
  311. package/src/generated/templates/MastheadProfileMenuTemplate.lit.ts +2 -2
  312. package/src/generated/templates/MastheadShellTemplate.lit.ts +7 -7
  313. package/src/generated/templates/MediaPlayerTemplate.lit.ts +2 -2
  314. package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +5 -2
  315. package/src/generated/templates/ReviewItemTemplate.lit.ts +13 -0
  316. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +7 -6
  317. package/src/generated/templates/SelectBoxTemplate.lit.ts +2 -2
  318. package/src/generated/templates/TabHeaderTemplate.lit.ts +2 -2
  319. package/src/generated/templates/TabInOverflowTemplate.lit.ts +6 -6
  320. package/src/generated/templates/TabNavigationTemplate.lit.ts +3 -1
  321. package/src/generated/templates/TagGroupTemplate.lit.ts +13 -0
  322. package/src/generated/templates/TagTemplate.lit.ts +11 -7
  323. package/src/generated/templates/TextAreaTemplate.lit.ts +1 -1
  324. package/src/generated/templates/TextFieldTemplate.lit.ts +1 -1
  325. package/src/generated/themes/CountrySelector.css.ts +1 -1
  326. package/src/generated/themes/FilterMenu.css.ts +1 -1
  327. package/src/generated/themes/ListItem.css.ts +1 -1
  328. package/src/generated/themes/MastheadItem.css.ts +1 -1
  329. package/src/generated/themes/MastheadMobileMenu.css.ts +1 -1
  330. package/src/generated/themes/PhoneNumberField.css.ts +1 -1
  331. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  332. package/src/generated/themes/ReviewItem.css.ts +13 -0
  333. package/src/generated/themes/Search.css.ts +1 -1
  334. package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
  335. package/src/generated/themes/SecondaryNavigationItem.css.ts +1 -1
  336. package/src/generated/themes/SecondaryNavigationSubItem.css.ts +1 -1
  337. package/src/generated/themes/SelectBox.css.ts +1 -1
  338. package/src/generated/themes/Slider.css.ts +1 -1
  339. package/src/generated/themes/Tag.css.ts +1 -1
  340. package/src/generated/themes/TagGroup.css.ts +13 -0
  341. package/src/generated/themes/TextArea.css.ts +1 -1
  342. package/src/generated/themes/TextField.css.ts +1 -1
  343. package/src/generated/themes/Toast.css.ts +1 -1
  344. package/src/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +1 -1
  345. package/src/i18n/messagebundle.properties +7 -3
  346. package/src/i18n/messagebundle_en.properties +5 -3
  347. package/src/themes/CountrySelector.css +49 -26
  348. package/src/themes/FilterMenu.css +52 -15
  349. package/src/themes/ListItem.css +4 -0
  350. package/src/themes/MastheadItem.css +12 -2
  351. package/src/themes/MastheadMobileMenu.css +4 -0
  352. package/src/themes/PhoneNumberField.css +14 -1
  353. package/src/themes/ReviewItem.css +121 -0
  354. package/src/themes/Search.css +9 -0
  355. package/src/themes/SecondaryNavigation.css +13 -14
  356. package/src/themes/SecondaryNavigationItem.css +3 -2
  357. package/src/themes/SecondaryNavigationSubItem.css +5 -5
  358. package/src/themes/SelectBox.css +34 -0
  359. package/src/themes/Tag.css +20 -0
  360. package/src/themes/TagGroup.css +90 -0
  361. package/src/themes/TextArea.css +13 -0
  362. package/src/themes/TextField.css +25 -8
  363. package/src/themes/Toast.css +4 -0
  364. package/dist/assets/messagebundle_en-6dcc9ab4.js +0 -1
  365. package/dist/assets/parameters-bundle.css-de55cf62.js +0 -2
  366. package/dist/assets/video.es-17aecf95.js +0 -219
package/dist/List.d.ts CHANGED
@@ -15,7 +15,7 @@ export type UDExListItemBase = UDExListItem & UDExListGroupHeader;
15
15
  * For the <code>udex-list</code>
16
16
  * <h3>ES6 Module Import</h3>
17
17
  *
18
- * <code>import @udex/web-components/dist/List.js";</code>
18
+ * <code>import "@udex/web-components/dist/List.js";</code>
19
19
  *
20
20
  * @constructor
21
21
  * @author SAP SE
package/dist/List.js CHANGED
@@ -30,7 +30,7 @@ import ListCss from "./generated/themes/List.css.js";
30
30
  * For the <code>udex-list</code>
31
31
  * <h3>ES6 Module Import</h3>
32
32
  *
33
- * <code>import @udex/web-components/dist/List.js";</code>
33
+ * <code>import "@udex/web-components/dist/List.js";</code>
34
34
  *
35
35
  * @constructor
36
36
  * @author SAP SE
@@ -90,6 +90,10 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
90
90
  this.focusHeader(items[previousSelectIndex]);
91
91
  return;
92
92
  }
93
+ if (this.modeRadioGroup) {
94
+ items[currentSelectedIndex].selected = false;
95
+ items[previousSelectIndex].selected = true;
96
+ }
93
97
  this.unsetTabIndexByIndex(items, currentSelectedIndex);
94
98
  this.setTabIndexByIndex(items, previousSelectIndex);
95
99
  items[previousSelectIndex].focus();
@@ -115,6 +119,10 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
115
119
  this.focusHeader(items[nextSelectIndex]);
116
120
  return;
117
121
  }
122
+ if (this.modeRadioGroup) {
123
+ items[currentSelectedIndex].selected = false;
124
+ items[nextSelectIndex].selected = true;
125
+ }
118
126
  this.unsetTabIndexByIndex(items, currentSelectedIndex);
119
127
  this.setTabIndexByIndex(items, nextSelectIndex);
120
128
  items[nextSelectIndex].focus();
@@ -140,6 +148,10 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
140
148
  this.focusHeader(items[0]);
141
149
  return;
142
150
  }
151
+ if (this.modeRadioGroup) {
152
+ items[currentSelectedIndex].selected = false;
153
+ items[0].selected = true;
154
+ }
143
155
  this.unsetTabIndexByIndex(items, currentSelectedIndex);
144
156
  this.setTabIndexByIndex(items, 0);
145
157
  items[0].focus();
@@ -150,6 +162,10 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
150
162
  e.preventDefault();
151
163
  const items = this.getKeyboardNavigationItems();
152
164
  const currentSelectedIndex = this.getCurrentIndex(items, e.target);
165
+ if (this.modeRadioGroup) {
166
+ items[currentSelectedIndex].selected = false;
167
+ items[items.length - 1].selected = true;
168
+ }
153
169
  this.unsetTabIndexByIndex(items, currentSelectedIndex);
154
170
  this.setTabIndexByIndex(items, items.length - 1);
155
171
  items[items.length - 1].focus();
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 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"]}
1
+ {"version":3,"file":"List.js","sourceRoot":"","sources":["../src/List.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,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,EACL,IAAI,EACJ,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,EACP,OAAO,GACR,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAE3E,OAAO,0BAA0B,MAAM,iEAAiE,CAAC;AAEzG,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG1D,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,GAC3B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,YAAY,MAAM,2CAA2C,CAAC;AAErE,SAAS;AACT,OAAO,OAAO,MAAM,gCAAgC,CAAC;AAGrD;;;;;;;;;;;;;;;;;;GAkBG;AAiBH,IAAM,QAAQ,gBAAd,MAAM,QAAS,SAAQ,UAAU;IAkF/B,MAAM,CAAC,KAAK,CAAC,QAAQ;QACnB,UAAQ,CAAC,UAAU,GAAG,MAAM,aAAa,CAAC,6BAA6B,CAAC,CAAC;IAC3E,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED,eAAe,CAAC,CAAc;QAC5B,MAAM,WAAW,GAAqB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QACpD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;IAED,aAAa,CAAC,CAAgB;QAC5B,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,kBAAkB,CAAC,CAAgB;QACjC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;YAC5B,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,MAAM,WAAW,GAAG,CAAC,CAAC,MAA0B,CAAC;YACjD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;SAC/B;IACH,CAAC;IAED,aAAa,CAAC,CAAgB;QAC5B,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE;YACX,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAChD,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,MAA0B,CAAC,CAAC;YACvF,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACvC,MAAM,mBAAmB,GAAG,oBAAoB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAC;YACpG,MAAM,YAAY,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC;YACxD,MAAM,oBAAoB,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC,cAAc,CAAC;YAEvE,IAAI,oBAAoB,IAAI,mBAAmB,KAAK,CAAC,EAAE;gBACrD,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;gBACvD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;gBAC9C,KAAK,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC7B,OAAO;aACR;YAED,IAAI,oBAAoB,EAAE;gBACxB,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;gBACvD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,GAAG,CAAC,CAAC,CAAC;gBACxD,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;gBACvC,OAAO;aACR;YAED,IAAI,YAAY,EAAE;gBAChB,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;gBACvD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;gBACpD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBAC7C,OAAO;aACR;YAED,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,KAAK,CAAC,oBAAoB,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC7C,KAAK,CAAC,mBAAmB,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;aAC5C;YAED,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;YACvD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;YACpD,KAAK,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;SACpC;IACH,CAAC;IAED,eAAe,CAAC,CAAgB;QAC9B,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;YACb,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAChD,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,MAA0B,CAAC,CAAC;YACvF,MAAM,eAAe,GAAG,oBAAoB,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAC;YACnG,MAAM,YAAY,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC;YACpD,MAAM,oBAAoB,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,cAAc,CAAC;YAEnE,IAAI,oBAAoB,EAAE;gBACxB,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;gBACvD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC;gBACpD,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;gBACnC,OAAO;aACR;YAED,IAAI,YAAY,EAAE;gBAChB,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;gBACvD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;gBAChD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;gBACzC,OAAO;aACR;YAED,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,KAAK,CAAC,oBAAoB,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC7C,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxC;YAED,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;YACvD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;YAChD,KAAK,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;SAChC;IACH,CAAC;IAED,aAAa,CAAC,CAAgB;QAC5B,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;YACb,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAChD,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,MAA0B,CAAC,CAAC;YACvF,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC;YACvC,MAAM,kBAAkB,GAAG,SAAS,CAAC,cAAc,CAAC;YAEpD,IAAI,kBAAkB,EAAE;gBACtB,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;gBACvD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAClC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;gBACjB,OAAO;aACR;YAED,IAAI,YAAY,EAAE;gBAChB,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;gBACvD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAClC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,OAAO;aACR;YAED,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,KAAK,CAAC,oBAAoB,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC7C,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;aAC1B;YAED,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;YACvD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAClC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;SAClB;IACH,CAAC;IAED,YAAY,CAAC,CAAgB;QAC3B,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;YACZ,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAChD,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,MAA0B,CAAC,CAAC;YAEvF,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,KAAK,CAAC,oBAAoB,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC7C,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;aACzC;YAED,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;YACvD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACjD,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;SACjC;IACH,CAAC;IAED,WAAW,CAAC,WAA6B;QACvC,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAC7C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAClD,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;SAC7B;QAED,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAC3C,MAAM,WAAW,GAAG,WAAW,CAAC,aAAwC,CAAC;YACzE,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,EAA6B,CAAC;YACrE,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YACrC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;SAC7B;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,WAAW,CAAC,SAAS,GAAG,GAAG,CAAC;QAE5B,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE;YACjC,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE;YAClC,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE;YACtC,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB,CAAC,KAA8B;QAChD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAsB,EAAE,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;aACvB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,IAAsB;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,0BAA0B,CAAgB,CAAC;QACzF,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAED,oBAAoB,CAAC,KAAyB,EAAE,KAAa;QAC3D,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;IAChC,CAAC;IAED,kBAAkB,CAAC,KAAyB,EAAE,KAAa;QACzD,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC;IAC/B,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,eAAe,CAAmB,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED,eAAe,CAAC,KAA8B,EAAE,IAAsB;QACpE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED,0BAA0B;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC5F,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,gBAAgB;QACd,MAAM,KAAK,GAAuB,EAAE,CAAC;QACrC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAErC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,UAAgC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,IAAsB;QAC/C,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,KAAK,KAAK,CAAC,EAAE;YACrF,OAAO,GAAG,CAAC;SACZ;QAED,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,KAAK,CAAC,EAAE;YACpC,OAAO,GAAG,CAAC;SACZ;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe;QACb,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,iBAAiB;QACnB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,cAAc,EAAE;YAChD,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;SAChE;QACD,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,GAAG,IAAI,CAAC,GAAG,aAAa,CAAC;IAClC,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,UAAU,CAAC;IAC3C,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,WAAW,CAAC;IAC5C,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,YAAY,CAAC;IAC7C,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,aAAa,CAAC;IAC9C,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,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5C,CAAC;CACF,CAAA;AArXG;IADD,QAAQ,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;gDACT;AASxB;IADD,QAAQ,EAAE;gDACe;AASxB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC;sCAC3C;AASrB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC;sCACxC;AAQ1B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCACT;AAShB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4CACL;AAQrB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CACL;AASpB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;0CACzB;AASlB;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;uCACX;AA9E9B,QAAQ;IAhBb,aAAa,CAAC;QACb,GAAG,EAAE,WAAW;QAChB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,CAAC,OAAO,EAAE,0BAA0B,EAAE,CAAC;QAC/C,QAAQ,EAAE,YAAY;QACtB,YAAY,EAAE,EAAE;KACjB,CAAC;IAED,KAAK,CAAC,kBAAkB,EAAE;QACzB,MAAM,EAAE;YACN,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;YAC1B,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;YAC9B,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC5B;KACF,CAAC;GAEI,QAAQ,CA6Xb;AAED,QAAQ,CAAC,MAAM,EAAE,CAAC;AAElB,eAAe,QAAQ,CAAC","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(): void {\n this.prepareListItemsMode();\n }\n\n handleItemPress(e: CustomEvent): void {\n const clickedItem: UDExListItemBase = e.detail.item;\n this.onItemPress(clickedItem);\n }\n\n handleKeyDown(e: KeyboardEvent): void {\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): void {\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): void {\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 if (this.modeRadioGroup) {\n items[currentSelectedIndex].selected = false;\n items[previousSelectIndex].selected = true;\n }\n\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, previousSelectIndex);\n items[previousSelectIndex].focus();\n }\n }\n\n handleDownArrow(e: KeyboardEvent): void {\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 if (this.modeRadioGroup) {\n items[currentSelectedIndex].selected = false;\n items[nextSelectIndex].selected = true;\n }\n\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, nextSelectIndex);\n items[nextSelectIndex].focus();\n }\n }\n\n handleHomeKey(e: KeyboardEvent): void {\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 if (this.modeRadioGroup) {\n items[currentSelectedIndex].selected = false;\n items[0].selected = true;\n }\n\n this.unsetTabIndexByIndex(items, currentSelectedIndex);\n this.setTabIndexByIndex(items, 0);\n items[0].focus();\n }\n }\n\n handleEndKey(e: KeyboardEvent): void {\n if (isEnd(e)) {\n e.preventDefault();\n const items = this.getKeyboardNavigationItems();\n const currentSelectedIndex = this.getCurrentIndex(items, e.target as UDExListItemBase);\n\n if (this.modeRadioGroup) {\n items[currentSelectedIndex].selected = false;\n items[items.length - 1].selected = true;\n }\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): void {\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>): void {\n items.forEach((item: UDExListItemBase) => {\n if (!item.disabled) {\n item.selected = false;\n }\n });\n }\n\n focusHeader(item: UDExListItemBase): void {\n const header = item.shadowRoot?.querySelector(\".udex-list__group-header\") as HTMLElement;\n header.focus();\n }\n\n unsetTabIndexByIndex(items: UDExListItemBase[], index: number): void {\n items[index]._tabIndex = \"-1\";\n }\n\n setTabIndexByIndex(items: UDExListItemBase[], index: number): void {\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(): void {\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(): void {\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(): string {\n return `${this._id}-mode-label`;\n }\n\n get modeRadioGroup(): boolean {\n return this.mode === ListMode.RadioGroup;\n }\n\n get modeMultiSelect(): boolean {\n return this.mode === ListMode.MultiSelect;\n }\n\n get modeSingleSelect(): boolean {\n return this.mode === ListMode.SingleSelect;\n }\n\n get modeSingleContent(): boolean {\n return this.mode === ListMode.SingleContent;\n }\n\n get modeSelected(): boolean {\n return [ListMode.SingleSelect, ListMode.MultiSelect, ListMode.RadioGroup].includes(this.mode as ListMode);\n }\n\n get holderHeight(): string {\n return this.height ? this.height : \"auto\";\n }\n}\n\nUDExList.define();\n\nexport default UDExList;\n"]}
@@ -7,10 +7,10 @@ import UDExListGroupHeaderBase from "./ListGroupHeaderBase.js";
7
7
  *
8
8
  * <h3>Usage</h3>
9
9
  *
10
- * For the <code>udex--list-group-header</code>
10
+ * For the <code>udex-list-group-header</code>
11
11
  * <h3>ES6 Module Import</h3>
12
12
  *
13
- * <code>import @udex/web-components/dist/ListGroupHeader.js";</code>
13
+ * <code>import "@udex/web-components/dist/ListGroupHeader.js";</code>
14
14
  *
15
15
  * @constructor
16
16
  * @author SAP SE
@@ -22,10 +22,10 @@ import ListGroupHeaderCss from "./generated/themes/ListGroupHeader.css.js";
22
22
  *
23
23
  * <h3>Usage</h3>
24
24
  *
25
- * For the <code>udex--list-group-header</code>
25
+ * For the <code>udex-list-group-header</code>
26
26
  * <h3>ES6 Module Import</h3>
27
27
  *
28
- * <code>import @udex/web-components/dist/ListGroupHeader.js";</code>
28
+ * <code>import "@udex/web-components/dist/ListGroupHeader.js";</code>
29
29
  *
30
30
  * @constructor
31
31
  * @author SAP SE
@@ -1 +1 @@
1
- {"version":3,"file":"ListGroupHeader.js","sourceRoot":"","sources":["../src/ListGroupHeader.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,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,uBAAuB,MAAM,0BAA0B,CAAC;AAC/D,OAAO,uBAAuB,MAAM,sDAAsD,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,SAAS;AACT,OAAO,kBAAkB,MAAM,2CAA2C,CAAC;AAC3E;;;;;;;;;;;;;;;;;;GAkBG;AAeH,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,uBAAuB;IACvD,iBAAiB;QACf,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,kBAAkB,CAAC,CAAgB;QACjC,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,iBAAiB,EAAE,CAAC;SAC1B;IACH,CAAC;IAED,eAAe;QACb,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;YAC7B,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAED,wBAAwB;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QAC3D,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,CAAC;CACF,CAAA;AA/BK,mBAAmB;IAdxB,aAAa,CAAC;QACb,GAAG,EAAE,wBAAwB;QAC7B,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,kBAAkB;QAC1B,QAAQ,EAAE,uBAAuB;QACjC,YAAY,EAAE,CAAC,IAAI,CAAC;KACrB,CAAC;IAED,KAAK,CAAC,cAAc,EAAE;QACrB,MAAM,EAAE;YACN,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC5B;KACF,CAAC;GAEI,mBAAmB,CA+BxB;AAED,mBAAmB,CAAC,MAAM,EAAE,CAAC;AAE7B,eAAe,mBAAmB,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.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 UDExListGroupHeaderBase from \"./ListGroupHeaderBase.js\";\nimport ListGroupHeaderTemplate from \"./generated/templates/ListGroupHeaderTemplate.lit.js\";\nimport { ListItemSize } from \"./types/List.js\";\n\n// Styles\nimport ListGroupHeaderCss from \"./generated/themes/ListGroupHeader.css.js\";\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-group-header</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/ListGroupHeader.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UDExListGroupHeaderBase\n * @tagname udex-list-group-header\n * @public\n */\n@customElement({\n tag: \"udex-list-group-header\",\n renderer: litRender,\n styles: ListGroupHeaderCss,\n template: ListGroupHeaderTemplate,\n dependencies: [Icon],\n})\n\n@event(\"header-press\", {\n detail: {\n item: { type: HTMLElement },\n },\n})\n\nclass UDExListGroupHeader extends UDExListGroupHeaderBase {\n handleHeaderPress() {\n if (!this.controlled) {\n this.handleSelectionGroupState();\n }\n this.fireHeaderPress();\n }\n\n handleKeyDownPress(e: KeyboardEvent) {\n if (isSpace(e)) {\n e.preventDefault();\n }\n if (isSpace(e) || isEnter(e)) {\n this.handleHeaderPress();\n }\n }\n\n fireHeaderPress() {\n this.fireEvent(\"header-press\", {\n item: this,\n });\n }\n\n getHandleGroupItemsClick() {\n const hasHandle = this.modeMultiSelect && !this.controlled;\n return hasHandle ? this.handleHeaderState() : undefined;\n }\n\n get sizeClass() {\n return this.size === ListItemSize.Large ? \"udex-list__group_large\" : \"\";\n }\n}\n\nUDExListGroupHeader.define();\n\nexport default UDExListGroupHeader;\n"]}
1
+ {"version":3,"file":"ListGroupHeader.js","sourceRoot":"","sources":["../src/ListGroupHeader.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,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,uBAAuB,MAAM,0BAA0B,CAAC;AAC/D,OAAO,uBAAuB,MAAM,sDAAsD,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,SAAS;AACT,OAAO,kBAAkB,MAAM,2CAA2C,CAAC;AAC3E;;;;;;;;;;;;;;;;;;GAkBG;AAeH,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,uBAAuB;IACvD,iBAAiB;QACf,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,kBAAkB,CAAC,CAAgB;QACjC,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,iBAAiB,EAAE,CAAC;SAC1B;IACH,CAAC;IAED,eAAe;QACb,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;YAC7B,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAED,wBAAwB;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QAC3D,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,CAAC;CACF,CAAA;AA/BK,mBAAmB;IAdxB,aAAa,CAAC;QACb,GAAG,EAAE,wBAAwB;QAC7B,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,kBAAkB;QAC1B,QAAQ,EAAE,uBAAuB;QACjC,YAAY,EAAE,CAAC,IAAI,CAAC;KACrB,CAAC;IAED,KAAK,CAAC,cAAc,EAAE;QACrB,MAAM,EAAE;YACN,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC5B;KACF,CAAC;GAEI,mBAAmB,CA+BxB;AAED,mBAAmB,CAAC,MAAM,EAAE,CAAC;AAE7B,eAAe,mBAAmB,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.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 UDExListGroupHeaderBase from \"./ListGroupHeaderBase.js\";\nimport ListGroupHeaderTemplate from \"./generated/templates/ListGroupHeaderTemplate.lit.js\";\nimport { ListItemSize } from \"./types/List.js\";\n\n// Styles\nimport ListGroupHeaderCss from \"./generated/themes/ListGroupHeader.css.js\";\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-group-header</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/ListGroupHeader.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UDExListGroupHeaderBase\n * @tagname udex-list-group-header\n * @public\n */\n@customElement({\n tag: \"udex-list-group-header\",\n renderer: litRender,\n styles: ListGroupHeaderCss,\n template: ListGroupHeaderTemplate,\n dependencies: [Icon],\n})\n\n@event(\"header-press\", {\n detail: {\n item: { type: HTMLElement },\n },\n})\n\nclass UDExListGroupHeader extends UDExListGroupHeaderBase {\n handleHeaderPress() {\n if (!this.controlled) {\n this.handleSelectionGroupState();\n }\n this.fireHeaderPress();\n }\n\n handleKeyDownPress(e: KeyboardEvent) {\n if (isSpace(e)) {\n e.preventDefault();\n }\n if (isSpace(e) || isEnter(e)) {\n this.handleHeaderPress();\n }\n }\n\n fireHeaderPress() {\n this.fireEvent(\"header-press\", {\n item: this,\n });\n }\n\n getHandleGroupItemsClick() {\n const hasHandle = this.modeMultiSelect && !this.controlled;\n return hasHandle ? this.handleHeaderState() : undefined;\n }\n\n get sizeClass() {\n return this.size === ListItemSize.Large ? \"udex-list__group_large\" : \"\";\n }\n}\n\nUDExListGroupHeader.define();\n\nexport default UDExListGroupHeader;\n"]}
@@ -13,7 +13,7 @@ import { AdditionalTextState } from "./types/List.js";
13
13
  * For the <code>udex-list-item</code>
14
14
  * <h3>ES6 Module Import</h3>
15
15
  *
16
- * <code>import @udex/web-components/dist/ListItem.js";</code>
16
+ * <code>import "@udex/web-components/dist/ListItem.js";</code>
17
17
  *
18
18
  * @constructor
19
19
  * @author SAP SE
@@ -25,7 +25,7 @@ declare class UDExListItem extends UDExListItemBase {
25
25
  /**
26
26
  * Defines the accessible name of the item.
27
27
  *
28
- * @defaultvalue ""
28
+ * @default ""
29
29
  * @public
30
30
  */
31
31
  accessibleName?: string;
@@ -125,6 +125,7 @@ declare class UDExListItem extends UDExListItemBase {
125
125
  constructor();
126
126
  static onDefine(): Promise<void>;
127
127
  onEnterDOM(): void;
128
+ onAfterRendering(): void;
128
129
  onExitDOM(): void;
129
130
  handleMouseDown(): void;
130
131
  handleMouseUp(): void;
@@ -145,7 +146,6 @@ declare class UDExListItem extends UDExListItemBase {
145
146
  get modeRadioGroup(): boolean;
146
147
  get modeSelected(): boolean;
147
148
  get isLargeSize(): boolean;
148
- get _accessibleNameRef(): string;
149
149
  get stateAccessibleName(): string;
150
150
  get editButtonAccessibleName(): string;
151
151
  get deleteButtonAccessibleName(): string;
package/dist/ListItem.js CHANGED
@@ -35,7 +35,7 @@ import ListItemCss from "./generated/themes/ListItem.css.js";
35
35
  * For the <code>udex-list-item</code>
36
36
  * <h3>ES6 Module Import</h3>
37
37
  *
38
- * <code>import @udex/web-components/dist/ListItem.js";</code>
38
+ * <code>import "@udex/web-components/dist/ListItem.js";</code>
39
39
  *
40
40
  * @constructor
41
41
  * @author SAP SE
@@ -61,6 +61,11 @@ let UDExListItem = UDExListItem_1 = class UDExListItem extends UDExListItemBase
61
61
  this.setAttribute("desktop", "");
62
62
  }
63
63
  }
64
+ onAfterRendering() {
65
+ if (!this.accessibleRole || this.accessibleRole === "listitem") {
66
+ this.shadowRoot?.querySelector("li")?.removeAttribute("aria-selected");
67
+ }
68
+ }
64
69
  onExitDOM() {
65
70
  document.removeEventListener("mouseup", this.deactivate);
66
71
  }
@@ -167,12 +172,6 @@ let UDExListItem = UDExListItem_1 = class UDExListItem extends UDExListItemBase
167
172
  get isLargeSize() {
168
173
  return this.size === ListItemSize.Large;
169
174
  }
170
- get _accessibleNameRef() {
171
- if (this.accessibleName) {
172
- return `${this._id}-invisibleText`;
173
- }
174
- return `${this._id}-content`;
175
- }
176
175
  get stateAccessibleName() {
177
176
  if (this.indeterminate) {
178
177
  return UDExListItem_1.i18nBundle.getText(INDETERMINATE);
@@ -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 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,gBAAgB;QACd,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,KAAK,UAAU,EAAE;YAC9D,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;SACxE;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,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;AApSG;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,CA4SjB;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 * @default \"\"\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 onAfterRendering() {\n if (!this.accessibleRole || this.accessibleRole === \"listitem\") {\n this.shadowRoot?.querySelector(\"li\")?.removeAttribute(\"aria-selected\");\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 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"]}
@@ -9,7 +9,7 @@ import { ListMode } from "./types/List.js";
9
9
  *
10
10
  * <h3>Usage</h3>
11
11
  *
12
- * For the <code>udex--list-select-all</code>
12
+ * For the <code>udex-list-select-all</code>
13
13
  * <h3>ES6 Module Import</h3>
14
14
  *
15
15
  * <code>import "@udex/web-components/dist/ListSelectAll.js";</code>
@@ -24,7 +24,7 @@ import ListGroupHeaderCss from "./generated/themes/ListGroupHeader.css";
24
24
  *
25
25
  * <h3>Usage</h3>
26
26
  *
27
- * For the <code>udex--list-select-all</code>
27
+ * For the <code>udex-list-select-all</code>
28
28
  * <h3>ES6 Module Import</h3>
29
29
  *
30
30
  * <code>import "@udex/web-components/dist/ListSelectAll.js";</code>
@@ -1 +1 @@
1
- {"version":3,"file":"ListSelectAll.js","sourceRoot":"","sources":["../src/ListSelectAll.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAE3E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,uBAAuB,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AAEpF,SAAS;AACT,OAAO,kBAAkB,MAAM,wCAAwC,CAAC;AAExE;;;;;;;;;;;;;;;;GAgBG;AAcH,IAAM,iBAAiB,yBAAvB,MAAM,iBAAkB,SAAQ,uBAAuB;IAGrD,MAAM,CAAC,KAAK,CAAC,QAAQ;QACnB,mBAAiB,CAAC,UAAU,GAAG,MAAM,aAAa,CAAC,6BAA6B,CAAC,CAAC;IACpF,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;QACD,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;YAC3B,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAED,8BAA8B;QAC5B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;IACH,CAAC;IAED,kBAAkB,CAAC,CAAgB;QACjC,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,oBAAoB,EAAE,CAAC;SAC7B;IACH,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC9B,CAAC;IAED,IAAI,cAAc;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,WAAW,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC;QACtE,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,mBAAmB;QACrB,MAAM,kBAAkB,GAAG,8BAA8B,CAAC;QAC1D,OAAO,GAAG,kBAAkB,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9D,CAAC;IAED,IAAI,kBAAkB;QACpB,MAAM,SAAS,GAAG,uBAAuB,CAAC;QAC1C,MAAM,kBAAkB,GAAG,+BAA+B,CAAC;QAC3D,OAAO,GAAG,SAAS,IAAI,IAAI,CAAC,oBAAoB,IAAI,kBAAkB,EAAE,CAAC;IAC3E,CAAC;CACF,CAAA;AAtDK,iBAAiB;IAbtB,aAAa,CAAC;QACb,GAAG,EAAE,sBAAsB;QAC3B,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,kBAAkB;QAC1B,QAAQ,EAAE,qBAAqB;KAChC,CAAC;IAED,KAAK,CAAC,YAAY,EAAE;QACnB,MAAM,EAAE;YACN,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC5B;KACF,CAAC;GAEI,iBAAiB,CAsDtB;AAED,iBAAiB,CAAC,MAAM,EAAE,CAAC;AAE3B,eAAe,iBAAiB,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport UDExListGroupHeaderBase from \"./ListGroupHeaderBase.js\";\nimport { ListMode } from \"./types/List.js\";\nimport { SELECT_ALL } from \"./generated/i18n/i18n-defaults.js\";\nimport ListSelectAllTemplate from \"./generated/templates/ListSelectAllTemplate.lit\";\n\n// Styles\nimport ListGroupHeaderCss from \"./generated/themes/ListGroupHeader.css\";\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-select-all</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/ListSelectAll.js\";</code>\n *\n * @constructor\n * @extends UDExListGroupHeaderBase\n * @public\n */\n@customElement({\n tag: \"udex-list-select-all\",\n renderer: litRender,\n styles: ListGroupHeaderCss,\n template: ListSelectAllTemplate,\n})\n\n@event(\"select-all\", {\n detail: {\n item: { type: HTMLElement },\n },\n})\n\nclass UDExListSelectAll extends UDExListGroupHeaderBase {\n static i18nBundle: I18nBundle;\n\n static async onDefine(): Promise<void> {\n UDExListSelectAll.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n handleSelectAllPress() {\n if (!this.controlled) {\n this.handleSelectionGroupState();\n }\n this.fireEvent(\"select-all\", {\n item: this,\n });\n }\n\n handleSelectAllGroupItemsPress() {\n if (!this.controlled) {\n this.handleHeaderState();\n }\n }\n\n handleKeyDownPress(e: KeyboardEvent) {\n if (isSpace(e)) {\n e.preventDefault();\n }\n if (isSpace(e) || isEnter(e)) {\n this.handleSelectAllPress();\n }\n }\n\n get isSelectAllHeader() {\n return true;\n }\n\n get multiselectMode(): ListMode {\n return ListMode.MultiSelect;\n }\n\n get selectAllLabel(): string {\n const hasLabel = this.label !== \"undefined\" && this.label?.length > 0;\n return hasLabel ? this.label : UDExListSelectAll.i18nBundle.getText(SELECT_ALL);\n }\n\n get additionalClassName(): string {\n const selectAllClassName = \"udex-list__header-select-all\";\n return `${selectAllClassName} ${this._additionalClassName}`;\n }\n\n get groupListClassName(): string {\n const className = \"udex-list__group-list\";\n const selectAllClassName = \"udex--list__header-select-all\";\n return `${className} ${this._additionalClassName} ${selectAllClassName}`;\n }\n}\n\nUDExListSelectAll.define();\n\nexport default UDExListSelectAll;\n"]}
1
+ {"version":3,"file":"ListSelectAll.js","sourceRoot":"","sources":["../src/ListSelectAll.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAE3E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,uBAAuB,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AAEpF,SAAS;AACT,OAAO,kBAAkB,MAAM,wCAAwC,CAAC;AAExE;;;;;;;;;;;;;;;;GAgBG;AAcH,IAAM,iBAAiB,yBAAvB,MAAM,iBAAkB,SAAQ,uBAAuB;IAGrD,MAAM,CAAC,KAAK,CAAC,QAAQ;QACnB,mBAAiB,CAAC,UAAU,GAAG,MAAM,aAAa,CAAC,6BAA6B,CAAC,CAAC;IACpF,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;QACD,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;YAC3B,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAED,8BAA8B;QAC5B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;IACH,CAAC;IAED,kBAAkB,CAAC,CAAgB;QACjC,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,oBAAoB,EAAE,CAAC;SAC7B;IACH,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC9B,CAAC;IAED,IAAI,cAAc;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,WAAW,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC;QACtE,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,mBAAmB;QACrB,MAAM,kBAAkB,GAAG,8BAA8B,CAAC;QAC1D,OAAO,GAAG,kBAAkB,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9D,CAAC;IAED,IAAI,kBAAkB;QACpB,MAAM,SAAS,GAAG,uBAAuB,CAAC;QAC1C,MAAM,kBAAkB,GAAG,+BAA+B,CAAC;QAC3D,OAAO,GAAG,SAAS,IAAI,IAAI,CAAC,oBAAoB,IAAI,kBAAkB,EAAE,CAAC;IAC3E,CAAC;CACF,CAAA;AAtDK,iBAAiB;IAbtB,aAAa,CAAC;QACb,GAAG,EAAE,sBAAsB;QAC3B,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,kBAAkB;QAC1B,QAAQ,EAAE,qBAAqB;KAChC,CAAC;IAED,KAAK,CAAC,YAAY,EAAE;QACnB,MAAM,EAAE;YACN,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC5B;KACF,CAAC;GAEI,iBAAiB,CAsDtB;AAED,iBAAiB,CAAC,MAAM,EAAE,CAAC;AAE3B,eAAe,iBAAiB,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport UDExListGroupHeaderBase from \"./ListGroupHeaderBase.js\";\nimport { ListMode } from \"./types/List.js\";\nimport { SELECT_ALL } from \"./generated/i18n/i18n-defaults.js\";\nimport ListSelectAllTemplate from \"./generated/templates/ListSelectAllTemplate.lit\";\n\n// Styles\nimport ListGroupHeaderCss from \"./generated/themes/ListGroupHeader.css\";\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-select-all</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/ListSelectAll.js\";</code>\n *\n * @constructor\n * @extends UDExListGroupHeaderBase\n * @public\n */\n@customElement({\n tag: \"udex-list-select-all\",\n renderer: litRender,\n styles: ListGroupHeaderCss,\n template: ListSelectAllTemplate,\n})\n\n@event(\"select-all\", {\n detail: {\n item: { type: HTMLElement },\n },\n})\n\nclass UDExListSelectAll extends UDExListGroupHeaderBase {\n static i18nBundle: I18nBundle;\n\n static async onDefine(): Promise<void> {\n UDExListSelectAll.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n handleSelectAllPress() {\n if (!this.controlled) {\n this.handleSelectionGroupState();\n }\n this.fireEvent(\"select-all\", {\n item: this,\n });\n }\n\n handleSelectAllGroupItemsPress() {\n if (!this.controlled) {\n this.handleHeaderState();\n }\n }\n\n handleKeyDownPress(e: KeyboardEvent) {\n if (isSpace(e)) {\n e.preventDefault();\n }\n if (isSpace(e) || isEnter(e)) {\n this.handleSelectAllPress();\n }\n }\n\n get isSelectAllHeader() {\n return true;\n }\n\n get multiselectMode(): ListMode {\n return ListMode.MultiSelect;\n }\n\n get selectAllLabel(): string {\n const hasLabel = this.label !== \"undefined\" && this.label?.length > 0;\n return hasLabel ? this.label : UDExListSelectAll.i18nBundle.getText(SELECT_ALL);\n }\n\n get additionalClassName(): string {\n const selectAllClassName = \"udex-list__header-select-all\";\n return `${selectAllClassName} ${this._additionalClassName}`;\n }\n\n get groupListClassName(): string {\n const className = \"udex-list__group-list\";\n const selectAllClassName = \"udex--list__header-select-all\";\n return `${className} ${this._additionalClassName} ${selectAllClassName}`;\n }\n}\n\nUDExListSelectAll.define();\n\nexport default UDExListSelectAll;\n"]}
@@ -1,4 +1,5 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
2
3
  import "@ui5/webcomponents-icons/dist/search.js";
3
4
  import UDExAvatar from "./Avatar.js";
4
5
  import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
@@ -18,10 +19,15 @@ export type SubMenuLinkItem = {
18
19
  category: string;
19
20
  url?: string;
20
21
  items: CategoryItem[];
22
+ index: number;
21
23
  };
22
24
  export type MenuItem = {
23
25
  subMenuLinkItems: SubMenuLinkItem[];
24
26
  };
27
+ export type ItemClickEventDetail = {
28
+ originalEvent: Event;
29
+ item: UDExMastheadItem;
30
+ };
25
31
  /**
26
32
  * @class
27
33
  *
@@ -136,12 +142,14 @@ declare class UDExMastheadItem extends UI5Element implements IMastheadItem {
136
142
  */
137
143
  content?: Array<HTMLElement>;
138
144
  _profileAvatar: UDExAvatar;
145
+ static i18nBundle: I18nBundle;
146
+ static onDefine(): Promise<void>;
139
147
  onEnterDOM(): void;
140
148
  onAfterRendering(): void;
141
- onClick(e: Event): void;
142
149
  handleKeyDown(e: KeyboardEvent): void;
143
150
  handleKeyEscape(): void;
144
151
  handleKeyEscapeMobile(): void;
152
+ handleNavigationItemClick(e: Event): void;
145
153
  setDropdownInsetStart(): void;
146
154
  calculateMarginInlineStart(rect: DOMRect): number | null;
147
155
  handleDirection(): void;
@@ -4,9 +4,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
+ var UDExMastheadItem_1;
7
8
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
8
9
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
9
10
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
11
+ import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
10
12
  import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
11
13
  import event from "@ui5/webcomponents-base/dist/decorators/event.js";
12
14
  import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
@@ -14,6 +16,7 @@ import "@ui5/webcomponents-icons/dist/search.js";
14
16
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
15
17
  import { isEscape } from "@ui5/webcomponents-base/dist/Keys.js";
16
18
  import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
19
+ import { PROFILE } from "./generated/i18n/i18n-defaults.js";
17
20
  import UDExMastheadMenu from "./MastheadMenu.js";
18
21
  import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
19
22
  import MastheadItemTemplate from "./generated/templates/MastheadItemTemplate.lit.js";
@@ -37,7 +40,10 @@ const breakpointSizeM = 1279;
37
40
  * @extends UI5Element
38
41
  * @public
39
42
  */
40
- let UDExMastheadItem = class UDExMastheadItem extends UI5Element {
43
+ let UDExMastheadItem = UDExMastheadItem_1 = class UDExMastheadItem extends UI5Element {
44
+ static async onDefine() {
45
+ UDExMastheadItem_1.i18nBundle = await getI18nBundle("sap-ui-webcomponents-bundle");
46
+ }
41
47
  onEnterDOM() {
42
48
  if (isDesktop()) {
43
49
  this.setAttribute("desktop", "");
@@ -50,11 +56,6 @@ let UDExMastheadItem = class UDExMastheadItem extends UI5Element {
50
56
  this.setDropdownInsetStart();
51
57
  }
52
58
  }
53
- onClick(e) {
54
- e.stopPropagation();
55
- this.fireEvent("click", { item: this });
56
- this.selected = this.isMobile ? true : !this.selected;
57
- }
58
59
  handleKeyDown(e) {
59
60
  if (isEscape(e) && this.hasDropdownSlot) {
60
61
  if (this.isMobile) {
@@ -84,6 +85,13 @@ let UDExMastheadItem = class UDExMastheadItem extends UI5Element {
84
85
  mobileMenu.showFirstLevelMenu();
85
86
  }
86
87
  }
88
+ handleNavigationItemClick(e) {
89
+ this.selected = this.isMobile ? true : !this.selected;
90
+ this.fireEvent("item-click", {
91
+ item: this,
92
+ originalEvent: e,
93
+ });
94
+ }
87
95
  setDropdownInsetStart() {
88
96
  const dropdown = this.getDomElement(".udex-masthead-item__dropdown");
89
97
  if (dropdown) {
@@ -181,7 +189,7 @@ let UDExMastheadItem = class UDExMastheadItem extends UI5Element {
181
189
  return this.getAttribute("slot") === "exploreSAP";
182
190
  }
183
191
  get accessibleLabel() {
184
- return this.accessibleName || this.innerText;
192
+ return this.accessibleName || this.innerText || (this.isProfileBtn ? UDExMastheadItem_1.i18nBundle.getText(PROFILE) : "");
185
193
  }
186
194
  get isMenuItem() {
187
195
  return true;
@@ -232,7 +240,7 @@ __decorate([
232
240
  __decorate([
233
241
  slot({ type: HTMLElement, "default": true })
234
242
  ], UDExMastheadItem.prototype, "content", void 0);
235
- UDExMastheadItem = __decorate([
243
+ UDExMastheadItem = UDExMastheadItem_1 = __decorate([
236
244
  customElement({
237
245
  tag: "udex-masthead-item",
238
246
  renderer: litRender,
@@ -250,7 +258,16 @@ UDExMastheadItem = __decorate([
250
258
  * @public
251
259
  */
252
260
  ,
253
- event("click")
261
+ event("item-click", {
262
+ detail: {
263
+ item: {
264
+ type: HTMLElement,
265
+ },
266
+ originalEvent: {
267
+ type: PointerEvent,
268
+ },
269
+ },
270
+ })
254
271
  ], UDExMastheadItem);
255
272
  UDExMastheadItem.define();
256
273
  export default UDExMastheadItem;