@sapudex/web-components 0.111.0 → 0.117.1

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 (334) hide show
  1. package/.npmrc +1 -2
  2. package/bundle.esm.js +4 -0
  3. package/dist/AccordionItem.d.ts +7 -0
  4. package/dist/AccordionItem.js +6 -2
  5. package/dist/AccordionItem.js.map +1 -1
  6. package/dist/Avatar.d.ts +8 -1
  7. package/dist/Avatar.js +5 -2
  8. package/dist/Avatar.js.map +1 -1
  9. package/dist/CountrySelector.d.ts +6 -7
  10. package/dist/CountrySelector.js +15 -7
  11. package/dist/CountrySelector.js.map +1 -1
  12. package/dist/Dropdown.d.ts +10 -0
  13. package/dist/Dropdown.js +10 -0
  14. package/dist/Dropdown.js.map +1 -1
  15. package/dist/FilterMenu.d.ts +14 -4
  16. package/dist/FilterMenu.js +46 -7
  17. package/dist/FilterMenu.js.map +1 -1
  18. package/dist/Footer.d.ts +40 -1
  19. package/dist/Footer.js +151 -1
  20. package/dist/Footer.js.map +1 -1
  21. package/dist/InputGroup.d.ts +75 -0
  22. package/dist/InputGroup.js +101 -0
  23. package/dist/InputGroup.js.map +1 -0
  24. package/dist/List.d.ts +7 -0
  25. package/dist/List.js +78 -18
  26. package/dist/List.js.map +1 -1
  27. package/dist/ListItem.d.ts +0 -1
  28. package/dist/ListItem.js +0 -6
  29. package/dist/ListItem.js.map +1 -1
  30. package/dist/ListItemBase.d.ts +3 -0
  31. package/dist/ListItemBase.js +12 -0
  32. package/dist/ListItemBase.js.map +1 -1
  33. package/dist/MastheadMobileMenu.d.ts +4 -1
  34. package/dist/MastheadMobileMenu.js +10 -3
  35. package/dist/MastheadMobileMenu.js.map +1 -1
  36. package/dist/PhoneNumberField.d.ts +8 -0
  37. package/dist/PhoneNumberField.js +23 -10
  38. package/dist/PhoneNumberField.js.map +1 -1
  39. package/dist/Search.d.ts +60 -1
  40. package/dist/Search.js +191 -19
  41. package/dist/Search.js.map +1 -1
  42. package/dist/SecondaryNavigation.d.ts +37 -45
  43. package/dist/SecondaryNavigation.js +148 -153
  44. package/dist/SecondaryNavigation.js.map +1 -1
  45. package/dist/SecondaryNavigationItem.d.ts +101 -0
  46. package/dist/SecondaryNavigationItem.js +287 -0
  47. package/dist/SecondaryNavigationItem.js.map +1 -0
  48. package/dist/SecondaryNavigationItemBase.d.ts +68 -0
  49. package/dist/SecondaryNavigationItemBase.js +78 -0
  50. package/dist/SecondaryNavigationItemBase.js.map +1 -0
  51. package/dist/SecondaryNavigationSubItem.d.ts +52 -0
  52. package/dist/SecondaryNavigationSubItem.js +102 -0
  53. package/dist/SecondaryNavigationSubItem.js.map +1 -0
  54. package/dist/SelectBox.d.ts +7 -0
  55. package/dist/SelectBox.js +27 -2
  56. package/dist/SelectBox.js.map +1 -1
  57. package/dist/StatusBadge.d.ts +67 -0
  58. package/dist/StatusBadge.js +104 -0
  59. package/dist/StatusBadge.js.map +1 -0
  60. package/dist/Tab.js +1 -1
  61. package/dist/Tab.js.map +1 -1
  62. package/dist/Table.d.ts +5 -5
  63. package/dist/Table.js +5 -5
  64. package/dist/Table.js.map +1 -1
  65. package/dist/Tag.d.ts +7 -1
  66. package/dist/Tag.js +6 -2
  67. package/dist/Tag.js.map +1 -1
  68. package/dist/TextArea.js.map +1 -1
  69. package/dist/assets/{bundle.esm-b7920968.js → bundle.esm-f65ae7da.js} +189 -184
  70. package/dist/assets/messagebundle_en-7249941b.js +1 -0
  71. package/dist/css/themes/AccordionItem.css +1 -1
  72. package/dist/css/themes/Avatar.css +1 -1
  73. package/dist/css/themes/Breadcrumbs.css +1 -1
  74. package/dist/css/themes/Checkbox.css +1 -1
  75. package/dist/css/themes/CountrySelector.css +1 -1
  76. package/dist/css/themes/DatePicker.css +1 -1
  77. package/dist/css/themes/Dropdown.css +1 -1
  78. package/dist/css/themes/FilterMenu.css +1 -1
  79. package/dist/css/themes/HeroBanner.css +1 -1
  80. package/dist/css/themes/InputGroup.css +1 -0
  81. package/dist/css/themes/MastheadItem.css +1 -1
  82. package/dist/css/themes/MastheadMenuItem.css +1 -1
  83. package/dist/css/themes/MastheadShell.css +1 -1
  84. package/dist/css/themes/MediaPlayer.css +1 -1
  85. package/dist/css/themes/PhoneNumberField.css +1 -1
  86. package/dist/css/themes/RatingIndicator.css +1 -1
  87. package/dist/css/themes/Search.css +1 -1
  88. package/dist/css/themes/SearchSuggestions.css +1 -1
  89. package/dist/css/themes/SecondaryNavigation.css +1 -1
  90. package/dist/css/themes/SecondaryNavigationItem.css +1 -0
  91. package/dist/css/themes/SecondaryNavigationSubItem.css +1 -0
  92. package/dist/css/themes/Slider.css +1 -1
  93. package/dist/css/themes/StatusBadge.css +1 -0
  94. package/dist/css/themes/Tag.css +1 -1
  95. package/dist/css/themes/TextField.css +1 -1
  96. package/dist/custom-elements-internal.json +1070 -116
  97. package/dist/custom-elements.json +1047 -169
  98. package/dist/features/SearchSuggestionsPopover.d.ts +3 -3
  99. package/dist/features/SearchSuggestionsPopover.js +16 -18
  100. package/dist/features/SearchSuggestionsPopover.js.map +1 -1
  101. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  102. package/dist/generated/i18n/i18n-defaults.d.ts +8 -1
  103. package/dist/generated/i18n/i18n-defaults.js +8 -1
  104. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  105. package/dist/generated/templates/AccordionItemTemplate.lit.js +2 -1
  106. package/dist/generated/templates/AccordionItemTemplate.lit.js.map +1 -1
  107. package/dist/generated/templates/CountrySelectorTemplate.lit.js +1 -1
  108. package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
  109. package/dist/generated/templates/DropdownTemplate.lit.js +1 -1
  110. package/dist/generated/templates/DropdownTemplate.lit.js.map +1 -1
  111. package/dist/generated/templates/FilterMenuTemplate.lit.js +3 -3
  112. package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
  113. package/dist/generated/templates/FooterTemplate.lit.js +15 -15
  114. package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
  115. package/dist/generated/templates/HeroBannerTemplate.lit.js +2 -2
  116. package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
  117. package/dist/generated/templates/InputGroupTemplate.lit.d.ts +4 -0
  118. package/dist/generated/templates/InputGroupTemplate.lit.js +7 -0
  119. package/dist/generated/templates/InputGroupTemplate.lit.js.map +1 -0
  120. package/dist/generated/templates/ListGroupHeaderTemplate.lit.js +4 -4
  121. package/dist/generated/templates/ListGroupHeaderTemplate.lit.js.map +1 -1
  122. package/dist/generated/templates/ListItemTemplate.lit.js +1 -1
  123. package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
  124. package/dist/generated/templates/ListSelectAllTemplate.lit.js +1 -1
  125. package/dist/generated/templates/ListSelectAllTemplate.lit.js.map +1 -1
  126. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +15 -10
  127. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
  128. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js +1 -1
  129. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js.map +1 -1
  130. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +11 -10
  131. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +1 -1
  132. package/dist/generated/templates/SearchTemplate.lit.js +11 -10
  133. package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
  134. package/dist/generated/templates/SearchableListBaseTemplate.lit.js +2 -2
  135. package/dist/generated/templates/SearchableListBaseTemplate.lit.js.map +1 -1
  136. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.d.ts +4 -0
  137. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +11 -0
  138. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -0
  139. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.d.ts +4 -0
  140. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +9 -0
  141. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +1 -0
  142. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +7 -9
  143. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  144. package/dist/generated/templates/SelectBoxTemplate.lit.js +1 -1
  145. package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
  146. package/dist/generated/templates/StatusBadgeTemplate.lit.d.ts +4 -0
  147. package/dist/generated/templates/StatusBadgeTemplate.lit.js +5 -0
  148. package/dist/generated/templates/StatusBadgeTemplate.lit.js.map +1 -0
  149. package/dist/generated/themes/AccordionItem.css.js +1 -1
  150. package/dist/generated/themes/AccordionItem.css.js.map +1 -1
  151. package/dist/generated/themes/Avatar.css.js +1 -1
  152. package/dist/generated/themes/Avatar.css.js.map +1 -1
  153. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  154. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  155. package/dist/generated/themes/Checkbox.css.js +1 -1
  156. package/dist/generated/themes/Checkbox.css.js.map +1 -1
  157. package/dist/generated/themes/CountrySelector.css.js +1 -1
  158. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  159. package/dist/generated/themes/DatePicker.css.js +1 -1
  160. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  161. package/dist/generated/themes/Dropdown.css.js +1 -1
  162. package/dist/generated/themes/Dropdown.css.js.map +1 -1
  163. package/dist/generated/themes/FilterMenu.css.js +1 -1
  164. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  165. package/dist/generated/themes/HeroBanner.css.js +1 -1
  166. package/dist/generated/themes/HeroBanner.css.js.map +1 -1
  167. package/dist/generated/themes/InputGroup.css.d.ts +3 -0
  168. package/dist/generated/themes/InputGroup.css.js +9 -0
  169. package/dist/generated/themes/InputGroup.css.js.map +1 -0
  170. package/dist/generated/themes/MastheadItem.css.js +1 -1
  171. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  172. package/dist/generated/themes/MastheadMenuItem.css.js +1 -1
  173. package/dist/generated/themes/MastheadMenuItem.css.js.map +1 -1
  174. package/dist/generated/themes/MastheadShell.css.js +1 -1
  175. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  176. package/dist/generated/themes/MediaPlayer.css.js +1 -1
  177. package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
  178. package/dist/generated/themes/PhoneNumberField.css.js +1 -1
  179. package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
  180. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  181. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  182. package/dist/generated/themes/Search.css.js +1 -1
  183. package/dist/generated/themes/Search.css.js.map +1 -1
  184. package/dist/generated/themes/SearchSuggestions.css.js +1 -1
  185. package/dist/generated/themes/SearchSuggestions.css.js.map +1 -1
  186. package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
  187. package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
  188. package/dist/generated/themes/SecondaryNavigationItem.css.d.ts +3 -0
  189. package/dist/generated/themes/SecondaryNavigationItem.css.js +9 -0
  190. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -0
  191. package/dist/generated/themes/SecondaryNavigationSubItem.css.d.ts +3 -0
  192. package/dist/generated/themes/SecondaryNavigationSubItem.css.js +9 -0
  193. package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -0
  194. package/dist/generated/themes/Slider.css.js +1 -1
  195. package/dist/generated/themes/Slider.css.js.map +1 -1
  196. package/dist/generated/themes/StatusBadge.css.d.ts +3 -0
  197. package/dist/generated/themes/StatusBadge.css.js +9 -0
  198. package/dist/generated/themes/StatusBadge.css.js.map +1 -0
  199. package/dist/generated/themes/Tag.css.js +1 -1
  200. package/dist/generated/themes/Tag.css.js.map +1 -1
  201. package/dist/generated/themes/TextField.css.js +1 -1
  202. package/dist/generated/themes/TextField.css.js.map +1 -1
  203. package/dist/i18n/messagebundle.properties +12 -1
  204. package/dist/i18n/messagebundle_en.properties +8 -1
  205. package/dist/types/callback.d.ts +2 -0
  206. package/dist/types/callback.js +2 -0
  207. package/dist/types/callback.js.map +1 -0
  208. package/dist/utils/debounce.d.ts +2 -2
  209. package/dist/utils/debounce.js.map +1 -1
  210. package/dist/utils/retryUntilSuccessful.d.ts +3 -0
  211. package/dist/utils/retryUntilSuccessful.js +21 -0
  212. package/dist/utils/retryUntilSuccessful.js.map +1 -0
  213. package/dist/vscode.html-custom-data.json +178 -14
  214. package/dist/web-types.json +406 -32
  215. package/package.json +1 -1
  216. package/src/AccordionItem.hbs +12 -1
  217. package/src/AccordionItem.ts +11 -2
  218. package/src/Avatar.ts +12 -3
  219. package/src/CountrySelector.hbs +3 -3
  220. package/src/CountrySelector.ts +22 -21
  221. package/src/Dropdown.hbs +0 -1
  222. package/src/Dropdown.ts +10 -0
  223. package/src/FilterMenu.hbs +5 -1
  224. package/src/FilterMenu.ts +60 -10
  225. package/src/Footer.hbs +154 -91
  226. package/src/Footer.ts +158 -1
  227. package/src/HeroBanner.hbs +24 -21
  228. package/src/InputGroup.hbs +20 -0
  229. package/src/InputGroup.ts +137 -0
  230. package/src/List.ts +92 -21
  231. package/src/ListGroupHeader.hbs +9 -5
  232. package/src/ListItem.hbs +2 -1
  233. package/src/ListItem.ts +0 -7
  234. package/src/ListItemBase.ts +14 -0
  235. package/src/ListSelectAll.hbs +1 -0
  236. package/src/MastheadMobileMenu.hbs +51 -28
  237. package/src/MastheadMobileMenu.ts +12 -3
  238. package/src/MastheadProfileMenu.hbs +1 -1
  239. package/src/PhoneNumberField.ts +27 -3
  240. package/src/Search.hbs +26 -3
  241. package/src/Search.ts +236 -21
  242. package/src/SearchSuggestions.hbs +47 -49
  243. package/src/SearchableListBase.hbs +2 -0
  244. package/src/SecondaryNavigation.hbs +52 -72
  245. package/src/SecondaryNavigation.ts +182 -186
  246. package/src/SecondaryNavigationItem.hbs +63 -0
  247. package/src/SecondaryNavigationItem.ts +358 -0
  248. package/src/SecondaryNavigationItemBase.ts +115 -0
  249. package/src/SecondaryNavigationSubItem.hbs +41 -0
  250. package/src/SecondaryNavigationSubItem.ts +123 -0
  251. package/src/SelectBox.hbs +1 -0
  252. package/src/SelectBox.ts +38 -1
  253. package/src/StatusBadge.hbs +9 -0
  254. package/src/StatusBadge.ts +129 -0
  255. package/src/Tab.ts +1 -1
  256. package/src/Table.ts +7 -7
  257. package/src/Tag.ts +12 -3
  258. package/src/TextArea.ts +1 -1
  259. package/src/features/SearchSuggestionsPopover.ts +18 -20
  260. package/src/generated/i18n/i18n-defaults.ts +2 -2
  261. package/src/generated/templates/AccordionItemTemplate.lit.ts +2 -1
  262. package/src/generated/templates/CountrySelectorTemplate.lit.ts +1 -1
  263. package/src/generated/templates/DropdownTemplate.lit.ts +1 -1
  264. package/src/generated/templates/FilterMenuTemplate.lit.ts +3 -3
  265. package/src/generated/templates/FooterTemplate.lit.ts +15 -15
  266. package/src/generated/templates/HeroBannerTemplate.lit.ts +2 -2
  267. package/src/generated/templates/InputGroupTemplate.lit.ts +12 -0
  268. package/src/generated/templates/ListGroupHeaderTemplate.lit.ts +4 -4
  269. package/src/generated/templates/ListItemTemplate.lit.ts +1 -1
  270. package/src/generated/templates/ListSelectAllTemplate.lit.ts +1 -1
  271. package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +15 -10
  272. package/src/generated/templates/MastheadProfileMenuTemplate.lit.ts +1 -1
  273. package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +11 -10
  274. package/src/generated/templates/SearchTemplate.lit.ts +10 -9
  275. package/src/generated/templates/SearchableListBaseTemplate.lit.ts +2 -2
  276. package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +16 -0
  277. package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +14 -0
  278. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +7 -9
  279. package/src/generated/templates/SelectBoxTemplate.lit.ts +1 -1
  280. package/src/generated/templates/StatusBadgeTemplate.lit.ts +10 -0
  281. package/src/generated/themes/AccordionItem.css.ts +1 -1
  282. package/src/generated/themes/Avatar.css.ts +1 -1
  283. package/src/generated/themes/Breadcrumbs.css.ts +1 -1
  284. package/src/generated/themes/Checkbox.css.ts +1 -1
  285. package/src/generated/themes/CountrySelector.css.ts +1 -1
  286. package/src/generated/themes/DatePicker.css.ts +1 -1
  287. package/src/generated/themes/Dropdown.css.ts +1 -1
  288. package/src/generated/themes/FilterMenu.css.ts +1 -1
  289. package/src/generated/themes/HeroBanner.css.ts +1 -1
  290. package/src/generated/themes/InputGroup.css.ts +13 -0
  291. package/src/generated/themes/MastheadItem.css.ts +1 -1
  292. package/src/generated/themes/MastheadMenuItem.css.ts +1 -1
  293. package/src/generated/themes/MastheadShell.css.ts +1 -1
  294. package/src/generated/themes/MediaPlayer.css.ts +1 -1
  295. package/src/generated/themes/PhoneNumberField.css.ts +1 -1
  296. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  297. package/src/generated/themes/Search.css.ts +1 -1
  298. package/src/generated/themes/SearchSuggestions.css.ts +1 -1
  299. package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
  300. package/src/generated/themes/SecondaryNavigationItem.css.ts +13 -0
  301. package/src/generated/themes/SecondaryNavigationSubItem.css.ts +13 -0
  302. package/src/generated/themes/Slider.css.ts +1 -1
  303. package/src/generated/themes/StatusBadge.css.ts +13 -0
  304. package/src/generated/themes/Tag.css.ts +1 -1
  305. package/src/generated/themes/TextField.css.ts +1 -1
  306. package/src/i18n/messagebundle.properties +12 -1
  307. package/src/i18n/messagebundle_en.properties +8 -1
  308. package/src/themes/AccordionItem.css +20 -15
  309. package/src/themes/Avatar.css +20 -0
  310. package/src/themes/Breadcrumbs.css +4 -2
  311. package/src/themes/Checkbox.css +12 -0
  312. package/src/themes/CountrySelector.css +16 -1
  313. package/src/themes/DatePicker.css +1 -1
  314. package/src/themes/Dropdown.css +3 -1
  315. package/src/themes/FilterMenu.css +10 -0
  316. package/src/themes/HeroBanner.css +42 -6
  317. package/src/themes/InputGroup.css +19 -0
  318. package/src/themes/MastheadItem.css +2 -7
  319. package/src/themes/MastheadMenuItem.css +0 -4
  320. package/src/themes/MastheadShell.css +9 -10
  321. package/src/themes/MediaPlayer.css +3 -2
  322. package/src/themes/PhoneNumberField.css +17 -3
  323. package/src/themes/Search.css +168 -21
  324. package/src/themes/SearchSuggestions.css +7 -1
  325. package/src/themes/SecondaryNavigation.css +44 -302
  326. package/src/themes/SecondaryNavigationItem.css +220 -0
  327. package/src/themes/SecondaryNavigationSubItem.css +118 -0
  328. package/src/themes/StatusBadge.css +135 -0
  329. package/src/themes/Tag.css +6 -1
  330. package/src/themes/TextField.css +10 -1
  331. package/src/types/callback.ts +3 -0
  332. package/src/utils/debounce.ts +1 -1
  333. package/src/utils/retryUntilSuccessful.ts +23 -0
  334. package/dist/assets/messagebundle_en-26cd7a92.js +0 -1
@@ -16,7 +16,18 @@
16
16
  <div class="udex-accordion-item__icon-wrapper">
17
17
  <ui5-icon class="udex-accordion-item__icon" name="slim-arrow-right"></ui5-icon>
18
18
  </div>
19
- <h4 class="udex-accordion-item__title">{{title}}</h4>
19
+ <span class="udex-accordion-item__title">
20
+ {{title}}
21
+ {{#if numberBadge}}
22
+ <udex-badge
23
+ class="udex-accordion-item__badge"
24
+ type="Number"
25
+ number-design="Blue"
26
+ size="Large">
27
+ {{numberBadge}}
28
+ </udex-badge>
29
+ {{/if}}
30
+ </span>
20
31
  </div>
21
32
  </div>
22
33
  <div id="udex-accordion-item__{{_id}}-content" @keydown={{contentKeydown}} class="udex-accordion-item__content">
@@ -8,6 +8,7 @@ import "@ui5/webcomponents/dist/Icon.js";
8
8
  import "@ui5/webcomponents-icons/dist/AllIcons.js";
9
9
  import "@ui5/webcomponents-icons/dist/feeder-arrow.js";
10
10
  import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
11
+ import UDExBadge from "./Badge.js";
11
12
 
12
13
  import AccordionItemTemplate from "./generated/templates/AccordionItemTemplate.lit.js";
13
14
 
@@ -41,7 +42,7 @@ type ToggleAllEvent = {
41
42
  renderer: litRender,
42
43
  styles: AccordionItemCss,
43
44
  template: AccordionItemTemplate,
44
- dependencies: [],
45
+ dependencies: [UDExBadge],
45
46
  })
46
47
 
47
48
  /**
@@ -51,13 +52,21 @@ type ToggleAllEvent = {
51
52
  @event("accordion-item-focus")
52
53
 
53
54
  class UDExAccordionItem extends UI5Element {
55
+ /**
56
+ * Defines the Badge at the end of the title item.
57
+ *
58
+ * @default ""
59
+ * @public
60
+ */
61
+ @property() numberBadge!: string;
62
+
54
63
  /**
55
64
  * Defines the title of the accordion item component.
56
65
  *
57
66
  * @default ""
58
67
  * @public
59
68
  */
60
- @property({ type: String }) title!: string;
69
+ @property() title!: string;
61
70
 
62
71
  /**
63
72
  * Defines if the accordion item is expanded by default
package/src/Avatar.ts CHANGED
@@ -5,7 +5,7 @@ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
5
5
  import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
6
6
  import Avatar from "@ui5/webcomponents/dist/Avatar.js";
7
7
  import I18nBundle, { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
8
- import { AVATAR_TEXT, DISABLED } from "./generated/i18n/i18n-defaults.js";
8
+ import { ATTENTION_BADGE, AVATAR_TEXT, DISABLED } from "./generated/i18n/i18n-defaults.js";
9
9
 
10
10
  // Template
11
11
  import AvatarTemplate from "./generated/templates/AvatarTemplate.lit.js";
@@ -152,7 +152,7 @@ class UDExAvatar extends UI5Element {
152
152
  shape!: `${AvatarShape}`;
153
153
 
154
154
  /**
155
- * Controls id of the element that label the component
155
+ * Defines predefined size of the component.
156
156
  *
157
157
  * @default "S"
158
158
  * @public
@@ -160,6 +160,15 @@ class UDExAvatar extends UI5Element {
160
160
  @property({ type: AvatarSize, defaultValue: AvatarSize.S })
161
161
  size!: `${AvatarSize}`;
162
162
 
163
+ /**
164
+ * Defines the displaying attention badge.
165
+ *
166
+ * @public
167
+ * @default false
168
+ */
169
+ @property({ type: Boolean })
170
+ showAttentionBadge!: boolean;
171
+
163
172
  /**
164
173
  * Receives the desired <img> tag
165
174
  *
@@ -214,7 +223,7 @@ class UDExAvatar extends UI5Element {
214
223
  }
215
224
 
216
225
  get avatarAccessibleName(): string {
217
- return `${this.accessibleName ? this.accessibleName : UDExAvatar.i18nBundle.getText(AVATAR_TEXT)} ${this.disabled ? UDExAvatar.i18nBundle.getText(DISABLED) : ""}`;
226
+ return `${this.accessibleName ? this.accessibleName : UDExAvatar.i18nBundle.getText(AVATAR_TEXT)} ${this.disabled ? UDExAvatar.i18nBundle.getText(DISABLED) : ""} ${this.showAttentionBadge ? UDExAvatar.i18nBundle.getText(ATTENTION_BADGE) : ""}`;
218
227
  }
219
228
  }
220
229
 
@@ -11,7 +11,8 @@
11
11
  @click-trigger="{{handleTriggerClick}}"
12
12
  @ui5-submit-search-value="{{handleSubmitSearch}}"
13
13
  @ui5-handle-value-search="{{handleValueSearch}}"
14
- @ui5-handle-value-reset="{{handleResetSearch}}">
14
+ @ui5-handle-value-reset="{{handleResetSearch}}"
15
+ @ui5-handle-close-search="{{handleCloseSearch}}">
15
16
  {{> trigger}}
16
17
  {{searchableList}}
17
18
  </udex-dropdown>
@@ -22,8 +23,7 @@
22
23
  class="{{countrySelectorTriggerClasses}}"
23
24
  ?disabled="{{isOpenerDisabled}}"
24
25
  value="{{selectedCountryName}}"
25
- slot="trigger"
26
- style="width:{{holderWidth}}">
26
+ slot="trigger">
27
27
  {{#if showFlagImages}}
28
28
  <img
29
29
  class="udex-country-selector__image"
@@ -7,6 +7,7 @@ import executeTemplate from "@ui5/webcomponents-base/dist/renderer/executeTempla
7
7
  import { isEnter, isSpace } from "@ui5/webcomponents-base/dist/Keys.js";
8
8
  import event from "@ui5/webcomponents-base/dist/decorators/event.js";
9
9
  import Button from "@ui5/webcomponents/dist/Button.js";
10
+ import ResizeHandler, { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
10
11
  import { COUNTRY_SELECT } from "./generated/i18n/i18n-defaults.js";
11
12
  import CountrySelectorTemplate from "./generated/templates/CountrySelectorTemplate.lit.js";
12
13
  import SearchableListBaseTemplate from "./generated/templates/SearchableListBaseTemplate.lit.js";
@@ -23,12 +24,6 @@ import UDExListItem from "./ListItem.js";
23
24
  import "@ui5/webcomponents-icons/dist/navigation-down-arrow.js";
24
25
  import TextField from "./TextField.js";
25
26
 
26
- type CountryItem = {
27
- label: any,
28
- content: any,
29
- _id: any
30
- }
31
-
32
27
  /**
33
28
  * @class
34
29
  *
@@ -163,14 +158,6 @@ class CountrySelector extends UDExSearchableListBase {
163
158
  @property({ type: Boolean })
164
159
  required!: boolean;
165
160
 
166
- /**
167
- * Allows control over the width.
168
- *
169
- * @public
170
- */
171
- @property({ type: String })
172
- width?: string;
173
-
174
161
  /**
175
162
  * Allows control over the height.
176
163
  *
@@ -258,6 +245,8 @@ class CountrySelector extends UDExSearchableListBase {
258
245
  _dropdown!: UDExDropdown;
259
246
  _search!: Search;
260
247
 
248
+ _handleResizeBound: ResizeObserverCallback;
249
+
261
250
  static i18nBundle: I18nBundle;
262
251
 
263
252
  static async onDefine() {
@@ -267,9 +256,18 @@ class CountrySelector extends UDExSearchableListBase {
267
256
  constructor() {
268
257
  super();
269
258
  this._shouldFilterItems = false;
259
+ this._handleResizeBound = this._handleResize.bind(this);
270
260
  this._filteredItems = [];
271
261
  }
272
262
 
263
+ onEnterDOM(): void {
264
+ ResizeHandler.register(this, this._handleResizeBound);
265
+ }
266
+
267
+ onExitDOM(): void {
268
+ ResizeHandler.deregister(this, this._handleResizeBound);
269
+ }
270
+
273
271
  onBeforeRendering(): void {
274
272
  if (this.blockedCountryCodes?.length) {
275
273
  const blockedCountryCodesArray = this.blockedCountryCodes.split(",").map(code => code.trim().toUpperCase());
@@ -319,15 +317,15 @@ class CountrySelector extends UDExSearchableListBase {
319
317
  return SearchableListBaseTemplate;
320
318
  }
321
319
 
320
+ _handleResize() {
321
+ this._dropdown.style.setProperty("--udex-dropdown-pane-width", `${this.offsetWidth}px`);
322
+ }
323
+
322
324
  get ariaControls(): string | null | undefined {
323
325
  const list = this.shadowRoot!.querySelector<UDExList>("udex-list");
324
326
  return list?.getAttribute("id");
325
327
  }
326
328
 
327
- get holderWidth() {
328
- return this.width ? this.width : "auto";
329
- }
330
-
331
329
  get selectedCountryFlagX() {
332
330
  return this.selectedCountry?.flagX;
333
331
  }
@@ -380,6 +378,10 @@ class CountrySelector extends UDExSearchableListBase {
380
378
  return localName ? `${countryName} (${localName})` : countryName;
381
379
  }
382
380
 
381
+ handleCloseSearch() {
382
+ this._dropdown.onClose();
383
+ }
384
+
383
385
  handleItemPress(e: CustomEvent) {
384
386
  this.onItemPress(e);
385
387
  const target = e.target as HTMLElement;
@@ -395,7 +397,6 @@ class CountrySelector extends UDExSearchableListBase {
395
397
 
396
398
  const keyEvent = e.detail as KeyboardEvent;
397
399
  const key = keyEvent.key;
398
-
399
400
  if (isEnter(keyEvent) || isSpace(keyEvent)) {
400
401
  if (this._dropdown.open) {
401
402
  this._dropdown.onClose();
@@ -444,10 +445,10 @@ class CountrySelector extends UDExSearchableListBase {
444
445
  const selected = country.iso.toUpperCase() === this.selectedCountry.iso.toUpperCase();
445
446
  this.items.push({
446
447
  label: this.getCountryLabel(country.countryName, country.localName),
447
- content: this.getItemTemplate(country),
448
+ innerHTML: this.getItemTemplate(country),
448
449
  selected,
449
450
  _id: country.iso.toUpperCase(),
450
- } as CountryItem as UDExListItem);
451
+ } as UDExListItem);
451
452
  });
452
453
  }
453
454
 
package/src/Dropdown.hbs CHANGED
@@ -3,7 +3,6 @@
3
3
  <div
4
4
  class="udex-dropdown__opener"
5
5
  aria-haspopup="true"
6
- aria-expanded="{{open}}"
7
6
  aria-controls="udex-dropdown"
8
7
  @click="{{onTriggerClick}}">
9
8
  <slot slot="trigger" name="trigger"></slot>
package/src/Dropdown.ts CHANGED
@@ -225,11 +225,21 @@ class UDExDropdown extends UI5Element {
225
225
  }
226
226
  }
227
227
 
228
+ /**
229
+ * Open dropdown
230
+ *
231
+ * @public
232
+ */
228
233
  onOpen(opener: HTMLElement): void {
229
234
  const dropdown = this.getDropdownPane();
230
235
  dropdown.showAt(opener);
231
236
  }
232
237
 
238
+ /**
239
+ * Close dropdown
240
+ *
241
+ * @public
242
+ */
233
243
  onClose():void {
234
244
  const dropdown = this.getDropdownPane();
235
245
  dropdown.close(true);
@@ -12,7 +12,9 @@
12
12
  @ui5-after-open="{{_dropdownAfterOpen}}"
13
13
  @ui5-before-close="{{_dropdownBeforeClose}}"
14
14
  @ui5-after-close="{{_dropdownAfterClose}}"
15
- @click-trigger="{{handleTriggerClick}}"
15
+ @click-trigger="{{onDropdownClose}}"
16
+ @search-keydown="{{handleKeyDownSearch}}"
17
+ @keydown="{{handleKeyDownList}}"
16
18
  @ui5-submit-search-value="{{handleSubmitSearch}}"
17
19
  @ui5-handle-value-search="{{handleValueSearch}}"
18
20
  @ui5-handle-value-reset="{{handleResetSearch}}">
@@ -64,6 +66,7 @@
64
66
  size="Medium"
65
67
  design="Primary"
66
68
  ?disabled="{{disabledResultBtn}}"
69
+ @keydown="{{handleKeyDownResultBtn}}"
67
70
  @click="{{handleResult}}">
68
71
  {{getResultLabelText}}
69
72
  </udex-button>
@@ -73,6 +76,7 @@
73
76
  class="udex-filter-menu__reset-btn"
74
77
  size="Medium"
75
78
  design="Tertiary"
79
+ @keydown="{{handleKeyDownResetBtn}}"
76
80
  @click="{{handleReset}}">
77
81
  {{getResetLabelText}}
78
82
  </udex-button>
package/src/FilterMenu.ts CHANGED
@@ -7,6 +7,7 @@ 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
11
  import PopupAccessibleRole from "@ui5/webcomponents/dist/types/PopupAccessibleRole.js";
11
12
  import UDExDropdown from "./Dropdown.js";
12
13
  import UDExList from "./List.js";
@@ -14,14 +15,15 @@ import UDExListItem from "./ListItem.js";
14
15
  import UDExListGroupHeader from "./ListGroupHeader.js";
15
16
  import UDExFilterMenuItem from "./FilterMenuItem.js";
16
17
  import UDExFilterMenuGroupHeader from "./FilterMenuGroupHeader.js";
17
- import Search from "./Search.js";
18
- import Button from "./Button.js";
18
+ import UDExSearch from "./Search.js";
19
+ import UDEButton from "./Button.js";
19
20
  import UDExSearchableListBase from "./SearchableListBase.js";
20
21
  import { PlacementType, HorizontalAlign } from "./types/Dropdown.js";
21
22
  import { ListMode } from "./types/List.js";
22
23
  import UDExFilterMenuSelectAll from "./FilterMenuSelectAll.js";
23
24
  import UDExListSelectAll from "./ListSelectAll.js";
24
25
  import UDExBadge from "./Badge.js";
26
+ import UDExListItemBase from "./ListItemBase.js";
25
27
 
26
28
  import { RESET, SHOW_RESULTS, SELECT_OPTIONS } from "./generated/i18n/i18n-defaults.js";
27
29
  import FilterMenuTemplate from "./generated/templates/FilterMenuTemplate.lit.js";
@@ -64,8 +66,8 @@ import SearchableListCss from "./generated/themes/SearchableList.css.js";
64
66
  UDExListItem,
65
67
  UDExListGroupHeader,
66
68
  UDExBadge,
67
- Search,
68
- Button,
69
+ UDExSearch,
70
+ UDEButton,
69
71
  ],
70
72
  })
71
73
 
@@ -274,11 +276,13 @@ class UDExFilterMenu extends UDExSearchableListBase {
274
276
  accessibleRole!: `${PopupAccessibleRole}`;
275
277
 
276
278
  _dropdown!: UDExDropdown;
277
- _search!: Search;
279
+ _search!: UDExSearch;
280
+ _hasFooterButtons!: boolean;
278
281
 
279
282
  onAfterRendering() {
280
283
  this._dropdown = this.getDropdown();
281
284
  this._search = this.getSearch();
285
+ this._hasFooterButtons = this.hasFooterButtons;
282
286
  }
283
287
 
284
288
  onEnterDOM(): void {
@@ -300,7 +304,7 @@ class UDExFilterMenu extends UDExSearchableListBase {
300
304
  this.onItemPress(e);
301
305
 
302
306
  if (this.modeSingleSelect) {
303
- this._dropdown.onClose();
307
+ this.onDropdownClose();
304
308
  }
305
309
  }
306
310
 
@@ -313,7 +317,7 @@ class UDExFilterMenu extends UDExSearchableListBase {
313
317
  }
314
318
 
315
319
  handleSubmitSearch() {
316
- this._dropdown.onClose();
320
+ this.onDropdownClose();
317
321
  this.onSubmitSearch();
318
322
  }
319
323
 
@@ -337,7 +341,37 @@ class UDExFilterMenu extends UDExSearchableListBase {
337
341
  }
338
342
  }
339
343
 
340
- handleTriggerClick() {
344
+ handleKeyDownList(e: KeyboardEvent) {
345
+ const isTabNextPress = isTabNext(e) && !this._hasFooterButtons;
346
+ const isTabPrevPress = isTabPrevious(e) && !this._search;
347
+
348
+ if (isTabNextPress || isTabPrevPress) {
349
+ this.onDropdownClose();
350
+ }
351
+ }
352
+
353
+ handleKeyDownSearch(e: CustomEvent) {
354
+ const keyEvent = e.detail as KeyboardEvent;
355
+ if (isTabPrevious(keyEvent) || isEscape(keyEvent)) {
356
+ this.onDropdownClose();
357
+ }
358
+ }
359
+
360
+ handleKeyDownResultBtn(e: KeyboardEvent) {
361
+ e.stopPropagation();
362
+ if (isTabNext(e) && !this.hasResetBtn) {
363
+ this.onDropdownClose();
364
+ }
365
+ }
366
+
367
+ handleKeyDownResetBtn(e: KeyboardEvent) {
368
+ e.stopPropagation();
369
+ if (isTabNext(e)) {
370
+ this.onDropdownClose();
371
+ }
372
+ }
373
+
374
+ onDropdownClose() {
341
375
  if (this._dropdown.open) {
342
376
  this._dropdown.onClose();
343
377
  }
@@ -347,8 +381,8 @@ class UDExFilterMenu extends UDExSearchableListBase {
347
381
  return this.shadowRoot!.querySelector<UDExDropdown>("udex-dropdown")!;
348
382
  }
349
383
 
350
- getSearch(): Search {
351
- return this.shadowRoot!.querySelector<Search>("udex-search")!;
384
+ getSearch(): UDExSearch {
385
+ return this.shadowRoot!.querySelector<UDExSearch>("udex-search")!;
352
386
  }
353
387
 
354
388
  _dropdownBeforeOpen() {
@@ -399,6 +433,22 @@ class UDExFilterMenu extends UDExSearchableListBase {
399
433
  return this.hideResultBtn && this.hideResetBtn;
400
434
  }
401
435
 
436
+ get hasFooterButtons(): boolean {
437
+ return (this.hasResultBtn || this.hasResetBtn) && this.modeMultiSelect;
438
+ }
439
+
440
+ get hasResultBtn(): boolean {
441
+ return !this.hideResultBtn && !this.disabledResultBtn;
442
+ }
443
+
444
+ get hasResetBtn(): boolean {
445
+ return !this.hideResetBtn;
446
+ }
447
+
448
+ getItems(): Array<UDExListItemBase> {
449
+ return this.getSlottedNodes<UDExListItemBase>("items");
450
+ }
451
+
402
452
  static get searchableListBaseTemplate() {
403
453
  return SearchableListBaseTemplate;
404
454
  }