@ui5/webcomponents 1.17.0-rc.1 → 1.17.0

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 (908) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/Avatar.d.ts +27 -0
  3. package/dist/Avatar.js +10 -0
  4. package/dist/Avatar.js.map +1 -1
  5. package/dist/Badge.d.ts +1 -1
  6. package/dist/Badge.js.map +1 -1
  7. package/dist/ComboBox.d.ts +1 -11
  8. package/dist/ComboBox.js.map +1 -1
  9. package/dist/CustomListItem.d.ts +14 -0
  10. package/dist/CustomListItem.js +14 -0
  11. package/dist/CustomListItem.js.map +1 -1
  12. package/dist/Input.d.ts +0 -11
  13. package/dist/Input.js.map +1 -1
  14. package/dist/Interfaces.d.ts +25 -1
  15. package/dist/Interfaces.js +25 -1
  16. package/dist/Interfaces.js.map +1 -1
  17. package/dist/ListItem.d.ts +1 -1
  18. package/dist/ListItem.js.map +1 -1
  19. package/dist/MessageStrip.d.ts +0 -3
  20. package/dist/MessageStrip.js.map +1 -1
  21. package/dist/MultiComboBox.d.ts +1 -8
  22. package/dist/MultiComboBox.js.map +1 -1
  23. package/dist/RadioButton.d.ts +6 -0
  24. package/dist/RadioButton.js +18 -6
  25. package/dist/RadioButton.js.map +1 -1
  26. package/dist/RadioButtonGroup.d.ts +1 -0
  27. package/dist/RadioButtonGroup.js +12 -0
  28. package/dist/RadioButtonGroup.js.map +1 -1
  29. package/dist/Select.d.ts +77 -13
  30. package/dist/Select.js +178 -28
  31. package/dist/Select.js.map +1 -1
  32. package/dist/SelectMenu.d.ts +113 -0
  33. package/dist/SelectMenu.js +241 -0
  34. package/dist/SelectMenu.js.map +1 -0
  35. package/dist/SelectMenuOption.d.ts +107 -0
  36. package/dist/SelectMenuOption.js +88 -0
  37. package/dist/SelectMenuOption.js.map +1 -0
  38. package/dist/StandardListItem.d.ts +6 -0
  39. package/dist/StandardListItem.js +6 -0
  40. package/dist/StandardListItem.js.map +1 -1
  41. package/dist/TabContainer.js +3 -2
  42. package/dist/TabContainer.js.map +1 -1
  43. package/dist/Table.d.ts +1 -7
  44. package/dist/Table.js.map +1 -1
  45. package/dist/TextArea.d.ts +1 -9
  46. package/dist/TextArea.js +1 -1
  47. package/dist/TextArea.js.map +1 -1
  48. package/dist/Toast.d.ts +0 -12
  49. package/dist/Toast.js.map +1 -1
  50. package/dist/Toolbar.d.ts +223 -0
  51. package/dist/Toolbar.js +467 -0
  52. package/dist/Toolbar.js.map +1 -0
  53. package/dist/ToolbarButton.d.ts +169 -0
  54. package/dist/ToolbarButton.js +113 -0
  55. package/dist/ToolbarButton.js.map +1 -0
  56. package/dist/ToolbarItem.d.ts +110 -0
  57. package/dist/ToolbarItem.js +104 -0
  58. package/dist/ToolbarItem.js.map +1 -0
  59. package/dist/ToolbarRegistry.d.ts +7 -0
  60. package/dist/ToolbarRegistry.js +22 -0
  61. package/dist/ToolbarRegistry.js.map +1 -0
  62. package/dist/ToolbarSelect.d.ts +112 -0
  63. package/dist/ToolbarSelect.js +155 -0
  64. package/dist/ToolbarSelect.js.map +1 -0
  65. package/dist/ToolbarSelectOption.d.ts +40 -0
  66. package/dist/ToolbarSelectOption.js +41 -0
  67. package/dist/ToolbarSelectOption.js.map +1 -0
  68. package/dist/ToolbarSeparator.d.ts +27 -0
  69. package/dist/ToolbarSeparator.js +54 -0
  70. package/dist/ToolbarSeparator.js.map +1 -0
  71. package/dist/ToolbarSpacer.d.ts +45 -0
  72. package/dist/ToolbarSpacer.js +60 -0
  73. package/dist/ToolbarSpacer.js.map +1 -0
  74. package/dist/api.json +1 -1
  75. package/dist/assets/Badge.59172fa9.css +1 -0
  76. package/dist/assets/SAP-icons.b9d52937.js +1 -0
  77. package/dist/assets/SelectMenu.b70fbe8e.css +1 -0
  78. package/dist/assets/Toolbar.d0c25006.css +1 -0
  79. package/dist/assets/messagebundle_ar.672ef75c.js +1 -0
  80. package/dist/assets/{messagebundle_bg.5e0f2a79.js → messagebundle_bg.e73efbfd.js} +1 -1
  81. package/dist/assets/messagebundle_ca.5af86ada.js +1 -0
  82. package/dist/assets/messagebundle_cs.501fa419.js +1 -0
  83. package/dist/assets/messagebundle_cy.8658f94b.js +1 -0
  84. package/dist/assets/messagebundle_da.95d6efd5.js +1 -0
  85. package/dist/assets/messagebundle_de.2bd7377d.js +1 -0
  86. package/dist/assets/{messagebundle_el.164e847b.js → messagebundle_el.a14b15b7.js} +1 -1
  87. package/dist/assets/messagebundle_en.e2541ea1.js +1 -0
  88. package/dist/assets/messagebundle_en_GB.29411c6f.js +1 -0
  89. package/dist/assets/{messagebundle_en_US_sappsd.6f3c36f1.js → messagebundle_en_US_sappsd.a65d6783.js} +1 -1
  90. package/dist/assets/messagebundle_en_US_saprigi.2138d358.js +1 -0
  91. package/dist/assets/messagebundle_en_US_saptrc.5c9ddf8f.js +1 -0
  92. package/dist/assets/messagebundle_es.a3c0d42d.js +1 -0
  93. package/dist/assets/messagebundle_es_MX.6724be6f.js +1 -0
  94. package/dist/assets/messagebundle_et.250e88be.js +1 -0
  95. package/dist/assets/messagebundle_fi.76c3acee.js +1 -0
  96. package/dist/assets/messagebundle_fr.46c3ae9f.js +1 -0
  97. package/dist/assets/messagebundle_fr_CA.039a9e64.js +1 -0
  98. package/dist/assets/messagebundle_hi.b607f033.js +1 -0
  99. package/dist/assets/messagebundle_hr.f5a1a020.js +1 -0
  100. package/dist/assets/messagebundle_hu.00746854.js +1 -0
  101. package/dist/assets/messagebundle_it.f9356b42.js +1 -0
  102. package/dist/assets/messagebundle_iw.f7c6182f.js +1 -0
  103. package/dist/assets/messagebundle_ja.36afc6e6.js +1 -0
  104. package/dist/assets/messagebundle_kk.8dced7ed.js +1 -0
  105. package/dist/assets/messagebundle_ko.16687a3e.js +1 -0
  106. package/dist/assets/messagebundle_lt.090b8171.js +1 -0
  107. package/dist/assets/messagebundle_lv.d5e607f3.js +1 -0
  108. package/dist/assets/messagebundle_ms.11284da7.js +1 -0
  109. package/dist/assets/messagebundle_nl.146dcd1d.js +1 -0
  110. package/dist/assets/messagebundle_no.7333688c.js +1 -0
  111. package/dist/assets/messagebundle_pl.7cf054d7.js +1 -0
  112. package/dist/assets/messagebundle_pt.fb5ea8a2.js +1 -0
  113. package/dist/assets/messagebundle_pt_PT.04417def.js +1 -0
  114. package/dist/assets/messagebundle_ro.3f2abc24.js +1 -0
  115. package/dist/assets/{messagebundle_ru.29504567.js → messagebundle_ru.4c5b2ac3.js} +1 -1
  116. package/dist/assets/messagebundle_sh.88f55e7f.js +1 -0
  117. package/dist/assets/messagebundle_sk.38547ac3.js +1 -0
  118. package/dist/assets/messagebundle_sl.46e1fdb5.js +1 -0
  119. package/dist/assets/messagebundle_sv.2746375e.js +1 -0
  120. package/dist/assets/{messagebundle_th.e0214cc0.js → messagebundle_th.0edd3aae.js} +1 -1
  121. package/dist/assets/messagebundle_tr.195e2f4d.js +1 -0
  122. package/dist/assets/messagebundle_uk.dd7b93a0.js +1 -0
  123. package/dist/assets/messagebundle_vi.5a52b63c.js +1 -0
  124. package/dist/assets/messagebundle_zh_CN.b0c622ac.js +1 -0
  125. package/dist/assets/messagebundle_zh_TW.8b332a51.js +1 -0
  126. package/dist/assets/parameters-bundle.css.0a6b03e8.js +1 -0
  127. package/dist/assets/parameters-bundle.css.1a4b088e.js +1 -0
  128. package/dist/assets/parameters-bundle.css.2dfa83be.js +1 -0
  129. package/dist/assets/parameters-bundle.css.40fcba94.js +1 -0
  130. package/dist/assets/parameters-bundle.css.4a4761c6.js +1 -0
  131. package/dist/assets/parameters-bundle.css.4bcedf17.js +1 -0
  132. package/dist/assets/parameters-bundle.css.4f80310f.js +1 -0
  133. package/dist/assets/parameters-bundle.css.9a44c6bf.js +1 -0
  134. package/dist/assets/parameters-bundle.css.a16aa355.js +1 -0
  135. package/dist/assets/parameters-bundle.css.a7763b9f.js +1 -0
  136. package/dist/assets/parameters-bundle.css.b81d409c.js +1 -0
  137. package/dist/assets/parameters-bundle.css.c9aa1cdc.js +1 -0
  138. package/dist/assets/parameters-bundle.css.db9f7bae.js +1 -0
  139. package/dist/assets/parameters-bundle.css.f11945d6.js +1 -0
  140. package/dist/assets/parameters-bundle.css.fd16a5ed.js +1 -0
  141. package/dist/assets/test/pages/{ComboBox.html.305d4654.js → ComboBox.html.b2c363d8.js} +1 -1
  142. package/dist/assets/test/pages/{Icon.html.1457391d.js → Icon.html.0d7ec84c.js} +1 -1
  143. package/dist/assets/test/pages/{Label.html.d56b6a0a.js → Label.html.4dc9a948.js} +1 -1
  144. package/dist/assets/test/pages/{Popups.html.3b5e892c.js → Popups.html.52447a96.js} +1 -1
  145. package/dist/css/themes/Avatar.css +1 -1
  146. package/dist/css/themes/AvatarGroup.css +1 -1
  147. package/dist/css/themes/Badge.css +1 -1
  148. package/dist/css/themes/Breadcrumbs.css +1 -1
  149. package/dist/css/themes/BusyIndicator.css +1 -1
  150. package/dist/css/themes/Button.css +1 -1
  151. package/dist/css/themes/Calendar.css +1 -1
  152. package/dist/css/themes/CalendarHeader.css +1 -1
  153. package/dist/css/themes/Card.css +1 -1
  154. package/dist/css/themes/CardHeader.css +1 -1
  155. package/dist/css/themes/Carousel.css +1 -1
  156. package/dist/css/themes/CheckBox.css +1 -1
  157. package/dist/css/themes/ColorPalette.css +1 -1
  158. package/dist/css/themes/ColorPaletteItem.css +1 -1
  159. package/dist/css/themes/ColorPalettePopover.css +1 -1
  160. package/dist/css/themes/ColorPicker.css +1 -1
  161. package/dist/css/themes/ComboBox.css +1 -1
  162. package/dist/css/themes/CustomListItem.css +1 -1
  163. package/dist/css/themes/DatePicker.css +1 -1
  164. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  165. package/dist/css/themes/DayPicker.css +1 -1
  166. package/dist/css/themes/Dialog.css +1 -1
  167. package/dist/css/themes/FileUploader.css +1 -1
  168. package/dist/css/themes/GroupHeaderListItem.css +1 -1
  169. package/dist/css/themes/GrowingButton.css +1 -1
  170. package/dist/css/themes/Icon.css +1 -1
  171. package/dist/css/themes/Input.css +1 -1
  172. package/dist/css/themes/InputIcon.css +1 -1
  173. package/dist/css/themes/Link.css +1 -1
  174. package/dist/css/themes/List.css +1 -1
  175. package/dist/css/themes/ListItem.css +1 -1
  176. package/dist/css/themes/ListItemBase.css +1 -1
  177. package/dist/css/themes/Menu.css +1 -1
  178. package/dist/css/themes/MessageStrip.css +1 -1
  179. package/dist/css/themes/MonthPicker.css +1 -1
  180. package/dist/css/themes/MultiComboBox.css +1 -1
  181. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  182. package/dist/css/themes/MultiInput.css +1 -1
  183. package/dist/css/themes/Panel.css +1 -1
  184. package/dist/css/themes/Popover.css +1 -1
  185. package/dist/css/themes/PopupsCommon.css +1 -1
  186. package/dist/css/themes/ProgressIndicator.css +1 -1
  187. package/dist/css/themes/RadioButton.css +1 -1
  188. package/dist/css/themes/RangeSlider.css +1 -1
  189. package/dist/css/themes/RatingIndicator.css +1 -1
  190. package/dist/css/themes/ResponsivePopover.css +1 -1
  191. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  192. package/dist/css/themes/SegmentedButton.css +1 -1
  193. package/dist/css/themes/Select.css +1 -1
  194. package/dist/css/themes/SelectMenu.css +1 -0
  195. package/dist/css/themes/SelectPopover.css +1 -1
  196. package/dist/css/themes/SliderBase.css +1 -1
  197. package/dist/css/themes/SplitButton.css +1 -1
  198. package/dist/css/themes/StepInput.css +1 -1
  199. package/dist/css/themes/Suggestions.css +1 -1
  200. package/dist/css/themes/Switch.css +1 -1
  201. package/dist/css/themes/TabContainer.css +1 -1
  202. package/dist/css/themes/TabInOverflow.css +1 -1
  203. package/dist/css/themes/TabInStrip.css +1 -1
  204. package/dist/css/themes/TabSemanticIcon.css +1 -1
  205. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  206. package/dist/css/themes/Table.css +1 -1
  207. package/dist/css/themes/TableCell.css +1 -1
  208. package/dist/css/themes/TableColumn.css +1 -1
  209. package/dist/css/themes/TableGroupRow.css +1 -1
  210. package/dist/css/themes/TableRow.css +1 -1
  211. package/dist/css/themes/TextArea.css +2 -2
  212. package/dist/css/themes/TimePicker.css +1 -1
  213. package/dist/css/themes/Toast.css +1 -1
  214. package/dist/css/themes/ToggleButton.css +1 -1
  215. package/dist/css/themes/Token.css +1 -1
  216. package/dist/css/themes/Tokenizer.css +1 -1
  217. package/dist/css/themes/TokenizerPopover.css +1 -1
  218. package/dist/css/themes/Toolbar.css +1 -0
  219. package/dist/css/themes/ToolbarButtonPopover.css +1 -0
  220. package/dist/css/themes/ToolbarPopover.css +1 -0
  221. package/dist/css/themes/TreeItem.css +1 -1
  222. package/dist/css/themes/ValueStateMessage.css +1 -1
  223. package/dist/css/themes/WheelSlider.css +1 -1
  224. package/dist/css/themes/YearPicker.css +1 -1
  225. package/dist/css/themes/sap_belize/parameters-bundle.css +1 -1
  226. package/dist/css/themes/sap_belize_hcb/parameters-bundle.css +1 -1
  227. package/dist/css/themes/sap_belize_hcw/parameters-bundle.css +1 -1
  228. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  229. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  230. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  231. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  232. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  233. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  234. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  235. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  236. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  237. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  238. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  239. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  240. package/dist/custom-elements.json +1 -1
  241. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  242. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  243. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  244. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  245. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  246. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  247. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  248. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  249. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  250. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  251. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  252. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  253. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  254. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  255. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  256. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  257. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  258. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  259. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  260. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  261. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  262. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  263. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  264. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  265. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  266. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  267. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  268. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  269. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  270. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  271. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  272. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  273. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  274. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  275. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  276. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  277. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  278. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  279. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  280. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  281. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  282. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  283. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  284. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  285. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  286. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  287. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  288. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  289. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  290. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  291. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  292. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  293. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  294. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  295. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  296. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  297. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  298. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  299. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  300. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  301. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  302. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  303. package/dist/generated/i18n/i18n-defaults.d.ts +3 -1
  304. package/dist/generated/i18n/i18n-defaults.js +3 -1
  305. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  306. package/dist/generated/templates/AvatarTemplate.lit.js +2 -2
  307. package/dist/generated/templates/AvatarTemplate.lit.js.map +1 -1
  308. package/dist/generated/templates/BusyIndicatorTemplate.lit.js +1 -1
  309. package/dist/generated/templates/BusyIndicatorTemplate.lit.js.map +1 -1
  310. package/dist/generated/templates/CustomListItemTemplate.lit.js +8 -8
  311. package/dist/generated/templates/CustomListItemTemplate.lit.js.map +1 -1
  312. package/dist/generated/templates/ListItemTemplate.lit.js +8 -8
  313. package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
  314. package/dist/generated/templates/SelectMenuTemplate.lit.d.ts +4 -0
  315. package/dist/generated/templates/SelectMenuTemplate.lit.js +15 -0
  316. package/dist/generated/templates/SelectMenuTemplate.lit.js.map +1 -0
  317. package/dist/generated/templates/SelectTemplate.lit.js +4 -2
  318. package/dist/generated/templates/SelectTemplate.lit.js.map +1 -1
  319. package/dist/generated/templates/StandardListItemTemplate.lit.js +8 -8
  320. package/dist/generated/templates/StandardListItemTemplate.lit.js.map +1 -1
  321. package/dist/generated/templates/SuggestionListItemTemplate.lit.js +8 -8
  322. package/dist/generated/templates/SuggestionListItemTemplate.lit.js.map +1 -1
  323. package/dist/generated/templates/ToolbarButtonTemplate.lit.d.ts +4 -0
  324. package/dist/generated/templates/ToolbarButtonTemplate.lit.js +5 -0
  325. package/dist/generated/templates/ToolbarButtonTemplate.lit.js.map +1 -0
  326. package/dist/generated/templates/ToolbarPopoverButtonTemplate.lit.d.ts +4 -0
  327. package/dist/generated/templates/ToolbarPopoverButtonTemplate.lit.js +5 -0
  328. package/dist/generated/templates/ToolbarPopoverButtonTemplate.lit.js.map +1 -0
  329. package/dist/generated/templates/ToolbarPopoverSelectTemplate.lit.d.ts +4 -0
  330. package/dist/generated/templates/ToolbarPopoverSelectTemplate.lit.js +6 -0
  331. package/dist/generated/templates/ToolbarPopoverSelectTemplate.lit.js.map +1 -0
  332. package/dist/generated/templates/ToolbarPopoverSeparatorTemplate.lit.d.ts +4 -0
  333. package/dist/generated/templates/ToolbarPopoverSeparatorTemplate.lit.js +5 -0
  334. package/dist/generated/templates/ToolbarPopoverSeparatorTemplate.lit.js.map +1 -0
  335. package/dist/generated/templates/ToolbarPopoverTemplate.lit.d.ts +4 -0
  336. package/dist/generated/templates/ToolbarPopoverTemplate.lit.js +6 -0
  337. package/dist/generated/templates/ToolbarPopoverTemplate.lit.js.map +1 -0
  338. package/dist/generated/templates/ToolbarSelectTemplate.lit.d.ts +4 -0
  339. package/dist/generated/templates/ToolbarSelectTemplate.lit.js +6 -0
  340. package/dist/generated/templates/ToolbarSelectTemplate.lit.js.map +1 -0
  341. package/dist/generated/templates/ToolbarSeparatorTemplate.lit.d.ts +4 -0
  342. package/dist/generated/templates/ToolbarSeparatorTemplate.lit.js +5 -0
  343. package/dist/generated/templates/ToolbarSeparatorTemplate.lit.js.map +1 -0
  344. package/dist/generated/templates/ToolbarSpacerTemplate.lit.d.ts +4 -0
  345. package/dist/generated/templates/ToolbarSpacerTemplate.lit.js +5 -0
  346. package/dist/generated/templates/ToolbarSpacerTemplate.lit.js.map +1 -0
  347. package/dist/generated/templates/ToolbarTemplate.lit.d.ts +4 -0
  348. package/dist/generated/templates/ToolbarTemplate.lit.js +6 -0
  349. package/dist/generated/templates/ToolbarTemplate.lit.js.map +1 -0
  350. package/dist/generated/templates/TreeItemBaseTemplate.lit.js +8 -8
  351. package/dist/generated/templates/TreeItemBaseTemplate.lit.js.map +1 -1
  352. package/dist/generated/templates/TreeItemCustomTemplate.lit.js +8 -8
  353. package/dist/generated/templates/TreeItemCustomTemplate.lit.js.map +1 -1
  354. package/dist/generated/templates/TreeItemTemplate.lit.js +8 -8
  355. package/dist/generated/templates/TreeItemTemplate.lit.js.map +1 -1
  356. package/dist/generated/themes/Avatar.css.js +1 -1
  357. package/dist/generated/themes/Avatar.css.js.map +1 -1
  358. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  359. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  360. package/dist/generated/themes/Badge.css.js +1 -1
  361. package/dist/generated/themes/Badge.css.js.map +1 -1
  362. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  363. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  364. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  365. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  366. package/dist/generated/themes/Button.css.js +1 -1
  367. package/dist/generated/themes/Button.css.js.map +1 -1
  368. package/dist/generated/themes/Calendar.css.js +1 -1
  369. package/dist/generated/themes/Calendar.css.js.map +1 -1
  370. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  371. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  372. package/dist/generated/themes/Card.css.js +1 -1
  373. package/dist/generated/themes/Card.css.js.map +1 -1
  374. package/dist/generated/themes/CardHeader.css.js +1 -1
  375. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  376. package/dist/generated/themes/Carousel.css.js +1 -1
  377. package/dist/generated/themes/Carousel.css.js.map +1 -1
  378. package/dist/generated/themes/CheckBox.css.js +1 -1
  379. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  380. package/dist/generated/themes/ColorPalette.css.js +1 -1
  381. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  382. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  383. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  384. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  385. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  386. package/dist/generated/themes/ColorPicker.css.js +1 -1
  387. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  388. package/dist/generated/themes/ComboBox.css.js +1 -1
  389. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  390. package/dist/generated/themes/CustomListItem.css.js +1 -1
  391. package/dist/generated/themes/CustomListItem.css.js.map +1 -1
  392. package/dist/generated/themes/DatePicker.css.js +1 -1
  393. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  394. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  395. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  396. package/dist/generated/themes/DayPicker.css.js +1 -1
  397. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  398. package/dist/generated/themes/Dialog.css.js +1 -1
  399. package/dist/generated/themes/Dialog.css.js.map +1 -1
  400. package/dist/generated/themes/FileUploader.css.js +1 -1
  401. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  402. package/dist/generated/themes/GroupHeaderListItem.css.js +1 -1
  403. package/dist/generated/themes/GroupHeaderListItem.css.js.map +1 -1
  404. package/dist/generated/themes/GrowingButton.css.js +1 -1
  405. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  406. package/dist/generated/themes/Icon.css.js +1 -1
  407. package/dist/generated/themes/Icon.css.js.map +1 -1
  408. package/dist/generated/themes/Input.css.js +1 -1
  409. package/dist/generated/themes/Input.css.js.map +1 -1
  410. package/dist/generated/themes/InputIcon.css.js +1 -1
  411. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  412. package/dist/generated/themes/Link.css.js +1 -1
  413. package/dist/generated/themes/Link.css.js.map +1 -1
  414. package/dist/generated/themes/List.css.js +1 -1
  415. package/dist/generated/themes/List.css.js.map +1 -1
  416. package/dist/generated/themes/ListItem.css.js +1 -1
  417. package/dist/generated/themes/ListItem.css.js.map +1 -1
  418. package/dist/generated/themes/ListItemBase.css.js +1 -1
  419. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  420. package/dist/generated/themes/Menu.css.js +1 -1
  421. package/dist/generated/themes/Menu.css.js.map +1 -1
  422. package/dist/generated/themes/MessageStrip.css.js +1 -1
  423. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  424. package/dist/generated/themes/MonthPicker.css.js +1 -1
  425. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  426. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  427. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  428. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  429. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  430. package/dist/generated/themes/MultiInput.css.js +1 -1
  431. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  432. package/dist/generated/themes/Panel.css.js +1 -1
  433. package/dist/generated/themes/Panel.css.js.map +1 -1
  434. package/dist/generated/themes/Popover.css.js +1 -1
  435. package/dist/generated/themes/Popover.css.js.map +1 -1
  436. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  437. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  438. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  439. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  440. package/dist/generated/themes/RadioButton.css.js +1 -1
  441. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  442. package/dist/generated/themes/RangeSlider.css.js +1 -1
  443. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  444. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  445. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  446. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  447. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  448. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  449. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  450. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  451. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  452. package/dist/generated/themes/Select.css.js +1 -1
  453. package/dist/generated/themes/Select.css.js.map +1 -1
  454. package/dist/generated/themes/SelectMenu.css.d.ts +3 -0
  455. package/dist/generated/themes/SelectMenu.css.js +8 -0
  456. package/dist/generated/themes/SelectMenu.css.js.map +1 -0
  457. package/dist/generated/themes/SelectMenuOption.css.d.ts +3 -0
  458. package/dist/generated/themes/SelectMenuOption.css.js +8 -0
  459. package/dist/generated/themes/SelectMenuOption.css.js.map +1 -0
  460. package/dist/generated/themes/SelectPopover.css.js +1 -1
  461. package/dist/generated/themes/SelectPopover.css.js.map +1 -1
  462. package/dist/generated/themes/SliderBase.css.js +1 -1
  463. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  464. package/dist/generated/themes/SplitButton.css.js +1 -1
  465. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  466. package/dist/generated/themes/StepInput.css.js +1 -1
  467. package/dist/generated/themes/StepInput.css.js.map +1 -1
  468. package/dist/generated/themes/Suggestions.css.js +1 -1
  469. package/dist/generated/themes/Suggestions.css.js.map +1 -1
  470. package/dist/generated/themes/Switch.css.js +1 -1
  471. package/dist/generated/themes/Switch.css.js.map +1 -1
  472. package/dist/generated/themes/TabContainer.css.js +1 -1
  473. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  474. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  475. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  476. package/dist/generated/themes/TabInStrip.css.js +1 -1
  477. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  478. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  479. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  480. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  481. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  482. package/dist/generated/themes/Table.css.js +1 -1
  483. package/dist/generated/themes/Table.css.js.map +1 -1
  484. package/dist/generated/themes/TableCell.css.js +1 -1
  485. package/dist/generated/themes/TableCell.css.js.map +1 -1
  486. package/dist/generated/themes/TableColumn.css.js +1 -1
  487. package/dist/generated/themes/TableColumn.css.js.map +1 -1
  488. package/dist/generated/themes/TableGroupRow.css.js +1 -1
  489. package/dist/generated/themes/TableGroupRow.css.js.map +1 -1
  490. package/dist/generated/themes/TableRow.css.js +1 -1
  491. package/dist/generated/themes/TableRow.css.js.map +1 -1
  492. package/dist/generated/themes/TextArea.css.js +1 -1
  493. package/dist/generated/themes/TextArea.css.js.map +1 -1
  494. package/dist/generated/themes/TimePicker.css.js +1 -1
  495. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  496. package/dist/generated/themes/Toast.css.js +1 -1
  497. package/dist/generated/themes/Toast.css.js.map +1 -1
  498. package/dist/generated/themes/ToggleButton.css.js +1 -1
  499. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  500. package/dist/generated/themes/Token.css.js +1 -1
  501. package/dist/generated/themes/Token.css.js.map +1 -1
  502. package/dist/generated/themes/Tokenizer.css.js +1 -1
  503. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  504. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  505. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  506. package/dist/generated/themes/Toolbar.css.d.ts +3 -0
  507. package/dist/generated/themes/Toolbar.css.js +8 -0
  508. package/dist/generated/themes/Toolbar.css.js.map +1 -0
  509. package/dist/generated/themes/ToolbarButtonPopover.css.d.ts +3 -0
  510. package/dist/generated/themes/ToolbarButtonPopover.css.js +8 -0
  511. package/dist/generated/themes/ToolbarButtonPopover.css.js.map +1 -0
  512. package/dist/generated/themes/ToolbarPopover.css.d.ts +3 -0
  513. package/dist/generated/themes/ToolbarPopover.css.js +8 -0
  514. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -0
  515. package/dist/generated/themes/TreeItem.css.js +1 -1
  516. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  517. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  518. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  519. package/dist/generated/themes/WheelSlider.css.js +1 -1
  520. package/dist/generated/themes/WheelSlider.css.js.map +1 -1
  521. package/dist/generated/themes/YearPicker.css.js +1 -1
  522. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  523. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  524. package/dist/generated/themes/sap_belize/parameters-bundle.css.js.map +1 -1
  525. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  526. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js.map +1 -1
  527. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  528. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js.map +1 -1
  529. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  530. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  531. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  532. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  533. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  534. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  535. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  536. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  537. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  538. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  539. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  540. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  541. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  542. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  543. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  544. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  545. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  546. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  547. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  548. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  549. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  550. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  551. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  552. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  553. package/dist/i18n/messagebundle.properties +6 -0
  554. package/dist/i18n/messagebundle_ar.properties +2 -0
  555. package/dist/i18n/messagebundle_bg.properties +2 -0
  556. package/dist/i18n/messagebundle_ca.properties +2 -0
  557. package/dist/i18n/messagebundle_cs.properties +2 -0
  558. package/dist/i18n/messagebundle_cy.properties +2 -0
  559. package/dist/i18n/messagebundle_da.properties +2 -0
  560. package/dist/i18n/messagebundle_de.properties +2 -0
  561. package/dist/i18n/messagebundle_el.properties +2 -0
  562. package/dist/i18n/messagebundle_en.properties +2 -0
  563. package/dist/i18n/messagebundle_en_GB.properties +2 -0
  564. package/dist/i18n/messagebundle_en_US_sappsd.properties +2 -0
  565. package/dist/i18n/messagebundle_en_US_saprigi.properties +4 -0
  566. package/dist/i18n/messagebundle_en_US_saptrc.properties +2 -0
  567. package/dist/i18n/messagebundle_es.properties +2 -0
  568. package/dist/i18n/messagebundle_es_MX.properties +2 -0
  569. package/dist/i18n/messagebundle_et.properties +2 -0
  570. package/dist/i18n/messagebundle_fi.properties +2 -0
  571. package/dist/i18n/messagebundle_fr.properties +2 -0
  572. package/dist/i18n/messagebundle_fr_CA.properties +2 -0
  573. package/dist/i18n/messagebundle_hi.properties +2 -0
  574. package/dist/i18n/messagebundle_hr.properties +2 -0
  575. package/dist/i18n/messagebundle_hu.properties +2 -0
  576. package/dist/i18n/messagebundle_id.properties +2 -0
  577. package/dist/i18n/messagebundle_it.properties +2 -0
  578. package/dist/i18n/messagebundle_iw.properties +2 -0
  579. package/dist/i18n/messagebundle_ja.properties +2 -0
  580. package/dist/i18n/messagebundle_kk.properties +2 -0
  581. package/dist/i18n/messagebundle_ko.properties +2 -0
  582. package/dist/i18n/messagebundle_lt.properties +2 -0
  583. package/dist/i18n/messagebundle_lv.properties +2 -0
  584. package/dist/i18n/messagebundle_ms.properties +2 -0
  585. package/dist/i18n/messagebundle_nl.properties +2 -0
  586. package/dist/i18n/messagebundle_no.properties +2 -0
  587. package/dist/i18n/messagebundle_pl.properties +2 -0
  588. package/dist/i18n/messagebundle_pt.properties +2 -0
  589. package/dist/i18n/messagebundle_pt_PT.properties +2 -0
  590. package/dist/i18n/messagebundle_ro.properties +2 -0
  591. package/dist/i18n/messagebundle_ru.properties +2 -0
  592. package/dist/i18n/messagebundle_sh.properties +2 -0
  593. package/dist/i18n/messagebundle_sk.properties +2 -0
  594. package/dist/i18n/messagebundle_sl.properties +2 -0
  595. package/dist/i18n/messagebundle_sv.properties +2 -0
  596. package/dist/i18n/messagebundle_th.properties +2 -0
  597. package/dist/i18n/messagebundle_tr.properties +2 -0
  598. package/dist/i18n/messagebundle_uk.properties +2 -0
  599. package/dist/i18n/messagebundle_vi.properties +2 -0
  600. package/dist/i18n/messagebundle_zh_CN.properties +2 -0
  601. package/dist/i18n/messagebundle_zh_TW.properties +2 -0
  602. package/dist/test/pages/72override.html +1 -1
  603. package/dist/test/pages/AnimanitionOff.html +1 -1
  604. package/dist/test/pages/Avatar.html +7 -3
  605. package/dist/test/pages/AvatarGroup.html +1 -1
  606. package/dist/test/pages/Badge.html +8 -15
  607. package/dist/test/pages/Breadcrumbs.html +1 -1
  608. package/dist/test/pages/BusyIndicator.html +1 -1
  609. package/dist/test/pages/Button.html +1 -1
  610. package/dist/test/pages/ButtonDesign.html +1 -1
  611. package/dist/test/pages/Calendar.html +1 -1
  612. package/dist/test/pages/Card.html +1 -1
  613. package/dist/test/pages/Carousel.html +1 -1
  614. package/dist/test/pages/CheckBox.html +1 -1
  615. package/dist/test/pages/ColorPalette.html +1 -1
  616. package/dist/test/pages/ColorPalettePopover.html +1 -1
  617. package/dist/test/pages/ColorPicker.html +1 -1
  618. package/dist/test/pages/ComboBox.html +2 -2
  619. package/dist/test/pages/Components.html +1 -1
  620. package/dist/test/pages/CoreControls.html +1 -1
  621. package/dist/test/pages/CoreControls_exp.html +1 -1
  622. package/dist/test/pages/CustomCSS.html +1 -1
  623. package/dist/test/pages/DatePicker.html +1 -1
  624. package/dist/test/pages/DatePicker_test_page.html +1 -1
  625. package/dist/test/pages/DateRangePicker.html +1 -1
  626. package/dist/test/pages/DateTimePicker.html +1 -1
  627. package/dist/test/pages/DateTimePicker_Timezone.html +1 -1
  628. package/dist/test/pages/DayPicker.html +1 -1
  629. package/dist/test/pages/Dialog.html +1 -1
  630. package/dist/test/pages/DialogLifecycle.html +1 -1
  631. package/dist/test/pages/DialogSemantic.html +1 -1
  632. package/dist/test/pages/Eventing.html +1 -1
  633. package/dist/test/pages/F6Test1.html +1 -1
  634. package/dist/test/pages/F6Test2.html +1 -1
  635. package/dist/test/pages/F6Test3.html +1 -1
  636. package/dist/test/pages/F6Test4.html +1 -1
  637. package/dist/test/pages/F6Test5.html +1 -1
  638. package/dist/test/pages/F6Test6.html +1 -1
  639. package/dist/test/pages/F6Test7.html +1 -1
  640. package/dist/test/pages/FileUploader.html +1 -1
  641. package/dist/test/pages/FontFace.html +1 -1
  642. package/dist/test/pages/FormComponents.html +1 -1
  643. package/dist/test/pages/FormSupport.html +1 -1
  644. package/dist/test/pages/HCB.html +1 -1
  645. package/dist/test/pages/Icon.html +2 -2
  646. package/dist/test/pages/Icon_and_theming.html +1 -1
  647. package/dist/test/pages/Icon_custom.html +1 -1
  648. package/dist/test/pages/Input.html +1 -1
  649. package/dist/test/pages/InputFieldLabels.html +1 -1
  650. package/dist/test/pages/InputFieldMinWidth.html +1 -1
  651. package/dist/test/pages/InputIcons.html +1 -1
  652. package/dist/test/pages/Input_quickview.html +1 -1
  653. package/dist/test/pages/Input_variations.html +1 -1
  654. package/dist/test/pages/InputsAlignment.html +1 -1
  655. package/dist/test/pages/InputsLazyLoading.html +1 -1
  656. package/dist/test/pages/ItemNavigation.html +1 -1
  657. package/dist/test/pages/Kitchen.html +1 -1
  658. package/dist/test/pages/Kitchen.openui5.html +1 -1
  659. package/dist/test/pages/Label.html +2 -2
  660. package/dist/test/pages/Link.html +1 -1
  661. package/dist/test/pages/List.html +1 -1
  662. package/dist/test/pages/ListGrowing_Button.html +1 -1
  663. package/dist/test/pages/ListGrowing_Scroll.html +1 -1
  664. package/dist/test/pages/List_keyboard_support.html +1 -1
  665. package/dist/test/pages/List_test_page.html +1 -1
  666. package/dist/test/pages/LitKeyFunction.html +1 -1
  667. package/dist/test/pages/MemoryLeak.html +1 -1
  668. package/dist/test/pages/Menu.html +1 -1
  669. package/dist/test/pages/MessagePage.html +1 -1
  670. package/dist/test/pages/MessageStrip.html +1 -1
  671. package/dist/test/pages/MultiComboBox.html +1 -1
  672. package/dist/test/pages/MultiInput.html +1 -1
  673. package/dist/test/pages/MultiInput_Suggestions.html +1 -1
  674. package/dist/test/pages/OpenUI5-second.html +1 -1
  675. package/dist/test/pages/OpenUI5.html +1 -1
  676. package/dist/test/pages/OpenUI5Nightly.html +1 -1
  677. package/dist/test/pages/Panel.html +1 -1
  678. package/dist/test/pages/Popover.html +1 -1
  679. package/dist/test/pages/PopoverArrowBounds.html +1 -1
  680. package/dist/test/pages/Popups.html +2 -2
  681. package/dist/test/pages/ProgressIndicator.html +1 -1
  682. package/dist/test/pages/RTL.html +1 -1
  683. package/dist/test/pages/RadioButton.html +2 -2
  684. package/dist/test/pages/RangeSlider.html +1 -1
  685. package/dist/test/pages/RatingIndicator.html +1 -1
  686. package/dist/test/pages/ResizeHandler.html +1 -1
  687. package/dist/test/pages/ResponsivePopover.html +1 -1
  688. package/dist/test/pages/SegmentedButton.html +1 -1
  689. package/dist/test/pages/Select.html +1 -1
  690. package/dist/test/pages/SelectMenu.html +245 -0
  691. package/dist/test/pages/SelectMenuLifecycle.html +123 -0
  692. package/dist/test/pages/Simple.html +1 -1
  693. package/dist/test/pages/Slider.html +1 -1
  694. package/dist/test/pages/SplitButton.html +1 -1
  695. package/dist/test/pages/StepInput.html +1 -1
  696. package/dist/test/pages/Switch.html +1 -1
  697. package/dist/test/pages/TabContainer.html +1 -1
  698. package/dist/test/pages/Table-perf-pure.html +1 -1
  699. package/dist/test/pages/Table-perf.html +1 -1
  700. package/dist/test/pages/Table.html +1 -1
  701. package/dist/test/pages/Table2.html +1 -1
  702. package/dist/test/pages/TableAllPopin.html +1 -1
  703. package/dist/test/pages/TableCustomStyling.html +1 -1
  704. package/dist/test/pages/TableGrouping.html +1 -1
  705. package/dist/test/pages/TableGrowingWithButton.html +1 -1
  706. package/dist/test/pages/TableGrowingWithScroll.html +1 -1
  707. package/dist/test/pages/TableSelection.html +1 -1
  708. package/dist/test/pages/TextArea.html +1 -1
  709. package/dist/test/pages/TimePicker.html +1 -1
  710. package/dist/test/pages/TimePickerClock.html +1 -1
  711. package/dist/test/pages/TimeSelection.html +1 -1
  712. package/dist/test/pages/TimeSelectionClocks.html +1 -1
  713. package/dist/test/pages/Title.html +1 -1
  714. package/dist/test/pages/Toast.html +1 -1
  715. package/dist/test/pages/ToggleButton.html +1 -1
  716. package/dist/test/pages/Tokenizer.html +1 -1
  717. package/dist/test/pages/Toolbar.html +288 -0
  718. package/dist/test/pages/ToolbarButton.html +48 -0
  719. package/dist/test/pages/ToolbarSelect.html +65 -0
  720. package/dist/test/pages/Tree.html +1 -1
  721. package/dist/test/pages/TreeDynamic.html +1 -1
  722. package/dist/test/pages/WheelSlider_Test_Page.html +1 -1
  723. package/dist/test/pages/base/AriaLabelHelper.html +1 -1
  724. package/dist/test/pages/base/DOMObserver.html +1 -1
  725. package/dist/test/pages/base/IconCollection.html +1 -1
  726. package/dist/test/pages/base/IconCollectionInCustomTheme.html +1 -1
  727. package/dist/test/pages/base/IgnoreCustomElements.html +1 -1
  728. package/dist/test/pages/base/InvisibleMessage.html +1 -1
  729. package/dist/test/pages/form.html +1 -1
  730. package/dist/test/pages/i18n-defaultLang.html +1 -1
  731. package/dist/test/pages/i18n-demo.html +1 -1
  732. package/dist/types/ToolbarAlign.d.ts +25 -0
  733. package/dist/types/ToolbarAlign.js +27 -0
  734. package/dist/types/ToolbarAlign.js.map +1 -0
  735. package/dist/types/ToolbarItemOverflowBehavior.d.ts +31 -0
  736. package/dist/types/ToolbarItemOverflowBehavior.js +33 -0
  737. package/dist/types/ToolbarItemOverflowBehavior.js.map +1 -0
  738. package/package.json +8 -8
  739. package/src/Avatar.hbs +2 -1
  740. package/src/BusyIndicator.hbs +1 -1
  741. package/src/ListItem.hbs +5 -1
  742. package/src/Select.hbs +5 -1
  743. package/src/SelectMenu.hbs +57 -0
  744. package/src/Toolbar.hbs +20 -0
  745. package/src/ToolbarButton.hbs +19 -0
  746. package/src/ToolbarPopover.hbs +14 -0
  747. package/src/ToolbarPopoverButton.hbs +16 -0
  748. package/src/ToolbarPopoverSelect.hbs +12 -0
  749. package/src/ToolbarPopoverSeparator.hbs +5 -0
  750. package/src/ToolbarSelect.hbs +13 -0
  751. package/src/ToolbarSeparator.hbs +4 -0
  752. package/src/ToolbarSpacer.hbs +6 -0
  753. package/src/i18n/messagebundle.properties +6 -0
  754. package/src/i18n/messagebundle_ar.properties +2 -0
  755. package/src/i18n/messagebundle_bg.properties +2 -0
  756. package/src/i18n/messagebundle_ca.properties +2 -0
  757. package/src/i18n/messagebundle_cs.properties +2 -0
  758. package/src/i18n/messagebundle_cy.properties +2 -0
  759. package/src/i18n/messagebundle_da.properties +2 -0
  760. package/src/i18n/messagebundle_de.properties +2 -0
  761. package/src/i18n/messagebundle_el.properties +2 -0
  762. package/src/i18n/messagebundle_en.properties +2 -0
  763. package/src/i18n/messagebundle_en_GB.properties +2 -0
  764. package/src/i18n/messagebundle_en_US_sappsd.properties +2 -0
  765. package/src/i18n/messagebundle_en_US_saprigi.properties +4 -0
  766. package/src/i18n/messagebundle_en_US_saptrc.properties +2 -0
  767. package/src/i18n/messagebundle_es.properties +2 -0
  768. package/src/i18n/messagebundle_es_MX.properties +2 -0
  769. package/src/i18n/messagebundle_et.properties +2 -0
  770. package/src/i18n/messagebundle_fi.properties +2 -0
  771. package/src/i18n/messagebundle_fr.properties +2 -0
  772. package/src/i18n/messagebundle_fr_CA.properties +2 -0
  773. package/src/i18n/messagebundle_hi.properties +2 -0
  774. package/src/i18n/messagebundle_hr.properties +2 -0
  775. package/src/i18n/messagebundle_hu.properties +2 -0
  776. package/src/i18n/messagebundle_id.properties +2 -0
  777. package/src/i18n/messagebundle_it.properties +2 -0
  778. package/src/i18n/messagebundle_iw.properties +2 -0
  779. package/src/i18n/messagebundle_ja.properties +2 -0
  780. package/src/i18n/messagebundle_kk.properties +2 -0
  781. package/src/i18n/messagebundle_ko.properties +2 -0
  782. package/src/i18n/messagebundle_lt.properties +2 -0
  783. package/src/i18n/messagebundle_lv.properties +2 -0
  784. package/src/i18n/messagebundle_ms.properties +2 -0
  785. package/src/i18n/messagebundle_nl.properties +2 -0
  786. package/src/i18n/messagebundle_no.properties +2 -0
  787. package/src/i18n/messagebundle_pl.properties +2 -0
  788. package/src/i18n/messagebundle_pt.properties +2 -0
  789. package/src/i18n/messagebundle_pt_PT.properties +2 -0
  790. package/src/i18n/messagebundle_ro.properties +2 -0
  791. package/src/i18n/messagebundle_ru.properties +2 -0
  792. package/src/i18n/messagebundle_sh.properties +2 -0
  793. package/src/i18n/messagebundle_sk.properties +2 -0
  794. package/src/i18n/messagebundle_sl.properties +2 -0
  795. package/src/i18n/messagebundle_sv.properties +2 -0
  796. package/src/i18n/messagebundle_th.properties +2 -0
  797. package/src/i18n/messagebundle_tr.properties +2 -0
  798. package/src/i18n/messagebundle_uk.properties +2 -0
  799. package/src/i18n/messagebundle_vi.properties +2 -0
  800. package/src/i18n/messagebundle_zh_CN.properties +2 -0
  801. package/src/i18n/messagebundle_zh_TW.properties +2 -0
  802. package/src/themes/Badge.css +12 -21
  803. package/src/themes/Button.css +1 -1
  804. package/src/themes/Carousel.css +4 -0
  805. package/src/themes/SelectMenu.css +16 -0
  806. package/src/themes/SelectMenuOption.css +0 -0
  807. package/src/themes/Toolbar.css +65 -0
  808. package/src/themes/ToolbarButtonPopover.css +3 -0
  809. package/src/themes/ToolbarPopover.css +26 -0
  810. package/src/themes/base/Badge-parameters.css +12 -1
  811. package/src/themes/base/Carousel-parameters.css +1 -0
  812. package/src/themes/base/Toolbar-parameters.css +7 -0
  813. package/src/themes/base/sizes-parameters.css +10 -0
  814. package/src/themes/sap_belize/parameters-bundle.css +1 -0
  815. package/src/themes/sap_belize_hcb/parameters-bundle.css +1 -0
  816. package/src/themes/sap_belize_hcw/parameters-bundle.css +1 -0
  817. package/src/themes/sap_fiori_3/parameters-bundle.css +1 -0
  818. package/src/themes/sap_fiori_3_dark/parameters-bundle.css +1 -0
  819. package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -0
  820. package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -0
  821. package/src/themes/sap_horizon/Badge-parameters.css +33 -30
  822. package/src/themes/sap_horizon/Carousel-parameters.css +5 -0
  823. package/src/themes/sap_horizon/InputIcon-parameters.css +1 -1
  824. package/src/themes/sap_horizon/TableGroupRow-parameters.css +1 -0
  825. package/src/themes/sap_horizon/parameters-bundle.css +2 -1
  826. package/src/themes/sap_horizon_dark/Badge-parameters.css +33 -30
  827. package/src/themes/sap_horizon_dark/Carousel-parameters.css +5 -0
  828. package/src/themes/sap_horizon_dark/InputIcon-parameters.css +1 -1
  829. package/src/themes/sap_horizon_dark/TableGroupRow-parameters.css +1 -0
  830. package/src/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  831. package/src/themes/sap_horizon_dark_exp/Carousel-parameters.css +5 -0
  832. package/src/themes/sap_horizon_dark_exp/InputIcon-parameters.css +1 -1
  833. package/src/themes/sap_horizon_dark_exp/TableGroupRow-parameters.css +1 -0
  834. package/src/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  835. package/src/themes/sap_horizon_exp/Carousel-parameters.css +5 -0
  836. package/src/themes/sap_horizon_exp/InputIcon-parameters.css +1 -1
  837. package/src/themes/sap_horizon_exp/TableGroupRow-parameters.css +1 -0
  838. package/src/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  839. package/src/themes/sap_horizon_hcb/Badge-parameters.css +33 -30
  840. package/src/themes/sap_horizon_hcb/TabContainer-parameters.css +1 -1
  841. package/src/themes/sap_horizon_hcb/TableGroupRow-parameters.css +1 -0
  842. package/src/themes/sap_horizon_hcb_exp/TabContainer-parameters.css +1 -1
  843. package/src/themes/sap_horizon_hcb_exp/TableGroupRow-parameters.css +1 -0
  844. package/src/themes/sap_horizon_hcw/Badge-parameters.css +33 -30
  845. package/src/themes/sap_horizon_hcw/TabContainer-parameters.css +1 -1
  846. package/src/themes/sap_horizon_hcw/TableGroupRow-parameters.css +1 -0
  847. package/src/themes/sap_horizon_hcw_exp/TabContainer-parameters.css +1 -1
  848. package/src/themes/sap_horizon_hcw_exp/TableGroupRow-parameters.css +1 -0
  849. package/dist/assets/Badge.b61adec8.css +0 -1
  850. package/dist/assets/SAP-icons.be30db53.js +0 -1
  851. package/dist/assets/messagebundle_ar.5776a62e.js +0 -1
  852. package/dist/assets/messagebundle_ca.a20af091.js +0 -1
  853. package/dist/assets/messagebundle_cs.edbf5f06.js +0 -1
  854. package/dist/assets/messagebundle_cy.fd352fd8.js +0 -1
  855. package/dist/assets/messagebundle_da.5dfdc1d3.js +0 -1
  856. package/dist/assets/messagebundle_de.e00b1548.js +0 -1
  857. package/dist/assets/messagebundle_en.bb633f22.js +0 -1
  858. package/dist/assets/messagebundle_en_GB.76f630be.js +0 -1
  859. package/dist/assets/messagebundle_en_US_saprigi.ab2f7752.js +0 -1
  860. package/dist/assets/messagebundle_en_US_saptrc.3c5c9f29.js +0 -1
  861. package/dist/assets/messagebundle_es.013382a0.js +0 -1
  862. package/dist/assets/messagebundle_es_MX.4195bad0.js +0 -1
  863. package/dist/assets/messagebundle_et.edbeb7fd.js +0 -1
  864. package/dist/assets/messagebundle_fi.cfa5ef16.js +0 -1
  865. package/dist/assets/messagebundle_fr.50a9c210.js +0 -1
  866. package/dist/assets/messagebundle_fr_CA.8e6c3d53.js +0 -1
  867. package/dist/assets/messagebundle_hi.b8831a44.js +0 -1
  868. package/dist/assets/messagebundle_hr.0cd4bdab.js +0 -1
  869. package/dist/assets/messagebundle_hu.cbe04412.js +0 -1
  870. package/dist/assets/messagebundle_it.a20a5390.js +0 -1
  871. package/dist/assets/messagebundle_iw.7b588631.js +0 -1
  872. package/dist/assets/messagebundle_ja.469bce93.js +0 -1
  873. package/dist/assets/messagebundle_kk.c87937c2.js +0 -1
  874. package/dist/assets/messagebundle_ko.e43561ec.js +0 -1
  875. package/dist/assets/messagebundle_lt.c9d71df8.js +0 -1
  876. package/dist/assets/messagebundle_lv.7134c734.js +0 -1
  877. package/dist/assets/messagebundle_ms.5eae3a5e.js +0 -1
  878. package/dist/assets/messagebundle_nl.c6cefe8e.js +0 -1
  879. package/dist/assets/messagebundle_no.60ab9453.js +0 -1
  880. package/dist/assets/messagebundle_pl.71703ec1.js +0 -1
  881. package/dist/assets/messagebundle_pt.b3a26fb9.js +0 -1
  882. package/dist/assets/messagebundle_pt_PT.455a32ca.js +0 -1
  883. package/dist/assets/messagebundle_ro.b7dd70a4.js +0 -1
  884. package/dist/assets/messagebundle_sh.8942e1b7.js +0 -1
  885. package/dist/assets/messagebundle_sk.6cf84c7f.js +0 -1
  886. package/dist/assets/messagebundle_sl.2e8e8fba.js +0 -1
  887. package/dist/assets/messagebundle_sv.3688b397.js +0 -1
  888. package/dist/assets/messagebundle_tr.51efddd2.js +0 -1
  889. package/dist/assets/messagebundle_uk.b065845c.js +0 -1
  890. package/dist/assets/messagebundle_vi.24b93d46.js +0 -1
  891. package/dist/assets/messagebundle_zh_CN.7e354392.js +0 -1
  892. package/dist/assets/messagebundle_zh_TW.6fb88bfe.js +0 -1
  893. package/dist/assets/parameters-bundle.css.15ecf0ec.js +0 -1
  894. package/dist/assets/parameters-bundle.css.19b5a0f2.js +0 -1
  895. package/dist/assets/parameters-bundle.css.21ce5147.js +0 -1
  896. package/dist/assets/parameters-bundle.css.2734d3d0.js +0 -1
  897. package/dist/assets/parameters-bundle.css.350d32b0.js +0 -1
  898. package/dist/assets/parameters-bundle.css.5ce9f578.js +0 -1
  899. package/dist/assets/parameters-bundle.css.5fb8a96a.js +0 -1
  900. package/dist/assets/parameters-bundle.css.8d6e4e15.js +0 -1
  901. package/dist/assets/parameters-bundle.css.8e265273.js +0 -1
  902. package/dist/assets/parameters-bundle.css.915cb13c.js +0 -1
  903. package/dist/assets/parameters-bundle.css.a0493e65.js +0 -1
  904. package/dist/assets/parameters-bundle.css.d3c7fb31.js +0 -1
  905. package/dist/assets/parameters-bundle.css.d6e6befc.js +0 -1
  906. package/dist/assets/parameters-bundle.css.e4f2a030.js +0 -1
  907. package/dist/assets/parameters-bundle.css.fa89ab32.js +0 -1
  908. /package/{C/357/200/272WINDOWSsystem32node_moduleschromedriverlibchromedriver" → dist/css/themes/SelectMenuOption.css} +0 -0
package/dist/Select.js CHANGED
@@ -11,7 +11,9 @@ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
11
11
  import event from "@ui5/webcomponents-base/dist/decorators/event.js";
12
12
  import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
13
13
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
14
+ import connectToComponent from "@ui5/webcomponents-base/dist/connectToComponent.js";
14
15
  import { isSpace, isUp, isDown, isEnter, isEscape, isHome, isEnd, isShow, isTabNext, isTabPrevious, } from "@ui5/webcomponents-base/dist/Keys.js";
16
+ import DOMReference from "@ui5/webcomponents-base/dist/types/DOMReference.js";
15
17
  import announce from "@ui5/webcomponents-base/dist/util/InvisibleMessage.js";
16
18
  import { getFeature } from "@ui5/webcomponents-base/dist/FeaturesRegistry.js";
17
19
  import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
@@ -73,7 +75,7 @@ import SelectPopoverCss from "./generated/themes/SelectPopover.css.js";
73
75
  * @alias sap.ui.webc.main.Select
74
76
  * @extends sap.ui.webc.base.UI5Element
75
77
  * @tagname ui5-select
76
- * @appenddocs sap.ui.webc.main.Option
78
+ * @appenddocs sap.ui.webc.main.Option sap.ui.webc.main.SelectMenu sap.ui.webc.main.SelectMenuOption
77
79
  * @public
78
80
  * @since 0.8.0
79
81
  */
@@ -81,14 +83,26 @@ let Select = Select_1 = class Select extends UI5Element {
81
83
  constructor() {
82
84
  super();
83
85
  this._syncedOptions = [];
84
- this._selectedIndex = -1;
85
86
  this._selectedIndexBeforeOpen = -1;
86
87
  this._escapePressed = false;
87
88
  this._lastSelectedOption = null;
88
89
  this._typedChars = "";
90
+ this._onMenuClick = this.onMenuClick.bind(this);
91
+ this._onMenuClose = this.onMenuClose.bind(this);
92
+ this._onMenuOpen = this.onMenuOpen.bind(this);
93
+ this._onMenuBeforeOpen = this.onMenuBeforeOpen.bind(this);
94
+ this._onMenuChange = this.onMenuChange.bind(this);
95
+ this._attachMenuListeners = this.attachMenuListeners.bind(this);
96
+ this._detachMenuListeners = this.detachMenuListeners.bind(this);
89
97
  }
90
98
  onBeforeRendering() {
91
- this._syncSelection();
99
+ const menu = this._getSelectMenu();
100
+ if (menu) {
101
+ menu.value = this.value;
102
+ }
103
+ else {
104
+ this._syncSelection();
105
+ }
92
106
  this._enableFormSupport();
93
107
  this.style.setProperty(getScopedVarName("--_ui5-input-icons-count"), `${this.iconsCount}`);
94
108
  }
@@ -108,6 +122,10 @@ let Select = Select_1 = class Select extends UI5Element {
108
122
  this.focused = false;
109
123
  }
110
124
  get _isPickerOpen() {
125
+ const menu = this._getSelectMenu();
126
+ if (menu) {
127
+ return menu.open;
128
+ }
111
129
  return !!this.responsivePopover && this.responsivePopover.opened;
112
130
  }
113
131
  async _respPopover() {
@@ -122,14 +140,54 @@ let Select = Select_1 = class Select extends UI5Element {
122
140
  * @public
123
141
  */
124
142
  get selectedOption() {
125
- return this._filteredItems.find(option => option.selected);
143
+ return this.selectOptions.find(option => option.selected);
144
+ }
145
+ onMenuClick(e) {
146
+ const optionIndex = e.detail.optionIndex;
147
+ this._handleSelectionChange(optionIndex);
148
+ }
149
+ onMenuBeforeOpen() {
150
+ this._beforeOpen();
151
+ }
152
+ onMenuOpen() {
153
+ this._afterOpen();
154
+ }
155
+ onMenuClose() {
156
+ this._afterClose();
157
+ }
158
+ onMenuChange(e) {
159
+ this._text = e.detail.text;
160
+ this._selectedIndex = e.detail.selectedIndex;
161
+ }
162
+ _toggleSelectMenu() {
163
+ const menu = this._getSelectMenu();
164
+ if (!menu) {
165
+ return;
166
+ }
167
+ if (menu.open) {
168
+ menu.close();
169
+ }
170
+ else {
171
+ menu.showAt(this, this.offsetWidth);
172
+ }
173
+ }
174
+ onExitDOM() {
175
+ const menu = this._getSelectMenu();
176
+ if (menu) {
177
+ this._detachMenuListeners(menu);
178
+ }
126
179
  }
127
180
  async _toggleRespPopover() {
128
- this._iconPressed = true;
129
- this.responsivePopover = await this._respPopover();
130
181
  if (this.disabled) {
131
182
  return;
132
183
  }
184
+ this._iconPressed = true;
185
+ const menu = this._getSelectMenu();
186
+ if (menu) {
187
+ this._toggleSelectMenu();
188
+ return;
189
+ }
190
+ this.responsivePopover = await this._respPopover();
133
191
  if (this._isPickerOpen) {
134
192
  this.responsivePopover.close();
135
193
  }
@@ -190,6 +248,32 @@ let Select = Select_1 = class Select extends UI5Element {
190
248
  }
191
249
  this._syncedOptions = syncOpts;
192
250
  }
251
+ _getSelectMenu() {
252
+ return connectToComponent({
253
+ host: this,
254
+ propName: "menu",
255
+ onConnect: this._attachMenuListeners,
256
+ onDisconnect: this._detachMenuListeners,
257
+ });
258
+ }
259
+ attachMenuListeners(menu) {
260
+ menu.addEventListener("ui5-after-close", this._onMenuClose);
261
+ menu.addEventListener("ui5-after-open", this._onMenuOpen);
262
+ menu.addEventListener("ui5-before-open", this._onMenuBeforeOpen);
263
+ // @ts-ignore
264
+ menu.addEventListener("ui5-option-click", this._onMenuClick);
265
+ // @ts-ignore
266
+ menu.addEventListener("ui5-menu-change", this._onMenuChange);
267
+ }
268
+ detachMenuListeners(menu) {
269
+ menu.removeEventListener("ui5-after-close", this._onMenuClose);
270
+ menu.removeEventListener("ui5-after-open", this._onMenuOpen);
271
+ menu.removeEventListener("ui5-before-open", this._onMenuBeforeOpen);
272
+ // @ts-ignore
273
+ menu.removeEventListener("ui5-option-click", this._onMenuClick);
274
+ // @ts-ignore
275
+ menu.removeEventListener("ui5-menu-change", this._onMenuChange);
276
+ }
193
277
  _enableFormSupport() {
194
278
  const formSupport = getFeature("FormSupport");
195
279
  if (formSupport) {
@@ -205,10 +289,16 @@ let Select = Select_1 = class Select extends UI5Element {
205
289
  }
206
290
  _onkeydown(e) {
207
291
  const isTab = (isTabNext(e) || isTabPrevious(e));
208
- if (isTab && this.responsivePopover && this.responsivePopover.opened) {
209
- this.responsivePopover.close();
292
+ if (isTab && this._isPickerOpen) {
293
+ const menu = this._getSelectMenu();
294
+ if (menu) {
295
+ menu.close(false, false, true /* preventFocusRestore */);
296
+ }
297
+ else {
298
+ this.responsivePopover.close();
299
+ }
210
300
  }
211
- if (isShow(e)) {
301
+ else if (isShow(e)) {
212
302
  e.preventDefault();
213
303
  this._toggleRespPopover();
214
304
  }
@@ -252,7 +342,7 @@ let Select = Select_1 = class Select extends UI5Element {
252
342
  const currentIndex = this._selectedIndex;
253
343
  const itemToSelect = this._searchNextItemByText(text);
254
344
  if (itemToSelect) {
255
- const nextIndex = this._filteredItems.indexOf(itemToSelect);
345
+ const nextIndex = this.selectOptions.indexOf(itemToSelect);
256
346
  this._changeSelectedItem(this._selectedIndex, nextIndex);
257
347
  if (currentIndex !== this._selectedIndex) {
258
348
  this.itemSelectionAnnounce();
@@ -260,18 +350,18 @@ let Select = Select_1 = class Select extends UI5Element {
260
350
  }
261
351
  }
262
352
  _searchNextItemByText(text) {
263
- let orderedOptions = this._filteredItems.slice(0);
353
+ let orderedOptions = this.selectOptions.slice(0);
264
354
  const optionsAfterSelected = orderedOptions.splice(this._selectedIndex + 1, orderedOptions.length - this._selectedIndex);
265
355
  const optionsBeforeSelected = orderedOptions.splice(0, orderedOptions.length - 1);
266
356
  orderedOptions = optionsAfterSelected.concat(optionsBeforeSelected);
267
- return orderedOptions.find(option => (option.textContent || "").toLowerCase().startsWith(text));
357
+ return orderedOptions.find(option => (option.displayText || option.textContent || "").toLowerCase().startsWith(text));
268
358
  }
269
359
  _handleHomeKey(e) {
270
360
  e.preventDefault();
271
361
  this._changeSelectedItem(this._selectedIndex, 0);
272
362
  }
273
363
  _handleEndKey(e) {
274
- const lastIndex = this._filteredItems.length - 1;
364
+ const lastIndex = this.selectOptions.length - 1;
275
365
  e.preventDefault();
276
366
  this._changeSelectedItem(this._selectedIndex, lastIndex);
277
367
  }
@@ -286,12 +376,15 @@ let Select = Select_1 = class Select extends UI5Element {
286
376
  }
287
377
  }
288
378
  _getSelectedItemIndex(item) {
289
- return this._filteredItems.findIndex(option => `${option._id}-li` === item.id);
379
+ return this.selectOptions.findIndex(option => `${option._id}-li` === item.id);
290
380
  }
291
381
  _select(index) {
292
- this._filteredItems[this._selectedIndex].selected = false;
382
+ this.selectOptions[this._selectedIndex].selected = false;
383
+ if (this._selectedIndex !== index) {
384
+ this.fireEvent("live-change", { selectedOption: this.selectOptions[index] });
385
+ }
293
386
  this._selectedIndex = index;
294
- this._filteredItems[index].selected = true;
387
+ this.selectOptions[index].selected = true;
295
388
  }
296
389
  /**
297
390
  * The user clicked on an item from the list
@@ -318,6 +411,18 @@ let Select = Select_1 = class Select extends UI5Element {
318
411
  this._select(index);
319
412
  this._toggleRespPopover();
320
413
  }
414
+ _scrollSelectedItem() {
415
+ if (this._isPickerOpen) {
416
+ const itemRef = this._currentlySelectedOption.getDomRef();
417
+ if (itemRef) {
418
+ itemRef.scrollIntoView({
419
+ behavior: "auto",
420
+ block: "nearest",
421
+ inline: "nearest",
422
+ });
423
+ }
424
+ }
425
+ }
321
426
  _handleArrowNavigation(e) {
322
427
  let nextIndex = -1;
323
428
  const currentIndex = this._selectedIndex;
@@ -335,21 +440,31 @@ let Select = Select_1 = class Select extends UI5Element {
335
440
  // The aria-activedescendents attribute can't be used,
336
441
  // because listitem elements are in different shadow dom
337
442
  this.itemSelectionAnnounce();
443
+ this._scrollSelectedItem();
338
444
  }
339
445
  }
340
446
  _changeSelectedItem(oldIndex, newIndex) {
341
- const options = this._filteredItems;
342
- options[oldIndex].selected = false;
343
- options[oldIndex]._focused = false;
344
- options[newIndex].selected = true;
345
- options[newIndex]._focused = true;
447
+ const options = this.selectOptions;
448
+ const previousOption = options[oldIndex];
449
+ previousOption.selected = false;
450
+ previousOption._focused = false;
451
+ previousOption.focused = false;
452
+ const nextOption = options[newIndex];
453
+ nextOption.selected = true;
454
+ nextOption._focused = true;
455
+ nextOption.focused = true;
346
456
  this._selectedIndex = newIndex;
457
+ this.fireEvent("live-change", { selectedOption: nextOption });
347
458
  if (!this._isPickerOpen) {
348
459
  // arrow pressed on closed picker - do selection change
349
- this._fireChangeEvent(options[newIndex]);
460
+ this._fireChangeEvent(nextOption);
350
461
  }
351
462
  }
352
463
  _getNextOptionIndex() {
464
+ const menu = this._getSelectMenu();
465
+ if (menu) {
466
+ return this._selectedIndex === (menu.options.length - 1) ? this._selectedIndex : (this._selectedIndex + 1);
467
+ }
353
468
  return this._selectedIndex === (this.options.length - 1) ? this._selectedIndex : (this._selectedIndex + 1);
354
469
  }
355
470
  _getPreviousOptionIndex() {
@@ -357,12 +472,13 @@ let Select = Select_1 = class Select extends UI5Element {
357
472
  }
358
473
  _beforeOpen() {
359
474
  this._selectedIndexBeforeOpen = this._selectedIndex;
360
- this._lastSelectedOption = this._filteredItems[this._selectedIndex];
475
+ this._lastSelectedOption = this.selectOptions[this._selectedIndex];
361
476
  }
362
477
  _afterOpen() {
363
478
  this.opened = true;
364
479
  this.fireEvent("open");
365
480
  this.itemSelectionAnnounce();
481
+ this._scrollSelectedItem();
366
482
  }
367
483
  _afterClose() {
368
484
  this.opened = false;
@@ -372,12 +488,22 @@ let Select = Select_1 = class Select extends UI5Element {
372
488
  this._select(this._selectedIndexBeforeOpen);
373
489
  this._escapePressed = false;
374
490
  }
375
- else if (this._lastSelectedOption !== this._filteredItems[this._selectedIndex]) {
376
- this._fireChangeEvent(this._filteredItems[this._selectedIndex]);
377
- this._lastSelectedOption = this._filteredItems[this._selectedIndex];
491
+ else if (this._lastSelectedOption !== this.selectOptions[this._selectedIndex]) {
492
+ this._fireChangeEvent(this.selectOptions[this._selectedIndex]);
493
+ this._lastSelectedOption = this.selectOptions[this._selectedIndex];
378
494
  }
379
495
  this.fireEvent("close");
380
496
  }
497
+ get selectOptions() {
498
+ const menu = this._getSelectMenu();
499
+ if (menu) {
500
+ return menu.options;
501
+ }
502
+ return this._filteredItems;
503
+ }
504
+ get hasCustomLabel() {
505
+ return !!this.label.length;
506
+ }
381
507
  _fireChangeEvent(selectedOption) {
382
508
  const changePrevented = !this.fireEvent("change", { selectedOption }, true);
383
509
  // Angular two way data binding
@@ -433,7 +559,7 @@ let Select = Select_1 = class Select extends UI5Element {
433
559
  return Select_1.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
434
560
  }
435
561
  get _currentlySelectedOption() {
436
- return this._filteredItems[this._selectedIndex];
562
+ return this.selectOptions[this._selectedIndex];
437
563
  }
438
564
  get _effectiveTabIndex() {
439
565
  return this.disabled
@@ -510,7 +636,7 @@ let Select = Select_1 = class Select extends UI5Element {
510
636
  }
511
637
  itemSelectionAnnounce() {
512
638
  let text;
513
- const optionsCount = this._filteredItems.length;
639
+ const optionsCount = this.selectOptions.length;
514
640
  const itemPositionText = Select_1.i18nBundle.getText(LIST_ITEM_POSITION, this._selectedIndex + 1, optionsCount);
515
641
  if (this.focused && this._currentlySelectedOption) {
516
642
  text = `${this._currentlySelectedOption.textContent} ${this._isPickerOpen ? itemPositionText : ""}`;
@@ -545,6 +671,9 @@ let Select = Select_1 = class Select extends UI5Element {
545
671
  Select_1.i18nBundle = await getI18nBundle("@ui5/webcomponents");
546
672
  }
547
673
  };
674
+ __decorate([
675
+ property({ validator: DOMReference })
676
+ ], Select.prototype, "menu", void 0);
548
677
  __decorate([
549
678
  property({ type: Boolean })
550
679
  ], Select.prototype, "disabled", void 0);
@@ -578,6 +707,9 @@ __decorate([
578
707
  __decorate([
579
708
  property({ type: Boolean })
580
709
  ], Select.prototype, "focused", void 0);
710
+ __decorate([
711
+ property({ validator: Integer, defaultValue: -1, noAttribute: true })
712
+ ], Select.prototype, "_selectedIndex", void 0);
581
713
  __decorate([
582
714
  slot({ "default": true, type: HTMLElement, invalidateOnChildChange: true })
583
715
  ], Select.prototype, "options", void 0);
@@ -587,6 +719,9 @@ __decorate([
587
719
  __decorate([
588
720
  slot()
589
721
  ], Select.prototype, "valueStateMessage", void 0);
722
+ __decorate([
723
+ slot()
724
+ ], Select.prototype, "label", void 0);
590
725
  Select = Select_1 = __decorate([
591
726
  customElement({
592
727
  tag: "ui5-select",
@@ -625,6 +760,21 @@ Select = Select_1 = __decorate([
625
760
  selectedOption: { type: HTMLElement },
626
761
  },
627
762
  })
763
+ /**
764
+ * Fired when the user navigates through the options, but the selection is not finalized,
765
+ * or when pressing the ESC key to revert the current selection.
766
+ *
767
+ * @event sap.ui.webc.main.Select#live-change
768
+ * @param {HTMLElement} selectedOption the selected option.
769
+ * @public
770
+ * @since 1.17.0
771
+ */
772
+ ,
773
+ event("live-change", {
774
+ detail: {
775
+ option: { type: HTMLElement },
776
+ },
777
+ })
628
778
  /**
629
779
  * Fired after the component's dropdown menu opens.
630
780
  *
@@ -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 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.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.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 { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.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 { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport type { Timeout } from \"@ui5/webcomponents-base/dist/types.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.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\tINPUT_SUGGESTIONS_TITLE,\n\tLIST_ITEM_POSITION,\n\tSELECT_ROLE_DESCRIPTION,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport Option from \"./Option.js\";\nimport Label from \"./Label.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport Popover from \"./Popover.js\";\nimport StandardListItem from \"./StandardListItem.js\";\nimport Icon from \"./Icon.js\";\nimport Button from \"./Button.js\";\n\n// Templates\nimport SelectTemplate from \"./generated/templates/SelectTemplate.lit.js\";\nimport SelectPopoverTemplate from \"./generated/templates/SelectPopoverTemplate.lit.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\";\nimport type FormSupport from \"./features/InputElementsFormSupport.js\";\nimport type { IFormElement } from \"./features/InputElementsFormSupport.js\";\nimport type ListItemBase from \"./ListItemBase.js\";\n\ntype SelectChangeEventDetail = {\n\tselectedOption: Option,\n}\n\ninterface IOption extends UI5Element {\n\tselected: boolean,\n\t_focused: boolean,\n\ticon?: string | undefined,\n\tvalue: string,\n\ttextContent: string | null,\n\ttitle: string,\n\tadditionalText: string,\n\tid: string,\n\tstableDomRef: string,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n * The <code>ui5-select</code> component is used to create a drop-down list.\n * The items inside the <code>ui5-select</code> define the available options by using the <code>ui5-option</code> component.\n *\n * <h3>Keyboard Handling</h3>\n * The <code>ui5-select</code> provides advanced keyboard handling.\n * <br>\n * <ul>\n * <li>[F4, ALT+UP, ALT+DOWN, SPACE, ENTER] - Opens/closes the drop-down.</li>\n * <li>[UP, 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.</li>\n * <li>[SPACE, ENTER] - If the drop-down is opened - selects the focused option.</li>\n * <li>[ESC] - Closes the drop-down without changing the selection.</li>\n * <li>[HOME] - Navigates to first option</li>\n * <li>[END] - Navigates to the last option</li>\n * </ul>\n * <br>\n *\n * <h3>ES6 Module Import</h3>\n * <code>import \"@ui5/webcomponents/dist/Select\";</code>\n * <br>\n * <code>import \"@ui5/webcomponents/dist/Option\";</code> (comes with <code>ui5-select</code>)\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webc.main.Select\n * @extends sap.ui.webc.base.UI5Element\n * @tagname ui5-select\n * @appenddocs sap.ui.webc.main.Option\n * @public\n * @since 0.8.0\n */\n@customElement({\n\ttag: \"ui5-select\",\n\tlanguageAware: true,\n\trenderer: litRender,\n\ttemplate: SelectTemplate,\n\tstaticAreaTemplate: SelectPopoverTemplate,\n\tstyles: selectCss,\n\tstaticAreaStyles: [\n\t\tResponsivePopoverCommonCss,\n\t\tValueStateMessageCss,\n\t\tSelectPopoverCss,\n\t],\n\tdependencies: [\n\t\tOption,\n\t\tLabel,\n\t\tResponsivePopover,\n\t\tPopover,\n\t\tList,\n\t\tStandardListItem,\n\t\tIcon,\n\t\tButton,\n\t],\n})\n/**\n * Fired when the selected option changes.\n *\n * @event sap.ui.webc.main.Select#change\n * @allowPreventDefault\n * @param {HTMLElement} selectedOption the selected option.\n * @public\n */\n@event(\"change\", {\n\tdetail: {\n\t\tselectedOption: { type: HTMLElement },\n\t},\n})\n/**\n * Fired after the component's dropdown menu opens.\n *\n * @event sap.ui.webc.main.Select#open\n * @public\n */\n@event(\"open\")\n/**\n * Fired after the component's dropdown menu closes.\n *\n * @event sap.ui.webc.main.Select#close\n * @public\n */\n@event(\"close\")\nclass Select extends UI5Element implements IFormElement {\n\tstatic i18nBundle: I18nBundle;\n\n\t/**\n\t * Defines whether the component is in disabled state.\n\t * <br><br>\n\t * <b>Note:</b> A disabled component is noninteractive.\n\t *\n\t * @type {boolean}\n\t * @defaultvalue false\n\t * @name sap.ui.webc.main.Select.prototype.disabled\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Determines the name with which the component will be submitted in an HTML form.\n\t * The value of the component will be the value of the currently selected <code>ui5-option</code>.\n\t *\n\t * <br><br>\n\t * <b>Important:</b> For the <code>name</code> property to have effect, you must add the following import to your project:\n\t * <code>import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";</code>\n\t *\n\t * <br><br>\n\t * <b>Note:</b> When set, a native <code>input</code> HTML element\n\t * will be created inside the <code>ui5-select</code> so that it can be submitted as\n\t * part of an HTML form. Do not use this property unless you need to submit a form.\n\t *\n\t * @type {string}\n\t * @defaultvalue \"\"\n\t * @name sap.ui.webc.main.Select.prototype.name\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 * <br><br>\n\t * Available options are:\n\t * <ul>\n\t * <li><code>None</code></li>\n\t * <li><code>Error</code></li>\n\t * <li><code>Warning</code></li>\n\t * <li><code>Success</code></li>\n\t * <li><code>Information</code></li>\n\t * </ul>\n\t *\n\t * @type {sap.ui.webc.base.types.ValueState}\n\t * @defaultvalue \"None\"\n\t * @name sap.ui.webc.main.Select.prototype.valueState\n\t * @public\n\t */\n\t@property({ type: ValueState, defaultValue: ValueState.None })\n\tvalueState!: `${ValueState}`;\n\n\t/**\n\t * Defines whether the component is required.\n\t *\n\t * @since 1.0.0-rc.9\n\t * @type {boolean}\n\t * @defaultvalue false\n\t * @name sap.ui.webc.main.Select.prototype.required\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\trequired!: boolean;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t *\n\t * @type {string}\n\t * @since 1.0.0-rc.9\n\t * @public\n\t * @defaultvalue \"\"\n\t * @name sap.ui.webc.main.Select.prototype.accessibleName\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleName!: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the select.\n\t *\n\t * @type {string}\n\t * @defaultvalue \"\"\n\t * @name sap.ui.webc.main.Select.prototype.accessibleNameRef\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleNameRef!: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: String, noAttribute: true })\n\t_text?: string | null;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_iconPressed!: boolean;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\topened!: boolean;\n\n\t/**\n\t * @type {sap.ui.webc.base.types.Integer}\n\t * @private\n\t */\n\t@property({ validator: Integer, defaultValue: 0, noAttribute: true })\n\t_listWidth!: number;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused!: boolean;\n\n\t_syncedOptions: Array<IOption>;\n\t_selectedIndex: number;\n\t_selectedIndexBeforeOpen: number;\n\t_escapePressed: boolean;\n\t_lastSelectedOption: Option | null;\n\t_typedChars: string;\n\t_typingTimeoutID?: Timeout | number;\n\tresponsivePopover!: ResponsivePopover;\n\tselectedItem?: string | null;\n\tvalueStatePopover?: Popover;\n\tvalue!: string;\n\n\t/**\n\t * Defines the component options.\n\t *\n\t * <br><br>\n\t * <b>Note:</b> 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 * <br><br>\n\t * <b>Note:</b> Use the <code>ui5-option</code> component to define the desired options.\n\t * @type {sap.ui.webc.main.ISelectOption[]}\n\t * @slot options\n\t * @name sap.ui.webc.main.Select.prototype.default\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, invalidateOnChildChange: true })\n\toptions!: Array<Option>;\n\n\t/**\n\t * The slot is used to render native <code>input</code> HTML element within Light DOM to enable form submit,\n\t * when <code>name</code> property is set.\n\t * @type {HTMLElement[]}\n\t * @slot\n\t * @private\n\t */\n\t@slot()\n\tformSupport!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the value state message that will be displayed as pop up under the component.\n\t * <br><br>\n\t *\n\t * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.\n\t * <br><br>\n\t * <b>Note:</b> The <code>valueStateMessage</code> would be displayed,\n\t * when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.\n\t * <br><br>\n\t * <b>Note:</b> If the component has <code>suggestionItems</code>,\n\t * the <code>valueStateMessage</code> would be displayed as part of the same popover, if used on desktop, or dialog - on phone.\n\t * @type {HTMLElement[]}\n\t * @name sap.ui.webc.main.Select.prototype.valueStateMessage\n\t * @slot\n\t * @public\n\t*/\n\t@slot()\n\tvalueStateMessage!: Array<HTMLElement>;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._syncedOptions = [];\n\t\tthis._selectedIndex = -1;\n\t\tthis._selectedIndexBeforeOpen = -1;\n\t\tthis._escapePressed = false;\n\t\tthis._lastSelectedOption = null;\n\t\tthis._typedChars = \"\";\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._syncSelection();\n\t\tthis._enableFormSupport();\n\n\t\tthis.style.setProperty(getScopedVarName(\"--_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\n\t\tthis._attachRealDomRefs();\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.opened;\n\t}\n\n\tasync _respPopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\t/**\n\t * Currently selected <code>ui5-option</code> element.\n\t * @readonly\n\t * @type {sap.ui.webc.main.ISelectOption}\n * @name sap.ui.webc.main.Select.prototype.selectedOption\n\t * @public\n\t */\n\tget selectedOption() {\n\t\treturn this._filteredItems.find(option => option.selected);\n\t}\n\n\tasync _toggleRespPopover() {\n\t\tthis._iconPressed = true;\n\t\tthis.responsivePopover = await this._respPopover();\n\t\tif (this.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isPickerOpen) {\n\t\t\tthis.responsivePopover.close();\n\t\t} else {\n\t\t\tthis.responsivePopover.showAt(this);\n\t\t}\n\t}\n\n\tasync _attachRealDomRefs() {\n\t\tthis.responsivePopover = await this._respPopover();\n\n\t\tthis.options.forEach(option => {\n\t\t\toption._getRealDomRef = () => this.responsivePopover.querySelector<HTMLElement>(`*[data-ui5-stable=${option.stableDomRef}]`)!;\n\t\t});\n\t}\n\n\t_syncSelection() {\n\t\tlet lastSelectedOptionIndex = -1,\n\t\t\tfirstEnabledOptionIndex = -1;\n\t\tconst options = this._filteredItems;\n\t\tconst syncOpts = options.map((opt, index) => {\n\t\t\tif (opt.selected || opt.textContent === this.value) {\n\t\t\t\t// The second condition in the IF statement is added because of Angular Reactive Forms Support(Two way data binding)\n\t\t\t\tlastSelectedOptionIndex = index;\n\t\t\t}\n\t\t\tif (firstEnabledOptionIndex === -1) {\n\t\t\t\tfirstEnabledOptionIndex = index;\n\t\t\t}\n\n\t\t\topt.selected = false;\n\t\t\topt._focused = false;\n\n\t\t\treturn {\n\t\t\t\tselected: false,\n\t\t\t\t_focused: false,\n\t\t\t\ticon: opt.icon,\n\t\t\t\tvalue: opt.value,\n\t\t\t\ttextContent: opt.textContent,\n\t\t\t\ttitle: opt.title,\n\t\t\t\tadditionalText: opt.additionalText,\n\t\t\t\tid: opt._id,\n\t\t\t\tstableDomRef: opt.stableDomRef,\n\t\t\t};\n\t\t});\n\n\t\tif (lastSelectedOptionIndex > -1) {\n\t\t\tsyncOpts[lastSelectedOptionIndex].selected = true;\n\t\t\tsyncOpts[lastSelectedOptionIndex]._focused = true;\n\t\t\toptions[lastSelectedOptionIndex].selected = true;\n\t\t\toptions[lastSelectedOptionIndex]._focused = true;\n\t\t\tthis._text = syncOpts[lastSelectedOptionIndex].textContent;\n\t\t\tthis._selectedIndex = lastSelectedOptionIndex;\n\t\t} else {\n\t\t\tthis._text = \"\";\n\t\t\tthis._selectedIndex = -1;\n\t\t\tif (syncOpts[firstEnabledOptionIndex]) {\n\t\t\t\tsyncOpts[firstEnabledOptionIndex].selected = true;\n\t\t\t\tsyncOpts[firstEnabledOptionIndex]._focused = true;\n\t\t\t\toptions[firstEnabledOptionIndex].selected = true;\n\t\t\t\toptions[firstEnabledOptionIndex]._focused = true;\n\t\t\t\tthis._selectedIndex = firstEnabledOptionIndex;\n\t\t\t\tthis._text = options[firstEnabledOptionIndex].textContent;\n\t\t\t}\n\t\t}\n\n\t\tthis._syncedOptions = syncOpts as Array<IOption>;\n\t}\n\n\t_enableFormSupport() {\n\t\tconst formSupport = getFeature<typeof FormSupport>(\"FormSupport\");\n\t\tif (formSupport) {\n\t\t\tformSupport.syncNativeHiddenInput(this, (element: IFormElement, nativeInput: HTMLInputElement) => {\n\t\t\t\tconst selectElement = (element as Select);\n\t\t\t\tnativeInput.disabled = !!element.disabled;\n\t\t\t\tnativeInput.value = selectElement._currentlySelectedOption ? selectElement._currentlySelectedOption.value : \"\";\n\t\t\t});\n\t\t} else if (this.name) {\n\t\t\tconsole.warn(`In order for the \"name\" property to have effect, you should also: import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`); // eslint-disable-line\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst isTab = (isTabNext(e) || isTabPrevious(e));\n\n\t\tif (isTab && this.responsivePopover && this.responsivePopover.opened) {\n\t\t\tthis.responsivePopover.close();\n\t\t}\n\n\t\tif (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} else if (isEnter(e)) {\n\t\t\tthis._handleSelectionChange();\n\t\t} else if (isUp(e) || isDown(e)) {\n\t\t\tthis._handleArrowNavigation(e);\n\t\t}\n\t}\n\n\t_handleKeyboardNavigation(e: KeyboardEvent) {\n\t\tif (isEnter(e)) {\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._filteredItems.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}\n\t\t}\n\t}\n\n\t_searchNextItemByText(text: string) {\n\t\tlet orderedOptions = this._filteredItems.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.textContent || \"\").toLowerCase().startsWith(text));\n\t}\n\n\t_handleHomeKey(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis._changeSelectedItem(this._selectedIndex, 0);\n\t}\n\n\t_handleEndKey(e: KeyboardEvent) {\n\t\tconst lastIndex = this._filteredItems.length - 1;\n\n\t\te.preventDefault();\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_getSelectedItemIndex(item: ListItemBase) {\n\t\treturn this._filteredItems.findIndex(option => `${option._id}-li` === item.id);\n\t}\n\n\t_select(index: number) {\n\t\tthis._filteredItems[this._selectedIndex].selected = false;\n\t\tthis._selectedIndex = index;\n\t\tthis._filteredItems[index].selected = true;\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 item = e.detail.item;\n\t\tconst selectedItemIndex = this._getSelectedItemIndex(item);\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._select(index);\n\n\t\tthis._toggleRespPopover();\n\t}\n\n\t_handleArrowNavigation(e: KeyboardEvent) {\n\t\tlet nextIndex = -1;\n\t\tconst currentIndex = this._selectedIndex;\n\t\tconst isDownKey = isDown(e);\n\n\t\te.preventDefault();\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}\n\t}\n\n\t_changeSelectedItem(oldIndex: number, newIndex: number) {\n\t\tconst options = this._filteredItems;\n\n\t\toptions[oldIndex].selected = false;\n\t\toptions[oldIndex]._focused = false;\n\n\t\toptions[newIndex].selected = true;\n\t\toptions[newIndex]._focused = true;\n\n\t\tthis._selectedIndex = newIndex;\n\n\t\tif (!this._isPickerOpen) {\n\t\t\t// arrow pressed on closed picker - do selection change\n\t\t\tthis._fireChangeEvent(options[newIndex]);\n\t\t}\n\t}\n\n\t_getNextOptionIndex() {\n\t\treturn this._selectedIndex === (this.options.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._filteredItems[this._selectedIndex];\n\t}\n\n\t_afterOpen() {\n\t\tthis.opened = true;\n\t\tthis.fireEvent<CustomEvent>(\"open\");\n\t\tthis.itemSelectionAnnounce();\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._filteredItems[this._selectedIndex]) {\n\t\t\tthis._fireChangeEvent(this._filteredItems[this._selectedIndex]);\n\t\t\tthis._lastSelectedOption = this._filteredItems[this._selectedIndex];\n\t\t}\n\t\tthis.fireEvent<CustomEvent>(\"close\");\n\t}\n\n\t_fireChangeEvent(selectedOption: Option) {\n\t\tconst changePrevented = !this.fireEvent<SelectChangeEventDetail>(\"change\", { selectedOption }, true);\n\n\t\t// Angular two way data binding\n\t\tthis.selectedItem = selectedOption.textContent;\n\t\tthis.fireEvent(\"selected-item-changed\");\n\t\tif (changePrevented) {\n\t\t\tthis.selectedItem = this._lastSelectedOption!.textContent;\n\t\t\tthis._select(this._selectedIndexBeforeOpen);\n\t\t}\n\t}\n\n\tget valueStateTextMappings() {\n\t\treturn {\n\t\t\t[ValueState.Success]: Select.i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t\t[ValueState.Information]: Select.i18nBundle.getText(VALUE_STATE_INFORMATION),\n\t\t\t[ValueState.Error]: Select.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t[ValueState.Warning]: Select.i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t};\n\t}\n\n\tget valueStateTypeMappings() {\n\t\treturn {\n\t\t\t[ValueState.Success]: 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.Error]: Select.i18nBundle.getText(VALUE_STATE_TYPE_ERROR),\n\t\t\t[ValueState.Warning]: 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.valueStateMessageText.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 isDisabled() {\n\t\treturn this.disabled || undefined;\n\t}\n\n\tget _headerTitleText() {\n\t\treturn Select.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);\n\t}\n\n\tget _currentlySelectedOption() {\n\t\treturn this._filteredItems[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.opened) ? \"-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\tError: \"error\",\n\t\t\tWarning: \"alert\",\n\t\t\tSuccess: \"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--success\": this.valueState === ValueState.Success,\n\t\t\t\t\"ui5-valuestatemessage--error\": this.valueState === ValueState.Error,\n\t\t\t\t\"ui5-valuestatemessage--warning\": this.valueState === ValueState.Warning,\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\treturn {\n\t\t\tpopoverHeader: {\n\t\t\t\t\"max-width\": `${this.offsetWidth}px`,\n\t\t\t},\n\t\t\tresponsivePopoverHeader: {\n\t\t\t\t\"display\": this._filteredItems.length && this._listWidth === 0 ? \"none\" : \"inline-block\",\n\t\t\t\t\"width\": `${this._filteredItems.length ? this._listWidth : this.offsetWidth}px`,\n\t\t\t},\n\t\t\tresponsivePopover: {\n\t\t\t\t\"min-width\": `${this.offsetWidth}px`,\n\t\t\t},\n\t\t};\n\t}\n\n\tget ariaLabelText() {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget valueStateMessageText() {\n\t\treturn this.getSlottedNodes(\"valueStateMessage\").map(el => el.cloneNode(true));\n\t}\n\n\tget shouldDisplayDefaultValueStateMessage() {\n\t\treturn !this.valueStateMessageText.length && this.hasValueStateText;\n\t}\n\n\tget hasValueStateText() {\n\t\treturn this.hasValueState && this.valueState !== ValueState.Success;\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\tget _filteredItems() {\n\t\treturn this.options.filter(option => !option.disabled);\n\t}\n\n\titemSelectionAnnounce() {\n\t\tlet text;\n\t\tconst optionsCount = this._filteredItems.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\tasync openValueStatePopover() {\n\t\tthis.valueStatePopover = await this._getPopover() as Popover;\n\t\tif (this.valueStatePopover) {\n\t\t\tthis.valueStatePopover.showAt(this);\n\t\t}\n\t}\n\n\tcloseValueStatePopover() {\n\t\tthis.valueStatePopover && this.valueStatePopover.close();\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\tasync _getPopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem!.querySelector<Popover>(\"[ui5-popover]\");\n\t}\n\n\tstatic async onDefine() {\n\t\tSelect.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n}\n\nSelect.define();\n\nexport default Select;\nexport type {\n\tSelectChangeEventDetail,\n\tIOption,\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 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.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport connectToComponent from \"@ui5/webcomponents-base/dist/connectToComponent.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 DOMReference from \"@ui5/webcomponents-base/dist/types/DOMReference.js\";\nimport announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.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 { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport type { Timeout } from \"@ui5/webcomponents-base/dist/types.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.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\tINPUT_SUGGESTIONS_TITLE,\n\tLIST_ITEM_POSITION,\n\tSELECT_ROLE_DESCRIPTION,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport Option from \"./Option.js\";\nimport Label from \"./Label.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport Popover from \"./Popover.js\";\nimport StandardListItem from \"./StandardListItem.js\";\nimport Icon from \"./Icon.js\";\nimport Button from \"./Button.js\";\n\n// Templates\nimport SelectTemplate from \"./generated/templates/SelectTemplate.lit.js\";\nimport SelectPopoverTemplate from \"./generated/templates/SelectPopoverTemplate.lit.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\";\nimport type FormSupport from \"./features/InputElementsFormSupport.js\";\nimport type { IFormElement } from \"./features/InputElementsFormSupport.js\";\nimport type ListItemBase from \"./ListItemBase.js\";\nimport type SelectMenu from \"./SelectMenu.js\";\nimport type { SelectMenuOptionClick, SelectMenuChange } from \"./SelectMenu.js\";\n\ntype SelectChangeEventDetail = {\n\tselectedOption: IOption,\n}\ntype SelectLiveChangeEventDetail = {\n\tselectedOption: IOption,\n}\n\ninterface IOption extends UI5Element {\n\tid: string,\n\tselected: boolean,\n\t_focused?: boolean,\n\tfocused?: boolean,\n\ticon?: string | undefined,\n\tvalue: string,\n\ttextContent: string | null,\n\ttitle: string,\n\tadditionalText?: string,\n\tstableDomRef?: string,\n\tdisplayText?: string,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n * The <code>ui5-select</code> component is used to create a drop-down list.\n * The items inside the <code>ui5-select</code> define the available options by using the <code>ui5-option</code> component.\n *\n * <h3>Keyboard Handling</h3>\n * The <code>ui5-select</code> provides advanced keyboard handling.\n * <br>\n * <ul>\n * <li>[F4, ALT+UP, ALT+DOWN, SPACE, ENTER] - Opens/closes the drop-down.</li>\n * <li>[UP, 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.</li>\n * <li>[SPACE, ENTER] - If the drop-down is opened - selects the focused option.</li>\n * <li>[ESC] - Closes the drop-down without changing the selection.</li>\n * <li>[HOME] - Navigates to first option</li>\n * <li>[END] - Navigates to the last option</li>\n * </ul>\n * <br>\n *\n * <h3>ES6 Module Import</h3>\n * <code>import \"@ui5/webcomponents/dist/Select\";</code>\n * <br>\n * <code>import \"@ui5/webcomponents/dist/Option\";</code> (comes with <code>ui5-select</code>)\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webc.main.Select\n * @extends sap.ui.webc.base.UI5Element\n * @tagname ui5-select\n * @appenddocs sap.ui.webc.main.Option sap.ui.webc.main.SelectMenu sap.ui.webc.main.SelectMenuOption\n * @public\n * @since 0.8.0\n */\n@customElement({\n\ttag: \"ui5-select\",\n\tlanguageAware: true,\n\trenderer: litRender,\n\ttemplate: SelectTemplate,\n\tstaticAreaTemplate: SelectPopoverTemplate,\n\tstyles: selectCss,\n\tstaticAreaStyles: [\n\t\tResponsivePopoverCommonCss,\n\t\tValueStateMessageCss,\n\t\tSelectPopoverCss,\n\t],\n\tdependencies: [\n\t\tOption,\n\t\tLabel,\n\t\tResponsivePopover,\n\t\tPopover,\n\t\tList,\n\t\tStandardListItem,\n\t\tIcon,\n\t\tButton,\n\t],\n})\n/**\n * Fired when the selected option changes.\n *\n * @event sap.ui.webc.main.Select#change\n * @allowPreventDefault\n * @param {HTMLElement} selectedOption the selected option.\n * @public\n */\n@event(\"change\", {\n\tdetail: {\n\t\tselectedOption: { type: HTMLElement },\n\t},\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 *\n * @event sap.ui.webc.main.Select#live-change\n * @param {HTMLElement} selectedOption the selected option.\n * @public\n * @since 1.17.0\n */\n@event(\"live-change\", {\n\tdetail: {\n\t\toption: { type: HTMLElement },\n\t},\n})\n/**\n * Fired after the component's dropdown menu opens.\n *\n * @event sap.ui.webc.main.Select#open\n * @public\n */\n@event(\"open\")\n/**\n * Fired after the component's dropdown menu closes.\n *\n * @event sap.ui.webc.main.Select#close\n * @public\n */\n@event(\"close\")\nclass Select extends UI5Element implements IFormElement {\n\tstatic i18nBundle: I18nBundle;\n\n\t/**\n\t * Defines a reference (ID or DOM element) of component's menu of options\n\t * as alternative to define the select's dropdown.\n\t * <br><br>\n\t * <b>Note:</b> Usage of <code>ui5-select-menu</code> is recommended.\n\t *\n\t * @type {sap.ui.webc.base.types.DOMReference}\n\t * @defaultvalue undefined\n\t * @name sap.ui.webc.main.Select.prototype.menu\n\t * @public\n\t * @since 1.17.0\n\t */\n\t@property({ validator: DOMReference })\n\tmenu?: HTMLElement | string;\n\n\t/**\n\t * Defines whether the component is in disabled state.\n\t * <br><br>\n\t * <b>Note:</b> A disabled component is noninteractive.\n\t *\n\t * @type {boolean}\n\t * @defaultvalue false\n\t * @name sap.ui.webc.main.Select.prototype.disabled\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Determines the name with which the component will be submitted in an HTML form.\n\t * The value of the component will be the value of the currently selected <code>ui5-option</code>.\n\t *\n\t * <br><br>\n\t * <b>Important:</b> For the <code>name</code> property to have effect, you must add the following import to your project:\n\t * <code>import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";</code>\n\t *\n\t * <br><br>\n\t * <b>Note:</b> When set, a native <code>input</code> HTML element\n\t * will be created inside the <code>ui5-select</code> so that it can be submitted as\n\t * part of an HTML form. Do not use this property unless you need to submit a form.\n\t *\n\t * @type {string}\n\t * @defaultvalue \"\"\n\t * @name sap.ui.webc.main.Select.prototype.name\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 * <br><br>\n\t * Available options are:\n\t * <ul>\n\t * <li><code>None</code></li>\n\t * <li><code>Error</code></li>\n\t * <li><code>Warning</code></li>\n\t * <li><code>Success</code></li>\n\t * <li><code>Information</code></li>\n\t * </ul>\n\t *\n\t * @type {sap.ui.webc.base.types.ValueState}\n\t * @defaultvalue \"None\"\n\t * @name sap.ui.webc.main.Select.prototype.valueState\n\t * @public\n\t */\n\t@property({ type: ValueState, defaultValue: ValueState.None })\n\tvalueState!: `${ValueState}`;\n\n\t/**\n\t * Defines whether the component is required.\n\t *\n\t * @since 1.0.0-rc.9\n\t * @type {boolean}\n\t * @defaultvalue false\n\t * @name sap.ui.webc.main.Select.prototype.required\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\trequired!: boolean;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t *\n\t * @type {string}\n\t * @since 1.0.0-rc.9\n\t * @public\n\t * @defaultvalue \"\"\n\t * @name sap.ui.webc.main.Select.prototype.accessibleName\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleName!: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the select.\n\t *\n\t * @type {string}\n\t * @defaultvalue \"\"\n\t * @name sap.ui.webc.main.Select.prototype.accessibleNameRef\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleNameRef!: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: String, noAttribute: true })\n\t_text?: string | null;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_iconPressed!: boolean;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\topened!: boolean;\n\n\t/**\n\t * @type {sap.ui.webc.base.types.Integer}\n\t * @private\n\t */\n\t@property({ validator: Integer, defaultValue: 0, noAttribute: true })\n\t_listWidth!: number;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused!: boolean;\n\n\t/**\n\t * @type {sap.ui.webc.base.types.Integer}\n\t * @private\n\t */\n\t@property({ validator: Integer, defaultValue: -1, noAttribute: true })\n\t_selectedIndex!: number;\n\n\t_syncedOptions: Array<IOption>;\n\t_selectedIndexBeforeOpen: number;\n\t_escapePressed: boolean;\n\t_lastSelectedOption: IOption | null;\n\t_typedChars: string;\n\t_typingTimeoutID?: Timeout | number;\n\tresponsivePopover!: ResponsivePopover;\n\tselectedItem?: string | null;\n\tvalueStatePopover?: Popover;\n\tvalue!: string;\n\n\tselectMenu?: SelectMenu;\n\n\t/**\n\t * Defines the component options.\n\t *\n\t * <br><br>\n\t * <b>Note:</b> 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 * <br><br>\n\t * <b>Note:</b> Use the <code>ui5-option</code> component to define the desired options.\n\t * @type {sap.ui.webc.main.ISelectOption[]}\n\t * @slot options\n\t * @name sap.ui.webc.main.Select.prototype.default\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, invalidateOnChildChange: true })\n\toptions!: Array<Option>;\n\n\t/**\n\t * The slot is used to render native <code>input</code> HTML element within Light DOM to enable form submit,\n\t * when <code>name</code> property is set.\n\t * @type {HTMLElement[]}\n\t * @slot\n\t * @private\n\t */\n\t@slot()\n\tformSupport!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the value state message that will be displayed as pop up under the component.\n\t * <br><br>\n\t *\n\t * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.\n\t * <br><br>\n\t * <b>Note:</b> The <code>valueStateMessage</code> would be displayed,\n\t * when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.\n\t * <br><br>\n\t * <b>Note:</b> If the component has <code>suggestionItems</code>,\n\t * the <code>valueStateMessage</code> would be displayed as part of the same popover, if used on desktop, or dialog - on phone.\n\t * @type {HTMLElement[]}\n\t * @name sap.ui.webc.main.Select.prototype.valueStateMessage\n\t * @slot\n\t * @public\n\t*/\n\t@slot()\n\tvalueStateMessage!: Array<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 * <br><br>\n\t *\n\t * <b>Note:</b> If not specified and <code>ui5-select-menu-option</code> is used,\n\t * either the option's <code>display-text</code> or its textContent will be displayed.\n\t * <br><br>\n\t *\n\t * <b>Note:</b> If not specified and <code>ui5-option</code> is used,\n\t * the option's textContent will be displayed.\n\t *\n\t * @type {HTMLElement[]}\n\t * @name sap.ui.webc.main.Select.prototype.label\n\t * @slot label\n\t * @public\n\t * @since 1.17.0\n\t*/\n\t@slot()\n\tlabel!: Array<HTMLElement>;\n\n\t_onMenuClick: (e: CustomEvent<SelectMenuOptionClick>) => void;\n\t_onMenuClose: () => void;\n\t_onMenuOpen: () => void;\n\t_onMenuBeforeOpen: () => void;\n\t_onMenuChange: (e: CustomEvent<SelectMenuChange>) => void;\n\t_attachMenuListeners: (menu: HTMLElement) => void;\n\t_detachMenuListeners: (menu: HTMLElement) => void;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._syncedOptions = [];\n\t\tthis._selectedIndexBeforeOpen = -1;\n\t\tthis._escapePressed = false;\n\t\tthis._lastSelectedOption = null;\n\t\tthis._typedChars = \"\";\n\n\t\tthis._onMenuClick = this.onMenuClick.bind(this);\n\t\tthis._onMenuClose = this.onMenuClose.bind(this);\n\t\tthis._onMenuOpen = this.onMenuOpen.bind(this);\n\t\tthis._onMenuBeforeOpen = this.onMenuBeforeOpen.bind(this);\n\t\tthis._onMenuChange = this.onMenuChange.bind(this);\n\t\tthis._attachMenuListeners = this.attachMenuListeners.bind(this);\n\t\tthis._detachMenuListeners = this.detachMenuListeners.bind(this);\n\t}\n\n\tonBeforeRendering() {\n\t\tconst menu = this._getSelectMenu();\n\n\t\tif (menu) {\n\t\t\tmenu.value = this.value;\n\t\t} else {\n\t\t\tthis._syncSelection();\n\t\t}\n\n\t\tthis._enableFormSupport();\n\n\t\tthis.style.setProperty(getScopedVarName(\"--_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\n\t\tthis._attachRealDomRefs();\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\tconst menu = this._getSelectMenu();\n\n\t\tif (menu) {\n\t\t\treturn menu.open;\n\t\t}\n\n\t\treturn !!this.responsivePopover && this.responsivePopover.opened;\n\t}\n\n\tasync _respPopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\t/**\n\t * Currently selected <code>ui5-option</code> element.\n\t * @readonly\n\t * @type {sap.ui.webc.main.ISelectOption}\n\t * @name sap.ui.webc.main.Select.prototype.selectedOption\n\t * @public\n\t */\n\tget selectedOption() {\n\t\treturn this.selectOptions.find(option => option.selected);\n\t}\n\n\tonMenuClick(e: CustomEvent<SelectMenuOptionClick>) {\n\t\tconst optionIndex: number = e.detail.optionIndex;\n\t\tthis._handleSelectionChange(optionIndex);\n\t}\n\n\tonMenuBeforeOpen() {\n\t\tthis._beforeOpen();\n\t}\n\n\tonMenuOpen() {\n\t\tthis._afterOpen();\n\t}\n\n\tonMenuClose() {\n\t\tthis._afterClose();\n\t}\n\n\tonMenuChange(e: CustomEvent<SelectMenuChange>) {\n\t\tthis._text = e.detail.text;\n\t\tthis._selectedIndex = e.detail.selectedIndex;\n\t}\n\n\t_toggleSelectMenu() {\n\t\tconst menu = this._getSelectMenu();\n\n\t\tif (!menu) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (menu.open) {\n\t\t\tmenu.close();\n\t\t} else {\n\t\t\tmenu.showAt(this, this.offsetWidth);\n\t\t}\n\t}\n\n\tonExitDOM(): void {\n\t\tconst menu = this._getSelectMenu();\n\t\tif (menu) {\n\t\t\tthis._detachMenuListeners(menu);\n\t\t}\n\t}\n\n\tasync _toggleRespPopover() {\n\t\tif (this.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._iconPressed = true;\n\n\t\tconst menu = this._getSelectMenu();\n\t\tif (menu) {\n\t\t\tthis._toggleSelectMenu();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.responsivePopover = await this._respPopover();\n\t\tif (this._isPickerOpen) {\n\t\t\tthis.responsivePopover.close();\n\t\t} else {\n\t\t\tthis.responsivePopover.showAt(this);\n\t\t}\n\t}\n\n\tasync _attachRealDomRefs() {\n\t\tthis.responsivePopover = await this._respPopover();\n\n\t\tthis.options.forEach(option => {\n\t\t\toption._getRealDomRef = () => this.responsivePopover.querySelector<HTMLElement>(`*[data-ui5-stable=${option.stableDomRef}]`)!;\n\t\t});\n\t}\n\n\t_syncSelection() {\n\t\tlet lastSelectedOptionIndex = -1,\n\t\t\tfirstEnabledOptionIndex = -1;\n\t\tconst options = this._filteredItems;\n\t\tconst syncOpts = options.map((opt, index) => {\n\t\t\tif (opt.selected || opt.textContent === this.value) {\n\t\t\t\t// The second condition in the IF statement is added because of Angular Reactive Forms Support(Two way data binding)\n\t\t\t\tlastSelectedOptionIndex = index;\n\t\t\t}\n\t\t\tif (firstEnabledOptionIndex === -1) {\n\t\t\t\tfirstEnabledOptionIndex = index;\n\t\t\t}\n\n\t\t\topt.selected = false;\n\t\t\topt._focused = false;\n\n\t\t\treturn {\n\t\t\t\tselected: false,\n\t\t\t\t_focused: false,\n\t\t\t\ticon: opt.icon,\n\t\t\t\tvalue: opt.value,\n\t\t\t\ttextContent: opt.textContent,\n\t\t\t\ttitle: opt.title,\n\t\t\t\tadditionalText: opt.additionalText,\n\t\t\t\tid: opt._id,\n\t\t\t\tstableDomRef: opt.stableDomRef,\n\t\t\t};\n\t\t});\n\n\t\tif (lastSelectedOptionIndex > -1) {\n\t\t\tsyncOpts[lastSelectedOptionIndex].selected = true;\n\t\t\tsyncOpts[lastSelectedOptionIndex]._focused = true;\n\t\t\toptions[lastSelectedOptionIndex].selected = true;\n\t\t\toptions[lastSelectedOptionIndex]._focused = true;\n\t\t\tthis._text = syncOpts[lastSelectedOptionIndex].textContent;\n\t\t\tthis._selectedIndex = lastSelectedOptionIndex;\n\t\t} else {\n\t\t\tthis._text = \"\";\n\t\t\tthis._selectedIndex = -1;\n\t\t\tif (syncOpts[firstEnabledOptionIndex]) {\n\t\t\t\tsyncOpts[firstEnabledOptionIndex].selected = true;\n\t\t\t\tsyncOpts[firstEnabledOptionIndex]._focused = true;\n\t\t\t\toptions[firstEnabledOptionIndex].selected = true;\n\t\t\t\toptions[firstEnabledOptionIndex]._focused = true;\n\t\t\t\tthis._selectedIndex = firstEnabledOptionIndex;\n\t\t\t\tthis._text = options[firstEnabledOptionIndex].textContent;\n\t\t\t}\n\t\t}\n\n\t\tthis._syncedOptions = syncOpts as Array<IOption>;\n\t}\n\n\t_getSelectMenu(): SelectMenu | undefined {\n\t\treturn connectToComponent({\n\t\t\thost: this,\n\t\t\tpropName: \"menu\",\n\t\t\tonConnect: this._attachMenuListeners,\n\t\t\tonDisconnect: this._detachMenuListeners,\n\t\t}) as SelectMenu;\n\t}\n\n\tattachMenuListeners(menu: HTMLElement) {\n\t\tmenu.addEventListener(\"ui5-after-close\", this._onMenuClose);\n\t\tmenu.addEventListener(\"ui5-after-open\", this._onMenuOpen);\n\t\tmenu.addEventListener(\"ui5-before-open\", this._onMenuBeforeOpen);\n\t\t// @ts-ignore\n\t\tmenu.addEventListener(\"ui5-option-click\", this._onMenuClick);\n\t\t// @ts-ignore\n\t\tmenu.addEventListener(\"ui5-menu-change\", this._onMenuChange);\n\t}\n\n\tdetachMenuListeners(menu: HTMLElement) {\n\t\tmenu.removeEventListener(\"ui5-after-close\", this._onMenuClose);\n\t\tmenu.removeEventListener(\"ui5-after-open\", this._onMenuOpen);\n\t\tmenu.removeEventListener(\"ui5-before-open\", this._onMenuBeforeOpen);\n\t\t// @ts-ignore\n\t\tmenu.removeEventListener(\"ui5-option-click\", this._onMenuClick);\n\t\t// @ts-ignore\n\t\tmenu.removeEventListener(\"ui5-menu-change\", this._onMenuChange);\n\t}\n\n\t_enableFormSupport() {\n\t\tconst formSupport = getFeature<typeof FormSupport>(\"FormSupport\");\n\t\tif (formSupport) {\n\t\t\tformSupport.syncNativeHiddenInput(this, (element: IFormElement, nativeInput: HTMLInputElement) => {\n\t\t\t\tconst selectElement = (element as Select);\n\t\t\t\tnativeInput.disabled = !!element.disabled;\n\t\t\t\tnativeInput.value = selectElement._currentlySelectedOption ? selectElement._currentlySelectedOption.value : \"\";\n\t\t\t});\n\t\t} else if (this.name) {\n\t\t\tconsole.warn(`In order for the \"name\" property to have effect, you should also: import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`); // eslint-disable-line\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst isTab = (isTabNext(e) || isTabPrevious(e));\n\n\t\tif (isTab && this._isPickerOpen) {\n\t\t\tconst menu = this._getSelectMenu();\n\t\t\tif (menu) {\n\t\t\t\tmenu.close(false, false, true /* preventFocusRestore */);\n\t\t\t} else {\n\t\t\t\tthis.responsivePopover.close();\n\t\t\t}\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} else if (isEnter(e)) {\n\t\t\tthis._handleSelectionChange();\n\t\t} else if (isUp(e) || isDown(e)) {\n\t\t\tthis._handleArrowNavigation(e);\n\t\t}\n\t}\n\n\t_handleKeyboardNavigation(e: KeyboardEvent) {\n\t\tif (isEnter(e)) {\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.selectOptions.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}\n\t\t}\n\t}\n\n\t_searchNextItemByText(text: string) {\n\t\tlet orderedOptions = this.selectOptions.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.displayText || option.textContent || \"\").toLowerCase().startsWith(text));\n\t}\n\n\t_handleHomeKey(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tthis._changeSelectedItem(this._selectedIndex, 0);\n\t}\n\n\t_handleEndKey(e: KeyboardEvent) {\n\t\tconst lastIndex = this.selectOptions.length - 1;\n\n\t\te.preventDefault();\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_getSelectedItemIndex(item: ListItemBase) {\n\t\treturn this.selectOptions.findIndex(option => `${option._id}-li` === item.id);\n\t}\n\n\t_select(index: number) {\n\t\tthis.selectOptions[this._selectedIndex].selected = false;\n\n\t\tif (this._selectedIndex !== index) {\n\t\t\tthis.fireEvent<SelectLiveChangeEventDetail>(\"live-change\", { selectedOption: this.selectOptions[index] });\n\t\t}\n\n\t\tthis._selectedIndex = index;\n\t\tthis.selectOptions[index].selected = true;\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 item = e.detail.item;\n\t\tconst selectedItemIndex = this._getSelectedItemIndex(item);\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._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\tlet nextIndex = -1;\n\t\tconst currentIndex = this._selectedIndex;\n\t\tconst isDownKey = isDown(e);\n\n\t\te.preventDefault();\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.selectOptions;\n\n\t\tconst previousOption = options[oldIndex];\n\t\tpreviousOption.selected = false;\n\t\tpreviousOption._focused = false;\n\t\tpreviousOption.focused = false;\n\n\t\tconst nextOption = options[newIndex];\n\t\tnextOption.selected = true;\n\t\tnextOption._focused = true;\n\t\tnextOption.focused = true;\n\n\t\tthis._selectedIndex = newIndex;\n\n\t\tthis.fireEvent<SelectLiveChangeEventDetail>(\"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\tconst menu = this._getSelectMenu();\n\t\tif (menu) {\n\t\t\treturn this._selectedIndex === (menu.options.length - 1) ? this._selectedIndex : (this._selectedIndex + 1);\n\t\t}\n\t\treturn this._selectedIndex === (this.options.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.selectOptions[this._selectedIndex];\n\t}\n\n\t_afterOpen() {\n\t\tthis.opened = true;\n\t\tthis.fireEvent<CustomEvent>(\"open\");\n\t\tthis.itemSelectionAnnounce();\n\t\tthis._scrollSelectedItem();\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.selectOptions[this._selectedIndex]) {\n\t\t\tthis._fireChangeEvent(this.selectOptions[this._selectedIndex]);\n\t\t\tthis._lastSelectedOption = this.selectOptions[this._selectedIndex];\n\t\t}\n\t\tthis.fireEvent<CustomEvent>(\"close\");\n\t}\n\n\tget selectOptions(): Array<IOption> {\n\t\tconst menu = this._getSelectMenu();\n\t\tif (menu) {\n\t\t\treturn menu.options;\n\t\t}\n\t\treturn this._filteredItems;\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.fireEvent<SelectChangeEventDetail>(\"change\", { selectedOption }, true);\n\n\t\t// Angular two way data binding\n\t\tthis.selectedItem = selectedOption.textContent;\n\t\tthis.fireEvent(\"selected-item-changed\");\n\n\t\tif (changePrevented) {\n\t\t\tthis.selectedItem = this._lastSelectedOption!.textContent;\n\t\t\tthis._select(this._selectedIndexBeforeOpen);\n\t\t}\n\t}\n\n\tget valueStateTextMappings() {\n\t\treturn {\n\t\t\t[ValueState.Success]: Select.i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t\t[ValueState.Information]: Select.i18nBundle.getText(VALUE_STATE_INFORMATION),\n\t\t\t[ValueState.Error]: Select.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t[ValueState.Warning]: Select.i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t};\n\t}\n\n\tget valueStateTypeMappings() {\n\t\treturn {\n\t\t\t[ValueState.Success]: 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.Error]: Select.i18nBundle.getText(VALUE_STATE_TYPE_ERROR),\n\t\t\t[ValueState.Warning]: 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.valueStateMessageText.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 isDisabled() {\n\t\treturn this.disabled || undefined;\n\t}\n\n\tget _headerTitleText() {\n\t\treturn Select.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);\n\t}\n\n\tget _currentlySelectedOption() {\n\t\treturn this.selectOptions[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.opened) ? \"-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\tError: \"error\",\n\t\t\tWarning: \"alert\",\n\t\t\tSuccess: \"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--success\": this.valueState === ValueState.Success,\n\t\t\t\t\"ui5-valuestatemessage--error\": this.valueState === ValueState.Error,\n\t\t\t\t\"ui5-valuestatemessage--warning\": this.valueState === ValueState.Warning,\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\treturn {\n\t\t\tpopoverHeader: {\n\t\t\t\t\"max-width\": `${this.offsetWidth}px`,\n\t\t\t},\n\t\t\tresponsivePopoverHeader: {\n\t\t\t\t\"display\": this._filteredItems.length && this._listWidth === 0 ? \"none\" : \"inline-block\",\n\t\t\t\t\"width\": `${this._filteredItems.length ? this._listWidth : this.offsetWidth}px`,\n\t\t\t},\n\t\t\tresponsivePopover: {\n\t\t\t\t\"min-width\": `${this.offsetWidth}px`,\n\t\t\t},\n\t\t};\n\t}\n\n\tget ariaLabelText() {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget valueStateMessageText() {\n\t\treturn this.getSlottedNodes(\"valueStateMessage\").map(el => el.cloneNode(true));\n\t}\n\n\tget shouldDisplayDefaultValueStateMessage() {\n\t\treturn !this.valueStateMessageText.length && this.hasValueStateText;\n\t}\n\n\tget hasValueStateText() {\n\t\treturn this.hasValueState && this.valueState !== ValueState.Success;\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\tget _filteredItems() {\n\t\treturn this.options.filter(option => !option.disabled);\n\t}\n\n\titemSelectionAnnounce() {\n\t\tlet text;\n\t\tconst optionsCount = this.selectOptions.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\tasync openValueStatePopover() {\n\t\tthis.valueStatePopover = await this._getPopover() as Popover;\n\t\tif (this.valueStatePopover) {\n\t\t\tthis.valueStatePopover.showAt(this);\n\t\t}\n\t}\n\n\tcloseValueStatePopover() {\n\t\tthis.valueStatePopover && this.valueStatePopover.close();\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\tasync _getPopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem!.querySelector<Popover>(\"[ui5-popover]\");\n\t}\n\n\tstatic async onDefine() {\n\t\tSelect.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n}\n\nSelect.define();\n\nexport default Select;\nexport type {\n\tSelectChangeEventDetail,\n\tSelectLiveChangeEventDetail,\n\tIOption,\n};\n"]}