@ui5/webcomponents 0.0.0-934b4df24 → 0.0.0-a3eca7ade

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 (1243) hide show
  1. package/CHANGELOG.md +884 -1
  2. package/README.md +145 -52
  3. package/customI18n.js +50 -0
  4. package/dist/Assets-static.js +6 -0
  5. package/dist/Assets.js +2 -1
  6. package/dist/Avatar.js +197 -46
  7. package/dist/AvatarGroup.js +603 -0
  8. package/dist/Badge.js +44 -22
  9. package/dist/Breadcrumbs.js +582 -0
  10. package/dist/BreadcrumbsItem.js +103 -0
  11. package/dist/BusyIndicator.js +142 -39
  12. package/dist/Button.js +177 -80
  13. package/dist/Calendar.js +349 -546
  14. package/dist/CalendarDate.js +45 -0
  15. package/dist/CalendarHeader.js +133 -62
  16. package/dist/CalendarPart.js +111 -0
  17. package/dist/Card.js +42 -156
  18. package/dist/CardHeader.js +288 -0
  19. package/dist/Carousel.js +276 -100
  20. package/dist/CheckBox.js +183 -50
  21. package/dist/ColorPalette.js +494 -0
  22. package/dist/ColorPaletteItem.js +137 -0
  23. package/dist/ColorPalettePopover.js +244 -0
  24. package/dist/ColorPicker.js +562 -0
  25. package/dist/ComboBox.js +677 -98
  26. package/dist/ComboBoxFilters.js +8 -1
  27. package/dist/ComboBoxGroupItem.js +70 -0
  28. package/dist/ComboBoxItem.js +12 -24
  29. package/dist/CustomListItem.js +38 -4
  30. package/dist/DateComponentBase.js +168 -0
  31. package/dist/DatePicker.js +404 -411
  32. package/dist/DateRangePicker.js +356 -0
  33. package/dist/DateTimePicker.js +111 -384
  34. package/dist/DayPicker.js +509 -431
  35. package/dist/Dialog.js +508 -43
  36. package/dist/DurationPicker.js +135 -400
  37. package/dist/FileUploader.js +216 -29
  38. package/dist/GroupHeaderListItem.js +24 -14
  39. package/dist/Icon.js +147 -52
  40. package/dist/Input.js +777 -166
  41. package/dist/Interfaces.js +192 -0
  42. package/dist/Label.js +34 -18
  43. package/dist/Link.js +154 -31
  44. package/dist/List.js +461 -127
  45. package/dist/ListItem.js +96 -26
  46. package/dist/ListItemBase.js +31 -8
  47. package/dist/MessageStrip.js +86 -71
  48. package/dist/MonthPicker.js +180 -182
  49. package/dist/MultiComboBox.js +719 -163
  50. package/dist/MultiComboBoxItem.js +8 -2
  51. package/dist/MultiInput.js +348 -0
  52. package/dist/Option.js +59 -5
  53. package/dist/Panel.js +111 -40
  54. package/dist/Popover.js +355 -190
  55. package/dist/Popup.js +413 -90
  56. package/dist/ProgressIndicator.js +240 -0
  57. package/dist/RadioButton.js +143 -51
  58. package/dist/RadioButtonGroup.js +53 -29
  59. package/dist/RangeSlider.js +774 -0
  60. package/dist/RatingIndicator.js +321 -0
  61. package/dist/ResponsivePopover.js +80 -61
  62. package/dist/SegmentedButton.js +126 -77
  63. package/dist/SegmentedButtonItem.js +114 -0
  64. package/dist/Select.js +448 -110
  65. package/dist/Slider.js +325 -0
  66. package/dist/SliderBase.js +847 -0
  67. package/dist/SplitButton.js +431 -0
  68. package/dist/StandardListItem.js +44 -13
  69. package/dist/StepInput.js +684 -0
  70. package/dist/SuggestionGroupItem.js +64 -0
  71. package/dist/SuggestionItem.js +37 -31
  72. package/dist/SuggestionListItem.js +76 -0
  73. package/dist/Switch.js +85 -37
  74. package/dist/Tab.js +64 -29
  75. package/dist/TabContainer.js +621 -128
  76. package/dist/TabSeparator.js +43 -3
  77. package/dist/Table.js +731 -29
  78. package/dist/TableCell.js +11 -9
  79. package/dist/TableColumn.js +13 -10
  80. package/dist/TableGroupRow.js +164 -0
  81. package/dist/TableRow.js +324 -12
  82. package/dist/TextArea.js +153 -44
  83. package/dist/TimePicker.js +55 -675
  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 +24 -13
  88. package/dist/ToggleButton.js +26 -8
  89. package/dist/Token.js +84 -47
  90. package/dist/Tokenizer.js +402 -64
  91. package/dist/Tree.js +154 -63
  92. package/dist/TreeItem.js +67 -11
  93. package/dist/TreeListItem.js +148 -15
  94. package/dist/WheelSlider.js +79 -59
  95. package/dist/YearPicker.js +199 -255
  96. package/dist/api.json +7205 -1
  97. package/dist/css/themes/Avatar.css +1 -0
  98. package/dist/css/themes/AvatarGroup.css +1 -0
  99. package/dist/css/themes/Badge.css +1 -0
  100. package/dist/css/themes/Breadcrumbs.css +1 -0
  101. package/dist/css/themes/BreadcrumbsPopover.css +1 -0
  102. package/dist/css/themes/BrowserScrollbar.css +1 -0
  103. package/dist/css/themes/BusyIndicator.css +1 -0
  104. package/dist/css/themes/Button.css +1 -0
  105. package/dist/css/themes/Button.ie11.css +1 -0
  106. package/dist/css/themes/Calendar.css +1 -0
  107. package/dist/css/themes/CalendarHeader.css +1 -0
  108. package/dist/css/themes/Card.css +1 -0
  109. package/dist/css/themes/CardHeader.css +1 -0
  110. package/dist/css/themes/Carousel.css +1 -0
  111. package/dist/css/themes/CheckBox.css +1 -0
  112. package/dist/css/themes/ColorPalette.css +1 -0
  113. package/dist/css/themes/ColorPaletteItem.css +1 -0
  114. package/dist/css/themes/ColorPalettePopover.css +1 -0
  115. package/dist/css/themes/ColorPaletteStaticArea.css +1 -0
  116. package/dist/css/themes/ColorPicker.css +1 -0
  117. package/dist/css/themes/ComboBox.css +1 -0
  118. package/dist/css/themes/ComboBoxPopover.css +1 -0
  119. package/dist/css/themes/CustomListItem.css +1 -0
  120. package/dist/css/themes/DatePicker.css +1 -0
  121. package/dist/css/themes/DatePickerPopover.css +1 -0
  122. package/dist/css/themes/DateRangePicker.css +1 -0
  123. package/dist/css/themes/DateTimePicker.css +1 -0
  124. package/dist/css/themes/DateTimePickerPopover.css +1 -0
  125. package/dist/css/themes/DayPicker.css +1 -0
  126. package/dist/css/themes/Dialog.css +1 -0
  127. package/dist/css/themes/FileUploader.css +1 -0
  128. package/dist/css/themes/GroupHeaderListItem.css +1 -0
  129. package/dist/css/themes/GrowingButton.css +1 -0
  130. package/dist/css/themes/Icon.css +1 -0
  131. package/dist/css/themes/Input.css +1 -0
  132. package/dist/css/themes/InputIcon.css +1 -0
  133. package/dist/css/themes/InvisibleTextStyles.css +1 -0
  134. package/dist/css/themes/Label.css +1 -0
  135. package/dist/css/themes/Link.css +1 -0
  136. package/dist/css/themes/List.css +1 -0
  137. package/dist/css/themes/ListItem.css +1 -0
  138. package/dist/css/themes/ListItemBase.css +1 -0
  139. package/dist/css/themes/MessageStrip.css +1 -0
  140. package/dist/css/themes/MonthPicker.css +1 -0
  141. package/dist/css/themes/MultiComboBox.css +1 -0
  142. package/dist/css/themes/MultiInput.css +1 -0
  143. package/dist/css/themes/Panel.css +1 -0
  144. package/dist/css/themes/Popover.css +1 -0
  145. package/dist/css/themes/Popup.css +1 -0
  146. package/dist/css/themes/PopupGlobal.css +1 -0
  147. package/dist/css/themes/PopupStaticAreaStyles.css +1 -0
  148. package/dist/css/themes/PopupsCommon.css +1 -0
  149. package/dist/css/themes/ProgressIndicator.css +1 -0
  150. package/dist/css/themes/RadioButton.css +1 -0
  151. package/dist/css/themes/RatingIndicator.css +1 -0
  152. package/dist/css/themes/ResponsivePopover.css +1 -0
  153. package/dist/css/themes/ResponsivePopoverCommon.css +1 -0
  154. package/dist/css/themes/SegmentedButton.css +1 -0
  155. package/dist/css/themes/Select.css +1 -0
  156. package/dist/css/themes/SelectPopover.css +1 -0
  157. package/dist/css/themes/SliderBase.css +1 -0
  158. package/dist/css/themes/SplitButton.css +1 -0
  159. package/dist/css/themes/StepInput.css +1 -0
  160. package/dist/css/themes/Suggestions.css +1 -0
  161. package/dist/css/themes/Switch.css +1 -0
  162. package/dist/css/themes/Tab.css +1 -0
  163. package/dist/css/themes/TabContainer.css +1 -0
  164. package/dist/css/themes/TabInOverflow.css +1 -0
  165. package/dist/css/themes/TabInStrip.css +1 -0
  166. package/dist/css/themes/TabSeparatorInOverflow.css +1 -0
  167. package/dist/css/themes/TabSeparatorInStrip.css +1 -0
  168. package/dist/css/themes/Table.css +1 -0
  169. package/dist/css/themes/TableCell.css +1 -0
  170. package/dist/css/themes/TableColumn.css +1 -0
  171. package/dist/css/themes/TableGroupRow.css +1 -0
  172. package/dist/css/themes/TableRow.css +1 -0
  173. package/dist/css/themes/TapHighlightColor.css +1 -0
  174. package/dist/css/themes/TextArea.css +1 -0
  175. package/dist/css/themes/TimePicker.css +1 -0
  176. package/dist/css/themes/TimePickerPopover.css +1 -0
  177. package/dist/css/themes/TimeSelection.css +1 -0
  178. package/dist/css/themes/Title.css +1 -0
  179. package/dist/css/themes/Toast.css +1 -0
  180. package/dist/css/themes/ToggleButton.css +1 -0
  181. package/dist/css/themes/ToggleButton.ie11.css +1 -0
  182. package/dist/css/themes/Token.css +1 -0
  183. package/dist/css/themes/Tokenizer.css +1 -0
  184. package/dist/css/themes/TokenizerPopover.css +1 -0
  185. package/dist/css/themes/Tree.css +1 -0
  186. package/dist/css/themes/TreeListItem.css +1 -0
  187. package/dist/css/themes/ValueStateMessage.css +1 -0
  188. package/dist/css/themes/WheelSlider.css +1 -0
  189. package/dist/css/themes/YearPicker.css +1 -0
  190. package/dist/css/themes/sap_belize/parameters-bundle.css +1 -0
  191. package/dist/css/themes/sap_belize_hcb/parameters-bundle.css +1 -0
  192. package/dist/css/themes/sap_belize_hcw/parameters-bundle.css +1 -0
  193. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -0
  194. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -0
  195. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -0
  196. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -0
  197. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -0
  198. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -0
  199. package/dist/features/ColorPaletteMoreColors.js +42 -0
  200. package/dist/features/InputElementsFormSupport.js +0 -1
  201. package/dist/features/InputSuggestions.js +321 -59
  202. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  203. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  204. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  205. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  206. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -0
  207. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  208. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  209. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  210. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  211. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -0
  212. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -0
  213. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -0
  214. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -0
  215. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  216. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -0
  217. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  218. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  219. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  220. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -0
  221. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  222. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  223. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  224. package/dist/generated/assets/i18n/messagebundle_in.json +1 -0
  225. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  226. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  227. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  228. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  229. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  230. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  231. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  232. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  233. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  234. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  235. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  236. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  237. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -0
  238. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  239. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  240. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  241. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  242. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  243. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  244. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  245. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  246. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  247. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  248. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  249. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  250. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  251. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  252. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  253. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  254. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  255. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -0
  256. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -0
  257. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -0
  258. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -0
  259. package/dist/generated/i18n/i18n-defaults.js +2 -2
  260. package/dist/generated/json-imports/Themes-static.js +35 -0
  261. package/dist/generated/json-imports/Themes.js +23 -15
  262. package/dist/generated/json-imports/i18n-static.js +162 -0
  263. package/dist/generated/json-imports/i18n.js +113 -89
  264. package/dist/generated/templates/AvatarGroupTemplate.lit.js +9 -0
  265. package/dist/generated/templates/AvatarTemplate.lit.js +9 -9
  266. package/dist/generated/templates/BadgeTemplate.lit.js +5 -6
  267. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +8 -0
  268. package/dist/generated/templates/BreadcrumbsTemplate.lit.js +9 -0
  269. package/dist/generated/templates/BusyIndicatorTemplate.lit.js +7 -6
  270. package/dist/generated/templates/ButtonTemplate.lit.js +6 -6
  271. package/dist/generated/templates/CalendarHeaderTemplate.lit.js +6 -4
  272. package/dist/generated/templates/CalendarTemplate.lit.js +4 -4
  273. package/dist/generated/templates/CardHeaderTemplate.lit.js +12 -0
  274. package/dist/generated/templates/CardTemplate.lit.js +5 -8
  275. package/dist/generated/templates/CarouselTemplate.lit.js +13 -12
  276. package/dist/generated/templates/CheckBoxTemplate.lit.js +7 -7
  277. package/dist/generated/templates/ColorPaletteDialogTemplate.lit.js +7 -0
  278. package/dist/generated/templates/ColorPaletteItemTemplate.lit.js +7 -0
  279. package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +8 -0
  280. package/dist/generated/templates/ColorPaletteTemplate.lit.js +12 -0
  281. package/dist/generated/templates/ColorPickerTemplate.lit.js +7 -0
  282. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +20 -5
  283. package/dist/generated/templates/ComboBoxTemplate.lit.js +8 -6
  284. package/dist/generated/templates/CustomListItemTemplate.lit.js +13 -13
  285. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +7 -6
  286. package/dist/generated/templates/DatePickerTemplate.lit.js +6 -6
  287. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +9 -12
  288. package/dist/generated/templates/DayPickerTemplate.lit.js +13 -11
  289. package/dist/generated/templates/DialogTemplate.lit.js +9 -9
  290. package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +11 -0
  291. package/dist/generated/templates/FileUploaderTemplate.lit.js +7 -7
  292. package/dist/generated/templates/GroupHeaderListItemTemplate.lit.js +4 -4
  293. package/dist/generated/templates/IconTemplate.lit.js +6 -6
  294. package/dist/generated/templates/InputPopoverTemplate.lit.js +24 -23
  295. package/dist/generated/templates/InputTemplate.lit.js +10 -8
  296. package/dist/generated/templates/LabelTemplate.lit.js +4 -4
  297. package/dist/generated/templates/LinkTemplate.lit.js +5 -5
  298. package/dist/generated/templates/ListItemTemplate.lit.js +13 -13
  299. package/dist/generated/templates/ListTemplate.lit.js +12 -9
  300. package/dist/generated/templates/MessageStripTemplate.lit.js +8 -17
  301. package/dist/generated/templates/MonthPickerTemplate.lit.js +6 -6
  302. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +23 -5
  303. package/dist/generated/templates/MultiComboBoxTemplate.lit.js +10 -8
  304. package/dist/generated/templates/MultiInputTemplate.lit.js +17 -0
  305. package/dist/generated/templates/PanelTemplate.lit.js +9 -6
  306. package/dist/generated/templates/PopoverTemplate.lit.js +9 -9
  307. package/dist/generated/templates/PopupBlockLayerTemplate.lit.js +4 -4
  308. package/dist/generated/templates/PopupTemplate.lit.js +4 -9
  309. package/dist/generated/templates/ProgressIndicatorTemplate.lit.js +17 -0
  310. package/dist/generated/templates/RadioButtonTemplate.lit.js +7 -7
  311. package/dist/generated/templates/RangeSliderTemplate.lit.js +13 -0
  312. package/dist/generated/templates/RatingIndicatorTemplate.lit.js +14 -0
  313. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +16 -14
  314. package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +8 -0
  315. package/dist/generated/templates/SegmentedButtonTemplate.lit.js +4 -9
  316. package/dist/generated/templates/SelectPopoverTemplate.lit.js +20 -6
  317. package/dist/generated/templates/SelectTemplate.lit.js +6 -5
  318. package/dist/generated/templates/SliderBaseTemplate.lit.js +11 -0
  319. package/dist/generated/templates/SliderTemplate.lit.js +12 -0
  320. package/dist/generated/templates/SplitButtonTemplate.lit.js +7 -0
  321. package/dist/generated/templates/StandardListItemTemplate.lit.js +21 -20
  322. package/dist/generated/templates/StepInputTemplate.lit.js +10 -0
  323. package/dist/generated/templates/SuggestionListItemTemplate.lit.js +27 -0
  324. package/dist/generated/templates/SwitchTemplate.lit.js +8 -6
  325. package/dist/generated/templates/TabContainerPopoverTemplate.lit.js +8 -6
  326. package/dist/generated/templates/TabContainerTemplate.lit.js +15 -14
  327. package/dist/generated/templates/TabInOverflowTemplate.lit.js +6 -13
  328. package/dist/generated/templates/TabInStripTemplate.lit.js +8 -21
  329. package/dist/generated/templates/TabSeparatorInOverflowTemplate.lit.js +7 -0
  330. package/dist/generated/templates/TabSeparatorInStripTemplate.lit.js +7 -0
  331. package/dist/generated/templates/TabTemplate.lit.js +4 -4
  332. package/dist/generated/templates/TableCellTemplate.lit.js +4 -4
  333. package/dist/generated/templates/TableColumnTemplate.lit.js +4 -4
  334. package/dist/generated/templates/TableGroupRowTemplate.lit.js +7 -0
  335. package/dist/generated/templates/TableRowTemplate.lit.js +12 -11
  336. package/dist/generated/templates/TableTemplate.lit.js +13 -8
  337. package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +8 -8
  338. package/dist/generated/templates/TextAreaTemplate.lit.js +8 -7
  339. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +4 -8
  340. package/dist/generated/templates/TimePickerTemplate.lit.js +6 -6
  341. package/dist/generated/templates/TimeSelectionTemplate.lit.js +11 -0
  342. package/dist/generated/templates/TitleTemplate.lit.js +10 -10
  343. package/dist/generated/templates/ToastTemplate.lit.js +5 -4
  344. package/dist/generated/templates/ToggleButtonTemplate.lit.js +6 -6
  345. package/dist/generated/templates/TokenTemplate.lit.js +7 -5
  346. package/dist/generated/templates/TokenizerPopoverTemplate.lit.js +12 -0
  347. package/dist/generated/templates/TokenizerTemplate.lit.js +6 -6
  348. package/dist/generated/templates/TreeListItemTemplate.lit.js +18 -16
  349. package/dist/generated/templates/TreeTemplate.lit.js +5 -5
  350. package/dist/generated/templates/WheelSliderTemplate.lit.js +7 -7
  351. package/dist/generated/templates/YearPickerTemplate.lit.js +6 -6
  352. package/dist/generated/themes/Avatar.css.js +5 -5
  353. package/dist/generated/themes/AvatarGroup.css.js +8 -0
  354. package/dist/generated/themes/Badge.css.js +5 -5
  355. package/dist/generated/themes/Breadcrumbs.css.js +8 -0
  356. package/dist/generated/themes/BreadcrumbsPopover.css.js +8 -0
  357. package/dist/generated/themes/BrowserScrollbar.css.js +8 -0
  358. package/dist/generated/themes/BusyIndicator.css.js +5 -5
  359. package/dist/generated/themes/Button.css.js +5 -5
  360. package/dist/generated/themes/Button.ie11.css.js +8 -0
  361. package/dist/generated/themes/Calendar.css.js +5 -5
  362. package/dist/generated/themes/CalendarHeader.css.js +5 -5
  363. package/dist/generated/themes/Card.css.js +5 -5
  364. package/dist/generated/themes/CardHeader.css.js +8 -0
  365. package/dist/generated/themes/Carousel.css.js +5 -5
  366. package/dist/generated/themes/CheckBox.css.js +5 -5
  367. package/dist/generated/themes/ColorPalette.css.js +8 -0
  368. package/dist/generated/themes/ColorPaletteItem.css.js +8 -0
  369. package/dist/generated/themes/ColorPalettePopover.css.js +8 -0
  370. package/dist/generated/themes/ColorPaletteStaticArea.css.js +8 -0
  371. package/dist/generated/themes/ColorPicker.css.js +8 -0
  372. package/dist/generated/themes/ComboBox.css.js +5 -5
  373. package/dist/generated/themes/ComboBoxPopover.css.js +5 -5
  374. package/dist/generated/themes/CustomListItem.css.js +5 -5
  375. package/dist/generated/themes/DatePicker.css.js +5 -5
  376. package/dist/generated/themes/DatePickerPopover.css.js +5 -5
  377. package/dist/generated/themes/DateRangePicker.css.js +8 -0
  378. package/dist/generated/themes/DateTimePicker.css.js +8 -0
  379. package/dist/generated/themes/DateTimePickerPopover.css.js +5 -5
  380. package/dist/generated/themes/DayPicker.css.js +5 -5
  381. package/dist/generated/themes/Dialog.css.js +5 -5
  382. package/dist/generated/themes/FileUploader.css.js +5 -5
  383. package/dist/generated/themes/GroupHeaderListItem.css.js +5 -5
  384. package/dist/generated/themes/GrowingButton.css.js +8 -0
  385. package/dist/generated/themes/Icon.css.js +5 -5
  386. package/dist/generated/themes/Input.css.js +5 -5
  387. package/dist/generated/themes/InputIcon.css.js +5 -5
  388. package/dist/generated/themes/InvisibleTextStyles.css.js +5 -5
  389. package/dist/generated/themes/Label.css.js +5 -5
  390. package/dist/generated/themes/Link.css.js +5 -5
  391. package/dist/generated/themes/List.css.js +5 -5
  392. package/dist/generated/themes/ListItem.css.js +5 -5
  393. package/dist/generated/themes/ListItemBase.css.js +5 -5
  394. package/dist/generated/themes/MessageStrip.css.js +5 -5
  395. package/dist/generated/themes/MonthPicker.css.js +5 -5
  396. package/dist/generated/themes/MultiComboBox.css.js +5 -5
  397. package/dist/generated/themes/MultiInput.css.js +8 -0
  398. package/dist/generated/themes/Panel.css.js +5 -5
  399. package/dist/generated/themes/Popover.css.js +5 -5
  400. package/dist/generated/themes/Popup.css.js +5 -5
  401. package/dist/generated/themes/PopupGlobal.css.js +8 -0
  402. package/dist/generated/themes/PopupStaticAreaStyles.css.js +5 -5
  403. package/dist/generated/themes/PopupsCommon.css.js +8 -0
  404. package/dist/generated/themes/ProgressIndicator.css.js +8 -0
  405. package/dist/generated/themes/RadioButton.css.js +5 -5
  406. package/dist/generated/themes/RatingIndicator.css.js +8 -0
  407. package/dist/generated/themes/ResponsivePopover.css.js +5 -5
  408. package/dist/generated/themes/ResponsivePopoverCommon.css.js +5 -5
  409. package/dist/generated/themes/SegmentedButton.css.js +5 -5
  410. package/dist/generated/themes/Select.css.js +5 -5
  411. package/dist/generated/themes/SelectPopover.css.js +8 -0
  412. package/dist/generated/themes/SliderBase.css.js +8 -0
  413. package/dist/generated/themes/SplitButton.css.js +8 -0
  414. package/dist/generated/themes/StepInput.css.js +8 -0
  415. package/dist/generated/themes/Suggestions.css.js +8 -0
  416. package/dist/generated/themes/Switch.css.js +5 -5
  417. package/dist/generated/themes/Tab.css.js +5 -5
  418. package/dist/generated/themes/TabContainer.css.js +5 -5
  419. package/dist/generated/themes/TabInOverflow.css.js +5 -5
  420. package/dist/generated/themes/TabInStrip.css.js +5 -5
  421. package/dist/generated/themes/TabSeparatorInOverflow.css.js +8 -0
  422. package/dist/generated/themes/TabSeparatorInStrip.css.js +8 -0
  423. package/dist/generated/themes/Table.css.js +5 -5
  424. package/dist/generated/themes/TableCell.css.js +5 -5
  425. package/dist/generated/themes/TableColumn.css.js +5 -5
  426. package/dist/generated/themes/TableGroupRow.css.js +8 -0
  427. package/dist/generated/themes/TableRow.css.js +5 -5
  428. package/dist/generated/themes/TapHighlightColor.css.js +8 -0
  429. package/dist/generated/themes/TextArea.css.js +5 -5
  430. package/dist/generated/themes/TimePicker.css.js +5 -5
  431. package/dist/generated/themes/TimePickerPopover.css.js +5 -5
  432. package/dist/generated/themes/TimeSelection.css.js +8 -0
  433. package/dist/generated/themes/Title.css.js +5 -5
  434. package/dist/generated/themes/Toast.css.js +5 -5
  435. package/dist/generated/themes/ToggleButton.css.js +5 -5
  436. package/dist/generated/themes/ToggleButton.ie11.css.js +8 -0
  437. package/dist/generated/themes/Token.css.js +5 -5
  438. package/dist/generated/themes/Tokenizer.css.js +5 -5
  439. package/dist/generated/themes/TokenizerPopover.css.js +8 -0
  440. package/dist/generated/themes/Tree.css.js +5 -5
  441. package/dist/generated/themes/TreeListItem.css.js +5 -5
  442. package/dist/generated/themes/ValueStateMessage.css.js +5 -5
  443. package/dist/generated/themes/WheelSlider.css.js +5 -5
  444. package/dist/generated/themes/YearPicker.css.js +5 -5
  445. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  446. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  447. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  448. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  449. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  450. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -0
  451. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -0
  452. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -0
  453. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -0
  454. package/dist/i18n/messagebundle.properties +363 -0
  455. package/dist/i18n/messagebundle_ar.properties +241 -0
  456. package/dist/i18n/messagebundle_bg.properties +241 -0
  457. package/dist/i18n/messagebundle_ca.properties +241 -0
  458. package/dist/i18n/messagebundle_cs.properties +241 -0
  459. package/dist/i18n/messagebundle_cy.properties +241 -0
  460. package/dist/i18n/messagebundle_da.properties +241 -0
  461. package/dist/i18n/messagebundle_de.properties +241 -0
  462. package/dist/i18n/messagebundle_el.properties +241 -0
  463. package/dist/i18n/messagebundle_en.properties +241 -0
  464. package/dist/i18n/messagebundle_en_GB.properties +241 -0
  465. package/dist/i18n/messagebundle_en_US_sappsd.properties +241 -0
  466. package/dist/i18n/messagebundle_en_US_saprigi.properties +243 -0
  467. package/dist/i18n/messagebundle_en_US_saptrc.properties +241 -0
  468. package/dist/i18n/messagebundle_es.properties +241 -0
  469. package/dist/i18n/messagebundle_es_MX.properties +241 -0
  470. package/dist/i18n/messagebundle_et.properties +241 -0
  471. package/dist/i18n/messagebundle_fi.properties +241 -0
  472. package/dist/i18n/messagebundle_fr.properties +241 -0
  473. package/dist/i18n/messagebundle_fr_CA.properties +241 -0
  474. package/dist/i18n/messagebundle_hi.properties +241 -0
  475. package/dist/i18n/messagebundle_hr.properties +241 -0
  476. package/dist/i18n/messagebundle_hu.properties +241 -0
  477. package/dist/i18n/messagebundle_id.properties +241 -0
  478. package/dist/i18n/messagebundle_in.properties +172 -0
  479. package/dist/i18n/messagebundle_it.properties +241 -0
  480. package/dist/i18n/messagebundle_iw.properties +241 -0
  481. package/dist/i18n/messagebundle_ja.properties +241 -0
  482. package/dist/i18n/messagebundle_kk.properties +241 -0
  483. package/dist/i18n/messagebundle_ko.properties +241 -0
  484. package/dist/i18n/messagebundle_lt.properties +241 -0
  485. package/dist/i18n/messagebundle_lv.properties +241 -0
  486. package/dist/i18n/messagebundle_ms.properties +241 -0
  487. package/dist/i18n/messagebundle_nl.properties +241 -0
  488. package/dist/i18n/messagebundle_no.properties +241 -0
  489. package/dist/i18n/messagebundle_pl.properties +241 -0
  490. package/dist/i18n/messagebundle_pt.properties +241 -0
  491. package/dist/i18n/messagebundle_pt_PT.properties +241 -0
  492. package/dist/i18n/messagebundle_ro.properties +241 -0
  493. package/dist/i18n/messagebundle_ru.properties +241 -0
  494. package/dist/i18n/messagebundle_sh.properties +241 -0
  495. package/dist/i18n/messagebundle_sk.properties +241 -0
  496. package/dist/i18n/messagebundle_sl.properties +241 -0
  497. package/dist/i18n/messagebundle_sv.properties +241 -0
  498. package/dist/i18n/messagebundle_th.properties +241 -0
  499. package/dist/i18n/messagebundle_tr.properties +241 -0
  500. package/dist/i18n/messagebundle_uk.properties +241 -0
  501. package/dist/i18n/messagebundle_vi.properties +241 -0
  502. package/dist/i18n/messagebundle_zh_CN.properties +241 -0
  503. package/dist/i18n/messagebundle_zh_TW.properties +241 -0
  504. package/dist/popup-utils/OpenedPopupsRegistry.js +18 -13
  505. package/dist/popup-utils/PopoverRegistry.js +49 -15
  506. package/dist/timepicker-utils/TimeSlider.js +15 -13
  507. package/dist/types/{AvatarBackgroundColor.js → AvatarColorScheme.js} +9 -9
  508. package/dist/types/AvatarGroupType.js +43 -0
  509. package/dist/types/AvatarShape.js +1 -1
  510. package/dist/types/AvatarSize.js +1 -1
  511. package/dist/types/BreadcrumbsDesign.js +42 -0
  512. package/dist/types/BreadcrumbsSeparatorStyle.js +69 -0
  513. package/dist/types/BusyIndicatorSize.js +1 -1
  514. package/dist/types/ButtonDesign.js +8 -1
  515. package/dist/types/CalendarSelectionMode.js +47 -0
  516. package/dist/types/CarouselArrowsPlacement.js +3 -3
  517. package/dist/types/GrowingMode.js +48 -0
  518. package/dist/types/HasPopup.js +62 -0
  519. package/dist/types/InputType.js +7 -7
  520. package/dist/types/LinkDesign.js +1 -1
  521. package/dist/types/ListGrowingMode.js +15 -0
  522. package/dist/types/ListItemType.js +2 -2
  523. package/dist/types/ListMode.js +9 -1
  524. package/dist/types/ListSeparators.js +1 -1
  525. package/dist/types/{MessageStripType.js → MessageStripDesign.js} +7 -7
  526. package/dist/types/PanelAccessibleRole.js +1 -1
  527. package/dist/types/PopoverHorizontalAlign.js +1 -1
  528. package/dist/types/PopoverPlacementType.js +2 -2
  529. package/dist/types/PopoverVerticalAlign.js +1 -2
  530. package/dist/types/Priority.js +1 -1
  531. package/dist/types/SemanticColor.js +1 -1
  532. package/dist/types/SwitchDesign.js +40 -0
  533. package/dist/types/TabContainerTabsPlacement.js +5 -5
  534. package/dist/types/TabLayout.js +1 -1
  535. package/dist/types/TableGrowingMode.js +15 -0
  536. package/dist/types/TableMode.js +47 -0
  537. package/dist/types/TableRowType.js +40 -0
  538. package/dist/types/TabsOverflowMode.js +40 -0
  539. package/dist/types/TitleLevel.js +1 -1
  540. package/dist/types/ToastPlacement.js +1 -2
  541. package/dist/types/WrappingType.js +41 -0
  542. package/dist/webcomponentsjs/CHANGELOG.md +61 -0
  543. package/dist/webcomponentsjs/README.md +64 -47
  544. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +38 -38
  545. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +1 -1
  546. package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js +60 -0
  547. package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js.map +1 -0
  548. package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js +95 -0
  549. package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js.map +1 -0
  550. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +292 -229
  551. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +1 -1
  552. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +190 -170
  553. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +1 -1
  554. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +151 -132
  555. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +1 -1
  556. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +2 -2
  557. package/dist/webcomponentsjs/webcomponents-bundle.js +302 -230
  558. package/dist/webcomponentsjs/webcomponents-bundle.js.map +1 -1
  559. package/dist/webcomponentsjs/webcomponents-loader.js +49 -28
  560. package/package-scripts.js +1 -0
  561. package/package.json +25 -7
  562. package/src/Assets-static.js +6 -0
  563. package/src/Assets.js +7 -0
  564. package/src/Avatar.hbs +20 -0
  565. package/src/Avatar.js +392 -0
  566. package/src/AvatarGroup.hbs +30 -0
  567. package/src/AvatarGroup.js +603 -0
  568. package/src/Badge.hbs +14 -0
  569. package/src/Badge.js +165 -0
  570. package/src/Breadcrumbs.hbs +43 -0
  571. package/src/Breadcrumbs.js +582 -0
  572. package/src/BreadcrumbsItem.js +103 -0
  573. package/src/BreadcrumbsPopover.hbs +27 -0
  574. package/src/BusyIndicator.hbs +32 -0
  575. package/src/BusyIndicator.js +268 -0
  576. package/src/Button.hbs +45 -0
  577. package/src/Button.js +504 -0
  578. package/src/Calendar.hbs +69 -0
  579. package/src/Calendar.js +496 -0
  580. package/src/CalendarDate.js +45 -0
  581. package/src/CalendarHeader.hbs +54 -0
  582. package/src/CalendarHeader.js +209 -0
  583. package/src/CalendarPart.js +111 -0
  584. package/src/Card.hbs +14 -0
  585. package/src/Card.js +160 -0
  586. package/src/CardHeader.hbs +42 -0
  587. package/src/CardHeader.js +288 -0
  588. package/src/Carousel.hbs +86 -0
  589. package/src/Carousel.js +690 -0
  590. package/src/CheckBox.hbs +45 -0
  591. package/src/CheckBox.js +457 -0
  592. package/src/ColorPalette.hbs +52 -0
  593. package/src/ColorPalette.js +494 -0
  594. package/src/ColorPaletteDialog.hbs +18 -0
  595. package/src/ColorPaletteItem.hbs +11 -0
  596. package/src/ColorPaletteItem.js +137 -0
  597. package/src/ColorPalettePopover.hbs +31 -0
  598. package/src/ColorPalettePopover.js +244 -0
  599. package/src/ColorPicker.hbs +99 -0
  600. package/src/ColorPicker.js +562 -0
  601. package/src/ComboBox.hbs +50 -0
  602. package/src/ComboBox.js +1115 -0
  603. package/src/ComboBoxFilters.js +40 -0
  604. package/src/ComboBoxGroupItem.js +70 -0
  605. package/src/ComboBoxItem.js +49 -0
  606. package/src/ComboBoxPopover.hbs +125 -0
  607. package/src/CustomListItem.hbs +5 -0
  608. package/src/CustomListItem.js +99 -0
  609. package/src/DateComponentBase.js +168 -0
  610. package/src/DatePicker.hbs +44 -0
  611. package/src/DatePicker.js +833 -0
  612. package/src/DatePickerPopover.hbs +61 -0
  613. package/src/DateRangePicker.js +356 -0
  614. package/src/DateTimePicker.js +430 -0
  615. package/src/DateTimePickerPopover.hbs +74 -0
  616. package/src/DayPicker.hbs +66 -0
  617. package/src/DayPicker.js +754 -0
  618. package/src/Dialog.hbs +36 -0
  619. package/src/Dialog.js +614 -0
  620. package/src/DurationPicker.js +312 -0
  621. package/src/FileUploader.hbs +40 -0
  622. package/src/FileUploader.js +531 -0
  623. package/src/FileUploaderPopover.hbs +26 -0
  624. package/src/GroupHeaderListItem.hbs +15 -0
  625. package/src/GroupHeaderListItem.js +94 -0
  626. package/src/Icon.hbs +25 -0
  627. package/src/Icon.js +376 -0
  628. package/src/Input.hbs +82 -0
  629. package/src/Input.js +1541 -0
  630. package/src/InputPopover.hbs +116 -0
  631. package/src/Interfaces.js +192 -0
  632. package/src/Label.hbs +13 -0
  633. package/src/Label.js +158 -0
  634. package/src/Link.hbs +21 -0
  635. package/src/Link.js +378 -0
  636. package/src/List.hbs +89 -0
  637. package/src/List.js +1056 -0
  638. package/src/ListItem.hbs +103 -0
  639. package/src/ListItem.js +371 -0
  640. package/src/ListItemBase.js +179 -0
  641. package/src/MessageStrip.hbs +34 -0
  642. package/src/MessageStrip.js +256 -0
  643. package/src/MonthPicker.hbs +29 -0
  644. package/src/MonthPicker.js +299 -0
  645. package/src/MultiComboBox.hbs +78 -0
  646. package/src/MultiComboBox.js +1234 -0
  647. package/src/MultiComboBoxItem.js +43 -0
  648. package/src/MultiComboBoxPopover.hbs +132 -0
  649. package/src/MultiInput.hbs +41 -0
  650. package/src/MultiInput.js +348 -0
  651. package/src/Option.js +126 -0
  652. package/src/Panel.hbs +64 -0
  653. package/src/Panel.js +470 -0
  654. package/src/Popover.hbs +25 -0
  655. package/src/Popover.js +865 -0
  656. package/src/Popup.hbs +34 -0
  657. package/src/Popup.js +616 -0
  658. package/src/PopupBlockLayer.hbs +7 -0
  659. package/src/ProgressIndicator.hbs +35 -0
  660. package/src/ProgressIndicator.js +240 -0
  661. package/src/RadioButton.hbs +33 -0
  662. package/src/RadioButton.js +506 -0
  663. package/src/RadioButtonGroup.js +205 -0
  664. package/src/RangeSlider.hbs +70 -0
  665. package/src/RangeSlider.js +774 -0
  666. package/src/RatingIndicator.hbs +35 -0
  667. package/src/RatingIndicator.js +321 -0
  668. package/src/ResponsivePopover.hbs +41 -0
  669. package/src/ResponsivePopover.js +211 -0
  670. package/src/SegmentedButton.hbs +18 -0
  671. package/src/SegmentedButton.js +303 -0
  672. package/src/SegmentedButtonItem.hbs +42 -0
  673. package/src/SegmentedButtonItem.js +114 -0
  674. package/src/Select.hbs +45 -0
  675. package/src/Select.js +839 -0
  676. package/src/SelectPopover.hbs +89 -0
  677. package/src/Slider.hbs +42 -0
  678. package/src/Slider.js +325 -0
  679. package/src/SliderBase.hbs +38 -0
  680. package/src/SliderBase.js +847 -0
  681. package/src/SplitButton.hbs +53 -0
  682. package/src/SplitButton.js +431 -0
  683. package/src/StandardListItem.hbs +44 -0
  684. package/src/StandardListItem.js +191 -0
  685. package/src/StepInput.hbs +81 -0
  686. package/src/StepInput.js +684 -0
  687. package/src/SuggestionGroupItem.js +64 -0
  688. package/src/SuggestionItem.js +146 -0
  689. package/src/SuggestionListItem.hbs +33 -0
  690. package/src/SuggestionListItem.js +76 -0
  691. package/src/Switch.hbs +51 -0
  692. package/src/Switch.js +292 -0
  693. package/src/Tab.hbs +3 -0
  694. package/src/Tab.js +338 -0
  695. package/src/TabContainer.hbs +83 -0
  696. package/src/TabContainer.js +1092 -0
  697. package/src/TabContainerPopover.hbs +27 -0
  698. package/src/TabInOverflow.hbs +21 -0
  699. package/src/TabInStrip.hbs +38 -0
  700. package/src/TabSeparator.js +83 -0
  701. package/src/TabSeparatorInOverflow.hbs +8 -0
  702. package/src/TabSeparatorInStrip.hbs +6 -0
  703. package/src/Table.hbs +109 -0
  704. package/src/Table.js +1010 -0
  705. package/src/TableCell.hbs +7 -0
  706. package/src/TableCell.js +88 -0
  707. package/src/TableColumn.hbs +8 -0
  708. package/src/TableColumn.js +129 -0
  709. package/src/TableGroupRow.hbs +13 -0
  710. package/src/TableGroupRow.js +164 -0
  711. package/src/TableRow.hbs +63 -0
  712. package/src/TableRow.js +467 -0
  713. package/src/TextArea.hbs +50 -0
  714. package/src/TextArea.js +702 -0
  715. package/src/TextAreaPopover.hbs +27 -0
  716. package/src/TimePicker.hbs +35 -0
  717. package/src/TimePicker.js +166 -0
  718. package/src/TimePickerBase.js +463 -0
  719. package/src/TimePickerPopover.hbs +33 -0
  720. package/src/TimeSelection.hbs +60 -0
  721. package/src/TimeSelection.js +493 -0
  722. package/src/Title.hbs +47 -0
  723. package/src/Title.js +132 -0
  724. package/src/Toast.hbs +13 -0
  725. package/src/Toast.js +243 -0
  726. package/src/ToggleButton.hbs +5 -0
  727. package/src/ToggleButton.js +89 -0
  728. package/src/Token.hbs +30 -0
  729. package/src/Token.js +219 -0
  730. package/src/Tokenizer.hbs +28 -0
  731. package/src/Tokenizer.js +570 -0
  732. package/src/TokenizerPopover.hbs +50 -0
  733. package/src/Tree.hbs +43 -0
  734. package/src/Tree.js +447 -0
  735. package/src/TreeItem.js +189 -0
  736. package/src/TreeListItem.hbs +48 -0
  737. package/src/TreeListItem.js +343 -0
  738. package/src/WheelSlider.hbs +48 -0
  739. package/src/WheelSlider.js +435 -0
  740. package/src/YearPicker.hbs +27 -0
  741. package/src/YearPicker.js +324 -0
  742. package/src/features/ColorPaletteMoreColors.js +42 -0
  743. package/src/features/InputElementsFormSupport.js +88 -0
  744. package/src/features/InputSuggestions.js +598 -0
  745. package/src/i18n/messagebundle.properties +363 -0
  746. package/src/i18n/messagebundle_ar.properties +241 -0
  747. package/src/i18n/messagebundle_bg.properties +241 -0
  748. package/src/i18n/messagebundle_ca.properties +241 -0
  749. package/src/i18n/messagebundle_cs.properties +241 -0
  750. package/src/i18n/messagebundle_cy.properties +241 -0
  751. package/src/i18n/messagebundle_da.properties +241 -0
  752. package/src/i18n/messagebundle_de.properties +241 -0
  753. package/src/i18n/messagebundle_el.properties +241 -0
  754. package/src/i18n/messagebundle_en.properties +241 -0
  755. package/src/i18n/messagebundle_en_GB.properties +241 -0
  756. package/src/i18n/messagebundle_en_US_sappsd.properties +241 -0
  757. package/src/i18n/messagebundle_en_US_saprigi.properties +243 -0
  758. package/src/i18n/messagebundle_en_US_saptrc.properties +241 -0
  759. package/src/i18n/messagebundle_es.properties +241 -0
  760. package/src/i18n/messagebundle_es_MX.properties +241 -0
  761. package/src/i18n/messagebundle_et.properties +241 -0
  762. package/src/i18n/messagebundle_fi.properties +241 -0
  763. package/src/i18n/messagebundle_fr.properties +241 -0
  764. package/src/i18n/messagebundle_fr_CA.properties +241 -0
  765. package/src/i18n/messagebundle_hi.properties +241 -0
  766. package/src/i18n/messagebundle_hr.properties +241 -0
  767. package/src/i18n/messagebundle_hu.properties +241 -0
  768. package/src/i18n/messagebundle_id.properties +241 -0
  769. package/src/i18n/messagebundle_in.properties +172 -0
  770. package/src/i18n/messagebundle_it.properties +241 -0
  771. package/src/i18n/messagebundle_iw.properties +241 -0
  772. package/src/i18n/messagebundle_ja.properties +241 -0
  773. package/src/i18n/messagebundle_kk.properties +241 -0
  774. package/src/i18n/messagebundle_ko.properties +241 -0
  775. package/src/i18n/messagebundle_lt.properties +241 -0
  776. package/src/i18n/messagebundle_lv.properties +241 -0
  777. package/src/i18n/messagebundle_ms.properties +241 -0
  778. package/src/i18n/messagebundle_nl.properties +241 -0
  779. package/src/i18n/messagebundle_no.properties +241 -0
  780. package/src/i18n/messagebundle_pl.properties +241 -0
  781. package/src/i18n/messagebundle_pt.properties +241 -0
  782. package/src/i18n/messagebundle_pt_PT.properties +241 -0
  783. package/src/i18n/messagebundle_ro.properties +241 -0
  784. package/src/i18n/messagebundle_ru.properties +241 -0
  785. package/src/i18n/messagebundle_sh.properties +241 -0
  786. package/src/i18n/messagebundle_sk.properties +241 -0
  787. package/src/i18n/messagebundle_sl.properties +241 -0
  788. package/src/i18n/messagebundle_sv.properties +241 -0
  789. package/src/i18n/messagebundle_th.properties +241 -0
  790. package/src/i18n/messagebundle_tr.properties +241 -0
  791. package/src/i18n/messagebundle_uk.properties +241 -0
  792. package/src/i18n/messagebundle_vi.properties +241 -0
  793. package/src/i18n/messagebundle_zh_CN.properties +241 -0
  794. package/src/i18n/messagebundle_zh_TW.properties +241 -0
  795. package/src/popup-utils/OpenedPopupsRegistry.js +50 -0
  796. package/src/popup-utils/PopoverRegistry.js +145 -0
  797. package/src/themes/Avatar.css +228 -0
  798. package/src/themes/AvatarGroup.css +82 -0
  799. package/src/themes/Badge.css +247 -0
  800. package/src/themes/Breadcrumbs.css +100 -0
  801. package/src/themes/BreadcrumbsPopover.css +6 -0
  802. package/src/themes/BrowserScrollbar.css +25 -0
  803. package/src/themes/BusyIndicator.css +143 -0
  804. package/src/themes/Button.css +306 -0
  805. package/src/themes/Button.ie11.css +48 -0
  806. package/src/themes/Calendar.css +23 -0
  807. package/src/themes/CalendarHeader.css +137 -0
  808. package/src/themes/Card.css +42 -0
  809. package/src/themes/CardHeader.css +133 -0
  810. package/src/themes/Carousel.css +140 -0
  811. package/src/themes/CheckBox.css +289 -0
  812. package/src/themes/ColorPalette.css +70 -0
  813. package/src/themes/ColorPaletteItem.css +70 -0
  814. package/src/themes/ColorPalettePopover.css +17 -0
  815. package/src/themes/ColorPaletteStaticArea.css +17 -0
  816. package/src/themes/ColorPicker.css +190 -0
  817. package/src/themes/ComboBox.css +9 -0
  818. package/src/themes/ComboBoxPopover.css +17 -0
  819. package/src/themes/CustomListItem.css +31 -0
  820. package/src/themes/DatePicker.css +46 -0
  821. package/src/themes/DatePickerPopover.css +9 -0
  822. package/src/themes/DateRangePicker.css +16 -0
  823. package/src/themes/DateTimePicker.css +11 -0
  824. package/src/themes/DateTimePickerPopover.css +78 -0
  825. package/src/themes/DayPicker.css +269 -0
  826. package/src/themes/Dialog.css +66 -0
  827. package/src/themes/FileUploader.css +40 -0
  828. package/src/themes/GroupHeaderListItem.css +24 -0
  829. package/src/themes/GrowingButton.css +67 -0
  830. package/src/themes/Icon.css +38 -0
  831. package/src/themes/Input.css +407 -0
  832. package/src/themes/InputIcon.css +53 -0
  833. package/src/themes/InvisibleTextStyles.css +9 -0
  834. package/src/themes/Label.css +85 -0
  835. package/src/themes/Link.css +77 -0
  836. package/src/themes/List.css +116 -0
  837. package/src/themes/ListItem.css +231 -0
  838. package/src/themes/ListItemBase.css +85 -0
  839. package/src/themes/MessageStrip.css +123 -0
  840. package/src/themes/MonthPicker.css +86 -0
  841. package/src/themes/MultiComboBox.css +36 -0
  842. package/src/themes/MultiInput.css +14 -0
  843. package/src/themes/Panel.css +100 -0
  844. package/src/themes/Popover.css +102 -0
  845. package/src/themes/Popup.css +5 -0
  846. package/src/themes/PopupGlobal.css +3 -0
  847. package/src/themes/PopupStaticAreaStyles.css +17 -0
  848. package/src/themes/PopupsCommon.css +127 -0
  849. package/src/themes/ProgressIndicator.css +158 -0
  850. package/src/themes/RadioButton.css +249 -0
  851. package/src/themes/RatingIndicator.css +52 -0
  852. package/src/themes/ResponsivePopover.css +29 -0
  853. package/src/themes/ResponsivePopoverCommon.css +208 -0
  854. package/src/themes/SegmentedButton.css +88 -0
  855. package/src/themes/Select.css +53 -0
  856. package/src/themes/SelectPopover.css +19 -0
  857. package/src/themes/SliderBase.css +253 -0
  858. package/src/themes/SplitButton.css +98 -0
  859. package/src/themes/StepInput.css +269 -0
  860. package/src/themes/Suggestions.css +28 -0
  861. package/src/themes/Switch.css +370 -0
  862. package/src/themes/Tab.css +9 -0
  863. package/src/themes/TabContainer.css +128 -0
  864. package/src/themes/TabInOverflow.css +65 -0
  865. package/src/themes/TabInStrip.css +374 -0
  866. package/src/themes/TabSeparatorInOverflow.css +8 -0
  867. package/src/themes/TabSeparatorInStrip.css +5 -0
  868. package/src/themes/Table.css +91 -0
  869. package/src/themes/TableCell.css +28 -0
  870. package/src/themes/TableColumn.css +29 -0
  871. package/src/themes/TableGroupRow.css +34 -0
  872. package/src/themes/TableRow.css +85 -0
  873. package/src/themes/TapHighlightColor.css +3 -0
  874. package/src/themes/TextArea.css +309 -0
  875. package/src/themes/TimePicker.css +50 -0
  876. package/src/themes/TimePickerPopover.css +15 -0
  877. package/src/themes/TimeSelection.css +27 -0
  878. package/src/themes/Title.css +65 -0
  879. package/src/themes/Toast.css +93 -0
  880. package/src/themes/ToggleButton.css +88 -0
  881. package/src/themes/ToggleButton.ie11.css +48 -0
  882. package/src/themes/Token.css +117 -0
  883. package/src/themes/Tokenizer.css +85 -0
  884. package/src/themes/TokenizerPopover.css +4 -0
  885. package/src/themes/Tree.css +11 -0
  886. package/src/themes/TreeListItem.css +107 -0
  887. package/src/themes/ValueStateMessage.css +86 -0
  888. package/src/themes/WheelSlider.css +203 -0
  889. package/src/themes/YearPicker.css +86 -0
  890. package/src/themes/base/Avatar-parameters.css +38 -0
  891. package/src/themes/base/AvatarGroup-parameter.css +6 -0
  892. package/src/themes/base/Badge-parameters.css +61 -0
  893. package/src/themes/base/BrowserScrollbar-parameters.css +4 -0
  894. package/src/themes/base/BusyIndicator-parameters.css +5 -0
  895. package/src/themes/base/Button-parameters.css +30 -0
  896. package/src/themes/base/CalendarHeader-parameters.css +20 -0
  897. package/src/themes/base/Card-parameters.css +17 -0
  898. package/src/themes/base/Carousel-parameters.css +9 -0
  899. package/src/themes/base/CheckBox-parameters.css +53 -0
  900. package/src/themes/base/ColorPalette-parameters.css +14 -0
  901. package/src/themes/base/ColorPicker-parameters.css +8 -0
  902. package/src/themes/base/DatePicker-parameters.css +6 -0
  903. package/src/themes/base/DayPicker-parameters.css +41 -0
  904. package/src/themes/base/Dialog-parameters.css +9 -0
  905. package/src/themes/base/GroupHeaderListItem-parameters.css +3 -0
  906. package/src/themes/base/GrowingButton-parameters.css +6 -0
  907. package/src/themes/base/Input-parameters.css +63 -0
  908. package/src/themes/base/InputIcon-parameters.css +11 -0
  909. package/src/themes/base/Link-parameters.css +8 -0
  910. package/src/themes/base/List-parameters.css +3 -0
  911. package/src/themes/base/ListItemBase-parameters.css +10 -0
  912. package/src/themes/base/MessageStrip-parameters.css +21 -0
  913. package/src/themes/base/MonthPicker-parameters.css +16 -0
  914. package/src/themes/base/MultiComboBox-parameters.css +3 -0
  915. package/src/themes/base/Panel-parameters.css +11 -0
  916. package/src/themes/base/PopupsCommon-parameters.css +13 -0
  917. package/src/themes/base/ProgressIndicator-parameters.css +21 -0
  918. package/src/themes/base/RadioButton-parameters.css +32 -0
  919. package/src/themes/base/RatingIndicator-parameters.css +3 -0
  920. package/src/themes/base/SegmentedButtton-parameters.css +8 -0
  921. package/src/themes/base/Select-parameters.css +11 -0
  922. package/src/themes/base/SelectPopover-parameters.css +4 -0
  923. package/src/themes/base/SliderBase-parameters.css +64 -0
  924. package/src/themes/base/StepInput-parameters.css +23 -0
  925. package/src/themes/base/Suggestions-parameters.css +3 -0
  926. package/src/themes/base/Switch-parameters.css +96 -0
  927. package/src/themes/base/TabContainer-parameters.css +84 -0
  928. package/src/themes/base/Table-parameters.css +6 -0
  929. package/src/themes/base/TableColumn-parameters.css +3 -0
  930. package/src/themes/base/TableRow-parameters.css +3 -0
  931. package/src/themes/base/TextArea-parameters.css +22 -0
  932. package/src/themes/base/TimePicker-parameters.css +4 -0
  933. package/src/themes/base/TimelineItem-parameters.css +10 -0
  934. package/src/themes/base/Title-parameters.css +8 -0
  935. package/src/themes/base/Toast-parameters.css +6 -0
  936. package/src/themes/base/ToggleButton-parameters.css +8 -0
  937. package/src/themes/base/Token-parameters.css +19 -0
  938. package/src/themes/base/Tokenizer-parameters.css +4 -0
  939. package/src/themes/base/ValueStateMessage-parameters.css +7 -0
  940. package/src/themes/base/WheelSlider-parameters.css +15 -0
  941. package/src/themes/base/YearPicker-parameters.css +16 -0
  942. package/src/themes/base/sizes-parameters.css +302 -0
  943. package/src/themes/sap_belize/BrowserScrollbar-parameters.css +4 -0
  944. package/src/themes/sap_belize/Carousel-parameters.css +9 -0
  945. package/src/themes/sap_belize/Dialog-parameters.css +5 -0
  946. package/src/themes/sap_belize/Input-parameters.css +6 -0
  947. package/src/themes/sap_belize/InputIcon-parameters.css +5 -0
  948. package/src/themes/sap_belize/ProgressIndicator-parameters.css +8 -0
  949. package/src/themes/sap_belize/SliderBase-parameters.css +22 -0
  950. package/src/themes/sap_belize/TabContainer-parameters.css +6 -0
  951. package/src/themes/sap_belize/Table-parameters.css +7 -0
  952. package/src/themes/sap_belize/TimePicker-parameters.css +5 -0
  953. package/src/themes/sap_belize/WheelSlider-parameters.css +17 -0
  954. package/src/themes/sap_belize/parameters-bundle.css +48 -0
  955. package/src/themes/sap_belize_hcb/Avatar-parameters.css +18 -0
  956. package/src/themes/sap_belize_hcb/Badge-parameters.css +43 -0
  957. package/src/themes/sap_belize_hcb/BrowserScrollbar-parameters.css +4 -0
  958. package/src/themes/sap_belize_hcb/Button-parameters.css +12 -0
  959. package/src/themes/sap_belize_hcb/CalendarHeader-parameters.css +11 -0
  960. package/src/themes/sap_belize_hcb/Card-parameters.css +6 -0
  961. package/src/themes/sap_belize_hcb/Carousel-parameters.css +9 -0
  962. package/src/themes/sap_belize_hcb/CheckBox-parameters.css +12 -0
  963. package/src/themes/sap_belize_hcb/DatePicker-parameters.css +6 -0
  964. package/src/themes/sap_belize_hcb/DayPicker-parameters.css +13 -0
  965. package/src/themes/sap_belize_hcb/Dialog-parameters.css +7 -0
  966. package/src/themes/sap_belize_hcb/GrowingButton-parameters.css +8 -0
  967. package/src/themes/sap_belize_hcb/Input-parameters.css +14 -0
  968. package/src/themes/sap_belize_hcb/InputIcon-parameters.css +5 -0
  969. package/src/themes/sap_belize_hcb/Link-parameters.css +7 -0
  970. package/src/themes/sap_belize_hcb/MessageStrip-parameters.css +10 -0
  971. package/src/themes/sap_belize_hcb/MonthPicker-parameters.css +10 -0
  972. package/src/themes/sap_belize_hcb/Panel-parameters.css +5 -0
  973. package/src/themes/sap_belize_hcb/ProgressIndicator-parameters.css +11 -0
  974. package/src/themes/sap_belize_hcb/RadioButton-parameters.css +10 -0
  975. package/src/themes/sap_belize_hcb/Select-parameters.css +12 -0
  976. package/src/themes/sap_belize_hcb/SliderBase-parameters.css +17 -0
  977. package/src/themes/sap_belize_hcb/Switch-parameters.css +44 -0
  978. package/src/themes/sap_belize_hcb/TabContainer-parameters.css +44 -0
  979. package/src/themes/sap_belize_hcb/Table-parameters.css +7 -0
  980. package/src/themes/sap_belize_hcb/TableRow-parameters.css +5 -0
  981. package/src/themes/sap_belize_hcb/TextArea-parameters.css +6 -0
  982. package/src/themes/sap_belize_hcb/ToggleButton-parameters.css +7 -0
  983. package/src/themes/sap_belize_hcb/Token-parameters.css +6 -0
  984. package/src/themes/sap_belize_hcb/ValueStateMessage-parameters.css +5 -0
  985. package/src/themes/sap_belize_hcb/WheelSlider-parameters.css +17 -0
  986. package/src/themes/sap_belize_hcb/YearPicker-parameters.css +10 -0
  987. package/src/themes/sap_belize_hcb/parameters-bundle.css +47 -0
  988. package/src/themes/sap_belize_hcw/Avatar-parameters.css +18 -0
  989. package/src/themes/sap_belize_hcw/Badge-parameters.css +43 -0
  990. package/src/themes/sap_belize_hcw/BrowserScrollbar-parameters.css +4 -0
  991. package/src/themes/sap_belize_hcw/Button-parameters.css +12 -0
  992. package/src/themes/sap_belize_hcw/CalendarHeader-parameters.css +11 -0
  993. package/src/themes/sap_belize_hcw/Card-parameters.css +6 -0
  994. package/src/themes/sap_belize_hcw/Carousel-parameters.css +9 -0
  995. package/src/themes/sap_belize_hcw/CheckBox-parameters.css +12 -0
  996. package/src/themes/sap_belize_hcw/DatePicker-parameters.css +5 -0
  997. package/src/themes/sap_belize_hcw/DayPicker-parameters.css +14 -0
  998. package/src/themes/sap_belize_hcw/Dialog-parameters.css +7 -0
  999. package/src/themes/sap_belize_hcw/GrowingButton-parameters.css +8 -0
  1000. package/src/themes/sap_belize_hcw/Input-parameters.css +14 -0
  1001. package/src/themes/sap_belize_hcw/InputIcon-parameters.css +5 -0
  1002. package/src/themes/sap_belize_hcw/Link-parameters.css +7 -0
  1003. package/src/themes/sap_belize_hcw/MessageStrip-parameters.css +10 -0
  1004. package/src/themes/sap_belize_hcw/MonthPicker-parameters.css +10 -0
  1005. package/src/themes/sap_belize_hcw/Panel-parameters.css +5 -0
  1006. package/src/themes/sap_belize_hcw/ProgressIndicator-parameters.css +11 -0
  1007. package/src/themes/sap_belize_hcw/RadioButton-parameters.css +10 -0
  1008. package/src/themes/sap_belize_hcw/Select-parameters.css +12 -0
  1009. package/src/themes/sap_belize_hcw/SliderBase-parameters.css +17 -0
  1010. package/src/themes/sap_belize_hcw/Switch-parameters.css +43 -0
  1011. package/src/themes/sap_belize_hcw/TabContainer-parameters.css +44 -0
  1012. package/src/themes/sap_belize_hcw/Table-parameters.css +7 -0
  1013. package/src/themes/sap_belize_hcw/TableRow-parameters.css +5 -0
  1014. package/src/themes/sap_belize_hcw/TextArea-parameters.css +6 -0
  1015. package/src/themes/sap_belize_hcw/ToggleButton-parameters.css +6 -0
  1016. package/src/themes/sap_belize_hcw/Token-parameters.css +6 -0
  1017. package/src/themes/sap_belize_hcw/ValueStateMessage-parameters.css +5 -0
  1018. package/src/themes/sap_belize_hcw/WheelSlider-parameters.css +17 -0
  1019. package/src/themes/sap_belize_hcw/YearPicker-parameters.css +10 -0
  1020. package/src/themes/sap_belize_hcw/parameters-bundle.css +47 -0
  1021. package/src/themes/sap_fiori_3/Avatar-parameters.css +9 -0
  1022. package/src/themes/sap_fiori_3/Button-parameters.css +14 -0
  1023. package/src/themes/sap_fiori_3/CalendarHeader-parameters.css +8 -0
  1024. package/src/themes/sap_fiori_3/CheckBox-parameters.css +13 -0
  1025. package/src/themes/sap_fiori_3/DayPicker-parameters.css +6 -0
  1026. package/src/themes/sap_fiori_3/Input-parameters.css +7 -0
  1027. package/src/themes/sap_fiori_3/Link-parameters.css +7 -0
  1028. package/src/themes/sap_fiori_3/List-parameters.css +5 -0
  1029. package/src/themes/sap_fiori_3/MonthPicker-parameters.css +5 -0
  1030. package/src/themes/sap_fiori_3/MultiComboBox-parameters.css +5 -0
  1031. package/src/themes/sap_fiori_3/Panel-parameters.css +6 -0
  1032. package/src/themes/sap_fiori_3/SliderBase-parameters.css +5 -0
  1033. package/src/themes/sap_fiori_3/TabContainer-parameters.css +12 -0
  1034. package/src/themes/sap_fiori_3/TimePicker-parameters.css +5 -0
  1035. package/src/themes/sap_fiori_3/Token-parameters.css +9 -0
  1036. package/src/themes/sap_fiori_3/WheelSlider-parameters.css +16 -0
  1037. package/src/themes/sap_fiori_3/YearPicker-parameters.css +5 -0
  1038. package/src/themes/sap_fiori_3/parameters-bundle.css +48 -0
  1039. package/src/themes/sap_fiori_3_dark/Avatar-parameters.css +9 -0
  1040. package/src/themes/sap_fiori_3_dark/Button-parameters.css +14 -0
  1041. package/src/themes/sap_fiori_3_dark/CalendarHeader-parameters.css +8 -0
  1042. package/src/themes/sap_fiori_3_dark/CheckBox-parameters.css +13 -0
  1043. package/src/themes/sap_fiori_3_dark/DayPicker-parameters.css +6 -0
  1044. package/src/themes/sap_fiori_3_dark/Input-parameters.css +7 -0
  1045. package/src/themes/sap_fiori_3_dark/Link-parameters.css +7 -0
  1046. package/src/themes/sap_fiori_3_dark/List-parameters.css +5 -0
  1047. package/src/themes/sap_fiori_3_dark/MonthPicker-parameters.css +5 -0
  1048. package/src/themes/sap_fiori_3_dark/MultiComboBox-parameters.css +5 -0
  1049. package/src/themes/sap_fiori_3_dark/Panel-parameters.css +6 -0
  1050. package/src/themes/sap_fiori_3_dark/SliderBase-parameters.css +5 -0
  1051. package/src/themes/sap_fiori_3_dark/TabContainer-parameters.css +12 -0
  1052. package/src/themes/sap_fiori_3_dark/Token-parameters.css +8 -0
  1053. package/src/themes/sap_fiori_3_dark/WheelSlider-parameters.css +15 -0
  1054. package/src/themes/sap_fiori_3_dark/YearPicker-parameters.css +5 -0
  1055. package/src/themes/sap_fiori_3_dark/parameters-bundle.css +47 -0
  1056. package/src/themes/sap_fiori_3_hcb/Avatar-parameters.css +24 -0
  1057. package/src/themes/sap_fiori_3_hcb/Badge-parameters.css +43 -0
  1058. package/src/themes/sap_fiori_3_hcb/Button-parameters.css +10 -0
  1059. package/src/themes/sap_fiori_3_hcb/CalendarHeader-parameters.css +11 -0
  1060. package/src/themes/sap_fiori_3_hcb/Card-parameters.css +6 -0
  1061. package/src/themes/sap_fiori_3_hcb/Carousel-parameters.css +9 -0
  1062. package/src/themes/sap_fiori_3_hcb/CheckBox-parameters.css +13 -0
  1063. package/src/themes/sap_fiori_3_hcb/DatePicker-parameters.css +5 -0
  1064. package/src/themes/sap_fiori_3_hcb/DayPicker-parameters.css +17 -0
  1065. package/src/themes/sap_fiori_3_hcb/Dialog-parameters.css +7 -0
  1066. package/src/themes/sap_fiori_3_hcb/GrowingButton-parameters.css +8 -0
  1067. package/src/themes/sap_fiori_3_hcb/Input-parameters.css +21 -0
  1068. package/src/themes/sap_fiori_3_hcb/InputIcon-parameters.css +5 -0
  1069. package/src/themes/sap_fiori_3_hcb/Link-parameters.css +7 -0
  1070. package/src/themes/sap_fiori_3_hcb/MessageStrip-parameters.css +10 -0
  1071. package/src/themes/sap_fiori_3_hcb/MonthPicker-parameters.css +11 -0
  1072. package/src/themes/sap_fiori_3_hcb/Panel-parameters.css +5 -0
  1073. package/src/themes/sap_fiori_3_hcb/ProgressIndicator-parameters.css +11 -0
  1074. package/src/themes/sap_fiori_3_hcb/RadioButton-parameters.css +10 -0
  1075. package/src/themes/sap_fiori_3_hcb/Select-parameters.css +12 -0
  1076. package/src/themes/sap_fiori_3_hcb/SliderBase-parameters.css +14 -0
  1077. package/src/themes/sap_fiori_3_hcb/Switch-parameters.css +43 -0
  1078. package/src/themes/sap_fiori_3_hcb/TabContainer-parameters.css +44 -0
  1079. package/src/themes/sap_fiori_3_hcb/Table-parameters.css +5 -0
  1080. package/src/themes/sap_fiori_3_hcb/TableRow-parameters.css +5 -0
  1081. package/src/themes/sap_fiori_3_hcb/TextArea-parameters.css +10 -0
  1082. package/src/themes/sap_fiori_3_hcb/TimePicker-parameters.css +5 -0
  1083. package/src/themes/sap_fiori_3_hcb/ToggleButton-parameters.css +6 -0
  1084. package/src/themes/sap_fiori_3_hcb/Token-parameters.css +7 -0
  1085. package/src/themes/sap_fiori_3_hcb/ValueStateMessage-parameters.css +5 -0
  1086. package/src/themes/sap_fiori_3_hcb/WheelSlider-parameters.css +17 -0
  1087. package/src/themes/sap_fiori_3_hcb/YearPicker-parameters.css +11 -0
  1088. package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +48 -0
  1089. package/src/themes/sap_fiori_3_hcw/Avatar-parameters.css +24 -0
  1090. package/src/themes/sap_fiori_3_hcw/Badge-parameters.css +43 -0
  1091. package/src/themes/sap_fiori_3_hcw/Button-parameters.css +10 -0
  1092. package/src/themes/sap_fiori_3_hcw/CalendarHeader-parameters.css +11 -0
  1093. package/src/themes/sap_fiori_3_hcw/Card-parameters.css +6 -0
  1094. package/src/themes/sap_fiori_3_hcw/Carousel-parameters.css +9 -0
  1095. package/src/themes/sap_fiori_3_hcw/CheckBox-parameters.css +13 -0
  1096. package/src/themes/sap_fiori_3_hcw/DatePicker-parameters.css +5 -0
  1097. package/src/themes/sap_fiori_3_hcw/DayPicker-parameters.css +17 -0
  1098. package/src/themes/sap_fiori_3_hcw/Dialog-parameters.css +7 -0
  1099. package/src/themes/sap_fiori_3_hcw/GrowingButton-parameters.css +8 -0
  1100. package/src/themes/sap_fiori_3_hcw/Input-parameters.css +21 -0
  1101. package/src/themes/sap_fiori_3_hcw/InputIcon-parameters.css +5 -0
  1102. package/src/themes/sap_fiori_3_hcw/Link-parameters.css +7 -0
  1103. package/src/themes/sap_fiori_3_hcw/MessageStrip-parameters.css +10 -0
  1104. package/src/themes/sap_fiori_3_hcw/MonthPicker-parameters.css +11 -0
  1105. package/src/themes/sap_fiori_3_hcw/Panel-parameters.css +5 -0
  1106. package/src/themes/sap_fiori_3_hcw/ProgressIndicator-parameters.css +11 -0
  1107. package/src/themes/sap_fiori_3_hcw/RadioButton-parameters.css +10 -0
  1108. package/src/themes/sap_fiori_3_hcw/Select-parameters.css +12 -0
  1109. package/src/themes/sap_fiori_3_hcw/SliderBase-parameters.css +13 -0
  1110. package/src/themes/sap_fiori_3_hcw/Switch-parameters.css +43 -0
  1111. package/src/themes/sap_fiori_3_hcw/TabContainer-parameters.css +44 -0
  1112. package/src/themes/sap_fiori_3_hcw/Table-parameters.css +5 -0
  1113. package/src/themes/sap_fiori_3_hcw/TableRow-parameters.css +5 -0
  1114. package/src/themes/sap_fiori_3_hcw/TextArea-parameters.css +10 -0
  1115. package/src/themes/sap_fiori_3_hcw/TimePicker-parameters.css +5 -0
  1116. package/src/themes/sap_fiori_3_hcw/ToggleButton-parameters.css +6 -0
  1117. package/src/themes/sap_fiori_3_hcw/Token-parameters.css +7 -0
  1118. package/src/themes/sap_fiori_3_hcw/ValueStateMessage-parameters.css +5 -0
  1119. package/src/themes/sap_fiori_3_hcw/WheelSlider-parameters.css +17 -0
  1120. package/src/themes/sap_fiori_3_hcw/YearPicker-parameters.css +11 -0
  1121. package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +48 -0
  1122. package/src/themes/sap_horizon/Avatar-parameters.css +33 -0
  1123. package/src/themes/sap_horizon/BusyIndicator-parameters.css +7 -0
  1124. package/src/themes/sap_horizon/Button-parameters.css +20 -0
  1125. package/src/themes/sap_horizon/CalendarHeader-parameters.css +19 -0
  1126. package/src/themes/sap_horizon/Card-parameters.css +10 -0
  1127. package/src/themes/sap_horizon/CheckBox-parameters.css +34 -0
  1128. package/src/themes/sap_horizon/ColorPalette-parameters.css +16 -0
  1129. package/src/themes/sap_horizon/ColorPicker-parameters.css +10 -0
  1130. package/src/themes/sap_horizon/DatePicker-parameters.css +6 -0
  1131. package/src/themes/sap_horizon/DayPicker-parameters.css +31 -0
  1132. package/src/themes/sap_horizon/Dialog-parameters.css +11 -0
  1133. package/src/themes/sap_horizon/GrowingButton-parameters.css +5 -0
  1134. package/src/themes/sap_horizon/Input-parameters.css +35 -0
  1135. package/src/themes/sap_horizon/InputIcon-parameters.css +17 -0
  1136. package/src/themes/sap_horizon/Link-parameters.css +10 -0
  1137. package/src/themes/sap_horizon/List-parameters.css +5 -0
  1138. package/src/themes/sap_horizon/ListItemBase-parameters.css +6 -0
  1139. package/src/themes/sap_horizon/MessageStrip-parameters.css +9 -0
  1140. package/src/themes/sap_horizon/MonthPicker-parameters.css +17 -0
  1141. package/src/themes/sap_horizon/MultiComboBox-parameters.css +5 -0
  1142. package/src/themes/sap_horizon/Panel-parameters.css +12 -0
  1143. package/src/themes/sap_horizon/PopupsCommon-parameters.css +9 -0
  1144. package/src/themes/sap_horizon/ProgressIndicator-parameters.css +23 -0
  1145. package/src/themes/sap_horizon/RadioButton-parameters.css +9 -0
  1146. package/src/themes/sap_horizon/RatingIndicator-parameters.css +3 -0
  1147. package/src/themes/sap_horizon/SegmentedButtton-parameters.css +10 -0
  1148. package/src/themes/sap_horizon/Select-parameters.css +5 -0
  1149. package/src/themes/sap_horizon/SelectPopover-parameters.css +4 -0
  1150. package/src/themes/sap_horizon/SliderBase-parameters.css +44 -0
  1151. package/src/themes/sap_horizon/StepInput-parameters.css +25 -0
  1152. package/src/themes/sap_horizon/Suggestions-parameters.css +5 -0
  1153. package/src/themes/sap_horizon/Switch-parameters.css +31 -0
  1154. package/src/themes/sap_horizon/TabContainer-parameters.css +25 -0
  1155. package/src/themes/sap_horizon/Table-parameters.css +8 -0
  1156. package/src/themes/sap_horizon/TableColumn-parameters.css +5 -0
  1157. package/src/themes/sap_horizon/TableRow-parameters.css +5 -0
  1158. package/src/themes/sap_horizon/TextArea-parameters.css +22 -0
  1159. package/src/themes/sap_horizon/TimePicker-parameters.css +6 -0
  1160. package/src/themes/sap_horizon/ToggleButton-parameters.css +11 -0
  1161. package/src/themes/sap_horizon/Token-parameters.css +28 -0
  1162. package/src/themes/sap_horizon/Tokenizer-parameters.css +6 -0
  1163. package/src/themes/sap_horizon/ValueStateMessage-parameters.css +8 -0
  1164. package/src/themes/sap_horizon/WheelSlider-parameters.css +19 -0
  1165. package/src/themes/sap_horizon/YearPicker-parameters.css +16 -0
  1166. package/src/themes/sap_horizon/parameters-bundle.css +57 -0
  1167. package/src/themes/sap_horizon/sizes-parameters.css +8 -0
  1168. package/src/themes/sap_horizon_exp/Badge-parameters.css +91 -0
  1169. package/src/themes/sap_horizon_exp/Button-parameters.css +12 -0
  1170. package/src/themes/sap_horizon_exp/CalendarHeader-parameters.css +8 -0
  1171. package/src/themes/sap_horizon_exp/CheckBox-parameters.css +35 -0
  1172. package/src/themes/sap_horizon_exp/DatePicker-parameters.css +5 -0
  1173. package/src/themes/sap_horizon_exp/DayPicker-parameters.css +6 -0
  1174. package/src/themes/sap_horizon_exp/Input-parameters.css +46 -0
  1175. package/src/themes/sap_horizon_exp/InputIcon-parameters.css +9 -0
  1176. package/src/themes/sap_horizon_exp/Link-parameters.css +7 -0
  1177. package/src/themes/sap_horizon_exp/List-parameters.css +5 -0
  1178. package/src/themes/sap_horizon_exp/MonthPicker-parameters.css +5 -0
  1179. package/src/themes/sap_horizon_exp/MultiComboBox-parameters.css +7 -0
  1180. package/src/themes/sap_horizon_exp/Panel-parameters.css +6 -0
  1181. package/src/themes/sap_horizon_exp/Popover-parameters.css +5 -0
  1182. package/src/themes/sap_horizon_exp/RadioButton-parameters.css +30 -0
  1183. package/src/themes/sap_horizon_exp/Select-parameters.css +5 -0
  1184. package/src/themes/sap_horizon_exp/SliderBase-parameters.css +30 -0
  1185. package/src/themes/sap_horizon_exp/Switch-parameters.css +46 -0
  1186. package/src/themes/sap_horizon_exp/TabContainer-parameters.css +40 -0
  1187. package/src/themes/sap_horizon_exp/TimePicker-parameters.css +5 -0
  1188. package/src/themes/sap_horizon_exp/Token-parameters.css +9 -0
  1189. package/src/themes/sap_horizon_exp/WheelSlider-parameters.css +16 -0
  1190. package/src/themes/sap_horizon_exp/YearPicker-parameters.css +5 -0
  1191. package/src/themes/sap_horizon_exp/parameters-bundle.css +46 -0
  1192. package/src/timepicker-utils/TimeSlider.js +103 -0
  1193. package/src/types/AvatarColorScheme.js +104 -0
  1194. package/src/types/AvatarGroupType.js +43 -0
  1195. package/src/types/AvatarShape.js +41 -0
  1196. package/src/types/AvatarSize.js +67 -0
  1197. package/src/types/BreadcrumbsDesign.js +42 -0
  1198. package/src/types/BreadcrumbsSeparatorStyle.js +69 -0
  1199. package/src/types/BusyIndicatorSize.js +47 -0
  1200. package/src/types/ButtonDesign.js +68 -0
  1201. package/src/types/CalendarSelectionMode.js +47 -0
  1202. package/src/types/CarouselArrowsPlacement.js +40 -0
  1203. package/src/types/GrowingMode.js +48 -0
  1204. package/src/types/HasPopup.js +62 -0
  1205. package/src/types/InputType.js +68 -0
  1206. package/src/types/LinkDesign.js +47 -0
  1207. package/src/types/ListGrowingMode.js +15 -0
  1208. package/src/types/ListItemType.js +47 -0
  1209. package/src/types/ListMode.js +77 -0
  1210. package/src/types/ListSeparators.js +46 -0
  1211. package/src/types/MessageStripDesign.js +54 -0
  1212. package/src/types/PanelAccessibleRole.js +48 -0
  1213. package/src/types/PopoverHorizontalAlign.js +54 -0
  1214. package/src/types/PopoverPlacementType.js +54 -0
  1215. package/src/types/PopoverVerticalAlign.js +54 -0
  1216. package/src/types/Priority.js +55 -0
  1217. package/src/types/SemanticColor.js +61 -0
  1218. package/src/types/SwitchDesign.js +40 -0
  1219. package/src/types/TabContainerTabsPlacement.js +40 -0
  1220. package/src/types/TabLayout.js +40 -0
  1221. package/src/types/TableGrowingMode.js +15 -0
  1222. package/src/types/TableMode.js +47 -0
  1223. package/src/types/TableRowType.js +40 -0
  1224. package/src/types/TabsOverflowMode.js +40 -0
  1225. package/src/types/TitleLevel.js +68 -0
  1226. package/src/types/ToastPlacement.js +91 -0
  1227. package/src/types/WrappingType.js +41 -0
  1228. package/dist/Timeline.js +0 -97
  1229. package/dist/TimelineItem.js +0 -161
  1230. package/dist/generated/templates/ComboBoxItemTemplate.lit.js +0 -7
  1231. package/dist/generated/templates/DurationPickerPopoverTemplate.lit.js +0 -10
  1232. package/dist/generated/templates/DurationPickerTemplate.lit.js +0 -8
  1233. package/dist/generated/templates/TabSeparatorTemplate.lit.js +0 -7
  1234. package/dist/generated/templates/TimelineItemTemplate.lit.js +0 -12
  1235. package/dist/generated/templates/TimelineTemplate.lit.js +0 -8
  1236. package/dist/generated/themes/ComboBoxItem.css.js +0 -8
  1237. package/dist/generated/themes/DurationPicker.css.js +0 -8
  1238. package/dist/generated/themes/DurationPickerPopover.css.js +0 -8
  1239. package/dist/generated/themes/Timeline.css.js +0 -8
  1240. package/dist/generated/themes/TimelineItem.css.js +0 -8
  1241. package/dist/popup-utils/PopupUtils.js +0 -55
  1242. package/dist/types/AvatarFitType.js +0 -40
  1243. package/dist/webcomponentsjs/package.json +0 -46
package/dist/Input.js CHANGED
@@ -1,8 +1,7 @@
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 ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
4
- import RenderScheduler from "@ui5/webcomponents-base/dist/RenderScheduler.js";
5
- import { isIE, isPhone } from "@ui5/webcomponents-base/dist/Device.js";
4
+ import { isIE, isPhone, isSafari } from "@ui5/webcomponents-base/dist/Device.js";
6
5
  import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
7
6
  import { getFeature } from "@ui5/webcomponents-base/dist/FeaturesRegistry.js";
8
7
  import {
@@ -10,12 +9,28 @@ import {
10
9
  isDown,
11
10
  isSpace,
12
11
  isEnter,
12
+ isBackSpace,
13
+ isDelete,
14
+ isEscape,
15
+ isTabNext,
16
+ isPageUp,
17
+ isPageDown,
18
+ isHome,
19
+ isEnd,
13
20
  } from "@ui5/webcomponents-base/dist/Keys.js";
14
21
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
15
- import { fetchI18nBundle, getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
16
- import "@ui5/webcomponents-icons/dist/icons/decline.js";
22
+ import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
23
+ import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
24
+ import { getCaretPosition, setCaretPosition } from "@ui5/webcomponents-base/dist/util/Caret.js";
25
+ import "@ui5/webcomponents-icons/dist/decline.js";
26
+ import "@ui5/webcomponents-icons/dist/not-editable.js";
27
+ import "@ui5/webcomponents-icons/dist/error.js";
28
+ import "@ui5/webcomponents-icons/dist/alert.js";
29
+ import "@ui5/webcomponents-icons/dist/sys-enter-2.js";
30
+ import "@ui5/webcomponents-icons/dist/information.js";
17
31
  import InputType from "./types/InputType.js";
18
32
  import Popover from "./Popover.js";
33
+ import Icon from "./Icon.js";
19
34
  // Templates
20
35
  import InputTemplate from "./generated/templates/InputTemplate.lit.js";
21
36
  import InputPopoverTemplate from "./generated/templates/InputPopoverTemplate.lit.js";
@@ -27,25 +42,32 @@ import {
27
42
  VALUE_STATE_WARNING,
28
43
  INPUT_SUGGESTIONS,
29
44
  INPUT_SUGGESTIONS_TITLE,
45
+ INPUT_SUGGESTIONS_ONE_HIT,
46
+ INPUT_SUGGESTIONS_MORE_HITS,
47
+ INPUT_SUGGESTIONS_NO_HIT,
30
48
  } from "./generated/i18n/i18n-defaults.js";
31
49
 
32
50
  // Styles
33
51
  import styles from "./generated/themes/Input.css.js";
34
52
  import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverCommon.css.js";
35
53
  import ValueStateMessageCss from "./generated/themes/ValueStateMessage.css.js";
54
+ import SuggestionsCss from "./generated/themes/Suggestions.css.js";
55
+
56
+ const rgxFloat = new RegExp(/(\+|-)?\d+(\.|,)\d+/);
36
57
 
37
58
  /**
38
59
  * @public
39
60
  */
40
61
  const metadata = {
41
62
  tag: "ui5-input",
63
+ languageAware: true,
42
64
  managedSlots: true,
43
65
  slots: /** @lends sap.ui.webcomponents.main.Input.prototype */ {
44
66
 
45
67
  /**
46
- * Defines the icon to be displayed in the <code>ui5-input</code>.
68
+ * Defines the icon to be displayed in the component.
47
69
  *
48
- * @type {HTMLElement[]}
70
+ * @type {sap.ui.webcomponents.main.IIcon[]}
49
71
  * @slot
50
72
  * @public
51
73
  */
@@ -54,7 +76,7 @@ const metadata = {
54
76
  },
55
77
 
56
78
  /**
57
- * Defines the <code>ui5-input</code> suggestion items.
79
+ * Defines the suggestion items.
58
80
  * <br><br>
59
81
  * Example:
60
82
  * <br><br>
@@ -64,22 +86,27 @@ const metadata = {
64
86
  * &lt;/ui5-input>
65
87
  * <br>
66
88
  * <ui5-input show-suggestions>
89
+ * <ui5-suggestion-group-item text="Group #1"></ui5-suggestion-group-item>
67
90
  * <ui5-suggestion-item text="Item #1"></ui5-suggestion-item>
68
91
  * <ui5-suggestion-item text="Item #2"></ui5-suggestion-item>
92
+ * <ui5-suggestion-group-item text="Group #2"></ui5-suggestion-group-item>
93
+ * <ui5-suggestion-item text="Item #3"></ui5-suggestion-item>
94
+ * <ui5-suggestion-item text="Item #4"></ui5-suggestion-item>
69
95
  * </ui5-input>
70
96
  * <br><br>
71
- * <b>Note:</b> The suggestion would be displayed only if the <code>showSuggestions</code>
97
+ * <b>Note:</b> The suggestions would be displayed only if the <code>showSuggestions</code>
72
98
  * property is set to <code>true</code>.
73
99
  * <br><br>
74
- * <b>Note:</b> The &lt;ui5-suggestion-item> is recommended to be used as a suggestion item.
75
- * Importing the Input Suggestions Support feature:
100
+ * <b>Note:</b> The <code>&lt;ui5-suggestion-item&gt;</code> and <code>&lt;ui5-suggestion-group-item&gt;</code> are recommended to be used as suggestion items.
101
+ * <br><br>
102
+ * <b>Note:</b> Importing the Input Suggestions Support feature:
76
103
  * <br>
77
104
  * <code>import "@ui5/webcomponents/dist/features/InputSuggestions.js";</code>
78
105
  * <br>
79
- * also automatically imports the &lt;ui5-suggestion-item> for your convenience.
106
+ * automatically imports the <code>&lt;ui5-suggestion-item></code> and <code>&lt;ui5-suggestion-group-item></code> for your convenience.
80
107
  *
81
- * @type {HTMLElement[]}
82
- * @slot
108
+ * @type {sap.ui.webcomponents.main.IInputSuggestionItem[]}
109
+ * @slot suggestionItems
83
110
  * @public
84
111
  */
85
112
  "default": {
@@ -98,15 +125,15 @@ const metadata = {
98
125
  },
99
126
 
100
127
  /**
101
- * Defines the value state message that will be displayed as pop up under the <code>ui5-input</code>.
128
+ * Defines the value state message that will be displayed as pop up under the component.
102
129
  * <br><br>
103
130
  *
104
131
  * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.
105
- * <br>
132
+ * <br><br>
106
133
  * <b>Note:</b> The <code>valueStateMessage</code> would be displayed,
107
- * when the <code>ui5-input</code> is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
108
- * <br>
109
- * <b>Note:</b> If the <code>ui5-input</code> has <code>suggestionItems</code>,
134
+ * when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
135
+ * <br><br>
136
+ * <b>Note:</b> If the component has <code>suggestionItems</code>,
110
137
  * the <code>valueStateMessage</code> would be displayed as part of the same popover, if used on desktop, or dialog - on phone.
111
138
  * @type {HTMLElement[]}
112
139
  * @since 1.0.0-rc.6
@@ -120,9 +147,9 @@ const metadata = {
120
147
  properties: /** @lends sap.ui.webcomponents.main.Input.prototype */ {
121
148
 
122
149
  /**
123
- * Defines whether the <code>ui5-input</code> is in disabled state.
150
+ * Defines whether the component is in disabled state.
124
151
  * <br><br>
125
- * <b>Note:</b> A disabled <code>ui5-input</code> is completely noninteractive.
152
+ * <b>Note:</b> A disabled component is completely noninteractive.
126
153
  *
127
154
  * @type {boolean}
128
155
  * @defaultvalue false
@@ -132,9 +159,24 @@ const metadata = {
132
159
  type: Boolean,
133
160
  },
134
161
 
162
+ /**
163
+ * Defines if characters within the suggestions are to be highlighted
164
+ * in case the input value matches parts of the suggestions text.
165
+ * <br><br>
166
+ * <b>Note:</b> takes effect when <code>showSuggestions</code> is set to <code>true</code>
167
+ *
168
+ * @type {boolean}
169
+ * @defaultvalue false
170
+ * @private
171
+ * @sicne 1.0.0-rc.8
172
+ */
173
+ highlight: {
174
+ type: Boolean,
175
+ },
176
+
135
177
  /**
136
178
  * Defines a short hint intended to aid the user with data entry when the
137
- * <code>ui5-input</code> has no value.
179
+ * component has no value.
138
180
  * @type {string}
139
181
  * @defaultvalue ""
140
182
  * @public
@@ -144,9 +186,9 @@ const metadata = {
144
186
  },
145
187
 
146
188
  /**
147
- * Defines whether the <code>ui5-input</code> is read-only.
189
+ * Defines whether the component is read-only.
148
190
  * <br><br>
149
- * <b>Note:</b> A read-only <code>ui5-input</code> is not editable,
191
+ * <b>Note:</b> A read-only component is not editable,
150
192
  * but still provides visual feedback upon user interaction.
151
193
  *
152
194
  * @type {boolean}
@@ -158,7 +200,7 @@ const metadata = {
158
200
  },
159
201
 
160
202
  /**
161
- * Defines whether the <code>ui5-input</code> is required.
203
+ * Defines whether the component is required.
162
204
  *
163
205
  * @type {boolean}
164
206
  * @defaultvalue false
@@ -170,7 +212,7 @@ const metadata = {
170
212
  },
171
213
 
172
214
  /**
173
- * Defines the HTML type of the <code>ui5-input</code>.
215
+ * Defines the HTML type of the component.
174
216
  * Available options are: <code>Text</code>, <code>Email</code>,
175
217
  * <code>Number</code>, <code>Password</code>, <code>Tel</code>, and <code>URL</code>.
176
218
  * <br><br>
@@ -192,7 +234,7 @@ const metadata = {
192
234
  },
193
235
 
194
236
  /**
195
- * Defines the value of the <code>ui5-input</code>.
237
+ * Defines the value of the component.
196
238
  * <br><br>
197
239
  * <b>Note:</b> The property is updated upon typing.
198
240
  *
@@ -205,7 +247,7 @@ const metadata = {
205
247
  },
206
248
 
207
249
  /**
208
- * Defines the value state of the <code>ui5-input</code>.
250
+ * Defines the value state of the component.
209
251
  * <br><br>
210
252
  * Available options are:
211
253
  * <ul>
@@ -226,7 +268,7 @@ const metadata = {
226
268
  },
227
269
 
228
270
  /**
229
- * Determines the name with which the <code>ui5-input</code> will be submitted in an HTML form.
271
+ * Determines the name with which the component will be submitted in an HTML form.
230
272
  *
231
273
  * <br><br>
232
274
  * <b>Important:</b> For the <code>name</code> property to have effect, you must add the following import to your project:
@@ -234,7 +276,7 @@ const metadata = {
234
276
  *
235
277
  * <br><br>
236
278
  * <b>Note:</b> When set, a native <code>input</code> HTML element
237
- * will be created inside the <code>ui5-input</code> so that it can be submitted as
279
+ * will be created inside the component so that it can be submitted as
238
280
  * part of an HTML form. Do not use this property unless you need to submit a form.
239
281
  *
240
282
  * @type {string}
@@ -246,10 +288,10 @@ const metadata = {
246
288
  },
247
289
 
248
290
  /**
249
- * Defines whether the <code>ui5-input</code> should show suggestions, if such are present.
291
+ * Defines whether the component should show suggestions, if such are present.
250
292
  * <br><br>
251
- * <b>Note:</b>
252
- * Don`t forget to import the <code>InputSuggestions</code> module from <code>"@ui5/webcomponents/dist/features/InputSuggestions.js"</code> to enable this functionality.
293
+ * <b>Note:</b> You need to import the <code>InputSuggestions</code> module
294
+ * from <code>"@ui5/webcomponents/dist/features/InputSuggestions.js"</code> to enable this functionality.
253
295
  * @type {boolean}
254
296
  * @defaultvalue false
255
297
  * @public
@@ -269,6 +311,54 @@ const metadata = {
269
311
  type: Integer,
270
312
  },
271
313
 
314
+ /**
315
+ * Defines the accessible aria name of the component.
316
+ *
317
+ * @type {string}
318
+ * @public
319
+ * @since 1.0.0-rc.15
320
+ */
321
+ accessibleName: {
322
+ type: String,
323
+ },
324
+
325
+ /**
326
+ * Receives id(or many ids) of the elements that label the input.
327
+ *
328
+ * @type {string}
329
+ * @defaultvalue ""
330
+ * @public
331
+ * @since 1.0.0-rc.15
332
+ */
333
+ accessibleNameRef: {
334
+ type: String,
335
+ defaultValue: "",
336
+ },
337
+
338
+ /**
339
+ * Defines whether the clear icon of the input will be shown.
340
+ *
341
+ * @type {boolean}
342
+ * @defaultvalue false
343
+ * @public
344
+ * @since 1.2.0
345
+ */
346
+ showClearIcon: {
347
+ type: Boolean,
348
+ },
349
+
350
+ /**
351
+ * Defines whether the clear icon is visible.
352
+ *
353
+ * @type {boolean}
354
+ * @defaultvalue false
355
+ * @private
356
+ * @since 1.2.0
357
+ */
358
+ effectiveShowClearIcon: {
359
+ type: Boolean,
360
+ },
361
+
272
362
  /**
273
363
  * @private
274
364
  */
@@ -276,6 +366,22 @@ const metadata = {
276
366
  type: Boolean,
277
367
  },
278
368
 
369
+ openOnMobile: {
370
+ type: Boolean,
371
+ },
372
+
373
+ open: {
374
+ type: Boolean,
375
+ },
376
+
377
+ /**
378
+ * Indicates whether the visual focus is on the value state header
379
+ * @private
380
+ */
381
+ _isValueStateFocused: {
382
+ type: Boolean,
383
+ },
384
+
279
385
  _input: {
280
386
  type: Object,
281
387
  },
@@ -284,7 +390,7 @@ const metadata = {
284
390
  type: Object,
285
391
  },
286
392
 
287
- _wrapperAccInfo: {
393
+ _nativeInputAttributes: {
288
394
  type: Object,
289
395
  },
290
396
 
@@ -316,7 +422,7 @@ const metadata = {
316
422
  change: {},
317
423
 
318
424
  /**
319
- * Fired when the value of the <code>ui5-input</code> changes at each keystroke,
425
+ * Fired when the value of the component changes at each keystroke,
320
426
  * and when a suggestion item has been selected.
321
427
  *
322
428
  * @event
@@ -325,27 +431,48 @@ const metadata = {
325
431
  input: {},
326
432
 
327
433
  /**
328
- * Fired when user presses Enter key on the <code>ui5-input</code>.
329
- * <br><br>
330
- * <b>Note:</b> The event is fired independent of whether there was a change before or not.
331
- * If change was performed, the event is fired after the change event.
332
- * The event is also fired when an item of the select list is selected by pressing Enter.
434
+ * Fired when a suggestion item, that is displayed in the suggestion popup, is selected.
333
435
  *
334
- * @event
436
+ * @event sap.ui.webcomponents.main.Input#suggestion-item-select
437
+ * @param {HTMLElement} item The selected item.
335
438
  * @public
336
439
  */
337
- submit: {},
440
+ "suggestion-item-select": {
441
+ detail: {
442
+ item: { type: HTMLElement },
443
+ },
444
+ },
338
445
 
339
446
  /**
340
- * Fired when a suggestion item, that is displayed in the suggestion popup, is selected.
447
+ * Fired when the user navigates to a suggestion item via the ARROW keys,
448
+ * as a preview, before the final selection.
341
449
  *
342
- * @event
343
- * @param {HTMLElement} item The selected item
450
+ * @event sap.ui.webcomponents.main.Input#suggestion-item-preview
451
+ * @param {HTMLElement} item The previewed suggestion item.
452
+ * @param {HTMLElement} targetRef The DOM ref of the suggestion item.
344
453
  * @public
454
+ * @since 1.0.0-rc.8
345
455
  */
346
- suggestionItemSelect: {
456
+ "suggestion-item-preview": {
347
457
  detail: {
348
458
  item: { type: HTMLElement },
459
+ targetRef: { type: HTMLElement },
460
+ },
461
+ },
462
+
463
+ /**
464
+ * Fired when the user scrolls the suggestion popover.
465
+ *
466
+ * @event sap.ui.webcomponents.main.Input#suggestion-scroll
467
+ * @param {Integer} scrollTop The current scroll position.
468
+ * @param {HTMLElement} scrollContainer The scroll container.
469
+ * @protected
470
+ * @since 1.0.0-rc.8
471
+ */
472
+ "suggestion-scroll": {
473
+ detail: {
474
+ scrollTop: { type: Integer },
475
+ scrollContainer: { type: HTMLElement },
349
476
  },
350
477
  },
351
478
  },
@@ -361,7 +488,7 @@ const metadata = {
361
488
  * that are displayed in a popover right under the input.
362
489
  * <br><br>
363
490
  * The text field can be editable or read-only (<code>readonly</code> property),
364
- * and it can be enabled or disabled (<code>enabled</code> property).
491
+ * and it can be enabled or disabled (<code>disabled</code> property).
365
492
  * To visualize semantic states, such as "error" or "warning", the <code>valueState</code> property is provided.
366
493
  * When the user makes changes to the text, the change event is fired,
367
494
  * which enables you to react on any text change.
@@ -371,6 +498,21 @@ const metadata = {
371
498
  * "@ui5/webcomponents/dist/features/InputSuggestions.js"
372
499
  * to enable the suggestions functionality.
373
500
  *
501
+ * <h3>Keyboard Handling</h3>
502
+ * The <code>ui5-input</code> provides the following keyboard shortcuts:
503
+ * <br>
504
+ *
505
+ * <ul>
506
+ * <li>[ESC] - Closes the suggestion list, if open. If closed or not enabled, cancels changes and reverts to the value which the Input field had when it got the focus.</li>
507
+ * <li>[ENTER] or [RETURN] - If suggestion list is open takes over the current matching item and closes it. If value state or group header is focused, does nothing.</li>
508
+ * <li>[DOWN] - Focuses the next matching item in the suggestion list.</li>
509
+ * <li>[UP] - Focuses the previous matching item in the suggestion list.</li>
510
+ * <li>[HOME] - If focus is in the text input, moves caret before the first character. If focus is in the list, highlights the first item and updates the input accordingly.</li>
511
+ * <li>[END] - If focus is in the text input, moves caret after the last character. If focus is in the list, highlights the last item and updates the input accordingly.</li>
512
+ * <li>[PAGEUP] - If focus is in the list, moves highlight up by page size (10 items by default). If focus is in the input, does nothing.</li>
513
+ * <li>[PAGEDOWN] - If focus is in the list, moves highlight down by page size (10 items by default). If focus is in the input, does nothing.</li>
514
+ * </ul>
515
+ *
374
516
  * <h3>ES6 Module Import</h3>
375
517
  *
376
518
  * <code>import "@ui5/webcomponents/dist/Input.js";</code>
@@ -382,7 +524,8 @@ const metadata = {
382
524
  * @alias sap.ui.webcomponents.main.Input
383
525
  * @extends sap.ui.webcomponents.base.UI5Element
384
526
  * @tagname ui5-input
385
- * @appenddocs SuggestionItem
527
+ * @appenddocs SuggestionItem SuggestionGroupItem
528
+ * @implements sap.ui.webcomponents.main.IInput
386
529
  * @public
387
530
  */
388
531
  class Input extends UI5Element {
@@ -407,7 +550,7 @@ class Input extends UI5Element {
407
550
  }
408
551
 
409
552
  static get staticAreaStyles() {
410
- return [ResponsivePopoverCommonCss, ValueStateMessageCss];
553
+ return [ResponsivePopoverCommonCss, ValueStateMessageCss, SuggestionsCss];
411
554
  }
412
555
 
413
556
  constructor() {
@@ -415,22 +558,45 @@ class Input extends UI5Element {
415
558
  // Indicates if there is selected suggestionItem.
416
559
  this.hasSuggestionItemSelected = false;
417
560
 
418
- // Represents the value before user moves selection between the suggestion items.
419
- // Used to register and fire "input" event upon [SPACE] or [ENTER].
420
- // Note: the property "value" is updated upon selection move and can`t be used.
561
+ // Represents the value before user moves selection from suggestion item to another
562
+ // and its value is updated after each move.
563
+ // Note: Used to register and fire "input" event upon [SPACE] or [ENTER].
564
+ // Note: The property "value" is updated upon selection move and can`t be used.
421
565
  this.valueBeforeItemSelection = "";
422
566
 
567
+ // Represents the value before user moves selection between the suggestion items
568
+ // and its value remains the same when the user navigates up or down the list.
569
+ // Note: Used to cancel selection upon [ESC].
570
+ this.valueBeforeItemPreview = "";
571
+
572
+ // Indicates if the user selection has been canceled with [ESC].
573
+ this.suggestionSelectionCanceled = false;
574
+
575
+ // Indicates if the change event has already been fired
576
+ this._changeFiredValue = null;
577
+
423
578
  // tracks the value between focus in and focus out to detect that change event should be fired.
424
579
  this.previousValue = undefined;
425
580
 
426
581
  // Indicates, if the component is rendering for first time.
427
582
  this.firstRendering = true;
428
583
 
584
+ // The value that should be highlited.
585
+ this.highlightValue = "";
586
+
587
+ // The last value confirmed by the user with "ENTER"
588
+ this.lastConfirmedValue = "";
589
+
590
+ // Indicates, if the user pressed the BACKSPACE key.
591
+ this._backspaceKeyDown = false;
592
+
593
+ // Indicates, if the user is typing. Gets reset once popup is closed
594
+ this.isTyping = false;
595
+
429
596
  // all sementic events
430
- this.EVENT_SUBMIT = "submit";
431
597
  this.EVENT_CHANGE = "change";
432
598
  this.EVENT_INPUT = "input";
433
- this.EVENT_SUGGESTION_ITEM_SELECT = "suggestionItemSelect";
599
+ this.EVENT_SUGGESTION_ITEM_SELECT = "suggestion-item-select";
434
600
 
435
601
  // all user interactions
436
602
  this.ACTION_ENTER = "enter";
@@ -439,8 +605,6 @@ class Input extends UI5Element {
439
605
  // Suggestions array initialization
440
606
  this.suggestionsTexts = [];
441
607
 
442
- this.i18nBundle = getI18nBundle("@ui5/webcomponents");
443
-
444
608
  this._handleResizeBound = this._handleResize.bind(this);
445
609
  }
446
610
 
@@ -455,10 +619,22 @@ class Input extends UI5Element {
455
619
  onBeforeRendering() {
456
620
  if (this.showSuggestions) {
457
621
  this.enableSuggestions();
458
- this.suggestionsTexts = this.Suggestions.defaultSlotProperties();
622
+ this.suggestionsTexts = this.Suggestions.defaultSlotProperties(this.highlightValue);
459
623
  }
460
624
 
625
+ this.effectiveShowClearIcon = (this.showClearIcon && !!this.value && !this.readonly && !this.disabled);
626
+
461
627
  const FormSupport = getFeature("FormSupport");
628
+ const hasItems = this.suggestionItems.length;
629
+ const hasValue = !!this.value;
630
+ const isFocused = this === document.activeElement;
631
+
632
+ if (this._isPhone) {
633
+ this.open = this.openOnMobile;
634
+ } else {
635
+ this.open = hasValue && hasItems && isFocused && this.isTyping;
636
+ }
637
+
462
638
  if (FormSupport) {
463
639
  FormSupport.syncNativeHiddenInput(this);
464
640
  } else if (this.name) {
@@ -466,28 +642,20 @@ class Input extends UI5Element {
466
642
  }
467
643
  }
468
644
 
469
- onAfterRendering() {
470
- if (!this.firstRendering && !isPhone() && this.Suggestions) {
471
- const shouldOpenSuggestions = this.shouldOpenSuggestions();
472
-
473
- this.updateStaticAreaItemContentDensity();
474
- this.Suggestions.toggle(shouldOpenSuggestions);
475
-
476
- RenderScheduler.whenFinished().then(async () => {
477
- this._listWidth = await this.Suggestions._getListWidth();
645
+ async onAfterRendering() {
646
+ if (this.Suggestions) {
647
+ this.Suggestions.toggle(this.open, {
648
+ preventFocusRestore: true,
478
649
  });
479
650
 
480
- if (!isPhone() && shouldOpenSuggestions) {
481
- // Set initial focus to the native input
482
- this.inputDomRef && this.inputDomRef.focus();
483
- }
651
+ this._listWidth = await this.Suggestions._getListWidth();
484
652
  }
485
653
 
486
- if (!this.firstRendering && this.hasValueStateMessage) {
487
- this.toggle(this.shouldDisplayOnlyValueStateMessage);
654
+ if (this.shouldDisplayOnlyValueStateMessage) {
655
+ this.openPopover();
656
+ } else {
657
+ this.closePopover();
488
658
  }
489
-
490
- this.firstRendering = false;
491
659
  }
492
660
 
493
661
  _onkeydown(event) {
@@ -503,15 +671,54 @@ class Input extends UI5Element {
503
671
  return this._handleSpace(event);
504
672
  }
505
673
 
674
+ if (isTabNext(event)) {
675
+ return this._handleTab(event);
676
+ }
677
+
506
678
  if (isEnter(event)) {
507
679
  return this._handleEnter(event);
508
680
  }
509
681
 
682
+ if (isPageUp(event)) {
683
+ return this._handlePageUp(event);
684
+ }
685
+
686
+ if (isPageDown(event)) {
687
+ return this._handlePageDown(event);
688
+ }
689
+
690
+ if (isHome(event)) {
691
+ return this._handleHome(event);
692
+ }
693
+
694
+ if (isEnd(event)) {
695
+ return this._handleEnd(event);
696
+ }
697
+
698
+ if (isEscape(event)) {
699
+ return this._handleEscape(event);
700
+ }
701
+
702
+ if (isBackSpace(event)) {
703
+ this._backspaceKeyDown = true;
704
+ this._selectedText = window.getSelection().toString();
705
+ }
706
+
707
+ if (this.showSuggestions) {
708
+ this._clearPopoverFocusAndSelection();
709
+ }
710
+
510
711
  this._keyDown = true;
511
712
  }
512
713
 
513
714
  _onkeyup(event) {
715
+ // The native Delete event does not update the value property "on time". So, the (native) change event is always fired with the old value
716
+ if (isDelete(event)) {
717
+ this.value = event.target.value;
718
+ }
719
+
514
720
  this._keyDown = false;
721
+ this._backspaceKeyDown = false;
515
722
  }
516
723
 
517
724
  /* Event handling */
@@ -533,28 +740,97 @@ class Input extends UI5Element {
533
740
  }
534
741
  }
535
742
 
743
+ _handleTab(event) {
744
+ if (this.Suggestions && (this.previousValue !== this.value)) {
745
+ this.Suggestions.onTab(event);
746
+ }
747
+ }
748
+
536
749
  _handleEnter(event) {
537
750
  const itemPressed = !!(this.Suggestions && this.Suggestions.onEnter(event));
751
+
538
752
  if (!itemPressed) {
539
753
  this.fireEventByAction(this.ACTION_ENTER);
754
+ this.lastConfirmedValue = this.value;
755
+ return;
756
+ }
757
+
758
+ this.focused = true;
759
+ }
760
+
761
+ _handlePageUp(event) {
762
+ if (this._isSuggestionsFocused) {
763
+ this.Suggestions.onPageUp(event);
764
+ } else {
765
+ event.preventDefault();
766
+ }
767
+ }
768
+
769
+ _handlePageDown(event) {
770
+ if (this._isSuggestionsFocused) {
771
+ this.Suggestions.onPageDown(event);
772
+ } else {
773
+ event.preventDefault();
774
+ }
775
+ }
776
+
777
+ _handleHome(event) {
778
+ if (this._isSuggestionsFocused) {
779
+ this.Suggestions.onHome(event);
780
+ }
781
+ }
782
+
783
+ _handleEnd(event) {
784
+ if (this._isSuggestionsFocused) {
785
+ this.Suggestions.onEnd(event);
786
+ }
787
+ }
788
+
789
+ _handleEscape() {
790
+ const hasSuggestions = this.showSuggestions && !!this.Suggestions;
791
+ const isOpen = hasSuggestions && this.open;
792
+
793
+ if (!isOpen) {
794
+ this.value = this.lastConfirmedValue ? this.lastConfirmedValue : this.previousValue;
795
+ return;
796
+ }
797
+
798
+ if (hasSuggestions && isOpen && this.Suggestions._isItemOnTarget()) {
799
+ // Restore the value.
800
+ this.value = this.valueBeforeItemPreview;
801
+
802
+ // Mark that the selection has been canceled, so the popover can close
803
+ // and not reopen, due to receiving focus.
804
+ this.suggestionSelectionCanceled = true;
805
+ this.focused = true;
806
+ }
807
+
808
+ if (this._isValueStateFocused) {
809
+ this._isValueStateFocused = false;
810
+ this.focused = true;
540
811
  }
541
812
  }
542
813
 
543
814
  async _onfocusin(event) {
815
+ await this.getInputDOMRef();
816
+
544
817
  this.focused = true; // invalidating property
545
818
  this.previousValue = this.value;
819
+ this.valueBeforeItemPreview = this.value;
546
820
 
547
- await this.getInputDOMRef();
548
- this._inputIconFocused = event.target && event.target === this.querySelector("ui5-icon");
821
+ this._inputIconFocused = event.target && event.target === this.querySelector("[ui5-icon]");
549
822
  }
550
823
 
551
824
  _onfocusout(event) {
552
825
  const focusedOutToSuggestions = this.Suggestions && event.relatedTarget && event.relatedTarget.shadowRoot && event.relatedTarget.shadowRoot.contains(this.Suggestions.responsivePopover);
553
826
  const focusedOutToValueStateMessage = event.relatedTarget && event.relatedTarget.shadowRoot && event.relatedTarget.shadowRoot.querySelector(".ui5-valuestatemessage-root");
554
827
 
828
+ this._preventNextChange = this.effectiveShowClearIcon && this.shadowRoot.contains(event.relatedTarget);
829
+
555
830
  // if focusout is triggered by pressing on suggestion item or value state message popover, skip invalidation, because re-rendering
556
831
  // will happen before "itemPress" event, which will make item "active" state not visualized
557
- if (focusedOutToSuggestions || focusedOutToValueStateMessage) {
832
+ if (focusedOutToSuggestions || focusedOutToValueStateMessage) {
833
+ event.stopImmediatePropagation();
558
834
  return;
559
835
  }
560
836
 
@@ -564,29 +840,118 @@ class Input extends UI5Element {
564
840
  return;
565
841
  }
566
842
 
567
- if (this.popover) {
568
- this.popover.close(false, false, true);
569
- }
843
+ this.open = false;
844
+ this._clearPopoverFocusAndSelection();
570
845
 
571
846
  this.previousValue = "";
847
+ this.lastConfirmedValue = "";
572
848
  this.focused = false; // invalidating property
849
+ this.isTyping = false;
850
+ }
851
+
852
+ _clearPopoverFocusAndSelection() {
853
+ if (!this.showSuggestions || !this.Suggestions) {
854
+ return;
855
+ }
856
+
857
+ this._isValueStateFocused = false;
858
+ this.hasSuggestionItemSelected = false;
859
+
860
+ this.Suggestions._deselectItems();
861
+ this.Suggestions._clearItemFocus();
573
862
  }
574
863
 
575
864
  _click(event) {
576
865
  if (isPhone() && !this.readonly && this.Suggestions) {
577
- this.updateStaticAreaItemContentDensity();
578
- this.Suggestions.open(this);
579
- this.isRespPopoverOpen = true;
866
+ this.blur();
867
+ this.openOnMobile = true;
580
868
  }
581
869
  }
582
870
 
583
- _handleChange(event) {
584
- this.fireEvent(this.EVENT_CHANGE);
871
+ _handleNativeInputChange() {
872
+ // The native change sometimes fires too early and getting input's value in the listener would return
873
+ // the previous value instead of the most recent one. This would make things consistent.
874
+ clearTimeout(this._nativeChangeDebounce);
875
+ this._nativeChangeDebounce = setTimeout(() => this._handleChange(), 100);
585
876
  }
586
877
 
587
- async _handleInput(event) {
588
- await this.getInputDOMRef();
589
- if (event.target === this.inputDomRef) {
878
+ _handleChange() {
879
+ if (this._preventNextChange) {
880
+ this._preventNextChange = false;
881
+ return;
882
+ }
883
+
884
+ if (this._changeFiredValue !== this.value) {
885
+ this._changeFiredValue = this.value;
886
+ this.fireEvent(this.EVENT_CHANGE);
887
+ }
888
+ }
889
+
890
+ _clear() {
891
+ this.value = "";
892
+ this.fireEvent(this.EVENT_INPUT);
893
+ this._handleChange();
894
+
895
+ if (!this._isPhone) {
896
+ this.focus();
897
+ }
898
+ }
899
+
900
+ _scroll(event) {
901
+ const detail = event.detail;
902
+ this.fireEvent("suggestion-scroll", {
903
+ scrollTop: detail.scrollTop,
904
+ scrollContainer: detail.targetRef,
905
+ });
906
+ }
907
+
908
+ _handleInput(event) {
909
+ const inputDomRef = this.getInputDOMRefSync();
910
+ const emptyValueFiredOnNumberInput = this.value && this.isTypeNumber && !inputDomRef.value;
911
+
912
+ this.suggestionSelectionCanceled = false;
913
+
914
+ if (emptyValueFiredOnNumberInput && !this._backspaceKeyDown) {
915
+ // For input with type="Number", if the delimiter is entered second time,
916
+ // the inner input is firing event with empty value
917
+ return;
918
+ }
919
+
920
+ if (emptyValueFiredOnNumberInput && this._backspaceKeyDown) {
921
+ // Issue: when the user removes the character(s) after the delimeter of numeric Input,
922
+ // the native input is firing event with an empty value and we have to manually handle this case,
923
+ // otherwise the entire input will be cleared as we sync the "value".
924
+
925
+ // There are tree scenarios:
926
+ // Example: type "123.4" and press BACKSPACE - the native input is firing event with empty value.
927
+ // Example: type "123.456", select/mark "456" and press BACKSPACE - the native input is firing event with empty value.
928
+ // Example: type "123.456", select/mark "123.456" and press BACKSPACE - the native input is firing event with empty value,
929
+ // but this time that's really the case.
930
+
931
+ // Perform manual handling in case of floating number
932
+ // and if the user did not select the entire input value
933
+ if (this._selectedText.indexOf(",") > -1) {
934
+ this._selectedText = this._selectedText.replace(",", ".");
935
+ }
936
+
937
+ if (rgxFloat.test(this.value) && this._selectedText !== this.value) {
938
+ const newValue = this.removeFractionalPart(this.value);
939
+
940
+ // update state
941
+ this.value = newValue;
942
+ this.highlightValue = newValue;
943
+ this.valueBeforeItemPreview = newValue;
944
+
945
+ // fire events
946
+ this.fireEvent(this.EVENT_INPUT);
947
+ this.fireEvent("value-changed");
948
+ return;
949
+ }
950
+ }
951
+
952
+ if (event.target === inputDomRef) {
953
+ this.focused = true;
954
+
590
955
  // stop the native event, as the semantic "input" would be fired.
591
956
  event.stopImmediatePropagation();
592
957
  }
@@ -595,75 +960,75 @@ class Input extends UI5Element {
595
960
  - value of the host and the internal input should be differnt in case of actual input
596
961
  - input is called when a key is pressed => keyup should not be called yet
597
962
  */
598
- const skipFiring = (this.inputDomRef.value === this.value) && isIE() && !this._keyDown && !!this.placeholder;
963
+ const skipFiring = (inputDomRef.value === this.value) && isIE() && !this._keyDown && !!this.placeholder;
599
964
 
600
965
  !skipFiring && this.fireEventByAction(this.ACTION_USER_INPUT);
601
966
 
602
967
  this.hasSuggestionItemSelected = false;
968
+ this._isValueStateFocused = false;
603
969
 
604
970
  if (this.Suggestions) {
605
971
  this.Suggestions.updateSelectedItemPosition(null);
606
972
  }
973
+
974
+ this.isTyping = true;
607
975
  }
608
976
 
609
977
  _handleResize() {
610
978
  this._inputWidth = this.offsetWidth;
611
979
  }
612
980
 
613
- _closeRespPopover() {
614
- this.Suggestions.close();
981
+ _closeRespPopover(preventFocusRestore) {
982
+ this.Suggestions.close(preventFocusRestore);
615
983
  }
616
984
 
617
985
  async _afterOpenPopover() {
618
986
  // Set initial focus to the native input
619
987
  if (isPhone()) {
620
- await this.getInputDOMRef();
621
- this.inputDomRef.focus();
988
+ (await this.getInputDOMRef()).focus();
622
989
  }
623
990
  }
624
991
 
625
992
  _afterClosePopover() {
626
- this._announceSelectedItem();
993
+ this.announceSelectedItem();
627
994
 
628
995
  // close device's keyboard and prevent further typing
629
996
  if (isPhone()) {
630
997
  this.blur();
998
+ this.focused = false;
631
999
  }
632
- }
633
1000
 
634
- toggle(isToggled) {
635
- if (isToggled && !this.isRespPopoverOpen) {
636
- this.openPopover();
637
- } else {
638
- this.closePopover();
639
- }
1001
+ this.isTyping = false;
1002
+ this.openOnMobile = false;
1003
+ this.open = false;
640
1004
  }
641
1005
 
642
1006
  /**
643
- * Checks if the popover is open.
644
- * @returns {Boolean} true if the popover is open, false otherwise
645
- * @public
1007
+ * Checks if the value state popover is open.
1008
+ * @returns {boolean} true if the value state popover is open, false otherwise
646
1009
  */
647
- isOpen() {
1010
+ isValueStateOpened() {
648
1011
  return !!this._isPopoverOpen;
649
1012
  }
650
1013
 
651
1014
  async openPopover() {
652
- this._isPopoverOpen = true;
653
- this.popover = await this._getPopover();
654
- this.popover.openBy(this);
655
- }
1015
+ const popover = await this._getPopover();
656
1016
 
657
- closePopover() {
658
- if (this.isOpen()) {
659
- this._isPopoverOpen = false;
660
- this.popover.close();
1017
+ if (popover) {
1018
+ this._isPopoverOpen = true;
1019
+ popover.showAt(this);
661
1020
  }
662
1021
  }
663
1022
 
1023
+ async closePopover() {
1024
+ const popover = await this._getPopover();
1025
+
1026
+ popover && popover.close();
1027
+ }
1028
+
664
1029
  async _getPopover() {
665
1030
  const staticAreaItem = await this.getStaticAreaItemDomRef();
666
- return staticAreaItem.querySelector("ui5-popover");
1031
+ return staticAreaItem && staticAreaItem.querySelector("[ui5-popover]");
667
1032
  }
668
1033
 
669
1034
  enableSuggestions() {
@@ -672,20 +1037,14 @@ class Input extends UI5Element {
672
1037
  }
673
1038
 
674
1039
  const Suggestions = getFeature("InputSuggestions");
1040
+
675
1041
  if (Suggestions) {
676
- this.Suggestions = new Suggestions(this, "suggestionItems");
1042
+ this.Suggestions = new Suggestions(this, "suggestionItems", true);
677
1043
  } else {
678
1044
  throw new Error(`You have to import "@ui5/webcomponents/dist/features/InputSuggestions.js" module to use ui5-input suggestions`);
679
1045
  }
680
1046
  }
681
1047
 
682
- shouldOpenSuggestions() {
683
- return !!(this.suggestionItems.length
684
- && this.focused
685
- && this.showSuggestions
686
- && !this.hasSuggestionItemSelected);
687
- }
688
-
689
1048
  selectSuggestion(item, keyboardUsed) {
690
1049
  if (item.group) {
691
1050
  return;
@@ -696,20 +1055,53 @@ class Input extends UI5Element {
696
1055
  ? this.valueBeforeItemSelection !== itemText : this.value !== itemText;
697
1056
 
698
1057
  this.hasSuggestionItemSelected = true;
699
- this.fireEvent(this.EVENT_SUGGESTION_ITEM_SELECT, { item });
700
1058
 
701
1059
  if (fireInput) {
702
1060
  this.value = itemText;
703
1061
  this.valueBeforeItemSelection = itemText;
1062
+ this.lastConfirmedValue = itemText;
704
1063
  this.fireEvent(this.EVENT_INPUT);
705
- this.fireEvent(this.EVENT_CHANGE);
1064
+ this._handleChange();
706
1065
  }
1066
+
1067
+ this.valueBeforeItemPreview = "";
1068
+ this.suggestionSelectionCanceled = false;
1069
+
1070
+ this.fireEvent(this.EVENT_SUGGESTION_ITEM_SELECT, { item });
1071
+
1072
+ this.isTyping = false;
1073
+ this.openOnMobile = false;
707
1074
  }
708
1075
 
709
1076
  previewSuggestion(item) {
710
1077
  this.valueBeforeItemSelection = this.value;
711
- this.value = item.group ? "" : item.textContent;
712
- this._announceSelectedItem();
1078
+ this.updateValueOnPreview(item);
1079
+ this.announceSelectedItem();
1080
+ this._previewItem = item;
1081
+ }
1082
+
1083
+ /**
1084
+ * Updates the input value on item preview.
1085
+ * @param {Object} item The item that is on preview
1086
+ */
1087
+ updateValueOnPreview(item) {
1088
+ const noPreview = item.type === "Inactive" || item.group;
1089
+ const itemValue = noPreview ? this.valueBeforeItemPreview : (item.effectiveTitle || item.textContent);
1090
+ this.value = itemValue;
1091
+ }
1092
+
1093
+ /**
1094
+ * The suggestion item on preview.
1095
+ * @type { sap.ui.webcomponents.main.IInputSuggestionItem }
1096
+ * @readonly
1097
+ * @public
1098
+ */
1099
+ get previewItem() {
1100
+ if (!this._previewItem) {
1101
+ return null;
1102
+ }
1103
+
1104
+ return this.getSuggestionByListItem(this._previewItem);
713
1105
  }
714
1106
 
715
1107
  async fireEventByAction(action) {
@@ -719,11 +1111,23 @@ class Input extends UI5Element {
719
1111
  return;
720
1112
  }
721
1113
 
722
- const inputValue = this.getInputValue();
723
- const isSubmit = action === this.ACTION_ENTER;
1114
+ const inputValue = await this.getInputValue();
724
1115
  const isUserInput = action === this.ACTION_USER_INPUT;
725
1116
 
1117
+ const input = await this.getInputDOMRef();
1118
+ const cursorPosition = input.selectionStart;
1119
+
726
1120
  this.value = inputValue;
1121
+ this.highlightValue = inputValue;
1122
+ this.valueBeforeItemPreview = inputValue;
1123
+
1124
+ if (isSafari()) {
1125
+ // When setting the value by hand, Safari moves the cursor when typing in the middle of the text (See #1761)
1126
+ setTimeout(() => {
1127
+ input.selectionStart = cursorPosition;
1128
+ input.selectionEnd = cursorPosition;
1129
+ }, 0);
1130
+ }
727
1131
 
728
1132
  if (isUserInput) { // input
729
1133
  this.fireEvent(this.EVENT_INPUT);
@@ -732,45 +1136,74 @@ class Input extends UI5Element {
732
1136
  return;
733
1137
  }
734
1138
 
735
- if (isSubmit) { // submit
736
- this.fireEvent(this.EVENT_SUBMIT);
737
- }
738
-
739
1139
  // In IE, pressing the ENTER does not fire change
740
1140
  const valueChanged = (this.previousValue !== undefined) && (this.previousValue !== this.value);
741
- if (isIE() && isSubmit && valueChanged) {
742
- this.fireEvent(this.EVENT_CHANGE);
1141
+ if (isIE() && action === this.ACTION_ENTER && valueChanged) {
1142
+ this._handleChange();
743
1143
  }
744
1144
  }
745
1145
 
746
- getInputValue() {
747
- const inputDOM = this.getDomRef();
748
- if (inputDOM) {
749
- return this.inputDomRef.value;
1146
+ async getInputValue() {
1147
+ const domRef = this.getDomRef();
1148
+
1149
+ if (domRef) {
1150
+ return (await this.getInputDOMRef()).value;
750
1151
  }
751
1152
  return "";
752
1153
  }
753
1154
 
754
1155
  async getInputDOMRef() {
755
- let inputDomRef;
756
-
757
1156
  if (isPhone() && this.Suggestions) {
758
- await this.Suggestions._respPopover();
759
- inputDomRef = this.Suggestions && this.Suggestions.responsivePopover.querySelector(".ui5-input-inner-phone");
1157
+ await this.Suggestions._getSuggestionPopover();
1158
+ return this.Suggestions && this.Suggestions.responsivePopover.querySelector(".ui5-input-inner-phone");
760
1159
  }
761
1160
 
762
- if (!inputDomRef) {
763
- inputDomRef = this.getDomRef().querySelector(`#${this.getInputId()}`);
1161
+ return this.nativeInput;
1162
+ }
1163
+
1164
+ getInputDOMRefSync() {
1165
+ if (isPhone() && this.Suggestions) {
1166
+ return this.Suggestions && this.Suggestions.responsivePopover.querySelector(".ui5-input-inner-phone");
764
1167
  }
765
1168
 
766
- this.inputDomRef = inputDomRef;
767
- return this.inputDomRef;
1169
+ return this.nativeInput;
1170
+ }
1171
+
1172
+ /**
1173
+ * Returns a reference to the native input element
1174
+ * @protected
1175
+ */
1176
+ get nativeInput() {
1177
+ return this.getDomRef() && this.getDomRef().querySelector(`input`);
1178
+ }
1179
+
1180
+ get nativeInputWidth() {
1181
+ return this.nativeInput && this.nativeInput.offsetWidth;
768
1182
  }
769
1183
 
770
1184
  getLabelableElementId() {
771
1185
  return this.getInputId();
772
1186
  }
773
1187
 
1188
+ getSuggestionByListItem(item) {
1189
+ const key = parseInt(item.getAttribute("data-ui5-key"));
1190
+ return this.suggestionItems[key];
1191
+ }
1192
+
1193
+ /**
1194
+ * Returns if the suggestions popover is scrollable.
1195
+ * The method returns <code>Promise</code> that resolves to true,
1196
+ * if the popup is scrollable and false otherwise.
1197
+ * @returns {Promise}
1198
+ */
1199
+ isSuggestionsScrollable() {
1200
+ if (!this.Suggestions) {
1201
+ return Promise.resolve(false);
1202
+ }
1203
+
1204
+ return this.Suggestions._isScrollable();
1205
+ }
1206
+
774
1207
  getInputId() {
775
1208
  return `${this._id}-inner`;
776
1209
  }
@@ -778,12 +1211,38 @@ class Input extends UI5Element {
778
1211
  /* Suggestions interface */
779
1212
  onItemFocused() {}
780
1213
 
1214
+ onItemMouseOver(event) {
1215
+ const item = event.target;
1216
+ const suggestion = this.getSuggestionByListItem(item);
1217
+ suggestion && suggestion.fireEvent("mouseover", {
1218
+ item: suggestion,
1219
+ targetRef: item,
1220
+ });
1221
+ }
1222
+
1223
+ onItemMouseOut(event) {
1224
+ const item = event.target;
1225
+ const suggestion = this.getSuggestionByListItem(item);
1226
+ suggestion && suggestion.fireEvent("mouseout", {
1227
+ item: suggestion,
1228
+ targetRef: item,
1229
+ });
1230
+ }
1231
+
1232
+ onItemMouseDown(event) {
1233
+ event.preventDefault();
1234
+ }
1235
+
781
1236
  onItemSelected(item, keyboardUsed) {
782
1237
  this.selectSuggestion(item, keyboardUsed);
783
1238
  }
784
1239
 
785
1240
  onItemPreviewed(item) {
786
1241
  this.previewSuggestion(item);
1242
+ this.fireEvent("suggestion-item-preview", {
1243
+ item: this.getSuggestionByListItem(item),
1244
+ targetRef: item,
1245
+ });
787
1246
  }
788
1247
 
789
1248
  onOpen() {}
@@ -791,17 +1250,15 @@ class Input extends UI5Element {
791
1250
  onClose() {}
792
1251
 
793
1252
  valueStateTextMappings() {
794
- const i18nBundle = this.i18nBundle;
795
-
796
1253
  return {
797
- "Success": i18nBundle.getText(VALUE_STATE_SUCCESS),
798
- "Information": i18nBundle.getText(VALUE_STATE_INFORMATION),
799
- "Error": i18nBundle.getText(VALUE_STATE_ERROR),
800
- "Warning": i18nBundle.getText(VALUE_STATE_WARNING),
1254
+ "Success": Input.i18nBundle.getText(VALUE_STATE_SUCCESS),
1255
+ "Information": Input.i18nBundle.getText(VALUE_STATE_INFORMATION),
1256
+ "Error": Input.i18nBundle.getText(VALUE_STATE_ERROR),
1257
+ "Warning": Input.i18nBundle.getText(VALUE_STATE_WARNING),
801
1258
  };
802
1259
  }
803
1260
 
804
- _announceSelectedItem() {
1261
+ announceSelectedItem() {
805
1262
  const invisibleText = this.shadowRoot.querySelector(`#${this._id}-selectionText`);
806
1263
 
807
1264
  if (this.Suggestions && this.Suggestions._isItemOnTarget()) {
@@ -816,13 +1273,17 @@ class Input extends UI5Element {
816
1273
  }
817
1274
 
818
1275
  get _headerTitleText() {
819
- return this.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
1276
+ return Input.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
820
1277
  }
821
1278
 
822
1279
  get inputType() {
823
1280
  return this.type.toLowerCase();
824
1281
  }
825
1282
 
1283
+ get isTypeNumber() {
1284
+ return this.type === InputType.Number;
1285
+ }
1286
+
826
1287
  get suggestionsTextId() {
827
1288
  return this.showSuggestions ? `${this._id}-suggestionsText` : "";
828
1289
  }
@@ -834,30 +1295,57 @@ class Input extends UI5Element {
834
1295
  get accInfo() {
835
1296
  const ariaHasPopupDefault = this.showSuggestions ? "true" : undefined;
836
1297
  const ariaAutoCompleteDefault = this.showSuggestions ? "list" : undefined;
1298
+ const ariaDescribedBy = this._inputAccInfo.ariaDescribedBy ? `${this.suggestionsTextId} ${this.valueStateTextId} ${this._inputAccInfo.ariaDescribedBy}`.trim() : `${this.suggestionsTextId} ${this.valueStateTextId}`.trim();
1299
+
837
1300
  return {
838
- "wrapper": {
839
- },
840
1301
  "input": {
841
- "ariaDescribedBy": this._inputAccInfo.ariaDescribedBy ? `${this.suggestionsTextId} ${this.valueStateTextId} ${this._inputAccInfo.ariaDescribedBy}`.trim() : `${this.suggestionsTextId} ${this.valueStateTextId}`.trim(),
1302
+ "ariaRoledescription": this._inputAccInfo && (this._inputAccInfo.ariaRoledescription || undefined),
1303
+ "ariaDescribedBy": ariaDescribedBy || undefined,
842
1304
  "ariaInvalid": this.valueState === ValueState.Error ? "true" : undefined,
843
1305
  "ariaHasPopup": this._inputAccInfo.ariaHasPopup ? this._inputAccInfo.ariaHasPopup : ariaHasPopupDefault,
844
1306
  "ariaAutoComplete": this._inputAccInfo.ariaAutoComplete ? this._inputAccInfo.ariaAutoComplete : ariaAutoCompleteDefault,
845
1307
  "role": this._inputAccInfo && this._inputAccInfo.role,
846
- "ariaOwns": this._inputAccInfo && this._inputAccInfo.ariaOwns,
1308
+ "ariaControls": this._inputAccInfo && this._inputAccInfo.ariaControls,
847
1309
  "ariaExpanded": this._inputAccInfo && this._inputAccInfo.ariaExpanded,
848
1310
  "ariaDescription": this._inputAccInfo && this._inputAccInfo.ariaDescription,
1311
+ "ariaLabel": (this._inputAccInfo && this._inputAccInfo.ariaLabel) || getEffectiveAriaLabelText(this),
849
1312
  },
850
1313
  };
851
1314
  }
852
1315
 
1316
+ get nativeInputAttributes() {
1317
+ return {
1318
+ "min": this.isTypeNumber ? this._nativeInputAttributes.min : undefined,
1319
+ "max": this.isTypeNumber ? this._nativeInputAttributes.max : undefined,
1320
+ "step": this.isTypeNumber ? (this._nativeInputAttributes.step || "any") : undefined,
1321
+ };
1322
+ }
1323
+
1324
+ get ariaValueStateHiddenText() {
1325
+ if (!this.hasValueStateMessage) {
1326
+ return;
1327
+ }
1328
+
1329
+ if (this.shouldDisplayDefaultValueStateMessage) {
1330
+ return this.valueStateText;
1331
+ }
1332
+
1333
+ return this.valueStateMessageText.map(el => el.textContent).join(" ");
1334
+ }
1335
+
853
1336
  get itemSelectionAnnounce() {
854
1337
  return this.Suggestions ? this.Suggestions.itemSelectionAnnounce : undefined;
855
1338
  }
856
1339
 
857
1340
  get classes() {
858
1341
  return {
1342
+ popover: {
1343
+ "ui5-suggestions-popover": !this.isPhone && this.showSuggestions,
1344
+ "ui5-suggestions-popover-with-value-state-header": !this.isPhone && this.showSuggestions && this.hasValueStateMessage,
1345
+ },
859
1346
  popoverValueState: {
860
1347
  "ui5-valuestatemessage-root": true,
1348
+ "ui5-valuestatemessage-header": true,
861
1349
  "ui5-valuestatemessage--success": this.valueState === ValueState.Success,
862
1350
  "ui5-valuestatemessage--error": this.valueState === ValueState.Error,
863
1351
  "ui5-valuestatemessage--warning": this.valueState === ValueState.Warning,
@@ -867,16 +1355,32 @@ class Input extends UI5Element {
867
1355
  }
868
1356
 
869
1357
  get styles() {
870
- return {
1358
+ const remSizeIxPx = parseInt(getComputedStyle(document.documentElement).fontSize);
1359
+
1360
+ const stylesObject = {
871
1361
  popoverHeader: {
872
- "width": `${this._inputWidth}px`,
1362
+ "max-width": `${this._inputWidth}px`,
873
1363
  },
874
1364
  suggestionPopoverHeader: {
875
1365
  "display": this._listWidth === 0 ? "none" : "inline-block",
876
1366
  "width": `${this._listWidth}px`,
877
- "padding": "0.5625rem 1rem",
878
1367
  },
1368
+ suggestionsPopover: {
1369
+ "min-width": `${this._inputWidth}px`,
1370
+ "max-width": (this._inputWidth / remSizeIxPx) > 40 ? `${this._inputWidth}px` : "40rem",
1371
+ },
1372
+ innerInput: {},
879
1373
  };
1374
+
1375
+ if (this.nativeInputWidth < 48) {
1376
+ stylesObject.innerInput.padding = "0";
1377
+ }
1378
+
1379
+ return stylesObject;
1380
+ }
1381
+
1382
+ get suggestionSeparators() {
1383
+ return "None";
880
1384
  }
881
1385
 
882
1386
  get valueStateMessageText() {
@@ -884,7 +1388,7 @@ class Input extends UI5Element {
884
1388
  }
885
1389
 
886
1390
  get shouldDisplayOnlyValueStateMessage() {
887
- return this.hasValueStateMessage && !this.shouldOpenSuggestions() && this.focused;
1391
+ return this.hasValueStateMessage && !this.readonly && !this.open && this.focused;
888
1392
  }
889
1393
 
890
1394
  get shouldDisplayDefaultValueStateMessage() {
@@ -906,21 +1410,128 @@ class Input extends UI5Element {
906
1410
  }
907
1411
 
908
1412
  get suggestionsText() {
909
- return this.i18nBundle.getText(INPUT_SUGGESTIONS);
1413
+ return Input.i18nBundle.getText(INPUT_SUGGESTIONS);
1414
+ }
1415
+
1416
+ get availableSuggestionsCount() {
1417
+ if (this.showSuggestions && (this.value || this.Suggestions.isOpened())) {
1418
+ switch (this.suggestionsTexts.length) {
1419
+ case 0:
1420
+ return Input.i18nBundle.getText(INPUT_SUGGESTIONS_NO_HIT);
1421
+
1422
+ case 1:
1423
+ return Input.i18nBundle.getText(INPUT_SUGGESTIONS_ONE_HIT);
1424
+
1425
+ default:
1426
+ return Input.i18nBundle.getText(INPUT_SUGGESTIONS_MORE_HITS, this.suggestionsTexts.length);
1427
+ }
1428
+ }
1429
+
1430
+ return undefined;
910
1431
  }
911
1432
 
912
1433
  get step() {
913
- return this.type === InputType.Number ? "any" : undefined;
1434
+ return this.isTypeNumber ? "any" : undefined;
914
1435
  }
915
1436
 
916
1437
  get _isPhone() {
917
1438
  return isPhone();
918
1439
  }
919
1440
 
1441
+ get _isSuggestionsFocused() {
1442
+ return !this.focused && this.Suggestions && this.Suggestions.isOpened();
1443
+ }
1444
+
1445
+ /**
1446
+ * Returns the placeholder value.
1447
+ * @protected
1448
+ */
1449
+ get _placeholder() {
1450
+ return this.placeholder;
1451
+ }
1452
+
1453
+ /**
1454
+ * This method is relevant for sap_horizon theme only
1455
+ */
1456
+ get _valueStateInputIcon() {
1457
+ const iconPerValueState = {
1458
+ Error: `<path xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" d="M10 20C4.47715 20 0 15.5228 0 10C0 4.47715 4.47715 0 10 0C15.5228 0 20 4.47715 20 10C20 15.5228 15.5228 20 10 20ZM7.70711 13.7071C7.31658 14.0976 6.68342 14.0976 6.29289 13.7071C5.90237 13.3166 5.90237 12.6834 6.29289 12.2929L8.58579 10L6.29289 7.70711C5.90237 7.31658 5.90237 6.68342 6.29289 6.29289C6.68342 5.90237 7.31658 5.90237 7.70711 6.29289L10 8.58579L12.2929 6.29289C12.6834 5.90237 13.3166 5.90237 13.7071 6.29289C14.0976 6.68342 14.0976 7.31658 13.7071 7.70711L11.4142 10L13.7071 12.2929C14.0976 12.6834 14.0976 13.3166 13.7071 13.7071C13.3166 14.0976 12.6834 14.0976 12.2929 13.7071L10 11.4142L7.70711 13.7071Z" fill="#EE3939"/>`,
1459
+ Warning: `<path xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" d="M11.8619 0.49298C11.6823 0.187541 11.3544 0 11 0C10.6456 0 10.3177 0.187541 10.1381 0.49298L0.138066 17.493C-0.0438112 17.8022 -0.0461447 18.1851 0.13195 18.4965C0.310046 18.8079 0.641283 19 1 19H21C21.3587 19 21.69 18.8079 21.868 18.4965C22.0461 18.1851 22.0438 17.8022 21.8619 17.493L11.8619 0.49298ZM11 6C11.5523 6 12 6.44772 12 7V10C12 10.5523 11.5523 11 11 11C10.4477 11 10 10.5523 10 10V7C10 6.44772 10.4477 6 11 6ZM11 16C11.8284 16 12.5 15.3284 12.5 14.5C12.5 13.6716 11.8284 13 11 13C10.1716 13 9.5 13.6716 9.5 14.5C9.5 15.3284 10.1716 16 11 16Z" fill="#F58B00"/>`,
1460
+ Success: `<path xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" d="M0 10C0 15.5228 4.47715 20 10 20C15.5228 20 20 15.5228 20 10C20 4.47715 15.5228 0 10 0C4.47715 0 0 4.47715 0 10ZM14.7071 6.29289C14.3166 5.90237 13.6834 5.90237 13.2929 6.29289L8 11.5858L6.70711 10.2929C6.31658 9.90237 5.68342 9.90237 5.29289 10.2929C4.90237 10.6834 4.90237 11.3166 5.29289 11.7071L7.29289 13.7071C7.68342 14.0976 8.31658 14.0976 8.70711 13.7071L14.7071 7.70711C15.0976 7.31658 15.0976 6.68342 14.7071 6.29289Z" fill="#36A41D"/>`,
1461
+ Information: `<path xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" d="M3 0C1.34315 0 0 1.34315 0 3V15C0 16.6569 1.34315 18 3 18H15C16.6569 18 18 16.6569 18 15V3C18 1.34315 16.6569 0 15 0H3ZM9 6.5C9.82843 6.5 10.5 5.82843 10.5 5C10.5 4.17157 9.82843 3.5 9 3.5C8.17157 3.5 7.5 4.17157 7.5 5C7.5 5.82843 8.17157 6.5 9 6.5ZM9 8.5C9.55228 8.5 10 8.94772 10 9.5V13.5C10 14.0523 9.55228 14.5 9 14.5C8.44771 14.5 8 14.0523 8 13.5V9.5C8 8.94772 8.44771 8.5 9 8.5Z" fill="#1B90FF"/>`,
1462
+ };
1463
+
1464
+ const result = `
1465
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="20" viewBox="0 0 20 20" fill="none">
1466
+ ${iconPerValueState[this.valueState]};
1467
+ </svg>
1468
+ `;
1469
+
1470
+ return this.valueState !== ValueState.None ? result : "";
1471
+ }
1472
+
1473
+ get _valueStatePopoverHorizontalAlign() {
1474
+ return this.effectiveDir !== "rtl" ? "Left" : "Right";
1475
+ }
1476
+
1477
+ /**
1478
+ * This method is relevant for sap_horizon theme only
1479
+ */
1480
+ get _valueStateMessageInputIcon() {
1481
+ const iconPerValueState = {
1482
+ Error: "error",
1483
+ Warning: "alert",
1484
+ Success: "sys-enter-2",
1485
+ Information: "information",
1486
+ };
1487
+
1488
+ return this.valueState !== ValueState.None ? iconPerValueState[this.valueState] : "";
1489
+ }
1490
+
1491
+ /**
1492
+ * Returns the caret position inside the native input
1493
+ * @protected
1494
+ */
1495
+ getCaretPosition() {
1496
+ return getCaretPosition(this.nativeInput);
1497
+ }
1498
+
1499
+ /**
1500
+ * Sets the caret to a certain position inside the native input
1501
+ * @protected
1502
+ * @param pos
1503
+ */
1504
+ setCaretPosition(pos) {
1505
+ setCaretPosition(this.nativeInput, pos);
1506
+ }
1507
+
1508
+ /**
1509
+ * Removes the fractional part of floating-point number.
1510
+ * @param {string} value the numeric value of Input of type "Number"
1511
+ */
1512
+ removeFractionalPart(value) {
1513
+ if (value.includes(".")) {
1514
+ return value.slice(0, value.indexOf("."));
1515
+ }
1516
+ if (value.includes(",")) {
1517
+ return value.slice(0, value.indexOf(","));
1518
+ }
1519
+
1520
+ return value;
1521
+ }
1522
+
1523
+ static get dependencies() {
1524
+ const Suggestions = getFeature("InputSuggestions");
1525
+
1526
+ return [Popover, Icon].concat(Suggestions ? Suggestions.dependencies : []);
1527
+ }
1528
+
920
1529
  static async onDefine() {
921
- await Promise.all([
922
- Popover.define(),
923
- fetchI18nBundle("@ui5/webcomponents"),
1530
+ const Suggestions = getFeature("InputSuggestions");
1531
+
1532
+ [Input.i18nBundle] = await Promise.all([
1533
+ getI18nBundle("@ui5/webcomponents"),
1534
+ Suggestions ? Suggestions.init() : Promise.resolve(),
924
1535
  ]);
925
1536
  }
926
1537
  }