@ui5/webcomponents 2.15.0-rc.0 → 2.15.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (523) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/cypress.config.js +0 -12
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/Button.d.ts +7 -2
  5. package/dist/Button.js +14 -3
  6. package/dist/Button.js.map +1 -1
  7. package/dist/ButtonTemplate.js +1 -1
  8. package/dist/ButtonTemplate.js.map +1 -1
  9. package/dist/ComboBox.d.ts +16 -0
  10. package/dist/ComboBox.js +42 -1
  11. package/dist/ComboBox.js.map +1 -1
  12. package/dist/Dialog.js +8 -2
  13. package/dist/Dialog.js.map +1 -1
  14. package/dist/Input.d.ts +15 -0
  15. package/dist/Input.js +43 -1
  16. package/dist/Input.js.map +1 -1
  17. package/dist/MultiComboBox.d.ts +17 -1
  18. package/dist/MultiComboBox.js +75 -8
  19. package/dist/MultiComboBox.js.map +1 -1
  20. package/dist/MultiInput.d.ts +1 -0
  21. package/dist/MultiInput.js +5 -9
  22. package/dist/MultiInput.js.map +1 -1
  23. package/dist/MultiInputTemplate.js +1 -1
  24. package/dist/MultiInputTemplate.js.map +1 -1
  25. package/dist/SegmentedButtonTemplate.js +1 -1
  26. package/dist/SegmentedButtonTemplate.js.map +1 -1
  27. package/dist/Select.d.ts +3 -1
  28. package/dist/Select.js +8 -1
  29. package/dist/Select.js.map +1 -1
  30. package/dist/SelectPopoverTemplate.js +1 -1
  31. package/dist/SelectPopoverTemplate.js.map +1 -1
  32. package/dist/SplitButton.d.ts +3 -2
  33. package/dist/SplitButton.js +3 -1
  34. package/dist/SplitButton.js.map +1 -1
  35. package/dist/SplitButtonTemplate.js +1 -1
  36. package/dist/SplitButtonTemplate.js.map +1 -1
  37. package/dist/Tokenizer.d.ts +27 -2
  38. package/dist/Tokenizer.js +54 -14
  39. package/dist/Tokenizer.js.map +1 -1
  40. package/dist/Toolbar.js +6 -3
  41. package/dist/Toolbar.js.map +1 -1
  42. package/dist/ToolbarItem.d.ts +2 -0
  43. package/dist/ToolbarItem.js +4 -0
  44. package/dist/ToolbarItem.js.map +1 -1
  45. package/dist/ToolbarSelect.js +1 -1
  46. package/dist/ToolbarSelect.js.map +1 -1
  47. package/dist/css/themes/Avatar.css +1 -1
  48. package/dist/css/themes/AvatarGroup.css +1 -1
  49. package/dist/css/themes/Bar.css +1 -1
  50. package/dist/css/themes/Breadcrumbs.css +1 -1
  51. package/dist/css/themes/BusyIndicator.css +1 -1
  52. package/dist/css/themes/Button.css +1 -1
  53. package/dist/css/themes/ButtonBadge.css +1 -1
  54. package/dist/css/themes/Calendar.css +1 -1
  55. package/dist/css/themes/CalendarHeader.css +1 -1
  56. package/dist/css/themes/CalendarLegend.css +1 -1
  57. package/dist/css/themes/CalendarLegendItem.css +1 -1
  58. package/dist/css/themes/Card.css +1 -1
  59. package/dist/css/themes/CardHeader.css +1 -1
  60. package/dist/css/themes/Carousel.css +1 -1
  61. package/dist/css/themes/CheckBox.css +1 -1
  62. package/dist/css/themes/ColorPalette.css +1 -1
  63. package/dist/css/themes/ColorPaletteItem.css +1 -1
  64. package/dist/css/themes/ColorPalettePopover.css +1 -1
  65. package/dist/css/themes/ColorPicker.css +1 -1
  66. package/dist/css/themes/ComboBox.css +1 -1
  67. package/dist/css/themes/ComboBoxItem.css +1 -1
  68. package/dist/css/themes/DatePicker.css +1 -1
  69. package/dist/css/themes/DatePickerPopover.css +1 -1
  70. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  71. package/dist/css/themes/DayPicker.css +1 -1
  72. package/dist/css/themes/Dialog.css +1 -1
  73. package/dist/css/themes/DynamicDateRange.css +1 -1
  74. package/dist/css/themes/DynamicDateRangePopover.css +1 -1
  75. package/dist/css/themes/FileUploader.css +1 -1
  76. package/dist/css/themes/Form.css +1 -1
  77. package/dist/css/themes/FormItem.css +1 -1
  78. package/dist/css/themes/FormItemSpan.css +1 -1
  79. package/dist/css/themes/GrowingButton.css +1 -1
  80. package/dist/css/themes/Icon.css +1 -1
  81. package/dist/css/themes/Input.css +1 -1
  82. package/dist/css/themes/InputIcon.css +1 -1
  83. package/dist/css/themes/InputSharedStyles.css +1 -1
  84. package/dist/css/themes/Link.css +1 -1
  85. package/dist/css/themes/List.css +1 -1
  86. package/dist/css/themes/ListItem.css +1 -1
  87. package/dist/css/themes/ListItemBase.css +1 -1
  88. package/dist/css/themes/ListItemCustom.css +1 -1
  89. package/dist/css/themes/ListItemGroup.css +1 -1
  90. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  91. package/dist/css/themes/ListItemIcon.css +1 -1
  92. package/dist/css/themes/Menu.css +1 -1
  93. package/dist/css/themes/MenuItem.css +1 -1
  94. package/dist/css/themes/MessageStrip.css +1 -1
  95. package/dist/css/themes/MonthPicker.css +1 -1
  96. package/dist/css/themes/MultiComboBox.css +1 -1
  97. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  98. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  99. package/dist/css/themes/MultiInput.css +1 -1
  100. package/dist/css/themes/OptionBase.css +1 -1
  101. package/dist/css/themes/Panel.css +1 -1
  102. package/dist/css/themes/Popover.css +1 -1
  103. package/dist/css/themes/PopupsCommon.css +1 -1
  104. package/dist/css/themes/ProgressIndicator.css +1 -1
  105. package/dist/css/themes/RadioButton.css +1 -1
  106. package/dist/css/themes/RangeSlider.css +1 -1
  107. package/dist/css/themes/RatingIndicator.css +1 -1
  108. package/dist/css/themes/ResponsivePopover.css +1 -1
  109. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  110. package/dist/css/themes/SegmentedButton.css +1 -1
  111. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  112. package/dist/css/themes/Select.css +1 -1
  113. package/dist/css/themes/SliderBase.css +1 -1
  114. package/dist/css/themes/SplitButton.css +1 -1
  115. package/dist/css/themes/StepInput.css +1 -1
  116. package/dist/css/themes/SuggestionItem.css +1 -1
  117. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  118. package/dist/css/themes/Switch.css +1 -1
  119. package/dist/css/themes/TabContainer.css +1 -1
  120. package/dist/css/themes/TabInOverflow.css +1 -1
  121. package/dist/css/themes/TabInStrip.css +1 -1
  122. package/dist/css/themes/TabSemanticIcon.css +1 -1
  123. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  124. package/dist/css/themes/TableCellBase.css +1 -1
  125. package/dist/css/themes/TableHeaderRow.css +1 -1
  126. package/dist/css/themes/TableRow.css +1 -1
  127. package/dist/css/themes/TableRowActionBase.css +1 -1
  128. package/dist/css/themes/TableRowBase.css +1 -1
  129. package/dist/css/themes/Tag.css +1 -1
  130. package/dist/css/themes/Text.css +1 -1
  131. package/dist/css/themes/TextArea.css +1 -1
  132. package/dist/css/themes/TimePicker.css +1 -1
  133. package/dist/css/themes/Toast.css +1 -1
  134. package/dist/css/themes/ToggleButton.css +1 -1
  135. package/dist/css/themes/Token.css +1 -1
  136. package/dist/css/themes/Tokenizer.css +1 -1
  137. package/dist/css/themes/TokenizerPopover.css +1 -1
  138. package/dist/css/themes/Toolbar.css +1 -1
  139. package/dist/css/themes/ToolbarButton.css +1 -1
  140. package/dist/css/themes/ToolbarPopover.css +1 -1
  141. package/dist/css/themes/ToolbarSelect.css +1 -1
  142. package/dist/css/themes/ToolbarSeparator.css +1 -1
  143. package/dist/css/themes/TreeItem.css +1 -1
  144. package/dist/css/themes/ValueStateMessage.css +1 -1
  145. package/dist/css/themes/ValueStateVariables.css +1 -1
  146. package/dist/css/themes/YearPicker.css +1 -1
  147. package/dist/css/themes/YearRangePicker.css +1 -1
  148. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  149. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  150. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  151. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  152. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  153. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  154. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  155. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  156. package/dist/custom-elements-internal.json +41 -7
  157. package/dist/custom-elements.json +41 -7
  158. package/dist/features/InputComposition.d.ts +12 -0
  159. package/dist/features/InputComposition.js +30 -0
  160. package/dist/features/InputComposition.js.map +1 -0
  161. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  162. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  163. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  164. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  165. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  166. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  167. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  168. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  169. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  170. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  171. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  172. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  173. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  174. package/dist/generated/themes/Avatar.css.js +1 -1
  175. package/dist/generated/themes/Avatar.css.js.map +1 -1
  176. package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
  177. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  178. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  179. package/dist/generated/themes/Bar.css.d.ts +1 -1
  180. package/dist/generated/themes/Bar.css.js +1 -1
  181. package/dist/generated/themes/Bar.css.js.map +1 -1
  182. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  183. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  184. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  185. package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
  186. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  187. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  188. package/dist/generated/themes/Button.css.d.ts +1 -1
  189. package/dist/generated/themes/Button.css.js +1 -1
  190. package/dist/generated/themes/Button.css.js.map +1 -1
  191. package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
  192. package/dist/generated/themes/ButtonBadge.css.js +1 -1
  193. package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
  194. package/dist/generated/themes/Calendar.css.d.ts +1 -1
  195. package/dist/generated/themes/Calendar.css.js +1 -1
  196. package/dist/generated/themes/Calendar.css.js.map +1 -1
  197. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  198. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  199. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  200. package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
  201. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  202. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  203. package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
  204. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  205. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  206. package/dist/generated/themes/Card.css.d.ts +1 -1
  207. package/dist/generated/themes/Card.css.js +1 -1
  208. package/dist/generated/themes/Card.css.js.map +1 -1
  209. package/dist/generated/themes/CardHeader.css.d.ts +1 -1
  210. package/dist/generated/themes/CardHeader.css.js +1 -1
  211. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  212. package/dist/generated/themes/Carousel.css.d.ts +1 -1
  213. package/dist/generated/themes/Carousel.css.js +1 -1
  214. package/dist/generated/themes/Carousel.css.js.map +1 -1
  215. package/dist/generated/themes/CheckBox.css.d.ts +1 -1
  216. package/dist/generated/themes/CheckBox.css.js +1 -1
  217. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  218. package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
  219. package/dist/generated/themes/ColorPalette.css.js +1 -1
  220. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  221. package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
  222. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  223. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  224. package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
  225. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  226. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  227. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  228. package/dist/generated/themes/ColorPicker.css.js +1 -1
  229. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  230. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  231. package/dist/generated/themes/ComboBox.css.js +1 -1
  232. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  233. package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
  234. package/dist/generated/themes/ComboBoxItem.css.js +1 -1
  235. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
  236. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  237. package/dist/generated/themes/DatePicker.css.js +1 -1
  238. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  239. package/dist/generated/themes/DatePickerPopover.css.d.ts +1 -1
  240. package/dist/generated/themes/DatePickerPopover.css.js +1 -1
  241. package/dist/generated/themes/DatePickerPopover.css.js.map +1 -1
  242. package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
  243. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  244. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  245. package/dist/generated/themes/DayPicker.css.d.ts +1 -1
  246. package/dist/generated/themes/DayPicker.css.js +1 -1
  247. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  248. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  249. package/dist/generated/themes/Dialog.css.js +1 -1
  250. package/dist/generated/themes/Dialog.css.js.map +1 -1
  251. package/dist/generated/themes/DynamicDateRange.css.d.ts +1 -1
  252. package/dist/generated/themes/DynamicDateRange.css.js +1 -1
  253. package/dist/generated/themes/DynamicDateRange.css.js.map +1 -1
  254. package/dist/generated/themes/DynamicDateRangePopover.css.d.ts +1 -1
  255. package/dist/generated/themes/DynamicDateRangePopover.css.js +1 -1
  256. package/dist/generated/themes/DynamicDateRangePopover.css.js.map +1 -1
  257. package/dist/generated/themes/FileUploader.css.d.ts +1 -1
  258. package/dist/generated/themes/FileUploader.css.js +1 -1
  259. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  260. package/dist/generated/themes/Form.css.d.ts +1 -1
  261. package/dist/generated/themes/Form.css.js +1 -1
  262. package/dist/generated/themes/Form.css.js.map +1 -1
  263. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  264. package/dist/generated/themes/FormItem.css.js +1 -1
  265. package/dist/generated/themes/FormItem.css.js.map +1 -1
  266. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  267. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  268. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  269. package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
  270. package/dist/generated/themes/GrowingButton.css.js +1 -1
  271. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  272. package/dist/generated/themes/Icon.css.d.ts +1 -1
  273. package/dist/generated/themes/Icon.css.js +1 -1
  274. package/dist/generated/themes/Icon.css.js.map +1 -1
  275. package/dist/generated/themes/Input.css.d.ts +1 -1
  276. package/dist/generated/themes/Input.css.js +1 -1
  277. package/dist/generated/themes/Input.css.js.map +1 -1
  278. package/dist/generated/themes/InputIcon.css.d.ts +1 -1
  279. package/dist/generated/themes/InputIcon.css.js +1 -1
  280. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  281. package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
  282. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  283. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  284. package/dist/generated/themes/Link.css.d.ts +1 -1
  285. package/dist/generated/themes/Link.css.js +1 -1
  286. package/dist/generated/themes/Link.css.js.map +1 -1
  287. package/dist/generated/themes/List.css.d.ts +1 -1
  288. package/dist/generated/themes/List.css.js +1 -1
  289. package/dist/generated/themes/List.css.js.map +1 -1
  290. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  291. package/dist/generated/themes/ListItem.css.js +1 -1
  292. package/dist/generated/themes/ListItem.css.js.map +1 -1
  293. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  294. package/dist/generated/themes/ListItemBase.css.js +1 -1
  295. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  296. package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
  297. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  298. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  299. package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
  300. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  301. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  302. package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
  303. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  304. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  305. package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
  306. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  307. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  308. package/dist/generated/themes/Menu.css.d.ts +1 -1
  309. package/dist/generated/themes/Menu.css.js +1 -1
  310. package/dist/generated/themes/Menu.css.js.map +1 -1
  311. package/dist/generated/themes/MenuItem.css.d.ts +1 -1
  312. package/dist/generated/themes/MenuItem.css.js +1 -1
  313. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  314. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  315. package/dist/generated/themes/MessageStrip.css.js +1 -1
  316. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  317. package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
  318. package/dist/generated/themes/MonthPicker.css.js +1 -1
  319. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  320. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  321. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  322. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  323. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
  324. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  325. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  326. package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
  327. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  328. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  329. package/dist/generated/themes/MultiInput.css.d.ts +1 -1
  330. package/dist/generated/themes/MultiInput.css.js +1 -1
  331. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  332. package/dist/generated/themes/OptionBase.css.d.ts +1 -1
  333. package/dist/generated/themes/OptionBase.css.js +1 -1
  334. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  335. package/dist/generated/themes/Panel.css.d.ts +1 -1
  336. package/dist/generated/themes/Panel.css.js +1 -1
  337. package/dist/generated/themes/Panel.css.js.map +1 -1
  338. package/dist/generated/themes/Popover.css.d.ts +1 -1
  339. package/dist/generated/themes/Popover.css.js +1 -1
  340. package/dist/generated/themes/Popover.css.js.map +1 -1
  341. package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
  342. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  343. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  344. package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
  345. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  346. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  347. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  348. package/dist/generated/themes/RadioButton.css.js +1 -1
  349. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  350. package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
  351. package/dist/generated/themes/RangeSlider.css.js +1 -1
  352. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  353. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  354. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  355. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  356. package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
  357. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  358. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  359. package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
  360. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  361. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  362. package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
  363. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  364. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  365. package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
  366. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  367. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  368. package/dist/generated/themes/Select.css.d.ts +1 -1
  369. package/dist/generated/themes/Select.css.js +1 -1
  370. package/dist/generated/themes/Select.css.js.map +1 -1
  371. package/dist/generated/themes/SliderBase.css.d.ts +1 -1
  372. package/dist/generated/themes/SliderBase.css.js +1 -1
  373. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  374. package/dist/generated/themes/SplitButton.css.d.ts +1 -1
  375. package/dist/generated/themes/SplitButton.css.js +1 -1
  376. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  377. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  378. package/dist/generated/themes/StepInput.css.js +1 -1
  379. package/dist/generated/themes/StepInput.css.js.map +1 -1
  380. package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
  381. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  382. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  383. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
  384. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  385. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  386. package/dist/generated/themes/Switch.css.d.ts +1 -1
  387. package/dist/generated/themes/Switch.css.js +1 -1
  388. package/dist/generated/themes/Switch.css.js.map +1 -1
  389. package/dist/generated/themes/TabContainer.css.d.ts +1 -1
  390. package/dist/generated/themes/TabContainer.css.js +1 -1
  391. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  392. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  393. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  394. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  395. package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
  396. package/dist/generated/themes/TabInStrip.css.js +1 -1
  397. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  398. package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
  399. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  400. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  401. package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
  402. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  403. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  404. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  405. package/dist/generated/themes/TableCellBase.css.js +1 -1
  406. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  407. package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
  408. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  409. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  410. package/dist/generated/themes/TableRow.css.d.ts +1 -1
  411. package/dist/generated/themes/TableRow.css.js +1 -1
  412. package/dist/generated/themes/TableRow.css.js.map +1 -1
  413. package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
  414. package/dist/generated/themes/TableRowActionBase.css.js +1 -1
  415. package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
  416. package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
  417. package/dist/generated/themes/TableRowBase.css.js +1 -1
  418. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  419. package/dist/generated/themes/Tag.css.d.ts +1 -1
  420. package/dist/generated/themes/Tag.css.js +1 -1
  421. package/dist/generated/themes/Tag.css.js.map +1 -1
  422. package/dist/generated/themes/Text.css.d.ts +1 -1
  423. package/dist/generated/themes/Text.css.js +1 -1
  424. package/dist/generated/themes/Text.css.js.map +1 -1
  425. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  426. package/dist/generated/themes/TextArea.css.js +1 -1
  427. package/dist/generated/themes/TextArea.css.js.map +1 -1
  428. package/dist/generated/themes/TimePicker.css.d.ts +1 -1
  429. package/dist/generated/themes/TimePicker.css.js +1 -1
  430. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  431. package/dist/generated/themes/Toast.css.d.ts +1 -1
  432. package/dist/generated/themes/Toast.css.js +1 -1
  433. package/dist/generated/themes/Toast.css.js.map +1 -1
  434. package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
  435. package/dist/generated/themes/ToggleButton.css.js +1 -1
  436. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  437. package/dist/generated/themes/Token.css.d.ts +1 -1
  438. package/dist/generated/themes/Token.css.js +1 -1
  439. package/dist/generated/themes/Token.css.js.map +1 -1
  440. package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
  441. package/dist/generated/themes/Tokenizer.css.js +1 -1
  442. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  443. package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
  444. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  445. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  446. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  447. package/dist/generated/themes/Toolbar.css.js +1 -1
  448. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  449. package/dist/generated/themes/ToolbarButton.css.d.ts +1 -1
  450. package/dist/generated/themes/ToolbarButton.css.js +1 -1
  451. package/dist/generated/themes/ToolbarButton.css.js.map +1 -1
  452. package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
  453. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  454. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  455. package/dist/generated/themes/ToolbarSelect.css.d.ts +1 -1
  456. package/dist/generated/themes/ToolbarSelect.css.js +1 -1
  457. package/dist/generated/themes/ToolbarSelect.css.js.map +1 -1
  458. package/dist/generated/themes/ToolbarSeparator.css.d.ts +1 -1
  459. package/dist/generated/themes/ToolbarSeparator.css.js +1 -1
  460. package/dist/generated/themes/ToolbarSeparator.css.js.map +1 -1
  461. package/dist/generated/themes/TreeItem.css.d.ts +1 -1
  462. package/dist/generated/themes/TreeItem.css.js +1 -1
  463. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  464. package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
  465. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  466. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  467. package/dist/generated/themes/ValueStateVariables.css.d.ts +1 -1
  468. package/dist/generated/themes/ValueStateVariables.css.js +1 -1
  469. package/dist/generated/themes/ValueStateVariables.css.js.map +1 -1
  470. package/dist/generated/themes/YearPicker.css.d.ts +1 -1
  471. package/dist/generated/themes/YearPicker.css.js +1 -1
  472. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  473. package/dist/generated/themes/YearRangePicker.css.d.ts +1 -1
  474. package/dist/generated/themes/YearRangePicker.css.js +1 -1
  475. package/dist/generated/themes/YearRangePicker.css.js.map +1 -1
  476. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  477. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  478. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  479. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  480. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  481. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  482. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  483. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  484. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  485. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  486. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  487. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  488. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  489. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  490. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  491. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  492. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  493. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  494. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  495. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  496. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  497. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  498. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  499. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  500. package/dist/vscode.html-custom-data.json +9 -4
  501. package/dist/web-types.json +19 -9
  502. package/package.json +27 -24
  503. package/src/ButtonTemplate.tsx +5 -4
  504. package/src/MultiInputTemplate.tsx +1 -0
  505. package/src/SegmentedButtonTemplate.tsx +2 -1
  506. package/src/SelectPopoverTemplate.tsx +1 -0
  507. package/src/SplitButtonTemplate.tsx +4 -3
  508. package/src/i18n/messagebundle_en.properties +298 -2
  509. package/src/i18n/messagebundle_en_US_sappsd.properties +16 -2
  510. package/src/i18n/messagebundle_en_US_saprigi.properties +16 -2
  511. package/src/i18n/messagebundle_en_US_saptrc.properties +16 -2
  512. package/src/themes/Button.css +1 -0
  513. package/src/themes/DatePickerPopover.css +1 -1
  514. package/src/themes/Dialog.css +4 -4
  515. package/src/themes/PopupsCommon.css +1 -1
  516. package/src/themes/ToolbarSelect.css +3 -2
  517. package/src/themes/base/Card-parameters.css +1 -1
  518. package/src/themes/base/Dialog-parameters.css +0 -4
  519. package/src/themes/base/PopupsCommon-parameters.css +0 -1
  520. package/src/themes/sap_horizon/Card-parameters.css +0 -1
  521. package/src/themes/sap_horizon_dark/Card-parameters.css +0 -1
  522. package/src/themes/sap_horizon_hcb/Card-parameters.css +0 -1
  523. package/src/themes/sap_horizon_hcw/Card-parameters.css +0 -1
package/dist/Button.d.ts CHANGED
@@ -14,7 +14,7 @@ import type ButtonBadge from "./ButtonBadge.js";
14
14
  interface IButton extends HTMLElement, ITabbable {
15
15
  nonInteractive: boolean;
16
16
  }
17
- type ButtonAccessibilityAttributes = Pick<AccessibilityAttributes, "expanded" | "hasPopup" | "controls">;
17
+ type ButtonAccessibilityAttributes = Pick<AccessibilityAttributes, "expanded" | "hasPopup" | "controls" | "ariaKeyShortcuts" | "ariaLabel">;
18
18
  type ButtonClickEventDetail = {
19
19
  originalEvent: MouseEvent;
20
20
  altKey: boolean;
@@ -141,6 +141,11 @@ declare class Button extends UI5Element implements IButton {
141
141
  * - **hasPopup**: Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by the button.
142
142
  * Accepts the following string values: `dialog`, `grid`, `listbox`, `menu` or `tree`.
143
143
  *
144
+ * - **ariaLabel**: Defines the accessible ARIA name of the component.
145
+ * Accepts any string value.
146
+ *
147
+ * - **ariaKeyShortcuts**: Defines keyboard shortcuts that activate or give focus to the button.
148
+ *
144
149
  * - **controls**: Identifies the element (or elements) whose contents or presence are controlled by the button element.
145
150
  * Accepts a lowercase string value.
146
151
  *
@@ -267,7 +272,6 @@ declare class Button extends UI5Element implements IButton {
267
272
  _onkeyup(e: KeyboardEvent): void;
268
273
  _onfocusout(): void;
269
274
  _setActiveState(active: boolean): void;
270
- get _hasPopup(): import("@ui5/webcomponents-base/dist/types.js").AriaHasPopup | undefined;
271
275
  get hasButtonType(): boolean;
272
276
  get isIconOnly(): boolean;
273
277
  static typeTextMappings(): Record<string, I18nText>;
@@ -277,6 +281,7 @@ declare class Button extends UI5Element implements IButton {
277
281
  get tabIndexValue(): number | undefined;
278
282
  get ariaLabelText(): string;
279
283
  get ariaDescriptionText(): string | undefined;
284
+ get _computedAccessibilityAttributes(): ButtonAccessibilityAttributes;
280
285
  get effectiveBadgeDescriptionText(): string;
281
286
  get _isSubmit(): boolean;
282
287
  get _isReset(): boolean;
package/dist/Button.js CHANGED
@@ -99,6 +99,11 @@ let Button = Button_1 = class Button extends UI5Element {
99
99
  * - **hasPopup**: Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by the button.
100
100
  * Accepts the following string values: `dialog`, `grid`, `listbox`, `menu` or `tree`.
101
101
  *
102
+ * - **ariaLabel**: Defines the accessible ARIA name of the component.
103
+ * Accepts any string value.
104
+ *
105
+ * - **ariaKeyShortcuts**: Defines keyboard shortcuts that activate or give focus to the button.
106
+ *
102
107
  * - **controls**: Identifies the element (or elements) whose contents or presence are controlled by the button element.
103
108
  * Accepts a lowercase string value.
104
109
  *
@@ -325,9 +330,6 @@ let Button = Button_1 = class Button extends UI5Element {
325
330
  }
326
331
  this.active = active;
327
332
  }
328
- get _hasPopup() {
329
- return this.accessibilityAttributes.hasPopup;
330
- }
331
333
  get hasButtonType() {
332
334
  return this.design !== ButtonDesign.Default && this.design !== ButtonDesign.Transparent;
333
335
  }
@@ -375,6 +377,15 @@ let Button = Button_1 = class Button extends UI5Element {
375
377
  get ariaDescriptionText() {
376
378
  return this.accessibleDescription === "" ? undefined : this.accessibleDescription;
377
379
  }
380
+ get _computedAccessibilityAttributes() {
381
+ return {
382
+ expanded: this.accessibilityAttributes.expanded,
383
+ hasPopup: this.accessibilityAttributes.hasPopup,
384
+ controls: this.accessibilityAttributes.controls,
385
+ ariaKeyShortcuts: this.accessibilityAttributes.ariaKeyShortcuts,
386
+ ariaLabel: this.accessibilityAttributes.ariaLabel || this.ariaLabelText,
387
+ };
388
+ }
378
389
  get effectiveBadgeDescriptionText() {
379
390
  if (!this.shouldRenderBadge) {
380
391
  return "";
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../src/Button.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,EACN,OAAO,EACP,OAAO,EACP,QAAQ,EACR,OAAO,GACP,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,+DAA+D,CAAC;AAK1G,OAAO,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;AAE/F,OAAO,EACN,SAAS,EACT,QAAQ,GACR,MAAM,wCAAwC,CAAC;AAChD,OAAO,eAAe,MAAM,sDAAsD,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mEAAmE,CAAC;AAC1G,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,oBAAoB,MAAM,2DAA2D,CAAC;AAC7F,OAAO,YAAY,MAAM,yBAAyB,CAAC;AACnD,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,iBAAiB,MAAM,8BAA8B,CAAC;AAG7D,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,EACN,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,0BAA0B,EAC1B,qBAAqB,EACrB,uBAAuB,GACvB,MAAM,mCAAmC,CAAC;AAE3C,SAAS;AACT,OAAO,SAAS,MAAM,kCAAkC,CAAC;AAUzD,IAAI,uBAAuB,GAAG,KAAK,CAAC;AACpC,IAAI,YAAY,GAAkB,IAAI,CAAC;AAYvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAmCH,IAAM,MAAM,cAAZ,MAAM,MAAO,SAAQ,UAAU;IA+P9B;QACC,KAAK,EAAE,CAAC;QA1PT;;;;WAIG;QAEH,WAAM,GAAsB,SAAS,CAAC;QAEtC;;;;;;WAMG;QAEH,aAAQ,GAAG,KAAK,CAAC;QA8BjB;;;;;;;;WAQG;QAEH,YAAO,GAAG,KAAK,CAAC;QA+BhB;;;;;;;;;;;;;;;;WAgBG;QAEH,4BAAuB,GAAkC,EAAE,CAAC;QAW5D;;;;;;;WAOG;QAEH,SAAI,GAAoB,QAAQ,CAAC;QAEjC;;;;;;;;WAQG;QAEH,mBAAc,GAA8B,QAAQ,CAAC;QAErD;;;WAGG;QAEH,WAAM,GAAG,KAAK,CAAC;QAEf;;;WAGG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAEjB;;;WAGG;QAEH,YAAO,GAAG,KAAK,CAAC;QAEhB;;;WAGG;QAEH,eAAU,GAAG,KAAK,CAAC;QAEnB;;;WAGG;QAEH,mBAAc,GAAG,KAAK,CAAC;QAEvB;;;;;;;WAOG;QAEH,YAAO,GAAG,KAAK,CAAC;QAEhB;;;;;WAKG;QAEH,iBAAY,GAAG,IAAI,CAAC;QAUpB;;WAEG;QAEH,kBAAa,GAAW,EAAE,CAAC;QAE3B;;;WAGG;QAEH,mBAAc,GAAG,GAAG,CAAC;QAErB;;;WAGG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAGjB,kBAAa,GAAG,KAAK,CAAC;QAqBtB,0BAAqB,GAAG,KAAK,CAAC;QAO7B,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE;YACvB,IAAI,YAAY,EAAE,CAAC;gBAClB,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;QACF,CAAC,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE;YACxB,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC;gBAC9B,OAAO;YACR,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACjC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACnD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC9B,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAEvD,uBAAuB,GAAG,IAAI,CAAC;QAChC,CAAC;IACF,CAAC;IAED,aAAa;QACZ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO;QACR,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,UAAU;QACT,IAAI,SAAS,EAAE,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACjC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACnD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QACnC,CAAC;IACF,CAAC;IAED,SAAS;QACR,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAChC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACtD,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;QACpC,CAAC;IACF,CAAC;IAED,KAAK,CAAC,iBAAiB;QACtB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;QAEhC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IAClF,CAAC;IAED,qBAAqB;QACpB,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,iBAAiB,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAEtK,IAAI,oBAAoB,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACpD,CAAC;IACF,CAAC;IAED,QAAQ,CAAC,CAAa;QACrB,CAAC,CAAC,wBAAwB,EAAE,CAAC;QAE7B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO;QACR,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QAED,MAAM,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,QAAQ,GACR,GAAG,CAAC,CAAC;QAEN,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;YACnD,aAAa,EAAE,CAAC;YAChB,MAAM;YACN,OAAO;YACP,OAAO;YACP,QAAQ;SACR,CAAC,CAAC;QAEH,IAAI,SAAS,EAAE,CAAC;YACf,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,UAAU,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,SAAS,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QAED,IAAI,QAAQ,EAAE,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC;QAC3B,CAAC;IACF,CAAC;IAED,YAAY;QACX,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO;QACR,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC3B,YAAY,GAAG,IAAI,CAAC,CAAC,sBAAsB;IAC5C,CAAC;IAED,WAAW,CAAC,CAAa;QACxB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACnC,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACrB,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YAClB,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;IACF,CAAC;IAED,UAAU,CAAC,CAAgB;QAC1B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE/C,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/B,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACF,CAAC;IAED,QAAQ,CAAC,CAAgB;QACxB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,CAAC,CAAC,cAAc,EAAE,CAAC;QACpB,CAAC;QAED,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;QACF,CAAC;IACF,CAAC;IAED,WAAW;QACV,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO;QACR,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACF,CAAC;IAED,eAAe,CAAC,MAAe;QAC9B,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;QAEvE,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACpC,OAAO;QACR,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC;IAC9C,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC,WAAW,CAAC;IACzF,CAAC;IAED,IAAI,UAAU;QACb,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,gBAAgB;QACtB,OAAO;YACN,UAAU,EAAE,uBAAuB;YACnC,UAAU,EAAE,uBAAuB;YACnC,YAAY,EAAE,2BAA2B;YACzC,WAAW,EAAE,0BAA0B;SACvC,CAAC;IACH,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,wBAAwB,EAAE,EAAE,CAAC;YACjC,OAAO;QACR,CAAC;QAED,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,QAAM,CAAC,UAAU,CAAC,OAAO,CAAC,QAAM,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,aAAa;QAChB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAE/C,IAAI,QAAQ,EAAE,CAAC;YACd,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,aAAa;QAChB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;QAC3C,MAAM,aAAa,GAAG,yBAAyB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,MAAM,iBAAiB,GAAG,IAAI,CAAC,6BAA6B,IAAI,EAAE,CAAC;QAEnE,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACvG,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,mBAAmB;QACtB,OAAO,IAAI,CAAC,qBAAqB,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC;IACnF,CAAC;IAED,IAAI,6BAA6B;QAChC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC;QACX,CAAC;QAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;QAEvD,6FAA6F;QAC7F,iFAAiF;QACjF,sFAAsF;QACtF,QAAQ,kBAAkB,EAAE,CAAC;YAC7B,KAAK,EAAE;gBACN,OAAO,kBAAkB,CAAC;YAC3B,KAAK,GAAG;gBACP,OAAO,QAAM,CAAC,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CAAC;YAC7E;gBACC,OAAO,QAAM,CAAC,UAAU,CAAC,OAAO,CAAC,uBAAuB,EAAE,kBAAkB,CAAC,CAAC;QAC/E,CAAC;IACF,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC;IACxD,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,CAAC;IACvC,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACxH,CAAC;CACD,CAAA;AA7gBA;IADC,QAAQ,EAAE;sCAC2B;AAUtC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wCACX;AAYjB;IADC,QAAQ,EAAE;oCACG;AAgBd;IADC,QAAQ,EAAE;uCACM;AAYjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;uCACZ;AAWhB;IADC,QAAQ,EAAE;uCACM;AASjB;IADC,QAAQ,EAAE;8CACa;AASxB;IADC,QAAQ,EAAE;iDACgB;AAoB3B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uDACiC;AAS5D;IADC,QAAQ,EAAE;qDACoB;AAW/B;IADC,QAAQ,EAAE;oCACsB;AAYjC;IADC,QAAQ,EAAE;8CAC0C;AAOrD;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;sCACb;AAOf;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wCACX;AAOjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;uCACZ;AAOhB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACT;AAOnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;8CACL;AAWvB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;uCACZ;AAShB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CACP;AAQpB;IADC,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;2CACX;AAMrB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6CACA;AAO3B;IADC,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;8CACX;AAOrB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wCACX;AAGjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;6CACzB;AAStB;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;oCACnB;AAQnB;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC;qCAChC;AAOpB;IADN,IAAI,CAAC,oBAAoB,CAAC;gCACG;AA7PzB,MAAM;IAlCX,aAAa,CAAC;QACd,GAAG,EAAE,YAAY;QACjB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,cAAc;QACxB,MAAM,EAAE,SAAS;QACjB,iBAAiB,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;KAC3C,CAAC;IACF;;;;;;;;;;;;OAYG;;IACF,KAAK,CAAC,OAAO,EAAE;QACf,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;KAChB,CAAC;IACF;;;OAGG;;IACF,KAAK,CAAC,qBAAqB,EAAE;QAC7B,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;KAChB,CAAC;GACI,MAAM,CAyhBX;AAED,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,eAAe,MAAM,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport {\n\tisSpace,\n\tisEnter,\n\tisEscape,\n\tisShift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport type { AccessibilityAttributes, AriaRole } from \"@ui5/webcomponents-base\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { I18nText } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getIconAccessibleName } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nimport {\n\tisDesktop,\n\tisSafari,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport willShowContent from \"@ui5/webcomponents-base/dist/util/willShowContent.js\";\nimport { submitForm, resetForm } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport { getEnableDefaultTooltips } from \"@ui5/webcomponents-base/dist/config/Tooltips.js\";\nimport toLowercaseEnumValue from \"@ui5/webcomponents-base/dist/util/toLowercaseEnumValue.js\";\nimport ButtonDesign from \"./types/ButtonDesign.js\";\nimport ButtonType from \"./types/ButtonType.js\";\nimport ButtonBadgeDesign from \"./types/ButtonBadgeDesign.js\";\nimport type ButtonAccessibleRole from \"./types/ButtonAccessibleRole.js\";\nimport type ButtonBadge from \"./ButtonBadge.js\";\nimport ButtonTemplate from \"./ButtonTemplate.js\";\nimport {\n\tBUTTON_ARIA_TYPE_ACCEPT,\n\tBUTTON_ARIA_TYPE_REJECT,\n\tBUTTON_ARIA_TYPE_EMPHASIZED,\n\tBUTTON_ARIA_TYPE_ATTENTION,\n\tBUTTON_BADGE_ONE_ITEM,\n\tBUTTON_BADGE_MANY_ITEMS,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport buttonCss from \"./generated/themes/Button.css.js\";\n\n/**\n * Interface for components that may be used as a button inside numerous higher-order components\n * @public\n */\ninterface IButton extends HTMLElement, ITabbable {\n\tnonInteractive: boolean;\n}\n\nlet isGlobalHandlerAttached = false;\nlet activeButton: Button | null = null;\n\ntype ButtonAccessibilityAttributes = Pick<AccessibilityAttributes, \"expanded\" | \"hasPopup\" | \"controls\">;\n\ntype ButtonClickEventDetail = {\n\toriginalEvent: MouseEvent,\n\taltKey: boolean;\n\tctrlKey: boolean;\n\tmetaKey: boolean;\n\tshiftKey: boolean;\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-button` component represents a simple push button.\n * It enables users to trigger actions by clicking or tapping the `ui5-button`, or by pressing\n * certain keyboard keys, such as Enter.\n *\n * ### Usage\n *\n * For the `ui5-button` UI, you can define text, icon, or both. You can also specify\n * whether the text or the icon is displayed first.\n *\n * You can choose from a set of predefined types that offer different\n * styling to correspond to the triggered action.\n *\n * You can set the `ui5-button` as enabled or disabled. An enabled\n * `ui5-button` can be pressed by clicking or tapping it. The button changes\n * its style to provide visual feedback to the user that it is pressed or hovered over with\n * the mouse cursor. A disabled `ui5-button` appears inactive and cannot be pressed.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Button.js\";`\n * @csspart button - Used to style the native button element\n * @csspart icon - Used to style the icon in the native button element\n * @csspart endIcon - Used to style the end icon in the native button element\n * @constructor\n * @extends UI5Element\n * @implements { IButton }\n * @public\n */\n@customElement({\n\ttag: \"ui5-button\",\n\tformAssociated: true,\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: ButtonTemplate,\n\tstyles: buttonCss,\n\tshadowRootOptions: { delegatesFocus: true },\n})\n/**\n * Fired when the component is activated either with a mouse/tap or by using the Enter or Space key.\n *\n * **Note:** The event will not be fired if the `disabled` property is set to `true`.\n *\n * @since 2.10.0\n * @public\n * @param {Event} originalEvent Returns original event that comes from user's **click** interaction\n * @param {boolean} altKey Returns whether the \"ALT\" key was pressed when the event was triggered.\n * @param {boolean} ctrlKey Returns whether the \"CTRL\" key was pressed when the event was triggered.\n * @param {boolean} metaKey Returns whether the \"META\" key was pressed when the event was triggered.\n * @param {boolean} shiftKey Returns whether the \"SHIFT\" key was pressed when the event was triggered.\n */\n@event(\"click\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n/**\n * Fired whenever the active state of the component changes.\n * @private\n */\n@event(\"active-state-change\", {\n\tbubbles: true,\n\tcancelable: true,\n})\nclass Button extends UI5Element implements IButton {\n\teventDetails!: {\n\t\t\"click\": ButtonClickEventDetail,\n\t\t\"active-state-change\": void,\n\t};\n\n\t/**\n\t * Defines the component design.\n\t * @default \"Default\"\n\t * @public\n\t */\n\t@property()\n\tdesign: `${ButtonDesign}` = \"Default\";\n\n\t/**\n\t * Defines whether the component is disabled.\n\t * A disabled component can't be pressed or\n\t * focused, and it is not in the tab chain.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines the icon, displayed as graphical element within the component.\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * Example:\n\t * See all the available icons within the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ticon?: string;\n\n\t/**\n\t * Defines the icon, displayed as graphical element within the component after the button text.\n\t *\n\t * **Note:** It is highly recommended to use `endIcon` property only together with `icon` and/or `text` properties.\n\t * Usage of `endIcon` only should be avoided.\n\t *\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * Example:\n\t * See all the available icons within the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tendIcon?: string;\n\n\t/**\n\t * When set to `true`, the component will\n\t * automatically submit the nearest HTML form element on `press`.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.`\n\t * @default false\n\t * @public\n\t * @deprecated Set the \"type\" property to \"Submit\" to achieve the same result. The \"submits\" property is ignored if \"type\" is set to any value other than \"Button\".\n\t */\n\t@property({ type: Boolean })\n\tsubmits = false;\n\n\t/**\n\t * Defines the tooltip of the component.\n\t *\n\t * **Note:** A tooltip attribute should be provided for icon-only buttons, in order to represent their exact meaning/function.\n\t * @default undefined\n\t * @public\n\t * @since 1.2.0\n\t */\n\t@property()\n\ttooltip?: string;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.1.0\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the additional accessibility attributes that will be applied to the component.\n\t * The following fields are supported:\n\t *\n\t * - **expanded**: Indicates whether the button, or another grouping element it controls, is currently expanded or collapsed.\n\t * Accepts the following string values: `true` or `false`\n\t *\n\t * - **hasPopup**: Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by the button.\n\t * Accepts the following string values: `dialog`, `grid`, `listbox`, `menu` or `tree`.\n\t *\n\t * - **controls**: Identifies the element (or elements) whose contents or presence are controlled by the button element.\n\t * Accepts a lowercase string value.\n\t *\n\t * @public\n\t * @since 1.2.0\n\t * @default {}\n\t */\n\t@property({ type: Object })\n\taccessibilityAttributes: ButtonAccessibilityAttributes = {};\n\n\t/**\n\t * Defines the accessible description of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.5.0\n\t */\n\t@property()\n\taccessibleDescription?: string;\n\n\t/**\n\t * Defines whether the button has special form-related functionality.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.\n\t * @default \"Button\"\n\t * @public\n\t * @since 1.15.0\n\t */\n\t@property()\n\ttype: `${ButtonType}` = \"Button\";\n\n\t/**\n\t * Describes the accessibility role of the button.\n\t *\n\t * **Note:** Use <code>ButtonAccessibleRole.Link</code> role only with a press handler, which performs a navigation. In all other scenarios the default button semantics are recommended.\n\t *\n\t * @default \"Button\"\n\t * @public\n\t * @since 1.23\n\t */\n\t@property()\n\taccessibleRole: `${ButtonAccessibleRole}` = \"Button\";\n\n\t/**\n\t * Used to switch the active state (pressed or not) of the component.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tactive = false;\n\n\t/**\n\t * Defines if a content has been added to the default slot\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\ticonOnly = false;\n\n\t/**\n\t * Indicates if the elements has a slotted icon\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thasIcon = false;\n\n\t/**\n\t * Indicates if the elements has a slotted end icon\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thasEndIcon = false;\n\n\t/**\n\t * Indicates if the element is focusable\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tnonInteractive = false;\n\n\t/**\n\t * Defines whether the button shows a loading indicator.\n\t *\n\t * **Note:** If set to `true`, a busy indicator component will be displayed on the related button.\n\t * @default false\n\t * @public\n\t * @since 2.13.0\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Specifies the delay in milliseconds before the loading indicator appears within the associated button.\n\t * @default 1000\n\t * @public\n\t * @since 2.13.0\n\t */\n\t@property({ type: Number })\n\tloadingDelay = 1000;\n\n\t/**\n\t * The button's current title is determined by either the `tooltip` property or the icon's tooltip, with the `tooltip`\n\t * property taking precedence if both are set.\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\tbuttonTitle?: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_iconSettings: object = {};\n\n\t/**\n\t * Defines the tabIndex of the component.\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\tforcedTabIndex = \"0\";\n\n\t/**\n\t * @since 1.0.0-rc.13\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_isTouch = false;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_cancelAction = false;\n\n\t/**\n\t * Defines the text of the component.\n\t *\n\t * **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n\t * @public\n\t */\n\t@slot({ type: Node, \"default\": true })\n\ttext!: Array<Node>;\n\n\t/**\n\t * Adds a badge to the button.\n\t * @since 2.7.0\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true })\n\tbadge!: Array<ButtonBadge>;\n\n\t_deactivate: () => void;\n\t_onclickBound: (e: MouseEvent) => void;\n\t_clickHandlerAttached = false;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._deactivate = () => {\n\t\t\tif (activeButton) {\n\t\t\t\tactiveButton._setActiveState(false);\n\t\t\t}\n\t\t};\n\n\t\tthis._onclickBound = e => {\n\t\t\tif (e instanceof CustomEvent) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._onclick(e);\n\t\t};\n\n\t\tif (!this._clickHandlerAttached) {\n\t\t\tthis.addEventListener(\"click\", this._onclickBound);\n\t\t\tthis._clickHandlerAttached = true;\n\t\t}\n\n\t\tif (!isGlobalHandlerAttached) {\n\t\t\tdocument.addEventListener(\"mouseup\", this._deactivate);\n\n\t\t\tisGlobalHandlerAttached = true;\n\t\t}\n\t}\n\n\t_ontouchstart() {\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._setActiveState(true);\n\t}\n\n\tonEnterDOM() {\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\n\t\tif (!this._clickHandlerAttached) {\n\t\t\tthis.addEventListener(\"click\", this._onclickBound);\n\t\t\tthis._clickHandlerAttached = true;\n\t\t}\n\t}\n\n\tonExitDOM() {\n\t\tif (this._clickHandlerAttached) {\n\t\t\tthis.removeEventListener(\"click\", this._onclickBound);\n\t\t\tthis._clickHandlerAttached = false;\n\t\t}\n\t}\n\n\tasync onBeforeRendering() {\n\t\tthis._setBadgeOverlayStyle();\n\n\t\tthis.hasIcon = !!this.icon;\n\t\tthis.hasEndIcon = !!this.endIcon;\n\t\tthis.iconOnly = this.isIconOnly;\n\n\t\tconst defaultTooltip = await this.getDefaultTooltip();\n\t\tthis.buttonTitle = this.iconOnly ? this.tooltip ?? defaultTooltip : this.tooltip;\n\t}\n\n\t_setBadgeOverlayStyle() {\n\t\tconst needsOverflowVisible = this.badge.length && (this.badge[0].design === ButtonBadgeDesign.AttentionDot || this.badge[0].design === ButtonBadgeDesign.OverlayText);\n\n\t\tif (needsOverflowVisible) {\n\t\t\tthis._internals.states.add(\"has-overlay-badge\");\n\t\t} else {\n\t\t\tthis._internals.states.delete(\"has-overlay-badge\");\n\t\t}\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\te.stopImmediatePropagation();\n\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.loading) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tconst {\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t} = e;\n\n\t\tconst prevented = !this.fireDecoratorEvent(\"click\", {\n\t\t\toriginalEvent: e,\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t});\n\n\t\tif (prevented) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isSubmit) {\n\t\t\tsubmitForm(this);\n\t\t}\n\n\t\tif (this._isReset) {\n\t\t\tresetForm(this);\n\t\t}\n\n\t\tif (isSafari()) {\n\t\t\tthis.getDomRef()?.focus();\n\t\t}\n\t}\n\n\t_onmousedown() {\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._setActiveState(true);\n\t\tactiveButton = this; // eslint-disable-line\n\t}\n\n\t_ontouchend(e: TouchEvent) {\n\t\tif (this.disabled || this.loading) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\tif (this.active) {\n\t\t\tthis._setActiveState(false);\n\t\t}\n\n\t\tif (activeButton) {\n\t\t\tactiveButton._setActiveState(false);\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tthis._cancelAction = isShift(e) || isEscape(e);\n\n\t\tif (isSpace(e) || isEnter(e)) {\n\t\t\tthis._setActiveState(true);\n\t\t} else if (this._cancelAction) {\n\t\t\tthis._setActiveState(false);\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (this._cancelAction) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isSpace(e) || isEnter(e)) {\n\t\t\tif (this.active) {\n\t\t\t\tthis._setActiveState(false);\n\t\t\t}\n\t\t}\n\t}\n\n\t_onfocusout() {\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.active) {\n\t\t\tthis._setActiveState(false);\n\t\t}\n\t}\n\n\t_setActiveState(active: boolean) {\n\t\tconst eventPrevented = !this.fireDecoratorEvent(\"active-state-change\");\n\n\t\tif (eventPrevented || this.loading) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.active = active;\n\t}\n\n\tget _hasPopup() {\n\t\treturn this.accessibilityAttributes.hasPopup;\n\t}\n\n\tget hasButtonType() {\n\t\treturn this.design !== ButtonDesign.Default && this.design !== ButtonDesign.Transparent;\n\t}\n\n\tget isIconOnly() {\n\t\treturn !willShowContent(this.text);\n\t}\n\n\tstatic typeTextMappings(): Record<string, I18nText> {\n\t\treturn {\n\t\t\t\"Positive\": BUTTON_ARIA_TYPE_ACCEPT,\n\t\t\t\"Negative\": BUTTON_ARIA_TYPE_REJECT,\n\t\t\t\"Emphasized\": BUTTON_ARIA_TYPE_EMPHASIZED,\n\t\t\t\"Attention\": BUTTON_ARIA_TYPE_ATTENTION,\n\t\t};\n\t}\n\n\tgetDefaultTooltip() {\n\t\tif (!getEnableDefaultTooltips()) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn getIconAccessibleName(this.icon);\n\t}\n\n\tget buttonTypeText() {\n\t\treturn Button.i18nBundle.getText(Button.typeTextMappings()[this.design]);\n\t}\n\n\tget effectiveAccRole(): AriaRole {\n\t\treturn toLowercaseEnumValue(this.accessibleRole);\n\t}\n\n\tget tabIndexValue() {\n\t\tif (this.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tabindex = this.getAttribute(\"tabindex\");\n\n\t\tif (tabindex) {\n\t\t\treturn Number.parseInt(tabindex);\n\t\t}\n\n\t\treturn this.nonInteractive ? -1 : Number.parseInt(this.forcedTabIndex);\n\t}\n\n\tget ariaLabelText() {\n\t\tconst textContent = this.textContent || \"\";\n\t\tconst ariaLabelText = getEffectiveAriaLabelText(this) || \"\";\n\t\tconst typeLabelText = this.hasButtonType ? this.buttonTypeText : \"\";\n\t\tconst internalLabelText = this.effectiveBadgeDescriptionText || \"\";\n\n\t\tconst labelParts = [textContent, ariaLabelText, typeLabelText, internalLabelText].filter(part => part);\n\t\treturn labelParts.join(\" \");\n\t}\n\n\tget ariaDescriptionText() {\n\t\treturn this.accessibleDescription === \"\" ? undefined : this.accessibleDescription;\n\t}\n\n\tget effectiveBadgeDescriptionText() {\n\t\tif (!this.shouldRenderBadge) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tconst badgeEffectiveText = this.badge[0].effectiveText;\n\n\t\t// Use distinct i18n keys for singular and plural badge values to ensure proper localization.\n\t\t// Some languages have different grammatical rules for singular and plural forms,\n\t\t// so separate keys (BUTTON_BADGE_ONE_ITEM and BUTTON_BADGE_MANY_ITEMS) are necessary.\n\t\tswitch (badgeEffectiveText) {\n\t\tcase \"\":\n\t\t\treturn badgeEffectiveText;\n\t\tcase \"1\":\n\t\t\treturn Button.i18nBundle.getText(BUTTON_BADGE_ONE_ITEM, badgeEffectiveText);\n\t\tdefault:\n\t\t\treturn Button.i18nBundle.getText(BUTTON_BADGE_MANY_ITEMS, badgeEffectiveText);\n\t\t}\n\t}\n\n\tget _isSubmit() {\n\t\treturn this.type === ButtonType.Submit || this.submits;\n\t}\n\n\tget _isReset() {\n\t\treturn this.type === ButtonType.Reset;\n\t}\n\n\tget shouldRenderBadge() {\n\t\treturn !!this.badge.length && (!!this.badge[0].text.length || this.badge[0].design === ButtonBadgeDesign.AttentionDot);\n\t}\n}\n\nButton.define();\n\nexport default Button;\nexport type {\n\tButtonAccessibilityAttributes,\n\tButtonClickEventDetail,\n\tIButton,\n};\n"]}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../src/Button.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport {\n\tisSpace,\n\tisEnter,\n\tisEscape,\n\tisShift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport type { AccessibilityAttributes, AriaRole } from \"@ui5/webcomponents-base\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { I18nText } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getIconAccessibleName } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\n\nimport {\n\tisDesktop,\n\tisSafari,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport willShowContent from \"@ui5/webcomponents-base/dist/util/willShowContent.js\";\nimport { submitForm, resetForm } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport { getEnableDefaultTooltips } from \"@ui5/webcomponents-base/dist/config/Tooltips.js\";\nimport toLowercaseEnumValue from \"@ui5/webcomponents-base/dist/util/toLowercaseEnumValue.js\";\nimport ButtonDesign from \"./types/ButtonDesign.js\";\nimport ButtonType from \"./types/ButtonType.js\";\nimport ButtonBadgeDesign from \"./types/ButtonBadgeDesign.js\";\nimport type ButtonAccessibleRole from \"./types/ButtonAccessibleRole.js\";\nimport type ButtonBadge from \"./ButtonBadge.js\";\nimport ButtonTemplate from \"./ButtonTemplate.js\";\nimport {\n\tBUTTON_ARIA_TYPE_ACCEPT,\n\tBUTTON_ARIA_TYPE_REJECT,\n\tBUTTON_ARIA_TYPE_EMPHASIZED,\n\tBUTTON_ARIA_TYPE_ATTENTION,\n\tBUTTON_BADGE_ONE_ITEM,\n\tBUTTON_BADGE_MANY_ITEMS,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport buttonCss from \"./generated/themes/Button.css.js\";\n\n/**\n * Interface for components that may be used as a button inside numerous higher-order components\n * @public\n */\ninterface IButton extends HTMLElement, ITabbable {\n\tnonInteractive: boolean;\n}\n\nlet isGlobalHandlerAttached = false;\nlet activeButton: Button | null = null;\n\ntype ButtonAccessibilityAttributes = Pick<AccessibilityAttributes, \"expanded\" | \"hasPopup\" | \"controls\" | \"ariaKeyShortcuts\" | \"ariaLabel\">;\n\ntype ButtonClickEventDetail = {\n\toriginalEvent: MouseEvent,\n\taltKey: boolean;\n\tctrlKey: boolean;\n\tmetaKey: boolean;\n\tshiftKey: boolean;\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-button` component represents a simple push button.\n * It enables users to trigger actions by clicking or tapping the `ui5-button`, or by pressing\n * certain keyboard keys, such as Enter.\n *\n * ### Usage\n *\n * For the `ui5-button` UI, you can define text, icon, or both. You can also specify\n * whether the text or the icon is displayed first.\n *\n * You can choose from a set of predefined types that offer different\n * styling to correspond to the triggered action.\n *\n * You can set the `ui5-button` as enabled or disabled. An enabled\n * `ui5-button` can be pressed by clicking or tapping it. The button changes\n * its style to provide visual feedback to the user that it is pressed or hovered over with\n * the mouse cursor. A disabled `ui5-button` appears inactive and cannot be pressed.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Button.js\";`\n * @csspart button - Used to style the native button element\n * @csspart icon - Used to style the icon in the native button element\n * @csspart endIcon - Used to style the end icon in the native button element\n * @constructor\n * @extends UI5Element\n * @implements { IButton }\n * @public\n */\n@customElement({\n\ttag: \"ui5-button\",\n\tformAssociated: true,\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: ButtonTemplate,\n\tstyles: buttonCss,\n\tshadowRootOptions: { delegatesFocus: true },\n})\n/**\n * Fired when the component is activated either with a mouse/tap or by using the Enter or Space key.\n *\n * **Note:** The event will not be fired if the `disabled` property is set to `true`.\n *\n * @since 2.10.0\n * @public\n * @param {Event} originalEvent Returns original event that comes from user's **click** interaction\n * @param {boolean} altKey Returns whether the \"ALT\" key was pressed when the event was triggered.\n * @param {boolean} ctrlKey Returns whether the \"CTRL\" key was pressed when the event was triggered.\n * @param {boolean} metaKey Returns whether the \"META\" key was pressed when the event was triggered.\n * @param {boolean} shiftKey Returns whether the \"SHIFT\" key was pressed when the event was triggered.\n */\n@event(\"click\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n/**\n * Fired whenever the active state of the component changes.\n * @private\n */\n@event(\"active-state-change\", {\n\tbubbles: true,\n\tcancelable: true,\n})\nclass Button extends UI5Element implements IButton {\n\teventDetails!: {\n\t\t\"click\": ButtonClickEventDetail,\n\t\t\"active-state-change\": void,\n\t};\n\n\t/**\n\t * Defines the component design.\n\t * @default \"Default\"\n\t * @public\n\t */\n\t@property()\n\tdesign: `${ButtonDesign}` = \"Default\";\n\n\t/**\n\t * Defines whether the component is disabled.\n\t * A disabled component can't be pressed or\n\t * focused, and it is not in the tab chain.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines the icon, displayed as graphical element within the component.\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * Example:\n\t * See all the available icons within the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ticon?: string;\n\n\t/**\n\t * Defines the icon, displayed as graphical element within the component after the button text.\n\t *\n\t * **Note:** It is highly recommended to use `endIcon` property only together with `icon` and/or `text` properties.\n\t * Usage of `endIcon` only should be avoided.\n\t *\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * Example:\n\t * See all the available icons within the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tendIcon?: string;\n\n\t/**\n\t * When set to `true`, the component will\n\t * automatically submit the nearest HTML form element on `press`.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.`\n\t * @default false\n\t * @public\n\t * @deprecated Set the \"type\" property to \"Submit\" to achieve the same result. The \"submits\" property is ignored if \"type\" is set to any value other than \"Button\".\n\t */\n\t@property({ type: Boolean })\n\tsubmits = false;\n\n\t/**\n\t * Defines the tooltip of the component.\n\t *\n\t * **Note:** A tooltip attribute should be provided for icon-only buttons, in order to represent their exact meaning/function.\n\t * @default undefined\n\t * @public\n\t * @since 1.2.0\n\t */\n\t@property()\n\ttooltip?: string;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.1.0\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the additional accessibility attributes that will be applied to the component.\n\t * The following fields are supported:\n\t *\n\t * - **expanded**: Indicates whether the button, or another grouping element it controls, is currently expanded or collapsed.\n\t * Accepts the following string values: `true` or `false`\n\t *\n\t * - **hasPopup**: Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by the button.\n\t * Accepts the following string values: `dialog`, `grid`, `listbox`, `menu` or `tree`.\n\t *\n\t * - **ariaLabel**: Defines the accessible ARIA name of the component.\n\t * Accepts any string value.\n\t *\n\t * - **ariaKeyShortcuts**: Defines keyboard shortcuts that activate or give focus to the button.\n\t *\n\t * - **controls**: Identifies the element (or elements) whose contents or presence are controlled by the button element.\n\t * Accepts a lowercase string value.\n\t *\n\t * @public\n\t * @since 1.2.0\n\t * @default {}\n\t */\n\t@property({ type: Object })\n\taccessibilityAttributes: ButtonAccessibilityAttributes = {};\n\n\t/**\n\t * Defines the accessible description of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.5.0\n\t */\n\t@property()\n\taccessibleDescription?: string;\n\n\t/**\n\t * Defines whether the button has special form-related functionality.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.\n\t * @default \"Button\"\n\t * @public\n\t * @since 1.15.0\n\t */\n\t@property()\n\ttype: `${ButtonType}` = \"Button\";\n\n\t/**\n\t * Describes the accessibility role of the button.\n\t *\n\t * **Note:** Use <code>ButtonAccessibleRole.Link</code> role only with a press handler, which performs a navigation. In all other scenarios the default button semantics are recommended.\n\t *\n\t * @default \"Button\"\n\t * @public\n\t * @since 1.23\n\t */\n\t@property()\n\taccessibleRole: `${ButtonAccessibleRole}` = \"Button\";\n\n\t/**\n\t * Used to switch the active state (pressed or not) of the component.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tactive = false;\n\n\t/**\n\t * Defines if a content has been added to the default slot\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\ticonOnly = false;\n\n\t/**\n\t * Indicates if the elements has a slotted icon\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thasIcon = false;\n\n\t/**\n\t * Indicates if the elements has a slotted end icon\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thasEndIcon = false;\n\n\t/**\n\t * Indicates if the element is focusable\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tnonInteractive = false;\n\n\t/**\n\t * Defines whether the button shows a loading indicator.\n\t *\n\t * **Note:** If set to `true`, a busy indicator component will be displayed on the related button.\n\t * @default false\n\t * @public\n\t * @since 2.13.0\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Specifies the delay in milliseconds before the loading indicator appears within the associated button.\n\t * @default 1000\n\t * @public\n\t * @since 2.13.0\n\t */\n\t@property({ type: Number })\n\tloadingDelay = 1000;\n\n\t/**\n\t * The button's current title is determined by either the `tooltip` property or the icon's tooltip, with the `tooltip`\n\t * property taking precedence if both are set.\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\tbuttonTitle?: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_iconSettings: object = {};\n\n\t/**\n\t * Defines the tabIndex of the component.\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\tforcedTabIndex = \"0\";\n\n\t/**\n\t * @since 1.0.0-rc.13\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_isTouch = false;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_cancelAction = false;\n\n\t/**\n\t * Defines the text of the component.\n\t *\n\t * **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n\t * @public\n\t */\n\t@slot({ type: Node, \"default\": true })\n\ttext!: Array<Node>;\n\n\t/**\n\t * Adds a badge to the button.\n\t * @since 2.7.0\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true })\n\tbadge!: Array<ButtonBadge>;\n\n\t_deactivate: () => void;\n\t_onclickBound: (e: MouseEvent) => void;\n\t_clickHandlerAttached = false;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._deactivate = () => {\n\t\t\tif (activeButton) {\n\t\t\t\tactiveButton._setActiveState(false);\n\t\t\t}\n\t\t};\n\n\t\tthis._onclickBound = e => {\n\t\t\tif (e instanceof CustomEvent) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._onclick(e);\n\t\t};\n\n\t\tif (!this._clickHandlerAttached) {\n\t\t\tthis.addEventListener(\"click\", this._onclickBound);\n\t\t\tthis._clickHandlerAttached = true;\n\t\t}\n\n\t\tif (!isGlobalHandlerAttached) {\n\t\t\tdocument.addEventListener(\"mouseup\", this._deactivate);\n\n\t\t\tisGlobalHandlerAttached = true;\n\t\t}\n\t}\n\n\t_ontouchstart() {\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._setActiveState(true);\n\t}\n\n\tonEnterDOM() {\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\n\t\tif (!this._clickHandlerAttached) {\n\t\t\tthis.addEventListener(\"click\", this._onclickBound);\n\t\t\tthis._clickHandlerAttached = true;\n\t\t}\n\t}\n\n\tonExitDOM() {\n\t\tif (this._clickHandlerAttached) {\n\t\t\tthis.removeEventListener(\"click\", this._onclickBound);\n\t\t\tthis._clickHandlerAttached = false;\n\t\t}\n\t}\n\n\tasync onBeforeRendering() {\n\t\tthis._setBadgeOverlayStyle();\n\n\t\tthis.hasIcon = !!this.icon;\n\t\tthis.hasEndIcon = !!this.endIcon;\n\t\tthis.iconOnly = this.isIconOnly;\n\n\t\tconst defaultTooltip = await this.getDefaultTooltip();\n\t\tthis.buttonTitle = this.iconOnly ? this.tooltip ?? defaultTooltip : this.tooltip;\n\t}\n\n\t_setBadgeOverlayStyle() {\n\t\tconst needsOverflowVisible = this.badge.length && (this.badge[0].design === ButtonBadgeDesign.AttentionDot || this.badge[0].design === ButtonBadgeDesign.OverlayText);\n\n\t\tif (needsOverflowVisible) {\n\t\t\tthis._internals.states.add(\"has-overlay-badge\");\n\t\t} else {\n\t\t\tthis._internals.states.delete(\"has-overlay-badge\");\n\t\t}\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\te.stopImmediatePropagation();\n\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.loading) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tconst {\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t} = e;\n\n\t\tconst prevented = !this.fireDecoratorEvent(\"click\", {\n\t\t\toriginalEvent: e,\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t});\n\n\t\tif (prevented) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isSubmit) {\n\t\t\tsubmitForm(this);\n\t\t}\n\n\t\tif (this._isReset) {\n\t\t\tresetForm(this);\n\t\t}\n\n\t\tif (isSafari()) {\n\t\t\tthis.getDomRef()?.focus();\n\t\t}\n\t}\n\n\t_onmousedown() {\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._setActiveState(true);\n\t\tactiveButton = this; // eslint-disable-line\n\t}\n\n\t_ontouchend(e: TouchEvent) {\n\t\tif (this.disabled || this.loading) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\tif (this.active) {\n\t\t\tthis._setActiveState(false);\n\t\t}\n\n\t\tif (activeButton) {\n\t\t\tactiveButton._setActiveState(false);\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tthis._cancelAction = isShift(e) || isEscape(e);\n\n\t\tif (isSpace(e) || isEnter(e)) {\n\t\t\tthis._setActiveState(true);\n\t\t} else if (this._cancelAction) {\n\t\t\tthis._setActiveState(false);\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (this._cancelAction) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isSpace(e) || isEnter(e)) {\n\t\t\tif (this.active) {\n\t\t\t\tthis._setActiveState(false);\n\t\t\t}\n\t\t}\n\t}\n\n\t_onfocusout() {\n\t\tif (this.nonInteractive) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.active) {\n\t\t\tthis._setActiveState(false);\n\t\t}\n\t}\n\n\t_setActiveState(active: boolean) {\n\t\tconst eventPrevented = !this.fireDecoratorEvent(\"active-state-change\");\n\n\t\tif (eventPrevented || this.loading) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.active = active;\n\t}\n\n\tget hasButtonType() {\n\t\treturn this.design !== ButtonDesign.Default && this.design !== ButtonDesign.Transparent;\n\t}\n\n\tget isIconOnly() {\n\t\treturn !willShowContent(this.text);\n\t}\n\n\tstatic typeTextMappings(): Record<string, I18nText> {\n\t\treturn {\n\t\t\t\"Positive\": BUTTON_ARIA_TYPE_ACCEPT,\n\t\t\t\"Negative\": BUTTON_ARIA_TYPE_REJECT,\n\t\t\t\"Emphasized\": BUTTON_ARIA_TYPE_EMPHASIZED,\n\t\t\t\"Attention\": BUTTON_ARIA_TYPE_ATTENTION,\n\t\t};\n\t}\n\n\tgetDefaultTooltip() {\n\t\tif (!getEnableDefaultTooltips()) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn getIconAccessibleName(this.icon);\n\t}\n\n\tget buttonTypeText() {\n\t\treturn Button.i18nBundle.getText(Button.typeTextMappings()[this.design]);\n\t}\n\n\tget effectiveAccRole(): AriaRole {\n\t\treturn toLowercaseEnumValue(this.accessibleRole);\n\t}\n\n\tget tabIndexValue() {\n\t\tif (this.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tabindex = this.getAttribute(\"tabindex\");\n\n\t\tif (tabindex) {\n\t\t\treturn Number.parseInt(tabindex);\n\t\t}\n\n\t\treturn this.nonInteractive ? -1 : Number.parseInt(this.forcedTabIndex);\n\t}\n\n\tget ariaLabelText() {\n\t\tconst textContent = this.textContent || \"\";\n\t\tconst ariaLabelText = getEffectiveAriaLabelText(this) || \"\";\n\t\tconst typeLabelText = this.hasButtonType ? this.buttonTypeText : \"\";\n\t\tconst internalLabelText = this.effectiveBadgeDescriptionText || \"\";\n\n\t\tconst labelParts = [textContent, ariaLabelText, typeLabelText, internalLabelText].filter(part => part);\n\t\treturn labelParts.join(\" \");\n\t}\n\n\tget ariaDescriptionText() {\n\t\treturn this.accessibleDescription === \"\" ? undefined : this.accessibleDescription;\n\t}\n\n\tget _computedAccessibilityAttributes(): ButtonAccessibilityAttributes {\n\t\treturn {\n\t\t\texpanded: this.accessibilityAttributes.expanded,\n\t\t\thasPopup: this.accessibilityAttributes.hasPopup,\n\t\t\tcontrols: this.accessibilityAttributes.controls,\n\t\t\tariaKeyShortcuts: this.accessibilityAttributes.ariaKeyShortcuts,\n\t\t\tariaLabel: this.accessibilityAttributes.ariaLabel || this.ariaLabelText,\n\t\t};\n\t}\n\n\tget effectiveBadgeDescriptionText() {\n\t\tif (!this.shouldRenderBadge) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tconst badgeEffectiveText = this.badge[0].effectiveText;\n\n\t\t// Use distinct i18n keys for singular and plural badge values to ensure proper localization.\n\t\t// Some languages have different grammatical rules for singular and plural forms,\n\t\t// so separate keys (BUTTON_BADGE_ONE_ITEM and BUTTON_BADGE_MANY_ITEMS) are necessary.\n\t\tswitch (badgeEffectiveText) {\n\t\tcase \"\":\n\t\t\treturn badgeEffectiveText;\n\t\tcase \"1\":\n\t\t\treturn Button.i18nBundle.getText(BUTTON_BADGE_ONE_ITEM, badgeEffectiveText);\n\t\tdefault:\n\t\t\treturn Button.i18nBundle.getText(BUTTON_BADGE_MANY_ITEMS, badgeEffectiveText);\n\t\t}\n\t}\n\n\tget _isSubmit() {\n\t\treturn this.type === ButtonType.Submit || this.submits;\n\t}\n\n\tget _isReset() {\n\t\treturn this.type === ButtonType.Reset;\n\t}\n\n\tget shouldRenderBadge() {\n\t\treturn !!this.badge.length && (!!this.badge[0].text.length || this.badge[0].design === ButtonBadgeDesign.AttentionDot);\n\t}\n}\n\nButton.define();\n\nexport default Button;\nexport type {\n\tButtonAccessibilityAttributes,\n\tButtonClickEventDetail,\n\tIButton,\n};\n"]}
@@ -8,7 +8,7 @@ export default function ButtonTemplate(injectedProps) {
8
8
  "ui5-button-badge-placement-end": this.badge[0]?.design === "InlineText",
9
9
  "ui5-button-badge-placement-end-top": this.badge[0]?.design === "OverlayText",
10
10
  "ui5-button-badge-dot": this.badge[0]?.design === "AttentionDot"
11
- }, disabled: this.disabled, "data-sap-focus-ref": true, "aria-pressed": injectedProps?.ariaPressed, "aria-valuemin": injectedProps?.ariaValueMin, "aria-valuemax": injectedProps?.ariaValueMax, "aria-valuenow": injectedProps?.ariaValueNow, "aria-valuetext": injectedProps?.ariaValueText, onFocusOut: this._onfocusout, onClick: this._onclick, onMouseDown: this._onmousedown, onKeyDown: this._onkeydown, onKeyUp: this._onkeyup, onTouchStart: this._ontouchstart, onTouchEnd: this._ontouchend, tabindex: this.tabIndexValue, "aria-expanded": this.accessibilityAttributes.expanded, "aria-controls": this.accessibilityAttributes.controls, "aria-haspopup": this._hasPopup, "aria-label": this.ariaLabelText, "aria-description": this.ariaDescriptionText, "aria-busy": this.loading ? "true" : undefined, title: this.buttonTitle, part: "button", role: this.effectiveAccRole, children: [this.icon &&
11
+ }, disabled: this.disabled, "data-sap-focus-ref": true, "aria-pressed": injectedProps?.ariaPressed, "aria-valuemin": injectedProps?.ariaValueMin, "aria-valuemax": injectedProps?.ariaValueMax, "aria-valuenow": injectedProps?.ariaValueNow, "aria-valuetext": injectedProps?.ariaValueText, onFocusOut: this._onfocusout, onClick: this._onclick, onMouseDown: this._onmousedown, onKeyDown: this._onkeydown, onKeyUp: this._onkeyup, onTouchStart: this._ontouchstart, onTouchEnd: this._ontouchend, tabindex: this.tabIndexValue, "aria-expanded": this._computedAccessibilityAttributes?.expanded, "aria-controls": this._computedAccessibilityAttributes?.controls, "aria-haspopup": this._computedAccessibilityAttributes?.hasPopup, "aria-label": this._computedAccessibilityAttributes?.ariaLabel, "aria-keyshortcuts": this._computedAccessibilityAttributes?.ariaKeyShortcuts, "aria-description": this.ariaDescriptionText, "aria-busy": this.loading ? "true" : undefined, title: this.buttonTitle, part: "button", role: this.effectiveAccRole, children: [this.icon &&
12
12
  _jsx(Icon, { class: "ui5-button-icon", name: this.icon, mode: "Decorative", part: "icon" }), _jsx("span", { id: `${this._id}-content`, class: "ui5-button-text", children: _jsx("bdi", { children: _jsx("slot", {}) }) }), this.endIcon &&
13
13
  _jsx(Icon, { class: "ui5-button-end-icon", name: this.endIcon, mode: "Decorative", part: "endIcon" }), this.shouldRenderBadge &&
14
14
  _jsx("slot", { name: "badge" })] }), this.loading &&
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonTemplate.js","sourceRoot":"","sources":["../src/ButtonTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,iBAAiB,MAAM,8BAA8B,CAAC;AAE7D,MAAM,CAAC,OAAO,UAAU,cAAc,CAAe,aAMpD;IACA,OAAO,CAAC,8BACP,kBACC,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE;oBACN,iBAAiB,EAAE,IAAI;oBACvB,gCAAgC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,YAAY;oBACxE,oCAAoC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,aAAa;oBAC7E,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,cAAc;iBAChE,EACD,QAAQ,EAAE,IAAI,CAAC,QAAQ,8CAET,aAAa,EAAE,WAAW,mBACzB,aAAa,EAAE,YAAY,mBAC3B,aAAa,EAAE,YAAY,mBAC3B,aAAa,EAAE,YAAY,oBAC1B,aAAa,EAAE,aAAa,EAC5C,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,WAAW,EAAE,IAAI,CAAC,YAAY,EAC9B,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,YAAY,EAAE,IAAI,CAAC,aAAa,EAChC,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,QAAQ,EAAE,IAAI,CAAC,aAAa,mBACb,IAAI,CAAC,uBAAuB,CAAC,QAAQ,mBACrC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,mBACrC,IAAI,CAAC,SAAS,gBACjB,IAAI,CAAC,aAAa,sBACZ,IAAI,CAAC,mBAAmB,eAC/B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC5C,KAAK,EAAE,IAAI,CAAC,WAAW,EACvB,IAAI,EAAC,QAAQ,EACb,IAAI,EAAE,IAAI,CAAC,gBAAgB,aAEzB,IAAI,CAAC,IAAI;wBACV,KAAC,IAAI,IACJ,KAAK,EAAC,iBAAiB,EACvB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAC,YAAY,EACjB,IAAI,EAAC,MAAM,GACV,EAGH,eAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU,EAAE,KAAK,EAAC,iBAAiB,YACvD,wBACC,gBAAa,GACR,GACA,EAEN,IAAI,CAAC,OAAO;wBACZ,KAAC,IAAI,IACJ,KAAK,EAAC,qBAAqB,EAC3B,IAAI,EAAE,IAAI,CAAC,OAAO,EAClB,IAAI,EAAC,YAAY,EACjB,IAAI,EAAC,SAAS,GACb,EAGF,IAAI,CAAC,iBAAiB;wBACtB,eAAM,IAAI,EAAC,OAAO,GAAE,IAEb,EACR,IAAI,CAAC,OAAO;gBACZ,KAAC,aAAa,IACb,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,wBAAwB,EACvC,KAAK,EAAC,2BAA2B,EACjC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAC/D,MAAM,EAAE,IAAI,EACZ,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,KAAK,EAAE,IAAI,CAAC,OAAO,GAClB,IAED,CAAC,CAAC;AACN,CAAC","sourcesContent":["import type Button from \"./Button.js\";\nimport Icon from \"./Icon.js\";\nimport BusyIndicator from \"./BusyIndicator.js\";\nimport BusyIndicatorSize from \"./types/BusyIndicatorSize.js\";\n\nexport default function ButtonTemplate(this: Button, injectedProps?: {\n\t\tariaPressed?: boolean,\n\t\tariaValueMax?: number,\n\t\tariaValueMin?: number,\n\t\tariaValueNow?: number,\n\t\tariaValueText?: string,\n}) {\n\treturn (<>\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tclass={{\n\t\t\t\t\"ui5-button-root\": true,\n\t\t\t\t\"ui5-button-badge-placement-end\": this.badge[0]?.design === \"InlineText\",\n\t\t\t\t\"ui5-button-badge-placement-end-top\": this.badge[0]?.design === \"OverlayText\",\n\t\t\t\t\"ui5-button-badge-dot\": this.badge[0]?.design === \"AttentionDot\"\n\t\t\t}}\n\t\t\tdisabled={this.disabled}\n\t\t\tdata-sap-focus-ref\n\t\t\taria-pressed={injectedProps?.ariaPressed}\n\t\t\taria-valuemin={injectedProps?.ariaValueMin}\n\t\t\taria-valuemax={injectedProps?.ariaValueMax}\n\t\t\taria-valuenow={injectedProps?.ariaValueNow}\n\t\t\taria-valuetext={injectedProps?.ariaValueText}\n\t\t\tonFocusOut={this._onfocusout}\n\t\t\tonClick={this._onclick}\n\t\t\tonMouseDown={this._onmousedown}\n\t\t\tonKeyDown={this._onkeydown}\n\t\t\tonKeyUp={this._onkeyup}\n\t\t\tonTouchStart={this._ontouchstart}\n\t\t\tonTouchEnd={this._ontouchend}\n\t\t\ttabindex={this.tabIndexValue}\n\t\t\taria-expanded={this.accessibilityAttributes.expanded}\n\t\t\taria-controls={this.accessibilityAttributes.controls}\n\t\t\taria-haspopup={this._hasPopup}\n\t\t\taria-label={this.ariaLabelText}\n\t\t\taria-description={this.ariaDescriptionText}\n\t\t\taria-busy={this.loading ? \"true\" : undefined}\n\t\t\ttitle={this.buttonTitle}\n\t\t\tpart=\"button\"\n\t\t\trole={this.effectiveAccRole}\n\t\t>\n\t\t\t{ this.icon &&\n\t\t\t\t<Icon\n\t\t\t\t\tclass=\"ui5-button-icon\"\n\t\t\t\t\tname={this.icon}\n\t\t\t\t\tmode=\"Decorative\"\n\t\t\t\t\tpart=\"icon\"\n\t\t\t\t/>\n\t\t\t}\n\n\t\t\t<span id={`${this._id}-content`} class=\"ui5-button-text\">\n\t\t\t\t<bdi>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</bdi>\n\t\t\t</span>\n\n\t\t\t{this.endIcon &&\n\t\t\t\t<Icon\n\t\t\t\t\tclass=\"ui5-button-end-icon\"\n\t\t\t\t\tname={this.endIcon}\n\t\t\t\t\tmode=\"Decorative\"\n\t\t\t\t\tpart=\"endIcon\"\n\t\t\t\t/>\n\t\t\t}\n\n\t\t\t{this.shouldRenderBadge &&\n\t\t\t\t<slot name=\"badge\"/>\n\t\t\t}\n\t\t</button>\n\t\t{this.loading &&\n\t\t\t<BusyIndicator\n\t\t\t\tid={`${this._id}-button-busy-indicator`}\n\t\t\t\tclass=\"ui5-button-busy-indicator\"\n\t\t\t\tsize={this.iconOnly ? BusyIndicatorSize.S : BusyIndicatorSize.M}\n\t\t\t\tactive={true}\n\t\t\t\tdelay={this.loadingDelay}\n\t\t\t\tinert={this.loading}\n\t\t\t/>\n\t\t}\n\t</>);\n}\n"]}
1
+ {"version":3,"file":"ButtonTemplate.js","sourceRoot":"","sources":["../src/ButtonTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,iBAAiB,MAAM,8BAA8B,CAAC;AAE7D,MAAM,CAAC,OAAO,UAAU,cAAc,CAAe,aAMpD;IACA,OAAO,CAAC,8BACP,kBACC,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE;oBACN,iBAAiB,EAAE,IAAI;oBACvB,gCAAgC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,YAAY;oBACxE,oCAAoC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,aAAa;oBAC7E,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,cAAc;iBAChE,EACD,QAAQ,EAAE,IAAI,CAAC,QAAQ,8CAET,aAAa,EAAE,WAAW,mBACzB,aAAa,EAAE,YAAY,mBAC3B,aAAa,EAAE,YAAY,mBAC3B,aAAa,EAAE,YAAY,oBAC1B,aAAa,EAAE,aAAa,EAC5C,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,WAAW,EAAE,IAAI,CAAC,YAAY,EAC9B,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,YAAY,EAAE,IAAI,CAAC,aAAa,EAChC,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,QAAQ,EAAE,IAAI,CAAC,aAAa,mBACb,IAAI,CAAC,gCAAgC,EAAE,QAAQ,mBAC/C,IAAI,CAAC,gCAAgC,EAAE,QAAQ,mBAC/C,IAAI,CAAC,gCAAgC,EAAE,QAAQ,gBAClD,IAAI,CAAC,gCAAgC,EAAE,SAAS,uBACzC,IAAI,CAAC,gCAAgC,EAAE,gBAAgB,sBACxD,IAAI,CAAC,mBAAmB,eAC/B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC5C,KAAK,EAAE,IAAI,CAAC,WAAW,EACvB,IAAI,EAAC,QAAQ,EACb,IAAI,EAAE,IAAI,CAAC,gBAAgB,aAEzB,IAAI,CAAC,IAAI;wBACV,KAAC,IAAI,IACJ,KAAK,EAAC,iBAAiB,EACvB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAC,YAAY,EACjB,IAAI,EAAC,MAAM,GACV,EAGH,eAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU,EAAE,KAAK,EAAC,iBAAiB,YACvD,wBACC,gBAAa,GACR,GACA,EAEN,IAAI,CAAC,OAAO;wBACZ,KAAC,IAAI,IACJ,KAAK,EAAC,qBAAqB,EAC3B,IAAI,EAAE,IAAI,CAAC,OAAO,EAClB,IAAI,EAAC,YAAY,EACjB,IAAI,EAAC,SAAS,GACb,EAGF,IAAI,CAAC,iBAAiB;wBACtB,eAAM,IAAI,EAAC,OAAO,GAAE,IAEb,EACR,IAAI,CAAC,OAAO;gBACZ,KAAC,aAAa,IACb,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,wBAAwB,EACvC,KAAK,EAAC,2BAA2B,EACjC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAC/D,MAAM,EAAE,IAAI,EACZ,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,KAAK,EAAE,IAAI,CAAC,OAAO,GAClB,IAED,CAAC,CAAC;AACN,CAAC","sourcesContent":["import type Button from \"./Button.js\";\nimport Icon from \"./Icon.js\";\nimport BusyIndicator from \"./BusyIndicator.js\";\nimport BusyIndicatorSize from \"./types/BusyIndicatorSize.js\";\n\nexport default function ButtonTemplate(this: Button, injectedProps?: {\n\t\tariaPressed?: boolean,\n\t\tariaValueMax?: number,\n\t\tariaValueMin?: number,\n\t\tariaValueNow?: number,\n\t\tariaValueText?: string,\n}) {\n\treturn (<>\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tclass={{\n\t\t\t\t\"ui5-button-root\": true,\n\t\t\t\t\"ui5-button-badge-placement-end\": this.badge[0]?.design === \"InlineText\",\n\t\t\t\t\"ui5-button-badge-placement-end-top\": this.badge[0]?.design === \"OverlayText\",\n\t\t\t\t\"ui5-button-badge-dot\": this.badge[0]?.design === \"AttentionDot\"\n\t\t\t}}\n\t\t\tdisabled={this.disabled}\n\t\t\tdata-sap-focus-ref\n\t\t\taria-pressed={injectedProps?.ariaPressed}\n\t\t\taria-valuemin={injectedProps?.ariaValueMin}\n\t\t\taria-valuemax={injectedProps?.ariaValueMax}\n\t\t\taria-valuenow={injectedProps?.ariaValueNow}\n\t\t\taria-valuetext={injectedProps?.ariaValueText}\n\t\t\tonFocusOut={this._onfocusout}\n\t\t\tonClick={this._onclick}\n\t\t\tonMouseDown={this._onmousedown}\n\t\t\tonKeyDown={this._onkeydown}\n\t\t\tonKeyUp={this._onkeyup}\n\t\t\tonTouchStart={this._ontouchstart}\n\t\t\tonTouchEnd={this._ontouchend}\n\t\t\ttabindex={this.tabIndexValue}\n\t\t\taria-expanded={this._computedAccessibilityAttributes?.expanded}\n\t\t\taria-controls={this._computedAccessibilityAttributes?.controls}\n\t\t\taria-haspopup={this._computedAccessibilityAttributes?.hasPopup}\n\t\t\taria-label={this._computedAccessibilityAttributes?.ariaLabel}\n\t\t\taria-keyshortcuts={this._computedAccessibilityAttributes?.ariaKeyShortcuts}\n\t\t\taria-description={this.ariaDescriptionText}\n\t\t\taria-busy={this.loading ? \"true\" : undefined}\n\t\t\ttitle={this.buttonTitle}\n\t\t\tpart=\"button\"\n\t\t\trole={this.effectiveAccRole}\n\t\t>\n\t\t\t{ this.icon &&\n\t\t\t\t<Icon\n\t\t\t\t\tclass=\"ui5-button-icon\"\n\t\t\t\t\tname={this.icon}\n\t\t\t\t\tmode=\"Decorative\"\n\t\t\t\t\tpart=\"icon\"\n\t\t\t\t/>\n\t\t\t}\n\n\t\t\t<span id={`${this._id}-content`} class=\"ui5-button-text\">\n\t\t\t\t<bdi>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</bdi>\n\t\t\t</span>\n\n\t\t\t{this.endIcon &&\n\t\t\t\t<Icon\n\t\t\t\t\tclass=\"ui5-button-end-icon\"\n\t\t\t\t\tname={this.endIcon}\n\t\t\t\t\tmode=\"Decorative\"\n\t\t\t\t\tpart=\"endIcon\"\n\t\t\t\t/>\n\t\t\t}\n\n\t\t\t{this.shouldRenderBadge &&\n\t\t\t\t<slot name=\"badge\"/>\n\t\t\t}\n\t\t</button>\n\t\t{this.loading &&\n\t\t\t<BusyIndicator\n\t\t\t\tid={`${this._id}-button-busy-indicator`}\n\t\t\t\tclass=\"ui5-button-busy-indicator\"\n\t\t\t\tsize={this.iconOnly ? BusyIndicatorSize.S : BusyIndicatorSize.M}\n\t\t\t\tactive={true}\n\t\t\t\tdelay={this.loadingDelay}\n\t\t\t\tinert={this.loading}\n\t\t\t/>\n\t\t}\n\t</>);\n}\n"]}
@@ -19,6 +19,7 @@ import "./ComboBoxItemGroup.js";
19
19
  import type ComboBoxFilter from "./types/ComboBoxFilter.js";
20
20
  import PopoverHorizontalAlign from "./types/PopoverHorizontalAlign.js";
21
21
  import type { InputEventDetail } from "./Input.js";
22
+ import type InputComposition from "./features/InputComposition.js";
22
23
  /**
23
24
  * Interface for components that may be slotted inside a `ui5-combobox`
24
25
  * @public
@@ -220,6 +221,12 @@ declare class ComboBox extends UI5Element implements IFormInputElement {
220
221
  * @private
221
222
  */
222
223
  _linksListenersArray: Array<(args: any) => void>;
224
+ /**
225
+ * Indicates whether IME composition is currently active
226
+ * @default false
227
+ * @private
228
+ */
229
+ _isComposing: boolean;
223
230
  /**
224
231
  * Defines the component items.
225
232
  * @public
@@ -252,7 +259,9 @@ declare class ComboBox extends UI5Element implements IFormInputElement {
252
259
  _selectedItemText: string;
253
260
  _userTypedValue: string;
254
261
  _valueStateLinks: Array<HTMLElement>;
262
+ _composition?: InputComposition;
255
263
  static i18nBundle: I18nBundle;
264
+ static composition: typeof InputComposition;
256
265
  get formValidityMessage(): string;
257
266
  get formValidity(): ValidityStateFlags;
258
267
  formElementAnchor(): Promise<HTMLElement | undefined>;
@@ -261,6 +270,7 @@ declare class ComboBox extends UI5Element implements IFormInputElement {
261
270
  onBeforeRendering(): void;
262
271
  get iconsCount(): number;
263
272
  onAfterRendering(): void;
273
+ onEnterDOM(): void;
264
274
  onExitDOM(): void;
265
275
  _focusin(e: FocusEvent): void;
266
276
  _focusout(e: FocusEvent): void;
@@ -316,6 +326,12 @@ declare class ComboBox extends UI5Element implements IFormInputElement {
316
326
  _makeAllVisible(item: IComboBoxItem): void;
317
327
  _scrollToItem(indexOfItem: number): void;
318
328
  _announceValueStateText(): void;
329
+ /**
330
+ * Enables IME composition handling.
331
+ * Dynamically loads the InputComposition feature and sets up event listeners.
332
+ * @private
333
+ */
334
+ _enableComposition(): void;
319
335
  get _headerTitleText(): string;
320
336
  get _iconAccessibleNameText(): string;
321
337
  get _popupLabel(): string;
package/dist/ComboBox.js CHANGED
@@ -210,6 +210,12 @@ let ComboBox = ComboBox_1 = class ComboBox extends UI5Element {
210
210
  * @private
211
211
  */
212
212
  this._linksListenersArray = [];
213
+ /**
214
+ * Indicates whether IME composition is currently active
215
+ * @default false
216
+ * @private
217
+ */
218
+ this._isComposing = false;
213
219
  this._initialRendering = true;
214
220
  this._itemFocused = false;
215
221
  // used only for Safari fix (check onAfterRendering)
@@ -264,8 +270,12 @@ let ComboBox = ComboBox_1 = class ComboBox extends UI5Element {
264
270
  this._valueStateLinks = this.linksInAriaValueStateHiddenText;
265
271
  }
266
272
  }
273
+ onEnterDOM() {
274
+ this._enableComposition();
275
+ }
267
276
  onExitDOM() {
268
277
  this._removeLinksEventListeners();
278
+ this._composition?.removeEventListeners();
269
279
  }
270
280
  _focusin(e) {
271
281
  this.focused = true;
@@ -404,7 +414,7 @@ let ComboBox = ComboBox_1 = class ComboBox extends UI5Element {
404
414
  this.filterValue = value;
405
415
  this._clearFocus();
406
416
  // autocomplete
407
- if (shouldAutocomplete && !isAndroid()) {
417
+ if (shouldAutocomplete && !this._isComposing && !isAndroid()) {
408
418
  this._handleTypeAhead(value, value);
409
419
  }
410
420
  this.fireDecoratorEvent("input");
@@ -903,6 +913,34 @@ let ComboBox = ComboBox_1 = class ComboBox extends UI5Element {
903
913
  announce(valueStateText, InvisibleMessageMode.Polite);
904
914
  }
905
915
  }
916
+ /**
917
+ * Enables IME composition handling.
918
+ * Dynamically loads the InputComposition feature and sets up event listeners.
919
+ * @private
920
+ */
921
+ _enableComposition() {
922
+ if (this._composition) {
923
+ return;
924
+ }
925
+ const setup = (InputCompositionClass) => {
926
+ this._composition = new InputCompositionClass({
927
+ getInputEl: () => this.inner,
928
+ updateCompositionState: (isComposing) => {
929
+ this._isComposing = isComposing;
930
+ },
931
+ });
932
+ this._composition.addEventListeners();
933
+ };
934
+ if (ComboBox_1.composition) {
935
+ setup(ComboBox_1.composition);
936
+ }
937
+ else {
938
+ import("./features/InputComposition.js").then(CompositionModule => {
939
+ ComboBox_1.composition = CompositionModule.default;
940
+ setup(CompositionModule.default);
941
+ });
942
+ }
943
+ }
906
944
  get _headerTitleText() {
907
945
  return ComboBox_1.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
908
946
  }
@@ -1139,6 +1177,9 @@ __decorate([
1139
1177
  __decorate([
1140
1178
  property({ type: Array })
1141
1179
  ], ComboBox.prototype, "_linksListenersArray", void 0);
1180
+ __decorate([
1181
+ property({ type: Boolean, noAttribute: true })
1182
+ ], ComboBox.prototype, "_isComposing", void 0);
1142
1183
  __decorate([
1143
1184
  slot({
1144
1185
  type: HTMLElement,