@ui5/webcomponents 0.0.0-49cef2d02 → 0.0.0-4a28ecb24

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