@ui5/webcomponents 2.27.2 → 2.28.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (590) hide show
  1. package/CHANGELOG.md +47 -2
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/Avatar.d.ts +13 -7
  4. package/dist/Avatar.js +10 -6
  5. package/dist/Avatar.js.map +1 -1
  6. package/dist/AvatarGroup.d.ts +2 -2
  7. package/dist/AvatarGroup.js +3 -3
  8. package/dist/AvatarGroup.js.map +1 -1
  9. package/dist/Bar.d.ts +12 -9
  10. package/dist/Bar.js +12 -10
  11. package/dist/Bar.js.map +1 -1
  12. package/dist/Breadcrumbs.d.ts +2 -1
  13. package/dist/Breadcrumbs.js +2 -1
  14. package/dist/Breadcrumbs.js.map +1 -1
  15. package/dist/BreadcrumbsItem.d.ts +1 -1
  16. package/dist/BreadcrumbsItem.js +1 -1
  17. package/dist/BreadcrumbsItem.js.map +1 -1
  18. package/dist/BusyIndicator.d.ts +2 -2
  19. package/dist/BusyIndicator.js +1 -1
  20. package/dist/BusyIndicator.js.map +1 -1
  21. package/dist/Button.d.ts +4 -3
  22. package/dist/Button.js +3 -2
  23. package/dist/Button.js.map +1 -1
  24. package/dist/Calendar.d.ts +4 -1
  25. package/dist/Calendar.js +4 -1
  26. package/dist/Calendar.js.map +1 -1
  27. package/dist/CalendarLegend.d.ts +1 -0
  28. package/dist/CalendarLegend.js +1 -0
  29. package/dist/CalendarLegend.js.map +1 -1
  30. package/dist/Card.d.ts +4 -3
  31. package/dist/Card.js +1 -0
  32. package/dist/Card.js.map +1 -1
  33. package/dist/CardHeader.d.ts +1 -1
  34. package/dist/CardHeader.js +1 -1
  35. package/dist/CardHeader.js.map +1 -1
  36. package/dist/Carousel.d.ts +13 -13
  37. package/dist/Carousel.js +12 -12
  38. package/dist/Carousel.js.map +1 -1
  39. package/dist/CheckBox.d.ts +1 -1
  40. package/dist/CheckBox.js +1 -1
  41. package/dist/CheckBox.js.map +1 -1
  42. package/dist/ColorPalette.d.ts +9 -5
  43. package/dist/ColorPalette.js +12 -5
  44. package/dist/ColorPalette.js.map +1 -1
  45. package/dist/ColorPaletteItem.d.ts +2 -2
  46. package/dist/ColorPaletteItem.js +2 -2
  47. package/dist/ColorPaletteItem.js.map +1 -1
  48. package/dist/ColorPalettePopover.d.ts +2 -2
  49. package/dist/ColorPalettePopover.js +2 -2
  50. package/dist/ColorPalettePopover.js.map +1 -1
  51. package/dist/ColorPicker.d.ts +3 -1
  52. package/dist/ColorPicker.js +7 -1
  53. package/dist/ColorPicker.js.map +1 -1
  54. package/dist/ComboBox.d.ts +35 -7
  55. package/dist/ComboBox.js +135 -8
  56. package/dist/ComboBox.js.map +1 -1
  57. package/dist/ComboBoxItem.d.ts +1 -1
  58. package/dist/ComboBoxItem.js.map +1 -1
  59. package/dist/ComboBoxItemGroup.d.ts +1 -1
  60. package/dist/ComboBoxItemGroup.js +1 -1
  61. package/dist/ComboBoxItemGroup.js.map +1 -1
  62. package/dist/ComboBoxPopoverTemplate.js +43 -20
  63. package/dist/ComboBoxPopoverTemplate.js.map +1 -1
  64. package/dist/ComboBoxTemplate.js +4 -2
  65. package/dist/ComboBoxTemplate.js.map +1 -1
  66. package/dist/DateComponentBase.d.ts +3 -3
  67. package/dist/DateComponentBase.js +2 -2
  68. package/dist/DateComponentBase.js.map +1 -1
  69. package/dist/DatePicker.d.ts +5 -5
  70. package/dist/DatePicker.js +2 -2
  71. package/dist/DatePicker.js.map +1 -1
  72. package/dist/DateRangePicker.d.ts +1 -1
  73. package/dist/DateRangePicker.js +1 -1
  74. package/dist/DateRangePicker.js.map +1 -1
  75. package/dist/DateTimePicker.d.ts +1 -1
  76. package/dist/DateTimePicker.js +1 -1
  77. package/dist/DateTimePicker.js.map +1 -1
  78. package/dist/DayPicker.d.ts +1 -1
  79. package/dist/DayPicker.js +4 -3
  80. package/dist/DayPicker.js.map +1 -1
  81. package/dist/Dialog.d.ts +3 -3
  82. package/dist/Dialog.js +3 -3
  83. package/dist/Dialog.js.map +1 -1
  84. package/dist/FileUploader.d.ts +2 -2
  85. package/dist/FileUploader.js +1 -1
  86. package/dist/FileUploader.js.map +1 -1
  87. package/dist/Form.d.ts +2 -0
  88. package/dist/Form.js +2 -0
  89. package/dist/Form.js.map +1 -1
  90. package/dist/FormTemplate.js +2 -2
  91. package/dist/FormTemplate.js.map +1 -1
  92. package/dist/GridWalker.d.ts +1 -0
  93. package/dist/GridWalker.js +3 -0
  94. package/dist/GridWalker.js.map +1 -1
  95. package/dist/Input.d.ts +10 -6
  96. package/dist/Input.js +7 -3
  97. package/dist/Input.js.map +1 -1
  98. package/dist/InputIcon.d.ts +1 -1
  99. package/dist/InputIcon.js.map +1 -1
  100. package/dist/Link.d.ts +17 -2
  101. package/dist/Link.js +16 -1
  102. package/dist/Link.js.map +1 -1
  103. package/dist/List.d.ts +9 -6
  104. package/dist/List.js +9 -6
  105. package/dist/List.js.map +1 -1
  106. package/dist/ListItem.d.ts +1 -1
  107. package/dist/ListItem.js +1 -1
  108. package/dist/ListItem.js.map +1 -1
  109. package/dist/ListItemBase.d.ts +1 -1
  110. package/dist/ListItemBase.js +1 -1
  111. package/dist/ListItemBase.js.map +1 -1
  112. package/dist/ListItemCustom.d.ts +1 -1
  113. package/dist/ListItemCustom.js.map +1 -1
  114. package/dist/ListItemStandard.d.ts +4 -4
  115. package/dist/ListItemStandard.js +1 -1
  116. package/dist/ListItemStandard.js.map +1 -1
  117. package/dist/Menu.d.ts +3 -0
  118. package/dist/Menu.js +3 -0
  119. package/dist/Menu.js.map +1 -1
  120. package/dist/MessageStrip.d.ts +3 -3
  121. package/dist/MessageStrip.js +3 -3
  122. package/dist/MessageStrip.js.map +1 -1
  123. package/dist/MonthPicker.js +1 -1
  124. package/dist/MonthPicker.js.map +1 -1
  125. package/dist/MultiComboBox.d.ts +7 -4
  126. package/dist/MultiComboBox.js +5 -2
  127. package/dist/MultiComboBox.js.map +1 -1
  128. package/dist/MultiInput.d.ts +1 -1
  129. package/dist/MultiInput.js +1 -1
  130. package/dist/MultiInput.js.map +1 -1
  131. package/dist/{NumberInput.d.ts → NumericInput.d.ts} +10 -10
  132. package/dist/{NumberInput.js → NumericInput.js} +50 -50
  133. package/dist/NumericInput.js.map +1 -0
  134. package/dist/NumericInputTemplate.d.ts +2 -0
  135. package/dist/{NumberInputTemplate.js → NumericInputTemplate.js} +6 -6
  136. package/dist/NumericInputTemplate.js.map +1 -0
  137. package/dist/Option.d.ts +1 -1
  138. package/dist/Option.js.map +1 -1
  139. package/dist/Panel.d.ts +3 -3
  140. package/dist/Panel.js +2 -2
  141. package/dist/Panel.js.map +1 -1
  142. package/dist/Popover.d.ts +13 -2
  143. package/dist/Popover.js +50 -3
  144. package/dist/Popover.js.map +1 -1
  145. package/dist/PopoverResize.d.ts +3 -0
  146. package/dist/PopoverResize.js +53 -23
  147. package/dist/PopoverResize.js.map +1 -1
  148. package/dist/PopoverTemplate.js +3 -1
  149. package/dist/PopoverTemplate.js.map +1 -1
  150. package/dist/Popup.d.ts +2 -2
  151. package/dist/Popup.js +2 -2
  152. package/dist/Popup.js.map +1 -1
  153. package/dist/ProgressIndicator.d.ts +1 -1
  154. package/dist/ProgressIndicator.js +1 -1
  155. package/dist/ProgressIndicator.js.map +1 -1
  156. package/dist/RadioButton.d.ts +1 -1
  157. package/dist/RadioButton.js +2 -2
  158. package/dist/RadioButton.js.map +1 -1
  159. package/dist/RangeSlider.d.ts +1 -1
  160. package/dist/RangeSlider.js +5 -4
  161. package/dist/RangeSlider.js.map +1 -1
  162. package/dist/RangeSliderTemplate.js +3 -3
  163. package/dist/RangeSliderTemplate.js.map +1 -1
  164. package/dist/RatingIndicator.d.ts +5 -5
  165. package/dist/RatingIndicator.js +4 -4
  166. package/dist/RatingIndicator.js.map +1 -1
  167. package/dist/ResponsivePopover.d.ts +2 -2
  168. package/dist/ResponsivePopover.js +2 -2
  169. package/dist/ResponsivePopover.js.map +1 -1
  170. package/dist/SegmentedButton.d.ts +2 -1
  171. package/dist/SegmentedButton.js +2 -1
  172. package/dist/SegmentedButton.js.map +1 -1
  173. package/dist/SegmentedButtonItem.d.ts +1 -1
  174. package/dist/SegmentedButtonItem.js.map +1 -1
  175. package/dist/Select.d.ts +7 -4
  176. package/dist/Select.js +5 -2
  177. package/dist/Select.js.map +1 -1
  178. package/dist/Slider.d.ts +2 -1
  179. package/dist/Slider.js +5 -1
  180. package/dist/Slider.js.map +1 -1
  181. package/dist/SliderBase.d.ts +1 -0
  182. package/dist/SliderBase.js +7 -1
  183. package/dist/SliderBase.js.map +1 -1
  184. package/dist/SliderHandle.d.ts +4 -0
  185. package/dist/SliderHandle.js +7 -0
  186. package/dist/SliderHandle.js.map +1 -1
  187. package/dist/SliderScale.d.ts +4 -0
  188. package/dist/SliderScale.js +13 -0
  189. package/dist/SliderScale.js.map +1 -1
  190. package/dist/SliderScaleTemplate.js +1 -1
  191. package/dist/SliderScaleTemplate.js.map +1 -1
  192. package/dist/SliderTemplate.js +1 -1
  193. package/dist/SliderTemplate.js.map +1 -1
  194. package/dist/StepInput.d.ts +8 -7
  195. package/dist/StepInput.js +6 -2
  196. package/dist/StepInput.js.map +1 -1
  197. package/dist/StepInputTemplate.js +2 -2
  198. package/dist/StepInputTemplate.js.map +1 -1
  199. package/dist/SuggestionItem.d.ts +1 -1
  200. package/dist/SuggestionItem.js.map +1 -1
  201. package/dist/SuggestionListItem.d.ts +1 -1
  202. package/dist/SuggestionListItem.js.map +1 -1
  203. package/dist/Switch.d.ts +1 -1
  204. package/dist/Switch.js +1 -1
  205. package/dist/Switch.js.map +1 -1
  206. package/dist/Tab.d.ts +1 -1
  207. package/dist/Tab.js +1 -1
  208. package/dist/Tab.js.map +1 -1
  209. package/dist/TabContainer.d.ts +4 -2
  210. package/dist/TabContainer.js +3 -1
  211. package/dist/TabContainer.js.map +1 -1
  212. package/dist/Table.d.ts +16 -3
  213. package/dist/Table.js +40 -4
  214. package/dist/Table.js.map +1 -1
  215. package/dist/TableGrowing.d.ts +1 -0
  216. package/dist/TableGrowing.js +12 -10
  217. package/dist/TableGrowing.js.map +1 -1
  218. package/dist/TableHeaderRow.d.ts +0 -6
  219. package/dist/TableHeaderRow.js +1 -19
  220. package/dist/TableHeaderRow.js.map +1 -1
  221. package/dist/TableHeaderRowTemplate.js +2 -12
  222. package/dist/TableHeaderRowTemplate.js.map +1 -1
  223. package/dist/TableNavigation.d.ts +1 -0
  224. package/dist/TableNavigation.js +7 -2
  225. package/dist/TableNavigation.js.map +1 -1
  226. package/dist/TableRow.js +2 -11
  227. package/dist/TableRow.js.map +1 -1
  228. package/dist/TableRowBase.d.ts +3 -7
  229. package/dist/TableRowBase.js +10 -26
  230. package/dist/TableRowBase.js.map +1 -1
  231. package/dist/TableRowTemplate.js +1 -3
  232. package/dist/TableRowTemplate.js.map +1 -1
  233. package/dist/TableSelection.d.ts +5 -6
  234. package/dist/TableSelection.js +28 -12
  235. package/dist/TableSelection.js.map +1 -1
  236. package/dist/TableSelectionBase.d.ts +15 -10
  237. package/dist/TableSelectionBase.js +33 -20
  238. package/dist/TableSelectionBase.js.map +1 -1
  239. package/dist/TableSelectionMulti.d.ts +5 -7
  240. package/dist/TableSelectionMulti.js +14 -10
  241. package/dist/TableSelectionMulti.js.map +1 -1
  242. package/dist/TableSelectionSingle.d.ts +3 -2
  243. package/dist/TableSelectionSingle.js +8 -2
  244. package/dist/TableSelectionSingle.js.map +1 -1
  245. package/dist/TableUtils.d.ts +3 -1
  246. package/dist/TableUtils.js +4 -1
  247. package/dist/TableUtils.js.map +1 -1
  248. package/dist/TextArea.d.ts +52 -5
  249. package/dist/TextArea.js +67 -6
  250. package/dist/TextArea.js.map +1 -1
  251. package/dist/TextAreaTemplate.js +2 -2
  252. package/dist/TextAreaTemplate.js.map +1 -1
  253. package/dist/TimePicker.d.ts +2 -2
  254. package/dist/TimePicker.js +1 -1
  255. package/dist/TimePicker.js.map +1 -1
  256. package/dist/Toast.d.ts +1 -1
  257. package/dist/Toast.js +1 -1
  258. package/dist/Toast.js.map +1 -1
  259. package/dist/Token.d.ts +2 -2
  260. package/dist/Token.js +1 -1
  261. package/dist/Token.js.map +1 -1
  262. package/dist/Tokenizer.d.ts +1 -0
  263. package/dist/Tokenizer.js +18 -1
  264. package/dist/Tokenizer.js.map +1 -1
  265. package/dist/Toolbar.d.ts +6 -0
  266. package/dist/Toolbar.js +6 -0
  267. package/dist/Toolbar.js.map +1 -1
  268. package/dist/Tree.d.ts +3 -1
  269. package/dist/Tree.js +5 -3
  270. package/dist/Tree.js.map +1 -1
  271. package/dist/TreeItem.d.ts +2 -2
  272. package/dist/TreeItem.js +1 -1
  273. package/dist/TreeItem.js.map +1 -1
  274. package/dist/TreeItemBase.d.ts +3 -3
  275. package/dist/TreeItemBase.js +3 -3
  276. package/dist/TreeItemBase.js.map +1 -1
  277. package/dist/YearPicker.js +1 -1
  278. package/dist/YearPicker.js.map +1 -1
  279. package/dist/bundle.esm.js +1 -1
  280. package/dist/bundle.esm.js.map +1 -1
  281. package/dist/css/themes/Avatar.css +1 -1
  282. package/dist/css/themes/AvatarGroup.css +1 -1
  283. package/dist/css/themes/ComboBox.css +1 -1
  284. package/dist/css/themes/ComboBoxPopover.css +1 -1
  285. package/dist/css/themes/FileUploader.css +1 -1
  286. package/dist/css/themes/Form.css +1 -1
  287. package/dist/css/themes/FormItem.css +1 -1
  288. package/dist/css/themes/FormItemSpan.css +1 -1
  289. package/dist/css/themes/Input.css +1 -1
  290. package/dist/css/themes/MultiComboBox.css +1 -1
  291. package/dist/css/themes/NumericInput.css +1 -0
  292. package/dist/css/themes/Popover.css +1 -1
  293. package/dist/css/themes/RatingIndicator.css +1 -1
  294. package/dist/css/themes/Select.css +1 -1
  295. package/dist/css/themes/SliderHandle.css +1 -1
  296. package/dist/css/themes/SliderScale.css +1 -1
  297. package/dist/css/themes/SplitButton.css +1 -1
  298. package/dist/css/themes/TextArea.css +1 -1
  299. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -2
  300. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -2
  301. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -2
  302. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -2
  303. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  304. package/dist/css/themes/sap_horizon_auto/parameters-bundle.css +786 -513
  305. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  306. package/dist/css/themes/sap_horizon_hc_auto/parameters-bundle.css +742 -494
  307. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  308. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  309. package/dist/custom-elements-internal.json +2715 -265
  310. package/dist/custom-elements.json +2399 -103
  311. package/dist/features/ColorPaletteMoreColorsTemplate.js +1 -1
  312. package/dist/features/ColorPaletteMoreColorsTemplate.js.map +1 -1
  313. package/dist/features/ComboBoxLazyLoading.d.ts +26 -0
  314. package/dist/features/ComboBoxLazyLoading.js +48 -0
  315. package/dist/features/ComboBoxLazyLoading.js.map +1 -0
  316. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  317. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  318. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  319. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  320. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  321. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  322. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  323. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  324. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  325. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  326. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  327. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  328. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  329. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  330. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  331. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  332. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  333. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  334. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  335. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  336. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  337. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  338. package/dist/generated/assets/i18n/messagebundle_id.json +1 -1
  339. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  340. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  341. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  342. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  343. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  344. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  345. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  346. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  347. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  348. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  349. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  350. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  351. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  352. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  353. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  354. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  355. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  356. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  357. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  358. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  359. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  360. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  361. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  362. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  363. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  364. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  365. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  366. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  367. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  368. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  369. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  370. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  371. package/dist/generated/assets/themes/sap_horizon_auto/parameters-bundle.css.json +1 -1
  372. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  373. package/dist/generated/assets/themes/sap_horizon_hc_auto/parameters-bundle.css.json +1 -1
  374. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  375. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  376. package/dist/generated/i18n/i18n-defaults.d.ts +9 -1
  377. package/dist/generated/i18n/i18n-defaults.js +10 -2
  378. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  379. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  380. package/dist/generated/themes/Avatar.css.js +1 -1
  381. package/dist/generated/themes/Avatar.css.js.map +1 -1
  382. package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
  383. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  384. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  385. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  386. package/dist/generated/themes/ComboBox.css.js +1 -1
  387. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  388. package/dist/generated/themes/ComboBoxPopover.css.d.ts +1 -1
  389. package/dist/generated/themes/ComboBoxPopover.css.js +1 -1
  390. package/dist/generated/themes/ComboBoxPopover.css.js.map +1 -1
  391. package/dist/generated/themes/FileUploader.css.d.ts +1 -1
  392. package/dist/generated/themes/FileUploader.css.js +1 -1
  393. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  394. package/dist/generated/themes/Form.css.d.ts +1 -1
  395. package/dist/generated/themes/Form.css.js +1 -1
  396. package/dist/generated/themes/Form.css.js.map +1 -1
  397. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  398. package/dist/generated/themes/FormItem.css.js +1 -1
  399. package/dist/generated/themes/FormItem.css.js.map +1 -1
  400. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  401. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  402. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  403. package/dist/generated/themes/Input.css.d.ts +1 -1
  404. package/dist/generated/themes/Input.css.js +1 -1
  405. package/dist/generated/themes/Input.css.js.map +1 -1
  406. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  407. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  408. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  409. package/dist/generated/themes/NumericInput.css.d.ts +2 -0
  410. package/dist/generated/themes/NumericInput.css.js +8 -0
  411. package/dist/generated/themes/NumericInput.css.js.map +1 -0
  412. package/dist/generated/themes/Popover.css.d.ts +1 -1
  413. package/dist/generated/themes/Popover.css.js +1 -1
  414. package/dist/generated/themes/Popover.css.js.map +1 -1
  415. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  416. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  417. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  418. package/dist/generated/themes/Select.css.d.ts +1 -1
  419. package/dist/generated/themes/Select.css.js +1 -1
  420. package/dist/generated/themes/Select.css.js.map +1 -1
  421. package/dist/generated/themes/SliderHandle.css.d.ts +1 -1
  422. package/dist/generated/themes/SliderHandle.css.js +1 -1
  423. package/dist/generated/themes/SliderHandle.css.js.map +1 -1
  424. package/dist/generated/themes/SliderScale.css.d.ts +1 -1
  425. package/dist/generated/themes/SliderScale.css.js +1 -1
  426. package/dist/generated/themes/SliderScale.css.js.map +1 -1
  427. package/dist/generated/themes/SplitButton.css.d.ts +1 -1
  428. package/dist/generated/themes/SplitButton.css.js +1 -1
  429. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  430. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  431. package/dist/generated/themes/TextArea.css.js +1 -1
  432. package/dist/generated/themes/TextArea.css.js.map +1 -1
  433. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  434. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -2
  435. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  436. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  437. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -2
  438. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  439. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  440. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -2
  441. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  442. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  443. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -2
  444. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  445. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  446. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  447. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  448. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.d.ts +1 -1
  449. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js +786 -513
  450. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js.map +1 -1
  451. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  452. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  453. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  454. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.d.ts +1 -1
  455. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js +742 -494
  456. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js.map +1 -1
  457. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  458. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  459. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  460. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  461. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  462. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  463. package/dist/types/BarAccessibleRole.d.ts +2 -1
  464. package/dist/types/BarAccessibleRole.js +2 -1
  465. package/dist/types/BarAccessibleRole.js.map +1 -1
  466. package/dist/types/ButtonAccessibleRole.d.ts +1 -1
  467. package/dist/types/ButtonAccessibleRole.js +1 -1
  468. package/dist/types/ButtonAccessibleRole.js.map +1 -1
  469. package/dist/types/TableSelectionBehavior.d.ts +1 -1
  470. package/dist/types/TableSelectionBehavior.js +1 -1
  471. package/dist/types/TableSelectionBehavior.js.map +1 -1
  472. package/dist/types/TableSelectionMultiHeaderSelector.d.ts +1 -1
  473. package/dist/types/TableSelectionMultiHeaderSelector.js +1 -1
  474. package/dist/types/TableSelectionMultiHeaderSelector.js.map +1 -1
  475. package/dist/types/TextAreaCounterMode.d.ts +27 -0
  476. package/dist/types/TextAreaCounterMode.js +29 -0
  477. package/dist/types/TextAreaCounterMode.js.map +1 -0
  478. package/dist/vscode.html-custom-data.json +24 -10
  479. package/dist/web-types.json +48 -17
  480. package/package.json +9 -9
  481. package/src/ComboBoxPopoverTemplate.tsx +140 -106
  482. package/src/ComboBoxTemplate.tsx +4 -2
  483. package/src/FormTemplate.tsx +2 -2
  484. package/src/{NumberInputTemplate.tsx → NumericInputTemplate.tsx} +6 -6
  485. package/src/PopoverTemplate.tsx +19 -0
  486. package/src/RangeSliderTemplate.tsx +3 -0
  487. package/src/SliderScaleTemplate.tsx +1 -1
  488. package/src/SliderTemplate.tsx +1 -0
  489. package/src/StepInputTemplate.tsx +3 -3
  490. package/src/TableHeaderRowTemplate.tsx +1 -26
  491. package/src/TableRowTemplate.tsx +1 -9
  492. package/src/TableSelection.tsx +464 -0
  493. package/src/TableSelectionMulti.tsx +396 -0
  494. package/src/TableSelectionSingle.tsx +91 -0
  495. package/src/TextAreaTemplate.tsx +2 -2
  496. package/src/features/ColorPaletteMoreColorsTemplate.tsx +1 -1
  497. package/src/i18n/messagebundle.properties +25 -1
  498. package/src/i18n/messagebundle_ar.properties +1 -1
  499. package/src/i18n/messagebundle_bg.properties +1 -1
  500. package/src/i18n/messagebundle_ca.properties +1 -1
  501. package/src/i18n/messagebundle_cnr.properties +1 -1
  502. package/src/i18n/messagebundle_cy.properties +1 -1
  503. package/src/i18n/messagebundle_da.properties +1 -1
  504. package/src/i18n/messagebundle_de.properties +1 -1
  505. package/src/i18n/messagebundle_el.properties +1 -1
  506. package/src/i18n/messagebundle_en.properties +1 -1
  507. package/src/i18n/messagebundle_en_GB.properties +1 -1
  508. package/src/i18n/messagebundle_en_US_sappsd.properties +1 -1
  509. package/src/i18n/messagebundle_en_US_saprigi.properties +17 -1
  510. package/src/i18n/messagebundle_en_US_saptrc.properties +1 -1
  511. package/src/i18n/messagebundle_es.properties +1 -1
  512. package/src/i18n/messagebundle_es_MX.properties +1 -1
  513. package/src/i18n/messagebundle_et.properties +1 -1
  514. package/src/i18n/messagebundle_fi.properties +1 -1
  515. package/src/i18n/messagebundle_fr.properties +1 -1
  516. package/src/i18n/messagebundle_fr_CA.properties +1 -1
  517. package/src/i18n/messagebundle_hi.properties +1 -1
  518. package/src/i18n/messagebundle_hr.properties +1 -1
  519. package/src/i18n/messagebundle_hu.properties +1 -1
  520. package/src/i18n/messagebundle_id.properties +1 -1
  521. package/src/i18n/messagebundle_it.properties +1 -1
  522. package/src/i18n/messagebundle_iw.properties +1 -1
  523. package/src/i18n/messagebundle_ja.properties +1 -1
  524. package/src/i18n/messagebundle_kk.properties +1 -1
  525. package/src/i18n/messagebundle_ko.properties +1 -1
  526. package/src/i18n/messagebundle_lt.properties +1 -1
  527. package/src/i18n/messagebundle_lv.properties +1 -1
  528. package/src/i18n/messagebundle_mk.properties +1 -1
  529. package/src/i18n/messagebundle_ms.properties +1 -1
  530. package/src/i18n/messagebundle_nl.properties +1 -1
  531. package/src/i18n/messagebundle_no.properties +1 -1
  532. package/src/i18n/messagebundle_pl.properties +1 -1
  533. package/src/i18n/messagebundle_pt.properties +2 -2
  534. package/src/i18n/messagebundle_pt_PT.properties +1 -1
  535. package/src/i18n/messagebundle_ro.properties +1 -1
  536. package/src/i18n/messagebundle_ru.properties +1 -1
  537. package/src/i18n/messagebundle_sh.properties +1 -1
  538. package/src/i18n/messagebundle_sk.properties +1 -1
  539. package/src/i18n/messagebundle_sl.properties +1 -1
  540. package/src/i18n/messagebundle_sr.properties +1 -1
  541. package/src/i18n/messagebundle_sv.properties +1 -1
  542. package/src/i18n/messagebundle_th.properties +1 -1
  543. package/src/i18n/messagebundle_tr.properties +1 -1
  544. package/src/i18n/messagebundle_uk.properties +1 -1
  545. package/src/i18n/messagebundle_vi.properties +1 -1
  546. package/src/i18n/messagebundle_zh_CN.properties +1 -1
  547. package/src/i18n/messagebundle_zh_TW.properties +1 -1
  548. package/src/themes/Avatar.css +1 -0
  549. package/src/themes/AvatarGroup.css +21 -0
  550. package/src/themes/ComboBox.css +5 -0
  551. package/src/themes/ComboBoxPopover.css +6 -0
  552. package/src/themes/Form.css +5 -3
  553. package/src/themes/FormItem.css +4 -0
  554. package/src/themes/FormItemSpan.css +5 -0
  555. package/src/themes/Input.css +1 -1
  556. package/src/themes/{NumberInput.css → NumericInput.css} +63 -58
  557. package/src/themes/Popover.css +47 -14
  558. package/src/themes/RatingIndicator.css +1 -0
  559. package/src/themes/SliderHandle.css +12 -7
  560. package/src/themes/SliderScale.css +4 -2
  561. package/src/themes/SplitButton.css +4 -1
  562. package/src/themes/TextArea.css +17 -1
  563. package/src/themes/base/NumericInput-parameters.css +31 -0
  564. package/src/themes/base/Popover-parameters.css +5 -0
  565. package/src/themes/base/sizes-parameters.css +3 -3
  566. package/src/themes/sap_fiori_3/parameters-bundle.css +1 -1
  567. package/src/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  568. package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  569. package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  570. package/src/themes/sap_horizon/AvatarGroup-parameters.css +7 -19
  571. package/src/themes/sap_horizon/NumericInput-parameters.css +26 -0
  572. package/src/themes/sap_horizon/parameters-bundle.css +1 -1
  573. package/src/themes/sap_horizon_dark/NumericInput-parameters.css +26 -0
  574. package/src/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  575. package/src/themes/sap_horizon_hcb/NumericInput-parameters.css +14 -0
  576. package/src/themes/sap_horizon_hcb/parameters-bundle.css +2 -2
  577. package/src/themes/sap_horizon_hcw/NumericInput-parameters.css +14 -0
  578. package/src/themes/sap_horizon_hcw/parameters-bundle.css +2 -2
  579. package/dist/NumberInput.js.map +0 -1
  580. package/dist/NumberInputTemplate.d.ts +0 -2
  581. package/dist/NumberInputTemplate.js.map +0 -1
  582. package/dist/css/themes/NumberInput.css +0 -1
  583. package/dist/generated/themes/NumberInput.css.d.ts +0 -2
  584. package/dist/generated/themes/NumberInput.css.js +0 -8
  585. package/dist/generated/themes/NumberInput.css.js.map +0 -1
  586. package/src/themes/base/NumberInput-parameters.css +0 -31
  587. package/src/themes/sap_horizon/NumberInput-parameters.css +0 -26
  588. package/src/themes/sap_horizon_dark/NumberInput-parameters.css +0 -26
  589. package/src/themes/sap_horizon_hcb/NumberInput-parameters.css +0 -14
  590. package/src/themes/sap_horizon_hcw/NumberInput-parameters.css +0 -14
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sourceRoot":"","sources":["../src/Select.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport {\n\tisSpace,\n\tisUp,\n\tisDown,\n\tisEnter,\n\tisEscape,\n\tisHome,\n\tisEnd,\n\tisShow,\n\tisTabNext,\n\tisTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport {\n\tgetEffectiveAriaLabelText,\n\tgetAssociatedLabelForTexts,\n\tregisterUI5Element,\n\tderegisterUI5Element,\n\tgetAllAccessibleDescriptionRefTexts,\n\tgetEffectiveAriaDescriptionText,\n} from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport SelectTextSeparator from \"./types/SelectTextSeparator.js\";\nimport \"@ui5/webcomponents-icons/dist/error.js\";\nimport \"@ui5/webcomponents-icons/dist/alert.js\";\nimport \"@ui5/webcomponents-icons/dist/sys-enter-2.js\";\nimport \"@ui5/webcomponents-icons/dist/information.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type { Timeout, AriaRole } from \"@ui5/webcomponents-base/dist/types.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport List from \"./List.js\";\nimport type { ListItemClickEventDetail } from \"./List.js\";\nimport {\n\tVALUE_STATE_SUCCESS,\n\tVALUE_STATE_INFORMATION,\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n\tVALUE_STATE_TYPE_SUCCESS,\n\tVALUE_STATE_TYPE_INFORMATION,\n\tVALUE_STATE_TYPE_ERROR,\n\tVALUE_STATE_TYPE_WARNING,\n\tLIST_ITEM_POSITION,\n\tSELECT_ROLE_DESCRIPTION,\n\tSELECT_POPOVER_ACCESSIBLE_NAME_PREFIX,\n\tSELECT_LISTBOX_LABEL,\n\tSELECT_DIALOG_CANCEL_BUTTON,\n\tFORM_SELECTABLE_REQUIRED,\n\tSELECT_OPTIONS_IN_GROUPS,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport Label from \"./Label.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport Popover from \"./Popover.js\";\nimport Icon from \"./Icon.js\";\nimport Button from \"./Button.js\";\nimport type ListItemBase from \"./ListItemBase.js\";\nimport OptionGroup, { isInstanceOfOptionGroup } from \"./OptionGroup.js\";\n\n// Templates\nimport SelectTemplate from \"./SelectTemplate.js\";\n\n// Styles\nimport selectCss from \"./generated/themes/Select.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\nimport ValueStateMessageCss from \"./generated/themes/ValueStateMessage.css.js\";\nimport SelectPopoverCss from \"./generated/themes/SelectPopover.css.js\";\n\n/**\n * Interface for components that may be slotted inside `ui5-select` as options\n * @public\n */\ninterface IOption extends ListItemBase {\n\ttooltip?: string,\n\ticon?: string,\n\tvalue?: string,\n\tadditionalText?: string,\n\tfocused: boolean,\n\teffectiveDisplayText: string,\n\t_forcedSetsize?: number,\n\t_forcedPosinset?: number,\n}\n\n/**\n * Interface for group containers slotted inside `ui5-select`\n * @public\n * @since 2.27.0\n */\ninterface IOptionGroup {\n\tisOptionGroup: boolean,\n\titems: Array<IOption>,\n\theaderText?: string,\n}\n\ntype SelectChangeEventDetail = {\n\tselectedOption: IOption,\n}\ntype SelectLiveChangeEventDetail = {\n\tselectedOption: IOption,\n}\n\ntype I18nTextArg = Parameters<I18nBundle[\"getText\"]>[0];\n\nconst isPrintableCharacter = (e: KeyboardEvent) => {\n\treturn e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey;\n};\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-select` component is used to create a drop-down list.\n *\n * ### Usage\n *\n * There are two main usages of the `ui5-select>`.\n *\n * - With Option (`ui5-option`) web component:\n *\n * The available options of the Select are defined by using the Option component.\n * The Option comes with predefined design and layout, including `icon`, `text` and `additional-text`.\n *\n * - With OptionCustom (`ui5-option-custom`) web component.\n *\n * Options with custom content are defined by using the OptionCustom component.\n * The OptionCustom component comes with no predefined layout and it expects consumers to define it.\n *\n * ### Selection\n *\n * The options can be selected via user interaction (click or with the use of the Space and Enter keys)\n * and programmatically - the Select component supports two distinct selection APIs, though mixing them is not supported:\n * - The \"value\" property of the Select component\n * - The \"selected\" property on individual options\n *\n * **Note:** If the \"value\" property is set but does not match any option,\n * no option will be selected and the Select component will be displayed as empty.\n *\n * **Note:** when both \"value\" and \"selected\" are both used (although discouraged),\n * the \"value\" property will take precedence.\n *\n * ### Keyboard Handling\n *\n * The `ui5-select` provides advanced keyboard handling.\n *\n * - [F4] / [Alt] + [Up] / [Alt] + [Down] / [Space] or [Enter] - Opens/closes the drop-down.\n * - [Up] or [Down] - If the drop-down is closed - changes selection to the next or the previous option. If the drop-down is opened - moves focus to the next or the previous option.\n * - [Space], [Enter] - If the drop-down is opened - selects the focused option.\n * - [Escape] - Closes the drop-down without changing the selection.\n * - [Home] - Navigates to first option\n * - [End] - Navigates to the last option\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Select\";`\n *\n * `import \"@ui5/webcomponents/dist/Option\";`\n * `import \"@ui5/webcomponents/dist/OptionCustom\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @csspart popover - Used to style the popover element\n * @since 0.8.0\n */\n@customElement({\n\ttag: \"ui5-select\",\n\tlanguageAware: true,\n\tformAssociated: true,\n\trenderer: jsxRenderer,\n\ttemplate: SelectTemplate,\n\tstyles: [\n\t\tselectCss,\n\t\tResponsivePopoverCommonCss,\n\t\tValueStateMessageCss,\n\t\tSelectPopoverCss,\n\t],\n\tdependencies: [\n\t\tLabel,\n\t\tResponsivePopover,\n\t\tPopover,\n\t\tList,\n\t\tIcon,\n\t\tButton,\n\t\tOptionGroup,\n\t],\n})\n/**\n * Fired when the selected option changes.\n * @param {IOption} selectedOption the selected option.\n * @public\n */\n@event(\"change\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n/**\n * Fired when the user navigates through the options, but the selection is not finalized,\n * or when pressing the ESC key to revert the current selection.\n * @param {IOption} selectedOption the selected option.\n * @public\n * @since 1.17.0\n */\n@event(\"live-change\", {\n\tbubbles: true,\n})\n/**\n * Fired after the component's dropdown menu opens.\n * @public\n */\n@event(\"open\")\n\n/**\n * Fired after the component's dropdown menu closes.\n * @public\n */\n@event(\"close\")\n\n/**\n * Fired to make Angular two way data binding work properly.\n * @private\n */\n@event(\"selected-item-changed\", {\n\tbubbles: true,\n})\n\n/**\n * Fired to make Vue.js two way data binding work properly.\n * @private\n */\n@event(\"input\", {\n\tbubbles: true,\n})\n\nclass Select extends UI5Element implements IFormInputElement {\n\teventDetails!: {\n\t\t\"change\": SelectChangeEventDetail,\n\t\t\"live-change\": SelectLiveChangeEventDetail,\n\t\t\"open\": void,\n\t\t\"close\": void,\n\t\t\"selected-item-changed\": void,\n\t\t\"input\": void,\n\t}\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\t/**\n\t * Defines whether the component is in disabled state.\n\t *\n\t * **Note:** A disabled component is noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines the icon, displayed as graphical element within the component.\n\t * When set, the component will display the icon only - the selected option's text,\n\t * the Select's \"label\" slot (if present) and the dropdown arrow won't be displayed.\n\t *\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * Example:\n\t * See all the available icons within the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t *\n\t * **Note:** When using this property with a valid icon, Select will be rendered as icon only button and the label and the default arrow down won't be visible.\n\t * @default undefined\n\t * @private\n\t */\n\t@property()\n\ticon?: string;\n\n\t/**\n\t * Determines the name by which the component will be identified upon submission in an HTML form.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tname?: 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()\n\tvalueState: `${ValueState}` = \"None\";\n\n\t/**\n\t * Defines whether the component is required.\n\t * @since 1.0.0-rc.9\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\trequired = false;\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 * @since 1.21.0\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly = false;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @since 1.0.0-rc.9\n\t * @public\n\t * @default undefined\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the select.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the accessible description of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.14.0\n\t */\n\t@property()\n\taccessibleDescription?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that describe the select.\n\t * @default undefined\n\t * @public\n\t * @since 2.14.0\n\t */\n\t@property()\n\taccessibleDescriptionRef?: string;\n\n\t/**\n\t * Defines the tooltip of the select.\n\t * @default undefined\n\t * @public\n\t * @since 2.8.0\n\t */\n\t@property()\n\ttooltip?: string;\n\n\t/**\n\t * Defines the separator type for the two columns layout when Select is in read-only mode.\n\t *\n\t * @default \"Dash\"\n\t * @public\n\t * @since 2.16.0\n\t */\n\t@property()\n\ttextSeparator: `${SelectTextSeparator}` = \"Dash\";\n\n\t/**\n\t * Constantly updated value of texts collected from the associated description texts\n\t * @private\n\t */\n\t@property({ type: String, noAttribute: true })\n\t_associatedDescriptionRefTexts?: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_iconPressed = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\topened = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_listWidth = 0;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused = false;\n\n\t_selectedIndexBeforeOpen = -1;\n\t_escapePressed = false;\n\t_lastSelectedOption: IOption | null = null;;\n\t_typedChars = \"\";\n\t_typingTimeoutID?: Timeout | number;\n\tresponsivePopover!: ResponsivePopover;\n\tvalueStatePopover?: Popover;\n\n\t_valueStorage: string | undefined;\n\n\t/**\n\t * Defines the component options.\n\t *\n\t * **Note:** Only one selected option is allowed.\n\t * If more than one option is defined as selected, the last one would be considered as the selected one.\n\t *\n\t * **Note:** Use the `ui5-option` component to define the desired options.\n\t * Use the `ui5-option-group` component to group options.\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, invalidateOnChildChange: true })\n\toptions!: DefaultSlot<IOption | IOptionGroup>;\n\n\t/**\n\t * Defines the value state message that will be displayed as pop up under the component.\n\t *\n\t * **Note:** If not specified, a default text (in the respective language) will be displayed.\n\t *\n\t * **Note:** The `valueStateMessage` would be displayed,\n\t * when the component is in `Information`, `Critical` or `Negative` value state.\n\t *\n\t * **Note:** If the component has `suggestionItems`,\n\t * the `valueStateMessage` would be displayed as part of the same popover, if used on desktop, or dialog - on phone.\n\t * @public\n\t*/\n\t@slot()\n\tvalueStateMessage!: Slot<HTMLElement>;\n\n\t/**\n\t * Defines the HTML element that will be displayed in the component input part,\n\t * representing the selected option.\n\t *\n\t * **Note:** If not specified and `ui5-option-custom` is used,\n\t * either the option's `display-text` or its textContent will be displayed.\n\t *\n\t * **Note:** If not specified and `ui5-option` is used,\n\t * the option's textContent will be displayed.\n\t * @public\n\t * @since 1.17.0\n\t*/\n\t@slot()\n\tlabel!: Slot<HTMLElement>;\n\n\tget formValidityMessage() {\n\t\treturn Select.i18nBundle.getText(FORM_SELECTABLE_REQUIRED);\n\t}\n\n\tget formValidity(): ValidityStateFlags {\n\t\treturn { valueMissing: this.required && (this.selectedOption?.getAttribute(\"value\") === \"\") };\n\t}\n\n\tasync formElementAnchor() {\n\t\treturn this.getFocusDomRefAsync();\n\t}\n\n\tget formFormattedValue() {\n\t\tif (this._valueStorage !== undefined) {\n\t\t\treturn this._valueStorage;\n\t\t}\n\n\t\tconst selectedOption = this.selectedOption;\n\t\tif (selectedOption) {\n\t\t\tif (\"value\" in selectedOption && selectedOption.value !== undefined) {\n\t\t\t\treturn selectedOption.value;\n\t\t\t}\n\t\t\treturn selectedOption.hasAttribute(\"value\") ? selectedOption.getAttribute(\"value\") : selectedOption.textContent;\n\t\t}\n\t\treturn \"\";\n\t}\n\n\tonEnterDOM() {\n\t\tregisterUI5Element(this, this._updateAssociatedLabelsTexts.bind(this));\n\t}\n\n\tonExitDOM() {\n\t\tderegisterUI5Element(this);\n\t}\n\n\tget _flatOptions(): Array<IOption> {\n\t\treturn this.options.flatMap(item => {\n\t\t\tif (isInstanceOfOptionGroup(item as OptionGroup)) {\n\t\t\t\treturn (item as IOptionGroup).items;\n\t\t\t}\n\t\t\treturn item as IOption;\n\t\t});\n\t}\n\n\tget hasGroups(): boolean {\n\t\treturn this.options.some(item => isInstanceOfOptionGroup(item as OptionGroup));\n\t}\n\n\tget _groupCountMessageId(): string {\n\t\treturn `${this._id}-groupCountDesc`;\n\t}\n\n\tget _groupCountText(): string {\n\t\tconst groups = this.options.filter(item => isInstanceOfOptionGroup(item as OptionGroup)) as Array<IOptionGroup>;\n\t\treturn Select.i18nBundle.getText(SELECT_OPTIONS_IN_GROUPS, this._flatOptions.length, groups.length);\n\t}\n\n\t_applyGroupAriaPositions() {\n\t\tconst flatOptions = this._flatOptions;\n\t\tflatOptions.forEach(o => {\n\t\t\to._forcedSetsize = undefined;\n\t\t\to._forcedPosinset = undefined;\n\t\t});\n\t\tif (!this.hasGroups) {\n\t\t\treturn;\n\t\t}\n\t\tconst totalCount = flatOptions.length;\n\t\tlet globalPosition = 0;\n\t\tthis.options.forEach(item => {\n\t\t\tif (isInstanceOfOptionGroup(item as OptionGroup)) {\n\t\t\t\t(item as IOptionGroup).items.forEach(opt => {\n\t\t\t\t\topt._forcedSetsize = totalCount;\n\t\t\t\t\topt._forcedPosinset = ++globalPosition;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tglobalPosition++;\n\t\t\t}\n\t\t});\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._applySelection();\n\t\tthis._applyGroupAriaPositions();\n\t\tthis.style.setProperty(\"--_ui5-input-icons-count\", `${this.iconsCount}`);\n\t}\n\n\tonAfterRendering() {\n\t\tthis.toggleValueStatePopover(this.shouldOpenValueStateMessagePopover);\n\n\t\tif (this._isPickerOpen) {\n\t\t\tif (!this._listWidth) {\n\t\t\t\tthis._listWidth = this.responsivePopover.offsetWidth;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Selects an option, based on the Select's \"value\" property,\n\t * or the options' \"selected\" property.\n\t */\n\t_applySelection() {\n\t\t// Flow 1: \"value\" has not been used\n\t\tif (this._valueStorage === undefined) {\n\t\t\tthis._applyAutoSelection();\n\t\t\treturn;\n\t\t}\n\n\t\t// Flow 2: \"value\" has been used - select the option by value or apply auto selection\n\t\tthis._applySelectionByValue(this._valueStorage);\n\t}\n\n\t/**\n\t * Selects an option by given value.\n\t */\n\t_applySelectionByValue(value: string) {\n\t\tif (value !== (this.selectedOption?.value || this.selectedOption?.textContent)) {\n\t\t\tthis._flatOptions.forEach(option => {\n\t\t\t\toption.selected = !!((option.getAttribute(\"value\") || option.textContent) === value);\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Selects the first option if no option is selected,\n\t * or selects the last option if multiple options are selected.\n\t */\n\t_applyAutoSelection() {\n\t\tconst flatOptions = this._flatOptions;\n\t\tlet selectedIndex = flatOptions.findLastIndex(option => option.selected);\n\t\tselectedIndex = selectedIndex === -1 ? 0 : selectedIndex;\n\t\tfor (let i = 0; i < flatOptions.length; i++) {\n\t\t\tflatOptions[i].selected = selectedIndex === i;\n\t\t\tif (selectedIndex === i) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Sets value by given option.\n\t */\n\t_setValueByOption(option: IOption) {\n\t\tthis.value = option.value || option.textContent || \"\";\n\t}\n\n\t_applyFocus() {\n\t\tthis.focus();\n\t}\n\n\t_onfocusin() {\n\t\tthis.focused = true;\n\t}\n\n\t_onfocusout() {\n\t\tthis.focused = false;\n\t}\n\n\tget _isPickerOpen() {\n\t\treturn !!this.responsivePopover && this.responsivePopover.open;\n\t}\n\n\t_respPopover() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\t/**\n\t * Defines the value of the component:\n\t *\n\t * - when get - returns the value of the component or the value/text content of the selected option.\n\t * - when set - selects the option with matching `value` property or text content.\n\t *\n\t * **Note:** Use either the Select's value or the Options' selected property.\n\t * Mixed usage could result in unexpected behavior.\n\t *\n\t * **Note:** If the given value does not match any existing option,\n\t * no option will be selected and the Select component will be displayed as empty.\n\t * @public\n\t * @default \"\"\n\t * @since 1.20.0\n\t * @formProperty\n\t * @formEvents change liveChange\n\t */\n\t@property()\n\tset value(newValue: string) {\n\t\tthis._valueStorage = newValue;\n\t}\n\n\tget value(): string {\n\t\tif (this._valueStorage !== undefined) {\n\t\t\treturn this._valueStorage;\n\t\t}\n\t\treturn this.selectedOption?.value === undefined ? (this.selectedOption?.textContent || \"\") : this.selectedOption?.value;\n\t}\n\n\tget _selectedIndex() {\n\t\treturn this._flatOptions.findIndex(option => option.selected);\n\t}\n\n\t/**\n\t * Currently selected `ui5-option` element.\n\t * @public\n\t * @default undefined\n\t */\n\tget selectedOption(): IOption | undefined {\n\t\treturn this._flatOptions.find(option => option.selected);\n\t}\n\n\t/**\n\t * Helper function to build display text with separator when additional text exists\n\t * @param mainText - The main text content\n\t * @param additionalText - The additional text (optional)\n\t * @returns The combined text with separator if additionalText exists, otherwise just mainText\n\t * @private\n\t */\n\t_buildDisplayText(mainText: string, additionalText?: string) {\n\t\tif (!additionalText) {\n\t\t\treturn mainText;\n\t\t}\n\n\t\treturn `${mainText} ${this._separatorSymbol} ${additionalText}`;\n\t}\n\n\tget text(): string {\n\t\tconst selectedOption = this.selectedOption;\n\t\tif (!selectedOption) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\t// Only show separator when readonly and there's additional text\n\t\tif (this.readonly && selectedOption.additionalText) {\n\t\t\treturn this._buildDisplayText(\n\t\t\t\tselectedOption.effectiveDisplayText,\n\t\t\t\tselectedOption.additionalText,\n\t\t\t);\n\t\t}\n\n\t\treturn selectedOption.effectiveDisplayText;\n\t}\n\n\tget _effectiveTooltip(): string | undefined {\n\t\t// User-defined tooltip takes precedence\n\t\tif (this.tooltip) {\n\t\t\treturn this.tooltip;\n\t\t}\n\n\t\t// Provide default tooltip for readonly mode to show full content\n\t\tif (this.readonly) {\n\t\t\tconst selectedOption = this.selectedOption;\n\t\t\tif (!selectedOption) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\t// Use textContent for tooltip to show actual text content, not display text\n\t\t\tconst mainText = selectedOption.textContent || \"\";\n\t\t\treturn this._buildDisplayText(mainText, selectedOption.additionalText);\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget _separatorSymbol(): string {\n\t\tswitch (this.textSeparator) {\n\t\tcase SelectTextSeparator.Bullet:\n\t\t\treturn \"·\"; // Middle dot (U+00B7)\n\t\tcase SelectTextSeparator.VerticalLine:\n\t\t\treturn \"|\"; // Vertical line (U+007C)\n\t\tcase SelectTextSeparator.Dash:\n\t\tdefault:\n\t\t\treturn \"–\"; // En dash (U+2013)\n\t\t}\n\t}\n\n\t_toggleRespPopover() {\n\t\tif (this.disabled || this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._iconPressed = true;\n\n\t\tthis.responsivePopover = this._respPopover();\n\t\tif (this._isPickerOpen) {\n\t\t\tthis.responsivePopover.open = false;\n\t\t} else {\n\t\t\tthis.responsivePopover.opener = this;\n\t\t\tthis.responsivePopover.open = true;\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst isTab = (isTabNext(e) || isTabPrevious(e));\n\n\t\tif (isTab && this._isPickerOpen) {\n\t\t\tthis.responsivePopover.open = false;\n\t\t} else if (isShow(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._toggleRespPopover();\n\t\t} else if (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t} else if (isEscape(e) && this._isPickerOpen) {\n\t\t\tthis._escapePressed = true;\n\t\t} else if (isHome(e)) {\n\t\t\tthis._handleHomeKey(e);\n\t\t} else if (isEnd(e)) {\n\t\t\tthis._handleEndKey(e);\n\t\t// When focus is on the list item, Enter triggers _handleItemPress via the List item-click\n\t\t// event, which already calls _handleSelectionChange and prevents default.\n\t\t// Skip here to avoid a double selection change.\n\t\t} else if (isEnter(e) && !e.defaultPrevented) {\n\t\t\tthis._handleSelectionChange();\n\t\t} else if (isUp(e) || isDown(e)) {\n\t\t\tthis._handleArrowNavigation(e);\n\t\t} else if (isPrintableCharacter(e)) {\n\t\t\tthis._handleKeyboardNavigation(e);\n\t\t}\n\t}\n\n\t_handleKeyboardNavigation(e: KeyboardEvent) {\n\t\tif (this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst typedCharacter = e.key.toLowerCase();\n\n\t\tthis._typedChars += typedCharacter;\n\n\t\t// We check if we have more than one characters and they are all duplicate, we set the\n\t\t// text to be the last input character (typedCharacter). If not, we set the text to be\n\t\t// the whole input string.\n\n\t\tconst text = (/^(.)\\1+$/i).test(this._typedChars) ? typedCharacter : this._typedChars;\n\n\t\tclearTimeout(this._typingTimeoutID);\n\n\t\tthis._typingTimeoutID = setTimeout(() => {\n\t\t\tthis._typedChars = \"\";\n\t\t\tthis._typingTimeoutID = -1;\n\t\t}, 1000);\n\n\t\tthis._selectTypedItem(text);\n\t}\n\n\t_selectTypedItem(text: string) {\n\t\tconst currentIndex = this._selectedIndex;\n\t\tconst itemToSelect = this._searchNextItemByText(text);\n\n\t\tif (itemToSelect) {\n\t\t\tconst nextIndex = this._flatOptions.indexOf(itemToSelect);\n\n\t\t\tthis._changeSelectedItem(this._selectedIndex, nextIndex);\n\n\t\t\tif (currentIndex !== this._selectedIndex) {\n\t\t\t\tthis.itemSelectionAnnounce();\n\t\t\t\tthis._scrollSelectedItem();\n\t\t\t}\n\t\t}\n\t}\n\n\t_searchNextItemByText(text: string) {\n\t\tlet orderedOptions = this._flatOptions.slice(0);\n\t\tconst optionsAfterSelected = orderedOptions.splice(this._selectedIndex + 1, orderedOptions.length - this._selectedIndex);\n\t\tconst optionsBeforeSelected = orderedOptions.splice(0, orderedOptions.length - 1);\n\n\t\torderedOptions = optionsAfterSelected.concat(optionsBeforeSelected);\n\n\t\treturn orderedOptions.find(option => option.effectiveDisplayText.toLowerCase().startsWith(text));\n\t}\n\n\t_handleHomeKey(e: KeyboardEvent) {\n\t\te.preventDefault();\n\n\t\tif (this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._changeSelectedItem(this._selectedIndex, 0);\n\t}\n\n\t_handleEndKey(e: KeyboardEvent) {\n\t\te.preventDefault();\n\n\t\tif (this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lastIndex = this._flatOptions.length - 1;\n\t\tthis._changeSelectedItem(this._selectedIndex, lastIndex);\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tif (this._isPickerOpen) {\n\t\t\t\tthis._handleSelectionChange();\n\t\t\t} else {\n\t\t\t\tthis._toggleRespPopover();\n\t\t\t}\n\t\t}\n\t}\n\n\t_getItemIndex(item: IOption) {\n\t\treturn this._flatOptions.indexOf(item);\n\t}\n\n\t_select(index: number) {\n\t\tconst selectedIndex = this._selectedIndex;\n\t\tconst flatOptions = this._flatOptions;\n\t\tif (index < 0 || index >= flatOptions.length || flatOptions.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tif (flatOptions[selectedIndex]) {\n\t\t\tflatOptions[selectedIndex].selected = false;\n\t\t}\n\n\t\tconst selectedOption = flatOptions[index];\n\t\tif (selectedIndex !== index) {\n\t\t\tthis.fireDecoratorEvent(\"live-change\", { selectedOption });\n\t\t}\n\n\t\tselectedOption.selected = true;\n\t\tif (this._valueStorage !== undefined) {\n\t\t\tthis._setValueByOption(selectedOption);\n\t\t}\n\t}\n\n\t/**\n\t * The user clicked on an item from the list\n\t * @private\n\t */\n\t_handleItemPress(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst listItem = e.detail.item;\n\t\tconst selectedItemIndex = this._getItemIndex(listItem as IOption);\n\n\t\tthis._handleSelectionChange(selectedItemIndex);\n\t}\n\n\t_itemMousedown(e: MouseEvent) {\n\t\t// prevent actual focus of items\n\t\te.preventDefault();\n\t}\n\n\t_onclick() {\n\t\tthis.getFocusDomRef()!.focus();\n\t\tthis._toggleRespPopover();\n\t}\n\n\t/**\n\t * The user selected an item with Enter or Space\n\t * @private\n\t */\n\t_handleSelectionChange(index = this._selectedIndex) {\n\t\tthis._typedChars = \"\";\n\n\t\tthis._select(index);\n\n\t\tthis._toggleRespPopover();\n\t}\n\n\t_scrollSelectedItem() {\n\t\tif (this._isPickerOpen) {\n\t\t\tconst itemRef = this._currentlySelectedOption?.getDomRef();\n\t\t\tif (itemRef) {\n\t\t\t\titemRef.scrollIntoView({\n\t\t\t\t\tbehavior: \"auto\",\n\t\t\t\t\tblock: \"nearest\",\n\t\t\t\t\tinline: \"nearest\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleArrowNavigation(e: KeyboardEvent) {\n\t\te.preventDefault();\n\n\t\tif (this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet nextIndex = -1;\n\t\tconst currentIndex = this._selectedIndex;\n\t\tconst isDownKey = isDown(e);\n\n\t\tif (isDownKey) {\n\t\t\tnextIndex = this._getNextOptionIndex();\n\t\t} else {\n\t\t\tnextIndex = this._getPreviousOptionIndex();\n\t\t}\n\n\t\tthis._changeSelectedItem(this._selectedIndex, nextIndex);\n\n\t\tif (currentIndex !== this._selectedIndex) {\n\t\t\t// Announce new item even if picker is opened.\n\t\t\t// The aria-activedescendents attribute can't be used,\n\t\t\t// because listitem elements are in different shadow dom\n\t\t\tthis.itemSelectionAnnounce();\n\t\t\tthis._scrollSelectedItem();\n\t\t}\n\t}\n\n\t_changeSelectedItem(oldIndex: number, newIndex: number) {\n\t\tconst options: Array<IOption> = this._flatOptions;\n\n\t\t// Normalize: first navigation with Up when nothing selected -> last item\n\t\tif (oldIndex === -1 && newIndex < 0 && options.length) {\n\t\t\tnewIndex = options.length - 1;\n\t\t}\n\n\t\t// Abort on invalid target\n\t\tif (newIndex < 0 || newIndex >= options.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst previousOption = options[oldIndex];\n\t\tconst nextOption = options[newIndex];\n\n\t\tif (previousOption === nextOption) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (previousOption) {\n\t\t\tpreviousOption.selected = false;\n\t\t\tpreviousOption.focused = false;\n\t\t}\n\n\t\tnextOption.selected = true;\n\t\tnextOption.focused = true;\n\n\t\tif (this._valueStorage !== undefined) {\n\t\t\tthis._setValueByOption(nextOption);\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"live-change\", { selectedOption: nextOption });\n\n\t\tif (!this._isPickerOpen) {\n\t\t\t// arrow pressed on closed picker - do selection change\n\t\t\tthis._fireChangeEvent(nextOption);\n\t\t}\n\t}\n\n\t_getNextOptionIndex() {\n\t\treturn this._selectedIndex === (this._flatOptions.length - 1) ? this._selectedIndex : (this._selectedIndex + 1);\n\t}\n\n\t_getPreviousOptionIndex() {\n\t\treturn this._selectedIndex === 0 ? this._selectedIndex : (this._selectedIndex - 1);\n\t}\n\n\t_beforeOpen() {\n\t\tthis._selectedIndexBeforeOpen = this._selectedIndex;\n\t\tthis._lastSelectedOption = this._flatOptions[this._selectedIndex];\n\t}\n\n\t_afterOpen() {\n\t\tthis.opened = true;\n\t\tthis.fireDecoratorEvent(\"open\");\n\t\tthis.itemSelectionAnnounce();\n\t\tthis._scrollSelectedItem();\n\t\tthis._applyFocusToSelectedItem();\n\t}\n\n\t_applyFocusToSelectedItem() {\n\t\tconst flatOptions = this._flatOptions;\n\t\tflatOptions.forEach(option => {\n\t\t\toption.focused = option.selected;\n\t\t\tif (option.focused) {\n\t\t\t\t// move focus to the selected option so screen readers\n\t\t\t\t// can announce it when the popover opens\n\t\t\t\toption.focus();\n\t\t\t}\n\t\t});\n\t}\n\n\t_afterClose() {\n\t\tthis.opened = false;\n\t\tthis._iconPressed = false;\n\t\tthis._listWidth = 0;\n\n\t\tif (this._escapePressed) {\n\t\t\tthis._select(this._selectedIndexBeforeOpen);\n\t\t\tthis._escapePressed = false;\n\t\t} else if (this._lastSelectedOption !== this._flatOptions[this._selectedIndex]) {\n\t\t\tthis._fireChangeEvent(this._flatOptions[this._selectedIndex]);\n\t\t\tthis._lastSelectedOption = this._flatOptions[this._selectedIndex];\n\t\t}\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\tget hasCustomLabel() {\n\t\treturn !!this.label.length;\n\t}\n\n\t_fireChangeEvent(selectedOption: IOption) {\n\t\tconst changePrevented = !this.fireDecoratorEvent(\"change\", { selectedOption });\n\n\t\t// Angular two way data binding\n\t\tthis.fireDecoratorEvent(\"selected-item-changed\");\n\n\t\t// Fire input event for Vue.js two-way binding\n\t\tthis.fireDecoratorEvent(\"input\");\n\n\t\tif (changePrevented) {\n\t\t\tthis._select(this._selectedIndexBeforeOpen);\n\t\t}\n\t}\n\n\tget valueStateTextMappings() {\n\t\treturn {\n\t\t\t[ValueState.Positive]: Select.i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t\t[ValueState.Information]: Select.i18nBundle.getText(VALUE_STATE_INFORMATION),\n\t\t\t[ValueState.Negative]: Select.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t[ValueState.Critical]: Select.i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t};\n\t}\n\n\tget valueStateTypeMappings() {\n\t\treturn {\n\t\t\t[ValueState.Positive]: Select.i18nBundle.getText(VALUE_STATE_TYPE_SUCCESS),\n\t\t\t[ValueState.Information]: Select.i18nBundle.getText(VALUE_STATE_TYPE_INFORMATION),\n\t\t\t[ValueState.Negative]: Select.i18nBundle.getText(VALUE_STATE_TYPE_ERROR),\n\t\t\t[ValueState.Critical]: Select.i18nBundle.getText(VALUE_STATE_TYPE_WARNING),\n\t\t};\n\t}\n\n\tget valueStateText() {\n\t\tlet valueStateText;\n\n\t\tif (this.shouldDisplayDefaultValueStateMessage) {\n\t\t\tvalueStateText = this.valueStateDefaultText;\n\t\t} else {\n\t\t\tvalueStateText = this.valueStateMessage.map(el => el.textContent).join(\" \");\n\t\t}\n\n\t\treturn `${this.valueStateTypeText} ${valueStateText}`;\n\t}\n\n\tget valueStateDefaultText() {\n\t\treturn this.valueState !== ValueState.None ? this.valueStateTextMappings[this.valueState] : \"\";\n\t}\n\n\tget valueStateTypeText() {\n\t\treturn this.valueState !== ValueState.None ? this.valueStateTypeMappings[this.valueState] : \"\";\n\t}\n\n\tget hasValueState() {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget valueStateTextId() {\n\t\treturn this.hasValueState ? `${this._id}-valueStateDesc` : undefined;\n\t}\n\n\tget responsivePopoverId() {\n\t\treturn `${this._id}-popover`;\n\t}\n\n\tget isDisabled() {\n\t\treturn this.disabled || undefined;\n\t}\n\n\tget _headerTitleText() {\n\t\treturn Select.i18nBundle.getText(SELECT_LISTBOX_LABEL as I18nTextArg);\n\t}\n\n\tget _cancelButtonText() {\n\t\treturn Select.i18nBundle.getText(SELECT_DIALOG_CANCEL_BUTTON);\n\t}\n\n\tget _currentlySelectedOption() {\n\t\treturn this._flatOptions[this._selectedIndex];\n\t}\n\n\tget _effectiveTabIndex() {\n\t\treturn this.disabled\n\t\t|| (this.responsivePopover // Handles focus on Tab/Shift + Tab when the popover is opened\n\t\t&& this.responsivePopover.open) ? -1 : 0;\n\t}\n\n\t /**\n\t * This method is relevant for sap_horizon theme only\n\t */\n\tget _valueStateMessageInputIcon() {\n\t\tconst iconPerValueState = {\n\t\t\tNegative: \"error\",\n\t\t\tCritical: \"alert\",\n\t\t\tPositive: \"sys-enter-2\",\n\t\t\tInformation: \"information\",\n\t\t};\n\n\t\treturn this.valueState !== ValueState.None ? iconPerValueState[this.valueState] : \"\";\n\t}\n\n\tget iconsCount(): number {\n\t\treturn this.selectedOptionIcon ? 2 : 1;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tpopoverValueState: {\n\t\t\t\t\"ui5-valuestatemessage-root\": true,\n\t\t\t\t\"ui5-valuestatemessage-header\": !this._isPhone,\n\t\t\t\t\"ui5-valuestatemessage--success\": this.valueState === ValueState.Positive,\n\t\t\t\t\"ui5-valuestatemessage--error\": this.valueState === ValueState.Negative,\n\t\t\t\t\"ui5-valuestatemessage--warning\": this.valueState === ValueState.Critical,\n\t\t\t\t\"ui5-valuestatemessage--information\": this.valueState === ValueState.Information,\n\t\t\t},\n\t\t\tpopover: {\n\t\t\t\t\"ui5-select-popover-valuestate\": this.hasValueState,\n\t\t\t},\n\t\t};\n\t}\n\n\tget styles() {\n\t\tconst remSizeInPx = parseInt(getComputedStyle(document.documentElement).fontSize);\n\t\tconst flatOptionsCount = this._flatOptions.length;\n\t\treturn {\n\t\t\tpopoverHeader: {\n\t\t\t\t\"display\": \"block\",\n\t\t\t},\n\t\t\tresponsivePopoverHeader: {\n\t\t\t\t\"display\": flatOptionsCount && this._listWidth === 0 ? \"none\" : \"inline-block\",\n\t\t\t\t\"width\": `${flatOptionsCount ? this._listWidth : this.offsetWidth}px`,\n\t\t\t\t\"max-width\": \"100%\",\n\t\t\t},\n\t\t\tresponsivePopover: {\n\t\t\t\t\"min-width\": `${this.offsetWidth}px`,\n\t\t\t\t\"max-width\": (this.offsetWidth / remSizeInPx) > 40 ? `${this.offsetWidth}px` : \"40rem\",\n\t\t\t\t\"margin-top\": \"var(--sapField_BorderWidth)\",\n\t\t\t},\n\t\t};\n\t}\n\n\tget ariaLabelText() {\n\t\treturn getEffectiveAriaLabelText(this) || getAssociatedLabelForTexts(this);\n\t}\n\n\tget _effectiveListAccessibleName() {\n\t\treturn this.ariaLabelText || this._headerTitleText;\n\t}\n\n\tget _effectivePopoverAccessibleName() {\n\t\tconst fieldName = this._effectiveListAccessibleName;\n\t\tif (!fieldName) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst prefix = Select.i18nBundle.getText(SELECT_POPOVER_ACCESSIBLE_NAME_PREFIX as I18nTextArg);\n\t\treturn `${prefix} ${fieldName}`;\n\t}\n\n\tget shouldDisplayDefaultValueStateMessage() {\n\t\treturn !this.valueStateMessage.length && this.hasValueStateText;\n\t}\n\n\tget hasValueStateText() {\n\t\treturn this.hasValueState && this.valueState !== ValueState.Positive;\n\t}\n\n\tget shouldOpenValueStateMessagePopover() {\n\t\treturn this.focused && this.hasValueStateText && !this._iconPressed\n\t\t\t&& !this._isPickerOpen && !this._isPhone;\n\t}\n\n\tget _ariaRoleDescription() {\n\t\treturn Select.i18nBundle.getText(SELECT_ROLE_DESCRIPTION);\n\t}\n\n\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\titemSelectionAnnounce() {\n\t\tlet text;\n\t\tconst optionsCount = this._flatOptions.length;\n\t\tconst itemPositionText = Select.i18nBundle.getText(LIST_ITEM_POSITION, this._selectedIndex + 1, optionsCount);\n\n\t\tif (this.focused && this._currentlySelectedOption) {\n\t\t\ttext = `${this._currentlySelectedOption.textContent as string} ${this._isPickerOpen ? itemPositionText : \"\"}`;\n\n\t\t\tannounce(text, InvisibleMessageMode.Polite);\n\t\t}\n\t}\n\n\topenValueStatePopover() {\n\t\tthis.valueStatePopover = this._getPopover() as Popover;\n\t\tif (this.valueStatePopover) {\n\t\t\tthis.valueStatePopover.opener = this;\n\t\t\tthis.valueStatePopover.open = true;\n\t\t}\n\t}\n\n\tcloseValueStatePopover() {\n\t\tthis.valueStatePopover && (this.valueStatePopover.open = false);\n\t}\n\n\ttoggleValueStatePopover(open: boolean) {\n\t\tif (open) {\n\t\t\tthis.openValueStatePopover();\n\t\t} else {\n\t\t\tthis.closeValueStatePopover();\n\t\t}\n\t}\n\n\tget selectedOptionIcon() {\n\t\treturn this.selectedOption && this.selectedOption.icon;\n\t}\n\n\tget ariaDescriptionText() {\n\t\treturn this._associatedDescriptionRefTexts || getEffectiveAriaDescriptionText(this);\n\t}\n\n\tget ariaDescriptionTextId() {\n\t\treturn this.ariaDescriptionText ? \"accessibleDescription\" : \"\";\n\t}\n\n\tget ariaDescribedByIds() {\n\t\tconst ids = [\n\t\t\tthis.valueStateTextId,\n\t\t\tthis.ariaDescriptionTextId,\n\t\t\tthis.hasGroups ? this._groupCountMessageId : undefined,\n\t\t].filter(Boolean);\n\t\treturn ids.length ? ids.join(\" \") : undefined;\n\t}\n\n\tget accessibilityInfo() {\n\t\treturn {\n\t\t\trole: \"combobox\" as AriaRole,\n\t\t\ttype: this._ariaRoleDescription,\n\t\t\tdescription: this.text,\n\t\t\tlabel: this.ariaLabelText,\n\t\t\treadonly: this.readonly,\n\t\t\trequired: this.required,\n\t\t\tdisabled: this.disabled,\n\t\t};\n\t}\n\n\t_updateAssociatedLabelsTexts() {\n\t\tthis._associatedDescriptionRefTexts = getAllAccessibleDescriptionRefTexts(this);\n\t}\n\n\t_getPopover() {\n\t\treturn this.shadowRoot!.querySelector<Popover>(\"[ui5-popover]\");\n\t}\n}\n\nSelect.define();\n\nexport default Select;\nexport type {\n\tIOption,\n\tIOptionGroup,\n\tSelectChangeEventDetail,\n\tSelectLiveChangeEventDetail,\n};\n"]}
1
+ {"version":3,"file":"Select.js","sourceRoot":"","sources":["../src/Select.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport {\n\tisSpace,\n\tisUp,\n\tisDown,\n\tisEnter,\n\tisEscape,\n\tisHome,\n\tisEnd,\n\tisShow,\n\tisTabNext,\n\tisTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport {\n\tgetEffectiveAriaLabelText,\n\tgetAssociatedLabelForTexts,\n\tregisterUI5Element,\n\tderegisterUI5Element,\n\tgetAllAccessibleDescriptionRefTexts,\n\tgetEffectiveAriaDescriptionText,\n} from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport SelectTextSeparator from \"./types/SelectTextSeparator.js\";\nimport \"@ui5/webcomponents-icons/dist/error.js\";\nimport \"@ui5/webcomponents-icons/dist/alert.js\";\nimport \"@ui5/webcomponents-icons/dist/sys-enter-2.js\";\nimport \"@ui5/webcomponents-icons/dist/information.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type { Timeout, AriaRole } from \"@ui5/webcomponents-base/dist/types.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport List from \"./List.js\";\nimport type { ListItemClickEventDetail } from \"./List.js\";\nimport {\n\tVALUE_STATE_SUCCESS,\n\tVALUE_STATE_INFORMATION,\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n\tVALUE_STATE_TYPE_SUCCESS,\n\tVALUE_STATE_TYPE_INFORMATION,\n\tVALUE_STATE_TYPE_ERROR,\n\tVALUE_STATE_TYPE_WARNING,\n\tLIST_ITEM_POSITION,\n\tSELECT_ROLE_DESCRIPTION,\n\tSELECT_POPOVER_ACCESSIBLE_NAME_PREFIX,\n\tSELECT_LISTBOX_LABEL,\n\tSELECT_DIALOG_CANCEL_BUTTON,\n\tFORM_SELECTABLE_REQUIRED,\n\tSELECT_OPTIONS_IN_GROUPS,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport Label from \"./Label.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport Popover from \"./Popover.js\";\nimport Icon from \"./Icon.js\";\nimport Button from \"./Button.js\";\nimport type ListItemBase from \"./ListItemBase.js\";\nimport OptionGroup, { isInstanceOfOptionGroup } from \"./OptionGroup.js\";\n\n// Templates\nimport SelectTemplate from \"./SelectTemplate.js\";\n\n// Styles\nimport selectCss from \"./generated/themes/Select.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\nimport ValueStateMessageCss from \"./generated/themes/ValueStateMessage.css.js\";\nimport SelectPopoverCss from \"./generated/themes/SelectPopover.css.js\";\n\n/**\n * Interface for components that may be slotted inside `ui5-select` as options\n * @public\n */\ninterface IOption extends ListItemBase {\n\ttooltip?: string,\n\ticon?: string,\n\tvalue?: string,\n\tadditionalText?: string,\n\tfocused: boolean,\n\teffectiveDisplayText: string,\n\t_forcedSetsize?: number,\n\t_forcedPosinset?: number,\n}\n\n/**\n * Interface for group containers slotted inside `ui5-select`\n * @public\n * @since 2.27.0\n */\ninterface IOptionGroup {\n\tisOptionGroup: boolean,\n\titems: Array<IOption>,\n\theaderText?: string,\n}\n\ntype SelectChangeEventDetail = {\n\tselectedOption: IOption,\n}\ntype SelectLiveChangeEventDetail = {\n\tselectedOption: IOption,\n}\n\ntype I18nTextArg = Parameters<I18nBundle[\"getText\"]>[0];\n\nconst isPrintableCharacter = (e: KeyboardEvent) => {\n\treturn e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey;\n};\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-select` component is used to create a drop-down list.\n *\n * ### Usage\n *\n * There are two main usages of the `ui5-select>`.\n *\n * - With Option (`ui5-option`) web component:\n *\n * The available options of the Select are defined by using the Option component.\n * The Option comes with predefined design and layout, including `icon`, `text` and `additional-text`.\n *\n * - With OptionCustom (`ui5-option-custom`) web component.\n *\n * Options with custom content are defined by using the OptionCustom component.\n * The OptionCustom component comes with no predefined layout and it expects consumers to define it.\n *\n * ### Selection\n *\n * The options can be selected via user interaction (click or with the use of the Space and Enter keys)\n * and programmatically - the Select component supports two distinct selection APIs, though mixing them is not supported:\n * - The \"value\" property of the Select component\n * - The \"selected\" property on individual options\n *\n * **Note:** If the \"value\" property is set but does not match any option,\n * no option will be selected and the Select component will be displayed as empty.\n *\n * **Note:** when both \"value\" and \"selected\" are both used (although discouraged),\n * the \"value\" property will take precedence.\n *\n * ### Keyboard Handling\n *\n * The `ui5-select` provides advanced keyboard handling.\n *\n * - [F4] / [Alt] + [Up] / [Alt] + [Down] / [Space] or [Enter] - Opens/closes the drop-down.\n * - [Up] or [Down] - If the drop-down is closed - changes selection to the next or the previous option. If the drop-down is opened - moves focus to the next or the previous option.\n * - [Space], [Enter] - If the drop-down is opened - selects the focused option.\n * - [Escape] - Closes the drop-down without changing the selection.\n * - [Home] - Navigates to first option\n * - [End] - Navigates to the last option\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Select\";`\n *\n * `import \"@ui5/webcomponents/dist/Option\";`\n * `import \"@ui5/webcomponents/dist/OptionCustom\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @csspart popover - Used to style the popover element\n * @since 1.0.0\n * @ui5subcomponent Option\n * @ui5subcomponent OptionCustom\n * @ui5subcomponent OptionGroup\n */\n@customElement({\n\ttag: \"ui5-select\",\n\tlanguageAware: true,\n\tformAssociated: true,\n\trenderer: jsxRenderer,\n\ttemplate: SelectTemplate,\n\tstyles: [\n\t\tselectCss,\n\t\tResponsivePopoverCommonCss,\n\t\tValueStateMessageCss,\n\t\tSelectPopoverCss,\n\t],\n\tdependencies: [\n\t\tLabel,\n\t\tResponsivePopover,\n\t\tPopover,\n\t\tList,\n\t\tIcon,\n\t\tButton,\n\t\tOptionGroup,\n\t],\n})\n/**\n * Fired when the selected option changes.\n * @param {IOption} selectedOption the selected option.\n * @public\n */\n@event(\"change\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n/**\n * Fired when the user navigates through the options, but the selection is not finalized,\n * or when pressing the ESC key to revert the current selection.\n * @param {IOption} selectedOption the selected option.\n * @public\n * @since 1.17.0\n */\n@event(\"live-change\", {\n\tbubbles: true,\n})\n/**\n * Fired after the component's dropdown menu opens.\n * @public\n */\n@event(\"open\")\n\n/**\n * Fired after the component's dropdown menu closes.\n * @public\n */\n@event(\"close\")\n\n/**\n * Fired to make Angular two way data binding work properly.\n * @private\n */\n@event(\"selected-item-changed\", {\n\tbubbles: true,\n})\n\n/**\n * Fired to make Vue.js two way data binding work properly.\n * @private\n */\n@event(\"input\", {\n\tbubbles: true,\n})\n\nclass Select extends UI5Element implements IFormInputElement {\n\teventDetails!: {\n\t\t\"change\": SelectChangeEventDetail,\n\t\t\"live-change\": SelectLiveChangeEventDetail,\n\t\t\"open\": void,\n\t\t\"close\": void,\n\t\t\"selected-item-changed\": void,\n\t\t\"input\": void,\n\t}\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\t/**\n\t * Defines whether the component is in disabled state.\n\t *\n\t * **Note:** A disabled component is noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines the icon, displayed as graphical element within the component.\n\t * When set, the component will display the icon only - the selected option's text,\n\t * the Select's \"label\" slot (if present) and the dropdown arrow won't be displayed.\n\t *\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * Example:\n\t * See all the available icons within the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t *\n\t * **Note:** When using this property with a valid icon, Select will be rendered as icon only button and the label and the default arrow down won't be visible.\n\t * @default undefined\n\t * @private\n\t */\n\t@property()\n\ticon?: string;\n\n\t/**\n\t * Determines the name by which the component will be identified upon submission in an HTML form.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tname?: 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()\n\tvalueState: `${ValueState}` = \"None\";\n\n\t/**\n\t * Defines whether the component is required.\n\t * @since 1.0.0\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\trequired = false;\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 * @since 1.21.0\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly = false;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @since 1.0.0\n\t * @public\n\t * @default undefined\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the select.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the accessible description of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.14.0\n\t */\n\t@property()\n\taccessibleDescription?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that describe the select.\n\t * @default undefined\n\t * @public\n\t * @since 2.14.0\n\t */\n\t@property()\n\taccessibleDescriptionRef?: string;\n\n\t/**\n\t * Defines the tooltip of the select.\n\t * @default undefined\n\t * @public\n\t * @since 2.8.0\n\t */\n\t@property()\n\ttooltip?: string;\n\n\t/**\n\t * Defines the separator type for the two columns layout when Select is in read-only mode.\n\t *\n\t * @default \"Dash\"\n\t * @public\n\t * @since 2.16.0\n\t */\n\t@property()\n\ttextSeparator: `${SelectTextSeparator}` = \"Dash\";\n\n\t/**\n\t * Constantly updated value of texts collected from the associated description texts\n\t * @private\n\t */\n\t@property({ type: String, noAttribute: true })\n\t_associatedDescriptionRefTexts?: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_iconPressed = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\topened = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_listWidth = 0;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused = false;\n\n\t_selectedIndexBeforeOpen = -1;\n\t_escapePressed = false;\n\t_lastSelectedOption: IOption | null = null;;\n\t_typedChars = \"\";\n\t_typingTimeoutID?: Timeout | number;\n\tresponsivePopover!: ResponsivePopover;\n\tvalueStatePopover?: Popover;\n\n\t_valueStorage: string | undefined;\n\n\t/**\n\t * Defines the component options.\n\t *\n\t * **Note:** Only one selected option is allowed.\n\t * If more than one option is defined as selected, the last one would be considered as the selected one.\n\t *\n\t * **Note:** Use the `ui5-option` component to define the desired options.\n\t * Use the `ui5-option-group` component to group options.\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, invalidateOnChildChange: true })\n\toptions!: DefaultSlot<IOption | IOptionGroup>;\n\n\t/**\n\t * Defines the value state message that will be displayed as pop up under the component.\n\t *\n\t * **Note:** If not specified, a default text (in the respective language) will be displayed.\n\t *\n\t * **Note:** The `valueStateMessage` would be displayed,\n\t * when the component is in `Information`, `Critical` or `Negative` value state.\n\t *\n\t * **Note:** If the component has `suggestionItems`,\n\t * the `valueStateMessage` would be displayed as part of the same popover, if used on desktop, or dialog - on phone.\n\t * @public\n\t*/\n\t@slot()\n\tvalueStateMessage!: Slot<HTMLElement>;\n\n\t/**\n\t * Defines the HTML element that will be displayed in the component input part,\n\t * representing the selected option.\n\t *\n\t * **Note:** If not specified and `ui5-option-custom` is used,\n\t * either the option's `display-text` or its textContent will be displayed.\n\t *\n\t * **Note:** If not specified and `ui5-option` is used,\n\t * the option's textContent will be displayed.\n\t * @public\n\t * @since 1.17.0\n\t*/\n\t@slot()\n\tlabel!: Slot<HTMLElement>;\n\n\tget formValidityMessage() {\n\t\treturn Select.i18nBundle.getText(FORM_SELECTABLE_REQUIRED);\n\t}\n\n\tget formValidity(): ValidityStateFlags {\n\t\treturn { valueMissing: this.required && (this.selectedOption?.getAttribute(\"value\") === \"\") };\n\t}\n\n\tasync formElementAnchor() {\n\t\treturn this.getFocusDomRefAsync();\n\t}\n\n\tget formFormattedValue() {\n\t\tif (this._valueStorage !== undefined) {\n\t\t\treturn this._valueStorage;\n\t\t}\n\n\t\tconst selectedOption = this.selectedOption;\n\t\tif (selectedOption) {\n\t\t\tif (\"value\" in selectedOption && selectedOption.value !== undefined) {\n\t\t\t\treturn selectedOption.value;\n\t\t\t}\n\t\t\treturn selectedOption.hasAttribute(\"value\") ? selectedOption.getAttribute(\"value\") : selectedOption.textContent;\n\t\t}\n\t\treturn \"\";\n\t}\n\n\tonEnterDOM() {\n\t\tregisterUI5Element(this, this._updateAssociatedLabelsTexts.bind(this));\n\t}\n\n\tonExitDOM() {\n\t\tderegisterUI5Element(this);\n\t}\n\n\tget _flatOptions(): Array<IOption> {\n\t\treturn this.options.flatMap(item => {\n\t\t\tif (isInstanceOfOptionGroup(item as OptionGroup)) {\n\t\t\t\treturn (item as IOptionGroup).items;\n\t\t\t}\n\t\t\treturn item as IOption;\n\t\t});\n\t}\n\n\tget hasGroups(): boolean {\n\t\treturn this.options.some(item => isInstanceOfOptionGroup(item as OptionGroup));\n\t}\n\n\tget _groupCountMessageId(): string {\n\t\treturn `${this._id}-groupCountDesc`;\n\t}\n\n\tget _groupCountText(): string {\n\t\tconst groups = this.options.filter(item => isInstanceOfOptionGroup(item as OptionGroup)) as Array<IOptionGroup>;\n\t\treturn Select.i18nBundle.getText(SELECT_OPTIONS_IN_GROUPS, this._flatOptions.length, groups.length);\n\t}\n\n\t_applyGroupAriaPositions() {\n\t\tconst flatOptions = this._flatOptions;\n\t\tflatOptions.forEach(o => {\n\t\t\to._forcedSetsize = undefined;\n\t\t\to._forcedPosinset = undefined;\n\t\t});\n\t\tif (!this.hasGroups) {\n\t\t\treturn;\n\t\t}\n\t\tconst totalCount = flatOptions.length;\n\t\tlet globalPosition = 0;\n\t\tthis.options.forEach(item => {\n\t\t\tif (isInstanceOfOptionGroup(item as OptionGroup)) {\n\t\t\t\t(item as IOptionGroup).items.forEach(opt => {\n\t\t\t\t\topt._forcedSetsize = totalCount;\n\t\t\t\t\topt._forcedPosinset = ++globalPosition;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tglobalPosition++;\n\t\t\t}\n\t\t});\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._applySelection();\n\t\tthis._applyGroupAriaPositions();\n\t\tthis.style.setProperty(\"--_ui5-input-icons-count\", `${this.iconsCount}`);\n\t}\n\n\tonAfterRendering() {\n\t\tthis.toggleValueStatePopover(this.shouldOpenValueStateMessagePopover);\n\n\t\tif (this._isPickerOpen) {\n\t\t\tif (!this._listWidth) {\n\t\t\t\tthis._listWidth = this.responsivePopover.offsetWidth;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Selects an option, based on the Select's \"value\" property,\n\t * or the options' \"selected\" property.\n\t */\n\t_applySelection() {\n\t\t// Flow 1: \"value\" has not been used\n\t\tif (this._valueStorage === undefined) {\n\t\t\tthis._applyAutoSelection();\n\t\t\treturn;\n\t\t}\n\n\t\t// Flow 2: \"value\" has been used - select the option by value or apply auto selection\n\t\tthis._applySelectionByValue(this._valueStorage);\n\t}\n\n\t/**\n\t * Selects an option by given value.\n\t */\n\t_applySelectionByValue(value: string) {\n\t\tif (value !== (this.selectedOption?.value || this.selectedOption?.textContent)) {\n\t\t\tthis._flatOptions.forEach(option => {\n\t\t\t\toption.selected = !!((option.getAttribute(\"value\") || option.textContent) === value);\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Selects the first option if no option is selected,\n\t * or selects the last option if multiple options are selected.\n\t */\n\t_applyAutoSelection() {\n\t\tconst flatOptions = this._flatOptions;\n\t\tlet selectedIndex = flatOptions.findLastIndex(option => option.selected);\n\t\tselectedIndex = selectedIndex === -1 ? 0 : selectedIndex;\n\t\tfor (let i = 0; i < flatOptions.length; i++) {\n\t\t\tflatOptions[i].selected = selectedIndex === i;\n\t\t\tif (selectedIndex === i) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Sets value by given option.\n\t */\n\t_setValueByOption(option: IOption) {\n\t\tthis.value = option.value || option.textContent || \"\";\n\t}\n\n\t_applyFocus() {\n\t\tthis.focus();\n\t}\n\n\t_onfocusin() {\n\t\tthis.focused = true;\n\t}\n\n\t_onfocusout() {\n\t\tthis.focused = false;\n\t}\n\n\tget _isPickerOpen() {\n\t\treturn !!this.responsivePopover && this.responsivePopover.open;\n\t}\n\n\t_respPopover() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\t/**\n\t * Defines the value of the component:\n\t *\n\t * - when get - returns the value of the component or the value/text content of the selected option.\n\t * - when set - selects the option with matching `value` property or text content.\n\t *\n\t * **Note:** Use either the Select's value or the Options' selected property.\n\t * Mixed usage could result in unexpected behavior.\n\t *\n\t * **Note:** If the given value does not match any existing option,\n\t * no option will be selected and the Select component will be displayed as empty.\n\t * @public\n\t * @default \"\"\n\t * @since 1.20.0\n\t * @formProperty\n\t * @formEvents change liveChange\n\t */\n\t@property()\n\tset value(newValue: string) {\n\t\tthis._valueStorage = newValue;\n\t}\n\n\tget value(): string {\n\t\tif (this._valueStorage !== undefined) {\n\t\t\treturn this._valueStorage;\n\t\t}\n\t\treturn this.selectedOption?.value === undefined ? (this.selectedOption?.textContent || \"\") : this.selectedOption?.value;\n\t}\n\n\tget _selectedIndex() {\n\t\treturn this._flatOptions.findIndex(option => option.selected);\n\t}\n\n\t/**\n\t * Currently selected `ui5-option` element.\n\t * @public\n\t * @default undefined\n\t */\n\tget selectedOption(): IOption | undefined {\n\t\treturn this._flatOptions.find(option => option.selected);\n\t}\n\n\t/**\n\t * Helper function to build display text with separator when additional text exists\n\t * @param mainText - The main text content\n\t * @param additionalText - The additional text (optional)\n\t * @returns The combined text with separator if additionalText exists, otherwise just mainText\n\t * @private\n\t */\n\t_buildDisplayText(mainText: string, additionalText?: string) {\n\t\tif (!additionalText) {\n\t\t\treturn mainText;\n\t\t}\n\n\t\treturn `${mainText} ${this._separatorSymbol} ${additionalText}`;\n\t}\n\n\tget text(): string {\n\t\tconst selectedOption = this.selectedOption;\n\t\tif (!selectedOption) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\t// Only show separator when readonly and there's additional text\n\t\tif (this.readonly && selectedOption.additionalText) {\n\t\t\treturn this._buildDisplayText(\n\t\t\t\tselectedOption.effectiveDisplayText,\n\t\t\t\tselectedOption.additionalText,\n\t\t\t);\n\t\t}\n\n\t\treturn selectedOption.effectiveDisplayText;\n\t}\n\n\tget _effectiveTooltip(): string | undefined {\n\t\t// User-defined tooltip takes precedence\n\t\tif (this.tooltip) {\n\t\t\treturn this.tooltip;\n\t\t}\n\n\t\t// Provide default tooltip for readonly mode to show full content\n\t\tif (this.readonly) {\n\t\t\tconst selectedOption = this.selectedOption;\n\t\t\tif (!selectedOption) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\t// Use textContent for tooltip to show actual text content, not display text\n\t\t\tconst mainText = selectedOption.textContent || \"\";\n\t\t\treturn this._buildDisplayText(mainText, selectedOption.additionalText);\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget _separatorSymbol(): string {\n\t\tswitch (this.textSeparator) {\n\t\tcase SelectTextSeparator.Bullet:\n\t\t\treturn \"·\"; // Middle dot (U+00B7)\n\t\tcase SelectTextSeparator.VerticalLine:\n\t\t\treturn \"|\"; // Vertical line (U+007C)\n\t\tcase SelectTextSeparator.Dash:\n\t\tdefault:\n\t\t\treturn \"–\"; // En dash (U+2013)\n\t\t}\n\t}\n\n\t_toggleRespPopover() {\n\t\tif (this.disabled || this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._iconPressed = true;\n\n\t\tthis.responsivePopover = this._respPopover();\n\t\tif (this._isPickerOpen) {\n\t\t\tthis.responsivePopover.open = false;\n\t\t} else {\n\t\t\tthis.responsivePopover.opener = this;\n\t\t\tthis.responsivePopover.open = true;\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst isTab = (isTabNext(e) || isTabPrevious(e));\n\n\t\tif (isTab && this._isPickerOpen) {\n\t\t\tthis.responsivePopover.open = false;\n\t\t} else if (isShow(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._toggleRespPopover();\n\t\t} else if (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t} else if (isEscape(e) && this._isPickerOpen) {\n\t\t\tthis._escapePressed = true;\n\t\t} else if (isHome(e)) {\n\t\t\tthis._handleHomeKey(e);\n\t\t} else if (isEnd(e)) {\n\t\t\tthis._handleEndKey(e);\n\t\t// When focus is on the list item, Enter triggers _handleItemPress via the List item-click\n\t\t// event, which already calls _handleSelectionChange and prevents default.\n\t\t// Skip here to avoid a double selection change.\n\t\t} else if (isEnter(e) && !e.defaultPrevented) {\n\t\t\tthis._handleSelectionChange();\n\t\t} else if (isUp(e) || isDown(e)) {\n\t\t\tthis._handleArrowNavigation(e);\n\t\t} else if (isPrintableCharacter(e)) {\n\t\t\tthis._handleKeyboardNavigation(e);\n\t\t}\n\t}\n\n\t_handleKeyboardNavigation(e: KeyboardEvent) {\n\t\tif (this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst typedCharacter = e.key.toLowerCase();\n\n\t\tthis._typedChars += typedCharacter;\n\n\t\t// We check if we have more than one characters and they are all duplicate, we set the\n\t\t// text to be the last input character (typedCharacter). If not, we set the text to be\n\t\t// the whole input string.\n\n\t\tconst text = (/^(.)\\1+$/i).test(this._typedChars) ? typedCharacter : this._typedChars;\n\n\t\tclearTimeout(this._typingTimeoutID);\n\n\t\tthis._typingTimeoutID = setTimeout(() => {\n\t\t\tthis._typedChars = \"\";\n\t\t\tthis._typingTimeoutID = -1;\n\t\t}, 1000);\n\n\t\tthis._selectTypedItem(text);\n\t}\n\n\t_selectTypedItem(text: string) {\n\t\tconst currentIndex = this._selectedIndex;\n\t\tconst itemToSelect = this._searchNextItemByText(text);\n\n\t\tif (itemToSelect) {\n\t\t\tconst nextIndex = this._flatOptions.indexOf(itemToSelect);\n\n\t\t\tthis._changeSelectedItem(this._selectedIndex, nextIndex);\n\n\t\t\tif (currentIndex !== this._selectedIndex) {\n\t\t\t\tthis.itemSelectionAnnounce();\n\t\t\t\tthis._scrollSelectedItem();\n\t\t\t}\n\t\t}\n\t}\n\n\t_searchNextItemByText(text: string) {\n\t\tlet orderedOptions = this._flatOptions.slice(0);\n\t\tconst optionsAfterSelected = orderedOptions.splice(this._selectedIndex + 1, orderedOptions.length - this._selectedIndex);\n\t\tconst optionsBeforeSelected = orderedOptions.splice(0, orderedOptions.length - 1);\n\n\t\torderedOptions = optionsAfterSelected.concat(optionsBeforeSelected);\n\n\t\treturn orderedOptions.find(option => option.effectiveDisplayText.toLowerCase().startsWith(text));\n\t}\n\n\t_handleHomeKey(e: KeyboardEvent) {\n\t\te.preventDefault();\n\n\t\tif (this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._changeSelectedItem(this._selectedIndex, 0);\n\t}\n\n\t_handleEndKey(e: KeyboardEvent) {\n\t\te.preventDefault();\n\n\t\tif (this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lastIndex = this._flatOptions.length - 1;\n\t\tthis._changeSelectedItem(this._selectedIndex, lastIndex);\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tif (this._isPickerOpen) {\n\t\t\t\tthis._handleSelectionChange();\n\t\t\t} else {\n\t\t\t\tthis._toggleRespPopover();\n\t\t\t}\n\t\t}\n\t}\n\n\t_getItemIndex(item: IOption) {\n\t\treturn this._flatOptions.indexOf(item);\n\t}\n\n\t_select(index: number) {\n\t\tconst selectedIndex = this._selectedIndex;\n\t\tconst flatOptions = this._flatOptions;\n\t\tif (index < 0 || index >= flatOptions.length || flatOptions.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tif (flatOptions[selectedIndex]) {\n\t\t\tflatOptions[selectedIndex].selected = false;\n\t\t}\n\n\t\tconst selectedOption = flatOptions[index];\n\t\tif (selectedIndex !== index) {\n\t\t\tthis.fireDecoratorEvent(\"live-change\", { selectedOption });\n\t\t}\n\n\t\tselectedOption.selected = true;\n\t\tif (this._valueStorage !== undefined) {\n\t\t\tthis._setValueByOption(selectedOption);\n\t\t}\n\t}\n\n\t/**\n\t * The user clicked on an item from the list\n\t * @private\n\t */\n\t_handleItemPress(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst listItem = e.detail.item;\n\t\tconst selectedItemIndex = this._getItemIndex(listItem as IOption);\n\n\t\tthis._handleSelectionChange(selectedItemIndex);\n\t}\n\n\t_itemMousedown(e: MouseEvent) {\n\t\t// prevent actual focus of items\n\t\te.preventDefault();\n\t}\n\n\t_onclick() {\n\t\tthis.getFocusDomRef()!.focus();\n\t\tthis._toggleRespPopover();\n\t}\n\n\t/**\n\t * The user selected an item with Enter or Space\n\t * @private\n\t */\n\t_handleSelectionChange(index = this._selectedIndex) {\n\t\tthis._typedChars = \"\";\n\n\t\tthis._select(index);\n\n\t\tthis._toggleRespPopover();\n\t}\n\n\t_scrollSelectedItem() {\n\t\tif (this._isPickerOpen) {\n\t\t\tconst itemRef = this._currentlySelectedOption?.getDomRef();\n\t\t\tif (itemRef) {\n\t\t\t\titemRef.scrollIntoView({\n\t\t\t\t\tbehavior: \"auto\",\n\t\t\t\t\tblock: \"nearest\",\n\t\t\t\t\tinline: \"nearest\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleArrowNavigation(e: KeyboardEvent) {\n\t\te.preventDefault();\n\n\t\tif (this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet nextIndex = -1;\n\t\tconst currentIndex = this._selectedIndex;\n\t\tconst isDownKey = isDown(e);\n\n\t\tif (isDownKey) {\n\t\t\tnextIndex = this._getNextOptionIndex();\n\t\t} else {\n\t\t\tnextIndex = this._getPreviousOptionIndex();\n\t\t}\n\n\t\tthis._changeSelectedItem(this._selectedIndex, nextIndex);\n\n\t\tif (currentIndex !== this._selectedIndex) {\n\t\t\t// Announce new item even if picker is opened.\n\t\t\t// The aria-activedescendents attribute can't be used,\n\t\t\t// because listitem elements are in different shadow dom\n\t\t\tthis.itemSelectionAnnounce();\n\t\t\tthis._scrollSelectedItem();\n\t\t}\n\t}\n\n\t_changeSelectedItem(oldIndex: number, newIndex: number) {\n\t\tconst options: Array<IOption> = this._flatOptions;\n\n\t\t// Normalize: first navigation with Up when nothing selected -> last item\n\t\tif (oldIndex === -1 && newIndex < 0 && options.length) {\n\t\t\tnewIndex = options.length - 1;\n\t\t}\n\n\t\t// Abort on invalid target\n\t\tif (newIndex < 0 || newIndex >= options.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst previousOption = options[oldIndex];\n\t\tconst nextOption = options[newIndex];\n\n\t\tif (previousOption === nextOption) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (previousOption) {\n\t\t\tpreviousOption.selected = false;\n\t\t\tpreviousOption.focused = false;\n\t\t}\n\n\t\tnextOption.selected = true;\n\t\tnextOption.focused = true;\n\n\t\tif (this._valueStorage !== undefined) {\n\t\t\tthis._setValueByOption(nextOption);\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"live-change\", { selectedOption: nextOption });\n\n\t\tif (!this._isPickerOpen) {\n\t\t\t// arrow pressed on closed picker - do selection change\n\t\t\tthis._fireChangeEvent(nextOption);\n\t\t}\n\t}\n\n\t_getNextOptionIndex() {\n\t\treturn this._selectedIndex === (this._flatOptions.length - 1) ? this._selectedIndex : (this._selectedIndex + 1);\n\t}\n\n\t_getPreviousOptionIndex() {\n\t\treturn this._selectedIndex === 0 ? this._selectedIndex : (this._selectedIndex - 1);\n\t}\n\n\t_beforeOpen() {\n\t\tthis._selectedIndexBeforeOpen = this._selectedIndex;\n\t\tthis._lastSelectedOption = this._flatOptions[this._selectedIndex];\n\t}\n\n\t_afterOpen() {\n\t\tthis.opened = true;\n\t\tthis.fireDecoratorEvent(\"open\");\n\t\tthis.itemSelectionAnnounce();\n\t\tthis._scrollSelectedItem();\n\t\tthis._applyFocusToSelectedItem();\n\t}\n\n\t_applyFocusToSelectedItem() {\n\t\tconst flatOptions = this._flatOptions;\n\t\tflatOptions.forEach(option => {\n\t\t\toption.focused = option.selected;\n\t\t\tif (option.focused) {\n\t\t\t\t// move focus to the selected option so screen readers\n\t\t\t\t// can announce it when the popover opens\n\t\t\t\toption.focus();\n\t\t\t}\n\t\t});\n\t}\n\n\t_afterClose() {\n\t\tthis.opened = false;\n\t\tthis._iconPressed = false;\n\t\tthis._listWidth = 0;\n\n\t\tif (this._escapePressed) {\n\t\t\tthis._select(this._selectedIndexBeforeOpen);\n\t\t\tthis._escapePressed = false;\n\t\t} else if (this._lastSelectedOption !== this._flatOptions[this._selectedIndex]) {\n\t\t\tthis._fireChangeEvent(this._flatOptions[this._selectedIndex]);\n\t\t\tthis._lastSelectedOption = this._flatOptions[this._selectedIndex];\n\t\t}\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\tget hasCustomLabel() {\n\t\treturn !!this.label.length;\n\t}\n\n\t_fireChangeEvent(selectedOption: IOption) {\n\t\tconst changePrevented = !this.fireDecoratorEvent(\"change\", { selectedOption });\n\n\t\t// Angular two way data binding\n\t\tthis.fireDecoratorEvent(\"selected-item-changed\");\n\n\t\t// Fire input event for Vue.js two-way binding\n\t\tthis.fireDecoratorEvent(\"input\");\n\n\t\tif (changePrevented) {\n\t\t\tthis._select(this._selectedIndexBeforeOpen);\n\t\t}\n\t}\n\n\tget valueStateTextMappings() {\n\t\treturn {\n\t\t\t[ValueState.Positive]: Select.i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t\t[ValueState.Information]: Select.i18nBundle.getText(VALUE_STATE_INFORMATION),\n\t\t\t[ValueState.Negative]: Select.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t[ValueState.Critical]: Select.i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t};\n\t}\n\n\tget valueStateTypeMappings() {\n\t\treturn {\n\t\t\t[ValueState.Positive]: Select.i18nBundle.getText(VALUE_STATE_TYPE_SUCCESS),\n\t\t\t[ValueState.Information]: Select.i18nBundle.getText(VALUE_STATE_TYPE_INFORMATION),\n\t\t\t[ValueState.Negative]: Select.i18nBundle.getText(VALUE_STATE_TYPE_ERROR),\n\t\t\t[ValueState.Critical]: Select.i18nBundle.getText(VALUE_STATE_TYPE_WARNING),\n\t\t};\n\t}\n\n\tget valueStateText() {\n\t\tlet valueStateText;\n\n\t\tif (this.shouldDisplayDefaultValueStateMessage) {\n\t\t\tvalueStateText = this.valueStateDefaultText;\n\t\t} else {\n\t\t\tvalueStateText = this.valueStateMessage.map(el => el.textContent).join(\" \");\n\t\t}\n\n\t\treturn `${this.valueStateTypeText} ${valueStateText}`;\n\t}\n\n\tget valueStateDefaultText() {\n\t\treturn this.valueState !== ValueState.None ? this.valueStateTextMappings[this.valueState] : \"\";\n\t}\n\n\tget valueStateTypeText() {\n\t\treturn this.valueState !== ValueState.None ? this.valueStateTypeMappings[this.valueState] : \"\";\n\t}\n\n\tget hasValueState() {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget valueStateTextId() {\n\t\treturn this.hasValueState ? `${this._id}-valueStateDesc` : undefined;\n\t}\n\n\tget responsivePopoverId() {\n\t\treturn `${this._id}-popover`;\n\t}\n\n\tget isDisabled() {\n\t\treturn this.disabled || undefined;\n\t}\n\n\tget _headerTitleText() {\n\t\treturn Select.i18nBundle.getText(SELECT_LISTBOX_LABEL as I18nTextArg);\n\t}\n\n\tget _cancelButtonText() {\n\t\treturn Select.i18nBundle.getText(SELECT_DIALOG_CANCEL_BUTTON);\n\t}\n\n\tget _currentlySelectedOption() {\n\t\treturn this._flatOptions[this._selectedIndex];\n\t}\n\n\tget _effectiveTabIndex() {\n\t\treturn this.disabled\n\t\t|| (this.responsivePopover // Handles focus on Tab/Shift + Tab when the popover is opened\n\t\t&& this.responsivePopover.open) ? -1 : 0;\n\t}\n\n\t /**\n\t * This method is relevant for sap_horizon theme only\n\t */\n\tget _valueStateMessageInputIcon() {\n\t\tconst iconPerValueState = {\n\t\t\tNegative: \"error\",\n\t\t\tCritical: \"alert\",\n\t\t\tPositive: \"sys-enter-2\",\n\t\t\tInformation: \"information\",\n\t\t};\n\n\t\treturn this.valueState !== ValueState.None ? iconPerValueState[this.valueState] : \"\";\n\t}\n\n\tget iconsCount(): number {\n\t\treturn this.selectedOptionIcon ? 2 : 1;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tpopoverValueState: {\n\t\t\t\t\"ui5-valuestatemessage-root\": true,\n\t\t\t\t\"ui5-valuestatemessage-header\": !this._isPhone,\n\t\t\t\t\"ui5-valuestatemessage--success\": this.valueState === ValueState.Positive,\n\t\t\t\t\"ui5-valuestatemessage--error\": this.valueState === ValueState.Negative,\n\t\t\t\t\"ui5-valuestatemessage--warning\": this.valueState === ValueState.Critical,\n\t\t\t\t\"ui5-valuestatemessage--information\": this.valueState === ValueState.Information,\n\t\t\t},\n\t\t\tpopover: {\n\t\t\t\t\"ui5-select-popover-valuestate\": this.hasValueState,\n\t\t\t},\n\t\t};\n\t}\n\n\tget styles() {\n\t\tconst remSizeInPx = parseInt(getComputedStyle(document.documentElement).fontSize);\n\t\tconst flatOptionsCount = this._flatOptions.length;\n\t\treturn {\n\t\t\tpopoverHeader: {\n\t\t\t\t\"display\": \"block\",\n\t\t\t},\n\t\t\tresponsivePopoverHeader: {\n\t\t\t\t\"display\": flatOptionsCount && this._listWidth === 0 ? \"none\" : \"inline-block\",\n\t\t\t\t\"width\": `${flatOptionsCount ? this._listWidth : this.offsetWidth}px`,\n\t\t\t\t\"max-width\": \"100%\",\n\t\t\t},\n\t\t\tresponsivePopover: {\n\t\t\t\t\"min-width\": `${this.offsetWidth}px`,\n\t\t\t\t\"max-width\": (this.offsetWidth / remSizeInPx) > 40 ? `${this.offsetWidth}px` : \"40rem\",\n\t\t\t\t\"margin-top\": \"var(--sapField_BorderWidth)\",\n\t\t\t},\n\t\t};\n\t}\n\n\tget ariaLabelText() {\n\t\treturn getEffectiveAriaLabelText(this) || getAssociatedLabelForTexts(this);\n\t}\n\n\tget _effectiveListAccessibleName() {\n\t\treturn this.ariaLabelText || this._headerTitleText;\n\t}\n\n\tget _effectivePopoverAccessibleName() {\n\t\tconst fieldName = this._effectiveListAccessibleName;\n\t\tif (!fieldName) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst prefix = Select.i18nBundle.getText(SELECT_POPOVER_ACCESSIBLE_NAME_PREFIX as I18nTextArg);\n\t\treturn `${prefix} ${fieldName}`;\n\t}\n\n\tget shouldDisplayDefaultValueStateMessage() {\n\t\treturn !this.valueStateMessage.length && this.hasValueStateText;\n\t}\n\n\tget hasValueStateText() {\n\t\treturn this.hasValueState && this.valueState !== ValueState.Positive;\n\t}\n\n\tget shouldOpenValueStateMessagePopover() {\n\t\treturn this.focused && this.hasValueStateText && !this._iconPressed\n\t\t\t&& !this._isPickerOpen && !this._isPhone;\n\t}\n\n\tget _ariaRoleDescription() {\n\t\treturn Select.i18nBundle.getText(SELECT_ROLE_DESCRIPTION);\n\t}\n\n\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\titemSelectionAnnounce() {\n\t\tlet text;\n\t\tconst optionsCount = this._flatOptions.length;\n\t\tconst itemPositionText = Select.i18nBundle.getText(LIST_ITEM_POSITION, this._selectedIndex + 1, optionsCount);\n\n\t\tif (this.focused && this._currentlySelectedOption) {\n\t\t\ttext = `${this._currentlySelectedOption.textContent as string} ${this._isPickerOpen ? itemPositionText : \"\"}`;\n\n\t\t\tannounce(text, InvisibleMessageMode.Polite);\n\t\t}\n\t}\n\n\topenValueStatePopover() {\n\t\tthis.valueStatePopover = this._getPopover() as Popover;\n\t\tif (this.valueStatePopover) {\n\t\t\tthis.valueStatePopover.opener = this;\n\t\t\tthis.valueStatePopover.open = true;\n\t\t}\n\t}\n\n\tcloseValueStatePopover() {\n\t\tthis.valueStatePopover && (this.valueStatePopover.open = false);\n\t}\n\n\ttoggleValueStatePopover(open: boolean) {\n\t\tif (open) {\n\t\t\tthis.openValueStatePopover();\n\t\t} else {\n\t\t\tthis.closeValueStatePopover();\n\t\t}\n\t}\n\n\tget selectedOptionIcon() {\n\t\treturn this.selectedOption && this.selectedOption.icon;\n\t}\n\n\tget ariaDescriptionText() {\n\t\treturn this._associatedDescriptionRefTexts || getEffectiveAriaDescriptionText(this);\n\t}\n\n\tget ariaDescriptionTextId() {\n\t\treturn this.ariaDescriptionText ? \"accessibleDescription\" : \"\";\n\t}\n\n\tget ariaDescribedByIds() {\n\t\tconst ids = [\n\t\t\tthis.valueStateTextId,\n\t\t\tthis.ariaDescriptionTextId,\n\t\t\tthis.hasGroups ? this._groupCountMessageId : undefined,\n\t\t].filter(Boolean);\n\t\treturn ids.length ? ids.join(\" \") : undefined;\n\t}\n\n\tget accessibilityInfo() {\n\t\treturn {\n\t\t\trole: \"combobox\" as AriaRole,\n\t\t\ttype: this._ariaRoleDescription,\n\t\t\tdescription: this.text,\n\t\t\tlabel: this.ariaLabelText,\n\t\t\treadonly: this.readonly,\n\t\t\trequired: this.required,\n\t\t\tdisabled: this.disabled,\n\t\t};\n\t}\n\n\t_updateAssociatedLabelsTexts() {\n\t\tthis._associatedDescriptionRefTexts = getAllAccessibleDescriptionRefTexts(this);\n\t}\n\n\t_getPopover() {\n\t\treturn this.shadowRoot!.querySelector<Popover>(\"[ui5-popover]\");\n\t}\n}\n\nSelect.define();\n\nexport default Select;\nexport type {\n\tIOption,\n\tIOptionGroup,\n\tSelectChangeEventDetail,\n\tSelectLiveChangeEventDetail,\n};\n"]}
package/dist/Slider.d.ts CHANGED
@@ -52,7 +52,7 @@ import type { SliderTooltipChangeEventDetails } from "./SliderTooltip.js";
52
52
  * `import "@ui5/webcomponents/dist/Slider.js";`
53
53
  * @constructor
54
54
  * @extends SliderBase
55
- * @since 1.0.0-rc.11
55
+ * @since 1.0.0
56
56
  * @public
57
57
  * @csspart progress-container - Used to style the progress container, the horizontal bar that visually represents the range between the minimum and maximum values, of the `ui5-slider`.
58
58
  * @csspart progress-bar - Used to style the progress bar, which shows the progress of the `ui5-slider`.
@@ -127,6 +127,7 @@ declare class Slider extends SliderBase implements IFormInputElement {
127
127
  _onTooltopForwardFocus(e: CustomEvent): void;
128
128
  get inputValue(): string;
129
129
  get tooltip(): SliderTooltip | null | undefined;
130
+ focusInnerElement(): void;
130
131
  get _sliderHandle(): HTMLElement;
131
132
  get _ariaDisabled(): true | undefined;
132
133
  get _ariaLabelledByText(): string;
package/dist/Slider.js CHANGED
@@ -6,6 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  var Slider_1;
8
8
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
9
+ import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
9
10
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
10
11
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
11
12
  import { isEscape, isF2 } from "@ui5/webcomponents-base/dist/Keys.js";
@@ -63,7 +64,7 @@ import { SLIDER_ARIA_DESCRIPTION, SLIDER_TOOLTIP_INPUT_DESCRIPTION, SLIDER_TOOLT
63
64
  * `import "@ui5/webcomponents/dist/Slider.js";`
64
65
  * @constructor
65
66
  * @extends SliderBase
66
- * @since 1.0.0-rc.11
67
+ * @since 1.0.0
67
68
  * @public
68
69
  * @csspart progress-container - Used to style the progress container, the horizontal bar that visually represents the range between the minimum and maximum values, of the `ui5-slider`.
69
70
  * @csspart progress-bar - Used to style the progress bar, which shows the progress of the `ui5-slider`.
@@ -282,6 +283,9 @@ let Slider = Slider_1 = class Slider extends SliderBase {
282
283
  get tooltip() {
283
284
  return this.getDomRef()?.querySelector("[ui5-slider-tooltip]");
284
285
  }
286
+ focusInnerElement() {
287
+ this._sliderHandle.focus({ focusVisible: isDesktop() });
288
+ }
285
289
  get _sliderHandle() {
286
290
  return this.shadowRoot.querySelector("[ui5-slider-handle]");
287
291
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.js","sourceRoot":"","sources":["../src/Slider.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { isEscape, isF2 } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport type ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport SliderBase from \"./SliderBase.js\";\nimport type SliderTooltip from \"./SliderTooltip.js\";\n\n// Template\nimport SliderTemplate from \"./SliderTemplate.js\";\nimport type { SliderTooltipChangeEventDetails } from \"./SliderTooltip.js\";\nimport styles from \"./generated/themes/Slider.css.js\";\n\n// Texts\nimport {\n\tSLIDER_ARIA_DESCRIPTION,\n\tSLIDER_TOOLTIP_INPUT_DESCRIPTION,\n\tSLIDER_TOOLTIP_INPUT_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n *\n * ### Overview\n * The Slider component represents a numerical range and a handle (grip).\n * The purpose of the component is to enable visual selection of a value in\n * a continuous numerical range by moving an adjustable handle.\n *\n * ### Structure\n * The most important properties of the Slider are:\n *\n * - min - The minimum value of the slider range.\n * - max - The maximum value of the slider range.\n * - value - The current value of the slider range.\n * - step - Determines the increments in which the slider will move.\n * - showTooltip - Determines if a tooltip should be displayed above the handle.\n * - showTickmarks - Displays a visual divider between the step values.\n * - labelInterval - Labels some or all of the tickmarks with their values.\n *\n * ### Usage\n * The most common use case is to select values on a continuous numerical scale (e.g. temperature, volume, etc. ).\n *\n * ### Responsive Behavior\n * The `ui5-slider` component adjusts to the size of its parent container by recalculating and\n * resizing the width of the control. You can move the slider handle in several different ways:\n *\n * - Drag and drop the handle to the desired value.\n * - Click/tap on the range bar to move the handle to that location.\n *\n * ### Keyboard Handling\n *\n * - `Left or Down Arrow` - Moves the handle one step to the left, effectively decreasing the component's value by `step` amount;\n * - `Right or Up Arrow` - Moves the handle one step to the right, effectively increasing the component's value by `step` amount;\n * - `Left or Down Arrow + Ctrl/Cmd` - Moves the handle to the left with step equal to 1/10th of the entire range, effectively decreasing the component's value by 1/10th of the range;\n * - `Right or Up Arrow + Ctrl/Cmd` - Moves the handle to the right with step equal to 1/10th of the entire range, effectively increasing the component's value by 1/10th of the range;\n * - `Plus` - Same as `Right or Up Arrow`;\n * - `Minus` - Same as `Left or Down Arrow`;\n * - `Home` - Moves the handle to the beginning of the range;\n * - `End` - Moves the handle to the end of the range;\n * - `Page Up` - Same as `Right or Up + Ctrl/Cmd`;\n * - `Page Down` - Same as `Left or Down + Ctrl/Cmd`;\n * - `Escape` - Resets the value property after interaction, to the position prior the component's focusing;\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Slider.js\";`\n * @constructor\n * @extends SliderBase\n * @since 1.0.0-rc.11\n * @public\n * @csspart progress-container - Used to style the progress container, the horizontal bar that visually represents the range between the minimum and maximum values, of the `ui5-slider`.\n * @csspart progress-bar - Used to style the progress bar, which shows the progress of the `ui5-slider`.\n * @csspart handle - Used to style the handle of the `ui5-slider`.\n */\n@customElement({\n\ttag: \"ui5-slider\",\n\tlanguageAware: true,\n\tformAssociated: true,\n\tstyles: [styles],\n\ttemplate: SliderTemplate,\n})\nclass Slider extends SliderBase implements IFormInputElement {\n\t/**\n\t * Current value of the slider\n\t * @default 0\n\t * @formEvents change input\n\t * @formProperty\n\t * @public\n\t */\n\t@property({ type: Number })\n\tvalue = 0;\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.\n\t * @default 1\n\t * @public\n\t */\n\t@property({ type: Number })\n\tstep = 1;\n\n\t@property()\n\ttooltipValueState: `${ValueState}` = \"None\";\n\n\t@property()\n\ttooltipValue = \"\";\n\n\t_valueInitial?: number;\n\t_valueOnInteractionStart?: number;\n\t_progressPercentage = 0;\n\t_handlePositionFromStart = 0;\n\t_lastValidInputValue: string;\n\n\tget formFormattedValue() {\n\t\treturn this.value.toString();\n\t}\n\n\tget _isTooltipVisible(): boolean {\n\t\tif (!this._tooltipsOpen) {\n\t\t\treturn false;\n\t\t}\n\t\tif (!this._hasCustomTickmarks) {\n\t\t\treturn true;\n\t\t}\n\t\treturn this._getCustomLabel(this.value) !== undefined;\n\t}\n\n\tget _ariaValueText(): string | undefined {\n\t\treturn this._getCustomLabel(this.value);\n\t}\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._lastValidInputValue = this.min.toString();\n\t}\n\n\t/**\n\t * The value is visually clamped to min/max but the property is not modified.\n\t * @private\n\t */\n\tonBeforeRendering() {\n\t\tconst ctor = this.constructor as typeof Slider;\n\t\tconst clampedValue = ctor.clipValue(this.value, this.min, this.max);\n\t\tthis._updateHandleAndProgress(clampedValue);\n\t}\n\n\tonAfterRendering(): void {\n\t\tsuper.onAfterRendering();\n\n\t\tthis.tooltip?.repositionTooltip();\n\t}\n\n\t/**\n\t * Called when the user starts interacting with the slider\n\t * @private\n\t */\n\t_onmousedown(e: TouchEvent | MouseEvent) {\n\t\tif (this._isNonPrimaryClick(e)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.disabled || this.step === 0 || (e.target as HTMLElement).hasAttribute(\"ui5-slider-tooltip\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst newValue = this.handleDownBase(e);\n\t\tthis._valueOnInteractionStart = this.value;\n\n\t\tif (this._valueInitial === undefined) {\n\t\t\tthis._valueInitial = this.value;\n\t\t}\n\n\t\tconst ctor = this.constructor as typeof Slider;\n\t\tif (!this._isHandlePressed(ctor.getPageXValueFromEvent(e))) {\n\t\t\tconst stepPrecision = ctor._getDecimalPrecisionOfNumber(this.step);\n\t\t\tthis._updateHandleAndProgress(newValue);\n\t\t\tthis.value = newValue;\n\t\t\tthis.tooltipValue = this._getCustomLabel(newValue) || newValue.toFixed(stepPrecision);\n\t\t\tthis.updateStateStorageAndFireInputEvent(\"value\");\n\t\t}\n\t}\n\n\t_onfocusin() {\n\t\t// Set initial value if one is not set previously on focus in.\n\t\t// It will be restored if ESC key is pressed.\n\t\tif (this._valueInitial === undefined) {\n\t\t\tthis._valueInitial = this.value;\n\t\t}\n\n\t\tif (this.showTooltip) {\n\t\t\tthis._tooltipsOpen = true;\n\t\t}\n\t}\n\n\t_onfocusout(e: FocusEvent) {\n\t\t// Prevent focusout when the focus is getting set within the slider internal\n\t\t// element (on the handle), before the Slider' customElement itself is finished focusing\n\t\tif (this._isFocusing()) {\n\t\t\tthis._preventFocusOut();\n\t\t\treturn;\n\t\t}\n\n\t\t// Reset focus state and the stored Slider's initial\n\t\t// value that was saved when it was first focused in\n\t\tthis._valueInitial = undefined;\n\n\t\tif (this.showTooltip && !(e.relatedTarget as HTMLElement)?.hasAttribute(\"ui5-slider-tooltip\")) {\n\t\t\tthis._tooltipsOpen = false;\n\t\t}\n\t}\n\n\t_onTooltipChange(e: CustomEvent<SliderTooltipChangeEventDetails>) {\n\t\tconst value = parseFloat(e.detail.value);\n\t\tconst isInvalid = (value < this.min || value > this.max) || Number.isNaN(value);\n\n\t\tif (isInvalid) {\n\t\t\tthis.tooltipValueState = \"Negative\";\n\t\t\tthis.tooltipValue = `${value}`;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.tooltipValueState = \"None\";\n\t\tthis.value = value;\n\t\tthis.fireDecoratorEvent(\"change\");\n\t}\n\n\t_onTooltipFocusChange() {\n\t\tconst value = parseFloat(this.tooltipValue);\n\t\tconst isInvalid = (value < this.min || value > this.max) || Number.isNaN(value);\n\n\t\tif (isInvalid) {\n\t\t\tthis.tooltipValueState = \"None\";\n\t\t\tthis.tooltipValue = this.value.toString();\n\t\t}\n\t}\n\n\t_onTooltipKeydown(e: KeyboardEvent) {\n\t\tif (isF2(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._sliderHandle.focus();\n\t\t}\n\t}\n\n\t_onTooltipOpen() {\n\t\tconst customLabel = this._getCustomLabel(this.value);\n\t\tif (customLabel) {\n\t\t\tthis.tooltipValue = customLabel;\n\t\t\treturn;\n\t\t}\n\t\tconst ctor = this.constructor as typeof Slider;\n\t\tconst stepPrecision = ctor._getDecimalPrecisionOfNumber(this.step);\n\t\tthis.tooltipValue = this.value.toFixed(stepPrecision);\n\t}\n\n\t_onTooltipInput(e: CustomEvent) {\n\t\tthis.tooltipValue = e.detail.value;\n\t}\n\n\t/**\n\t * Called when the user moves the slider\n\t * @private\n\t */\n\t_handleMove(e: TouchEvent | MouseEvent) {\n\t\te.preventDefault();\n\n\t\tconst ctor = this.constructor as typeof Slider;\n\t\tconst newValue = ctor.getValueFromInteraction(e, this.step, this.min, this.max, this.getBoundingClientRect(), this.directionStart);\n\t\tconst stepPrecision = ctor._getDecimalPrecisionOfNumber(this.step);\n\n\t\tthis._updateHandleAndProgress(newValue);\n\t\tthis.value = newValue;\n\t\tthis.tooltipValue = this._getCustomLabel(newValue) || newValue.toFixed(stepPrecision);\n\t\tthis.updateStateStorageAndFireInputEvent(\"value\");\n\t}\n\n\t/** Called when the user finish interacting with the slider\n\t * @private\n\t */\n\t_handleUp() {\n\t\tif (this._valueOnInteractionStart !== this.value) {\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t}\n\n\t\tthis.handleUpBase();\n\t\tthis._valueOnInteractionStart = undefined;\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tconst isActionKey = SliderBase._isActionKey(e);\n\n\t\tthis._onKeyupBase();\n\n\t\tif (isActionKey && this._valueOnInteractionStart !== this.value) {\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t}\n\n\t\tthis._valueOnInteractionStart = this.value;\n\t}\n\n\t/** Determines if the press is over the handle\n\t * @private\n\t */\n\t_isHandlePressed(clientX: number) {\n\t\tconst sliderHandleDomRect = this._sliderHandle.getBoundingClientRect();\n\t\treturn clientX >= sliderHandleDomRect.left && clientX <= sliderHandleDomRect.right;\n\t}\n\n\t/** Updates the UI representation of the progress bar and handle position\n\t * @private\n\t */\n\t_updateHandleAndProgress(newValue: number) {\n\t\tconst max = this.max;\n\t\tconst min = this.min;\n\n\t\tthis._progressPercentage = (newValue - min) / (max - min);\n\t\tthis._handlePositionFromStart = this._progressPercentage * 100;\n\t}\n\n\t_handleActionKeyPress(e: KeyboardEvent) {\n\t\tconst min = this.min;\n\t\tconst max = this.max;\n\t\tconst currentValue = this.value;\n\t\tconst ctor = this.constructor as typeof Slider;\n\t\tconst newValue = isEscape(e) ? this._valueInitial : ctor.clipValue(this._handleActionKeyPressBase(e, \"value\") + currentValue, min, max);\n\n\t\tif (newValue !== currentValue) {\n\t\t\tconst stepPrecision = ctor._getDecimalPrecisionOfNumber(this.step);\n\t\t\tthis._updateHandleAndProgress(newValue!);\n\t\t\tthis.value = newValue!;\n\t\t\tthis.tooltipValue = this._getCustomLabel(newValue!) || this.value.toFixed(stepPrecision);\n\t\t\tthis.updateStateStorageAndFireInputEvent(\"value\");\n\t\t}\n\t}\n\n\t_onTooltopForwardFocus(e: CustomEvent) {\n\t\tconst tooltip = e.target as SliderTooltip;\n\n\t\ttooltip.followRef?.focus();\n\t}\n\n\tget inputValue() {\n\t\treturn this.value.toString();\n\t}\n\n\tget tooltip() {\n\t\treturn this.getDomRef()?.querySelector<SliderTooltip>(\"[ui5-slider-tooltip]\");\n\t}\n\n\tget _sliderHandle() : HTMLElement {\n\t\treturn this.shadowRoot!.querySelector(\"[ui5-slider-handle]\")!;\n\t}\n\n\tget _ariaDisabled() {\n\t\treturn this.disabled || undefined;\n\t}\n\n\tget _ariaLabelledByText() {\n\t\treturn Slider.i18nBundle.getText(SLIDER_ARIA_DESCRIPTION);\n\t}\n\n\tget tickmarksObject() {\n\t\tconst count = this._tickmarksCount;\n\t\tconst arr = [];\n\n\t\tif (this._hiddenTickmarks) {\n\t\t\treturn [false, false];\n\t\t}\n\n\t\tfor (let i = 0; i <= count; i++) {\n\t\t\tconst tickValue = this._effectiveMin + (i * this.step);\n\t\t\tarr.push(tickValue <= this.value);\n\t\t}\n\n\t\treturn arr;\n\t}\n\n\tget _ariaDescribedByInputText() {\n\t\treturn Slider.i18nBundle.getText(SLIDER_TOOLTIP_INPUT_DESCRIPTION);\n\t}\n\n\tget _ariaLabelledByInputText() {\n\t\treturn Slider.i18nBundle.getText(SLIDER_TOOLTIP_INPUT_LABEL);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst target = e.target as HTMLElement;\n\n\t\tif (isF2(e) && target.hasAttribute(\"ui5-slider-handle\")) {\n\t\t\t(target.parentNode!.querySelector(\"[ui5-slider-tooltip]\") as HTMLElement).focus();\n\t\t}\n\n\t\tif (SliderBase._isActionKey(e) && target && !target.hasAttribute(\"ui5-slider-tooltip\")) {\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\nSlider.define();\n\nexport default Slider;\n"]}
1
+ {"version":3,"file":"Slider.js","sourceRoot":"","sources":["../src/Slider.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { isEscape, isF2 } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport type ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport SliderBase from \"./SliderBase.js\";\nimport type SliderTooltip from \"./SliderTooltip.js\";\n\n// Template\nimport SliderTemplate from \"./SliderTemplate.js\";\nimport type { SliderTooltipChangeEventDetails } from \"./SliderTooltip.js\";\nimport styles from \"./generated/themes/Slider.css.js\";\n\n// Texts\nimport {\n\tSLIDER_ARIA_DESCRIPTION,\n\tSLIDER_TOOLTIP_INPUT_DESCRIPTION,\n\tSLIDER_TOOLTIP_INPUT_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n *\n * ### Overview\n * The Slider component represents a numerical range and a handle (grip).\n * The purpose of the component is to enable visual selection of a value in\n * a continuous numerical range by moving an adjustable handle.\n *\n * ### Structure\n * The most important properties of the Slider are:\n *\n * - min - The minimum value of the slider range.\n * - max - The maximum value of the slider range.\n * - value - The current value of the slider range.\n * - step - Determines the increments in which the slider will move.\n * - showTooltip - Determines if a tooltip should be displayed above the handle.\n * - showTickmarks - Displays a visual divider between the step values.\n * - labelInterval - Labels some or all of the tickmarks with their values.\n *\n * ### Usage\n * The most common use case is to select values on a continuous numerical scale (e.g. temperature, volume, etc. ).\n *\n * ### Responsive Behavior\n * The `ui5-slider` component adjusts to the size of its parent container by recalculating and\n * resizing the width of the control. You can move the slider handle in several different ways:\n *\n * - Drag and drop the handle to the desired value.\n * - Click/tap on the range bar to move the handle to that location.\n *\n * ### Keyboard Handling\n *\n * - `Left or Down Arrow` - Moves the handle one step to the left, effectively decreasing the component's value by `step` amount;\n * - `Right or Up Arrow` - Moves the handle one step to the right, effectively increasing the component's value by `step` amount;\n * - `Left or Down Arrow + Ctrl/Cmd` - Moves the handle to the left with step equal to 1/10th of the entire range, effectively decreasing the component's value by 1/10th of the range;\n * - `Right or Up Arrow + Ctrl/Cmd` - Moves the handle to the right with step equal to 1/10th of the entire range, effectively increasing the component's value by 1/10th of the range;\n * - `Plus` - Same as `Right or Up Arrow`;\n * - `Minus` - Same as `Left or Down Arrow`;\n * - `Home` - Moves the handle to the beginning of the range;\n * - `End` - Moves the handle to the end of the range;\n * - `Page Up` - Same as `Right or Up + Ctrl/Cmd`;\n * - `Page Down` - Same as `Left or Down + Ctrl/Cmd`;\n * - `Escape` - Resets the value property after interaction, to the position prior the component's focusing;\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Slider.js\";`\n * @constructor\n * @extends SliderBase\n * @since 1.0.0\n * @public\n * @csspart progress-container - Used to style the progress container, the horizontal bar that visually represents the range between the minimum and maximum values, of the `ui5-slider`.\n * @csspart progress-bar - Used to style the progress bar, which shows the progress of the `ui5-slider`.\n * @csspart handle - Used to style the handle of the `ui5-slider`.\n */\n@customElement({\n\ttag: \"ui5-slider\",\n\tlanguageAware: true,\n\tformAssociated: true,\n\tstyles: [styles],\n\ttemplate: SliderTemplate,\n})\nclass Slider extends SliderBase implements IFormInputElement {\n\t/**\n\t * Current value of the slider\n\t * @default 0\n\t * @formEvents change input\n\t * @formProperty\n\t * @public\n\t */\n\t@property({ type: Number })\n\tvalue = 0;\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.\n\t * @default 1\n\t * @public\n\t */\n\t@property({ type: Number })\n\tstep = 1;\n\n\t@property()\n\ttooltipValueState: `${ValueState}` = \"None\";\n\n\t@property()\n\ttooltipValue = \"\";\n\n\t_valueInitial?: number;\n\t_valueOnInteractionStart?: number;\n\t_progressPercentage = 0;\n\t_handlePositionFromStart = 0;\n\t_lastValidInputValue: string;\n\n\tget formFormattedValue() {\n\t\treturn this.value.toString();\n\t}\n\n\tget _isTooltipVisible(): boolean {\n\t\tif (!this._tooltipsOpen) {\n\t\t\treturn false;\n\t\t}\n\t\tif (!this._hasCustomTickmarks) {\n\t\t\treturn true;\n\t\t}\n\t\treturn this._getCustomLabel(this.value) !== undefined;\n\t}\n\n\tget _ariaValueText(): string | undefined {\n\t\treturn this._getCustomLabel(this.value);\n\t}\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._lastValidInputValue = this.min.toString();\n\t}\n\n\t/**\n\t * The value is visually clamped to min/max but the property is not modified.\n\t * @private\n\t */\n\tonBeforeRendering() {\n\t\tconst ctor = this.constructor as typeof Slider;\n\t\tconst clampedValue = ctor.clipValue(this.value, this.min, this.max);\n\t\tthis._updateHandleAndProgress(clampedValue);\n\t}\n\n\tonAfterRendering(): void {\n\t\tsuper.onAfterRendering();\n\n\t\tthis.tooltip?.repositionTooltip();\n\t}\n\n\t/**\n\t * Called when the user starts interacting with the slider\n\t * @private\n\t */\n\t_onmousedown(e: TouchEvent | MouseEvent) {\n\t\tif (this._isNonPrimaryClick(e)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.disabled || this.step === 0 || (e.target as HTMLElement).hasAttribute(\"ui5-slider-tooltip\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst newValue = this.handleDownBase(e);\n\t\tthis._valueOnInteractionStart = this.value;\n\n\t\tif (this._valueInitial === undefined) {\n\t\t\tthis._valueInitial = this.value;\n\t\t}\n\n\t\tconst ctor = this.constructor as typeof Slider;\n\t\tif (!this._isHandlePressed(ctor.getPageXValueFromEvent(e))) {\n\t\t\tconst stepPrecision = ctor._getDecimalPrecisionOfNumber(this.step);\n\t\t\tthis._updateHandleAndProgress(newValue);\n\t\t\tthis.value = newValue;\n\t\t\tthis.tooltipValue = this._getCustomLabel(newValue) || newValue.toFixed(stepPrecision);\n\t\t\tthis.updateStateStorageAndFireInputEvent(\"value\");\n\t\t}\n\t}\n\n\t_onfocusin() {\n\t\t// Set initial value if one is not set previously on focus in.\n\t\t// It will be restored if ESC key is pressed.\n\t\tif (this._valueInitial === undefined) {\n\t\t\tthis._valueInitial = this.value;\n\t\t}\n\n\t\tif (this.showTooltip) {\n\t\t\tthis._tooltipsOpen = true;\n\t\t}\n\t}\n\n\t_onfocusout(e: FocusEvent) {\n\t\t// Prevent focusout when the focus is getting set within the slider internal\n\t\t// element (on the handle), before the Slider' customElement itself is finished focusing\n\t\tif (this._isFocusing()) {\n\t\t\tthis._preventFocusOut();\n\t\t\treturn;\n\t\t}\n\n\t\t// Reset focus state and the stored Slider's initial\n\t\t// value that was saved when it was first focused in\n\t\tthis._valueInitial = undefined;\n\n\t\tif (this.showTooltip && !(e.relatedTarget as HTMLElement)?.hasAttribute(\"ui5-slider-tooltip\")) {\n\t\t\tthis._tooltipsOpen = false;\n\t\t}\n\t}\n\n\t_onTooltipChange(e: CustomEvent<SliderTooltipChangeEventDetails>) {\n\t\tconst value = parseFloat(e.detail.value);\n\t\tconst isInvalid = (value < this.min || value > this.max) || Number.isNaN(value);\n\n\t\tif (isInvalid) {\n\t\t\tthis.tooltipValueState = \"Negative\";\n\t\t\tthis.tooltipValue = `${value}`;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.tooltipValueState = \"None\";\n\t\tthis.value = value;\n\t\tthis.fireDecoratorEvent(\"change\");\n\t}\n\n\t_onTooltipFocusChange() {\n\t\tconst value = parseFloat(this.tooltipValue);\n\t\tconst isInvalid = (value < this.min || value > this.max) || Number.isNaN(value);\n\n\t\tif (isInvalid) {\n\t\t\tthis.tooltipValueState = \"None\";\n\t\t\tthis.tooltipValue = this.value.toString();\n\t\t}\n\t}\n\n\t_onTooltipKeydown(e: KeyboardEvent) {\n\t\tif (isF2(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._sliderHandle.focus();\n\t\t}\n\t}\n\n\t_onTooltipOpen() {\n\t\tconst customLabel = this._getCustomLabel(this.value);\n\t\tif (customLabel) {\n\t\t\tthis.tooltipValue = customLabel;\n\t\t\treturn;\n\t\t}\n\t\tconst ctor = this.constructor as typeof Slider;\n\t\tconst stepPrecision = ctor._getDecimalPrecisionOfNumber(this.step);\n\t\tthis.tooltipValue = this.value.toFixed(stepPrecision);\n\t}\n\n\t_onTooltipInput(e: CustomEvent) {\n\t\tthis.tooltipValue = e.detail.value;\n\t}\n\n\t/**\n\t * Called when the user moves the slider\n\t * @private\n\t */\n\t_handleMove(e: TouchEvent | MouseEvent) {\n\t\te.preventDefault();\n\n\t\tconst ctor = this.constructor as typeof Slider;\n\t\tconst newValue = ctor.getValueFromInteraction(e, this.step, this.min, this.max, this.getBoundingClientRect(), this.directionStart);\n\t\tconst stepPrecision = ctor._getDecimalPrecisionOfNumber(this.step);\n\n\t\tthis._updateHandleAndProgress(newValue);\n\t\tthis.value = newValue;\n\t\tthis.tooltipValue = this._getCustomLabel(newValue) || newValue.toFixed(stepPrecision);\n\t\tthis.updateStateStorageAndFireInputEvent(\"value\");\n\t}\n\n\t/** Called when the user finish interacting with the slider\n\t * @private\n\t */\n\t_handleUp() {\n\t\tif (this._valueOnInteractionStart !== this.value) {\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t}\n\n\t\tthis.handleUpBase();\n\t\tthis._valueOnInteractionStart = undefined;\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tconst isActionKey = SliderBase._isActionKey(e);\n\n\t\tthis._onKeyupBase();\n\n\t\tif (isActionKey && this._valueOnInteractionStart !== this.value) {\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t}\n\n\t\tthis._valueOnInteractionStart = this.value;\n\t}\n\n\t/** Determines if the press is over the handle\n\t * @private\n\t */\n\t_isHandlePressed(clientX: number) {\n\t\tconst sliderHandleDomRect = this._sliderHandle.getBoundingClientRect();\n\t\treturn clientX >= sliderHandleDomRect.left && clientX <= sliderHandleDomRect.right;\n\t}\n\n\t/** Updates the UI representation of the progress bar and handle position\n\t * @private\n\t */\n\t_updateHandleAndProgress(newValue: number) {\n\t\tconst max = this.max;\n\t\tconst min = this.min;\n\n\t\tthis._progressPercentage = (newValue - min) / (max - min);\n\t\tthis._handlePositionFromStart = this._progressPercentage * 100;\n\t}\n\n\t_handleActionKeyPress(e: KeyboardEvent) {\n\t\tconst min = this.min;\n\t\tconst max = this.max;\n\t\tconst currentValue = this.value;\n\t\tconst ctor = this.constructor as typeof Slider;\n\t\tconst newValue = isEscape(e) ? this._valueInitial : ctor.clipValue(this._handleActionKeyPressBase(e, \"value\") + currentValue, min, max);\n\n\t\tif (newValue !== currentValue) {\n\t\t\tconst stepPrecision = ctor._getDecimalPrecisionOfNumber(this.step);\n\t\t\tthis._updateHandleAndProgress(newValue!);\n\t\t\tthis.value = newValue!;\n\t\t\tthis.tooltipValue = this._getCustomLabel(newValue!) || this.value.toFixed(stepPrecision);\n\t\t\tthis.updateStateStorageAndFireInputEvent(\"value\");\n\t\t}\n\t}\n\n\t_onTooltopForwardFocus(e: CustomEvent) {\n\t\tconst tooltip = e.target as SliderTooltip;\n\n\t\ttooltip.followRef?.focus();\n\t}\n\n\tget inputValue() {\n\t\treturn this.value.toString();\n\t}\n\n\tget tooltip() {\n\t\treturn this.getDomRef()?.querySelector<SliderTooltip>(\"[ui5-slider-tooltip]\");\n\t}\n\n\tfocusInnerElement() {\n\t\tthis._sliderHandle.focus({ focusVisible: isDesktop() } as FocusOptions);\n\t}\n\n\tget _sliderHandle() : HTMLElement {\n\t\treturn this.shadowRoot!.querySelector(\"[ui5-slider-handle]\")!;\n\t}\n\n\tget _ariaDisabled() {\n\t\treturn this.disabled || undefined;\n\t}\n\n\tget _ariaLabelledByText() {\n\t\treturn Slider.i18nBundle.getText(SLIDER_ARIA_DESCRIPTION);\n\t}\n\n\tget tickmarksObject() {\n\t\tconst count = this._tickmarksCount;\n\t\tconst arr = [];\n\n\t\tif (this._hiddenTickmarks) {\n\t\t\treturn [false, false];\n\t\t}\n\n\t\tfor (let i = 0; i <= count; i++) {\n\t\t\tconst tickValue = this._effectiveMin + (i * this.step);\n\t\t\tarr.push(tickValue <= this.value);\n\t\t}\n\n\t\treturn arr;\n\t}\n\n\tget _ariaDescribedByInputText() {\n\t\treturn Slider.i18nBundle.getText(SLIDER_TOOLTIP_INPUT_DESCRIPTION);\n\t}\n\n\tget _ariaLabelledByInputText() {\n\t\treturn Slider.i18nBundle.getText(SLIDER_TOOLTIP_INPUT_LABEL);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst target = e.target as HTMLElement;\n\n\t\tif (isF2(e) && target.hasAttribute(\"ui5-slider-handle\")) {\n\t\t\t(target.parentNode!.querySelector(\"[ui5-slider-tooltip]\") as HTMLElement).focus();\n\t\t}\n\n\t\tif (SliderBase._isActionKey(e) && target && !target.hasAttribute(\"ui5-slider-tooltip\")) {\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\nSlider.define();\n\nexport default Slider;\n"]}
@@ -334,6 +334,7 @@ declare abstract class SliderBase extends UI5Element {
334
334
  get _effectiveMin(): number;
335
335
  get _effectiveMax(): number;
336
336
  get _tabIndex(): 0 | -1;
337
+ get _isDesktop(): boolean;
337
338
  get _ariaDescribedByHandleText(): "ui5-slider-InputDesc" | undefined;
338
339
  get _ariaLabel(): string;
339
340
  get _ariaDescribedByInputText(): string;
@@ -10,7 +10,7 @@ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
10
10
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
11
11
  import jsxRender from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
12
12
  import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
13
- import { isPhone, supportsTouch } from "@ui5/webcomponents-base/dist/Device.js";
13
+ import { isDesktop, isPhone, supportsTouch } from "@ui5/webcomponents-base/dist/Device.js";
14
14
  import { isEscape, isHome, isEnd, isUp, isDown, isRight, isLeft, isUpCtrl, isDownCtrl, isRightCtrl, isLeftCtrl, isPlus, isMinus, isPageUp, isPageDown, isF2, } from "@ui5/webcomponents-base/dist/Keys.js";
15
15
  import { SliderHandleType } from "./SliderHandle.js";
16
16
  // Styles
@@ -202,6 +202,9 @@ class SliderBase extends UI5Element {
202
202
  };
203
203
  }
204
204
  onEnterDOM() {
205
+ if (isDesktop()) {
206
+ this.setAttribute("desktop", "");
207
+ }
205
208
  ResizeHandler.register(this, this._resizeHandler);
206
209
  }
207
210
  onExitDOM() {
@@ -632,6 +635,9 @@ class SliderBase extends UI5Element {
632
635
  get _tabIndex() {
633
636
  return this.disabled ? -1 : 0;
634
637
  }
638
+ get _isDesktop() {
639
+ return isDesktop();
640
+ }
635
641
  get _ariaDescribedByHandleText() {
636
642
  return this.editableTooltip ? "ui5-slider-InputDesc" : undefined;
637
643
  }