@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
@@ -7,6 +7,8 @@ import {
7
7
  isRight,
8
8
  isSpace,
9
9
  isEnter,
10
+ isHome,
11
+ isEnd,
10
12
  } from "@ui5/webcomponents-base/dist/Keys.js";
11
13
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
12
14
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
@@ -143,6 +145,20 @@ const metadata = {
143
145
  * <br>
144
146
  * Example: <code>&lt;ui5-rating-indicator style="font-size: 3rem;">&lt;/ui5-rating-indicator></code>
145
147
  *
148
+ * <h3>Keyboard Handling</h3>
149
+ * When the <code>ui5-rating-indicator</code> is focused, the user can change the rating
150
+ * with the following keyboard shortcuts:
151
+ * <br>
152
+ *
153
+ * <ul>
154
+ * <li>[RIGHT/UP] - Increases the value of the rating by one step. If the highest value is reached, does nothing</li>
155
+ * <li>[LEFT/DOWN] - Decreases the value of the rating by one step. If the lowest value is reached, does nothing.</li>
156
+ * <li>[HOME] - Sets the lowest value.</li>
157
+ * <li>[END] - Sets the highest value.</li>
158
+ * <li>[SPACE/ENTER/RETURN] - Increases the value of the rating by one step. If the highest value is reached, sets the rating to the lowest value.</li>
159
+ * <li>Any number - Changes value to the corresponding number. If typed number is larger than the number of values, sets the highest value.</li>
160
+ * </ul>
161
+ *
146
162
  * <h3>ES6 Module Import</h3>
147
163
  *
148
164
  * <code>import "@ui5/webcomponents/dist/RatingIndicator.js";</code>
@@ -232,19 +248,33 @@ class RatingIndicator extends UI5Element {
232
248
  return;
233
249
  }
234
250
 
235
- const down = isDown(event) || isLeft(event);
236
- const up = isRight(event) || isUp(event) || isSpace(event) || isEnter(event);
251
+ const isDecrease = isDown(event) || isLeft(event);
252
+ const isIncrease = isRight(event) || isUp(event);
253
+ const isIncreaseWithReset = isSpace(event) || isEnter(event);
254
+ const isMin = isHome(event);
255
+ const isMax = isEnd(event);
256
+ const isNumber = (event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105);
237
257
 
238
- if (down || up) {
258
+ if (isDecrease || isIncrease || isIncreaseWithReset || isMin || isMax || isNumber) {
239
259
  event.preventDefault();
240
260
 
241
- if (down && this.value > 0) {
261
+ if (isDecrease && this.value > 0) {
242
262
  this.value = Math.round(this.value - 1);
243
- this.fireEvent("change");
244
- } else if (up && this.value < this.max) {
263
+ } else if (isIncrease && this.value < this.max) {
245
264
  this.value = Math.round(this.value + 1);
246
- this.fireEvent("change");
265
+ } else if (isIncreaseWithReset) {
266
+ const proposedValue = Math.round(this.value + 1);
267
+ this.value = proposedValue > this.max ? 0 : proposedValue;
268
+ } else if (isMin) {
269
+ this.value = 0;
270
+ } else if (isMax) {
271
+ this.value = this.max;
272
+ } else if (isNumber) {
273
+ const pressedNumber = parseInt(event.key);
274
+ this.value = pressedNumber > this.max ? this.max : pressedNumber;
247
275
  }
276
+
277
+ this.fireEvent("change");
248
278
  }
249
279
  }
250
280
 
@@ -1,5 +1,7 @@
1
1
  {{#if _isPhone}}
2
2
  <ui5-dialog
3
+ accessible-name={{accessibleName}}
4
+ accessible-name-ref={{accessibleNameRef}}
3
5
  ?with-padding={{withPadding}}
4
6
  stretch
5
7
  _disable-initial-focus
@@ -107,6 +107,7 @@ class ResponsivePopover extends Popover {
107
107
 
108
108
  static get dependencies() {
109
109
  return [
110
+ ...Popover.dependencies,
110
111
  Button,
111
112
  Dialog,
112
113
  Title,
@@ -9,6 +9,7 @@
9
9
  aria-multiselectable="true"
10
10
  aria-describedby="{{_id}}-invisibleText"
11
11
  aria-roledescription={{ariaDescription}}
12
+ aria-label={{accessibleName}}
12
13
  >
13
14
  <slot></slot>
14
15
 
@@ -25,7 +25,20 @@ const metadata = {
25
25
  tag: "ui5-segmented-button",
26
26
  altTag: "ui5-segmentedbutton",
27
27
  languageAware: true,
28
- properties: /** @lends sap.ui.webcomponents.main.SegmentedButton.prototype */ {},
28
+ properties: /** @lends sap.ui.webcomponents.main.SegmentedButton.prototype */ {
29
+ /**
30
+ * Sets the accessible aria name of the component.
31
+ *
32
+ * @type {String}
33
+ * @defaultvalue: ""
34
+ * @public
35
+ * @since 1.0.3
36
+ */
37
+ accessibleName: {
38
+ type: String,
39
+ defaultValue: undefined,
40
+ },
41
+ },
29
42
  managedSlots: true,
30
43
  slots: /** @lends sap.ui.webcomponents.main.SegmentedButton.prototype */ {
31
44
 
package/src/Select.js CHANGED
@@ -402,6 +402,7 @@ class Select extends UI5Element {
402
402
  icon: opt.icon,
403
403
  value: opt.value,
404
404
  textContent: opt.textContent,
405
+ title: opt.title,
405
406
  id: opt._id,
406
407
  stableDomRef: opt.stableDomRef,
407
408
  };
@@ -554,7 +555,7 @@ class Select extends UI5Element {
554
555
  * @private
555
556
  */
556
557
  _handleItemPress(event) {
557
- const item = event.detail.item;
558
+ const item = event.detail.selectedItems[0];
558
559
  const selectedItemIndex = this._getSelectedItemIndex(item);
559
560
 
560
561
  this._handleSelectionChange(selectedItemIndex);
@@ -42,7 +42,7 @@
42
42
  mode="SingleSelectAuto"
43
43
  separators="None"
44
44
  @mousedown="{{_itemMousedown}}"
45
- @ui5-item-press="{{_handleItemPress}}"
45
+ @ui5-selection-change="{{_handleItemPress}}"
46
46
  >
47
47
  {{#each _syncedOptions}}
48
48
  <ui5-li
@@ -50,6 +50,7 @@
50
50
  icon="{{this.icon}}"
51
51
  ?selected="{{this.selected}}"
52
52
  ?focused="{{this._focused}}"
53
+ title="{{this.title}}"
53
54
  ?aria-selected="{{this.selected}}"
54
55
  data-ui5-stable="{{this.stableDomRef}}"
55
56
  >
@@ -1,5 +1,5 @@
1
1
  <div
2
- class="ui5-slider-root"
2
+ class="ui5-slider-root {{classes.root}}"
3
3
  @mousedown="{{_onmousedown}}"
4
4
  @touchstart="{{_ontouchstart}}"
5
5
  @mouseover="{{_onmouseover}}"
package/src/SliderBase.js CHANGED
@@ -3,6 +3,7 @@ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
3
3
  import Float from "@ui5/webcomponents-base/dist/types/Float.js";
4
4
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
5
5
  import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
6
+ import { isPhone } from "@ui5/webcomponents-base/dist/Device.js";
6
7
  import "@ui5/webcomponents-icons/dist/source-code.js";
7
8
  import {
8
9
  isEscape, isHome, isEnd, isUp, isDown, isRight, isLeft, isUpCtrl, isDownCtrl, isRightCtrl, isLeftCtrl, isPlus, isMinus, isPageUp, isPageDown,
@@ -229,6 +230,9 @@ class SliderBase extends UI5Element {
229
230
 
230
231
  get classes() {
231
232
  return {
233
+ root: {
234
+ "ui5-slider-root-phone": isPhone(),
235
+ },
232
236
  labelContainer: {
233
237
  "ui5-slider-hidden-labels": this._labelsOverlapping,
234
238
  },
@@ -0,0 +1,53 @@
1
+ <div
2
+ class="ui5-split-button-root"
3
+ role="group"
4
+ tabindex={{_tabIndex}}
5
+ aria-labelledby="{{_id}}-invisibleTextDefault {{_id}}-invisibleText"
6
+ @focusout={{_onFocusOut}}
7
+ @focusin={{_onFocusIn}}
8
+ @keydown={{_onKeyDown}}
9
+ @keyup={{_onKeyUp}}
10
+ >
11
+
12
+ <ui5-button
13
+ class="ui5-split-text-button"
14
+ design="{{design}}"
15
+ dir={{effectiveDir}}
16
+ icon="{{_textButtonIcon}}"
17
+ tabindex="-1"
18
+ ?disabled="{{disabled}}"
19
+ ?active="{{_textButtonActive}}"
20
+ @click="{{_fireClick}}"
21
+ @touchstart={{_textButtonPress}}
22
+ @mousedown={{_textButtonPress}}
23
+ @mouseup={{_textButtonRelease}}
24
+ @focusin={{_setTabIndexValue}}
25
+ @focusout={{_onFocusOut}}
26
+ >
27
+ <slot></slot>
28
+ </ui5-button>
29
+
30
+ <div
31
+ class="ui5-split-arrow-button-wrapper"
32
+ dir={{effectiveDir}}
33
+ >
34
+ <ui5-button
35
+ class="ui5-split-arrow-button"
36
+ design="{{design}}"
37
+ icon="slim-arrow-down"
38
+ tabindex="-1"
39
+ ?disabled="{{disabled}}"
40
+ ?active="{{_arrowButtonActive}}"
41
+ aria-expanded="{{accessibilityInfo.ariaExpanded}}"
42
+ aria-haspopup="{{accessibilityInfo.ariaHaspopup}}"
43
+ @click="{{_fireArrowClick}}"
44
+ @focusin={{_setTabIndexValue}}
45
+ @focusout={{_onFocusOut}}
46
+ >
47
+ </ui5-button>
48
+ </div>
49
+
50
+ <span id="{{_id}}-invisibleText" class="ui5-hidden-text">{{accessibilityInfo.description}} {{accessibilityInfo.keyboardHint}} {{accessibleName}}</span>
51
+ <span id="{{_id}}-invisibleTextDefault" class="ui5-hidden-text">{{textButtonAccText}}</span>
52
+
53
+ </div>
@@ -0,0 +1,425 @@
1
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import {
3
+ isEscape,
4
+ isSpace,
5
+ isEnter,
6
+ isDown,
7
+ isUp,
8
+ isDownAlt,
9
+ isUpAlt,
10
+ isF4,
11
+ isShift,
12
+ } from "@ui5/webcomponents-base/dist/Keys.js";
13
+ import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
14
+ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
15
+ import SplitButtonTemplate from "./generated/templates/SplitButtonTemplate.lit.js";
16
+ import ButtonDesign from "./types/ButtonDesign.js";
17
+
18
+ import {
19
+ SPLIT_BUTTON_DESCRIPTION,
20
+ SPLIT_BUTTON_KEYBOARD_HINT,
21
+ } from "./generated/i18n/i18n-defaults.js";
22
+
23
+ // Styles
24
+ import SplitButtonCss from "./generated/themes/SplitButton.css.js";
25
+
26
+ /**
27
+ * @public
28
+ */
29
+ const metadata = {
30
+ tag: "ui5-split-button",
31
+ managedSlots: true,
32
+ properties: /** @lends sap.ui.webcomponents.main.SplitButton.prototype */ {
33
+ /**
34
+ * Defines the icon to be displayed as graphical element within the component.
35
+ * The SAP-icons font provides numerous options.
36
+ * <br><br>
37
+ * Example:
38
+ *
39
+ * See all the available icons in the <ui5-link target="_blank" href="https://openui5.hana.ondemand.com/test-resources/sap/m/demokit/iconExplorer/webapp/index.html" class="api-table-content-cell-link">Icon Explorer</ui5-link>.
40
+ *
41
+ * @type {string}
42
+ * @defaultvalue ""
43
+ * @public
44
+ */
45
+ icon: {
46
+ type: String,
47
+ },
48
+
49
+ /**
50
+ * Defines the icon to be displayed in active state as graphical element within the component.
51
+ *
52
+ * @type {string}
53
+ * @defaultvalue ""
54
+ * @public
55
+ */
56
+ activeIcon: {
57
+ type: String,
58
+ },
59
+
60
+ /**
61
+ * Defines the component design.
62
+ *
63
+ * <br><br>
64
+ * <b>The available values are:</b>
65
+ *
66
+ * <ul>
67
+ * <li><code>Default</code></li>
68
+ * <li><code>Emphasized</code></li>
69
+ * <li><code>Positive</code></li>
70
+ * <li><code>Negative</code></li>
71
+ * <li><code>Transparent</code></li>
72
+ * <li><code>Attention</code></li>
73
+ * </ul>
74
+ *
75
+ * @type {ButtonDesign}
76
+ * @defaultvalue "Default"
77
+ * @public
78
+ */
79
+ design: {
80
+ type: ButtonDesign,
81
+ defaultValue: ButtonDesign.Default,
82
+ },
83
+
84
+ /**
85
+ * Defines whether the component is disabled.
86
+ * A disabled component can't be pressed or
87
+ * focused, and it is not in the tab chain.
88
+ *
89
+ * @type {boolean}
90
+ * @defaultvalue false
91
+ * @public
92
+ */
93
+ disabled: {
94
+ type: Boolean,
95
+ },
96
+
97
+ /**
98
+ * Sets the accessible aria name of the component.
99
+ *
100
+ * @type {String}
101
+ * @defaultvalue: ""
102
+ * @public
103
+ */
104
+ accessibleName: {
105
+ type: String,
106
+ defaultValue: undefined,
107
+ },
108
+
109
+ /**
110
+ * Indicates if the elements is on focus
111
+ * @type {boolean}
112
+ * @defaultvalue false
113
+ * @private
114
+ */
115
+ focused: {
116
+ type: Boolean,
117
+ },
118
+
119
+ /**
120
+ * Accessibility-related properties for inner elements of the Split Button
121
+ *
122
+ * @type {Object}
123
+ * @private
124
+ */
125
+ _splitButtonAccInfo: {
126
+ type: Object,
127
+ },
128
+
129
+ /**
130
+ * Defines the tabIndex of the component.
131
+ * @type {string}
132
+ * @defaultvalue ""
133
+ * @private
134
+ */
135
+ _tabIndex: {
136
+ type: String,
137
+ defaultValue: "0",
138
+ noAttribute: true,
139
+ },
140
+
141
+ /**
142
+ * Indicates if there is Space key pressed
143
+ * @type {boolean}
144
+ * @defaultvalue false
145
+ * @private
146
+ */
147
+ _spacePressed: {
148
+ type: Boolean,
149
+ noAttribute: true,
150
+ },
151
+
152
+ /**
153
+ * Indicates if there is SHIFT or ESCAPE key pressed
154
+ * @type {boolean}
155
+ * @defaultvalue false
156
+ * @private
157
+ */
158
+ _shiftOrEscapePressed: {
159
+ type: Boolean,
160
+ noAttribute: true,
161
+ },
162
+
163
+ /**
164
+ * Defines the active state of the text button
165
+ * @type {boolean}
166
+ * @defaultvalue false
167
+ * @private
168
+ */
169
+ _textButtonActive: {
170
+ type: Boolean,
171
+ noAttribute: true,
172
+ },
173
+
174
+ /**
175
+ * Defines the icon of the text button
176
+ * @type {string}
177
+ * @defaultvalue ""
178
+ * @private
179
+ */
180
+ _textButtonIcon: {
181
+ type: String,
182
+ noAttribute: true,
183
+ },
184
+
185
+ /**
186
+ * Defines the active state of the arrow button
187
+ * @type {boolean}
188
+ * @defaultvalue false
189
+ * @private
190
+ */
191
+ _arrowButtonActive: {
192
+ type: Boolean,
193
+ noAttribute: true,
194
+ },
195
+ },
196
+ slots: /** @lends sap.ui.webcomponents.main.SplitButton.prototype */ {
197
+ /**
198
+ * Defines the text of the component.
199
+ * <br><br>
200
+ * <b>Note:</b> Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.
201
+ *
202
+ * @type {Node[]}
203
+ * @slot
204
+ * @public
205
+ */
206
+ "default": {
207
+ type: Node,
208
+ propertyName: "text",
209
+ },
210
+ },
211
+ events: /** @lends sap.ui.webcomponents.main.SplitButton.prototype */ {
212
+ /**
213
+ * Fired when the user clicks on the default action.
214
+ * @event
215
+ * @public
216
+ */
217
+ "click": {},
218
+
219
+ /**
220
+ * Fired when the user clicks on the arrow action.
221
+ * @event sap.ui.webcomponents.main.SplitButton#arrow-click
222
+ * @public
223
+ */
224
+ "arrow-click": {},
225
+ },
226
+ };
227
+
228
+ /**
229
+ * @class
230
+ *
231
+ * <h3 class="comment-api-title">Overview</h3>
232
+ *
233
+ * <code>ui5-split-button</code> enables users to trigger actions. It is constructed of two separate actions -
234
+ * default action and arrow action that can be activated by clicking or tapping, or by
235
+ * pressing certain keyboard keys - <code>Space</code> or <code>Enter</code> for default action,
236
+ * and <code>Arrow Down</code> or <code>Arrow Up</code> for arrow action.
237
+ *
238
+ * <h3>Usage</h3>
239
+ *
240
+ * <code>ui5-split-button</code> consists two separate buttons:
241
+ * <ul>
242
+ * <li>for the first one (default action) you can define some <code>text</code> or an <code>icon</code>, or both.
243
+ * Also, it is possible to define different icon for active state of this button - <code>activeIcon</code>.</li>
244
+ * <li>the second one (arrow action) contains only <code>slim-arrow-down</code> icon.</li>
245
+ * </ul>
246
+ * You can choose a <code>design</code> from a set of predefined types (the same as for ui5-button) that offer
247
+ * different styling to correspond to the triggered action. Both text and arrow actions have the same design.
248
+ * <br><br>
249
+ * You can set the <code>ui5-split-button</code> as enabled or disabled. Both parts of an enabled
250
+ * <code>ui5-split-button</code> can be pressed by clicking or tapping it, or by certain keys, which changes
251
+ * the style to provide visual feedback to the user that it is pressed or hovered over with
252
+ * the mouse cursor. A disabled <code>ui5-split-button</code> appears inactive and any of the two buttons
253
+ * cannot be pressed.
254
+ * <br><br>
255
+ * <b>Keyboard handing</b>
256
+ * <ul>
257
+ * <li><code>Space</code> or <code>Enter</code> - triggers the default action</li>
258
+ * <li><code>Shift</code> or <code>Escape</code> - if <code>Space</code> is pressed, releases the default action button without triggering the click event.</li>
259
+ * <li><code>Arrow Down</code>, <code>Arrow Up</code>, <code>Alt</code>+<code>Arrow Down</code>, <code>Alt</code>+<code>Arrow Up</code>, or <code>F4</code> - triggers the arrow action
260
+ * There are separate events that are fired on activating of <code>ui5-split-button</code> parts:
261
+ * <ul>
262
+ * <li><code>click</code> for the first button (default action)</li>
263
+ * <li><code>arrow-click</code> for the second button (arrow action)</li>
264
+ * </ul>
265
+ *
266
+ * <h3>ES6 Module Import</h3>
267
+ *
268
+ * <code>import @ui5/webcomponents/dist/SplitButton.js";</code>
269
+ *
270
+ * @constructor
271
+ * @author SAP SE
272
+ * @alias sap.ui.webcomponents.main.SplitButton
273
+ * @extends UI5Element
274
+ * @tagname ui5-split-button
275
+ * @public
276
+ * @since 1.1.0
277
+ */
278
+ class SplitButton extends UI5Element {
279
+ static get metadata() {
280
+ return metadata;
281
+ }
282
+
283
+ static get render() {
284
+ return litRender;
285
+ }
286
+
287
+ static get styles() {
288
+ return SplitButtonCss;
289
+ }
290
+
291
+ static get template() {
292
+ return SplitButtonTemplate;
293
+ }
294
+
295
+ static async onDefine() {
296
+ SplitButton.i18nBundle = await getI18nBundle("@ui5/webcomponents");
297
+ }
298
+
299
+ onBeforeRendering() {
300
+ this._textButtonIcon = this.textButton && this.activeIcon !== "" && (this._textButtonActive) && !this._shiftOrEscapePressed ? this.activeIcon : this.icon;
301
+ if (this.disabled) {
302
+ this._tabIndex = "-1";
303
+ }
304
+ }
305
+
306
+ _onFocusOut(event) {
307
+ if (this.disabled || event.isMarked) {
308
+ return;
309
+ }
310
+ this._shiftOrEscapePressed = false;
311
+ this.focused = false;
312
+ this._setTabIndexValue();
313
+ }
314
+
315
+ _onFocusIn(event) {
316
+ if (this.disabled || event.isMarked) {
317
+ return;
318
+ }
319
+ this._shiftOrEscapePressed = false;
320
+ this.focused = true;
321
+ }
322
+
323
+ _onKeyDown(event) {
324
+ if (isDown(event) || isUp(event) || isDownAlt(event) || isUpAlt(event) || isF4(event)) {
325
+ event.preventDefault();
326
+ this._arrowButtonActive = true;
327
+ this._fireArrowClick();
328
+ } else if (isSpace(event) || isEnter(event)) {
329
+ event.preventDefault();
330
+ this._textButtonActive = true;
331
+ if (isEnter(event)) {
332
+ this._fireClick();
333
+ } else {
334
+ this._spacePressed = true;
335
+ }
336
+ }
337
+ if (this._spacePressed && (isEscape(event) || isShift(event))) {
338
+ this._shiftOrEscapePressed = true;
339
+ this._textButtonActive = false;
340
+ }
341
+
342
+ this._setTabIndexValue();
343
+ }
344
+
345
+ _onKeyUp(event) {
346
+ if (isDown(event) || isUp(event) || isDownAlt(event) || isUpAlt(event) || isF4(event)) {
347
+ this._arrowButtonActive = false;
348
+ } else if (isSpace(event) || isEnter(event)) {
349
+ this._textButtonActive = false;
350
+ if (isSpace(event)) {
351
+ event.preventDefault();
352
+ event.stopPropagation();
353
+ this._fireClick();
354
+ this._spacePressed = false;
355
+ }
356
+ }
357
+
358
+ this._setTabIndexValue();
359
+ }
360
+
361
+ _fireClick(event) {
362
+ event && event.stopPropagation();
363
+ if (!this._shiftOrEscapePressed) {
364
+ this.fireEvent("click");
365
+ }
366
+ this._shiftOrEscapePressed = false;
367
+ }
368
+
369
+ _fireArrowClick(event) {
370
+ event && event.stopPropagation();
371
+ this.fireEvent("arrow-click");
372
+ }
373
+
374
+ _textButtonRelease() {
375
+ this._textButtonActive = false;
376
+ this._textButtonIcon = this.textButton && this.activeIcon !== "" && (this._textButtonActive) && !this._shiftOrEscapePressed ? this.activeIcon : this.icon;
377
+ this._setTabIndexValue();
378
+ }
379
+
380
+ _textButtonPress() {
381
+ this._textButtonActive = true;
382
+ this.focused = false;
383
+ this._setTabIndexValue();
384
+ }
385
+
386
+ _setTabIndexValue() {
387
+ const textButton = this.textButton,
388
+ arrowButton = this.arrowButton,
389
+ buttonsAction = (textButton && (textButton.focused || textButton.active))
390
+ || (arrowButton && (arrowButton.focused || arrowButton.active));
391
+
392
+ this._tabIndex = this.disabled || buttonsAction ? "-1" : "0";
393
+ }
394
+
395
+ get textButtonAccText() {
396
+ return this.textContent;
397
+ }
398
+
399
+ get textButton() {
400
+ return this.getDomRef() && this.getDomRef().querySelector(".ui5-split-text-button");
401
+ }
402
+
403
+ get arrowButton() {
404
+ return this.getDomRef() && this.getDomRef().querySelector(".ui5-split-arrow-button");
405
+ }
406
+
407
+ get accessibilityInfo() {
408
+ return {
409
+ // affects arrow button
410
+ ariaExpanded: this._splitButtonAccInfo && this._splitButtonAccInfo.ariaExpanded,
411
+ ariaHaspopup: this._splitButtonAccInfo && this._splitButtonAccInfo.ariaHaspopup,
412
+ // affects root element
413
+ description: SplitButton.i18nBundle.getText(SPLIT_BUTTON_DESCRIPTION),
414
+ keyboardHint: SplitButton.i18nBundle.getText(SPLIT_BUTTON_KEYBOARD_HINT),
415
+ };
416
+ }
417
+
418
+ get ariaLabelText() {
419
+ return [SplitButton.i18nBundle.getText(SPLIT_BUTTON_DESCRIPTION), SplitButton.i18nBundle.getText(SPLIT_BUTTON_KEYBOARD_HINT)].join(" ");
420
+ }
421
+ }
422
+
423
+ SplitButton.define();
424
+
425
+ export default SplitButton;
package/src/Switch.hbs CHANGED
@@ -1,6 +1,7 @@
1
1
  <div
2
2
  class="ui5-switch-root {{classes.main}}"
3
3
  role="checkbox"
4
+ aria-label="{{ariaLabelText}}"
4
5
  aria-checked="{{checked}}"
5
6
  aria-disabled="{{ariaDisabled}}"
6
7
  aria-labelledby="{{_id}}-hiddenText"