@ui5/webcomponents 2.10.0 → 2.11.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (637) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/cypress/specs/Button.cy.tsx +28 -9
  3. package/cypress/specs/ComboBox.cy.tsx +27 -0
  4. package/cypress/specs/F6.cy.tsx +71 -0
  5. package/cypress/specs/List.cy.tsx +51 -0
  6. package/cypress/specs/MultiComboBox.cy.tsx +27 -0
  7. package/cypress/specs/RangeSlider.cy.tsx +52 -0
  8. package/cypress/specs/Slider.cy.tsx +61 -0
  9. package/cypress/specs/TextArea.cy.tsx +23 -0
  10. package/dist/.tsbuildinfo +1 -1
  11. package/dist/Bar.d.ts +18 -0
  12. package/dist/Bar.js +22 -0
  13. package/dist/Bar.js.map +1 -1
  14. package/dist/BarTemplate.js +1 -1
  15. package/dist/BarTemplate.js.map +1 -1
  16. package/dist/Button.d.ts +2 -1
  17. package/dist/Button.js +24 -6
  18. package/dist/Button.js.map +1 -1
  19. package/dist/Calendar.d.ts +3 -0
  20. package/dist/Calendar.js +13 -8
  21. package/dist/Calendar.js.map +1 -1
  22. package/dist/CalendarHeaderTemplate.js +2 -1
  23. package/dist/CalendarHeaderTemplate.js.map +1 -1
  24. package/dist/ColorPaletteItemTemplate.js +1 -1
  25. package/dist/ColorPaletteItemTemplate.js.map +1 -1
  26. package/dist/ComboBox.js +2 -2
  27. package/dist/ComboBox.js.map +1 -1
  28. package/dist/List.d.ts +1 -0
  29. package/dist/List.js +3 -0
  30. package/dist/List.js.map +1 -1
  31. package/dist/Menu.d.ts +3 -5
  32. package/dist/Menu.js +52 -56
  33. package/dist/Menu.js.map +1 -1
  34. package/dist/MenuItem.d.ts +12 -1
  35. package/dist/MenuItem.js +74 -5
  36. package/dist/MenuItem.js.map +1 -1
  37. package/dist/MenuItemTemplate.js +2 -2
  38. package/dist/MenuItemTemplate.js.map +1 -1
  39. package/dist/MenuTemplate.js +1 -1
  40. package/dist/MenuTemplate.js.map +1 -1
  41. package/dist/MultiComboBox.js +2 -2
  42. package/dist/MultiComboBox.js.map +1 -1
  43. package/dist/RangeSliderTemplate.js +2 -2
  44. package/dist/RangeSliderTemplate.js.map +1 -1
  45. package/dist/SliderBase.d.ts +2 -1
  46. package/dist/SliderBase.js +14 -2
  47. package/dist/SliderBase.js.map +1 -1
  48. package/dist/SliderBaseTemplate.js +1 -2
  49. package/dist/SliderBaseTemplate.js.map +1 -1
  50. package/dist/SliderTemplate.js +1 -1
  51. package/dist/SliderTemplate.js.map +1 -1
  52. package/dist/TextArea.js +1 -4
  53. package/dist/TextArea.js.map +1 -1
  54. package/dist/YearPickerTemplate.js +1 -1
  55. package/dist/YearPickerTemplate.js.map +1 -1
  56. package/dist/css/themes/Avatar.css +1 -1
  57. package/dist/css/themes/AvatarGroup.css +1 -1
  58. package/dist/css/themes/Bar.css +1 -1
  59. package/dist/css/themes/Breadcrumbs.css +1 -1
  60. package/dist/css/themes/BusyIndicator.css +1 -1
  61. package/dist/css/themes/Button.css +1 -1
  62. package/dist/css/themes/ButtonBadge.css +1 -1
  63. package/dist/css/themes/Calendar.css +1 -1
  64. package/dist/css/themes/CalendarHeader.css +1 -1
  65. package/dist/css/themes/CalendarLegend.css +1 -1
  66. package/dist/css/themes/CalendarLegendItem.css +1 -1
  67. package/dist/css/themes/Card.css +1 -1
  68. package/dist/css/themes/CardHeader.css +1 -1
  69. package/dist/css/themes/Carousel.css +1 -1
  70. package/dist/css/themes/CheckBox.css +1 -1
  71. package/dist/css/themes/ColorPalette.css +1 -1
  72. package/dist/css/themes/ColorPaletteItem.css +1 -1
  73. package/dist/css/themes/ColorPalettePopover.css +1 -1
  74. package/dist/css/themes/ColorPicker.css +1 -1
  75. package/dist/css/themes/ComboBox.css +1 -1
  76. package/dist/css/themes/ComboBoxItem.css +1 -1
  77. package/dist/css/themes/DatePicker.css +1 -1
  78. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  79. package/dist/css/themes/DayPicker.css +1 -1
  80. package/dist/css/themes/Dialog.css +1 -1
  81. package/dist/css/themes/FileUploader.css +1 -1
  82. package/dist/css/themes/Form.css +1 -1
  83. package/dist/css/themes/FormItem.css +1 -1
  84. package/dist/css/themes/FormItemSpan.css +1 -1
  85. package/dist/css/themes/GrowingButton.css +1 -1
  86. package/dist/css/themes/Icon.css +1 -1
  87. package/dist/css/themes/Input.css +1 -1
  88. package/dist/css/themes/InputIcon.css +1 -1
  89. package/dist/css/themes/InputSharedStyles.css +1 -1
  90. package/dist/css/themes/Link.css +1 -1
  91. package/dist/css/themes/List.css +1 -1
  92. package/dist/css/themes/ListItem.css +1 -1
  93. package/dist/css/themes/ListItemBase.css +1 -1
  94. package/dist/css/themes/ListItemCustom.css +1 -1
  95. package/dist/css/themes/ListItemGroup.css +1 -1
  96. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  97. package/dist/css/themes/ListItemIcon.css +1 -1
  98. package/dist/css/themes/Menu.css +1 -1
  99. package/dist/css/themes/MenuItem.css +1 -1
  100. package/dist/css/themes/MessageStrip.css +1 -1
  101. package/dist/css/themes/MonthPicker.css +1 -1
  102. package/dist/css/themes/MultiComboBox.css +1 -1
  103. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  104. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  105. package/dist/css/themes/MultiInput.css +1 -1
  106. package/dist/css/themes/OptionBase.css +1 -1
  107. package/dist/css/themes/Panel.css +1 -1
  108. package/dist/css/themes/Popover.css +1 -1
  109. package/dist/css/themes/PopupsCommon.css +1 -1
  110. package/dist/css/themes/ProgressIndicator.css +1 -1
  111. package/dist/css/themes/RadioButton.css +1 -1
  112. package/dist/css/themes/RangeSlider.css +1 -1
  113. package/dist/css/themes/RatingIndicator.css +1 -1
  114. package/dist/css/themes/ResponsivePopover.css +1 -1
  115. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  116. package/dist/css/themes/SegmentedButton.css +1 -1
  117. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  118. package/dist/css/themes/Select.css +1 -1
  119. package/dist/css/themes/SliderBase.css +1 -1
  120. package/dist/css/themes/SplitButton.css +1 -1
  121. package/dist/css/themes/StepInput.css +1 -1
  122. package/dist/css/themes/SuggestionItem.css +1 -1
  123. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  124. package/dist/css/themes/Switch.css +1 -1
  125. package/dist/css/themes/TabContainer.css +1 -1
  126. package/dist/css/themes/TabInOverflow.css +1 -1
  127. package/dist/css/themes/TabInStrip.css +1 -1
  128. package/dist/css/themes/TabSemanticIcon.css +1 -1
  129. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  130. package/dist/css/themes/TableCellBase.css +1 -1
  131. package/dist/css/themes/TableHeaderRow.css +1 -1
  132. package/dist/css/themes/TableRow.css +1 -1
  133. package/dist/css/themes/TableRowActionBase.css +1 -1
  134. package/dist/css/themes/TableRowBase.css +1 -1
  135. package/dist/css/themes/Tag.css +1 -1
  136. package/dist/css/themes/Text.css +1 -1
  137. package/dist/css/themes/TextArea.css +1 -1
  138. package/dist/css/themes/TimePicker.css +1 -1
  139. package/dist/css/themes/Toast.css +1 -1
  140. package/dist/css/themes/ToggleButton.css +1 -1
  141. package/dist/css/themes/Token.css +1 -1
  142. package/dist/css/themes/Tokenizer.css +1 -1
  143. package/dist/css/themes/TokenizerPopover.css +1 -1
  144. package/dist/css/themes/Toolbar.css +1 -1
  145. package/dist/css/themes/ToolbarPopover.css +1 -1
  146. package/dist/css/themes/ToolbarSelect.css +1 -0
  147. package/dist/css/themes/TreeItem.css +1 -1
  148. package/dist/css/themes/ValueStateMessage.css +1 -1
  149. package/dist/css/themes/YearPicker.css +1 -1
  150. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  151. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  152. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  153. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  154. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  155. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  156. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  157. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  158. package/dist/custom-elements-internal.json +104 -34
  159. package/dist/custom-elements.json +75 -34
  160. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  161. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  162. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  163. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  164. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  165. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  166. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  167. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  168. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  169. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  170. package/dist/generated/i18n/i18n-defaults.d.ts +3 -1
  171. package/dist/generated/i18n/i18n-defaults.js +3 -1
  172. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  173. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  174. package/dist/generated/themes/Avatar.css.js +1 -1
  175. package/dist/generated/themes/Avatar.css.js.map +1 -1
  176. package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
  177. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  178. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  179. package/dist/generated/themes/Bar.css.d.ts +1 -1
  180. package/dist/generated/themes/Bar.css.js +1 -1
  181. package/dist/generated/themes/Bar.css.js.map +1 -1
  182. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  183. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  184. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  185. package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
  186. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  187. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  188. package/dist/generated/themes/Button.css.d.ts +1 -1
  189. package/dist/generated/themes/Button.css.js +1 -1
  190. package/dist/generated/themes/Button.css.js.map +1 -1
  191. package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
  192. package/dist/generated/themes/ButtonBadge.css.js +1 -1
  193. package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
  194. package/dist/generated/themes/Calendar.css.d.ts +1 -1
  195. package/dist/generated/themes/Calendar.css.js +1 -1
  196. package/dist/generated/themes/Calendar.css.js.map +1 -1
  197. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  198. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  199. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  200. package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
  201. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  202. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  203. package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
  204. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  205. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  206. package/dist/generated/themes/Card.css.d.ts +1 -1
  207. package/dist/generated/themes/Card.css.js +1 -1
  208. package/dist/generated/themes/Card.css.js.map +1 -1
  209. package/dist/generated/themes/CardHeader.css.d.ts +1 -1
  210. package/dist/generated/themes/CardHeader.css.js +1 -1
  211. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  212. package/dist/generated/themes/Carousel.css.d.ts +1 -1
  213. package/dist/generated/themes/Carousel.css.js +1 -1
  214. package/dist/generated/themes/Carousel.css.js.map +1 -1
  215. package/dist/generated/themes/CheckBox.css.d.ts +1 -1
  216. package/dist/generated/themes/CheckBox.css.js +1 -1
  217. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  218. package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
  219. package/dist/generated/themes/ColorPalette.css.js +1 -1
  220. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  221. package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
  222. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  223. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  224. package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
  225. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  226. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  227. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  228. package/dist/generated/themes/ColorPicker.css.js +1 -1
  229. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  230. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  231. package/dist/generated/themes/ComboBox.css.js +1 -1
  232. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  233. package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
  234. package/dist/generated/themes/ComboBoxItem.css.js +1 -1
  235. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
  236. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  237. package/dist/generated/themes/DatePicker.css.js +1 -1
  238. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  239. package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
  240. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  241. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  242. package/dist/generated/themes/DayPicker.css.d.ts +1 -1
  243. package/dist/generated/themes/DayPicker.css.js +1 -1
  244. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  245. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  246. package/dist/generated/themes/Dialog.css.js +1 -1
  247. package/dist/generated/themes/Dialog.css.js.map +1 -1
  248. package/dist/generated/themes/FileUploader.css.d.ts +1 -1
  249. package/dist/generated/themes/FileUploader.css.js +1 -1
  250. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  251. package/dist/generated/themes/Form.css.d.ts +1 -1
  252. package/dist/generated/themes/Form.css.js +1 -1
  253. package/dist/generated/themes/Form.css.js.map +1 -1
  254. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  255. package/dist/generated/themes/FormItem.css.js +1 -1
  256. package/dist/generated/themes/FormItem.css.js.map +1 -1
  257. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  258. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  259. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  260. package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
  261. package/dist/generated/themes/GrowingButton.css.js +1 -1
  262. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  263. package/dist/generated/themes/Icon.css.d.ts +1 -1
  264. package/dist/generated/themes/Icon.css.js +1 -1
  265. package/dist/generated/themes/Icon.css.js.map +1 -1
  266. package/dist/generated/themes/Input.css.d.ts +1 -1
  267. package/dist/generated/themes/Input.css.js +1 -1
  268. package/dist/generated/themes/Input.css.js.map +1 -1
  269. package/dist/generated/themes/InputIcon.css.d.ts +1 -1
  270. package/dist/generated/themes/InputIcon.css.js +1 -1
  271. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  272. package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
  273. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  274. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  275. package/dist/generated/themes/Link.css.d.ts +1 -1
  276. package/dist/generated/themes/Link.css.js +1 -1
  277. package/dist/generated/themes/Link.css.js.map +1 -1
  278. package/dist/generated/themes/List.css.d.ts +1 -1
  279. package/dist/generated/themes/List.css.js +1 -1
  280. package/dist/generated/themes/List.css.js.map +1 -1
  281. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  282. package/dist/generated/themes/ListItem.css.js +1 -1
  283. package/dist/generated/themes/ListItem.css.js.map +1 -1
  284. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  285. package/dist/generated/themes/ListItemBase.css.js +1 -1
  286. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  287. package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
  288. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  289. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  290. package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
  291. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  292. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  293. package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
  294. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  295. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  296. package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
  297. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  298. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  299. package/dist/generated/themes/Menu.css.d.ts +1 -1
  300. package/dist/generated/themes/Menu.css.js +1 -1
  301. package/dist/generated/themes/Menu.css.js.map +1 -1
  302. package/dist/generated/themes/MenuItem.css.d.ts +1 -1
  303. package/dist/generated/themes/MenuItem.css.js +1 -1
  304. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  305. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  306. package/dist/generated/themes/MessageStrip.css.js +1 -1
  307. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  308. package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
  309. package/dist/generated/themes/MonthPicker.css.js +1 -1
  310. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  311. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  312. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  313. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  314. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
  315. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  316. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  317. package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
  318. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  319. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  320. package/dist/generated/themes/MultiInput.css.d.ts +1 -1
  321. package/dist/generated/themes/MultiInput.css.js +1 -1
  322. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  323. package/dist/generated/themes/OptionBase.css.d.ts +1 -1
  324. package/dist/generated/themes/OptionBase.css.js +1 -1
  325. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  326. package/dist/generated/themes/Panel.css.d.ts +1 -1
  327. package/dist/generated/themes/Panel.css.js +1 -1
  328. package/dist/generated/themes/Panel.css.js.map +1 -1
  329. package/dist/generated/themes/Popover.css.d.ts +1 -1
  330. package/dist/generated/themes/Popover.css.js +1 -1
  331. package/dist/generated/themes/Popover.css.js.map +1 -1
  332. package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
  333. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  334. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  335. package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
  336. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  337. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  338. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  339. package/dist/generated/themes/RadioButton.css.js +1 -1
  340. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  341. package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
  342. package/dist/generated/themes/RangeSlider.css.js +1 -1
  343. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  344. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  345. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  346. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  347. package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
  348. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  349. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  350. package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
  351. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  352. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  353. package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
  354. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  355. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  356. package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
  357. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  358. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  359. package/dist/generated/themes/Select.css.d.ts +1 -1
  360. package/dist/generated/themes/Select.css.js +1 -1
  361. package/dist/generated/themes/Select.css.js.map +1 -1
  362. package/dist/generated/themes/SliderBase.css.d.ts +1 -1
  363. package/dist/generated/themes/SliderBase.css.js +1 -1
  364. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  365. package/dist/generated/themes/SplitButton.css.d.ts +1 -1
  366. package/dist/generated/themes/SplitButton.css.js +1 -1
  367. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  368. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  369. package/dist/generated/themes/StepInput.css.js +1 -1
  370. package/dist/generated/themes/StepInput.css.js.map +1 -1
  371. package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
  372. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  373. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  374. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
  375. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  376. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  377. package/dist/generated/themes/Switch.css.d.ts +1 -1
  378. package/dist/generated/themes/Switch.css.js +1 -1
  379. package/dist/generated/themes/Switch.css.js.map +1 -1
  380. package/dist/generated/themes/TabContainer.css.d.ts +1 -1
  381. package/dist/generated/themes/TabContainer.css.js +1 -1
  382. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  383. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  384. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  385. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  386. package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
  387. package/dist/generated/themes/TabInStrip.css.js +1 -1
  388. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  389. package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
  390. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  391. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  392. package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
  393. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  394. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  395. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  396. package/dist/generated/themes/TableCellBase.css.js +1 -1
  397. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  398. package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
  399. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  400. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  401. package/dist/generated/themes/TableRow.css.d.ts +1 -1
  402. package/dist/generated/themes/TableRow.css.js +1 -1
  403. package/dist/generated/themes/TableRow.css.js.map +1 -1
  404. package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
  405. package/dist/generated/themes/TableRowActionBase.css.js +1 -1
  406. package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
  407. package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
  408. package/dist/generated/themes/TableRowBase.css.js +1 -1
  409. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  410. package/dist/generated/themes/Tag.css.d.ts +1 -1
  411. package/dist/generated/themes/Tag.css.js +1 -1
  412. package/dist/generated/themes/Tag.css.js.map +1 -1
  413. package/dist/generated/themes/Text.css.d.ts +1 -1
  414. package/dist/generated/themes/Text.css.js +1 -1
  415. package/dist/generated/themes/Text.css.js.map +1 -1
  416. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  417. package/dist/generated/themes/TextArea.css.js +1 -1
  418. package/dist/generated/themes/TextArea.css.js.map +1 -1
  419. package/dist/generated/themes/TimePicker.css.d.ts +1 -1
  420. package/dist/generated/themes/TimePicker.css.js +1 -1
  421. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  422. package/dist/generated/themes/Toast.css.d.ts +1 -1
  423. package/dist/generated/themes/Toast.css.js +1 -1
  424. package/dist/generated/themes/Toast.css.js.map +1 -1
  425. package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
  426. package/dist/generated/themes/ToggleButton.css.js +1 -1
  427. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  428. package/dist/generated/themes/Token.css.d.ts +1 -1
  429. package/dist/generated/themes/Token.css.js +1 -1
  430. package/dist/generated/themes/Token.css.js.map +1 -1
  431. package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
  432. package/dist/generated/themes/Tokenizer.css.js +1 -1
  433. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  434. package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
  435. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  436. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  437. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  438. package/dist/generated/themes/Toolbar.css.js +1 -1
  439. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  440. package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
  441. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  442. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  443. package/dist/generated/themes/ToolbarSelect.css.d.ts +2 -0
  444. package/dist/generated/themes/ToolbarSelect.css.js +8 -0
  445. package/dist/generated/themes/ToolbarSelect.css.js.map +1 -0
  446. package/dist/generated/themes/TreeItem.css.d.ts +1 -1
  447. package/dist/generated/themes/TreeItem.css.js +1 -1
  448. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  449. package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
  450. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  451. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  452. package/dist/generated/themes/YearPicker.css.d.ts +1 -1
  453. package/dist/generated/themes/YearPicker.css.js +1 -1
  454. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  455. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  456. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  457. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  458. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  459. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  460. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  461. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  462. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  463. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  464. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  465. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  466. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  467. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  468. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  469. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  470. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  471. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  472. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  473. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  474. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  475. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  476. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  477. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  478. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  479. package/dist/types/BarAccessibleRole.d.ts +18 -0
  480. package/dist/types/BarAccessibleRole.js +20 -0
  481. package/dist/types/BarAccessibleRole.js.map +1 -0
  482. package/dist/vscode.html-custom-data.json +40 -35
  483. package/dist/web-types.json +76 -63
  484. package/package.json +9 -9
  485. package/src/BarTemplate.tsx +2 -2
  486. package/src/CalendarHeaderTemplate.tsx +12 -0
  487. package/src/ColorPaletteItemTemplate.tsx +1 -0
  488. package/src/MenuItemTemplate.tsx +4 -1
  489. package/src/MenuTemplate.tsx +1 -0
  490. package/src/RangeSliderTemplate.tsx +2 -2
  491. package/src/SliderBaseTemplate.tsx +0 -7
  492. package/src/SliderTemplate.tsx +2 -2
  493. package/src/YearPickerTemplate.tsx +1 -1
  494. package/src/i18n/messagebundle.properties +6 -0
  495. package/src/i18n/messagebundle_en.properties +219 -0
  496. package/src/i18n/messagebundle_en_US_saprigi.properties +2 -0
  497. package/src/themes/Avatar.css +0 -1
  498. package/src/themes/CalendarHeader.css +10 -0
  499. package/src/themes/ColorPicker.css +0 -5
  500. package/src/themes/DayPicker.css +1 -1
  501. package/src/themes/Icon.css +1 -1
  502. package/src/themes/Switch.css +1 -1
  503. package/src/themes/TextArea.css +10 -8
  504. package/src/themes/ToolbarSelect.css +8 -0
  505. package/src/themes/base/Avatar-parameters.css +0 -3
  506. package/src/themes/base/Button-parameters.css +0 -8
  507. package/src/themes/base/CalendarHeader-parameters.css +0 -1
  508. package/src/themes/base/CalendarLegendItem-parameters.css +0 -1
  509. package/src/themes/base/CheckBox-parameters.css +0 -7
  510. package/src/themes/base/ColorPalette-parameters.css +0 -5
  511. package/src/themes/base/ColorPicker-parameters.css +0 -1
  512. package/src/themes/base/DatePicker-parameters.css +0 -3
  513. package/src/themes/base/DayPicker-parameters.css +0 -18
  514. package/src/themes/base/Input-parameters.css +0 -5
  515. package/src/themes/base/ListItemBase-parameters.css +0 -2
  516. package/src/themes/base/Menu-parameters.css +0 -1
  517. package/src/themes/base/MessageStrip-parameters.css +0 -10
  518. package/src/themes/base/Panel-parameters.css +0 -1
  519. package/src/themes/base/ProgressIndicator-parameters.css +0 -1
  520. package/src/themes/base/RadioButton-parameters.css +0 -1
  521. package/src/themes/base/SegmentedButtton-parameters.css +0 -3
  522. package/src/themes/base/SliderBase-parameters.css +0 -1
  523. package/src/themes/base/SplitButton-parameters.css +1 -14
  524. package/src/themes/base/Switch-parameters.css +0 -2
  525. package/src/themes/base/TabContainer-parameters.css +0 -4
  526. package/src/themes/base/Tag-parameters.css +0 -3
  527. package/src/themes/base/TextArea-parameters.css +0 -2
  528. package/src/themes/base/TimePicker-parameters.css +0 -1
  529. package/src/themes/base/TimelineItem-parameters.css +0 -5
  530. package/src/themes/base/ToggleButton-parameters.css +0 -6
  531. package/src/themes/base/Token-parameters.css +0 -5
  532. package/src/themes/base/YearPicker-parameters.css +0 -1
  533. package/src/themes/base/rtl-parameters.css +0 -4
  534. package/src/themes/base/sizes-parameters.css +0 -30
  535. package/src/themes/sap_fiori_3/Button-parameters.css +0 -4
  536. package/src/themes/sap_fiori_3/DayPicker-parameters.css +0 -1
  537. package/src/themes/sap_fiori_3/parameters-bundle.css +1 -2
  538. package/src/themes/sap_fiori_3_dark/Button-parameters.css +0 -4
  539. package/src/themes/sap_fiori_3_dark/parameters-bundle.css +0 -1
  540. package/src/themes/sap_fiori_3_hcb/Button-parameters.css +0 -2
  541. package/src/themes/sap_fiori_3_hcb/DayPicker-parameters.css +0 -1
  542. package/src/themes/sap_fiori_3_hcb/Input-parameters.css +0 -2
  543. package/src/themes/sap_fiori_3_hcb/MessageStrip-parameters.css +0 -3
  544. package/src/themes/sap_fiori_3_hcb/SliderBase-parameters.css +0 -1
  545. package/src/themes/sap_fiori_3_hcb/SplitButton-parameters.css +4 -9
  546. package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +3 -4
  547. package/src/themes/sap_fiori_3_hcb/sizes-parameters.css +0 -3
  548. package/src/themes/sap_fiori_3_hcw/Button-parameters.css +0 -2
  549. package/src/themes/sap_fiori_3_hcw/DayPicker-parameters.css +0 -1
  550. package/src/themes/sap_fiori_3_hcw/Input-parameters.css +0 -2
  551. package/src/themes/sap_fiori_3_hcw/MessageStrip-parameters.css +0 -3
  552. package/src/themes/sap_fiori_3_hcw/SliderBase-parameters.css +0 -1
  553. package/src/themes/sap_fiori_3_hcw/SplitButton-parameters.css +3 -8
  554. package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +4 -4
  555. package/src/themes/sap_fiori_3_hcw/sizes-parameters.css +0 -3
  556. package/src/themes/sap_horizon/Avatar-parameters.css +1 -2
  557. package/src/themes/sap_horizon/Button-parameters.css +0 -2
  558. package/src/themes/sap_horizon/CalendarHeader-parameters.css +0 -1
  559. package/src/themes/sap_horizon/ColorPalette-parameters.css +0 -5
  560. package/src/themes/sap_horizon/DatePicker-parameters.css +0 -1
  561. package/src/themes/sap_horizon/DayPicker-parameters.css +0 -5
  562. package/src/themes/sap_horizon/Panel-parameters.css +0 -1
  563. package/src/themes/sap_horizon/ProgressIndicatorLayout-parameters.css +0 -1
  564. package/src/themes/sap_horizon/SegmentedButtton-parameters.css +0 -3
  565. package/src/themes/sap_horizon/SplitButton-parameters.css +1 -5
  566. package/src/themes/sap_horizon/Switch-parameters.css +0 -2
  567. package/src/themes/sap_horizon/TabContainer-parameters.css +0 -1
  568. package/src/themes/sap_horizon/Tag-parameters.css +0 -2
  569. package/src/themes/sap_horizon/TimePicker-parameters.css +0 -1
  570. package/src/themes/sap_horizon/Token-parameters.css +0 -5
  571. package/src/themes/sap_horizon/parameters-bundle.css +2 -4
  572. package/src/themes/sap_horizon/sizes-parameters.css +0 -3
  573. package/src/themes/sap_horizon_dark/Avatar-parameters.css +1 -2
  574. package/src/themes/sap_horizon_dark/Button-parameters.css +0 -2
  575. package/src/themes/sap_horizon_dark/CalendarHeader-parameters.css +0 -1
  576. package/src/themes/sap_horizon_dark/ColorPalette-parameters.css +0 -5
  577. package/src/themes/sap_horizon_dark/DatePicker-parameters.css +0 -1
  578. package/src/themes/sap_horizon_dark/DayPicker-parameters.css +0 -5
  579. package/src/themes/sap_horizon_dark/Panel-parameters.css +0 -1
  580. package/src/themes/sap_horizon_dark/SegmentedButtton-parameters.css +0 -3
  581. package/src/themes/sap_horizon_dark/SplitButton-parameters.css +0 -4
  582. package/src/themes/sap_horizon_dark/Switch-parameters.css +0 -2
  583. package/src/themes/sap_horizon_dark/TabContainer-parameters.css +0 -1
  584. package/src/themes/sap_horizon_dark/Tag-parameters.css +0 -2
  585. package/src/themes/sap_horizon_dark/TimePicker-parameters.css +0 -1
  586. package/src/themes/sap_horizon_dark/Token-parameters.css +0 -5
  587. package/src/themes/sap_horizon_dark/parameters-bundle.css +2 -4
  588. package/src/themes/sap_horizon_dark/sizes-parameters.css +0 -3
  589. package/src/themes/sap_horizon_hcb/Avatar-parameters.css +1 -2
  590. package/src/themes/sap_horizon_hcb/CalendarHeader-parameters.css +0 -1
  591. package/src/themes/sap_horizon_hcb/DayPicker-parameters.css +0 -5
  592. package/src/themes/sap_horizon_hcb/Input-parameters.css +0 -2
  593. package/src/themes/sap_horizon_hcb/MessageStrip-parameters.css +0 -3
  594. package/src/themes/sap_horizon_hcb/Panel-parameters.css +0 -1
  595. package/src/themes/sap_horizon_hcb/SegmentedButtton-parameters.css +0 -6
  596. package/src/themes/sap_horizon_hcb/SplitButton-parameters.css +4 -9
  597. package/src/themes/sap_horizon_hcb/Switch-parameters.css +0 -2
  598. package/src/themes/sap_horizon_hcb/Tag-parameters.css +0 -2
  599. package/src/themes/sap_horizon_hcb/parameters-bundle.css +3 -4
  600. package/src/themes/sap_horizon_hcb/sizes-parameters.css +0 -3
  601. package/src/themes/sap_horizon_hcw/Avatar-parameters.css +1 -2
  602. package/src/themes/sap_horizon_hcw/CalendarHeader-parameters.css +0 -1
  603. package/src/themes/sap_horizon_hcw/DayPicker-parameters.css +0 -5
  604. package/src/themes/sap_horizon_hcw/Input-parameters.css +0 -2
  605. package/src/themes/sap_horizon_hcw/MessageStrip-parameters.css +0 -3
  606. package/src/themes/sap_horizon_hcw/Panel-parameters.css +0 -1
  607. package/src/themes/sap_horizon_hcw/SegmentedButtton-parameters.css +0 -6
  608. package/src/themes/sap_horizon_hcw/SplitButton-parameters.css +4 -9
  609. package/src/themes/sap_horizon_hcw/Switch-parameters.css +0 -2
  610. package/src/themes/sap_horizon_hcw/Tag-parameters.css +0 -3
  611. package/src/themes/sap_horizon_hcw/parameters-bundle.css +3 -4
  612. package/src/themes/sap_horizon_hcw/sizes-parameters.css +0 -3
  613. package/src/themes/base/MultiComboBox-parameters.css +0 -3
  614. package/src/themes/base/SelectPopover-parameters.css +0 -4
  615. package/src/themes/sap_fiori_3/MultiComboBox-parameters.css +0 -5
  616. package/src/themes/sap_fiori_3/TimePicker-parameters.css +0 -5
  617. package/src/themes/sap_fiori_3_dark/MultiComboBox-parameters.css +0 -5
  618. package/src/themes/sap_fiori_3_hcb/DatePicker-parameters.css +0 -5
  619. package/src/themes/sap_fiori_3_hcb/TimePicker-parameters.css +0 -5
  620. package/src/themes/sap_fiori_3_hcb/ToggleButton-parameters.css +0 -6
  621. package/src/themes/sap_fiori_3_hcw/DatePicker-parameters.css +0 -5
  622. package/src/themes/sap_fiori_3_hcw/TimePicker-parameters.css +0 -5
  623. package/src/themes/sap_fiori_3_hcw/ToggleButton-parameters.css +0 -6
  624. package/src/themes/sap_horizon/ListItemBase-parameters.css +0 -5
  625. package/src/themes/sap_horizon/MultiComboBox-parameters.css +0 -5
  626. package/src/themes/sap_horizon/SelectPopover-parameters.css +0 -4
  627. package/src/themes/sap_horizon/ToggleButton-parameters.css +0 -1
  628. package/src/themes/sap_horizon_dark/ListItemBase-parameters.css +0 -5
  629. package/src/themes/sap_horizon_dark/MultiComboBox-parameters.css +0 -5
  630. package/src/themes/sap_horizon_dark/SelectPopover-parameters.css +0 -4
  631. package/src/themes/sap_horizon_dark/ToggleButton-parameters.css +0 -1
  632. package/src/themes/sap_horizon_hcb/DatePicker-parameters.css +0 -5
  633. package/src/themes/sap_horizon_hcb/TimePicker-parameters.css +0 -5
  634. package/src/themes/sap_horizon_hcb/ToggleButton-parameters.css +0 -1
  635. package/src/themes/sap_horizon_hcw/DatePicker-parameters.css +0 -5
  636. package/src/themes/sap_horizon_hcw/TimePicker-parameters.css +0 -5
  637. package/src/themes/sap_horizon_hcw/ToggleButton-parameters.css +0 -1
package/dist/Bar.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import type BarDesign from "./types/BarDesign.js";
3
+ import type BarAccessibleRole from "./types/BarAccessibleRole.js";
3
4
  /**
4
5
  * @class
5
6
  *
@@ -44,6 +45,21 @@ declare class Bar extends UI5Element {
44
45
  * @public
45
46
  */
46
47
  design: `${BarDesign}`;
48
+ /**
49
+ * Specifies the ARIA role applied to the component for accessibility purposes.
50
+ *
51
+ * **Note:**
52
+ *
53
+ * - Set accessibleRole to "toolbar" only when the component contains two or more active, interactive elements (such as buttons, links, or input fields) within the bar.
54
+ *
55
+ * - If there is only one or no active element, it is recommended to avoid using the "toolbar" role, as it implies a grouping of multiple interactive controls.
56
+ *
57
+ * @public
58
+ * @default "Toolbar"
59
+ * @since 2.10.0
60
+ *
61
+ */
62
+ accessibleRole: `${BarAccessibleRole}`;
47
63
  /**
48
64
  * Defines the content at the start of the bar.
49
65
  * @public
@@ -62,10 +78,12 @@ declare class Bar extends UI5Element {
62
78
  _handleResizeBound: () => void;
63
79
  get accInfo(): {
64
80
  label: "Header" | "Subheader" | "Footer" | "FloatingFooter";
81
+ role: import("@ui5/webcomponents-base/dist/thirdparty/preact/jsx.js").JSXInternal.AriaRole | undefined;
65
82
  };
66
83
  constructor();
67
84
  handleResize(): void;
68
85
  onEnterDOM(): void;
69
86
  onExitDOM(): void;
87
+ get effectiveRole(): import("@ui5/webcomponents-base/dist/thirdparty/preact/jsx.js").JSXInternal.AriaRole | undefined;
70
88
  }
71
89
  export default Bar;
package/dist/Bar.js CHANGED
@@ -55,6 +55,7 @@ let Bar = class Bar extends UI5Element {
55
55
  get accInfo() {
56
56
  return {
57
57
  "label": this.design,
58
+ "role": this.effectiveRole,
58
59
  };
59
60
  }
60
61
  constructor() {
@@ -65,6 +66,21 @@ let Bar = class Bar extends UI5Element {
65
66
  * @public
66
67
  */
67
68
  this.design = "Header";
69
+ /**
70
+ * Specifies the ARIA role applied to the component for accessibility purposes.
71
+ *
72
+ * **Note:**
73
+ *
74
+ * - Set accessibleRole to "toolbar" only when the component contains two or more active, interactive elements (such as buttons, links, or input fields) within the bar.
75
+ *
76
+ * - If there is only one or no active element, it is recommended to avoid using the "toolbar" role, as it implies a grouping of multiple interactive controls.
77
+ *
78
+ * @public
79
+ * @default "Toolbar"
80
+ * @since 2.10.0
81
+ *
82
+ */
83
+ this.accessibleRole = "Toolbar";
68
84
  this._handleResizeBound = this.handleResize.bind(this);
69
85
  }
70
86
  handleResize() {
@@ -87,10 +103,16 @@ let Bar = class Bar extends UI5Element {
87
103
  ResizeHandler.deregister(child, this._handleResizeBound);
88
104
  }, this);
89
105
  }
106
+ get effectiveRole() {
107
+ return this.accessibleRole.toLowerCase() === "toolbar" ? "toolbar" : undefined;
108
+ }
90
109
  };
91
110
  __decorate([
92
111
  property()
93
112
  ], Bar.prototype, "design", void 0);
113
+ __decorate([
114
+ property()
115
+ ], Bar.prototype, "accessibleRole", void 0);
94
116
  __decorate([
95
117
  slot({ type: HTMLElement })
96
118
  ], Bar.prototype, "startContent", void 0);
package/dist/Bar.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Bar.js","sourceRoot":"","sources":["../src/Bar.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,aAAa,MAAM,wDAAwD,CAAC;AAGnF,WAAW;AACX,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAE3C,SAAS;AACT,OAAO,MAAM,MAAM,+BAA+B,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAQH,IAAM,GAAG,GAAT,MAAM,GAAI,SAAQ,UAAU;IAgC3B,IAAI,OAAO;QACV,OAAO;YACN,OAAO,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;IACH,CAAC;IAED;QACC,KAAK,EAAE,CAAC;QAtCT;;;;WAIG;QAEH,WAAM,GAAmB,QAAQ,CAAC;QAkCjC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,YAAY;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAG,CAAC;QAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC;QACjC,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC1D,OAAQ,KAAqB,CAAC,WAAW,GAAG,QAAQ,GAAG,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,uBAAuB,EAAE,YAAY,CAAC,CAAC;IAC7D,CAAC;IAED,UAAU;QACT,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAEtD,IAAI,CAAC,SAAS,EAAG,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAChF,aAAa,CAAC,QAAQ,CAAC,KAAoB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACvE,CAAC,EAAE,IAAI,CAAC,CAAC;IACV,CAAC;IAED,SAAS;QACR,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAExD,IAAI,CAAC,SAAS,EAAG,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAChF,aAAa,CAAC,UAAU,CAAC,KAAoB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACzE,CAAC,EAAE,IAAI,CAAC,CAAC;IACT,CAAC;CACF,CAAA;AA9DA;IADC,QAAQ,EAAE;mCACuB;AAOlC;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;yCACM;AAOlC;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;0CACX;AAOlC;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;uCACG;AA5B1B,GAAG;IAPR,aAAa,CAAC;QACd,GAAG,EAAE,SAAS;QACd,cAAc,EAAE,IAAI;QACpB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,WAAW;KACrB,CAAC;GACI,GAAG,CAqER;AAED,GAAG,CAAC,MAAM,EAAE,CAAC;AAEb,eAAe,GAAG,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type BarDesign from \"./types/BarDesign.js\";\n\n// Template\nimport BarTemplate from \"./BarTemplate.js\";\n\n// Styles\nimport BarCss from \"./generated/themes/Bar.css.js\";\n\n/**\n * @class\n *\n * ### Overview\n * The Bar is a container which is primarily used to hold titles, buttons and input elements\n * and its design and functionality is the basis for page headers and footers.\n * The component consists of three areas to hold its content - startContent slot, default slot and endContent slot.\n * It has the capability to center content, such as a title, while having other components on the left and right side.\n *\n * ### Usage\n * With the use of the design property, you can set the style of the Bar to appear designed like a Header, Subheader, Footer and FloatingFooter.\n *\n * **Note:** Do not place a Bar inside another Bar or inside any bar-like component. Doing so may cause unpredictable behavior.\n *\n * ### Responsive Behavior\n * The default slot will be centered in the available space between the startContent and the endContent areas,\n * therefore it might not always be centered in the entire bar.\n *\n * ### Keyboard Handling\n *\n * #### Fast Navigation\n * This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\n * In order to use this functionality, you need to import the following module:\n * `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Bar.js\";`\n * @csspart bar - Used to style the wrapper of the content of the component\n * @csspart startContent - Used to style the wrapper of the start content of the component\n * @csspart midContent - Used to style the wrapper of the middle content of the component\n * @csspart endContent - Used to style the wrapper of the end content of the component\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.0.0-rc.11\n */\n@customElement({\n\ttag: \"ui5-bar\",\n\tfastNavigation: true,\n\trenderer: jsxRenderer,\n\tstyles: BarCss,\n\ttemplate: BarTemplate,\n})\nclass Bar extends UI5Element {\n\t/**\n\t * Defines the component's design.\n\t * @default \"Header\"\n\t * @public\n\t */\n\t@property()\n\tdesign: `${BarDesign}` = \"Header\";\n\n\t/**\n\t* Defines the content at the start of the bar.\n\t* @public\n\t*/\n\t@slot({ type: HTMLElement })\n\tstartContent!: Array<HTMLElement>;\n\n\t/**\n\t* Defines the content in the middle of the bar.\n\t* @public\n\t*/\n\t@slot({ type: HTMLElement, \"default\": true })\n\tmiddleContent!: Array<HTMLElement>\n\n\t/**\n\t* Defines the content at the end of the bar.\n\t* @public\n\t*/\n\t@slot({ type: HTMLElement })\n\tendContent!: Array<HTMLElement>\n\n\t_handleResizeBound: () => void;\n\n\tget accInfo() {\n\t\treturn {\n\t\t\t\"label\": this.design,\n\t\t};\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._handleResizeBound = this.handleResize.bind(this);\n\t}\n\n\thandleResize() {\n\t\tconst bar = this.getDomRef()!;\n\t\tconst barWidth = bar.offsetWidth;\n\t\tconst needShrinked = Array.from(bar.children).some(child => {\n\t\t\treturn (child as HTMLElement).offsetWidth > barWidth / 3;\n\t\t});\n\n\t\tbar.classList.toggle(\"ui5-bar-root-shrinked\", needShrinked);\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._handleResizeBound);\n\n\t\tthis.getDomRef()!.querySelectorAll(\".ui5-bar-content-container\").forEach(child => {\n\t\t\tResizeHandler.register(child as HTMLElement, this._handleResizeBound);\n\t\t}, this);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._handleResizeBound);\n\n\t\tthis.getDomRef()!.querySelectorAll(\".ui5-bar-content-container\").forEach(child => {\n\t\t\tResizeHandler.deregister(child as HTMLElement, this._handleResizeBound);\n\t\t}, this);\n\t }\n}\n\nBar.define();\n\nexport default Bar;\n"]}
1
+ {"version":3,"file":"Bar.js","sourceRoot":"","sources":["../src/Bar.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type BarDesign from \"./types/BarDesign.js\";\nimport type BarAccessibleRole from \"./types/BarAccessibleRole.js\";\n\n// Template\nimport BarTemplate from \"./BarTemplate.js\";\n\n// Styles\nimport BarCss from \"./generated/themes/Bar.css.js\";\nimport type { AriaRole } from \"@ui5/webcomponents-base/dist/types.js\";\n\n/**\n * @class\n *\n * ### Overview\n * The Bar is a container which is primarily used to hold titles, buttons and input elements\n * and its design and functionality is the basis for page headers and footers.\n * The component consists of three areas to hold its content - startContent slot, default slot and endContent slot.\n * It has the capability to center content, such as a title, while having other components on the left and right side.\n *\n * ### Usage\n * With the use of the design property, you can set the style of the Bar to appear designed like a Header, Subheader, Footer and FloatingFooter.\n *\n * **Note:** Do not place a Bar inside another Bar or inside any bar-like component. Doing so may cause unpredictable behavior.\n *\n * ### Responsive Behavior\n * The default slot will be centered in the available space between the startContent and the endContent areas,\n * therefore it might not always be centered in the entire bar.\n *\n * ### Keyboard Handling\n *\n * #### Fast Navigation\n * This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\n * In order to use this functionality, you need to import the following module:\n * `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Bar.js\";`\n * @csspart bar - Used to style the wrapper of the content of the component\n * @csspart startContent - Used to style the wrapper of the start content of the component\n * @csspart midContent - Used to style the wrapper of the middle content of the component\n * @csspart endContent - Used to style the wrapper of the end content of the component\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.0.0-rc.11\n */\n@customElement({\n\ttag: \"ui5-bar\",\n\tfastNavigation: true,\n\trenderer: jsxRenderer,\n\tstyles: BarCss,\n\ttemplate: BarTemplate,\n})\nclass Bar extends UI5Element {\n\t/**\n\t * Defines the component's design.\n\t * @default \"Header\"\n\t * @public\n\t */\n\t@property()\n\tdesign: `${BarDesign}` = \"Header\";\n\n\t/**\n\t * Specifies the ARIA role applied to the component for accessibility purposes.\n\t *\n\t * **Note:**\n\t *\n\t * - Set accessibleRole to \"toolbar\" only when the component contains two or more active, interactive elements (such as buttons, links, or input fields) within the bar.\n\t *\n\t * - If there is only one or no active element, it is recommended to avoid using the \"toolbar\" role, as it implies a grouping of multiple interactive controls.\n\t *\n\t * @public\n\t * @default \"Toolbar\"\n\t * @since 2.10.0\n\t *\n\t */\n\t@property()\n\taccessibleRole: `${BarAccessibleRole}` = \"Toolbar\";\n\n\t/**\n\t* Defines the content at the start of the bar.\n\t* @public\n\t*/\n\t@slot({ type: HTMLElement })\n\tstartContent!: Array<HTMLElement>;\n\n\t/**\n\t* Defines the content in the middle of the bar.\n\t* @public\n\t*/\n\t@slot({ type: HTMLElement, \"default\": true })\n\tmiddleContent!: Array<HTMLElement>\n\n\t/**\n\t* Defines the content at the end of the bar.\n\t* @public\n\t*/\n\t@slot({ type: HTMLElement })\n\tendContent!: Array<HTMLElement>\n\n\t_handleResizeBound: () => void;\n\n\tget accInfo() {\n\t\treturn {\n\t\t\t\"label\": this.design,\n\t\t\t\"role\": this.effectiveRole,\n\t\t};\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._handleResizeBound = this.handleResize.bind(this);\n\t}\n\n\thandleResize() {\n\t\tconst bar = this.getDomRef()!;\n\t\tconst barWidth = bar.offsetWidth;\n\t\tconst needShrinked = Array.from(bar.children).some(child => {\n\t\t\treturn (child as HTMLElement).offsetWidth > barWidth / 3;\n\t\t});\n\n\t\tbar.classList.toggle(\"ui5-bar-root-shrinked\", needShrinked);\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._handleResizeBound);\n\n\t\tthis.getDomRef()!.querySelectorAll(\".ui5-bar-content-container\").forEach(child => {\n\t\t\tResizeHandler.register(child as HTMLElement, this._handleResizeBound);\n\t\t}, this);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._handleResizeBound);\n\n\t\tthis.getDomRef()!.querySelectorAll(\".ui5-bar-content-container\").forEach(child => {\n\t\t\tResizeHandler.deregister(child as HTMLElement, this._handleResizeBound);\n\t\t}, this);\n\t }\n\n\t get effectiveRole() {\n\t\treturn this.accessibleRole.toLowerCase() === \"toolbar\" ? \"toolbar\" as AriaRole : undefined;\n\t }\n}\n\nBar.define();\n\nexport default Bar;\n"]}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
2
2
  export default function BarTemplate() {
3
- return (_jsxs("div", { class: "ui5-bar-root", "aria-label": this.accInfo.label, role: "toolbar", part: "bar", children: [_jsx("div", { class: "ui5-bar-content-container ui5-bar-startcontent-container", part: "startContent", children: _jsx("slot", { name: "startContent" }) }), _jsx("div", { class: "ui5-bar-content-container ui5-bar-midcontent-container", part: "midContent", children: _jsx("slot", {}) }), _jsx("div", { class: "ui5-bar-content-container ui5-bar-endcontent-container", part: "endContent", children: _jsx("slot", { name: "endContent" }) })] }));
3
+ return (_jsxs("div", { class: "ui5-bar-root", "aria-label": this.accInfo.role && this.accInfo.label, role: this.accInfo.role, part: "bar", children: [_jsx("div", { class: "ui5-bar-content-container ui5-bar-startcontent-container", part: "startContent", children: _jsx("slot", { name: "startContent" }) }), _jsx("div", { class: "ui5-bar-content-container ui5-bar-midcontent-container", part: "midContent", children: _jsx("slot", {}) }), _jsx("div", { class: "ui5-bar-content-container ui5-bar-endcontent-container", part: "endContent", children: _jsx("slot", { name: "endContent" }) })] }));
4
4
  }
5
5
  //# sourceMappingURL=BarTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BarTemplate.js","sourceRoot":"","sources":["../src/BarTemplate.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,OAAO,UAAU,WAAW;IAClC,OAAO,CACN,eACC,KAAK,EAAC,cAAc,gBACR,IAAI,CAAC,OAAO,CAAC,KAAK,EAC9B,IAAI,EAAC,SAAS,EACd,IAAI,EAAC,KAAK,aAEV,cAAK,KAAK,EAAC,0DAA0D,EAAC,IAAI,EAAC,cAAc,YACxF,eAAM,IAAI,EAAC,cAAc,GAAQ,GAC5B,EACN,cAAK,KAAK,EAAC,wDAAwD,EAAC,IAAI,EAAC,YAAY,YACpF,gBAAa,GACR,EACN,cAAK,KAAK,EAAC,wDAAwD,EAAC,IAAI,EAAC,YAAY,YACpF,eAAM,IAAI,EAAC,YAAY,GAAQ,GAC1B,IACD,CAAC,CAAC;AACV,CAAC","sourcesContent":["import type Bar from \"./Bar.js\";\n\nexport default function BarTemplate(this: Bar) {\n\treturn (\n\t\t<div\n\t\t\tclass=\"ui5-bar-root\"\n\t\t\taria-label={this.accInfo.label}\n\t\t\trole=\"toolbar\"\n\t\t\tpart=\"bar\"\n\t\t>\n\t\t\t<div class=\"ui5-bar-content-container ui5-bar-startcontent-container\" part=\"startContent\">\n\t\t\t\t<slot name=\"startContent\"></slot>\n\t\t\t</div>\n\t\t\t<div class=\"ui5-bar-content-container ui5-bar-midcontent-container\" part=\"midContent\">\n\t\t\t\t<slot></slot>\n\t\t\t</div>\n\t\t\t<div class=\"ui5-bar-content-container ui5-bar-endcontent-container\" part=\"endContent\">\n\t\t\t\t<slot name=\"endContent\"></slot>\n\t\t\t</div>\n\t\t</div>);\n}\n"]}
1
+ {"version":3,"file":"BarTemplate.js","sourceRoot":"","sources":["../src/BarTemplate.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,OAAO,UAAU,WAAW;IAClC,OAAO,CACN,eACC,KAAK,EAAC,cAAc,gBACR,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EACnD,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EACvB,IAAI,EAAC,KAAK,aAEV,cAAK,KAAK,EAAC,0DAA0D,EAAC,IAAI,EAAC,cAAc,YACxF,eAAM,IAAI,EAAC,cAAc,GAAQ,GAC5B,EACN,cAAK,KAAK,EAAC,wDAAwD,EAAC,IAAI,EAAC,YAAY,YACpF,gBAAa,GACR,EACN,cAAK,KAAK,EAAC,wDAAwD,EAAC,IAAI,EAAC,YAAY,YACpF,eAAM,IAAI,EAAC,YAAY,GAAQ,GAC1B,IACD,CAAC,CAAC;AACV,CAAC","sourcesContent":["import type Bar from \"./Bar.js\";\n\nexport default function BarTemplate(this: Bar) {\n\treturn (\n\t\t<div\n\t\t\tclass=\"ui5-bar-root\"\n\t\t\taria-label={this.accInfo.role && this.accInfo.label}\n\t\t\trole={this.accInfo.role}\n\t\t\tpart=\"bar\"\n\t\t>\n\t\t\t<div class=\"ui5-bar-content-container ui5-bar-startcontent-container\" part=\"startContent\">\n\t\t\t\t<slot name=\"startContent\"></slot>\n\t\t\t</div>\n\t\t\t<div class=\"ui5-bar-content-container ui5-bar-midcontent-container\" part=\"midContent\">\n\t\t\t\t<slot></slot>\n\t\t\t</div>\n\t\t\t<div class=\"ui5-bar-content-container ui5-bar-endcontent-container\" part=\"endContent\">\n\t\t\t\t<slot name=\"endContent\"></slot>\n\t\t\t</div>\n\t\t</div>);\n}\n"]}
package/dist/Button.d.ts CHANGED
@@ -255,8 +255,9 @@ declare class Button extends UI5Element implements IButton {
255
255
  get buttonTypeText(): string;
256
256
  get effectiveAccRole(): AriaRole;
257
257
  get tabIndexValue(): number | undefined;
258
- get ariaLabelText(): string | undefined;
258
+ get ariaLabelText(): string;
259
259
  get ariaDescriptionText(): string | undefined;
260
+ get effectiveBadgeDescriptionText(): string;
260
261
  get _isSubmit(): boolean;
261
262
  get _isReset(): boolean;
262
263
  get shouldRenderBadge(): boolean;
package/dist/Button.js CHANGED
@@ -24,7 +24,7 @@ import ButtonDesign from "./types/ButtonDesign.js";
24
24
  import ButtonType from "./types/ButtonType.js";
25
25
  import ButtonBadgeDesign from "./types/ButtonBadgeDesign.js";
26
26
  import ButtonTemplate from "./ButtonTemplate.js";
27
- import { BUTTON_ARIA_TYPE_ACCEPT, BUTTON_ARIA_TYPE_REJECT, BUTTON_ARIA_TYPE_EMPHASIZED, BUTTON_ARIA_TYPE_ATTENTION, } from "./generated/i18n/i18n-defaults.js";
27
+ import { BUTTON_ARIA_TYPE_ACCEPT, BUTTON_ARIA_TYPE_REJECT, BUTTON_ARIA_TYPE_EMPHASIZED, BUTTON_ARIA_TYPE_ATTENTION, BUTTON_BADGE_ONE_ITEM, BUTTON_BADGE_MANY_ITEMS, } from "./generated/i18n/i18n-defaults.js";
28
28
  // Styles
29
29
  import buttonCss from "./generated/themes/Button.css.js";
30
30
  let isGlobalHandlerAttached = false;
@@ -323,13 +323,31 @@ let Button = Button_1 = class Button extends UI5Element {
323
323
  return this.nonInteractive ? -1 : Number.parseInt(this.forcedTabIndex);
324
324
  }
325
325
  get ariaLabelText() {
326
- return getEffectiveAriaLabelText(this);
326
+ const ariaLabelText = getEffectiveAriaLabelText(this) || "";
327
+ const typeLabelText = this.hasButtonType ? this.buttonTypeText : "";
328
+ const internalLabelText = this.effectiveBadgeDescriptionText || "";
329
+ const labelParts = [ariaLabelText, typeLabelText, internalLabelText].filter(part => part);
330
+ return labelParts.join(" ");
327
331
  }
328
332
  get ariaDescriptionText() {
329
- const ariaDescribedByText = this.hasButtonType ? this.buttonTypeText : "";
330
- const accessibleDescription = this.accessibleDescription || "";
331
- const ariaDescriptionText = `${ariaDescribedByText} ${accessibleDescription}`.trim();
332
- return ariaDescriptionText || undefined;
333
+ return this.accessibleDescription === "" ? undefined : this.accessibleDescription;
334
+ }
335
+ get effectiveBadgeDescriptionText() {
336
+ if (!this.shouldRenderBadge) {
337
+ return "";
338
+ }
339
+ const badgeEffectiveText = this.badge[0].effectiveText;
340
+ // Use distinct i18n keys for singular and plural badge values to ensure proper localization.
341
+ // Some languages have different grammatical rules for singular and plural forms,
342
+ // so separate keys (BUTTON_BADGE_ONE_ITEM and BUTTON_BADGE_MANY_ITEMS) are necessary.
343
+ switch (badgeEffectiveText) {
344
+ case "":
345
+ return badgeEffectiveText;
346
+ case "1":
347
+ return Button_1.i18nBundle.getText(BUTTON_BADGE_ONE_ITEM, badgeEffectiveText);
348
+ default:
349
+ return Button_1.i18nBundle.getText(BUTTON_BADGE_MANY_ITEMS, badgeEffectiveText);
350
+ }
333
351
  }
334
352
  get _isSubmit() {
335
353
  return this.type === ButtonType.Submit || this.submits;
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../src/Button.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport {\n\tisSpace,\n\tisEnter,\n\tisEscape,\n\tisShift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport type { AccessibilityAttributes, AriaRole } from \"@ui5/webcomponents-base\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { I18nText } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getIconAccessibleName } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nimport {\n\tisDesktop,\n\tisSafari,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport willShowContent from \"@ui5/webcomponents-base/dist/util/willShowContent.js\";\nimport { submitForm, resetForm } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport { getEnableDefaultTooltips } from \"@ui5/webcomponents-base/dist/config/Tooltips.js\";\nimport toLowercaseEnumValue from \"@ui5/webcomponents-base/dist/util/toLowercaseEnumValue.js\";\nimport ButtonDesign from \"./types/ButtonDesign.js\";\nimport ButtonType from \"./types/ButtonType.js\";\nimport ButtonBadgeDesign from \"./types/ButtonBadgeDesign.js\";\nimport type ButtonAccessibleRole from \"./types/ButtonAccessibleRole.js\";\nimport type ButtonBadge from \"./ButtonBadge.js\";\nimport ButtonTemplate from \"./ButtonTemplate.js\";\nimport {\n\tBUTTON_ARIA_TYPE_ACCEPT,\n\tBUTTON_ARIA_TYPE_REJECT,\n\tBUTTON_ARIA_TYPE_EMPHASIZED,\n\tBUTTON_ARIA_TYPE_ATTENTION,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport buttonCss from \"./generated/themes/Button.css.js\";\n\n/**\n * Interface for components that may be used as a button inside numerous higher-order components\n * @public\n */\ninterface IButton extends HTMLElement, ITabbable {\n\tnonInteractive: boolean;\n}\n\nlet isGlobalHandlerAttached = false;\nlet activeButton: Button | null = null;\n\ntype ButtonAccessibilityAttributes = Pick<AccessibilityAttributes, \"expanded\" | \"hasPopup\" | \"controls\">;\n\ntype ButtonClickEventDetail = {\n\toriginalEvent: MouseEvent,\n\taltKey: boolean;\n\tctrlKey: boolean;\n\tmetaKey: boolean;\n\tshiftKey: boolean;\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-button` component represents a simple push button.\n * It enables users to trigger actions by clicking or tapping the `ui5-button`, or by pressing\n * certain keyboard keys, such as Enter.\n *\n * ### Usage\n *\n * For the `ui5-button` UI, you can define text, icon, or both. You can also specify\n * whether the text or the icon is displayed first.\n *\n * You can choose from a set of predefined types that offer different\n * styling to correspond to the triggered action.\n *\n * You can set the `ui5-button` as enabled or disabled. An enabled\n * `ui5-button` can be pressed by clicking or tapping it. The button changes\n * its style to provide visual feedback to the user that it is pressed or hovered over with\n * the mouse cursor. A disabled `ui5-button` appears inactive and cannot be pressed.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Button.js\";`\n * @csspart button - Used to style the native button element\n * @csspart icon - Used to style the icon in the native button element\n * @csspart endIcon - Used to style the end icon in the native button element\n * @constructor\n * @extends UI5Element\n * @implements { IButton }\n * @public\n */\n@customElement({\n\ttag: \"ui5-button\",\n\tformAssociated: true,\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: ButtonTemplate,\n\tstyles: buttonCss,\n\tshadowRootOptions: { delegatesFocus: true },\n})\n/**\n * Fired when the component is activated either with a mouse/tap or by using the Enter or Space key.\n *\n * **Note:** The event will not be fired if the `disabled` property is set to `true`.\n *\n * @since 2.10.0\n * @public\n * @param {Event} originalEvent Returns original event that comes from user's **click** interaction\n * @param {boolean} altKey Returns whether the \"ALT\" key was pressed when the event was triggered.\n * @param {boolean} ctrlKey Returns whether the \"CTRL\" key was pressed when the event was triggered.\n * @param {boolean} metaKey Returns whether the \"META\" key was pressed when the event was triggered.\n * @param {boolean} shiftKey Returns whether the \"SHIFT\" key was pressed when the event was triggered.\n */\n@event(\"click\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n/**\n * Fired whenever the active state of the component changes.\n * @private\n */\n@event(\"active-state-change\", {\n\tbubbles: true,\n\tcancelable: true,\n})\nclass Button extends UI5Element implements IButton {\n\teventDetails!: {\n\t\t\"click\": ButtonClickEventDetail,\n\t\t\"active-state-change\": void,\n\t};\n\n\t/**\n\t * Defines the component design.\n\t * @default \"Default\"\n\t * @public\n\t */\n\t@property()\n\tdesign: `${ButtonDesign}` = \"Default\";\n\n\t/**\n\t * Defines whether the component is disabled.\n\t * A disabled component can't be pressed or\n\t * focused, and it is not in the tab chain.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines the icon, displayed as graphical element within the component.\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * Example:\n\t * See all the available icons within the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ticon?: string;\n\n\t/**\n\t * Defines the icon, displayed as graphical element within the component after the button text.\n\t *\n\t * **Note:** It is highly recommended to use `endIcon` property only together with `icon` and/or `text` properties.\n\t * Usage of `endIcon` only should be avoided.\n\t *\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * Example:\n\t * See all the available icons within the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tendIcon?: string;\n\n\t/**\n\t * When set to `true`, the component will\n\t * automatically submit the nearest HTML form element on `press`.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.`\n\t * @default false\n\t * @public\n\t * @deprecated Set the \"type\" property to \"Submit\" to achieve the same result. The \"submits\" property is ignored if \"type\" is set to any value other than \"Button\".\n\t */\n\t@property({ type: Boolean })\n\tsubmits = false;\n\n\t/**\n\t * Defines the tooltip of the component.\n\t *\n\t * **Note:** A tooltip attribute should be provided for icon-only buttons, in order to represent their exact meaning/function.\n\t * @default undefined\n\t * @public\n\t * @since 1.2.0\n\t */\n\t@property()\n\ttooltip?: string;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.1.0\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the additional accessibility attributes that will be applied to the component.\n\t * The following fields are supported:\n\t *\n\t * - **expanded**: Indicates whether the button, or another grouping element it controls, is currently expanded or collapsed.\n\t * Accepts the following string values: `true` or `false`\n\t *\n\t * - **hasPopup**: Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by the button.\n\t * Accepts the following string values: `dialog`, `grid`, `listbox`, `menu` or `tree`.\n\t *\n\t * - **controls**: Identifies the element (or elements) whose contents or presence are controlled by the button element.\n\t * Accepts a lowercase string value.\n\t *\n\t * @public\n\t * @since 1.2.0\n\t * @default {}\n\t */\n\t@property({ type: Object })\n\taccessibilityAttributes: ButtonAccessibilityAttributes = {};\n\n\t/**\n\t * Defines the accessible description of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.5.0\n\t */\n\t@property()\n\taccessibleDescription?: string;\n\n\t/**\n\t * Defines whether the button has special form-related functionality.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.\n\t * @default \"Button\"\n\t * @public\n\t * @since 1.15.0\n\t */\n\t@property()\n\ttype: `${ButtonType}` = \"Button\";\n\n\t/**\n\t * Describes the accessibility role of the button.\n\t *\n\t * **Note:** Use <code>ButtonAccessibleRole.Link</code> role only with a press handler, which performs a navigation. In all other scenarios the default button semantics are recommended.\n\t *\n\t * @default \"Button\"\n\t * @public\n\t * @since 1.23\n\t */\n\t@property()\n\taccessibleRole: `${ButtonAccessibleRole}` = \"Button\";\n\n\t/**\n\t * Used to switch the active state (pressed or not) of the component.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tactive = false;\n\n\t/**\n\t * Defines if a content has been added to the default slot\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\ticonOnly = false;\n\n\t/**\n\t * Indicates if the elements has a slotted icon\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thasIcon = false;\n\n\t/**\n\t * Indicates if the elements has a slotted end icon\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thasEndIcon = false;\n\n\t/**\n\t * Indicates if the element is focusable\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tnonInteractive = false;\n\n\t/**\n\t * The current title of the button, either the tooltip property or the icons tooltip. The tooltip property with higher prio.\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\tbuttonTitle?: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_iconSettings: object = {};\n\n\t/**\n\t * Defines the tabIndex of the component.\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\tforcedTabIndex = \"0\";\n\n\t/**\n\t * @since 1.0.0-rc.13\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_isTouch = false;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_cancelAction = false;\n\n\t/**\n\t * Defines the text of the component.\n\t *\n\t * **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n\t * @public\n\t */\n\t@slot({ type: Node, \"default\": true })\n\ttext!: Array<Node>;\n\n\t/**\n\t * Adds a badge to the button.\n\t * @since 2.7.0\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true })\n\tbadge!: Array<ButtonBadge>;\n\n\t_deactivate: () => void;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._deactivate = () => {\n\t\t\tif (activeButton) {\n\t\t\t\tactiveButton._setActiveState(false);\n\t\t\t}\n\t\t};\n\n\t\tif (!isGlobalHandlerAttached) {\n\t\t\tdocument.addEventListener(\"mouseup\", this._deactivate);\n\n\t\t\tisGlobalHandlerAttached = true;\n\t\t}\n\t}\n\n\t_ontouchstart() {\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._setActiveState(true);\n\t}\n\n\tonEnterDOM() {\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tasync onBeforeRendering() {\n\t\tthis._setBadgeOverlayStyle();\n\n\t\tthis.hasIcon = !!this.icon;\n\t\tthis.hasEndIcon = !!this.endIcon;\n\t\tthis.iconOnly = this.isIconOnly;\n\n\t\tconst defaultTooltip = await this.getDefaultTooltip();\n\t\tthis.buttonTitle = this.iconOnly ? this.tooltip ?? defaultTooltip : this.tooltip;\n\t}\n\n\t_setBadgeOverlayStyle() {\n\t\tconst needsOverflowVisible = this.badge.length && (this.badge[0].design === ButtonBadgeDesign.AttentionDot || this.badge[0].design === ButtonBadgeDesign.OverlayText);\n\n\t\tif (needsOverflowVisible) {\n\t\t\tthis._internals.states.add(\"has-overlay-badge\");\n\t\t} else {\n\t\t\tthis._internals.states.delete(\"has-overlay-badge\");\n\t\t}\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\te.stopImmediatePropagation();\n\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst {\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t} = e;\n\n\t\tconst prevented = !this.fireDecoratorEvent(\"click\", {\n\t\t\toriginalEvent: e,\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t});\n\n\t\tif (prevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isSubmit) {\n\t\t\tsubmitForm(this);\n\t\t}\n\n\t\tif (this._isReset) {\n\t\t\tresetForm(this);\n\t\t}\n\n\t\tif (isSafari()) {\n\t\t\tthis.getDomRef()?.focus();\n\t\t}\n\t}\n\n\t_onmousedown() {\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._setActiveState(true);\n\t\tactiveButton = this; // eslint-disable-line\n\t}\n\n\t_ontouchend(e: TouchEvent) {\n\t\tif (this.disabled) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\tif (this.active) {\n\t\t\tthis._setActiveState(false);\n\t\t}\n\n\t\tif (activeButton) {\n\t\t\tactiveButton._setActiveState(false);\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tthis._cancelAction = isShift(e) || isEscape(e);\n\n\t\tif (isSpace(e) || isEnter(e)) {\n\t\t\tthis._setActiveState(true);\n\t\t} else if (this._cancelAction) {\n\t\t\tthis._setActiveState(false);\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (this._cancelAction) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isSpace(e) || isEnter(e)) {\n\t\t\tif (this.active) {\n\t\t\t\tthis._setActiveState(false);\n\t\t\t}\n\t\t}\n\t}\n\n\t_onfocusout() {\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.active) {\n\t\t\tthis._setActiveState(false);\n\t\t}\n\t}\n\n\t_setActiveState(active: boolean) {\n\t\tconst eventPrevented = !this.fireDecoratorEvent(\"active-state-change\");\n\n\t\tif (eventPrevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.active = active;\n\t}\n\n\tget _hasPopup() {\n\t\treturn this.accessibilityAttributes.hasPopup;\n\t}\n\n\tget hasButtonType() {\n\t\treturn this.design !== ButtonDesign.Default && this.design !== ButtonDesign.Transparent;\n\t}\n\n\tget isIconOnly() {\n\t\treturn !willShowContent(this.text);\n\t}\n\n\tstatic typeTextMappings(): Record<string, I18nText> {\n\t\treturn {\n\t\t\t\"Positive\": BUTTON_ARIA_TYPE_ACCEPT,\n\t\t\t\"Negative\": BUTTON_ARIA_TYPE_REJECT,\n\t\t\t\"Emphasized\": BUTTON_ARIA_TYPE_EMPHASIZED,\n\t\t\t\"Attention\": BUTTON_ARIA_TYPE_ATTENTION,\n\t\t};\n\t}\n\n\tgetDefaultTooltip() {\n\t\tif (!getEnableDefaultTooltips()) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn getIconAccessibleName(this.icon);\n\t}\n\n\tget buttonTypeText() {\n\t\treturn Button.i18nBundle.getText(Button.typeTextMappings()[this.design]);\n\t}\n\n\tget effectiveAccRole(): AriaRole {\n\t\treturn toLowercaseEnumValue(this.accessibleRole);\n\t}\n\n\tget tabIndexValue() {\n\t\tif (this.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tabindex = this.getAttribute(\"tabindex\");\n\n\t\tif (tabindex) {\n\t\t\treturn Number.parseInt(tabindex);\n\t\t}\n\n\t\treturn this.nonInteractive ? -1 : Number.parseInt(this.forcedTabIndex);\n\t}\n\n\tget ariaLabelText() {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget ariaDescriptionText() {\n\t\tconst ariaDescribedByText = this.hasButtonType ? this.buttonTypeText : \"\";\n\t\tconst accessibleDescription = this.accessibleDescription || \"\";\n\t\tconst ariaDescriptionText = `${ariaDescribedByText} ${accessibleDescription}`.trim();\n\n\t\treturn ariaDescriptionText || undefined;\n\t}\n\n\tget _isSubmit() {\n\t\treturn this.type === ButtonType.Submit || this.submits;\n\t}\n\n\tget _isReset() {\n\t\treturn this.type === ButtonType.Reset;\n\t}\n\n\tget shouldRenderBadge() {\n\t\treturn !!this.badge.length && (!!this.badge[0].text.length || this.badge[0].design === ButtonBadgeDesign.AttentionDot);\n\t}\n}\n\nButton.define();\n\nexport default Button;\nexport type {\n\tButtonAccessibilityAttributes,\n\tButtonClickEventDetail,\n\tIButton,\n};\n"]}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../src/Button.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport {\n\tisSpace,\n\tisEnter,\n\tisEscape,\n\tisShift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport type { AccessibilityAttributes, AriaRole } from \"@ui5/webcomponents-base\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { I18nText } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getIconAccessibleName } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nimport {\n\tisDesktop,\n\tisSafari,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport willShowContent from \"@ui5/webcomponents-base/dist/util/willShowContent.js\";\nimport { submitForm, resetForm } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport { getEnableDefaultTooltips } from \"@ui5/webcomponents-base/dist/config/Tooltips.js\";\nimport toLowercaseEnumValue from \"@ui5/webcomponents-base/dist/util/toLowercaseEnumValue.js\";\nimport ButtonDesign from \"./types/ButtonDesign.js\";\nimport ButtonType from \"./types/ButtonType.js\";\nimport ButtonBadgeDesign from \"./types/ButtonBadgeDesign.js\";\nimport type ButtonAccessibleRole from \"./types/ButtonAccessibleRole.js\";\nimport type ButtonBadge from \"./ButtonBadge.js\";\nimport ButtonTemplate from \"./ButtonTemplate.js\";\nimport {\n\tBUTTON_ARIA_TYPE_ACCEPT,\n\tBUTTON_ARIA_TYPE_REJECT,\n\tBUTTON_ARIA_TYPE_EMPHASIZED,\n\tBUTTON_ARIA_TYPE_ATTENTION,\n\tBUTTON_BADGE_ONE_ITEM,\n\tBUTTON_BADGE_MANY_ITEMS,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport buttonCss from \"./generated/themes/Button.css.js\";\n\n/**\n * Interface for components that may be used as a button inside numerous higher-order components\n * @public\n */\ninterface IButton extends HTMLElement, ITabbable {\n\tnonInteractive: boolean;\n}\n\nlet isGlobalHandlerAttached = false;\nlet activeButton: Button | null = null;\n\ntype ButtonAccessibilityAttributes = Pick<AccessibilityAttributes, \"expanded\" | \"hasPopup\" | \"controls\">;\n\ntype ButtonClickEventDetail = {\n\toriginalEvent: MouseEvent,\n\taltKey: boolean;\n\tctrlKey: boolean;\n\tmetaKey: boolean;\n\tshiftKey: boolean;\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-button` component represents a simple push button.\n * It enables users to trigger actions by clicking or tapping the `ui5-button`, or by pressing\n * certain keyboard keys, such as Enter.\n *\n * ### Usage\n *\n * For the `ui5-button` UI, you can define text, icon, or both. You can also specify\n * whether the text or the icon is displayed first.\n *\n * You can choose from a set of predefined types that offer different\n * styling to correspond to the triggered action.\n *\n * You can set the `ui5-button` as enabled or disabled. An enabled\n * `ui5-button` can be pressed by clicking or tapping it. The button changes\n * its style to provide visual feedback to the user that it is pressed or hovered over with\n * the mouse cursor. A disabled `ui5-button` appears inactive and cannot be pressed.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Button.js\";`\n * @csspart button - Used to style the native button element\n * @csspart icon - Used to style the icon in the native button element\n * @csspart endIcon - Used to style the end icon in the native button element\n * @constructor\n * @extends UI5Element\n * @implements { IButton }\n * @public\n */\n@customElement({\n\ttag: \"ui5-button\",\n\tformAssociated: true,\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: ButtonTemplate,\n\tstyles: buttonCss,\n\tshadowRootOptions: { delegatesFocus: true },\n})\n/**\n * Fired when the component is activated either with a mouse/tap or by using the Enter or Space key.\n *\n * **Note:** The event will not be fired if the `disabled` property is set to `true`.\n *\n * @since 2.10.0\n * @public\n * @param {Event} originalEvent Returns original event that comes from user's **click** interaction\n * @param {boolean} altKey Returns whether the \"ALT\" key was pressed when the event was triggered.\n * @param {boolean} ctrlKey Returns whether the \"CTRL\" key was pressed when the event was triggered.\n * @param {boolean} metaKey Returns whether the \"META\" key was pressed when the event was triggered.\n * @param {boolean} shiftKey Returns whether the \"SHIFT\" key was pressed when the event was triggered.\n */\n@event(\"click\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n/**\n * Fired whenever the active state of the component changes.\n * @private\n */\n@event(\"active-state-change\", {\n\tbubbles: true,\n\tcancelable: true,\n})\nclass Button extends UI5Element implements IButton {\n\teventDetails!: {\n\t\t\"click\": ButtonClickEventDetail,\n\t\t\"active-state-change\": void,\n\t};\n\n\t/**\n\t * Defines the component design.\n\t * @default \"Default\"\n\t * @public\n\t */\n\t@property()\n\tdesign: `${ButtonDesign}` = \"Default\";\n\n\t/**\n\t * Defines whether the component is disabled.\n\t * A disabled component can't be pressed or\n\t * focused, and it is not in the tab chain.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines the icon, displayed as graphical element within the component.\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * Example:\n\t * See all the available icons within the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ticon?: string;\n\n\t/**\n\t * Defines the icon, displayed as graphical element within the component after the button text.\n\t *\n\t * **Note:** It is highly recommended to use `endIcon` property only together with `icon` and/or `text` properties.\n\t * Usage of `endIcon` only should be avoided.\n\t *\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * Example:\n\t * See all the available icons within the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tendIcon?: string;\n\n\t/**\n\t * When set to `true`, the component will\n\t * automatically submit the nearest HTML form element on `press`.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.`\n\t * @default false\n\t * @public\n\t * @deprecated Set the \"type\" property to \"Submit\" to achieve the same result. The \"submits\" property is ignored if \"type\" is set to any value other than \"Button\".\n\t */\n\t@property({ type: Boolean })\n\tsubmits = false;\n\n\t/**\n\t * Defines the tooltip of the component.\n\t *\n\t * **Note:** A tooltip attribute should be provided for icon-only buttons, in order to represent their exact meaning/function.\n\t * @default undefined\n\t * @public\n\t * @since 1.2.0\n\t */\n\t@property()\n\ttooltip?: string;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.1.0\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the additional accessibility attributes that will be applied to the component.\n\t * The following fields are supported:\n\t *\n\t * - **expanded**: Indicates whether the button, or another grouping element it controls, is currently expanded or collapsed.\n\t * Accepts the following string values: `true` or `false`\n\t *\n\t * - **hasPopup**: Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by the button.\n\t * Accepts the following string values: `dialog`, `grid`, `listbox`, `menu` or `tree`.\n\t *\n\t * - **controls**: Identifies the element (or elements) whose contents or presence are controlled by the button element.\n\t * Accepts a lowercase string value.\n\t *\n\t * @public\n\t * @since 1.2.0\n\t * @default {}\n\t */\n\t@property({ type: Object })\n\taccessibilityAttributes: ButtonAccessibilityAttributes = {};\n\n\t/**\n\t * Defines the accessible description of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.5.0\n\t */\n\t@property()\n\taccessibleDescription?: string;\n\n\t/**\n\t * Defines whether the button has special form-related functionality.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.\n\t * @default \"Button\"\n\t * @public\n\t * @since 1.15.0\n\t */\n\t@property()\n\ttype: `${ButtonType}` = \"Button\";\n\n\t/**\n\t * Describes the accessibility role of the button.\n\t *\n\t * **Note:** Use <code>ButtonAccessibleRole.Link</code> role only with a press handler, which performs a navigation. In all other scenarios the default button semantics are recommended.\n\t *\n\t * @default \"Button\"\n\t * @public\n\t * @since 1.23\n\t */\n\t@property()\n\taccessibleRole: `${ButtonAccessibleRole}` = \"Button\";\n\n\t/**\n\t * Used to switch the active state (pressed or not) of the component.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tactive = false;\n\n\t/**\n\t * Defines if a content has been added to the default slot\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\ticonOnly = false;\n\n\t/**\n\t * Indicates if the elements has a slotted icon\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thasIcon = false;\n\n\t/**\n\t * Indicates if the elements has a slotted end icon\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thasEndIcon = false;\n\n\t/**\n\t * Indicates if the element is focusable\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tnonInteractive = false;\n\n\t/**\n\t * The current title of the button, either the tooltip property or the icons tooltip. The tooltip property with higher prio.\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\tbuttonTitle?: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_iconSettings: object = {};\n\n\t/**\n\t * Defines the tabIndex of the component.\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\tforcedTabIndex = \"0\";\n\n\t/**\n\t * @since 1.0.0-rc.13\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_isTouch = false;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_cancelAction = false;\n\n\t/**\n\t * Defines the text of the component.\n\t *\n\t * **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n\t * @public\n\t */\n\t@slot({ type: Node, \"default\": true })\n\ttext!: Array<Node>;\n\n\t/**\n\t * Adds a badge to the button.\n\t * @since 2.7.0\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true })\n\tbadge!: Array<ButtonBadge>;\n\n\t_deactivate: () => void;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._deactivate = () => {\n\t\t\tif (activeButton) {\n\t\t\t\tactiveButton._setActiveState(false);\n\t\t\t}\n\t\t};\n\n\t\tif (!isGlobalHandlerAttached) {\n\t\t\tdocument.addEventListener(\"mouseup\", this._deactivate);\n\n\t\t\tisGlobalHandlerAttached = true;\n\t\t}\n\t}\n\n\t_ontouchstart() {\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._setActiveState(true);\n\t}\n\n\tonEnterDOM() {\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tasync onBeforeRendering() {\n\t\tthis._setBadgeOverlayStyle();\n\n\t\tthis.hasIcon = !!this.icon;\n\t\tthis.hasEndIcon = !!this.endIcon;\n\t\tthis.iconOnly = this.isIconOnly;\n\n\t\tconst defaultTooltip = await this.getDefaultTooltip();\n\t\tthis.buttonTitle = this.iconOnly ? this.tooltip ?? defaultTooltip : this.tooltip;\n\t}\n\n\t_setBadgeOverlayStyle() {\n\t\tconst needsOverflowVisible = this.badge.length && (this.badge[0].design === ButtonBadgeDesign.AttentionDot || this.badge[0].design === ButtonBadgeDesign.OverlayText);\n\n\t\tif (needsOverflowVisible) {\n\t\t\tthis._internals.states.add(\"has-overlay-badge\");\n\t\t} else {\n\t\t\tthis._internals.states.delete(\"has-overlay-badge\");\n\t\t}\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\te.stopImmediatePropagation();\n\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst {\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t} = e;\n\n\t\tconst prevented = !this.fireDecoratorEvent(\"click\", {\n\t\t\toriginalEvent: e,\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t});\n\n\t\tif (prevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isSubmit) {\n\t\t\tsubmitForm(this);\n\t\t}\n\n\t\tif (this._isReset) {\n\t\t\tresetForm(this);\n\t\t}\n\n\t\tif (isSafari()) {\n\t\t\tthis.getDomRef()?.focus();\n\t\t}\n\t}\n\n\t_onmousedown() {\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._setActiveState(true);\n\t\tactiveButton = this; // eslint-disable-line\n\t}\n\n\t_ontouchend(e: TouchEvent) {\n\t\tif (this.disabled) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\tif (this.active) {\n\t\t\tthis._setActiveState(false);\n\t\t}\n\n\t\tif (activeButton) {\n\t\t\tactiveButton._setActiveState(false);\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tthis._cancelAction = isShift(e) || isEscape(e);\n\n\t\tif (isSpace(e) || isEnter(e)) {\n\t\t\tthis._setActiveState(true);\n\t\t} else if (this._cancelAction) {\n\t\t\tthis._setActiveState(false);\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (this._cancelAction) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isSpace(e) || isEnter(e)) {\n\t\t\tif (this.active) {\n\t\t\t\tthis._setActiveState(false);\n\t\t\t}\n\t\t}\n\t}\n\n\t_onfocusout() {\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.active) {\n\t\t\tthis._setActiveState(false);\n\t\t}\n\t}\n\n\t_setActiveState(active: boolean) {\n\t\tconst eventPrevented = !this.fireDecoratorEvent(\"active-state-change\");\n\n\t\tif (eventPrevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.active = active;\n\t}\n\n\tget _hasPopup() {\n\t\treturn this.accessibilityAttributes.hasPopup;\n\t}\n\n\tget hasButtonType() {\n\t\treturn this.design !== ButtonDesign.Default && this.design !== ButtonDesign.Transparent;\n\t}\n\n\tget isIconOnly() {\n\t\treturn !willShowContent(this.text);\n\t}\n\n\tstatic typeTextMappings(): Record<string, I18nText> {\n\t\treturn {\n\t\t\t\"Positive\": BUTTON_ARIA_TYPE_ACCEPT,\n\t\t\t\"Negative\": BUTTON_ARIA_TYPE_REJECT,\n\t\t\t\"Emphasized\": BUTTON_ARIA_TYPE_EMPHASIZED,\n\t\t\t\"Attention\": BUTTON_ARIA_TYPE_ATTENTION,\n\t\t};\n\t}\n\n\tgetDefaultTooltip() {\n\t\tif (!getEnableDefaultTooltips()) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn getIconAccessibleName(this.icon);\n\t}\n\n\tget buttonTypeText() {\n\t\treturn Button.i18nBundle.getText(Button.typeTextMappings()[this.design]);\n\t}\n\n\tget effectiveAccRole(): AriaRole {\n\t\treturn toLowercaseEnumValue(this.accessibleRole);\n\t}\n\n\tget tabIndexValue() {\n\t\tif (this.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tabindex = this.getAttribute(\"tabindex\");\n\n\t\tif (tabindex) {\n\t\t\treturn Number.parseInt(tabindex);\n\t\t}\n\n\t\treturn this.nonInteractive ? -1 : Number.parseInt(this.forcedTabIndex);\n\t}\n\n\tget ariaLabelText() {\n\t\tconst ariaLabelText = getEffectiveAriaLabelText(this) || \"\";\n\t\tconst typeLabelText = this.hasButtonType ? this.buttonTypeText : \"\";\n\t\tconst internalLabelText = this.effectiveBadgeDescriptionText || \"\";\n\n\t\tconst labelParts = [ariaLabelText, typeLabelText, internalLabelText].filter(part => part);\n\t\treturn labelParts.join(\" \");\n\t}\n\n\tget ariaDescriptionText() {\n\t\treturn this.accessibleDescription === \"\" ? undefined : this.accessibleDescription;\n\t}\n\n\tget effectiveBadgeDescriptionText() {\n\t\tif (!this.shouldRenderBadge) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tconst badgeEffectiveText = this.badge[0].effectiveText;\n\n\t\t// Use distinct i18n keys for singular and plural badge values to ensure proper localization.\n\t\t// Some languages have different grammatical rules for singular and plural forms,\n\t\t// so separate keys (BUTTON_BADGE_ONE_ITEM and BUTTON_BADGE_MANY_ITEMS) are necessary.\n\t\tswitch (badgeEffectiveText) {\n\t\tcase \"\":\n\t\t\treturn badgeEffectiveText;\n\t\tcase \"1\":\n\t\t\treturn Button.i18nBundle.getText(BUTTON_BADGE_ONE_ITEM, badgeEffectiveText);\n\t\tdefault:\n\t\t\treturn Button.i18nBundle.getText(BUTTON_BADGE_MANY_ITEMS, badgeEffectiveText);\n\t\t}\n\t}\n\n\tget _isSubmit() {\n\t\treturn this.type === ButtonType.Submit || this.submits;\n\t}\n\n\tget _isReset() {\n\t\treturn this.type === ButtonType.Reset;\n\t}\n\n\tget shouldRenderBadge() {\n\t\treturn !!this.badge.length && (!!this.badge[0].text.length || this.badge[0].design === ButtonBadgeDesign.AttentionDot);\n\t}\n}\n\nButton.define();\n\nexport default Button;\nexport type {\n\tButtonAccessibilityAttributes,\n\tButtonClickEventDetail,\n\tIButton,\n};\n"]}
@@ -187,6 +187,8 @@ declare class Calendar extends CalendarPart {
187
187
  _headerMonthButtonText?: string;
188
188
  _headerYearButtonText?: string;
189
189
  _headerYearButtonTextSecType?: string;
190
+ _headerYearRangeButtonText?: string;
191
+ _headerYearRangeButtonTextSecType?: string;
190
192
  _pickersMode: `${CalendarPickersMode}`;
191
193
  _valueIsProcessed: boolean;
192
194
  /**
@@ -271,6 +273,7 @@ declare class Calendar extends CalendarPart {
271
273
  get _isDayPickerHidden(): boolean;
272
274
  get _isMonthPickerHidden(): boolean;
273
275
  get _isYearPickerHidden(): boolean;
276
+ get _isHeaderYearRangeButtonHidden(): boolean;
274
277
  _fireEventAndUpdateSelectedDates(selectedDates: Array<number>): void;
275
278
  onSelectedDatesChange(e: CustomEvent<DayPickerChangeEventDetail>): void;
276
279
  onSelectedMonthChange(e: CustomEvent<MonthPickerChangeEventDetail>): void;
package/dist/Calendar.js CHANGED
@@ -325,15 +325,13 @@ let Calendar = Calendar_1 = class Calendar extends CalendarPart {
325
325
  const yearFormat = DateFormat.getDateInstance({ format: "y", calendarType: this.primaryCalendarType });
326
326
  const localeData = getCachedLocaleDataInstance(getLocale());
327
327
  this._headerMonthButtonText = localeData.getMonthsStandAlone("wide", this.primaryCalendarType)[this._calendarDate.getMonth()];
328
+ this._headerYearButtonText = String(yearFormat.format(this._localDate, true));
328
329
  if (this._currentPicker === "year") {
329
330
  const rangeStart = new CalendarDateComponent(this._calendarDate, this._primaryCalendarType);
330
331
  const rangeEnd = new CalendarDateComponent(this._calendarDate, this._primaryCalendarType);
331
332
  rangeStart.setYear(this._currentPickerDOM._firstYear);
332
333
  rangeEnd.setYear(this._currentPickerDOM._lastYear);
333
- this._headerYearButtonText = `${yearFormat.format(rangeStart.toLocalJSDate(), true)} - ${yearFormat.format(rangeEnd.toLocalJSDate(), true)}`;
334
- }
335
- else {
336
- this._headerYearButtonText = String(yearFormat.format(this._localDate, true));
334
+ this._headerYearRangeButtonText = `${yearFormat.format(rangeStart.toLocalJSDate())} - ${yearFormat.format(rangeEnd.toLocalJSDate())}`;
337
335
  }
338
336
  this._secondaryCalendarType && this._setSecondaryCalendarTypeButtonText();
339
337
  }
@@ -388,6 +386,7 @@ let Calendar = Calendar_1 = class Calendar extends CalendarPart {
388
386
  }
389
387
  _setSecondaryCalendarTypeButtonText() {
390
388
  const yearFormatSecType = DateFormat.getDateInstance({ format: "y", calendarType: this._secondaryCalendarType });
389
+ this._headerYearButtonTextSecType = String(yearFormatSecType.format(this._localDate, true));
391
390
  if (this._currentPicker === "year") {
392
391
  const rangeStart = new CalendarDateComponent(this._calendarDate, this._primaryCalendarType);
393
392
  const rangeEnd = new CalendarDateComponent(this._calendarDate, this._primaryCalendarType);
@@ -397,10 +396,7 @@ let Calendar = Calendar_1 = class Calendar extends CalendarPart {
397
396
  .firstDate;
398
397
  const rangeEndSecType = transformDateToSecondaryType(this.primaryCalendarType, this._secondaryCalendarType, rangeEnd.valueOf() / 1000, true)
399
398
  .lastDate;
400
- this._headerYearButtonTextSecType = `${yearFormatSecType.format(rangeStartSecType.toLocalJSDate(), true)} - ${yearFormatSecType.format(rangeEndSecType.toLocalJSDate(), true)}`;
401
- }
402
- else {
403
- this._headerYearButtonTextSecType = String(yearFormatSecType.format(this._localDate, true));
399
+ this._headerYearRangeButtonTextSecType = `${yearFormatSecType.format(rangeStartSecType.toLocalJSDate())} - ${yearFormatSecType.format(rangeEndSecType.toLocalJSDate())}`;
404
400
  }
405
401
  }
406
402
  get secondaryCalendarTypeButtonText() {
@@ -441,6 +437,9 @@ let Calendar = Calendar_1 = class Calendar extends CalendarPart {
441
437
  get _isYearPickerHidden() {
442
438
  return this._currentPicker !== "year";
443
439
  }
440
+ get _isHeaderYearRangeButtonHidden() {
441
+ return this._currentPicker !== "year";
442
+ }
444
443
  _fireEventAndUpdateSelectedDates(selectedDates) {
445
444
  const datesValues = selectedDates.map(timestamp => {
446
445
  const calendarDate = CalendarDateComponent.fromTimestamp(timestamp * 1000, this._primaryCalendarType);
@@ -614,6 +613,12 @@ __decorate([
614
613
  __decorate([
615
614
  property()
616
615
  ], Calendar.prototype, "_headerYearButtonTextSecType", void 0);
616
+ __decorate([
617
+ property()
618
+ ], Calendar.prototype, "_headerYearRangeButtonText", void 0);
619
+ __decorate([
620
+ property()
621
+ ], Calendar.prototype, "_headerYearRangeButtonTextSecType", void 0);
617
622
  __decorate([
618
623
  property({ noAttribute: true })
619
624
  ], Calendar.prototype, "_pickersMode", void 0);