@ui5/webcomponents 0.0.0-323968e1b → 0.0.0-4180fe799

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 (730) hide show
  1. package/CHANGELOG.md +717 -1
  2. package/README.md +144 -41
  3. package/csp.js +7 -0
  4. package/customI18n.js +50 -0
  5. package/dist/Assets-static.js +6 -0
  6. package/dist/Assets.js +3 -2
  7. package/dist/Avatar.js +224 -40
  8. package/dist/AvatarGroup.js +603 -0
  9. package/dist/Badge.js +48 -28
  10. package/dist/Breadcrumbs.js +563 -0
  11. package/dist/BreadcrumbsItem.js +109 -0
  12. package/dist/BusyIndicator.js +172 -19
  13. package/dist/Button.js +180 -49
  14. package/dist/Calendar.js +345 -554
  15. package/dist/CalendarDate.js +45 -0
  16. package/dist/CalendarHeader.js +133 -64
  17. package/dist/CalendarPart.js +111 -0
  18. package/dist/Card.js +47 -161
  19. package/dist/CardHeader.js +288 -0
  20. package/dist/Carousel.js +681 -0
  21. package/dist/CheckBox.js +154 -54
  22. package/dist/ColorPalette.js +493 -0
  23. package/dist/ColorPaletteItem.js +137 -0
  24. package/dist/ColorPalettePopover.js +219 -0
  25. package/dist/ColorPicker.js +524 -0
  26. package/dist/ComboBox.js +664 -107
  27. package/dist/ComboBoxFilters.js +8 -1
  28. package/dist/ComboBoxGroupItem.js +70 -0
  29. package/dist/ComboBoxItem.js +33 -30
  30. package/dist/CustomListItem.js +38 -9
  31. package/dist/DateComponentBase.js +170 -0
  32. package/dist/DatePicker.js +468 -384
  33. package/dist/DateRangePicker.js +328 -0
  34. package/dist/DateTimePicker.js +430 -0
  35. package/dist/DayPicker.js +513 -438
  36. package/dist/Dialog.js +501 -47
  37. package/dist/DurationPicker.js +312 -0
  38. package/dist/FileUploader.js +532 -0
  39. package/dist/GroupHeaderListItem.js +36 -8
  40. package/dist/Icon.js +221 -43
  41. package/dist/Input.js +796 -127
  42. package/dist/Interfaces.js +192 -0
  43. package/dist/Label.js +27 -12
  44. package/dist/Link.js +143 -35
  45. package/dist/List.js +560 -73
  46. package/dist/ListItem.js +139 -30
  47. package/dist/ListItemBase.js +53 -9
  48. package/dist/MessageStrip.js +82 -93
  49. package/dist/MonthPicker.js +181 -184
  50. package/dist/MultiComboBox.js +625 -200
  51. package/dist/MultiComboBoxItem.js +43 -0
  52. package/dist/MultiInput.js +301 -0
  53. package/dist/Option.js +48 -5
  54. package/dist/Panel.js +123 -41
  55. package/dist/Popover.js +314 -234
  56. package/dist/Popup.js +382 -287
  57. package/dist/ProgressIndicator.js +235 -0
  58. package/dist/RadioButton.js +153 -66
  59. package/dist/RadioButtonGroup.js +53 -29
  60. package/dist/RangeSlider.js +769 -0
  61. package/dist/RatingIndicator.js +291 -0
  62. package/dist/ResponsivePopover.js +117 -61
  63. package/dist/SegmentedButton.js +290 -0
  64. package/dist/SegmentedButtonItem.js +109 -0
  65. package/dist/Select.js +500 -110
  66. package/dist/Slider.js +320 -0
  67. package/dist/SliderBase.js +842 -0
  68. package/dist/StandardListItem.js +46 -24
  69. package/dist/StepInput.js +684 -0
  70. package/dist/SuggestionGroupItem.js +64 -0
  71. package/dist/SuggestionItem.js +146 -0
  72. package/dist/SuggestionListItem.js +76 -0
  73. package/dist/Switch.js +62 -48
  74. package/dist/Tab.js +184 -18
  75. package/dist/TabContainer.js +337 -235
  76. package/dist/TabSeparator.js +2 -1
  77. package/dist/Table.js +492 -39
  78. package/dist/TableCell.js +13 -15
  79. package/dist/TableColumn.js +18 -7
  80. package/dist/TableGroupRow.js +160 -0
  81. package/dist/TableRow.js +254 -31
  82. package/dist/TextArea.js +314 -38
  83. package/dist/TimePicker.js +166 -0
  84. package/dist/TimePickerBase.js +463 -0
  85. package/dist/TimeSelection.js +493 -0
  86. package/dist/Title.js +18 -10
  87. package/dist/Toast.js +63 -37
  88. package/dist/ToggleButton.js +21 -13
  89. package/dist/Token.js +87 -49
  90. package/dist/Tokenizer.js +250 -65
  91. package/dist/Tree.js +443 -0
  92. package/dist/TreeItem.js +168 -0
  93. package/dist/TreeListItem.js +332 -0
  94. package/dist/WheelSlider.js +435 -0
  95. package/dist/YearPicker.js +201 -258
  96. package/dist/api.json +6877 -0
  97. package/dist/features/ColorPaletteMoreColors.js +42 -0
  98. package/dist/features/InputElementsFormSupport.js +35 -1
  99. package/dist/features/InputSuggestions.js +294 -52
  100. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  101. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  102. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  103. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  104. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -0
  105. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  106. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  107. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  108. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  109. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -0
  110. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -0
  111. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -0
  112. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -0
  113. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  114. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -0
  115. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  116. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  117. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  118. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -0
  119. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  120. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  121. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  122. package/dist/generated/assets/i18n/messagebundle_in.json +1 -0
  123. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  124. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  125. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  126. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  127. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  128. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  129. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  130. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  131. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  132. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  133. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  134. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  135. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -0
  136. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  137. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  138. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  139. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  140. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  141. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  142. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  143. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  144. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  145. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  146. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  147. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  148. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  149. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  150. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -0
  151. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  152. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  153. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -0
  154. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -0
  155. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -0
  156. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -0
  157. package/dist/generated/i18n/i18n-defaults.js +2 -2
  158. package/dist/generated/json-imports/Themes-static.js +35 -0
  159. package/dist/generated/json-imports/Themes.js +23 -13
  160. package/dist/generated/json-imports/i18n-static.js +162 -0
  161. package/dist/generated/json-imports/i18n.js +113 -89
  162. package/dist/generated/templates/AvatarGroupTemplate.lit.js +9 -0
  163. package/dist/generated/templates/AvatarTemplate.lit.js +9 -9
  164. package/dist/generated/templates/BadgeTemplate.lit.js +5 -6
  165. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +8 -0
  166. package/dist/generated/templates/BreadcrumbsTemplate.lit.js +9 -0
  167. package/dist/generated/templates/BusyIndicatorTemplate.lit.js +7 -5
  168. package/dist/generated/templates/ButtonTemplate.lit.js +6 -6
  169. package/dist/generated/templates/CalendarHeaderTemplate.lit.js +6 -4
  170. package/dist/generated/templates/CalendarTemplate.lit.js +4 -4
  171. package/dist/generated/templates/CardHeaderTemplate.lit.js +12 -0
  172. package/dist/generated/templates/CardTemplate.lit.js +5 -8
  173. package/dist/generated/templates/CarouselTemplate.lit.js +16 -0
  174. package/dist/generated/templates/CheckBoxTemplate.lit.js +7 -7
  175. package/dist/generated/templates/ColorPaletteDialogTemplate.lit.js +7 -0
  176. package/dist/generated/templates/ColorPaletteItemTemplate.lit.js +7 -0
  177. package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +8 -0
  178. package/dist/generated/templates/ColorPaletteTemplate.lit.js +12 -0
  179. package/dist/generated/templates/ColorPickerTemplate.lit.js +7 -0
  180. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +20 -5
  181. package/dist/generated/templates/ComboBoxTemplate.lit.js +8 -5
  182. package/dist/generated/templates/CustomListItemTemplate.lit.js +13 -12
  183. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +7 -4
  184. package/dist/generated/templates/DatePickerTemplate.lit.js +6 -5
  185. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +12 -0
  186. package/dist/generated/templates/DayPickerTemplate.lit.js +13 -11
  187. package/dist/generated/templates/DialogTemplate.lit.js +9 -8
  188. package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +10 -0
  189. package/dist/generated/templates/FileUploaderTemplate.lit.js +10 -0
  190. package/dist/generated/templates/GroupHeaderListItemTemplate.lit.js +4 -4
  191. package/dist/generated/templates/IconTemplate.lit.js +6 -6
  192. package/dist/generated/templates/InputPopoverTemplate.lit.js +24 -6
  193. package/dist/generated/templates/InputTemplate.lit.js +9 -8
  194. package/dist/generated/templates/LabelTemplate.lit.js +4 -4
  195. package/dist/generated/templates/LinkTemplate.lit.js +5 -5
  196. package/dist/generated/templates/ListItemTemplate.lit.js +13 -12
  197. package/dist/generated/templates/ListTemplate.lit.js +12 -8
  198. package/dist/generated/templates/MessageStripTemplate.lit.js +6 -22
  199. package/dist/generated/templates/MonthPickerTemplate.lit.js +6 -6
  200. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +23 -7
  201. package/dist/generated/templates/MultiComboBoxTemplate.lit.js +10 -8
  202. package/dist/generated/templates/MultiInputTemplate.lit.js +16 -0
  203. package/dist/generated/templates/PanelTemplate.lit.js +9 -6
  204. package/dist/generated/templates/PopoverTemplate.lit.js +9 -9
  205. package/dist/generated/templates/PopupBlockLayerTemplate.lit.js +7 -0
  206. package/dist/generated/templates/PopupTemplate.lit.js +4 -4
  207. package/dist/generated/templates/ProgressIndicatorTemplate.lit.js +17 -0
  208. package/dist/generated/templates/RadioButtonTemplate.lit.js +7 -7
  209. package/dist/generated/templates/RangeSliderTemplate.lit.js +13 -0
  210. package/dist/generated/templates/RatingIndicatorTemplate.lit.js +14 -0
  211. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +16 -11
  212. package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +8 -0
  213. package/dist/generated/templates/SegmentedButtonTemplate.lit.js +7 -0
  214. package/dist/generated/templates/SelectPopoverTemplate.lit.js +20 -6
  215. package/dist/generated/templates/SelectTemplate.lit.js +6 -4
  216. package/dist/generated/templates/SliderBaseTemplate.lit.js +11 -0
  217. package/dist/generated/templates/SliderTemplate.lit.js +12 -0
  218. package/dist/generated/templates/StandardListItemTemplate.lit.js +21 -18
  219. package/dist/generated/templates/StepInputTemplate.lit.js +10 -0
  220. package/dist/generated/templates/SuggestionListItemTemplate.lit.js +27 -0
  221. package/dist/generated/templates/SwitchTemplate.lit.js +8 -6
  222. package/dist/generated/templates/TabContainerPopoverTemplate.lit.js +6 -8
  223. package/dist/generated/templates/TabContainerTemplate.lit.js +16 -18
  224. package/dist/generated/templates/TabInOverflowTemplate.lit.js +9 -0
  225. package/dist/generated/templates/TabInStripTemplate.lit.js +11 -0
  226. package/dist/generated/templates/TabSeparatorTemplate.lit.js +4 -4
  227. package/dist/generated/templates/TabTemplate.lit.js +4 -4
  228. package/dist/generated/templates/TableCellTemplate.lit.js +4 -4
  229. package/dist/generated/templates/TableColumnTemplate.lit.js +4 -4
  230. package/dist/generated/templates/TableGroupRowTemplate.lit.js +7 -0
  231. package/dist/generated/templates/TableRowTemplate.lit.js +12 -6
  232. package/dist/generated/templates/TableTemplate.lit.js +13 -8
  233. package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +11 -0
  234. package/dist/generated/templates/TextAreaTemplate.lit.js +8 -8
  235. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +7 -0
  236. package/dist/generated/templates/TimePickerTemplate.lit.js +9 -0
  237. package/dist/generated/templates/TimeSelectionTemplate.lit.js +11 -0
  238. package/dist/generated/templates/TitleTemplate.lit.js +10 -10
  239. package/dist/generated/templates/ToastTemplate.lit.js +5 -4
  240. package/dist/generated/templates/ToggleButtonTemplate.lit.js +6 -6
  241. package/dist/generated/templates/TokenTemplate.lit.js +7 -5
  242. package/dist/generated/templates/TokenizerPopoverTemplate.lit.js +12 -0
  243. package/dist/generated/templates/TokenizerTemplate.lit.js +6 -6
  244. package/dist/generated/templates/TreeListItemTemplate.lit.js +21 -0
  245. package/dist/generated/templates/TreeTemplate.lit.js +8 -0
  246. package/dist/generated/templates/WheelSliderTemplate.lit.js +10 -0
  247. package/dist/generated/templates/YearPickerTemplate.lit.js +6 -6
  248. package/dist/generated/themes/Avatar.css.js +6 -7
  249. package/dist/generated/themes/AvatarGroup.css.js +8 -0
  250. package/dist/generated/themes/Badge.css.js +6 -7
  251. package/dist/generated/themes/Breadcrumbs.css.js +8 -0
  252. package/dist/generated/themes/BreadcrumbsPopover.css.js +8 -0
  253. package/dist/generated/themes/BrowserScrollbar.css.js +8 -0
  254. package/dist/generated/themes/BusyIndicator.css.js +6 -7
  255. package/dist/generated/themes/Button.css.js +6 -7
  256. package/dist/generated/themes/Button.ie11.css.js +8 -0
  257. package/dist/generated/themes/Calendar.css.js +6 -7
  258. package/dist/generated/themes/CalendarHeader.css.js +6 -7
  259. package/dist/generated/themes/Card.css.js +6 -7
  260. package/dist/generated/themes/CardHeader.css.js +8 -0
  261. package/dist/generated/themes/Carousel.css.js +8 -0
  262. package/dist/generated/themes/CheckBox.css.js +6 -7
  263. package/dist/generated/themes/ColorPalette.css.js +8 -0
  264. package/dist/generated/themes/ColorPaletteItem.css.js +8 -0
  265. package/dist/generated/themes/ColorPalettePopover.css.js +8 -0
  266. package/dist/generated/themes/ColorPaletteStaticArea.css.js +8 -0
  267. package/dist/generated/themes/ColorPicker.css.js +8 -0
  268. package/dist/generated/themes/ComboBox.css.js +6 -7
  269. package/dist/generated/themes/ComboBoxPopover.css.js +6 -7
  270. package/dist/generated/themes/CustomListItem.css.js +6 -7
  271. package/dist/generated/themes/DatePicker.css.js +6 -7
  272. package/dist/generated/themes/DatePickerPopover.css.js +6 -7
  273. package/dist/generated/themes/DateRangePicker.css.js +8 -0
  274. package/dist/generated/themes/DateTimePicker.css.js +8 -0
  275. package/dist/generated/themes/DateTimePickerPopover.css.js +8 -0
  276. package/dist/generated/themes/DayPicker.css.js +6 -7
  277. package/dist/generated/themes/Dialog.css.js +6 -7
  278. package/dist/generated/themes/FileUploader.css.js +8 -0
  279. package/dist/generated/themes/GroupHeaderListItem.css.js +6 -7
  280. package/dist/generated/themes/GrowingButton.css.js +8 -0
  281. package/dist/generated/themes/Icon.css.js +6 -7
  282. package/dist/generated/themes/Input.css.js +6 -7
  283. package/dist/generated/themes/InputIcon.css.js +6 -7
  284. package/dist/generated/themes/InvisibleTextStyles.css.js +6 -7
  285. package/dist/generated/themes/Label.css.js +6 -7
  286. package/dist/generated/themes/Link.css.js +6 -7
  287. package/dist/generated/themes/List.css.js +6 -7
  288. package/dist/generated/themes/ListItem.css.js +6 -7
  289. package/dist/generated/themes/ListItemBase.css.js +6 -7
  290. package/dist/generated/themes/MessageStrip.css.js +6 -7
  291. package/dist/generated/themes/MonthPicker.css.js +6 -7
  292. package/dist/generated/themes/MultiComboBox.css.js +6 -7
  293. package/dist/generated/themes/MultiInput.css.js +8 -0
  294. package/dist/generated/themes/Panel.css.js +6 -7
  295. package/dist/generated/themes/Popover.css.js +6 -7
  296. package/dist/generated/themes/Popup.css.js +6 -7
  297. package/dist/generated/themes/PopupGlobal.css.js +8 -0
  298. package/dist/generated/themes/PopupStaticAreaStyles.css.js +8 -0
  299. package/dist/generated/themes/PopupsCommon.css.js +8 -0
  300. package/dist/generated/themes/ProgressIndicator.css.js +8 -0
  301. package/dist/generated/themes/RadioButton.css.js +6 -7
  302. package/dist/generated/themes/RatingIndicator.css.js +8 -0
  303. package/dist/generated/themes/ResponsivePopover.css.js +6 -7
  304. package/dist/generated/themes/ResponsivePopoverCommon.css.js +6 -7
  305. package/dist/generated/themes/SegmentedButton.css.js +8 -0
  306. package/dist/generated/themes/Select.css.js +6 -7
  307. package/dist/generated/themes/SelectPopover.css.js +8 -0
  308. package/dist/generated/themes/SliderBase.css.js +8 -0
  309. package/dist/generated/themes/StepInput.css.js +8 -0
  310. package/dist/generated/themes/Suggestions.css.js +8 -0
  311. package/dist/generated/themes/Switch.css.js +6 -7
  312. package/dist/generated/themes/Tab.css.js +6 -7
  313. package/dist/generated/themes/TabContainer.css.js +6 -7
  314. package/dist/generated/themes/TabInOverflow.css.js +8 -0
  315. package/dist/generated/themes/TabInStrip.css.js +8 -0
  316. package/dist/generated/themes/Table.css.js +6 -7
  317. package/dist/generated/themes/TableCell.css.js +6 -7
  318. package/dist/generated/themes/TableColumn.css.js +6 -7
  319. package/dist/generated/themes/TableGroupRow.css.js +8 -0
  320. package/dist/generated/themes/TableRow.css.js +6 -7
  321. package/dist/generated/themes/TapHighlightColor.css.js +8 -0
  322. package/dist/generated/themes/TextArea.css.js +6 -7
  323. package/dist/generated/themes/TimePicker.css.js +8 -0
  324. package/dist/generated/themes/TimePickerPopover.css.js +8 -0
  325. package/dist/generated/themes/TimeSelection.css.js +8 -0
  326. package/dist/generated/themes/Title.css.js +6 -7
  327. package/dist/generated/themes/Toast.css.js +6 -7
  328. package/dist/generated/themes/ToggleButton.css.js +6 -7
  329. package/dist/generated/themes/ToggleButton.ie11.css.js +8 -0
  330. package/dist/generated/themes/Token.css.js +6 -7
  331. package/dist/generated/themes/Tokenizer.css.js +6 -7
  332. package/dist/generated/themes/Tree.css.js +8 -0
  333. package/dist/generated/themes/TreeListItem.css.js +8 -0
  334. package/dist/generated/themes/ValueStateMessage.css.js +8 -0
  335. package/dist/generated/themes/WheelSlider.css.js +8 -0
  336. package/dist/generated/themes/YearPicker.css.js +6 -7
  337. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  338. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  339. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -0
  340. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  341. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  342. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -0
  343. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -0
  344. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -0
  345. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -0
  346. package/dist/i18n/messagebundle.properties +335 -0
  347. package/dist/i18n/messagebundle_ar.properties +224 -0
  348. package/dist/i18n/messagebundle_bg.properties +224 -0
  349. package/dist/i18n/messagebundle_ca.properties +224 -0
  350. package/dist/i18n/messagebundle_cs.properties +224 -0
  351. package/dist/i18n/messagebundle_cy.properties +224 -0
  352. package/dist/i18n/messagebundle_da.properties +224 -0
  353. package/dist/i18n/messagebundle_de.properties +224 -0
  354. package/dist/i18n/messagebundle_el.properties +224 -0
  355. package/dist/i18n/messagebundle_en.properties +224 -0
  356. package/dist/i18n/messagebundle_en_GB.properties +224 -0
  357. package/dist/i18n/messagebundle_en_US_sappsd.properties +224 -0
  358. package/dist/i18n/messagebundle_en_US_saprigi.properties +224 -0
  359. package/dist/i18n/messagebundle_en_US_saptrc.properties +224 -0
  360. package/dist/i18n/messagebundle_es.properties +224 -0
  361. package/dist/i18n/messagebundle_es_MX.properties +224 -0
  362. package/dist/i18n/messagebundle_et.properties +224 -0
  363. package/dist/i18n/messagebundle_fi.properties +224 -0
  364. package/dist/i18n/messagebundle_fr.properties +224 -0
  365. package/dist/i18n/messagebundle_fr_CA.properties +224 -0
  366. package/dist/i18n/messagebundle_hi.properties +224 -0
  367. package/dist/i18n/messagebundle_hr.properties +224 -0
  368. package/dist/i18n/messagebundle_hu.properties +224 -0
  369. package/dist/i18n/messagebundle_id.properties +224 -0
  370. package/dist/i18n/messagebundle_in.properties +172 -0
  371. package/dist/i18n/messagebundle_it.properties +224 -0
  372. package/dist/i18n/messagebundle_iw.properties +224 -0
  373. package/dist/i18n/messagebundle_ja.properties +224 -0
  374. package/dist/i18n/messagebundle_kk.properties +224 -0
  375. package/dist/i18n/messagebundle_ko.properties +224 -0
  376. package/dist/i18n/messagebundle_lt.properties +224 -0
  377. package/dist/i18n/messagebundle_lv.properties +224 -0
  378. package/dist/i18n/messagebundle_ms.properties +224 -0
  379. package/dist/i18n/messagebundle_nl.properties +224 -0
  380. package/dist/i18n/messagebundle_no.properties +224 -0
  381. package/dist/i18n/messagebundle_pl.properties +224 -0
  382. package/dist/i18n/messagebundle_pt.properties +224 -0
  383. package/dist/i18n/messagebundle_pt_PT.properties +224 -0
  384. package/dist/i18n/messagebundle_ro.properties +224 -0
  385. package/dist/i18n/messagebundle_ru.properties +224 -0
  386. package/dist/i18n/messagebundle_sh.properties +224 -0
  387. package/dist/i18n/messagebundle_sk.properties +224 -0
  388. package/dist/i18n/messagebundle_sl.properties +224 -0
  389. package/dist/i18n/messagebundle_sv.properties +224 -0
  390. package/dist/i18n/messagebundle_th.properties +224 -0
  391. package/dist/i18n/messagebundle_tr.properties +224 -0
  392. package/dist/i18n/messagebundle_uk.properties +224 -0
  393. package/dist/i18n/messagebundle_vi.properties +224 -0
  394. package/dist/i18n/messagebundle_zh_CN.properties +224 -0
  395. package/dist/i18n/messagebundle_zh_TW.properties +224 -0
  396. package/dist/popup-utils/OpenedPopupsRegistry.js +18 -13
  397. package/dist/popup-utils/PopoverRegistry.js +55 -21
  398. package/dist/timepicker-utils/TimeSlider.js +103 -0
  399. package/dist/types/{AvatarBackgroundColor.js → AvatarColorScheme.js} +9 -9
  400. package/dist/types/AvatarGroupType.js +43 -0
  401. package/dist/types/AvatarShape.js +1 -1
  402. package/dist/types/AvatarSize.js +1 -1
  403. package/dist/types/BreadcrumbsDesign.js +42 -0
  404. package/dist/types/BreadcrumbsSeparatorStyle.js +69 -0
  405. package/dist/types/BusyIndicatorSize.js +1 -1
  406. package/dist/types/ButtonDesign.js +8 -1
  407. package/dist/types/CalendarSelectionMode.js +47 -0
  408. package/dist/types/CarouselArrowsPlacement.js +40 -0
  409. package/dist/types/GrowingMode.js +48 -0
  410. package/dist/types/InputType.js +7 -7
  411. package/dist/types/LinkDesign.js +1 -1
  412. package/dist/types/ListGrowingMode.js +15 -0
  413. package/dist/types/ListItemType.js +8 -1
  414. package/dist/types/ListMode.js +9 -1
  415. package/dist/types/ListSeparators.js +1 -1
  416. package/dist/types/{MessageStripType.js → MessageStripDesign.js} +7 -7
  417. package/dist/types/PanelAccessibleRole.js +1 -1
  418. package/dist/types/PopoverHorizontalAlign.js +1 -1
  419. package/dist/types/PopoverPlacementType.js +2 -2
  420. package/dist/types/PopoverVerticalAlign.js +1 -2
  421. package/dist/types/Priority.js +55 -0
  422. package/dist/types/SemanticColor.js +1 -1
  423. package/dist/types/SwitchDesign.js +40 -0
  424. package/dist/types/TabContainerTabsPlacement.js +40 -0
  425. package/dist/types/TabLayout.js +40 -0
  426. package/dist/types/TableGrowingMode.js +15 -0
  427. package/dist/types/TableMode.js +47 -0
  428. package/dist/types/TableRowType.js +40 -0
  429. package/dist/types/TitleLevel.js +1 -1
  430. package/dist/types/ToastPlacement.js +1 -2
  431. package/dist/types/WrappingType.js +41 -0
  432. package/dist/webcomponentsjs/CHANGELOG.md +61 -0
  433. package/dist/webcomponentsjs/README.md +64 -47
  434. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +38 -38
  435. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +1 -1
  436. package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js +60 -0
  437. package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js.map +1 -0
  438. package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js +95 -0
  439. package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js.map +1 -0
  440. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +292 -229
  441. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +1 -1
  442. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +190 -170
  443. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +1 -1
  444. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +151 -132
  445. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +1 -1
  446. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +2 -2
  447. package/dist/webcomponentsjs/webcomponents-bundle.js +302 -230
  448. package/dist/webcomponentsjs/webcomponents-bundle.js.map +1 -1
  449. package/dist/webcomponentsjs/webcomponents-loader.js +49 -28
  450. package/package-scripts.js +1 -0
  451. package/package.json +23 -8
  452. package/src/Assets-static.js +6 -0
  453. package/src/Assets.js +7 -0
  454. package/src/Avatar.hbs +20 -0
  455. package/src/Avatar.js +392 -0
  456. package/src/AvatarGroup.hbs +30 -0
  457. package/src/AvatarGroup.js +603 -0
  458. package/src/Badge.hbs +14 -0
  459. package/src/Badge.js +165 -0
  460. package/src/Breadcrumbs.hbs +42 -0
  461. package/src/Breadcrumbs.js +563 -0
  462. package/src/BreadcrumbsItem.js +109 -0
  463. package/src/BreadcrumbsPopover.hbs +28 -0
  464. package/src/BusyIndicator.hbs +32 -0
  465. package/src/BusyIndicator.js +269 -0
  466. package/src/Button.hbs +45 -0
  467. package/src/Button.js +463 -0
  468. package/src/Calendar.hbs +69 -0
  469. package/src/Calendar.js +489 -0
  470. package/src/CalendarDate.js +45 -0
  471. package/src/CalendarHeader.hbs +54 -0
  472. package/src/CalendarHeader.js +209 -0
  473. package/src/CalendarPart.js +111 -0
  474. package/src/Card.hbs +14 -0
  475. package/src/Card.js +160 -0
  476. package/src/CardHeader.hbs +35 -0
  477. package/src/CardHeader.js +288 -0
  478. package/src/Carousel.hbs +85 -0
  479. package/src/Carousel.js +681 -0
  480. package/src/CheckBox.hbs +44 -0
  481. package/src/CheckBox.js +424 -0
  482. package/src/ColorPalette.hbs +52 -0
  483. package/src/ColorPalette.js +493 -0
  484. package/src/ColorPaletteDialog.hbs +18 -0
  485. package/src/ColorPaletteItem.hbs +11 -0
  486. package/src/ColorPaletteItem.js +137 -0
  487. package/src/ColorPalettePopover.hbs +29 -0
  488. package/src/ColorPalettePopover.js +219 -0
  489. package/src/ColorPicker.hbs +98 -0
  490. package/src/ColorPicker.js +524 -0
  491. package/src/ComboBox.hbs +49 -0
  492. package/src/ComboBox.js +1041 -0
  493. package/src/ComboBoxFilters.js +40 -0
  494. package/src/ComboBoxGroupItem.js +70 -0
  495. package/src/ComboBoxItem.js +49 -0
  496. package/src/ComboBoxPopover.hbs +125 -0
  497. package/src/CustomListItem.hbs +5 -0
  498. package/src/CustomListItem.js +99 -0
  499. package/src/DateComponentBase.js +170 -0
  500. package/src/DatePicker.hbs +44 -0
  501. package/src/DatePicker.js +823 -0
  502. package/src/DatePickerPopover.hbs +63 -0
  503. package/src/DateRangePicker.js +328 -0
  504. package/src/DateTimePicker.js +430 -0
  505. package/src/DateTimePickerPopover.hbs +74 -0
  506. package/src/DayPicker.hbs +66 -0
  507. package/src/DayPicker.js +754 -0
  508. package/src/Dialog.hbs +35 -0
  509. package/src/Dialog.js +601 -0
  510. package/src/DurationPicker.js +312 -0
  511. package/src/FileUploader.hbs +40 -0
  512. package/src/FileUploader.js +532 -0
  513. package/src/FileUploaderPopover.hbs +25 -0
  514. package/src/GroupHeaderListItem.hbs +15 -0
  515. package/src/GroupHeaderListItem.js +94 -0
  516. package/src/Icon.hbs +25 -0
  517. package/src/Icon.js +373 -0
  518. package/src/Input.hbs +78 -0
  519. package/src/Input.js +1381 -0
  520. package/src/InputPopover.hbs +118 -0
  521. package/src/Interfaces.js +192 -0
  522. package/src/Label.hbs +13 -0
  523. package/src/Label.js +152 -0
  524. package/src/Link.hbs +20 -0
  525. package/src/Link.js +349 -0
  526. package/src/List.hbs +89 -0
  527. package/src/List.js +1056 -0
  528. package/src/ListItem.hbs +102 -0
  529. package/src/ListItem.js +371 -0
  530. package/src/ListItemBase.js +179 -0
  531. package/src/MessageStrip.hbs +34 -0
  532. package/src/MessageStrip.js +227 -0
  533. package/src/MonthPicker.hbs +29 -0
  534. package/src/MonthPicker.js +299 -0
  535. package/src/MultiComboBox.hbs +78 -0
  536. package/src/MultiComboBox.js +1091 -0
  537. package/src/MultiComboBoxItem.js +43 -0
  538. package/src/MultiComboBoxPopover.hbs +133 -0
  539. package/src/MultiInput.hbs +41 -0
  540. package/src/MultiInput.js +301 -0
  541. package/src/Option.js +115 -0
  542. package/src/Panel.hbs +63 -0
  543. package/src/Panel.js +462 -0
  544. package/src/Popover.hbs +25 -0
  545. package/src/Popover.js +786 -0
  546. package/src/Popup.hbs +34 -0
  547. package/src/Popup.js +567 -0
  548. package/src/PopupBlockLayer.hbs +7 -0
  549. package/src/ProgressIndicator.hbs +35 -0
  550. package/src/ProgressIndicator.js +235 -0
  551. package/src/RadioButton.hbs +33 -0
  552. package/src/RadioButton.js +494 -0
  553. package/src/RadioButtonGroup.js +205 -0
  554. package/src/RangeSlider.hbs +70 -0
  555. package/src/RangeSlider.js +769 -0
  556. package/src/RatingIndicator.hbs +33 -0
  557. package/src/RatingIndicator.js +291 -0
  558. package/src/ResponsivePopover.hbs +39 -0
  559. package/src/ResponsivePopover.js +206 -0
  560. package/src/SegmentedButton.hbs +17 -0
  561. package/src/SegmentedButton.js +290 -0
  562. package/src/SegmentedButtonItem.hbs +42 -0
  563. package/src/SegmentedButtonItem.js +109 -0
  564. package/src/Select.hbs +45 -0
  565. package/src/Select.js +834 -0
  566. package/src/SelectPopover.hbs +89 -0
  567. package/src/Slider.hbs +42 -0
  568. package/src/Slider.js +320 -0
  569. package/src/SliderBase.hbs +38 -0
  570. package/src/SliderBase.js +842 -0
  571. package/src/StandardListItem.hbs +44 -0
  572. package/src/StandardListItem.js +191 -0
  573. package/src/StepInput.hbs +80 -0
  574. package/src/StepInput.js +684 -0
  575. package/src/SuggestionGroupItem.js +64 -0
  576. package/src/SuggestionItem.js +146 -0
  577. package/src/SuggestionListItem.hbs +33 -0
  578. package/src/SuggestionListItem.js +76 -0
  579. package/src/Switch.hbs +50 -0
  580. package/src/Switch.js +262 -0
  581. package/src/Tab.hbs +3 -0
  582. package/src/Tab.js +334 -0
  583. package/src/TabContainer.hbs +93 -0
  584. package/src/TabContainer.js +679 -0
  585. package/src/TabContainerPopover.hbs +24 -0
  586. package/src/TabInOverflow.hbs +22 -0
  587. package/src/TabInStrip.hbs +43 -0
  588. package/src/TabSeparator.hbs +1 -0
  589. package/src/TabSeparator.js +44 -0
  590. package/src/Table.hbs +99 -0
  591. package/src/Table.js +761 -0
  592. package/src/TableCell.hbs +7 -0
  593. package/src/TableCell.js +88 -0
  594. package/src/TableColumn.hbs +8 -0
  595. package/src/TableColumn.js +136 -0
  596. package/src/TableGroupRow.hbs +12 -0
  597. package/src/TableGroupRow.js +160 -0
  598. package/src/TableRow.hbs +61 -0
  599. package/src/TableRow.js +388 -0
  600. package/src/TextArea.hbs +50 -0
  601. package/src/TextArea.js +691 -0
  602. package/src/TextAreaPopover.hbs +28 -0
  603. package/src/TimePicker.hbs +35 -0
  604. package/src/TimePicker.js +166 -0
  605. package/src/TimePickerBase.js +463 -0
  606. package/src/TimePickerPopover.hbs +34 -0
  607. package/src/TimeSelection.hbs +60 -0
  608. package/src/TimeSelection.js +493 -0
  609. package/src/Title.hbs +47 -0
  610. package/src/Title.js +132 -0
  611. package/src/Toast.hbs +13 -0
  612. package/src/Toast.js +243 -0
  613. package/src/ToggleButton.hbs +5 -0
  614. package/src/ToggleButton.js +84 -0
  615. package/src/Token.hbs +30 -0
  616. package/src/Token.js +219 -0
  617. package/src/Tokenizer.hbs +27 -0
  618. package/src/Tokenizer.js +414 -0
  619. package/src/TokenizerPopover.hbs +50 -0
  620. package/src/Tree.hbs +42 -0
  621. package/src/Tree.js +443 -0
  622. package/src/TreeItem.js +168 -0
  623. package/src/TreeListItem.hbs +48 -0
  624. package/src/TreeListItem.js +332 -0
  625. package/src/WheelSlider.hbs +48 -0
  626. package/src/WheelSlider.js +435 -0
  627. package/src/YearPicker.hbs +27 -0
  628. package/src/YearPicker.js +324 -0
  629. package/src/features/ColorPaletteMoreColors.js +42 -0
  630. package/src/features/InputElementsFormSupport.js +88 -0
  631. package/src/features/InputSuggestions.js +530 -0
  632. package/src/i18n/messagebundle.properties +335 -0
  633. package/src/i18n/messagebundle_ar.properties +224 -0
  634. package/src/i18n/messagebundle_bg.properties +224 -0
  635. package/src/i18n/messagebundle_ca.properties +224 -0
  636. package/src/i18n/messagebundle_cs.properties +224 -0
  637. package/src/i18n/messagebundle_cy.properties +224 -0
  638. package/src/i18n/messagebundle_da.properties +224 -0
  639. package/src/i18n/messagebundle_de.properties +224 -0
  640. package/src/i18n/messagebundle_el.properties +224 -0
  641. package/src/i18n/messagebundle_en.properties +224 -0
  642. package/src/i18n/messagebundle_en_GB.properties +224 -0
  643. package/src/i18n/messagebundle_en_US_sappsd.properties +224 -0
  644. package/src/i18n/messagebundle_en_US_saprigi.properties +224 -0
  645. package/src/i18n/messagebundle_en_US_saptrc.properties +224 -0
  646. package/src/i18n/messagebundle_es.properties +224 -0
  647. package/src/i18n/messagebundle_es_MX.properties +224 -0
  648. package/src/i18n/messagebundle_et.properties +224 -0
  649. package/src/i18n/messagebundle_fi.properties +224 -0
  650. package/src/i18n/messagebundle_fr.properties +224 -0
  651. package/src/i18n/messagebundle_fr_CA.properties +224 -0
  652. package/src/i18n/messagebundle_hi.properties +224 -0
  653. package/src/i18n/messagebundle_hr.properties +224 -0
  654. package/src/i18n/messagebundle_hu.properties +224 -0
  655. package/src/i18n/messagebundle_id.properties +224 -0
  656. package/src/i18n/messagebundle_in.properties +172 -0
  657. package/src/i18n/messagebundle_it.properties +224 -0
  658. package/src/i18n/messagebundle_iw.properties +224 -0
  659. package/src/i18n/messagebundle_ja.properties +224 -0
  660. package/src/i18n/messagebundle_kk.properties +224 -0
  661. package/src/i18n/messagebundle_ko.properties +224 -0
  662. package/src/i18n/messagebundle_lt.properties +224 -0
  663. package/src/i18n/messagebundle_lv.properties +224 -0
  664. package/src/i18n/messagebundle_ms.properties +224 -0
  665. package/src/i18n/messagebundle_nl.properties +224 -0
  666. package/src/i18n/messagebundle_no.properties +224 -0
  667. package/src/i18n/messagebundle_pl.properties +224 -0
  668. package/src/i18n/messagebundle_pt.properties +224 -0
  669. package/src/i18n/messagebundle_pt_PT.properties +224 -0
  670. package/src/i18n/messagebundle_ro.properties +224 -0
  671. package/src/i18n/messagebundle_ru.properties +224 -0
  672. package/src/i18n/messagebundle_sh.properties +224 -0
  673. package/src/i18n/messagebundle_sk.properties +224 -0
  674. package/src/i18n/messagebundle_sl.properties +224 -0
  675. package/src/i18n/messagebundle_sv.properties +224 -0
  676. package/src/i18n/messagebundle_th.properties +224 -0
  677. package/src/i18n/messagebundle_tr.properties +224 -0
  678. package/src/i18n/messagebundle_uk.properties +224 -0
  679. package/src/i18n/messagebundle_vi.properties +224 -0
  680. package/src/i18n/messagebundle_zh_CN.properties +224 -0
  681. package/src/i18n/messagebundle_zh_TW.properties +224 -0
  682. package/src/popup-utils/OpenedPopupsRegistry.js +50 -0
  683. package/src/popup-utils/PopoverRegistry.js +145 -0
  684. package/src/timepicker-utils/TimeSlider.js +103 -0
  685. package/src/types/AvatarColorScheme.js +104 -0
  686. package/src/types/AvatarGroupType.js +43 -0
  687. package/src/types/AvatarShape.js +41 -0
  688. package/src/types/AvatarSize.js +67 -0
  689. package/src/types/BreadcrumbsDesign.js +42 -0
  690. package/src/types/BreadcrumbsSeparatorStyle.js +69 -0
  691. package/src/types/BusyIndicatorSize.js +47 -0
  692. package/src/types/ButtonDesign.js +68 -0
  693. package/src/types/CalendarSelectionMode.js +47 -0
  694. package/src/types/CarouselArrowsPlacement.js +40 -0
  695. package/src/types/GrowingMode.js +48 -0
  696. package/src/types/InputType.js +68 -0
  697. package/src/types/LinkDesign.js +47 -0
  698. package/src/types/ListGrowingMode.js +15 -0
  699. package/src/types/ListItemType.js +47 -0
  700. package/src/types/ListMode.js +77 -0
  701. package/src/types/ListSeparators.js +46 -0
  702. package/src/types/MessageStripDesign.js +54 -0
  703. package/src/types/PanelAccessibleRole.js +48 -0
  704. package/src/types/PopoverHorizontalAlign.js +54 -0
  705. package/src/types/PopoverPlacementType.js +54 -0
  706. package/src/types/PopoverVerticalAlign.js +54 -0
  707. package/src/types/Priority.js +55 -0
  708. package/src/types/SemanticColor.js +61 -0
  709. package/src/types/SwitchDesign.js +40 -0
  710. package/src/types/TabContainerTabsPlacement.js +40 -0
  711. package/src/types/TabLayout.js +40 -0
  712. package/src/types/TableGrowingMode.js +15 -0
  713. package/src/types/TableMode.js +47 -0
  714. package/src/types/TableRowType.js +40 -0
  715. package/src/types/TitleLevel.js +68 -0
  716. package/src/types/ToastPlacement.js +91 -0
  717. package/src/types/WrappingType.js +41 -0
  718. package/dist/Timeline.js +0 -81
  719. package/dist/TimelineItem.js +0 -163
  720. package/dist/generated/templates/ComboBoxItemTemplate.lit.js +0 -7
  721. package/dist/generated/templates/TimelineItemTemplate.lit.js +0 -12
  722. package/dist/generated/templates/TimelineTemplate.lit.js +0 -8
  723. package/dist/generated/themes/ComboBoxItem.css.js +0 -9
  724. package/dist/generated/themes/TabContainerPopup.css.js +0 -9
  725. package/dist/generated/themes/Timeline.css.js +0 -9
  726. package/dist/generated/themes/TimelineItem.css.js +0 -9
  727. package/dist/popup-utils/PopupUtils.js +0 -42
  728. package/dist/types/AvatarFitType.js +0 -40
  729. package/dist/webcomponentsjs/package.json +0 -46
  730. package/index.js +0 -2
package/src/Select.js ADDED
@@ -0,0 +1,834 @@
1
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
3
+ import {
4
+ isSpace,
5
+ isUp,
6
+ isDown,
7
+ isEnter,
8
+ isEscape,
9
+ isHome,
10
+ isEnd,
11
+ isShow,
12
+ isTabNext,
13
+ isTabPrevious,
14
+ } from "@ui5/webcomponents-base/dist/Keys.js";
15
+ import announce from "@ui5/webcomponents-base/dist/util/InvisibleMessage.js";
16
+ import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
17
+ import { getFeature } from "@ui5/webcomponents-base/dist/FeaturesRegistry.js";
18
+ import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
19
+ import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
20
+ import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
21
+ import { isPhone } from "@ui5/webcomponents-base/dist/Device.js";
22
+ import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
23
+ import "@ui5/webcomponents-icons/dist/decline.js";
24
+ import {
25
+ VALUE_STATE_SUCCESS,
26
+ VALUE_STATE_INFORMATION,
27
+ VALUE_STATE_ERROR,
28
+ VALUE_STATE_WARNING,
29
+ INPUT_SUGGESTIONS_TITLE,
30
+ LIST_ITEM_POSITION,
31
+ } from "./generated/i18n/i18n-defaults.js";
32
+ import Option from "./Option.js";
33
+ import Label from "./Label.js";
34
+ import ResponsivePopover from "./ResponsivePopover.js";
35
+ import Popover from "./Popover.js";
36
+ import List from "./List.js";
37
+ import StandardListItem from "./StandardListItem.js";
38
+ import Icon from "./Icon.js";
39
+ import Button from "./Button.js";
40
+
41
+ // Templates
42
+ import SelectTemplate from "./generated/templates/SelectTemplate.lit.js";
43
+ import SelectPopoverTemplate from "./generated/templates/SelectPopoverTemplate.lit.js";
44
+
45
+ // Styles
46
+ import selectCss from "./generated/themes/Select.css.js";
47
+ import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverCommon.css.js";
48
+ import ValueStateMessageCss from "./generated/themes/ValueStateMessage.css.js";
49
+ import SelectPopoverCss from "./generated/themes/SelectPopover.css.js";
50
+
51
+ /**
52
+ * @public
53
+ */
54
+ const metadata = {
55
+ tag: "ui5-select",
56
+ languageAware: true,
57
+ managedSlots: true,
58
+ slots: /** @lends sap.ui.webcomponents.main.Select.prototype */ {
59
+
60
+ /**
61
+ * Defines the component options.
62
+ *
63
+ * <br><br>
64
+ * <b>Note:</b> Only one selected option is allowed.
65
+ * If more than one option is defined as selected, the last one would be considered as the selected one.
66
+ *
67
+ * <br><br>
68
+ * <b>Note:</b> Use the <code>ui5-option</code> component to define the desired options.
69
+ * @type {sap.ui.webcomponents.main.ISelectOption[]}
70
+ * @slot options
71
+ * @public
72
+ */
73
+ "default": {
74
+ propertyName: "options",
75
+ type: HTMLElement,
76
+ invalidateOnChildChange: true,
77
+ },
78
+
79
+ /**
80
+ * Defines the value state message that will be displayed as pop up under the component.
81
+ * <br><br>
82
+ *
83
+ * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.
84
+ * <br>
85
+ * <b>Note:</b> The <code>valueStateMessage</code> would be displayed,
86
+ * when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
87
+ * @type {HTMLElement[]}
88
+ * @since 1.0.0-rc.9
89
+ * @slot
90
+ * @public
91
+ */
92
+ valueStateMessage: {
93
+ type: HTMLElement,
94
+ },
95
+
96
+ /**
97
+ * The slot is used to render native <code>input</code> HTML element within Light DOM to enable form submit,
98
+ * when <code>name</code> property is set.
99
+ * @type {HTMLElement[]}
100
+ * @slot
101
+ * @private
102
+ */
103
+ formSupport: {
104
+ type: HTMLElement,
105
+ },
106
+ },
107
+ properties: /** @lends sap.ui.webcomponents.main.Select.prototype */ {
108
+
109
+ /**
110
+ * Defines whether the component is in disabled state.
111
+ * <br><br>
112
+ * <b>Note:</b> A disabled component is noninteractive.
113
+ *
114
+ * @type {boolean}
115
+ * @defaultvalue false
116
+ * @public
117
+ */
118
+ disabled: {
119
+ type: Boolean,
120
+ },
121
+
122
+ /**
123
+ * Determines the name with which the component will be submitted in an HTML form.
124
+ * The value of the component will be the value of the currently selected <code>ui5-option</code>.
125
+ *
126
+ * <br><br>
127
+ * <b>Important:</b> For the <code>name</code> property to have effect, you must add the following import to your project:
128
+ * <code>import "@ui5/webcomponents/dist/features/InputElementsFormSupport.js";</code>
129
+ *
130
+ * <br><br>
131
+ * <b>Note:</b> When set, a native <code>input</code> HTML element
132
+ * will be created inside the <code>ui5-select</code> so that it can be submitted as
133
+ * part of an HTML form. Do not use this property unless you need to submit a form.
134
+ *
135
+ * @type {string}
136
+ * @defaultvalue ""
137
+ * @public
138
+ */
139
+ name: {
140
+ type: String,
141
+ },
142
+
143
+ /**
144
+ * Defines the value state of the component.
145
+ * <br><br>
146
+ * Available options are:
147
+ * <ul>
148
+ * <li><code>None</code></li>
149
+ * <li><code>Error</code></li>
150
+ * <li><code>Warning</code></li>
151
+ * <li><code>Success</code></li>
152
+ * <li><code>Information</code></li>
153
+ * </ul>
154
+ *
155
+ * @type {ValueState}
156
+ * @defaultvalue "None"
157
+ * @public
158
+ */
159
+ valueState: {
160
+ type: ValueState,
161
+ defaultValue: ValueState.None,
162
+ },
163
+
164
+ /**
165
+ * Defines whether the component is required.
166
+ *
167
+ * @since 1.0.0-rc.9
168
+ * @type {boolean}
169
+ * @defaultvalue false
170
+ * @public
171
+ */
172
+ required: {
173
+ type: Boolean,
174
+ },
175
+
176
+ /**
177
+ * Sets the accessible aria name of the component.
178
+ *
179
+ * @type {String}
180
+ * @since 1.0.0-rc.9
181
+ * @public
182
+ * @since 1.0.0-rc.15
183
+ */
184
+ accessibleName: {
185
+ type: String,
186
+ },
187
+
188
+ /**
189
+ * Receives id(or many ids) of the elements that label the select.
190
+ *
191
+ * @type {String}
192
+ * @defaultvalue ""
193
+ * @public
194
+ * @since 1.0.0-rc.15
195
+ */
196
+ accessibleNameRef: {
197
+ type: String,
198
+ defaultValue: "",
199
+ },
200
+
201
+ _text: {
202
+ type: String,
203
+ noAttribute: true,
204
+ },
205
+
206
+ _iconPressed: {
207
+ type: Boolean,
208
+ noAttribute: true,
209
+ },
210
+
211
+ /**
212
+ * @private
213
+ */
214
+ opened: {
215
+ type: Boolean,
216
+ },
217
+
218
+ _listWidth: {
219
+ type: Integer,
220
+ defaultValue: 0,
221
+ noAttribute: true,
222
+ },
223
+
224
+ /**
225
+ * @private
226
+ */
227
+ focused: {
228
+ type: Boolean,
229
+ },
230
+ },
231
+ events: /** @lends sap.ui.webcomponents.main.Select.prototype */ {
232
+ /**
233
+ * Fired when the selected option changes.
234
+ *
235
+ * @event
236
+ * @param {HTMLElement} selectedOption the selected option.
237
+ * @public
238
+ */
239
+ change: {
240
+ detail: {
241
+ selectedOption: {},
242
+ },
243
+ },
244
+ },
245
+ };
246
+
247
+ /**
248
+ * @class
249
+ *
250
+ * <h3 class="comment-api-title">Overview</h3>
251
+ * The <code>ui5-select</code> component is used to create a drop-down list.
252
+ * The items inside the <code>ui5-select</code> define the available options by using the <code>ui5-option</code> component.
253
+ *
254
+ * <h3>Keyboard Handling</h3>
255
+ * The <code>ui5-select</code> provides advanced keyboard handling.
256
+ * <br>
257
+ * <ul>
258
+ * <li>[F4, ALT+UP, ALT+DOWN, SPACE, ENTER] - Opens/closes the drop-down.</li>
259
+ * <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>
260
+ * <li>[SPACE, ENTER] - If the drop-down is opened - selects the focused option.</li>
261
+ * <li>[ESC] - Closes the drop-down without changing the selection.</li>
262
+ * <li>[HOME] - Navigates to first option</li>
263
+ * <li>[END] - Navigates to the last option</li>
264
+ * </ul>
265
+ * <br>
266
+ *
267
+ * <h3>ES6 Module Import</h3>
268
+ * <code>import "@ui5/webcomponents/dist/Select";</code>
269
+ * <br>
270
+ * <code>import "@ui5/webcomponents/dist/Option";</code>
271
+ * @constructor
272
+ * @author SAP SE
273
+ * @alias sap.ui.webcomponents.main.Select
274
+ * @extends sap.ui.webcomponents.base.UI5Element
275
+ * @tagname ui5-select
276
+ * @appenddocs Option
277
+ * @public
278
+ * @since 0.8.0
279
+ */
280
+ class Select extends UI5Element {
281
+ static get metadata() {
282
+ return metadata;
283
+ }
284
+
285
+ static get render() {
286
+ return litRender;
287
+ }
288
+
289
+ static get template() {
290
+ return SelectTemplate;
291
+ }
292
+
293
+ static get staticAreaTemplate() {
294
+ return SelectPopoverTemplate;
295
+ }
296
+
297
+ static get styles() {
298
+ return selectCss;
299
+ }
300
+
301
+ static get staticAreaStyles() {
302
+ return [ResponsivePopoverCommonCss, ValueStateMessageCss, SelectPopoverCss];
303
+ }
304
+
305
+ constructor() {
306
+ super();
307
+
308
+ this._syncedOptions = [];
309
+ this._selectedIndex = -1;
310
+ this._selectedIndexBeforeOpen = -1;
311
+ this._escapePressed = false;
312
+ this._lastSelectedOption = null;
313
+ this._typedChars = "";
314
+ this._typingTimeoutID = -1;
315
+ }
316
+
317
+ onBeforeRendering() {
318
+ this._syncSelection();
319
+ this._enableFormSupport();
320
+ }
321
+
322
+ onAfterRendering() {
323
+ this.toggleValueStatePopover(this.shouldOpenValueStateMessagePopover);
324
+
325
+ if (this._isPickerOpen) {
326
+ if (!this._listWidth) {
327
+ this._listWidth = this.responsivePopover.offsetWidth;
328
+ }
329
+ }
330
+
331
+ this._attachRealDomRefs();
332
+ }
333
+
334
+ _onfocusin() {
335
+ this.focused = true;
336
+ }
337
+
338
+ _onfocusout() {
339
+ this.focused = false;
340
+ }
341
+
342
+ get _isPickerOpen() {
343
+ return !!this.responsivePopover && this.responsivePopover.opened;
344
+ }
345
+
346
+ async _respPopover() {
347
+ const staticAreaItem = await this.getStaticAreaItemDomRef();
348
+ return staticAreaItem.querySelector("[ui5-responsive-popover]");
349
+ }
350
+
351
+ /**
352
+ * Currently selected option.
353
+ * @readonly
354
+ * @type { ui5-option }
355
+ * @public
356
+ */
357
+ get selectedOption() {
358
+ return this._filteredItems.find(option => option.selected);
359
+ }
360
+
361
+ async _toggleRespPopover() {
362
+ this._iconPressed = true;
363
+ this.responsivePopover = await this._respPopover();
364
+ if (this.disabled) {
365
+ return;
366
+ }
367
+
368
+ if (this._isPickerOpen) {
369
+ this.responsivePopover.close();
370
+ } else {
371
+ this.responsivePopover.showAt(this);
372
+ }
373
+ }
374
+
375
+ async _attachRealDomRefs() {
376
+ this.responsivePopover = await this._respPopover();
377
+
378
+ this.options.forEach(option => {
379
+ option._getRealDomRef = () => this.responsivePopover.querySelector(`*[data-ui5-stable=${option.stableDomRef}]`);
380
+ });
381
+ }
382
+
383
+ _syncSelection() {
384
+ let lastSelectedOptionIndex = -1,
385
+ firstEnabledOptionIndex = -1;
386
+ const options = this._filteredItems;
387
+ const syncOpts = options.map((opt, index) => {
388
+ if (opt.selected || opt.textContent === this.value) {
389
+ // The second condition in the IF statement is added because of Angular Reactive Forms Support(Two way data binding)
390
+ lastSelectedOptionIndex = index;
391
+ }
392
+ if (firstEnabledOptionIndex === -1) {
393
+ firstEnabledOptionIndex = index;
394
+ }
395
+
396
+ opt.selected = false;
397
+ opt._focused = false;
398
+
399
+ return {
400
+ selected: false,
401
+ _focused: false,
402
+ icon: opt.icon,
403
+ value: opt.value,
404
+ textContent: opt.textContent,
405
+ id: opt._id,
406
+ stableDomRef: opt.stableDomRef,
407
+ };
408
+ });
409
+
410
+ if (lastSelectedOptionIndex > -1 && !syncOpts[lastSelectedOptionIndex].disabled) {
411
+ syncOpts[lastSelectedOptionIndex].selected = true;
412
+ syncOpts[lastSelectedOptionIndex]._focused = true;
413
+ options[lastSelectedOptionIndex].selected = true;
414
+ options[lastSelectedOptionIndex]._focused = true;
415
+ this._text = syncOpts[lastSelectedOptionIndex].textContent;
416
+ this._selectedIndex = lastSelectedOptionIndex;
417
+ } else {
418
+ this._text = "";
419
+ this._selectedIndex = -1;
420
+ if (syncOpts[firstEnabledOptionIndex]) {
421
+ syncOpts[firstEnabledOptionIndex].selected = true;
422
+ syncOpts[firstEnabledOptionIndex]._focused = true;
423
+ options[firstEnabledOptionIndex].selected = true;
424
+ options[firstEnabledOptionIndex]._focused = true;
425
+ this._selectedIndex = firstEnabledOptionIndex;
426
+ this._text = options[firstEnabledOptionIndex].textContent;
427
+ }
428
+ }
429
+
430
+ this._syncedOptions = syncOpts;
431
+ }
432
+
433
+ _enableFormSupport() {
434
+ const FormSupport = getFeature("FormSupport");
435
+ if (FormSupport) {
436
+ FormSupport.syncNativeHiddenInput(this, (element, nativeInput) => {
437
+ nativeInput.disabled = element.disabled;
438
+ nativeInput.value = element._currentlySelectedOption ? element._currentlySelectedOption.value : "";
439
+ });
440
+ } else if (this.name) {
441
+ console.warn(`In order for the "name" property to have effect, you should also: import "@ui5/webcomponents/dist/features/InputElementsFormSupport.js";`); // eslint-disable-line
442
+ }
443
+ }
444
+
445
+ _onkeydown(event) {
446
+ const isTab = (isTabNext(event) || isTabPrevious(event));
447
+
448
+ if (isTab && this.responsivePopover && this.responsivePopover.opened) {
449
+ this.responsivePopover.close();
450
+ }
451
+
452
+ if (isShow(event)) {
453
+ event.preventDefault();
454
+ this._toggleRespPopover();
455
+ } else if (isSpace(event)) {
456
+ event.preventDefault();
457
+ } else if (isEscape(event) && this._isPickerOpen) {
458
+ this._escapePressed = true;
459
+ } else if (isHome(event)) {
460
+ this._handleHomeKey(event);
461
+ } else if (isEnd(event)) {
462
+ this._handleEndKey(event);
463
+ } else if (isEnter(event)) {
464
+ this._handleSelectionChange();
465
+ } else if (isUp(event) || isDown(event)) {
466
+ this._handleArrowNavigation(event);
467
+ }
468
+ }
469
+
470
+ _handleKeyboardNavigation(event) {
471
+ if (isEnter(event)) {
472
+ return;
473
+ }
474
+
475
+ const typedCharacter = event.key.toLowerCase();
476
+
477
+ this._typedChars += typedCharacter;
478
+
479
+ // We check if we have more than one characters and they are all duplicate, we set the
480
+ // text to be the last input character (typedCharacter). If not, we set the text to be
481
+ // the whole input string.
482
+
483
+ const text = (/^(.)\1+$/i).test(this._typedChars) ? typedCharacter : this._typedChars;
484
+
485
+ clearTimeout(this._typingTimeoutID);
486
+
487
+ this._typingTimeoutID = setTimeout(() => {
488
+ this._typedChars = "";
489
+ this._typingTimeoutID = -1;
490
+ }, 1000);
491
+
492
+ this._selectTypedItem(text);
493
+ }
494
+
495
+ _selectTypedItem(text) {
496
+ const currentIndex = this._selectedIndex;
497
+ const itemToSelect = this._searchNextItemByText(text);
498
+
499
+ if (itemToSelect) {
500
+ const nextIndex = this._getSelectedItemIndex(itemToSelect);
501
+
502
+ this._changeSelectedItem(this._selectedIndex, nextIndex);
503
+
504
+ if (currentIndex !== this._selectedIndex) {
505
+ this.itemSelectionAnnounce();
506
+ }
507
+ }
508
+ }
509
+
510
+ _searchNextItemByText(text) {
511
+ let orderedOptions = this._filteredItems.slice(0);
512
+ const optionsAfterSelected = orderedOptions.splice(this._selectedIndex + 1, orderedOptions.length - this._selectedIndex);
513
+ const optionsBeforeSelected = orderedOptions.splice(0, orderedOptions.length - 1);
514
+
515
+ orderedOptions = optionsAfterSelected.concat(optionsBeforeSelected);
516
+
517
+ return orderedOptions.find(option => option.textContent.toLowerCase().startsWith(text));
518
+ }
519
+
520
+ _handleHomeKey(event) {
521
+ event.preventDefault();
522
+ this._changeSelectedItem(this._selectedIndex, 0);
523
+ }
524
+
525
+ _handleEndKey(event) {
526
+ const lastIndex = this._filteredItems.length - 1;
527
+
528
+ event.preventDefault();
529
+ this._changeSelectedItem(this._selectedIndex, lastIndex);
530
+ }
531
+
532
+ _onkeyup(event) {
533
+ if (isSpace(event)) {
534
+ if (this._isPickerOpen) {
535
+ this._handleSelectionChange();
536
+ } else {
537
+ this._toggleRespPopover();
538
+ }
539
+ }
540
+ }
541
+
542
+ _getSelectedItemIndex(item) {
543
+ return [].indexOf.call(item.parentElement.children, item);
544
+ }
545
+
546
+ _select(index) {
547
+ this._filteredItems[this._selectedIndex].selected = false;
548
+ this._selectedIndex = index;
549
+ this._filteredItems[index].selected = true;
550
+ }
551
+
552
+ /**
553
+ * The user clicked on an item from the list
554
+ * @private
555
+ */
556
+ _handleItemPress(event) {
557
+ const item = event.detail.item;
558
+ const selectedItemIndex = this._getSelectedItemIndex(item);
559
+
560
+ this._handleSelectionChange(selectedItemIndex);
561
+ }
562
+
563
+ _itemMousedown(event) {
564
+ // prevent actual focus of items
565
+ event.preventDefault();
566
+ }
567
+
568
+ _onclick(event) {
569
+ this.getFocusDomRef().focus();
570
+ this._toggleRespPopover();
571
+ }
572
+
573
+ /**
574
+ * The user selected an item with Enter or Space
575
+ * @private
576
+ */
577
+ _handleSelectionChange(index = this._selectedIndex) {
578
+ this._select(index);
579
+
580
+ this._toggleRespPopover();
581
+ }
582
+
583
+ _handleArrowNavigation(event) {
584
+ let nextIndex = -1;
585
+ const currentIndex = this._selectedIndex;
586
+ const isDownKey = isDown(event);
587
+
588
+ event.preventDefault();
589
+ if (isDownKey) {
590
+ nextIndex = this._getNextOptionIndex();
591
+ } else {
592
+ nextIndex = this._getPreviousOptionIndex();
593
+ }
594
+
595
+ this._changeSelectedItem(this._selectedIndex, nextIndex);
596
+
597
+ if (currentIndex !== this._selectedIndex) {
598
+ // Announce new item even if picker is opened.
599
+ // The aria-activedescendents attribute can't be used,
600
+ // because listitem elements are in different shadow dom
601
+ this.itemSelectionAnnounce();
602
+ }
603
+ }
604
+
605
+ _changeSelectedItem(oldIndex, newIndex) {
606
+ const options = this._filteredItems;
607
+
608
+ options[oldIndex].selected = false;
609
+ options[oldIndex]._focused = false;
610
+
611
+ options[newIndex].selected = true;
612
+ options[newIndex]._focused = true;
613
+
614
+ this._selectedIndex = newIndex;
615
+
616
+ if (!this._isPickerOpen) {
617
+ // arrow pressed on closed picker - do selection change
618
+ this._fireChangeEvent(options[newIndex]);
619
+ }
620
+ }
621
+
622
+ _getNextOptionIndex() {
623
+ return this._selectedIndex === (this.options.length - 1) ? this._selectedIndex : (this._selectedIndex + 1);
624
+ }
625
+
626
+ _getPreviousOptionIndex() {
627
+ return this._selectedIndex === 0 ? this._selectedIndex : (this._selectedIndex - 1);
628
+ }
629
+
630
+ _beforeOpen() {
631
+ this._selectedIndexBeforeOpen = this._selectedIndex;
632
+ this._lastSelectedOption = this._filteredItems[this._selectedIndex];
633
+ }
634
+
635
+ _afterOpen() {
636
+ this.opened = true;
637
+ }
638
+
639
+ _afterClose() {
640
+ this.opened = false;
641
+ this._iconPressed = false;
642
+ this._listWidth = 0;
643
+
644
+ if (this._escapePressed) {
645
+ this._select(this._selectedIndexBeforeOpen);
646
+ this._escapePressed = false;
647
+ } else if (this._lastSelectedOption !== this._filteredItems[this._selectedIndex]) {
648
+ this._fireChangeEvent(this._filteredItems[this._selectedIndex]);
649
+ this._lastSelectedOption = this._filteredItems[this._selectedIndex];
650
+ }
651
+ }
652
+
653
+ _fireChangeEvent(selectedOption) {
654
+ this.fireEvent("change", { selectedOption });
655
+
656
+ // Angular two way data binding
657
+ this.selectedItem = selectedOption.textContent;
658
+ this.fireEvent("selected-item-changed");
659
+ }
660
+
661
+ get valueStateTextMappings() {
662
+ return {
663
+ "Success": Select.i18nBundle.getText(VALUE_STATE_SUCCESS),
664
+ "Information": Select.i18nBundle.getText(VALUE_STATE_INFORMATION),
665
+ "Error": Select.i18nBundle.getText(VALUE_STATE_ERROR),
666
+ "Warning": Select.i18nBundle.getText(VALUE_STATE_WARNING),
667
+ };
668
+ }
669
+
670
+ get valueStateText() {
671
+ return this.valueStateTextMappings[this.valueState];
672
+ }
673
+
674
+ get hasValueState() {
675
+ return this.valueState !== ValueState.None;
676
+ }
677
+
678
+ get valueStateTextId() {
679
+ return this.hasValueState ? `${this._id}-valueStateDesc` : undefined;
680
+ }
681
+
682
+ get isDisabled() {
683
+ return this.disabled || undefined;
684
+ }
685
+
686
+ get _headerTitleText() {
687
+ return Select.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
688
+ }
689
+
690
+ get _currentSelectedItem() {
691
+ return this.shadowRoot.querySelector(`#${this._filteredItems[this._selectedIndex]._id}-li`);
692
+ }
693
+
694
+ get _currentlySelectedOption() {
695
+ return this._filteredItems[this._selectedIndex];
696
+ }
697
+
698
+ get tabIndex() {
699
+ return this.disabled
700
+ || (this.responsivePopover // Handles focus on Tab/Shift + Tab when the popover is opened
701
+ && this.responsivePopover.opened) ? "-1" : "0";
702
+ }
703
+
704
+ /**
705
+ * This method is relevant for sap_horizon theme only
706
+ */
707
+ get _valueStateMessageInputIcon() {
708
+ const iconPerValueState = {
709
+ Error: "error",
710
+ Warning: "alert",
711
+ Success: "sys-enter-2",
712
+ Information: "information",
713
+ };
714
+
715
+ return this.valueState !== ValueState.None ? iconPerValueState[this.valueState] : "";
716
+ }
717
+
718
+ get classes() {
719
+ return {
720
+ popoverValueState: {
721
+ "ui5-valuestatemessage-root": true,
722
+ "ui5-valuestatemessage--success": this.valueState === ValueState.Success,
723
+ "ui5-valuestatemessage--error": this.valueState === ValueState.Error,
724
+ "ui5-valuestatemessage--warning": this.valueState === ValueState.Warning,
725
+ "ui5-valuestatemessage--information": this.valueState === ValueState.Information,
726
+ },
727
+ popover: {
728
+ "ui5-valuestatemessage-popover": this.hasValueState,
729
+ },
730
+ };
731
+ }
732
+
733
+ get styles() {
734
+ return {
735
+ popoverHeader: {
736
+ "max-width": `${this.offsetWidth}px`,
737
+ },
738
+ responsivePopoverHeader: {
739
+ "display": this._filteredItems.length && this._listWidth === 0 ? "none" : "inline-block",
740
+ "width": `${this._filteredItems.length ? this._listWidth : this.offsetWidth}px`,
741
+ },
742
+ };
743
+ }
744
+
745
+ get ariaLabelText() {
746
+ return getEffectiveAriaLabelText(this);
747
+ }
748
+
749
+ get valueStateMessageText() {
750
+ return this.getSlottedNodes("valueStateMessage").map(el => el.cloneNode(true));
751
+ }
752
+
753
+ get shouldDisplayDefaultValueStateMessage() {
754
+ return !this.valueStateMessage.length && this.hasValueStateText;
755
+ }
756
+
757
+ get hasValueStateText() {
758
+ return this.hasValueState && this.valueState !== ValueState.Success;
759
+ }
760
+
761
+ get shouldOpenValueStateMessagePopover() {
762
+ return this.focused && this.hasValueStateText && !this._iconPressed
763
+ && !this._isPickerOpen && !this._isPhone;
764
+ }
765
+
766
+ get _isPhone() {
767
+ return isPhone();
768
+ }
769
+
770
+ get _filteredItems() {
771
+ return this.options.filter(option => !option.disabled);
772
+ }
773
+
774
+ itemSelectionAnnounce() {
775
+ let text;
776
+ const optionsCount = this._filteredItems.length;
777
+ const itemPositionText = Select.i18nBundle.getText(LIST_ITEM_POSITION, this._selectedIndex + 1, optionsCount);
778
+
779
+ if (this.focused && this._currentlySelectedOption) {
780
+ text = `${this._currentlySelectedOption.textContent} ${this._isPickerOpen ? itemPositionText : ""}`;
781
+
782
+ announce(text, "Polite");
783
+ }
784
+ }
785
+
786
+ async openValueStatePopover() {
787
+ this.popover = await this._getPopover();
788
+ if (this.popover) {
789
+ this.popover.showAt(this);
790
+ }
791
+ }
792
+
793
+ closeValueStatePopover() {
794
+ this.popover && this.popover.close();
795
+ }
796
+
797
+ toggleValueStatePopover(open) {
798
+ if (open) {
799
+ this.openValueStatePopover();
800
+ } else {
801
+ this.closeValueStatePopover();
802
+ }
803
+ }
804
+
805
+ get selectedOptionIcon() {
806
+ return this.selectedOption && this.selectedOption.icon;
807
+ }
808
+
809
+ async _getPopover() {
810
+ const staticAreaItem = await this.getStaticAreaItemDomRef();
811
+ return staticAreaItem.querySelector("[ui5-popover]");
812
+ }
813
+
814
+ static get dependencies() {
815
+ return [
816
+ Option,
817
+ Label,
818
+ ResponsivePopover,
819
+ Popover,
820
+ List,
821
+ StandardListItem,
822
+ Icon,
823
+ Button,
824
+ ];
825
+ }
826
+
827
+ static async onDefine() {
828
+ Select.i18nBundle = await getI18nBundle("@ui5/webcomponents");
829
+ }
830
+ }
831
+
832
+ Select.define();
833
+
834
+ export default Select;