@sapudex/web-components 0.117.1 → 0.138.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (536) hide show
  1. package/bundle.esm.js +5 -0
  2. package/config/wdio.conf.js +19 -8
  3. package/dist/Accordion.d.ts +1 -1
  4. package/dist/Accordion.js +1 -1
  5. package/dist/Accordion.js.map +1 -1
  6. package/dist/AccordionItem.d.ts +3 -2
  7. package/dist/AccordionItem.js +4 -4
  8. package/dist/AccordionItem.js.map +1 -1
  9. package/dist/Avatar.d.ts +12 -0
  10. package/dist/Avatar.js +22 -1
  11. package/dist/Avatar.js.map +1 -1
  12. package/dist/AvatarGroup.d.ts +28 -0
  13. package/dist/AvatarGroup.js +126 -0
  14. package/dist/AvatarGroup.js.map +1 -0
  15. package/dist/Checkbox.d.ts +1 -1
  16. package/dist/Checkbox.js +1 -1
  17. package/dist/Checkbox.js.map +1 -1
  18. package/dist/CountrySelector.d.ts +24 -6
  19. package/dist/CountrySelector.js +25 -7
  20. package/dist/CountrySelector.js.map +1 -1
  21. package/dist/DatePicker.d.ts +1 -0
  22. package/dist/DatePicker.js +4 -1
  23. package/dist/DatePicker.js.map +1 -1
  24. package/dist/Dropdown.d.ts +12 -2
  25. package/dist/Dropdown.js +18 -6
  26. package/dist/Dropdown.js.map +1 -1
  27. package/dist/FilterMenu.d.ts +26 -6
  28. package/dist/FilterMenu.js +61 -21
  29. package/dist/FilterMenu.js.map +1 -1
  30. package/dist/Footer.d.ts +36 -1
  31. package/dist/Footer.js +35 -37
  32. package/dist/Footer.js.map +1 -1
  33. package/dist/HeroBanner.js +3 -0
  34. package/dist/HeroBanner.js.map +1 -1
  35. package/dist/Link.d.ts +1 -1
  36. package/dist/Link.js +1 -1
  37. package/dist/Link.js.map +1 -1
  38. package/dist/List.d.ts +1 -1
  39. package/dist/List.js +17 -1
  40. package/dist/List.js.map +1 -1
  41. package/dist/ListGroupHeader.d.ts +2 -2
  42. package/dist/ListGroupHeader.js +2 -2
  43. package/dist/ListGroupHeader.js.map +1 -1
  44. package/dist/ListItem.d.ts +3 -3
  45. package/dist/ListItem.js +6 -7
  46. package/dist/ListItem.js.map +1 -1
  47. package/dist/ListSelectAll.d.ts +1 -1
  48. package/dist/ListSelectAll.js +1 -1
  49. package/dist/ListSelectAll.js.map +1 -1
  50. package/dist/MastheadItem.d.ts +10 -1
  51. package/dist/MastheadItem.js +29 -18
  52. package/dist/MastheadItem.js.map +1 -1
  53. package/dist/MastheadMenu.d.ts +5 -0
  54. package/dist/MastheadMenu.js +24 -0
  55. package/dist/MastheadMenu.js.map +1 -1
  56. package/dist/MastheadMenuItem.d.ts +2 -3
  57. package/dist/MastheadMenuItem.js +2 -17
  58. package/dist/MastheadMenuItem.js.map +1 -1
  59. package/dist/MastheadMobileMenu.d.ts +25 -5
  60. package/dist/MastheadMobileMenu.js +135 -21
  61. package/dist/MastheadMobileMenu.js.map +1 -1
  62. package/dist/MastheadProfileMenu.d.ts +13 -4
  63. package/dist/MastheadProfileMenu.js +40 -9
  64. package/dist/MastheadProfileMenu.js.map +1 -1
  65. package/dist/MastheadShell.d.ts +11 -0
  66. package/dist/MastheadShell.js +52 -8
  67. package/dist/MastheadShell.js.map +1 -1
  68. package/dist/MediaPlayer.d.ts +3 -3
  69. package/dist/MediaPlayer.js +115 -25
  70. package/dist/MediaPlayer.js.map +1 -1
  71. package/dist/MessageStrip.js +1 -1
  72. package/dist/MessageStrip.js.map +1 -1
  73. package/dist/Pagination.d.ts +3 -0
  74. package/dist/Pagination.js +16 -4
  75. package/dist/Pagination.js.map +1 -1
  76. package/dist/PasswordField.d.ts +14 -4
  77. package/dist/PasswordField.js +24 -15
  78. package/dist/PasswordField.js.map +1 -1
  79. package/dist/PhoneNumberField.d.ts +32 -0
  80. package/dist/PhoneNumberField.js +51 -2
  81. package/dist/PhoneNumberField.js.map +1 -1
  82. package/dist/RatingBar.d.ts +53 -0
  83. package/dist/RatingBar.js +96 -0
  84. package/dist/RatingBar.js.map +1 -0
  85. package/dist/Review.d.ts +71 -0
  86. package/dist/Review.js +108 -0
  87. package/dist/Review.js.map +1 -0
  88. package/dist/ReviewItem.d.ts +105 -0
  89. package/dist/ReviewItem.js +157 -0
  90. package/dist/ReviewItem.js.map +1 -0
  91. package/dist/Search.d.ts +64 -2
  92. package/dist/Search.js +62 -8
  93. package/dist/Search.js.map +1 -1
  94. package/dist/SearchableListBase.d.ts +1 -1
  95. package/dist/SearchableListBase.js +1 -1
  96. package/dist/SearchableListBase.js.map +1 -1
  97. package/dist/SecondaryNavigation.d.ts +9 -8
  98. package/dist/SecondaryNavigation.js +59 -46
  99. package/dist/SecondaryNavigation.js.map +1 -1
  100. package/dist/SecondaryNavigationItem.d.ts +1 -1
  101. package/dist/SecondaryNavigationItem.js +15 -5
  102. package/dist/SecondaryNavigationItem.js.map +1 -1
  103. package/dist/SecondaryNavigationItemBase.d.ts +16 -2
  104. package/dist/SecondaryNavigationItemBase.js +27 -1
  105. package/dist/SecondaryNavigationItemBase.js.map +1 -1
  106. package/dist/SecondaryNavigationSubItem.d.ts +2 -1
  107. package/dist/SecondaryNavigationSubItem.js +5 -2
  108. package/dist/SecondaryNavigationSubItem.js.map +1 -1
  109. package/dist/SelectBox.d.ts +33 -9
  110. package/dist/SelectBox.js +121 -60
  111. package/dist/SelectBox.js.map +1 -1
  112. package/dist/StatusBadge.d.ts +5 -5
  113. package/dist/StatusBadge.js.map +1 -1
  114. package/dist/Switch.d.ts +20 -0
  115. package/dist/Switch.js +22 -0
  116. package/dist/Switch.js.map +1 -1
  117. package/dist/Tab.d.ts +9 -1
  118. package/dist/Tab.js +4 -1
  119. package/dist/Tab.js.map +1 -1
  120. package/dist/TabNavigation.d.ts +21 -21
  121. package/dist/TabNavigation.js +83 -102
  122. package/dist/TabNavigation.js.map +1 -1
  123. package/dist/Tag.d.ts +22 -7
  124. package/dist/Tag.js +52 -21
  125. package/dist/Tag.js.map +1 -1
  126. package/dist/TagGroup.d.ts +94 -0
  127. package/dist/TagGroup.js +174 -0
  128. package/dist/TagGroup.js.map +1 -0
  129. package/dist/TextArea.d.ts +14 -1
  130. package/dist/TextArea.js +18 -0
  131. package/dist/TextArea.js.map +1 -1
  132. package/dist/TextField.d.ts +32 -13
  133. package/dist/TextField.js +32 -2
  134. package/dist/TextField.js.map +1 -1
  135. package/dist/Tooltip.d.ts +3 -3
  136. package/dist/Tooltip.js +4 -4
  137. package/dist/Tooltip.js.map +1 -1
  138. package/dist/assets/bundle.esm-bb1c7413.js +316 -0
  139. package/dist/assets/messagebundle_en-c677773a.js +1 -0
  140. package/dist/assets/parameters-bundle.css-c897ae23.js +2 -0
  141. package/dist/assets/video.es-60bfb78c.js +228 -0
  142. package/dist/css/themes/AccordionItem.css +1 -1
  143. package/dist/css/themes/Avatar.css +1 -1
  144. package/dist/css/themes/Badge.css +1 -1
  145. package/dist/css/themes/CountrySelector.css +1 -1
  146. package/dist/css/themes/Divider.css +1 -1
  147. package/dist/css/themes/FilterMenu.css +1 -1
  148. package/dist/css/themes/Footer.css +1 -1
  149. package/dist/css/themes/HeroBanner.css +1 -1
  150. package/dist/css/themes/ListItem.css +1 -1
  151. package/dist/css/themes/MastheadItem.css +1 -1
  152. package/dist/css/themes/MastheadMobileMenu.css +1 -1
  153. package/dist/css/themes/MastheadShell.css +1 -1
  154. package/dist/css/themes/Modal.css +1 -1
  155. package/dist/css/themes/Pagination.css +1 -1
  156. package/dist/css/themes/PhoneNumberField.css +1 -1
  157. package/dist/css/themes/RatingBar.css +1 -0
  158. package/dist/css/themes/RatingIndicator.css +1 -1
  159. package/dist/css/themes/Review.css +1 -0
  160. package/dist/css/themes/ReviewItem.css +1 -0
  161. package/dist/css/themes/Search.css +1 -1
  162. package/dist/css/themes/SecondaryNavigation.css +1 -1
  163. package/dist/css/themes/SecondaryNavigationItem.css +1 -1
  164. package/dist/css/themes/SecondaryNavigationSubItem.css +1 -1
  165. package/dist/css/themes/SelectBox.css +1 -1
  166. package/dist/css/themes/Slider.css +1 -1
  167. package/dist/css/themes/StepInput.css +1 -1
  168. package/dist/css/themes/TabNavigation.css +1 -1
  169. package/dist/css/themes/Tag.css +1 -1
  170. package/dist/css/themes/TagGroup.css +1 -0
  171. package/dist/css/themes/TextArea.css +1 -1
  172. package/dist/css/themes/TextField.css +1 -1
  173. package/dist/css/themes/Toast.css +1 -1
  174. package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +1 -1
  175. package/dist/custom-elements-internal.json +1435 -444
  176. package/dist/custom-elements.json +1267 -358
  177. package/dist/data/CountryListISO3166.js +162 -162
  178. package/dist/data/CountryListISO3166.js.map +1 -1
  179. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  180. package/dist/generated/assets/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.json +1 -1
  181. package/dist/generated/i18n/i18n-defaults.d.ts +11 -1
  182. package/dist/generated/i18n/i18n-defaults.js +18 -8
  183. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  184. package/dist/generated/templates/AccordionItemTemplate.lit.js +1 -1
  185. package/dist/generated/templates/AccordionItemTemplate.lit.js.map +1 -1
  186. package/dist/generated/templates/CountrySelectorTemplate.lit.js +3 -3
  187. package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
  188. package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
  189. package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
  190. package/dist/generated/templates/DropdownTemplate.lit.js +2 -2
  191. package/dist/generated/templates/DropdownTemplate.lit.js.map +1 -1
  192. package/dist/generated/templates/FilterMenuTemplate.lit.js +1 -1
  193. package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
  194. package/dist/generated/templates/FooterTemplate.lit.js +26 -28
  195. package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
  196. package/dist/generated/templates/HeroBannerTemplate.lit.js +7 -7
  197. package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
  198. package/dist/generated/templates/ListItemTemplate.lit.js +6 -6
  199. package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
  200. package/dist/generated/templates/ListSelectAllTemplate.lit.js +1 -1
  201. package/dist/generated/templates/ListSelectAllTemplate.lit.js.map +1 -1
  202. package/dist/generated/templates/MastheadItemTemplate.lit.js +3 -3
  203. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
  204. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js +1 -1
  205. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +1 -1
  206. package/dist/generated/templates/MastheadMenuTemplate.lit.js +2 -2
  207. package/dist/generated/templates/MastheadMenuTemplate.lit.js.map +1 -1
  208. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +16 -12
  209. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
  210. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js +2 -2
  211. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js.map +1 -1
  212. package/dist/generated/templates/MastheadShellTemplate.lit.js +8 -8
  213. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  214. package/dist/generated/templates/MediaPlayerTemplate.lit.js +2 -2
  215. package/dist/generated/templates/MediaPlayerTemplate.lit.js.map +1 -1
  216. package/dist/generated/templates/PaginationTemplate.lit.js +1 -1
  217. package/dist/generated/templates/PaginationTemplate.lit.js.map +1 -1
  218. package/dist/generated/templates/PasswordFieldTemplate.lit.js +1 -2
  219. package/dist/generated/templates/PasswordFieldTemplate.lit.js.map +1 -1
  220. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +6 -3
  221. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
  222. package/dist/generated/templates/RatingBarTemplate.lit.d.ts +4 -0
  223. package/dist/generated/templates/RatingBarTemplate.lit.js +6 -0
  224. package/dist/generated/templates/RatingBarTemplate.lit.js.map +1 -0
  225. package/dist/generated/templates/ReviewItemTemplate.lit.d.ts +4 -0
  226. package/dist/generated/templates/ReviewItemTemplate.lit.js +8 -0
  227. package/dist/generated/templates/ReviewItemTemplate.lit.js.map +1 -0
  228. package/dist/generated/templates/ReviewTemplate.lit.d.ts +4 -0
  229. package/dist/generated/templates/ReviewTemplate.lit.js +10 -0
  230. package/dist/generated/templates/ReviewTemplate.lit.js.map +1 -0
  231. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +1 -1
  232. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +1 -1
  233. package/dist/generated/templates/SearchTemplate.lit.js +7 -7
  234. package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
  235. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +3 -3
  236. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -1
  237. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +5 -4
  238. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +1 -1
  239. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +7 -6
  240. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  241. package/dist/generated/templates/SelectBoxTemplate.lit.js +2 -2
  242. package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
  243. package/dist/generated/templates/SwitchTemplate.lit.js +2 -2
  244. package/dist/generated/templates/SwitchTemplate.lit.js.map +1 -1
  245. package/dist/generated/templates/TabHeaderTemplate.lit.js +2 -2
  246. package/dist/generated/templates/TabHeaderTemplate.lit.js.map +1 -1
  247. package/dist/generated/templates/TabInOverflowTemplate.lit.js +6 -6
  248. package/dist/generated/templates/TabInOverflowTemplate.lit.js.map +1 -1
  249. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js +1 -1
  250. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js.map +1 -1
  251. package/dist/generated/templates/TabNavigationTemplate.lit.js +4 -2
  252. package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
  253. package/dist/generated/templates/TagGroupTemplate.lit.d.ts +4 -0
  254. package/dist/generated/templates/TagGroupTemplate.lit.js +8 -0
  255. package/dist/generated/templates/TagGroupTemplate.lit.js.map +1 -0
  256. package/dist/generated/templates/TagTemplate.lit.js +13 -3
  257. package/dist/generated/templates/TagTemplate.lit.js.map +1 -1
  258. package/dist/generated/templates/TextAreaTemplate.lit.js +1 -1
  259. package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
  260. package/dist/generated/templates/TextFieldTemplate.lit.js +2 -2
  261. package/dist/generated/templates/TextFieldTemplate.lit.js.map +1 -1
  262. package/dist/generated/templates/TooltipTemplate.lit.js +1 -1
  263. package/dist/generated/templates/TooltipTemplate.lit.js.map +1 -1
  264. package/dist/generated/themes/AccordionItem.css.js +1 -1
  265. package/dist/generated/themes/AccordionItem.css.js.map +1 -1
  266. package/dist/generated/themes/Avatar.css.js +1 -1
  267. package/dist/generated/themes/Avatar.css.js.map +1 -1
  268. package/dist/generated/themes/Badge.css.js +1 -1
  269. package/dist/generated/themes/Badge.css.js.map +1 -1
  270. package/dist/generated/themes/CountrySelector.css.js +1 -1
  271. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  272. package/dist/generated/themes/Divider.css.js +1 -1
  273. package/dist/generated/themes/Divider.css.js.map +1 -1
  274. package/dist/generated/themes/FilterMenu.css.js +1 -1
  275. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  276. package/dist/generated/themes/Footer.css.js +1 -1
  277. package/dist/generated/themes/Footer.css.js.map +1 -1
  278. package/dist/generated/themes/HeroBanner.css.js +1 -1
  279. package/dist/generated/themes/HeroBanner.css.js.map +1 -1
  280. package/dist/generated/themes/ListItem.css.js +1 -1
  281. package/dist/generated/themes/ListItem.css.js.map +1 -1
  282. package/dist/generated/themes/MastheadItem.css.js +1 -1
  283. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  284. package/dist/generated/themes/MastheadMobileMenu.css.js +1 -1
  285. package/dist/generated/themes/MastheadMobileMenu.css.js.map +1 -1
  286. package/dist/generated/themes/MastheadShell.css.js +1 -1
  287. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  288. package/dist/generated/themes/Modal.css.js +1 -1
  289. package/dist/generated/themes/Modal.css.js.map +1 -1
  290. package/dist/generated/themes/Pagination.css.js +1 -1
  291. package/dist/generated/themes/Pagination.css.js.map +1 -1
  292. package/dist/generated/themes/PhoneNumberField.css.js +1 -1
  293. package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
  294. package/dist/generated/themes/RatingBar.css.js +9 -0
  295. package/dist/generated/themes/RatingBar.css.js.map +1 -0
  296. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  297. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  298. package/dist/generated/themes/Review.css.d.ts +3 -0
  299. package/dist/generated/themes/Review.css.js +9 -0
  300. package/dist/generated/themes/Review.css.js.map +1 -0
  301. package/dist/generated/themes/ReviewItem.css.d.ts +3 -0
  302. package/dist/generated/themes/ReviewItem.css.js +9 -0
  303. package/dist/generated/themes/ReviewItem.css.js.map +1 -0
  304. package/dist/generated/themes/Search.css.js +1 -1
  305. package/dist/generated/themes/Search.css.js.map +1 -1
  306. package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
  307. package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
  308. package/dist/generated/themes/SecondaryNavigationItem.css.js +1 -1
  309. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
  310. package/dist/generated/themes/SecondaryNavigationSubItem.css.js +1 -1
  311. package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -1
  312. package/dist/generated/themes/SelectBox.css.js +1 -1
  313. package/dist/generated/themes/SelectBox.css.js.map +1 -1
  314. package/dist/generated/themes/Slider.css.js +1 -1
  315. package/dist/generated/themes/Slider.css.js.map +1 -1
  316. package/dist/generated/themes/StepInput.css.js +1 -1
  317. package/dist/generated/themes/StepInput.css.js.map +1 -1
  318. package/dist/generated/themes/TabNavigation.css.js +1 -1
  319. package/dist/generated/themes/TabNavigation.css.js.map +1 -1
  320. package/dist/generated/themes/Tag.css.js +1 -1
  321. package/dist/generated/themes/Tag.css.js.map +1 -1
  322. package/dist/generated/themes/TagGroup.css.d.ts +3 -0
  323. package/dist/generated/themes/TagGroup.css.js +9 -0
  324. package/dist/generated/themes/TagGroup.css.js.map +1 -0
  325. package/dist/generated/themes/TextArea.css.js +1 -1
  326. package/dist/generated/themes/TextArea.css.js.map +1 -1
  327. package/dist/generated/themes/TextField.css.js +1 -1
  328. package/dist/generated/themes/TextField.css.js.map +1 -1
  329. package/dist/generated/themes/Toast.css.js +1 -1
  330. package/dist/generated/themes/Toast.css.js.map +1 -1
  331. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js +1 -1
  332. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js.map +1 -1
  333. package/dist/i18n/messagebundle.properties +35 -7
  334. package/dist/i18n/messagebundle_en.properties +17 -7
  335. package/dist/vscode.html-custom-data.json +260 -95
  336. package/dist/web-types.json +605 -183
  337. package/package.json +9 -9
  338. package/src/Accordion.ts +1 -1
  339. package/src/AccordionItem.hbs +1 -4
  340. package/src/AccordionItem.ts +6 -5
  341. package/src/Avatar.ts +24 -1
  342. package/src/AvatarGroup.ts +135 -0
  343. package/src/Checkbox.ts +1 -1
  344. package/src/CountrySelector.hbs +19 -15
  345. package/src/CountrySelector.ts +42 -9
  346. package/src/DatePicker.hbs +7 -9
  347. package/src/DatePicker.ts +14 -10
  348. package/src/Dropdown.hbs +8 -2
  349. package/src/Dropdown.ts +27 -6
  350. package/src/FilterMenu.hbs +58 -56
  351. package/src/FilterMenu.ts +101 -39
  352. package/src/Footer.hbs +21 -37
  353. package/src/Footer.ts +74 -52
  354. package/src/HeroBanner.hbs +22 -15
  355. package/src/HeroBanner.ts +3 -0
  356. package/src/Link.ts +1 -1
  357. package/src/List.ts +43 -23
  358. package/src/ListGroupHeader.ts +2 -2
  359. package/src/ListItem.hbs +4 -2
  360. package/src/ListItem.ts +8 -10
  361. package/src/ListSelectAll.hbs +1 -1
  362. package/src/ListSelectAll.ts +1 -1
  363. package/src/MastheadItem.hbs +7 -5
  364. package/src/MastheadItem.ts +44 -11
  365. package/src/MastheadMenu.hbs +4 -2
  366. package/src/MastheadMenu.ts +30 -0
  367. package/src/MastheadMenuItem.hbs +0 -2
  368. package/src/MastheadMenuItem.ts +2 -16
  369. package/src/MastheadMobileMenu.hbs +36 -10
  370. package/src/MastheadMobileMenu.ts +162 -22
  371. package/src/MastheadProfileMenu.hbs +6 -2
  372. package/src/MastheadProfileMenu.ts +66 -20
  373. package/src/MastheadShell.hbs +14 -4
  374. package/src/MastheadShell.ts +67 -8
  375. package/src/MediaPlayer.hbs +1 -3
  376. package/src/MediaPlayer.ts +122 -26
  377. package/src/MessageStrip.ts +1 -1
  378. package/src/Pagination.hbs +4 -2
  379. package/src/Pagination.ts +19 -4
  380. package/src/PasswordField.hbs +6 -17
  381. package/src/PasswordField.ts +31 -23
  382. package/src/PhoneNumberField.hbs +26 -6
  383. package/src/PhoneNumberField.ts +77 -2
  384. package/src/RatingBar.hbs +11 -0
  385. package/src/RatingBar.ts +113 -0
  386. package/src/Review.hbs +44 -0
  387. package/src/Review.ts +140 -0
  388. package/src/ReviewItem.hbs +20 -0
  389. package/src/ReviewItem.ts +227 -0
  390. package/src/Search.hbs +19 -14
  391. package/src/Search.ts +113 -6
  392. package/src/SearchSuggestions.hbs +1 -0
  393. package/src/SearchableListBase.ts +1 -1
  394. package/src/SecondaryNavigation.hbs +14 -8
  395. package/src/SecondaryNavigation.ts +76 -56
  396. package/src/SecondaryNavigationItem.hbs +3 -2
  397. package/src/SecondaryNavigationItem.ts +15 -5
  398. package/src/SecondaryNavigationItemBase.ts +41 -3
  399. package/src/SecondaryNavigationSubItem.hbs +13 -10
  400. package/src/SecondaryNavigationSubItem.ts +6 -2
  401. package/src/SelectBox.hbs +84 -83
  402. package/src/SelectBox.ts +155 -72
  403. package/src/StatusBadge.ts +2 -2
  404. package/src/Switch.hbs +3 -3
  405. package/src/Switch.ts +25 -0
  406. package/src/Tab.ts +11 -1
  407. package/src/TabHeader.hbs +3 -1
  408. package/src/TabInOverflow.hbs +19 -6
  409. package/src/TabNavigation.hbs +22 -12
  410. package/src/TabNavigation.ts +93 -117
  411. package/src/TabNavigationPopover.hbs +1 -0
  412. package/src/Tag.hbs +76 -26
  413. package/src/Tag.ts +77 -36
  414. package/src/TagGroup.hbs +48 -0
  415. package/src/TagGroup.ts +222 -0
  416. package/src/TextArea.hbs +36 -34
  417. package/src/TextArea.ts +28 -0
  418. package/src/TextField.hbs +45 -39
  419. package/src/TextField.ts +73 -17
  420. package/src/Tooltip.hbs +2 -2
  421. package/src/Tooltip.ts +5 -5
  422. package/src/data/CountryListISO3166.ts +162 -162
  423. package/src/generated/i18n/i18n-defaults.ts +2 -2
  424. package/src/generated/templates/AccordionItemTemplate.lit.ts +1 -1
  425. package/src/generated/templates/CountrySelectorTemplate.lit.ts +3 -3
  426. package/src/generated/templates/DatePickerTemplate.lit.ts +1 -1
  427. package/src/generated/templates/DropdownTemplate.lit.ts +2 -2
  428. package/src/generated/templates/FilterMenuTemplate.lit.ts +1 -1
  429. package/src/generated/templates/FooterTemplate.lit.ts +26 -28
  430. package/src/generated/templates/HeroBannerTemplate.lit.ts +7 -7
  431. package/src/generated/templates/ListItemTemplate.lit.ts +6 -6
  432. package/src/generated/templates/ListSelectAllTemplate.lit.ts +1 -1
  433. package/src/generated/templates/MastheadItemTemplate.lit.ts +3 -3
  434. package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +1 -1
  435. package/src/generated/templates/MastheadMenuTemplate.lit.ts +2 -2
  436. package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +16 -12
  437. package/src/generated/templates/MastheadProfileMenuTemplate.lit.ts +2 -2
  438. package/src/generated/templates/MastheadShellTemplate.lit.ts +8 -8
  439. package/src/generated/templates/MediaPlayerTemplate.lit.ts +2 -2
  440. package/src/generated/templates/PaginationTemplate.lit.ts +1 -1
  441. package/src/generated/templates/PasswordFieldTemplate.lit.ts +1 -2
  442. package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +6 -3
  443. package/src/generated/templates/RatingBarTemplate.lit.ts +11 -0
  444. package/src/generated/templates/ReviewItemTemplate.lit.ts +13 -0
  445. package/src/generated/templates/ReviewTemplate.lit.ts +15 -0
  446. package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +1 -1
  447. package/src/generated/templates/SearchTemplate.lit.ts +7 -7
  448. package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +3 -3
  449. package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +5 -4
  450. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +7 -6
  451. package/src/generated/templates/SelectBoxTemplate.lit.ts +2 -2
  452. package/src/generated/templates/SwitchTemplate.lit.ts +2 -2
  453. package/src/generated/templates/TabHeaderTemplate.lit.ts +2 -2
  454. package/src/generated/templates/TabInOverflowTemplate.lit.ts +6 -6
  455. package/src/generated/templates/TabNavigationPopoverTemplate.lit.ts +1 -1
  456. package/src/generated/templates/TabNavigationTemplate.lit.ts +4 -2
  457. package/src/generated/templates/TagGroupTemplate.lit.ts +13 -0
  458. package/src/generated/templates/TagTemplate.lit.ts +13 -3
  459. package/src/generated/templates/TextAreaTemplate.lit.ts +1 -1
  460. package/src/generated/templates/TextFieldTemplate.lit.ts +2 -2
  461. package/src/generated/templates/TooltipTemplate.lit.ts +1 -1
  462. package/src/generated/themes/AccordionItem.css.ts +1 -1
  463. package/src/generated/themes/Avatar.css.ts +1 -1
  464. package/src/generated/themes/Badge.css.ts +1 -1
  465. package/src/generated/themes/CountrySelector.css.ts +1 -1
  466. package/src/generated/themes/Divider.css.ts +1 -1
  467. package/src/generated/themes/FilterMenu.css.ts +1 -1
  468. package/src/generated/themes/Footer.css.ts +1 -1
  469. package/src/generated/themes/HeroBanner.css.ts +1 -1
  470. package/src/generated/themes/ListItem.css.ts +1 -1
  471. package/src/generated/themes/MastheadItem.css.ts +1 -1
  472. package/src/generated/themes/MastheadMobileMenu.css.ts +1 -1
  473. package/src/generated/themes/MastheadShell.css.ts +1 -1
  474. package/src/generated/themes/Modal.css.ts +1 -1
  475. package/src/generated/themes/Pagination.css.ts +1 -1
  476. package/src/generated/themes/PhoneNumberField.css.ts +1 -1
  477. package/src/generated/themes/RatingBar.css.ts +13 -0
  478. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  479. package/src/generated/themes/Review.css.ts +13 -0
  480. package/src/generated/themes/ReviewItem.css.ts +13 -0
  481. package/src/generated/themes/Search.css.ts +1 -1
  482. package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
  483. package/src/generated/themes/SecondaryNavigationItem.css.ts +1 -1
  484. package/src/generated/themes/SecondaryNavigationSubItem.css.ts +1 -1
  485. package/src/generated/themes/SelectBox.css.ts +1 -1
  486. package/src/generated/themes/Slider.css.ts +1 -1
  487. package/src/generated/themes/StepInput.css.ts +1 -1
  488. package/src/generated/themes/TabNavigation.css.ts +1 -1
  489. package/src/generated/themes/Tag.css.ts +1 -1
  490. package/src/generated/themes/TagGroup.css.ts +13 -0
  491. package/src/generated/themes/TextArea.css.ts +1 -1
  492. package/src/generated/themes/TextField.css.ts +1 -1
  493. package/src/generated/themes/Toast.css.ts +1 -1
  494. package/src/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +1 -1
  495. package/src/i18n/messagebundle.properties +35 -7
  496. package/src/i18n/messagebundle_en.properties +17 -7
  497. package/src/themes/AccordionItem.css +6 -4
  498. package/src/themes/Avatar.css +24 -7
  499. package/src/themes/Badge.css +1 -1
  500. package/src/themes/CountrySelector.css +49 -26
  501. package/src/themes/Divider.css +6 -2
  502. package/src/themes/FilterMenu.css +52 -15
  503. package/src/themes/Footer.css +93 -168
  504. package/src/themes/HeroBanner.css +52 -24
  505. package/src/themes/ListItem.css +4 -0
  506. package/src/themes/MastheadItem.css +12 -2
  507. package/src/themes/MastheadMobileMenu.css +4 -0
  508. package/src/themes/MastheadShell.css +25 -29
  509. package/src/themes/Modal.css +6 -0
  510. package/src/themes/Pagination.css +7 -0
  511. package/src/themes/PhoneNumberField.css +15 -1
  512. package/src/themes/RatingBar.css +52 -0
  513. package/src/themes/Review.css +196 -0
  514. package/src/themes/ReviewItem.css +121 -0
  515. package/src/themes/Search.css +46 -25
  516. package/src/themes/SecondaryNavigation.css +41 -13
  517. package/src/themes/SecondaryNavigationItem.css +6 -4
  518. package/src/themes/SecondaryNavigationSubItem.css +5 -5
  519. package/src/themes/SelectBox.css +51 -24
  520. package/src/themes/StepInput.css +5 -2
  521. package/src/themes/TabNavigation.css +7 -1
  522. package/src/themes/Tag.css +200 -148
  523. package/src/themes/TagGroup.css +90 -0
  524. package/src/themes/TextArea.css +13 -0
  525. package/src/themes/TextField.css +97 -60
  526. package/src/themes/Toast.css +4 -0
  527. package/dist/assets/bundle.esm-f65ae7da.js +0 -315
  528. package/dist/assets/messagebundle_en-7249941b.js +0 -1
  529. package/dist/assets/parameters-bundle.css-76ef62fa.js +0 -2
  530. package/dist/assets/video.es-17aecf95.js +0 -219
  531. package/dist/css/themes/PasswordField.css +0 -1
  532. package/dist/generated/themes/PasswordField.css.js +0 -9
  533. package/dist/generated/themes/PasswordField.css.js.map +0 -1
  534. package/src/generated/themes/PasswordField.css.ts +0 -13
  535. package/src/themes/PasswordField.css +0 -29
  536. /package/dist/generated/themes/{PasswordField.css.d.ts → RatingBar.css.d.ts} +0 -0
package/src/Dropdown.ts CHANGED
@@ -7,8 +7,11 @@ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
7
7
  import event from "@ui5/webcomponents-base/dist/decorators/event.js";
8
8
  import getEffectiveScrollbarStyle from "@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js";
9
9
  import PopupAccessibleRole from "@ui5/webcomponents/dist/types/PopupAccessibleRole.js";
10
+ import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
11
+ import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
10
12
  import DropdownTemplate from "./generated/templates/DropdownTemplate.lit.js";
11
13
  import { PlacementType, HorizontalAlign } from "./types/Dropdown.js";
14
+ import { TRIGGER } from "./generated/i18n/i18n-defaults.js";
12
15
 
13
16
  // Styles
14
17
  import DropdownCss from "./generated/themes/Dropdown.css";
@@ -24,7 +27,7 @@ import DropdownCss from "./generated/themes/Dropdown.css";
24
27
  * For the <code>udex-dropdown</code>
25
28
  * <h3>ES6 Module Import</h3>
26
29
  *
27
- * <code>import @udex/web-components/dist/Dropdown.js";</code>
30
+ * <code>import "@udex/web-components/dist/Dropdown.js";</code>
28
31
  *
29
32
  * @constructor
30
33
  * @author SAP SE
@@ -120,12 +123,20 @@ class UDExDropdown extends UI5Element {
120
123
 
121
124
  /**
122
125
  * Allows setting a custom role.
123
- * @default "Dialog"
126
+ * @default "None"
124
127
  * @public
125
128
  */
126
- @property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.Dialog })
129
+ @property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.None })
127
130
  accessibleRole!: `${PopupAccessibleRole}`;
128
131
 
132
+ /**
133
+ * Allows setting a custom role for dropdown trigger.
134
+ * @default "combobox"
135
+ * @public
136
+ */
137
+ @property({ type: String, defaultValue: "combobox" })
138
+ triggerAccessibleRole!: string;
139
+
129
140
  /**
130
141
  * Defines the content of the Dropdown.
131
142
  *
@@ -188,6 +199,12 @@ class UDExDropdown extends UI5Element {
188
199
  @property({ type: String })
189
200
  _direction?: string;
190
201
 
202
+ static i18nBundle: I18nBundle;
203
+
204
+ static async onDefine(): Promise<void> {
205
+ UDExDropdown.i18nBundle = await getI18nBundle("sap-ui-webcomponents-bundle");
206
+ }
207
+
191
208
  onAfterRendering() {
192
209
  this.handleDirection();
193
210
  }
@@ -233,6 +250,7 @@ class UDExDropdown extends UI5Element {
233
250
  onOpen(opener: HTMLElement): void {
234
251
  const dropdown = this.getDropdownPane();
235
252
  dropdown.showAt(opener);
253
+ this.open = true;
236
254
  }
237
255
 
238
256
  /**
@@ -241,8 +259,7 @@ class UDExDropdown extends UI5Element {
241
259
  * @public
242
260
  */
243
261
  onClose():void {
244
- const dropdown = this.getDropdownPane();
245
- dropdown.close(true);
262
+ this.open = false;
246
263
  }
247
264
 
248
265
  afterDropdownClose() {
@@ -283,9 +300,13 @@ class UDExDropdown extends UI5Element {
283
300
  return !!this.footer.length;
284
301
  }
285
302
 
286
- get disableAllowTargetOverlap() {
303
+ get disableAllowTargetOverlap(): boolean {
287
304
  return this.disableTargetOverlap?.toString() !== "true";
288
305
  }
306
+
307
+ get triggerAccessibleName(): string {
308
+ return UDExDropdown.i18nBundle.getText(TRIGGER);
309
+ }
289
310
  }
290
311
 
291
312
  UDExDropdown.define();
@@ -1,61 +1,63 @@
1
- <udex-dropdown
2
- class="udex-filter-menu"
3
- ?disable-target-overlap="{{disableTargetOverlap}}"
4
- placement-type="{{placementType}}"
5
- horizontal-align="{{horizontalAlign}}"
6
- height="{{height}}"
7
- accessible-role="{{accessibleRole}}"
8
- @ui5-select-all="{{handleSelectAll}}"
9
- @ui5-item-press="{{handleItemPress}}"
10
- @ui5-header-press="{{handleHeaderPress}}"
11
- @ui5-before-open="{{_dropdownBeforeOpen}}"
12
- @ui5-after-open="{{_dropdownAfterOpen}}"
13
- @ui5-before-close="{{_dropdownBeforeClose}}"
14
- @ui5-after-close="{{_dropdownAfterClose}}"
15
- @click-trigger="{{onDropdownClose}}"
16
- @search-keydown="{{handleKeyDownSearch}}"
17
- @keydown="{{handleKeyDownList}}"
18
- @ui5-submit-search-value="{{handleSubmitSearch}}"
19
- @ui5-handle-value-search="{{handleValueSearch}}"
20
- @ui5-handle-value-reset="{{handleResetSearch}}">
21
- {{> trigger}}
22
- {{searchableList}}
23
- {{#if modeMultiSelect}}
24
- {{> buttons}}
25
- {{/if}}
26
- </udex-dropdown>
27
-
28
- {{#*inline "trigger"}}
1
+ <div>
29
2
  <button
30
- aria-label="{{accessibleName}}"
31
- aria-expanded="{{_open}}"
32
- aria-haspopup="true"
33
- ?disabled="{{disabled}}"
34
- class="udex-filter-menu__trigger"
35
- slot="trigger"
36
- tabindex="0">
37
- {{#if hasFilterNamePrefix}}
38
- <span class="udex-filter-menu__trigger-prefix">{{filterNamePrefix}}</span>
3
+ id="filterMenuTrigger"
4
+ @click="{{handleTriggerClick}}"
5
+ @keydown="{{handleTriggerKeydown}}"
6
+ aria-label="{{triggerButtonAccessibleName}}"
7
+ aria-expanded="{{_open}}"
8
+ aria-haspopup="true"
9
+ role="{{triggerAccessibleRole}}"
10
+ aria-controls="{{this._id}}_udex-filter-menu-dropdown"
11
+ ?disabled="{{disabled}}"
12
+ class="udex-filter-menu__trigger"
13
+ tabindex="0">
14
+ {{#if hasFilterNamePrefix}}
15
+ <span class="udex-filter-menu__trigger-prefix">{{filterNamePrefix}}</span>
16
+ {{/if}}
17
+ <span class="udex-filter-menu__trigger-wrap" ?disabled="{{disabled}}">
18
+ <span class="udex-filter-menu__trigger-name">{{filterName}}</span>
19
+ {{#if badgeValue}}
20
+ <udex-badge
21
+ class="udex-filter-menu__badge"
22
+ type="Number"
23
+ design="Info"
24
+ size="Small">
25
+ {{badgeValue}}
26
+ </udex-badge>
39
27
  {{/if}}
40
- <span class="udex-filter-menu__trigger-wrap" ?disabled="{{disabled}}">
41
- <span class="udex-filter-menu__trigger-name">{{filterName}}</span>
42
- {{#if badgeValue}}
43
- <udex-badge
44
- class="udex-filter-menu__badge"
45
- type="Number"
46
- design="Info"
47
- size="Small">
48
- {{badgeValue}}
49
- </udex-badge>
50
- {{/if}}
51
- <ui5-icon
52
- class="udex-filter-menu__trigger-icon"
53
- name="navigation-down-arrow"
54
- accessible-name="{{_iconAccessibleNameText}}">
55
- </ui5-icon>
56
- </span>
57
- </button>
58
- {{/inline}}
28
+ <ui5-icon
29
+ class="udex-filter-menu__trigger-icon"
30
+ name="navigation-down-arrow"
31
+ accessible-name="{{_iconAccessibleNameText}}">
32
+ </ui5-icon>
33
+ </span>
34
+ </button>
35
+ <ui5-popover
36
+ id="{{this._id}}_udex-filter-menu-dropdown"
37
+ hide-arrow
38
+ ?allow-target-overlap="{{disableAllowTargetOverlap}}"
39
+ placement-type="{{placementType}}"
40
+ horizontal-align="{{horizontalAlign}}"
41
+ @ui5-item-press="{{handleItemPress}}"
42
+ @ui5-header-press="{{handleHeaderPress}}"
43
+ @keydown="{{handleKeyDownList}}"
44
+ @search-keydown="{{handleKeyDownSearch}}"
45
+ @ui5-before-open="{{_dropdownBeforeOpen}}"
46
+ @ui5-after-open="{{_dropdownAfterOpen}}"
47
+ @ui5-before-close="{{_dropdownBeforeClose}}"
48
+ @ui5-after-close="{{_dropdownAfterClose}}"
49
+ @ui5-select-all="{{handleSelectAll}}"
50
+ @ui5-submit-search-value="{{handleSubmitSearch}}"
51
+ @ui5-handle-value-search="{{handleValueSearch}}"
52
+ @ui5-handle-value-reset="{{handleResetSearch}}">
53
+ {{searchableList}}
54
+ {{#if modeMultiSelect}}
55
+ {{> buttons}}
56
+ {{/if}}
57
+ </ui5-popover>
58
+ </div>
59
+
60
+
59
61
 
60
62
  {{#*inline "buttons"}}
61
63
  {{#unless hideActionBar}}
package/src/FilterMenu.ts CHANGED
@@ -7,16 +7,18 @@ import "@ui5/webcomponents/dist/Icon.js";
7
7
  import "@ui5/webcomponents-icons/dist/navigation-down-arrow.js";
8
8
  import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
9
9
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
10
- import { isTabPrevious, isTabNext, isEscape } from "@ui5/webcomponents-base/dist/Keys.js";
10
+ import {
11
+ isTabPrevious, isTabNext, isEscape, isSpace, isEnter,
12
+ } from "@ui5/webcomponents-base/dist/Keys.js";
11
13
  import PopupAccessibleRole from "@ui5/webcomponents/dist/types/PopupAccessibleRole.js";
12
- import UDExDropdown from "./Dropdown.js";
14
+ import ResponsivePopover from "@ui5/webcomponents/dist/ResponsivePopover.js";
13
15
  import UDExList from "./List.js";
14
16
  import UDExListItem from "./ListItem.js";
15
17
  import UDExListGroupHeader from "./ListGroupHeader.js";
16
18
  import UDExFilterMenuItem from "./FilterMenuItem.js";
17
19
  import UDExFilterMenuGroupHeader from "./FilterMenuGroupHeader.js";
18
20
  import UDExSearch from "./Search.js";
19
- import UDEButton from "./Button.js";
21
+ import UDExButton from "./Button.js";
20
22
  import UDExSearchableListBase from "./SearchableListBase.js";
21
23
  import { PlacementType, HorizontalAlign } from "./types/Dropdown.js";
22
24
  import { ListMode } from "./types/List.js";
@@ -57,17 +59,17 @@ import SearchableListCss from "./generated/themes/SearchableList.css.js";
57
59
  styles: [FilterMenuCss, SearchableListCss],
58
60
  template: FilterMenuTemplate,
59
61
  dependencies: [
62
+ ResponsivePopover,
60
63
  UDExFilterMenuItem,
61
64
  UDExFilterMenuGroupHeader,
62
65
  UDExFilterMenuSelectAll,
63
- UDExDropdown,
64
66
  UDExList,
65
67
  UDExListSelectAll,
66
68
  UDExListItem,
67
69
  UDExListGroupHeader,
68
70
  UDExBadge,
69
71
  UDExSearch,
70
- UDEButton,
72
+ UDExButton,
71
73
  ],
72
74
  })
73
75
 
@@ -233,8 +235,14 @@ class UDExFilterMenu extends UDExSearchableListBase {
233
235
  @property({ type: Boolean })
234
236
  disabled!: boolean;
235
237
 
238
+ /**
239
+ * Defines whether the dropdown is open or not.
240
+ *
241
+ * @default false
242
+ * @private
243
+ */
236
244
  @property({ type: Boolean })
237
- _open?: boolean = false;
245
+ _open!: boolean;
238
246
 
239
247
  /**
240
248
  * Hides the result button in the footer.
@@ -269,19 +277,29 @@ class UDExFilterMenu extends UDExSearchableListBase {
269
277
 
270
278
  /**
271
279
  * Allows setting a custom role.
272
- * @default "Dialog"
280
+ * @default "None"
273
281
  * @public
274
282
  */
275
- @property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.Dialog })
283
+ @property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.None })
276
284
  accessibleRole!: `${PopupAccessibleRole}`;
277
285
 
278
- _dropdown!: UDExDropdown;
286
+ /**
287
+ * Allows setting a custom role for dropdown trigger.
288
+ * @default "combobox"
289
+ * @public
290
+ */
291
+ @property({ type: String, defaultValue: "combobox" })
292
+ triggerAccessibleRole!: string;
293
+
294
+ _trigger!: UDExButton;
279
295
  _search!: UDExSearch;
280
296
  _hasFooterButtons!: boolean;
297
+ _popover!: ResponsivePopover;
281
298
 
282
299
  onAfterRendering() {
283
- this._dropdown = this.getDropdown();
284
300
  this._search = this.getSearch();
301
+ this._popover = this.getPopover();
302
+ this._trigger = this.getTriggerButton();
285
303
  this._hasFooterButtons = this.hasFooterButtons;
286
304
  }
287
305
 
@@ -295,12 +313,12 @@ class UDExFilterMenu extends UDExSearchableListBase {
295
313
  super.onBeforeRendering();
296
314
  }
297
315
 
298
- handleSelectAll(e:CustomEvent) {
316
+ handleSelectAll(e:CustomEvent): void {
299
317
  this.onFilterSelectAllHeaderPress(e);
300
318
  this.fireEvent("select-all");
301
319
  }
302
320
 
303
- handleItemPress(e:CustomEvent) {
321
+ handleItemPress(e:CustomEvent): void {
304
322
  this.onItemPress(e);
305
323
 
306
324
  if (this.modeSingleSelect) {
@@ -308,101 +326,133 @@ class UDExFilterMenu extends UDExSearchableListBase {
308
326
  }
309
327
  }
310
328
 
311
- handleHeaderPress(e:CustomEvent) {
329
+ handleHeaderPress(e:CustomEvent): void {
312
330
  this.onHeaderPress(e);
313
331
  }
314
332
 
315
- handleValueSearch(e:CustomEvent) {
333
+ handleValueSearch(e:CustomEvent): void {
316
334
  this.onSearch(e);
317
335
  }
318
336
 
319
- handleSubmitSearch() {
337
+ handleSubmitSearch(): void {
320
338
  this.onDropdownClose();
321
339
  this.onSubmitSearch();
322
340
  }
323
341
 
324
- handleResetSearch() {
342
+ handleResetSearch(): void {
325
343
  this.onResetSearch();
326
344
  }
327
345
 
328
- handleReset() {
346
+ handleReset(): void {
329
347
  this.fireEvent("reset-click", {
330
348
  restoredItems: this.selectedItems,
331
349
  });
332
350
  this.onReset();
333
351
  }
334
352
 
335
- handleResult() {
353
+ handleResult(): void {
336
354
  if (!this.disabledResultBtn) {
337
- this._dropdown.onClose();
355
+ this._popover.close();
338
356
  this.fireEvent("result-click", {
339
357
  selectedItems: this.selectedItems,
340
358
  });
341
359
  }
342
360
  }
343
361
 
344
- handleKeyDownList(e: KeyboardEvent) {
362
+ handleKeyDownList(e: KeyboardEvent): void {
345
363
  const isTabNextPress = isTabNext(e) && !this._hasFooterButtons;
346
364
  const isTabPrevPress = isTabPrevious(e) && !this._search;
347
-
348
- if (isTabNextPress || isTabPrevPress) {
349
- this.onDropdownClose();
365
+ const target = e.target as HTMLElement;
366
+ const isSearchResetTrigger = target === this._search;
367
+ if ((isTabNextPress && (!isSearchResetTrigger || this.isListEmpty)) || isTabPrevPress) {
368
+ this.onDropdownClose(e);
350
369
  }
351
370
  }
352
371
 
353
- handleKeyDownSearch(e: CustomEvent) {
372
+ handleKeyDownSearch(e: CustomEvent): void {
354
373
  const keyEvent = e.detail as KeyboardEvent;
355
374
  if (isTabPrevious(keyEvent) || isEscape(keyEvent)) {
356
- this.onDropdownClose();
375
+ this.onDropdownClose(keyEvent);
357
376
  }
358
377
  }
359
378
 
360
- handleKeyDownResultBtn(e: KeyboardEvent) {
379
+ handleKeyDownResultBtn(e: KeyboardEvent): void {
361
380
  e.stopPropagation();
362
381
  if (isTabNext(e) && !this.hasResetBtn) {
363
382
  this.onDropdownClose();
364
383
  }
365
384
  }
366
385
 
367
- handleKeyDownResetBtn(e: KeyboardEvent) {
386
+ handleKeyDownResetBtn(e: KeyboardEvent): void {
368
387
  e.stopPropagation();
369
388
  if (isTabNext(e)) {
370
389
  this.onDropdownClose();
371
390
  }
372
391
  }
373
392
 
374
- onDropdownClose() {
375
- if (this._dropdown.open) {
376
- this._dropdown.onClose();
393
+ handleTriggerClick(): void {
394
+ this.toggleDropdown();
395
+ }
396
+
397
+ handleTriggerKeydown(e: KeyboardEvent): void {
398
+ if (isSpace(e) || isEnter(e)) {
399
+ e.preventDefault();
400
+ this.toggleDropdown();
401
+ }
402
+ }
403
+
404
+ toggleDropdown(): void {
405
+ this._open = !this._open;
406
+
407
+ if (this._open) {
408
+ this._trigger.classList.add("udex-filter-menu__trigger-active");
409
+ this._popover.showAt(this._trigger);
410
+ } else {
411
+ this.onDropdownClose();
377
412
  }
378
413
  }
379
414
 
380
- getDropdown(): UDExDropdown {
381
- return this.shadowRoot!.querySelector<UDExDropdown>("udex-dropdown")!;
415
+ onDropdownClose(e?: KeyboardEvent): void {
416
+ if (this._popover.open) {
417
+ if (e && (isTabPrevious(e) || isEscape(e))) {
418
+ e.preventDefault();
419
+ this._popover.close(true);
420
+ } else {
421
+ this._popover.close();
422
+ }
423
+ }
382
424
  }
383
425
 
384
426
  getSearch(): UDExSearch {
385
427
  return this.shadowRoot!.querySelector<UDExSearch>("udex-search")!;
386
428
  }
387
429
 
388
- _dropdownBeforeOpen() {
389
- this._open = true;
430
+ _dropdownBeforeOpen(): void {
431
+ if (this.height) {
432
+ const content = this._popover.shadowRoot!.querySelector("[part=content]") as HTMLElement;
433
+ content.style.maxHeight = this.height;
434
+ }
390
435
  this.fireEvent("before-open");
391
436
  }
392
437
 
393
- _dropdownAfterOpen() {
438
+ _dropdownAfterOpen(): void {
394
439
  this.fireEvent("after-open");
395
440
  }
396
441
 
397
- _dropdownBeforeClose() {
442
+ _dropdownBeforeClose(): void {
398
443
  this.fireEvent("before-close");
399
444
  }
400
445
 
401
- _dropdownAfterClose() {
446
+ _dropdownAfterClose(): void {
402
447
  this._open = false;
448
+ this._trigger.classList.remove("udex-filter-menu__trigger-active");
403
449
  this.fireEvent("after-close");
404
450
  }
405
451
 
452
+ get disableAllowTargetOverlap(): boolean {
453
+ return !this.disableTargetOverlap;
454
+ }
455
+
406
456
  get hasFilterNamePrefix(): boolean {
407
457
  return !!this.filterNamePrefix?.length;
408
458
  }
@@ -417,14 +467,18 @@ class UDExFilterMenu extends UDExSearchableListBase {
417
467
  return hasLabel ? this.resetBtnLabel : UDExFilterMenu.i18nBundle.getText(RESET);
418
468
  }
419
469
 
420
- get disabledResultBtn() {
470
+ get disabledResultBtn(): boolean {
421
471
  return !this.selectedItems.length && !this.selectAll;
422
472
  }
423
473
 
424
- get _iconAccessibleNameText() {
474
+ get _iconAccessibleNameText(): string {
425
475
  return UDExFilterMenu.i18nBundle.getText(SELECT_OPTIONS);
426
476
  }
427
477
 
478
+ get triggerButtonAccessibleName(): string {
479
+ return this.accessibleName || UDExFilterMenu.i18nBundle.getText(SELECT_OPTIONS);
480
+ }
481
+
428
482
  get searchableList() {
429
483
  return executeTemplate(UDExFilterMenu.searchableListBaseTemplate, this);
430
484
  }
@@ -445,6 +499,14 @@ class UDExFilterMenu extends UDExSearchableListBase {
445
499
  return !this.hideResetBtn;
446
500
  }
447
501
 
502
+ getTriggerButton(): UDExButton {
503
+ return this.shadowRoot!.querySelector<UDExButton>("#filterMenuTrigger")!;
504
+ }
505
+
506
+ getPopover(): ResponsivePopover {
507
+ return this.shadowRoot!.querySelector<ResponsivePopover>("[ui5-popover]")!;
508
+ }
509
+
448
510
  getItems(): Array<UDExListItemBase> {
449
511
  return this.getSlottedNodes<UDExListItemBase>("items");
450
512
  }