@ui5/webcomponents 1.1.2 → 1.2.2

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 (574) hide show
  1. package/CHANGELOG.md +100 -0
  2. package/README.md +1 -0
  3. package/dist/Avatar.js +1 -1
  4. package/dist/AvatarGroup.js +2 -2
  5. package/dist/Breadcrumbs.js +11 -4
  6. package/dist/BusyIndicator.js +1 -1
  7. package/dist/Button.js +44 -30
  8. package/dist/Calendar.js +1 -1
  9. package/dist/Card.js +2 -2
  10. package/dist/CheckBox.js +3 -3
  11. package/dist/ColorPalette.js +1 -1
  12. package/dist/ColorPaletteItem.js +2 -2
  13. package/dist/ColorPalettePopover.js +3 -3
  14. package/dist/ColorPicker.js +42 -4
  15. package/dist/ComboBox.js +10 -4
  16. package/dist/DatePicker.js +10 -8
  17. package/dist/DateRangePicker.js +7 -1
  18. package/dist/Dialog.js +35 -5
  19. package/dist/FileUploader.js +2 -1
  20. package/dist/Input.js +87 -19
  21. package/dist/Interfaces.js +1 -1
  22. package/dist/Label.js +7 -1
  23. package/dist/Link.js +16 -5
  24. package/dist/List.js +6 -16
  25. package/dist/ListItem.js +1 -1
  26. package/dist/ListItemBase.js +1 -1
  27. package/dist/MessageStrip.js +0 -8
  28. package/dist/MultiComboBox.js +186 -27
  29. package/dist/Panel.js +7 -8
  30. package/dist/Popover.js +39 -9
  31. package/dist/Popup.js +61 -26
  32. package/dist/ProgressIndicator.js +5 -0
  33. package/dist/RadioButton.js +1 -1
  34. package/dist/RangeSlider.js +6 -1
  35. package/dist/RatingIndicator.js +2 -2
  36. package/dist/ResponsivePopover.js +15 -11
  37. package/dist/SegmentedButton.js +2 -2
  38. package/dist/SegmentedButtonItem.js +7 -2
  39. package/dist/Select.js +14 -5
  40. package/dist/Slider.js +5 -0
  41. package/dist/SliderBase.js +4 -3
  42. package/dist/SplitButton.js +11 -5
  43. package/dist/StepInput.js +4 -4
  44. package/dist/Switch.js +13 -1
  45. package/dist/TabContainer.js +44 -3
  46. package/dist/Table.js +243 -4
  47. package/dist/TableColumn.js +0 -7
  48. package/dist/TableGroupRow.js +4 -0
  49. package/dist/TableRow.js +87 -8
  50. package/dist/TextArea.js +9 -4
  51. package/dist/Tokenizer.js +74 -8
  52. package/dist/Tree.js +5 -1
  53. package/dist/TreeItem.js +2 -2
  54. package/dist/TreeListItem.js +5 -2
  55. package/dist/api.json +129 -68
  56. package/dist/css/themes/Avatar.css +1 -1
  57. package/dist/css/themes/Button.css +1 -1
  58. package/dist/css/themes/Calendar.css +1 -1
  59. package/dist/css/themes/ColorPalettePopover.css +1 -1
  60. package/dist/css/themes/ComboBox.css +1 -1
  61. package/dist/css/themes/DatePickerPopover.css +1 -1
  62. package/dist/css/themes/Dialog.css +1 -1
  63. package/dist/css/themes/Input.css +1 -1
  64. package/dist/css/themes/ListItemBase.css +1 -1
  65. package/dist/css/themes/MultiComboBox.css +1 -1
  66. package/dist/css/themes/PopupGlobal.css +1 -1
  67. package/dist/css/themes/PopupsCommon.css +1 -1
  68. package/dist/css/themes/ResponsivePopover.css +1 -1
  69. package/dist/css/themes/SelectPopover.css +1 -1
  70. package/dist/css/themes/SplitButton.css +1 -1
  71. package/dist/css/themes/Suggestions.css +1 -1
  72. package/dist/css/themes/TabInOverflow.css +1 -1
  73. package/dist/css/themes/TableRow.css +1 -1
  74. package/dist/css/themes/TimePickerPopover.css +1 -1
  75. package/dist/css/themes/TokenizerPopover.css +1 -0
  76. package/dist/css/themes/ValueStateMessage.css +1 -1
  77. package/dist/css/themes/sap_belize/parameters-bundle.css +1 -1
  78. package/dist/css/themes/sap_belize_hcb/parameters-bundle.css +1 -1
  79. package/dist/css/themes/sap_belize_hcw/parameters-bundle.css +1 -1
  80. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  81. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  82. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  83. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  84. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  85. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -0
  86. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  87. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -0
  88. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -0
  89. package/dist/features/InputSuggestions.js +4 -0
  90. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  91. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  92. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  93. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  94. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  95. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  96. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  97. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  98. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  99. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  100. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  101. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  102. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  103. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  104. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  105. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  106. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  107. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  108. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  109. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  110. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  111. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  112. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  113. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  114. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  115. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  116. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  117. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  118. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  119. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  120. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  121. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  122. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  123. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  124. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  125. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  126. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  127. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  128. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  129. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  130. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  131. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  132. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  133. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  134. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  135. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  136. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  137. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  138. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  139. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  140. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  141. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  142. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  143. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -0
  144. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  145. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -0
  146. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -0
  147. package/dist/generated/i18n/i18n-defaults.js +2 -2
  148. package/dist/generated/json-imports/Themes-static.js +8 -2
  149. package/dist/generated/json-imports/Themes.js +4 -1
  150. package/dist/generated/templates/AvatarGroupTemplate.lit.js +1 -1
  151. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +1 -1
  152. package/dist/generated/templates/BreadcrumbsTemplate.lit.js +1 -1
  153. package/dist/generated/templates/ButtonTemplate.lit.js +1 -1
  154. package/dist/generated/templates/CalendarTemplate.lit.js +1 -1
  155. package/dist/generated/templates/CarouselTemplate.lit.js +3 -3
  156. package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +1 -1
  157. package/dist/generated/templates/ColorPickerTemplate.lit.js +1 -1
  158. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +1 -1
  159. package/dist/generated/templates/CustomListItemTemplate.lit.js +2 -2
  160. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +1 -1
  161. package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
  162. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +1 -1
  163. package/dist/generated/templates/DialogTemplate.lit.js +3 -3
  164. package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +5 -4
  165. package/dist/generated/templates/InputPopoverTemplate.lit.js +2 -2
  166. package/dist/generated/templates/InputTemplate.lit.js +6 -5
  167. package/dist/generated/templates/ListItemTemplate.lit.js +2 -2
  168. package/dist/generated/templates/ListTemplate.lit.js +1 -1
  169. package/dist/generated/templates/MessageStripTemplate.lit.js +1 -1
  170. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +1 -1
  171. package/dist/generated/templates/MultiInputTemplate.lit.js +7 -6
  172. package/dist/generated/templates/PanelTemplate.lit.js +2 -2
  173. package/dist/generated/templates/PopoverTemplate.lit.js +3 -3
  174. package/dist/generated/templates/PopupTemplate.lit.js +1 -1
  175. package/dist/generated/templates/RatingIndicatorTemplate.lit.js +1 -1
  176. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +5 -5
  177. package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +1 -1
  178. package/dist/generated/templates/SelectPopoverTemplate.lit.js +1 -1
  179. package/dist/generated/templates/SelectTemplate.lit.js +1 -1
  180. package/dist/generated/templates/StandardListItemTemplate.lit.js +2 -2
  181. package/dist/generated/templates/StepInputTemplate.lit.js +1 -1
  182. package/dist/generated/templates/SuggestionListItemTemplate.lit.js +2 -2
  183. package/dist/generated/templates/SwitchTemplate.lit.js +1 -1
  184. package/dist/generated/templates/TabContainerPopoverTemplate.lit.js +1 -1
  185. package/dist/generated/templates/TabContainerTemplate.lit.js +4 -4
  186. package/dist/generated/templates/TableGroupRowTemplate.lit.js +1 -1
  187. package/dist/generated/templates/TableRowTemplate.lit.js +2 -2
  188. package/dist/generated/templates/TableTemplate.lit.js +3 -3
  189. package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +1 -1
  190. package/dist/generated/templates/TextAreaTemplate.lit.js +1 -1
  191. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +1 -1
  192. package/dist/generated/templates/ToggleButtonTemplate.lit.js +1 -1
  193. package/dist/generated/templates/TokenizerTemplate.lit.js +1 -1
  194. package/dist/generated/templates/TreeListItemTemplate.lit.js +2 -2
  195. package/dist/generated/themes/Avatar.css.js +1 -1
  196. package/dist/generated/themes/Button.css.js +1 -1
  197. package/dist/generated/themes/Calendar.css.js +1 -1
  198. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  199. package/dist/generated/themes/ComboBox.css.js +1 -1
  200. package/dist/generated/themes/DatePickerPopover.css.js +1 -1
  201. package/dist/generated/themes/Dialog.css.js +1 -1
  202. package/dist/generated/themes/Input.css.js +1 -1
  203. package/dist/generated/themes/ListItemBase.css.js +1 -1
  204. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  205. package/dist/generated/themes/PopupGlobal.css.js +1 -1
  206. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  207. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  208. package/dist/generated/themes/SelectPopover.css.js +1 -1
  209. package/dist/generated/themes/SplitButton.css.js +1 -1
  210. package/dist/generated/themes/Suggestions.css.js +1 -1
  211. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  212. package/dist/generated/themes/TableRow.css.js +1 -1
  213. package/dist/generated/themes/TimePickerPopover.css.js +1 -1
  214. package/dist/generated/themes/TokenizerPopover.css.js +8 -0
  215. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  216. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  217. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  218. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  219. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  220. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  221. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  222. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  223. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  224. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -0
  225. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  226. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -0
  227. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -0
  228. package/dist/i18n/messagebundle.properties +6 -0
  229. package/dist/i18n/messagebundle_ar.properties +5 -0
  230. package/dist/i18n/messagebundle_bg.properties +5 -0
  231. package/dist/i18n/messagebundle_ca.properties +5 -0
  232. package/dist/i18n/messagebundle_cs.properties +5 -0
  233. package/dist/i18n/messagebundle_cy.properties +5 -0
  234. package/dist/i18n/messagebundle_da.properties +5 -0
  235. package/dist/i18n/messagebundle_de.properties +5 -0
  236. package/dist/i18n/messagebundle_el.properties +5 -0
  237. package/dist/i18n/messagebundle_en.properties +5 -0
  238. package/dist/i18n/messagebundle_en_GB.properties +5 -0
  239. package/dist/i18n/messagebundle_en_US_saprigi.properties +2 -0
  240. package/dist/i18n/messagebundle_es.properties +5 -0
  241. package/dist/i18n/messagebundle_es_MX.properties +5 -0
  242. package/dist/i18n/messagebundle_et.properties +5 -0
  243. package/dist/i18n/messagebundle_fi.properties +5 -0
  244. package/dist/i18n/messagebundle_fr.properties +5 -0
  245. package/dist/i18n/messagebundle_fr_CA.properties +5 -0
  246. package/dist/i18n/messagebundle_hi.properties +5 -0
  247. package/dist/i18n/messagebundle_hr.properties +5 -0
  248. package/dist/i18n/messagebundle_hu.properties +5 -0
  249. package/dist/i18n/messagebundle_id.properties +5 -0
  250. package/dist/i18n/messagebundle_it.properties +5 -0
  251. package/dist/i18n/messagebundle_iw.properties +5 -0
  252. package/dist/i18n/messagebundle_ja.properties +7 -2
  253. package/dist/i18n/messagebundle_kk.properties +5 -0
  254. package/dist/i18n/messagebundle_ko.properties +5 -0
  255. package/dist/i18n/messagebundle_lt.properties +5 -0
  256. package/dist/i18n/messagebundle_lv.properties +5 -0
  257. package/dist/i18n/messagebundle_ms.properties +5 -0
  258. package/dist/i18n/messagebundle_nl.properties +5 -0
  259. package/dist/i18n/messagebundle_no.properties +5 -0
  260. package/dist/i18n/messagebundle_pl.properties +5 -0
  261. package/dist/i18n/messagebundle_pt.properties +5 -0
  262. package/dist/i18n/messagebundle_pt_PT.properties +5 -0
  263. package/dist/i18n/messagebundle_ro.properties +5 -0
  264. package/dist/i18n/messagebundle_ru.properties +5 -0
  265. package/dist/i18n/messagebundle_sh.properties +5 -0
  266. package/dist/i18n/messagebundle_sk.properties +5 -0
  267. package/dist/i18n/messagebundle_sl.properties +5 -0
  268. package/dist/i18n/messagebundle_sv.properties +5 -0
  269. package/dist/i18n/messagebundle_th.properties +5 -0
  270. package/dist/i18n/messagebundle_tr.properties +5 -0
  271. package/dist/i18n/messagebundle_uk.properties +5 -0
  272. package/dist/i18n/messagebundle_vi.properties +5 -0
  273. package/dist/i18n/messagebundle_zh_CN.properties +5 -0
  274. package/dist/i18n/messagebundle_zh_TW.properties +5 -0
  275. package/package.json +11 -9
  276. package/src/Avatar.js +1 -1
  277. package/src/AvatarGroup.hbs +1 -1
  278. package/src/AvatarGroup.js +2 -2
  279. package/src/Breadcrumbs.hbs +2 -2
  280. package/src/Breadcrumbs.js +11 -4
  281. package/src/BreadcrumbsPopover.hbs +0 -1
  282. package/src/BusyIndicator.js +1 -1
  283. package/src/Button.hbs +4 -4
  284. package/src/Button.js +44 -30
  285. package/src/Calendar.hbs +1 -1
  286. package/src/Calendar.js +1 -1
  287. package/src/Card.js +2 -2
  288. package/src/Carousel.hbs +2 -2
  289. package/src/CheckBox.js +3 -3
  290. package/src/ColorPalette.js +1 -1
  291. package/src/ColorPaletteItem.js +2 -2
  292. package/src/ColorPalettePopover.hbs +1 -1
  293. package/src/ColorPalettePopover.js +3 -3
  294. package/src/ColorPicker.hbs +1 -0
  295. package/src/ColorPicker.js +42 -4
  296. package/src/ComboBox.js +10 -4
  297. package/src/ComboBoxPopover.hbs +0 -1
  298. package/src/DatePicker.hbs +1 -1
  299. package/src/DatePicker.js +10 -8
  300. package/src/DatePickerPopover.hbs +0 -2
  301. package/src/DateRangePicker.js +7 -1
  302. package/src/Dialog.hbs +3 -2
  303. package/src/Dialog.js +35 -5
  304. package/src/FileUploader.js +2 -1
  305. package/src/FileUploaderPopover.hbs +3 -2
  306. package/src/Input.hbs +5 -1
  307. package/src/Input.js +87 -19
  308. package/src/InputPopover.hbs +3 -4
  309. package/src/Interfaces.js +1 -1
  310. package/src/Label.js +7 -1
  311. package/src/Link.js +16 -5
  312. package/src/List.hbs +1 -1
  313. package/src/List.js +6 -16
  314. package/src/ListItem.hbs +1 -1
  315. package/src/ListItem.js +1 -1
  316. package/src/ListItemBase.js +1 -1
  317. package/src/MessageStrip.hbs +1 -1
  318. package/src/MessageStrip.js +0 -8
  319. package/src/MultiComboBox.js +186 -27
  320. package/src/MultiComboBoxPopover.hbs +0 -1
  321. package/src/Panel.hbs +4 -3
  322. package/src/Panel.js +7 -8
  323. package/src/Popover.hbs +2 -2
  324. package/src/Popover.js +39 -9
  325. package/src/Popup.hbs +1 -1
  326. package/src/Popup.js +61 -26
  327. package/src/ProgressIndicator.js +5 -0
  328. package/src/RadioButton.js +1 -1
  329. package/src/RangeSlider.js +6 -1
  330. package/src/RatingIndicator.hbs +2 -0
  331. package/src/RatingIndicator.js +2 -2
  332. package/src/ResponsivePopover.hbs +5 -5
  333. package/src/ResponsivePopover.js +15 -11
  334. package/src/SegmentedButton.js +2 -2
  335. package/src/SegmentedButtonItem.hbs +1 -1
  336. package/src/SegmentedButtonItem.js +7 -2
  337. package/src/Select.hbs +1 -0
  338. package/src/Select.js +14 -5
  339. package/src/SelectPopover.hbs +0 -1
  340. package/src/Slider.js +5 -0
  341. package/src/SliderBase.js +4 -3
  342. package/src/SplitButton.js +11 -5
  343. package/src/StepInput.hbs +4 -3
  344. package/src/StepInput.js +4 -4
  345. package/src/Switch.hbs +1 -1
  346. package/src/Switch.js +13 -1
  347. package/src/TabContainer.hbs +3 -3
  348. package/src/TabContainer.js +44 -3
  349. package/src/TabContainerPopover.hbs +1 -1
  350. package/src/Table.hbs +11 -1
  351. package/src/Table.js +243 -4
  352. package/src/TableColumn.js +0 -7
  353. package/src/TableGroupRow.hbs +1 -0
  354. package/src/TableGroupRow.js +4 -0
  355. package/src/TableRow.hbs +2 -0
  356. package/src/TableRow.js +87 -8
  357. package/src/TextArea.hbs +1 -1
  358. package/src/TextArea.js +9 -4
  359. package/src/TextAreaPopover.hbs +0 -1
  360. package/src/TimePickerPopover.hbs +0 -1
  361. package/src/Tokenizer.hbs +2 -1
  362. package/src/Tokenizer.js +74 -8
  363. package/src/Tree.js +5 -1
  364. package/src/TreeItem.js +2 -2
  365. package/src/TreeListItem.js +5 -2
  366. package/src/features/InputSuggestions.js +4 -0
  367. package/src/i18n/messagebundle.properties +6 -0
  368. package/src/i18n/messagebundle_ar.properties +5 -0
  369. package/src/i18n/messagebundle_bg.properties +5 -0
  370. package/src/i18n/messagebundle_ca.properties +5 -0
  371. package/src/i18n/messagebundle_cs.properties +5 -0
  372. package/src/i18n/messagebundle_cy.properties +5 -0
  373. package/src/i18n/messagebundle_da.properties +5 -0
  374. package/src/i18n/messagebundle_de.properties +5 -0
  375. package/src/i18n/messagebundle_el.properties +5 -0
  376. package/src/i18n/messagebundle_en.properties +5 -0
  377. package/src/i18n/messagebundle_en_GB.properties +5 -0
  378. package/src/i18n/messagebundle_en_US_saprigi.properties +2 -0
  379. package/src/i18n/messagebundle_es.properties +5 -0
  380. package/src/i18n/messagebundle_es_MX.properties +5 -0
  381. package/src/i18n/messagebundle_et.properties +5 -0
  382. package/src/i18n/messagebundle_fi.properties +5 -0
  383. package/src/i18n/messagebundle_fr.properties +5 -0
  384. package/src/i18n/messagebundle_fr_CA.properties +5 -0
  385. package/src/i18n/messagebundle_hi.properties +5 -0
  386. package/src/i18n/messagebundle_hr.properties +5 -0
  387. package/src/i18n/messagebundle_hu.properties +5 -0
  388. package/src/i18n/messagebundle_id.properties +5 -0
  389. package/src/i18n/messagebundle_it.properties +5 -0
  390. package/src/i18n/messagebundle_iw.properties +5 -0
  391. package/src/i18n/messagebundle_ja.properties +7 -2
  392. package/src/i18n/messagebundle_kk.properties +5 -0
  393. package/src/i18n/messagebundle_ko.properties +5 -0
  394. package/src/i18n/messagebundle_lt.properties +5 -0
  395. package/src/i18n/messagebundle_lv.properties +5 -0
  396. package/src/i18n/messagebundle_ms.properties +5 -0
  397. package/src/i18n/messagebundle_nl.properties +5 -0
  398. package/src/i18n/messagebundle_no.properties +5 -0
  399. package/src/i18n/messagebundle_pl.properties +5 -0
  400. package/src/i18n/messagebundle_pt.properties +5 -0
  401. package/src/i18n/messagebundle_pt_PT.properties +5 -0
  402. package/src/i18n/messagebundle_ro.properties +5 -0
  403. package/src/i18n/messagebundle_ru.properties +5 -0
  404. package/src/i18n/messagebundle_sh.properties +5 -0
  405. package/src/i18n/messagebundle_sk.properties +5 -0
  406. package/src/i18n/messagebundle_sl.properties +5 -0
  407. package/src/i18n/messagebundle_sv.properties +5 -0
  408. package/src/i18n/messagebundle_th.properties +5 -0
  409. package/src/i18n/messagebundle_tr.properties +5 -0
  410. package/src/i18n/messagebundle_uk.properties +5 -0
  411. package/src/i18n/messagebundle_vi.properties +5 -0
  412. package/src/i18n/messagebundle_zh_CN.properties +5 -0
  413. package/src/i18n/messagebundle_zh_TW.properties +5 -0
  414. package/src/themes/Avatar.css +1 -0
  415. package/src/themes/Button.css +1 -1
  416. package/src/themes/Calendar.css +6 -1
  417. package/src/themes/ColorPalettePopover.css +6 -5
  418. package/src/themes/DatePickerPopover.css +4 -0
  419. package/src/themes/Dialog.css +1 -5
  420. package/src/themes/Input.css +1 -0
  421. package/src/themes/ListItemBase.css +11 -5
  422. package/src/themes/MultiComboBox.css +0 -1
  423. package/src/themes/Popover.css +1 -1
  424. package/src/themes/PopupGlobal.css +1 -4
  425. package/src/themes/PopupsCommon.css +44 -4
  426. package/src/themes/ResponsivePopover.css +2 -7
  427. package/src/themes/ResponsivePopoverCommon.css +1 -0
  428. package/src/themes/SelectPopover.css +11 -2
  429. package/src/themes/SplitButton.css +1 -1
  430. package/src/themes/Suggestions.css +15 -1
  431. package/src/themes/TabInOverflow.css +5 -1
  432. package/src/themes/TableRow.css +1 -0
  433. package/src/themes/TimePickerPopover.css +4 -0
  434. package/src/themes/Tokenizer.css +1 -0
  435. package/src/themes/TokenizerPopover.css +4 -0
  436. package/src/themes/ValueStateMessage.css +10 -0
  437. package/src/themes/base/Avatar-parameters.css +31 -31
  438. package/src/themes/base/Badge-parameters.css +10 -10
  439. package/src/themes/base/DayPicker-parameters.css +2 -2
  440. package/src/themes/base/Dialog-parameters.css +1 -1
  441. package/src/themes/base/ListItemBase-parameters.css +1 -0
  442. package/src/themes/base/PopupsCommon-parameters.css +6 -1
  443. package/src/themes/base/SliderBase-parameters.css +7 -0
  444. package/src/themes/base/Switch-parameters.css +2 -13
  445. package/src/themes/base/sizes-parameters.css +7 -7
  446. package/src/themes/sap_belize_hcb/Avatar-parameters.css +15 -15
  447. package/src/themes/sap_belize_hcb/Switch-parameters.css +2 -4
  448. package/src/themes/sap_belize_hcw/Avatar-parameters.css +15 -15
  449. package/src/themes/sap_belize_hcw/Switch-parameters.css +2 -4
  450. package/src/themes/sap_fiori_3/Avatar-parameters.css +5 -5
  451. package/src/themes/sap_fiori_3_dark/Avatar-parameters.css +5 -5
  452. package/src/themes/sap_fiori_3_hcb/Avatar-parameters.css +19 -19
  453. package/src/themes/sap_fiori_3_hcb/DayPicker-parameters.css +0 -2
  454. package/src/themes/sap_fiori_3_hcb/Switch-parameters.css +2 -4
  455. package/src/themes/sap_fiori_3_hcw/Avatar-parameters.css +19 -19
  456. package/src/themes/sap_fiori_3_hcw/DayPicker-parameters.css +0 -2
  457. package/src/themes/sap_fiori_3_hcw/Switch-parameters.css +2 -4
  458. package/src/themes/sap_horizon/Dialog-parameters.css +1 -1
  459. package/src/themes/sap_horizon/ListItemBase-parameters.css +1 -2
  460. package/src/themes/sap_horizon/PopupsCommon-parameters.css +0 -1
  461. package/src/themes/sap_horizon/Switch-parameters.css +7 -7
  462. package/src/themes/sap_horizon_dark/Avatar-parameters.css +33 -0
  463. package/src/themes/sap_horizon_dark/BusyIndicator-parameters.css +7 -0
  464. package/src/themes/sap_horizon_dark/Button-parameters.css +20 -0
  465. package/src/themes/sap_horizon_dark/CalendarHeader-parameters.css +19 -0
  466. package/src/themes/sap_horizon_dark/Card-parameters.css +10 -0
  467. package/src/themes/sap_horizon_dark/CheckBox-parameters.css +34 -0
  468. package/src/themes/sap_horizon_dark/ColorPalette-parameters.css +16 -0
  469. package/src/themes/sap_horizon_dark/ColorPicker-parameters.css +10 -0
  470. package/src/themes/sap_horizon_dark/DatePicker-parameters.css +6 -0
  471. package/src/themes/sap_horizon_dark/DayPicker-parameters.css +31 -0
  472. package/src/themes/sap_horizon_dark/Dialog-parameters.css +11 -0
  473. package/src/themes/sap_horizon_dark/GrowingButton-parameters.css +5 -0
  474. package/src/themes/sap_horizon_dark/Input-parameters.css +35 -0
  475. package/src/themes/sap_horizon_dark/InputIcon-parameters.css +17 -0
  476. package/src/themes/sap_horizon_dark/Link-parameters.css +10 -0
  477. package/src/themes/sap_horizon_dark/List-parameters.css +5 -0
  478. package/src/themes/sap_horizon_dark/ListItemBase-parameters.css +7 -0
  479. package/src/themes/sap_horizon_dark/MessageStrip-parameters.css +9 -0
  480. package/src/themes/sap_horizon_dark/MonthPicker-parameters.css +17 -0
  481. package/src/themes/sap_horizon_dark/MultiComboBox-parameters.css +5 -0
  482. package/src/themes/sap_horizon_dark/Panel-parameters.css +12 -0
  483. package/src/themes/sap_horizon_dark/PopupsCommon-parameters.css +10 -0
  484. package/src/themes/sap_horizon_dark/ProgressIndicator-parameters.css +23 -0
  485. package/src/themes/sap_horizon_dark/RadioButton-parameters.css +9 -0
  486. package/src/themes/sap_horizon_dark/RatingIndicator-parameters.css +3 -0
  487. package/src/themes/sap_horizon_dark/SegmentedButtton-parameters.css +10 -0
  488. package/src/themes/sap_horizon_dark/Select-parameters.css +5 -0
  489. package/src/themes/sap_horizon_dark/SelectPopover-parameters.css +4 -0
  490. package/src/themes/sap_horizon_dark/SliderBase-parameters.css +44 -0
  491. package/src/themes/sap_horizon_dark/StepInput-parameters.css +25 -0
  492. package/src/themes/sap_horizon_dark/Suggestions-parameters.css +5 -0
  493. package/src/themes/sap_horizon_dark/Switch-parameters.css +31 -0
  494. package/src/themes/sap_horizon_dark/TabContainer-parameters.css +25 -0
  495. package/src/themes/sap_horizon_dark/Table-parameters.css +8 -0
  496. package/src/themes/sap_horizon_dark/TableColumn-parameters.css +5 -0
  497. package/src/themes/sap_horizon_dark/TableRow-parameters.css +5 -0
  498. package/src/themes/sap_horizon_dark/TextArea-parameters.css +22 -0
  499. package/src/themes/sap_horizon_dark/TimePicker-parameters.css +6 -0
  500. package/src/themes/sap_horizon_dark/ToggleButton-parameters.css +11 -0
  501. package/src/themes/sap_horizon_dark/Token-parameters.css +28 -0
  502. package/src/themes/sap_horizon_dark/Tokenizer-parameters.css +6 -0
  503. package/src/themes/sap_horizon_dark/ValueStateMessage-parameters.css +8 -0
  504. package/src/themes/sap_horizon_dark/WheelSlider-parameters.css +19 -0
  505. package/src/themes/sap_horizon_dark/YearPicker-parameters.css +16 -0
  506. package/src/themes/sap_horizon_dark/parameters-bundle.css +57 -0
  507. package/src/themes/sap_horizon_dark/sizes-parameters.css +8 -0
  508. package/src/themes/sap_horizon_exp/Switch-parameters.css +1 -1
  509. package/src/themes/sap_horizon_hcb/Avatar-parameters.css +24 -0
  510. package/src/themes/sap_horizon_hcb/Badge-parameters.css +43 -0
  511. package/src/themes/sap_horizon_hcb/Button-parameters.css +10 -0
  512. package/src/themes/sap_horizon_hcb/CalendarHeader-parameters.css +11 -0
  513. package/src/themes/sap_horizon_hcb/Card-parameters.css +6 -0
  514. package/src/themes/sap_horizon_hcb/Carousel-parameters.css +9 -0
  515. package/src/themes/sap_horizon_hcb/CheckBox-parameters.css +13 -0
  516. package/src/themes/sap_horizon_hcb/DatePicker-parameters.css +5 -0
  517. package/src/themes/sap_horizon_hcb/DayPicker-parameters.css +17 -0
  518. package/src/themes/sap_horizon_hcb/Dialog-parameters.css +7 -0
  519. package/src/themes/sap_horizon_hcb/GrowingButton-parameters.css +8 -0
  520. package/src/themes/sap_horizon_hcb/Input-parameters.css +21 -0
  521. package/src/themes/sap_horizon_hcb/InputIcon-parameters.css +5 -0
  522. package/src/themes/sap_horizon_hcb/Link-parameters.css +7 -0
  523. package/src/themes/sap_horizon_hcb/MessageStrip-parameters.css +10 -0
  524. package/src/themes/sap_horizon_hcb/MonthPicker-parameters.css +11 -0
  525. package/src/themes/sap_horizon_hcb/Panel-parameters.css +5 -0
  526. package/src/themes/sap_horizon_hcb/ProgressIndicator-parameters.css +11 -0
  527. package/src/themes/sap_horizon_hcb/RadioButton-parameters.css +10 -0
  528. package/src/themes/sap_horizon_hcb/Select-parameters.css +12 -0
  529. package/src/themes/sap_horizon_hcb/SliderBase-parameters.css +14 -0
  530. package/src/themes/sap_horizon_hcb/Switch-parameters.css +43 -0
  531. package/src/themes/sap_horizon_hcb/TabContainer-parameters.css +44 -0
  532. package/src/themes/sap_horizon_hcb/Table-parameters.css +5 -0
  533. package/src/themes/sap_horizon_hcb/TableRow-parameters.css +5 -0
  534. package/src/themes/sap_horizon_hcb/TextArea-parameters.css +10 -0
  535. package/src/themes/sap_horizon_hcb/TimePicker-parameters.css +5 -0
  536. package/src/themes/sap_horizon_hcb/ToggleButton-parameters.css +6 -0
  537. package/src/themes/sap_horizon_hcb/Token-parameters.css +7 -0
  538. package/src/themes/sap_horizon_hcb/ValueStateMessage-parameters.css +5 -0
  539. package/src/themes/sap_horizon_hcb/WheelSlider-parameters.css +17 -0
  540. package/src/themes/sap_horizon_hcb/YearPicker-parameters.css +11 -0
  541. package/src/themes/sap_horizon_hcb/parameters-bundle.css +48 -0
  542. package/src/themes/sap_horizon_hcw/Avatar-parameters.css +24 -0
  543. package/src/themes/sap_horizon_hcw/Badge-parameters.css +43 -0
  544. package/src/themes/sap_horizon_hcw/Button-parameters.css +10 -0
  545. package/src/themes/sap_horizon_hcw/CalendarHeader-parameters.css +11 -0
  546. package/src/themes/sap_horizon_hcw/Card-parameters.css +6 -0
  547. package/src/themes/sap_horizon_hcw/Carousel-parameters.css +9 -0
  548. package/src/themes/sap_horizon_hcw/CheckBox-parameters.css +13 -0
  549. package/src/themes/sap_horizon_hcw/DatePicker-parameters.css +5 -0
  550. package/src/themes/sap_horizon_hcw/DayPicker-parameters.css +17 -0
  551. package/src/themes/sap_horizon_hcw/Dialog-parameters.css +7 -0
  552. package/src/themes/sap_horizon_hcw/GrowingButton-parameters.css +8 -0
  553. package/src/themes/sap_horizon_hcw/Input-parameters.css +21 -0
  554. package/src/themes/sap_horizon_hcw/InputIcon-parameters.css +5 -0
  555. package/src/themes/sap_horizon_hcw/Link-parameters.css +7 -0
  556. package/src/themes/sap_horizon_hcw/MessageStrip-parameters.css +10 -0
  557. package/src/themes/sap_horizon_hcw/MonthPicker-parameters.css +11 -0
  558. package/src/themes/sap_horizon_hcw/Panel-parameters.css +5 -0
  559. package/src/themes/sap_horizon_hcw/ProgressIndicator-parameters.css +11 -0
  560. package/src/themes/sap_horizon_hcw/RadioButton-parameters.css +10 -0
  561. package/src/themes/sap_horizon_hcw/Select-parameters.css +12 -0
  562. package/src/themes/sap_horizon_hcw/SliderBase-parameters.css +13 -0
  563. package/src/themes/sap_horizon_hcw/Switch-parameters.css +43 -0
  564. package/src/themes/sap_horizon_hcw/TabContainer-parameters.css +44 -0
  565. package/src/themes/sap_horizon_hcw/Table-parameters.css +5 -0
  566. package/src/themes/sap_horizon_hcw/TableRow-parameters.css +5 -0
  567. package/src/themes/sap_horizon_hcw/TextArea-parameters.css +10 -0
  568. package/src/themes/sap_horizon_hcw/TimePicker-parameters.css +5 -0
  569. package/src/themes/sap_horizon_hcw/ToggleButton-parameters.css +6 -0
  570. package/src/themes/sap_horizon_hcw/Token-parameters.css +7 -0
  571. package/src/themes/sap_horizon_hcw/ValueStateMessage-parameters.css +5 -0
  572. package/src/themes/sap_horizon_hcw/WheelSlider-parameters.css +17 -0
  573. package/src/themes/sap_horizon_hcw/YearPicker-parameters.css +11 -0
  574. package/src/themes/sap_horizon_hcw/parameters-bundle.css +48 -0
package/src/List.js CHANGED
@@ -208,7 +208,7 @@ const metadata = {
208
208
  /**
209
209
  * Defines the accessible name of the component.
210
210
  *
211
- * @type {String}
211
+ * @type {string}
212
212
  * @defaultvalue ""
213
213
  * @public
214
214
  * @since 1.0.0-rc.15
@@ -220,7 +220,7 @@ const metadata = {
220
220
  /**
221
221
  * Defines the IDs of the elements that label the input.
222
222
  *
223
- * @type {String}
223
+ * @type {string}
224
224
  * @defaultvalue ""
225
225
  * @public
226
226
  * @since 1.0.0-rc.15
@@ -234,7 +234,7 @@ const metadata = {
234
234
  * Defines the accessible role of the component.
235
235
  * <br><br>
236
236
  * @public
237
- * @type {String}
237
+ * @type {string}
238
238
  * @defaultvalue "list"
239
239
  * @since 1.0.0-rc.15
240
240
  */
@@ -379,7 +379,7 @@ const metadata = {
379
379
  * <br><br>
380
380
  * <h3>Keyboard Handling</h3>
381
381
  *
382
- * <h4>Basic Navigation</h4
382
+ * <h4>Basic Navigation</h4>
383
383
  * The <code>ui5-list</code> provides advanced keyboard handling.
384
384
  * When a list is focused the user can use the following keyboard
385
385
  * shortcuts in order to perform a navigation:
@@ -833,12 +833,7 @@ class List extends UI5Element {
833
833
  // The focus arrives in the List for the first time.
834
834
  // If there is selected item - focus it or focus the first item.
835
835
  if (!this.getPreviouslyFocusedItem()) {
836
- if (this.getFirstItem(x => x.selected && !x.disabled)) {
837
- this.focusFirstSelectedItem();
838
- } else {
839
- this.focusFirstItem();
840
- }
841
-
836
+ this.focusFirstItem();
842
837
  event.stopImmediatePropagation();
843
838
  return;
844
839
  }
@@ -846,12 +841,7 @@ class List extends UI5Element {
846
841
  // The focus returns to the List,
847
842
  // focus the first selected item or the previously focused element.
848
843
  if (!this.getForwardingFocus()) {
849
- if (this.getFirstItem(x => x.selected && !x.disabled)) {
850
- this.focusFirstSelectedItem();
851
- } else {
852
- this.focusPreviouslyFocusedItem();
853
- }
854
-
844
+ this.focusPreviouslyFocusedItem();
855
845
  event.stopImmediatePropagation();
856
846
  }
857
847
 
package/src/ListItem.hbs CHANGED
@@ -95,7 +95,7 @@
95
95
  icon="decline"
96
96
  ?disabled="{{disableDeleteButton}}"
97
97
  @click="{{onDelete}}"
98
- title="{{deleteText}}"
98
+ tooltip="{{deleteText}}"
99
99
  ></ui5-button>
100
100
  </div>
101
101
  {{/if}}
package/src/ListItem.js CHANGED
@@ -77,7 +77,7 @@ const metadata = {
77
77
  * Used to define the role of the list item.
78
78
  *
79
79
  * @private
80
- * @type {String}
80
+ * @type {string}
81
81
  * @defaultvalue "listitem"
82
82
  * @since 1.0.0-rc.9
83
83
  *
@@ -89,7 +89,7 @@ class ListItemBase extends UI5Element {
89
89
  }
90
90
 
91
91
  _onfocusin(event) {
92
- if (event.isMarked === "button" || event.isMarked === "link") {
92
+ if (event.target !== this.getFocusDomRef()) {
93
93
  return;
94
94
  }
95
95
 
@@ -27,7 +27,7 @@
27
27
  icon="decline"
28
28
  design="Transparent"
29
29
  class="ui5-message-strip-close-button"
30
- ._buttonAccInfo="{{accInfo.button}}"
30
+ tooltip="{{_closeButtonText}}"
31
31
  @click={{_closeClick}}
32
32
  ></ui5-button>
33
33
  {{/unless}}
@@ -249,14 +249,6 @@ class MessageStrip extends UI5Element {
249
249
  get designClasses() {
250
250
  return MessageStrip.designClassesMappings()[this.design];
251
251
  }
252
-
253
- get accInfo() {
254
- return {
255
- "button": {
256
- "title": this._closeButtonText,
257
- },
258
- };
259
- }
260
252
  }
261
253
 
262
254
  MessageStrip.define();
@@ -6,12 +6,14 @@ import {
6
6
  isShow,
7
7
  isDown,
8
8
  isUp,
9
- isBackSpace,
10
9
  isSpace,
11
- isLeft,
12
10
  isRight,
13
- isEscape,
14
- isEnter,
11
+ isHome,
12
+ isTabNext,
13
+ isTabPrevious,
14
+ isHomeCtrl,
15
+ isEndCtrl,
16
+ isCtrlA,
15
17
  } from "@ui5/webcomponents-base/dist/Keys.js";
16
18
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
17
19
  import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
@@ -20,6 +22,10 @@ import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
20
22
  import "@ui5/webcomponents-icons/dist/decline.js";
21
23
  import "@ui5/webcomponents-icons/dist/multiselect-all.js";
22
24
  import "@ui5/webcomponents-icons/dist/not-editable.js";
25
+ import "@ui5/webcomponents-icons/dist/error.js";
26
+ import "@ui5/webcomponents-icons/dist/alert.js";
27
+ import "@ui5/webcomponents-icons/dist/sys-enter-2.js";
28
+ import "@ui5/webcomponents-icons/dist/information.js";
23
29
  import MultiComboBoxItem from "./MultiComboBoxItem.js";
24
30
  import Tokenizer from "./Tokenizer.js";
25
31
  import Token from "./Token.js";
@@ -413,6 +419,7 @@ class MultiComboBox extends UI5Element {
413
419
  this._deleting = false;
414
420
  this._validationTimeout = null;
415
421
  this._handleResizeBound = this._handleResize.bind(this);
422
+ this.currentItemIdx = -1;
416
423
  }
417
424
 
418
425
  onEnterDOM() {
@@ -524,7 +531,7 @@ class MultiComboBox extends UI5Element {
524
531
  return this.placeholder;
525
532
  }
526
533
 
527
- _handleLeft() {
534
+ _handleArrowLeft() {
528
535
  const cursorPosition = this.getDomRef().querySelector(`input`).selectionStart;
529
536
 
530
537
  if (cursorPosition === 0) {
@@ -535,14 +542,17 @@ class MultiComboBox extends UI5Element {
535
542
  _tokenizerFocusOut(event) {
536
543
  this._tokenizerFocused = false;
537
544
 
538
- const tokensCount = this._tokenizer.tokens.length - 1;
545
+ const tokensCount = this._tokenizer.tokens.length;
546
+ const selectedTokens = this._selectedTokensCount;
547
+ const lastTokenBeingDeleted = tokensCount - 1 === 0 && this._deleting;
548
+ const allTokensAreBeingDeleted = selectedTokens === tokensCount && this._deleting;
539
549
 
540
550
  if (!event.relatedTarget || !event.relatedTarget.hasAttribute("ui5-token")) {
541
551
  this._tokenizer.tokens.forEach(token => { token.selected = false; });
542
552
  this._tokenizer.scrollToStart();
543
553
  }
544
554
 
545
- if (tokensCount === 0 && this._deleting) {
555
+ if (allTokensAreBeingDeleted || lastTokenBeingDeleted) {
546
556
  setTimeout(() => {
547
557
  if (!isPhone()) {
548
558
  this.shadowRoot.querySelector("input").focus();
@@ -563,41 +573,85 @@ class MultiComboBox extends UI5Element {
563
573
  }
564
574
 
565
575
  async _onkeydown(event) {
566
- if (isLeft(event)) {
567
- this._handleLeft(event);
568
- }
569
-
570
576
  if (isShow(event) && !this.readonly && !this.disabled) {
571
577
  event.preventDefault();
572
578
  this.togglePopover();
573
579
  }
574
580
 
575
- if (this.open && (isUp(event) || isDown(event))) {
581
+ if (isUp(event) || isDown(event)) {
576
582
  this._handleArrowNavigation(event);
583
+ return;
577
584
  }
578
585
 
579
- if (isBackSpace(event) && event.target.value === "") {
580
- event.preventDefault();
586
+ this._keyDown = true;
587
+ this[`_handle${event.key}`] && this[`_handle${event.key}`](event);
588
+ }
589
+
590
+ _handlePageUp(event) {
591
+ event.preventDefault();
592
+ }
593
+
594
+ _handlePageDown(event) {
595
+ event.preventDefault();
596
+ }
581
597
 
598
+ _handleBackspace(event) {
599
+ if (event.target.value === "") {
600
+ event.preventDefault();
582
601
  this._tokenizer._focusLastToken();
583
602
  }
603
+ }
584
604
 
585
- // Reset value on ESC
586
- if (isEscape(event) && (!this.allowCustomValues || (!this.open && this.allowCustomValues))) {
605
+ _handleEscape(event) {
606
+ if (!this.allowCustomValues || (!this.open && this.allowCustomValues)) {
587
607
  this.value = this._lastValue;
588
608
  }
609
+ }
610
+
611
+ _handleHome(event) {
612
+ const shouldFocusToken = this._isFocusInside && event.target.selectionStart === 0 && this._tokenizer.tokens.length > 0;
589
613
 
590
- if (isEnter(event)) {
591
- this.handleEnter();
614
+ if (shouldFocusToken) {
615
+ event.preventDefault();
616
+ this._tokenizer.tokens[0].focus();
592
617
  }
618
+ }
593
619
 
594
- this._keyDown = true;
620
+ _handleEnd(event) {
621
+ const tokens = this._tokenizer.tokens;
622
+ const lastTokenIdx = tokens.length - 1;
623
+ const shouldFocusInput = event.target === tokens[lastTokenIdx] && tokens[lastTokenIdx] === this.shadowRoot.activeElement;
624
+
625
+ if (shouldFocusInput) {
626
+ event.preventDefault();
627
+ this._inputDom.focus();
628
+ }
629
+ }
630
+
631
+ _handleTab(event) {
632
+ this.allItemsPopover.close();
633
+ }
634
+
635
+ _handleSelectAll(event) {
636
+ const filteredItems = this._filteredItems;
637
+ const allItemsSelected = filteredItems.every(item => item.selected);
638
+
639
+ filteredItems.forEach(item => {
640
+ item.selected = !allItemsSelected;
641
+ });
642
+
643
+ this.fireSelectionChange();
595
644
  }
596
645
 
597
646
  _onValueStateKeydown(event) {
598
647
  const isArrowDown = isDown(event);
599
648
  const isArrowUp = isUp(event);
600
649
 
650
+ if (isTabNext(event) || isTabPrevious(event)) {
651
+ this._onItemTab(event);
652
+ return;
653
+ }
654
+
601
655
  event.preventDefault();
602
656
 
603
657
  if (isArrowDown) {
@@ -612,23 +666,46 @@ class MultiComboBox extends UI5Element {
612
666
  _onItemKeydown(event) {
613
667
  const isFirstItem = this.list.items[0] === event.target;
614
668
 
669
+ if (isTabNext(event) || isTabPrevious(event)) {
670
+ this._onItemTab(event);
671
+ return;
672
+ }
673
+
674
+ if (isHomeCtrl(event)) {
675
+ this.list._itemNavigation._handleHome(event);
676
+ this.list.items[this.list._itemNavigation._currentIndex].focus();
677
+ }
678
+
679
+ if (isEndCtrl(event)) {
680
+ this.list._itemNavigation._handleEnd(event);
681
+ this.list.items[this.list._itemNavigation._currentIndex].focus();
682
+ }
683
+
615
684
  event.preventDefault();
616
685
 
617
- if (!isUp(event) || !isFirstItem) {
686
+ if (isCtrlA(event)) {
687
+ this._handleSelectAll(event);
618
688
  return;
619
689
  }
620
690
 
621
- if (this.valueStateHeader) {
691
+ if (((isUp(event) && isFirstItem) || isHome(event)) && this.valueStateHeader) {
622
692
  this.valueStateHeader.focus();
623
- return;
624
693
  }
625
694
 
695
+ if (!this.valueStateHeader && isUp(event) && isFirstItem) {
696
+ this._inputDom.focus();
697
+ }
698
+ }
699
+
700
+ _onItemTab(event) {
626
701
  this._inputDom.focus();
702
+ this.allItemsPopover.close();
627
703
  }
628
704
 
629
705
  async _handleArrowNavigation(event) {
630
706
  const isArrowDown = isDown(event);
631
- const hasSuggestions = this.allItemsPopover.opened && this.items.length;
707
+ const hasSuggestions = this.items.length;
708
+ const isOpen = this.allItemsPopover.opened;
632
709
 
633
710
  event.preventDefault();
634
711
 
@@ -636,7 +713,7 @@ class MultiComboBox extends UI5Element {
636
713
  await this._setValueStateHeader();
637
714
  }
638
715
 
639
- if (isArrowDown && this.focused && this.valueStateHeader) {
716
+ if (isArrowDown && isOpen && this.focused && this.valueStateHeader) {
640
717
  this.valueStateHeader.focus();
641
718
  return;
642
719
  }
@@ -644,16 +721,91 @@ class MultiComboBox extends UI5Element {
644
721
  if (isArrowDown && this.focused && hasSuggestions) {
645
722
  this._handleArrowDown(event);
646
723
  }
724
+
725
+ if (!isArrowDown && !isOpen && !this.readonly) {
726
+ this._navigateToPrevItem();
727
+ }
647
728
  }
648
729
 
649
730
  _handleArrowDown(event) {
731
+ const isOpen = this.allItemsPopover.opened;
650
732
  const firstListItem = this.list.items[0];
651
733
 
652
- this.list._itemNavigation.setCurrentItem(firstListItem);
653
- firstListItem.focus();
734
+ if (isOpen) {
735
+ this.list._itemNavigation.setCurrentItem(firstListItem);
736
+ firstListItem.focus();
737
+ } else if (!this.readonly) {
738
+ this._navigateToNextItem();
739
+ }
740
+ }
741
+
742
+ _navigateToNextItem() {
743
+ const items = this.items;
744
+ const itemsCount = items.length;
745
+ const previousItemIdx = this.currentItemIdx;
746
+
747
+ if (previousItemIdx > -1 && items[previousItemIdx].text !== this.value) {
748
+ this.currentItemIdx = -1;
749
+ }
750
+
751
+ if (previousItemIdx >= itemsCount - 1) {
752
+ return;
753
+ }
754
+
755
+ let currentItem = this.items[++this.currentItemIdx];
756
+
757
+ while (this.currentItemIdx < itemsCount - 1 && currentItem.selected) {
758
+ currentItem = this.items[++this.currentItemIdx];
759
+ }
760
+
761
+ if (currentItem.selected === true) {
762
+ this.currentItemIdx = previousItemIdx;
763
+ return;
764
+ }
765
+
766
+ this.value = currentItem.text;
767
+ this._innerInput.value = currentItem.text;
768
+ this._innerInput.setSelectionRange(0, currentItem.text.length);
769
+ }
770
+
771
+ _navigateToPrevItem() {
772
+ const items = this.items;
773
+ let previousItemIdx = this.currentItemIdx;
774
+
775
+ if ((!this.value && previousItemIdx !== -1) || (previousItemIdx !== -1 && this.value && this.value !== items[previousItemIdx].text)) {
776
+ previousItemIdx = -1;
777
+ }
778
+
779
+ if (previousItemIdx === -1) {
780
+ this.currentItemIdx = items.length;
781
+ }
782
+
783
+ if (previousItemIdx === 0) {
784
+ this.currentItemIdx = 0;
785
+ return;
786
+ }
787
+
788
+ let currentItem = this.items[--this.currentItemIdx];
789
+
790
+ while (currentItem && currentItem.selected && this.currentItemIdx > 0) {
791
+ currentItem = this.items[--this.currentItemIdx];
792
+ }
793
+
794
+ if (!currentItem) {
795
+ return;
796
+ }
797
+
798
+ if (currentItem.selected) {
799
+ this.currentItemIdx = previousItemIdx;
800
+ return;
801
+ }
802
+
803
+ this.value = currentItem.text;
804
+ this._innerInput.value = currentItem.text;
805
+ this._innerInput.setSelectionRange(0, currentItem.text.length);
654
806
  }
655
807
 
656
- handleEnter() {
808
+ _handleEnter() {
657
809
  const lowerCaseValue = this.value.toLowerCase();
658
810
  const matchingItem = this.items.find(item => item.text.toLowerCase() === lowerCaseValue);
659
811
  const oldValueState = this.valueState;
@@ -698,6 +850,8 @@ class MultiComboBox extends UI5Element {
698
850
  }, 0);
699
851
  }
700
852
  }
853
+
854
+ this[`_handle${event.key}`] && this[`_handle${event.key}`](event);
701
855
  }
702
856
 
703
857
  _filterItems(str) {
@@ -918,6 +1072,7 @@ class MultiComboBox extends UI5Element {
918
1072
  this._innerInput.blur();
919
1073
  }
920
1074
 
1075
+ !isPhone() && this._innerInput.setSelectionRange(0, this.value.length);
921
1076
  this._lastValue = this.value;
922
1077
  }
923
1078
 
@@ -1003,6 +1158,10 @@ class MultiComboBox extends UI5Element {
1003
1158
  return `${this._id}-hiddenText-nMore`;
1004
1159
  }
1005
1160
 
1161
+ get _selectedTokensCount() {
1162
+ return this._tokenizer.tokens.filter(token => token.selected).length;
1163
+ }
1164
+
1006
1165
  get ariaDescribedByText() {
1007
1166
  return this.valueStateTextId ? `${this._tokensCountTextId} ${this.valueStateTextId}` : `${this._tokensCountTextId}`;
1008
1167
  }
@@ -96,7 +96,6 @@
96
96
  skip-registry-update
97
97
  _disable-initial-focus
98
98
  prevent-focus-restore
99
- no-padding
100
99
  hide-arrow
101
100
  class="ui5-valuestatemessage-popover"
102
101
  placement-type="Bottom"
package/src/Panel.hbs CHANGED
@@ -4,7 +4,7 @@
4
4
  aria-label="{{effectiveAccessibleName}}"
5
5
  dir="{{effectiveDir}}"
6
6
  >
7
- <!-- header: either header or h1 with header text -->
7
+ {{! header: either header or h1 with header text}}
8
8
  <div
9
9
  @click="{{_headerClick}}"
10
10
  @keydown="{{_headerKeyDown}}"
@@ -24,7 +24,8 @@
24
24
  class="ui5-panel-header-button {{classes.headerBtn}}"
25
25
  icon="slim-arrow-right"
26
26
  @click="{{_toggleButtonClick}}"
27
- ._buttonAccInfo="{{accInfo.button}}"
27
+ .accessibilityAttributes={{accInfo.button.accessibilityAttributes}}
28
+ tooltip="{{accInfo.button.title}}"
28
29
  accessible-name="{{accInfo.button.ariaLabelButton}}"
29
30
  ></ui5-button>
30
31
  {{else}}
@@ -50,7 +51,7 @@
50
51
  {{/if}}
51
52
  </div>
52
53
 
53
- <!-- content area -->
54
+ {{! content area}}
54
55
  <div
55
56
  class="ui5-panel-content"
56
57
  id="{{_id}}-content"
package/src/Panel.js CHANGED
@@ -8,6 +8,7 @@ import { getAnimationMode } from "@ui5/webcomponents-base/dist/config/AnimationM
8
8
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
9
9
  import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
10
10
  import Button from "./Button.js";
11
+ import Icon from "./Icon.js";
11
12
  import TitleLevel from "./types/TitleLevel.js";
12
13
  import PanelAccessibleRole from "./types/PanelAccessibleRole.js";
13
14
  import PanelTemplate from "./generated/templates/PanelTemplate.lit.js";
@@ -132,7 +133,7 @@ const metadata = {
132
133
  },
133
134
 
134
135
  /**
135
- * Sets the accessible aria name of the component.
136
+ * Defines the accessible aria name of the component.
136
137
  *
137
138
  * @type {string}
138
139
  * @defaultvalue ""
@@ -175,10 +176,6 @@ const metadata = {
175
176
  type: Boolean,
176
177
  noAttribute: true,
177
178
  },
178
-
179
- _buttonAccInfo: {
180
- type: Object,
181
- },
182
179
  },
183
180
  events: /** @lends sap.ui.webcomponents.main.Panel.prototype */ {
184
181
 
@@ -409,8 +406,10 @@ class Panel extends UI5Element {
409
406
  get accInfo() {
410
407
  return {
411
408
  "button": {
412
- "ariaExpanded": this.expanded,
413
- "ariaControls": `${this._id}-content`,
409
+ "accessibilityAttributes": {
410
+ "expanded": this.expanded,
411
+ "controls": `${this._id}-content`,
412
+ },
414
413
  "title": this.toggleButtonTitle,
415
414
  "ariaLabelButton": !this.nonFocusableButton && this.useAccessibleNameForToggleButton ? this.effectiveAccessibleName : undefined,
416
415
  },
@@ -458,7 +457,7 @@ class Panel extends UI5Element {
458
457
  }
459
458
 
460
459
  static get dependencies() {
461
- return [Button];
460
+ return [Button, Icon];
462
461
  }
463
462
 
464
463
  static async onDefine() {
package/src/Popover.hbs CHANGED
@@ -4,7 +4,7 @@
4
4
  <span class="ui5-popover-arrow" style="{{styles.arrow}}"></span>
5
5
 
6
6
  {{#if _displayHeader}}
7
- <header class="ui5-popup-header-root" id="ui5-popup-header">
7
+ <header class="ui5-popup-header-root" id="ui5-popup-header" part="header">
8
8
  {{#if header.length }}
9
9
  <slot name="header"></slot>
10
10
  {{else}}
@@ -17,7 +17,7 @@
17
17
  {{#*inline "afterContent"}}
18
18
  {{#if _displayFooter}}
19
19
  {{#if footer.length }}
20
- <footer class="ui5-popup-footer-root">
20
+ <footer class="ui5-popup-footer-root" part="footer">
21
21
  <slot name="footer"></slot>
22
22
  </footer>
23
23
  {{/if}}
package/src/Popover.js CHANGED
@@ -1,6 +1,5 @@
1
1
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
2
2
  import { isIOS } from "@ui5/webcomponents-base/dist/Device.js";
3
- import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
4
3
  import { getClosedPopupParent } from "@ui5/webcomponents-base/dist/util/PopupUtils.js";
5
4
  import clamp from "@ui5/webcomponents-base/dist/util/clamp.js";
6
5
  import Popup from "./Popup.js";
@@ -145,6 +144,17 @@ const metadata = {
145
144
  type: Boolean,
146
145
  },
147
146
 
147
+ /**
148
+ * Defines the opener id of the element that the popover is shown at
149
+ * @public
150
+ * @type {String}
151
+ * @defaultvalue ""
152
+ * @since 1.2.0
153
+ */
154
+ opener: {
155
+ type: String,
156
+ },
157
+
148
158
  /**
149
159
  * Defines whether the content is scrollable.
150
160
  *
@@ -249,6 +259,17 @@ const metadata = {
249
259
  * or selects an action within the popover. You can prevent this with the
250
260
  * <code>modal</code> property.
251
261
  *
262
+ * <h3>CSS Shadow Parts</h3>
263
+ *
264
+ * <ui5-link target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/CSS/::part">CSS Shadow Parts</ui5-link> allow developers to style elements inside the Shadow DOM.
265
+ * <br>
266
+ * The <code>ui5-popover</code> exposes the following CSS Shadow Parts:
267
+ * <ul>
268
+ * <li>header - Used to style the header of the component</li>
269
+ * <li>content - Used to style the content of the component</li>
270
+ * <li>footer - Used to style the footer of the component</li>
271
+ * </ul>
272
+ *
252
273
  * <h3>ES6 Module Import</h3>
253
274
  *
254
275
  * <code>import "@ui5/webcomponents/dist/Popover.js";</code>
@@ -264,8 +285,6 @@ const metadata = {
264
285
  class Popover extends Popup {
265
286
  constructor() {
266
287
  super();
267
-
268
- this._handleResize = this.handleResize.bind(this);
269
288
  }
270
289
 
271
290
  static get metadata() {
@@ -288,12 +307,18 @@ class Popover extends Popup {
288
307
  return 6; // px
289
308
  }
290
309
 
291
- onEnterDOM() {
292
- ResizeHandler.register(this, this._handleResize);
293
- }
310
+ onAfterRendering() {
311
+ if (!this.isOpen() && this.open) {
312
+ const opener = document.getElementById(this.opener);
313
+ if (!opener) {
314
+ console.warn("Valid opener id is required."); // eslint-disable-line
315
+ return;
316
+ }
294
317
 
295
- onExitDOM() {
296
- ResizeHandler.deregister(this, this._handleResize);
318
+ this.showAt(opener);
319
+ } else if (this.isOpen() && !this.open) {
320
+ this.close();
321
+ }
297
322
  }
298
323
 
299
324
  isOpenerClicked(event) {
@@ -365,7 +390,12 @@ class Popover extends Popup {
365
390
  && openerRect.right === 0;
366
391
  }
367
392
 
368
- handleResize() {
393
+ /**
394
+ * @override
395
+ */
396
+ _resize() {
397
+ super._resize();
398
+
369
399
  if (this.opened) {
370
400
  this.reposition();
371
401
  }
package/src/Popup.hbs CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  {{> beforeContent}}
18
18
 
19
- <div style="{{styles.content}}" class="{{classes.content}}" @scroll="{{_scroll}}">
19
+ <div style="{{styles.content}}" class="{{classes.content}}" @scroll="{{_scroll}}" part="content">
20
20
  <slot></slot>
21
21
  </div>
22
22