@ui5/webcomponents 1.24.13 → 1.24.15

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 (348) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/Dialog.d.ts +4 -5
  4. package/dist/Dialog.js +1 -2
  5. package/dist/Dialog.js.map +1 -1
  6. package/dist/Input.js +5 -0
  7. package/dist/Input.js.map +1 -1
  8. package/dist/ListItemBase.d.ts +1 -1
  9. package/dist/ListItemBase.js.map +1 -1
  10. package/dist/RadioButton.d.ts +5 -2
  11. package/dist/RadioButton.js +1 -1
  12. package/dist/RadioButton.js.map +1 -1
  13. package/dist/RadioButtonGroup.d.ts +2 -2
  14. package/dist/RadioButtonGroup.js +56 -34
  15. package/dist/RadioButtonGroup.js.map +1 -1
  16. package/dist/SliderBase.d.ts +1 -2
  17. package/dist/SliderBase.js +6 -8
  18. package/dist/SliderBase.js.map +1 -1
  19. package/dist/SuggestionListItem.d.ts +1 -0
  20. package/dist/SuggestionListItem.js +4 -0
  21. package/dist/SuggestionListItem.js.map +1 -1
  22. package/dist/css/themes/Avatar.css +1 -1
  23. package/dist/css/themes/AvatarGroup.css +1 -1
  24. package/dist/css/themes/Badge.css +1 -1
  25. package/dist/css/themes/Breadcrumbs.css +1 -1
  26. package/dist/css/themes/BusyIndicator.css +1 -1
  27. package/dist/css/themes/Button.css +1 -1
  28. package/dist/css/themes/Calendar.css +1 -1
  29. package/dist/css/themes/CalendarHeader.css +1 -1
  30. package/dist/css/themes/CalendarLegend.css +1 -1
  31. package/dist/css/themes/CalendarLegendItem.css +1 -1
  32. package/dist/css/themes/Card.css +1 -1
  33. package/dist/css/themes/CardHeader.css +1 -1
  34. package/dist/css/themes/Carousel.css +1 -1
  35. package/dist/css/themes/CheckBox.css +1 -1
  36. package/dist/css/themes/ColorPalette.css +1 -1
  37. package/dist/css/themes/ColorPaletteItem.css +1 -1
  38. package/dist/css/themes/ColorPalettePopover.css +1 -1
  39. package/dist/css/themes/ColorPicker.css +1 -1
  40. package/dist/css/themes/ComboBox.css +1 -1
  41. package/dist/css/themes/CustomListItem.css +1 -1
  42. package/dist/css/themes/DatePicker.css +1 -1
  43. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  44. package/dist/css/themes/DayPicker.css +1 -1
  45. package/dist/css/themes/Dialog.css +1 -1
  46. package/dist/css/themes/FileUploader.css +1 -1
  47. package/dist/css/themes/GroupHeaderListItem.css +1 -1
  48. package/dist/css/themes/GrowingButton.css +1 -1
  49. package/dist/css/themes/Icon.css +1 -1
  50. package/dist/css/themes/Input.css +1 -1
  51. package/dist/css/themes/InputIcon.css +1 -1
  52. package/dist/css/themes/InputSharedStyles.css +1 -1
  53. package/dist/css/themes/Link.css +1 -1
  54. package/dist/css/themes/List.css +1 -1
  55. package/dist/css/themes/ListItem.css +1 -1
  56. package/dist/css/themes/ListItemBase.css +1 -1
  57. package/dist/css/themes/Menu.css +1 -1
  58. package/dist/css/themes/MenuListItem.css +1 -1
  59. package/dist/css/themes/MessageStrip.css +1 -1
  60. package/dist/css/themes/MonthPicker.css +1 -1
  61. package/dist/css/themes/MultiComboBox.css +1 -1
  62. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  63. package/dist/css/themes/MultiInput.css +1 -1
  64. package/dist/css/themes/NavigationMenu.css +1 -1
  65. package/dist/css/themes/Panel.css +1 -1
  66. package/dist/css/themes/Popover.css +1 -1
  67. package/dist/css/themes/PopupStaticAreaStyles.css +1 -1
  68. package/dist/css/themes/PopupsCommon.css +1 -1
  69. package/dist/css/themes/ProgressIndicator.css +1 -1
  70. package/dist/css/themes/RadioButton.css +1 -1
  71. package/dist/css/themes/RangeSlider.css +1 -1
  72. package/dist/css/themes/RatingIndicator.css +1 -1
  73. package/dist/css/themes/ResponsivePopover.css +1 -1
  74. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  75. package/dist/css/themes/SegmentedButton.css +1 -1
  76. package/dist/css/themes/Select.css +1 -1
  77. package/dist/css/themes/SelectMenu.css +1 -1
  78. package/dist/css/themes/SelectPopover.css +1 -1
  79. package/dist/css/themes/SliderBase.css +1 -1
  80. package/dist/css/themes/SplitButton.css +1 -1
  81. package/dist/css/themes/StepInput.css +1 -1
  82. package/dist/css/themes/Switch.css +1 -1
  83. package/dist/css/themes/TabContainer.css +1 -1
  84. package/dist/css/themes/TabInOverflow.css +1 -1
  85. package/dist/css/themes/TabInStrip.css +1 -1
  86. package/dist/css/themes/TabSemanticIcon.css +1 -1
  87. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  88. package/dist/css/themes/Table.css +1 -1
  89. package/dist/css/themes/TableCell.css +1 -1
  90. package/dist/css/themes/TableColumn.css +1 -1
  91. package/dist/css/themes/TableGroupRow.css +1 -1
  92. package/dist/css/themes/TableRow.css +1 -1
  93. package/dist/css/themes/TextArea.css +1 -1
  94. package/dist/css/themes/TimePicker.css +1 -1
  95. package/dist/css/themes/Toast.css +1 -1
  96. package/dist/css/themes/ToggleButton.css +1 -1
  97. package/dist/css/themes/Token.css +1 -1
  98. package/dist/css/themes/Tokenizer.css +1 -1
  99. package/dist/css/themes/TokenizerPopover.css +1 -1
  100. package/dist/css/themes/Toolbar.css +1 -1
  101. package/dist/css/themes/ToolbarPopover.css +1 -1
  102. package/dist/css/themes/TreeItem.css +1 -1
  103. package/dist/css/themes/ValueStateMessage.css +1 -1
  104. package/dist/css/themes/WheelSlider.css +1 -1
  105. package/dist/css/themes/YearPicker.css +1 -1
  106. package/dist/css/themes/sap_belize/parameters-bundle.css +1 -1
  107. package/dist/css/themes/sap_belize_hcb/parameters-bundle.css +1 -1
  108. package/dist/css/themes/sap_belize_hcw/parameters-bundle.css +1 -1
  109. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  110. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  111. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  112. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  113. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  114. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  115. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  116. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  117. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  118. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  119. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  120. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  121. package/dist/custom-elements-internal.json +7 -7
  122. package/dist/custom-elements.json +7 -7
  123. package/dist/features/InputSuggestions.d.ts +3 -3
  124. package/dist/features/InputSuggestions.js +13 -15
  125. package/dist/features/InputSuggestions.js.map +1 -1
  126. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  127. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  128. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  129. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  130. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  131. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  132. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  133. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  134. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  135. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  136. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  137. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  138. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  139. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  140. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  141. package/dist/generated/templates/RadioButtonTemplate.lit.js +1 -1
  142. package/dist/generated/templates/RadioButtonTemplate.lit.js.map +1 -1
  143. package/dist/generated/themes/Avatar.css.js +1 -1
  144. package/dist/generated/themes/Avatar.css.js.map +1 -1
  145. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  146. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  147. package/dist/generated/themes/Badge.css.js +1 -1
  148. package/dist/generated/themes/Badge.css.js.map +1 -1
  149. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  150. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  151. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  152. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  153. package/dist/generated/themes/Button.css.js +1 -1
  154. package/dist/generated/themes/Button.css.js.map +1 -1
  155. package/dist/generated/themes/Calendar.css.js +1 -1
  156. package/dist/generated/themes/Calendar.css.js.map +1 -1
  157. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  158. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  159. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  160. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  161. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  162. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  163. package/dist/generated/themes/Card.css.js +1 -1
  164. package/dist/generated/themes/Card.css.js.map +1 -1
  165. package/dist/generated/themes/CardHeader.css.js +1 -1
  166. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  167. package/dist/generated/themes/Carousel.css.js +1 -1
  168. package/dist/generated/themes/Carousel.css.js.map +1 -1
  169. package/dist/generated/themes/CheckBox.css.js +1 -1
  170. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  171. package/dist/generated/themes/ColorPalette.css.js +1 -1
  172. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  173. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  174. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  175. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  176. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  177. package/dist/generated/themes/ColorPicker.css.js +1 -1
  178. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  179. package/dist/generated/themes/ComboBox.css.js +1 -1
  180. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  181. package/dist/generated/themes/CustomListItem.css.js +1 -1
  182. package/dist/generated/themes/CustomListItem.css.js.map +1 -1
  183. package/dist/generated/themes/DatePicker.css.js +1 -1
  184. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  185. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  186. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  187. package/dist/generated/themes/DayPicker.css.js +1 -1
  188. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  189. package/dist/generated/themes/Dialog.css.js +1 -1
  190. package/dist/generated/themes/Dialog.css.js.map +1 -1
  191. package/dist/generated/themes/FileUploader.css.js +1 -1
  192. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  193. package/dist/generated/themes/GroupHeaderListItem.css.js +1 -1
  194. package/dist/generated/themes/GroupHeaderListItem.css.js.map +1 -1
  195. package/dist/generated/themes/GrowingButton.css.js +1 -1
  196. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  197. package/dist/generated/themes/Icon.css.js +1 -1
  198. package/dist/generated/themes/Icon.css.js.map +1 -1
  199. package/dist/generated/themes/Input.css.js +1 -1
  200. package/dist/generated/themes/Input.css.js.map +1 -1
  201. package/dist/generated/themes/InputIcon.css.js +1 -1
  202. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  203. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  204. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  205. package/dist/generated/themes/Link.css.js +1 -1
  206. package/dist/generated/themes/Link.css.js.map +1 -1
  207. package/dist/generated/themes/List.css.js +1 -1
  208. package/dist/generated/themes/List.css.js.map +1 -1
  209. package/dist/generated/themes/ListItem.css.js +1 -1
  210. package/dist/generated/themes/ListItem.css.js.map +1 -1
  211. package/dist/generated/themes/ListItemBase.css.js +1 -1
  212. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  213. package/dist/generated/themes/Menu.css.js +1 -1
  214. package/dist/generated/themes/Menu.css.js.map +1 -1
  215. package/dist/generated/themes/MenuListItem.css.js +1 -1
  216. package/dist/generated/themes/MenuListItem.css.js.map +1 -1
  217. package/dist/generated/themes/MessageStrip.css.js +1 -1
  218. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  219. package/dist/generated/themes/MonthPicker.css.js +1 -1
  220. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  221. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  222. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  223. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  224. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  225. package/dist/generated/themes/MultiInput.css.js +1 -1
  226. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  227. package/dist/generated/themes/NavigationMenu.css.js +1 -1
  228. package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
  229. package/dist/generated/themes/Panel.css.js +1 -1
  230. package/dist/generated/themes/Panel.css.js.map +1 -1
  231. package/dist/generated/themes/Popover.css.js +1 -1
  232. package/dist/generated/themes/Popover.css.js.map +1 -1
  233. package/dist/generated/themes/PopupStaticAreaStyles.css.js +1 -1
  234. package/dist/generated/themes/PopupStaticAreaStyles.css.js.map +1 -1
  235. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  236. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  237. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  238. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  239. package/dist/generated/themes/RadioButton.css.js +1 -1
  240. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  241. package/dist/generated/themes/RangeSlider.css.js +1 -1
  242. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  243. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  244. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  245. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  246. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  247. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  248. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  249. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  250. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  251. package/dist/generated/themes/Select.css.js +1 -1
  252. package/dist/generated/themes/Select.css.js.map +1 -1
  253. package/dist/generated/themes/SelectMenu.css.js +1 -1
  254. package/dist/generated/themes/SelectMenu.css.js.map +1 -1
  255. package/dist/generated/themes/SelectPopover.css.js +1 -1
  256. package/dist/generated/themes/SelectPopover.css.js.map +1 -1
  257. package/dist/generated/themes/SliderBase.css.js +1 -1
  258. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  259. package/dist/generated/themes/SplitButton.css.js +1 -1
  260. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  261. package/dist/generated/themes/StepInput.css.js +1 -1
  262. package/dist/generated/themes/StepInput.css.js.map +1 -1
  263. package/dist/generated/themes/Switch.css.js +1 -1
  264. package/dist/generated/themes/Switch.css.js.map +1 -1
  265. package/dist/generated/themes/TabContainer.css.js +1 -1
  266. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  267. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  268. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  269. package/dist/generated/themes/TabInStrip.css.js +1 -1
  270. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  271. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  272. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  273. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  274. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  275. package/dist/generated/themes/Table.css.js +1 -1
  276. package/dist/generated/themes/Table.css.js.map +1 -1
  277. package/dist/generated/themes/TableCell.css.js +1 -1
  278. package/dist/generated/themes/TableCell.css.js.map +1 -1
  279. package/dist/generated/themes/TableColumn.css.js +1 -1
  280. package/dist/generated/themes/TableColumn.css.js.map +1 -1
  281. package/dist/generated/themes/TableGroupRow.css.js +1 -1
  282. package/dist/generated/themes/TableGroupRow.css.js.map +1 -1
  283. package/dist/generated/themes/TableRow.css.js +1 -1
  284. package/dist/generated/themes/TableRow.css.js.map +1 -1
  285. package/dist/generated/themes/TextArea.css.js +1 -1
  286. package/dist/generated/themes/TextArea.css.js.map +1 -1
  287. package/dist/generated/themes/TimePicker.css.js +1 -1
  288. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  289. package/dist/generated/themes/Toast.css.js +1 -1
  290. package/dist/generated/themes/Toast.css.js.map +1 -1
  291. package/dist/generated/themes/ToggleButton.css.js +1 -1
  292. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  293. package/dist/generated/themes/Token.css.js +1 -1
  294. package/dist/generated/themes/Token.css.js.map +1 -1
  295. package/dist/generated/themes/Tokenizer.css.js +1 -1
  296. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  297. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  298. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  299. package/dist/generated/themes/Toolbar.css.js +1 -1
  300. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  301. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  302. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  303. package/dist/generated/themes/TreeItem.css.js +1 -1
  304. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  305. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  306. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  307. package/dist/generated/themes/WheelSlider.css.js +1 -1
  308. package/dist/generated/themes/WheelSlider.css.js.map +1 -1
  309. package/dist/generated/themes/YearPicker.css.js +1 -1
  310. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  311. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  312. package/dist/generated/themes/sap_belize/parameters-bundle.css.js.map +1 -1
  313. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  314. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js.map +1 -1
  315. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  316. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js.map +1 -1
  317. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  318. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  319. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  320. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  321. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  322. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  323. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  324. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  325. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  326. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  327. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  328. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  329. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  330. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  331. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  332. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  333. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  334. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  335. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  336. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  337. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  338. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  339. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  340. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  341. package/dist/vscode.html-custom-data.json +4 -4
  342. package/dist/web-types.json +8 -8
  343. package/package.json +10 -10
  344. package/src/RadioButton.hbs +1 -1
  345. package/src/themes/Dialog.css +1 -0
  346. package/src/themes/ListItem.css +8 -0
  347. package/src/themes/ListItemBase.css +4 -0
  348. package/src/themes/Table.css +6 -2
@@ -1 +1 @@
1
- {"version":3,"file":"RadioButton.js","sourceRoot":"","sources":["../src/RadioButton.ts"],"names":[],"mappings":"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","sourcesContent":["import { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport {\n\tisSpace,\n\tisEnter,\n\tisDown,\n\tisLeft,\n\tisUp,\n\tisRight,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Label from \"./Label.js\";\nimport RadioButtonGroup from \"./RadioButtonGroup.js\";\nimport WrappingType from \"./types/WrappingType.js\";\nimport type { IFormElement } from \"./features/InputElementsFormSupport.js\";\nimport type FormSupport from \"./features/InputElementsFormSupport.js\";\n\n// Template\nimport RadioButtonTemplate from \"./generated/templates/RadioButtonTemplate.lit.js\";\n\n// i18n\nimport {\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n\tVALUE_STATE_SUCCESS,\n\tVALUE_STATE_INFORMATION,\n\tRADIO_BUTTON_GROUP_REQUIRED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport radioButtonCss from \"./generated/themes/RadioButton.css.js\";\n\nlet isGlobalHandlerAttached = false;\nlet activeRadio: RadioButton;\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-radio-button` component enables users to select a single option from a set of options.\n * When a `ui5-radio-button` is selected by the user, the\n * `change` event is fired.\n * When a `ui5-radio-button` that is within a group is selected, the one\n * that was previously selected gets automatically deselected. You can group radio buttons by using the `name` property.\n *\n * **Note:** If `ui5-radio-button` is not part of a group, it can be selected once, but can not be deselected back.\n *\n * ### Keyboard Handling\n *\n * Once the `ui5-radio-button` is on focus, it might be selected by pressing the Space and Enter keys.\n *\n * The Arrow Down/Arrow Up and Arrow Left/Arrow Right keys can be used to change selection between next/previous radio buttons in one group,\n * while TAB and SHIFT + TAB can be used to enter or leave the radio button group.\n *\n * **Note:** On entering radio button group, the focus goes to the currently selected radio button.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/RadioButton\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @csspart outer-ring - Used to style the outer ring of the `ui5-radio-button`.\n * @csspart inner-ring - Used to style the inner ring of the `ui5-radio-button`.\n */\n@customElement({\n\ttag: \"ui5-radio-button\",\n\tlanguageAware: true,\n\trenderer: litRender,\n\ttemplate: RadioButtonTemplate,\n\tstyles: radioButtonCss,\n\tdependencies: [Label],\n})\n/**\n * Fired when the component checked state changes.\n * @public\n * @since 1.0.0-rc.15\n */\n@event(\"change\")\n\nclass RadioButton extends UI5Element implements IFormElement {\n\t/**\n\t * Defines whether the component is disabled.\n\t *\n\t * **Note:** A disabled component is completely noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Defines whether the component is read-only.\n\t *\n\t * **Note:** A read-only component is not editable,\n\t * but still provides visual feedback upon user interaction.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly!: boolean;\n\n\t/**\n\t * Defines whether the component is required.\n\t * @default false\n\t * @public\n\t * @since 1.9.0\n\t */\n\t@property({ type: Boolean })\n\trequired!: boolean;\n\n\t/**\n\t * Defines whether the component is checked or not.\n\t *\n\t * **Note:** The property value can be changed with user interaction,\n\t * either by clicking/tapping on the component,\n\t * or by using the Space or Enter key.\n\t * @default false\n\t * @formEvents change\n\t * @formProperty\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: Boolean })\n\tchecked!: boolean;\n\n\t/**\n\t * Defines the text of the component.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\ttext!: string;\n\n\t/**\n\t * Defines the value state of the component.\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property({ type: ValueState, defaultValue: ValueState.None })\n\tvalueState!: `${ValueState}`;\n\n\t/**\n\t * Defines the name of the component.\n\t * Radio buttons with the same `name` will form a radio button group.\n\t *\n\t * **Note:**\n\t * The selection can be changed with `ARROW_UP/DOWN` and `ARROW_LEFT/RIGHT` keys between radio buttons in same group.\n\t *\n\t * **Note:**\n\t * Only one radio button can be selected per group.\n\t *\n\t * **Important:** For the `name` property to have effect when submitting forms, you must add the following import to your project:\n\t * `import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`\n\t *\n\t * **Note:** When set, a native `input` HTML element\n\t * will be created inside the component so that it can be submitted as\n\t * part of an HTML form.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tname!: string;\n\n\t/**\n\t * Defines the form value of the component.\n\t * When a form with a radio button group is submitted, the group's value\n\t * will be the value of the currently selected radio button.\n\t *\n\t * **Important:** For the `value` property to have effect, you must add the following import to your project:\n\t * `import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tvalue!: string;\n\n\t/**\n\t * Defines whether the component text wraps when there is not enough space.\n\t *\n\t * **Note:** for option \"Normal\" the text will wrap and the words will not be broken based on hyphenation.\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property({ type: WrappingType, defaultValue: WrappingType.None })\n\twrappingType!: `${WrappingType}`;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default \"\"\n\t * @public\n\t * @since 1.6.0\n\t */\n\t@property()\n\taccessibleName!: string;\n\n\t/**\n\t * Defines the IDs of the elements that label the component.\n\t * @default \"\"\n\t * @public\n\t * @since 1.1.0\n\t */\n\t@property()\n\taccessibleNameRef!: string;\n\n\t@property({ defaultValue: \"-1\", noAttribute: true })\n\t_tabIndex!: string;\n\n\t/**\n\t * Defines the active state (pressed or not) of the component.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tactive!: boolean;\n\n\t/**\n\t * The slot is used to render native `input` HTML element within Light DOM to enable form submit,\n\t * when `name` property is set.\n\t * @private\n\t */\n\t@slot()\n\tformSupport!: Array<HTMLElement>;\n\n\t_deactivate: () => void;\n\t_name!: string;\n\t_checked!: boolean;\n\t_internals: ElementInternals;\n\n\tstatic get formAssociated() {\n\t\treturn true;\n\t}\n\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._internals = this.attachInternals();\n\n\t\tthis._deactivate = () => {\n\t\t\tif (activeRadio) {\n\t\t\t\tactiveRadio.active = false;\n\t\t\t}\n\t\t};\n\n\t\tif (!isGlobalHandlerAttached) {\n\t\t\tdocument.addEventListener(\"mouseup\", this._deactivate);\n\t\t\tisGlobalHandlerAttached = true;\n\t\t}\n\t}\n\n\tstatic async onDefine() {\n\t\tRadioButton.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tonBeforeRendering() {\n\t\tthis.syncGroup();\n\n\t\tthis._enableFormSupport();\n\t}\n\n\tonExitDOM() {\n\t\tthis.syncGroup(true);\n\t}\n\n\tsyncGroup(forceRemove?: boolean) {\n\t\tconst oldGroup = this._name;\n\t\tconst currentGroup = this.name;\n\t\tconst oldChecked = this._checked;\n\t\tconst currentChecked = this.checked;\n\n\t\tif (forceRemove) {\n\t\t\tRadioButtonGroup.removeFromGroup(this, oldGroup);\n\t\t}\n\n\t\tif (currentGroup !== oldGroup) {\n\t\t\tif (oldGroup) {\n\t\t\t\t// remove the control from the previous group\n\t\t\t\tRadioButtonGroup.removeFromGroup(this, oldGroup);\n\t\t\t}\n\n\t\t\tif (currentGroup) {\n\t\t\t\t// add the control to the existing group\n\t\t\t\tRadioButtonGroup.addToGroup(this, currentGroup);\n\t\t\t}\n\t\t} else if (currentGroup) {\n\t\t\tRadioButtonGroup.enforceSingleSelection(this, currentGroup);\n\t\t}\n\n\t\tif (this.name && currentChecked !== oldChecked) {\n\t\t\tRadioButtonGroup.updateTabOrder(this.name);\n\t\t}\n\n\t\tthis._name = this.name;\n\t\tthis._checked = this.checked;\n\t}\n\n\t_enableFormSupport() {\n\t\tconst formSupport = getFeature<typeof FormSupport>(\"FormSupport\");\n\n\t\tif (formSupport) {\n\t\t\tthis._setFormValue();\n\t\t} else if (this.value) {\n\t\t\tconsole.warn(`In order for the \"value\" property to have effect, you should also: import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`); // eslint-disable-line\n\t\t}\n\t}\n\n\t_setFormValue() {\n\t\tthis._internals.setFormValue(this.checked ? this.value : null);\n\t}\n\n\t_resetFormValidity() {\n\t\tthis._internals.setValidity({});\n\t}\n\n\t_invalidateForm() {\n\t\tthis._internals.setValidity(\n\t\t\t{ valueMissing: true },\n\t\t\tthis.radioButtonGroupRequiredText,\n\t\t\tthis.shadowRoot!.firstElementChild as HTMLElement,\n\t\t);\n\t}\n\n\t_onclick() {\n\t\treturn this.toggle();\n\t}\n\n\t_handleDown(e: KeyboardEvent) {\n\t\tconst currentGroup = this.name;\n\n\t\tif (!currentGroup) {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\t\tRadioButtonGroup.selectNextItem(this, currentGroup);\n\t}\n\n\t_handleUp(e: KeyboardEvent) {\n\t\tconst currentGroup = this.name;\n\n\t\tif (!currentGroup) {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\t\tRadioButtonGroup.selectPreviousItem(this, currentGroup);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis.active = true;\n\t\t\treturn e.preventDefault();\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis.active = true;\n\t\t\treturn this.toggle();\n\t\t}\n\n\t\tconst isRTL = this.effectiveDir === \"rtl\";\n\n\t\tif (isDown(e) || (!isRTL && isRight(e)) || (isRTL && isLeft(e))) {\n\t\t\tthis._handleDown(e);\n\t\t}\n\n\t\tif (isUp(e) || (!isRTL && isLeft(e)) || (isRTL && isRight(e))) {\n\t\t\tthis._handleUp(e);\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis.toggle();\n\t\t}\n\n\t\tthis.active = false;\n\t}\n\n\t_onmousedown() {\n\t\tthis.active = true;\n\t\tactiveRadio = this; // eslint-disable-line\n\t}\n\n\t_onmouseup() {\n\t\tthis.active = false;\n\t}\n\n\t_onfocusout() {\n\t\tthis.active = false;\n\t}\n\n\ttoggle() {\n\t\tif (!this.canToggle()) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif (!this.name) {\n\t\t\tthis.checked = !this.checked;\n\t\t\tthis.fireEvent(\"change\");\n\t\t\treturn this;\n\t\t}\n\n\t\tRadioButtonGroup.selectItem(this, this.name);\n\t\treturn this;\n\t}\n\n\tcanToggle() {\n\t\treturn !(this.disabled || this.readonly || this.checked);\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tinner: {\n\t\t\t\t\"ui5-radio-inner--hoverable\": !this.disabled && !this.readonly && isDesktop(),\n\t\t\t},\n\t\t};\n\t}\n\n\tget effectiveAriaDisabled() {\n\t\treturn this.disabled ? \"true\" : null;\n\t}\n\n\tget ariaLabelText() {\n\t\treturn [getEffectiveAriaLabelText(this), this.text].filter(Boolean).join(\" \");\n\t}\n\n\tget effectiveAriaDescribedBy() {\n\t\treturn this.hasValueState ? `${this._id}-descr` : undefined;\n\t}\n\n\tget hasValueState() {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget valueStateText() {\n\t\tswitch (this.valueState) {\n\t\tcase ValueState.Error:\n\t\t\treturn RadioButton.i18nBundle.getText(VALUE_STATE_ERROR);\n\t\tcase ValueState.Warning:\n\t\t\treturn RadioButton.i18nBundle.getText(VALUE_STATE_WARNING);\n\t\tcase ValueState.Success:\n\t\t\treturn RadioButton.i18nBundle.getText(VALUE_STATE_SUCCESS);\n\t\tcase ValueState.Information:\n\t\t\treturn RadioButton.i18nBundle.getText(VALUE_STATE_INFORMATION);\n\t\tdefault:\n\t\t\treturn \"\";\n\t\t}\n\t}\n\n\tget radioButtonGroupRequiredText(): string {\n\t\treturn RadioButton.i18nBundle.getText(RADIO_BUTTON_GROUP_REQUIRED);\n\t}\n\n\tget effectiveTabIndex() {\n\t\tconst tabindex = this.getAttribute(\"tabindex\");\n\n\t\tif (this.disabled) {\n\t\t\treturn \"-1\";\n\t\t}\n\n\t\tif (this.name) {\n\t\t\treturn this._tabIndex;\n\t\t}\n\n\t\treturn tabindex || \"0\";\n\t}\n}\n\nRadioButton.define();\n\nexport default RadioButton;\n"]}
1
+ {"version":3,"file":"RadioButton.js","sourceRoot":"","sources":["../src/RadioButton.ts"],"names":[],"mappings":"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","sourcesContent":["import { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport {\n\tisSpace,\n\tisEnter,\n\tisDown,\n\tisLeft,\n\tisUp,\n\tisRight,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Label from \"./Label.js\";\nimport RadioButtonGroup from \"./RadioButtonGroup.js\";\nimport WrappingType from \"./types/WrappingType.js\";\nimport type { IFormElement } from \"./features/InputElementsFormSupport.js\";\nimport type FormSupport from \"./features/InputElementsFormSupport.js\";\n\n// Template\nimport RadioButtonTemplate from \"./generated/templates/RadioButtonTemplate.lit.js\";\n\n// i18n\nimport {\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n\tVALUE_STATE_SUCCESS,\n\tVALUE_STATE_INFORMATION,\n\tRADIO_BUTTON_GROUP_REQUIRED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport radioButtonCss from \"./generated/themes/RadioButton.css.js\";\n\nlet isGlobalHandlerAttached = false;\nlet activeRadio: RadioButton;\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-radio-button` component enables users to select a single option from a set of options.\n * When a `ui5-radio-button` is selected by the user, the\n * `change` event is fired.\n * When a `ui5-radio-button` that is within a group is selected, the one\n * that was previously selected gets automatically deselected. You can group radio buttons by using the `name` property.\n *\n * **Note:** If `ui5-radio-button` is not part of a group, it can be selected once, but can not be deselected back.\n *\n * ### Keyboard Handling\n *\n * Once the `ui5-radio-button` is on focus, it might be selected by pressing the Space and Enter keys.\n *\n * The Arrow Down/Arrow Up and Arrow Left/Arrow Right keys can be used to change selection between next/previous radio buttons in one group,\n * while TAB and SHIFT + TAB can be used to enter or leave the radio button group.\n *\n * **Note:** On entering radio button group, the focus goes to the currently selected radio button.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/RadioButton\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @csspart outer-ring - Used to style the outer ring of the `ui5-radio-button`.\n * @csspart inner-ring - Used to style the inner ring of the `ui5-radio-button`.\n */\n@customElement({\n\ttag: \"ui5-radio-button\",\n\tlanguageAware: true,\n\trenderer: litRender,\n\ttemplate: RadioButtonTemplate,\n\tstyles: radioButtonCss,\n\tdependencies: [Label],\n})\n/**\n * Fired when the component checked state changes.\n * @public\n * @since 1.0.0-rc.15\n */\n@event(\"change\")\n\nclass RadioButton extends UI5Element implements IFormElement {\n\t/**\n\t * Defines whether the component is disabled.\n\t *\n\t * **Note:** A disabled component is completely noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Defines whether the component is read-only.\n\t *\n\t * **Note:** A read-only component isn't editable or selectable.\n\t * However, because it's focusable, it still provides visual feedback upon user interaction.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly!: boolean;\n\n\t/**\n\t * Defines whether the component is required.\n\t * @default false\n\t * @public\n\t * @since 1.9.0\n\t */\n\t@property({ type: Boolean })\n\trequired!: boolean;\n\n\t/**\n\t * Defines whether the component is checked or not.\n\t *\n\t * **Note:** The property value can be changed with user interaction,\n\t * either by clicking/tapping on the component,\n\t * or by using the Space or Enter key.\n\t *\n\t * **Note:** Only enabled radio buttons can be checked.\n\t * Read-only radio buttons are not selectable, and therefore are always unchecked.\n\t * @default false\n\t * @formEvents change\n\t * @formProperty\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: Boolean })\n\tchecked!: boolean;\n\n\t/**\n\t * Defines the text of the component.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\ttext!: string;\n\n\t/**\n\t * Defines the value state of the component.\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property({ type: ValueState, defaultValue: ValueState.None })\n\tvalueState!: `${ValueState}`;\n\n\t/**\n\t * Defines the name of the component.\n\t * Radio buttons with the same `name` will form a radio button group.\n\t *\n\t * **Note:**\n\t * The selection can be changed with `ARROW_UP/DOWN` and `ARROW_LEFT/RIGHT` keys between radio buttons in same group.\n\t *\n\t * **Note:**\n\t * Only one radio button can be selected per group.\n\t *\n\t * **Important:** For the `name` property to have effect when submitting forms, you must add the following import to your project:\n\t * `import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`\n\t *\n\t * **Note:** When set, a native `input` HTML element\n\t * will be created inside the component so that it can be submitted as\n\t * part of an HTML form.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tname!: string;\n\n\t/**\n\t * Defines the form value of the component.\n\t * When a form with a radio button group is submitted, the group's value\n\t * will be the value of the currently selected radio button.\n\t *\n\t * **Important:** For the `value` property to have effect, you must add the following import to your project:\n\t * `import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tvalue!: string;\n\n\t/**\n\t * Defines whether the component text wraps when there is not enough space.\n\t *\n\t * **Note:** for option \"Normal\" the text will wrap and the words will not be broken based on hyphenation.\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property({ type: WrappingType, defaultValue: WrappingType.None })\n\twrappingType!: `${WrappingType}`;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default \"\"\n\t * @public\n\t * @since 1.6.0\n\t */\n\t@property()\n\taccessibleName!: string;\n\n\t/**\n\t * Defines the IDs of the elements that label the component.\n\t * @default \"\"\n\t * @public\n\t * @since 1.1.0\n\t */\n\t@property()\n\taccessibleNameRef!: string;\n\n\t@property({ defaultValue: \"-1\", noAttribute: true })\n\t_tabIndex!: string;\n\n\t/**\n\t * Defines the active state (pressed or not) of the component.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tactive!: boolean;\n\n\t/**\n\t * The slot is used to render native `input` HTML element within Light DOM to enable form submit,\n\t * when `name` property is set.\n\t * @private\n\t */\n\t@slot()\n\tformSupport!: Array<HTMLElement>;\n\n\t_deactivate: () => void;\n\t_name!: string;\n\t_checked!: boolean;\n\t_internals: ElementInternals;\n\n\tstatic get formAssociated() {\n\t\treturn true;\n\t}\n\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._internals = this.attachInternals();\n\n\t\tthis._deactivate = () => {\n\t\t\tif (activeRadio) {\n\t\t\t\tactiveRadio.active = false;\n\t\t\t}\n\t\t};\n\n\t\tif (!isGlobalHandlerAttached) {\n\t\t\tdocument.addEventListener(\"mouseup\", this._deactivate);\n\t\t\tisGlobalHandlerAttached = true;\n\t\t}\n\t}\n\n\tstatic async onDefine() {\n\t\tRadioButton.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tonBeforeRendering() {\n\t\tthis.syncGroup();\n\n\t\tthis._enableFormSupport();\n\t}\n\n\tonExitDOM() {\n\t\tthis.syncGroup(true);\n\t}\n\n\tsyncGroup(forceRemove?: boolean) {\n\t\tconst oldGroup = this._name;\n\t\tconst currentGroup = this.name;\n\t\tconst oldChecked = this._checked;\n\t\tconst currentChecked = this.checked;\n\n\t\tif (forceRemove) {\n\t\t\tRadioButtonGroup.removeFromGroup(this, oldGroup);\n\t\t}\n\n\t\tif (currentGroup !== oldGroup) {\n\t\t\tif (oldGroup) {\n\t\t\t\t// remove the control from the previous group\n\t\t\t\tRadioButtonGroup.removeFromGroup(this, oldGroup);\n\t\t\t}\n\n\t\t\tif (currentGroup) {\n\t\t\t\t// add the control to the existing group\n\t\t\t\tRadioButtonGroup.addToGroup(this, currentGroup);\n\t\t\t}\n\t\t} else if (currentGroup) {\n\t\t\tRadioButtonGroup.enforceSingleSelection(this, currentGroup);\n\t\t}\n\n\t\tif (this.name && currentChecked !== oldChecked) {\n\t\t\tRadioButtonGroup.updateTabOrder(this.name);\n\t\t}\n\n\t\tthis._name = this.name;\n\t\tthis._checked = this.checked;\n\t}\n\n\t_enableFormSupport() {\n\t\tconst formSupport = getFeature<typeof FormSupport>(\"FormSupport\");\n\n\t\tif (formSupport) {\n\t\t\tthis._setFormValue();\n\t\t} else if (this.value) {\n\t\t\tconsole.warn(`In order for the \"value\" property to have effect, you should also: import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`); // eslint-disable-line\n\t\t}\n\t}\n\n\t_setFormValue() {\n\t\tthis._internals.setFormValue(this.checked ? this.value : null);\n\t}\n\n\t_resetFormValidity() {\n\t\tthis._internals.setValidity({});\n\t}\n\n\t_invalidateForm() {\n\t\tthis._internals.setValidity(\n\t\t\t{ valueMissing: true },\n\t\t\tthis.radioButtonGroupRequiredText,\n\t\t\tthis.shadowRoot!.firstElementChild as HTMLElement,\n\t\t);\n\t}\n\n\t_onclick() {\n\t\treturn this.toggle();\n\t}\n\n\t_handleDown(e: KeyboardEvent) {\n\t\tconst currentGroup = this.name;\n\n\t\tif (!currentGroup) {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\t\tRadioButtonGroup.selectNextItem(this, currentGroup);\n\t}\n\n\t_handleUp(e: KeyboardEvent) {\n\t\tconst currentGroup = this.name;\n\n\t\tif (!currentGroup) {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\t\tRadioButtonGroup.selectPreviousItem(this, currentGroup);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis.active = true;\n\t\t\treturn e.preventDefault();\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis.active = true;\n\t\t\treturn this.toggle();\n\t\t}\n\n\t\tconst isRTL = this.effectiveDir === \"rtl\";\n\n\t\tif (isDown(e) || (!isRTL && isRight(e)) || (isRTL && isLeft(e))) {\n\t\t\tthis._handleDown(e);\n\t\t}\n\n\t\tif (isUp(e) || (!isRTL && isLeft(e)) || (isRTL && isRight(e))) {\n\t\t\tthis._handleUp(e);\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis.toggle();\n\t\t}\n\n\t\tthis.active = false;\n\t}\n\n\t_onmousedown() {\n\t\tthis.active = true;\n\t\tactiveRadio = this; // eslint-disable-line\n\t}\n\n\t_onmouseup() {\n\t\tthis.active = false;\n\t}\n\n\t_onfocusout() {\n\t\tthis.active = false;\n\t}\n\n\ttoggle() {\n\t\tif (!this.canToggle()) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif (!this.name) {\n\t\t\tthis.checked = !this.checked;\n\t\t\tthis.fireEvent(\"change\");\n\t\t\treturn this;\n\t\t}\n\n\t\tRadioButtonGroup.selectItem(this, this.name);\n\t\treturn this;\n\t}\n\n\tcanToggle() {\n\t\treturn !(this.disabled || this.readonly || this.checked);\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tinner: {\n\t\t\t\t\"ui5-radio-inner--hoverable\": !this.disabled && !this.readonly && isDesktop(),\n\t\t\t},\n\t\t};\n\t}\n\n\tget effectiveAriaDisabled() {\n\t\treturn (this.disabled || this.readonly) ? \"true\" : null;\n\t}\n\n\tget ariaLabelText() {\n\t\treturn [getEffectiveAriaLabelText(this), this.text].filter(Boolean).join(\" \");\n\t}\n\n\tget effectiveAriaDescribedBy() {\n\t\treturn this.hasValueState ? `${this._id}-descr` : undefined;\n\t}\n\n\tget hasValueState() {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget valueStateText() {\n\t\tswitch (this.valueState) {\n\t\tcase ValueState.Error:\n\t\t\treturn RadioButton.i18nBundle.getText(VALUE_STATE_ERROR);\n\t\tcase ValueState.Warning:\n\t\t\treturn RadioButton.i18nBundle.getText(VALUE_STATE_WARNING);\n\t\tcase ValueState.Success:\n\t\t\treturn RadioButton.i18nBundle.getText(VALUE_STATE_SUCCESS);\n\t\tcase ValueState.Information:\n\t\t\treturn RadioButton.i18nBundle.getText(VALUE_STATE_INFORMATION);\n\t\tdefault:\n\t\t\treturn \"\";\n\t\t}\n\t}\n\n\tget radioButtonGroupRequiredText(): string {\n\t\treturn RadioButton.i18nBundle.getText(RADIO_BUTTON_GROUP_REQUIRED);\n\t}\n\n\tget effectiveTabIndex() {\n\t\tconst tabindex = this.getAttribute(\"tabindex\");\n\n\t\tif (this.disabled) {\n\t\t\treturn \"-1\";\n\t\t}\n\n\t\tif (this.name) {\n\t\t\treturn this._tabIndex;\n\t\t}\n\n\t\treturn tabindex || \"0\";\n\t}\n}\n\nRadioButton.define();\n\nexport default RadioButton;\n"]}
@@ -17,8 +17,8 @@ declare class RadioButtonGroup {
17
17
  static updateSelectionInGroup(radioBtnToSelect: RadioButton, groupName: string): void;
18
18
  static _deselectRadio(radioBtn: RadioButton): void;
19
19
  static _selectRadio(radioBtn: RadioButton): void;
20
- static _nextSelectable(pos: number, group: RadioButton[]): RadioButton | null;
21
- static _previousSelectable(pos: number, group: RadioButton[]): RadioButton | null;
20
+ static _nextFocusable(pos: number, group: RadioButton[]): RadioButton | null;
21
+ static _previousFocusable(pos: number, group: RadioButton[]): RadioButton | null;
22
22
  static enforceSingleSelection(radioBtn: RadioButton, groupName: string): void;
23
23
  static get groups(): Map<string, RadioButton[]>;
24
24
  static get checkedRadios(): Map<string, RadioButton | null>;
@@ -1,3 +1,4 @@
1
+ import getActiveElement from "@ui5/webcomponents-base/dist/util/getActiveElement.js";
1
2
  class RadioButtonGroup {
2
3
  static hasGroup(groupName) {
3
4
  return this.groups.has(groupName);
@@ -60,11 +61,11 @@ class RadioButtonGroup {
60
61
  if (groupLength <= 1) {
61
62
  return;
62
63
  }
63
- const nextItemToSelect = this._nextSelectable(currentItemPosition, group);
64
- if (!nextItemToSelect) {
64
+ const nextItemToFocus = this._nextFocusable(currentItemPosition, group);
65
+ if (!nextItemToFocus) {
65
66
  return;
66
67
  }
67
- this.updateSelectionInGroup(nextItemToSelect, groupName);
68
+ this.updateSelectionInGroup(nextItemToFocus, groupName);
68
69
  }
69
70
  static updateFormValidity(groupName) {
70
71
  const group = this.getGroup(groupName);
@@ -84,8 +85,20 @@ class RadioButtonGroup {
84
85
  }
85
86
  const hasCheckedRadio = group.some(radioBtn => radioBtn.checked);
86
87
  group.filter(radioBtn => !radioBtn.disabled).forEach((radioBtn, idx) => {
88
+ let activeElement = getActiveElement();
89
+ if (activeElement.classList.contains("ui5-radio-root")) {
90
+ activeElement = activeElement.getRootNode();
91
+ if (activeElement instanceof ShadowRoot) {
92
+ activeElement = activeElement.host;
93
+ }
94
+ }
87
95
  if (hasCheckedRadio) {
88
- radioBtn._tabIndex = radioBtn.checked ? "0" : "-1";
96
+ if (activeElement.hasAttribute("ui5-radio-button") && activeElement.readonly) {
97
+ radioBtn._tabIndex = activeElement === radioBtn && radioBtn.readonly ? "0" : "-1";
98
+ }
99
+ else {
100
+ radioBtn._tabIndex = radioBtn.checked ? "0" : "-1";
101
+ }
89
102
  }
90
103
  else {
91
104
  radioBtn._tabIndex = idx === 0 ? "0" : "-1";
@@ -101,11 +114,11 @@ class RadioButtonGroup {
101
114
  if (groupLength <= 1) {
102
115
  return;
103
116
  }
104
- const previousItemToSelect = this._previousSelectable(currentItemPosition, group);
105
- if (!previousItemToSelect) {
117
+ const previousItemToFocus = this._previousFocusable(currentItemPosition, group);
118
+ if (!previousItemToFocus) {
106
119
  return;
107
120
  }
108
- this.updateSelectionInGroup(previousItemToSelect, groupName);
121
+ this.updateSelectionInGroup(previousItemToFocus, groupName);
109
122
  }
110
123
  static selectItem(item, groupName) {
111
124
  this.updateSelectionInGroup(item, groupName);
@@ -113,11 +126,23 @@ class RadioButtonGroup {
113
126
  }
114
127
  static updateSelectionInGroup(radioBtnToSelect, groupName) {
115
128
  const checkedRadio = this.getCheckedRadioFromGroup(groupName);
116
- if (checkedRadio) {
129
+ if (checkedRadio && !radioBtnToSelect.readonly) {
117
130
  this._deselectRadio(checkedRadio);
131
+ this.checkedRadios.set(groupName, radioBtnToSelect);
132
+ }
133
+ // the focusable radio buttons are the enabled and the read-only ones, but only the enabled are selectable
134
+ if (radioBtnToSelect) {
135
+ radioBtnToSelect.focus();
136
+ if (!radioBtnToSelect.readonly) {
137
+ this._selectRadio(radioBtnToSelect);
138
+ }
139
+ else {
140
+ // Ensure updateTabOrder is called after focus
141
+ setTimeout(() => {
142
+ this.updateTabOrder(groupName);
143
+ }, 0);
144
+ }
118
145
  }
119
- this._selectRadio(radioBtnToSelect);
120
- this.checkedRadios.set(groupName, radioBtnToSelect);
121
146
  }
122
147
  static _deselectRadio(radioBtn) {
123
148
  if (radioBtn) {
@@ -125,49 +150,46 @@ class RadioButtonGroup {
125
150
  }
126
151
  }
127
152
  static _selectRadio(radioBtn) {
128
- if (radioBtn) {
129
- radioBtn.focus();
130
- radioBtn.checked = true;
131
- radioBtn._checked = true;
132
- radioBtn.fireEvent("change");
133
- }
153
+ radioBtn.checked = true;
154
+ radioBtn._checked = true;
155
+ radioBtn.fireEvent("change");
134
156
  }
135
- static _nextSelectable(pos, group) {
157
+ static _nextFocusable(pos, group) {
136
158
  if (!group) {
137
159
  return null;
138
160
  }
139
161
  const groupLength = group.length;
140
- let nextRadioToSelect = null;
162
+ let nextRadioToFocus = null;
141
163
  if (pos === groupLength - 1) {
142
- if (group[0].disabled || group[0].readonly) {
143
- return this._nextSelectable(1, group);
164
+ if (group[0].disabled) {
165
+ return this._nextFocusable(1, group);
144
166
  }
145
- nextRadioToSelect = group[0];
167
+ nextRadioToFocus = group[0];
146
168
  }
147
- else if (group[pos + 1].disabled || group[pos + 1].readonly) {
148
- return this._nextSelectable(pos + 1, group);
169
+ else if (group[pos + 1].disabled) {
170
+ return this._nextFocusable(pos + 1, group);
149
171
  }
150
172
  else {
151
- nextRadioToSelect = group[pos + 1];
173
+ nextRadioToFocus = group[pos + 1];
152
174
  }
153
- return nextRadioToSelect;
175
+ return nextRadioToFocus;
154
176
  }
155
- static _previousSelectable(pos, group) {
177
+ static _previousFocusable(pos, group) {
156
178
  const groupLength = group.length;
157
- let previousRadioToSelect = null;
179
+ let previousRadioToFocus = null;
158
180
  if (pos === 0) {
159
- if (group[groupLength - 1].disabled || group[groupLength - 1].readonly) {
160
- return this._previousSelectable(groupLength - 1, group);
181
+ if (group[groupLength - 1].disabled) {
182
+ return this._previousFocusable(groupLength - 1, group);
161
183
  }
162
- previousRadioToSelect = group[groupLength - 1];
184
+ previousRadioToFocus = group[groupLength - 1];
163
185
  }
164
- else if (group[pos - 1].disabled || group[pos - 1].readonly) {
165
- return this._previousSelectable(pos - 1, group);
186
+ else if (group[pos - 1].disabled) {
187
+ return this._previousFocusable(pos - 1, group);
166
188
  }
167
189
  else {
168
- previousRadioToSelect = group[pos - 1];
190
+ previousRadioToFocus = group[pos - 1];
169
191
  }
170
- return previousRadioToSelect;
192
+ return previousRadioToFocus;
171
193
  }
172
194
  static enforceSingleSelection(radioBtn, groupName) {
173
195
  const checkedRadio = this.getCheckedRadioFromGroup(groupName);
@@ -1 +1 @@
1
- {"version":3,"file":"RadioButtonGroup.js","sourceRoot":"","sources":["../src/RadioButtonGroup.ts"],"names":[],"mappings":"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","sourcesContent":["import type RadioButton from \"./RadioButton.js\";\n\nclass RadioButtonGroup {\n\tstatic _groups: Map<string, Array<RadioButton>>;\n\tstatic _checkedRadios: Map<string, RadioButton | null>;\n\n\tstatic hasGroup(groupName: string) {\n\t\treturn this.groups.has(groupName);\n\t}\n\n\tstatic getGroup(groupName: string) {\n\t\treturn this.groups.get(groupName);\n\t}\n\n\tstatic getCheckedRadioFromGroup(groupName: string) {\n\t\treturn this.checkedRadios.get(groupName);\n\t}\n\n\tstatic removeGroup(groupName: string) {\n\t\tthis.checkedRadios.delete(groupName);\n\t\treturn this.groups.delete(groupName);\n\t}\n\n\tstatic addToGroup(radioBtn: RadioButton, groupName: string) {\n\t\tif (this.hasGroup(groupName)) {\n\t\t\tthis.enforceSingleSelection(radioBtn, groupName);\n\t\t\tif (this.getGroup(groupName)) {\n\t\t\t\tthis.getGroup(groupName)!.push(radioBtn);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.createGroup(radioBtn, groupName);\n\t\t}\n\n\t\tthis.updateTabOrder(groupName);\n\t}\n\n\tstatic removeFromGroup(radioBtn: RadioButton, groupName: string) {\n\t\tconst group = this.getGroup(groupName);\n\n\t\tif (!group) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst checkedRadio = this.getCheckedRadioFromGroup(groupName);\n\n\t\t// Remove the radio button from the given group\n\t\tgroup.forEach((_radioBtn, idx, arr) => {\n\t\t\tif (radioBtn._id === _radioBtn._id) {\n\t\t\t\treturn arr.splice(idx, 1);\n\t\t\t}\n\t\t});\n\n\t\tif (checkedRadio === radioBtn) {\n\t\t\tthis.checkedRadios.set(groupName, null);\n\t\t}\n\n\t\t// Remove the group if it is empty\n\t\tif (!group.length) {\n\t\t\tthis.removeGroup(groupName);\n\t\t}\n\n\t\tthis.updateTabOrder(groupName);\n\t}\n\n\tstatic createGroup(radioBtn: RadioButton, groupName: string) {\n\t\tif (radioBtn.checked) {\n\t\t\tthis.checkedRadios.set(groupName, radioBtn);\n\t\t}\n\n\t\tthis.groups.set(groupName, [radioBtn]);\n\t}\n\n\tstatic selectNextItem(item: RadioButton, groupName: string) {\n\t\tconst group = this.getGroup(groupName);\n\t\tif (!group) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst groupLength = group.length,\n\t\t\tcurrentItemPosition = group.indexOf(item);\n\n\t\tif (groupLength <= 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst nextItemToSelect = this._nextSelectable(currentItemPosition, group);\n\t\tif (!nextItemToSelect) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.updateSelectionInGroup(nextItemToSelect, groupName);\n\t}\n\n\tstatic updateFormValidity(groupName: string) {\n\t\tconst group = this.getGroup(groupName);\n\n\t\tif (!group) {\n\t\t\treturn;\n\t\t}\n\n\t\tgroup.forEach(r => r._resetFormValidity());\n\n\t\tconst groupRequiresValue = group.some(r => r.required) && group.every(r => !r.checked);\n\t\tif (groupRequiresValue) {\n\t\t\tgroup[0]._invalidateForm();\n\t\t}\n\t}\n\n\tstatic updateTabOrder(groupName: string) {\n\t\tconst group = this.getGroup(groupName);\n\n\t\tif (!group) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst hasCheckedRadio = group.some(radioBtn => radioBtn.checked);\n\n\t\tgroup.filter(radioBtn => !radioBtn.disabled).forEach((radioBtn, idx) => {\n\t\t\tif (hasCheckedRadio) {\n\t\t\t\tradioBtn._tabIndex = radioBtn.checked ? \"0\" : \"-1\";\n\t\t\t} else {\n\t\t\t\tradioBtn._tabIndex = idx === 0 ? \"0\" : \"-1\";\n\t\t\t}\n\t\t});\n\t}\n\n\tstatic selectPreviousItem(item: RadioButton, groupName: string) {\n\t\tconst group = this.getGroup(groupName);\n\n\t\tif (!group) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst groupLength = group.length,\n\t\t\tcurrentItemPosition = group.indexOf(item);\n\n\t\tif (groupLength <= 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst previousItemToSelect = this._previousSelectable(currentItemPosition, group);\n\t\tif (!previousItemToSelect) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.updateSelectionInGroup(previousItemToSelect, groupName);\n\t}\n\n\tstatic selectItem(item: RadioButton, groupName: string) {\n\t\tthis.updateSelectionInGroup(item, groupName);\n\t\tthis.updateTabOrder(groupName);\n\t}\n\n\tstatic updateSelectionInGroup(radioBtnToSelect: RadioButton, groupName: string) {\n\t\tconst checkedRadio = this.getCheckedRadioFromGroup(groupName);\n\n\t\tif (checkedRadio) {\n\t\t\tthis._deselectRadio(checkedRadio);\n\t\t}\n\n\t\tthis._selectRadio(radioBtnToSelect);\n\t\tthis.checkedRadios.set(groupName, radioBtnToSelect);\n\t}\n\n\tstatic _deselectRadio(radioBtn: RadioButton) {\n\t\tif (radioBtn) {\n\t\t\tradioBtn.checked = false;\n\t\t}\n\t}\n\n\tstatic _selectRadio(radioBtn: RadioButton) {\n\t\tif (radioBtn) {\n\t\t\tradioBtn.focus();\n\t\t\tradioBtn.checked = true;\n\t\t\tradioBtn._checked = true;\n\t\t\tradioBtn.fireEvent(\"change\");\n\t\t}\n\t}\n\n\tstatic _nextSelectable(pos: number, group: RadioButton[]): RadioButton | null {\n\t\tif (!group) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst groupLength = group.length;\n\t\tlet nextRadioToSelect = null;\n\n\t\tif (pos === groupLength - 1) {\n\t\t\tif (group[0].disabled || group[0].readonly) {\n\t\t\t\treturn this._nextSelectable(1, group);\n\t\t\t}\n\t\t\tnextRadioToSelect = group[0];\n\t\t} else if (group[pos + 1].disabled || group[pos + 1].readonly) {\n\t\t\treturn this._nextSelectable(pos + 1, group);\n\t\t} else {\n\t\t\tnextRadioToSelect = group[pos + 1];\n\t\t}\n\n\t\treturn nextRadioToSelect;\n\t}\n\n\tstatic _previousSelectable(pos: number, group: RadioButton[]): RadioButton | null {\n\t\tconst groupLength = group.length;\n\t\tlet previousRadioToSelect = null;\n\t\tif (pos === 0) {\n\t\t\tif (group[groupLength - 1].disabled || group[groupLength - 1].readonly) {\n\t\t\t\treturn this._previousSelectable(groupLength - 1, group);\n\t\t\t}\n\t\t\tpreviousRadioToSelect = group[groupLength - 1];\n\t\t} else if (group[pos - 1].disabled || group[pos - 1].readonly) {\n\t\t\treturn this._previousSelectable(pos - 1, group);\n\t\t} else {\n\t\t\tpreviousRadioToSelect = group[pos - 1];\n\t\t}\n\n\t\treturn previousRadioToSelect;\n\t}\n\n\tstatic enforceSingleSelection(radioBtn: RadioButton, groupName: string) {\n\t\tconst checkedRadio = this.getCheckedRadioFromGroup(groupName);\n\n\t\tif (radioBtn.checked) {\n\t\t\tif (!checkedRadio) {\n\t\t\t\tthis.checkedRadios.set(groupName, radioBtn);\n\t\t\t} else if (radioBtn !== checkedRadio) {\n\t\t\t\tthis._deselectRadio(checkedRadio);\n\t\t\t\tthis.checkedRadios.set(groupName, radioBtn);\n\t\t\t}\n\t\t} else if (radioBtn === checkedRadio) {\n\t\t\tthis.checkedRadios.set(groupName, null);\n\t\t}\n\n\t\tthis.updateTabOrder(groupName);\n\t\tthis.updateFormValidity(groupName);\n\t}\n\n\tstatic get groups() {\n\t\tif (!this._groups) {\n\t\t\tthis._groups = new Map();\n\t\t}\n\t\treturn this._groups;\n\t}\n\n\tstatic get checkedRadios() {\n\t\tif (!this._checkedRadios) {\n\t\t\tthis._checkedRadios = new Map();\n\t\t}\n\t\treturn this._checkedRadios;\n\t}\n}\n\nexport default RadioButtonGroup;\n"]}
1
+ {"version":3,"file":"RadioButtonGroup.js","sourceRoot":"","sources":["../src/RadioButtonGroup.ts"],"names":[],"mappings":"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","sourcesContent":["import getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport type RadioButton from \"./RadioButton.js\";\n\nclass RadioButtonGroup {\n\tstatic _groups: Map<string, Array<RadioButton>>;\n\tstatic _checkedRadios: Map<string, RadioButton | null>;\n\n\tstatic hasGroup(groupName: string) {\n\t\treturn this.groups.has(groupName);\n\t}\n\n\tstatic getGroup(groupName: string) {\n\t\treturn this.groups.get(groupName);\n\t}\n\n\tstatic getCheckedRadioFromGroup(groupName: string) {\n\t\treturn this.checkedRadios.get(groupName);\n\t}\n\n\tstatic removeGroup(groupName: string) {\n\t\tthis.checkedRadios.delete(groupName);\n\t\treturn this.groups.delete(groupName);\n\t}\n\n\tstatic addToGroup(radioBtn: RadioButton, groupName: string) {\n\t\tif (this.hasGroup(groupName)) {\n\t\t\tthis.enforceSingleSelection(radioBtn, groupName);\n\t\t\tif (this.getGroup(groupName)) {\n\t\t\t\tthis.getGroup(groupName)!.push(radioBtn);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.createGroup(radioBtn, groupName);\n\t\t}\n\n\t\tthis.updateTabOrder(groupName);\n\t}\n\n\tstatic removeFromGroup(radioBtn: RadioButton, groupName: string) {\n\t\tconst group = this.getGroup(groupName);\n\n\t\tif (!group) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst checkedRadio = this.getCheckedRadioFromGroup(groupName);\n\n\t\t// Remove the radio button from the given group\n\t\tgroup.forEach((_radioBtn, idx, arr) => {\n\t\t\tif (radioBtn._id === _radioBtn._id) {\n\t\t\t\treturn arr.splice(idx, 1);\n\t\t\t}\n\t\t});\n\n\t\tif (checkedRadio === radioBtn) {\n\t\t\tthis.checkedRadios.set(groupName, null);\n\t\t}\n\n\t\t// Remove the group if it is empty\n\t\tif (!group.length) {\n\t\t\tthis.removeGroup(groupName);\n\t\t}\n\n\t\tthis.updateTabOrder(groupName);\n\t}\n\n\tstatic createGroup(radioBtn: RadioButton, groupName: string) {\n\t\tif (radioBtn.checked) {\n\t\t\tthis.checkedRadios.set(groupName, radioBtn);\n\t\t}\n\n\t\tthis.groups.set(groupName, [radioBtn]);\n\t}\n\n\tstatic selectNextItem(item: RadioButton, groupName: string) {\n\t\tconst group = this.getGroup(groupName);\n\t\tif (!group) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst groupLength = group.length,\n\t\t\tcurrentItemPosition = group.indexOf(item);\n\n\t\tif (groupLength <= 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst nextItemToFocus = this._nextFocusable(currentItemPosition, group);\n\t\tif (!nextItemToFocus) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.updateSelectionInGroup(nextItemToFocus, groupName);\n\t}\n\n\tstatic updateFormValidity(groupName: string) {\n\t\tconst group = this.getGroup(groupName);\n\n\t\tif (!group) {\n\t\t\treturn;\n\t\t}\n\n\t\tgroup.forEach(r => r._resetFormValidity());\n\n\t\tconst groupRequiresValue = group.some(r => r.required) && group.every(r => !r.checked);\n\t\tif (groupRequiresValue) {\n\t\t\tgroup[0]._invalidateForm();\n\t\t}\n\t}\n\n\tstatic updateTabOrder(groupName: string) {\n\t\tconst group = this.getGroup(groupName);\n\n\t\tif (!group) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst hasCheckedRadio = group.some(radioBtn => radioBtn.checked);\n\n\t\tgroup.filter(radioBtn => !radioBtn.disabled).forEach((radioBtn, idx) => {\n\t\t\tlet activeElement: Element | RadioButton = getActiveElement()!;\n\n\t\t\tif (activeElement.classList.contains(\"ui5-radio-root\")) {\n\t\t\t\tactiveElement = activeElement.getRootNode() as Element;\n\t\t\t\tif (activeElement instanceof ShadowRoot) {\n\t\t\t\t\tactiveElement = activeElement.host;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (hasCheckedRadio) {\n\t\t\t\tif (activeElement.hasAttribute(\"ui5-radio-button\") && (activeElement as RadioButton).readonly) {\n\t\t\t\t\tradioBtn._tabIndex = activeElement === radioBtn && radioBtn.readonly ? \"0\" : \"-1\";\n\t\t\t\t} else {\n\t\t\t\t\tradioBtn._tabIndex = radioBtn.checked ? \"0\" : \"-1\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tradioBtn._tabIndex = idx === 0 ? \"0\" : \"-1\";\n\t\t\t}\n\t\t});\n\t}\n\n\tstatic selectPreviousItem(item: RadioButton, groupName: string) {\n\t\tconst group = this.getGroup(groupName);\n\n\t\tif (!group) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst groupLength = group.length,\n\t\t\tcurrentItemPosition = group.indexOf(item);\n\n\t\tif (groupLength <= 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst previousItemToFocus = this._previousFocusable(currentItemPosition, group);\n\t\tif (!previousItemToFocus) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.updateSelectionInGroup(previousItemToFocus, groupName);\n\t}\n\n\tstatic selectItem(item: RadioButton, groupName: string) {\n\t\tthis.updateSelectionInGroup(item, groupName);\n\t\tthis.updateTabOrder(groupName);\n\t}\n\n\tstatic updateSelectionInGroup(radioBtnToSelect: RadioButton, groupName: string) {\n\t\tconst checkedRadio = this.getCheckedRadioFromGroup(groupName);\n\n\t\tif (checkedRadio && !radioBtnToSelect.readonly) {\n\t\t\tthis._deselectRadio(checkedRadio);\n\t\t\tthis.checkedRadios.set(groupName, radioBtnToSelect);\n\t\t}\n\n\t\t// the focusable radio buttons are the enabled and the read-only ones, but only the enabled are selectable\n\t\tif (radioBtnToSelect) {\n\t\t\tradioBtnToSelect.focus();\n\n\t\t\tif (!radioBtnToSelect.readonly) {\n\t\t\t\tthis._selectRadio(radioBtnToSelect);\n\t\t\t} else {\n\t\t\t\t// Ensure updateTabOrder is called after focus\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.updateTabOrder(groupName);\n\t\t\t\t}, 0);\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic _deselectRadio(radioBtn: RadioButton) {\n\t\tif (radioBtn) {\n\t\t\tradioBtn.checked = false;\n\t\t}\n\t}\n\n\tstatic _selectRadio(radioBtn: RadioButton) {\n\t\tradioBtn.checked = true;\n\t\tradioBtn._checked = true;\n\t\tradioBtn.fireEvent(\"change\");\n\t}\n\n\tstatic _nextFocusable(pos: number, group: RadioButton[]): RadioButton | null {\n\t\tif (!group) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst groupLength = group.length;\n\t\tlet nextRadioToFocus = null;\n\n\t\tif (pos === groupLength - 1) {\n\t\t\tif (group[0].disabled) {\n\t\t\t\treturn this._nextFocusable(1, group);\n\t\t\t}\n\t\t\tnextRadioToFocus = group[0];\n\t\t} else if (group[pos + 1].disabled) {\n\t\t\treturn this._nextFocusable(pos + 1, group);\n\t\t} else {\n\t\t\tnextRadioToFocus = group[pos + 1];\n\t\t}\n\n\t\treturn nextRadioToFocus;\n\t}\n\n\tstatic _previousFocusable(pos: number, group: RadioButton[]): RadioButton | null {\n\t\tconst groupLength = group.length;\n\t\tlet previousRadioToFocus = null;\n\t\tif (pos === 0) {\n\t\t\tif (group[groupLength - 1].disabled) {\n\t\t\t\treturn this._previousFocusable(groupLength - 1, group);\n\t\t\t}\n\t\t\tpreviousRadioToFocus = group[groupLength - 1];\n\t\t} else if (group[pos - 1].disabled) {\n\t\t\treturn this._previousFocusable(pos - 1, group);\n\t\t} else {\n\t\t\tpreviousRadioToFocus = group[pos - 1];\n\t\t}\n\n\t\treturn previousRadioToFocus;\n\t}\n\n\tstatic enforceSingleSelection(radioBtn: RadioButton, groupName: string) {\n\t\tconst checkedRadio = this.getCheckedRadioFromGroup(groupName);\n\n\t\tif (radioBtn.checked) {\n\t\t\tif (!checkedRadio) {\n\t\t\t\tthis.checkedRadios.set(groupName, radioBtn);\n\t\t\t} else if (radioBtn !== checkedRadio) {\n\t\t\t\tthis._deselectRadio(checkedRadio);\n\t\t\t\tthis.checkedRadios.set(groupName, radioBtn);\n\t\t\t}\n\t\t} else if (radioBtn === checkedRadio) {\n\t\t\tthis.checkedRadios.set(groupName, null);\n\t\t}\n\n\t\tthis.updateTabOrder(groupName);\n\t\tthis.updateFormValidity(groupName);\n\t}\n\n\tstatic get groups() {\n\t\tif (!this._groups) {\n\t\t\tthis._groups = new Map();\n\t\t}\n\t\treturn this._groups;\n\t}\n\n\tstatic get checkedRadios() {\n\t\tif (!this._checkedRadios) {\n\t\t\tthis._checkedRadios = new Map();\n\t\t}\n\t\treturn this._checkedRadios;\n\t}\n}\n\nexport default RadioButtonGroup;\n"]}
@@ -254,8 +254,7 @@ declare abstract class SliderBase extends UI5Element {
254
254
  */
255
255
  _createLabels(): void;
256
256
  _handleActionKeyPressBase(e: KeyboardEvent, affectedPropName: string): number;
257
- static _isDecreaseValueAction(e: KeyboardEvent): boolean;
258
- static _isIncreaseValueAction(e: KeyboardEvent): boolean;
257
+ static _isIncreaseValueAction(e: KeyboardEvent, directionStart: DirectionStart): boolean;
259
258
  static _isBigStepAction(e: KeyboardEvent): boolean;
260
259
  get _tickmarksCount(): number;
261
260
  /**
@@ -429,14 +429,12 @@ class SliderBase extends UI5Element {
429
429
  }
430
430
  }
431
431
  _handleActionKeyPressBase(e, affectedPropName) {
432
- const isUpAction = SliderBase_1._isIncreaseValueAction(e);
432
+ const isUpAction = SliderBase_1._isIncreaseValueAction(e, this.directionStart);
433
433
  const isBigStep = SliderBase_1._isBigStepAction(e);
434
434
  const currentValue = this[affectedPropName];
435
435
  const min = this._effectiveMin;
436
436
  const max = this._effectiveMax;
437
- // We need to take into consideration the effective direction of the slider - rtl or ltr.
438
- // While in ltr, the left arrow key decreases the value, in rtl it should actually increase it.
439
- let step = this.effectiveDir === "rtl" ? -this._effectiveStep : this._effectiveStep;
437
+ let step = this._effectiveStep;
440
438
  // If the action key corresponds to a long step and the slider has more than 10 normal steps,
441
439
  // make a jump of 1/10th of the Slider's length, otherwise just use the normal step property.
442
440
  step = isBigStep && ((max - min) / step > 10) ? (max - min) / 10 : step;
@@ -448,10 +446,10 @@ class SliderBase extends UI5Element {
448
446
  }
449
447
  return isUpAction ? step : step * -1;
450
448
  }
451
- static _isDecreaseValueAction(e) {
452
- return isDown(e) || isDownCtrl(e) || isLeft(e) || isLeftCtrl(e) || isMinus(e) || isPageDown(e);
453
- }
454
- static _isIncreaseValueAction(e) {
449
+ static _isIncreaseValueAction(e, directionStart) {
450
+ if (directionStart === "right") {
451
+ return isUp(e) || isUpCtrl(e) || isLeft(e) || isLeftCtrl(e) || isPlus(e) || isPageUp(e);
452
+ }
455
453
  return isUp(e) || isUpCtrl(e) || isRight(e) || isRightCtrl(e) || isPlus(e) || isPageUp(e);
456
454
  }
457
455
  static _isBigStepAction(e) {
@@ -1 +1 @@
1
- {"version":3,"file":"SliderBase.js","sourceRoot":"","sources":["../src/SliderBase.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Float from \"@ui5/webcomponents-base/dist/types/Float.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { isPhone, supportsTouch } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { PassiveEventListenerObject } from \"@ui5/webcomponents-base/dist/types.js\";\nimport \"@ui5/webcomponents-icons/dist/direction-arrows.js\";\nimport {\n\tisEscape, isHome, isEnd, isUp, isDown, isRight, isLeft, isUpCtrl, isDownCtrl, isRightCtrl, isLeftCtrl, isPlus, isMinus, isPageUp, isPageDown,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\n\n// Styles\nimport sliderBaseStyles from \"./generated/themes/SliderBase.css.js\";\n\ntype StateStorage = {\n\t[key: string]: number | undefined,\n}\n\ntype DirectionStart = \"left\" | \"right\";\n\n/**\n * Fired when the value changes and the user has finished interacting with the slider.\n * @public\n */\n@event(\"change\")\n\n/**\n * Fired when the value changes due to user interaction that is not yet finished - during mouse/touch dragging.\n * @public\n */\n@event(\"input\")\n\n/**\n * @class\n *\n * ### Overview\n * @constructor\n * @extends UI5Element\n * @public\n */\nabstract class SliderBase extends UI5Element {\n\t/**\n\t * Defines the minimum value of the slider.\n\t * @default 0\n\t * @public\n\t */\n\t@property({ validator: Float, defaultValue: 0 })\n\tmin!: number;\n\n\t/**\n\t * Defines the maximum value of the slider.\n\t * @default 100\n\t * @public\n\t */\n\t@property({ validator: Float, defaultValue: 100 })\n\tmax!: number;\n\n\t/**\n\t * Defines the size of the slider's selection intervals (e.g. min = 0, max = 10, step = 5 would result in possible selection of the values 0, 5, 10).\n\t *\n\t * **Note:** If set to 0 the slider handle movement is disabled. When negative number or value other than a number, the component fallbacks to its default value.\n\t * @default 1\n\t * @public\n\t */\n\t@property({ validator: Float, defaultValue: 1 })\n\tstep!: number;\n\n\t/**\n\t * Displays a label with a value on every N-th step.\n\t *\n\t * **Note:** The step and tickmarks properties must be enabled.\n\t * Example - if the step value is set to 2 and the label interval is also specified to 2 - then every second\n\t * tickmark will be labelled, which means every 4th value number.\n\t * @default 0\n\t * @public\n\t */\n\t@property({ validator: Integer, defaultValue: 0 })\n\tlabelInterval!: number;\n\n\t/**\n\t * Enables tickmarks visualization for each step.\n\t *\n\t * **Note:** The step must be a positive number.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowTickmarks!: boolean;\n\n\t/**\n\t * Enables handle tooltip displaying the current value.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowTooltip!: boolean;\n\n\t/**\n\t * Defines whether the slider is in disabled state.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default \"\"\n\t * @public\n\t * @since 1.4.0\n\t */\n\t@property()\n\taccessibleName!: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ defaultValue: \"hidden\" })\n\t_tooltipVisibility!: string;\n\n\t@property({ type: Boolean })\n\t_labelsOverlapping!: boolean;\n\n\t@property({ type: Boolean })\n\t_hiddenTickmarks!: boolean;\n\n\t_resizeHandler: ResizeObserverCallback;\n\t_moveHandler: (e: TouchEvent | MouseEvent) => void;\n\t_upHandler: () => void;\n\t_stateStorage: StateStorage;\n\t_ontouchstart: PassiveEventListenerObject;\n\tnotResized = false;\n\t_isUserInteraction = false;\n\t_isInnerElementFocusing = false;\n\t_oldNumberOfLabels?: number;\n\t_oldMin?: number;\n\t_oldMax?: number;\n\t_labelWidth = 0;\n\t_labelValues?: Array<string>;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._resizeHandler = this._handleResize.bind(this);\n\t\tthis._moveHandler = this._handleMove.bind(this);\n\t\tthis._upHandler = this._handleUp.bind(this);\n\n\t\tthis._stateStorage = {\n\t\t\tstep: undefined,\n\t\t\tmin: undefined,\n\t\t\tmax: undefined,\n\t\t\tlabelInterval: undefined,\n\t\t};\n\n\t\tconst handleTouchStartEvent = (e: TouchEvent) => {\n\t\t\tthis._onmousedown(e);\n\t\t};\n\n\t\tthis._ontouchstart = {\n\t\t\thandleEvent: handleTouchStartEvent,\n\t\t\tpassive: true,\n\t\t};\n\t}\n\n\t_handleMove(e: TouchEvent | MouseEvent) {} // eslint-disable-line\n\n\t_handleUp() {}\n\n\t_onmousedown(e: TouchEvent | MouseEvent) {} // eslint-disable-line\n\n\t_handleActionKeyPress(e: Event) {} // eslint-disable-line\n\n\t// used in base template, but implemented in subclasses\n\tabstract styles: {\n\t\tlabel: object,\n\t\tlabelContainer: object,\n\t};\n\n\tabstract tickmarksObject: any;\n\tabstract _ariaLabelledByText: string;\n\n\tstatic get ACTION_KEYS() {\n\t\treturn [\n\t\t\tisLeft,\n\t\t\tisRight,\n\t\t\tisUp,\n\t\t\tisDown,\n\t\t\tisLeftCtrl,\n\t\t\tisRightCtrl,\n\t\t\tisUpCtrl,\n\t\t\tisDownCtrl,\n\t\t\tisPlus,\n\t\t\tisMinus,\n\t\t\tisHome,\n\t\t\tisEnd,\n\t\t\tisPageUp,\n\t\t\tisPageDown,\n\t\t\tisEscape,\n\t\t];\n\t}\n\n\tstatic get MIN_SPACE_BETWEEN_TICKMARKS() {\n\t\treturn 8;\n\t}\n\n\tstatic get TOOLTIP_VISIBILITY() {\n\t\treturn {\n\t\t\tVISIBLE: \"visible\",\n\t\t\tHIDDEN: \"hidden\",\n\t\t};\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get styles() {\n\t\treturn sliderBaseStyles;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\troot: {\n\t\t\t\t\"ui5-slider-root-phone\": isPhone(),\n\t\t\t},\n\t\t\tlabelContainer: {\n\t\t\t\t\"ui5-slider-hidden-labels\": this._labelsOverlapping,\n\t\t\t},\n\t\t};\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._resizeHandler);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._resizeHandler);\n\t}\n\n\tonAfterRendering() {\n\t\t// Only call if the resize is triggered by a state changes other than\n\t\t// the ones that occured on the previous resize and those caused by user interaction.\n\t\tif (this.notResized) {\n\t\t\tthis._resizeHandler();\n\t\t}\n\t}\n\n\t/** Shows the tooltip(s) if the `showTooltip` property is set to true\n\t * @private\n\t */\n\t_onmouseover() {\n\t\tif (this.showTooltip) {\n\t\t\tthis._tooltipVisibility = SliderBase.TOOLTIP_VISIBILITY.VISIBLE;\n\t\t}\n\t}\n\n\t/**\n\t * Hides the tooltip(s) if the `showTooltip` property is set to true\n\t * @private\n\t */\n\t_onmouseout() {\n\t\tif (this.showTooltip && !this.shadowRoot!.activeElement) {\n\t\t\tthis._tooltipVisibility = SliderBase.TOOLTIP_VISIBILITY.HIDDEN;\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (this.disabled || this._effectiveStep === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (SliderBase._isActionKey(e)) {\n\t\t\te.preventDefault();\n\n\t\t\tthis._isUserInteraction = true;\n\t\t\tthis._handleActionKeyPress(e);\n\t\t}\n\t}\n\n\t_onkeyup() {\n\t\tif (this.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isUserInteraction = false;\n\t}\n\n\t/**\n\t * Flags if an inner element is currently being focused\n\t * @private\n\t */\n\t_preserveFocus(isFocusing: boolean) {\n\t\tthis._isInnerElementFocusing = isFocusing;\n\t}\n\n\t/**\n\t * Return if an inside element within the component is currently being focused\n\t * @private\n\t */\n\t_isFocusing() {\n\t\treturn this._isInnerElementFocusing;\n\t}\n\n\t/**\n\t * Prevent focus out when inner element within the component is currently being in process of focusing in.\n\t * @private\n\t */\n\t_preventFocusOut() {\n\t\tthis.focusInnerElement();\n\t}\n\n\t/**\n\t * Manages the focus between the component's inner elements\n\t * @protected\n\t */\n\tfocusInnerElement() {\n\t\tthis.focus();\n\t}\n\n\t/**\n\t * Handle the responsiveness of the Slider's UI elements when resizing\n\t * @private\n\t */\n\t_handleResize() {\n\t\tif (!this.showTickmarks) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Mark resizing to avoid unneccessary calls to that function after rendering\n\t\tthis.notResized = false;\n\n\t\t// Convert the string represented calculation expression to a normal one\n\t\t// Check the distance in pixels exist between every tickmark\n\t\tconst spaceBetweenTickmarks = this._spaceBetweenTickmarks();\n\n\t\t// If the pixels between the tickmarks are less than 8 only the first and the last one should be visible\n\t\t// In such case the labels must correspond to the tickmarks, only the first and the last one should exist.\n\t\tif (spaceBetweenTickmarks < SliderBase.MIN_SPACE_BETWEEN_TICKMARKS) {\n\t\t\tthis._hiddenTickmarks = true;\n\t\t\tthis._labelsOverlapping = true;\n\t\t} else {\n\t\t\tthis._hiddenTickmarks = false;\n\t\t}\n\n\t\tif (this.labelInterval <= 0 || this._hiddenTickmarks) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if there are any overlapping labels.\n\t\t// If so - only the first and the last one should be visible\n\t\tconst labelItems = this.shadowRoot!.querySelectorAll(\".ui5-slider-labels li\");\n\t\tthis._labelsOverlapping = [...labelItems].some(label => label.scrollWidth > label.clientWidth);\n\t}\n\n\t/**\n\t * Called when the user starts interacting with the slider.\n\t * After a down event on the slider root, listen for move events on window, so the slider value\n\t * is updated even if the user drags the pointer outside the slider root.\n\t * @protected\n\t */\n\thandleDownBase(e: TouchEvent | MouseEvent) {\n\t\tconst min = this._effectiveMin;\n\t\tconst max = this._effectiveMax;\n\t\tconst domRect = this.getBoundingClientRect();\n\t\tconst directionStart = this.directionStart;\n\t\tconst step = this._effectiveStep;\n\t\tconst newValue = SliderBase.getValueFromInteraction(e, step, min, max, domRect, directionStart);\n\n\t\t// Mark start of a user interaction\n\t\tthis._isUserInteraction = true;\n\n\t\twindow.addEventListener(\"mouseup\", this._upHandler);\n\t\twindow.addEventListener(\"touchend\", this._upHandler);\n\t\t// Only allow one type of move event to be listened to (the first one registered after the down event)\n\t\tif (supportsTouch() && e instanceof TouchEvent) {\n\t\t\twindow.addEventListener(\"touchmove\", this._moveHandler);\n\t\t} else {\n\t\t\twindow.addEventListener(\"mousemove\", this._moveHandler);\n\t\t}\n\n\t\tthis._handleFocusOnMouseDown(e);\n\t\treturn newValue;\n\t}\n\n\t/**\n\t * Forward the focus to an inner inner part within the component on press\n\t * @private\n\t */\n\t_handleFocusOnMouseDown(e: TouchEvent | MouseEvent) {\n\t\tconst focusedElement = this.shadowRoot!.activeElement;\n\n\t\tif (!focusedElement || focusedElement !== e.target) {\n\t\t\tthis._preserveFocus(true);\n\t\t\tthis.focusInnerElement();\n\t\t}\n\t}\n\n\t/**\n\t * Called when the user finish interacting with the slider\n\t * Fires an `change` event indicating a final value change, after user interaction is finished.\n\t * @protected\n\t */\n\thandleUpBase() {\n\t\twindow.removeEventListener(\"mouseup\", this._upHandler);\n\t\twindow.removeEventListener(\"touchend\", this._upHandler);\n\t\t// Only one of the following was attached, but it's ok to remove both as there is no error\n\t\twindow.removeEventListener(\"mousemove\", this._moveHandler);\n\t\twindow.removeEventListener(\"touchmove\", this._moveHandler);\n\n\t\tthis._isUserInteraction = false;\n\t\tthis._preserveFocus(false);\n\t}\n\n\t/**\n\t * Updates state storage for the value-related property\n\t * Fires an `input` event indicating a value change via interaction that is not yet finished.\n\t * @protected\n\t */\n\tupdateStateStorageAndFireInputEvent(valueType: string) {\n\t\tthis.storePropertyState(valueType);\n\t\tif (this._isUserInteraction) {\n\t\t\tthis.fireEvent(\"input\");\n\t\t}\n\t}\n\n\t/**\n\t * Goes through the key shortcuts available for the component and returns 'true' if the event is triggered by one.\n\t * @private\n\t */\n\tstatic _isActionKey(e: KeyboardEvent) {\n\t\treturn this.ACTION_KEYS.some(actionKey => actionKey(e));\n\t}\n\n\t/**\n\t * Locks the given value between min and max boundaries based on slider properties\n\t * @protected\n\t */\n\tstatic clipValue(value: number, min: number, max: number): number {\n\t\tvalue = Math.min(Math.max(value, min), max);\n\t\treturn value;\n\t}\n\n\t/**\n\t * Sets the slider value from an event\n\t * @protected\n\t */\n\tstatic getValueFromInteraction(e: TouchEvent | MouseEvent, stepSize: number, min: number, max: number, boundingClientRect: DOMRect, directionStart: DirectionStart): number {\n\t\tconst pageX = this.getPageXValueFromEvent(e);\n\t\tconst value = this.computedValueFromPageX(pageX, min, max, boundingClientRect, directionStart);\n\t\tconst steppedValue = this.getSteppedValue(value, stepSize, min);\n\n\t\treturn this.clipValue(steppedValue, min, max);\n\t}\n\n\t/**\n\t * \"Stepify\" the raw value - calculate the new value depending on the specified step property\n\t * @protected\n\t */\n\tstatic getSteppedValue(value: number, stepSize: number, min: number): number {\n\t\tconst stepModuloValue = Math.abs((value - min) % stepSize);\n\n\t\tif (stepSize === 0 || stepModuloValue === 0) {\n\t\t\treturn value;\n\t\t}\n\n\t\t// Clip (snap) the new value to the nearest step\n\t\tvalue = (stepModuloValue * 2 >= stepSize) ? (value + stepSize) - stepModuloValue : value - stepModuloValue;\n\n\t\t// If the step value is not a round number get its precision\n\t\tconst stepPrecision = SliderBase._getDecimalPrecisionOfNumber(stepSize);\n\t\treturn Number(value.toFixed(stepPrecision));\n\t}\n\n\t/**\n\t * Gets pageX value from event on user interaction with the Slider\n\t * @protected\n\t */\n\tstatic getPageXValueFromEvent(e: TouchEvent | MouseEvent): number {\n\t\tif (supportsTouch() && e instanceof TouchEvent) {\n\t\t\tif (e.targetTouches && e.targetTouches.length > 0) {\n\t\t\t\treturn e.targetTouches[0].pageX;\n\t\t\t}\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn (e as MouseEvent).pageX; // MouseEvent\n\t}\n\n\t/**\n\t * Computes the new value (in %) from the pageX position of the cursor.\n\t * Returns the value rounded to a precision of at most 2 digits after decimal point.\n\t * @protected\n\t */\n\tstatic computedValueFromPageX(pageX: number, min: number, max: number, boundingClientRect: DOMRect, directionStart: DirectionStart) {\n\t\t// Determine pageX position relative to the Slider DOM\n\t\tconst xRelativePosition = directionStart === \"left\" ? pageX - boundingClientRect[directionStart] : boundingClientRect[directionStart] - pageX;\n\t\t// Calculate the percentage complete (the \"progress\")\n\t\tconst percentageComplete = xRelativePosition / boundingClientRect.width;\n\t\t// Fit (map) the complete percentage between the min/max value range\n\t\treturn min + percentageComplete * (max - min);\n\t}\n\n\t/**\n\t * Calculates the precision (decimal places) of a number, returns 0 if integer\n\t * Handles scientific notation cases.\n\t * @private\n\t */\n\tstatic _getDecimalPrecisionOfNumber(value: number) {\n\t\tif (Number.isInteger(value)) {\n\t\t\treturn 0;\n\t\t}\n\t\tconst match = (String(value)).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\n\t\tif (!match || match.length < 2) {\n\t\t\treturn 0;\n\t\t}\n\t\treturn Math.max(0, (match[1] ? match[1].length : 0) - (match[2] ? Number(match[2]) : 0));\n\t}\n\n\t/**\n\t * In order to always keep the visual UI representation and the internal\n\t * state in sync, the component has a 'state storage' that is updated when the\n\t * current state is changed due to a user action.\n\t *\n\t * Check if the previously saved state is outdated. That would mean\n\t * a property has been changed programmatically because the previous state\n\t * is always updated in the interaction handlers.\n\t *\n\t * Will return true if any of the properties is not equal to its previously\n\t * stored value.\n\t * @protected\n\t */\n\tisCurrentStateOutdated() {\n\t\treturn Object.entries(this._stateStorage).some(([propName, propValue]) => this[propName as keyof SliderBase] !== propValue);\n\t}\n\n\t/**\n\t * Returns the last stored value of a property\n\t * @protected\n\t */\n\tgetStoredPropertyState(prop: string) {\n\t\treturn this._stateStorage[prop as keyof StateStorage];\n\t}\n\n\t/**\n\t * Check if one or more properties have been updated compared to their last\n\t * saved values in the state storage.\n\t * @protected\n\t */\n\tisPropertyUpdated(...props: Array<string>) {\n\t\treturn props.some(prop => this.getStoredPropertyState(prop) !== this[prop as keyof SliderBase]);\n\t}\n\n\t/**\n\t * Updates the previously saved in the _stateStorage values of one or more properties.\n\t * @protected\n\t */\n\tstorePropertyState(...props: Array<string>) {\n\t\tprops.forEach(prop => {\n\t\t\tthis._stateStorage[prop as keyof StateStorage] = this[prop as keyof SliderBase] as number;\n\t\t});\n\t}\n\n\t/**\n\t * Returns the start side of a direction - left for LTR, right for RTL\n\t */\n\tget directionStart() {\n\t\treturn this.effectiveDir === \"rtl\" ? \"right\" : \"left\";\n\t}\n\n\t/**\n\t * Calculates the labels amount, width and text and creates them\n\t * @private\n\t */\n\t_createLabels() {\n\t\tif (!this.labelInterval || !this.showTickmarks) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst labelInterval = this.labelInterval;\n\t\tconst step = this._effectiveStep;\n\t\tconst newNumberOfLabels = (this._effectiveMax - this._effectiveMin) / (step * labelInterval);\n\n\t\t// If the required labels are already rendered\n\t\tif (newNumberOfLabels === this._oldNumberOfLabels && this._oldMin === this._effectiveMin && this._oldMax === this._effectiveMax) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._oldMin = this._effectiveMin;\n\t\tthis._oldMax = this._effectiveMax;\n\t\tthis._oldNumberOfLabels = newNumberOfLabels;\n\t\tthis._labelWidth = 100 / newNumberOfLabels;\n\t\tthis._labelValues = [];\n\n\t\t// If the step value is not a round number get its precision\n\t\tconst stepPrecision = SliderBase._getDecimalPrecisionOfNumber(step);\n\n\t\t// numberOfLabels below can be float so that the \"distance betweenlabels labels\"\n\t\t// calculation to be precize (exactly the same as the distance between the tickmarks).\n\t\t// That's ok as the loop stop condition is set to an integer, so it will practically\n\t\t// \"floor\" the number of labels anyway.\n\t\tfor (let i = 0; i <= newNumberOfLabels; i++) {\n\t\t\t// Format the label numbers with the same decimal precision as the value of the step property\n\t\t\tconst labelItemNumber = ((i * step * labelInterval) + this._effectiveMin).toFixed(stepPrecision);\n\t\t\tthis._labelValues.push(labelItemNumber);\n\t\t}\n\t}\n\n\t_handleActionKeyPressBase(e: KeyboardEvent, affectedPropName: string) {\n\t\tconst isUpAction = SliderBase._isIncreaseValueAction(e);\n\t\tconst isBigStep = SliderBase._isBigStepAction(e);\n\n\t\tconst currentValue = this[affectedPropName as keyof SliderBase] as number;\n\t\tconst min = this._effectiveMin;\n\t\tconst max = this._effectiveMax;\n\n\t\t// We need to take into consideration the effective direction of the slider - rtl or ltr.\n\t\t// While in ltr, the left arrow key decreases the value, in rtl it should actually increase it.\n\t\tlet step = this.effectiveDir === \"rtl\" ? -this._effectiveStep : this._effectiveStep;\n\n\t\t// If the action key corresponds to a long step and the slider has more than 10 normal steps,\n\t\t// make a jump of 1/10th of the Slider's length, otherwise just use the normal step property.\n\t\tstep = isBigStep && ((max - min) / step > 10) ? (max - min) / 10 : step;\n\n\t\tif (isEnd(e)) {\n\t\t\treturn max - currentValue;\n\t\t}\n\n\t\tif (isHome(e)) {\n\t\t\treturn (currentValue - min) * -1;\n\t\t}\n\n\t\treturn isUpAction ? step : step * -1;\n\t}\n\n\tstatic _isDecreaseValueAction(e: KeyboardEvent) {\n\t\treturn isDown(e) || isDownCtrl(e) || isLeft(e) || isLeftCtrl(e) || isMinus(e) || isPageDown(e);\n\t}\n\n\tstatic _isIncreaseValueAction(e: KeyboardEvent) {\n\t\treturn isUp(e) || isUpCtrl(e) || isRight(e) || isRightCtrl(e) || isPlus(e) || isPageUp(e);\n\t}\n\n\tstatic _isBigStepAction(e: KeyboardEvent) {\n\t\treturn isDownCtrl(e) || isUpCtrl(e) || isLeftCtrl(e) || isRightCtrl(e) || isPageUp(e) || isPageDown(e);\n\t}\n\n\tget _tickmarksCount() {\n\t\treturn (this._effectiveMax - this._effectiveMin) / this._effectiveStep;\n\t}\n\n\t/**\n\t * Calculates space between tickmarks\n\t * @private\n\t */\n\t_spaceBetweenTickmarks() {\n\t\treturn this.getBoundingClientRect().width / this._tickmarksCount;\n\t}\n\n\t/**\n\t * Notify in case of a invalid step value type\n\t * @private\n\t */\n\t_validateStep(step: number) {\n\t\tif (step === 0) {\n\t\t\tconsole.warn(\"The 'step' property must be a positive float number\"); // eslint-disable-line\n\t\t}\n\n\t\tif (step < 0) {\n\t\t\tconsole.warn(\"The 'step' property must be a positive float number. The provided negative number has been converted to its positve equivalent\"); // eslint-disable-line\n\t\t}\n\n\t\tif (Number.isNaN(step)) {\n\t\t\tconsole.warn(\"The 'step' property must be a positive float number. It has been set to its default value of 1\"); // eslint-disable-line\n\t\t}\n\t}\n\n\tget _labels() {\n\t\treturn this._labelValues || [];\n\t}\n\n\t/**\n\t * Normalizes a new `step` property value.\n\t * If tickmarks are enabled recreates them according to it.\n\t * @private\n\t */\n\tget _effectiveStep() {\n\t\tlet step = this.step;\n\n\t\tif (step < 0) {\n\t\t\tstep = Math.abs(step);\n\t\t}\n\n\t\tif (Number.isNaN(step)) {\n\t\t\tstep = 1;\n\t\t}\n\n\t\treturn step;\n\t}\n\n\tget _effectiveMin() {\n\t\treturn Math.min(this.min, this.max);\n\t}\n\n\tget _effectiveMax() {\n\t\treturn Math.max(this.min, this.max);\n\t}\n\n\tget _tabIndex() {\n\t\treturn this.disabled ? \"-1\" : \"0\";\n\t}\n\n\tget _ariaLabelledByHandleRefs() {\n\t\treturn [`${this._id}-accName`, `${this._id}-sliderDesc`].join(\" \").trim();\n\t}\n}\n\nexport default SliderBase;\n"]}
1
+ {"version":3,"file":"SliderBase.js","sourceRoot":"","sources":["../src/SliderBase.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Float from \"@ui5/webcomponents-base/dist/types/Float.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { isPhone, supportsTouch } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { PassiveEventListenerObject } from \"@ui5/webcomponents-base/dist/types.js\";\nimport \"@ui5/webcomponents-icons/dist/direction-arrows.js\";\nimport {\n\tisEscape, isHome, isEnd, isUp, isDown, isRight, isLeft, isUpCtrl, isDownCtrl, isRightCtrl, isLeftCtrl, isPlus, isMinus, isPageUp, isPageDown,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\n\n// Styles\nimport sliderBaseStyles from \"./generated/themes/SliderBase.css.js\";\n\ntype StateStorage = {\n\t[key: string]: number | undefined,\n}\n\ntype DirectionStart = \"left\" | \"right\";\n\n/**\n * Fired when the value changes and the user has finished interacting with the slider.\n * @public\n */\n@event(\"change\")\n\n/**\n * Fired when the value changes due to user interaction that is not yet finished - during mouse/touch dragging.\n * @public\n */\n@event(\"input\")\n\n/**\n * @class\n *\n * ### Overview\n * @constructor\n * @extends UI5Element\n * @public\n */\nabstract class SliderBase extends UI5Element {\n\t/**\n\t * Defines the minimum value of the slider.\n\t * @default 0\n\t * @public\n\t */\n\t@property({ validator: Float, defaultValue: 0 })\n\tmin!: number;\n\n\t/**\n\t * Defines the maximum value of the slider.\n\t * @default 100\n\t * @public\n\t */\n\t@property({ validator: Float, defaultValue: 100 })\n\tmax!: number;\n\n\t/**\n\t * Defines the size of the slider's selection intervals (e.g. min = 0, max = 10, step = 5 would result in possible selection of the values 0, 5, 10).\n\t *\n\t * **Note:** If set to 0 the slider handle movement is disabled. When negative number or value other than a number, the component fallbacks to its default value.\n\t * @default 1\n\t * @public\n\t */\n\t@property({ validator: Float, defaultValue: 1 })\n\tstep!: number;\n\n\t/**\n\t * Displays a label with a value on every N-th step.\n\t *\n\t * **Note:** The step and tickmarks properties must be enabled.\n\t * Example - if the step value is set to 2 and the label interval is also specified to 2 - then every second\n\t * tickmark will be labelled, which means every 4th value number.\n\t * @default 0\n\t * @public\n\t */\n\t@property({ validator: Integer, defaultValue: 0 })\n\tlabelInterval!: number;\n\n\t/**\n\t * Enables tickmarks visualization for each step.\n\t *\n\t * **Note:** The step must be a positive number.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowTickmarks!: boolean;\n\n\t/**\n\t * Enables handle tooltip displaying the current value.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowTooltip!: boolean;\n\n\t/**\n\t * Defines whether the slider is in disabled state.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default \"\"\n\t * @public\n\t * @since 1.4.0\n\t */\n\t@property()\n\taccessibleName!: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ defaultValue: \"hidden\" })\n\t_tooltipVisibility!: string;\n\n\t@property({ type: Boolean })\n\t_labelsOverlapping!: boolean;\n\n\t@property({ type: Boolean })\n\t_hiddenTickmarks!: boolean;\n\n\t_resizeHandler: ResizeObserverCallback;\n\t_moveHandler: (e: TouchEvent | MouseEvent) => void;\n\t_upHandler: () => void;\n\t_stateStorage: StateStorage;\n\t_ontouchstart: PassiveEventListenerObject;\n\tnotResized = false;\n\t_isUserInteraction = false;\n\t_isInnerElementFocusing = false;\n\t_oldNumberOfLabels?: number;\n\t_oldMin?: number;\n\t_oldMax?: number;\n\t_labelWidth = 0;\n\t_labelValues?: Array<string>;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._resizeHandler = this._handleResize.bind(this);\n\t\tthis._moveHandler = this._handleMove.bind(this);\n\t\tthis._upHandler = this._handleUp.bind(this);\n\n\t\tthis._stateStorage = {\n\t\t\tstep: undefined,\n\t\t\tmin: undefined,\n\t\t\tmax: undefined,\n\t\t\tlabelInterval: undefined,\n\t\t};\n\n\t\tconst handleTouchStartEvent = (e: TouchEvent) => {\n\t\t\tthis._onmousedown(e);\n\t\t};\n\n\t\tthis._ontouchstart = {\n\t\t\thandleEvent: handleTouchStartEvent,\n\t\t\tpassive: true,\n\t\t};\n\t}\n\n\t_handleMove(e: TouchEvent | MouseEvent) {} // eslint-disable-line\n\n\t_handleUp() {}\n\n\t_onmousedown(e: TouchEvent | MouseEvent) {} // eslint-disable-line\n\n\t_handleActionKeyPress(e: Event) {} // eslint-disable-line\n\n\t// used in base template, but implemented in subclasses\n\tabstract styles: {\n\t\tlabel: object,\n\t\tlabelContainer: object,\n\t};\n\n\tabstract tickmarksObject: any;\n\tabstract _ariaLabelledByText: string;\n\n\tstatic get ACTION_KEYS() {\n\t\treturn [\n\t\t\tisLeft,\n\t\t\tisRight,\n\t\t\tisUp,\n\t\t\tisDown,\n\t\t\tisLeftCtrl,\n\t\t\tisRightCtrl,\n\t\t\tisUpCtrl,\n\t\t\tisDownCtrl,\n\t\t\tisPlus,\n\t\t\tisMinus,\n\t\t\tisHome,\n\t\t\tisEnd,\n\t\t\tisPageUp,\n\t\t\tisPageDown,\n\t\t\tisEscape,\n\t\t];\n\t}\n\n\tstatic get MIN_SPACE_BETWEEN_TICKMARKS() {\n\t\treturn 8;\n\t}\n\n\tstatic get TOOLTIP_VISIBILITY() {\n\t\treturn {\n\t\t\tVISIBLE: \"visible\",\n\t\t\tHIDDEN: \"hidden\",\n\t\t};\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get styles() {\n\t\treturn sliderBaseStyles;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\troot: {\n\t\t\t\t\"ui5-slider-root-phone\": isPhone(),\n\t\t\t},\n\t\t\tlabelContainer: {\n\t\t\t\t\"ui5-slider-hidden-labels\": this._labelsOverlapping,\n\t\t\t},\n\t\t};\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._resizeHandler);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._resizeHandler);\n\t}\n\n\tonAfterRendering() {\n\t\t// Only call if the resize is triggered by a state changes other than\n\t\t// the ones that occured on the previous resize and those caused by user interaction.\n\t\tif (this.notResized) {\n\t\t\tthis._resizeHandler();\n\t\t}\n\t}\n\n\t/** Shows the tooltip(s) if the `showTooltip` property is set to true\n\t * @private\n\t */\n\t_onmouseover() {\n\t\tif (this.showTooltip) {\n\t\t\tthis._tooltipVisibility = SliderBase.TOOLTIP_VISIBILITY.VISIBLE;\n\t\t}\n\t}\n\n\t/**\n\t * Hides the tooltip(s) if the `showTooltip` property is set to true\n\t * @private\n\t */\n\t_onmouseout() {\n\t\tif (this.showTooltip && !this.shadowRoot!.activeElement) {\n\t\t\tthis._tooltipVisibility = SliderBase.TOOLTIP_VISIBILITY.HIDDEN;\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (this.disabled || this._effectiveStep === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (SliderBase._isActionKey(e)) {\n\t\t\te.preventDefault();\n\n\t\t\tthis._isUserInteraction = true;\n\t\t\tthis._handleActionKeyPress(e);\n\t\t}\n\t}\n\n\t_onkeyup() {\n\t\tif (this.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isUserInteraction = false;\n\t}\n\n\t/**\n\t * Flags if an inner element is currently being focused\n\t * @private\n\t */\n\t_preserveFocus(isFocusing: boolean) {\n\t\tthis._isInnerElementFocusing = isFocusing;\n\t}\n\n\t/**\n\t * Return if an inside element within the component is currently being focused\n\t * @private\n\t */\n\t_isFocusing() {\n\t\treturn this._isInnerElementFocusing;\n\t}\n\n\t/**\n\t * Prevent focus out when inner element within the component is currently being in process of focusing in.\n\t * @private\n\t */\n\t_preventFocusOut() {\n\t\tthis.focusInnerElement();\n\t}\n\n\t/**\n\t * Manages the focus between the component's inner elements\n\t * @protected\n\t */\n\tfocusInnerElement() {\n\t\tthis.focus();\n\t}\n\n\t/**\n\t * Handle the responsiveness of the Slider's UI elements when resizing\n\t * @private\n\t */\n\t_handleResize() {\n\t\tif (!this.showTickmarks) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Mark resizing to avoid unneccessary calls to that function after rendering\n\t\tthis.notResized = false;\n\n\t\t// Convert the string represented calculation expression to a normal one\n\t\t// Check the distance in pixels exist between every tickmark\n\t\tconst spaceBetweenTickmarks = this._spaceBetweenTickmarks();\n\n\t\t// If the pixels between the tickmarks are less than 8 only the first and the last one should be visible\n\t\t// In such case the labels must correspond to the tickmarks, only the first and the last one should exist.\n\t\tif (spaceBetweenTickmarks < SliderBase.MIN_SPACE_BETWEEN_TICKMARKS) {\n\t\t\tthis._hiddenTickmarks = true;\n\t\t\tthis._labelsOverlapping = true;\n\t\t} else {\n\t\t\tthis._hiddenTickmarks = false;\n\t\t}\n\n\t\tif (this.labelInterval <= 0 || this._hiddenTickmarks) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if there are any overlapping labels.\n\t\t// If so - only the first and the last one should be visible\n\t\tconst labelItems = this.shadowRoot!.querySelectorAll(\".ui5-slider-labels li\");\n\t\tthis._labelsOverlapping = [...labelItems].some(label => label.scrollWidth > label.clientWidth);\n\t}\n\n\t/**\n\t * Called when the user starts interacting with the slider.\n\t * After a down event on the slider root, listen for move events on window, so the slider value\n\t * is updated even if the user drags the pointer outside the slider root.\n\t * @protected\n\t */\n\thandleDownBase(e: TouchEvent | MouseEvent) {\n\t\tconst min = this._effectiveMin;\n\t\tconst max = this._effectiveMax;\n\t\tconst domRect = this.getBoundingClientRect();\n\t\tconst directionStart = this.directionStart;\n\t\tconst step = this._effectiveStep;\n\t\tconst newValue = SliderBase.getValueFromInteraction(e, step, min, max, domRect, directionStart);\n\n\t\t// Mark start of a user interaction\n\t\tthis._isUserInteraction = true;\n\n\t\twindow.addEventListener(\"mouseup\", this._upHandler);\n\t\twindow.addEventListener(\"touchend\", this._upHandler);\n\t\t// Only allow one type of move event to be listened to (the first one registered after the down event)\n\t\tif (supportsTouch() && e instanceof TouchEvent) {\n\t\t\twindow.addEventListener(\"touchmove\", this._moveHandler);\n\t\t} else {\n\t\t\twindow.addEventListener(\"mousemove\", this._moveHandler);\n\t\t}\n\n\t\tthis._handleFocusOnMouseDown(e);\n\t\treturn newValue;\n\t}\n\n\t/**\n\t * Forward the focus to an inner inner part within the component on press\n\t * @private\n\t */\n\t_handleFocusOnMouseDown(e: TouchEvent | MouseEvent) {\n\t\tconst focusedElement = this.shadowRoot!.activeElement;\n\n\t\tif (!focusedElement || focusedElement !== e.target) {\n\t\t\tthis._preserveFocus(true);\n\t\t\tthis.focusInnerElement();\n\t\t}\n\t}\n\n\t/**\n\t * Called when the user finish interacting with the slider\n\t * Fires an `change` event indicating a final value change, after user interaction is finished.\n\t * @protected\n\t */\n\thandleUpBase() {\n\t\twindow.removeEventListener(\"mouseup\", this._upHandler);\n\t\twindow.removeEventListener(\"touchend\", this._upHandler);\n\t\t// Only one of the following was attached, but it's ok to remove both as there is no error\n\t\twindow.removeEventListener(\"mousemove\", this._moveHandler);\n\t\twindow.removeEventListener(\"touchmove\", this._moveHandler);\n\n\t\tthis._isUserInteraction = false;\n\t\tthis._preserveFocus(false);\n\t}\n\n\t/**\n\t * Updates state storage for the value-related property\n\t * Fires an `input` event indicating a value change via interaction that is not yet finished.\n\t * @protected\n\t */\n\tupdateStateStorageAndFireInputEvent(valueType: string) {\n\t\tthis.storePropertyState(valueType);\n\t\tif (this._isUserInteraction) {\n\t\t\tthis.fireEvent(\"input\");\n\t\t}\n\t}\n\n\t/**\n\t * Goes through the key shortcuts available for the component and returns 'true' if the event is triggered by one.\n\t * @private\n\t */\n\tstatic _isActionKey(e: KeyboardEvent) {\n\t\treturn this.ACTION_KEYS.some(actionKey => actionKey(e));\n\t}\n\n\t/**\n\t * Locks the given value between min and max boundaries based on slider properties\n\t * @protected\n\t */\n\tstatic clipValue(value: number, min: number, max: number): number {\n\t\tvalue = Math.min(Math.max(value, min), max);\n\t\treturn value;\n\t}\n\n\t/**\n\t * Sets the slider value from an event\n\t * @protected\n\t */\n\tstatic getValueFromInteraction(e: TouchEvent | MouseEvent, stepSize: number, min: number, max: number, boundingClientRect: DOMRect, directionStart: DirectionStart): number {\n\t\tconst pageX = this.getPageXValueFromEvent(e);\n\t\tconst value = this.computedValueFromPageX(pageX, min, max, boundingClientRect, directionStart);\n\t\tconst steppedValue = this.getSteppedValue(value, stepSize, min);\n\n\t\treturn this.clipValue(steppedValue, min, max);\n\t}\n\n\t/**\n\t * \"Stepify\" the raw value - calculate the new value depending on the specified step property\n\t * @protected\n\t */\n\tstatic getSteppedValue(value: number, stepSize: number, min: number): number {\n\t\tconst stepModuloValue = Math.abs((value - min) % stepSize);\n\n\t\tif (stepSize === 0 || stepModuloValue === 0) {\n\t\t\treturn value;\n\t\t}\n\n\t\t// Clip (snap) the new value to the nearest step\n\t\tvalue = (stepModuloValue * 2 >= stepSize) ? (value + stepSize) - stepModuloValue : value - stepModuloValue;\n\n\t\t// If the step value is not a round number get its precision\n\t\tconst stepPrecision = SliderBase._getDecimalPrecisionOfNumber(stepSize);\n\t\treturn Number(value.toFixed(stepPrecision));\n\t}\n\n\t/**\n\t * Gets pageX value from event on user interaction with the Slider\n\t * @protected\n\t */\n\tstatic getPageXValueFromEvent(e: TouchEvent | MouseEvent): number {\n\t\tif (supportsTouch() && e instanceof TouchEvent) {\n\t\t\tif (e.targetTouches && e.targetTouches.length > 0) {\n\t\t\t\treturn e.targetTouches[0].pageX;\n\t\t\t}\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn (e as MouseEvent).pageX; // MouseEvent\n\t}\n\n\t/**\n\t * Computes the new value (in %) from the pageX position of the cursor.\n\t * Returns the value rounded to a precision of at most 2 digits after decimal point.\n\t * @protected\n\t */\n\tstatic computedValueFromPageX(pageX: number, min: number, max: number, boundingClientRect: DOMRect, directionStart: DirectionStart) {\n\t\t// Determine pageX position relative to the Slider DOM\n\t\tconst xRelativePosition = directionStart === \"left\" ? pageX - boundingClientRect[directionStart] : boundingClientRect[directionStart] - pageX;\n\t\t// Calculate the percentage complete (the \"progress\")\n\t\tconst percentageComplete = xRelativePosition / boundingClientRect.width;\n\t\t// Fit (map) the complete percentage between the min/max value range\n\t\treturn min + percentageComplete * (max - min);\n\t}\n\n\t/**\n\t * Calculates the precision (decimal places) of a number, returns 0 if integer\n\t * Handles scientific notation cases.\n\t * @private\n\t */\n\tstatic _getDecimalPrecisionOfNumber(value: number) {\n\t\tif (Number.isInteger(value)) {\n\t\t\treturn 0;\n\t\t}\n\t\tconst match = (String(value)).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\n\t\tif (!match || match.length < 2) {\n\t\t\treturn 0;\n\t\t}\n\t\treturn Math.max(0, (match[1] ? match[1].length : 0) - (match[2] ? Number(match[2]) : 0));\n\t}\n\n\t/**\n\t * In order to always keep the visual UI representation and the internal\n\t * state in sync, the component has a 'state storage' that is updated when the\n\t * current state is changed due to a user action.\n\t *\n\t * Check if the previously saved state is outdated. That would mean\n\t * a property has been changed programmatically because the previous state\n\t * is always updated in the interaction handlers.\n\t *\n\t * Will return true if any of the properties is not equal to its previously\n\t * stored value.\n\t * @protected\n\t */\n\tisCurrentStateOutdated() {\n\t\treturn Object.entries(this._stateStorage).some(([propName, propValue]) => this[propName as keyof SliderBase] !== propValue);\n\t}\n\n\t/**\n\t * Returns the last stored value of a property\n\t * @protected\n\t */\n\tgetStoredPropertyState(prop: string) {\n\t\treturn this._stateStorage[prop as keyof StateStorage];\n\t}\n\n\t/**\n\t * Check if one or more properties have been updated compared to their last\n\t * saved values in the state storage.\n\t * @protected\n\t */\n\tisPropertyUpdated(...props: Array<string>) {\n\t\treturn props.some(prop => this.getStoredPropertyState(prop) !== this[prop as keyof SliderBase]);\n\t}\n\n\t/**\n\t * Updates the previously saved in the _stateStorage values of one or more properties.\n\t * @protected\n\t */\n\tstorePropertyState(...props: Array<string>) {\n\t\tprops.forEach(prop => {\n\t\t\tthis._stateStorage[prop as keyof StateStorage] = this[prop as keyof SliderBase] as number;\n\t\t});\n\t}\n\n\t/**\n\t * Returns the start side of a direction - left for LTR, right for RTL\n\t */\n\tget directionStart() {\n\t\treturn this.effectiveDir === \"rtl\" ? \"right\" : \"left\";\n\t}\n\n\t/**\n\t * Calculates the labels amount, width and text and creates them\n\t * @private\n\t */\n\t_createLabels() {\n\t\tif (!this.labelInterval || !this.showTickmarks) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst labelInterval = this.labelInterval;\n\t\tconst step = this._effectiveStep;\n\t\tconst newNumberOfLabels = (this._effectiveMax - this._effectiveMin) / (step * labelInterval);\n\n\t\t// If the required labels are already rendered\n\t\tif (newNumberOfLabels === this._oldNumberOfLabels && this._oldMin === this._effectiveMin && this._oldMax === this._effectiveMax) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._oldMin = this._effectiveMin;\n\t\tthis._oldMax = this._effectiveMax;\n\t\tthis._oldNumberOfLabels = newNumberOfLabels;\n\t\tthis._labelWidth = 100 / newNumberOfLabels;\n\t\tthis._labelValues = [];\n\n\t\t// If the step value is not a round number get its precision\n\t\tconst stepPrecision = SliderBase._getDecimalPrecisionOfNumber(step);\n\n\t\t// numberOfLabels below can be float so that the \"distance betweenlabels labels\"\n\t\t// calculation to be precize (exactly the same as the distance between the tickmarks).\n\t\t// That's ok as the loop stop condition is set to an integer, so it will practically\n\t\t// \"floor\" the number of labels anyway.\n\t\tfor (let i = 0; i <= newNumberOfLabels; i++) {\n\t\t\t// Format the label numbers with the same decimal precision as the value of the step property\n\t\t\tconst labelItemNumber = ((i * step * labelInterval) + this._effectiveMin).toFixed(stepPrecision);\n\t\t\tthis._labelValues.push(labelItemNumber);\n\t\t}\n\t}\n\n\t_handleActionKeyPressBase(e: KeyboardEvent, affectedPropName: string) {\n\t\tconst isUpAction = SliderBase._isIncreaseValueAction(e, this.directionStart);\n\t\tconst isBigStep = SliderBase._isBigStepAction(e);\n\n\t\tconst currentValue = this[affectedPropName as keyof SliderBase] as number;\n\t\tconst min = this._effectiveMin;\n\t\tconst max = this._effectiveMax;\n\n\t\tlet step = this._effectiveStep;\n\n\t\t// If the action key corresponds to a long step and the slider has more than 10 normal steps,\n\t\t// make a jump of 1/10th of the Slider's length, otherwise just use the normal step property.\n\t\tstep = isBigStep && ((max - min) / step > 10) ? (max - min) / 10 : step;\n\n\t\tif (isEnd(e)) {\n\t\t\treturn max - currentValue;\n\t\t}\n\n\t\tif (isHome(e)) {\n\t\t\treturn (currentValue - min) * -1;\n\t\t}\n\n\t\treturn isUpAction ? step : step * -1;\n\t}\n\n\tstatic _isIncreaseValueAction(e: KeyboardEvent, directionStart: DirectionStart) {\n\t\tif (directionStart === \"right\") {\n\t\t\treturn isUp(e) || isUpCtrl(e) || isLeft(e) || isLeftCtrl(e) || isPlus(e) || isPageUp(e);\n\t\t}\n\n\t\treturn isUp(e) || isUpCtrl(e) || isRight(e) || isRightCtrl(e) || isPlus(e) || isPageUp(e);\n\t}\n\n\tstatic _isBigStepAction(e: KeyboardEvent) {\n\t\treturn isDownCtrl(e) || isUpCtrl(e) || isLeftCtrl(e) || isRightCtrl(e) || isPageUp(e) || isPageDown(e);\n\t}\n\n\tget _tickmarksCount() {\n\t\treturn (this._effectiveMax - this._effectiveMin) / this._effectiveStep;\n\t}\n\n\t/**\n\t * Calculates space between tickmarks\n\t * @private\n\t */\n\t_spaceBetweenTickmarks() {\n\t\treturn this.getBoundingClientRect().width / this._tickmarksCount;\n\t}\n\n\t/**\n\t * Notify in case of a invalid step value type\n\t * @private\n\t */\n\t_validateStep(step: number) {\n\t\tif (step === 0) {\n\t\t\tconsole.warn(\"The 'step' property must be a positive float number\"); // eslint-disable-line\n\t\t}\n\n\t\tif (step < 0) {\n\t\t\tconsole.warn(\"The 'step' property must be a positive float number. The provided negative number has been converted to its positve equivalent\"); // eslint-disable-line\n\t\t}\n\n\t\tif (Number.isNaN(step)) {\n\t\t\tconsole.warn(\"The 'step' property must be a positive float number. It has been set to its default value of 1\"); // eslint-disable-line\n\t\t}\n\t}\n\n\tget _labels() {\n\t\treturn this._labelValues || [];\n\t}\n\n\t/**\n\t * Normalizes a new `step` property value.\n\t * If tickmarks are enabled recreates them according to it.\n\t * @private\n\t */\n\tget _effectiveStep() {\n\t\tlet step = this.step;\n\n\t\tif (step < 0) {\n\t\t\tstep = Math.abs(step);\n\t\t}\n\n\t\tif (Number.isNaN(step)) {\n\t\t\tstep = 1;\n\t\t}\n\n\t\treturn step;\n\t}\n\n\tget _effectiveMin() {\n\t\treturn Math.min(this.min, this.max);\n\t}\n\n\tget _effectiveMax() {\n\t\treturn Math.max(this.min, this.max);\n\t}\n\n\tget _tabIndex() {\n\t\treturn this.disabled ? \"-1\" : \"0\";\n\t}\n\n\tget _ariaLabelledByHandleRefs() {\n\t\treturn [`${this._id}-accName`, `${this._id}-sliderDesc`].join(\" \").trim();\n\t}\n}\n\nexport default SliderBase;\n"]}
@@ -26,5 +26,6 @@ declare class SuggestionListItem extends StandardListItem {
26
26
  get effectiveTitle(): string;
27
27
  get hasDescription(): string | number;
28
28
  get groupItem(): boolean;
29
+ get _effectiveTabIndex(): string;
29
30
  }
30
31
  export default SuggestionListItem;
@@ -22,6 +22,7 @@ let SuggestionListItem = class SuggestionListItem extends StandardListItem {
22
22
  onBeforeRendering() {
23
23
  super.onBeforeRendering();
24
24
  this.hasTitle = !!this.titleText.length;
25
+ this.accessibleRole = "option";
25
26
  }
26
27
  get effectiveTitle() {
27
28
  return this.titleText.filter(node => node.nodeType !== Node.COMMENT_NODE).map(el => el.textContent).join("");
@@ -32,6 +33,9 @@ let SuggestionListItem = class SuggestionListItem extends StandardListItem {
32
33
  get groupItem() {
33
34
  return false;
34
35
  }
36
+ get _effectiveTabIndex() {
37
+ return "-1";
38
+ }
35
39
  };
36
40
  __decorate([
37
41
  slot({ type: HTMLElement })
@@ -1 +1 @@
1
- {"version":3,"file":"SuggestionListItem.js","sourceRoot":"","sources":["../src/SuggestionListItem.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,0BAA0B,MAAM,yDAAyD,CAAC;AAEjG;;;;;;;;;GASG;AAKH,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,gBAAgB;IAiBhD,iBAAiB;QAChB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IACzC,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9G,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC;IACxD,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,KAAK,CAAC;IACd,CAAC;CACD,CAAA;AAzBA;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;2DACQ;AAOpC;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;qDACd;AAfnB,kBAAkB;IAJvB,aAAa,CAAC;QACd,GAAG,EAAE,wBAAwB;QAC7B,QAAQ,EAAE,0BAA0B;KACpC,CAAC;GACI,kBAAkB,CAiCvB;AAED,kBAAkB,CAAC,MAAM,EAAE,CAAC;AAE5B,eAAe,kBAAkB,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport StandardListItem from \"./StandardListItem.js\";\nimport SuggestionListItemTemplate from \"./generated/templates/SuggestionListItemTemplate.lit.js\";\n\n/**\n * @class\n * The `ui5-li-suggestion-item` represents the suggestion item in the `ui5-input`\n * suggestion popover.\n * @constructor\n * @extends StandardListItem\n * @csspart title - Used to style the title of the suggestion list item\n * @csspart description - Used to style the description of the suggestion list item\n * @csspart info - Used to style the info of the suggestion list item\n */\n@customElement({\n\ttag: \"ui5-li-suggestion-item\",\n\ttemplate: SuggestionListItemTemplate,\n})\nclass SuggestionListItem extends StandardListItem {\n\t/**\n\t * Defines a description that can contain HTML.\n\t * **Note:** If not specified, the `description` property will be used.\n\t * @since 1.0.0-rc.8\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\trichDescription!: Array<HTMLElement>\n\n\t/**\n\t * Defines the title text of the suggestion item.\n\t * @public\n\t */\n\t@slot({ type: Node, \"default\": true })\n\ttitleText!: Array<Node>;\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\t\tthis.hasTitle = !!this.titleText.length;\n\t}\n\n\tget effectiveTitle() {\n\t\treturn this.titleText.filter(node => node.nodeType !== Node.COMMENT_NODE).map(el => el.textContent).join(\"\");\n\t}\n\n\tget hasDescription() {\n\t\treturn this.richDescription.length || this.description;\n\t}\n\n\tget groupItem() {\n\t\treturn false;\n\t}\n}\n\nSuggestionListItem.define();\n\nexport default SuggestionListItem;\n"]}
1
+ {"version":3,"file":"SuggestionListItem.js","sourceRoot":"","sources":["../src/SuggestionListItem.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,0BAA0B,MAAM,yDAAyD,CAAC;AAEjG;;;;;;;;;GASG;AAKH,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,gBAAgB;IAiBhD,iBAAiB;QAChB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QACxC,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;IAChC,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9G,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC;IACxD,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,KAAK,CAAC;IACd,CAAC;IAED,IAAI,kBAAkB;QACrB,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAA;AA9BA;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;2DACQ;AAOpC;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;qDACd;AAfnB,kBAAkB;IAJvB,aAAa,CAAC;QACd,GAAG,EAAE,wBAAwB;QAC7B,QAAQ,EAAE,0BAA0B;KACpC,CAAC;GACI,kBAAkB,CAsCvB;AAED,kBAAkB,CAAC,MAAM,EAAE,CAAC;AAE5B,eAAe,kBAAkB,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport StandardListItem from \"./StandardListItem.js\";\nimport SuggestionListItemTemplate from \"./generated/templates/SuggestionListItemTemplate.lit.js\";\n\n/**\n * @class\n * The `ui5-li-suggestion-item` represents the suggestion item in the `ui5-input`\n * suggestion popover.\n * @constructor\n * @extends StandardListItem\n * @csspart title - Used to style the title of the suggestion list item\n * @csspart description - Used to style the description of the suggestion list item\n * @csspart info - Used to style the info of the suggestion list item\n */\n@customElement({\n\ttag: \"ui5-li-suggestion-item\",\n\ttemplate: SuggestionListItemTemplate,\n})\nclass SuggestionListItem extends StandardListItem {\n\t/**\n\t * Defines a description that can contain HTML.\n\t * **Note:** If not specified, the `description` property will be used.\n\t * @since 1.0.0-rc.8\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\trichDescription!: Array<HTMLElement>\n\n\t/**\n\t * Defines the title text of the suggestion item.\n\t * @public\n\t */\n\t@slot({ type: Node, \"default\": true })\n\ttitleText!: Array<Node>;\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\t\tthis.hasTitle = !!this.titleText.length;\n\t\tthis.accessibleRole = \"option\";\n\t}\n\n\tget effectiveTitle() {\n\t\treturn this.titleText.filter(node => node.nodeType !== Node.COMMENT_NODE).map(el => el.textContent).join(\"\");\n\t}\n\n\tget hasDescription() {\n\t\treturn this.richDescription.length || this.description;\n\t}\n\n\tget groupItem() {\n\t\treturn false;\n\t}\n\n\tget _effectiveTabIndex(): string {\n\t\treturn \"-1\";\n\t}\n}\n\nSuggestionListItem.define();\n\nexport default SuggestionListItem;\n"]}