@ui5/webcomponents 1.2.2 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (733) hide show
  1. package/CHANGELOG.md +97 -0
  2. package/README.md +6 -1
  3. package/dist/Breadcrumbs.js +55 -5
  4. package/dist/Button.js +13 -10
  5. package/dist/CardHeader.js +5 -10
  6. package/dist/CheckBox.js +12 -0
  7. package/dist/ColorPicker.js +14 -10
  8. package/dist/ComboBox.js +13 -9
  9. package/dist/DatePicker.js +13 -7
  10. package/dist/DateTimePicker.js +3 -0
  11. package/dist/Icon.js +4 -9
  12. package/dist/Input.js +36 -4
  13. package/dist/Interfaces.js +10 -0
  14. package/dist/Link.js +1 -1
  15. package/dist/List.js +54 -5
  16. package/dist/ListItem.js +28 -5
  17. package/dist/ListItemBase.js +3 -1
  18. package/dist/Menu.js +500 -0
  19. package/dist/MenuItem.js +162 -0
  20. package/dist/MultiComboBox.js +229 -25
  21. package/dist/MultiInput.js +20 -9
  22. package/dist/Option.js +10 -0
  23. package/dist/Popover.js +37 -77
  24. package/dist/Popup.js +4 -0
  25. package/dist/RadioButton.js +10 -1
  26. package/dist/ResponsivePopover.js +4 -0
  27. package/dist/Select.js +3 -0
  28. package/dist/SliderBase.js +7 -4
  29. package/dist/SplitButton.js +13 -6
  30. package/dist/Tab.js +78 -4
  31. package/dist/TabContainer.js +193 -41
  32. package/dist/Table.js +240 -44
  33. package/dist/TableGroupRow.js +4 -1
  34. package/dist/TableRow.js +33 -66
  35. package/dist/TimePicker.js +0 -2
  36. package/dist/TimePickerBase.js +11 -2
  37. package/dist/TimeSelection.js +7 -0
  38. package/dist/Token.js +2 -1
  39. package/dist/Tokenizer.js +26 -16
  40. package/dist/WheelSlider.js +7 -0
  41. package/dist/api.json +231 -9
  42. package/dist/css/themes/Avatar.css +1 -1
  43. package/dist/css/themes/Badge.css +1 -1
  44. package/dist/css/themes/BreadcrumbsPopover.css +1 -1
  45. package/dist/css/themes/Button.css +1 -1
  46. package/dist/css/themes/CalendarHeader.css +1 -1
  47. package/dist/css/themes/Card.css +1 -1
  48. package/dist/css/themes/CardHeader.css +1 -1
  49. package/dist/css/themes/CheckBox.css +1 -1
  50. package/dist/css/themes/ColorPalette.css +1 -1
  51. package/dist/css/themes/ColorPalettePopover.css +1 -1
  52. package/dist/css/themes/ColorPicker.css +1 -1
  53. package/dist/css/themes/ComboBox.css +1 -1
  54. package/dist/css/themes/DatePicker.css +1 -1
  55. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  56. package/dist/css/themes/Dialog.css +1 -1
  57. package/dist/css/themes/Icon.css +1 -1
  58. package/dist/css/themes/Input.css +1 -1
  59. package/dist/css/themes/InputIcon.css +1 -1
  60. package/dist/css/themes/Label.css +1 -1
  61. package/dist/css/themes/Link.css +1 -1
  62. package/dist/css/themes/ListItem.css +1 -1
  63. package/dist/css/themes/Menu.css +1 -0
  64. package/dist/css/themes/MessageStrip.css +1 -1
  65. package/dist/css/themes/MultiComboBox.css +1 -1
  66. package/dist/css/themes/MultiInput.css +1 -1
  67. package/dist/css/themes/Panel.css +1 -1
  68. package/dist/css/themes/PopupsCommon.css +1 -1
  69. package/dist/css/themes/RadioButton.css +1 -1
  70. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  71. package/dist/css/themes/SegmentedButton.css +1 -1
  72. package/dist/css/themes/Select.css +1 -1
  73. package/dist/css/themes/SplitButton.css +1 -1
  74. package/dist/css/themes/StepInput.css +1 -1
  75. package/dist/css/themes/Suggestions.css +1 -1
  76. package/dist/css/themes/TabContainer.css +1 -1
  77. package/dist/css/themes/TabInOverflow.css +1 -1
  78. package/dist/css/themes/TabInStrip.css +1 -1
  79. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  80. package/dist/css/themes/Table.css +1 -1
  81. package/dist/css/themes/TableCell.css +1 -1
  82. package/dist/css/themes/TableColumn.css +1 -1
  83. package/dist/css/themes/TableGroupRow.css +1 -1
  84. package/dist/css/themes/TableRow.css +1 -1
  85. package/dist/css/themes/TextArea.css +1 -1
  86. package/dist/css/themes/TimePicker.css +1 -1
  87. package/dist/css/themes/Title.css +1 -1
  88. package/dist/css/themes/Toast.css +1 -1
  89. package/dist/css/themes/ToggleButton.css +1 -1
  90. package/dist/css/themes/TreeListItem.css +1 -1
  91. package/dist/css/themes/ValueStateMessage.css +1 -1
  92. package/dist/css/themes/sap_belize/parameters-bundle.css +1 -1
  93. package/dist/css/themes/sap_belize_hcb/parameters-bundle.css +1 -1
  94. package/dist/css/themes/sap_belize_hcw/parameters-bundle.css +1 -1
  95. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  96. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  97. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  98. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  99. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  100. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  101. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  102. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  103. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  104. package/dist/features/InputElementsFormSupport.js +8 -5
  105. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  106. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  107. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  108. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  109. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  110. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  111. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  112. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  113. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  114. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  115. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  116. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  117. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  118. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  119. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  120. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  121. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  122. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  123. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  124. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  125. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  126. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  127. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  128. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  129. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  130. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  131. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  132. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  133. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  134. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  135. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  136. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  137. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  138. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  139. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  140. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  141. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  142. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  143. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  144. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  145. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  146. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  147. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  148. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  149. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  150. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  151. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  152. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  153. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  154. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  155. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  156. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  157. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  158. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  159. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  160. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  161. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  162. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  163. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  164. package/dist/generated/i18n/i18n-defaults.js +2 -2
  165. package/dist/generated/templates/AvatarGroupTemplate.lit.js +1 -1
  166. package/dist/generated/templates/AvatarTemplate.lit.js +1 -1
  167. package/dist/generated/templates/BadgeTemplate.lit.js +1 -1
  168. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +2 -2
  169. package/dist/generated/templates/BreadcrumbsTemplate.lit.js +3 -3
  170. package/dist/generated/templates/BusyIndicatorTemplate.lit.js +1 -1
  171. package/dist/generated/templates/ButtonTemplate.lit.js +2 -2
  172. package/dist/generated/templates/CalendarHeaderTemplate.lit.js +1 -1
  173. package/dist/generated/templates/CalendarTemplate.lit.js +1 -1
  174. package/dist/generated/templates/CardHeaderTemplate.lit.js +4 -4
  175. package/dist/generated/templates/CardTemplate.lit.js +1 -1
  176. package/dist/generated/templates/CarouselTemplate.lit.js +4 -4
  177. package/dist/generated/templates/CheckBoxTemplate.lit.js +3 -3
  178. package/dist/generated/templates/ColorPaletteDialogTemplate.lit.js +1 -1
  179. package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +1 -1
  180. package/dist/generated/templates/ColorPaletteTemplate.lit.js +3 -3
  181. package/dist/generated/templates/ColorPickerTemplate.lit.js +1 -1
  182. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +6 -6
  183. package/dist/generated/templates/ComboBoxTemplate.lit.js +3 -4
  184. package/dist/generated/templates/CustomListItemTemplate.lit.js +8 -8
  185. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +3 -3
  186. package/dist/generated/templates/DatePickerTemplate.lit.js +2 -2
  187. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +4 -4
  188. package/dist/generated/templates/DialogTemplate.lit.js +1 -1
  189. package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +2 -2
  190. package/dist/generated/templates/FileUploaderTemplate.lit.js +1 -1
  191. package/dist/generated/templates/InputPopoverTemplate.lit.js +8 -8
  192. package/dist/generated/templates/InputTemplate.lit.js +6 -7
  193. package/dist/generated/templates/LabelTemplate.lit.js +1 -1
  194. package/dist/generated/templates/ListItemTemplate.lit.js +8 -8
  195. package/dist/generated/templates/ListTemplate.lit.js +2 -2
  196. package/dist/generated/templates/MenuTemplate.lit.js +15 -0
  197. package/dist/generated/templates/MessageStripTemplate.lit.js +2 -2
  198. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +10 -10
  199. package/dist/generated/templates/MultiComboBoxTemplate.lit.js +4 -5
  200. package/dist/generated/templates/MultiInputTemplate.lit.js +7 -8
  201. package/dist/generated/templates/PanelTemplate.lit.js +3 -3
  202. package/dist/generated/templates/PopoverTemplate.lit.js +1 -1
  203. package/dist/generated/templates/ProgressIndicatorTemplate.lit.js +2 -2
  204. package/dist/generated/templates/RadioButtonTemplate.lit.js +2 -2
  205. package/dist/generated/templates/RangeSliderTemplate.lit.js +1 -1
  206. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +4 -4
  207. package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +1 -1
  208. package/dist/generated/templates/SelectPopoverTemplate.lit.js +5 -5
  209. package/dist/generated/templates/SelectTemplate.lit.js +2 -2
  210. package/dist/generated/templates/SliderTemplate.lit.js +1 -1
  211. package/dist/generated/templates/SplitButtonTemplate.lit.js +1 -1
  212. package/dist/generated/templates/StandardListItemTemplate.lit.js +11 -11
  213. package/dist/generated/templates/StepInputTemplate.lit.js +3 -3
  214. package/dist/generated/templates/SuggestionListItemTemplate.lit.js +11 -11
  215. package/dist/generated/templates/SwitchTemplate.lit.js +3 -3
  216. package/dist/generated/templates/TabContainerPopoverTemplate.lit.js +2 -5
  217. package/dist/generated/templates/TabContainerTemplate.lit.js +10 -12
  218. package/dist/generated/templates/TabInOverflowTemplate.lit.js +3 -2
  219. package/dist/generated/templates/TabInStripTemplate.lit.js +5 -3
  220. package/dist/generated/templates/TabSeparatorInOverflowTemplate.lit.js +1 -1
  221. package/dist/generated/templates/TabTemplate.lit.js +2 -1
  222. package/dist/generated/templates/TableRowTemplate.lit.js +1 -1
  223. package/dist/generated/templates/TableTemplate.lit.js +3 -3
  224. package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +1 -1
  225. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +1 -1
  226. package/dist/generated/templates/TimePickerTemplate.lit.js +2 -2
  227. package/dist/generated/templates/TimeSelectionTemplate.lit.js +4 -4
  228. package/dist/generated/templates/ToggleButtonTemplate.lit.js +2 -2
  229. package/dist/generated/templates/TokenTemplate.lit.js +1 -1
  230. package/dist/generated/templates/TokenizerPopoverTemplate.lit.js +5 -5
  231. package/dist/generated/templates/TreeListItemTemplate.lit.js +11 -11
  232. package/dist/generated/templates/TreeTemplate.lit.js +2 -2
  233. package/dist/generated/templates/WheelSliderTemplate.lit.js +1 -1
  234. package/dist/generated/themes/Avatar.css.js +1 -1
  235. package/dist/generated/themes/Badge.css.js +1 -1
  236. package/dist/generated/themes/BreadcrumbsPopover.css.js +1 -1
  237. package/dist/generated/themes/Button.css.js +1 -1
  238. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  239. package/dist/generated/themes/Card.css.js +1 -1
  240. package/dist/generated/themes/CardHeader.css.js +1 -1
  241. package/dist/generated/themes/CheckBox.css.js +1 -1
  242. package/dist/generated/themes/ColorPalette.css.js +1 -1
  243. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  244. package/dist/generated/themes/ColorPicker.css.js +1 -1
  245. package/dist/generated/themes/ComboBox.css.js +1 -1
  246. package/dist/generated/themes/DatePicker.css.js +1 -1
  247. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  248. package/dist/generated/themes/Dialog.css.js +1 -1
  249. package/dist/generated/themes/Icon.css.js +1 -1
  250. package/dist/generated/themes/Input.css.js +1 -1
  251. package/dist/generated/themes/InputIcon.css.js +1 -1
  252. package/dist/generated/themes/Label.css.js +1 -1
  253. package/dist/generated/themes/Link.css.js +1 -1
  254. package/dist/generated/themes/ListItem.css.js +1 -1
  255. package/dist/generated/themes/Menu.css.js +8 -0
  256. package/dist/generated/themes/MessageStrip.css.js +1 -1
  257. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  258. package/dist/generated/themes/MultiInput.css.js +1 -1
  259. package/dist/generated/themes/Panel.css.js +1 -1
  260. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  261. package/dist/generated/themes/RadioButton.css.js +1 -1
  262. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  263. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  264. package/dist/generated/themes/Select.css.js +1 -1
  265. package/dist/generated/themes/SplitButton.css.js +1 -1
  266. package/dist/generated/themes/StepInput.css.js +1 -1
  267. package/dist/generated/themes/Suggestions.css.js +1 -1
  268. package/dist/generated/themes/TabContainer.css.js +1 -1
  269. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  270. package/dist/generated/themes/TabInStrip.css.js +1 -1
  271. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  272. package/dist/generated/themes/Table.css.js +1 -1
  273. package/dist/generated/themes/TableCell.css.js +1 -1
  274. package/dist/generated/themes/TableColumn.css.js +1 -1
  275. package/dist/generated/themes/TableGroupRow.css.js +1 -1
  276. package/dist/generated/themes/TableRow.css.js +1 -1
  277. package/dist/generated/themes/TextArea.css.js +1 -1
  278. package/dist/generated/themes/TimePicker.css.js +1 -1
  279. package/dist/generated/themes/Title.css.js +1 -1
  280. package/dist/generated/themes/Toast.css.js +1 -1
  281. package/dist/generated/themes/ToggleButton.css.js +1 -1
  282. package/dist/generated/themes/TreeListItem.css.js +1 -1
  283. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  284. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  285. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  286. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  287. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  288. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  289. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  290. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  291. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  292. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  293. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  294. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  295. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  296. package/dist/i18n/messagebundle.properties +8 -0
  297. package/dist/i18n/messagebundle_ar.properties +6 -0
  298. package/dist/i18n/messagebundle_bg.properties +6 -0
  299. package/dist/i18n/messagebundle_ca.properties +6 -0
  300. package/dist/i18n/messagebundle_cs.properties +6 -0
  301. package/dist/i18n/messagebundle_cy.properties +6 -0
  302. package/dist/i18n/messagebundle_da.properties +6 -0
  303. package/dist/i18n/messagebundle_de.properties +6 -0
  304. package/dist/i18n/messagebundle_el.properties +6 -0
  305. package/dist/i18n/messagebundle_en.properties +6 -0
  306. package/dist/i18n/messagebundle_en_GB.properties +6 -0
  307. package/dist/i18n/messagebundle_en_US_sappsd.properties +6 -0
  308. package/dist/i18n/messagebundle_en_US_saprigi.properties +7 -0
  309. package/dist/i18n/messagebundle_en_US_saptrc.properties +6 -0
  310. package/dist/i18n/messagebundle_es.properties +6 -0
  311. package/dist/i18n/messagebundle_es_MX.properties +6 -0
  312. package/dist/i18n/messagebundle_et.properties +6 -0
  313. package/dist/i18n/messagebundle_fi.properties +6 -0
  314. package/dist/i18n/messagebundle_fr.properties +6 -0
  315. package/dist/i18n/messagebundle_fr_CA.properties +6 -0
  316. package/dist/i18n/messagebundle_hi.properties +6 -0
  317. package/dist/i18n/messagebundle_hr.properties +6 -0
  318. package/dist/i18n/messagebundle_hu.properties +6 -0
  319. package/dist/i18n/messagebundle_id.properties +6 -0
  320. package/dist/i18n/messagebundle_it.properties +6 -0
  321. package/dist/i18n/messagebundle_iw.properties +6 -0
  322. package/dist/i18n/messagebundle_ja.properties +6 -0
  323. package/dist/i18n/messagebundle_kk.properties +6 -0
  324. package/dist/i18n/messagebundle_ko.properties +6 -0
  325. package/dist/i18n/messagebundle_lt.properties +6 -0
  326. package/dist/i18n/messagebundle_lv.properties +6 -0
  327. package/dist/i18n/messagebundle_ms.properties +6 -0
  328. package/dist/i18n/messagebundle_nl.properties +6 -0
  329. package/dist/i18n/messagebundle_no.properties +6 -0
  330. package/dist/i18n/messagebundle_pl.properties +6 -0
  331. package/dist/i18n/messagebundle_pt.properties +6 -0
  332. package/dist/i18n/messagebundle_pt_PT.properties +6 -0
  333. package/dist/i18n/messagebundle_ro.properties +6 -0
  334. package/dist/i18n/messagebundle_ru.properties +6 -0
  335. package/dist/i18n/messagebundle_sh.properties +6 -0
  336. package/dist/i18n/messagebundle_sk.properties +6 -0
  337. package/dist/i18n/messagebundle_sl.properties +6 -0
  338. package/dist/i18n/messagebundle_sv.properties +6 -0
  339. package/dist/i18n/messagebundle_th.properties +6 -0
  340. package/dist/i18n/messagebundle_tr.properties +6 -0
  341. package/dist/i18n/messagebundle_uk.properties +6 -0
  342. package/dist/i18n/messagebundle_vi.properties +6 -0
  343. package/dist/i18n/messagebundle_zh_CN.properties +6 -0
  344. package/dist/i18n/messagebundle_zh_TW.properties +6 -0
  345. package/dist/types/ListGrowingMode.js +36 -3
  346. package/dist/types/TableGrowingMode.js +35 -2
  347. package/package.json +7 -10
  348. package/src/Badge.hbs +0 -1
  349. package/src/Breadcrumbs.hbs +5 -3
  350. package/src/Breadcrumbs.js +55 -5
  351. package/src/BreadcrumbsPopover.hbs +1 -0
  352. package/src/Button.hbs +0 -1
  353. package/src/Button.js +13 -10
  354. package/src/CalendarHeader.hbs +1 -4
  355. package/src/Card.hbs +0 -1
  356. package/src/CardHeader.hbs +18 -15
  357. package/src/CardHeader.js +5 -10
  358. package/src/CheckBox.hbs +1 -1
  359. package/src/CheckBox.js +12 -0
  360. package/src/ColorPicker.hbs +2 -2
  361. package/src/ColorPicker.js +14 -10
  362. package/src/ComboBox.hbs +1 -5
  363. package/src/ComboBox.js +13 -9
  364. package/src/ComboBoxPopover.hbs +2 -1
  365. package/src/DatePicker.js +13 -7
  366. package/src/DateTimePicker.js +3 -0
  367. package/src/DateTimePickerPopover.hbs +3 -1
  368. package/src/Icon.js +4 -9
  369. package/src/Input.hbs +1 -5
  370. package/src/Input.js +36 -4
  371. package/src/InputPopover.hbs +2 -1
  372. package/src/Interfaces.js +10 -0
  373. package/src/Label.hbs +1 -2
  374. package/src/Link.js +1 -1
  375. package/src/List.hbs +1 -0
  376. package/src/List.js +54 -5
  377. package/src/ListItem.hbs +1 -1
  378. package/src/ListItem.js +28 -5
  379. package/src/ListItemBase.js +3 -1
  380. package/src/Menu.hbs +100 -0
  381. package/src/Menu.js +500 -0
  382. package/src/MenuItem.js +162 -0
  383. package/src/MultiComboBox.hbs +2 -6
  384. package/src/MultiComboBox.js +229 -25
  385. package/src/MultiInput.hbs +1 -1
  386. package/src/MultiInput.js +20 -9
  387. package/src/Option.js +10 -0
  388. package/src/Panel.hbs +0 -1
  389. package/src/Popover.hbs +1 -1
  390. package/src/Popover.js +37 -77
  391. package/src/Popup.js +4 -0
  392. package/src/RadioButton.hbs +1 -1
  393. package/src/RadioButton.js +10 -1
  394. package/src/ResponsivePopover.js +4 -0
  395. package/src/Select.hbs +1 -1
  396. package/src/Select.js +3 -0
  397. package/src/SelectPopover.hbs +1 -0
  398. package/src/SliderBase.js +7 -4
  399. package/src/SplitButton.js +13 -6
  400. package/src/StandardListItem.hbs +2 -2
  401. package/src/Switch.hbs +1 -1
  402. package/src/Tab.hbs +5 -1
  403. package/src/Tab.js +78 -4
  404. package/src/TabContainer.hbs +11 -13
  405. package/src/TabContainer.js +193 -41
  406. package/src/TabContainerPopover.hbs +4 -10
  407. package/src/TabInOverflow.hbs +15 -8
  408. package/src/TabInStrip.hbs +19 -2
  409. package/src/TabSeparatorInOverflow.hbs +1 -0
  410. package/src/Table.hbs +7 -2
  411. package/src/Table.js +240 -44
  412. package/src/TableGroupRow.js +4 -1
  413. package/src/TableRow.js +33 -66
  414. package/src/TimePicker.js +0 -2
  415. package/src/TimePickerBase.js +11 -2
  416. package/src/TimeSelection.js +7 -0
  417. package/src/Token.js +2 -1
  418. package/src/Tokenizer.js +26 -16
  419. package/src/TokenizerPopover.hbs +16 -17
  420. package/src/WheelSlider.js +7 -0
  421. package/src/features/InputElementsFormSupport.js +8 -5
  422. package/src/i18n/messagebundle.properties +8 -0
  423. package/src/i18n/messagebundle_ar.properties +6 -0
  424. package/src/i18n/messagebundle_bg.properties +6 -0
  425. package/src/i18n/messagebundle_ca.properties +6 -0
  426. package/src/i18n/messagebundle_cs.properties +6 -0
  427. package/src/i18n/messagebundle_cy.properties +6 -0
  428. package/src/i18n/messagebundle_da.properties +6 -0
  429. package/src/i18n/messagebundle_de.properties +6 -0
  430. package/src/i18n/messagebundle_el.properties +6 -0
  431. package/src/i18n/messagebundle_en.properties +6 -0
  432. package/src/i18n/messagebundle_en_GB.properties +6 -0
  433. package/src/i18n/messagebundle_en_US_sappsd.properties +6 -0
  434. package/src/i18n/messagebundle_en_US_saprigi.properties +7 -0
  435. package/src/i18n/messagebundle_en_US_saptrc.properties +6 -0
  436. package/src/i18n/messagebundle_es.properties +6 -0
  437. package/src/i18n/messagebundle_es_MX.properties +6 -0
  438. package/src/i18n/messagebundle_et.properties +6 -0
  439. package/src/i18n/messagebundle_fi.properties +6 -0
  440. package/src/i18n/messagebundle_fr.properties +6 -0
  441. package/src/i18n/messagebundle_fr_CA.properties +6 -0
  442. package/src/i18n/messagebundle_hi.properties +6 -0
  443. package/src/i18n/messagebundle_hr.properties +6 -0
  444. package/src/i18n/messagebundle_hu.properties +6 -0
  445. package/src/i18n/messagebundle_id.properties +6 -0
  446. package/src/i18n/messagebundle_it.properties +6 -0
  447. package/src/i18n/messagebundle_iw.properties +6 -0
  448. package/src/i18n/messagebundle_ja.properties +6 -0
  449. package/src/i18n/messagebundle_kk.properties +6 -0
  450. package/src/i18n/messagebundle_ko.properties +6 -0
  451. package/src/i18n/messagebundle_lt.properties +6 -0
  452. package/src/i18n/messagebundle_lv.properties +6 -0
  453. package/src/i18n/messagebundle_ms.properties +6 -0
  454. package/src/i18n/messagebundle_nl.properties +6 -0
  455. package/src/i18n/messagebundle_no.properties +6 -0
  456. package/src/i18n/messagebundle_pl.properties +6 -0
  457. package/src/i18n/messagebundle_pt.properties +6 -0
  458. package/src/i18n/messagebundle_pt_PT.properties +6 -0
  459. package/src/i18n/messagebundle_ro.properties +6 -0
  460. package/src/i18n/messagebundle_ru.properties +6 -0
  461. package/src/i18n/messagebundle_sh.properties +6 -0
  462. package/src/i18n/messagebundle_sk.properties +6 -0
  463. package/src/i18n/messagebundle_sl.properties +6 -0
  464. package/src/i18n/messagebundle_sv.properties +6 -0
  465. package/src/i18n/messagebundle_th.properties +6 -0
  466. package/src/i18n/messagebundle_tr.properties +6 -0
  467. package/src/i18n/messagebundle_uk.properties +6 -0
  468. package/src/i18n/messagebundle_vi.properties +6 -0
  469. package/src/i18n/messagebundle_zh_CN.properties +6 -0
  470. package/src/i18n/messagebundle_zh_TW.properties +6 -0
  471. package/src/themes/Avatar.css +37 -52
  472. package/src/themes/Badge.css +1 -7
  473. package/src/themes/BreadcrumbsPopover.css +4 -0
  474. package/src/themes/Button.css +62 -87
  475. package/src/themes/CalendarHeader.css +2 -7
  476. package/src/themes/Card.css +7 -4
  477. package/src/themes/CardHeader.css +24 -26
  478. package/src/themes/CheckBox.css +8 -24
  479. package/src/themes/ColorPalette.css +2 -0
  480. package/src/themes/ColorPalettePopover.css +4 -0
  481. package/src/themes/ColorPicker.css +16 -0
  482. package/src/themes/ComboBox.css +1 -0
  483. package/src/themes/DateTimePickerPopover.css +5 -1
  484. package/src/themes/Dialog.css +20 -6
  485. package/src/themes/Icon.css +15 -3
  486. package/src/themes/Input.css +174 -131
  487. package/src/themes/InputIcon.css +12 -3
  488. package/src/themes/Label.css +1 -7
  489. package/src/themes/Link.css +32 -15
  490. package/src/themes/ListItem.css +8 -38
  491. package/src/themes/Menu.css +101 -0
  492. package/src/themes/MessageStrip.css +17 -47
  493. package/src/themes/MultiComboBox.css +1 -0
  494. package/src/themes/Panel.css +21 -14
  495. package/src/themes/PopupsCommon.css +12 -11
  496. package/src/themes/RadioButton.css +74 -8
  497. package/src/themes/ResponsivePopoverCommon.css +50 -50
  498. package/src/themes/SegmentedButton.css +36 -10
  499. package/src/themes/Select.css +1 -5
  500. package/src/themes/SplitButton.css +143 -32
  501. package/src/themes/StepInput.css +10 -8
  502. package/src/themes/Suggestions.css +4 -0
  503. package/src/themes/TabContainer.css +35 -2
  504. package/src/themes/TabInOverflow.css +15 -9
  505. package/src/themes/TabInStrip.css +67 -28
  506. package/src/themes/TabSeparatorInOverflow.css +2 -1
  507. package/src/themes/Table.css +7 -2
  508. package/src/themes/TableCell.css +2 -6
  509. package/src/themes/TableColumn.css +1 -3
  510. package/src/themes/TableGroupRow.css +6 -4
  511. package/src/themes/TableRow.css +28 -20
  512. package/src/themes/TextArea.css +93 -36
  513. package/src/themes/Title.css +7 -7
  514. package/src/themes/Toast.css +1 -1
  515. package/src/themes/ToggleButton.css +90 -50
  516. package/src/themes/TreeListItem.css +1 -7
  517. package/src/themes/ValueStateMessage.css +8 -10
  518. package/src/themes/base/Avatar-parameters.css +19 -0
  519. package/src/themes/base/Button-parameters.css +5 -0
  520. package/src/themes/base/Card-parameters.css +5 -3
  521. package/src/themes/base/CheckBox-parameters.css +5 -2
  522. package/src/themes/base/Dialog-parameters.css +5 -4
  523. package/src/themes/base/Input-parameters.css +44 -44
  524. package/src/themes/base/InputIcon-parameters.css +10 -2
  525. package/src/themes/base/Link-parameters.css +7 -1
  526. package/src/themes/base/MessageStrip-parameters.css +4 -7
  527. package/src/themes/base/Panel-parameters.css +4 -4
  528. package/src/themes/base/PopupsCommon-parameters.css +1 -3
  529. package/src/themes/base/RadioButton-parameters.css +18 -2
  530. package/src/themes/base/SegmentedButtton-parameters.css +3 -2
  531. package/src/themes/base/SplitButton-parameters.css +17 -0
  532. package/src/themes/base/StepInput-parameters.css +1 -0
  533. package/src/themes/base/TabContainer-parameters.css +15 -0
  534. package/src/themes/base/Table-parameters.css +2 -0
  535. package/src/themes/base/TableGroupRow-parameters.css +4 -0
  536. package/src/themes/base/TextArea-parameters.css +8 -6
  537. package/src/themes/base/ValueStateMessage-parameters.css +6 -0
  538. package/src/themes/base/rtl-parameters.css +16 -0
  539. package/src/themes/base/sizes-parameters.css +47 -6
  540. package/src/themes/sap_belize/Card-parameters.css +5 -0
  541. package/src/themes/sap_belize/Input-parameters.css +16 -1
  542. package/src/themes/sap_belize/InputIcon-parameters.css +1 -1
  543. package/src/themes/sap_belize/Panel-parameters.css +12 -0
  544. package/src/themes/sap_belize/PopupsCommon-parameters.css +5 -0
  545. package/src/themes/sap_belize/SplitButton-parameters.css +6 -0
  546. package/src/themes/sap_belize/TableRow-parameters.css +5 -0
  547. package/src/themes/sap_belize/parameters-bundle.css +8 -5
  548. package/src/themes/sap_belize/sizes-parameters.css +15 -0
  549. package/src/themes/sap_belize_hcb/Button-parameters.css +2 -2
  550. package/src/themes/sap_belize_hcb/Card-parameters.css +2 -1
  551. package/src/themes/sap_belize_hcb/Input-parameters.css +19 -0
  552. package/src/themes/sap_belize_hcb/InputIcon-parameters.css +1 -1
  553. package/src/themes/sap_belize_hcb/Link-parameters.css +2 -1
  554. package/src/themes/sap_belize_hcb/MessageStrip-parameters.css +0 -1
  555. package/src/themes/sap_belize_hcb/Panel-parameters.css +8 -0
  556. package/src/themes/sap_belize_hcb/PopupsCommon-parameters.css +5 -0
  557. package/src/themes/sap_belize_hcb/RadioButton-parameters.css +6 -2
  558. package/src/themes/sap_belize_hcb/SplitButton-parameters.css +10 -0
  559. package/src/themes/sap_belize_hcb/TableRow-parameters.css +1 -0
  560. package/src/themes/sap_belize_hcb/TextArea-parameters.css +3 -0
  561. package/src/themes/sap_belize_hcb/ValueStateMessage-parameters.css +2 -0
  562. package/src/themes/sap_belize_hcb/parameters-bundle.css +6 -3
  563. package/src/themes/sap_belize_hcb/sizes-parameters.css +15 -0
  564. package/src/themes/sap_belize_hcw/Button-parameters.css +2 -2
  565. package/src/themes/sap_belize_hcw/Card-parameters.css +2 -1
  566. package/src/themes/sap_belize_hcw/Input-parameters.css +19 -0
  567. package/src/themes/sap_belize_hcw/InputIcon-parameters.css +1 -1
  568. package/src/themes/sap_belize_hcw/Link-parameters.css +2 -1
  569. package/src/themes/sap_belize_hcw/MessageStrip-parameters.css +0 -1
  570. package/src/themes/sap_belize_hcw/Panel-parameters.css +8 -0
  571. package/src/themes/sap_belize_hcw/PopupsCommon-parameters.css +5 -0
  572. package/src/themes/sap_belize_hcw/RadioButton-parameters.css +5 -1
  573. package/src/themes/sap_belize_hcw/SplitButton-parameters.css +10 -0
  574. package/src/themes/sap_belize_hcw/TableRow-parameters.css +1 -0
  575. package/src/themes/sap_belize_hcw/TextArea-parameters.css +3 -0
  576. package/src/themes/sap_belize_hcw/ValueStateMessage-parameters.css +2 -0
  577. package/src/themes/sap_belize_hcw/parameters-bundle.css +7 -4
  578. package/src/themes/sap_belize_hcw/sizes-parameters.css +15 -0
  579. package/src/themes/sap_fiori_3/Button-parameters.css +1 -0
  580. package/src/themes/sap_fiori_3/Input-parameters.css +0 -2
  581. package/src/themes/sap_fiori_3/Link-parameters.css +0 -1
  582. package/src/themes/sap_fiori_3/Panel-parameters.css +0 -1
  583. package/src/themes/sap_fiori_3/TabContainer-parameters.css +1 -0
  584. package/src/themes/sap_fiori_3/parameters-bundle.css +4 -1
  585. package/src/themes/sap_fiori_3_dark/Button-parameters.css +1 -0
  586. package/src/themes/sap_fiori_3_dark/Input-parameters.css +0 -2
  587. package/src/themes/sap_fiori_3_dark/Link-parameters.css +0 -1
  588. package/src/themes/sap_fiori_3_dark/Panel-parameters.css +0 -1
  589. package/src/themes/sap_fiori_3_dark/TabContainer-parameters.css +1 -0
  590. package/src/themes/sap_fiori_3_dark/parameters-bundle.css +4 -1
  591. package/src/themes/sap_fiori_3_hcb/Button-parameters.css +3 -2
  592. package/src/themes/sap_fiori_3_hcb/Input-parameters.css +14 -7
  593. package/src/themes/sap_fiori_3_hcb/Link-parameters.css +4 -1
  594. package/src/themes/sap_fiori_3_hcb/MessageStrip-parameters.css +0 -1
  595. package/src/themes/sap_fiori_3_hcb/RadioButton-parameters.css +5 -1
  596. package/src/themes/sap_fiori_3_hcb/SplitButton-parameters.css +12 -0
  597. package/src/themes/sap_fiori_3_hcb/TextArea-parameters.css +3 -0
  598. package/src/themes/sap_fiori_3_hcb/ValueStateMessage-parameters.css +2 -0
  599. package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +7 -4
  600. package/src/themes/sap_fiori_3_hcb/sizes-parameters.css +8 -0
  601. package/src/themes/sap_fiori_3_hcw/Button-parameters.css +3 -2
  602. package/src/themes/sap_fiori_3_hcw/Input-parameters.css +14 -7
  603. package/src/themes/sap_fiori_3_hcw/Link-parameters.css +4 -1
  604. package/src/themes/sap_fiori_3_hcw/MessageStrip-parameters.css +0 -1
  605. package/src/themes/sap_fiori_3_hcw/RadioButton-parameters.css +5 -1
  606. package/src/themes/sap_fiori_3_hcw/SplitButton-parameters.css +12 -0
  607. package/src/themes/sap_fiori_3_hcw/TextArea-parameters.css +3 -0
  608. package/src/themes/sap_fiori_3_hcw/ValueStateMessage-parameters.css +2 -0
  609. package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +7 -4
  610. package/src/themes/sap_fiori_3_hcw/sizes-parameters.css +8 -0
  611. package/src/themes/sap_horizon/Avatar-parameters.css +47 -27
  612. package/src/themes/sap_horizon/BusyIndicator-parameters.css +1 -1
  613. package/src/themes/sap_horizon/Button-parameters.css +6 -7
  614. package/src/themes/sap_horizon/Card-parameters.css +8 -3
  615. package/src/themes/sap_horizon/CheckBox-parameters.css +38 -23
  616. package/src/themes/sap_horizon/Dialog-parameters.css +6 -6
  617. package/src/themes/sap_horizon/Icon-parameters.css +3 -0
  618. package/src/themes/sap_horizon/Input-parameters.css +28 -29
  619. package/src/themes/sap_horizon/InputIcon-parameters.css +11 -4
  620. package/src/themes/sap_horizon/Link-parameters.css +6 -2
  621. package/src/themes/sap_horizon/MessageStrip-parameters.css +1 -5
  622. package/src/themes/sap_horizon/Panel-parameters.css +2 -3
  623. package/src/themes/sap_horizon/RadioButton-parameters.css +10 -4
  624. package/src/themes/sap_horizon/SegmentedButtton-parameters.css +1 -1
  625. package/src/themes/sap_horizon/SplitButton-parameters.css +17 -0
  626. package/src/themes/sap_horizon/TabContainer-parameters.css +13 -4
  627. package/src/themes/sap_horizon/Table-parameters.css +2 -1
  628. package/src/themes/sap_horizon/TableGroupRow-parameters.css +6 -0
  629. package/src/themes/sap_horizon/TextArea-parameters.css +1 -6
  630. package/src/themes/sap_horizon/ToggleButton-parameters.css +1 -11
  631. package/src/themes/sap_horizon/ValueStateMessage-parameters.css +4 -1
  632. package/src/themes/sap_horizon/parameters-bundle.css +5 -3
  633. package/src/themes/sap_horizon/sizes-parameters.css +10 -0
  634. package/src/themes/sap_horizon_dark/Avatar-parameters.css +47 -27
  635. package/src/themes/sap_horizon_dark/BusyIndicator-parameters.css +1 -1
  636. package/src/themes/sap_horizon_dark/Button-parameters.css +6 -7
  637. package/src/themes/sap_horizon_dark/Card-parameters.css +8 -3
  638. package/src/themes/sap_horizon_dark/CheckBox-parameters.css +38 -23
  639. package/src/themes/sap_horizon_dark/Dialog-parameters.css +6 -6
  640. package/src/themes/sap_horizon_dark/Icon-parameters.css +3 -0
  641. package/src/themes/sap_horizon_dark/Input-parameters.css +27 -28
  642. package/src/themes/sap_horizon_dark/InputIcon-parameters.css +11 -4
  643. package/src/themes/sap_horizon_dark/Link-parameters.css +6 -2
  644. package/src/themes/sap_horizon_dark/MessageStrip-parameters.css +1 -5
  645. package/src/themes/sap_horizon_dark/Panel-parameters.css +2 -3
  646. package/src/themes/sap_horizon_dark/RadioButton-parameters.css +10 -4
  647. package/src/themes/sap_horizon_dark/SegmentedButtton-parameters.css +1 -1
  648. package/src/themes/sap_horizon_dark/SplitButton-parameters.css +17 -0
  649. package/src/themes/sap_horizon_dark/Table-parameters.css +2 -1
  650. package/src/themes/sap_horizon_dark/TableGroupRow-parameters.css +6 -0
  651. package/src/themes/sap_horizon_dark/TextArea-parameters.css +1 -6
  652. package/src/themes/sap_horizon_dark/ToggleButton-parameters.css +1 -11
  653. package/src/themes/sap_horizon_dark/ValueStateMessage-parameters.css +4 -1
  654. package/src/themes/sap_horizon_dark/parameters-bundle.css +5 -3
  655. package/src/themes/sap_horizon_dark/sizes-parameters.css +10 -0
  656. package/src/themes/sap_horizon_exp/Input-parameters.css +34 -37
  657. package/src/themes/sap_horizon_exp/InputIcon-parameters.css +4 -0
  658. package/src/themes/sap_horizon_exp/Link-parameters.css +1 -1
  659. package/src/themes/sap_horizon_exp/Panel-parameters.css +0 -1
  660. package/src/themes/sap_horizon_exp/Popover-parameters.css +0 -1
  661. package/src/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  662. package/src/themes/sap_horizon_hcb/Avatar-parameters.css +44 -15
  663. package/src/themes/sap_horizon_hcb/BusyIndicator-parameters.css +5 -0
  664. package/src/themes/sap_horizon_hcb/Button-parameters.css +6 -6
  665. package/src/themes/sap_horizon_hcb/Card-parameters.css +6 -1
  666. package/src/themes/sap_horizon_hcb/CheckBox-parameters.css +46 -10
  667. package/src/themes/sap_horizon_hcb/Dialog-parameters.css +2 -3
  668. package/src/themes/sap_horizon_hcb/Input-parameters.css +17 -7
  669. package/src/themes/sap_horizon_hcb/InputIcon-parameters.css +7 -1
  670. package/src/themes/sap_horizon_hcb/Link-parameters.css +4 -1
  671. package/src/themes/sap_horizon_hcb/MessageStrip-parameters.css +1 -1
  672. package/src/themes/sap_horizon_hcb/Panel-parameters.css +3 -0
  673. package/src/themes/sap_horizon_hcb/RadioButton-parameters.css +9 -3
  674. package/src/themes/sap_horizon_hcb/SegmentedButtton-parameters.css +9 -0
  675. package/src/themes/sap_horizon_hcb/SplitButton-parameters.css +12 -0
  676. package/src/themes/sap_horizon_hcb/Table-parameters.css +4 -0
  677. package/src/themes/sap_horizon_hcb/TableGroupRow-parameters.css +6 -0
  678. package/src/themes/sap_horizon_hcb/TextArea-parameters.css +7 -0
  679. package/src/themes/sap_horizon_hcb/ToggleButton-parameters.css +1 -6
  680. package/src/themes/sap_horizon_hcb/ValueStateMessage-parameters.css +8 -0
  681. package/src/themes/sap_horizon_hcb/parameters-bundle.css +6 -3
  682. package/src/themes/sap_horizon_hcb/sizes-parameters.css +8 -0
  683. package/src/themes/sap_horizon_hcw/Avatar-parameters.css +44 -15
  684. package/src/themes/sap_horizon_hcw/BusyIndicator-parameters.css +5 -0
  685. package/src/themes/sap_horizon_hcw/Button-parameters.css +7 -7
  686. package/src/themes/sap_horizon_hcw/Card-parameters.css +6 -1
  687. package/src/themes/sap_horizon_hcw/CheckBox-parameters.css +46 -10
  688. package/src/themes/sap_horizon_hcw/Dialog-parameters.css +2 -3
  689. package/src/themes/sap_horizon_hcw/Input-parameters.css +17 -7
  690. package/src/themes/sap_horizon_hcw/InputIcon-parameters.css +7 -1
  691. package/src/themes/sap_horizon_hcw/Link-parameters.css +4 -1
  692. package/src/themes/sap_horizon_hcw/MessageStrip-parameters.css +1 -1
  693. package/src/themes/sap_horizon_hcw/Panel-parameters.css +4 -0
  694. package/src/themes/sap_horizon_hcw/RadioButton-parameters.css +11 -1
  695. package/src/themes/sap_horizon_hcw/SegmentedButtton-parameters.css +9 -0
  696. package/src/themes/sap_horizon_hcw/SplitButton-parameters.css +12 -0
  697. package/src/themes/sap_horizon_hcw/Table-parameters.css +4 -0
  698. package/src/themes/sap_horizon_hcw/TableGroupRow-parameters.css +6 -0
  699. package/src/themes/sap_horizon_hcw/TextArea-parameters.css +7 -0
  700. package/src/themes/sap_horizon_hcw/ToggleButton-parameters.css +1 -6
  701. package/src/themes/sap_horizon_hcw/ValueStateMessage-parameters.css +8 -0
  702. package/src/themes/sap_horizon_hcw/parameters-bundle.css +6 -3
  703. package/src/themes/sap_horizon_hcw/sizes-parameters.css +8 -0
  704. package/src/types/ListGrowingMode.js +36 -3
  705. package/src/types/TableGrowingMode.js +35 -2
  706. package/dist/webcomponentsjs/CHANGELOG.md +0 -61
  707. package/dist/webcomponentsjs/LICENSE.md +0 -19
  708. package/dist/webcomponentsjs/README.md +0 -246
  709. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
  710. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
  711. package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js +0 -60
  712. package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js.map +0 -1
  713. package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js +0 -95
  714. package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js.map +0 -1
  715. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -360
  716. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
  717. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -228
  718. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
  719. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -185
  720. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
  721. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
  722. package/dist/webcomponentsjs/webcomponents-bundle.js +0 -370
  723. package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
  724. package/dist/webcomponentsjs/webcomponents-loader.js +0 -206
  725. package/src/themes/base/Title-parameters.css +0 -8
  726. package/src/themes/sap_belize_hcb/Dialog-parameters.css +0 -7
  727. package/src/themes/sap_belize_hcw/Dialog-parameters.css +0 -7
  728. package/src/themes/sap_fiori_3_hcb/Dialog-parameters.css +0 -7
  729. package/src/themes/sap_fiori_3_hcb/InputIcon-parameters.css +0 -5
  730. package/src/themes/sap_fiori_3_hcw/Dialog-parameters.css +0 -7
  731. package/src/themes/sap_fiori_3_hcw/InputIcon-parameters.css +0 -5
  732. package/src/themes/sap_horizon/PopupsCommon-parameters.css +0 -9
  733. package/src/themes/sap_horizon_dark/PopupsCommon-parameters.css +0 -10
package/dist/Table.js CHANGED
@@ -6,6 +6,8 @@ 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
8
  import {
9
+ isTabNext,
10
+ isTabPrevious,
9
11
  isSpace,
10
12
  isEnter,
11
13
  isCtrlA,
@@ -18,7 +20,10 @@ import {
18
20
  isHomeShift,
19
21
  isEndShift,
20
22
  } from "@ui5/webcomponents-base/dist/Keys.js";
21
- import { getTabbableElements } from "@ui5/webcomponents-base/dist/util/TabbableElements.js";
23
+ import getNormalizedTarget from "@ui5/webcomponents-base/dist/util/getNormalizedTarget.js";
24
+ import getActiveElement from "@ui5/webcomponents-base/dist/util/getActiveElement.js";
25
+ import { getLastTabbableElement, getTabbableElements } from "@ui5/webcomponents-base/dist/util/TabbableElements.js";
26
+ import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
22
27
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
23
28
  import debounce from "@ui5/webcomponents-base/dist/util/debounce.js";
24
29
  import isElementInView from "@ui5/webcomponents-base/dist/util/isElementInView.js";
@@ -43,6 +48,8 @@ import styles from "./generated/themes/Table.css.js";
43
48
 
44
49
  const GROWING_WITH_SCROLL_DEBOUNCE_RATE = 250; // ms
45
50
 
51
+ const PAGE_UP_DOWN_SIZE = 20;
52
+
46
53
  /**
47
54
  * @public
48
55
  */
@@ -246,6 +253,32 @@ const metadata = {
246
253
  defaultValue: TableMode.None,
247
254
  },
248
255
 
256
+ /**
257
+ * Defines the accessible aria name of the component.
258
+ *
259
+ * @type {string}
260
+ * @defaultvalue: ""
261
+ * @public
262
+ * @since 1.3.0
263
+ */
264
+ accessibleName: {
265
+ type: String,
266
+ defaultValue: undefined,
267
+ },
268
+
269
+ /**
270
+ * Receives id(or many ids) of the elements that label the component.
271
+ *
272
+ * @type {string}
273
+ * @defaultvalue ""
274
+ * @public
275
+ * @since 1.3.0
276
+ */
277
+ accessibleNameRef: {
278
+ type: String,
279
+ defaultValue: "",
280
+ },
281
+
249
282
  _hiddenColumns: {
250
283
  type: Object,
251
284
  multiple: true,
@@ -397,7 +430,8 @@ const metadata = {
397
430
  * <li>[ALT]+[DOWN]/[UP] - Switches focus between header, last focused item, and More button (if applies) in either direction.</li>
398
431
  * <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
432
  * <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>
433
+ * <li>[CTRL]+[HOME]/[END] - Same behavior as HOME & END.</li>
434
+ * </ul>
401
435
  *
402
436
  * <h3>ES6 Module Import</h3>
403
437
  *
@@ -455,17 +489,28 @@ class Table extends UI5Element {
455
489
  navigationMode: NavigationMode.Vertical,
456
490
  affectedPropertiesNames: ["_columnHeader"],
457
491
  getItemsCallback: () => [this._columnHeader, ...this.rows],
458
- skipItemsSize: 20,
492
+ skipItemsSize: PAGE_UP_DOWN_SIZE,
459
493
  });
460
494
 
461
495
  this.fnOnRowFocused = this.onRowFocused.bind(this);
462
496
 
463
497
  this._handleResize = this.popinContent.bind(this);
464
498
 
499
+ this.fnHandleF7 = this._handleF7.bind(this);
500
+
465
501
  this.tableEndObserved = false;
466
502
 
467
503
  this.addEventListener("ui5-selection-requested", this._handleSelect.bind(this));
504
+ this.addEventListener("ui5-_forward-after", this._onForwardAfter.bind(this));
505
+ this.addEventListener("ui5-_forward-before", this._onForwardBefore.bind(this));
506
+
507
+ // Stores the last focused element within the table.
508
+ this.lastFocusedElement = null;
509
+
510
+ // Indicates whether the table is forwarding focus before or after the current table row.
511
+ this._forwardingFocus = false;
468
512
 
513
+ // Stores the last focused nested element index (within a table row) for F7 navigation.
469
514
  this._prevNestedElementIndex = 0;
470
515
  }
471
516
 
@@ -485,6 +530,8 @@ class Table extends UI5Element {
485
530
  row._busy = this.busy;
486
531
  row.removeEventListener("ui5-_focused", this.fnOnRowFocused);
487
532
  row.addEventListener("ui5-_focused", this.fnOnRowFocused);
533
+ row.removeEventListener("ui5-f7-pressed", this.fnHandleF7);
534
+ row.addEventListener("ui5-f7-pressed", this.fnHandleF7);
488
535
  row.mode = this.mode;
489
536
  });
490
537
 
@@ -497,7 +544,7 @@ class Table extends UI5Element {
497
544
 
498
545
  this._allRowsSelected = selectedRows.length === this.rows.length;
499
546
 
500
- this._previousFocusedRow = this._previousFocusedRow || this.rows[0] || null;
547
+ this._prevFocusedRow = this._prevFocusedRow || this.rows[0];
501
548
  }
502
549
 
503
550
  onAfterRendering() {
@@ -516,14 +563,6 @@ class Table extends UI5Element {
516
563
  ResizeHandler.register(this.getDomRef(), this._handleResize);
517
564
 
518
565
  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
- });
527
566
  }
528
567
 
529
568
  onExitDOM() {
@@ -537,16 +576,17 @@ class Table extends UI5Element {
537
576
  }
538
577
 
539
578
  _onkeydown(event) {
579
+ if (isTabNext(event) || isTabPrevious(event)) {
580
+ this._handleTab(event);
581
+ }
582
+
540
583
  if (isCtrlA(event)) {
541
584
  event.preventDefault();
542
585
  this.isMultiSelect && this._selectAll(event);
543
- return;
544
586
  }
545
587
 
546
- const isAltUp = isUpAlt(event);
547
-
548
- if (isAltUp || isDownAlt(event)) {
549
- return this._handleArrowAlt(isAltUp, event.target);
588
+ if (isUpAlt(event) || isDownAlt(event)) {
589
+ this._handleArrowAlt(event);
550
590
  }
551
591
 
552
592
  if ((isUpShift(event) || isDownShift(event)) && this.isMultiSelect) {
@@ -574,6 +614,50 @@ class Table extends UI5Element {
574
614
  }
575
615
  }
576
616
 
617
+ _handleTab(event) {
618
+ const isNext = isTabNext(event);
619
+ const target = getNormalizedTarget(event.target);
620
+ const targetType = this.getFocusedElementType(event.target);
621
+
622
+ if (this.columnHeaderTabbables.includes(target)) {
623
+ if (isNext && this.columnHeaderLastElement === target) {
624
+ return this._focusNextElement(event);
625
+ }
626
+
627
+ return;
628
+ }
629
+
630
+ if (isNext && targetType === "columnHeader" && !this.columnHeaderTabbables.length) {
631
+ return this._focusNextElement(event);
632
+ }
633
+
634
+ if (targetType === "tableRow" || !targetType) {
635
+ return;
636
+ }
637
+
638
+ switch (targetType) {
639
+ case "tableGroupRow":
640
+ return isNext ? this._focusNextElement(event) : this._focusForwardElement(event, false);
641
+ case "columnHeader":
642
+ return !isNext && this._focusForwardElement(event, false);
643
+ case "moreButton":
644
+ if (isNext) {
645
+ this._focusForwardElement(event, true);
646
+ } else {
647
+ event.preventDefault();
648
+ this.currentElement.focus();
649
+ }
650
+ }
651
+ }
652
+
653
+ _focusNextElement(event) {
654
+ if (!this.growsWithButton) {
655
+ this._focusForwardElement(event, true);
656
+ } else {
657
+ this.morеBtn.focus();
658
+ }
659
+ }
660
+
577
661
  _handleArrowNav(event) {
578
662
  const isRowFocused = this.currentElement.localName === "tr";
579
663
 
@@ -654,40 +738,39 @@ class Table extends UI5Element {
654
738
  * Handles Alt + Up/Down.
655
739
  * Switches focus between column header, last focused item, and "More" button (if applicable).
656
740
  * @private
657
- * @param {boolean} shouldMoveUp Whether to move focus upward
658
- * @param {object} focusedElement The element currently in focus
741
+ * @param {CustomEvent} event
659
742
  */
660
- _handleArrowAlt(shouldMoveUp, focusedElement) {
661
- const focusedElementType = this.getFocusedElementType(focusedElement);
662
- const moreButton = this.getMoreButton();
743
+ _handleArrowAlt(event) {
744
+ const shouldMoveUp = isUpAlt(event);
745
+ const focusedElementType = this.getFocusedElementType(event.target);
663
746
 
664
747
  if (shouldMoveUp) {
665
748
  switch (focusedElementType) {
666
749
  case "tableRow":
667
- this._previousFocusedRow = focusedElement;
668
- return this._onColumnHeaderClick();
750
+ case "tableGroupRow":
751
+ this._prevFocusedRow = event.target;
752
+ return this._onColumnHeaderClick(event);
669
753
  case "columnHeader":
670
- return moreButton ? moreButton.focus() : this._previousFocusedRow.focus();
754
+ return this.morеBtn ? this.morеBtn.focus() : this._prevFocusedRow.focus();
671
755
  case "moreButton":
672
- return this._previousFocusedRow ? this._previousFocusedRow.focus() : this._onColumnHeaderClick();
756
+ return this._prevFocusedRow ? this._prevFocusedRow.focus() : this._onColumnHeaderClick(event);
673
757
  }
674
758
  } else {
675
759
  switch (focusedElementType) {
676
760
  case "tableRow":
677
- this._previousFocusedRow = focusedElement;
678
- return moreButton ? moreButton.focus() : this._onColumnHeaderClick();
761
+ case "tableGroupRow":
762
+ this._prevFocusedRow = event.target;
763
+ return this.morеBtn ? this.morеBtn.focus() : this._onColumnHeaderClick(event);
679
764
  case "columnHeader":
680
- if (this._previousFocusedRow) {
681
- return this._previousFocusedRow.focus();
682
- }
683
-
684
- if (moreButton) {
685
- return moreButton.focus();
765
+ if (this._prevFocusedRow) {
766
+ this._prevFocusedRow.focus();
767
+ } else if (this.morеBtn) {
768
+ this.morеBtn.focus();
686
769
  }
687
770
 
688
771
  return;
689
772
  case "moreButton":
690
- return this._onColumnHeaderClick();
773
+ return this._onColumnHeaderClick(event);
691
774
  }
692
775
  }
693
776
  }
@@ -695,32 +778,133 @@ class Table extends UI5Element {
695
778
  /**
696
779
  * Determines the type of the currently focused element.
697
780
  * @private
698
- * @param {object} element The object representation of the DOM element
699
- * @returns {("columnHeader"|"tableRow"|"moreButton")} A string identifier
781
+ * @param {object} element The DOM element
782
+ * @returns {("columnHeader"|"tableRow"|"tableGroupRow"|"moreButton")} A string identifier
700
783
  */
701
784
  getFocusedElementType(element) {
702
- if (element === this.getColumnHeader()) {
785
+ if (element === this.columnHeader) {
703
786
  return "columnHeader";
704
787
  }
705
788
 
706
- if (element === this.getMoreButton()) {
789
+ if (element === this.morеBtn) {
707
790
  return "moreButton";
708
791
  }
709
792
 
710
793
  if (this.rows.includes(element)) {
711
- return "tableRow";
794
+ const isGroupRow = element.hasAttribute("ui5-table-group-row");
795
+ return isGroupRow ? "tableGroupRow" : "tableRow";
712
796
  }
713
797
  }
714
798
 
799
+ /**
800
+ * Toggles focus between the table row's root and the last focused nested element.
801
+ * @private
802
+ * @param {CustomEvent} event "ui5-f7-pressed"
803
+ */
804
+ _handleF7(event) {
805
+ const row = event.detail.row;
806
+ row._tabbables = getTabbableElements(row);
807
+ const activeElement = getActiveElement();
808
+ const lastFocusedElement = row._tabbables[this._prevNestedElementIndex] || row._tabbables[0];
809
+ const targetIndex = row._tabbables.indexOf(activeElement);
810
+
811
+ if (!row._tabbables.length) {
812
+ return;
813
+ }
814
+
815
+ if (activeElement === row.root) {
816
+ lastFocusedElement.focus();
817
+ } else if (targetIndex > -1) {
818
+ this._prevNestedElementIndex = targetIndex;
819
+ row.root.focus();
820
+ }
821
+ }
822
+
823
+ _onfocusin(event) {
824
+ const target = getNormalizedTarget(event.target);
825
+
826
+ if (!this._isForwardElement(target)) {
827
+ this.lastFocusedElement = target;
828
+ return;
829
+ }
830
+
831
+ if (!this._forwardingFocus) {
832
+ if (this.lastFocusedElement) {
833
+ this.lastFocusedElement.focus();
834
+ } else {
835
+ this.currentElement.focus();
836
+ }
837
+
838
+ event.stopImmediatePropagation();
839
+ }
840
+
841
+ this._forwardingFocus = false;
842
+ }
843
+
844
+ _onForwardBefore(event) {
845
+ this.lastFocusedElement = event.detail.target;
846
+ this._focusForwardElement(event, false);
847
+ event.stopImmediatePropagation();
848
+ }
849
+
850
+ _onForwardAfter(event) {
851
+ this.lastFocusedElement = event.detail.target;
852
+
853
+ if (!this.growsWithButton) {
854
+ this._focusForwardElement(event, true);
855
+ } else {
856
+ this.morеBtn.focus();
857
+ }
858
+ }
859
+
860
+ _focusForwardElement(event, isAfter) {
861
+ this._forwardingFocus = true;
862
+ this.shadowRoot.querySelector(`#${this._id}-${isAfter ? "after" : "before"}`).focus();
863
+ }
864
+
865
+ _isForwardElement(node) {
866
+ const nodeId = node.id;
867
+ const afterElement = this._getForwardElement(true);
868
+ const beforeElement = this._getForwardElement(false);
869
+
870
+ if (this._id === nodeId || (beforeElement && beforeElement.id === nodeId)) {
871
+ return true;
872
+ }
873
+
874
+ return afterElement && afterElement.id === nodeId;
875
+ }
876
+
877
+ _getForwardElement(isAfter) {
878
+ const dir = isAfter ? "after" : "before";
879
+
880
+ if (!this[`_${dir}Element`]) {
881
+ this[`_${dir}Element`] = this.shadowRoot.querySelector(`#${this._id}-${dir}`);
882
+ }
883
+
884
+ return this[`_${dir}Element`];
885
+ }
886
+
715
887
  onRowFocused(event) {
716
888
  this._itemNavigation.setCurrentItem(event.target);
717
889
  }
718
890
 
719
- _onColumnHeaderClick(event) {
720
- this.getColumnHeader().focus();
891
+ _onColumnHeaderFocused(event) {
721
892
  this._itemNavigation.setCurrentItem(this._columnHeader);
722
893
  }
723
894
 
895
+ _onColumnHeaderClick(event) {
896
+ if (!event.target) {
897
+ this.columnHeader.focus();
898
+ }
899
+
900
+ const target = getNormalizedTarget(event.target);
901
+ const isNestedElement = this.columnHeaderTabbables.includes(target);
902
+
903
+ if (!isNestedElement) {
904
+ this.columnHeader.focus();
905
+ }
906
+ }
907
+
724
908
  _onColumnHeaderKeydown(event) {
725
909
  if (isSpace(event)) {
726
910
  event.preventDefault();
@@ -841,11 +1025,11 @@ class Table extends UI5Element {
841
1025
  this.getRowParent(parent);
842
1026
  }
843
1027
 
844
- getColumnHeader() {
1028
+ get columnHeader() {
845
1029
  return this.getDomRef() && this.getDomRef().querySelector(`#${this._id}-columnHeader`);
846
1030
  }
847
1031
 
848
- getMoreButton() {
1032
+ get morеBtn() {
849
1033
  return this.growsWithButton && this.getDomRef() && this.getDomRef().querySelector(`#${this._id}-growingButton`);
850
1034
  }
851
1035
 
@@ -960,6 +1144,10 @@ class Table extends UI5Element {
960
1144
  return `${headerRowText} ${columnsTitle}`;
961
1145
  }
962
1146
 
1147
+ get tableAriaLabelText() {
1148
+ return getEffectiveAriaLabelText(this);
1149
+ }
1150
+
963
1151
  get ariaLabelSelectAllText() {
964
1152
  return Table.i18nBundle.getText(ARIA_LABEL_SELECT_ALL_CHECKBOX);
965
1153
  }
@@ -1003,6 +1191,14 @@ class Table extends UI5Element {
1003
1191
  get currentElement() {
1004
1192
  return this._itemNavigation._getCurrentItem();
1005
1193
  }
1194
+
1195
+ get columnHeaderTabbables() {
1196
+ return getTabbableElements(this.columnHeader);
1197
+ }
1198
+
1199
+ get columnHeaderLastElement() {
1200
+ return getLastTabbableElement(this.columnHeader);
1201
+ }
1006
1202
  }
1007
1203
 
1008
1204
  Table.define();
@@ -69,6 +69,9 @@ const metadata = {
69
69
  noAttribute: true,
70
70
  },
71
71
  },
72
+ events: /** @lends sap.ui.webcomponents.main.TableGroupRow.prototype */ {
73
+ _focused: {},
74
+ },
72
75
  };
73
76
 
74
77
  /**
@@ -151,7 +154,7 @@ class TableGroupRow extends UI5Element {
151
154
  }
152
155
 
153
156
  _onfocusin(event) {
154
- this.parentElement._itemNavigation.setCurrentItem(this);
157
+ this.fireEvent("_focused", event);
155
158
  }
156
159
 
157
160
  static async onDefine() {
package/dist/TableRow.js CHANGED
@@ -8,6 +8,8 @@ import {
8
8
  isTabNext,
9
9
  isTabPrevious,
10
10
  } from "@ui5/webcomponents-base/dist/Keys.js";
11
+ import getActiveElement from "@ui5/webcomponents-base/dist/util/getActiveElement.js";
12
+ import { getLastTabbableElement } from "@ui5/webcomponents-base/dist/util/TabbableElements.js";
11
13
  import CheckBox from "./CheckBox.js";
12
14
  import TableMode from "./types/TableMode.js";
13
15
  import TableRowType from "./types/TableRowType.js";
@@ -113,13 +115,6 @@ const metadata = {
113
115
  defaultValue: "",
114
116
  noAttribute: true,
115
117
  },
116
- _tabbableElements: {
117
- type: Object,
118
- multiple: true,
119
- },
120
- _tabMarked: {
121
- type: Boolean,
122
- },
123
118
  },
124
119
  events: /** @lends sap.ui.webcomponents.main.TableRow.prototype */ {
125
120
  /**
@@ -139,6 +134,14 @@ const metadata = {
139
134
  * @private
140
135
  */
141
136
  "selection-requested": {},
137
+ /**
138
+ * Fired when F7 is pressed.
139
+ *
140
+ * @event sap.ui.webcomponents.main.TableRow#f7-pressed
141
+ * @since 1.2.0
142
+ * @private
143
+ */
144
+ "f7-pressed": {},
142
145
  },
143
146
  };
144
147
 
@@ -188,23 +191,35 @@ class TableRow extends UI5Element {
188
191
  return [CheckBox];
189
192
  }
190
193
 
194
+ constructor() {
195
+ super();
196
+
197
+ this._ontouchstart = {
198
+ handleEvent(event) {
199
+ this.activate();
200
+ },
201
+ passive: true,
202
+ };
203
+ }
204
+
191
205
  _onmouseup() {
192
206
  this.deactivate();
193
207
  }
194
208
 
195
209
  _onkeydown(event) {
210
+ const activeElement = getActiveElement();
196
211
  const itemActive = this.type === TableRowType.Active;
197
212
  const isSingleSelect = this.isSingleSelect;
198
213
  const itemSelectable = isSingleSelect || this.isMultiSelect;
199
214
  const isRowFocused = this._activeElementHasAttribute("ui5-table-row");
200
215
  const checkboxPressed = event.target.classList.contains("ui5-multi-select-checkbox");
201
216
 
202
- if (isTabNext(event) || isTabPrevious(event)) {
203
- this._tabMarked = true;
217
+ if (isTabNext(event) && activeElement === (getLastTabbableElement(this) || this.root)) {
218
+ this.fireEvent("_forward-after", { target: activeElement });
204
219
  }
205
220
 
206
- if (isTabNext(event) || isTabPrevious(event)) {
207
- this._tabMarked = true;
221
+ if (isTabPrevious(event) && activeElement === this.root) {
222
+ this.fireEvent("_forward-before", { target: activeElement });
208
223
  }
209
224
 
210
225
  if (isSpace(event) && event.target.tagName.toLowerCase() === "tr") {
@@ -226,7 +241,7 @@ class TableRow extends UI5Element {
226
241
 
227
242
  if (isF7(event)) {
228
243
  event.preventDefault();
229
- this._handleF7(event.target);
244
+ this.fireEvent("f7-pressed", { row: this });
230
245
  }
231
246
  }
232
247
 
@@ -236,34 +251,20 @@ class TableRow extends UI5Element {
236
251
  }
237
252
  }
238
253
 
239
- _ontouchstart(event) {
240
- this.activate();
241
- }
242
-
243
254
  _ontouchend() {
244
255
  this.deactivate();
245
256
  }
246
257
 
247
- _onfocusout(event) {
258
+ _onfocusout() {
248
259
  this.deactivate();
249
-
250
- if (!this._tabMarked) {
251
- this._tabbableElements.forEach(el => el.setAttribute("tabindex", -1));
252
- } else {
253
- this._tabMarked = false;
254
- }
255
260
  }
256
261
 
257
262
  _onfocusin(event, forceSelfFocus = false) {
258
- const tableRowRoot = this.shadowRoot.querySelector(".ui5-table-row-root");
259
-
260
263
  if (forceSelfFocus || this._activeElementHasAttribute("ui5-table-cell")) {
261
- tableRowRoot.focus();
264
+ this.root.focus();
262
265
  this.activate();
263
266
  }
264
267
 
265
- this._tabbableElements.forEach(el => el.setAttribute("tabindex", 0));
266
-
267
268
  this.fireEvent("_focused", event);
268
269
  }
269
270
 
@@ -300,44 +301,6 @@ class TableRow extends UI5Element {
300
301
  this.fireEvent("selection-requested", { row: this });
301
302
  }
302
303
 
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
304
  _activeElementHasAttribute(attr) {
342
305
  return this.getRootNode().activeElement.hasAttribute(attr);
343
306
  }
@@ -439,6 +402,10 @@ class TableRow extends UI5Element {
439
402
  return this.mode === "MultiSelect";
440
403
  }
441
404
 
405
+ get root() {
406
+ return this.shadowRoot.querySelector(".ui5-table-row-root");
407
+ }
408
+
442
409
  getCellText(cell) {
443
410
  return this.getNormilzedTextContent(cell.textContent);
444
411
  }
@@ -150,9 +150,7 @@ class TimePicker extends TimePickerBase {
150
150
  "ariaRoledescription": this.dateAriaDescription,
151
151
  "ariaHasPopup": "dialog",
152
152
  "ariaAutoComplete": "none",
153
- "role": "combobox",
154
153
  "ariaControls": `${this._id}-responsive-popover`,
155
- "ariaExpanded": this.isOpen(),
156
154
  };
157
155
  }
158
156
 
@@ -256,8 +256,10 @@ class TimePickerBase extends UI5Element {
256
256
  value = this.normalizeValue(value); // transform valid values (in any format) to the correct format
257
257
  }
258
258
 
259
- this.value = ""; // Do not remove! DurationPicker use case -> value is 05:10, user tries 05:12, after normalization value is changed back to 05:10 so no invalidation happens, but the input still shows 05:12. Thus we enforce invalidation with the ""
260
- this.value = value;
259
+ if (!events.includes("input")) {
260
+ this.value = ""; // Do not remove! DurationPicker use case -> value is 05:10, user tries 05:12, after normalization value is changed back to 05:10 so no invalidation happens, but the input still shows 05:12. Thus we enforce invalidation with the ""
261
+ this.value = value;
262
+ }
261
263
  this.tempValue = value; // if the picker is open, sync it
262
264
  this._updateValueState(); // Change the value state to Error/None, but only if needed
263
265
  events.forEach(event => {
@@ -440,6 +442,13 @@ class TimePickerBase extends UI5Element {
440
442
  this._updateValueAndFireEvents(newValue, true, ["change", "value-changed"]);
441
443
  }
442
444
 
445
+ /**
446
+ *
447
+ * @param {event} e Wheel Event
448
+ * @private
449
+ *
450
+ * The listener for this event can't be passive as it calls preventDefault()
451
+ */
443
452
  _handleWheel(e) {
444
453
  e.preventDefault();
445
454
  }