@ui5/webcomponents 2.13.0-rc.2 → 2.13.0-rc.3

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 (631) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/Assets-fetch.d.ts +1 -0
  4. package/dist/Assets-fetch.js +1 -0
  5. package/dist/Assets-fetch.js.map +1 -1
  6. package/dist/Assets-node.d.ts +1 -0
  7. package/dist/Assets-node.js +1 -0
  8. package/dist/Assets-node.js.map +1 -1
  9. package/dist/Assets.d.ts +1 -0
  10. package/dist/Assets.js +1 -0
  11. package/dist/Assets.js.map +1 -1
  12. package/dist/AvatarGroup.d.ts +1 -1
  13. package/dist/Button.d.ts +18 -1
  14. package/dist/Button.js +28 -2
  15. package/dist/Button.js.map +1 -1
  16. package/dist/ButtonTemplate.js +12 -9
  17. package/dist/ButtonTemplate.js.map +1 -1
  18. package/dist/CalendarLegend.d.ts +1 -0
  19. package/dist/CalendarLegend.js +3 -0
  20. package/dist/CalendarLegend.js.map +1 -1
  21. package/dist/ColorPalette.d.ts +1 -0
  22. package/dist/ColorPalette.js +3 -0
  23. package/dist/ColorPalette.js.map +1 -1
  24. package/dist/ComboBox.d.ts +2 -2
  25. package/dist/ComboBox.js +40 -8
  26. package/dist/ComboBox.js.map +1 -1
  27. package/dist/Dialog.js +0 -1
  28. package/dist/Dialog.js.map +1 -1
  29. package/dist/FileUploader.d.ts +1 -1
  30. package/dist/FileUploader.js +16 -7
  31. package/dist/FileUploader.js.map +1 -1
  32. package/dist/ListTemplate.js +1 -1
  33. package/dist/ListTemplate.js.map +1 -1
  34. package/dist/Menu.d.ts +1 -0
  35. package/dist/Menu.js +3 -0
  36. package/dist/Menu.js.map +1 -1
  37. package/dist/MultiComboBox.js +5 -2
  38. package/dist/MultiComboBox.js.map +1 -1
  39. package/dist/Popup.js +1 -0
  40. package/dist/Popup.js.map +1 -1
  41. package/dist/SegmentedButton.d.ts +1 -0
  42. package/dist/SegmentedButton.js +3 -0
  43. package/dist/SegmentedButton.js.map +1 -1
  44. package/dist/SplitButton.d.ts +35 -12
  45. package/dist/SplitButton.js +39 -8
  46. package/dist/SplitButton.js.map +1 -1
  47. package/dist/SplitButtonTemplate.js +2 -3
  48. package/dist/SplitButtonTemplate.js.map +1 -1
  49. package/dist/Table.d.ts +3 -1
  50. package/dist/Table.js +17 -1
  51. package/dist/Table.js.map +1 -1
  52. package/dist/TableHeaderRow.d.ts +1 -0
  53. package/dist/TableHeaderRow.js +5 -1
  54. package/dist/TableHeaderRow.js.map +1 -1
  55. package/dist/TableHeaderRowTemplate.d.ts +1 -1
  56. package/dist/TableHeaderRowTemplate.js +7 -4
  57. package/dist/TableHeaderRowTemplate.js.map +1 -1
  58. package/dist/TableRow.d.ts +2 -1
  59. package/dist/TableRow.js +11 -2
  60. package/dist/TableRow.js.map +1 -1
  61. package/dist/TableRowTemplate.js +1 -1
  62. package/dist/TableRowTemplate.js.map +1 -1
  63. package/dist/TableSelection.d.ts +2 -0
  64. package/dist/TableSelection.js +6 -0
  65. package/dist/TableSelection.js.map +1 -1
  66. package/dist/TableSelectionBase.d.ts +8 -0
  67. package/dist/TableSelectionBase.js +17 -0
  68. package/dist/TableSelectionBase.js.map +1 -1
  69. package/dist/TableSelectionMulti.d.ts +4 -0
  70. package/dist/TableSelectionMulti.js +21 -0
  71. package/dist/TableSelectionMulti.js.map +1 -1
  72. package/dist/TableTemplate.js +2 -2
  73. package/dist/TableTemplate.js.map +1 -1
  74. package/dist/Toolbar.d.ts +1 -1
  75. package/dist/Toolbar.js +8 -3
  76. package/dist/Toolbar.js.map +1 -1
  77. package/dist/ToolbarButton.js.map +1 -1
  78. package/dist/bundle.common.bootstrap.d.ts +1 -0
  79. package/dist/bundle.common.bootstrap.js +2 -0
  80. package/dist/bundle.common.bootstrap.js.map +1 -1
  81. package/dist/bundle.esm.d.ts +1 -0
  82. package/dist/css/themes/Avatar.css +1 -1
  83. package/dist/css/themes/AvatarGroup.css +1 -1
  84. package/dist/css/themes/Bar.css +1 -1
  85. package/dist/css/themes/Breadcrumbs.css +1 -1
  86. package/dist/css/themes/BusyIndicator.css +1 -1
  87. package/dist/css/themes/Button.css +1 -1
  88. package/dist/css/themes/ButtonBadge.css +1 -1
  89. package/dist/css/themes/Calendar.css +1 -1
  90. package/dist/css/themes/CalendarHeader.css +1 -1
  91. package/dist/css/themes/CalendarLegend.css +1 -1
  92. package/dist/css/themes/CalendarLegendItem.css +1 -1
  93. package/dist/css/themes/Card.css +1 -1
  94. package/dist/css/themes/CardHeader.css +1 -1
  95. package/dist/css/themes/Carousel.css +1 -1
  96. package/dist/css/themes/CheckBox.css +1 -1
  97. package/dist/css/themes/ColorPalette.css +1 -1
  98. package/dist/css/themes/ColorPaletteItem.css +1 -1
  99. package/dist/css/themes/ColorPalettePopover.css +1 -1
  100. package/dist/css/themes/ColorPicker.css +1 -1
  101. package/dist/css/themes/ComboBox.css +1 -1
  102. package/dist/css/themes/ComboBoxItem.css +1 -1
  103. package/dist/css/themes/DatePicker.css +1 -1
  104. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  105. package/dist/css/themes/DayPicker.css +1 -1
  106. package/dist/css/themes/Dialog.css +1 -1
  107. package/dist/css/themes/DynamicDateRange.css +1 -1
  108. package/dist/css/themes/DynamicDateRangePopover.css +1 -1
  109. package/dist/css/themes/FileUploader.css +1 -1
  110. package/dist/css/themes/Form.css +1 -1
  111. package/dist/css/themes/FormItem.css +1 -1
  112. package/dist/css/themes/FormItemSpan.css +1 -1
  113. package/dist/css/themes/GrowingButton.css +1 -1
  114. package/dist/css/themes/Icon.css +1 -1
  115. package/dist/css/themes/Input.css +1 -1
  116. package/dist/css/themes/InputIcon.css +1 -1
  117. package/dist/css/themes/InputSharedStyles.css +1 -1
  118. package/dist/css/themes/Link.css +1 -1
  119. package/dist/css/themes/List.css +1 -1
  120. package/dist/css/themes/ListItem.css +1 -1
  121. package/dist/css/themes/ListItemBase.css +1 -1
  122. package/dist/css/themes/ListItemCustom.css +1 -1
  123. package/dist/css/themes/ListItemGroup.css +1 -1
  124. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  125. package/dist/css/themes/ListItemIcon.css +1 -1
  126. package/dist/css/themes/Menu.css +1 -1
  127. package/dist/css/themes/MenuItem.css +1 -1
  128. package/dist/css/themes/MessageStrip.css +1 -1
  129. package/dist/css/themes/MonthPicker.css +1 -1
  130. package/dist/css/themes/MultiComboBox.css +1 -1
  131. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  132. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  133. package/dist/css/themes/MultiInput.css +1 -1
  134. package/dist/css/themes/OptionBase.css +1 -1
  135. package/dist/css/themes/Panel.css +1 -1
  136. package/dist/css/themes/Popover.css +1 -1
  137. package/dist/css/themes/PopupsCommon.css +1 -1
  138. package/dist/css/themes/ProgressIndicator.css +1 -1
  139. package/dist/css/themes/RadioButton.css +1 -1
  140. package/dist/css/themes/RangeSlider.css +1 -1
  141. package/dist/css/themes/RatingIndicator.css +1 -1
  142. package/dist/css/themes/ResponsivePopover.css +1 -1
  143. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  144. package/dist/css/themes/SegmentedButton.css +1 -1
  145. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  146. package/dist/css/themes/Select.css +1 -1
  147. package/dist/css/themes/SliderBase.css +1 -1
  148. package/dist/css/themes/SplitButton.css +1 -1
  149. package/dist/css/themes/StepInput.css +1 -1
  150. package/dist/css/themes/SuggestionItem.css +1 -1
  151. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  152. package/dist/css/themes/Switch.css +1 -1
  153. package/dist/css/themes/TabContainer.css +1 -1
  154. package/dist/css/themes/TabInOverflow.css +1 -1
  155. package/dist/css/themes/TabInStrip.css +1 -1
  156. package/dist/css/themes/TabSemanticIcon.css +1 -1
  157. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  158. package/dist/css/themes/TableCellBase.css +1 -1
  159. package/dist/css/themes/TableHeaderRow.css +1 -1
  160. package/dist/css/themes/TableRow.css +1 -1
  161. package/dist/css/themes/TableRowActionBase.css +1 -1
  162. package/dist/css/themes/TableRowBase.css +1 -1
  163. package/dist/css/themes/Tag.css +1 -1
  164. package/dist/css/themes/Text.css +1 -1
  165. package/dist/css/themes/TextArea.css +1 -1
  166. package/dist/css/themes/TimePicker.css +1 -1
  167. package/dist/css/themes/Toast.css +1 -1
  168. package/dist/css/themes/ToggleButton.css +1 -1
  169. package/dist/css/themes/Token.css +1 -1
  170. package/dist/css/themes/Tokenizer.css +1 -1
  171. package/dist/css/themes/TokenizerPopover.css +1 -1
  172. package/dist/css/themes/Toolbar.css +1 -1
  173. package/dist/css/themes/ToolbarButton.css +1 -1
  174. package/dist/css/themes/ToolbarPopover.css +1 -1
  175. package/dist/css/themes/ToolbarSeparator.css +1 -1
  176. package/dist/css/themes/TreeItem.css +1 -1
  177. package/dist/css/themes/ValueStateMessage.css +1 -1
  178. package/dist/css/themes/ValueStateVariables.css +1 -1
  179. package/dist/css/themes/YearPicker.css +1 -1
  180. package/dist/css/themes/YearRangePicker.css +1 -1
  181. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  182. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  183. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  184. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  185. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  186. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  187. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  188. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  189. package/dist/custom-elements-internal.json +125 -2
  190. package/dist/custom-elements.json +120 -2
  191. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  192. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  193. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  194. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  195. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  196. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  197. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  198. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  199. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  200. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  201. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  202. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  203. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  204. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  205. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  206. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  207. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  208. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  209. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  210. package/dist/generated/assets/i18n/messagebundle_id.json +1 -1
  211. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  212. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  213. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  214. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  215. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  216. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  217. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  218. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  219. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  220. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  221. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  222. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  223. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  224. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  225. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  226. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  227. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  228. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  229. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  230. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  231. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  232. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  233. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  234. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  235. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  236. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  237. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  238. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  239. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  240. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  241. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  242. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  243. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  244. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  245. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  246. package/dist/generated/i18n/i18n-defaults.d.ts +8 -1
  247. package/dist/generated/i18n/i18n-defaults.js +8 -1
  248. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  249. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  250. package/dist/generated/themes/Avatar.css.js +1 -1
  251. package/dist/generated/themes/Avatar.css.js.map +1 -1
  252. package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
  253. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  254. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  255. package/dist/generated/themes/Bar.css.d.ts +1 -1
  256. package/dist/generated/themes/Bar.css.js +1 -1
  257. package/dist/generated/themes/Bar.css.js.map +1 -1
  258. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  259. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  260. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  261. package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
  262. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  263. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  264. package/dist/generated/themes/Button.css.d.ts +1 -1
  265. package/dist/generated/themes/Button.css.js +1 -1
  266. package/dist/generated/themes/Button.css.js.map +1 -1
  267. package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
  268. package/dist/generated/themes/ButtonBadge.css.js +1 -1
  269. package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
  270. package/dist/generated/themes/Calendar.css.d.ts +1 -1
  271. package/dist/generated/themes/Calendar.css.js +1 -1
  272. package/dist/generated/themes/Calendar.css.js.map +1 -1
  273. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  274. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  275. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  276. package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
  277. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  278. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  279. package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
  280. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  281. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  282. package/dist/generated/themes/Card.css.d.ts +1 -1
  283. package/dist/generated/themes/Card.css.js +1 -1
  284. package/dist/generated/themes/Card.css.js.map +1 -1
  285. package/dist/generated/themes/CardHeader.css.d.ts +1 -1
  286. package/dist/generated/themes/CardHeader.css.js +1 -1
  287. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  288. package/dist/generated/themes/Carousel.css.d.ts +1 -1
  289. package/dist/generated/themes/Carousel.css.js +1 -1
  290. package/dist/generated/themes/Carousel.css.js.map +1 -1
  291. package/dist/generated/themes/CheckBox.css.d.ts +1 -1
  292. package/dist/generated/themes/CheckBox.css.js +1 -1
  293. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  294. package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
  295. package/dist/generated/themes/ColorPalette.css.js +1 -1
  296. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  297. package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
  298. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  299. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  300. package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
  301. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  302. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  303. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  304. package/dist/generated/themes/ColorPicker.css.js +1 -1
  305. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  306. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  307. package/dist/generated/themes/ComboBox.css.js +1 -1
  308. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  309. package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
  310. package/dist/generated/themes/ComboBoxItem.css.js +1 -1
  311. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
  312. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  313. package/dist/generated/themes/DatePicker.css.js +1 -1
  314. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  315. package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
  316. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  317. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  318. package/dist/generated/themes/DayPicker.css.d.ts +1 -1
  319. package/dist/generated/themes/DayPicker.css.js +1 -1
  320. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  321. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  322. package/dist/generated/themes/Dialog.css.js +1 -1
  323. package/dist/generated/themes/Dialog.css.js.map +1 -1
  324. package/dist/generated/themes/DynamicDateRange.css.d.ts +1 -1
  325. package/dist/generated/themes/DynamicDateRange.css.js +1 -1
  326. package/dist/generated/themes/DynamicDateRange.css.js.map +1 -1
  327. package/dist/generated/themes/DynamicDateRangePopover.css.d.ts +1 -1
  328. package/dist/generated/themes/DynamicDateRangePopover.css.js +1 -1
  329. package/dist/generated/themes/DynamicDateRangePopover.css.js.map +1 -1
  330. package/dist/generated/themes/FileUploader.css.d.ts +1 -1
  331. package/dist/generated/themes/FileUploader.css.js +1 -1
  332. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  333. package/dist/generated/themes/Form.css.d.ts +1 -1
  334. package/dist/generated/themes/Form.css.js +1 -1
  335. package/dist/generated/themes/Form.css.js.map +1 -1
  336. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  337. package/dist/generated/themes/FormItem.css.js +1 -1
  338. package/dist/generated/themes/FormItem.css.js.map +1 -1
  339. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  340. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  341. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  342. package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
  343. package/dist/generated/themes/GrowingButton.css.js +1 -1
  344. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  345. package/dist/generated/themes/Icon.css.d.ts +1 -1
  346. package/dist/generated/themes/Icon.css.js +1 -1
  347. package/dist/generated/themes/Icon.css.js.map +1 -1
  348. package/dist/generated/themes/Input.css.d.ts +1 -1
  349. package/dist/generated/themes/Input.css.js +1 -1
  350. package/dist/generated/themes/Input.css.js.map +1 -1
  351. package/dist/generated/themes/InputIcon.css.d.ts +1 -1
  352. package/dist/generated/themes/InputIcon.css.js +1 -1
  353. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  354. package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
  355. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  356. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  357. package/dist/generated/themes/Link.css.d.ts +1 -1
  358. package/dist/generated/themes/Link.css.js +1 -1
  359. package/dist/generated/themes/Link.css.js.map +1 -1
  360. package/dist/generated/themes/List.css.d.ts +1 -1
  361. package/dist/generated/themes/List.css.js +1 -1
  362. package/dist/generated/themes/List.css.js.map +1 -1
  363. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  364. package/dist/generated/themes/ListItem.css.js +1 -1
  365. package/dist/generated/themes/ListItem.css.js.map +1 -1
  366. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  367. package/dist/generated/themes/ListItemBase.css.js +1 -1
  368. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  369. package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
  370. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  371. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  372. package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
  373. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  374. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  375. package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
  376. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  377. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  378. package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
  379. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  380. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  381. package/dist/generated/themes/Menu.css.d.ts +1 -1
  382. package/dist/generated/themes/Menu.css.js +1 -1
  383. package/dist/generated/themes/Menu.css.js.map +1 -1
  384. package/dist/generated/themes/MenuItem.css.d.ts +1 -1
  385. package/dist/generated/themes/MenuItem.css.js +1 -1
  386. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  387. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  388. package/dist/generated/themes/MessageStrip.css.js +1 -1
  389. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  390. package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
  391. package/dist/generated/themes/MonthPicker.css.js +1 -1
  392. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  393. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  394. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  395. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  396. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
  397. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  398. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  399. package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
  400. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  401. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  402. package/dist/generated/themes/MultiInput.css.d.ts +1 -1
  403. package/dist/generated/themes/MultiInput.css.js +1 -1
  404. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  405. package/dist/generated/themes/OptionBase.css.d.ts +1 -1
  406. package/dist/generated/themes/OptionBase.css.js +1 -1
  407. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  408. package/dist/generated/themes/Panel.css.d.ts +1 -1
  409. package/dist/generated/themes/Panel.css.js +1 -1
  410. package/dist/generated/themes/Panel.css.js.map +1 -1
  411. package/dist/generated/themes/Popover.css.d.ts +1 -1
  412. package/dist/generated/themes/Popover.css.js +1 -1
  413. package/dist/generated/themes/Popover.css.js.map +1 -1
  414. package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
  415. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  416. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  417. package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
  418. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  419. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  420. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  421. package/dist/generated/themes/RadioButton.css.js +1 -1
  422. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  423. package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
  424. package/dist/generated/themes/RangeSlider.css.js +1 -1
  425. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  426. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  427. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  428. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  429. package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
  430. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  431. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  432. package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
  433. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  434. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  435. package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
  436. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  437. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  438. package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
  439. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  440. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  441. package/dist/generated/themes/Select.css.d.ts +1 -1
  442. package/dist/generated/themes/Select.css.js +1 -1
  443. package/dist/generated/themes/Select.css.js.map +1 -1
  444. package/dist/generated/themes/SliderBase.css.d.ts +1 -1
  445. package/dist/generated/themes/SliderBase.css.js +1 -1
  446. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  447. package/dist/generated/themes/SplitButton.css.d.ts +1 -1
  448. package/dist/generated/themes/SplitButton.css.js +1 -1
  449. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  450. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  451. package/dist/generated/themes/StepInput.css.js +1 -1
  452. package/dist/generated/themes/StepInput.css.js.map +1 -1
  453. package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
  454. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  455. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  456. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
  457. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  458. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  459. package/dist/generated/themes/Switch.css.d.ts +1 -1
  460. package/dist/generated/themes/Switch.css.js +1 -1
  461. package/dist/generated/themes/Switch.css.js.map +1 -1
  462. package/dist/generated/themes/TabContainer.css.d.ts +1 -1
  463. package/dist/generated/themes/TabContainer.css.js +1 -1
  464. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  465. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  466. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  467. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  468. package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
  469. package/dist/generated/themes/TabInStrip.css.js +1 -1
  470. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  471. package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
  472. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  473. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  474. package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
  475. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  476. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  477. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  478. package/dist/generated/themes/TableCellBase.css.js +1 -1
  479. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  480. package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
  481. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  482. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  483. package/dist/generated/themes/TableRow.css.d.ts +1 -1
  484. package/dist/generated/themes/TableRow.css.js +1 -1
  485. package/dist/generated/themes/TableRow.css.js.map +1 -1
  486. package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
  487. package/dist/generated/themes/TableRowActionBase.css.js +1 -1
  488. package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
  489. package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
  490. package/dist/generated/themes/TableRowBase.css.js +1 -1
  491. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  492. package/dist/generated/themes/Tag.css.d.ts +1 -1
  493. package/dist/generated/themes/Tag.css.js +1 -1
  494. package/dist/generated/themes/Tag.css.js.map +1 -1
  495. package/dist/generated/themes/Text.css.d.ts +1 -1
  496. package/dist/generated/themes/Text.css.js +1 -1
  497. package/dist/generated/themes/Text.css.js.map +1 -1
  498. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  499. package/dist/generated/themes/TextArea.css.js +1 -1
  500. package/dist/generated/themes/TextArea.css.js.map +1 -1
  501. package/dist/generated/themes/TimePicker.css.d.ts +1 -1
  502. package/dist/generated/themes/TimePicker.css.js +1 -1
  503. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  504. package/dist/generated/themes/Toast.css.d.ts +1 -1
  505. package/dist/generated/themes/Toast.css.js +1 -1
  506. package/dist/generated/themes/Toast.css.js.map +1 -1
  507. package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
  508. package/dist/generated/themes/ToggleButton.css.js +1 -1
  509. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  510. package/dist/generated/themes/Token.css.d.ts +1 -1
  511. package/dist/generated/themes/Token.css.js +1 -1
  512. package/dist/generated/themes/Token.css.js.map +1 -1
  513. package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
  514. package/dist/generated/themes/Tokenizer.css.js +1 -1
  515. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  516. package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
  517. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  518. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  519. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  520. package/dist/generated/themes/Toolbar.css.js +1 -1
  521. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  522. package/dist/generated/themes/ToolbarButton.css.d.ts +1 -1
  523. package/dist/generated/themes/ToolbarButton.css.js +1 -1
  524. package/dist/generated/themes/ToolbarButton.css.js.map +1 -1
  525. package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
  526. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  527. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  528. package/dist/generated/themes/ToolbarSeparator.css.d.ts +1 -1
  529. package/dist/generated/themes/ToolbarSeparator.css.js +1 -1
  530. package/dist/generated/themes/ToolbarSeparator.css.js.map +1 -1
  531. package/dist/generated/themes/TreeItem.css.d.ts +1 -1
  532. package/dist/generated/themes/TreeItem.css.js +1 -1
  533. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  534. package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
  535. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  536. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  537. package/dist/generated/themes/ValueStateVariables.css.d.ts +1 -1
  538. package/dist/generated/themes/ValueStateVariables.css.js +1 -1
  539. package/dist/generated/themes/ValueStateVariables.css.js.map +1 -1
  540. package/dist/generated/themes/YearPicker.css.d.ts +1 -1
  541. package/dist/generated/themes/YearPicker.css.js +1 -1
  542. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  543. package/dist/generated/themes/YearRangePicker.css.d.ts +1 -1
  544. package/dist/generated/themes/YearRangePicker.css.js +1 -1
  545. package/dist/generated/themes/YearRangePicker.css.js.map +1 -1
  546. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  547. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  548. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  549. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  550. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  551. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  552. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  553. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  554. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  555. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  556. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  557. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  558. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  559. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  560. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  561. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  562. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  563. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  564. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  565. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  566. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  567. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  568. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  569. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  570. package/dist/vscode.html-custom-data.json +26 -1
  571. package/dist/web-types.json +56 -3
  572. package/package.json +9 -9
  573. package/src/ButtonTemplate.tsx +14 -1
  574. package/src/ListTemplate.tsx +1 -1
  575. package/src/SplitButtonTemplate.tsx +28 -22
  576. package/src/TableHeaderRowTemplate.tsx +8 -4
  577. package/src/TableRowTemplate.tsx +1 -1
  578. package/src/TableTemplate.tsx +3 -1
  579. package/src/i18n/messagebundle.properties +14 -0
  580. package/src/i18n/messagebundle_ar.properties +18 -2
  581. package/src/i18n/messagebundle_bg.properties +18 -2
  582. package/src/i18n/messagebundle_ca.properties +18 -2
  583. package/src/i18n/messagebundle_cnr.properties +18 -2
  584. package/src/i18n/messagebundle_cs.properties +18 -2
  585. package/src/i18n/messagebundle_cy.properties +18 -2
  586. package/src/i18n/messagebundle_da.properties +18 -2
  587. package/src/i18n/messagebundle_de.properties +18 -2
  588. package/src/i18n/messagebundle_el.properties +18 -2
  589. package/src/i18n/messagebundle_en.properties +0 -244
  590. package/src/i18n/messagebundle_en_GB.properties +18 -2
  591. package/src/i18n/messagebundle_es.properties +18 -2
  592. package/src/i18n/messagebundle_es_MX.properties +18 -2
  593. package/src/i18n/messagebundle_et.properties +18 -2
  594. package/src/i18n/messagebundle_fi.properties +18 -2
  595. package/src/i18n/messagebundle_fr.properties +18 -2
  596. package/src/i18n/messagebundle_fr_CA.properties +18 -2
  597. package/src/i18n/messagebundle_hi.properties +18 -2
  598. package/src/i18n/messagebundle_hr.properties +18 -2
  599. package/src/i18n/messagebundle_hu.properties +18 -2
  600. package/src/i18n/messagebundle_id.properties +18 -2
  601. package/src/i18n/messagebundle_it.properties +18 -2
  602. package/src/i18n/messagebundle_iw.properties +18 -2
  603. package/src/i18n/messagebundle_ja.properties +18 -2
  604. package/src/i18n/messagebundle_kk.properties +18 -2
  605. package/src/i18n/messagebundle_ko.properties +18 -2
  606. package/src/i18n/messagebundle_lt.properties +18 -2
  607. package/src/i18n/messagebundle_lv.properties +18 -2
  608. package/src/i18n/messagebundle_mk.properties +18 -2
  609. package/src/i18n/messagebundle_ms.properties +18 -2
  610. package/src/i18n/messagebundle_nl.properties +18 -2
  611. package/src/i18n/messagebundle_no.properties +18 -2
  612. package/src/i18n/messagebundle_pl.properties +18 -2
  613. package/src/i18n/messagebundle_pt.properties +18 -2
  614. package/src/i18n/messagebundle_pt_PT.properties +18 -2
  615. package/src/i18n/messagebundle_ro.properties +18 -2
  616. package/src/i18n/messagebundle_ru.properties +18 -2
  617. package/src/i18n/messagebundle_sh.properties +18 -2
  618. package/src/i18n/messagebundle_sk.properties +18 -2
  619. package/src/i18n/messagebundle_sl.properties +19 -3
  620. package/src/i18n/messagebundle_sr.properties +18 -2
  621. package/src/i18n/messagebundle_sv.properties +18 -2
  622. package/src/i18n/messagebundle_th.properties +18 -2
  623. package/src/i18n/messagebundle_tr.properties +18 -2
  624. package/src/i18n/messagebundle_uk.properties +18 -2
  625. package/src/i18n/messagebundle_vi.properties +18 -2
  626. package/src/i18n/messagebundle_zh_CN.properties +18 -2
  627. package/src/i18n/messagebundle_zh_TW.properties +18 -2
  628. package/src/themes/Button.css +39 -2
  629. package/src/themes/ToolbarButton.css +3 -0
  630. package/src/themes/sap_horizon/TabContainer-parameters.css +0 -1
  631. package/src/themes/sap_horizon_dark/TabContainer-parameters.css +0 -1
package/dist/Popup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Popup.js","sourceRoot":"","sources":["../src/Popup.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport type { ClassMap } from \"@ui5/webcomponents-base/dist/types.js\";\nimport jsxRender from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport {\n\tisChrome,\n\tisDesktop,\n\tisPhone,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getFirstFocusableElement, getLastFocusableElement } from \"@ui5/webcomponents-base/dist/util/FocusableElements.js\";\nimport {\n\tregisterUI5Element,\n\tgetEffectiveAriaLabelText,\n\tgetEffectiveAriaDescriptionText,\n\tgetAllAccessibleDescriptionRefTexts,\n\tderegisterUI5Element,\n} from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport { hasStyle, createStyle } from \"@ui5/webcomponents-base/dist/ManagedStyles.js\";\nimport { isEnter, isTabPrevious } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getFocusedElement, isFocusedElementWithinNode } from \"@ui5/webcomponents-base/dist/util/PopupUtils.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport MediaRange from \"@ui5/webcomponents-base/dist/MediaRange.js\";\nimport toLowercaseEnumValue from \"@ui5/webcomponents-base/dist/util/toLowercaseEnumValue.js\";\nimport PopupTemplate from \"./PopupTemplate.js\";\nimport PopupAccessibleRole from \"./types/PopupAccessibleRole.js\";\nimport { addOpenedPopup, removeOpenedPopup } from \"./popup-utils/OpenedPopupsRegistry.js\";\n\n// Styles\nimport popupStlyes from \"./generated/themes/Popup.css.js\";\nimport popupBlockLayerStyles from \"./generated/themes/PopupBlockLayer.css.js\";\nimport globalStyles from \"./generated/themes/PopupGlobal.css.js\";\n\nconst createBlockingStyle = (): void => {\n\tif (!hasStyle(\"data-ui5-popup-scroll-blocker\")) {\n\t\tcreateStyle(globalStyles, \"data-ui5-popup-scroll-blocker\");\n\t}\n};\n\ncreateBlockingStyle();\n\nconst pageScrollingBlockers = new Set<Popup>();\n\ntype PopupScrollEventDetail = {\n\tscrollTop: number;\n\ttargetRef: HTMLElement;\n}\n\ntype PopupBeforeCloseEventDetail = {\n\tescPressed: boolean;\n}\n\n/**\n * @class\n * ### Overview\n * Base class for all popup Web Components.\n *\n * If you need to create your own popup-like custom UI5 Web Components.\n *\n * 1. The Popup class handles modality:\n * - The \"isModal\" getter can be overridden by derivatives to provide their own conditions when they are modal or not\n * - Derivatives may call the \"blockPageScrolling\" and \"unblockPageScrolling\" static methods to temporarily remove scrollbars on the html element\n * - Derivatives may call the \"openPopup\" and \"closePopup\" methods which handle focus, manage the popup registry and for modal popups, manage the blocking layer\n *\n * 2. Provides blocking layer (relevant for modal popups only):\n * - Controlled by the \"open\" and \"close\" methods\n *\n * 3. The Popup class \"traps\" focus:\n * - Derivatives may call the \"applyInitialFocus\" method (usually when opening, to transfer focus inside the popup)\n *\n * 4. The template of this component exposes two inline partials you can override in derivatives:\n * - beforeContent (upper part of the box, useful for header/title/close button)\n * - afterContent (lower part, useful for footer/action buttons)\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n\trenderer: jsxRender,\n\tstyles: [popupStlyes, popupBlockLayerStyles],\n\ttemplate: PopupTemplate,\n})\n/**\n * Fired before the component is opened. This event can be cancelled, which will prevent the popup from opening.\n * @public\n */\n@event(\"before-open\", {\n\tcancelable: true,\n})\n\n/**\n * Fired after the component is opened.\n * @public\n */\n@event(\"open\")\n\n/**\n * Fired before the component is closed. This event can be cancelled, which will prevent the popup from closing.\n * @public\n * @param {boolean} escPressed Indicates that `ESC` key has triggered the event.\n */\n@event(\"before-close\", {\n\tcancelable: true,\n})\n\n/**\n * Fired after the component is closed.\n * @public\n */\n@event(\"close\")\n\n/**\n * Fired whenever the popup content area is scrolled\n * @private\n */\n@event(\"scroll\", {\n\tbubbles: true,\n})\nabstract class Popup extends UI5Element {\n\teventDetails!: {\n\t\t\"before-open\": void\n\t\t\"open\": void\n\t\t\"before-close\": PopupBeforeCloseEventDetail\n\t\t\"close\": void\n\t\t\"scroll\": PopupScrollEventDetail\n\t}\n\n\t/**\n\t * Defines the ID of the HTML Element, which will get the initial focus.\n\t *\n\t * **Note:** If an element with `autofocus` attribute is added inside the component,\n\t * `initialFocus` won't take effect.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tinitialFocus?: string;\n\n\t/**\n\t * Defines if the focus should be returned to the previously focused element,\n\t * when the popup closes.\n\t * @default false\n\t * @public\n\t * @since 1.0.0-rc.8\n\t*/\n\t@property({ type: Boolean })\n\tpreventFocusRestore = false;\n\n\t/**\n\t * Defines the accessible 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 * Defines the 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 * Allows setting a custom role.\n\t * @default \"Dialog\"\n\t * @public\n\t * @since 1.10.0\n\t */\n\t@property()\n\taccessibleRole: `${PopupAccessibleRole}` = \"Dialog\";\n\n\t/**\n\t * Defines the accessible description of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.11.0\n\t */\n\t@property()\n\taccessibleDescription?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that describe the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.11.0\n\t */\n\t@property()\n\taccessibleDescriptionRef?: string;\n\n\t/**\n\t * Constantly updated value of texts collected from the associated labels.\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\t_associatedDescriptionRefTexts?: string;\n\n\t/**\n\t * Defines the current media query size.\n\t * @private\n\t */\n\t@property()\n\tmediaRange?: string;\n\n\t/**\n\t * Indicates whether initial focus should be prevented.\n\t * @public\n\t * @default false\n\t * @since 2.0.0\n\t */\n\t@property({ type: Boolean })\n\tpreventInitialFocus = false;\n\n\t/**\n\t * Indicates if the element is the top modal popup\n\t *\n\t * This property is calculated automatically\n\t * @private\n\t * @default false\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\tisTopModalPopup = false;\n\n\t/**\n\t * Defines the content of the Popup.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true })\n\tcontent!: Array<HTMLElement>;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tonPhone = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tonDesktop = false;\n\n\t_resizeHandler: ResizeObserverCallback;\n\t_shouldFocusRoot?: boolean;\n\t_focusedElementBeforeOpen?: HTMLElement | null;\n\t_opened = false;\n\t_open = false;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._resizeHandler = this._resize.bind(this);\n\n\t\tthis._getRealDomRef = () => {\n\t\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\"[root-element]\")!;\n\t\t};\n\t}\n\n\tonBeforeRendering() {\n\t\tthis.onPhone = isPhone();\n\t\tthis.onDesktop = isDesktop();\n\t}\n\n\tonAfterRendering() {\n\t\trenderFinished().then(() => {\n\t\t\tthis._updateMediaRange();\n\t\t});\n\t}\n\n\tonEnterDOM() {\n\t\tthis.setAttribute(\"popover\", \"manual\");\n\t\tResizeHandler.register(this, this._resizeHandler);\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\n\t\tthis.tabIndex = -1;\n\n\t\tif (this.open) {\n\t\t\tthis.showPopover();\n\t\t\tthis.openPopup();\n\t\t}\n\n\t\tregisterUI5Element(this, this._updateAssociatedLabelsTexts.bind(this));\n\t}\n\n\tonExitDOM() {\n\t\tif (this._opened) {\n\t\t\tPopup.unblockPageScrolling(this);\n\t\t\tthis._removeOpenedPopup();\n\t\t}\n\n\t\tResizeHandler.deregister(this, this._resizeHandler);\n\t\tderegisterUI5Element(this);\n\t}\n\n\t/**\n\t * Indicates if the element is open\n\t * @public\n\t * @default false\n\t * @since 1.2.0\n\t */\n\t@property({ type: Boolean })\n\tset open(value: boolean) {\n\t\tif (this._open === value) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._open = value;\n\n\t\tif (value) {\n\t\t\tthis.openPopup();\n\t\t} else {\n\t\t\tthis.closePopup();\n\t\t}\n\t}\n\n\tget open() : boolean {\n\t\treturn this._open;\n\t}\n\n\tasync openPopup() {\n\t\tif (this._opened) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst prevented = !this.fireDecoratorEvent(\"before-open\");\n\n\t\tif (prevented) {\n\t\t\tthis.open = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.isModal) {\n\t\t\tPopup.blockPageScrolling(this);\n\t\t}\n\n\t\tthis._focusedElementBeforeOpen = getFocusedElement();\n\n\t\tthis._show();\n\t\tthis._opened = true;\n\n\t\tif (this.getDomRef()) {\n\t\t\tthis._updateMediaRange();\n\t\t}\n\n\t\tthis._addOpenedPopup();\n\n\t\tthis.open = true;\n\n\t\t// initial focus, if focused element is statically created\n\t\tawait this.applyInitialFocus();\n\n\t\tawait renderFinished();\n\n\t\tif (this.isConnected) {\n\t\t\tthis.fireDecoratorEvent(\"open\");\n\t\t}\n\t}\n\n\t_resize() {\n\t\tthis._updateMediaRange();\n\t}\n\n\t/**\n\t * Prevents the user from interacting with the content under the block layer\n\t */\n\t_preventBlockLayerFocus(e: KeyboardEvent | MouseEvent) {\n\t\te.preventDefault();\n\t}\n\n\t/**\n\t * Temporarily removes scrollbars from the html element\n\t * @protected\n\t */\n\tstatic blockPageScrolling(popup: Popup) {\n\t\tpageScrollingBlockers.add(popup);\n\n\t\tif (pageScrollingBlockers.size !== 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tdocument.documentElement.classList.add(\"ui5-popup-scroll-blocker\");\n\t}\n\n\t/**\n\t * Restores scrollbars on the html element, if needed\n\t * @protected\n\t */\n\tstatic unblockPageScrolling(popup: Popup) {\n\t\tpageScrollingBlockers.delete(popup);\n\n\t\tif (pageScrollingBlockers.size !== 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tdocument.documentElement.classList.remove(\"ui5-popup-scroll-blocker\");\n\t}\n\n\t_scroll(e: Event) {\n\t\tthis.fireDecoratorEvent(\"scroll\", {\n\t\t\tscrollTop: (e.target as HTMLElement).scrollTop,\n\t\t\ttargetRef: e.target as HTMLElement,\n\t\t});\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst isTabOutAttempt = e.target === this._root && isTabPrevious(e);\n\t\t// if the popup is closed, focus is already moved, so Enter keydown may result in click on the newly focused element\n\t\tconst isEnterOnClosedPopupChild = isEnter(e) && !this.open;\n\n\t\tif (isTabOutAttempt || isEnterOnClosedPopupChild) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onfocusout(e: FocusEvent) {\n\t\t// relatedTarget is the element, which will get focus. If no such element exists, focus the root.\n\t\t// This happens after the mouse is released in order to not interrupt text selection.\n\t\tif (!e.relatedTarget) {\n\t\t\tthis._shouldFocusRoot = true;\n\t\t}\n\t}\n\n\t_onmousedown(e: MouseEvent) {\n\t\tif (this.shadowRoot!.contains(e.target as HTMLElement)) {\n\t\t\tthis._shouldFocusRoot = true;\n\t\t} else {\n\t\t\tthis._shouldFocusRoot = false;\n\t\t}\n\t}\n\n\t_onmouseup() {\n\t\tif (this._shouldFocusRoot) {\n\t\t\tif (isChrome()) {\n\t\t\t\tthis._root.focus();\n\t\t\t}\n\t\t\tthis._shouldFocusRoot = false;\n\t\t}\n\t}\n\n\t/**\n\t * Focus trapping\n\t * @private\n\t */\n\tasync forwardToFirst() {\n\t\tconst firstFocusable = await getFirstFocusableElement(this);\n\n\t\tif (firstFocusable) {\n\t\t\tfirstFocusable.focus();\n\t\t} else {\n\t\t\tthis._root.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Focus trapping\n\t * @private\n\t */\n\tasync forwardToLast() {\n\t\tconst lastFocusable = await getLastFocusableElement(this);\n\n\t\tif (lastFocusable) {\n\t\t\tlastFocusable.focus();\n\t\t} else {\n\t\t\tthis._root.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Use this method to focus the element denoted by \"initialFocus\", if provided,\n\t * or the first focusable element otherwise.\n\t * @protected\n\t */\n\tasync applyInitialFocus() {\n\t\tif (!this.preventInitialFocus) {\n\t\t\tawait this.applyFocus();\n\t\t}\n\t}\n\n\t/**\n\t * Focuses the element denoted by `initialFocus`, if provided,\n\t * or the first focusable element otherwise.\n\t * @public\n\t * @returns Promise that resolves when the focus is applied\n\t */\n\tasync applyFocus(): Promise<void> {\n\t\t// do nothing if the standard HTML autofocus is used\n\t\tif (this.querySelector(\"[autofocus]\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait this._waitForDomRef();\n\n\t\tif (this.getRootNode() === this) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet element;\n\n\t\tif (this.initialFocus) {\n\t\t\telement = (this.getRootNode() as Document).getElementById(this.initialFocus)\n\t\t\t|| document.getElementById(this.initialFocus);\n\t\t}\n\n\t\telement = element || await getFirstFocusableElement(this) || this._root; // in case of no focusable content focus the root\n\n\t\tif (element) {\n\t\t\tif (element === this._root) {\n\t\t\t\telement.tabIndex = -1;\n\t\t\t}\n\t\t\telement.focus();\n\t\t}\n\t}\n\n\tisFocusWithin() {\n\t\treturn isFocusedElementWithinNode(this._root);\n\t}\n\n\t_updateMediaRange() {\n\t\tthis.mediaRange = MediaRange.getCurrentRange(MediaRange.RANGESETS.RANGE_4STEPS, this.getDomRef()!.offsetWidth);\n\t}\n\n\t_updateAssociatedLabelsTexts() {\n\t\tthis._associatedDescriptionRefTexts = getAllAccessibleDescriptionRefTexts(this);\n\t}\n\n\t/**\n\t * Adds the popup to the \"opened popups registry\"\n\t * @protected\n\t */\n\t_addOpenedPopup() {\n\t\taddOpenedPopup(this);\n\t}\n\n\t/**\n\t * Closes the popup.\n\t */\n\tclosePopup(escPressed = false, preventRegistryUpdate = false, preventFocusRestore = false): void {\n\t\tif (!this._opened) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst prevented = !this.fireDecoratorEvent(\"before-close\", { escPressed });\n\t\tif (prevented) {\n\t\t\tthis.open = true;\n\t\t\treturn;\n\t\t}\n\n\t\tthis._opened = false;\n\n\t\tif (this.isModal) {\n\t\t\tPopup.unblockPageScrolling(this);\n\t\t}\n\n\t\tthis.hide();\n\t\tthis.open = false;\n\n\t\tif (!preventRegistryUpdate) {\n\t\t\tthis._removeOpenedPopup();\n\t\t}\n\n\t\tif (!this.preventFocusRestore && !preventFocusRestore) {\n\t\t\tthis.resetFocus();\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\t/**\n\t * Removes the popup from the \"opened popups registry\"\n\t * @protected\n\t */\n\t_removeOpenedPopup() {\n\t\tremoveOpenedPopup(this);\n\t}\n\n\t/**\n\t * Returns the focus to the previously focused element\n\t * @protected\n\t */\n\tresetFocus() {\n\t\tthis._focusedElementBeforeOpen?.focus();\n\t\tthis._focusedElementBeforeOpen = null;\n\t}\n\n\t/**\n\t * Sets \"block\" display to the popup. The property can be overriden by derivatives of Popup.\n\t * @protected\n\t */\n\t_show() {\n\t\tif (this.isConnected) {\n\t\t\tthis.setAttribute(\"popover\", \"manual\");\n\t\t\tthis.showPopover();\n\t\t}\n\t}\n\n\t/**\n\t * Sets \"none\" display to the popup\n\t * @protected\n\t */\n\thide() {\n\t\tthis.isConnected && this.hidePopover();\n\t}\n\n\t/**\n\t * Implement this getter with relevant logic regarding the modality of the popup (e.g. based on a public property)\n\t * @protected\n\t */\n\tabstract get isModal(): boolean\n\n\t/**\n\t * Return the ID of an element in the shadow DOM that is going to label this popup\n\t * @protected\n\t */\n\tabstract get _ariaLabelledBy(): string | undefined\n\n\t/**\n\t * Ensures ariaLabel is never null or empty string\n\t * @protected\n\t */\n\tget _ariaLabel() {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget _accInfoAriaDescription() {\n\t\treturn this.ariaDescriptionText || \"\";\n\t}\n\n\tget ariaDescriptionText() {\n\t\treturn this._associatedDescriptionRefTexts || getEffectiveAriaDescriptionText(this);\n\t}\n\n\tget ariaDescriptionTextId() {\n\t\treturn this.ariaDescriptionText ? \"accessibleDescription\" : \"\";\n\t}\n\n\tget ariaDescribedByIds() {\n\t\treturn [\n\t\t\tthis.ariaDescriptionTextId,\n\t\t].filter(Boolean).join(\" \");\n\t}\n\n\tget _root(): HTMLElement {\n\t\treturn this.shadowRoot!.querySelector(\".ui5-popup-root\")!;\n\t}\n\n\tget _role() {\n\t\treturn (this.accessibleRole === PopupAccessibleRole.None) ? undefined : toLowercaseEnumValue(this.accessibleRole);\n\t}\n\n\tget _ariaModal(): \"true\" | undefined {\n\t\treturn this.accessibleRole === PopupAccessibleRole.None ? undefined : \"true\";\n\t}\n\n\tget contentDOM(): HTMLElement {\n\t\treturn this.shadowRoot!.querySelector(\".ui5-popup-content\")!;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\troot: {},\n\t\t\tcontent: {},\n\t\t};\n\t}\n\n\tget classes(): ClassMap {\n\t\treturn {\n\t\t\troot: {\n\t\t\t\t\"ui5-popup-root\": true,\n\t\t\t},\n\t\t\tcontent: {\n\t\t\t\t\"ui5-popup-content\": true,\n\t\t\t},\n\t\t};\n\t}\n}\n\nexport default Popup;\nexport type { PopupScrollEventDetail, PopupBeforeCloseEventDetail };\n"]}
1
+ {"version":3,"file":"Popup.js","sourceRoot":"","sources":["../src/Popup.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport type { ClassMap } from \"@ui5/webcomponents-base/dist/types.js\";\nimport jsxRender from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport {\n\tisChrome,\n\tisDesktop,\n\tisPhone,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getFirstFocusableElement, getLastFocusableElement } from \"@ui5/webcomponents-base/dist/util/FocusableElements.js\";\nimport {\n\tregisterUI5Element,\n\tgetEffectiveAriaLabelText,\n\tgetEffectiveAriaDescriptionText,\n\tgetAllAccessibleDescriptionRefTexts,\n\tderegisterUI5Element,\n} from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport { hasStyle, createStyle } from \"@ui5/webcomponents-base/dist/ManagedStyles.js\";\nimport { isEnter, isTabPrevious } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getFocusedElement, isFocusedElementWithinNode } from \"@ui5/webcomponents-base/dist/util/PopupUtils.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport MediaRange from \"@ui5/webcomponents-base/dist/MediaRange.js\";\nimport toLowercaseEnumValue from \"@ui5/webcomponents-base/dist/util/toLowercaseEnumValue.js\";\nimport PopupTemplate from \"./PopupTemplate.js\";\nimport PopupAccessibleRole from \"./types/PopupAccessibleRole.js\";\nimport { addOpenedPopup, removeOpenedPopup } from \"./popup-utils/OpenedPopupsRegistry.js\";\n\n// Styles\nimport popupStlyes from \"./generated/themes/Popup.css.js\";\nimport popupBlockLayerStyles from \"./generated/themes/PopupBlockLayer.css.js\";\nimport globalStyles from \"./generated/themes/PopupGlobal.css.js\";\n\nconst createBlockingStyle = (): void => {\n\tif (!hasStyle(\"data-ui5-popup-scroll-blocker\")) {\n\t\tcreateStyle(globalStyles, \"data-ui5-popup-scroll-blocker\");\n\t}\n};\n\ncreateBlockingStyle();\n\nconst pageScrollingBlockers = new Set<Popup>();\n\ntype PopupScrollEventDetail = {\n\tscrollTop: number;\n\ttargetRef: HTMLElement;\n}\n\ntype PopupBeforeCloseEventDetail = {\n\tescPressed: boolean;\n}\n\n/**\n * @class\n * ### Overview\n * Base class for all popup Web Components.\n *\n * If you need to create your own popup-like custom UI5 Web Components.\n *\n * 1. The Popup class handles modality:\n * - The \"isModal\" getter can be overridden by derivatives to provide their own conditions when they are modal or not\n * - Derivatives may call the \"blockPageScrolling\" and \"unblockPageScrolling\" static methods to temporarily remove scrollbars on the html element\n * - Derivatives may call the \"openPopup\" and \"closePopup\" methods which handle focus, manage the popup registry and for modal popups, manage the blocking layer\n *\n * 2. Provides blocking layer (relevant for modal popups only):\n * - Controlled by the \"open\" and \"close\" methods\n *\n * 3. The Popup class \"traps\" focus:\n * - Derivatives may call the \"applyInitialFocus\" method (usually when opening, to transfer focus inside the popup)\n *\n * 4. The template of this component exposes two inline partials you can override in derivatives:\n * - beforeContent (upper part of the box, useful for header/title/close button)\n * - afterContent (lower part, useful for footer/action buttons)\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n\trenderer: jsxRender,\n\tstyles: [popupStlyes, popupBlockLayerStyles],\n\ttemplate: PopupTemplate,\n})\n/**\n * Fired before the component is opened. This event can be cancelled, which will prevent the popup from opening.\n * @public\n */\n@event(\"before-open\", {\n\tcancelable: true,\n})\n\n/**\n * Fired after the component is opened.\n * @public\n */\n@event(\"open\")\n\n/**\n * Fired before the component is closed. This event can be cancelled, which will prevent the popup from closing.\n * @public\n * @param {boolean} escPressed Indicates that `ESC` key has triggered the event.\n */\n@event(\"before-close\", {\n\tcancelable: true,\n})\n\n/**\n * Fired after the component is closed.\n * @public\n */\n@event(\"close\")\n\n/**\n * Fired whenever the popup content area is scrolled\n * @private\n */\n@event(\"scroll\", {\n\tbubbles: true,\n})\nabstract class Popup extends UI5Element {\n\teventDetails!: {\n\t\t\"before-open\": void\n\t\t\"open\": void\n\t\t\"before-close\": PopupBeforeCloseEventDetail\n\t\t\"close\": void\n\t\t\"scroll\": PopupScrollEventDetail\n\t}\n\n\t/**\n\t * Defines the ID of the HTML Element, which will get the initial focus.\n\t *\n\t * **Note:** If an element with `autofocus` attribute is added inside the component,\n\t * `initialFocus` won't take effect.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tinitialFocus?: string;\n\n\t/**\n\t * Defines if the focus should be returned to the previously focused element,\n\t * when the popup closes.\n\t * @default false\n\t * @public\n\t * @since 1.0.0-rc.8\n\t*/\n\t@property({ type: Boolean })\n\tpreventFocusRestore = false;\n\n\t/**\n\t * Defines the accessible 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 * Defines the 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 * Allows setting a custom role.\n\t * @default \"Dialog\"\n\t * @public\n\t * @since 1.10.0\n\t */\n\t@property()\n\taccessibleRole: `${PopupAccessibleRole}` = \"Dialog\";\n\n\t/**\n\t * Defines the accessible description of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.11.0\n\t */\n\t@property()\n\taccessibleDescription?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that describe the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.11.0\n\t */\n\t@property()\n\taccessibleDescriptionRef?: string;\n\n\t/**\n\t * Constantly updated value of texts collected from the associated labels.\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\t_associatedDescriptionRefTexts?: string;\n\n\t/**\n\t * Defines the current media query size.\n\t * @private\n\t */\n\t@property()\n\tmediaRange?: string;\n\n\t/**\n\t * Indicates whether initial focus should be prevented.\n\t * @public\n\t * @default false\n\t * @since 2.0.0\n\t */\n\t@property({ type: Boolean })\n\tpreventInitialFocus = false;\n\n\t/**\n\t * Indicates if the element is the top modal popup\n\t *\n\t * This property is calculated automatically\n\t * @private\n\t * @default false\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\tisTopModalPopup = false;\n\n\t/**\n\t * Defines the content of the Popup.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true })\n\tcontent!: Array<HTMLElement>;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tonPhone = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tonDesktop = false;\n\n\t_resizeHandler: ResizeObserverCallback;\n\t_shouldFocusRoot?: boolean;\n\t_focusedElementBeforeOpen?: HTMLElement | null;\n\t_opened = false;\n\t_open = false;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._resizeHandler = this._resize.bind(this);\n\n\t\tthis._getRealDomRef = () => {\n\t\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\"[root-element]\")!;\n\t\t};\n\t}\n\n\tonBeforeRendering() {\n\t\tthis.onPhone = isPhone();\n\t\tthis.onDesktop = isDesktop();\n\t}\n\n\tonAfterRendering() {\n\t\trenderFinished().then(() => {\n\t\t\tthis._updateMediaRange();\n\t\t});\n\t}\n\n\tonEnterDOM() {\n\t\tthis.setAttribute(\"popover\", \"manual\");\n\t\tResizeHandler.register(this, this._resizeHandler);\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\n\t\tthis.tabIndex = -1;\n\n\t\tif (this.open) {\n\t\t\tthis.showPopover();\n\t\t\tthis.openPopup();\n\t\t}\n\n\t\tthis.setAttribute(\"data-sap-ui-fastnavgroup-container\", \"true\");\n\t\tregisterUI5Element(this, this._updateAssociatedLabelsTexts.bind(this));\n\t}\n\n\tonExitDOM() {\n\t\tif (this._opened) {\n\t\t\tPopup.unblockPageScrolling(this);\n\t\t\tthis._removeOpenedPopup();\n\t\t}\n\n\t\tResizeHandler.deregister(this, this._resizeHandler);\n\t\tderegisterUI5Element(this);\n\t}\n\n\t/**\n\t * Indicates if the element is open\n\t * @public\n\t * @default false\n\t * @since 1.2.0\n\t */\n\t@property({ type: Boolean })\n\tset open(value: boolean) {\n\t\tif (this._open === value) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._open = value;\n\n\t\tif (value) {\n\t\t\tthis.openPopup();\n\t\t} else {\n\t\t\tthis.closePopup();\n\t\t}\n\t}\n\n\tget open() : boolean {\n\t\treturn this._open;\n\t}\n\n\tasync openPopup() {\n\t\tif (this._opened) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst prevented = !this.fireDecoratorEvent(\"before-open\");\n\n\t\tif (prevented) {\n\t\t\tthis.open = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.isModal) {\n\t\t\tPopup.blockPageScrolling(this);\n\t\t}\n\n\t\tthis._focusedElementBeforeOpen = getFocusedElement();\n\n\t\tthis._show();\n\t\tthis._opened = true;\n\n\t\tif (this.getDomRef()) {\n\t\t\tthis._updateMediaRange();\n\t\t}\n\n\t\tthis._addOpenedPopup();\n\n\t\tthis.open = true;\n\n\t\t// initial focus, if focused element is statically created\n\t\tawait this.applyInitialFocus();\n\n\t\tawait renderFinished();\n\n\t\tif (this.isConnected) {\n\t\t\tthis.fireDecoratorEvent(\"open\");\n\t\t}\n\t}\n\n\t_resize() {\n\t\tthis._updateMediaRange();\n\t}\n\n\t/**\n\t * Prevents the user from interacting with the content under the block layer\n\t */\n\t_preventBlockLayerFocus(e: KeyboardEvent | MouseEvent) {\n\t\te.preventDefault();\n\t}\n\n\t/**\n\t * Temporarily removes scrollbars from the html element\n\t * @protected\n\t */\n\tstatic blockPageScrolling(popup: Popup) {\n\t\tpageScrollingBlockers.add(popup);\n\n\t\tif (pageScrollingBlockers.size !== 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tdocument.documentElement.classList.add(\"ui5-popup-scroll-blocker\");\n\t}\n\n\t/**\n\t * Restores scrollbars on the html element, if needed\n\t * @protected\n\t */\n\tstatic unblockPageScrolling(popup: Popup) {\n\t\tpageScrollingBlockers.delete(popup);\n\n\t\tif (pageScrollingBlockers.size !== 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tdocument.documentElement.classList.remove(\"ui5-popup-scroll-blocker\");\n\t}\n\n\t_scroll(e: Event) {\n\t\tthis.fireDecoratorEvent(\"scroll\", {\n\t\t\tscrollTop: (e.target as HTMLElement).scrollTop,\n\t\t\ttargetRef: e.target as HTMLElement,\n\t\t});\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst isTabOutAttempt = e.target === this._root && isTabPrevious(e);\n\t\t// if the popup is closed, focus is already moved, so Enter keydown may result in click on the newly focused element\n\t\tconst isEnterOnClosedPopupChild = isEnter(e) && !this.open;\n\n\t\tif (isTabOutAttempt || isEnterOnClosedPopupChild) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onfocusout(e: FocusEvent) {\n\t\t// relatedTarget is the element, which will get focus. If no such element exists, focus the root.\n\t\t// This happens after the mouse is released in order to not interrupt text selection.\n\t\tif (!e.relatedTarget) {\n\t\t\tthis._shouldFocusRoot = true;\n\t\t}\n\t}\n\n\t_onmousedown(e: MouseEvent) {\n\t\tif (this.shadowRoot!.contains(e.target as HTMLElement)) {\n\t\t\tthis._shouldFocusRoot = true;\n\t\t} else {\n\t\t\tthis._shouldFocusRoot = false;\n\t\t}\n\t}\n\n\t_onmouseup() {\n\t\tif (this._shouldFocusRoot) {\n\t\t\tif (isChrome()) {\n\t\t\t\tthis._root.focus();\n\t\t\t}\n\t\t\tthis._shouldFocusRoot = false;\n\t\t}\n\t}\n\n\t/**\n\t * Focus trapping\n\t * @private\n\t */\n\tasync forwardToFirst() {\n\t\tconst firstFocusable = await getFirstFocusableElement(this);\n\n\t\tif (firstFocusable) {\n\t\t\tfirstFocusable.focus();\n\t\t} else {\n\t\t\tthis._root.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Focus trapping\n\t * @private\n\t */\n\tasync forwardToLast() {\n\t\tconst lastFocusable = await getLastFocusableElement(this);\n\n\t\tif (lastFocusable) {\n\t\t\tlastFocusable.focus();\n\t\t} else {\n\t\t\tthis._root.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Use this method to focus the element denoted by \"initialFocus\", if provided,\n\t * or the first focusable element otherwise.\n\t * @protected\n\t */\n\tasync applyInitialFocus() {\n\t\tif (!this.preventInitialFocus) {\n\t\t\tawait this.applyFocus();\n\t\t}\n\t}\n\n\t/**\n\t * Focuses the element denoted by `initialFocus`, if provided,\n\t * or the first focusable element otherwise.\n\t * @public\n\t * @returns Promise that resolves when the focus is applied\n\t */\n\tasync applyFocus(): Promise<void> {\n\t\t// do nothing if the standard HTML autofocus is used\n\t\tif (this.querySelector(\"[autofocus]\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait this._waitForDomRef();\n\n\t\tif (this.getRootNode() === this) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet element;\n\n\t\tif (this.initialFocus) {\n\t\t\telement = (this.getRootNode() as Document).getElementById(this.initialFocus)\n\t\t\t|| document.getElementById(this.initialFocus);\n\t\t}\n\n\t\telement = element || await getFirstFocusableElement(this) || this._root; // in case of no focusable content focus the root\n\n\t\tif (element) {\n\t\t\tif (element === this._root) {\n\t\t\t\telement.tabIndex = -1;\n\t\t\t}\n\t\t\telement.focus();\n\t\t}\n\t}\n\n\tisFocusWithin() {\n\t\treturn isFocusedElementWithinNode(this._root);\n\t}\n\n\t_updateMediaRange() {\n\t\tthis.mediaRange = MediaRange.getCurrentRange(MediaRange.RANGESETS.RANGE_4STEPS, this.getDomRef()!.offsetWidth);\n\t}\n\n\t_updateAssociatedLabelsTexts() {\n\t\tthis._associatedDescriptionRefTexts = getAllAccessibleDescriptionRefTexts(this);\n\t}\n\n\t/**\n\t * Adds the popup to the \"opened popups registry\"\n\t * @protected\n\t */\n\t_addOpenedPopup() {\n\t\taddOpenedPopup(this);\n\t}\n\n\t/**\n\t * Closes the popup.\n\t */\n\tclosePopup(escPressed = false, preventRegistryUpdate = false, preventFocusRestore = false): void {\n\t\tif (!this._opened) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst prevented = !this.fireDecoratorEvent(\"before-close\", { escPressed });\n\t\tif (prevented) {\n\t\t\tthis.open = true;\n\t\t\treturn;\n\t\t}\n\n\t\tthis._opened = false;\n\n\t\tif (this.isModal) {\n\t\t\tPopup.unblockPageScrolling(this);\n\t\t}\n\n\t\tthis.hide();\n\t\tthis.open = false;\n\n\t\tif (!preventRegistryUpdate) {\n\t\t\tthis._removeOpenedPopup();\n\t\t}\n\n\t\tif (!this.preventFocusRestore && !preventFocusRestore) {\n\t\t\tthis.resetFocus();\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\t/**\n\t * Removes the popup from the \"opened popups registry\"\n\t * @protected\n\t */\n\t_removeOpenedPopup() {\n\t\tremoveOpenedPopup(this);\n\t}\n\n\t/**\n\t * Returns the focus to the previously focused element\n\t * @protected\n\t */\n\tresetFocus() {\n\t\tthis._focusedElementBeforeOpen?.focus();\n\t\tthis._focusedElementBeforeOpen = null;\n\t}\n\n\t/**\n\t * Sets \"block\" display to the popup. The property can be overriden by derivatives of Popup.\n\t * @protected\n\t */\n\t_show() {\n\t\tif (this.isConnected) {\n\t\t\tthis.setAttribute(\"popover\", \"manual\");\n\t\t\tthis.showPopover();\n\t\t}\n\t}\n\n\t/**\n\t * Sets \"none\" display to the popup\n\t * @protected\n\t */\n\thide() {\n\t\tthis.isConnected && this.hidePopover();\n\t}\n\n\t/**\n\t * Implement this getter with relevant logic regarding the modality of the popup (e.g. based on a public property)\n\t * @protected\n\t */\n\tabstract get isModal(): boolean\n\n\t/**\n\t * Return the ID of an element in the shadow DOM that is going to label this popup\n\t * @protected\n\t */\n\tabstract get _ariaLabelledBy(): string | undefined\n\n\t/**\n\t * Ensures ariaLabel is never null or empty string\n\t * @protected\n\t */\n\tget _ariaLabel() {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget _accInfoAriaDescription() {\n\t\treturn this.ariaDescriptionText || \"\";\n\t}\n\n\tget ariaDescriptionText() {\n\t\treturn this._associatedDescriptionRefTexts || getEffectiveAriaDescriptionText(this);\n\t}\n\n\tget ariaDescriptionTextId() {\n\t\treturn this.ariaDescriptionText ? \"accessibleDescription\" : \"\";\n\t}\n\n\tget ariaDescribedByIds() {\n\t\treturn [\n\t\t\tthis.ariaDescriptionTextId,\n\t\t].filter(Boolean).join(\" \");\n\t}\n\n\tget _root(): HTMLElement {\n\t\treturn this.shadowRoot!.querySelector(\".ui5-popup-root\")!;\n\t}\n\n\tget _role() {\n\t\treturn (this.accessibleRole === PopupAccessibleRole.None) ? undefined : toLowercaseEnumValue(this.accessibleRole);\n\t}\n\n\tget _ariaModal(): \"true\" | undefined {\n\t\treturn this.accessibleRole === PopupAccessibleRole.None ? undefined : \"true\";\n\t}\n\n\tget contentDOM(): HTMLElement {\n\t\treturn this.shadowRoot!.querySelector(\".ui5-popup-content\")!;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\troot: {},\n\t\t\tcontent: {},\n\t\t};\n\t}\n\n\tget classes(): ClassMap {\n\t\treturn {\n\t\t\troot: {\n\t\t\t\t\"ui5-popup-root\": true,\n\t\t\t},\n\t\t\tcontent: {\n\t\t\t\t\"ui5-popup-content\": true,\n\t\t\t},\n\t\t};\n\t}\n}\n\nexport default Popup;\nexport type { PopupScrollEventDetail, PopupBeforeCloseEventDetail };\n"]}
@@ -68,6 +68,7 @@ declare class SegmentedButton extends UI5Element {
68
68
  constructor();
69
69
  onBeforeRendering(): void;
70
70
  normalizeSelection(): void;
71
+ getFocusDomRef(): HTMLElement | undefined;
71
72
  _selectItem(e: MouseEvent | KeyboardEvent): this | undefined;
72
73
  _applySingleSelection(item: ISegmentedButtonItem): void;
73
74
  _onclick(e: MouseEvent): void;
@@ -82,6 +82,9 @@ let SegmentedButton = SegmentedButton_1 = class SegmentedButton extends UI5Eleme
82
82
  default:
83
83
  }
84
84
  }
85
+ getFocusDomRef() {
86
+ return this._itemNavigation._getCurrentItem();
87
+ }
85
88
  _selectItem(e) {
86
89
  const target = e.target;
87
90
  const isTargetSegmentedButtonItem = target.hasAttribute("ui5-segmented-button-item");
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentedButton.js","sourceRoot":"","sources":["../src/SegmentedButton.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 jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\nimport {\n\tisSpace,\n\tisEnter,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { SEGMENTEDBUTTON_ARIA_DESCRIPTION, SEGMENTEDBUTTON_ARIA_DESCRIBEDBY } from \"./generated/i18n/i18n-defaults.js\";\nimport \"./SegmentedButtonItem.js\";\nimport type SegmentedButtonItem from \"./SegmentedButtonItem.js\";\nimport SegmentedButtonSelectionMode from \"./types/SegmentedButtonSelectionMode.js\";\n\n// Template\nimport SegmentedButtonTemplate from \"./SegmentedButtonTemplate.js\";\n\n// Styles\nimport SegmentedButtonCss from \"./generated/themes/SegmentedButton.css.js\";\n\n/**\n * Interface for components that may be slotted inside `ui5-segmented-button` as items\n * @public\n */\ninterface ISegmentedButtonItem extends UI5Element, ITabbable {\n\tdisabled: boolean,\n\tselected: boolean,\n}\n\ntype SegmentedButtonSelectionChangeEventDetail = {\n\tselectedItems: Array<ISegmentedButtonItem>,\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-segmented-button` shows a group of items. When the user clicks or taps\n * one of the items, it stays in a pressed state. It automatically resizes the items\n * to fit proportionally within the component. When no width is set, the component uses the available width.\n *\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/SegmentedButton.js\";`\n * @constructor\n * @extends UI5Element\n * @since 1.0.0-rc.6\n * @public\n */\n@customElement({\n\ttag: \"ui5-segmented-button\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: SegmentedButtonTemplate,\n\tstyles: SegmentedButtonCss,\n})\n/**\n * Fired when the selected item changes.\n * @param {Array<ISegmentedButtonItem>} selectedItems an array of selected items. Since: 1.14.0\n * @public\n */\n@event(\"selection-change\", {\n\tbubbles: true,\n})\n\nclass SegmentedButton extends UI5Element {\n\teventDetails!: {\n\t\t\"selection-change\": SegmentedButtonSelectionChangeEventDetail,\n\t}\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.3\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the component selection mode.\n\t * @default \"Single\"\n\t * @public\n\t * @since 1.14.0\n\t */\n\t@property()\n\tselectionMode: `${SegmentedButtonSelectionMode}` = \"Single\";\n\n\t/**\n\t * Defines the items of `ui5-segmented-button`.\n\t *\n\t * **Note:** Multiple items are allowed.\n\t *\n\t * **Note:** Use the `ui5-segmented-button-item` for the intended design.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n\titems!: Array<ISegmentedButtonItem>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\t_itemNavigation: ItemNavigation;\n\n\thasPreviouslyFocusedItem: boolean;\n\n\t_selectedItem?: ISegmentedButtonItem;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._itemNavigation = new ItemNavigation(this, {\n\t\t\tgetItemsCallback: () => this.navigatableItems,\n\t\t});\n\t\tthis.hasPreviouslyFocusedItem = false;\n\t}\n\n\tonBeforeRendering() {\n\t\tconst items = this.getSlottedNodes<SegmentedButtonItem>(\"items\");\n\n\t\titems.forEach((item, index, arr) => {\n\t\t\titem.posInSet = index + 1;\n\t\t\titem.sizeOfSet = arr.length;\n\t\t});\n\n\t\tthis.normalizeSelection();\n\n\t\tthis.style.setProperty(getScopedVarName(\"--_ui5_segmented_btn_items_count\"), `${items.length}`);\n\t}\n\n\tnormalizeSelection() {\n\t\tif (!this.items.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch (this.selectionMode) {\n\t\tcase SegmentedButtonSelectionMode.Single: {\n\t\t\tconst selectedItems = this.selectedItems;\n\t\t\tconst selectedItemIndex = this._selectedItem ? selectedItems.indexOf(this._selectedItem) : -1;\n\t\t\tif (this._selectedItem && selectedItems.length > 1) {\n\t\t\t\tselectedItems.splice(selectedItemIndex, 1);\n\t\t\t}\n\t\t\tconst selectedItem = selectedItems.pop() || this.items[0];\n\t\t\tthis._applySingleSelection(selectedItem);\n\t\t\tbreak;\n\t\t}\n\t\tdefault:\n\t\t}\n\t}\n\n\t_selectItem(e: MouseEvent | KeyboardEvent) {\n\t\tconst target = e.target as SegmentedButtonItem;\n\t\tconst isTargetSegmentedButtonItem = target.hasAttribute(\"ui5-segmented-button-item\");\n\n\t\tif (target.disabled || target === this.getDomRef() || !isTargetSegmentedButtonItem) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch (this.selectionMode) {\n\t\tcase SegmentedButtonSelectionMode.Multiple:\n\t\t\tif (e instanceof KeyboardEvent) {\n\t\t\t\ttarget.selected = !target.selected;\n\t\t\t}\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthis._applySingleSelection(target);\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\tselectedItems: this.selectedItems,\n\t\t});\n\n\t\tthis._itemNavigation.setCurrentItem(target);\n\n\t\treturn this;\n\t}\n\n\t_applySingleSelection(item: ISegmentedButtonItem) {\n\t\tthis.items.forEach(currentItem => {\n\t\t\tcurrentItem.selected = false;\n\t\t});\n\t\titem.selected = true;\n\t\tthis._selectedItem = item;\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tthis._selectItem(e);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e)) {\n\t\t\tthis._selectItem(e);\n\t\t} else if (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._selectItem(e);\n\t\t}\n\t}\n\n\t_onmousedown(e: MouseEvent) {\n\t\tconst eventTarget = e.target as SegmentedButtonItem;\n\t\tconst isTargetSegmentedButtonItem = eventTarget.hasAttribute(\"ui5-segmented-button-item\");\n\n\t\tif (isTargetSegmentedButtonItem) {\n\t\t\tthis._itemNavigation.setCurrentItem(eventTarget);\n\t\t\tthis.hasPreviouslyFocusedItem = true;\n\t\t}\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\t// If the component was previously focused,\n\t\t// update the ItemNavigation to sync the button's tabindex values\n\t\tif (this.hasPreviouslyFocusedItem) {\n\t\t\tthis._itemNavigation.setCurrentItem(e.target as SegmentedButtonItem);\n\t\t\treturn;\n\t\t}\n\n\t\t// If the component is focused for the first time\n\t\t// focus the selected item if such is present\n\t\tif (this.selectedItems.length) {\n\t\t\tthis._itemNavigation.setCurrentItem(this.selectedItems[0]);\n\t\t\tthis.selectedItems[0].focus();\n\t\t\tthis.hasPreviouslyFocusedItem = true;\n\t\t}\n\t}\n\n\t/**\n\t * Returns an array of the currently selected items.\n\t * @since 1.14.0\n\t * @public\n\t * @default []\n\t */\n\tget selectedItems(): Array<ISegmentedButtonItem> {\n\t\treturn this.items.filter(item => item.selected);\n\t}\n\n\tget navigatableItems() {\n\t\treturn this.getSlottedNodes<SegmentedButtonItem>(\"items\").filter(item => {\n\t\t\treturn !item.disabled;\n\t\t});\n\t}\n\n\tget ariaDescribedBy() {\n\t\treturn SegmentedButton.i18nBundle.getText(SEGMENTEDBUTTON_ARIA_DESCRIBEDBY);\n\t}\n\n\tget ariaDescription() {\n\t\treturn SegmentedButton.i18nBundle.getText(SEGMENTEDBUTTON_ARIA_DESCRIPTION);\n\t}\n}\n\nSegmentedButton.define();\n\nexport default SegmentedButton;\nexport type {\n\tSegmentedButtonSelectionChangeEventDetail,\n\tISegmentedButtonItem,\n};\n"]}
1
+ {"version":3,"file":"SegmentedButton.js","sourceRoot":"","sources":["../src/SegmentedButton.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 jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\nimport {\n\tisSpace,\n\tisEnter,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { SEGMENTEDBUTTON_ARIA_DESCRIPTION, SEGMENTEDBUTTON_ARIA_DESCRIBEDBY } from \"./generated/i18n/i18n-defaults.js\";\nimport \"./SegmentedButtonItem.js\";\nimport type SegmentedButtonItem from \"./SegmentedButtonItem.js\";\nimport SegmentedButtonSelectionMode from \"./types/SegmentedButtonSelectionMode.js\";\n\n// Template\nimport SegmentedButtonTemplate from \"./SegmentedButtonTemplate.js\";\n\n// Styles\nimport SegmentedButtonCss from \"./generated/themes/SegmentedButton.css.js\";\n\n/**\n * Interface for components that may be slotted inside `ui5-segmented-button` as items\n * @public\n */\ninterface ISegmentedButtonItem extends UI5Element, ITabbable {\n\tdisabled: boolean,\n\tselected: boolean,\n}\n\ntype SegmentedButtonSelectionChangeEventDetail = {\n\tselectedItems: Array<ISegmentedButtonItem>,\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-segmented-button` shows a group of items. When the user clicks or taps\n * one of the items, it stays in a pressed state. It automatically resizes the items\n * to fit proportionally within the component. When no width is set, the component uses the available width.\n *\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/SegmentedButton.js\";`\n * @constructor\n * @extends UI5Element\n * @since 1.0.0-rc.6\n * @public\n */\n@customElement({\n\ttag: \"ui5-segmented-button\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: SegmentedButtonTemplate,\n\tstyles: SegmentedButtonCss,\n})\n/**\n * Fired when the selected item changes.\n * @param {Array<ISegmentedButtonItem>} selectedItems an array of selected items. Since: 1.14.0\n * @public\n */\n@event(\"selection-change\", {\n\tbubbles: true,\n})\n\nclass SegmentedButton extends UI5Element {\n\teventDetails!: {\n\t\t\"selection-change\": SegmentedButtonSelectionChangeEventDetail,\n\t}\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.3\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the component selection mode.\n\t * @default \"Single\"\n\t * @public\n\t * @since 1.14.0\n\t */\n\t@property()\n\tselectionMode: `${SegmentedButtonSelectionMode}` = \"Single\";\n\n\t/**\n\t * Defines the items of `ui5-segmented-button`.\n\t *\n\t * **Note:** Multiple items are allowed.\n\t *\n\t * **Note:** Use the `ui5-segmented-button-item` for the intended design.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n\titems!: Array<ISegmentedButtonItem>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\t_itemNavigation: ItemNavigation;\n\n\thasPreviouslyFocusedItem: boolean;\n\n\t_selectedItem?: ISegmentedButtonItem;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._itemNavigation = new ItemNavigation(this, {\n\t\t\tgetItemsCallback: () => this.navigatableItems,\n\t\t});\n\t\tthis.hasPreviouslyFocusedItem = false;\n\t}\n\n\tonBeforeRendering() {\n\t\tconst items = this.getSlottedNodes<SegmentedButtonItem>(\"items\");\n\n\t\titems.forEach((item, index, arr) => {\n\t\t\titem.posInSet = index + 1;\n\t\t\titem.sizeOfSet = arr.length;\n\t\t});\n\n\t\tthis.normalizeSelection();\n\n\t\tthis.style.setProperty(getScopedVarName(\"--_ui5_segmented_btn_items_count\"), `${items.length}`);\n\t}\n\n\tnormalizeSelection() {\n\t\tif (!this.items.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch (this.selectionMode) {\n\t\tcase SegmentedButtonSelectionMode.Single: {\n\t\t\tconst selectedItems = this.selectedItems;\n\t\t\tconst selectedItemIndex = this._selectedItem ? selectedItems.indexOf(this._selectedItem) : -1;\n\t\t\tif (this._selectedItem && selectedItems.length > 1) {\n\t\t\t\tselectedItems.splice(selectedItemIndex, 1);\n\t\t\t}\n\t\t\tconst selectedItem = selectedItems.pop() || this.items[0];\n\t\t\tthis._applySingleSelection(selectedItem);\n\t\t\tbreak;\n\t\t}\n\t\tdefault:\n\t\t}\n\t}\n\n\tgetFocusDomRef(): HTMLElement | undefined {\n\t\treturn this._itemNavigation._getCurrentItem();\n\t}\n\n\t_selectItem(e: MouseEvent | KeyboardEvent) {\n\t\tconst target = e.target as SegmentedButtonItem;\n\t\tconst isTargetSegmentedButtonItem = target.hasAttribute(\"ui5-segmented-button-item\");\n\n\t\tif (target.disabled || target === this.getDomRef() || !isTargetSegmentedButtonItem) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch (this.selectionMode) {\n\t\tcase SegmentedButtonSelectionMode.Multiple:\n\t\t\tif (e instanceof KeyboardEvent) {\n\t\t\t\ttarget.selected = !target.selected;\n\t\t\t}\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthis._applySingleSelection(target);\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\tselectedItems: this.selectedItems,\n\t\t});\n\n\t\tthis._itemNavigation.setCurrentItem(target);\n\n\t\treturn this;\n\t}\n\n\t_applySingleSelection(item: ISegmentedButtonItem) {\n\t\tthis.items.forEach(currentItem => {\n\t\t\tcurrentItem.selected = false;\n\t\t});\n\t\titem.selected = true;\n\t\tthis._selectedItem = item;\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tthis._selectItem(e);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e)) {\n\t\t\tthis._selectItem(e);\n\t\t} else if (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._selectItem(e);\n\t\t}\n\t}\n\n\t_onmousedown(e: MouseEvent) {\n\t\tconst eventTarget = e.target as SegmentedButtonItem;\n\t\tconst isTargetSegmentedButtonItem = eventTarget.hasAttribute(\"ui5-segmented-button-item\");\n\n\t\tif (isTargetSegmentedButtonItem) {\n\t\t\tthis._itemNavigation.setCurrentItem(eventTarget);\n\t\t\tthis.hasPreviouslyFocusedItem = true;\n\t\t}\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\t// If the component was previously focused,\n\t\t// update the ItemNavigation to sync the button's tabindex values\n\t\tif (this.hasPreviouslyFocusedItem) {\n\t\t\tthis._itemNavigation.setCurrentItem(e.target as SegmentedButtonItem);\n\t\t\treturn;\n\t\t}\n\n\t\t// If the component is focused for the first time\n\t\t// focus the selected item if such is present\n\t\tif (this.selectedItems.length) {\n\t\t\tthis._itemNavigation.setCurrentItem(this.selectedItems[0]);\n\t\t\tthis.selectedItems[0].focus();\n\t\t\tthis.hasPreviouslyFocusedItem = true;\n\t\t}\n\t}\n\n\t/**\n\t * Returns an array of the currently selected items.\n\t * @since 1.14.0\n\t * @public\n\t * @default []\n\t */\n\tget selectedItems(): Array<ISegmentedButtonItem> {\n\t\treturn this.items.filter(item => item.selected);\n\t}\n\n\tget navigatableItems() {\n\t\treturn this.getSlottedNodes<SegmentedButtonItem>(\"items\").filter(item => {\n\t\t\treturn !item.disabled;\n\t\t});\n\t}\n\n\tget ariaDescribedBy() {\n\t\treturn SegmentedButton.i18nBundle.getText(SEGMENTEDBUTTON_ARIA_DESCRIBEDBY);\n\t}\n\n\tget ariaDescription() {\n\t\treturn SegmentedButton.i18nBundle.getText(SEGMENTEDBUTTON_ARIA_DESCRIPTION);\n\t}\n}\n\nSegmentedButton.define();\n\nexport default SegmentedButton;\nexport type {\n\tSegmentedButtonSelectionChangeEventDetail,\n\tISegmentedButtonItem,\n};\n"]}
@@ -1,8 +1,15 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
- import type { AriaHasPopup, UI5CustomEvent } from "@ui5/webcomponents-base";
2
+ import type { AccessibilityAttributes } from "@ui5/webcomponents-base/dist/types.js";
3
+ import type { UI5CustomEvent } from "@ui5/webcomponents-base";
3
4
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
4
5
  import type ButtonDesign from "./types/ButtonDesign.js";
5
6
  import type Button from "./Button.js";
7
+ type SplitButtonRootAccAttributes = Pick<AccessibilityAttributes, "hasPopup" | "roleDescription" | "title">;
8
+ type SplitButtonArrowButtonAccAtributes = Pick<AccessibilityAttributes, "hasPopup" | "expanded" | "title">;
9
+ type SplitButtonAccessibilityAttributes = {
10
+ root?: SplitButtonRootAccAttributes;
11
+ arrowButton?: SplitButtonArrowButtonAccAtributes;
12
+ };
6
13
  /**
7
14
  * @class
8
15
  *
@@ -135,6 +142,29 @@ declare class SplitButton extends UI5Element {
135
142
  * @private
136
143
  */
137
144
  _hideArrowButton: boolean;
145
+ /**
146
+ * Defines the additional accessibility attributes that will be applied to the component.
147
+ * The `accessibilityAttributes` property accepts an object with the following optional fields:
148
+ *
149
+ * - **root**: Attributes that will be applied to the main (text) button.
150
+ * - **hasPopup**: Indicates the presence and type of popup triggered by the button.
151
+ * Accepts string values: `"dialog"`, `"grid"`, `"listbox"`, `"menu"`, or `"tree"`.
152
+ * - **roleDescription**: Provides a human-readable description for the role of the button.
153
+ * Accepts any string value.
154
+ * - **title**: Specifies a tooltip or description for screen readers.
155
+ * Accepts any string value.
156
+ *
157
+ * - **arrowButton**: Attributes applied specifically to the arrow (split) button.
158
+ * - **hasPopup**: Indicates the presence and type of popup triggered by the arrow button.
159
+ * Accepts string values: `"dialog"`, `"grid"`, `"listbox"`, `"menu"`, or `"tree"`.
160
+ * - **expanded**: Indicates whether the popup triggered by the arrow button is currently expanded.
161
+ * Accepts boolean values: `true` or `false`.
162
+ *
163
+ * @default {}
164
+ * @public
165
+ * @since 2.13.0
166
+ */
167
+ accessibilityAttributes: SplitButtonAccessibilityAttributes;
138
168
  /**
139
169
  * Defines the text of the component.
140
170
  *
@@ -187,20 +217,13 @@ declare class SplitButton extends UI5Element {
187
217
  get isTextButton(): boolean;
188
218
  get textButton(): Button | null | undefined;
189
219
  get arrowButton(): Button | null | undefined;
220
+ get _computedAccessibilityAttributes(): SplitButtonAccessibilityAttributes;
190
221
  get accInfo(): {
191
- root: {
192
- description: string;
193
- keyboardHint: string;
194
- };
195
- arrowButton: {
196
- title: string;
197
- accessibilityAttributes: {
198
- hasPopup: AriaHasPopup;
199
- expanded: boolean;
200
- };
201
- };
222
+ keyboardHint: string;
223
+ description: string;
202
224
  };
203
225
  get arrowButtonTooltip(): string;
204
226
  get ariaLabelText(): string;
205
227
  }
206
228
  export default SplitButton;
229
+ export type { SplitButtonAccessibilityAttributes, };
@@ -120,6 +120,29 @@ let SplitButton = SplitButton_1 = class SplitButton extends UI5Element {
120
120
  * @private
121
121
  */
122
122
  this._hideArrowButton = false;
123
+ /**
124
+ * Defines the additional accessibility attributes that will be applied to the component.
125
+ * The `accessibilityAttributes` property accepts an object with the following optional fields:
126
+ *
127
+ * - **root**: Attributes that will be applied to the main (text) button.
128
+ * - **hasPopup**: Indicates the presence and type of popup triggered by the button.
129
+ * Accepts string values: `"dialog"`, `"grid"`, `"listbox"`, `"menu"`, or `"tree"`.
130
+ * - **roleDescription**: Provides a human-readable description for the role of the button.
131
+ * Accepts any string value.
132
+ * - **title**: Specifies a tooltip or description for screen readers.
133
+ * Accepts any string value.
134
+ *
135
+ * - **arrowButton**: Attributes applied specifically to the arrow (split) button.
136
+ * - **hasPopup**: Indicates the presence and type of popup triggered by the arrow button.
137
+ * Accepts string values: `"dialog"`, `"grid"`, `"listbox"`, `"menu"`, or `"tree"`.
138
+ * - **expanded**: Indicates whether the popup triggered by the arrow button is currently expanded.
139
+ * Accepts boolean values: `true` or `false`.
140
+ *
141
+ * @default {}
142
+ * @public
143
+ * @since 2.13.0
144
+ */
145
+ this.accessibilityAttributes = {};
123
146
  }
124
147
  onBeforeRendering() {
125
148
  if (this.disabled) {
@@ -286,21 +309,26 @@ let SplitButton = SplitButton_1 = class SplitButton extends UI5Element {
286
309
  get arrowButton() {
287
310
  return this.getDomRef()?.querySelector(".ui5-split-arrow-button");
288
311
  }
289
- get accInfo() {
312
+ get _computedAccessibilityAttributes() {
290
313
  return {
291
314
  root: {
292
- "description": SplitButton_1.i18nBundle.getText(SPLIT_BUTTON_DESCRIPTION),
293
- "keyboardHint": SplitButton_1.i18nBundle.getText(SPLIT_BUTTON_KEYBOARD_HINT),
315
+ hasPopup: this.accessibilityAttributes?.root?.hasPopup,
316
+ roleDescription: this.accessibilityAttributes?.root?.roleDescription || (this._hideArrowButton ? undefined : SplitButton_1.i18nBundle.getText(SPLIT_BUTTON_DESCRIPTION)),
317
+ title: this.accessibilityAttributes?.root?.title,
294
318
  },
295
319
  arrowButton: {
296
- "title": this.arrowButtonTooltip,
297
- "accessibilityAttributes": {
298
- "hasPopup": "menu",
299
- "expanded": this.effectiveActiveArrowButton,
300
- },
320
+ hasPopup: this.accessibilityAttributes?.arrowButton?.hasPopup || "menu",
321
+ expanded: this.accessibilityAttributes?.arrowButton?.expanded || this.effectiveActiveArrowButton,
322
+ title: this.accessibilityAttributes?.arrowButton?.title || this.arrowButtonTooltip,
301
323
  },
302
324
  };
303
325
  }
326
+ get accInfo() {
327
+ return {
328
+ "keyboardHint": SplitButton_1.i18nBundle.getText(SPLIT_BUTTON_KEYBOARD_HINT),
329
+ "description": SplitButton_1.i18nBundle.getText(SPLIT_BUTTON_DESCRIPTION),
330
+ };
331
+ }
304
332
  get arrowButtonTooltip() {
305
333
  return SplitButton_1.i18nBundle.getText(SPLIT_BUTTON_ARROW_BUTTON_TOOLTIP);
306
334
  }
@@ -341,6 +369,9 @@ __decorate([
341
369
  __decorate([
342
370
  property({ type: Boolean })
343
371
  ], SplitButton.prototype, "_hideArrowButton", void 0);
372
+ __decorate([
373
+ property({ type: Object })
374
+ ], SplitButton.prototype, "accessibilityAttributes", void 0);
344
375
  __decorate([
345
376
  slot({ type: Node, "default": true })
346
377
  ], SplitButton.prototype, "text", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"SplitButton.js","sourceRoot":"","sources":["../src/SplitButton.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 event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport {\n\tisEscape,\n\tisSpace,\n\tisEnter,\n\tisDown,\n\tisUp,\n\tisDownAlt,\n\tisUpAlt,\n\tisF4,\n\tisShift,\n\tisTabNext,\n\tisTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { AriaHasPopup, UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type ButtonDesign from \"./types/ButtonDesign.js\";\nimport type Button from \"./Button.js\";\n\nimport {\n\tSPLIT_BUTTON_DESCRIPTION,\n\tSPLIT_BUTTON_KEYBOARD_HINT,\n\tSPLIT_BUTTON_ARROW_BUTTON_TOOLTIP,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport SplitButtonTemplate from \"./SplitButtonTemplate.js\";\n\n// Styles\nimport SplitButtonCss from \"./generated/themes/SplitButton.css.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * `ui5-split-button` enables users to trigger actions. It is constructed of two separate actions -\n * default action and arrow action that can be activated by clicking or tapping, or by\n * pressing certain keyboard keys - `Space` or `Enter` for default action,\n * and `Arrow Down` or `Arrow Up` for arrow action.\n *\n * ### Usage\n *\n * `ui5-split-button` consists two separate buttons:\n *\n * - for the first one (default action) you can define some `text` or an `icon`, or both.\n * - the second one (arrow action) contains only `slim-arrow-down` icon.\n *\n * You can choose a `design` from a set of predefined types (the same as for ui5-button) that offer\n * different styling to correspond to the triggered action. Both text and arrow actions have the same design.\n *\n * You can set the `ui5-split-button` as enabled or disabled. Both parts of an enabled\n * `ui5-split-button` can be pressed by clicking or tapping it, or by certain keys, which changes\n * the style to provide visual feedback to the user that it is pressed or hovered over with\n * the mouse cursor. A disabled `ui5-split-button` appears inactive and any of the two buttons\n * cannot be pressed.\n *\n * ### Keyboard Handling\n *\n * - `Space` or `Enter` - triggers the default action\n * - `Shift` or `Escape` - if `Space` is pressed, releases the default action button without triggering the click event.\n * - `Arrow Down`, `Arrow Up`, `Alt`+`Arrow Down`, `Alt`+`Arrow Up`, or `F4` - triggers the arrow action\n * There are separate events that are fired on activating of `ui5-split-button` parts:\n *\n * - `click` for the first button (default action)\n * - `arrow-click` for the second button (arrow action)\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/SplitButton.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 * @public\n * @since 1.1.0\n */\n@customElement({\n\ttag: \"ui5-split-button\",\n\trenderer: jsxRenderer,\n\tstyles: SplitButtonCss,\n\ttemplate: SplitButtonTemplate,\n})\n/**\n * Fired when the user clicks on the default action.\n * @public\n */\n@event(\"click\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the user clicks on the arrow action.\n * @public\n */\n@event(\"arrow-click\", {\n\tbubbles: true,\n})\nclass SplitButton extends UI5Element {\n\teventDetails!: {\n\t\tclick: void;\n\t\t\"arrow-click\": void;\n\t}\n\t/**\n\t * Defines the icon to be displayed as graphical element within the component.\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * Example:\n\t *\n\t * See all available icons in 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 whether the arrow button should have the active state styles or not.\n\t * @default false\n\t * @public\n\t * @since 1.21.0\n\t */\n\t@property({ type: Boolean })\n\tactiveArrowButton = false;\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 accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the tabIndex of the component.\n\t * @default \"0\"\n\t * @private\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_tabIndex = 0\n\n\t/**\n\t * Indicates if there is Shift or Escape key pressed while Space key is down.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_shiftOrEscapePressedDuringSpace = false;\n\n\t/**\n\t * Defines the active state of the text button\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_textButtonActive = false;\n\n\t/**\n\t * Defines the state of the internal Button used for the Arrow button of the SplitButton.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_activeArrowButton = false;\n\n\t/**\n\t * Defines the display of the end icon as a graphical element within the default action of the component after the button text.\n\t * The SAP-icons font provides different options.\n\t *\n\t * Example:\n\t *\n\t * See all available icons in the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @private\n\t */\n\t@property({ type: String })\n\t_endIcon?: string;\n\n\t/**\n\t * Defines the visibility of the arrow button of the component.\n\t *\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_hideArrowButton = 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@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tonBeforeRendering() {\n\t\tif (this.disabled) {\n\t\t\tthis._tabIndex = -1;\n\t\t}\n\t}\n\n\t_handleMouseClick(e: UI5CustomEvent<Button, \"click\">) {\n\t\tthis._fireClick(e);\n\t}\n\n\t_onFocusOut() {\n\t\tif (this.disabled || this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._resetActionButtonStates();\n\t\tthis._setTabIndexValue();\n\t}\n\n\thandleTouchStart(e: TouchEvent | MouseEvent) {\n\t\te.stopPropagation();\n\t\tthis._textButtonActive = true;\n\t\tthis._tabIndex = -1;\n\t}\n\n\t_onInnerButtonFocusIn(e: FocusEvent) {\n\t\te.stopPropagation();\n\t\tthis._setTabIndexValue(true);\n\t\tconst target = e.target as Button;\n\t\ttarget.focus();\n\t}\n\n\t_onKeyDown(e: KeyboardEvent) {\n\t\tif (this._isArrowKeyAction(e)) {\n\t\t\tthis._handleArrowButtonAction(e);\n\t\t\tthis._activeArrowButton = true;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isDefaultAction(e)) {\n\t\t\tthis._handleDefaultAction(e);\n\t\t\treturn;\n\t\t}\n\n\t\tif ((isShift(e) || isEscape(e)) && this._textButtonActive) {\n\t\t\te.preventDefault();\n\t\t\tthis._shiftOrEscapePressedDuringSpace = true;\n\t\t}\n\n\t\tif (isEscape(e) && !this._textButtonActive) {\n\t\t\tthis._resetActionButtonStates();\n\t\t}\n\n\t\tthis._tabIndex = -1;\n\t}\n\n\t_onKeyUp(e: KeyboardEvent) {\n\t\tconst target = e.target as Button;\n\t\tif (this._isArrowKeyAction(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._activeArrowButton = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._textButtonActive = false;\n\t\t\tif (!this._shiftOrEscapePressedDuringSpace && target !== this.arrowButton) { // Do not fire click if Arrow button is focused by mouse and Space is pressed afterwards\n\t\t\t\tthis._fireClick();\n\t\t\t}\n\n\t\t\tthis._shiftOrEscapePressedDuringSpace = false;\n\t\t\treturn;\n\t\t}\n\n\t\tconst shouldToggleTextButtonActiveStateOff = isEnter(e) || (isShift(e) && this._textButtonActive);\n\n\t\tif (shouldToggleTextButtonActiveStateOff) {\n\t\t\tthis._textButtonActive = false;\n\t\t}\n\t}\n\n\t_resetActionButtonStates() {\n\t\tthis._activeArrowButton = false;\n\t\tthis._textButtonActive = false;\n\t\tthis._shiftOrEscapePressedDuringSpace = false;\n\t}\n\n\t_fireClick(e?: Event) {\n\t\te?.stopPropagation();\n\t\tthis.fireDecoratorEvent(\"click\");\n\t}\n\n\t_fireArrowClick(e?: Event) {\n\t\te?.stopPropagation();\n\n\t\tthis.fireDecoratorEvent(\"arrow-click\");\n\t}\n\n\t_textButtonRelease() {\n\t\tthis._textButtonActive = false;\n\t\tthis._tabIndex = -1;\n\t}\n\n\t_arrowButtonPress(e: MouseEvent) {\n\t\te.stopPropagation();\n\n\t\tthis._tabIndex = -1;\n\t}\n\n\t_arrowButtonRelease(e: MouseEvent) {\n\t\te.preventDefault();\n\n\t\tthis._tabIndex = -1;\n\t}\n\n\t_setTabIndexValue(innerButtonPressed?: boolean) {\n\t\tthis._tabIndex = this.disabled ? -1 : 0;\n\n\t\tif (this._tabIndex === -1 && innerButtonPressed) {\n\t\t\tthis._tabIndex = 0;\n\t\t}\n\t}\n\n\t_onArrowButtonActiveStateChange(e: CustomEvent) {\n\t\tif (this.activeArrowButton) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the pressed key is an arrow key.\n\t * @param e - keyboard event\n\t * @private\n\t */\n\t_isArrowKeyAction(e: KeyboardEvent): boolean {\n\t\treturn isDown(e) || isUp(e) || isDownAlt(e) || isUpAlt(e) || isF4(e);\n\t}\n\n\t/**\n\t * Checks if the pressed key is a default action key (Space or Enter).\n\t * @param e - keyboard event\n\t * @private\n\t */\n\t_isDefaultAction(e: KeyboardEvent): boolean {\n\t\treturn isSpace(e) || isEnter(e);\n\t}\n\n\t/**\n\t * Handles the click event and the focus on the arrow button.\n\t * @param e - keyboard event\n\t * @private\n\t */\n\t_handleArrowButtonAction(e: UI5CustomEvent<Button, \"click\"> | KeyboardEvent) {\n\t\te.preventDefault();\n\n\t\tthis._fireArrowClick(e);\n\t}\n\n\t/**\n\t * Handles the default action and the active state of the respective button.\n\t * @param e - keyboard event\n\t * @private\n\t */\n\t_handleDefaultAction(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tconst target = e.target as Button;\n\n\t\tif (this.arrowButton && target === this.arrowButton) {\n\t\t\tthis._activeArrowButton = true;\n\t\t\tthis._fireArrowClick();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._textButtonActive = true;\n\n\t\tif (isEnter(e)) {\n\t\t\tthis._fireClick(e);\n\t\t\treturn;\n\t\t}\n\n\t\tif (isTabPrevious(e) || isTabNext(e)) {\n\t\t\tthis._resetActionButtonStates();\n\t\t}\n\t}\n\n\tget effectiveActiveArrowButton() {\n\t\treturn this.activeArrowButton || this._activeArrowButton;\n\t}\n\n\tget textButtonAccText() {\n\t\treturn this.textContent;\n\t}\n\n\tget isTextButton() {\n\t\treturn !!this.textContent;\n\t}\n\n\tget textButton() {\n\t\treturn this.getDomRef()?.querySelector<Button>(\".ui5-split-text-button\");\n\t}\n\n\tget arrowButton() {\n\t\treturn this.getDomRef()?.querySelector<Button>(\".ui5-split-arrow-button\");\n\t}\n\n\tget accInfo() {\n\t\treturn {\n\t\t\troot: {\n\t\t\t\t\"description\": SplitButton.i18nBundle.getText(SPLIT_BUTTON_DESCRIPTION),\n\t\t\t\t\"keyboardHint\": SplitButton.i18nBundle.getText(SPLIT_BUTTON_KEYBOARD_HINT),\n\t\t\t},\n\t\t\tarrowButton: {\n\t\t\t\t\"title\": this.arrowButtonTooltip,\n\t\t\t\t\"accessibilityAttributes\": {\n\t\t\t\t\t\"hasPopup\": \"menu\" as AriaHasPopup,\n\t\t\t\t\t\"expanded\": this.effectiveActiveArrowButton,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tget arrowButtonTooltip() {\n\t\treturn SplitButton.i18nBundle.getText(SPLIT_BUTTON_ARROW_BUTTON_TOOLTIP);\n\t}\n\n\tget ariaLabelText() {\n\t\treturn [SplitButton.i18nBundle.getText(SPLIT_BUTTON_DESCRIPTION), SplitButton.i18nBundle.getText(SPLIT_BUTTON_KEYBOARD_HINT)].join(\" \");\n\t}\n}\n\nSplitButton.define();\n\nexport default SplitButton;\n"]}
1
+ {"version":3,"file":"SplitButton.js","sourceRoot":"","sources":["../src/SplitButton.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 event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport {\n\tisEscape,\n\tisSpace,\n\tisEnter,\n\tisDown,\n\tisUp,\n\tisDownAlt,\n\tisUpAlt,\n\tisF4,\n\tisShift,\n\tisTabNext,\n\tisTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { AccessibilityAttributes } from \"@ui5/webcomponents-base/dist/types.js\";\nimport type { AriaHasPopup, UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type ButtonDesign from \"./types/ButtonDesign.js\";\nimport type Button from \"./Button.js\";\n\nimport {\n\tSPLIT_BUTTON_DESCRIPTION,\n\tSPLIT_BUTTON_KEYBOARD_HINT,\n\tSPLIT_BUTTON_ARROW_BUTTON_TOOLTIP,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport SplitButtonTemplate from \"./SplitButtonTemplate.js\";\n\n// Styles\nimport SplitButtonCss from \"./generated/themes/SplitButton.css.js\";\n\ntype SplitButtonRootAccAttributes = Pick<AccessibilityAttributes, \"hasPopup\" | \"roleDescription\" | \"title\">;\ntype SplitButtonArrowButtonAccAtributes = Pick<AccessibilityAttributes, \"hasPopup\" | \"expanded\" | \"title\">;\ntype SplitButtonAccessibilityAttributes = {root?: SplitButtonRootAccAttributes, arrowButton?: SplitButtonArrowButtonAccAtributes}\n\n/**\n * @class\n *\n * ### Overview\n *\n * `ui5-split-button` enables users to trigger actions. It is constructed of two separate actions -\n * default action and arrow action that can be activated by clicking or tapping, or by\n * pressing certain keyboard keys - `Space` or `Enter` for default action,\n * and `Arrow Down` or `Arrow Up` for arrow action.\n *\n * ### Usage\n *\n * `ui5-split-button` consists two separate buttons:\n *\n * - for the first one (default action) you can define some `text` or an `icon`, or both.\n * - the second one (arrow action) contains only `slim-arrow-down` icon.\n *\n * You can choose a `design` from a set of predefined types (the same as for ui5-button) that offer\n * different styling to correspond to the triggered action. Both text and arrow actions have the same design.\n *\n * You can set the `ui5-split-button` as enabled or disabled. Both parts of an enabled\n * `ui5-split-button` can be pressed by clicking or tapping it, or by certain keys, which changes\n * the style to provide visual feedback to the user that it is pressed or hovered over with\n * the mouse cursor. A disabled `ui5-split-button` appears inactive and any of the two buttons\n * cannot be pressed.\n *\n * ### Keyboard Handling\n *\n * - `Space` or `Enter` - triggers the default action\n * - `Shift` or `Escape` - if `Space` is pressed, releases the default action button without triggering the click event.\n * - `Arrow Down`, `Arrow Up`, `Alt`+`Arrow Down`, `Alt`+`Arrow Up`, or `F4` - triggers the arrow action\n * There are separate events that are fired on activating of `ui5-split-button` parts:\n *\n * - `click` for the first button (default action)\n * - `arrow-click` for the second button (arrow action)\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/SplitButton.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 * @public\n * @since 1.1.0\n */\n@customElement({\n\ttag: \"ui5-split-button\",\n\trenderer: jsxRenderer,\n\tstyles: SplitButtonCss,\n\ttemplate: SplitButtonTemplate,\n})\n/**\n * Fired when the user clicks on the default action.\n * @public\n */\n@event(\"click\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the user clicks on the arrow action.\n * @public\n */\n@event(\"arrow-click\", {\n\tbubbles: true,\n})\nclass SplitButton extends UI5Element {\n\teventDetails!: {\n\t\tclick: void;\n\t\t\"arrow-click\": void;\n\t}\n\t/**\n\t * Defines the icon to be displayed as graphical element within the component.\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * Example:\n\t *\n\t * See all available icons in 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 whether the arrow button should have the active state styles or not.\n\t * @default false\n\t * @public\n\t * @since 1.21.0\n\t */\n\t@property({ type: Boolean })\n\tactiveArrowButton = false;\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 accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the tabIndex of the component.\n\t * @default \"0\"\n\t * @private\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_tabIndex = 0\n\n\t/**\n\t * Indicates if there is Shift or Escape key pressed while Space key is down.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_shiftOrEscapePressedDuringSpace = false;\n\n\t/**\n\t * Defines the active state of the text button\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_textButtonActive = false;\n\n\t/**\n\t * Defines the state of the internal Button used for the Arrow button of the SplitButton.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_activeArrowButton = false;\n\n\t/**\n\t * Defines the display of the end icon as a graphical element within the default action of the component after the button text.\n\t * The SAP-icons font provides different options.\n\t *\n\t * Example:\n\t *\n\t * See all available icons in the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @private\n\t */\n\t@property({ type: String })\n\t_endIcon?: string;\n\n\t/**\n\t * Defines the visibility of the arrow button of the component.\n\t *\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_hideArrowButton = false;\n\n\t/**\n\t * Defines the additional accessibility attributes that will be applied to the component.\n\t * The `accessibilityAttributes` property accepts an object with the following optional fields:\n\t *\n\t * - **root**: Attributes that will be applied to the main (text) button.\n\t * - **hasPopup**: Indicates the presence and type of popup triggered by the button.\n\t * Accepts string values: `\"dialog\"`, `\"grid\"`, `\"listbox\"`, `\"menu\"`, or `\"tree\"`.\n\t * - **roleDescription**: Provides a human-readable description for the role of the button.\n\t * Accepts any string value.\n\t * - **title**: Specifies a tooltip or description for screen readers.\n\t * Accepts any string value.\n\t *\n\t * - **arrowButton**: Attributes applied specifically to the arrow (split) button.\n\t * - **hasPopup**: Indicates the presence and type of popup triggered by the arrow button.\n\t * Accepts string values: `\"dialog\"`, `\"grid\"`, `\"listbox\"`, `\"menu\"`, or `\"tree\"`.\n\t * - **expanded**: Indicates whether the popup triggered by the arrow button is currently expanded.\n\t * Accepts boolean values: `true` or `false`.\n\t *\n\t * @default {}\n\t * @public\n\t * @since 2.13.0\n\t */\n\t@property({ type: Object })\n\taccessibilityAttributes: SplitButtonAccessibilityAttributes = {};\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@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tonBeforeRendering() {\n\t\tif (this.disabled) {\n\t\t\tthis._tabIndex = -1;\n\t\t}\n\t}\n\n\t_handleMouseClick(e: UI5CustomEvent<Button, \"click\">) {\n\t\tthis._fireClick(e);\n\t}\n\n\t_onFocusOut() {\n\t\tif (this.disabled || this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._resetActionButtonStates();\n\t\tthis._setTabIndexValue();\n\t}\n\n\thandleTouchStart(e: TouchEvent | MouseEvent) {\n\t\te.stopPropagation();\n\t\tthis._textButtonActive = true;\n\t\tthis._tabIndex = -1;\n\t}\n\n\t_onInnerButtonFocusIn(e: FocusEvent) {\n\t\te.stopPropagation();\n\t\tthis._setTabIndexValue(true);\n\t\tconst target = e.target as Button;\n\t\ttarget.focus();\n\t}\n\n\t_onKeyDown(e: KeyboardEvent) {\n\t\tif (this._isArrowKeyAction(e)) {\n\t\t\tthis._handleArrowButtonAction(e);\n\t\t\tthis._activeArrowButton = true;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isDefaultAction(e)) {\n\t\t\tthis._handleDefaultAction(e);\n\t\t\treturn;\n\t\t}\n\n\t\tif ((isShift(e) || isEscape(e)) && this._textButtonActive) {\n\t\t\te.preventDefault();\n\t\t\tthis._shiftOrEscapePressedDuringSpace = true;\n\t\t}\n\n\t\tif (isEscape(e) && !this._textButtonActive) {\n\t\t\tthis._resetActionButtonStates();\n\t\t}\n\n\t\tthis._tabIndex = -1;\n\t}\n\n\t_onKeyUp(e: KeyboardEvent) {\n\t\tconst target = e.target as Button;\n\t\tif (this._isArrowKeyAction(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._activeArrowButton = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis._textButtonActive = false;\n\t\t\tif (!this._shiftOrEscapePressedDuringSpace && target !== this.arrowButton) { // Do not fire click if Arrow button is focused by mouse and Space is pressed afterwards\n\t\t\t\tthis._fireClick();\n\t\t\t}\n\n\t\t\tthis._shiftOrEscapePressedDuringSpace = false;\n\t\t\treturn;\n\t\t}\n\n\t\tconst shouldToggleTextButtonActiveStateOff = isEnter(e) || (isShift(e) && this._textButtonActive);\n\n\t\tif (shouldToggleTextButtonActiveStateOff) {\n\t\t\tthis._textButtonActive = false;\n\t\t}\n\t}\n\n\t_resetActionButtonStates() {\n\t\tthis._activeArrowButton = false;\n\t\tthis._textButtonActive = false;\n\t\tthis._shiftOrEscapePressedDuringSpace = false;\n\t}\n\n\t_fireClick(e?: Event) {\n\t\te?.stopPropagation();\n\t\tthis.fireDecoratorEvent(\"click\");\n\t}\n\n\t_fireArrowClick(e?: Event) {\n\t\te?.stopPropagation();\n\n\t\tthis.fireDecoratorEvent(\"arrow-click\");\n\t}\n\n\t_textButtonRelease() {\n\t\tthis._textButtonActive = false;\n\t\tthis._tabIndex = -1;\n\t}\n\n\t_arrowButtonPress(e: MouseEvent) {\n\t\te.stopPropagation();\n\n\t\tthis._tabIndex = -1;\n\t}\n\n\t_arrowButtonRelease(e: MouseEvent) {\n\t\te.preventDefault();\n\n\t\tthis._tabIndex = -1;\n\t}\n\n\t_setTabIndexValue(innerButtonPressed?: boolean) {\n\t\tthis._tabIndex = this.disabled ? -1 : 0;\n\n\t\tif (this._tabIndex === -1 && innerButtonPressed) {\n\t\t\tthis._tabIndex = 0;\n\t\t}\n\t}\n\n\t_onArrowButtonActiveStateChange(e: CustomEvent) {\n\t\tif (this.activeArrowButton) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the pressed key is an arrow key.\n\t * @param e - keyboard event\n\t * @private\n\t */\n\t_isArrowKeyAction(e: KeyboardEvent): boolean {\n\t\treturn isDown(e) || isUp(e) || isDownAlt(e) || isUpAlt(e) || isF4(e);\n\t}\n\n\t/**\n\t * Checks if the pressed key is a default action key (Space or Enter).\n\t * @param e - keyboard event\n\t * @private\n\t */\n\t_isDefaultAction(e: KeyboardEvent): boolean {\n\t\treturn isSpace(e) || isEnter(e);\n\t}\n\n\t/**\n\t * Handles the click event and the focus on the arrow button.\n\t * @param e - keyboard event\n\t * @private\n\t */\n\t_handleArrowButtonAction(e: UI5CustomEvent<Button, \"click\"> | KeyboardEvent) {\n\t\te.preventDefault();\n\n\t\tthis._fireArrowClick(e);\n\t}\n\n\t/**\n\t * Handles the default action and the active state of the respective button.\n\t * @param e - keyboard event\n\t * @private\n\t */\n\t_handleDefaultAction(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tconst target = e.target as Button;\n\n\t\tif (this.arrowButton && target === this.arrowButton) {\n\t\t\tthis._activeArrowButton = true;\n\t\t\tthis._fireArrowClick();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._textButtonActive = true;\n\n\t\tif (isEnter(e)) {\n\t\t\tthis._fireClick(e);\n\t\t\treturn;\n\t\t}\n\n\t\tif (isTabPrevious(e) || isTabNext(e)) {\n\t\t\tthis._resetActionButtonStates();\n\t\t}\n\t}\n\n\tget effectiveActiveArrowButton() {\n\t\treturn this.activeArrowButton || this._activeArrowButton;\n\t}\n\n\tget textButtonAccText() {\n\t\treturn this.textContent;\n\t}\n\n\tget isTextButton() {\n\t\treturn !!this.textContent;\n\t}\n\n\tget textButton() {\n\t\treturn this.getDomRef()?.querySelector<Button>(\".ui5-split-text-button\");\n\t}\n\n\tget arrowButton() {\n\t\treturn this.getDomRef()?.querySelector<Button>(\".ui5-split-arrow-button\");\n\t}\n\n\tget _computedAccessibilityAttributes(): SplitButtonAccessibilityAttributes {\n\t\treturn {\n\t\t\troot: {\n\t\t\t\thasPopup: this.accessibilityAttributes?.root?.hasPopup,\n\t\t\t\troleDescription: this.accessibilityAttributes?.root?.roleDescription || (this._hideArrowButton ? undefined : SplitButton.i18nBundle.getText(SPLIT_BUTTON_DESCRIPTION)),\n\t\t\t\ttitle: this.accessibilityAttributes?.root?.title,\n\t\t\t},\n\t\t\tarrowButton: {\n\t\t\t\thasPopup: this.accessibilityAttributes?.arrowButton?.hasPopup || \"menu\" as AriaHasPopup,\n\t\t\t\texpanded: this.accessibilityAttributes?.arrowButton?.expanded || this.effectiveActiveArrowButton,\n\t\t\t\ttitle: this.accessibilityAttributes?.arrowButton?.title || this.arrowButtonTooltip,\n\t\t\t},\n\t\t};\n\t}\n\n\tget accInfo() {\n\t\treturn {\n\t\t\t\"keyboardHint\": SplitButton.i18nBundle.getText(SPLIT_BUTTON_KEYBOARD_HINT),\n\t\t\t\"description\": SplitButton.i18nBundle.getText(SPLIT_BUTTON_DESCRIPTION),\n\t\t};\n\t}\n\n\tget arrowButtonTooltip() {\n\t\treturn SplitButton.i18nBundle.getText(SPLIT_BUTTON_ARROW_BUTTON_TOOLTIP);\n\t}\n\n\tget ariaLabelText() {\n\t\treturn [SplitButton.i18nBundle.getText(SPLIT_BUTTON_DESCRIPTION), SplitButton.i18nBundle.getText(SPLIT_BUTTON_KEYBOARD_HINT)].join(\" \");\n\t}\n}\n\nSplitButton.define();\n\nexport default SplitButton;\nexport type {\n\tSplitButtonAccessibilityAttributes,\n};\n"]}
@@ -1,8 +1,7 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ui5/webcomponents-base/jsx-runtime";
2
2
  import slimArrowDown from "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
3
3
  import Button from "./Button.js";
4
4
  export default function SplitButtonTemplate() {
5
- return (_jsxs("div", { role: this._hideArrowButton ? "button" : "group", class: "ui5-split-button-root", tabindex: this._tabIndex, "aria-labelledby": `${this._id}-invisibleTextDefault ${this._id}-invisibleText`, onFocusOut: this._onFocusOut, onKeyDown: this._onKeyDown, onKeyUp: this._onKeyUp, children: [_jsx(Button, { class: "ui5-split-text-button", design: this.design, icon: this.icon, endIcon: this._endIcon, tabindex: -1, disabled: this.disabled, active: this._textButtonActive, exportparts: "icon,endIcon,button", onClick: this._handleMouseClick, onTouchStart: this.handleTouchStart, onMouseDown: this.handleTouchStart, onMouseUp: this._textButtonRelease, onFocusIn: this._onInnerButtonFocusIn, onFocusOut: this._onFocusOut, children: this.isTextButton && _jsx("slot", {}) }), !this._hideArrowButton &&
6
- _jsx(Button, { class: "ui5-split-arrow-button", design: this.design, icon: slimArrowDown, tabindex: -1, tooltip: this.accInfo.arrowButton.title, accessibilityAttributes: this.accInfo.arrowButton.accessibilityAttributes, disabled: this.disabled, active: this.effectiveActiveArrowButton, part: "arrowButton", onClick: this._handleArrowButtonAction, onMouseDown: this._arrowButtonPress, onMouseUp: this._arrowButtonRelease, onFocusIn: this._onInnerButtonFocusIn, onActiveStateChange: this._onArrowButtonActiveStateChange }), _jsxs("span", { id: `${this._id}-invisibleText`, class: "ui5-hidden-text", children: [this.accInfo.root.description, " ", this.accInfo.root.keyboardHint, " ", this.accessibleName] }), _jsx("span", { id: `${this._id}-invisibleTextDefault`, class: "ui5-hidden-text", children: this.textButtonAccText })] }));
5
+ return (_jsxs("div", { role: this._hideArrowButton ? "button" : "group", class: "ui5-split-button-root", tabindex: this._tabIndex, "aria-labelledby": this._hideArrowButton ? undefined : `${this._id}-invisibleTextDefault ${this._id}-invisibleText`, "aria-haspopup": this._computedAccessibilityAttributes?.root?.hasPopup, "aria-roledescription": this._computedAccessibilityAttributes?.root?.roleDescription, "aria-label": this._hideArrowButton ? this._computedAccessibilityAttributes?.root?.title : undefined, onFocusOut: this._onFocusOut, onKeyDown: this._onKeyDown, onKeyUp: this._onKeyUp, children: [_jsx(Button, { class: "ui5-split-text-button", design: this.design, icon: this.icon, endIcon: this._endIcon, tabindex: -1, disabled: this.disabled, active: this._textButtonActive, exportparts: "icon,endIcon,button", onClick: this._handleMouseClick, onTouchStart: this.handleTouchStart, onMouseDown: this.handleTouchStart, onMouseUp: this._textButtonRelease, onFocusIn: this._onInnerButtonFocusIn, onFocusOut: this._onFocusOut, tooltip: this._computedAccessibilityAttributes?.root?.title, children: this.isTextButton && _jsx("slot", {}) }), !this._hideArrowButton && (_jsxs(_Fragment, { children: [_jsx(Button, { class: "ui5-split-arrow-button", design: this.design, icon: slimArrowDown, tabindex: -1, tooltip: this._computedAccessibilityAttributes?.arrowButton?.title, accessibilityAttributes: { hasPopup: this._computedAccessibilityAttributes?.arrowButton?.hasPopup, expanded: this._computedAccessibilityAttributes?.arrowButton?.expanded }, disabled: this.disabled, active: this.effectiveActiveArrowButton, part: "arrowButton", onClick: this._handleArrowButtonAction, onMouseDown: this._arrowButtonPress, onMouseUp: this._arrowButtonRelease, onFocusIn: this._onInnerButtonFocusIn, onActiveStateChange: this._onArrowButtonActiveStateChange }), _jsxs("span", { id: `${this._id}-invisibleText`, class: "ui5-hidden-text", children: [this.accInfo.keyboardHint, " ", this.accessibleName] }), _jsx("span", { id: `${this._id}-invisibleTextDefault`, class: "ui5-hidden-text", children: this._computedAccessibilityAttributes?.root?.title || this.textButtonAccText })] }))] }));
7
6
  }
8
7
  //# sourceMappingURL=SplitButtonTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SplitButtonTemplate.js","sourceRoot":"","sources":["../src/SplitButtonTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,aAAa,MAAM,kDAAkD,CAAC;AAC7E,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,MAAM,CAAC,OAAO,UAAU,mBAAmB;IAC1C,OAAO,CACN,eACC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAChD,KAAK,EAAC,uBAAuB,EAC7B,QAAQ,EAAE,IAAI,CAAC,SAAS,qBACP,GAAG,IAAI,CAAC,GAAG,yBAAyB,IAAI,CAAC,GAAG,gBAAgB,EAC7E,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,aAEtB,KAAC,MAAM,IACN,KAAK,EAAC,uBAAuB,EAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,CAAC,EACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAC9B,WAAW,EAAC,qBAAqB,EACjC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAC/B,YAAY,EAAE,IAAI,CAAC,gBAAgB,EACnC,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAClC,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAClC,SAAS,EAAE,IAAI,CAAC,qBAAqB,EACrC,UAAU,EAAE,IAAI,CAAC,WAAW,YAE3B,IAAI,CAAC,YAAY,IAAI,gBAAa,GAC3B,EAER,CAAC,IAAI,CAAC,gBAAgB;gBACtB,KAAC,MAAM,IACN,KAAK,EAAC,wBAAwB,EAC9B,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,CAAC,CAAC,EACZ,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EACvC,uBAAuB,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,uBAAuB,EACzE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,MAAM,EAAE,IAAI,CAAC,0BAA0B,EACvC,IAAI,EAAC,aAAa,EAClB,OAAO,EAAE,IAAI,CAAC,wBAAwB,EACtC,WAAW,EAAE,IAAI,CAAC,iBAAiB,EACnC,SAAS,EAAE,IAAI,CAAC,mBAAmB,EACnC,SAAS,EAAE,IAAI,CAAC,qBAAqB,EACrC,mBAAmB,EAAE,IAAI,CAAC,+BAA+B,GAEjD,EAEV,gBAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,gBAAgB,EAAE,KAAK,EAAC,iBAAiB,aAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,OAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,OAAG,IAAI,CAAC,cAAc,IAAQ,EAC5J,eAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,uBAAuB,EAAE,KAAK,EAAC,iBAAiB,YAAE,IAAI,CAAC,iBAAiB,GAAQ,IAChG,CACN,CAAC;AACH,CAAC","sourcesContent":["import type SplitButton from \"./SplitButton.js\";\nimport slimArrowDown from \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport Button from \"./Button.js\";\n\nexport default function SplitButtonTemplate(this: SplitButton) {\n\treturn (\n\t\t<div\n\t\t\trole={this._hideArrowButton ? \"button\" : \"group\"}\n\t\t\tclass=\"ui5-split-button-root\"\n\t\t\ttabindex={this._tabIndex}\n\t\t\taria-labelledby={`${this._id}-invisibleTextDefault ${this._id}-invisibleText`}\n\t\t\tonFocusOut={this._onFocusOut}\n\t\t\tonKeyDown={this._onKeyDown}\n\t\t\tonKeyUp={this._onKeyUp}\n\t\t>\n\t\t\t<Button\n\t\t\t\tclass=\"ui5-split-text-button\"\n\t\t\t\tdesign={this.design}\n\t\t\t\ticon={this.icon}\n\t\t\t\tendIcon={this._endIcon}\n\t\t\t\ttabindex={-1}\n\t\t\t\tdisabled={this.disabled}\n\t\t\t\tactive={this._textButtonActive}\n\t\t\t\texportparts=\"icon,endIcon,button\"\n\t\t\t\tonClick={this._handleMouseClick}\n\t\t\t\tonTouchStart={this.handleTouchStart}\n\t\t\t\tonMouseDown={this.handleTouchStart}\n\t\t\t\tonMouseUp={this._textButtonRelease}\n\t\t\t\tonFocusIn={this._onInnerButtonFocusIn}\n\t\t\t\tonFocusOut={this._onFocusOut}\n\t\t\t>\n\t\t\t\t{this.isTextButton && <slot></slot> }\n\t\t\t</Button>\n\n\t\t\t{!this._hideArrowButton &&\n\t\t\t\t<Button\n\t\t\t\t\tclass=\"ui5-split-arrow-button\"\n\t\t\t\t\tdesign={this.design}\n\t\t\t\t\ticon={slimArrowDown}\n\t\t\t\t\ttabindex={-1}\n\t\t\t\t\ttooltip={this.accInfo.arrowButton.title}\n\t\t\t\t\taccessibilityAttributes={this.accInfo.arrowButton.accessibilityAttributes}\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\tactive={this.effectiveActiveArrowButton}\n\t\t\t\t\tpart=\"arrowButton\"\n\t\t\t\t\tonClick={this._handleArrowButtonAction}\n\t\t\t\t\tonMouseDown={this._arrowButtonPress}\n\t\t\t\t\tonMouseUp={this._arrowButtonRelease}\n\t\t\t\t\tonFocusIn={this._onInnerButtonFocusIn}\n\t\t\t\t\tonActiveStateChange={this._onArrowButtonActiveStateChange}\n\t\t\t\t>\n\t\t\t\t</Button>\n\t\t\t}\n\t\t\t<span id={`${this._id}-invisibleText`} class=\"ui5-hidden-text\">{this.accInfo.root.description} {this.accInfo.root.keyboardHint} {this.accessibleName}</span>\n\t\t\t<span id={`${this._id}-invisibleTextDefault`} class=\"ui5-hidden-text\">{this.textButtonAccText}</span>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"file":"SplitButtonTemplate.js","sourceRoot":"","sources":["../src/SplitButtonTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,aAAa,MAAM,kDAAkD,CAAC;AAC7E,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,MAAM,CAAC,OAAO,UAAU,mBAAmB;IAC1C,OAAO,CACN,eACC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAChD,KAAK,EAAC,uBAAuB,EAC7B,QAAQ,EAAE,IAAI,CAAC,SAAS,qBACP,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,yBAAyB,IAAI,CAAC,GAAG,gBAAgB,mBAClG,IAAI,CAAC,gCAAgC,EAAE,IAAI,EAAE,QAAQ,0BAC9C,IAAI,CAAC,gCAAgC,EAAE,IAAI,EAAE,eAAe,gBACtE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,gCAAgC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,EAClG,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,aAEtB,KAAC,MAAM,IACN,KAAK,EAAC,uBAAuB,EAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,CAAC,EACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAC9B,WAAW,EAAC,qBAAqB,EACjC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAC/B,YAAY,EAAE,IAAI,CAAC,gBAAgB,EACnC,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAClC,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAClC,SAAS,EAAE,IAAI,CAAC,qBAAqB,EACrC,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,OAAO,EAAE,IAAI,CAAC,gCAAgC,EAAE,IAAI,EAAE,KAAK,YAE1D,IAAI,CAAC,YAAY,IAAI,gBAAa,GAC3B,EAER,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAC1B,8BACC,KAAC,MAAM,IACN,KAAK,EAAC,wBAAwB,EAC9B,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,CAAC,CAAC,EACZ,OAAO,EAAE,IAAI,CAAC,gCAAgC,EAAE,WAAW,EAAE,KAAK,EAClE,uBAAuB,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,gCAAgC,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,gCAAgC,EAAE,WAAW,EAAE,QAAQ,EAAE,EAC3K,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,MAAM,EAAE,IAAI,CAAC,0BAA0B,EACvC,IAAI,EAAC,aAAa,EAClB,OAAO,EAAE,IAAI,CAAC,wBAAwB,EACtC,WAAW,EAAE,IAAI,CAAC,iBAAiB,EACnC,SAAS,EAAE,IAAI,CAAC,mBAAmB,EACnC,SAAS,EAAE,IAAI,CAAC,qBAAqB,EACrC,mBAAmB,EAAE,IAAI,CAAC,+BAA+B,GAEjD,EACT,gBAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,gBAAgB,EAAE,KAAK,EAAC,iBAAiB,aAAE,IAAI,CAAC,OAAO,CAAC,YAAY,OAAG,IAAI,CAAC,cAAc,IAAQ,EACvH,eAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,uBAAuB,EAAE,KAAK,EAAC,iBAAiB,YAAE,IAAI,CAAC,gCAAgC,EAAE,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,iBAAiB,GAAQ,IACzJ,CACH,IACI,CACN,CAAC;AACH,CAAC","sourcesContent":["import type SplitButton from \"./SplitButton.js\";\nimport slimArrowDown from \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport Button from \"./Button.js\";\n\nexport default function SplitButtonTemplate(this: SplitButton) {\n\treturn (\n\t\t<div\n\t\t\trole={this._hideArrowButton ? \"button\" : \"group\"}\n\t\t\tclass=\"ui5-split-button-root\"\n\t\t\ttabindex={this._tabIndex}\n\t\t\taria-labelledby={this._hideArrowButton ? undefined : `${this._id}-invisibleTextDefault ${this._id}-invisibleText`}\n\t\t\taria-haspopup={this._computedAccessibilityAttributes?.root?.hasPopup}\n\t\t\taria-roledescription={this._computedAccessibilityAttributes?.root?.roleDescription}\n\t\t\taria-label={this._hideArrowButton ? this._computedAccessibilityAttributes?.root?.title : undefined}\n\t\t\tonFocusOut={this._onFocusOut}\n\t\t\tonKeyDown={this._onKeyDown}\n\t\t\tonKeyUp={this._onKeyUp}\n\t\t>\n\t\t\t<Button\n\t\t\t\tclass=\"ui5-split-text-button\"\n\t\t\t\tdesign={this.design}\n\t\t\t\ticon={this.icon}\n\t\t\t\tendIcon={this._endIcon}\n\t\t\t\ttabindex={-1}\n\t\t\t\tdisabled={this.disabled}\n\t\t\t\tactive={this._textButtonActive}\n\t\t\t\texportparts=\"icon,endIcon,button\"\n\t\t\t\tonClick={this._handleMouseClick}\n\t\t\t\tonTouchStart={this.handleTouchStart}\n\t\t\t\tonMouseDown={this.handleTouchStart}\n\t\t\t\tonMouseUp={this._textButtonRelease}\n\t\t\t\tonFocusIn={this._onInnerButtonFocusIn}\n\t\t\t\tonFocusOut={this._onFocusOut}\n\t\t\t\ttooltip={this._computedAccessibilityAttributes?.root?.title}\n\t\t\t>\n\t\t\t\t{this.isTextButton && <slot></slot> }\n\t\t\t</Button>\n\n\t\t\t{!this._hideArrowButton && (\n\t\t\t\t<>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclass=\"ui5-split-arrow-button\"\n\t\t\t\t\t\tdesign={this.design}\n\t\t\t\t\t\ticon={slimArrowDown}\n\t\t\t\t\t\ttabindex={-1}\n\t\t\t\t\t\ttooltip={this._computedAccessibilityAttributes?.arrowButton?.title}\n\t\t\t\t\t\taccessibilityAttributes={{ hasPopup: this._computedAccessibilityAttributes?.arrowButton?.hasPopup, expanded: this._computedAccessibilityAttributes?.arrowButton?.expanded }}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\tactive={this.effectiveActiveArrowButton}\n\t\t\t\t\t\tpart=\"arrowButton\"\n\t\t\t\t\t\tonClick={this._handleArrowButtonAction}\n\t\t\t\t\t\tonMouseDown={this._arrowButtonPress}\n\t\t\t\t\t\tonMouseUp={this._arrowButtonRelease}\n\t\t\t\t\t\tonFocusIn={this._onInnerButtonFocusIn}\n\t\t\t\t\t\tonActiveStateChange={this._onArrowButtonActiveStateChange}\n\t\t\t\t\t>\n\t\t\t\t\t</Button>\n\t\t\t\t\t<span id={`${this._id}-invisibleText`} class=\"ui5-hidden-text\">{this.accInfo.keyboardHint} {this.accessibleName}</span>\n\t\t\t\t\t<span id={`${this._id}-invisibleTextDefault`} class=\"ui5-hidden-text\">{this._computedAccessibilityAttributes?.root?.title || this.textButtonAccText}</span>\n\t\t\t\t</>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n"]}
package/dist/Table.d.ts CHANGED
@@ -310,7 +310,9 @@ declare class Table extends UI5Element {
310
310
  get _stickyElements(): (TableHeaderRow | TableHeaderCell)[];
311
311
  get _effectiveNoDataText(): string;
312
312
  get _ariaLabel(): string | undefined;
313
- get _ariaRowCount(): number | undefined;
313
+ get _ariaDescription(): string | undefined;
314
+ get _ariaRowCount(): number;
315
+ get _ariaColCount(): number;
314
316
  get _ariaMultiSelectable(): boolean | undefined;
315
317
  get isTable(): boolean;
316
318
  }
package/dist/Table.js CHANGED
@@ -355,8 +355,24 @@ let Table = Table_1 = class Table extends UI5Element {
355
355
  get _ariaLabel() {
356
356
  return getEffectiveAriaLabelText(this) || undefined;
357
357
  }
358
+ get _ariaDescription() {
359
+ return this._getSelection()?.getAriaDescriptionForTable();
360
+ }
358
361
  get _ariaRowCount() {
359
- return this._getVirtualizer()?.rowCount || undefined;
362
+ return this._getVirtualizer()?.rowCount || this.rows.length + 1;
363
+ }
364
+ get _ariaColCount() {
365
+ if (!this.headerRow[0]) {
366
+ return 0;
367
+ }
368
+ let ariaColCount = this.headerRow[0]._visibleCells.length;
369
+ if (this._isRowSelectorRequired) {
370
+ ariaColCount++;
371
+ }
372
+ if (this.rowActionCount > 0) {
373
+ ariaColCount++;
374
+ }
375
+ return ariaColCount;
360
376
  }
361
377
  get _ariaMultiSelectable() {
362
378
  const selection = this._getSelection();