@sapudex/web-components 0.127.6 → 0.138.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (366) hide show
  1. package/bundle.esm.js +2 -0
  2. package/dist/Accordion.d.ts +1 -1
  3. package/dist/Accordion.js +1 -1
  4. package/dist/Accordion.js.map +1 -1
  5. package/dist/AccordionItem.d.ts +1 -1
  6. package/dist/AccordionItem.js +2 -2
  7. package/dist/AccordionItem.js.map +1 -1
  8. package/dist/Checkbox.d.ts +1 -1
  9. package/dist/Checkbox.js +1 -1
  10. package/dist/Checkbox.js.map +1 -1
  11. package/dist/CountrySelector.d.ts +24 -6
  12. package/dist/CountrySelector.js +25 -7
  13. package/dist/CountrySelector.js.map +1 -1
  14. package/dist/DatePicker.d.ts +1 -0
  15. package/dist/DatePicker.js +4 -1
  16. package/dist/DatePicker.js.map +1 -1
  17. package/dist/Dropdown.d.ts +1 -1
  18. package/dist/Dropdown.js +3 -3
  19. package/dist/Dropdown.js.map +1 -1
  20. package/dist/FilterMenu.d.ts +19 -5
  21. package/dist/FilterMenu.js +57 -20
  22. package/dist/FilterMenu.js.map +1 -1
  23. package/dist/Footer.d.ts +9 -1
  24. package/dist/Footer.js +8 -1
  25. package/dist/Footer.js.map +1 -1
  26. package/dist/Link.d.ts +1 -1
  27. package/dist/Link.js +1 -1
  28. package/dist/Link.js.map +1 -1
  29. package/dist/List.d.ts +1 -1
  30. package/dist/List.js +17 -1
  31. package/dist/List.js.map +1 -1
  32. package/dist/ListGroupHeader.d.ts +2 -2
  33. package/dist/ListGroupHeader.js +2 -2
  34. package/dist/ListGroupHeader.js.map +1 -1
  35. package/dist/ListItem.d.ts +3 -3
  36. package/dist/ListItem.js +6 -7
  37. package/dist/ListItem.js.map +1 -1
  38. package/dist/ListSelectAll.d.ts +1 -1
  39. package/dist/ListSelectAll.js +1 -1
  40. package/dist/ListSelectAll.js.map +1 -1
  41. package/dist/MastheadItem.d.ts +9 -1
  42. package/dist/MastheadItem.js +26 -9
  43. package/dist/MastheadItem.js.map +1 -1
  44. package/dist/MastheadMenu.d.ts +5 -0
  45. package/dist/MastheadMenu.js +24 -0
  46. package/dist/MastheadMenu.js.map +1 -1
  47. package/dist/MastheadMenuItem.d.ts +2 -3
  48. package/dist/MastheadMenuItem.js +2 -17
  49. package/dist/MastheadMenuItem.js.map +1 -1
  50. package/dist/MastheadMobileMenu.d.ts +25 -5
  51. package/dist/MastheadMobileMenu.js +135 -21
  52. package/dist/MastheadMobileMenu.js.map +1 -1
  53. package/dist/MastheadProfileMenu.d.ts +13 -4
  54. package/dist/MastheadProfileMenu.js +40 -9
  55. package/dist/MastheadProfileMenu.js.map +1 -1
  56. package/dist/MastheadShell.d.ts +3 -0
  57. package/dist/MastheadShell.js +42 -8
  58. package/dist/MastheadShell.js.map +1 -1
  59. package/dist/MediaPlayer.d.ts +3 -3
  60. package/dist/MediaPlayer.js +115 -25
  61. package/dist/MediaPlayer.js.map +1 -1
  62. package/dist/PhoneNumberField.d.ts +26 -0
  63. package/dist/PhoneNumberField.js +46 -2
  64. package/dist/PhoneNumberField.js.map +1 -1
  65. package/dist/ReviewItem.d.ts +105 -0
  66. package/dist/ReviewItem.js +157 -0
  67. package/dist/ReviewItem.js.map +1 -0
  68. package/dist/Search.d.ts +15 -1
  69. package/dist/Search.js +30 -5
  70. package/dist/Search.js.map +1 -1
  71. package/dist/SecondaryNavigation.d.ts +1 -0
  72. package/dist/SecondaryNavigation.js +11 -10
  73. package/dist/SecondaryNavigation.js.map +1 -1
  74. package/dist/SecondaryNavigationItem.js +1 -1
  75. package/dist/SecondaryNavigationItem.js.map +1 -1
  76. package/dist/SecondaryNavigationItemBase.js +1 -1
  77. package/dist/SecondaryNavigationItemBase.js.map +1 -1
  78. package/dist/SelectBox.d.ts +33 -9
  79. package/dist/SelectBox.js +119 -60
  80. package/dist/SelectBox.js.map +1 -1
  81. package/dist/Switch.d.ts +19 -0
  82. package/dist/Switch.js +19 -0
  83. package/dist/Switch.js.map +1 -1
  84. package/dist/Tab.d.ts +1 -1
  85. package/dist/Tab.js +1 -1
  86. package/dist/Tab.js.map +1 -1
  87. package/dist/TabNavigation.d.ts +1 -1
  88. package/dist/TabNavigation.js +1 -1
  89. package/dist/TabNavigation.js.map +1 -1
  90. package/dist/Tag.d.ts +9 -1
  91. package/dist/Tag.js +20 -3
  92. package/dist/Tag.js.map +1 -1
  93. package/dist/TagGroup.d.ts +94 -0
  94. package/dist/TagGroup.js +174 -0
  95. package/dist/TagGroup.js.map +1 -0
  96. package/dist/TextArea.d.ts +13 -0
  97. package/dist/TextArea.js +15 -0
  98. package/dist/TextArea.js.map +1 -1
  99. package/dist/TextField.d.ts +23 -13
  100. package/dist/TextField.js +16 -2
  101. package/dist/TextField.js.map +1 -1
  102. package/dist/Tooltip.d.ts +1 -1
  103. package/dist/Tooltip.js +1 -1
  104. package/dist/Tooltip.js.map +1 -1
  105. package/dist/assets/{bundle.esm-7d53f4f2.js → bundle.esm-bb1c7413.js} +190 -188
  106. package/dist/assets/messagebundle_en-c677773a.js +1 -0
  107. package/dist/assets/parameters-bundle.css-c897ae23.js +2 -0
  108. package/dist/assets/video.es-60bfb78c.js +228 -0
  109. package/dist/css/themes/CountrySelector.css +1 -1
  110. package/dist/css/themes/FilterMenu.css +1 -1
  111. package/dist/css/themes/ListItem.css +1 -1
  112. package/dist/css/themes/MastheadItem.css +1 -1
  113. package/dist/css/themes/MastheadMobileMenu.css +1 -1
  114. package/dist/css/themes/PhoneNumberField.css +1 -1
  115. package/dist/css/themes/RatingIndicator.css +1 -1
  116. package/dist/css/themes/ReviewItem.css +1 -0
  117. package/dist/css/themes/Search.css +1 -1
  118. package/dist/css/themes/SecondaryNavigation.css +1 -1
  119. package/dist/css/themes/SecondaryNavigationItem.css +1 -1
  120. package/dist/css/themes/SecondaryNavigationSubItem.css +1 -1
  121. package/dist/css/themes/SelectBox.css +1 -1
  122. package/dist/css/themes/Slider.css +1 -1
  123. package/dist/css/themes/Tag.css +1 -1
  124. package/dist/css/themes/TagGroup.css +1 -0
  125. package/dist/css/themes/TextArea.css +1 -1
  126. package/dist/css/themes/TextField.css +1 -1
  127. package/dist/css/themes/Toast.css +1 -1
  128. package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +1 -1
  129. package/dist/custom-elements-internal.json +783 -362
  130. package/dist/custom-elements.json +751 -369
  131. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  132. package/dist/generated/assets/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.json +1 -1
  133. package/dist/generated/i18n/i18n-defaults.d.ts +3 -1
  134. package/dist/generated/i18n/i18n-defaults.js +6 -4
  135. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  136. package/dist/generated/templates/CountrySelectorTemplate.lit.js +3 -3
  137. package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
  138. package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
  139. package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
  140. package/dist/generated/templates/DropdownTemplate.lit.js +2 -2
  141. package/dist/generated/templates/DropdownTemplate.lit.js.map +1 -1
  142. package/dist/generated/templates/FilterMenuTemplate.lit.js +1 -1
  143. package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
  144. package/dist/generated/templates/FooterTemplate.lit.js +9 -9
  145. package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
  146. package/dist/generated/templates/HeroBannerTemplate.lit.js +7 -8
  147. package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
  148. package/dist/generated/templates/ListItemTemplate.lit.js +6 -6
  149. package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
  150. package/dist/generated/templates/ListSelectAllTemplate.lit.js +1 -1
  151. package/dist/generated/templates/ListSelectAllTemplate.lit.js.map +1 -1
  152. package/dist/generated/templates/MastheadItemTemplate.lit.js +3 -3
  153. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
  154. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js +1 -1
  155. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +1 -1
  156. package/dist/generated/templates/MastheadMenuTemplate.lit.js +2 -2
  157. package/dist/generated/templates/MastheadMenuTemplate.lit.js.map +1 -1
  158. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +16 -12
  159. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
  160. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js +2 -2
  161. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js.map +1 -1
  162. package/dist/generated/templates/MastheadShellTemplate.lit.js +7 -7
  163. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  164. package/dist/generated/templates/MediaPlayerTemplate.lit.js +2 -2
  165. package/dist/generated/templates/MediaPlayerTemplate.lit.js.map +1 -1
  166. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +5 -2
  167. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
  168. package/dist/generated/templates/ReviewItemTemplate.lit.d.ts +4 -0
  169. package/dist/generated/templates/ReviewItemTemplate.lit.js +8 -0
  170. package/dist/generated/templates/ReviewItemTemplate.lit.js.map +1 -0
  171. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +7 -6
  172. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  173. package/dist/generated/templates/SelectBoxTemplate.lit.js +2 -2
  174. package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
  175. package/dist/generated/templates/TabHeaderTemplate.lit.js +2 -2
  176. package/dist/generated/templates/TabHeaderTemplate.lit.js.map +1 -1
  177. package/dist/generated/templates/TabInOverflowTemplate.lit.js +6 -6
  178. package/dist/generated/templates/TabInOverflowTemplate.lit.js.map +1 -1
  179. package/dist/generated/templates/TabNavigationTemplate.lit.js +3 -1
  180. package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
  181. package/dist/generated/templates/TagGroupTemplate.lit.d.ts +4 -0
  182. package/dist/generated/templates/TagGroupTemplate.lit.js +8 -0
  183. package/dist/generated/templates/TagGroupTemplate.lit.js.map +1 -0
  184. package/dist/generated/templates/TagTemplate.lit.js +11 -7
  185. package/dist/generated/templates/TagTemplate.lit.js.map +1 -1
  186. package/dist/generated/templates/TextAreaTemplate.lit.js +1 -1
  187. package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
  188. package/dist/generated/templates/TextFieldTemplate.lit.js +1 -1
  189. package/dist/generated/templates/TextFieldTemplate.lit.js.map +1 -1
  190. package/dist/generated/themes/CountrySelector.css.js +1 -1
  191. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  192. package/dist/generated/themes/FilterMenu.css.js +1 -1
  193. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  194. package/dist/generated/themes/ListItem.css.js +1 -1
  195. package/dist/generated/themes/ListItem.css.js.map +1 -1
  196. package/dist/generated/themes/MastheadItem.css.js +1 -1
  197. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  198. package/dist/generated/themes/MastheadMobileMenu.css.js +1 -1
  199. package/dist/generated/themes/MastheadMobileMenu.css.js.map +1 -1
  200. package/dist/generated/themes/PhoneNumberField.css.js +1 -1
  201. package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
  202. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  203. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  204. package/dist/generated/themes/ReviewItem.css.d.ts +3 -0
  205. package/dist/generated/themes/ReviewItem.css.js +9 -0
  206. package/dist/generated/themes/ReviewItem.css.js.map +1 -0
  207. package/dist/generated/themes/Search.css.js +1 -1
  208. package/dist/generated/themes/Search.css.js.map +1 -1
  209. package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
  210. package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
  211. package/dist/generated/themes/SecondaryNavigationItem.css.js +1 -1
  212. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
  213. package/dist/generated/themes/SecondaryNavigationSubItem.css.js +1 -1
  214. package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -1
  215. package/dist/generated/themes/SelectBox.css.js +1 -1
  216. package/dist/generated/themes/SelectBox.css.js.map +1 -1
  217. package/dist/generated/themes/Slider.css.js +1 -1
  218. package/dist/generated/themes/Slider.css.js.map +1 -1
  219. package/dist/generated/themes/Tag.css.js +1 -1
  220. package/dist/generated/themes/Tag.css.js.map +1 -1
  221. package/dist/generated/themes/TagGroup.css.d.ts +3 -0
  222. package/dist/generated/themes/TagGroup.css.js +9 -0
  223. package/dist/generated/themes/TagGroup.css.js.map +1 -0
  224. package/dist/generated/themes/TextArea.css.js +1 -1
  225. package/dist/generated/themes/TextArea.css.js.map +1 -1
  226. package/dist/generated/themes/TextField.css.js +1 -1
  227. package/dist/generated/themes/TextField.css.js.map +1 -1
  228. package/dist/generated/themes/Toast.css.js +1 -1
  229. package/dist/generated/themes/Toast.css.js.map +1 -1
  230. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js +1 -1
  231. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js.map +1 -1
  232. package/dist/i18n/messagebundle.properties +7 -3
  233. package/dist/i18n/messagebundle_en.properties +5 -3
  234. package/dist/vscode.html-custom-data.json +148 -78
  235. package/dist/web-types.json +382 -142
  236. package/package.json +8 -8
  237. package/src/Accordion.ts +1 -1
  238. package/src/AccordionItem.ts +2 -2
  239. package/src/Checkbox.ts +1 -1
  240. package/src/CountrySelector.hbs +19 -15
  241. package/src/CountrySelector.ts +42 -9
  242. package/src/DatePicker.hbs +7 -8
  243. package/src/DatePicker.ts +14 -10
  244. package/src/Dropdown.hbs +3 -0
  245. package/src/Dropdown.ts +3 -3
  246. package/src/FilterMenu.hbs +58 -59
  247. package/src/FilterMenu.ts +91 -37
  248. package/src/Footer.hbs +9 -0
  249. package/src/Footer.ts +10 -1
  250. package/src/HeroBanner.hbs +4 -1
  251. package/src/Link.ts +1 -1
  252. package/src/List.ts +43 -23
  253. package/src/ListGroupHeader.ts +2 -2
  254. package/src/ListItem.hbs +4 -2
  255. package/src/ListItem.ts +8 -10
  256. package/src/ListSelectAll.hbs +1 -1
  257. package/src/ListSelectAll.ts +1 -1
  258. package/src/MastheadItem.hbs +5 -3
  259. package/src/MastheadItem.ts +35 -8
  260. package/src/MastheadMenu.hbs +4 -2
  261. package/src/MastheadMenu.ts +30 -0
  262. package/src/MastheadMenuItem.hbs +0 -2
  263. package/src/MastheadMenuItem.ts +2 -16
  264. package/src/MastheadMobileMenu.hbs +36 -10
  265. package/src/MastheadMobileMenu.ts +162 -22
  266. package/src/MastheadProfileMenu.hbs +6 -2
  267. package/src/MastheadProfileMenu.ts +66 -20
  268. package/src/MastheadShell.hbs +10 -4
  269. package/src/MastheadShell.ts +49 -8
  270. package/src/MediaPlayer.hbs +1 -3
  271. package/src/MediaPlayer.ts +122 -26
  272. package/src/PhoneNumberField.hbs +18 -3
  273. package/src/PhoneNumberField.ts +67 -2
  274. package/src/ReviewItem.hbs +20 -0
  275. package/src/ReviewItem.ts +227 -0
  276. package/src/Search.ts +41 -4
  277. package/src/SecondaryNavigation.hbs +9 -7
  278. package/src/SecondaryNavigation.ts +13 -11
  279. package/src/SecondaryNavigationItem.ts +1 -1
  280. package/src/SecondaryNavigationItemBase.ts +1 -1
  281. package/src/SelectBox.hbs +9 -7
  282. package/src/SelectBox.ts +153 -72
  283. package/src/Switch.ts +21 -0
  284. package/src/Tab.ts +1 -1
  285. package/src/TabHeader.hbs +3 -1
  286. package/src/TabInOverflow.hbs +16 -4
  287. package/src/TabNavigation.hbs +15 -7
  288. package/src/TabNavigation.ts +1 -1
  289. package/src/Tag.hbs +28 -12
  290. package/src/Tag.ts +25 -4
  291. package/src/TagGroup.hbs +48 -0
  292. package/src/TagGroup.ts +222 -0
  293. package/src/TextArea.hbs +36 -33
  294. package/src/TextArea.ts +25 -0
  295. package/src/TextField.hbs +8 -6
  296. package/src/TextField.ts +50 -18
  297. package/src/Tooltip.ts +1 -1
  298. package/src/generated/i18n/i18n-defaults.ts +2 -2
  299. package/src/generated/templates/CountrySelectorTemplate.lit.ts +3 -3
  300. package/src/generated/templates/DatePickerTemplate.lit.ts +1 -1
  301. package/src/generated/templates/DropdownTemplate.lit.ts +2 -2
  302. package/src/generated/templates/FilterMenuTemplate.lit.ts +1 -1
  303. package/src/generated/templates/FooterTemplate.lit.ts +9 -9
  304. package/src/generated/templates/HeroBannerTemplate.lit.ts +7 -8
  305. package/src/generated/templates/ListItemTemplate.lit.ts +6 -6
  306. package/src/generated/templates/ListSelectAllTemplate.lit.ts +1 -1
  307. package/src/generated/templates/MastheadItemTemplate.lit.ts +3 -3
  308. package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +1 -1
  309. package/src/generated/templates/MastheadMenuTemplate.lit.ts +2 -2
  310. package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +16 -12
  311. package/src/generated/templates/MastheadProfileMenuTemplate.lit.ts +2 -2
  312. package/src/generated/templates/MastheadShellTemplate.lit.ts +7 -7
  313. package/src/generated/templates/MediaPlayerTemplate.lit.ts +2 -2
  314. package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +5 -2
  315. package/src/generated/templates/ReviewItemTemplate.lit.ts +13 -0
  316. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +7 -6
  317. package/src/generated/templates/SelectBoxTemplate.lit.ts +2 -2
  318. package/src/generated/templates/TabHeaderTemplate.lit.ts +2 -2
  319. package/src/generated/templates/TabInOverflowTemplate.lit.ts +6 -6
  320. package/src/generated/templates/TabNavigationTemplate.lit.ts +3 -1
  321. package/src/generated/templates/TagGroupTemplate.lit.ts +13 -0
  322. package/src/generated/templates/TagTemplate.lit.ts +11 -7
  323. package/src/generated/templates/TextAreaTemplate.lit.ts +1 -1
  324. package/src/generated/templates/TextFieldTemplate.lit.ts +1 -1
  325. package/src/generated/themes/CountrySelector.css.ts +1 -1
  326. package/src/generated/themes/FilterMenu.css.ts +1 -1
  327. package/src/generated/themes/ListItem.css.ts +1 -1
  328. package/src/generated/themes/MastheadItem.css.ts +1 -1
  329. package/src/generated/themes/MastheadMobileMenu.css.ts +1 -1
  330. package/src/generated/themes/PhoneNumberField.css.ts +1 -1
  331. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  332. package/src/generated/themes/ReviewItem.css.ts +13 -0
  333. package/src/generated/themes/Search.css.ts +1 -1
  334. package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
  335. package/src/generated/themes/SecondaryNavigationItem.css.ts +1 -1
  336. package/src/generated/themes/SecondaryNavigationSubItem.css.ts +1 -1
  337. package/src/generated/themes/SelectBox.css.ts +1 -1
  338. package/src/generated/themes/Slider.css.ts +1 -1
  339. package/src/generated/themes/Tag.css.ts +1 -1
  340. package/src/generated/themes/TagGroup.css.ts +13 -0
  341. package/src/generated/themes/TextArea.css.ts +1 -1
  342. package/src/generated/themes/TextField.css.ts +1 -1
  343. package/src/generated/themes/Toast.css.ts +1 -1
  344. package/src/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +1 -1
  345. package/src/i18n/messagebundle.properties +7 -3
  346. package/src/i18n/messagebundle_en.properties +5 -3
  347. package/src/themes/CountrySelector.css +49 -26
  348. package/src/themes/FilterMenu.css +52 -15
  349. package/src/themes/ListItem.css +4 -0
  350. package/src/themes/MastheadItem.css +12 -2
  351. package/src/themes/MastheadMobileMenu.css +4 -0
  352. package/src/themes/PhoneNumberField.css +14 -1
  353. package/src/themes/ReviewItem.css +121 -0
  354. package/src/themes/Search.css +9 -0
  355. package/src/themes/SecondaryNavigation.css +13 -14
  356. package/src/themes/SecondaryNavigationItem.css +3 -2
  357. package/src/themes/SecondaryNavigationSubItem.css +5 -5
  358. package/src/themes/SelectBox.css +34 -0
  359. package/src/themes/Tag.css +20 -0
  360. package/src/themes/TagGroup.css +90 -0
  361. package/src/themes/TextArea.css +13 -0
  362. package/src/themes/TextField.css +25 -8
  363. package/src/themes/Toast.css +4 -0
  364. package/dist/assets/messagebundle_en-6dcc9ab4.js +0 -1
  365. package/dist/assets/parameters-bundle.css-de55cf62.js +0 -2
  366. package/dist/assets/video.es-17aecf95.js +0 -219
package/src/Search.ts CHANGED
@@ -16,7 +16,9 @@ import {
16
16
  isUp,
17
17
  isDown,
18
18
  isEscape,
19
+ isSpace,
19
20
  } from "@ui5/webcomponents-base/dist/Keys.js";
21
+ import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
20
22
  import List from "./List.js";
21
23
  import ListItemBase from "./ListItemBase.js";
22
24
  import "@ui5/webcomponents/dist/Icon.js";
@@ -97,7 +99,7 @@ export enum Mode {
97
99
  * For the <code>udex-search</code>
98
100
  * <h3>ES6 Module Import</h3>
99
101
  *
100
- * <code>import @udex/web-components/dist/Search.js";</code>
102
+ * <code>import "@udex/web-components/dist/Search.js";</code>
101
103
  *
102
104
  * @constructor
103
105
  * @author SAP SE
@@ -481,6 +483,21 @@ class UDExSearch extends UI5Element {
481
483
  @property({ type: Boolean, noAttribute: true })
482
484
  _prefixDropdownExpanded!: boolean;
483
485
 
486
+ /**
487
+ * Defines the active (focus)
488
+ * @default false
489
+ * @private
490
+ */
491
+ @property({ type: Boolean })
492
+ active!: boolean;
493
+ /**
494
+ * Defines is it the touch of the input field (only for mobile devices).
495
+ * @default false
496
+ * @private
497
+ */
498
+ @property({ type: Boolean })
499
+ _isTouched!: boolean;
500
+
484
501
  constructor() {
485
502
  super();
486
503
  this._handleResizeBound = this._handleResize.bind(this);
@@ -742,6 +759,9 @@ class UDExSearch extends UI5Element {
742
759
  }
743
760
 
744
761
  handleInputClick(): void {
762
+ if (!isDesktop()) {
763
+ this._isTouched = true;
764
+ }
745
765
  if (this.showPopoverWhenClickedIntoInput) {
746
766
  this.onOpenPopover();
747
767
  }
@@ -759,7 +779,7 @@ class UDExSearch extends UI5Element {
759
779
 
760
780
  handleAriaExpanded() {
761
781
  const value = this.open.toString();
762
- this.shadowRoot?.querySelector("[udex-id='search-input']")?.setAttribute("aria-expanded", value);
782
+ this.getSearchInput()?.setAttribute("aria-expanded", value);
763
783
  }
764
784
 
765
785
  onOpenPopover(): void {
@@ -882,6 +902,7 @@ class UDExSearch extends UI5Element {
882
902
  }
883
903
 
884
904
  handleBlur(): void {
905
+ this._isTouched = false;
885
906
  if (this.value) {
886
907
  this.labelActiveClass = this._labelActiveClassName;
887
908
  } else {
@@ -977,6 +998,7 @@ class UDExSearch extends UI5Element {
977
998
  }
978
999
 
979
1000
  handleFocus(): void {
1001
+ this.active = true;
980
1002
  this.isFocusedOnTextfield = true;
981
1003
  this.focusClasses = this._focusActiveClassName;
982
1004
  this.labelActiveClass = (this.value || !this.labelAnimationDisabled) ? this._labelActiveClassName : "";
@@ -984,24 +1006,39 @@ class UDExSearch extends UI5Element {
984
1006
  }
985
1007
 
986
1008
  handleFocusout(): void {
1009
+ this.active = false;
987
1010
  this.isFocusedOnTextfield = false;
988
1011
  this.focusClasses = "";
989
1012
  }
990
1013
 
991
1014
  onReset(e: MouseEvent): void {
992
1015
  e.stopPropagation();
1016
+ this.handleReset();
1017
+ }
1018
+
1019
+ handleReset(): void {
993
1020
  this.value = "";
994
1021
  this.showResetButton = false;
995
1022
  this.onClosePopover();
996
- this.handleBlur();
997
1023
  this.fireEvent("handle-value-reset");
998
1024
  this.Suggestion?.resetFocusState();
1025
+ this.focus();
999
1026
  }
1000
1027
 
1001
1028
  handleKeyDownReset(e: KeyboardEvent) {
1002
1029
  if (isTabPrevious(e) && this.open) {
1003
1030
  this.Suggestion?.handlePrevTabReset(e);
1004
1031
  }
1032
+ if (isEnter(e) || isSpace(e)) {
1033
+ e.preventDefault();
1034
+ e.stopPropagation();
1035
+ this.handleReset();
1036
+ this.getSearchInput()?.focus();
1037
+ }
1038
+ }
1039
+
1040
+ private getSearchInput(): HTMLInputElement {
1041
+ return this.shadowRoot?.querySelector("[id='search-input']") as HTMLInputElement;
1005
1042
  }
1006
1043
 
1007
1044
  onVoice(e: MouseEvent): void {
@@ -1025,7 +1062,7 @@ class UDExSearch extends UI5Element {
1025
1062
  onSpeechStart(): void {
1026
1063
  this.speechRecognition.onstart = () => {
1027
1064
  this.voiceActiveClass = this._voiceActiveClassName;
1028
- (this.shadowRoot?.querySelector("[id='search-input']") as HTMLInputElement)?.focus();
1065
+ this.getSearchInput()?.focus();
1029
1066
  };
1030
1067
  }
1031
1068
 
@@ -5,13 +5,15 @@
5
5
  </div>
6
6
  {{/if}}
7
7
  <div class="udex-secondary-navigation__holder">
8
- <div class="udex-secondary-navigation__heading">
9
- {{#if titleHref.length}}
10
- <a class="udex-secondary-navigation__title" href="{{titleHref}}">{{title}}</a>
11
- {{else}}
12
- <span class="udex-secondary-navigation__title">{{title}}</span>
13
- {{/if}}
14
- </div>
8
+ {{#if title.length}}
9
+ <div class="udex-secondary-navigation__heading">
10
+ {{#if titleHref.length}}
11
+ <a class="udex-secondary-navigation__title" href="{{titleHref}}">{{title}}</a>
12
+ {{else}}
13
+ <span class="udex-secondary-navigation__title">{{title}}</span>
14
+ {{/if}}
15
+ </div>
16
+ {{/if}}
15
17
  <div class="udex-secondary-navigation__wrap">
16
18
  <ul
17
19
  role="menubar"
@@ -193,7 +193,7 @@ class UDExSecondaryNavigation extends UI5Element {
193
193
  }
194
194
 
195
195
  reflowItems(): void {
196
- const availableWidth = this.rootHolder.offsetWidth - this.heading?.offsetWidth - (this.optionalButtons?.offsetWidth || 0);
196
+ const availableWidth = this.rootHolder.offsetWidth - (this.heading?.offsetWidth || 0) - (this.optionalButtons?.offsetWidth || 0);
197
197
  const moreButtonWidth = this.getMoreButtonWidth();
198
198
  const itemsGap = 20;
199
199
  const widths = this.parsedItems.map(item => this.getItemWidth(item));
@@ -359,18 +359,20 @@ class UDExSecondaryNavigation extends UI5Element {
359
359
  }
360
360
 
361
361
  handleOutsideClick(): void {
362
- document.addEventListener("click", (e: MouseEvent) => {
363
- if (this.isMobileScreen && e.target !== this) {
364
- this.closeMobileDropdown();
365
- return;
366
- }
367
-
368
- if (this.isDesktopScreen) {
369
- this.handleDesktopDropdown(e);
370
- }
371
- });
362
+ document.addEventListener("mousedown", this.outsideClickListener);
372
363
  }
373
364
 
365
+ outsideClickListener = (e: MouseEvent): void => {
366
+ if (this.isMobileScreen && e.target !== this) {
367
+ this.closeMobileDropdown();
368
+ return;
369
+ }
370
+
371
+ if (this.isDesktopScreen) {
372
+ this.handleDesktopDropdown(e);
373
+ }
374
+ };
375
+
374
376
  closeMobileDropdown(): void {
375
377
  this.mobileNav?.closeDropdown();
376
378
  }
@@ -338,7 +338,7 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
338
338
  get subActiveItemTitle(): string | undefined {
339
339
  if (this.subActiveItem) {
340
340
  const { title, mobileLinkTitle } = this.subActiveItem;
341
- return this._isMobileView ? mobileLinkTitle : title;
341
+ return this._isMobileView ? (mobileLinkTitle || title) : title;
342
342
  }
343
343
  }
344
344
 
@@ -142,7 +142,7 @@ class UDExSecondaryNavigationItemBase extends UI5Element {
142
142
  }
143
143
 
144
144
  get itemLabel(): string {
145
- return this._isMobileView ? this.mobileLinkTitle : this.label;
145
+ return this._isMobileView ? (this.mobileLinkTitle || this.label) : this.label;
146
146
  }
147
147
 
148
148
  get isMobile(): boolean {
package/src/SelectBox.hbs CHANGED
@@ -66,6 +66,7 @@
66
66
  {{/if}}
67
67
  {{#if showTrigger}}
68
68
  <udex-control-button
69
+ tabindex="{{triggerTabIndex}}"
69
70
  class="udex-text-field__trigger"
70
71
  role="combobox"
71
72
  size="Large"
@@ -89,10 +90,11 @@
89
90
  </udex-status-message>
90
91
  {{/if}}
91
92
  </div>
92
- <udex-dropdown
93
+ <ui5-popover
94
+ hide-arrow
93
95
  id="udex-select-box__dropdown"
94
96
  class="udex-select-box__dropdown"
95
- ?disable-target-overlap="{{disableTargetOverlap}}"
97
+ ?allow-target-overlap="{{allowTargetOverlap}}"
96
98
  @keydown="{{handleKeyDownDropdown}}"
97
99
  @ui5-select-all="{{handleSelectAll}}"
98
100
  @ui5-item-press="{{handleItemPress}}"
@@ -100,11 +102,11 @@
100
102
  @ui5-submit-search-value="{{handleSubmitSearch}}"
101
103
  @ui5-handle-value-search="{{handleValueSearch}}"
102
104
  @ui5-handle-value-reset="{{handleResetSearch}}"
103
- @before-open="{{handleDropdownBeforeOpen}}"
104
- @after-close="{{handleDropdownAfterClose}}"
105
+ @ui5-before-open="{{handleDropdownBeforeOpen}}"
106
+ @ui5-after-close="{{handleDropdownAfterClose}}"
105
107
  @search-keydown="{{handleKeyDownSearch}}"
106
- height="{{height}}"
107
- horizontal-align="Left">
108
+ horizontal-align="Left"
109
+ placement-type="Bottom">
108
110
  {{#if _showTagsDropdownContent}}
109
111
  <div class="udex-truncatable-tag-content">
110
112
  <span class="udex-truncatable-tag-content__label">{{truncatableTagLabel}}</span>
@@ -117,7 +119,7 @@
117
119
  {{else}}
118
120
  {{searchableList}}
119
121
  {{/if}}
120
- </udex-dropdown>
122
+ </ui5-popover>
121
123
  {{#if displayonly}}
122
124
  <udex-tooltip
123
125
  placement="{{tooltipPlacement}}">
package/src/SelectBox.ts CHANGED
@@ -15,13 +15,14 @@ import {
15
15
  isUp,
16
16
  isEscape,
17
17
  isBackSpace,
18
+ isShift,
18
19
  } from "@ui5/webcomponents-base/dist/Keys.js";
19
20
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
20
21
  import Tokenizer from "@ui5/webcomponents/dist/Tokenizer.js";
21
22
  import Icon from "@ui5/webcomponents/dist/Icon.js";
22
23
  import Token from "@ui5/webcomponents/dist/Token.js";
23
24
  import ResizeHandler, { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
24
- import UDExDropdown from "./Dropdown.js";
25
+ import ResponsivePopover from "@ui5/webcomponents/dist/ResponsivePopover.js";
25
26
  import UDExList from "./List.js";
26
27
  import UDExListItem from "./ListItem.js";
27
28
  import UDExListGroupHeader from "./ListGroupHeader.js";
@@ -76,7 +77,6 @@ import UDExControlButton from "./ControlButton.js";
76
77
  UDExListSelectAll,
77
78
  UDExSelectBoxItem,
78
79
  UDExList,
79
- UDExDropdown,
80
80
  UDExTooltip,
81
81
  UDExSearch,
82
82
  UDExButton,
@@ -86,6 +86,7 @@ import UDExControlButton from "./ControlButton.js";
86
86
  Icon,
87
87
  UDExStatusMessage,
88
88
  UDExControlButton,
89
+ ResponsivePopover,
89
90
  ],
90
91
  })
91
92
 
@@ -222,20 +223,37 @@ class UDExSelectBox extends UDExSearchableListBase {
222
223
  @property({ type: String, noAttribute: true })
223
224
  _direction?: string;
224
225
 
226
+ /**
227
+ * @default false
228
+ * @private
229
+ */
225
230
  @property({ type: Boolean })
226
231
  _focused!: boolean;
227
232
 
233
+ /**
234
+ * @default false
235
+ * @private
236
+ */
228
237
  @property({ type: Boolean })
229
- _open?: boolean = false;
238
+ _open!: boolean;
230
239
 
240
+ /**
241
+ * @default false
242
+ * @private
243
+ */
231
244
  @property({ type: Boolean })
232
- _showTagsDropdownContent: boolean = false;
245
+ _showTagsDropdownContent!: boolean;
233
246
 
234
- _dropdown!: UDExDropdown;
247
+ _trigger!: HTMLElement;
248
+ _popover!: ResponsivePopover;
235
249
  _tokenizer!: Tokenizer;
236
250
  _search!: UDExSearch;
237
251
  _singleSelectedOption!: string;
238
252
  _truncatableTag!: UDExTag;
253
+ _tags!: Array<UDExTag>;
254
+ _inactiveTabIndex: number = -1;
255
+ _activeTabIndex: number = 0;
256
+ _openedByTrigger: boolean = true;
239
257
 
240
258
  _handleResizeBound: ResizeObserverCallback;
241
259
 
@@ -246,22 +264,24 @@ class UDExSelectBox extends UDExSearchableListBase {
246
264
  this._filteredItems = [];
247
265
  }
248
266
 
249
- onEnterDOM(): void {
267
+ onEnterDOM() {
250
268
  ResizeHandler.register(this, this._handleResizeBound);
251
269
  }
252
270
 
253
- onExitDOM(): void {
271
+ onExitDOM() {
254
272
  ResizeHandler.deregister(this, this._handleResizeBound);
255
273
  }
256
274
 
257
275
  onAfterRendering() {
258
- this._tokenizer = this.tokenizer;
259
- this._dropdown = this.dropdown;
260
- this._search = this.search;
276
+ this._tokenizer = this.getTokenizer();
277
+ this._popover = this.getPopover();
278
+ this._search = this.getSearch();
279
+ this._trigger = this.getTrigger();
280
+ this._tags = this.getTags();
261
281
  this.handleDirection();
262
-
263
282
  if (this._tokenizer?.tokens.length > 0) {
264
283
  this.handleOutsideClick();
284
+ this.resetTagsTabIndexes();
265
285
  }
266
286
  }
267
287
 
@@ -274,7 +294,7 @@ class UDExSelectBox extends UDExSearchableListBase {
274
294
  }
275
295
 
276
296
  _handleResize() {
277
- this._dropdown.style.setProperty("--udex-dropdown-pane-width", `${this.offsetWidth}px`);
297
+ this._popover.style.setProperty("--udex-dropdown-pane-width", `${this.offsetWidth}px`);
278
298
  }
279
299
 
280
300
  handleItemPress(e:CustomEvent) {
@@ -324,7 +344,11 @@ class UDExSelectBox extends UDExSearchableListBase {
324
344
  }
325
345
 
326
346
  handleDropdownBeforeOpen() {
327
- this._open = true;
347
+ if (this.height) {
348
+ const content = this._popover.shadowRoot!.querySelector("[part=content]") as HTMLElement;
349
+ content.style.maxHeight = this.height;
350
+ }
351
+ this.fireEvent("before-open");
328
352
  }
329
353
 
330
354
  handleDropdownAfterClose() {
@@ -366,13 +390,7 @@ class UDExSelectBox extends UDExSearchableListBase {
366
390
  handleTagPress(e: CustomEvent) {
367
391
  const tag = e.target as UDExTag;
368
392
  tag.selected = false;
369
-
370
- if (tag.isTruncatable && !this._tokenizer.expanded) {
371
- this._truncatableTag = tag;
372
- this._truncatableTag.selected = true;
373
- this._showTagsDropdownContent = true;
374
- this.openDropdown();
375
- }
393
+ this.toggleTruncatedPopover(tag);
376
394
  }
377
395
 
378
396
  handleUnselectTruncatableTag() {
@@ -383,11 +401,13 @@ class UDExSelectBox extends UDExSearchableListBase {
383
401
 
384
402
  handleKeydownTokenizer(e: KeyboardEvent) {
385
403
  e.stopPropagation();
404
+ this.getTagContent(this._tags[0]).tabIndex = this._inactiveTabIndex;
405
+
386
406
  const target = e.target as Token;
387
407
  const activeIndex = this._tokenizer.tokens?.indexOf(target);
388
408
  const tagsCount = this._tokenizer._tokensCount;
389
- const isTabPreviousFirstTag = isTabPrevious(e) && activeIndex === 0;
390
- const isTabNextLastTag = isTabNext(e) && this._tokenizer._tokensCount === activeIndex + 1;
409
+ const shouldNavigateTags = (isLeft(e) || isRight(e) || isBackSpace(e) || isDelete(e)) && tagsCount > 0;
410
+ this._tokenizer.expanded = shouldNavigateTags;
391
411
 
392
412
  if (isLeft(e) && activeIndex !== 0) {
393
413
  this.focusTag(activeIndex - 1);
@@ -399,35 +419,33 @@ class UDExSelectBox extends UDExSearchableListBase {
399
419
  this.scrollToTag(activeIndex + 1);
400
420
  }
401
421
 
402
- if (isTabNextLastTag || isTabPreviousFirstTag) {
403
- this._tokenizer.expanded = false;
404
- }
405
-
406
- if (isDown(e) || isUp(e)) {
422
+ if ((isDown(e) || isUp(e))) {
423
+ this._openedByTrigger = false;
407
424
  this.openDropdown();
408
425
  }
409
426
  }
410
427
 
411
428
  handleKeyDownTrigger(e: KeyboardEvent) {
412
- if (isSpace(e)) {
413
- e.preventDefault();
414
- }
415
-
416
429
  if (isSpace(e) || isEnter(e)) {
430
+ e.preventDefault();
431
+ e.stopPropagation();
432
+ this._showTagsDropdownContent = false;
433
+ this._openedByTrigger = true;
417
434
  this.openDropdown();
418
435
  }
419
-
420
- if (isTabNext(e) && this._tokenizer?._tokensCount > 0) {
421
- this._tokenizer.expanded = true;
422
- setTimeout(() => {
423
- this.focusTag(this._tokenizer._tokensCount - 1);
424
- });
425
- }
426
436
  }
427
437
 
428
438
  handleKeyDownTag(e: KeyboardEvent) {
429
- if (isSpace(e)) {
439
+ const tag = e.target as UDExTag;
440
+ if (isSpace(e) || isShift(e) || isEnter(e)) {
430
441
  e.preventDefault();
442
+ e.stopPropagation();
443
+ }
444
+
445
+ if (tag.isTruncatable && this.validTruncatableKey(e)) {
446
+ this.toggleTruncatedPopover(tag);
447
+ } else {
448
+ this._showTagsDropdownContent = false;
431
449
  }
432
450
 
433
451
  if (isDelete(e) || isBackSpace(e)) {
@@ -435,32 +453,37 @@ class UDExSelectBox extends UDExSearchableListBase {
435
453
  const target = e.target as Token;
436
454
  const tags = this._tokenizer.tokens;
437
455
  const deletedTagIndex = tags.indexOf(target);
438
- const nextTokenIndex = deletedTagIndex === tags.length - 1 ? deletedTagIndex - 1 : deletedTagIndex + 1;
456
+ let nextTokenIndex = deletedTagIndex + 1;
439
457
  if (this._tokenizer.tokens.length !== 1) {
440
- this.focusTag(nextTokenIndex);
458
+ if (deletedTagIndex === tags.length - 1) {
459
+ nextTokenIndex = deletedTagIndex - 1;
460
+ this.focusTag(nextTokenIndex);
461
+ } else {
462
+ this.focusTag(nextTokenIndex);
463
+ }
441
464
  this.scrollToTag(nextTokenIndex);
442
465
  } else {
443
- this.trigger.focus();
466
+ this._trigger.focus();
444
467
  }
445
468
  }
446
469
  }
447
470
 
448
471
  handleKeyDownDropdown(e: KeyboardEvent) {
449
472
  const isTabPrevPress = isTabPrevious(e) && !this._search;
473
+ const isTabNextPress = isTabNext(e);
474
+ const isEscapePress = isEscape(e);
475
+ const isSearchResetTrigger = e.target === this._search;
450
476
 
451
- if (isEscape(e)) {
452
- this.trigger.focus();
453
- }
454
-
455
- if (isTabNext(e) || isTabPrevPress) {
456
- this.closeDropdown();
477
+ if ((isTabNextPress && (!isSearchResetTrigger || this.isListEmpty)) || isTabPrevPress || isEscapePress) {
478
+ this.closeDropdown(e);
457
479
  }
458
480
  }
459
481
 
460
482
  handleKeyDownSearch(e: CustomEvent) {
461
483
  const keyEvent = e.detail as KeyboardEvent;
484
+
462
485
  if (isTabPrevious(keyEvent) || isEscape(keyEvent)) {
463
- this.closeDropdown();
486
+ this.closeDropdown(keyEvent);
464
487
  }
465
488
  }
466
489
 
@@ -473,12 +496,41 @@ class UDExSelectBox extends UDExSearchableListBase {
473
496
  }
474
497
 
475
498
  openDropdown() {
476
- this._dropdown.onOpen(this.trigger);
499
+ this._popover.showAt(this._trigger);
500
+ this._open = true;
501
+ if (this.showMultiSelectedOptions) {
502
+ this._tokenizer.expanded = true;
503
+ }
477
504
  }
478
505
 
479
- closeDropdown() {
480
- if (this._dropdown.open) {
481
- this._dropdown.onClose();
506
+ closeDropdown(e?: KeyboardEvent) {
507
+ if (this._popover.open) {
508
+ if (this._tokenizer) {
509
+ this._tokenizer.expanded = false;
510
+ }
511
+
512
+ if (e && (isEscape(e) || isTabPrevious(e))) {
513
+ e.preventDefault();
514
+ if (this._openedByTrigger) {
515
+ this._trigger.focus();
516
+ } else {
517
+ this.focusTag(0);
518
+ }
519
+ }
520
+ this._popover.close();
521
+ }
522
+ }
523
+
524
+ toggleTruncatedPopover(tag: UDExTag) {
525
+ if (!tag.isTruncatable) {
526
+ this._showTagsDropdownContent = false;
527
+ }
528
+
529
+ if (tag.isTruncatable && !this._open) {
530
+ this._truncatableTag = tag;
531
+ this._truncatableTag.selected = true;
532
+ this._showTagsDropdownContent = true;
533
+ this.openDropdown();
482
534
  }
483
535
  }
484
536
 
@@ -498,7 +550,7 @@ class UDExSelectBox extends UDExSearchableListBase {
498
550
  }
499
551
 
500
552
  handleOpenMultiSelect() {
501
- if (this._dropdown.open) {
553
+ if (this._popover.open) {
502
554
  this.closeDropdown();
503
555
  } else {
504
556
  this._showTagsDropdownContent = false;
@@ -507,7 +559,7 @@ class UDExSelectBox extends UDExSearchableListBase {
507
559
  }
508
560
 
509
561
  handleOpenSingleSelect() {
510
- if (this._dropdown.open) {
562
+ if (this._popover.open) {
511
563
  this.closeDropdown();
512
564
  } else {
513
565
  this.openDropdown();
@@ -526,6 +578,30 @@ class UDExSelectBox extends UDExSearchableListBase {
526
578
  return this.displayonly ? this.showMoreReadOnlyItems() : this.showMoreItems();
527
579
  }
528
580
 
581
+ getPopover(): ResponsivePopover {
582
+ return this.shadowRoot!.querySelector<ResponsivePopover>("[ui5-popover]")!;
583
+ }
584
+
585
+ getSearch(): UDExSearch {
586
+ return this.shadowRoot!.querySelector<UDExSearch>("udex-search")!;
587
+ }
588
+
589
+ getTrigger(): HTMLElement {
590
+ return this.shadowRoot!.querySelector(".udex-text-field__input")!;
591
+ }
592
+
593
+ getTokenizer(): Tokenizer {
594
+ return this.shadowRoot!.querySelector<Tokenizer>("[ui5-tokenizer]")!;
595
+ }
596
+
597
+ getTags(): Array<UDExTag> {
598
+ return Array.from(this.shadowRoot!.querySelectorAll<UDExTag>("udex-tag"));
599
+ }
600
+
601
+ getTagContent(tag: UDExTag): HTMLElement {
602
+ return tag.shadowRoot!.querySelector(".udex-tag")!;
603
+ }
604
+
529
605
  handleDirection() {
530
606
  const directionStyles: string = window
531
607
  .getComputedStyle(this)
@@ -538,6 +614,18 @@ class UDExSelectBox extends UDExSearchableListBase {
538
614
  }
539
615
  }
540
616
 
617
+ validTruncatableKey(e: KeyboardEvent): boolean {
618
+ return isSpace(e) || isEnter(e);
619
+ }
620
+
621
+ resetTagsTabIndexes() {
622
+ this._tags.forEach((tag, i) => { this.getTagContent(tag).tabIndex = i === 0 ? this._activeTabIndex : this._inactiveTabIndex; });
623
+ }
624
+
625
+ get allowTargetOverlap(): boolean {
626
+ return !this.disableTargetOverlap;
627
+ }
628
+
541
629
  get isDisabled(): boolean {
542
630
  return this.readonly || this.displayonly || this.disabled;
543
631
  }
@@ -558,22 +646,6 @@ class UDExSelectBox extends UDExSearchableListBase {
558
646
  return this.hasSelectedItems && this.modeMultiSelect;
559
647
  }
560
648
 
561
- get dropdown(): UDExDropdown {
562
- return this.shadowRoot!.querySelector<UDExDropdown>("udex-dropdown")!;
563
- }
564
-
565
- get search(): UDExSearch {
566
- return this.shadowRoot!.querySelector<UDExSearch>("udex-search")!;
567
- }
568
-
569
- get trigger(): UDExDropdown {
570
- return this.shadowRoot!.querySelector(".udex-text-field__input")!;
571
- }
572
-
573
- get tokenizer(): Tokenizer {
574
- return this.shadowRoot!.querySelector<Tokenizer>("[ui5-tokenizer]")!;
575
- }
576
-
577
649
  get labelClass(): string {
578
650
  const baseClass = "udex-text-field__label";
579
651
  const isActive = this._open || this._singleSelectedOption || this.hasSelectedItems;
@@ -594,6 +666,11 @@ class UDExSelectBox extends UDExSearchableListBase {
594
666
  if (this._showTagsDropdownContent && this._truncatableTag) {
595
667
  return false;
596
668
  }
669
+
670
+ if (this._tokenizer) {
671
+ return this._tokenizer.expanded;
672
+ }
673
+
597
674
  return this._open;
598
675
  }
599
676
 
@@ -607,7 +684,11 @@ class UDExSelectBox extends UDExSearchableListBase {
607
684
 
608
685
  get effectiveTabIndex(): string {
609
686
  const tabindex = this.getAttribute("tabindex");
610
- return this.disabled ? "-1" : tabindex || "0";
687
+ return this.disabled ? `${this._inactiveTabIndex}` : tabindex || `${this._inactiveTabIndex}`;
688
+ }
689
+
690
+ get triggerTabIndex(): string {
691
+ return this.disabled || this.readonly ? `${this._inactiveTabIndex}` : "";
611
692
  }
612
693
 
613
694
  get iconAccessibleNameText(): string {