@ui5/webcomponents 0.0.0-aeb93167c → 0.0.0-b053ad005

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 (742) hide show
  1. package/CHANGELOG.md +343 -0
  2. package/README.md +144 -52
  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 +2 -1
  7. package/dist/Avatar.js +189 -49
  8. package/dist/AvatarGroup.js +603 -0
  9. package/dist/Badge.js +45 -19
  10. package/dist/Breadcrumbs.js +563 -0
  11. package/dist/BreadcrumbsItem.js +109 -0
  12. package/dist/BusyIndicator.js +121 -34
  13. package/dist/Button.js +110 -66
  14. package/dist/Calendar.js +324 -648
  15. package/dist/CalendarDate.js +45 -0
  16. package/dist/CalendarHeader.js +110 -59
  17. package/dist/CalendarPart.js +111 -0
  18. package/dist/Card.js +38 -198
  19. package/dist/CardHeader.js +288 -0
  20. package/dist/Carousel.js +253 -94
  21. package/dist/CheckBox.js +138 -70
  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 +348 -144
  27. package/dist/ComboBoxFilters.js +8 -1
  28. package/dist/ComboBoxGroupItem.js +70 -0
  29. package/dist/ComboBoxItem.js +11 -24
  30. package/dist/CustomListItem.js +36 -2
  31. package/dist/DateComponentBase.js +170 -0
  32. package/dist/DatePicker.js +264 -519
  33. package/dist/DateRangePicker.js +162 -426
  34. package/dist/DateTimePicker.js +94 -413
  35. package/dist/DayPicker.js +443 -648
  36. package/dist/Dialog.js +220 -58
  37. package/dist/DurationPicker.js +109 -511
  38. package/dist/FileUploader.js +70 -31
  39. package/dist/GroupHeaderListItem.js +22 -13
  40. package/dist/Icon.js +103 -41
  41. package/dist/Input.js +346 -155
  42. package/dist/Interfaces.js +192 -0
  43. package/dist/Label.js +27 -12
  44. package/dist/Link.js +105 -43
  45. package/dist/List.js +377 -104
  46. package/dist/ListItem.js +60 -13
  47. package/dist/ListItemBase.js +29 -2
  48. package/dist/MessageStrip.js +47 -46
  49. package/dist/MonthPicker.js +171 -225
  50. package/dist/MultiComboBox.js +356 -135
  51. package/dist/MultiComboBoxItem.js +7 -2
  52. package/dist/MultiInput.js +55 -24
  53. package/dist/Option.js +48 -5
  54. package/dist/Panel.js +63 -73
  55. package/dist/Popover.js +195 -80
  56. package/dist/Popup.js +151 -61
  57. package/dist/ProgressIndicator.js +28 -20
  58. package/dist/RadioButton.js +126 -43
  59. package/dist/RadioButtonGroup.js +53 -29
  60. package/dist/RangeSlider.js +769 -0
  61. package/dist/RatingIndicator.js +27 -37
  62. package/dist/ResponsivePopover.js +56 -42
  63. package/dist/SegmentedButton.js +102 -68
  64. package/dist/SegmentedButtonItem.js +109 -0
  65. package/dist/Select.js +275 -116
  66. package/dist/Slider.js +320 -0
  67. package/dist/SliderBase.js +842 -0
  68. package/dist/StandardListItem.js +35 -9
  69. package/dist/StepInput.js +681 -0
  70. package/dist/SuggestionGroupItem.js +64 -0
  71. package/dist/SuggestionItem.js +13 -26
  72. package/dist/SuggestionListItem.js +17 -6
  73. package/dist/Switch.js +52 -32
  74. package/dist/Tab.js +47 -26
  75. package/dist/TabContainer.js +94 -34
  76. package/dist/TabSeparator.js +1 -0
  77. package/dist/Table.js +474 -22
  78. package/dist/TableCell.js +11 -9
  79. package/dist/TableColumn.js +13 -3
  80. package/dist/TableGroupRow.js +160 -0
  81. package/dist/TableRow.js +210 -11
  82. package/dist/TextArea.js +86 -46
  83. package/dist/TimePicker.js +27 -743
  84. package/dist/TimePickerBase.js +463 -0
  85. package/dist/TimeSelection.js +493 -0
  86. package/dist/Title.js +16 -9
  87. package/dist/Toast.js +19 -8
  88. package/dist/ToggleButton.js +21 -8
  89. package/dist/Token.js +32 -16
  90. package/dist/Tokenizer.js +75 -42
  91. package/dist/Tree.js +97 -41
  92. package/dist/TreeItem.js +44 -9
  93. package/dist/TreeListItem.js +86 -2
  94. package/dist/WheelSlider.js +58 -58
  95. package/dist/YearPicker.js +188 -284
  96. package/dist/api.json +6877 -1
  97. package/dist/features/ColorPaletteMoreColors.js +42 -0
  98. package/dist/features/InputElementsFormSupport.js +0 -1
  99. package/dist/features/InputSuggestions.js +131 -30
  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 -1
  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 -1
  154. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  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 -19
  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 -16
  164. package/dist/generated/templates/BadgeTemplate.lit.js +5 -13
  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 -13
  168. package/dist/generated/templates/ButtonTemplate.lit.js +6 -13
  169. package/dist/generated/templates/CalendarHeaderTemplate.lit.js +6 -11
  170. package/dist/generated/templates/CalendarTemplate.lit.js +4 -11
  171. package/dist/generated/templates/CardHeaderTemplate.lit.js +12 -0
  172. package/dist/generated/templates/CardTemplate.lit.js +5 -17
  173. package/dist/generated/templates/CarouselTemplate.lit.js +13 -19
  174. package/dist/generated/templates/CheckBoxTemplate.lit.js +7 -14
  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 -25
  181. package/dist/generated/templates/ComboBoxTemplate.lit.js +8 -14
  182. package/dist/generated/templates/CustomListItemTemplate.lit.js +13 -20
  183. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +7 -13
  184. package/dist/generated/templates/DatePickerTemplate.lit.js +6 -13
  185. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +9 -19
  186. package/dist/generated/templates/DayPickerTemplate.lit.js +13 -19
  187. package/dist/generated/templates/DialogTemplate.lit.js +9 -15
  188. package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +7 -14
  189. package/dist/generated/templates/FileUploaderTemplate.lit.js +7 -14
  190. package/dist/generated/templates/GroupHeaderListItemTemplate.lit.js +4 -11
  191. package/dist/generated/templates/IconTemplate.lit.js +6 -13
  192. package/dist/generated/templates/InputPopoverTemplate.lit.js +24 -31
  193. package/dist/generated/templates/InputTemplate.lit.js +9 -15
  194. package/dist/generated/templates/LabelTemplate.lit.js +4 -11
  195. package/dist/generated/templates/LinkTemplate.lit.js +5 -12
  196. package/dist/generated/templates/ListItemTemplate.lit.js +13 -20
  197. package/dist/generated/templates/ListTemplate.lit.js +12 -16
  198. package/dist/generated/templates/MessageStripTemplate.lit.js +8 -15
  199. package/dist/generated/templates/MonthPickerTemplate.lit.js +6 -13
  200. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +23 -27
  201. package/dist/generated/templates/MultiComboBoxTemplate.lit.js +10 -16
  202. package/dist/generated/templates/MultiInputTemplate.lit.js +13 -19
  203. package/dist/generated/templates/PanelTemplate.lit.js +9 -14
  204. package/dist/generated/templates/PopoverTemplate.lit.js +9 -16
  205. package/dist/generated/templates/PopupBlockLayerTemplate.lit.js +4 -11
  206. package/dist/generated/templates/PopupTemplate.lit.js +4 -11
  207. package/dist/generated/templates/ProgressIndicatorTemplate.lit.js +14 -17
  208. package/dist/generated/templates/RadioButtonTemplate.lit.js +7 -14
  209. package/dist/generated/templates/RangeSliderTemplate.lit.js +13 -0
  210. package/dist/generated/templates/RatingIndicatorTemplate.lit.js +11 -16
  211. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +16 -21
  212. package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +8 -0
  213. package/dist/generated/templates/SegmentedButtonTemplate.lit.js +4 -11
  214. package/dist/generated/templates/SelectPopoverTemplate.lit.js +20 -27
  215. package/dist/generated/templates/SelectTemplate.lit.js +6 -12
  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 -28
  219. package/dist/generated/templates/StepInputTemplate.lit.js +8 -0
  220. package/dist/generated/templates/SuggestionListItemTemplate.lit.js +24 -31
  221. package/dist/generated/templates/SwitchTemplate.lit.js +8 -13
  222. package/dist/generated/templates/TabContainerPopoverTemplate.lit.js +6 -13
  223. package/dist/generated/templates/TabContainerTemplate.lit.js +16 -23
  224. package/dist/generated/templates/TabInOverflowTemplate.lit.js +6 -13
  225. package/dist/generated/templates/TabInStripTemplate.lit.js +8 -17
  226. package/dist/generated/templates/TabSeparatorTemplate.lit.js +4 -11
  227. package/dist/generated/templates/TabTemplate.lit.js +4 -11
  228. package/dist/generated/templates/TableCellTemplate.lit.js +4 -11
  229. package/dist/generated/templates/TableColumnTemplate.lit.js +4 -11
  230. package/dist/generated/templates/TableGroupRowTemplate.lit.js +7 -0
  231. package/dist/generated/templates/TableRowTemplate.lit.js +12 -18
  232. package/dist/generated/templates/TableTemplate.lit.js +13 -15
  233. package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +8 -15
  234. package/dist/generated/templates/TextAreaTemplate.lit.js +8 -15
  235. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +4 -15
  236. package/dist/generated/templates/TimePickerTemplate.lit.js +6 -13
  237. package/dist/generated/templates/TimeSelectionTemplate.lit.js +11 -0
  238. package/dist/generated/templates/TitleTemplate.lit.js +10 -17
  239. package/dist/generated/templates/ToastTemplate.lit.js +5 -11
  240. package/dist/generated/templates/ToggleButtonTemplate.lit.js +6 -13
  241. package/dist/generated/templates/TokenTemplate.lit.js +7 -14
  242. package/dist/generated/templates/TokenizerPopoverTemplate.lit.js +9 -16
  243. package/dist/generated/templates/TokenizerTemplate.lit.js +6 -13
  244. package/dist/generated/templates/TreeListItemTemplate.lit.js +18 -24
  245. package/dist/generated/templates/TreeTemplate.lit.js +5 -12
  246. package/dist/generated/templates/WheelSliderTemplate.lit.js +7 -14
  247. package/dist/generated/templates/YearPickerTemplate.lit.js +6 -13
  248. package/dist/generated/themes/Avatar.css.js +5 -5
  249. package/dist/generated/themes/AvatarGroup.css.js +8 -0
  250. package/dist/generated/themes/Badge.css.js +5 -5
  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 +5 -5
  255. package/dist/generated/themes/Button.css.js +5 -5
  256. package/dist/generated/themes/Button.ie11.css.js +8 -0
  257. package/dist/generated/themes/Calendar.css.js +5 -5
  258. package/dist/generated/themes/CalendarHeader.css.js +5 -5
  259. package/dist/generated/themes/Card.css.js +5 -5
  260. package/dist/generated/themes/CardHeader.css.js +8 -0
  261. package/dist/generated/themes/Carousel.css.js +5 -5
  262. package/dist/generated/themes/CheckBox.css.js +5 -5
  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 +5 -5
  269. package/dist/generated/themes/ComboBoxPopover.css.js +5 -5
  270. package/dist/generated/themes/CustomListItem.css.js +5 -5
  271. package/dist/generated/themes/DatePicker.css.js +5 -5
  272. package/dist/generated/themes/DatePickerPopover.css.js +5 -5
  273. package/dist/generated/themes/DateRangePicker.css.js +5 -5
  274. package/dist/generated/themes/DateTimePicker.css.js +5 -5
  275. package/dist/generated/themes/DateTimePickerPopover.css.js +5 -5
  276. package/dist/generated/themes/DayPicker.css.js +5 -5
  277. package/dist/generated/themes/Dialog.css.js +5 -5
  278. package/dist/generated/themes/FileUploader.css.js +5 -5
  279. package/dist/generated/themes/GroupHeaderListItem.css.js +5 -5
  280. package/dist/generated/themes/GrowingButton.css.js +8 -0
  281. package/dist/generated/themes/Icon.css.js +5 -5
  282. package/dist/generated/themes/Input.css.js +5 -5
  283. package/dist/generated/themes/InputIcon.css.js +5 -5
  284. package/dist/generated/themes/InvisibleTextStyles.css.js +5 -5
  285. package/dist/generated/themes/Label.css.js +5 -5
  286. package/dist/generated/themes/Link.css.js +5 -5
  287. package/dist/generated/themes/List.css.js +5 -5
  288. package/dist/generated/themes/ListItem.css.js +5 -5
  289. package/dist/generated/themes/ListItemBase.css.js +5 -5
  290. package/dist/generated/themes/MessageStrip.css.js +5 -5
  291. package/dist/generated/themes/MonthPicker.css.js +5 -5
  292. package/dist/generated/themes/MultiComboBox.css.js +5 -5
  293. package/dist/generated/themes/MultiInput.css.js +5 -5
  294. package/dist/generated/themes/Panel.css.js +5 -5
  295. package/dist/generated/themes/Popover.css.js +5 -5
  296. package/dist/generated/themes/Popup.css.js +5 -5
  297. package/dist/generated/themes/PopupGlobal.css.js +8 -0
  298. package/dist/generated/themes/PopupStaticAreaStyles.css.js +5 -5
  299. package/dist/generated/themes/PopupsCommon.css.js +5 -5
  300. package/dist/generated/themes/ProgressIndicator.css.js +5 -5
  301. package/dist/generated/themes/RadioButton.css.js +5 -5
  302. package/dist/generated/themes/RatingIndicator.css.js +5 -5
  303. package/dist/generated/themes/ResponsivePopover.css.js +5 -5
  304. package/dist/generated/themes/ResponsivePopoverCommon.css.js +5 -5
  305. package/dist/generated/themes/SegmentedButton.css.js +5 -5
  306. package/dist/generated/themes/Select.css.js +5 -5
  307. package/dist/generated/themes/SelectPopover.css.js +5 -5
  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 +5 -5
  312. package/dist/generated/themes/Tab.css.js +5 -5
  313. package/dist/generated/themes/TabContainer.css.js +5 -5
  314. package/dist/generated/themes/TabInOverflow.css.js +5 -5
  315. package/dist/generated/themes/TabInStrip.css.js +5 -5
  316. package/dist/generated/themes/Table.css.js +5 -5
  317. package/dist/generated/themes/TableCell.css.js +5 -5
  318. package/dist/generated/themes/TableColumn.css.js +5 -5
  319. package/dist/generated/themes/TableGroupRow.css.js +8 -0
  320. package/dist/generated/themes/TableRow.css.js +5 -5
  321. package/dist/generated/themes/TapHighlightColor.css.js +8 -0
  322. package/dist/generated/themes/TextArea.css.js +5 -5
  323. package/dist/generated/themes/TimePicker.css.js +5 -5
  324. package/dist/generated/themes/TimePickerPopover.css.js +5 -5
  325. package/dist/generated/themes/TimeSelection.css.js +8 -0
  326. package/dist/generated/themes/Title.css.js +5 -5
  327. package/dist/generated/themes/Toast.css.js +5 -5
  328. package/dist/generated/themes/ToggleButton.css.js +5 -5
  329. package/dist/generated/themes/ToggleButton.ie11.css.js +8 -0
  330. package/dist/generated/themes/Token.css.js +5 -5
  331. package/dist/generated/themes/Tokenizer.css.js +5 -5
  332. package/dist/generated/themes/Tree.css.js +5 -5
  333. package/dist/generated/themes/TreeListItem.css.js +5 -5
  334. package/dist/generated/themes/ValueStateMessage.css.js +5 -5
  335. package/dist/generated/themes/WheelSlider.css.js +5 -5
  336. package/dist/generated/themes/YearPicker.css.js +5 -5
  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 -1
  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 -1
  343. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  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 +1 -1
  397. package/dist/popup-utils/PopoverRegistry.js +2 -4
  398. package/dist/timepicker-utils/TimeSlider.js +15 -13
  399. package/{src/types/AvatarBackgroundColor.js → dist/types/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 +3 -3
  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 +1 -1
  414. package/dist/types/ListMode.js +1 -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 +1 -1
  422. package/dist/types/SemanticColor.js +1 -1
  423. package/dist/types/SwitchDesign.js +40 -0
  424. package/dist/types/TabContainerTabsPlacement.js +5 -5
  425. package/dist/types/TabLayout.js +1 -1
  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 +18 -7
  452. package/src/Assets-static.js +6 -0
  453. package/src/Assets.js +2 -1
  454. package/src/Avatar.hbs +14 -3
  455. package/src/Avatar.js +189 -49
  456. package/src/AvatarGroup.hbs +30 -0
  457. package/src/AvatarGroup.js +603 -0
  458. package/src/Badge.hbs +7 -4
  459. package/src/Badge.js +45 -19
  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 +28 -14
  465. package/src/BusyIndicator.js +121 -34
  466. package/src/Button.hbs +5 -3
  467. package/src/Button.js +110 -66
  468. package/src/Calendar.hbs +53 -48
  469. package/src/Calendar.js +324 -648
  470. package/src/CalendarDate.js +45 -0
  471. package/src/CalendarHeader.hbs +29 -36
  472. package/src/CalendarHeader.js +110 -59
  473. package/src/CalendarPart.js +111 -0
  474. package/src/Card.hbs +7 -39
  475. package/src/Card.js +38 -198
  476. package/src/CardHeader.hbs +35 -0
  477. package/src/CardHeader.js +288 -0
  478. package/src/Carousel.hbs +23 -16
  479. package/src/Carousel.js +253 -94
  480. package/src/CheckBox.hbs +10 -7
  481. package/src/CheckBox.js +138 -70
  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 +7 -2
  492. package/src/ComboBox.js +348 -144
  493. package/src/ComboBoxFilters.js +8 -1
  494. package/src/ComboBoxGroupItem.js +70 -0
  495. package/src/ComboBoxItem.js +11 -24
  496. package/src/ComboBoxPopover.hbs +26 -16
  497. package/src/CustomListItem.js +36 -2
  498. package/src/DateComponentBase.js +170 -0
  499. package/src/DatePicker.hbs +5 -4
  500. package/src/DatePicker.js +264 -519
  501. package/src/DatePickerPopover.hbs +22 -17
  502. package/src/DateRangePicker.js +162 -426
  503. package/src/DateTimePicker.js +94 -413
  504. package/src/DateTimePickerPopover.hbs +28 -52
  505. package/src/DayPicker.hbs +18 -12
  506. package/src/DayPicker.js +443 -648
  507. package/src/Dialog.hbs +14 -10
  508. package/src/Dialog.js +220 -58
  509. package/src/DurationPicker.js +109 -511
  510. package/src/FileUploader.hbs +3 -0
  511. package/src/FileUploader.js +70 -31
  512. package/src/FileUploaderPopover.hbs +2 -1
  513. package/src/GroupHeaderListItem.hbs +4 -4
  514. package/src/GroupHeaderListItem.js +22 -13
  515. package/src/Icon.hbs +4 -3
  516. package/src/Icon.js +103 -41
  517. package/src/Input.hbs +17 -6
  518. package/src/Input.js +346 -155
  519. package/src/InputPopover.hbs +11 -7
  520. package/src/Interfaces.js +192 -0
  521. package/src/Label.hbs +1 -1
  522. package/src/Label.js +27 -12
  523. package/src/Link.hbs +3 -2
  524. package/src/Link.js +105 -43
  525. package/src/List.hbs +76 -37
  526. package/src/List.js +377 -104
  527. package/src/ListItem.hbs +20 -7
  528. package/src/ListItem.js +60 -13
  529. package/src/ListItemBase.js +29 -2
  530. package/src/MessageStrip.hbs +10 -11
  531. package/src/MessageStrip.js +47 -46
  532. package/src/MonthPicker.hbs +6 -6
  533. package/src/MonthPicker.js +171 -225
  534. package/src/MultiComboBox.hbs +10 -6
  535. package/src/MultiComboBox.js +356 -135
  536. package/src/MultiComboBoxItem.js +7 -2
  537. package/src/MultiComboBoxPopover.hbs +42 -18
  538. package/src/MultiInput.hbs +2 -1
  539. package/src/MultiInput.js +55 -24
  540. package/src/Option.js +48 -5
  541. package/src/Panel.hbs +23 -16
  542. package/src/Panel.js +63 -73
  543. package/src/Popover.js +195 -80
  544. package/src/Popup.hbs +5 -0
  545. package/src/Popup.js +151 -61
  546. package/src/ProgressIndicator.hbs +7 -1
  547. package/src/ProgressIndicator.js +28 -20
  548. package/src/RadioButton.hbs +7 -4
  549. package/src/RadioButton.js +126 -43
  550. package/src/RadioButtonGroup.js +53 -29
  551. package/src/RangeSlider.hbs +70 -0
  552. package/src/RangeSlider.js +769 -0
  553. package/src/RatingIndicator.hbs +5 -3
  554. package/src/RatingIndicator.js +27 -37
  555. package/src/ResponsivePopover.hbs +13 -8
  556. package/src/ResponsivePopover.js +56 -42
  557. package/src/SegmentedButton.hbs +12 -5
  558. package/src/SegmentedButton.js +102 -68
  559. package/src/SegmentedButtonItem.hbs +42 -0
  560. package/src/SegmentedButtonItem.js +109 -0
  561. package/src/Select.hbs +26 -17
  562. package/src/Select.js +275 -116
  563. package/src/SelectPopover.hbs +27 -24
  564. package/src/Slider.hbs +42 -0
  565. package/src/Slider.js +320 -0
  566. package/src/SliderBase.hbs +38 -0
  567. package/src/SliderBase.js +842 -0
  568. package/src/StandardListItem.hbs +7 -5
  569. package/src/StandardListItem.js +35 -9
  570. package/src/StepInput.hbs +77 -0
  571. package/src/StepInput.js +681 -0
  572. package/src/SuggestionGroupItem.js +64 -0
  573. package/src/SuggestionItem.js +13 -26
  574. package/src/SuggestionListItem.hbs +4 -4
  575. package/src/SuggestionListItem.js +17 -6
  576. package/src/Switch.hbs +19 -3
  577. package/src/Switch.js +52 -32
  578. package/src/Tab.js +47 -26
  579. package/src/TabContainer.hbs +43 -26
  580. package/src/TabContainer.js +94 -34
  581. package/src/TabContainerPopover.hbs +2 -1
  582. package/src/TabInStrip.hbs +1 -6
  583. package/src/TabSeparator.hbs +1 -1
  584. package/src/TabSeparator.js +1 -0
  585. package/src/Table.hbs +95 -25
  586. package/src/Table.js +474 -22
  587. package/src/TableCell.hbs +1 -0
  588. package/src/TableCell.js +11 -9
  589. package/src/TableColumn.hbs +2 -0
  590. package/src/TableColumn.js +13 -3
  591. package/src/TableGroupRow.hbs +12 -0
  592. package/src/TableGroupRow.js +160 -0
  593. package/src/TableRow.hbs +29 -2
  594. package/src/TableRow.js +210 -11
  595. package/src/TextArea.hbs +1 -3
  596. package/src/TextArea.js +86 -46
  597. package/src/TextAreaPopover.hbs +2 -1
  598. package/src/TimePicker.hbs +6 -3
  599. package/src/TimePicker.js +27 -743
  600. package/src/TimePickerBase.js +463 -0
  601. package/src/TimePickerPopover.hbs +28 -52
  602. package/src/TimeSelection.hbs +60 -0
  603. package/src/TimeSelection.js +493 -0
  604. package/src/Title.js +16 -9
  605. package/src/Toast.hbs +13 -11
  606. package/src/Toast.js +19 -8
  607. package/src/ToggleButton.js +21 -8
  608. package/src/Token.hbs +2 -0
  609. package/src/Token.js +32 -16
  610. package/src/Tokenizer.hbs +1 -0
  611. package/src/Tokenizer.js +75 -42
  612. package/src/TokenizerPopover.hbs +1 -1
  613. package/src/Tree.hbs +10 -2
  614. package/src/Tree.js +97 -41
  615. package/src/TreeItem.js +44 -9
  616. package/src/TreeListItem.hbs +15 -4
  617. package/src/TreeListItem.js +86 -2
  618. package/src/WheelSlider.hbs +17 -10
  619. package/src/WheelSlider.js +58 -58
  620. package/src/YearPicker.hbs +9 -7
  621. package/src/YearPicker.js +188 -284
  622. package/src/features/ColorPaletteMoreColors.js +42 -0
  623. package/src/features/InputElementsFormSupport.js +0 -1
  624. package/src/features/InputSuggestions.js +131 -30
  625. package/src/i18n/messagebundle.properties +144 -189
  626. package/src/i18n/messagebundle_ar.properties +99 -115
  627. package/src/i18n/messagebundle_bg.properties +99 -115
  628. package/src/i18n/messagebundle_ca.properties +99 -115
  629. package/src/i18n/messagebundle_cs.properties +99 -115
  630. package/src/i18n/messagebundle_cy.properties +224 -0
  631. package/src/i18n/messagebundle_da.properties +99 -115
  632. package/src/i18n/messagebundle_de.properties +99 -115
  633. package/src/i18n/messagebundle_el.properties +99 -115
  634. package/src/i18n/messagebundle_en.properties +99 -115
  635. package/src/i18n/messagebundle_en_GB.properties +224 -0
  636. package/src/i18n/messagebundle_en_US_sappsd.properties +99 -115
  637. package/src/i18n/messagebundle_en_US_saprigi.properties +224 -0
  638. package/src/i18n/messagebundle_en_US_saptrc.properties +99 -115
  639. package/src/i18n/messagebundle_es.properties +99 -115
  640. package/src/i18n/messagebundle_es_MX.properties +224 -0
  641. package/src/i18n/messagebundle_et.properties +99 -115
  642. package/src/i18n/messagebundle_fi.properties +99 -115
  643. package/src/i18n/messagebundle_fr.properties +99 -115
  644. package/src/i18n/messagebundle_fr_CA.properties +224 -0
  645. package/src/i18n/messagebundle_hi.properties +99 -115
  646. package/src/i18n/messagebundle_hr.properties +99 -115
  647. package/src/i18n/messagebundle_hu.properties +99 -115
  648. package/src/i18n/messagebundle_id.properties +224 -0
  649. package/src/i18n/messagebundle_in.properties +172 -0
  650. package/src/i18n/messagebundle_it.properties +99 -115
  651. package/src/i18n/messagebundle_iw.properties +99 -115
  652. package/src/i18n/messagebundle_ja.properties +100 -116
  653. package/src/i18n/messagebundle_kk.properties +99 -115
  654. package/src/i18n/messagebundle_ko.properties +99 -115
  655. package/src/i18n/messagebundle_lt.properties +99 -115
  656. package/src/i18n/messagebundle_lv.properties +99 -115
  657. package/src/i18n/messagebundle_ms.properties +99 -115
  658. package/src/i18n/messagebundle_nl.properties +99 -115
  659. package/src/i18n/messagebundle_no.properties +99 -115
  660. package/src/i18n/messagebundle_pl.properties +99 -115
  661. package/src/i18n/messagebundle_pt.properties +99 -115
  662. package/src/i18n/messagebundle_pt_PT.properties +224 -0
  663. package/src/i18n/messagebundle_ro.properties +98 -114
  664. package/src/i18n/messagebundle_ru.properties +99 -115
  665. package/src/i18n/messagebundle_sh.properties +99 -115
  666. package/src/i18n/messagebundle_sk.properties +99 -115
  667. package/src/i18n/messagebundle_sl.properties +99 -115
  668. package/src/i18n/messagebundle_sv.properties +99 -115
  669. package/src/i18n/messagebundle_th.properties +99 -115
  670. package/src/i18n/messagebundle_tr.properties +99 -115
  671. package/src/i18n/messagebundle_uk.properties +101 -117
  672. package/src/i18n/messagebundle_vi.properties +99 -115
  673. package/src/i18n/messagebundle_zh_CN.properties +99 -115
  674. package/src/i18n/messagebundle_zh_TW.properties +99 -115
  675. package/src/popup-utils/OpenedPopupsRegistry.js +1 -1
  676. package/src/popup-utils/PopoverRegistry.js +2 -4
  677. package/src/timepicker-utils/TimeSlider.js +15 -13
  678. package/{dist/types/AvatarBackgroundColor.js → src/types/AvatarColorScheme.js} +9 -9
  679. package/src/types/AvatarGroupType.js +43 -0
  680. package/src/types/AvatarShape.js +1 -1
  681. package/src/types/AvatarSize.js +1 -1
  682. package/src/types/BreadcrumbsDesign.js +42 -0
  683. package/src/types/BreadcrumbsSeparatorStyle.js +69 -0
  684. package/src/types/BusyIndicatorSize.js +1 -1
  685. package/src/types/ButtonDesign.js +8 -1
  686. package/src/types/CalendarSelectionMode.js +47 -0
  687. package/src/types/CarouselArrowsPlacement.js +3 -3
  688. package/src/types/GrowingMode.js +48 -0
  689. package/src/types/InputType.js +7 -7
  690. package/src/types/LinkDesign.js +1 -1
  691. package/src/types/ListGrowingMode.js +15 -0
  692. package/src/types/ListItemType.js +1 -1
  693. package/src/types/ListMode.js +1 -1
  694. package/src/types/ListSeparators.js +1 -1
  695. package/src/types/{MessageStripType.js → MessageStripDesign.js} +7 -7
  696. package/src/types/PanelAccessibleRole.js +1 -1
  697. package/src/types/PopoverHorizontalAlign.js +1 -1
  698. package/src/types/PopoverPlacementType.js +2 -2
  699. package/src/types/PopoverVerticalAlign.js +1 -2
  700. package/src/types/Priority.js +1 -1
  701. package/src/types/SemanticColor.js +1 -1
  702. package/src/types/SwitchDesign.js +40 -0
  703. package/src/types/TabContainerTabsPlacement.js +5 -5
  704. package/src/types/TabLayout.js +1 -1
  705. package/src/types/TableGrowingMode.js +15 -0
  706. package/src/types/TableMode.js +47 -0
  707. package/src/types/TableRowType.js +40 -0
  708. package/src/types/TitleLevel.js +1 -1
  709. package/src/types/ToastPlacement.js +1 -2
  710. package/src/types/WrappingType.js +41 -0
  711. package/dist/Timeline.js +0 -99
  712. package/dist/TimelineItem.js +0 -156
  713. package/dist/generated/templates/ComboBoxItemTemplate.lit.js +0 -14
  714. package/dist/generated/templates/DateRangePickerTemplate.lit.js +0 -16
  715. package/dist/generated/templates/DurationPickerPopoverTemplate.lit.js +0 -17
  716. package/dist/generated/templates/DurationPickerTemplate.lit.js +0 -16
  717. package/dist/generated/templates/TimelineItemTemplate.lit.js +0 -19
  718. package/dist/generated/templates/TimelineTemplate.lit.js +0 -15
  719. package/dist/generated/themes/ComboBoxItem.css.js +0 -8
  720. package/dist/generated/themes/DurationPicker.css.js +0 -8
  721. package/dist/generated/themes/DurationPickerPopover.css.js +0 -8
  722. package/dist/generated/themes/Timeline.css.js +0 -8
  723. package/dist/generated/themes/TimelineItem.css.js +0 -8
  724. package/dist/popup-utils/PopupUtils.js +0 -84
  725. package/dist/types/AvatarFitType.js +0 -40
  726. package/dist/webcomponentsjs/package.json +0 -46
  727. package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
  728. package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
  729. package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
  730. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
  731. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
  732. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
  733. package/src/ComboBoxItem.hbs +0 -0
  734. package/src/DateRangePicker.hbs +0 -1
  735. package/src/DurationPicker.hbs +0 -29
  736. package/src/DurationPickerPopover.hbs +0 -48
  737. package/src/Timeline.hbs +0 -9
  738. package/src/Timeline.js +0 -99
  739. package/src/TimelineItem.hbs +0 -39
  740. package/src/TimelineItem.js +0 -156
  741. package/src/popup-utils/PopupUtils.js +0 -84
  742. package/src/types/AvatarFitType.js +0 -40
package/dist/ComboBox.js CHANGED
@@ -1,11 +1,13 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
3
3
  import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
4
- import { isPhone } from "@ui5/webcomponents-base/dist/Device.js";
4
+ import { isPhone, isSafari } from "@ui5/webcomponents-base/dist/Device.js";
5
5
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
6
6
  import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
7
+ import announce from "@ui5/webcomponents-base/dist/util/InvisibleMessage.js";
7
8
  import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
8
9
  import "@ui5/webcomponents-icons/dist/decline.js";
10
+ import "@ui5/webcomponents-icons/dist/not-editable.js";
9
11
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
10
12
  import {
11
13
  isBackSpace,
@@ -14,6 +16,9 @@ import {
14
16
  isUp,
15
17
  isDown,
16
18
  isEnter,
19
+ isEscape,
20
+ isTabNext,
21
+ isTabPrevious,
17
22
  } from "@ui5/webcomponents-base/dist/Keys.js";
18
23
  import * as Filters from "./ComboBoxFilters.js";
19
24
 
@@ -23,7 +28,9 @@ import {
23
28
  VALUE_STATE_WARNING,
24
29
  VALUE_STATE_INFORMATION,
25
30
  INPUT_SUGGESTIONS_TITLE,
26
- ICON_ACCESSIBLE_NAME,
31
+ SELECT_OPTIONS,
32
+ LIST_ITEM_POSITION,
33
+ LIST_ITEM_SELECTED,
27
34
  } from "./generated/i18n/i18n-defaults.js";
28
35
 
29
36
  // Templates
@@ -35,6 +42,7 @@ import ComboBoxCss from "./generated/themes/ComboBox.css.js";
35
42
  import ComboBoxPopoverCss from "./generated/themes/ComboBoxPopover.css.js";
36
43
  import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverCommon.css.js";
37
44
  import ValueStateMessageCss from "./generated/themes/ValueStateMessage.css.js";
45
+ import SuggestionsCss from "./generated/themes/Suggestions.css.js";
38
46
 
39
47
  import ComboBoxItem from "./ComboBoxItem.js";
40
48
  import Icon from "./Icon.js";
@@ -44,6 +52,7 @@ import List from "./List.js";
44
52
  import BusyIndicator from "./BusyIndicator.js";
45
53
  import Button from "./Button.js";
46
54
  import StandardListItem from "./StandardListItem.js";
55
+ import ComboBoxGroupItem from "./ComboBoxGroupItem.js";
47
56
 
48
57
  /**
49
58
  * @public
@@ -51,10 +60,9 @@ import StandardListItem from "./StandardListItem.js";
51
60
  const metadata = {
52
61
  tag: "ui5-combobox",
53
62
  languageAware: true,
54
- defaultSlot: "items",
55
63
  properties: /** @lends sap.ui.webcomponents.main.ComboBox.prototype */ {
56
64
  /**
57
- * Defines the value of the <code>ui5-combobox</code>.
65
+ * Defines the value of the component.
58
66
  *
59
67
  * @type {string}
60
68
  * @defaultvalue ""
@@ -66,16 +74,16 @@ const metadata = {
66
74
  },
67
75
 
68
76
  /**
69
- * Defines the "live" value of the <code>ui5-combobox</code>.
77
+ * Defines the "live" value of the component.
70
78
  * <br><br>
71
- * <b>Note:</b> The property is updated upon typing.
79
+ * <b>Note:</b> If we have an item e.g. "Bulgaria", "B" is typed, "ulgaria" is typed ahead, value will be "Bulgaria", filterValue will be "B".
72
80
  *
73
81
  * <br><br>
74
82
  * <b>Note:</b> Initially the filter value is synced with value.
75
83
  *
76
84
  * @type {string}
77
85
  * @defaultvalue ""
78
- * @public
86
+ * @private
79
87
  */
80
88
  filterValue: {
81
89
  type: String,
@@ -84,7 +92,7 @@ const metadata = {
84
92
 
85
93
  /**
86
94
  * Defines a short hint intended to aid the user with data entry when the
87
- * <code>ui5-combobox</code> has no value.
95
+ * component has no value.
88
96
  * @type {string}
89
97
  * @defaultvalue ""
90
98
  * @public
@@ -95,9 +103,9 @@ const metadata = {
95
103
  },
96
104
 
97
105
  /**
98
- * Defines whether <code>ui5-combobox</code> is in disabled state.
106
+ * Defines whether the component is in disabled state.
99
107
  * <br><br>
100
- * <b>Note:</b> A disabled <code>ui5-combobox</code> is completely uninteractive.
108
+ * <b>Note:</b> A disabled component is completely noninteractive.
101
109
  *
102
110
  * @type {boolean}
103
111
  * @defaultvalue false
@@ -108,7 +116,7 @@ const metadata = {
108
116
  },
109
117
 
110
118
  /**
111
- * Defines the value state of the <code>ui5-combobox</code>.
119
+ * Defines the value state of the component.
112
120
  * <br><br>
113
121
  * Available options are:
114
122
  * <ul>
@@ -129,9 +137,9 @@ const metadata = {
129
137
  },
130
138
 
131
139
  /**
132
- * Defines whether the <code>ui5-combobox</code> is readonly.
140
+ * Defines whether the component is read-only.
133
141
  * <br><br>
134
- * <b>Note:</b> A read-only <code>ui5-combobox</code> is not editable,
142
+ * <b>Note:</b> A read-only component is not editable,
135
143
  * but still provides visual feedback upon user interaction.
136
144
  *
137
145
  * @type {boolean}
@@ -143,7 +151,7 @@ const metadata = {
143
151
  },
144
152
 
145
153
  /**
146
- * Defines whether the <code>ui5-combobox</code> is required.
154
+ * Defines whether the component is required.
147
155
  *
148
156
  * @type {boolean}
149
157
  * @defaultvalue false
@@ -165,7 +173,7 @@ const metadata = {
165
173
  },
166
174
 
167
175
  /**
168
- * Defines the filter type of the <code>ui5-combobox</code>.
176
+ * Defines the filter type of the component.
169
177
  * Available options are: <code>StartsWithPerTerm</code>, <code>StartsWith</code> and <code>Contains</code>.
170
178
  *
171
179
  * @type {string}
@@ -186,13 +194,22 @@ const metadata = {
186
194
  },
187
195
 
188
196
  /**
189
- * Defines the aria-label attribute for the combo box
197
+ * Indicates whether the visual focus is on the value state header
198
+ * @private
199
+ */
200
+ _isValueStateFocused: {
201
+ type: Boolean,
202
+ },
203
+
204
+ /**
205
+ * Sets the accessible aria name of the component.
206
+ *
190
207
  * @type {String}
191
208
  * @defaultvalue: ""
192
- * @private
193
- * @since 1.0.0-rc.8
209
+ * @public
210
+ * @since 1.0.0-rc.15
194
211
  */
195
- ariaLabel: {
212
+ accessibleName: {
196
213
  type: String,
197
214
  defaultValue: undefined,
198
215
  },
@@ -201,10 +218,10 @@ const metadata = {
201
218
  * Receives id(or many ids) of the elements that label the combo box
202
219
  * @type {String}
203
220
  * @defaultvalue ""
204
- * @private
205
- * @since 1.0.0-rc.8
221
+ * @public
222
+ * @since 1.0.0-rc.15
206
223
  */
207
- ariaLabelledby: {
224
+ accessibleNameRef: {
208
225
  type: String,
209
226
  defaultValue: "",
210
227
  },
@@ -214,11 +231,6 @@ const metadata = {
214
231
  noAttribute: true,
215
232
  },
216
233
 
217
- _tempValue: {
218
- type: String,
219
- defaultValue: "",
220
- },
221
-
222
234
  _filteredItems: {
223
235
  type: Object,
224
236
  },
@@ -232,33 +244,26 @@ const metadata = {
232
244
  managedSlots: true,
233
245
  slots: /** @lends sap.ui.webcomponents.main.ComboBox.prototype */ {
234
246
  /**
235
- * Defines the <code>ui5-combobox</code> items.
236
- * <br><br>
237
- * Example: <br>
238
- * &lt;ui5-combobox><br>
239
- * &nbsp;&nbsp;&nbsp;&nbsp;&lt;ui5-li>Item #1&lt;/ui5-li><br>
240
- * &nbsp;&nbsp;&nbsp;&nbsp;&lt;ui5-li>Item #2&lt;/ui5-li><br>
241
- * &lt;/ui5-combobox>
242
- * <br> <br>
247
+ * Defines the component items.
243
248
  *
244
- * @type {HTMLElement[]}
245
- * @slot
249
+ * @type {sap.ui.webcomponents.main.IComboBoxItem[]}
250
+ * @slot items
246
251
  * @public
247
252
  */
248
253
  "default": {
249
254
  propertyName: "items",
250
255
  type: HTMLElement,
251
- listenFor: { include: ["*"] },
256
+ invalidateOnChildChange: true,
252
257
  },
253
258
 
254
259
  /**
255
- * Defines the value state message that will be displayed as pop up under the <code>ui5-combobox</code>.
260
+ * Defines the value state message that will be displayed as pop up under the component.
256
261
  * <br><br>
257
262
  *
258
263
  * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.
259
264
  * <br>
260
265
  * <b>Note:</b> The <code>valueStateMessage</code> would be displayed,
261
- * when the <code>ui5-select</code> is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
266
+ * when the <code>ui5-combobox</code> is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
262
267
  * @type {HTMLElement[]}
263
268
  * @since 1.0.0-rc.9
264
269
  * @slot
@@ -271,7 +276,7 @@ const metadata = {
271
276
  /**
272
277
  * Defines the icon to be displayed in the input field.
273
278
  *
274
- * @type {HTMLElement[]}
279
+ * @type {sap.ui.webcomponents.main.IIcon}
275
280
  * @slot
276
281
  * @public
277
282
  * @since 1.0.0-rc.9
@@ -301,7 +306,7 @@ const metadata = {
301
306
  /**
302
307
  * Fired when selection is changed by user interaction
303
308
  *
304
- * @event sap.ui.webcomponents.main.Combobox#selection-change
309
+ * @event sap.ui.webcomponents.main.ComboBox#selection-change
305
310
  * @param {HTMLElement} item item to be selected.
306
311
  * @public
307
312
  */
@@ -320,7 +325,7 @@ const metadata = {
320
325
  *
321
326
  * The <code>ui5-combobox</code> component represents a drop-down menu with a list of the available options and a text input field to narrow down the options.
322
327
  *
323
- * It is commonly used to enable users to select one or more options from a predefined list.
328
+ * It is commonly used to enable users to select an option from a predefined list.
324
329
  * <h3>Structure</h3>
325
330
  * The <code>ui5-combobox</code> consists of the following elements:
326
331
  * <ul>
@@ -348,7 +353,7 @@ const metadata = {
348
353
  * @alias sap.ui.webcomponents.main.ComboBox
349
354
  * @extends UI5Element
350
355
  * @tagname ui5-combobox
351
- * @appenddocs ComboBoxItem
356
+ * @appenddocs ComboBoxItem ComboBoxGroupItem
352
357
  * @public
353
358
  * @since 1.0.0-rc.6
354
359
  */
@@ -366,7 +371,7 @@ class ComboBox extends UI5Element {
366
371
  }
367
372
 
368
373
  static get staticAreaStyles() {
369
- return [ResponsivePopoverCommonCss, ValueStateMessageCss, ComboBoxPopoverCss];
374
+ return [ResponsivePopoverCommonCss, ValueStateMessageCss, ComboBoxPopoverCss, SuggestionsCss];
370
375
  }
371
376
 
372
377
  static get template() {
@@ -383,33 +388,12 @@ class ComboBox extends UI5Element {
383
388
  this._filteredItems = [];
384
389
  this._initialRendering = true;
385
390
  this._itemFocused = false;
386
- this._tempFilterValue = "";
387
391
  this._selectionChanged = false;
388
- this.i18nBundle = getI18nBundle("@ui5/webcomponents");
389
392
  }
390
393
 
391
394
  onBeforeRendering() {
392
- let domValue;
393
-
394
395
  if (this._initialRendering) {
395
- domValue = this.value;
396
396
  this._filteredItems = this.items;
397
- } else {
398
- domValue = this.filterValue;
399
- }
400
-
401
- if (this._autocomplete && domValue !== "") {
402
- const item = this._autoCompleteValue(domValue);
403
-
404
- if (!this._selectionChanged && (item && !item.selected)) {
405
- this.fireEvent("selection-change", {
406
- item,
407
- });
408
-
409
- this._selectionChanged = false;
410
- }
411
- } else {
412
- this._tempValue = domValue;
413
397
  }
414
398
 
415
399
  if (!this._initialRendering && this.popover && document.activeElement === this && !this._filteredItems.length) {
@@ -417,15 +401,7 @@ class ComboBox extends UI5Element {
417
401
  }
418
402
 
419
403
  this._selectMatchingItem();
420
-
421
- if (this._isKeyNavigation && this.responsivePopover && this.responsivePopover.opened) {
422
- this.focused = false;
423
- } else if (this.shadowRoot.activeElement) {
424
- this.focused = this.shadowRoot.activeElement.id === "ui5-combobox-input";
425
- }
426
-
427
404
  this._initialRendering = false;
428
- this._isKeyNavigation = false;
429
405
  }
430
406
 
431
407
  async onAfterRendering() {
@@ -437,49 +413,70 @@ class ComboBox extends UI5Element {
437
413
 
438
414
  if (this.shouldClosePopover() && !isPhone()) {
439
415
  this.responsivePopover.close(false, false, true);
416
+ this._clearFocus();
417
+ this._itemFocused = false;
440
418
  }
441
419
 
442
- this._itemFocused = false;
443
-
444
420
  this.toggleValueStatePopover(this.shouldOpenValueStateMessagePopover);
445
421
  this.storeResponsivePopoverWidth();
422
+
423
+ // Safari is quite slow and does not preserve text highlighting on control rerendering.
424
+ // That's why we need to restore it "manually".
425
+ if (isSafari() && this._autocomplete && this.filterValue !== this.value) {
426
+ this.inner.setSelectionRange(
427
+ (this._isKeyNavigation ? 0 : this.filterValue.length),
428
+ this.value.length,
429
+ );
430
+ }
446
431
  }
447
432
 
448
433
  shouldClosePopover() {
449
- return this.responsivePopover.opened && !this.focused && !this._itemFocused;
434
+ return this.responsivePopover.opened && !this.focused && !this._itemFocused && !this._isValueStateFocused;
450
435
  }
451
436
 
452
437
  _focusin(event) {
453
438
  this.focused = true;
454
439
 
455
- if (this.filterValue !== this.value) {
456
- this.filterValue = this.value;
457
- }
440
+ this._lastValue = this.value;
441
+
442
+ this._autocomplete = false;
458
443
 
459
444
  !isPhone() && event.target.setSelectionRange(0, this.value.length);
460
445
  }
461
446
 
462
- _focusout() {
463
- this.focused = false;
447
+ _focusout(event) {
448
+ const focusedOutToValueStateMessage = event.relatedTarget && event.relatedTarget.shadowRoot && event.relatedTarget.shadowRoot.querySelector(".ui5-valuestatemessage-root");
449
+
450
+ this._fireChangeEvent();
451
+
452
+ if (focusedOutToValueStateMessage) {
453
+ event.stopImmediatePropagation();
454
+ return;
455
+ }
464
456
 
465
- this._inputChange();
466
- !isPhone() && this._closeRespPopover();
457
+ if (!this.shadowRoot.contains(event.relatedTarget)) {
458
+ this.focused = false;
459
+ !isPhone() && this._closeRespPopover(event);
460
+ }
467
461
  }
468
462
 
469
463
  _afterOpenPopover() {
470
464
  this._iconPressed = true;
471
- this._clearFocus();
472
465
  }
473
466
 
474
467
  _afterClosePopover() {
475
468
  this._iconPressed = false;
476
469
  this._filteredItems = this.items;
477
- this._tempFilterValue = "";
478
470
 
479
471
  // close device's keyboard and prevent further typing
480
472
  if (isPhone()) {
481
473
  this.blur();
482
474
  }
475
+
476
+ if (this._selectionPerformed) {
477
+ this._lastValue = this.value;
478
+ this._selectionPerformed = false;
479
+ }
483
480
  }
484
481
 
485
482
  _toggleRespPopover() {
@@ -506,7 +503,7 @@ class ComboBox extends UI5Element {
506
503
 
507
504
  async openValueStatePopover() {
508
505
  this.popover = await this._getPopover();
509
- this.popover && this.popover.openBy(this);
506
+ this.popover && this.popover.showAt(this);
510
507
  }
511
508
 
512
509
  async closeValueStatePopover() {
@@ -531,26 +528,48 @@ class ComboBox extends UI5Element {
531
528
  this._toggleRespPopover();
532
529
  }
533
530
 
531
+ _readonlyIconClick() {
532
+ this.inner.focus();
533
+ }
534
+
534
535
  _input(event) {
535
536
  const { value } = event.target;
536
537
 
537
538
  if (event.target === this.inner) {
538
539
  // stop the native event, as the semantic "input" would be fired.
539
540
  event.stopImmediatePropagation();
541
+ this.focused = true;
542
+ this._isValueStateFocused = false;
540
543
  }
541
544
 
542
- this._clearFocus();
543
- this._tempFilterValue = value;
545
+ this._filteredItems = this._filterItems(value);
546
+
547
+ this.value = value;
544
548
  this.filterValue = value;
545
- this.fireEvent("input");
546
549
 
547
- this._filteredItems = this._filterItems(value);
550
+ this._clearFocus();
551
+
552
+ // autocomplete
553
+ if (this._autocomplete) {
554
+ const item = this._getFirstMatchingItem(value);
555
+ this._applyAtomicValueAndSelection(item, value, true);
556
+
557
+ if (value !== "" && !this._selectionChanged && (item && !item.selected && !item.isGroupItem)) {
558
+ this.fireEvent("selection-change", {
559
+ item,
560
+ });
561
+
562
+ this._selectionChanged = false;
563
+ }
564
+ }
565
+
566
+ this.fireEvent("input");
548
567
 
549
568
  if (isPhone()) {
550
569
  return;
551
570
  }
552
571
 
553
- if (!this._filteredItems.length) {
572
+ if (!this._filteredItems.length || value === "") {
554
573
  this._closeRespPopover();
555
574
  } else {
556
575
  this._openRespPopover();
@@ -569,59 +588,166 @@ class ComboBox extends UI5Element {
569
588
  });
570
589
  }
571
590
 
572
- handleArrowKeyPress(event) {
591
+ async handleArrowKeyPress(event) {
573
592
  if (this.readonly || !this._filteredItems.length) {
574
593
  return;
575
594
  }
576
595
 
596
+ const isOpen = this.open;
577
597
  const isArrowDown = isDown(event);
578
598
  const isArrowUp = isUp(event);
579
599
  const currentItem = this._filteredItems.find(item => {
580
- return this.responsivePopover.opened ? item.focused : item.selected;
600
+ return isOpen ? item.focused : item.selected;
581
601
  });
582
- let indexOfItem = this._filteredItems.indexOf(currentItem);
602
+ const indexOfItem = this._filteredItems.indexOf(currentItem);
583
603
 
584
604
  event.preventDefault();
585
605
 
586
- if ((indexOfItem === 0 && isArrowUp) || (this._filteredItems.length - 1 === indexOfItem && isArrowDown)) {
606
+ if ((this.focused === true && isArrowUp && isOpen) || (this._filteredItems.length - 1 === indexOfItem && isArrowDown)) {
607
+ return;
608
+ }
609
+
610
+ this._isKeyNavigation = true;
611
+
612
+ if (isArrowDown) {
613
+ this._handleArrowDown(event, indexOfItem);
614
+ }
615
+
616
+ if (isArrowUp) {
617
+ this._handleArrowUp(event, indexOfItem);
618
+ }
619
+ }
620
+
621
+ _handleItemNavigation(event, indexOfItem, isForward) {
622
+ const isOpen = this.open;
623
+ const currentItem = this._filteredItems[indexOfItem];
624
+ const nextItem = isForward ? this._filteredItems[indexOfItem + 1] : this._filteredItems[indexOfItem - 1];
625
+ const isGroupItem = currentItem && currentItem.isGroupItem;
626
+
627
+ if ((!isOpen) && ((isGroupItem && !nextItem) || (!isGroupItem && !currentItem))) {
587
628
  return;
588
629
  }
589
630
 
590
631
  this._clearFocus();
591
632
 
592
- indexOfItem += isArrowDown ? 1 : -1;
593
- indexOfItem = indexOfItem < 0 ? 0 : indexOfItem;
633
+ if (isOpen) {
634
+ this._itemFocused = true;
635
+ this.value = isGroupItem ? this.filterValue : currentItem.text;
636
+ this.focused = false;
637
+ currentItem.focused = true;
638
+ } else {
639
+ this.focused = true;
640
+ this.value = isGroupItem ? nextItem.text : currentItem.text;
641
+ currentItem.focused = false;
642
+ }
643
+
644
+ this._isValueStateFocused = false;
645
+ this._selectionChanged = true;
646
+
647
+ if (isGroupItem && isOpen) {
648
+ return;
649
+ }
650
+
651
+ this._announceSelectedItem(indexOfItem);
652
+
653
+ // autocomplete
654
+ const item = this._getFirstMatchingItem(this.value);
655
+ this._applyAtomicValueAndSelection(item, "", true);
656
+
657
+ if ((item && !item.selected)) {
658
+ this.fireEvent("selection-change", {
659
+ item,
660
+ });
661
+ }
594
662
 
595
- this._filteredItems[indexOfItem].focused = true;
596
- this.filterValue = this._filteredItems[indexOfItem].text;
597
- this._isKeyNavigation = true;
598
- this._itemFocused = true;
599
663
  this.fireEvent("input");
664
+ this._fireChangeEvent();
665
+ }
600
666
 
601
- this.fireEvent("selection-change", {
602
- item: this._filteredItems[indexOfItem],
603
- });
667
+ _handleArrowDown(event, indexOfItem) {
668
+ const isOpen = this.open;
604
669
 
605
- this._selectionChanged = true;
670
+ if (this.focused && indexOfItem === -1 && this.hasValueStateText && isOpen) {
671
+ this._isValueStateFocused = true;
672
+ this.focused = false;
673
+ return;
674
+ }
675
+
676
+ indexOfItem = !isOpen && this.hasValueState && indexOfItem === -1 ? 0 : indexOfItem;
677
+
678
+ this._handleItemNavigation(event, ++indexOfItem, true /* isForward */);
679
+ }
680
+
681
+ _handleArrowUp(event, indexOfItem) {
682
+ const isOpen = this.open;
683
+
684
+ if (indexOfItem === 0 && !this.hasValueStateText) {
685
+ this._clearFocus();
686
+ this.focused = true;
687
+ this._itemFocused = false;
688
+ return;
689
+ }
690
+
691
+ if (indexOfItem === 0 && this.hasValueStateText && isOpen) {
692
+ this._clearFocus();
693
+ this._itemFocused = false;
694
+ this._isValueStateFocused = true;
695
+ this._filteredItems[0].selected = false;
696
+ return;
697
+ }
698
+
699
+ if (this._isValueStateFocused) {
700
+ this.focused = true;
701
+ this._isValueStateFocused = false;
702
+ return;
703
+ }
704
+
705
+ indexOfItem = !isOpen && this.hasValueState && indexOfItem === -1 ? 0 : indexOfItem;
706
+ this._handleItemNavigation(event, --indexOfItem, false /* isForward */);
606
707
  }
607
708
 
608
709
  _keydown(event) {
609
710
  const isArrowKey = isDown(event) || isUp(event);
610
711
  this._autocomplete = !(isBackSpace(event) || isDelete(event));
712
+ this._isKeyNavigation = false;
611
713
 
612
714
  if (isArrowKey) {
613
715
  this.handleArrowKeyPress(event);
614
716
  }
615
717
 
616
718
  if (isEnter(event)) {
617
- this._inputChange();
719
+ this._fireChangeEvent();
720
+ this._closeRespPopover();
721
+ this.focused = true;
722
+ }
723
+
724
+ if (isEscape(event)) {
725
+ this.focused = true;
726
+ this.value = !this.open ? this._lastValue : this.value;
727
+ this._isValueStateFocused = false;
728
+ }
729
+
730
+ if ((isTabNext(event) || isTabPrevious(event)) && this.open) {
618
731
  this._closeRespPopover();
619
732
  }
620
733
 
621
734
  if (isShow(event) && !this.readonly && !this.disabled) {
622
735
  event.preventDefault();
736
+
623
737
  this._resetFilter();
624
738
  this._toggleRespPopover();
739
+
740
+ const selectedItem = this._filteredItems.find(item => {
741
+ return item.selected;
742
+ });
743
+
744
+ if (selectedItem && this.open) {
745
+ this._itemFocused = true;
746
+ selectedItem.focused = true;
747
+ this.focused = false;
748
+ } else {
749
+ this.focused = true;
750
+ }
625
751
  }
626
752
  }
627
753
 
@@ -631,60 +757,97 @@ class ComboBox extends UI5Element {
631
757
  }
632
758
  }
633
759
 
634
- _closeRespPopover() {
760
+ _closeRespPopover(event) {
761
+ if (isPhone() && event && event.target.classList.contains("ui5-responsive-popover-close-btn") && this._selectedItemText) {
762
+ this.value = this._selectedItemText;
763
+ this.filterValue = this._selectedItemText;
764
+ }
765
+
766
+ this._isValueStateFocused = false;
767
+ this._clearFocus();
768
+
635
769
  this.responsivePopover.close();
636
770
  }
637
771
 
638
772
  _openRespPopover() {
639
- this.responsivePopover.open(this);
773
+ this.responsivePopover.showAt(this);
640
774
  }
641
775
 
642
776
  _filterItems(str) {
643
- return (Filters[this.filter] || Filters.StartsWithPerTerm)(str, this.items);
777
+ const itemsToFilter = this.items.filter(item => !item.isGroupItem);
778
+ const filteredItems = (Filters[this.filter] || Filters.StartsWithPerTerm)(str, itemsToFilter);
779
+
780
+ // Return the filtered items and their group items
781
+ return this.items.filter((item, idx, allItems) => ComboBox._groupItemFilter(item, ++idx, allItems, filteredItems) || filteredItems.indexOf(item) !== -1);
644
782
  }
645
783
 
646
- _autoCompleteValue(current) {
647
- const currentValue = current;
648
- const matchingItems = this._startsWithMatchingItems(currentValue);
649
- const selectionValue = this._tempFilterValue ? this._tempFilterValue : currentValue;
784
+ /**
785
+ * Returns true if the group header should be shown (if there is a filtered suggestion item for this group item)
786
+ *
787
+ * @private
788
+ */
789
+ static _groupItemFilter(item, idx, allItems, filteredItems) {
790
+ if (item.isGroupItem) {
791
+ let groupHasFilteredItems;
792
+
793
+ while (allItems[idx] && !allItems[idx].isGroupItem && !groupHasFilteredItems) {
794
+ groupHasFilteredItems = filteredItems.indexOf(allItems[idx]) !== -1;
795
+ idx++;
796
+ }
650
797
 
651
- if (matchingItems.length) {
652
- this._tempValue = matchingItems[0] ? matchingItems[0].text : current;
653
- } else {
654
- this._tempValue = current;
798
+ return groupHasFilteredItems;
655
799
  }
800
+ }
801
+
802
+ _getFirstMatchingItem(current) {
803
+ const currentlyFocusedItem = this.items.find(item => item.focused === true);
656
804
 
657
- if (matchingItems.length && (selectionValue !== this._tempValue)) {
658
- setTimeout(() => {
659
- this.inner.setSelectionRange(selectionValue.length, this._tempValue.length);
660
- }, 0);
661
- } else if (this._isKeyNavigation) {
662
- setTimeout(() => {
663
- this.inner.setSelectionRange(0, this._tempValue.length);
664
- }, 0);
805
+ if (currentlyFocusedItem && currentlyFocusedItem.isGroupItem) {
806
+ this.value = this.filterValue;
807
+ return;
665
808
  }
666
809
 
810
+ const matchingItems = this._startsWithMatchingItems(current).filter(item => !item.isGroupItem);
811
+
667
812
  if (matchingItems.length) {
668
813
  return matchingItems[0];
669
814
  }
670
815
  }
671
816
 
817
+ _applyAtomicValueAndSelection(item, filterValue, highlightValue) {
818
+ if (!item) {
819
+ return;
820
+ }
821
+
822
+ const value = (item && item.text) || "";
823
+ this.inner.value = value;
824
+ if (highlightValue) {
825
+ this.inner.setSelectionRange(filterValue.length, value.length);
826
+ }
827
+ this.value = value;
828
+ }
829
+
672
830
  _selectMatchingItem() {
673
- this._filteredItems = this._filteredItems.map(item => {
674
- item.selected = (item.text === this._tempValue);
831
+ const currentlyFocusedItem = this.items.find(item => item.focused);
832
+ const shouldSelectionBeCleared = currentlyFocusedItem && currentlyFocusedItem.isGroupItem;
675
833
 
834
+ this._filteredItems = this._filteredItems.map(item => {
835
+ item.selected = !item.isGroupItem && (item.text === this.value) && !shouldSelectionBeCleared;
676
836
  return item;
677
837
  });
678
838
  }
679
839
 
680
- _inputChange() {
681
- if (this.value !== this._tempValue) {
682
- this.value = this._tempValue;
840
+ _fireChangeEvent() {
841
+ if (this.value !== this._lastValue) {
683
842
  this.fireEvent("change");
684
- this.inner.setSelectionRange(this.value.length, this.value.length);
843
+ this._lastValue = this.value;
685
844
  }
686
845
  }
687
846
 
847
+ _inputChange(event) {
848
+ event.preventDefault();
849
+ }
850
+
688
851
  _itemMousedown(event) {
689
852
  event.preventDefault();
690
853
  }
@@ -692,8 +855,17 @@ class ComboBox extends UI5Element {
692
855
  _selectItem(event) {
693
856
  const listItem = event.detail.item;
694
857
 
695
- this._tempValue = listItem.mappedItem.text;
696
- this.filterValue = this._tempValue;
858
+ this._selectedItemText = listItem.mappedItem.text;
859
+ this._selectionPerformed = true;
860
+
861
+ const sameItemSelected = this.value === this._selectedItemText;
862
+ const sameSelectionPerformed = this.value.toLowerCase() === this.filterValue.toLowerCase();
863
+
864
+ if (sameItemSelected && sameSelectionPerformed) {
865
+ return this._closeRespPopover();
866
+ }
867
+
868
+ this.value = this._selectedItemText;
697
869
 
698
870
  if (!listItem.mappedItem.selected) {
699
871
  this.fireEvent("selection-change", {
@@ -704,25 +876,34 @@ class ComboBox extends UI5Element {
704
876
  }
705
877
 
706
878
  this._filteredItems.map(item => {
707
- item.selected = (item === listItem.mappedItem);
708
-
879
+ item.selected = (item === listItem.mappedItem && !item.isGroupItem);
709
880
  return item;
710
881
  });
711
882
 
712
- this._inputChange();
883
+ this._fireChangeEvent();
713
884
  this._closeRespPopover();
885
+
886
+ // reset selection
887
+ this.inner.setSelectionRange(this.value.length, this.value.length);
714
888
  }
715
889
 
716
890
  _onItemFocus(event) {
717
891
  this._itemFocused = true;
718
892
  }
719
893
 
894
+ _announceSelectedItem(indexOfItem) {
895
+ const itemPositionText = ComboBox.i18nBundle.getText(LIST_ITEM_POSITION, indexOfItem + 1, this._filteredItems.length);
896
+ const itemSelectionText = ComboBox.i18nBundle.getText(LIST_ITEM_SELECTED);
897
+
898
+ announce(`${itemPositionText} ${itemSelectionText}`, "Polite");
899
+ }
900
+
720
901
  get _headerTitleText() {
721
- return this.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
902
+ return ComboBox.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
722
903
  }
723
904
 
724
905
  get _iconAccessibleNameText() {
725
- return this.i18nBundle.getText(ICON_ACCESSIBLE_NAME);
906
+ return ComboBox.i18nBundle.getText(SELECT_OPTIONS);
726
907
  }
727
908
 
728
909
  get inner() {
@@ -761,10 +942,10 @@ class ComboBox extends UI5Element {
761
942
 
762
943
  get valueStateTextMappings() {
763
944
  return {
764
- "Success": this.i18nBundle.getText(VALUE_STATE_SUCCESS),
765
- "Error": this.i18nBundle.getText(VALUE_STATE_ERROR),
766
- "Warning": this.i18nBundle.getText(VALUE_STATE_WARNING),
767
- "Information": this.i18nBundle.getText(VALUE_STATE_INFORMATION),
945
+ "Success": ComboBox.i18nBundle.getText(VALUE_STATE_SUCCESS),
946
+ "Error": ComboBox.i18nBundle.getText(VALUE_STATE_ERROR),
947
+ "Warning": ComboBox.i18nBundle.getText(VALUE_STATE_WARNING),
948
+ "Information": ComboBox.i18nBundle.getText(VALUE_STATE_INFORMATION),
768
949
  };
769
950
  }
770
951
 
@@ -777,6 +958,20 @@ class ComboBox extends UI5Element {
777
958
  return !this.valueStateMessage.length && this.hasValueStateText;
778
959
  }
779
960
 
961
+ /**
962
+ * This method is relevant for sap_horizon theme only
963
+ */
964
+ get _valueStateMessageIcon() {
965
+ const iconPerValueState = {
966
+ Error: "error",
967
+ Warning: "alert",
968
+ Success: "sys-enter-2",
969
+ Information: "information",
970
+ };
971
+
972
+ return this.valueState !== ValueState.None ? iconPerValueState[this.valueState] : "";
973
+ }
974
+
780
975
  get open() {
781
976
  return this.responsivePopover ? this.responsivePopover.opened : false;
782
977
  }
@@ -803,9 +998,14 @@ class ComboBox extends UI5Element {
803
998
  Button,
804
999
  StandardListItem,
805
1000
  Popover,
1001
+ ComboBoxGroupItem,
806
1002
  ];
807
1003
  }
808
1004
 
1005
+ static async onDefine() {
1006
+ ComboBox.i18nBundle = await getI18nBundle("@ui5/webcomponents");
1007
+ }
1008
+
809
1009
  get styles() {
810
1010
  return {
811
1011
  popoverHeader: {
@@ -814,14 +1014,18 @@ class ComboBox extends UI5Element {
814
1014
  suggestionPopoverHeader: {
815
1015
  "display": this._listWidth === 0 ? "none" : "inline-block",
816
1016
  "width": `${this._listWidth}px`,
817
- "padding": "0.5625rem 1rem",
818
1017
  },
819
1018
  };
820
1019
  }
821
1020
 
822
1021
  get classes() {
823
1022
  return {
1023
+ popover: {
1024
+ "ui5-suggestions-popover": !this.isPhone,
1025
+ "ui5-suggestions-popover-with-value-state-header": !this.isPhone && this.hasValueStateText,
1026
+ },
824
1027
  popoverValueState: {
1028
+ "ui5-valuestatemessage-header": true,
825
1029
  "ui5-valuestatemessage-root": true,
826
1030
  "ui5-valuestatemessage--success": this.valueState === ValueState.Success,
827
1031
  "ui5-valuestatemessage--error": this.valueState === ValueState.Error,