@ui5/webcomponents 1.1.1 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (448) hide show
  1. package/CHANGELOG.md +95 -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/MessageStrip.js +0 -8
  27. package/dist/MultiComboBox.js +186 -27
  28. package/dist/MultiInput.js +55 -8
  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 +9 -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 +196 -10
  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_exp/parameters-bundle.css +1 -1
  86. package/dist/features/InputSuggestions.js +4 -0
  87. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  88. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  89. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  90. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  91. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  92. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  93. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  94. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  95. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  96. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  97. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  98. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  99. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  100. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  101. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  102. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  103. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  104. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  105. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  106. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  107. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  108. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  109. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  110. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  111. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  112. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  113. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  114. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  115. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  116. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  117. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  118. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  119. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  120. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  121. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  122. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  123. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  124. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  125. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  126. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  127. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  128. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  129. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  130. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  131. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  132. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  133. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  134. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  135. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  136. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  137. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  138. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  139. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  140. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  141. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  142. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  143. package/dist/generated/i18n/i18n-defaults.js +2 -2
  144. package/dist/generated/templates/AvatarGroupTemplate.lit.js +1 -1
  145. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +1 -1
  146. package/dist/generated/templates/BreadcrumbsTemplate.lit.js +1 -1
  147. package/dist/generated/templates/ButtonTemplate.lit.js +1 -1
  148. package/dist/generated/templates/CalendarTemplate.lit.js +1 -1
  149. package/dist/generated/templates/CarouselTemplate.lit.js +3 -3
  150. package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +1 -1
  151. package/dist/generated/templates/ColorPickerTemplate.lit.js +1 -1
  152. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +1 -1
  153. package/dist/generated/templates/CustomListItemTemplate.lit.js +2 -2
  154. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +1 -1
  155. package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
  156. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +1 -1
  157. package/dist/generated/templates/DialogTemplate.lit.js +3 -3
  158. package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +5 -4
  159. package/dist/generated/templates/InputPopoverTemplate.lit.js +2 -2
  160. package/dist/generated/templates/InputTemplate.lit.js +6 -5
  161. package/dist/generated/templates/ListItemTemplate.lit.js +2 -2
  162. package/dist/generated/templates/ListTemplate.lit.js +1 -1
  163. package/dist/generated/templates/MessageStripTemplate.lit.js +1 -1
  164. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +1 -1
  165. package/dist/generated/templates/MultiInputTemplate.lit.js +7 -6
  166. package/dist/generated/templates/PanelTemplate.lit.js +2 -2
  167. package/dist/generated/templates/PopoverTemplate.lit.js +3 -3
  168. package/dist/generated/templates/PopupTemplate.lit.js +1 -1
  169. package/dist/generated/templates/RatingIndicatorTemplate.lit.js +1 -1
  170. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +5 -5
  171. package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +1 -1
  172. package/dist/generated/templates/SelectPopoverTemplate.lit.js +1 -1
  173. package/dist/generated/templates/StandardListItemTemplate.lit.js +2 -2
  174. package/dist/generated/templates/StepInputTemplate.lit.js +1 -1
  175. package/dist/generated/templates/SuggestionListItemTemplate.lit.js +2 -2
  176. package/dist/generated/templates/SwitchTemplate.lit.js +1 -1
  177. package/dist/generated/templates/TabContainerPopoverTemplate.lit.js +1 -1
  178. package/dist/generated/templates/TabContainerTemplate.lit.js +4 -4
  179. package/dist/generated/templates/TableGroupRowTemplate.lit.js +1 -1
  180. package/dist/generated/templates/TableRowTemplate.lit.js +2 -2
  181. package/dist/generated/templates/TableTemplate.lit.js +3 -3
  182. package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +1 -1
  183. package/dist/generated/templates/TextAreaTemplate.lit.js +1 -1
  184. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +1 -1
  185. package/dist/generated/templates/ToggleButtonTemplate.lit.js +1 -1
  186. package/dist/generated/templates/TokenizerTemplate.lit.js +1 -1
  187. package/dist/generated/templates/TreeListItemTemplate.lit.js +2 -2
  188. package/dist/generated/themes/Avatar.css.js +1 -1
  189. package/dist/generated/themes/Button.css.js +1 -1
  190. package/dist/generated/themes/Calendar.css.js +1 -1
  191. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  192. package/dist/generated/themes/ComboBox.css.js +1 -1
  193. package/dist/generated/themes/DatePickerPopover.css.js +1 -1
  194. package/dist/generated/themes/Dialog.css.js +1 -1
  195. package/dist/generated/themes/Input.css.js +1 -1
  196. package/dist/generated/themes/ListItemBase.css.js +1 -1
  197. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  198. package/dist/generated/themes/PopupGlobal.css.js +1 -1
  199. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  200. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  201. package/dist/generated/themes/SelectPopover.css.js +1 -1
  202. package/dist/generated/themes/SplitButton.css.js +1 -1
  203. package/dist/generated/themes/Suggestions.css.js +1 -1
  204. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  205. package/dist/generated/themes/TableRow.css.js +1 -1
  206. package/dist/generated/themes/TimePickerPopover.css.js +1 -1
  207. package/dist/generated/themes/TokenizerPopover.css.js +8 -0
  208. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  209. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  210. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  211. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  212. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  213. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  214. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  215. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  216. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  217. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  218. package/dist/i18n/messagebundle.properties +3 -0
  219. package/dist/i18n/messagebundle_ar.properties +5 -0
  220. package/dist/i18n/messagebundle_bg.properties +5 -0
  221. package/dist/i18n/messagebundle_ca.properties +5 -0
  222. package/dist/i18n/messagebundle_cs.properties +5 -0
  223. package/dist/i18n/messagebundle_cy.properties +5 -0
  224. package/dist/i18n/messagebundle_da.properties +5 -0
  225. package/dist/i18n/messagebundle_de.properties +5 -0
  226. package/dist/i18n/messagebundle_el.properties +5 -0
  227. package/dist/i18n/messagebundle_en.properties +5 -0
  228. package/dist/i18n/messagebundle_en_GB.properties +5 -0
  229. package/dist/i18n/messagebundle_en_US_sappsd.properties +5 -0
  230. package/dist/i18n/messagebundle_en_US_saprigi.properties +2 -0
  231. package/dist/i18n/messagebundle_en_US_saptrc.properties +5 -0
  232. package/dist/i18n/messagebundle_es.properties +5 -0
  233. package/dist/i18n/messagebundle_es_MX.properties +5 -0
  234. package/dist/i18n/messagebundle_et.properties +5 -0
  235. package/dist/i18n/messagebundle_fi.properties +5 -0
  236. package/dist/i18n/messagebundle_fr.properties +5 -0
  237. package/dist/i18n/messagebundle_fr_CA.properties +5 -0
  238. package/dist/i18n/messagebundle_hi.properties +5 -0
  239. package/dist/i18n/messagebundle_hr.properties +5 -0
  240. package/dist/i18n/messagebundle_hu.properties +5 -0
  241. package/dist/i18n/messagebundle_id.properties +5 -0
  242. package/dist/i18n/messagebundle_it.properties +5 -0
  243. package/dist/i18n/messagebundle_iw.properties +5 -0
  244. package/dist/i18n/messagebundle_ja.properties +7 -2
  245. package/dist/i18n/messagebundle_kk.properties +5 -0
  246. package/dist/i18n/messagebundle_ko.properties +5 -0
  247. package/dist/i18n/messagebundle_lt.properties +5 -0
  248. package/dist/i18n/messagebundle_lv.properties +5 -0
  249. package/dist/i18n/messagebundle_ms.properties +5 -0
  250. package/dist/i18n/messagebundle_nl.properties +5 -0
  251. package/dist/i18n/messagebundle_no.properties +5 -0
  252. package/dist/i18n/messagebundle_pl.properties +5 -0
  253. package/dist/i18n/messagebundle_pt.properties +5 -0
  254. package/dist/i18n/messagebundle_pt_PT.properties +5 -0
  255. package/dist/i18n/messagebundle_ro.properties +5 -0
  256. package/dist/i18n/messagebundle_ru.properties +5 -0
  257. package/dist/i18n/messagebundle_sh.properties +5 -0
  258. package/dist/i18n/messagebundle_sk.properties +5 -0
  259. package/dist/i18n/messagebundle_sl.properties +5 -0
  260. package/dist/i18n/messagebundle_sv.properties +5 -0
  261. package/dist/i18n/messagebundle_th.properties +5 -0
  262. package/dist/i18n/messagebundle_tr.properties +5 -0
  263. package/dist/i18n/messagebundle_uk.properties +5 -0
  264. package/dist/i18n/messagebundle_vi.properties +5 -0
  265. package/dist/i18n/messagebundle_zh_CN.properties +5 -0
  266. package/dist/i18n/messagebundle_zh_TW.properties +5 -0
  267. package/package.json +10 -8
  268. package/src/Avatar.js +1 -1
  269. package/src/AvatarGroup.hbs +1 -1
  270. package/src/AvatarGroup.js +2 -2
  271. package/src/Breadcrumbs.hbs +2 -2
  272. package/src/Breadcrumbs.js +11 -4
  273. package/src/BreadcrumbsPopover.hbs +0 -1
  274. package/src/BusyIndicator.js +1 -1
  275. package/src/Button.hbs +4 -4
  276. package/src/Button.js +44 -30
  277. package/src/Calendar.hbs +1 -1
  278. package/src/Calendar.js +1 -1
  279. package/src/Card.js +2 -2
  280. package/src/Carousel.hbs +2 -2
  281. package/src/CheckBox.js +3 -3
  282. package/src/ColorPalette.js +1 -1
  283. package/src/ColorPaletteItem.js +2 -2
  284. package/src/ColorPalettePopover.hbs +1 -1
  285. package/src/ColorPalettePopover.js +3 -3
  286. package/src/ColorPicker.hbs +1 -0
  287. package/src/ColorPicker.js +42 -4
  288. package/src/ComboBox.js +10 -4
  289. package/src/ComboBoxPopover.hbs +0 -1
  290. package/src/DatePicker.hbs +1 -1
  291. package/src/DatePicker.js +10 -8
  292. package/src/DatePickerPopover.hbs +0 -2
  293. package/src/DateRangePicker.js +7 -1
  294. package/src/Dialog.hbs +3 -2
  295. package/src/Dialog.js +35 -5
  296. package/src/FileUploader.js +2 -1
  297. package/src/FileUploaderPopover.hbs +3 -2
  298. package/src/Input.hbs +5 -1
  299. package/src/Input.js +87 -19
  300. package/src/InputPopover.hbs +3 -4
  301. package/src/Interfaces.js +1 -1
  302. package/src/Label.js +7 -1
  303. package/src/Link.js +16 -5
  304. package/src/List.hbs +1 -1
  305. package/src/List.js +6 -16
  306. package/src/ListItem.hbs +1 -1
  307. package/src/ListItem.js +1 -1
  308. package/src/MessageStrip.hbs +1 -1
  309. package/src/MessageStrip.js +0 -8
  310. package/src/MultiComboBox.js +186 -27
  311. package/src/MultiComboBoxPopover.hbs +0 -1
  312. package/src/MultiInput.js +55 -8
  313. package/src/Panel.hbs +4 -3
  314. package/src/Panel.js +7 -8
  315. package/src/Popover.hbs +2 -2
  316. package/src/Popover.js +39 -9
  317. package/src/Popup.hbs +1 -1
  318. package/src/Popup.js +61 -26
  319. package/src/ProgressIndicator.js +5 -0
  320. package/src/RadioButton.js +1 -1
  321. package/src/RangeSlider.js +6 -1
  322. package/src/RatingIndicator.hbs +2 -0
  323. package/src/RatingIndicator.js +2 -2
  324. package/src/ResponsivePopover.hbs +5 -5
  325. package/src/ResponsivePopover.js +15 -11
  326. package/src/SegmentedButton.js +2 -2
  327. package/src/SegmentedButtonItem.hbs +1 -1
  328. package/src/SegmentedButtonItem.js +7 -2
  329. package/src/Select.js +9 -5
  330. package/src/SelectPopover.hbs +0 -1
  331. package/src/Slider.js +5 -0
  332. package/src/SliderBase.js +4 -3
  333. package/src/SplitButton.js +11 -5
  334. package/src/StepInput.hbs +4 -3
  335. package/src/StepInput.js +4 -4
  336. package/src/Switch.hbs +1 -1
  337. package/src/Switch.js +13 -1
  338. package/src/TabContainer.hbs +3 -3
  339. package/src/TabContainer.js +44 -3
  340. package/src/TabContainerPopover.hbs +1 -1
  341. package/src/Table.hbs +11 -1
  342. package/src/Table.js +243 -4
  343. package/src/TableColumn.js +0 -7
  344. package/src/TableGroupRow.hbs +1 -0
  345. package/src/TableGroupRow.js +4 -0
  346. package/src/TableRow.hbs +2 -0
  347. package/src/TableRow.js +87 -8
  348. package/src/TextArea.hbs +1 -1
  349. package/src/TextArea.js +9 -4
  350. package/src/TextAreaPopover.hbs +0 -1
  351. package/src/TimePickerPopover.hbs +0 -1
  352. package/src/Tokenizer.hbs +2 -1
  353. package/src/Tokenizer.js +196 -10
  354. package/src/Tree.js +5 -1
  355. package/src/TreeItem.js +2 -2
  356. package/src/TreeListItem.js +5 -2
  357. package/src/features/InputSuggestions.js +4 -0
  358. package/src/i18n/messagebundle.properties +3 -0
  359. package/src/i18n/messagebundle_ar.properties +5 -0
  360. package/src/i18n/messagebundle_bg.properties +5 -0
  361. package/src/i18n/messagebundle_ca.properties +5 -0
  362. package/src/i18n/messagebundle_cs.properties +5 -0
  363. package/src/i18n/messagebundle_cy.properties +5 -0
  364. package/src/i18n/messagebundle_da.properties +5 -0
  365. package/src/i18n/messagebundle_de.properties +5 -0
  366. package/src/i18n/messagebundle_el.properties +5 -0
  367. package/src/i18n/messagebundle_en.properties +5 -0
  368. package/src/i18n/messagebundle_en_GB.properties +5 -0
  369. package/src/i18n/messagebundle_en_US_sappsd.properties +5 -0
  370. package/src/i18n/messagebundle_en_US_saprigi.properties +2 -0
  371. package/src/i18n/messagebundle_en_US_saptrc.properties +5 -0
  372. package/src/i18n/messagebundle_es.properties +5 -0
  373. package/src/i18n/messagebundle_es_MX.properties +5 -0
  374. package/src/i18n/messagebundle_et.properties +5 -0
  375. package/src/i18n/messagebundle_fi.properties +5 -0
  376. package/src/i18n/messagebundle_fr.properties +5 -0
  377. package/src/i18n/messagebundle_fr_CA.properties +5 -0
  378. package/src/i18n/messagebundle_hi.properties +5 -0
  379. package/src/i18n/messagebundle_hr.properties +5 -0
  380. package/src/i18n/messagebundle_hu.properties +5 -0
  381. package/src/i18n/messagebundle_id.properties +5 -0
  382. package/src/i18n/messagebundle_it.properties +5 -0
  383. package/src/i18n/messagebundle_iw.properties +5 -0
  384. package/src/i18n/messagebundle_ja.properties +7 -2
  385. package/src/i18n/messagebundle_kk.properties +5 -0
  386. package/src/i18n/messagebundle_ko.properties +5 -0
  387. package/src/i18n/messagebundle_lt.properties +5 -0
  388. package/src/i18n/messagebundle_lv.properties +5 -0
  389. package/src/i18n/messagebundle_ms.properties +5 -0
  390. package/src/i18n/messagebundle_nl.properties +5 -0
  391. package/src/i18n/messagebundle_no.properties +5 -0
  392. package/src/i18n/messagebundle_pl.properties +5 -0
  393. package/src/i18n/messagebundle_pt.properties +5 -0
  394. package/src/i18n/messagebundle_pt_PT.properties +5 -0
  395. package/src/i18n/messagebundle_ro.properties +5 -0
  396. package/src/i18n/messagebundle_ru.properties +5 -0
  397. package/src/i18n/messagebundle_sh.properties +5 -0
  398. package/src/i18n/messagebundle_sk.properties +5 -0
  399. package/src/i18n/messagebundle_sl.properties +5 -0
  400. package/src/i18n/messagebundle_sv.properties +5 -0
  401. package/src/i18n/messagebundle_th.properties +5 -0
  402. package/src/i18n/messagebundle_tr.properties +5 -0
  403. package/src/i18n/messagebundle_uk.properties +5 -0
  404. package/src/i18n/messagebundle_vi.properties +5 -0
  405. package/src/i18n/messagebundle_zh_CN.properties +5 -0
  406. package/src/i18n/messagebundle_zh_TW.properties +5 -0
  407. package/src/themes/Avatar.css +1 -0
  408. package/src/themes/Button.css +1 -1
  409. package/src/themes/Calendar.css +6 -1
  410. package/src/themes/ColorPalettePopover.css +6 -5
  411. package/src/themes/DatePickerPopover.css +4 -0
  412. package/src/themes/Dialog.css +1 -5
  413. package/src/themes/Input.css +1 -0
  414. package/src/themes/ListItemBase.css +11 -5
  415. package/src/themes/MultiComboBox.css +0 -1
  416. package/src/themes/Popover.css +1 -1
  417. package/src/themes/PopupGlobal.css +1 -4
  418. package/src/themes/PopupsCommon.css +44 -4
  419. package/src/themes/ResponsivePopover.css +2 -7
  420. package/src/themes/ResponsivePopoverCommon.css +1 -0
  421. package/src/themes/SelectPopover.css +11 -2
  422. package/src/themes/SplitButton.css +1 -1
  423. package/src/themes/Suggestions.css +15 -1
  424. package/src/themes/TabInOverflow.css +5 -1
  425. package/src/themes/TableRow.css +1 -0
  426. package/src/themes/TimePickerPopover.css +4 -0
  427. package/src/themes/Tokenizer.css +1 -0
  428. package/src/themes/TokenizerPopover.css +4 -0
  429. package/src/themes/ValueStateMessage.css +10 -0
  430. package/src/themes/base/Badge-parameters.css +10 -10
  431. package/src/themes/base/DayPicker-parameters.css +2 -2
  432. package/src/themes/base/Dialog-parameters.css +1 -1
  433. package/src/themes/base/ListItemBase-parameters.css +1 -0
  434. package/src/themes/base/PopupsCommon-parameters.css +6 -1
  435. package/src/themes/base/SliderBase-parameters.css +7 -0
  436. package/src/themes/base/Switch-parameters.css +2 -13
  437. package/src/themes/base/sizes-parameters.css +7 -7
  438. package/src/themes/sap_belize_hcb/Switch-parameters.css +2 -4
  439. package/src/themes/sap_belize_hcw/Switch-parameters.css +2 -4
  440. package/src/themes/sap_fiori_3_hcb/DayPicker-parameters.css +0 -2
  441. package/src/themes/sap_fiori_3_hcb/Switch-parameters.css +2 -4
  442. package/src/themes/sap_fiori_3_hcw/DayPicker-parameters.css +0 -2
  443. package/src/themes/sap_fiori_3_hcw/Switch-parameters.css +2 -4
  444. package/src/themes/sap_horizon/Dialog-parameters.css +1 -1
  445. package/src/themes/sap_horizon/ListItemBase-parameters.css +1 -2
  446. package/src/themes/sap_horizon/PopupsCommon-parameters.css +0 -1
  447. package/src/themes/sap_horizon/Switch-parameters.css +7 -7
  448. package/src/themes/sap_horizon_exp/Switch-parameters.css +1 -1
@@ -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
  }
@@ -4,6 +4,9 @@ import {
4
4
  isBackSpace,
5
5
  isLeft,
6
6
  isRight,
7
+ isRightCtrl,
8
+ isHome,
9
+ isEnd,
7
10
  } from "@ui5/webcomponents-base/dist/Keys.js";
8
11
  import { MULTIINPUT_ROLEDESCRIPTION_TEXT } from "./generated/i18n/i18n-defaults.js";
9
12
  import Input from "./Input.js";
@@ -136,8 +139,15 @@ class MultiInput extends Input {
136
139
  }
137
140
 
138
141
  tokenDelete(event) {
139
- this.fireEvent("token-delete", {
140
- token: event.detail.ref,
142
+ const focusedToken = event.detail.ref;
143
+ const selectedTokens = this.tokens.filter(token => token.selected);
144
+
145
+ if (selectedTokens.indexOf(focusedToken) === -1) {
146
+ selectedTokens.push(focusedToken);
147
+ }
148
+
149
+ selectedTokens.forEach(token => {
150
+ this.fireEvent("token-delete", { token });
141
151
  });
142
152
 
143
153
  this.focus();
@@ -170,7 +180,9 @@ class MultiInput extends Input {
170
180
  _onkeydown(event) {
171
181
  super._onkeydown(event);
172
182
 
173
- if (isLeft(event)) {
183
+ const isHomeInBeginning = isHome(event) && event.target.selectionStart === 0;
184
+
185
+ if (isLeft(event) || isHomeInBeginning) {
174
186
  this._skipOpenSuggestions = true; // Prevent input focus when navigating through the tokens.
175
187
 
176
188
  return this._handleLeft(event);
@@ -189,22 +201,57 @@ class MultiInput extends Input {
189
201
  }
190
202
 
191
203
  _onTokenizerKeydown(event) {
192
- if (isRight(event)) {
193
- const lastTokenIndex = this.tokenizer._tokens.length - 1;
204
+ const rightCtrl = isRightCtrl(event);
205
+ const isCtrl = !!(event.metaKey || event.ctrlKey);
206
+ const tokens = this.tokens;
194
207
 
195
- if (this.tokenizer._tokens[lastTokenIndex] === document.activeElement) {
208
+ if (isRight(event) || isEnd(event) || rightCtrl) {
209
+ event.preventDefault();
210
+ const lastTokenIndex = this.tokens.length - 1;
211
+
212
+ if (event.target === this.tokens[lastTokenIndex] && this.tokens[lastTokenIndex] === document.activeElement) {
196
213
  setTimeout(() => {
197
214
  this.focus();
198
215
  }, 0);
216
+ } else if (rightCtrl) {
217
+ event.preventDefault();
218
+ return this.tokenizer._handleArrowCtrl(event.target, this.tokens, true);
219
+ }
220
+ }
221
+
222
+ this.tokenizer._handleItemNavigation(event, tokens);
223
+
224
+ if (isCtrl && ["c", "x"].includes(event.key.toLowerCase())) {
225
+ event.preventDefault();
226
+
227
+ const isCut = event.key.toLowerCase() === "x";
228
+ const selectedTokens = tokens.filter(token => token.selected);
229
+
230
+ if (isCut) {
231
+ const cutResult = this.tokenizer._fillClipboard("cut", selectedTokens);
232
+
233
+ selectedTokens.forEach(token => {
234
+ this.fireEvent("token-delete", { token });
235
+ });
236
+
237
+ this.focus();
238
+
239
+ return cutResult;
199
240
  }
241
+
242
+ return this.tokenizer._fillClipboard("copy", selectedTokens);
200
243
  }
201
244
  }
202
245
 
203
246
  _handleLeft() {
204
247
  const cursorPosition = this.getDomRef().querySelector(`input`).selectionStart;
248
+ const tokens = this.tokens;
249
+ const lastToken = tokens.length && tokens[tokens.length - 1];
205
250
 
206
- if (cursorPosition === 0) {
207
- this.tokenizer._focusLastToken();
251
+ if (cursorPosition === 0 && lastToken) {
252
+ // this.tokenizer._focusLastToken(); won't work as the tokens in the MultiInput use different slot and are not resolved properly
253
+ lastToken.focus();
254
+ this.tokenizer._itemNav.setCurrentItem(lastToken);
208
255
  }
209
256
  }
210
257
 
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
  }