@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
@@ -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
  }
package/dist/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/dist/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
  }