@ui5/webcomponents 1.0.1 → 1.1.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 (474) hide show
  1. package/CHANGELOG.md +118 -0
  2. package/dist/Breadcrumbs.js +8 -6
  3. package/dist/BreadcrumbsItem.js +1 -1
  4. package/dist/BusyIndicator.js +2 -3
  5. package/dist/Button.js +28 -1
  6. package/dist/Calendar.js +7 -0
  7. package/dist/Carousel.js +9 -0
  8. package/dist/CheckBox.js +34 -1
  9. package/dist/ColorPalette.js +5 -4
  10. package/dist/ColorPalettePopover.js +27 -2
  11. package/dist/ComboBox.js +91 -23
  12. package/dist/DateComponentBase.js +6 -8
  13. package/dist/DatePicker.js +10 -2
  14. package/dist/DateRangePicker.js +22 -0
  15. package/dist/Dialog.js +5 -22
  16. package/dist/Icon.js +11 -8
  17. package/dist/Input.js +107 -15
  18. package/dist/Link.js +32 -14
  19. package/dist/List.js +14 -4
  20. package/dist/MessageStrip.js +39 -2
  21. package/dist/MultiComboBox.js +7 -3
  22. package/dist/MultiComboBoxItem.js +1 -1
  23. package/dist/MultiInput.js +55 -8
  24. package/dist/Option.js +12 -1
  25. package/dist/Panel.js +9 -0
  26. package/dist/Popover.js +106 -57
  27. package/dist/Popup.js +16 -2
  28. package/dist/RadioButton.js +15 -3
  29. package/dist/RatingIndicator.js +37 -7
  30. package/dist/ResponsivePopover.js +1 -0
  31. package/dist/SegmentedButton.js +14 -1
  32. package/dist/Select.js +2 -1
  33. package/dist/SliderBase.js +4 -0
  34. package/dist/SplitButton.js +425 -0
  35. package/dist/Switch.js +18 -0
  36. package/dist/Tab.js +10 -6
  37. package/dist/TabContainer.js +480 -108
  38. package/dist/TabSeparator.js +42 -3
  39. package/dist/Table.js +15 -5
  40. package/dist/TextArea.js +9 -3
  41. package/dist/ToggleButton.js +5 -0
  42. package/dist/Tokenizer.js +134 -7
  43. package/dist/TreeItem.js +21 -0
  44. package/dist/TreeListItem.js +8 -0
  45. package/dist/api.json +299 -26
  46. package/dist/css/themes/Badge.css +1 -1
  47. package/dist/css/themes/Breadcrumbs.css +1 -1
  48. package/dist/css/themes/BrowserScrollbar.css +1 -1
  49. package/dist/css/themes/BusyIndicator.css +1 -1
  50. package/dist/css/themes/CardHeader.css +1 -1
  51. package/dist/css/themes/CheckBox.css +1 -1
  52. package/dist/css/themes/ComboBox.css +1 -1
  53. package/dist/css/themes/CustomListItem.css +1 -1
  54. package/dist/css/themes/Dialog.css +1 -1
  55. package/dist/css/themes/Input.css +1 -1
  56. package/dist/css/themes/List.css +1 -1
  57. package/dist/css/themes/MultiComboBox.css +1 -1
  58. package/dist/css/themes/Panel.css +1 -1
  59. package/dist/css/themes/Popover.css +1 -1
  60. package/dist/css/themes/PopupsCommon.css +1 -1
  61. package/dist/css/themes/RadioButton.css +1 -1
  62. package/dist/css/themes/RatingIndicator.css +1 -1
  63. package/dist/css/themes/Select.css +1 -1
  64. package/dist/css/themes/SliderBase.css +1 -1
  65. package/dist/css/themes/SplitButton.css +1 -0
  66. package/dist/css/themes/TabContainer.css +1 -1
  67. package/dist/css/themes/TabInOverflow.css +1 -1
  68. package/dist/css/themes/TabInStrip.css +1 -1
  69. package/dist/css/themes/TabSeparatorInOverflow.css +1 -0
  70. package/dist/css/themes/TabSeparatorInStrip.css +1 -0
  71. package/dist/css/themes/Table.css +1 -1
  72. package/dist/css/themes/TableColumn.css +1 -1
  73. package/dist/css/themes/TextArea.css +1 -1
  74. package/dist/css/themes/TimeSelection.css +1 -1
  75. package/dist/css/themes/Token.css +1 -1
  76. package/dist/css/themes/ValueStateMessage.css +1 -1
  77. package/dist/css/themes/sap_belize/parameters-bundle.css +1 -1
  78. package/dist/css/themes/sap_belize_hcb/parameters-bundle.css +1 -1
  79. package/dist/css/themes/sap_belize_hcw/parameters-bundle.css +1 -1
  80. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  81. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  82. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  83. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  84. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  85. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  86. package/dist/features/InputSuggestions.js +88 -15
  87. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  88. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  89. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  90. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  91. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  92. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  93. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  94. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  95. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  96. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  97. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  98. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  99. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  100. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  101. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  102. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  103. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  104. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  105. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  106. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  107. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  108. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  109. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  110. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  111. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  112. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  113. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  114. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  115. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  116. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  117. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  118. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  119. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  120. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  121. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  122. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  123. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  124. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  125. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  126. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  127. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  128. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  129. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  130. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  131. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  132. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  133. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  134. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  135. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  136. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  137. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  138. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  139. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  140. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  141. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  142. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  143. package/dist/generated/i18n/i18n-defaults.js +2 -2
  144. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +1 -1
  145. package/dist/generated/templates/BreadcrumbsTemplate.lit.js +1 -1
  146. package/dist/generated/templates/BusyIndicatorTemplate.lit.js +1 -1
  147. package/dist/generated/templates/ButtonTemplate.lit.js +1 -1
  148. package/dist/generated/templates/CardHeaderTemplate.lit.js +1 -1
  149. package/dist/generated/templates/CarouselTemplate.lit.js +1 -1
  150. package/dist/generated/templates/CheckBoxTemplate.lit.js +1 -1
  151. package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +1 -1
  152. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +1 -1
  153. package/dist/generated/templates/ComboBoxTemplate.lit.js +1 -1
  154. package/dist/generated/templates/CustomListItemTemplate.lit.js +2 -2
  155. package/dist/generated/templates/DialogTemplate.lit.js +1 -1
  156. package/dist/generated/templates/InputPopoverTemplate.lit.js +3 -3
  157. package/dist/generated/templates/InputTemplate.lit.js +1 -1
  158. package/dist/generated/templates/LinkTemplate.lit.js +1 -1
  159. package/dist/generated/templates/ListItemTemplate.lit.js +2 -2
  160. package/dist/generated/templates/MessageStripTemplate.lit.js +1 -1
  161. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +1 -1
  162. package/dist/generated/templates/MultiInputTemplate.lit.js +1 -1
  163. package/dist/generated/templates/PanelTemplate.lit.js +1 -1
  164. package/dist/generated/templates/PopupBlockLayerTemplate.lit.js +1 -1
  165. package/dist/generated/templates/RangeSliderTemplate.lit.js +1 -1
  166. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +1 -1
  167. package/dist/generated/templates/SegmentedButtonTemplate.lit.js +1 -1
  168. package/dist/generated/templates/SelectPopoverTemplate.lit.js +2 -2
  169. package/dist/generated/templates/SliderBaseTemplate.lit.js +1 -1
  170. package/dist/generated/templates/SliderTemplate.lit.js +1 -1
  171. package/dist/generated/templates/SplitButtonTemplate.lit.js +7 -0
  172. package/dist/generated/templates/StandardListItemTemplate.lit.js +2 -2
  173. package/dist/generated/templates/SuggestionListItemTemplate.lit.js +2 -2
  174. package/dist/generated/templates/SwitchTemplate.lit.js +1 -1
  175. package/dist/generated/templates/TabContainerPopoverTemplate.lit.js +4 -2
  176. package/dist/generated/templates/TabContainerTemplate.lit.js +9 -10
  177. package/dist/generated/templates/TabInOverflowTemplate.lit.js +1 -1
  178. package/dist/generated/templates/TabInStripTemplate.lit.js +1 -1
  179. package/dist/generated/templates/TabSeparatorInOverflowTemplate.lit.js +7 -0
  180. package/dist/generated/templates/TabSeparatorInStripTemplate.lit.js +7 -0
  181. package/dist/generated/templates/TableTemplate.lit.js +1 -1
  182. package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +1 -1
  183. package/dist/generated/templates/ToggleButtonTemplate.lit.js +1 -1
  184. package/dist/generated/templates/TreeListItemTemplate.lit.js +2 -2
  185. package/dist/generated/templates/TreeTemplate.lit.js +1 -1
  186. package/dist/generated/themes/Badge.css.js +1 -1
  187. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  188. package/dist/generated/themes/BrowserScrollbar.css.js +1 -1
  189. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  190. package/dist/generated/themes/CardHeader.css.js +1 -1
  191. package/dist/generated/themes/CheckBox.css.js +1 -1
  192. package/dist/generated/themes/ComboBox.css.js +1 -1
  193. package/dist/generated/themes/CustomListItem.css.js +1 -1
  194. package/dist/generated/themes/Dialog.css.js +1 -1
  195. package/dist/generated/themes/Input.css.js +1 -1
  196. package/dist/generated/themes/List.css.js +1 -1
  197. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  198. package/dist/generated/themes/Panel.css.js +1 -1
  199. package/dist/generated/themes/Popover.css.js +1 -1
  200. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  201. package/dist/generated/themes/RadioButton.css.js +1 -1
  202. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  203. package/dist/generated/themes/Select.css.js +1 -1
  204. package/dist/generated/themes/SliderBase.css.js +1 -1
  205. package/dist/generated/themes/SplitButton.css.js +8 -0
  206. package/dist/generated/themes/TabContainer.css.js +1 -1
  207. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  208. package/dist/generated/themes/TabInStrip.css.js +1 -1
  209. package/dist/generated/themes/TabSeparatorInOverflow.css.js +8 -0
  210. package/dist/generated/themes/TabSeparatorInStrip.css.js +8 -0
  211. package/dist/generated/themes/Table.css.js +1 -1
  212. package/dist/generated/themes/TableColumn.css.js +1 -1
  213. package/dist/generated/themes/TextArea.css.js +1 -1
  214. package/dist/generated/themes/TimeSelection.css.js +1 -1
  215. package/dist/generated/themes/Token.css.js +1 -1
  216. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  217. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  218. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  219. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  220. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  221. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  222. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  223. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  224. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  225. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  226. package/dist/i18n/messagebundle.properties +26 -1
  227. package/dist/i18n/messagebundle_ar.properties +13 -1
  228. package/dist/i18n/messagebundle_bg.properties +13 -1
  229. package/dist/i18n/messagebundle_ca.properties +13 -1
  230. package/dist/i18n/messagebundle_cs.properties +13 -1
  231. package/dist/i18n/messagebundle_cy.properties +13 -1
  232. package/dist/i18n/messagebundle_da.properties +13 -1
  233. package/dist/i18n/messagebundle_de.properties +13 -1
  234. package/dist/i18n/messagebundle_el.properties +13 -1
  235. package/dist/i18n/messagebundle_en.properties +13 -1
  236. package/dist/i18n/messagebundle_en_GB.properties +13 -1
  237. package/dist/i18n/messagebundle_en_US_sappsd.properties +18 -1
  238. package/dist/i18n/messagebundle_en_US_saprigi.properties +18 -1
  239. package/dist/i18n/messagebundle_en_US_saptrc.properties +18 -1
  240. package/dist/i18n/messagebundle_es.properties +13 -1
  241. package/dist/i18n/messagebundle_es_MX.properties +13 -1
  242. package/dist/i18n/messagebundle_et.properties +13 -1
  243. package/dist/i18n/messagebundle_fi.properties +14 -2
  244. package/dist/i18n/messagebundle_fr.properties +13 -1
  245. package/dist/i18n/messagebundle_fr_CA.properties +13 -1
  246. package/dist/i18n/messagebundle_hi.properties +13 -1
  247. package/dist/i18n/messagebundle_hr.properties +13 -1
  248. package/dist/i18n/messagebundle_hu.properties +13 -1
  249. package/dist/i18n/messagebundle_id.properties +13 -1
  250. package/dist/i18n/messagebundle_it.properties +13 -1
  251. package/dist/i18n/messagebundle_iw.properties +13 -1
  252. package/dist/i18n/messagebundle_ja.properties +13 -1
  253. package/dist/i18n/messagebundle_kk.properties +13 -1
  254. package/dist/i18n/messagebundle_ko.properties +13 -1
  255. package/dist/i18n/messagebundle_lt.properties +13 -1
  256. package/dist/i18n/messagebundle_lv.properties +13 -1
  257. package/dist/i18n/messagebundle_ms.properties +13 -1
  258. package/dist/i18n/messagebundle_nl.properties +13 -1
  259. package/dist/i18n/messagebundle_no.properties +13 -1
  260. package/dist/i18n/messagebundle_pl.properties +13 -1
  261. package/dist/i18n/messagebundle_pt.properties +13 -1
  262. package/dist/i18n/messagebundle_pt_PT.properties +13 -1
  263. package/dist/i18n/messagebundle_ro.properties +13 -1
  264. package/dist/i18n/messagebundle_ru.properties +13 -1
  265. package/dist/i18n/messagebundle_sh.properties +13 -1
  266. package/dist/i18n/messagebundle_sk.properties +13 -1
  267. package/dist/i18n/messagebundle_sl.properties +13 -1
  268. package/dist/i18n/messagebundle_sv.properties +13 -1
  269. package/dist/i18n/messagebundle_th.properties +12 -0
  270. package/dist/i18n/messagebundle_tr.properties +13 -1
  271. package/dist/i18n/messagebundle_uk.properties +13 -1
  272. package/dist/i18n/messagebundle_vi.properties +13 -1
  273. package/dist/i18n/messagebundle_zh_CN.properties +13 -1
  274. package/dist/i18n/messagebundle_zh_TW.properties +12 -0
  275. package/dist/types/HasPopup.js +62 -0
  276. package/dist/types/TabsOverflowMode.js +40 -0
  277. package/package.json +9 -9
  278. package/src/Breadcrumbs.hbs +3 -2
  279. package/src/Breadcrumbs.js +8 -6
  280. package/src/BreadcrumbsItem.js +1 -1
  281. package/src/BreadcrumbsPopover.hbs +2 -2
  282. package/src/BusyIndicator.hbs +1 -1
  283. package/src/BusyIndicator.js +2 -3
  284. package/src/Button.hbs +1 -1
  285. package/src/Button.js +28 -1
  286. package/src/Calendar.js +7 -0
  287. package/src/CardHeader.hbs +12 -5
  288. package/src/Carousel.hbs +1 -0
  289. package/src/Carousel.js +9 -0
  290. package/src/CheckBox.hbs +1 -0
  291. package/src/CheckBox.js +34 -1
  292. package/src/ColorPalette.js +5 -4
  293. package/src/ColorPalettePopover.hbs +7 -5
  294. package/src/ColorPalettePopover.js +27 -2
  295. package/src/ComboBox.hbs +1 -0
  296. package/src/ComboBox.js +91 -23
  297. package/src/ComboBoxPopover.hbs +1 -0
  298. package/src/DateComponentBase.js +6 -8
  299. package/src/DatePicker.js +10 -2
  300. package/src/DateRangePicker.js +22 -0
  301. package/src/Dialog.hbs +1 -1
  302. package/src/Dialog.js +5 -22
  303. package/src/Icon.js +11 -8
  304. package/src/Input.hbs +1 -1
  305. package/src/Input.js +107 -15
  306. package/src/InputPopover.hbs +2 -3
  307. package/src/Link.hbs +2 -1
  308. package/src/Link.js +32 -14
  309. package/src/List.js +14 -4
  310. package/src/ListItem.hbs +1 -0
  311. package/src/MessageStrip.hbs +1 -1
  312. package/src/MessageStrip.js +39 -2
  313. package/src/MultiComboBox.js +7 -3
  314. package/src/MultiComboBoxItem.js +1 -1
  315. package/src/MultiComboBoxPopover.hbs +1 -1
  316. package/src/MultiInput.js +55 -8
  317. package/src/Option.js +12 -1
  318. package/src/Panel.hbs +1 -1
  319. package/src/Panel.js +9 -0
  320. package/src/Popover.js +106 -57
  321. package/src/Popup.js +16 -2
  322. package/src/PopupBlockLayer.hbs +1 -1
  323. package/src/RadioButton.js +15 -3
  324. package/src/RatingIndicator.js +37 -7
  325. package/src/ResponsivePopover.hbs +2 -0
  326. package/src/ResponsivePopover.js +1 -0
  327. package/src/SegmentedButton.hbs +1 -0
  328. package/src/SegmentedButton.js +14 -1
  329. package/src/Select.js +2 -1
  330. package/src/SelectPopover.hbs +2 -1
  331. package/src/SliderBase.hbs +1 -1
  332. package/src/SliderBase.js +4 -0
  333. package/src/SplitButton.hbs +53 -0
  334. package/src/SplitButton.js +425 -0
  335. package/src/Switch.hbs +1 -0
  336. package/src/Switch.js +18 -0
  337. package/src/Tab.js +10 -6
  338. package/src/TabContainer.hbs +48 -58
  339. package/src/TabContainer.js +480 -108
  340. package/src/TabContainerPopover.hbs +9 -6
  341. package/src/TabInOverflow.hbs +0 -1
  342. package/src/TabInStrip.hbs +3 -8
  343. package/src/TabSeparator.js +42 -3
  344. package/src/TabSeparatorInOverflow.hbs +8 -0
  345. package/src/TabSeparatorInStrip.hbs +6 -0
  346. package/src/Table.hbs +1 -1
  347. package/src/Table.js +15 -5
  348. package/src/TextArea.js +9 -3
  349. package/src/TextAreaPopover.hbs +1 -1
  350. package/src/ToggleButton.js +5 -0
  351. package/src/Tokenizer.js +134 -7
  352. package/src/Tree.hbs +1 -0
  353. package/src/TreeItem.js +21 -0
  354. package/src/TreeListItem.js +8 -0
  355. package/src/features/InputSuggestions.js +88 -15
  356. package/src/i18n/messagebundle.properties +26 -1
  357. package/src/i18n/messagebundle_ar.properties +13 -1
  358. package/src/i18n/messagebundle_bg.properties +13 -1
  359. package/src/i18n/messagebundle_ca.properties +13 -1
  360. package/src/i18n/messagebundle_cs.properties +13 -1
  361. package/src/i18n/messagebundle_cy.properties +13 -1
  362. package/src/i18n/messagebundle_da.properties +13 -1
  363. package/src/i18n/messagebundle_de.properties +13 -1
  364. package/src/i18n/messagebundle_el.properties +13 -1
  365. package/src/i18n/messagebundle_en.properties +13 -1
  366. package/src/i18n/messagebundle_en_GB.properties +13 -1
  367. package/src/i18n/messagebundle_en_US_sappsd.properties +18 -1
  368. package/src/i18n/messagebundle_en_US_saprigi.properties +18 -1
  369. package/src/i18n/messagebundle_en_US_saptrc.properties +18 -1
  370. package/src/i18n/messagebundle_es.properties +13 -1
  371. package/src/i18n/messagebundle_es_MX.properties +13 -1
  372. package/src/i18n/messagebundle_et.properties +13 -1
  373. package/src/i18n/messagebundle_fi.properties +14 -2
  374. package/src/i18n/messagebundle_fr.properties +13 -1
  375. package/src/i18n/messagebundle_fr_CA.properties +13 -1
  376. package/src/i18n/messagebundle_hi.properties +13 -1
  377. package/src/i18n/messagebundle_hr.properties +13 -1
  378. package/src/i18n/messagebundle_hu.properties +13 -1
  379. package/src/i18n/messagebundle_id.properties +13 -1
  380. package/src/i18n/messagebundle_it.properties +13 -1
  381. package/src/i18n/messagebundle_iw.properties +13 -1
  382. package/src/i18n/messagebundle_ja.properties +13 -1
  383. package/src/i18n/messagebundle_kk.properties +13 -1
  384. package/src/i18n/messagebundle_ko.properties +13 -1
  385. package/src/i18n/messagebundle_lt.properties +13 -1
  386. package/src/i18n/messagebundle_lv.properties +13 -1
  387. package/src/i18n/messagebundle_ms.properties +13 -1
  388. package/src/i18n/messagebundle_nl.properties +13 -1
  389. package/src/i18n/messagebundle_no.properties +13 -1
  390. package/src/i18n/messagebundle_pl.properties +13 -1
  391. package/src/i18n/messagebundle_pt.properties +13 -1
  392. package/src/i18n/messagebundle_pt_PT.properties +13 -1
  393. package/src/i18n/messagebundle_ro.properties +13 -1
  394. package/src/i18n/messagebundle_ru.properties +13 -1
  395. package/src/i18n/messagebundle_sh.properties +13 -1
  396. package/src/i18n/messagebundle_sk.properties +13 -1
  397. package/src/i18n/messagebundle_sl.properties +13 -1
  398. package/src/i18n/messagebundle_sv.properties +13 -1
  399. package/src/i18n/messagebundle_th.properties +12 -0
  400. package/src/i18n/messagebundle_tr.properties +13 -1
  401. package/src/i18n/messagebundle_uk.properties +13 -1
  402. package/src/i18n/messagebundle_vi.properties +13 -1
  403. package/src/i18n/messagebundle_zh_CN.properties +13 -1
  404. package/src/i18n/messagebundle_zh_TW.properties +12 -0
  405. package/src/themes/Badge.css +3 -1
  406. package/src/themes/Breadcrumbs.css +100 -99
  407. package/src/themes/BrowserScrollbar.css +2 -0
  408. package/src/themes/BusyIndicator.css +3 -3
  409. package/src/themes/CardHeader.css +7 -3
  410. package/src/themes/CheckBox.css +15 -7
  411. package/src/themes/CustomListItem.css +2 -1
  412. package/src/themes/Dialog.css +1 -0
  413. package/src/themes/Input.css +14 -0
  414. package/src/themes/List.css +1 -0
  415. package/src/themes/Panel.css +4 -0
  416. package/src/themes/Popover.css +4 -0
  417. package/src/themes/PopupsCommon.css +0 -1
  418. package/src/themes/RadioButton.css +4 -3
  419. package/src/themes/RatingIndicator.css +0 -1
  420. package/src/themes/SliderBase.css +3 -2
  421. package/src/themes/SplitButton.css +98 -0
  422. package/src/themes/TabContainer.css +17 -53
  423. package/src/themes/TabInOverflow.css +25 -21
  424. package/src/themes/TabInStrip.css +124 -100
  425. package/src/themes/TabSeparatorInOverflow.css +8 -0
  426. package/src/themes/TabSeparatorInStrip.css +5 -0
  427. package/src/themes/Table.css +1 -1
  428. package/src/themes/TableColumn.css +0 -1
  429. package/src/themes/TextArea.css +9 -1
  430. package/src/themes/TimeSelection.css +4 -0
  431. package/src/themes/Token.css +2 -1
  432. package/src/themes/Tokenizer.css +1 -1
  433. package/src/themes/ValueStateMessage.css +3 -3
  434. package/src/themes/base/BrowserScrollbar-parameters.css +4 -0
  435. package/src/themes/base/Card-parameters.css +1 -1
  436. package/src/themes/base/Input-parameters.css +5 -0
  437. package/src/themes/base/TabContainer-parameters.css +1 -1
  438. package/src/themes/base/TextArea-parameters.css +1 -0
  439. package/src/themes/base/Title-parameters.css +6 -6
  440. package/src/themes/base/Token-parameters.css +1 -0
  441. package/src/themes/base/sizes-parameters.css +2 -2
  442. package/src/themes/sap_belize/BrowserScrollbar-parameters.css +4 -0
  443. package/src/themes/sap_belize/Table-parameters.css +3 -0
  444. package/src/themes/sap_belize/parameters-bundle.css +1 -0
  445. package/src/themes/sap_belize_hcb/BrowserScrollbar-parameters.css +4 -0
  446. package/src/themes/sap_belize_hcb/Input-parameters.css +1 -0
  447. package/src/themes/sap_belize_hcb/Table-parameters.css +1 -0
  448. package/src/themes/sap_belize_hcb/Token-parameters.css +1 -0
  449. package/src/themes/sap_belize_hcb/parameters-bundle.css +1 -0
  450. package/src/themes/sap_belize_hcw/BrowserScrollbar-parameters.css +4 -0
  451. package/src/themes/sap_belize_hcw/Input-parameters.css +1 -0
  452. package/src/themes/sap_belize_hcw/Table-parameters.css +1 -0
  453. package/src/themes/sap_belize_hcw/Token-parameters.css +1 -0
  454. package/src/themes/sap_belize_hcw/parameters-bundle.css +1 -0
  455. package/src/themes/sap_fiori_3/TabContainer-parameters.css +1 -1
  456. package/src/themes/sap_fiori_3/parameters-bundle.css +1 -0
  457. package/src/themes/sap_fiori_3_dark/parameters-bundle.css +1 -0
  458. package/src/themes/sap_fiori_3_hcb/Input-parameters.css +7 -0
  459. package/src/themes/sap_fiori_3_hcb/TextArea-parameters.css +2 -0
  460. package/src/themes/sap_fiori_3_hcb/Token-parameters.css +2 -1
  461. package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -0
  462. package/src/themes/sap_fiori_3_hcw/Input-parameters.css +7 -0
  463. package/src/themes/sap_fiori_3_hcw/TextArea-parameters.css +2 -0
  464. package/src/themes/sap_fiori_3_hcw/Token-parameters.css +2 -1
  465. package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -0
  466. package/src/themes/sap_horizon/Card-parameters.css +0 -1
  467. package/src/themes/sap_horizon/Table-parameters.css +1 -0
  468. package/src/themes/sap_horizon/parameters-bundle.css +1 -0
  469. package/src/themes/sap_horizon_exp/parameters-bundle.css +1 -0
  470. package/src/types/HasPopup.js +62 -0
  471. package/src/types/TabsOverflowMode.js +40 -0
  472. package/csp.js +0 -7
  473. package/dist/generated/templates/TabSeparatorTemplate.lit.js +0 -7
  474. package/src/TabSeparator.hbs +0 -1
@@ -144,19 +144,17 @@ class DateComponentBase extends UI5Element {
144
144
  }
145
145
 
146
146
  getFormat() {
147
- let dateFormat;
148
- if (this._isPattern) {
149
- dateFormat = DateFormat.getInstance({
147
+ return this._isPattern
148
+ ? DateFormat.getInstance({
149
+ strictParsing: true,
150
150
  pattern: this._formatPattern,
151
151
  calendarType: this._primaryCalendarType,
152
- });
153
- } else {
154
- dateFormat = DateFormat.getInstance({
152
+ })
153
+ : DateFormat.getInstance({
154
+ strictParsing: true,
155
155
  style: this._formatPattern,
156
156
  calendarType: this._primaryCalendarType,
157
157
  });
158
- }
159
- return dateFormat;
160
158
  }
161
159
 
162
160
  static async onDefine() {
package/src/DatePicker.js CHANGED
@@ -14,6 +14,7 @@ import {
14
14
  isPageDownShiftCtrl,
15
15
  isShow,
16
16
  isF4,
17
+ isEnter,
17
18
  } from "@ui5/webcomponents-base/dist/Keys.js";
18
19
  import { isPhone, isIE } from "@ui5/webcomponents-base/dist/Device.js";
19
20
  import "@ui5/webcomponents-icons/dist/appointment-2.js";
@@ -319,8 +320,8 @@ const metadata = {
319
320
  * use TAB to reach the buttons for changing month and year.
320
321
  * <br>
321
322
  *
322
- * If the <code>ui5-date-picker</code> is focused and the picker dialog is not opened the user can
323
- * increment or decrement the corresponding field of the JS date object referenced by <code>dateValue</code> propery
323
+ * If the <code>ui5-date-picker</code> input field is focused and its corresponding picker dialog is not opened,
324
+ * then users can increment or decrement the date referenced by <code>dateValue</code> property
324
325
  * by using the following shortcuts:
325
326
  * <br>
326
327
  * <ul>
@@ -469,6 +470,10 @@ class DatePicker extends DateComponentBase {
469
470
  return;
470
471
  }
471
472
 
473
+ if (isEnter(event)) {
474
+ this._updateValueAndFireEvents(event.target.value, true, ["change", "value-changed"]);
475
+ }
476
+
472
477
  if (isPageUpShiftCtrl(event)) {
473
478
  event.preventDefault();
474
479
  this._modifyDateValue(1, "year");
@@ -527,6 +532,9 @@ class DatePicker extends DateComponentBase {
527
532
  }
528
533
 
529
534
  if (updateValue) {
535
+ this._getInput().getInputDOMRef().then(innnerInput => {
536
+ innnerInput.value = value;
537
+ });
530
538
  this.value = value;
531
539
  this._updateValueState(); // Change the value state to Error/None, but only if needed
532
540
  }
@@ -84,6 +84,28 @@ class DateRangePicker extends DatePicker {
84
84
  return [DatePicker.styles, DateRangePickerCss];
85
85
  }
86
86
 
87
+ /**
88
+ * <b>Note:</b> The getter method is inherited and not supported. If called it will return an empty value.
89
+ *
90
+ * @readonly
91
+ * @type { Date }
92
+ * @public
93
+ */
94
+ get dateValue() {
95
+ return null;
96
+ }
97
+
98
+ /**
99
+ * <b>Note:</b> The getter method is inherited and not supported. If called it will return an empty value.
100
+ *
101
+ * @readonly
102
+ * @type { Date }
103
+ * @public
104
+ */
105
+ get dateValueUTC() {
106
+ return null;
107
+ }
108
+
87
109
  get _startDateTimestamp() {
88
110
  return this._extractFirstTimestamp(this.value);
89
111
  }
package/src/Dialog.hbs CHANGED
@@ -23,7 +23,7 @@
23
23
  <slot name="footer"></slot>
24
24
  </footer>
25
25
  {{/if}}
26
- {{#if resizable}}
26
+ {{#if _showResizeHandle }}
27
27
  <ui5-icon
28
28
  name="resize-corner"
29
29
  dir="{{effectiveDir}}"
package/src/Dialog.js CHANGED
@@ -66,17 +66,6 @@ const metadata = {
66
66
  type: String,
67
67
  },
68
68
 
69
- /**
70
- * Sets the accessible aria name of the component.
71
- *
72
- * @type {string}
73
- * @defaultvalue ""
74
- * @public
75
- */
76
- accessibleName: {
77
- type: String,
78
- },
79
-
80
69
  /**
81
70
  * Determines whether the component should be stretched to fullscreen.
82
71
  * <br><br>
@@ -237,23 +226,13 @@ class Dialog extends Popup {
237
226
  get _ariaLabelledBy() { // Required by Popup.js
238
227
  let ariaLabelledById;
239
228
 
240
- if (this.headerText !== "" && !this.accessibleName) {
229
+ if (this.headerText !== "" && !this._ariaLabel) {
241
230
  ariaLabelledById = "ui5-popup-header-text";
242
231
  }
243
232
 
244
233
  return ariaLabelledById;
245
234
  }
246
235
 
247
- get _ariaLabel() {
248
- let ariaLabel;
249
-
250
- if (this.header.length > 0 && !!this.accessibleName) {
251
- ariaLabel = this.accessibleName;
252
- }
253
-
254
- return this.accessibleName ? this.accessibleName : ariaLabel;
255
- }
256
-
257
236
  get _ariaModal() { // Required by Popup.js
258
237
  return true;
259
238
  }
@@ -277,6 +256,10 @@ class Dialog extends Popup {
277
256
  return this._movable ? "0" : undefined;
278
257
  }
279
258
 
259
+ get _showResizeHandle() {
260
+ return this.resizable && this.onDesktop;
261
+ }
262
+
280
263
  _show() {
281
264
  super._show();
282
265
  this._center();
package/src/Icon.js CHANGED
@@ -88,11 +88,12 @@ const metadata = {
88
88
 
89
89
  /**
90
90
  * Defines the accessibility role of the component.
91
+ * @type {string}
91
92
  * @defaultvalue ""
92
- * @private
93
- * @since 1.0.0-rc.15
93
+ * @public
94
+ * @since 1.1.0
94
95
  */
95
- role: {
96
+ accessibleRole: {
96
97
  type: String,
97
98
  },
98
99
 
@@ -219,13 +220,13 @@ class Icon extends UI5Element {
219
220
  this.createGlobalStyle(); // hide all icons until the first icon has rendered (and added the Icon.css)
220
221
  }
221
222
 
222
- _onfocusin(event) {
223
+ _onFocusInHandler(event) {
223
224
  if (this.interactive) {
224
225
  this.focused = true;
225
226
  }
226
227
  }
227
228
 
228
- _onfocusout(event) {
229
+ _onFocusOutHandler(event) {
229
230
  this.focused = false;
230
231
  }
231
232
 
@@ -280,7 +281,7 @@ class Icon extends UI5Element {
280
281
  }
281
282
 
282
283
  get tabIndex() {
283
- return this.interactive ? "0" : "-1";
284
+ return this.interactive ? "0" : undefined;
284
285
  }
285
286
 
286
287
  get isDecorative() {
@@ -288,8 +289,8 @@ class Icon extends UI5Element {
288
289
  }
289
290
 
290
291
  get effectiveAccessibleRole() {
291
- if (this.role) {
292
- return this.role;
292
+ if (this.accessibleRole) {
293
+ return this.accessibleRole;
293
294
  }
294
295
 
295
296
  if (this.interactive) {
@@ -348,6 +349,8 @@ class Icon extends UI5Element {
348
349
  this.packageName = iconData.packageName;
349
350
 
350
351
  this._onclick = this.interactive ? this._onClickHandler.bind(this) : undefined;
352
+ this._onfocusout = this.interactive ? this._onFocusOutHandler.bind(this) : undefined;
353
+ this._onfocusin = this.interactive ? this._onFocusInHandler.bind(this) : undefined;
351
354
 
352
355
  if (this.accessibleName) {
353
356
  this.effectiveAccessibleName = this.accessibleName;
package/src/Input.hbs CHANGED
@@ -28,7 +28,7 @@
28
28
  aria-label="{{accInfo.input.ariaLabel}}"
29
29
  aria-required="{{required}}"
30
30
  @input="{{_handleInput}}"
31
- @change="{{_handleChange}}"
31
+ @change="{{_handleNativeInputChange}}"
32
32
  @keydown="{{_onkeydown}}"
33
33
  @keyup="{{_onkeyup}}"
34
34
  @click={{_click}}
package/src/Input.js CHANGED
@@ -10,8 +10,13 @@ import {
10
10
  isSpace,
11
11
  isEnter,
12
12
  isBackSpace,
13
+ isDelete,
13
14
  isEscape,
14
15
  isTabNext,
16
+ isPageUp,
17
+ isPageDown,
18
+ isHome,
19
+ isEnd,
15
20
  } from "@ui5/webcomponents-base/dist/Keys.js";
16
21
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
17
22
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
@@ -460,6 +465,22 @@ const metadata = {
460
465
  * "@ui5/webcomponents/dist/features/InputSuggestions.js"
461
466
  * to enable the suggestions functionality.
462
467
  *
468
+ * <h3>Keyboard Handling</h3>
469
+ * The <code>ui5-input</code> provides the following keyboard shortcuts:
470
+ * <br>
471
+ *
472
+ * <ul>
473
+ * <li>[F4], [ALT]+[UP], or [ALT]+[DOWN] - Opens value help if available, same as clicking the value help icon. (Does not open suggestion list.)</li>
474
+ * <li>[ESC] - Closes the suggestion list, if open. If closed or not enabled, cancels changes and reverts to the value which the Input field had when it got the focus.</li>
475
+ * <li>[ENTER] or [RETURN] - If suggestion list is open takes over the current matching item and closes it. If value state or group header is focused, does nothing.</li>
476
+ * <li>[DOWN] - Focuses the next matching item in the suggestion list.</li>
477
+ * <li>[UP] - Focuses the previous matching item in the suggestion list.</li>
478
+ * <li>[HOME] - If focus is in the text input, moves caret before the first character. If focus is in the list, highlights the first item and updates the input accordingly.</li>
479
+ * <li>[END] - If focus is in the text input, moves caret after the last character. If focus is in the list, highlights the last item and updates the input accordingly.</li>
480
+ * <li>[PAGEUP] - If focus is in the list, moves highlight up by page size (10 items by default). If focus is in the input, does nothing.</li>
481
+ * <li>[PAGEDOWN] - If focus is in the list, moves highlight down by page size (10 items by default). If focus is in the input, does nothing.</li>
482
+ * </ul>
483
+ *
463
484
  * <h3>ES6 Module Import</h3>
464
485
  *
465
486
  * <code>import "@ui5/webcomponents/dist/Input.js";</code>
@@ -520,7 +541,7 @@ class Input extends UI5Element {
520
541
  this.suggestionSelectionCanceled = false;
521
542
 
522
543
  // Indicates if the change event has already been fired
523
- this._changeFired = false;
544
+ this._changeFiredValue = null;
524
545
 
525
546
  // tracks the value between focus in and focus out to detect that change event should be fired.
526
547
  this.previousValue = undefined;
@@ -614,6 +635,22 @@ class Input extends UI5Element {
614
635
  return this._handleEnter(event);
615
636
  }
616
637
 
638
+ if (isPageUp(event)) {
639
+ return this._handlePageUp(event);
640
+ }
641
+
642
+ if (isPageDown(event)) {
643
+ return this._handlePageDown(event);
644
+ }
645
+
646
+ if (isHome(event)) {
647
+ return this._handleHome(event);
648
+ }
649
+
650
+ if (isEnd(event)) {
651
+ return this._handleEnd(event);
652
+ }
653
+
617
654
  if (isEscape(event)) {
618
655
  return this._handleEscape(event);
619
656
  }
@@ -631,6 +668,11 @@ class Input extends UI5Element {
631
668
  }
632
669
 
633
670
  _onkeyup(event) {
671
+ // The native Delete event does not update the value property "on time". So, the (native) change event is always fired with the old value
672
+ if (isDelete(event)) {
673
+ this.value = event.target.value;
674
+ }
675
+
634
676
  this._keyDown = false;
635
677
  this._backspaceKeyDown = false;
636
678
  }
@@ -672,6 +714,34 @@ class Input extends UI5Element {
672
714
  this.focused = true;
673
715
  }
674
716
 
717
+ _handlePageUp(event) {
718
+ if (this._isSuggestionsFocused) {
719
+ this.Suggestions.onPageUp(event);
720
+ } else {
721
+ event.preventDefault();
722
+ }
723
+ }
724
+
725
+ _handlePageDown(event) {
726
+ if (this._isSuggestionsFocused) {
727
+ this.Suggestions.onPageDown(event);
728
+ } else {
729
+ event.preventDefault();
730
+ }
731
+ }
732
+
733
+ _handleHome(event) {
734
+ if (this._isSuggestionsFocused) {
735
+ this.Suggestions.onHome(event);
736
+ }
737
+ }
738
+
739
+ _handleEnd(event) {
740
+ if (this._isSuggestionsFocused) {
741
+ this.Suggestions.onEnd(event);
742
+ }
743
+ }
744
+
675
745
  _handleEscape() {
676
746
  const hasSuggestions = this.showSuggestions && !!this.Suggestions;
677
747
  const isOpen = hasSuggestions && this.open;
@@ -715,7 +785,7 @@ class Input extends UI5Element {
715
785
 
716
786
  // if focusout is triggered by pressing on suggestion item or value state message popover, skip invalidation, because re-rendering
717
787
  // will happen before "itemPress" event, which will make item "active" state not visualized
718
- if (focusedOutToSuggestions || focusedOutToValueStateMessage) {
788
+ if (focusedOutToSuggestions || focusedOutToValueStateMessage) {
719
789
  event.stopImmediatePropagation();
720
790
  return;
721
791
  }
@@ -754,13 +824,18 @@ class Input extends UI5Element {
754
824
  }
755
825
  }
756
826
 
757
- _handleChange(event) {
758
- if (!this._changeFired) {
827
+ _handleNativeInputChange() {
828
+ // The native change sometimes fires too early and getting input's value in the listener would return
829
+ // the previous value instead of the most recent one. This would make things consistent.
830
+ clearTimeout(this._nativeChangeDebounce);
831
+ this._nativeChangeDebounce = setTimeout(() => this._handleChange(), 100);
832
+ }
833
+
834
+ _handleChange() {
835
+ if (this._changeFiredValue !== this.value) {
836
+ this._changeFiredValue = this.value;
759
837
  this.fireEvent(this.EVENT_CHANGE);
760
838
  }
761
-
762
- // Set event as no longer marked
763
- this._changeFired = false;
764
839
  }
765
840
 
766
841
  _scroll(event) {
@@ -771,8 +846,8 @@ class Input extends UI5Element {
771
846
  });
772
847
  }
773
848
 
774
- async _handleInput(event) {
775
- const inputDomRef = await this.getInputDOMRef();
849
+ _handleInput(event) {
850
+ const inputDomRef = this.getInputDOMRefSync();
776
851
  const emptyValueFiredOnNumberInput = this.value && this.isTypeNumber && !inputDomRef.value;
777
852
 
778
853
  this.suggestionSelectionCanceled = false;
@@ -921,10 +996,7 @@ class Input extends UI5Element {
921
996
  this.valueBeforeItemSelection = itemText;
922
997
  this.lastConfirmedValue = itemText;
923
998
  this.fireEvent(this.EVENT_INPUT);
924
- this.fireEvent(this.EVENT_CHANGE);
925
-
926
- // Mark the change event to avoid double firing
927
- this._changeFired = true;
999
+ this._handleChange();
928
1000
  }
929
1001
 
930
1002
  this.valueBeforeItemPreview = "";
@@ -999,7 +1071,7 @@ class Input extends UI5Element {
999
1071
  // In IE, pressing the ENTER does not fire change
1000
1072
  const valueChanged = (this.previousValue !== undefined) && (this.previousValue !== this.value);
1001
1073
  if (isIE() && action === this.ACTION_ENTER && valueChanged) {
1002
- this.fireEvent(this.EVENT_CHANGE);
1074
+ this._handleChange();
1003
1075
  }
1004
1076
  }
1005
1077
 
@@ -1021,6 +1093,14 @@ class Input extends UI5Element {
1021
1093
  return this.nativeInput;
1022
1094
  }
1023
1095
 
1096
+ getInputDOMRefSync() {
1097
+ if (isPhone() && this.Suggestions) {
1098
+ return this.Suggestions && this.Suggestions.responsivePopover.querySelector(".ui5-input-inner-phone");
1099
+ }
1100
+
1101
+ return this.nativeInput;
1102
+ }
1103
+
1024
1104
  /**
1025
1105
  * Returns a reference to the native input element
1026
1106
  * @protected
@@ -1081,6 +1161,10 @@ class Input extends UI5Element {
1081
1161
  });
1082
1162
  }
1083
1163
 
1164
+ onItemMouseDown(event) {
1165
+ event.preventDefault();
1166
+ }
1167
+
1084
1168
  onItemSelected(item, keyboardUsed) {
1085
1169
  this.selectSuggestion(item, keyboardUsed);
1086
1170
  }
@@ -1236,7 +1320,7 @@ class Input extends UI5Element {
1236
1320
  }
1237
1321
 
1238
1322
  get shouldDisplayOnlyValueStateMessage() {
1239
- return this.hasValueStateMessage && !this.open && this.focused;
1323
+ return this.hasValueStateMessage && !this.readonly && !this.open && this.focused;
1240
1324
  }
1241
1325
 
1242
1326
  get shouldDisplayDefaultValueStateMessage() {
@@ -1286,6 +1370,10 @@ class Input extends UI5Element {
1286
1370
  return isPhone();
1287
1371
  }
1288
1372
 
1373
+ get _isSuggestionsFocused() {
1374
+ return !this.focused && this.Suggestions && this.Suggestions.isOpened();
1375
+ }
1376
+
1289
1377
  /**
1290
1378
  * Returns the placeholder value.
1291
1379
  * @protected
@@ -1314,6 +1402,10 @@ class Input extends UI5Element {
1314
1402
  return this.valueState !== ValueState.None ? result : "";
1315
1403
  }
1316
1404
 
1405
+ get _valueStatePopoverHorizontalAlign() {
1406
+ return this.effectiveDir !== "rtl" ? "Left" : "Right";
1407
+ }
1408
+
1317
1409
  /**
1318
1410
  * This method is relevant for sap_horizon theme only
1319
1411
  */
@@ -73,7 +73,7 @@
73
73
  hide-arrow
74
74
  class="ui5-valuestatemessage-popover"
75
75
  placement-type="Bottom"
76
- horizontal-align="Left"
76
+ horizontal-align="{{_valueStatePopoverHorizontalAlign}}"
77
77
  >
78
78
  <div slot="header" class="{{classes.popoverValueState}}" style="{{styles.popoverHeader}}">
79
79
  <ui5-icon class="ui5-input-value-state-message-icon" name="{{_valueStateMessageInputIcon}}"></ui5-icon>
@@ -93,7 +93,7 @@
93
93
  {{/inline}}
94
94
 
95
95
  {{#*inline "suggestionsList"}}
96
- <ui5-list separators="{{suggestionSeparators}}">
96
+ <ui5-list separators="{{suggestionSeparators}}" @mousedown="{{onItemMouseDown}}" mode="SingleSelect">
97
97
  {{#each suggestionsTexts}}
98
98
  {{#if groupItem}}
99
99
  <ui5-li-groupheader data-ui5-key="{{key}}">{{{ this.text }}}</ui5-li-groupheader>
@@ -104,7 +104,6 @@
104
104
  additional-text="{{this.additionalText}}"
105
105
  type="{{this.type}}"
106
106
  additional-text-state="{{this.additionalTextState}}"
107
- @ui5-_item-press="{{ fnOnSuggestionItemPress }}"
108
107
  data-ui5-key="{{key}}"
109
108
  >
110
109
  {{{ this.text }}}
package/src/Link.hbs CHANGED
@@ -7,7 +7,8 @@
7
7
  tabindex="{{tabIndex}}"
8
8
  ?disabled="{{disabled}}"
9
9
  aria-label="{{ariaLabelText}}"
10
- aria-haspopup="{{ariaHaspopup}}"
10
+ aria-haspopup="{{accessibilityAttributes.hasPopup}}"
11
+ aria-expanded="{{accessibilityAttributes.expanded}}"
11
12
  @focusin={{_onfocusin}}
12
13
  @focusout={{_onfocusout}}
13
14
  @click={{_onclick}}
package/src/Link.js CHANGED
@@ -116,26 +116,44 @@ const metadata = {
116
116
  },
117
117
 
118
118
  /**
119
- * Defines the aria-haspopup value of the component.
120
- *
121
- * @type String
122
- * @defaultvalue undefined
119
+ * Defines the ARIA role of the component.
120
+ * @defaultvalue ""
123
121
  * @private
124
122
  * @since 1.0.0-rc.15
125
123
  */
126
- ariaHaspopup: {
124
+ accessibleRole: {
127
125
  type: String,
128
- defaultValue: undefined,
129
126
  },
130
127
 
131
128
  /**
132
- * Defines the accessibility role of the component.
133
- * @defaultvalue ""
134
- * @private
135
- * @since 1.0.0-rc.15
129
+ * An object of strings that defines several additional accessibility attribute values
130
+ * for customization depending on the use case.
131
+ *
132
+ * It supports the following fields:
133
+ *
134
+ * <ul>
135
+ * <li><code>expanded</code>: Indicates whether the anchor element, or another grouping element it controls, is currently expanded or collapsed. Accepts the following string values:
136
+ * <ul>
137
+ * <li><code>true</code></li>
138
+ * <li><code>false</code></li>
139
+ * <ul>
140
+ * </li>
141
+ * <li><code>hasPopup</code>: Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by the anchor element. Accepts the following string values:
142
+ * <ul>
143
+ * <li><code>Dialog</code></li>
144
+ * <li><code>Grid</code></li>
145
+ * <li><code>ListBox</code></li>
146
+ * <li><code>Menu</code></li>
147
+ * <li><code>Tree</code></li>
148
+ * </ul>
149
+ * </li>
150
+ * </ul>
151
+ * @type {object}
152
+ * @public
153
+ * @since 1.1.0
136
154
  */
137
- accessibleRole: {
138
- type: String,
155
+ accessibilityAttributes: {
156
+ type: Object,
139
157
  },
140
158
 
141
159
  _rel: {
@@ -246,11 +264,11 @@ class Link extends UI5Element {
246
264
  }
247
265
 
248
266
  onBeforeRendering() {
249
- const needsNoReferrer = this.target === "_blank"
267
+ const needsNoReferrer = this.target !== "_self"
250
268
  && this.href
251
269
  && this._isCrossOrigin();
252
270
 
253
- this._rel = needsNoReferrer ? "noreferrer" : undefined;
271
+ this._rel = needsNoReferrer ? "noreferrer noopener" : undefined;
254
272
  }
255
273
 
256
274
  _isCrossOrigin() {
package/src/List.js CHANGED
@@ -40,6 +40,7 @@ const PAGE_UP_DOWN_SIZE = 10;
40
40
  const metadata = {
41
41
  tag: "ui5-list",
42
42
  managedSlots: true,
43
+ fastNavigation: true,
43
44
  slots: /** @lends sap.ui.webcomponents.main.List.prototype */ {
44
45
 
45
46
  /**
@@ -168,7 +169,7 @@ const metadata = {
168
169
  * <code>None</code> (default) - The growing is off.
169
170
  * <br><br>
170
171
  *
171
- * <b>Limitations:</b> <code>growing="Scroll"</code> is not supported for Internet Explorer,
172
+ * <b>Restrictions:</b> <code>growing="Scroll"</code> is not supported for Internet Explorer,
172
173
  * on IE the component will fallback to <code>growing="Button"</code>.
173
174
  * @type {ListGrowingMode}
174
175
  * @defaultvalue "None"
@@ -265,6 +266,7 @@ const metadata = {
265
266
  * is set to <code>Inactive</code>.
266
267
  *
267
268
  * @event sap.ui.webcomponents.main.List#item-click
269
+ * @allowPreventDefault
268
270
  * @param {HTMLElement} item The clicked item.
269
271
  * @public
270
272
  */
@@ -376,6 +378,8 @@ const metadata = {
376
378
  *
377
379
  * <br><br>
378
380
  * <h3>Keyboard Handling</h3>
381
+ *
382
+ * <h4>Basic Navigation</h4
379
383
  * The <code>ui5-list</code> provides advanced keyboard handling.
380
384
  * When a list is focused the user can use the following keyboard
381
385
  * shortcuts in order to perform a navigation:
@@ -393,6 +397,11 @@ const metadata = {
393
397
  * <li>[SPACE] - Select an item (if <code>type</code> is 'Active') when <code>mode</code> is selection</li>
394
398
  * <li>[DELETE] - Delete an item if <code>mode</code> property is <code>Delete</code></li>
395
399
  * </ul>
400
+ *
401
+ * <h4>Fast Navigation</h4>
402
+ * This component provides a build in fast navigation group which can be used via <code>F6 / Shift + F6</code> or <code> Ctrl + Alt(Option) + Down / Ctrl + Alt(Option) + Up</code>.
403
+ * In order to use this functionality, you need to import the following module:
404
+ * <code>import "@ui5/webcomponents-base/dist/features/F6Navigation.js"</code>
396
405
  * <br><br>
397
406
  *
398
407
  * <h3>ES6 Module Import</h3>
@@ -882,6 +891,10 @@ class List extends UI5Element {
882
891
  onItemPress(event) {
883
892
  const pressedItem = event.detail.item;
884
893
 
894
+ if (!this.fireEvent("item-click", { item: pressedItem }, true)) {
895
+ return;
896
+ }
897
+
885
898
  if (!this._selectionRequested && this.mode !== ListMode.Delete) {
886
899
  this._selectionRequested = true;
887
900
  this.onSelectionRequested({
@@ -894,9 +907,6 @@ class List extends UI5Element {
894
907
  });
895
908
  }
896
909
 
897
- this.fireEvent("item-press", { item: pressedItem });
898
- this.fireEvent("item-click", { item: pressedItem });
899
-
900
910
  this._selectionRequested = false;
901
911
  }
902
912
 
package/src/ListItem.hbs CHANGED
@@ -75,6 +75,7 @@
75
75
  {{#if modeMultiSelect}}
76
76
  <ui5-checkbox
77
77
  ?disabled="{{isInactive}}"
78
+ ?indeterminate={{indeterminate}}
78
79
  tabindex="-1"
79
80
  id="{{_id}}-multiSelectionElement"
80
81
  class="ui5-li-multisel-cb"
@@ -27,7 +27,7 @@
27
27
  icon="decline"
28
28
  design="Transparent"
29
29
  class="ui5-message-strip-close-button"
30
- title="{{_closeButtonText}}"
30
+ ._buttonAccInfo="{{accInfo.button}}"
31
31
  @click={{_closeClick}}
32
32
  ></ui5-button>
33
33
  {{/unless}}