@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
@@ -1,6 +1,7 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
3
3
  import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
4
+ import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js";
4
5
  import slideDown from "@ui5/webcomponents-base/dist/animations/slideDown.js";
5
6
  import slideUp from "@ui5/webcomponents-base/dist/animations/slideUp.js";
6
7
  import AnimationMode from "@ui5/webcomponents-base/dist/types/AnimationMode.js";
@@ -22,6 +23,7 @@ import {
22
23
  TABCONTAINER_NEXT_ICON_ACC_NAME,
23
24
  TABCONTAINER_OVERFLOW_MENU_TITLE,
24
25
  TABCONTAINER_END_OVERFLOW,
26
+ TABCONTAINER_POPOVER_CANCEL_BUTTON,
25
27
  } from "./generated/i18n/i18n-defaults.js";
26
28
  import Button from "./Button.js";
27
29
  import Icon from "./Icon.js";
@@ -291,6 +293,15 @@ const metadata = {
291
293
  * <li><code>ui5-tab-separator</code> - used to separate tabs with a vertical line</li>
292
294
  * </ul>
293
295
  *
296
+ * <h3>CSS Shadow Parts</h3>
297
+ *
298
+ * <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.
299
+ * <br>
300
+ * The <code>ui5-tabcontainer</code> exposes the following CSS Shadow Parts:
301
+ * <ul>
302
+ * <li>content - Used to style the content of the component</li>
303
+ * </ul>
304
+ *
294
305
  * <h3>Keyboard Handling</h3>
295
306
  *
296
307
  * <h4>Fast Navigation</h4>
@@ -595,11 +606,13 @@ class TabContainer extends UI5Element {
595
606
  }
596
607
  }
597
608
 
598
- _handleResize() {
609
+ async _handleResize() {
599
610
  if (this.responsivePopover && this.responsivePopover.opened) {
600
611
  this.responsivePopover.close();
601
612
  }
602
613
  this._updateMediaRange();
614
+
615
+ await renderFinished(); // await the tab container to have rendered its representation of tabs
603
616
  this._setItemsForStrip();
604
617
  }
605
618
 
@@ -893,7 +906,11 @@ class TabContainer extends UI5Element {
893
906
  const focusableTabs = [];
894
907
 
895
908
  if (!this._getStartOverflow().hasAttribute("hidden")) {
896
- focusableTabs.push(this._getStartOverflow().querySelector("[ui5-button]"));
909
+ if (this._getCustomStartOverflowBtnDOM()) {
910
+ focusableTabs.push(this._getCustomStartOverflowBtnDOM());
911
+ } else {
912
+ focusableTabs.push(this._getStartOverflowBtnDOM());
913
+ }
897
914
  }
898
915
 
899
916
  this._getTabs().forEach(tab => {
@@ -903,7 +920,11 @@ class TabContainer extends UI5Element {
903
920
  });
904
921
 
905
922
  if (!this._getEndOverflow().hasAttribute("hidden")) {
906
- focusableTabs.push(this._getEndOverflow().querySelector("[ui5-button]"));
923
+ if (this._getCustomEndOverflowBtnDOM()) {
924
+ focusableTabs.push(this._getCustomEndOverflowBtnDOM());
925
+ } else {
926
+ focusableTabs.push(this._getEndOverflowBtnDOM());
927
+ }
907
928
  }
908
929
 
909
930
  return focusableTabs;
@@ -933,6 +954,22 @@ class TabContainer extends UI5Element {
933
954
  return this.shadowRoot.querySelector(".ui5-tc__overflow--end");
934
955
  }
935
956
 
957
+ _getCustomStartOverflowBtnDOM() {
958
+ return this.shadowRoot.querySelector("slot[name=startOverflowButton]");
959
+ }
960
+
961
+ _getStartOverflowBtnDOM() {
962
+ return this._getStartOverflow().querySelector("[ui5-button]");
963
+ }
964
+
965
+ _getCustomEndOverflowBtnDOM() {
966
+ return this.shadowRoot.querySelector("slot[name=overflowButton]");
967
+ }
968
+
969
+ _getEndOverflowBtnDOM() {
970
+ return this._getEndOverflow().querySelector("[ui5-button]");
971
+ }
972
+
936
973
  async _respPopover() {
937
974
  const staticAreaItem = await this.getStaticAreaItemDomRef();
938
975
  return staticAreaItem.querySelector(`#${this._id}-overflowMenu`);
@@ -1002,6 +1039,10 @@ class TabContainer extends UI5Element {
1002
1039
  return TabContainer.i18nBundle.getText(TABCONTAINER_END_OVERFLOW);
1003
1040
  }
1004
1041
 
1042
+ get popoverCancelButtonText() {
1043
+ return TabContainer.i18nBundle.getText(TABCONTAINER_POPOVER_CANCEL_BUTTON);
1044
+ }
1045
+
1005
1046
  get animate() {
1006
1047
  return getAnimationMode() !== AnimationMode.None;
1007
1048
  }
package/dist/Table.js CHANGED
@@ -5,7 +5,20 @@ import ItemNavigation from "@ui5/webcomponents-base/dist/delegate/ItemNavigation
5
5
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
6
6
  import NavigationMode from "@ui5/webcomponents-base/dist/types/NavigationMode.js";
7
7
  import { isIE } from "@ui5/webcomponents-base/dist/Device.js";
8
- import { isSpace, isEnter } from "@ui5/webcomponents-base/dist/Keys.js";
8
+ import {
9
+ isSpace,
10
+ isEnter,
11
+ isCtrlA,
12
+ isUpAlt,
13
+ isDownAlt,
14
+ isUpShift,
15
+ isDownShift,
16
+ isHomeCtrl,
17
+ isEndCtrl,
18
+ isHomeShift,
19
+ isEndShift,
20
+ } from "@ui5/webcomponents-base/dist/Keys.js";
21
+ import { getTabbableElements } from "@ui5/webcomponents-base/dist/util/TabbableElements.js";
9
22
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
10
23
  import debounce from "@ui5/webcomponents-base/dist/util/debounce.js";
11
24
  import isElementInView from "@ui5/webcomponents-base/dist/util/isElementInView.js";
@@ -268,7 +281,7 @@ const metadata = {
268
281
 
269
282
  /**
270
283
  * Defines whether all rows are selected or not when table is in MultiSelect mode.
271
- * @type {Boolean}
284
+ * @type {boolean}
272
285
  * @defaultvalue false
273
286
  * @since 1.0.0-rc.15
274
287
  * @private
@@ -373,6 +386,18 @@ const metadata = {
373
386
  * In order to use this functionality, you need to import the following module:
374
387
  * <code>import "@ui5/webcomponents-base/dist/features/F6Navigation.js"</code>
375
388
  * <br><br>
389
+ * Furthermore, you can interact with <code>ui5-table</code> via the following keys.
390
+ * <br>
391
+ *
392
+ * <ul>
393
+ * <li>[F7] - If focus is on an interactive control inside an item, moves focus to the corresponding item.</li>
394
+ * <li>[CTRL]+[A] - Selects all items, if MultiSelect mode is enabled.</li>
395
+ * <li>[HOME]/[END] - Focuses the first/last item.</li>
396
+ * <li>[PAGEUP]/[PAGEDOWN] - Moves focus up/down by page size (20 items by default).</li>
397
+ * <li>[ALT]+[DOWN]/[UP] - Switches focus between header, last focused item, and More button (if applies) in either direction.</li>
398
+ * <li>[SHIFT]+[DOWN]/[UP] - Selects the next/previous item in a MultiSelect table, if the current item is selected (Range selection). Otherwise, deselects them (Range deselection).</li>
399
+ * <li>[SHIFT]+[HOME]/[END] - Range selection to the first/last item of the List.</li>
400
+ * <li>[CTRL]+[HOME]/[END] - Same behavior as HOME & END.</li> * </ul>
376
401
  *
377
402
  * <h3>ES6 Module Import</h3>
378
403
  *
@@ -430,6 +455,7 @@ class Table extends UI5Element {
430
455
  navigationMode: NavigationMode.Vertical,
431
456
  affectedPropertiesNames: ["_columnHeader"],
432
457
  getItemsCallback: () => [this._columnHeader, ...this.rows],
458
+ skipItemsSize: 20,
433
459
  });
434
460
 
435
461
  this.fnOnRowFocused = this.onRowFocused.bind(this);
@@ -437,7 +463,10 @@ class Table extends UI5Element {
437
463
  this._handleResize = this.popinContent.bind(this);
438
464
 
439
465
  this.tableEndObserved = false;
466
+
440
467
  this.addEventListener("ui5-selection-requested", this._handleSelect.bind(this));
468
+
469
+ this._prevNestedElementIndex = 0;
441
470
  }
442
471
 
443
472
  onBeforeRendering() {
@@ -460,7 +489,6 @@ class Table extends UI5Element {
460
489
  });
461
490
 
462
491
  this.visibleColumns = this.columns.filter((column, index) => {
463
- column.sticky = this.stickyColumnHeader;
464
492
  return !this._hiddenColumns[index];
465
493
  });
466
494
 
@@ -468,6 +496,8 @@ class Table extends UI5Element {
468
496
  this.visibleColumnsCount = this.visibleColumns.length;
469
497
 
470
498
  this._allRowsSelected = selectedRows.length === this.rows.length;
499
+
500
+ this._previousFocusedRow = this._previousFocusedRow || this.rows[0] || null;
471
501
  }
472
502
 
473
503
  onAfterRendering() {
@@ -484,6 +514,16 @@ class Table extends UI5Element {
484
514
  }
485
515
 
486
516
  ResizeHandler.register(this.getDomRef(), this._handleResize);
517
+
518
+ this._itemNavigation.setCurrentItem(this.rows.length ? this.rows[0] : this._columnHeader);
519
+
520
+ this.rows.forEach((row, index) => {
521
+ row._tabbableElements = getTabbableElements(row);
522
+
523
+ if (index > 0) {
524
+ row._tabbableElements.forEach(el => el.setAttribute("tabindex", "-1"));
525
+ }
526
+ });
487
527
  }
488
528
 
489
529
  onExitDOM() {
@@ -496,6 +536,182 @@ class Table extends UI5Element {
496
536
  }
497
537
  }
498
538
 
539
+ _onkeydown(event) {
540
+ if (isCtrlA(event)) {
541
+ event.preventDefault();
542
+ this.isMultiSelect && this._selectAll(event);
543
+ return;
544
+ }
545
+
546
+ const isAltUp = isUpAlt(event);
547
+
548
+ if (isAltUp || isDownAlt(event)) {
549
+ return this._handleArrowAlt(isAltUp, event.target);
550
+ }
551
+
552
+ if ((isUpShift(event) || isDownShift(event)) && this.isMultiSelect) {
553
+ this._handleArrowNav(event);
554
+ }
555
+
556
+ if (isHomeCtrl(event)) {
557
+ event.preventDefault();
558
+
559
+ this._itemNavigation._handleHome(event);
560
+ this._itemNavigation._applyTabIndex();
561
+ this._itemNavigation._focusCurrentItem();
562
+ }
563
+
564
+ if (isEndCtrl(event)) {
565
+ event.preventDefault();
566
+
567
+ this._itemNavigation._handleEnd(event);
568
+ this._itemNavigation._applyTabIndex();
569
+ this._itemNavigation._focusCurrentItem();
570
+ }
571
+
572
+ if ((isHomeShift(event) || isEndShift(event)) && this.isMultiSelect) {
573
+ this._handleHomeEndSelection(event);
574
+ }
575
+ }
576
+
577
+ _handleArrowNav(event) {
578
+ const isRowFocused = this.currentElement.localName === "tr";
579
+
580
+ if (!isRowFocused) {
581
+ return;
582
+ }
583
+
584
+ const previouslySelectedRows = this.selectedRows;
585
+ const currentItem = this.currentItem;
586
+ const currentItemIdx = this.currentItemIdx;
587
+
588
+ const prevItemIdx = currentItemIdx - 1;
589
+ const nextItemIdx = currentItemIdx + 1;
590
+
591
+ const prevItem = this.rows[prevItemIdx];
592
+ const nextItem = this.rows[nextItemIdx];
593
+ const wasSelected = currentItem.selected;
594
+
595
+ if ((isUpShift(event) && !prevItem) || (isDownShift(event) && !nextItem)) {
596
+ return;
597
+ }
598
+
599
+ if (isUpShift(event)) {
600
+ currentItem.selected = currentItem.selected && !prevItem.selected;
601
+ prevItem.selected = currentItem.selected || (wasSelected && !currentItem.selected);
602
+
603
+ prevItem.focus();
604
+ }
605
+
606
+ if (isDownShift(event)) {
607
+ currentItem.selected = currentItem.selected && !nextItem.selected;
608
+ nextItem.selected = currentItem.selected || (wasSelected && !currentItem.selected);
609
+
610
+ nextItem.focus();
611
+ }
612
+
613
+ const selectedRows = this.selectedRows;
614
+
615
+ this.fireEvent("selection-change", {
616
+ selectedRows,
617
+ previouslySelectedRows,
618
+ });
619
+ }
620
+
621
+ _handleHomeEndSelection(event) {
622
+ const isRowFocused = this.currentElement.localName === "tr";
623
+
624
+ if (!isRowFocused) {
625
+ return;
626
+ }
627
+ const rows = this.rows;
628
+ const previouslySelectedRows = this.selectedRows;
629
+ const currentItemIdx = this.currentItemIdx;
630
+
631
+ if (isHomeShift(event)) {
632
+ rows.slice(0, currentItemIdx + 1).forEach(item => {
633
+ item.selected = true;
634
+ });
635
+ rows[0].focus();
636
+ }
637
+
638
+ if (isEndShift(event)) {
639
+ rows.slice(currentItemIdx).forEach(item => {
640
+ item.selected = true;
641
+ });
642
+ rows[rows.length - 1].focus();
643
+ }
644
+
645
+ const selectedRows = this.selectedRows;
646
+
647
+ this.fireEvent("selection-change", {
648
+ selectedRows,
649
+ previouslySelectedRows,
650
+ });
651
+ }
652
+
653
+ /**
654
+ * Handles Alt + Up/Down.
655
+ * Switches focus between column header, last focused item, and "More" button (if applicable).
656
+ * @private
657
+ * @param {boolean} shouldMoveUp Whether to move focus upward
658
+ * @param {object} focusedElement The element currently in focus
659
+ */
660
+ _handleArrowAlt(shouldMoveUp, focusedElement) {
661
+ const focusedElementType = this.getFocusedElementType(focusedElement);
662
+ const moreButton = this.getMoreButton();
663
+
664
+ if (shouldMoveUp) {
665
+ switch (focusedElementType) {
666
+ case "tableRow":
667
+ this._previousFocusedRow = focusedElement;
668
+ return this._onColumnHeaderClick();
669
+ case "columnHeader":
670
+ return moreButton ? moreButton.focus() : this._previousFocusedRow.focus();
671
+ case "moreButton":
672
+ return this._previousFocusedRow ? this._previousFocusedRow.focus() : this._onColumnHeaderClick();
673
+ }
674
+ } else {
675
+ switch (focusedElementType) {
676
+ case "tableRow":
677
+ this._previousFocusedRow = focusedElement;
678
+ return moreButton ? moreButton.focus() : this._onColumnHeaderClick();
679
+ case "columnHeader":
680
+ if (this._previousFocusedRow) {
681
+ return this._previousFocusedRow.focus();
682
+ }
683
+
684
+ if (moreButton) {
685
+ return moreButton.focus();
686
+ }
687
+
688
+ return;
689
+ case "moreButton":
690
+ return this._onColumnHeaderClick();
691
+ }
692
+ }
693
+ }
694
+
695
+ /**
696
+ * Determines the type of the currently focused element.
697
+ * @private
698
+ * @param {object} element The object representation of the DOM element
699
+ * @returns {("columnHeader"|"tableRow"|"moreButton")} A string identifier
700
+ */
701
+ getFocusedElementType(element) {
702
+ if (element === this.getColumnHeader()) {
703
+ return "columnHeader";
704
+ }
705
+
706
+ if (element === this.getMoreButton()) {
707
+ return "moreButton";
708
+ }
709
+
710
+ if (this.rows.includes(element)) {
711
+ return "tableRow";
712
+ }
713
+ }
714
+
499
715
  onRowFocused(event) {
500
716
  this._itemNavigation.setCurrentItem(event.target);
501
717
  }
@@ -505,6 +721,13 @@ class Table extends UI5Element {
505
721
  this._itemNavigation.setCurrentItem(this._columnHeader);
506
722
  }
507
723
 
724
+ _onColumnHeaderKeydown(event) {
725
+ if (isSpace(event)) {
726
+ event.preventDefault();
727
+ this.isMultiSelect && this._selectAll();
728
+ }
729
+ }
730
+
508
731
  _onLoadMoreKeydown(event) {
509
732
  if (isSpace(event)) {
510
733
  event.preventDefault();
@@ -587,7 +810,7 @@ class Table extends UI5Element {
587
810
  }
588
811
 
589
812
  _selectAll(event) {
590
- const bAllSelected = event.target.checked;
813
+ const bAllSelected = !this._allRowsSelected;
591
814
  const previouslySelectedRows = this.rows.filter(row => row.selected);
592
815
 
593
816
  this._allRowsSelected = bAllSelected;
@@ -622,6 +845,10 @@ class Table extends UI5Element {
622
845
  return this.getDomRef() && this.getDomRef().querySelector(`#${this._id}-columnHeader`);
623
846
  }
624
847
 
848
+ getMoreButton() {
849
+ return this.growsWithButton && this.getDomRef() && this.getDomRef().querySelector(`#${this._id}-growingButton`);
850
+ }
851
+
625
852
  handleResize(event) {
626
853
  this.checkTableInViewport();
627
854
  this.popinContent(event);
@@ -764,6 +991,18 @@ class Table extends UI5Element {
764
991
  get selectedRows() {
765
992
  return this.rows.filter(row => row.selected);
766
993
  }
994
+
995
+ get currentItemIdx() {
996
+ return this.rows.indexOf(this.currentItem);
997
+ }
998
+
999
+ get currentItem() {
1000
+ return this.getRootNode().activeElement;
1001
+ }
1002
+
1003
+ get currentElement() {
1004
+ return this._itemNavigation._getCurrentItem();
1005
+ }
767
1006
  }
768
1007
 
769
1008
  Table.define();
@@ -78,13 +78,6 @@ const metadata = {
78
78
  last: {
79
79
  type: Boolean,
80
80
  },
81
-
82
- /**
83
- * @private
84
- */
85
- sticky: {
86
- type: Boolean,
87
- },
88
81
  },
89
82
  };
90
83
 
@@ -150,6 +150,10 @@ class TableGroupRow extends UI5Element {
150
150
  this._colSpan = this.visibleColCount();
151
151
  }
152
152
 
153
+ _onfocusin(event) {
154
+ this.parentElement._itemNavigation.setCurrentItem(this);
155
+ }
156
+
153
157
  static async onDefine() {
154
158
  TableGroupRow.i18nBundle = await getI18nBundle("@ui5/webcomponents");
155
159
  }
package/dist/TableRow.js CHANGED
@@ -1,7 +1,14 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
- import { isSpace, isEnter } from "@ui5/webcomponents-base/dist/Keys.js";
3
2
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
4
3
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
4
+ import {
5
+ isSpace,
6
+ isEnter,
7
+ isF7,
8
+ isTabNext,
9
+ isTabPrevious,
10
+ } from "@ui5/webcomponents-base/dist/Keys.js";
11
+ import CheckBox from "./CheckBox.js";
5
12
  import TableMode from "./types/TableMode.js";
6
13
  import TableRowType from "./types/TableRowType.js";
7
14
  import TableRowTemplate from "./generated/templates/TableRowTemplate.lit.js";
@@ -106,6 +113,13 @@ const metadata = {
106
113
  defaultValue: "",
107
114
  noAttribute: true,
108
115
  },
116
+ _tabbableElements: {
117
+ type: Object,
118
+ multiple: true,
119
+ },
120
+ _tabMarked: {
121
+ type: Boolean,
122
+ },
109
123
  },
110
124
  events: /** @lends sap.ui.webcomponents.main.TableRow.prototype */ {
111
125
  /**
@@ -170,6 +184,10 @@ class TableRow extends UI5Element {
170
184
  return TableRowTemplate;
171
185
  }
172
186
 
187
+ static get dependencies() {
188
+ return [CheckBox];
189
+ }
190
+
173
191
  _onmouseup() {
174
192
  this.deactivate();
175
193
  }
@@ -178,9 +196,17 @@ class TableRow extends UI5Element {
178
196
  const itemActive = this.type === TableRowType.Active;
179
197
  const isSingleSelect = this.isSingleSelect;
180
198
  const itemSelectable = isSingleSelect || this.isMultiSelect;
181
- const isRowFocused = this._getActiveElementTagName() === "ui5-table-row";
199
+ const isRowFocused = this._activeElementHasAttribute("ui5-table-row");
182
200
  const checkboxPressed = event.target.classList.contains("ui5-multi-select-checkbox");
183
201
 
202
+ if (isTabNext(event) || isTabPrevious(event)) {
203
+ this._tabMarked = true;
204
+ }
205
+
206
+ if (isTabNext(event) || isTabPrevious(event)) {
207
+ this._tabMarked = true;
208
+ }
209
+
184
210
  if (isSpace(event) && event.target.tagName.toLowerCase() === "tr") {
185
211
  event.preventDefault();
186
212
  }
@@ -197,6 +223,11 @@ class TableRow extends UI5Element {
197
223
  }
198
224
  }
199
225
  }
226
+
227
+ if (isF7(event)) {
228
+ event.preventDefault();
229
+ this._handleF7(event.target);
230
+ }
200
231
  }
201
232
 
202
233
  _onkeyup(event) {
@@ -213,16 +244,26 @@ class TableRow extends UI5Element {
213
244
  this.deactivate();
214
245
  }
215
246
 
216
- _onfocusout() {
247
+ _onfocusout(event) {
217
248
  this.deactivate();
249
+
250
+ if (!this._tabMarked) {
251
+ this._tabbableElements.forEach(el => el.setAttribute("tabindex", -1));
252
+ } else {
253
+ this._tabMarked = false;
254
+ }
218
255
  }
219
256
 
220
257
  _onfocusin(event, forceSelfFocus = false) {
221
- if (forceSelfFocus || this._getActiveElementTagName() === "ui5-table-cell") {
222
- this.shadowRoot.querySelector(".ui5-table-row-root").focus();
258
+ const tableRowRoot = this.shadowRoot.querySelector(".ui5-table-row-root");
259
+
260
+ if (forceSelfFocus || this._activeElementHasAttribute("ui5-table-cell")) {
261
+ tableRowRoot.focus();
223
262
  this.activate();
224
263
  }
225
264
 
265
+ this._tabbableElements.forEach(el => el.setAttribute("tabindex", 0));
266
+
226
267
  this.fireEvent("_focused", event);
227
268
  }
228
269
 
@@ -244,7 +285,7 @@ class TableRow extends UI5Element {
244
285
  this.deactivate();
245
286
  }
246
287
 
247
- if (this._getActiveElementTagName() === "ui5-table-row") {
288
+ if (this._activeElementHasAttribute("ui5-table-row")) {
248
289
  if (this.isSingleSelect) {
249
290
  this._handleSelection();
250
291
  }
@@ -259,8 +300,46 @@ class TableRow extends UI5Element {
259
300
  this.fireEvent("selection-requested", { row: this });
260
301
  }
261
302
 
262
- _getActiveElementTagName() {
263
- return this.getRootNode().activeElement.localName.toLocaleLowerCase();
303
+ /**
304
+ * Toggles focus between the table row's root and the last focused nested element.
305
+ * @private
306
+ * @param {Object} activeElement The currently focused element
307
+ */
308
+ _handleF7(activeElement) {
309
+ const elements = this._tabbableElements;
310
+
311
+ if (!elements.length) {
312
+ return;
313
+ }
314
+
315
+ const table = this.parentElement;
316
+ const tableRowRoot = this.shadowRoot.querySelector(".ui5-table-row-root");
317
+ const prevFocusedIdx = table._prevNestedElementIndex;
318
+
319
+ if (activeElement === tableRowRoot) {
320
+ const lastFocusedElement = elements[prevFocusedIdx];
321
+
322
+ if (lastFocusedElement) {
323
+ lastFocusedElement.focus();
324
+ } else {
325
+ elements[0].focus();
326
+ }
327
+
328
+ return;
329
+ }
330
+
331
+ const shadowRoot = activeElement.shadowRoot;
332
+ const target = shadowRoot ? shadowRoot.activeElement : activeElement;
333
+ const targetIndex = elements.indexOf(target);
334
+
335
+ if (targetIndex > -1) {
336
+ table._prevNestedElementIndex = targetIndex;
337
+ tableRowRoot.focus();
338
+ }
339
+ }
340
+
341
+ _activeElementHasAttribute(attr) {
342
+ return this.getRootNode().activeElement.hasAttribute(attr);
264
343
  }
265
344
 
266
345
  activate() {
package/dist/TextArea.js CHANGED
@@ -9,6 +9,11 @@ import { isIE } from "@ui5/webcomponents-base/dist/Device.js";
9
9
  import { isEscape } from "@ui5/webcomponents-base/dist/Keys.js";
10
10
  import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
11
11
  import Popover from "./Popover.js";
12
+ import Icon from "./Icon.js";
13
+ import "@ui5/webcomponents-icons/dist/error.js";
14
+ import "@ui5/webcomponents-icons/dist/alert.js";
15
+ import "@ui5/webcomponents-icons/dist/sys-enter-2.js";
16
+ import "@ui5/webcomponents-icons/dist/information.js";
12
17
 
13
18
  import TextAreaTemplate from "./generated/templates/TextAreaTemplate.lit.js";
14
19
  import TextAreaPopoverTemplate from "./generated/templates/TextAreaPopoverTemplate.lit.js";
@@ -213,9 +218,9 @@ const metadata = {
213
218
  },
214
219
 
215
220
  /**
216
- * Sets the accessible aria name of the component.
221
+ * Defines the accessible aria name of the component.
217
222
  *
218
- * @type {String}
223
+ * @type {string}
219
224
  * @public
220
225
  * @since 1.0.0-rc.15
221
226
  */
@@ -226,7 +231,7 @@ const metadata = {
226
231
  /**
227
232
  * Receives id(or many ids) of the elements that label the textarea.
228
233
  *
229
- * @type {String}
234
+ * @type {string}
230
235
  * @defaultvalue ""
231
236
  * @public
232
237
  * @since 1.0.0-rc.15
@@ -684,7 +689,7 @@ class TextArea extends UI5Element {
684
689
  }
685
690
 
686
691
  static get dependencies() {
687
- return [Popover];
692
+ return [Popover, Icon];
688
693
  }
689
694
 
690
695
  static async onDefine() {