@sapudex/web-components 0.117.1 → 0.127.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/bundle.esm.js +3 -0
  2. package/config/wdio.conf.js +19 -8
  3. package/dist/AccordionItem.d.ts +2 -1
  4. package/dist/AccordionItem.js +3 -3
  5. package/dist/AccordionItem.js.map +1 -1
  6. package/dist/Avatar.d.ts +12 -0
  7. package/dist/Avatar.js +22 -1
  8. package/dist/Avatar.js.map +1 -1
  9. package/dist/AvatarGroup.d.ts +28 -0
  10. package/dist/AvatarGroup.js +126 -0
  11. package/dist/AvatarGroup.js.map +1 -0
  12. package/dist/Dropdown.d.ts +11 -1
  13. package/dist/Dropdown.js +15 -3
  14. package/dist/Dropdown.js.map +1 -1
  15. package/dist/FilterMenu.d.ts +7 -1
  16. package/dist/FilterMenu.js +4 -1
  17. package/dist/FilterMenu.js.map +1 -1
  18. package/dist/Footer.d.ts +27 -0
  19. package/dist/Footer.js +27 -36
  20. package/dist/Footer.js.map +1 -1
  21. package/dist/HeroBanner.js +3 -0
  22. package/dist/HeroBanner.js.map +1 -1
  23. package/dist/MastheadItem.d.ts +1 -0
  24. package/dist/MastheadItem.js +5 -11
  25. package/dist/MastheadItem.js.map +1 -1
  26. package/dist/MastheadShell.d.ts +8 -0
  27. package/dist/MastheadShell.js +10 -0
  28. package/dist/MastheadShell.js.map +1 -1
  29. package/dist/MessageStrip.js +1 -1
  30. package/dist/MessageStrip.js.map +1 -1
  31. package/dist/Pagination.d.ts +3 -0
  32. package/dist/Pagination.js +16 -4
  33. package/dist/Pagination.js.map +1 -1
  34. package/dist/PasswordField.d.ts +14 -4
  35. package/dist/PasswordField.js +24 -15
  36. package/dist/PasswordField.js.map +1 -1
  37. package/dist/PhoneNumberField.d.ts +6 -0
  38. package/dist/PhoneNumberField.js +6 -1
  39. package/dist/PhoneNumberField.js.map +1 -1
  40. package/dist/RatingBar.d.ts +53 -0
  41. package/dist/RatingBar.js +96 -0
  42. package/dist/RatingBar.js.map +1 -0
  43. package/dist/Review.d.ts +71 -0
  44. package/dist/Review.js +108 -0
  45. package/dist/Review.js.map +1 -0
  46. package/dist/Search.d.ts +49 -1
  47. package/dist/Search.js +32 -3
  48. package/dist/Search.js.map +1 -1
  49. package/dist/SearchableListBase.d.ts +1 -1
  50. package/dist/SearchableListBase.js +1 -1
  51. package/dist/SearchableListBase.js.map +1 -1
  52. package/dist/SecondaryNavigation.d.ts +8 -8
  53. package/dist/SecondaryNavigation.js +51 -39
  54. package/dist/SecondaryNavigation.js.map +1 -1
  55. package/dist/SecondaryNavigationItem.d.ts +1 -1
  56. package/dist/SecondaryNavigationItem.js +15 -5
  57. package/dist/SecondaryNavigationItem.js.map +1 -1
  58. package/dist/SecondaryNavigationItemBase.d.ts +16 -2
  59. package/dist/SecondaryNavigationItemBase.js +27 -1
  60. package/dist/SecondaryNavigationItemBase.js.map +1 -1
  61. package/dist/SecondaryNavigationSubItem.d.ts +2 -1
  62. package/dist/SecondaryNavigationSubItem.js +5 -2
  63. package/dist/SecondaryNavigationSubItem.js.map +1 -1
  64. package/dist/SelectBox.js +2 -0
  65. package/dist/SelectBox.js.map +1 -1
  66. package/dist/StatusBadge.d.ts +5 -5
  67. package/dist/StatusBadge.js.map +1 -1
  68. package/dist/Switch.d.ts +1 -0
  69. package/dist/Switch.js +3 -0
  70. package/dist/Switch.js.map +1 -1
  71. package/dist/Tab.d.ts +8 -0
  72. package/dist/Tab.js +3 -0
  73. package/dist/Tab.js.map +1 -1
  74. package/dist/TabNavigation.d.ts +20 -20
  75. package/dist/TabNavigation.js +82 -101
  76. package/dist/TabNavigation.js.map +1 -1
  77. package/dist/Tag.d.ts +13 -6
  78. package/dist/Tag.js +34 -20
  79. package/dist/Tag.js.map +1 -1
  80. package/dist/TextArea.d.ts +1 -1
  81. package/dist/TextArea.js +3 -0
  82. package/dist/TextArea.js.map +1 -1
  83. package/dist/TextField.d.ts +9 -0
  84. package/dist/TextField.js +16 -0
  85. package/dist/TextField.js.map +1 -1
  86. package/dist/Tooltip.d.ts +2 -2
  87. package/dist/Tooltip.js +3 -3
  88. package/dist/Tooltip.js.map +1 -1
  89. package/dist/assets/bundle.esm-7d53f4f2.js +314 -0
  90. package/dist/assets/messagebundle_en-6dcc9ab4.js +1 -0
  91. package/dist/assets/parameters-bundle.css-de55cf62.js +2 -0
  92. package/dist/css/themes/AccordionItem.css +1 -1
  93. package/dist/css/themes/Avatar.css +1 -1
  94. package/dist/css/themes/Badge.css +1 -1
  95. package/dist/css/themes/Divider.css +1 -1
  96. package/dist/css/themes/Footer.css +1 -1
  97. package/dist/css/themes/HeroBanner.css +1 -1
  98. package/dist/css/themes/MastheadShell.css +1 -1
  99. package/dist/css/themes/Modal.css +1 -1
  100. package/dist/css/themes/Pagination.css +1 -1
  101. package/dist/css/themes/PhoneNumberField.css +1 -1
  102. package/dist/css/themes/RatingBar.css +1 -0
  103. package/dist/css/themes/RatingIndicator.css +1 -1
  104. package/dist/css/themes/Review.css +1 -0
  105. package/dist/css/themes/Search.css +1 -1
  106. package/dist/css/themes/SecondaryNavigation.css +1 -1
  107. package/dist/css/themes/SecondaryNavigationItem.css +1 -1
  108. package/dist/css/themes/SelectBox.css +1 -1
  109. package/dist/css/themes/Slider.css +1 -1
  110. package/dist/css/themes/StepInput.css +1 -1
  111. package/dist/css/themes/TabNavigation.css +1 -1
  112. package/dist/css/themes/Tag.css +1 -1
  113. package/dist/css/themes/TextField.css +1 -1
  114. package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +1 -1
  115. package/dist/custom-elements-internal.json +670 -100
  116. package/dist/custom-elements.json +594 -67
  117. package/dist/data/CountryListISO3166.js +162 -162
  118. package/dist/data/CountryListISO3166.js.map +1 -1
  119. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  120. package/dist/generated/assets/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.json +1 -1
  121. package/dist/generated/i18n/i18n-defaults.d.ts +9 -1
  122. package/dist/generated/i18n/i18n-defaults.js +13 -5
  123. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  124. package/dist/generated/templates/AccordionItemTemplate.lit.js +1 -1
  125. package/dist/generated/templates/AccordionItemTemplate.lit.js.map +1 -1
  126. package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
  127. package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
  128. package/dist/generated/templates/DropdownTemplate.lit.js +2 -2
  129. package/dist/generated/templates/DropdownTemplate.lit.js.map +1 -1
  130. package/dist/generated/templates/FilterMenuTemplate.lit.js +1 -1
  131. package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
  132. package/dist/generated/templates/FooterTemplate.lit.js +26 -28
  133. package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
  134. package/dist/generated/templates/HeroBannerTemplate.lit.js +9 -8
  135. package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
  136. package/dist/generated/templates/MastheadItemTemplate.lit.js +3 -3
  137. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
  138. package/dist/generated/templates/MastheadShellTemplate.lit.js +2 -2
  139. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  140. package/dist/generated/templates/PaginationTemplate.lit.js +1 -1
  141. package/dist/generated/templates/PaginationTemplate.lit.js.map +1 -1
  142. package/dist/generated/templates/PasswordFieldTemplate.lit.js +1 -2
  143. package/dist/generated/templates/PasswordFieldTemplate.lit.js.map +1 -1
  144. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +3 -3
  145. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
  146. package/dist/generated/templates/RatingBarTemplate.lit.d.ts +4 -0
  147. package/dist/generated/templates/RatingBarTemplate.lit.js +6 -0
  148. package/dist/generated/templates/RatingBarTemplate.lit.js.map +1 -0
  149. package/dist/generated/templates/ReviewTemplate.lit.d.ts +4 -0
  150. package/dist/generated/templates/ReviewTemplate.lit.js +10 -0
  151. package/dist/generated/templates/ReviewTemplate.lit.js.map +1 -0
  152. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +1 -1
  153. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +1 -1
  154. package/dist/generated/templates/SearchTemplate.lit.js +7 -7
  155. package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
  156. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +3 -3
  157. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -1
  158. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +5 -4
  159. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +1 -1
  160. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +3 -3
  161. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  162. package/dist/generated/templates/SelectBoxTemplate.lit.js +2 -2
  163. package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
  164. package/dist/generated/templates/SwitchTemplate.lit.js +2 -2
  165. package/dist/generated/templates/SwitchTemplate.lit.js.map +1 -1
  166. package/dist/generated/templates/TabInOverflowTemplate.lit.js +2 -2
  167. package/dist/generated/templates/TabInOverflowTemplate.lit.js.map +1 -1
  168. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js +1 -1
  169. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js.map +1 -1
  170. package/dist/generated/templates/TabNavigationTemplate.lit.js +2 -2
  171. package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
  172. package/dist/generated/templates/TagTemplate.lit.js +9 -3
  173. package/dist/generated/templates/TagTemplate.lit.js.map +1 -1
  174. package/dist/generated/templates/TextAreaTemplate.lit.js +1 -1
  175. package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
  176. package/dist/generated/templates/TextFieldTemplate.lit.js +2 -2
  177. package/dist/generated/templates/TextFieldTemplate.lit.js.map +1 -1
  178. package/dist/generated/templates/TooltipTemplate.lit.js +1 -1
  179. package/dist/generated/templates/TooltipTemplate.lit.js.map +1 -1
  180. package/dist/generated/themes/AccordionItem.css.js +1 -1
  181. package/dist/generated/themes/AccordionItem.css.js.map +1 -1
  182. package/dist/generated/themes/Avatar.css.js +1 -1
  183. package/dist/generated/themes/Avatar.css.js.map +1 -1
  184. package/dist/generated/themes/Badge.css.js +1 -1
  185. package/dist/generated/themes/Badge.css.js.map +1 -1
  186. package/dist/generated/themes/Divider.css.js +1 -1
  187. package/dist/generated/themes/Divider.css.js.map +1 -1
  188. package/dist/generated/themes/Footer.css.js +1 -1
  189. package/dist/generated/themes/Footer.css.js.map +1 -1
  190. package/dist/generated/themes/HeroBanner.css.js +1 -1
  191. package/dist/generated/themes/HeroBanner.css.js.map +1 -1
  192. package/dist/generated/themes/MastheadShell.css.js +1 -1
  193. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  194. package/dist/generated/themes/Modal.css.js +1 -1
  195. package/dist/generated/themes/Modal.css.js.map +1 -1
  196. package/dist/generated/themes/Pagination.css.js +1 -1
  197. package/dist/generated/themes/Pagination.css.js.map +1 -1
  198. package/dist/generated/themes/PhoneNumberField.css.js +1 -1
  199. package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
  200. package/dist/generated/themes/RatingBar.css.js +9 -0
  201. package/dist/generated/themes/RatingBar.css.js.map +1 -0
  202. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  203. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  204. package/dist/generated/themes/Review.css.d.ts +3 -0
  205. package/dist/generated/themes/Review.css.js +9 -0
  206. package/dist/generated/themes/Review.css.js.map +1 -0
  207. package/dist/generated/themes/Search.css.js +1 -1
  208. package/dist/generated/themes/Search.css.js.map +1 -1
  209. package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
  210. package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
  211. package/dist/generated/themes/SecondaryNavigationItem.css.js +1 -1
  212. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
  213. package/dist/generated/themes/SelectBox.css.js +1 -1
  214. package/dist/generated/themes/SelectBox.css.js.map +1 -1
  215. package/dist/generated/themes/Slider.css.js +1 -1
  216. package/dist/generated/themes/Slider.css.js.map +1 -1
  217. package/dist/generated/themes/StepInput.css.js +1 -1
  218. package/dist/generated/themes/StepInput.css.js.map +1 -1
  219. package/dist/generated/themes/TabNavigation.css.js +1 -1
  220. package/dist/generated/themes/TabNavigation.css.js.map +1 -1
  221. package/dist/generated/themes/Tag.css.js +1 -1
  222. package/dist/generated/themes/Tag.css.js.map +1 -1
  223. package/dist/generated/themes/TextField.css.js +1 -1
  224. package/dist/generated/themes/TextField.css.js.map +1 -1
  225. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js +1 -1
  226. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js.map +1 -1
  227. package/dist/i18n/messagebundle.properties +28 -4
  228. package/dist/i18n/messagebundle_en.properties +12 -4
  229. package/dist/vscode.html-custom-data.json +112 -17
  230. package/dist/web-types.json +215 -33
  231. package/package.json +8 -8
  232. package/src/AccordionItem.hbs +1 -4
  233. package/src/AccordionItem.ts +5 -4
  234. package/src/Avatar.ts +24 -1
  235. package/src/AvatarGroup.ts +135 -0
  236. package/src/DatePicker.hbs +0 -1
  237. package/src/Dropdown.hbs +5 -2
  238. package/src/Dropdown.ts +24 -3
  239. package/src/FilterMenu.hbs +3 -0
  240. package/src/FilterMenu.ts +10 -2
  241. package/src/Footer.hbs +12 -37
  242. package/src/Footer.ts +64 -51
  243. package/src/HeroBanner.hbs +18 -14
  244. package/src/HeroBanner.ts +3 -0
  245. package/src/MastheadItem.hbs +3 -3
  246. package/src/MastheadItem.ts +10 -4
  247. package/src/MastheadShell.hbs +4 -0
  248. package/src/MastheadShell.ts +18 -0
  249. package/src/MessageStrip.ts +1 -1
  250. package/src/Pagination.hbs +4 -2
  251. package/src/Pagination.ts +19 -4
  252. package/src/PasswordField.hbs +6 -17
  253. package/src/PasswordField.ts +31 -23
  254. package/src/PhoneNumberField.hbs +8 -3
  255. package/src/PhoneNumberField.ts +11 -1
  256. package/src/RatingBar.hbs +11 -0
  257. package/src/RatingBar.ts +113 -0
  258. package/src/Review.hbs +44 -0
  259. package/src/Review.ts +140 -0
  260. package/src/Search.hbs +19 -14
  261. package/src/Search.ts +72 -2
  262. package/src/SearchSuggestions.hbs +1 -0
  263. package/src/SearchableListBase.ts +1 -1
  264. package/src/SecondaryNavigation.hbs +5 -1
  265. package/src/SecondaryNavigation.ts +67 -49
  266. package/src/SecondaryNavigationItem.hbs +3 -2
  267. package/src/SecondaryNavigationItem.ts +15 -5
  268. package/src/SecondaryNavigationItemBase.ts +41 -3
  269. package/src/SecondaryNavigationSubItem.hbs +13 -10
  270. package/src/SecondaryNavigationSubItem.ts +6 -2
  271. package/src/SelectBox.hbs +75 -76
  272. package/src/SelectBox.ts +2 -0
  273. package/src/StatusBadge.ts +2 -2
  274. package/src/Switch.hbs +3 -3
  275. package/src/Switch.ts +4 -0
  276. package/src/Tab.ts +10 -0
  277. package/src/TabInOverflow.hbs +3 -2
  278. package/src/TabNavigation.hbs +12 -10
  279. package/src/TabNavigation.ts +92 -116
  280. package/src/TabNavigationPopover.hbs +1 -0
  281. package/src/Tag.hbs +60 -26
  282. package/src/Tag.ts +54 -34
  283. package/src/TextArea.hbs +3 -4
  284. package/src/TextArea.ts +3 -0
  285. package/src/TextField.hbs +40 -36
  286. package/src/TextField.ts +24 -0
  287. package/src/Tooltip.hbs +2 -2
  288. package/src/Tooltip.ts +4 -4
  289. package/src/data/CountryListISO3166.ts +162 -162
  290. package/src/generated/i18n/i18n-defaults.ts +2 -2
  291. package/src/generated/templates/AccordionItemTemplate.lit.ts +1 -1
  292. package/src/generated/templates/DatePickerTemplate.lit.ts +1 -1
  293. package/src/generated/templates/DropdownTemplate.lit.ts +2 -2
  294. package/src/generated/templates/FilterMenuTemplate.lit.ts +1 -1
  295. package/src/generated/templates/FooterTemplate.lit.ts +26 -28
  296. package/src/generated/templates/HeroBannerTemplate.lit.ts +9 -8
  297. package/src/generated/templates/MastheadItemTemplate.lit.ts +3 -3
  298. package/src/generated/templates/MastheadShellTemplate.lit.ts +2 -2
  299. package/src/generated/templates/PaginationTemplate.lit.ts +1 -1
  300. package/src/generated/templates/PasswordFieldTemplate.lit.ts +1 -2
  301. package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +3 -3
  302. package/src/generated/templates/RatingBarTemplate.lit.ts +11 -0
  303. package/src/generated/templates/ReviewTemplate.lit.ts +15 -0
  304. package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +1 -1
  305. package/src/generated/templates/SearchTemplate.lit.ts +7 -7
  306. package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +3 -3
  307. package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +5 -4
  308. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +3 -3
  309. package/src/generated/templates/SelectBoxTemplate.lit.ts +2 -2
  310. package/src/generated/templates/SwitchTemplate.lit.ts +2 -2
  311. package/src/generated/templates/TabInOverflowTemplate.lit.ts +2 -2
  312. package/src/generated/templates/TabNavigationPopoverTemplate.lit.ts +1 -1
  313. package/src/generated/templates/TabNavigationTemplate.lit.ts +2 -2
  314. package/src/generated/templates/TagTemplate.lit.ts +9 -3
  315. package/src/generated/templates/TextAreaTemplate.lit.ts +1 -1
  316. package/src/generated/templates/TextFieldTemplate.lit.ts +2 -2
  317. package/src/generated/templates/TooltipTemplate.lit.ts +1 -1
  318. package/src/generated/themes/AccordionItem.css.ts +1 -1
  319. package/src/generated/themes/Avatar.css.ts +1 -1
  320. package/src/generated/themes/Badge.css.ts +1 -1
  321. package/src/generated/themes/Divider.css.ts +1 -1
  322. package/src/generated/themes/Footer.css.ts +1 -1
  323. package/src/generated/themes/HeroBanner.css.ts +1 -1
  324. package/src/generated/themes/MastheadShell.css.ts +1 -1
  325. package/src/generated/themes/Modal.css.ts +1 -1
  326. package/src/generated/themes/Pagination.css.ts +1 -1
  327. package/src/generated/themes/PhoneNumberField.css.ts +1 -1
  328. package/src/generated/themes/RatingBar.css.ts +13 -0
  329. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  330. package/src/generated/themes/Review.css.ts +13 -0
  331. package/src/generated/themes/Search.css.ts +1 -1
  332. package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
  333. package/src/generated/themes/SecondaryNavigationItem.css.ts +1 -1
  334. package/src/generated/themes/SelectBox.css.ts +1 -1
  335. package/src/generated/themes/Slider.css.ts +1 -1
  336. package/src/generated/themes/StepInput.css.ts +1 -1
  337. package/src/generated/themes/TabNavigation.css.ts +1 -1
  338. package/src/generated/themes/Tag.css.ts +1 -1
  339. package/src/generated/themes/TextField.css.ts +1 -1
  340. package/src/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +1 -1
  341. package/src/i18n/messagebundle.properties +28 -4
  342. package/src/i18n/messagebundle_en.properties +12 -4
  343. package/src/themes/AccordionItem.css +6 -4
  344. package/src/themes/Avatar.css +24 -7
  345. package/src/themes/Badge.css +1 -1
  346. package/src/themes/Divider.css +6 -2
  347. package/src/themes/Footer.css +93 -168
  348. package/src/themes/HeroBanner.css +52 -24
  349. package/src/themes/MastheadShell.css +25 -29
  350. package/src/themes/Modal.css +6 -0
  351. package/src/themes/Pagination.css +7 -0
  352. package/src/themes/PhoneNumberField.css +1 -0
  353. package/src/themes/RatingBar.css +52 -0
  354. package/src/themes/Review.css +196 -0
  355. package/src/themes/Search.css +37 -25
  356. package/src/themes/SecondaryNavigation.css +33 -4
  357. package/src/themes/SecondaryNavigationItem.css +3 -2
  358. package/src/themes/SelectBox.css +17 -24
  359. package/src/themes/StepInput.css +5 -2
  360. package/src/themes/TabNavigation.css +7 -1
  361. package/src/themes/Tag.css +180 -148
  362. package/src/themes/TextField.css +75 -55
  363. package/dist/assets/bundle.esm-f65ae7da.js +0 -315
  364. package/dist/assets/messagebundle_en-7249941b.js +0 -1
  365. package/dist/assets/parameters-bundle.css-76ef62fa.js +0 -2
  366. package/dist/css/themes/PasswordField.css +0 -1
  367. package/dist/generated/themes/PasswordField.css.js +0 -9
  368. package/dist/generated/themes/PasswordField.css.js.map +0 -1
  369. package/src/generated/themes/PasswordField.css.ts +0 -13
  370. package/src/themes/PasswordField.css +0 -29
  371. /package/dist/generated/themes/{PasswordField.css.d.ts → RatingBar.css.d.ts} +0 -0
package/bundle.esm.js CHANGED
@@ -34,6 +34,7 @@ import "./dist/Link.js";
34
34
  import "./dist/TabNavigation.js";
35
35
  import "./dist/Tab.js";
36
36
  import "./dist/Avatar.js";
37
+ import "./dist/AvatarGroup.js";
37
38
  import "./dist/TruncatedText.js";
38
39
  import "./dist/Tag.js";
39
40
  import "./dist/Tile.js";
@@ -45,6 +46,8 @@ import "./dist/RadioButton.js";
45
46
  import "./dist/ProgressBar.js";
46
47
  import "./dist/RangeSlider.js";
47
48
  import "./dist/RatingIndicator.js";
49
+ import "./dist/RatingBar.js";
50
+ import "./dist/Review.js";
48
51
  import "./dist/Toast.js";
49
52
  import "./dist/Slider.js";
50
53
  import "./dist/Switch.js";
@@ -3,14 +3,25 @@ const config = require("@ui5/webcomponents-tools/components-package/wdio.js");
3
3
  // For test debugging purposes - removed the headless arg and sets larger timeout
4
4
  // config.config.capabilities[0]["goog:chromeOptions"].args = ['--disable-gpu'];
5
5
  // config.config.mochaOpts.timeout = (24 * 60 * 60 * 1000);
6
-
7
- config.config.capabilities[0]["goog:chromeOptions"].args = [
8
- ...config.config.capabilities[0]["goog:chromeOptions"].args,
9
- // '--disable-gpu',
10
- '--disable-search-engine-choice-screen'
11
- ];
12
-
13
6
  config.config.maxInstances = 2;
14
- config.config.capabilities[0].maxInstances = 2;
7
+
8
+ config.config.capabilities = [{
9
+ maxInstances: 2,
10
+ browserName: 'chrome',
11
+ 'goog:chromeOptions': {
12
+ // to run chrome headless the following flags are required
13
+ // (see https://developers.google.com/web/updates/2017/04/headless-chrome)
14
+ args: [
15
+ '--headless',
16
+ '--disable-search-engine-choice-screen',
17
+ '--start-maximized',
18
+ '--no-sandbox',
19
+ '--disable-gpu',
20
+ '--disable-infobars',
21
+ '--disable-extensions',
22
+ '--disable-dev-shm-usage',
23
+ ],
24
+ }
25
+ }],
15
26
 
16
27
  module.exports = config;
@@ -31,6 +31,8 @@ declare class UDExAccordionItem extends UI5Element {
31
31
  numberBadge: string;
32
32
  /**
33
33
  * Defines the title of the accordion item component.
34
+ * TODO: With transition to UI5 2.x, change "title" attribute name.
35
+ * Title property is also valid HTML attribute that results in showing hover tooltip and is read by screen readers.
34
36
  *
35
37
  * @default ""
36
38
  * @public
@@ -74,7 +76,6 @@ declare class UDExAccordionItem extends UI5Element {
74
76
  focusHandler(): void;
75
77
  keydownHandler(e: KeyboardEvent): void;
76
78
  get accordionItemsClass(): string;
77
- get ariaLabelledby(): string;
78
79
  onAfterRendering(): void;
79
80
  }
80
81
  export default UDExAccordionItem;
@@ -105,9 +105,6 @@ let UDExAccordionItem = class UDExAccordionItem extends UI5Element {
105
105
  }
106
106
  return classes;
107
107
  }
108
- get ariaLabelledby() {
109
- return `${this._id}-header-title`;
110
- }
111
108
  onAfterRendering() {
112
109
  this._el = this.shadowRoot?.querySelector(".udex-accordion-item") || null;
113
110
  const accordion = this.shadowRoot?.querySelector(".udex-accordion-item") || null;
@@ -126,6 +123,9 @@ let UDExAccordionItem = class UDExAccordionItem extends UI5Element {
126
123
  this.toggleItemState(this._el, !this.expanded);
127
124
  }
128
125
  this?.parentElement?.addEventListener("ui5-toggle-items", this.toggleAllHandler.bind(this));
126
+ // TODO: this should be removed with transition to UI5 2.x, wne changed "title" attribute name.
127
+ // Fix was provided to avoid reading "title" property by screen readers, which results reading title twice.
128
+ this.setAttribute("aria-hidden", "true");
129
129
  }
130
130
  };
131
131
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionItem.js","sourceRoot":"","sources":["../src/AccordionItem.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 \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/AllIcons.js\";\nimport \"@ui5/webcomponents-icons/dist/feeder-arrow.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport UDExBadge from \"./Badge.js\";\n\nimport AccordionItemTemplate from \"./generated/templates/AccordionItemTemplate.lit.js\";\n\n// Styles\nimport AccordionItemCss from \"./generated/themes/AccordionItem.css.js\";\n\ntype ToggleAllEvent = {\n isOpen: boolean\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-accordion-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/AccordionItem.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-accordion-item\n * @public\n */\n@customElement({\n tag: \"udex-accordion-item\",\n renderer: litRender,\n styles: AccordionItemCss,\n template: AccordionItemTemplate,\n dependencies: [UDExBadge],\n})\n\n/**\n * Triggered when the user focuses on an accordion item.\n * @public\n */\n@event(\"accordion-item-focus\")\n\nclass UDExAccordionItem extends UI5Element {\n /**\n * Defines the Badge at the end of the title item.\n *\n * @default \"\"\n * @public\n */\n @property() numberBadge!: string;\n\n /**\n * Defines the title of the accordion item component.\n *\n * @default \"\"\n * @public\n */\n @property() title!: string;\n\n /**\n * Defines if the accordion item is expanded by default\n *\n * @default false\n * @public\n */\n @property({ type: Boolean }) expanded!: boolean;\n\n /**\n * Used internally to understand the component's open or closed state.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true }) isOpen = false;\n\n /**\n * Defines direction of the accordion item.\n *\n * @public\n */\n @property({ type: String }) _direction?: string;\n\n /**\n * Slot for accordion item content.\n *\n * @slot\n * @public\n */\n @slot({ type: Node, \"default\": true }) content!: Array<Node>;\n\n _el: HTMLElement | null = null;\n\n constructor() {\n super();\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n contentKeydown(e: KeyboardEvent) {\n e.stopPropagation();\n }\n\n itemClickHandler(e: Event) {\n e.preventDefault();\n if (this._el) {\n const isActive = this._el.classList.contains(\"active\");\n this.toggleItemState(this._el, isActive);\n this.toggleExpanded();\n }\n }\n\n toggleAllHandler(e: Event) {\n e.preventDefault();\n const customEvent = e as CustomEvent<ToggleAllEvent>;\n if (this._el) { this.toggleItemState(this._el, customEvent.detail.isOpen); }\n }\n\n toggleItemState(el: HTMLElement, isActive: boolean) {\n if (isActive) {\n el.classList.remove(\"active\");\n el.querySelector(\".udex-accordion-item__header\")?.setAttribute(\"aria-expanded\", \"false\");\n } else {\n el.classList.add(\"active\");\n el.querySelector(\".udex-accordion-item__header\")?.setAttribute(\"aria-expanded\", \"true\");\n }\n }\n\n toggleExpanded(): void {\n this.expanded = !this.expanded;\n }\n\n focusHandler() {\n this.fireEvent(\"accordion-item-focus\");\n }\n\n keydownHandler(e: KeyboardEvent) {\n switch (e.key) {\n case \"Enter\":\n case \" \":\n this.itemClickHandler(e);\n break;\n default:\n break;\n }\n }\n\n get accordionItemsClass(): string {\n let classes = \"udex-accordion-item\";\n if (this._direction === \"rtl\") {\n classes = `${classes} ${this._direction}`;\n }\n return classes;\n }\n\n get ariaLabelledby() {\n return `${this._id}-header-title`;\n }\n\n onAfterRendering() {\n this._el = this.shadowRoot?.querySelector(\".udex-accordion-item\") || null;\n const accordion = this.shadowRoot?.querySelector<HTMLElement>(\n \".udex-accordion-item\",\n ) || null;\n\n if (accordion) {\n const directionStyles: string = window\n .getComputedStyle(accordion)\n .getPropertyValue(\"direction\");\n if (!directionStyles) {\n this._direction = \"ltr\";\n } else {\n this._direction = directionStyles;\n }\n }\n\n if (this._el) {\n this.toggleItemState(this._el, !this.expanded);\n }\n\n this?.parentElement?.addEventListener(\"ui5-toggle-items\", this.toggleAllHandler.bind(this));\n }\n}\n\nUDExAccordionItem.define();\n\nexport default UDExAccordionItem;\n"]}
1
+ {"version":3,"file":"AccordionItem.js","sourceRoot":"","sources":["../src/AccordionItem.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 \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/AllIcons.js\";\nimport \"@ui5/webcomponents-icons/dist/feeder-arrow.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport UDExBadge from \"./Badge.js\";\n\nimport AccordionItemTemplate from \"./generated/templates/AccordionItemTemplate.lit.js\";\n\n// Styles\nimport AccordionItemCss from \"./generated/themes/AccordionItem.css.js\";\n\ntype ToggleAllEvent = {\n isOpen: boolean\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-accordion-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/AccordionItem.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-accordion-item\n * @public\n */\n@customElement({\n tag: \"udex-accordion-item\",\n renderer: litRender,\n styles: AccordionItemCss,\n template: AccordionItemTemplate,\n dependencies: [UDExBadge],\n})\n\n/**\n * Triggered when the user focuses on an accordion item.\n * @public\n */\n@event(\"accordion-item-focus\")\n\nclass UDExAccordionItem extends UI5Element {\n /**\n * Defines the Badge at the end of the title item.\n *\n * @default \"\"\n * @public\n */\n @property() numberBadge!: string;\n\n /**\n * Defines the title of the accordion item component.\n * TODO: With transition to UI5 2.x, change \"title\" attribute name.\n * Title property is also valid HTML attribute that results in showing hover tooltip and is read by screen readers.\n *\n * @default \"\"\n * @public\n */\n @property() title!: string;\n\n /**\n * Defines if the accordion item is expanded by default\n *\n * @default false\n * @public\n */\n @property({ type: Boolean }) expanded!: boolean;\n\n /**\n * Used internally to understand the component's open or closed state.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true }) isOpen = false;\n\n /**\n * Defines direction of the accordion item.\n *\n * @public\n */\n @property({ type: String }) _direction?: string;\n\n /**\n * Slot for accordion item content.\n *\n * @slot\n * @public\n */\n @slot({ type: Node, \"default\": true }) content!: Array<Node>;\n\n _el: HTMLElement | null = null;\n\n constructor() {\n super();\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n contentKeydown(e: KeyboardEvent) {\n e.stopPropagation();\n }\n\n itemClickHandler(e: Event) {\n e.preventDefault();\n if (this._el) {\n const isActive = this._el.classList.contains(\"active\");\n this.toggleItemState(this._el, isActive);\n this.toggleExpanded();\n }\n }\n\n toggleAllHandler(e: Event) {\n e.preventDefault();\n const customEvent = e as CustomEvent<ToggleAllEvent>;\n if (this._el) { this.toggleItemState(this._el, customEvent.detail.isOpen); }\n }\n\n toggleItemState(el: HTMLElement, isActive: boolean) {\n if (isActive) {\n el.classList.remove(\"active\");\n el.querySelector(\".udex-accordion-item__header\")?.setAttribute(\"aria-expanded\", \"false\");\n } else {\n el.classList.add(\"active\");\n el.querySelector(\".udex-accordion-item__header\")?.setAttribute(\"aria-expanded\", \"true\");\n }\n }\n\n toggleExpanded(): void {\n this.expanded = !this.expanded;\n }\n\n focusHandler() {\n this.fireEvent(\"accordion-item-focus\");\n }\n\n keydownHandler(e: KeyboardEvent) {\n switch (e.key) {\n case \"Enter\":\n case \" \":\n this.itemClickHandler(e);\n break;\n default:\n break;\n }\n }\n\n get accordionItemsClass(): string {\n let classes = \"udex-accordion-item\";\n if (this._direction === \"rtl\") {\n classes = `${classes} ${this._direction}`;\n }\n return classes;\n }\n\n onAfterRendering() {\n this._el = this.shadowRoot?.querySelector(\".udex-accordion-item\") || null;\n const accordion = this.shadowRoot?.querySelector<HTMLElement>(\n \".udex-accordion-item\",\n ) || null;\n\n if (accordion) {\n const directionStyles: string = window\n .getComputedStyle(accordion)\n .getPropertyValue(\"direction\");\n if (!directionStyles) {\n this._direction = \"ltr\";\n } else {\n this._direction = directionStyles;\n }\n }\n\n if (this._el) {\n this.toggleItemState(this._el, !this.expanded);\n }\n\n this?.parentElement?.addEventListener(\"ui5-toggle-items\", this.toggleAllHandler.bind(this));\n // TODO: this should be removed with transition to UI5 2.x, wne changed \"title\" attribute name.\n // Fix was provided to avoid reading \"title\" property by screen readers, which results reading title twice.\n this.setAttribute(\"aria-hidden\", \"true\");\n }\n}\n\nUDExAccordionItem.define();\n\nexport default UDExAccordionItem;\n"]}
package/dist/Avatar.d.ts CHANGED
@@ -129,6 +129,18 @@ declare class UDExAvatar extends UI5Element {
129
129
  static i18nBundle: I18nBundle;
130
130
  static onDefine(): Promise<void>;
131
131
  handleClick(e: Event): void;
132
+ /**
133
+ * Returns the effective avatar size.
134
+ * @default "S"
135
+ * @private
136
+ */
137
+ get effectiveSize(): AvatarSize;
138
+ /**
139
+ * Returns the effective background color.
140
+ * @default "Blue"
141
+ * @private
142
+ */
143
+ get еffectiveBackgroundColor(): AvatarColorScheme;
132
144
  get getUI5AvatarColorScheme(): string;
133
145
  get imageSlot(): boolean;
134
146
  get badgeSlot(): boolean;
package/dist/Avatar.js CHANGED
@@ -84,6 +84,24 @@ let UDExAvatar = UDExAvatar_1 = class UDExAvatar extends UI5Element {
84
84
  this.fireEvent("click");
85
85
  }
86
86
  }
87
+ /**
88
+ * Returns the effective avatar size.
89
+ * @default "S"
90
+ * @private
91
+ */
92
+ get effectiveSize() {
93
+ // we read the attribute, because the "size" property will always have a default value
94
+ return this.getAttribute("size") || this.size;
95
+ }
96
+ /**
97
+ * Returns the effective background color.
98
+ * @default "Blue"
99
+ * @private
100
+ */
101
+ get еffectiveBackgroundColor() {
102
+ // we read the attribute, because the "background-color" property will always have a default value
103
+ return this.getAttribute("color-scheme") || this.colorScheme;
104
+ }
87
105
  get getUI5AvatarColorScheme() {
88
106
  return udexToUi5ColorSchemeMap[this.colorScheme];
89
107
  }
@@ -101,7 +119,10 @@ let UDExAvatar = UDExAvatar_1 = class UDExAvatar extends UI5Element {
101
119
  return avatarClass;
102
120
  }
103
121
  get avatarAccessibleName() {
104
- return `${this.accessibleName ? this.accessibleName : UDExAvatar_1.i18nBundle.getText(AVATAR_TEXT)} ${this.disabled ? UDExAvatar_1.i18nBundle.getText(DISABLED) : ""} ${this.showAttentionBadge ? UDExAvatar_1.i18nBundle.getText(ATTENTION_BADGE) : ""}`;
122
+ let accName = `${this.accessibleName ? this.accessibleName : `${UDExAvatar_1.i18nBundle.getText(AVATAR_TEXT)} ${this.initials}`}`;
123
+ accName += ` ${this.disabled ? UDExAvatar_1.i18nBundle.getText(DISABLED) : ""}`;
124
+ accName += ` ${this.showAttentionBadge ? UDExAvatar_1.i18nBundle.getText(ATTENTION_BADGE) : ""}`;
125
+ return accName;
105
126
  }
106
127
  };
107
128
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../src/Avatar.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport Avatar from \"@ui5/webcomponents/dist/Avatar.js\";\nimport I18nBundle, { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { ATTENTION_BADGE, AVATAR_TEXT, DISABLED } from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport AvatarTemplate from \"./generated/templates/AvatarTemplate.lit.js\";\n\n// Styles\nimport AvatarCss from \"./generated/themes/Avatar.css\";\n\nexport enum AvatarColorScheme {\n Mango = \"Mango\",\n Red = \"Red\",\n Raspberry = \"Raspberry\",\n Pink = \"Pink\",\n Indigo = \"Indigo\",\n Blue = \"Blue\",\n Teal = \"Teal\",\n Green = \"Green\",\n Grey = \"Grey\",\n Transparent = \"Transparent\",\n Neutral = \"Neutral\",\n}\n\nexport enum AvatarShape {\n Circle = \"Circle\",\n Square = \"Square\",\n}\n\nexport enum AvatarSize {\n XS = \"XS\",\n S = \"S\",\n M = \"M\",\n L = \"L\",\n XL = \"XL\",\n}\n\nconst udexToUi5ColorSchemeMap = {\n Mango: \"Accent1\",\n Red: \"Accent2\",\n Raspberry: \"Accent3\",\n Pink: \"Accent4\",\n Indigo: \"Accent5\",\n Blue: \"Accent6\",\n Teal: \"Accent7\",\n Green: \"Accent8\",\n Grey: \"Accent10\",\n Transparent: \"Accent6\",\n Neutral: \"Accent6\",\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-avatar</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/Avatar.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-avatar\",\n renderer: litRender,\n styles: AvatarCss,\n template: AvatarTemplate,\n dependencies: [Avatar],\n})\nclass UDExAvatar extends UI5Element {\n /**\n * Defines the displayed initials.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n initials!: string;\n\n /**\n * Defines if the avatar is interactive (focusable and pressable).\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n interactive!: boolean;\n\n /**\n * Defines the text alternative of the component.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n accessibleName!: string;\n\n /**\n * Defines the design of the component.\n *\n * @default \"Blue\"\n * @public\n */\n @property({ type: AvatarColorScheme, defaultValue: AvatarColorScheme.Blue })\n colorScheme!: `${AvatarColorScheme}`;\n\n /**\n * Defines whether the component is disabled.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines the name of the fallback icon.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n fallbackIcon!: string;\n\n /**\n * Defines the name of the UI5 Icon, that will be displayed.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n icon!: string;\n\n /**\n * Defines the shape of the component.\n *\n * @default \"Circle\"\n * @public\n */\n @property({ type: AvatarShape, defaultValue: AvatarShape.Circle })\n shape!: `${AvatarShape}`;\n\n /**\n * Defines predefined size of the component.\n *\n * @default \"S\"\n * @public\n */\n @property({ type: AvatarSize, defaultValue: AvatarSize.S })\n size!: `${AvatarSize}`;\n\n /**\n * Defines the displaying attention badge.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n showAttentionBadge!: boolean;\n\n /**\n * Receives the desired <img> tag\n *\n * @slot image\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n image!: Array<HTMLElement>;\n\n /**\n * Defines the optional badge that will be used for visual affordance.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n badge!: Array<HTMLElement>;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine(): Promise<void> {\n UDExAvatar.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n handleClick(e: Event) {\n e.stopPropagation();\n if (this.interactive) {\n this.fireEvent(\"click\");\n }\n }\n\n get getUI5AvatarColorScheme(): string {\n return udexToUi5ColorSchemeMap[this.colorScheme];\n }\n\n get imageSlot(): boolean {\n return !!this.image.length;\n }\n\n get badgeSlot(): boolean {\n return !!this.badge.length;\n }\n\n get udexAvatarClass(): string {\n let avatarClass = \"udex-avatar\";\n\n if (this.imageSlot) {\n avatarClass += \" udex-avatar--with-image\";\n }\n\n return avatarClass;\n }\n\n get avatarAccessibleName(): string {\n return `${this.accessibleName ? this.accessibleName : UDExAvatar.i18nBundle.getText(AVATAR_TEXT)} ${this.disabled ? UDExAvatar.i18nBundle.getText(DISABLED) : \"\"} ${this.showAttentionBadge ? UDExAvatar.i18nBundle.getText(ATTENTION_BADGE) : \"\"}`;\n }\n}\n\nUDExAvatar.define();\n\nexport default UDExAvatar;\n"]}
1
+ {"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../src/Avatar.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport Avatar from \"@ui5/webcomponents/dist/Avatar.js\";\nimport I18nBundle, { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { ATTENTION_BADGE, AVATAR_TEXT, DISABLED } from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport AvatarTemplate from \"./generated/templates/AvatarTemplate.lit.js\";\n\n// Styles\nimport AvatarCss from \"./generated/themes/Avatar.css\";\n\nexport enum AvatarColorScheme {\n Mango = \"Mango\",\n Red = \"Red\",\n Raspberry = \"Raspberry\",\n Pink = \"Pink\",\n Indigo = \"Indigo\",\n Blue = \"Blue\",\n Teal = \"Teal\",\n Green = \"Green\",\n Grey = \"Grey\",\n Transparent = \"Transparent\",\n Neutral = \"Neutral\",\n}\n\nexport enum AvatarShape {\n Circle = \"Circle\",\n Square = \"Square\",\n}\n\nexport enum AvatarSize {\n XS = \"XS\",\n S = \"S\",\n M = \"M\",\n L = \"L\",\n XL = \"XL\",\n}\n\nconst udexToUi5ColorSchemeMap = {\n Mango: \"Accent1\",\n Red: \"Accent2\",\n Raspberry: \"Accent3\",\n Pink: \"Accent4\",\n Indigo: \"Accent5\",\n Blue: \"Accent6\",\n Teal: \"Accent7\",\n Green: \"Accent8\",\n Grey: \"Accent10\",\n Transparent: \"Accent6\",\n Neutral: \"Accent6\",\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-avatar</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/Avatar.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-avatar\",\n renderer: litRender,\n styles: AvatarCss,\n template: AvatarTemplate,\n dependencies: [Avatar],\n})\nclass UDExAvatar extends UI5Element {\n /**\n * Defines the displayed initials.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n initials!: string;\n\n /**\n * Defines if the avatar is interactive (focusable and pressable).\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n interactive!: boolean;\n\n /**\n * Defines the text alternative of the component.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n accessibleName!: string;\n\n /**\n * Defines the design of the component.\n *\n * @default \"Blue\"\n * @public\n */\n @property({ type: AvatarColorScheme, defaultValue: AvatarColorScheme.Blue })\n colorScheme!: `${AvatarColorScheme}`;\n\n /**\n * Defines whether the component is disabled.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines the name of the fallback icon.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n fallbackIcon!: string;\n\n /**\n * Defines the name of the UI5 Icon, that will be displayed.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n icon!: string;\n\n /**\n * Defines the shape of the component.\n *\n * @default \"Circle\"\n * @public\n */\n @property({ type: AvatarShape, defaultValue: AvatarShape.Circle })\n shape!: `${AvatarShape}`;\n\n /**\n * Defines predefined size of the component.\n *\n * @default \"S\"\n * @public\n */\n @property({ type: AvatarSize, defaultValue: AvatarSize.S })\n size!: `${AvatarSize}`;\n\n /**\n * Defines the displaying attention badge.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n showAttentionBadge!: boolean;\n\n /**\n * Receives the desired <img> tag\n *\n * @slot image\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n image!: Array<HTMLElement>;\n\n /**\n * Defines the optional badge that will be used for visual affordance.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n badge!: Array<HTMLElement>;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine(): Promise<void> {\n UDExAvatar.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n handleClick(e: Event) {\n e.stopPropagation();\n if (this.interactive) {\n this.fireEvent(\"click\");\n }\n }\n\n /**\n * Returns the effective avatar size.\n * @default \"S\"\n * @private\n */\n get effectiveSize(): AvatarSize {\n // we read the attribute, because the \"size\" property will always have a default value\n return this.getAttribute(\"size\") as AvatarSize || this.size;\n }\n\n /**\n * Returns the effective background color.\n * @default \"Blue\"\n * @private\n */\n get еffectiveBackgroundColor(): AvatarColorScheme {\n // we read the attribute, because the \"background-color\" property will always have a default value\n return this.getAttribute(\"color-scheme\") as AvatarColorScheme || this.colorScheme;\n }\n\n get getUI5AvatarColorScheme(): string {\n return udexToUi5ColorSchemeMap[this.colorScheme];\n }\n\n get imageSlot(): boolean {\n return !!this.image.length;\n }\n\n get badgeSlot(): boolean {\n return !!this.badge.length;\n }\n\n get udexAvatarClass(): string {\n let avatarClass = \"udex-avatar\";\n\n if (this.imageSlot) {\n avatarClass += \" udex-avatar--with-image\";\n }\n\n return avatarClass;\n }\n\n get avatarAccessibleName(): string {\n let accName = `${this.accessibleName ? this.accessibleName : `${UDExAvatar.i18nBundle.getText(AVATAR_TEXT)} ${this.initials}`}`;\n accName += ` ${this.disabled ? UDExAvatar.i18nBundle.getText(DISABLED) : \"\"}`;\n accName += ` ${this.showAttentionBadge ? UDExAvatar.i18nBundle.getText(ATTENTION_BADGE) : \"\"}`;\n return accName;\n }\n}\n\nUDExAvatar.define();\n\nexport default UDExAvatar;\n"]}
@@ -0,0 +1,28 @@
1
+ import AvatarGroup from "@ui5/webcomponents/dist/AvatarGroup.js";
2
+ /**
3
+ * @class
4
+ *
5
+ * <h3 class="comment-api-title">Overview</h3>
6
+ *
7
+ *
8
+ * <h3>Usage</h3>
9
+ *
10
+ * For the <code>udex-avatar-group</code>
11
+ * <h3>ES6 Module Import</h3>
12
+ *
13
+ * <code>import "@udex/web-components/dist/AvatarGroup.js";</code>
14
+ *
15
+ * @constructor
16
+ * @author SAP SE
17
+ * @extends AvatarGroup
18
+ * @public
19
+ */
20
+ declare class UDExAvatarGroup extends AvatarGroup {
21
+ constructor();
22
+ onEnterDOM(): void;
23
+ onExitDOM(): void;
24
+ _onHover(hover: boolean): void;
25
+ _onfocusin(e: FocusEvent): void;
26
+ _prepareAvatars(): void;
27
+ }
28
+ export default UDExAvatarGroup;
@@ -0,0 +1,126 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import AvatarGroup from "@ui5/webcomponents/dist/AvatarGroup.js";
8
+ import AvatarGroupType from "@ui5/webcomponents/dist/types/AvatarGroupType.js";
9
+ import ItemNavigation from "@ui5/webcomponents-base/dist/delegate/ItemNavigation.js";
10
+ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
11
+ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
12
+ // Styles
13
+ import UI5AvatarGroupCss from "@ui5/webcomponents/dist/generated/themes/AvatarGroup.css.js";
14
+ import UDExAvatar, { AvatarColorScheme, AvatarSize } from "./Avatar.js";
15
+ const avatarOffsets = {
16
+ [AvatarSize.XS]: {
17
+ [AvatarGroupType.Individual]: "0.0625rem",
18
+ [AvatarGroupType.Group]: "-0.75rem",
19
+ },
20
+ [AvatarSize.S]: {
21
+ [AvatarGroupType.Individual]: "0.125rem",
22
+ [AvatarGroupType.Group]: "-1.25rem",
23
+ },
24
+ [AvatarSize.M]: {
25
+ [AvatarGroupType.Individual]: "0.125rem",
26
+ [AvatarGroupType.Group]: "-1.625rem",
27
+ },
28
+ [AvatarSize.L]: {
29
+ [AvatarGroupType.Individual]: "0.125rem",
30
+ [AvatarGroupType.Group]: "-2rem",
31
+ },
32
+ [AvatarSize.XL]: {
33
+ [AvatarGroupType.Individual]: "0.25rem",
34
+ [AvatarGroupType.Group]: "-2.75rem",
35
+ },
36
+ };
37
+ /**
38
+ * @class
39
+ *
40
+ * <h3 class="comment-api-title">Overview</h3>
41
+ *
42
+ *
43
+ * <h3>Usage</h3>
44
+ *
45
+ * For the <code>udex-avatar-group</code>
46
+ * <h3>ES6 Module Import</h3>
47
+ *
48
+ * <code>import "@udex/web-components/dist/AvatarGroup.js";</code>
49
+ *
50
+ * @constructor
51
+ * @author SAP SE
52
+ * @extends AvatarGroup
53
+ * @public
54
+ */
55
+ let UDExAvatarGroup = class UDExAvatarGroup extends AvatarGroup {
56
+ constructor() {
57
+ super();
58
+ this._itemNavigation = new ItemNavigation(this, {
59
+ getItemsCallback: () => {
60
+ return this._isGroup
61
+ ? []
62
+ : this.items.slice(0, this._hiddenStartIndex).map(item => item.shadowRoot?.firstElementChild);
63
+ },
64
+ });
65
+ }
66
+ onEnterDOM() {
67
+ super.onEnterDOM();
68
+ const container = this.shadowRoot?.querySelector(".ui5-avatar-group-items");
69
+ container?.addEventListener("mouseenter", this._onHover.bind(this, true));
70
+ container?.addEventListener("mouseleave", this._onHover.bind(this, false));
71
+ }
72
+ onExitDOM() {
73
+ super.onExitDOM();
74
+ const container = this.shadowRoot?.querySelector(".ui5-avatar-group-items");
75
+ container?.removeEventListener("mouseenter", this._onHover.bind(this, true));
76
+ container?.removeEventListener("mouseleave", this._onHover.bind(this, false));
77
+ }
78
+ _onHover(hover) {
79
+ if (this._isGroup) {
80
+ this.items.every(avatar => {
81
+ avatar.toggleAttribute("hover", hover);
82
+ return !avatar.hidden;
83
+ });
84
+ }
85
+ }
86
+ _onfocusin(e) {
87
+ const targetItem = this._isGroup
88
+ ? e.currentTarget
89
+ : e.target.shadowRoot?.firstElementChild;
90
+ this._itemNavigation.setCurrentItem(targetItem);
91
+ }
92
+ _prepareAvatars() {
93
+ this._colorIndex = 0;
94
+ const visibleColors = Object.values(AvatarColorScheme);
95
+ let avatarInitials = "";
96
+ this.items.forEach((avatar, index) => {
97
+ if (++this._colorIndex > visibleColors.length - 3) {
98
+ this._colorIndex = 1;
99
+ }
100
+ avatar.interactive = !this._isGroup;
101
+ avatar.toggleAttribute("ui5-avatar", true);
102
+ avatarInitials += this._isGroup && avatar.hasAttribute("initials") && !avatar.shadowRoot?.firstElementChild?.hasAttribute("_has-image")
103
+ ? `${avatar.getAttribute("initials")} ` : "";
104
+ if (!avatar.getAttribute("color-scheme")) {
105
+ avatar.setAttribute("color-scheme", visibleColors[this._colorIndex]);
106
+ }
107
+ if (index !== this._itemsCount - 1 || this._customOverflowButton) {
108
+ avatar.style.marginInlineEnd = avatarOffsets[avatar.effectiveSize][this.type];
109
+ }
110
+ });
111
+ if (avatarInitials) {
112
+ this.shadowRoot?.querySelector(".ui5-avatar-group-items")?.setAttribute("aria-label", `${avatarInitials}${this._ariaLabelText}`);
113
+ }
114
+ }
115
+ };
116
+ UDExAvatarGroup = __decorate([
117
+ customElement({
118
+ tag: "udex-avatar-group",
119
+ renderer: litRender,
120
+ styles: [UI5AvatarGroupCss],
121
+ dependencies: [UDExAvatar],
122
+ })
123
+ ], UDExAvatarGroup);
124
+ UDExAvatarGroup.define();
125
+ export default UDExAvatarGroup;
126
+ //# sourceMappingURL=AvatarGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AvatarGroup.js","sourceRoot":"","sources":["../src/AvatarGroup.ts"],"names":[],"mappings":"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","sourcesContent":["import AvatarGroup, { IAvatarGroupItem } from \"@ui5/webcomponents/dist/AvatarGroup.js\";\nimport AvatarGroupType from \"@ui5/webcomponents/dist/types/AvatarGroupType.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\n// Styles\nimport UI5AvatarGroupCss from \"@ui5/webcomponents/dist/generated/themes/AvatarGroup.css.js\";\n\nimport UDExAvatar, { AvatarColorScheme, AvatarSize } from \"./Avatar.js\";\n\nconst avatarOffsets = {\n [AvatarSize.XS]: {\n [AvatarGroupType.Individual]: \"0.0625rem\",\n [AvatarGroupType.Group]: \"-0.75rem\",\n },\n [AvatarSize.S]: {\n [AvatarGroupType.Individual]: \"0.125rem\",\n [AvatarGroupType.Group]: \"-1.25rem\",\n },\n [AvatarSize.M]: {\n [AvatarGroupType.Individual]: \"0.125rem\",\n [AvatarGroupType.Group]: \"-1.625rem\",\n },\n [AvatarSize.L]: {\n [AvatarGroupType.Individual]: \"0.125rem\",\n [AvatarGroupType.Group]: \"-2rem\",\n },\n [AvatarSize.XL]: {\n [AvatarGroupType.Individual]: \"0.25rem\",\n [AvatarGroupType.Group]: \"-2.75rem\",\n },\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-avatar-group</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/AvatarGroup.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends AvatarGroup\n * @public\n */\n@customElement({\n tag: \"udex-avatar-group\",\n renderer: litRender,\n styles: [UI5AvatarGroupCss],\n dependencies: [UDExAvatar],\n})\n\nclass UDExAvatarGroup extends AvatarGroup {\n constructor() {\n super();\n\n this._itemNavigation = new ItemNavigation(this, {\n getItemsCallback: () => {\n return this._isGroup\n ? []\n : this.items.slice(0, this._hiddenStartIndex).map(\n item => item.shadowRoot?.firstElementChild as IAvatarGroupItem,\n );\n },\n });\n }\n onEnterDOM(): void {\n super.onEnterDOM();\n const container: HTMLElement = this.shadowRoot?.querySelector(\".ui5-avatar-group-items\") as HTMLElement;\n container?.addEventListener(\"mouseenter\", this._onHover.bind(this, true));\n container?.addEventListener(\"mouseleave\", this._onHover.bind(this, false));\n }\n\n onExitDOM(): void {\n super.onExitDOM();\n const container: HTMLElement = this.shadowRoot?.querySelector(\".ui5-avatar-group-items\") as HTMLElement;\n container?.removeEventListener(\"mouseenter\", this._onHover.bind(this, true));\n container?.removeEventListener(\"mouseleave\", this._onHover.bind(this, false));\n }\n\n _onHover(hover: boolean) {\n if (this._isGroup) {\n this.items.every(avatar => {\n avatar.toggleAttribute(\"hover\", hover);\n return !avatar.hidden;\n });\n }\n }\n\n _onfocusin(e: FocusEvent) {\n const targetItem = this._isGroup\n ? e.currentTarget\n : (e.target as HTMLElement).shadowRoot?.firstElementChild;\n this._itemNavigation.setCurrentItem(targetItem as IAvatarGroupItem);\n }\n\n _prepareAvatars() {\n this._colorIndex = 0;\n const visibleColors = Object.values(AvatarColorScheme);\n let avatarInitials = \"\";\n\n this.items.forEach((avatar, index) => {\n if (++this._colorIndex > visibleColors.length - 3) {\n this._colorIndex = 1;\n }\n avatar.interactive = !this._isGroup;\n avatar.toggleAttribute(\"ui5-avatar\", true);\n avatarInitials += this._isGroup && avatar.hasAttribute(\"initials\") && !avatar.shadowRoot?.firstElementChild?.hasAttribute(\"_has-image\")\n ? `${avatar.getAttribute(\"initials\")} ` : \"\";\n\n if (!avatar.getAttribute(\"color-scheme\")) {\n avatar.setAttribute(\"color-scheme\", visibleColors[this._colorIndex]);\n }\n\n if (index !== this._itemsCount - 1 || this._customOverflowButton) {\n avatar.style.marginInlineEnd = avatarOffsets[avatar.effectiveSize][this.type];\n }\n });\n\n if (avatarInitials) {\n this.shadowRoot?.querySelector(\".ui5-avatar-group-items\")?.setAttribute(\"aria-label\", `${avatarInitials}${this._ariaLabelText}`);\n }\n }\n}\n\nUDExAvatarGroup.define();\n\nexport default UDExAvatarGroup;\n"]}
@@ -1,6 +1,7 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import Popover from "@ui5/webcomponents/dist/Popover.js";
3
3
  import PopupAccessibleRole from "@ui5/webcomponents/dist/types/PopupAccessibleRole.js";
4
+ import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
4
5
  import { PlacementType, HorizontalAlign } from "./types/Dropdown.js";
5
6
  /**
6
7
  * @class
@@ -51,10 +52,16 @@ declare class UDExDropdown extends UI5Element {
51
52
  accessibleName: string;
52
53
  /**
53
54
  * Allows setting a custom role.
54
- * @default "Dialog"
55
+ * @default "None"
55
56
  * @public
56
57
  */
57
58
  accessibleRole: `${PopupAccessibleRole}`;
59
+ /**
60
+ * Allows setting a custom role for dropdown trigger.
61
+ * @default "combobox"
62
+ * @public
63
+ */
64
+ triggerAccessibleRole: string;
58
65
  /**
59
66
  * Defines the content of the Dropdown.
60
67
  *
@@ -103,6 +110,8 @@ declare class UDExDropdown extends UI5Element {
103
110
  * @private
104
111
  */
105
112
  _direction?: string;
113
+ static i18nBundle: I18nBundle;
114
+ static onDefine(): Promise<void>;
106
115
  onAfterRendering(): void;
107
116
  handleDirection(): void;
108
117
  getDropdownPane(): Popover;
@@ -128,5 +137,6 @@ declare class UDExDropdown extends UI5Element {
128
137
  get hasHeaderSlot(): boolean;
129
138
  get hasFooterSlot(): boolean;
130
139
  get disableAllowTargetOverlap(): boolean;
140
+ get triggerAccessibleName(): string;
131
141
  }
132
142
  export default UDExDropdown;
package/dist/Dropdown.js CHANGED
@@ -4,6 +4,7 @@ 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 UDExDropdown_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 slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
@@ -13,8 +14,10 @@ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
13
14
  import event from "@ui5/webcomponents-base/dist/decorators/event.js";
14
15
  import getEffectiveScrollbarStyle from "@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js";
15
16
  import PopupAccessibleRole from "@ui5/webcomponents/dist/types/PopupAccessibleRole.js";
17
+ import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
16
18
  import DropdownTemplate from "./generated/templates/DropdownTemplate.lit.js";
17
19
  import { PlacementType, HorizontalAlign } from "./types/Dropdown.js";
20
+ import { TRIGGER } from "./generated/i18n/i18n-defaults.js";
18
21
  // Styles
19
22
  import DropdownCss from "./generated/themes/Dropdown.css";
20
23
  /**
@@ -36,7 +39,10 @@ import DropdownCss from "./generated/themes/Dropdown.css";
36
39
  * @tagname udex-dropdown
37
40
  * @public
38
41
  */
39
- let UDExDropdown = class UDExDropdown extends UI5Element {
42
+ let UDExDropdown = UDExDropdown_1 = class UDExDropdown extends UI5Element {
43
+ static async onDefine() {
44
+ UDExDropdown_1.i18nBundle = await getI18nBundle("sap-ui-webcomponents-bundle");
45
+ }
40
46
  onAfterRendering() {
41
47
  this.handleDirection();
42
48
  }
@@ -119,6 +125,9 @@ let UDExDropdown = class UDExDropdown extends UI5Element {
119
125
  get disableAllowTargetOverlap() {
120
126
  return this.disableTargetOverlap?.toString() !== "true";
121
127
  }
128
+ get triggerAccessibleName() {
129
+ return UDExDropdown_1.i18nBundle.getText(TRIGGER);
130
+ }
122
131
  };
123
132
  __decorate([
124
133
  property({ type: String })
@@ -133,8 +142,11 @@ __decorate([
133
142
  property()
134
143
  ], UDExDropdown.prototype, "accessibleName", void 0);
135
144
  __decorate([
136
- property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.Dialog })
145
+ property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.None })
137
146
  ], UDExDropdown.prototype, "accessibleRole", void 0);
147
+ __decorate([
148
+ property({ type: String, defaultValue: "combobox" })
149
+ ], UDExDropdown.prototype, "triggerAccessibleRole", void 0);
138
150
  __decorate([
139
151
  slot({ type: HTMLElement, "default": true })
140
152
  ], UDExDropdown.prototype, "content", void 0);
@@ -156,7 +168,7 @@ __decorate([
156
168
  __decorate([
157
169
  property({ type: String })
158
170
  ], UDExDropdown.prototype, "_direction", void 0);
159
- UDExDropdown = __decorate([
171
+ UDExDropdown = UDExDropdown_1 = __decorate([
160
172
  customElement({
161
173
  tag: "udex-dropdown",
162
174
  renderer: litRender,
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.js","sourceRoot":"","sources":["../src/Dropdown.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 slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport getEffectiveScrollbarStyle from \"@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js\";\nimport PopupAccessibleRole from \"@ui5/webcomponents/dist/types/PopupAccessibleRole.js\";\nimport DropdownTemplate from \"./generated/templates/DropdownTemplate.lit.js\";\nimport { PlacementType, HorizontalAlign } from \"./types/Dropdown.js\";\n\n// Styles\nimport DropdownCss from \"./generated/themes/Dropdown.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-dropdown</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/Dropdown.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-dropdown\n * @public\n */\n@customElement({\n tag: \"udex-dropdown\",\n renderer: litRender,\n styles: [\n DropdownCss,\n getEffectiveScrollbarStyle(),\n ],\n template: DropdownTemplate,\n dependencies: [Popover],\n})\n\n/**\n * Fired event when the user clicks the trigger.\n *\n * @event sap.ui.webc.web-components.UDExDropdown#clickTrigger\n * @public\n */\n@event(\"click-trigger\")\n\n/**\n * Fired before the dropdown is opened.\n *\n * @event sap.ui.webc.web-components.UDExDropdown#beforeOpen\n * @public\n */\n@event(\"before-open\")\n\n/**\n * Fired after the dropdown is opened.\n *\n * @event sap.ui.webc.web-components.UDExDropdown#afterOpen\n * @public\n */\n@event(\"after-open\")\n\n/**\n * Fired before the menu is closed.\n *\n * @event sap.ui.webc.web-components.UDExDropdown#beforeClose\n * @public\n */\n@event(\"before-close\")\n\n/**\n * Fired after the menu is closed.\n *\n * @event sap.ui.webc.web-components.UDExDropdown#afterClose\n * @public\n */\n@event(\"after-close\")\nclass UDExDropdown extends UI5Element {\n /**\n * Allows control over the height.\n *\n * @public\n */\n @property({ type: String })\n height?: string;\n\n /**\n * Determines on which side the component is placed at.\n *\n * @default \"Bottom\"\n * @public\n */\n @property({ type: PlacementType, defaultValue: PlacementType.Bottom })\n placementType!: `${PlacementType}`;\n\n /**\n * Determines the horizontal alignment of the component.\n *\n * @default \"Left\"\n * @public\n */\n @property({ type: HorizontalAlign, defaultValue: HorizontalAlign.Left })\n horizontalAlign!: `${HorizontalAlign}`;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Allows setting a custom role.\n * @default \"Dialog\"\n * @public\n */\n @property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.Dialog })\n accessibleRole!: `${PopupAccessibleRole}`;\n\n /**\n * Defines the content of the Dropdown.\n *\n * @slot content\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n content!: Array<HTMLElement>;\n\n /**\n * Defines the header HTML Element.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n header!: Array<HTMLElement>;\n\n /**\n * Defines the footer HTML Element.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n footer!: Array<HTMLElement>;\n\n /**\n * Defines the trigger HTML Element.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n trigger!: Array<HTMLElement>;\n\n /**\n * Indicates if the dropdown pane is open\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n open!: boolean;\n\n /**\n * Determines if there is no enough space, the component can be placed\n * over the target.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disableTargetOverlap?: boolean;\n\n /**\n * Defines direction of the component.\n *\n * @private\n */\n @property({ type: String })\n _direction?: string;\n\n onAfterRendering() {\n this.handleDirection();\n }\n\n handleDirection() {\n const filterMenu = this.shadowRoot?.querySelector(\".udex-dropdown\");\n if (filterMenu) {\n const directionStyles: string = window\n .getComputedStyle(filterMenu)\n .getPropertyValue(\"direction\");\n if (!directionStyles) {\n this._direction = \"ltr\";\n } else {\n this._direction = directionStyles;\n }\n }\n }\n\n getDropdownPane() {\n return this.shadowRoot!.querySelector<Popover>(\"[ui5-popover]\")!;\n }\n\n getTrigger() {\n return this.querySelector<HTMLElement>(\"[slot=trigger]\")!;\n }\n\n onTriggerClick() {\n const dropdown = this.getDropdownPane();\n const opener = this.getTrigger();\n const isOpenerDisabled = opener.hasAttribute(\"disabled\");\n\n if (!isOpenerDisabled) {\n dropdown.showAt(opener);\n this.fireEvent(\"click-trigger\");\n }\n }\n\n /**\n * Open dropdown\n *\n * @public\n */\n onOpen(opener: HTMLElement): void {\n const dropdown = this.getDropdownPane();\n dropdown.showAt(opener);\n }\n\n /**\n * Close dropdown\n *\n * @public\n */\n onClose():void {\n const dropdown = this.getDropdownPane();\n dropdown.close(true);\n }\n\n afterDropdownClose() {\n this.open = false;\n this.fireEvent(\"after-close\");\n }\n\n afterDropdownOpen() {\n this.open = true;\n this.fireEvent(\"after-open\");\n }\n\n beforeDropdownOpen() {\n const dropdown = this.getDropdownPane();\n const hasContentHeight = !!this?.height?.length;\n\n if (hasContentHeight) {\n const content = dropdown.shadowRoot!.querySelector(\"[part=content]\") as HTMLElement;\n content.style.maxHeight = <string> this.height;\n }\n\n this.fireEvent(\"before-open\");\n }\n\n beforeDropdownClose() {\n this.fireEvent(\"before-close\");\n }\n\n get hasTriggerSlot(): boolean {\n return !!this.trigger.length;\n }\n\n get hasHeaderSlot(): boolean {\n return !!this.header.length;\n }\n\n get hasFooterSlot(): boolean {\n return !!this.footer.length;\n }\n\n get disableAllowTargetOverlap() {\n return this.disableTargetOverlap?.toString() !== \"true\";\n }\n}\n\nUDExDropdown.define();\n\nexport default UDExDropdown;\n"]}
1
+ {"version":3,"file":"Dropdown.js","sourceRoot":"","sources":["../src/Dropdown.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 slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport getEffectiveScrollbarStyle from \"@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js\";\nimport PopupAccessibleRole from \"@ui5/webcomponents/dist/types/PopupAccessibleRole.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport DropdownTemplate from \"./generated/templates/DropdownTemplate.lit.js\";\nimport { PlacementType, HorizontalAlign } from \"./types/Dropdown.js\";\nimport { TRIGGER } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport DropdownCss from \"./generated/themes/Dropdown.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-dropdown</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/Dropdown.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-dropdown\n * @public\n */\n@customElement({\n tag: \"udex-dropdown\",\n renderer: litRender,\n styles: [\n DropdownCss,\n getEffectiveScrollbarStyle(),\n ],\n template: DropdownTemplate,\n dependencies: [Popover],\n})\n\n/**\n * Fired event when the user clicks the trigger.\n *\n * @event sap.ui.webc.web-components.UDExDropdown#clickTrigger\n * @public\n */\n@event(\"click-trigger\")\n\n/**\n * Fired before the dropdown is opened.\n *\n * @event sap.ui.webc.web-components.UDExDropdown#beforeOpen\n * @public\n */\n@event(\"before-open\")\n\n/**\n * Fired after the dropdown is opened.\n *\n * @event sap.ui.webc.web-components.UDExDropdown#afterOpen\n * @public\n */\n@event(\"after-open\")\n\n/**\n * Fired before the menu is closed.\n *\n * @event sap.ui.webc.web-components.UDExDropdown#beforeClose\n * @public\n */\n@event(\"before-close\")\n\n/**\n * Fired after the menu is closed.\n *\n * @event sap.ui.webc.web-components.UDExDropdown#afterClose\n * @public\n */\n@event(\"after-close\")\nclass UDExDropdown extends UI5Element {\n /**\n * Allows control over the height.\n *\n * @public\n */\n @property({ type: String })\n height?: string;\n\n /**\n * Determines on which side the component is placed at.\n *\n * @default \"Bottom\"\n * @public\n */\n @property({ type: PlacementType, defaultValue: PlacementType.Bottom })\n placementType!: `${PlacementType}`;\n\n /**\n * Determines the horizontal alignment of the component.\n *\n * @default \"Left\"\n * @public\n */\n @property({ type: HorizontalAlign, defaultValue: HorizontalAlign.Left })\n horizontalAlign!: `${HorizontalAlign}`;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Allows setting a custom role.\n * @default \"None\"\n * @public\n */\n @property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.None })\n accessibleRole!: `${PopupAccessibleRole}`;\n\n /**\n * Allows setting a custom role for dropdown trigger.\n * @default \"combobox\"\n * @public\n */\n @property({ type: String, defaultValue: \"combobox\" })\n triggerAccessibleRole!: string;\n\n /**\n * Defines the content of the Dropdown.\n *\n * @slot content\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n content!: Array<HTMLElement>;\n\n /**\n * Defines the header HTML Element.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n header!: Array<HTMLElement>;\n\n /**\n * Defines the footer HTML Element.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n footer!: Array<HTMLElement>;\n\n /**\n * Defines the trigger HTML Element.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n trigger!: Array<HTMLElement>;\n\n /**\n * Indicates if the dropdown pane is open\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n open!: boolean;\n\n /**\n * Determines if there is no enough space, the component can be placed\n * over the target.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disableTargetOverlap?: boolean;\n\n /**\n * Defines direction of the component.\n *\n * @private\n */\n @property({ type: String })\n _direction?: string;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine(): Promise<void> {\n UDExDropdown.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n onAfterRendering() {\n this.handleDirection();\n }\n\n handleDirection() {\n const filterMenu = this.shadowRoot?.querySelector(\".udex-dropdown\");\n if (filterMenu) {\n const directionStyles: string = window\n .getComputedStyle(filterMenu)\n .getPropertyValue(\"direction\");\n if (!directionStyles) {\n this._direction = \"ltr\";\n } else {\n this._direction = directionStyles;\n }\n }\n }\n\n getDropdownPane() {\n return this.shadowRoot!.querySelector<Popover>(\"[ui5-popover]\")!;\n }\n\n getTrigger() {\n return this.querySelector<HTMLElement>(\"[slot=trigger]\")!;\n }\n\n onTriggerClick() {\n const dropdown = this.getDropdownPane();\n const opener = this.getTrigger();\n const isOpenerDisabled = opener.hasAttribute(\"disabled\");\n\n if (!isOpenerDisabled) {\n dropdown.showAt(opener);\n this.fireEvent(\"click-trigger\");\n }\n }\n\n /**\n * Open dropdown\n *\n * @public\n */\n onOpen(opener: HTMLElement): void {\n const dropdown = this.getDropdownPane();\n dropdown.showAt(opener);\n }\n\n /**\n * Close dropdown\n *\n * @public\n */\n onClose():void {\n const dropdown = this.getDropdownPane();\n dropdown.close(true);\n }\n\n afterDropdownClose() {\n this.open = false;\n this.fireEvent(\"after-close\");\n }\n\n afterDropdownOpen() {\n this.open = true;\n this.fireEvent(\"after-open\");\n }\n\n beforeDropdownOpen() {\n const dropdown = this.getDropdownPane();\n const hasContentHeight = !!this?.height?.length;\n\n if (hasContentHeight) {\n const content = dropdown.shadowRoot!.querySelector(\"[part=content]\") as HTMLElement;\n content.style.maxHeight = <string> this.height;\n }\n\n this.fireEvent(\"before-open\");\n }\n\n beforeDropdownClose() {\n this.fireEvent(\"before-close\");\n }\n\n get hasTriggerSlot(): boolean {\n return !!this.trigger.length;\n }\n\n get hasHeaderSlot(): boolean {\n return !!this.header.length;\n }\n\n get hasFooterSlot(): boolean {\n return !!this.footer.length;\n }\n\n get disableAllowTargetOverlap(): boolean {\n return this.disableTargetOverlap?.toString() !== \"true\";\n }\n\n get triggerAccessibleName(): string {\n return UDExDropdown.i18nBundle.getText(TRIGGER);\n }\n}\n\nUDExDropdown.define();\n\nexport default UDExDropdown;\n"]}
@@ -130,10 +130,16 @@ declare class UDExFilterMenu extends UDExSearchableListBase {
130
130
  accessibleName: string;
131
131
  /**
132
132
  * Allows setting a custom role.
133
- * @default "Dialog"
133
+ * @default "None"
134
134
  * @public
135
135
  */
136
136
  accessibleRole: `${PopupAccessibleRole}`;
137
+ /**
138
+ * Allows setting a custom role for dropdown trigger.
139
+ * @default "combobox"
140
+ * @public
141
+ */
142
+ triggerAccessibleRole: string;
137
143
  _dropdown: UDExDropdown;
138
144
  _search: UDExSearch;
139
145
  _hasFooterButtons: boolean;
@@ -244,8 +244,11 @@ __decorate([
244
244
  property()
245
245
  ], UDExFilterMenu.prototype, "accessibleName", void 0);
246
246
  __decorate([
247
- property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.Dialog })
247
+ property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.None })
248
248
  ], UDExFilterMenu.prototype, "accessibleRole", void 0);
249
+ __decorate([
250
+ property({ type: String, defaultValue: "combobox" })
251
+ ], UDExFilterMenu.prototype, "triggerAccessibleRole", void 0);
249
252
  UDExFilterMenu = UDExFilterMenu_1 = __decorate([
250
253
  customElement({
251
254
  tag: "udex-filter-menu",