@ui5/webcomponents 0.0.0-0fcda382e → 0.0.0-1929d08ff

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 +580 -0
  10. package/dist/BreadcrumbsItem.js +103 -0
  11. package/dist/BusyIndicator.js +145 -37
  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 +281 -76
  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 +675 -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 -390
  37. package/dist/FileUploader.js +215 -29
  38. package/dist/GroupHeaderListItem.js +24 -14
  39. package/dist/Icon.js +153 -50
  40. package/dist/Input.js +774 -177
  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 +462 -118
  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 +701 -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 +110 -40
  54. package/dist/Popover.js +355 -190
  55. package/dist/Popup.js +415 -87
  56. package/dist/ProgressIndicator.js +235 -0
  57. package/dist/RadioButton.js +143 -51
  58. package/dist/RadioButtonGroup.js +53 -29
  59. package/dist/RangeSlider.js +769 -0
  60. package/dist/RatingIndicator.js +321 -0
  61. package/dist/ResponsivePopover.js +80 -61
  62. package/dist/SegmentedButton.js +132 -70
  63. package/dist/SegmentedButtonItem.js +109 -0
  64. package/dist/Select.js +448 -110
  65. package/dist/Slider.js +320 -0
  66. package/dist/SliderBase.js +847 -0
  67. package/dist/SplitButton.js +426 -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 +616 -128
  76. package/dist/TabSeparator.js +43 -3
  77. package/dist/Table.js +730 -36
  78. package/dist/TableCell.js +11 -13
  79. package/dist/TableColumn.js +13 -10
  80. package/dist/TableGroupRow.js +164 -0
  81. package/dist/TableRow.js +318 -18
  82. package/dist/TextArea.js +152 -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 +398 -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 +7203 -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 +341 -54
  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 +360 -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 +241 -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 -6
  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 +580 -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 +1113 -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 +530 -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 +1522 -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 +1066 -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 +1216 -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 +469 -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 +621 -0
  658. package/src/PopupBlockLayer.hbs +7 -0
  659. package/src/ProgressIndicator.hbs +35 -0
  660. package/src/ProgressIndicator.js +235 -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 +769 -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 +109 -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 +320 -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 +426 -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 +1087 -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 +462 -0
  713. package/src/TextArea.hbs +50 -0
  714. package/src/TextArea.js +701 -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 +566 -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 +594 -0
  745. package/src/i18n/messagebundle.properties +360 -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 +241 -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 +227 -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 +79 -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 +6 -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 +9 -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 +7 -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,10 +9,25 @@ 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";
19
33
  // Templates
@@ -27,25 +41,32 @@ import {
27
41
  VALUE_STATE_WARNING,
28
42
  INPUT_SUGGESTIONS,
29
43
  INPUT_SUGGESTIONS_TITLE,
44
+ INPUT_SUGGESTIONS_ONE_HIT,
45
+ INPUT_SUGGESTIONS_MORE_HITS,
46
+ INPUT_SUGGESTIONS_NO_HIT,
30
47
  } from "./generated/i18n/i18n-defaults.js";
31
48
 
32
49
  // Styles
33
50
  import styles from "./generated/themes/Input.css.js";
34
51
  import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverCommon.css.js";
35
52
  import ValueStateMessageCss from "./generated/themes/ValueStateMessage.css.js";
53
+ import SuggestionsCss from "./generated/themes/Suggestions.css.js";
54
+
55
+ const rgxFloat = new RegExp(/(\+|-)?\d+(\.|,)\d+/);
36
56
 
37
57
  /**
38
58
  * @public
39
59
  */
40
60
  const metadata = {
41
61
  tag: "ui5-input",
62
+ languageAware: true,
42
63
  managedSlots: true,
43
64
  slots: /** @lends sap.ui.webcomponents.main.Input.prototype */ {
44
65
 
45
66
  /**
46
- * Defines the icon to be displayed in the <code>ui5-input</code>.
67
+ * Defines the icon to be displayed in the component.
47
68
  *
48
- * @type {HTMLElement[]}
69
+ * @type {sap.ui.webcomponents.main.IIcon[]}
49
70
  * @slot
50
71
  * @public
51
72
  */
@@ -54,7 +75,7 @@ const metadata = {
54
75
  },
55
76
 
56
77
  /**
57
- * Defines the <code>ui5-input</code> suggestion items.
78
+ * Defines the suggestion items.
58
79
  * <br><br>
59
80
  * Example:
60
81
  * <br><br>
@@ -64,22 +85,27 @@ const metadata = {
64
85
  * &lt;/ui5-input>
65
86
  * <br>
66
87
  * <ui5-input show-suggestions>
88
+ * <ui5-suggestion-group-item text="Group #1"></ui5-suggestion-group-item>
67
89
  * <ui5-suggestion-item text="Item #1"></ui5-suggestion-item>
68
90
  * <ui5-suggestion-item text="Item #2"></ui5-suggestion-item>
91
+ * <ui5-suggestion-group-item text="Group #2"></ui5-suggestion-group-item>
92
+ * <ui5-suggestion-item text="Item #3"></ui5-suggestion-item>
93
+ * <ui5-suggestion-item text="Item #4"></ui5-suggestion-item>
69
94
  * </ui5-input>
70
95
  * <br><br>
71
- * <b>Note:</b> The suggestion would be displayed only if the <code>showSuggestions</code>
96
+ * <b>Note:</b> The suggestions would be displayed only if the <code>showSuggestions</code>
72
97
  * property is set to <code>true</code>.
73
98
  * <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:
99
+ * <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.
100
+ * <br><br>
101
+ * <b>Note:</b> Importing the Input Suggestions Support feature:
76
102
  * <br>
77
103
  * <code>import "@ui5/webcomponents/dist/features/InputSuggestions.js";</code>
78
104
  * <br>
79
- * also automatically imports the &lt;ui5-suggestion-item> for your convenience.
105
+ * automatically imports the <code>&lt;ui5-suggestion-item></code> and <code>&lt;ui5-suggestion-group-item></code> for your convenience.
80
106
  *
81
- * @type {HTMLElement[]}
82
- * @slot
107
+ * @type {sap.ui.webcomponents.main.IInputSuggestionItem[]}
108
+ * @slot suggestionItems
83
109
  * @public
84
110
  */
85
111
  "default": {
@@ -98,15 +124,15 @@ const metadata = {
98
124
  },
99
125
 
100
126
  /**
101
- * Defines the value state message that will be displayed as pop up under the <code>ui5-input</code>.
127
+ * Defines the value state message that will be displayed as pop up under the component.
102
128
  * <br><br>
103
129
  *
104
130
  * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.
105
- * <br>
131
+ * <br><br>
106
132
  * <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>,
133
+ * when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
134
+ * <br><br>
135
+ * <b>Note:</b> If the component has <code>suggestionItems</code>,
110
136
  * the <code>valueStateMessage</code> would be displayed as part of the same popover, if used on desktop, or dialog - on phone.
111
137
  * @type {HTMLElement[]}
112
138
  * @since 1.0.0-rc.6
@@ -120,9 +146,9 @@ const metadata = {
120
146
  properties: /** @lends sap.ui.webcomponents.main.Input.prototype */ {
121
147
 
122
148
  /**
123
- * Defines whether the <code>ui5-input</code> is in disabled state.
149
+ * Defines whether the component is in disabled state.
124
150
  * <br><br>
125
- * <b>Note:</b> A disabled <code>ui5-input</code> is completely noninteractive.
151
+ * <b>Note:</b> A disabled component is completely noninteractive.
126
152
  *
127
153
  * @type {boolean}
128
154
  * @defaultvalue false
@@ -132,9 +158,24 @@ const metadata = {
132
158
  type: Boolean,
133
159
  },
134
160
 
161
+ /**
162
+ * Defines if characters within the suggestions are to be highlighted
163
+ * in case the input value matches parts of the suggestions text.
164
+ * <br><br>
165
+ * <b>Note:</b> takes effect when <code>showSuggestions</code> is set to <code>true</code>
166
+ *
167
+ * @type {boolean}
168
+ * @defaultvalue false
169
+ * @private
170
+ * @sicne 1.0.0-rc.8
171
+ */
172
+ highlight: {
173
+ type: Boolean,
174
+ },
175
+
135
176
  /**
136
177
  * Defines a short hint intended to aid the user with data entry when the
137
- * <code>ui5-input</code> has no value.
178
+ * component has no value.
138
179
  * @type {string}
139
180
  * @defaultvalue ""
140
181
  * @public
@@ -144,9 +185,9 @@ const metadata = {
144
185
  },
145
186
 
146
187
  /**
147
- * Defines whether the <code>ui5-input</code> is read-only.
188
+ * Defines whether the component is read-only.
148
189
  * <br><br>
149
- * <b>Note:</b> A read-only <code>ui5-input</code> is not editable,
190
+ * <b>Note:</b> A read-only component is not editable,
150
191
  * but still provides visual feedback upon user interaction.
151
192
  *
152
193
  * @type {boolean}
@@ -158,7 +199,7 @@ const metadata = {
158
199
  },
159
200
 
160
201
  /**
161
- * Defines whether the <code>ui5-input</code> is required.
202
+ * Defines whether the component is required.
162
203
  *
163
204
  * @type {boolean}
164
205
  * @defaultvalue false
@@ -170,7 +211,7 @@ const metadata = {
170
211
  },
171
212
 
172
213
  /**
173
- * Defines the HTML type of the <code>ui5-input</code>.
214
+ * Defines the HTML type of the component.
174
215
  * Available options are: <code>Text</code>, <code>Email</code>,
175
216
  * <code>Number</code>, <code>Password</code>, <code>Tel</code>, and <code>URL</code>.
176
217
  * <br><br>
@@ -192,7 +233,7 @@ const metadata = {
192
233
  },
193
234
 
194
235
  /**
195
- * Defines the value of the <code>ui5-input</code>.
236
+ * Defines the value of the component.
196
237
  * <br><br>
197
238
  * <b>Note:</b> The property is updated upon typing.
198
239
  *
@@ -205,7 +246,7 @@ const metadata = {
205
246
  },
206
247
 
207
248
  /**
208
- * Defines the value state of the <code>ui5-input</code>.
249
+ * Defines the value state of the component.
209
250
  * <br><br>
210
251
  * Available options are:
211
252
  * <ul>
@@ -226,7 +267,7 @@ const metadata = {
226
267
  },
227
268
 
228
269
  /**
229
- * Determines the name with which the <code>ui5-input</code> will be submitted in an HTML form.
270
+ * Determines the name with which the component will be submitted in an HTML form.
230
271
  *
231
272
  * <br><br>
232
273
  * <b>Important:</b> For the <code>name</code> property to have effect, you must add the following import to your project:
@@ -234,7 +275,7 @@ const metadata = {
234
275
  *
235
276
  * <br><br>
236
277
  * <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
278
+ * will be created inside the component so that it can be submitted as
238
279
  * part of an HTML form. Do not use this property unless you need to submit a form.
239
280
  *
240
281
  * @type {string}
@@ -246,10 +287,10 @@ const metadata = {
246
287
  },
247
288
 
248
289
  /**
249
- * Defines whether the <code>ui5-input</code> should show suggestions, if such are present.
290
+ * Defines whether the component should show suggestions, if such are present.
250
291
  * <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.
292
+ * <b>Note:</b> You need to import the <code>InputSuggestions</code> module
293
+ * from <code>"@ui5/webcomponents/dist/features/InputSuggestions.js"</code> to enable this functionality.
253
294
  * @type {boolean}
254
295
  * @defaultvalue false
255
296
  * @public
@@ -269,6 +310,54 @@ const metadata = {
269
310
  type: Integer,
270
311
  },
271
312
 
313
+ /**
314
+ * Defines the accessible aria name of the component.
315
+ *
316
+ * @type {string}
317
+ * @public
318
+ * @since 1.0.0-rc.15
319
+ */
320
+ accessibleName: {
321
+ type: String,
322
+ },
323
+
324
+ /**
325
+ * Receives id(or many ids) of the elements that label the input.
326
+ *
327
+ * @type {string}
328
+ * @defaultvalue ""
329
+ * @public
330
+ * @since 1.0.0-rc.15
331
+ */
332
+ accessibleNameRef: {
333
+ type: String,
334
+ defaultValue: "",
335
+ },
336
+
337
+ /**
338
+ * Defines whether the clear icon of the input will be shown.
339
+ *
340
+ * @type {boolean}
341
+ * @defaultvalue false
342
+ * @public
343
+ * @since 1.2.0
344
+ */
345
+ showClearIcon: {
346
+ type: Boolean,
347
+ },
348
+
349
+ /**
350
+ * Defines whether the clear icon is visible.
351
+ *
352
+ * @type {boolean}
353
+ * @defaultvalue false
354
+ * @private
355
+ * @since 1.2.0
356
+ */
357
+ effectiveShowClearIcon: {
358
+ type: Boolean,
359
+ },
360
+
272
361
  /**
273
362
  * @private
274
363
  */
@@ -276,6 +365,18 @@ const metadata = {
276
365
  type: Boolean,
277
366
  },
278
367
 
368
+ /**
369
+ * Indicates whether the visual focus is on the value state header
370
+ * @private
371
+ */
372
+ _isValueStateFocused: {
373
+ type: Boolean,
374
+ },
375
+
376
+ open: {
377
+ type: Boolean,
378
+ },
379
+
279
380
  _input: {
280
381
  type: Object,
281
382
  },
@@ -284,7 +385,7 @@ const metadata = {
284
385
  type: Object,
285
386
  },
286
387
 
287
- _wrapperAccInfo: {
388
+ _nativeInputAttributes: {
288
389
  type: Object,
289
390
  },
290
391
 
@@ -316,7 +417,7 @@ const metadata = {
316
417
  change: {},
317
418
 
318
419
  /**
319
- * Fired when the value of the <code>ui5-input</code> changes at each keystroke,
420
+ * Fired when the value of the component changes at each keystroke,
320
421
  * and when a suggestion item has been selected.
321
422
  *
322
423
  * @event
@@ -325,27 +426,48 @@ const metadata = {
325
426
  input: {},
326
427
 
327
428
  /**
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.
429
+ * Fired when a suggestion item, that is displayed in the suggestion popup, is selected.
333
430
  *
334
- * @event
431
+ * @event sap.ui.webcomponents.main.Input#suggestion-item-select
432
+ * @param {HTMLElement} item The selected item.
335
433
  * @public
336
434
  */
337
- submit: {},
435
+ "suggestion-item-select": {
436
+ detail: {
437
+ item: { type: HTMLElement },
438
+ },
439
+ },
338
440
 
339
441
  /**
340
- * Fired when a suggestion item, that is displayed in the suggestion popup, is selected.
442
+ * Fired when the user navigates to a suggestion item via the ARROW keys,
443
+ * as a preview, before the final selection.
341
444
  *
342
- * @event
343
- * @param {HTMLElement} item The selected item
445
+ * @event sap.ui.webcomponents.main.Input#suggestion-item-preview
446
+ * @param {HTMLElement} item The previewed suggestion item.
447
+ * @param {HTMLElement} targetRef The DOM ref of the suggestion item.
344
448
  * @public
449
+ * @since 1.0.0-rc.8
345
450
  */
346
- suggestionItemSelect: {
451
+ "suggestion-item-preview": {
347
452
  detail: {
348
453
  item: { type: HTMLElement },
454
+ targetRef: { type: HTMLElement },
455
+ },
456
+ },
457
+
458
+ /**
459
+ * Fired when the user scrolls the suggestion popover.
460
+ *
461
+ * @event sap.ui.webcomponents.main.Input#suggestion-scroll
462
+ * @param {Integer} scrollTop The current scroll position.
463
+ * @param {HTMLElement} scrollContainer The scroll container.
464
+ * @protected
465
+ * @since 1.0.0-rc.8
466
+ */
467
+ "suggestion-scroll": {
468
+ detail: {
469
+ scrollTop: { type: Integer },
470
+ scrollContainer: { type: HTMLElement },
349
471
  },
350
472
  },
351
473
  },
@@ -361,7 +483,7 @@ const metadata = {
361
483
  * that are displayed in a popover right under the input.
362
484
  * <br><br>
363
485
  * 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).
486
+ * and it can be enabled or disabled (<code>disabled</code> property).
365
487
  * To visualize semantic states, such as "error" or "warning", the <code>valueState</code> property is provided.
366
488
  * When the user makes changes to the text, the change event is fired,
367
489
  * which enables you to react on any text change.
@@ -371,6 +493,21 @@ const metadata = {
371
493
  * "@ui5/webcomponents/dist/features/InputSuggestions.js"
372
494
  * to enable the suggestions functionality.
373
495
  *
496
+ * <h3>Keyboard Handling</h3>
497
+ * The <code>ui5-input</code> provides the following keyboard shortcuts:
498
+ * <br>
499
+ *
500
+ * <ul>
501
+ * <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>
502
+ * <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>
503
+ * <li>[DOWN] - Focuses the next matching item in the suggestion list.</li>
504
+ * <li>[UP] - Focuses the previous matching item in the suggestion list.</li>
505
+ * <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>
506
+ * <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>
507
+ * <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>
508
+ * <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>
509
+ * </ul>
510
+ *
374
511
  * <h3>ES6 Module Import</h3>
375
512
  *
376
513
  * <code>import "@ui5/webcomponents/dist/Input.js";</code>
@@ -382,7 +519,8 @@ const metadata = {
382
519
  * @alias sap.ui.webcomponents.main.Input
383
520
  * @extends sap.ui.webcomponents.base.UI5Element
384
521
  * @tagname ui5-input
385
- * @appenddocs SuggestionItem
522
+ * @appenddocs SuggestionItem SuggestionGroupItem
523
+ * @implements sap.ui.webcomponents.main.IInput
386
524
  * @public
387
525
  */
388
526
  class Input extends UI5Element {
@@ -407,7 +545,7 @@ class Input extends UI5Element {
407
545
  }
408
546
 
409
547
  static get staticAreaStyles() {
410
- return [ResponsivePopoverCommonCss, ValueStateMessageCss];
548
+ return [ResponsivePopoverCommonCss, ValueStateMessageCss, SuggestionsCss];
411
549
  }
412
550
 
413
551
  constructor() {
@@ -415,22 +553,42 @@ class Input extends UI5Element {
415
553
  // Indicates if there is selected suggestionItem.
416
554
  this.hasSuggestionItemSelected = false;
417
555
 
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.
556
+ // Represents the value before user moves selection from suggestion item to another
557
+ // and its value is updated after each move.
558
+ // Note: Used to register and fire "input" event upon [SPACE] or [ENTER].
559
+ // Note: The property "value" is updated upon selection move and can`t be used.
421
560
  this.valueBeforeItemSelection = "";
422
561
 
562
+ // Represents the value before user moves selection between the suggestion items
563
+ // and its value remains the same when the user navigates up or down the list.
564
+ // Note: Used to cancel selection upon [ESC].
565
+ this.valueBeforeItemPreview = "";
566
+
567
+ // Indicates if the user selection has been canceled with [ESC].
568
+ this.suggestionSelectionCanceled = false;
569
+
570
+ // Indicates if the change event has already been fired
571
+ this._changeFiredValue = null;
572
+
423
573
  // tracks the value between focus in and focus out to detect that change event should be fired.
424
574
  this.previousValue = undefined;
425
575
 
426
576
  // Indicates, if the component is rendering for first time.
427
577
  this.firstRendering = true;
428
578
 
579
+ // The value that should be highlited.
580
+ this.highlightValue = "";
581
+
582
+ // The last value confirmed by the user with "ENTER"
583
+ this.lastConfirmedValue = "";
584
+
585
+ // Indicates, if the user pressed the BACKSPACE key.
586
+ this._backspaceKeyDown = false;
587
+
429
588
  // all sementic events
430
- this.EVENT_SUBMIT = "submit";
431
589
  this.EVENT_CHANGE = "change";
432
590
  this.EVENT_INPUT = "input";
433
- this.EVENT_SUGGESTION_ITEM_SELECT = "suggestionItemSelect";
591
+ this.EVENT_SUGGESTION_ITEM_SELECT = "suggestion-item-select";
434
592
 
435
593
  // all user interactions
436
594
  this.ACTION_ENTER = "enter";
@@ -439,8 +597,6 @@ class Input extends UI5Element {
439
597
  // Suggestions array initialization
440
598
  this.suggestionsTexts = [];
441
599
 
442
- this.i18nBundle = getI18nBundle("@ui5/webcomponents");
443
-
444
600
  this._handleResizeBound = this._handleResize.bind(this);
445
601
  }
446
602
 
@@ -455,10 +611,14 @@ class Input extends UI5Element {
455
611
  onBeforeRendering() {
456
612
  if (this.showSuggestions) {
457
613
  this.enableSuggestions();
458
- this.suggestionsTexts = this.Suggestions.defaultSlotProperties();
614
+ this.suggestionsTexts = this.Suggestions.defaultSlotProperties(this.highlightValue);
459
615
  }
460
616
 
617
+ this.effectiveShowClearIcon = (this.showClearIcon && !!this.value && !this.readonly && !this.disabled);
618
+ this.open = this.open && (!!this.suggestionItems.length || this._isPhone);
619
+
461
620
  const FormSupport = getFeature("FormSupport");
621
+
462
622
  if (FormSupport) {
463
623
  FormSupport.syncNativeHiddenInput(this);
464
624
  } else if (this.name) {
@@ -466,28 +626,20 @@ class Input extends UI5Element {
466
626
  }
467
627
  }
468
628
 
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();
629
+ async onAfterRendering() {
630
+ if (this.Suggestions) {
631
+ this.Suggestions.toggle(this.open, {
632
+ preventFocusRestore: true,
478
633
  });
479
634
 
480
- if (!isPhone() && shouldOpenSuggestions) {
481
- // Set initial focus to the native input
482
- this.inputDomRef && this.inputDomRef.focus();
483
- }
635
+ this._listWidth = await this.Suggestions._getListWidth();
484
636
  }
485
637
 
486
- if (!this.firstRendering && this.hasValueStateMessage) {
487
- this.toggle(this.shouldDisplayOnlyValueStateMessage);
638
+ if (this.shouldDisplayOnlyValueStateMessage) {
639
+ this.openPopover();
640
+ } else {
641
+ this.closePopover();
488
642
  }
489
-
490
- this.firstRendering = false;
491
643
  }
492
644
 
493
645
  _onkeydown(event) {
@@ -503,15 +655,54 @@ class Input extends UI5Element {
503
655
  return this._handleSpace(event);
504
656
  }
505
657
 
658
+ if (isTabNext(event)) {
659
+ return this._handleTab(event);
660
+ }
661
+
506
662
  if (isEnter(event)) {
507
663
  return this._handleEnter(event);
508
664
  }
509
665
 
666
+ if (isPageUp(event)) {
667
+ return this._handlePageUp(event);
668
+ }
669
+
670
+ if (isPageDown(event)) {
671
+ return this._handlePageDown(event);
672
+ }
673
+
674
+ if (isHome(event)) {
675
+ return this._handleHome(event);
676
+ }
677
+
678
+ if (isEnd(event)) {
679
+ return this._handleEnd(event);
680
+ }
681
+
682
+ if (isEscape(event)) {
683
+ return this._handleEscape(event);
684
+ }
685
+
686
+ if (isBackSpace(event)) {
687
+ this._backspaceKeyDown = true;
688
+ this._selectedText = window.getSelection().toString();
689
+ }
690
+
691
+ if (this.showSuggestions) {
692
+ this._clearPopoverFocusAndSelection();
693
+ }
694
+
510
695
  this._keyDown = true;
511
696
  }
512
697
 
513
698
  _onkeyup(event) {
699
+ // The native Delete event does not update the value property "on time". So, the (native) change event is always fired with the old value
700
+ if (isDelete(event)) {
701
+ this.value = event.target.value;
702
+ }
703
+
514
704
  this._keyDown = false;
705
+ this._backspaceKeyDown = false;
515
706
  }
516
707
 
517
708
  /* Event handling */
@@ -533,28 +724,99 @@ class Input extends UI5Element {
533
724
  }
534
725
  }
535
726
 
727
+ _handleTab(event) {
728
+ if (this.Suggestions && (this.previousValue !== this.value)) {
729
+ this.Suggestions.onTab(event);
730
+ }
731
+ }
732
+
536
733
  _handleEnter(event) {
537
734
  const itemPressed = !!(this.Suggestions && this.Suggestions.onEnter(event));
735
+
538
736
  if (!itemPressed) {
539
737
  this.fireEventByAction(this.ACTION_ENTER);
738
+ this.lastConfirmedValue = this.value;
739
+ return;
740
+ }
741
+
742
+ this.focused = true;
743
+ }
744
+
745
+ _handlePageUp(event) {
746
+ if (this._isSuggestionsFocused) {
747
+ this.Suggestions.onPageUp(event);
748
+ } else {
749
+ event.preventDefault();
540
750
  }
541
751
  }
542
752
 
753
+ _handlePageDown(event) {
754
+ if (this._isSuggestionsFocused) {
755
+ this.Suggestions.onPageDown(event);
756
+ } else {
757
+ event.preventDefault();
758
+ }
759
+ }
760
+
761
+ _handleHome(event) {
762
+ if (this._isSuggestionsFocused) {
763
+ this.Suggestions.onHome(event);
764
+ }
765
+ }
766
+
767
+ _handleEnd(event) {
768
+ if (this._isSuggestionsFocused) {
769
+ this.Suggestions.onEnd(event);
770
+ }
771
+ }
772
+
773
+ _handleEscape() {
774
+ const hasSuggestions = this.showSuggestions && !!this.Suggestions;
775
+ const isOpen = hasSuggestions && this.open;
776
+
777
+ if (!isOpen) {
778
+ this.value = this.lastConfirmedValue ? this.lastConfirmedValue : this.previousValue;
779
+ return;
780
+ }
781
+
782
+ if (hasSuggestions && isOpen && this.Suggestions._isItemOnTarget()) {
783
+ // Restore the value.
784
+ this.value = this.valueBeforeItemPreview;
785
+
786
+ // Mark that the selection has been canceled, so the popover can close
787
+ // and not reopen, due to receiving focus.
788
+ this.suggestionSelectionCanceled = true;
789
+ this.focused = true;
790
+ }
791
+
792
+ if (this._isValueStateFocused) {
793
+ this._isValueStateFocused = false;
794
+ this.focused = true;
795
+ }
796
+
797
+ this.open = false;
798
+ }
799
+
543
800
  async _onfocusin(event) {
801
+ await this.getInputDOMRef();
802
+
544
803
  this.focused = true; // invalidating property
545
804
  this.previousValue = this.value;
805
+ this.valueBeforeItemPreview = this.value;
546
806
 
547
- await this.getInputDOMRef();
548
- this._inputIconFocused = event.target && event.target === this.querySelector("ui5-icon");
807
+ this._inputIconFocused = event.target && event.target === this.querySelector("[ui5-icon]");
549
808
  }
550
809
 
551
810
  _onfocusout(event) {
552
811
  const focusedOutToSuggestions = this.Suggestions && event.relatedTarget && event.relatedTarget.shadowRoot && event.relatedTarget.shadowRoot.contains(this.Suggestions.responsivePopover);
553
812
  const focusedOutToValueStateMessage = event.relatedTarget && event.relatedTarget.shadowRoot && event.relatedTarget.shadowRoot.querySelector(".ui5-valuestatemessage-root");
554
813
 
814
+ this._preventNextChange = this.effectiveShowClearIcon && this.shadowRoot.contains(event.relatedTarget);
815
+
555
816
  // if focusout is triggered by pressing on suggestion item or value state message popover, skip invalidation, because re-rendering
556
817
  // will happen before "itemPress" event, which will make item "active" state not visualized
557
- if (focusedOutToSuggestions || focusedOutToValueStateMessage) {
818
+ if (focusedOutToSuggestions || focusedOutToValueStateMessage) {
819
+ event.stopImmediatePropagation();
558
820
  return;
559
821
  }
560
822
 
@@ -564,29 +826,118 @@ class Input extends UI5Element {
564
826
  return;
565
827
  }
566
828
 
567
- if (this.popover) {
568
- this.popover.close(false, false, true);
569
- }
829
+ this.closePopover();
830
+ this._clearPopoverFocusAndSelection();
570
831
 
571
832
  this.previousValue = "";
833
+ this.lastConfirmedValue = "";
572
834
  this.focused = false; // invalidating property
835
+ this.open = false;
836
+ }
837
+
838
+ _clearPopoverFocusAndSelection() {
839
+ if (!this.showSuggestions || !this.Suggestions) {
840
+ return;
841
+ }
842
+
843
+ this._isValueStateFocused = false;
844
+ this.hasSuggestionItemSelected = false;
845
+
846
+ this.Suggestions._deselectItems();
847
+ this.Suggestions._clearItemFocus();
573
848
  }
574
849
 
575
850
  _click(event) {
576
851
  if (isPhone() && !this.readonly && this.Suggestions) {
577
- this.updateStaticAreaItemContentDensity();
578
- this.Suggestions.open(this);
579
- this.isRespPopoverOpen = true;
852
+ this.blur();
853
+ this.open = true;
580
854
  }
581
855
  }
582
856
 
583
- _handleChange(event) {
584
- this.fireEvent(this.EVENT_CHANGE);
857
+ _handleNativeInputChange() {
858
+ // The native change sometimes fires too early and getting input's value in the listener would return
859
+ // the previous value instead of the most recent one. This would make things consistent.
860
+ clearTimeout(this._nativeChangeDebounce);
861
+ this._nativeChangeDebounce = setTimeout(() => this._handleChange(), 100);
585
862
  }
586
863
 
587
- async _handleInput(event) {
588
- await this.getInputDOMRef();
589
- if (event.target === this.inputDomRef) {
864
+ _handleChange() {
865
+ if (this._preventNextChange) {
866
+ this._preventNextChange = false;
867
+ return;
868
+ }
869
+
870
+ if (this._changeFiredValue !== this.value) {
871
+ this._changeFiredValue = this.value;
872
+ this.fireEvent(this.EVENT_CHANGE);
873
+ }
874
+ }
875
+
876
+ _clear() {
877
+ this.value = "";
878
+ this.fireEvent(this.EVENT_INPUT);
879
+ this._handleChange();
880
+
881
+ if (!this._isPhone) {
882
+ this.focus();
883
+ }
884
+ }
885
+
886
+ _scroll(event) {
887
+ const detail = event.detail;
888
+ this.fireEvent("suggestion-scroll", {
889
+ scrollTop: detail.scrollTop,
890
+ scrollContainer: detail.targetRef,
891
+ });
892
+ }
893
+
894
+ _handleInput(event) {
895
+ const inputDomRef = this.getInputDOMRefSync();
896
+ const emptyValueFiredOnNumberInput = this.value && this.isTypeNumber && !inputDomRef.value;
897
+
898
+ this.suggestionSelectionCanceled = false;
899
+
900
+ if (emptyValueFiredOnNumberInput && !this._backspaceKeyDown) {
901
+ // For input with type="Number", if the delimiter is entered second time,
902
+ // the inner input is firing event with empty value
903
+ return;
904
+ }
905
+
906
+ if (emptyValueFiredOnNumberInput && this._backspaceKeyDown) {
907
+ // Issue: when the user removes the character(s) after the delimeter of numeric Input,
908
+ // the native input is firing event with an empty value and we have to manually handle this case,
909
+ // otherwise the entire input will be cleared as we sync the "value".
910
+
911
+ // There are tree scenarios:
912
+ // Example: type "123.4" and press BACKSPACE - the native input is firing event with empty value.
913
+ // Example: type "123.456", select/mark "456" and press BACKSPACE - the native input is firing event with empty value.
914
+ // Example: type "123.456", select/mark "123.456" and press BACKSPACE - the native input is firing event with empty value,
915
+ // but this time that's really the case.
916
+
917
+ // Perform manual handling in case of floating number
918
+ // and if the user did not select the entire input value
919
+ if (this._selectedText.indexOf(",") > -1) {
920
+ this._selectedText = this._selectedText.replace(",", ".");
921
+ }
922
+
923
+ if (rgxFloat.test(this.value) && this._selectedText !== this.value) {
924
+ const newValue = this.removeFractionalPart(this.value);
925
+
926
+ // update state
927
+ this.value = newValue;
928
+ this.highlightValue = newValue;
929
+ this.valueBeforeItemPreview = newValue;
930
+
931
+ // fire events
932
+ this.fireEvent(this.EVENT_INPUT);
933
+ this.fireEvent("value-changed");
934
+ return;
935
+ }
936
+ }
937
+
938
+ if (event.target === inputDomRef) {
939
+ this.focused = true;
940
+
590
941
  // stop the native event, as the semantic "input" would be fired.
591
942
  event.stopImmediatePropagation();
592
943
  }
@@ -595,14 +946,19 @@ class Input extends UI5Element {
595
946
  - value of the host and the internal input should be differnt in case of actual input
596
947
  - input is called when a key is pressed => keyup should not be called yet
597
948
  */
598
- const skipFiring = (this.inputDomRef.value === this.value) && isIE() && !this._keyDown && !!this.placeholder;
949
+ const skipFiring = (inputDomRef.value === this.value) && isIE() && !this._keyDown && !!this.placeholder;
599
950
 
600
951
  !skipFiring && this.fireEventByAction(this.ACTION_USER_INPUT);
601
952
 
602
953
  this.hasSuggestionItemSelected = false;
954
+ this._isValueStateFocused = false;
603
955
 
604
956
  if (this.Suggestions) {
605
957
  this.Suggestions.updateSelectedItemPosition(null);
958
+
959
+ if (!this._isPhone) {
960
+ this.open = !!inputDomRef.value;
961
+ }
606
962
  }
607
963
  }
608
964
 
@@ -610,58 +966,53 @@ class Input extends UI5Element {
610
966
  this._inputWidth = this.offsetWidth;
611
967
  }
612
968
 
613
- _closeRespPopover() {
614
- this.Suggestions.close();
969
+ _closeRespPopover(preventFocusRestore) {
970
+ this.Suggestions.close(preventFocusRestore);
615
971
  }
616
972
 
617
973
  async _afterOpenPopover() {
618
974
  // Set initial focus to the native input
619
975
  if (isPhone()) {
620
- await this.getInputDOMRef();
621
- this.inputDomRef.focus();
976
+ (await this.getInputDOMRef()).focus();
622
977
  }
623
978
  }
624
979
 
625
980
  _afterClosePopover() {
981
+ this.announceSelectedItem();
982
+
626
983
  // close device's keyboard and prevent further typing
627
984
  if (isPhone()) {
628
985
  this.blur();
629
- }
630
- }
631
-
632
- toggle(isToggled) {
633
- if (isToggled && !this.isRespPopoverOpen) {
634
- this.openPopover();
635
- } else {
636
- this.closePopover();
986
+ this.focused = false;
637
987
  }
638
988
  }
639
989
 
640
990
  /**
641
- * Checks if the popover is open.
642
- * @returns {Boolean} true if the popover is open, false otherwise
643
- * @public
991
+ * Checks if the value state popover is open.
992
+ * @returns {boolean} true if the value state popover is open, false otherwise
644
993
  */
645
- isOpen() {
994
+ isValueStateOpened() {
646
995
  return !!this._isPopoverOpen;
647
996
  }
648
997
 
649
998
  async openPopover() {
650
- this._isPopoverOpen = true;
651
- this.popover = await this._getPopover();
652
- this.popover.openBy(this);
653
- }
999
+ const popover = await this._getPopover();
654
1000
 
655
- closePopover() {
656
- if (this.isOpen()) {
657
- this._isPopoverOpen = false;
658
- this.popover.close();
1001
+ if (popover) {
1002
+ this._isPopoverOpen = true;
1003
+ popover.showAt(this);
659
1004
  }
660
1005
  }
661
1006
 
1007
+ async closePopover() {
1008
+ const popover = await this._getPopover();
1009
+
1010
+ popover && popover.close();
1011
+ }
1012
+
662
1013
  async _getPopover() {
663
1014
  const staticAreaItem = await this.getStaticAreaItemDomRef();
664
- return staticAreaItem.querySelector("ui5-popover");
1015
+ return staticAreaItem && staticAreaItem.querySelector("[ui5-popover]");
665
1016
  }
666
1017
 
667
1018
  enableSuggestions() {
@@ -670,20 +1021,14 @@ class Input extends UI5Element {
670
1021
  }
671
1022
 
672
1023
  const Suggestions = getFeature("InputSuggestions");
1024
+
673
1025
  if (Suggestions) {
674
- this.Suggestions = new Suggestions(this, "suggestionItems");
1026
+ this.Suggestions = new Suggestions(this, "suggestionItems", true);
675
1027
  } else {
676
1028
  throw new Error(`You have to import "@ui5/webcomponents/dist/features/InputSuggestions.js" module to use ui5-input suggestions`);
677
1029
  }
678
1030
  }
679
1031
 
680
- shouldOpenSuggestions() {
681
- return !!(this.suggestionItems.length
682
- && this.focused
683
- && this.showSuggestions
684
- && !this.hasSuggestionItemSelected);
685
- }
686
-
687
1032
  selectSuggestion(item, keyboardUsed) {
688
1033
  if (item.group) {
689
1034
  return;
@@ -694,19 +1039,50 @@ class Input extends UI5Element {
694
1039
  ? this.valueBeforeItemSelection !== itemText : this.value !== itemText;
695
1040
 
696
1041
  this.hasSuggestionItemSelected = true;
697
- this.fireEvent(this.EVENT_SUGGESTION_ITEM_SELECT, { item });
698
1042
 
699
1043
  if (fireInput) {
700
1044
  this.value = itemText;
701
1045
  this.valueBeforeItemSelection = itemText;
1046
+ this.lastConfirmedValue = itemText;
702
1047
  this.fireEvent(this.EVENT_INPUT);
703
- this.fireEvent(this.EVENT_CHANGE);
1048
+ this._handleChange();
704
1049
  }
1050
+
1051
+ this.valueBeforeItemPreview = "";
1052
+ this.suggestionSelectionCanceled = false;
1053
+
1054
+ this.fireEvent(this.EVENT_SUGGESTION_ITEM_SELECT, { item });
705
1055
  }
706
1056
 
707
1057
  previewSuggestion(item) {
708
1058
  this.valueBeforeItemSelection = this.value;
709
- this.value = item.group ? "" : item.textContent;
1059
+ this.updateValueOnPreview(item);
1060
+ this.announceSelectedItem();
1061
+ this._previewItem = item;
1062
+ }
1063
+
1064
+ /**
1065
+ * Updates the input value on item preview.
1066
+ * @param {Object} item The item that is on preview
1067
+ */
1068
+ updateValueOnPreview(item) {
1069
+ const noPreview = item.type === "Inactive" || item.group;
1070
+ const itemValue = noPreview ? this.valueBeforeItemPreview : (item.effectiveTitle || item.textContent);
1071
+ this.value = itemValue;
1072
+ }
1073
+
1074
+ /**
1075
+ * The suggestion item on preview.
1076
+ * @type { sap.ui.webcomponents.main.IInputSuggestionItem }
1077
+ * @readonly
1078
+ * @public
1079
+ */
1080
+ get previewItem() {
1081
+ if (!this._previewItem) {
1082
+ return null;
1083
+ }
1084
+
1085
+ return this.getSuggestionByListItem(this._previewItem);
710
1086
  }
711
1087
 
712
1088
  async fireEventByAction(action) {
@@ -716,11 +1092,23 @@ class Input extends UI5Element {
716
1092
  return;
717
1093
  }
718
1094
 
719
- const inputValue = this.getInputValue();
720
- const isSubmit = action === this.ACTION_ENTER;
1095
+ const inputValue = await this.getInputValue();
721
1096
  const isUserInput = action === this.ACTION_USER_INPUT;
722
1097
 
1098
+ const input = await this.getInputDOMRef();
1099
+ const cursorPosition = input.selectionStart;
1100
+
723
1101
  this.value = inputValue;
1102
+ this.highlightValue = inputValue;
1103
+ this.valueBeforeItemPreview = inputValue;
1104
+
1105
+ if (isSafari()) {
1106
+ // When setting the value by hand, Safari moves the cursor when typing in the middle of the text (See #1761)
1107
+ setTimeout(() => {
1108
+ input.selectionStart = cursorPosition;
1109
+ input.selectionEnd = cursorPosition;
1110
+ }, 0);
1111
+ }
724
1112
 
725
1113
  if (isUserInput) { // input
726
1114
  this.fireEvent(this.EVENT_INPUT);
@@ -729,45 +1117,74 @@ class Input extends UI5Element {
729
1117
  return;
730
1118
  }
731
1119
 
732
- if (isSubmit) { // submit
733
- this.fireEvent(this.EVENT_SUBMIT);
734
- }
735
-
736
1120
  // In IE, pressing the ENTER does not fire change
737
1121
  const valueChanged = (this.previousValue !== undefined) && (this.previousValue !== this.value);
738
- if (isIE() && isSubmit && valueChanged) {
739
- this.fireEvent(this.EVENT_CHANGE);
1122
+ if (isIE() && action === this.ACTION_ENTER && valueChanged) {
1123
+ this._handleChange();
740
1124
  }
741
1125
  }
742
1126
 
743
- getInputValue() {
744
- const inputDOM = this.getDomRef();
745
- if (inputDOM) {
746
- return this.inputDomRef.value;
1127
+ async getInputValue() {
1128
+ const domRef = this.getDomRef();
1129
+
1130
+ if (domRef) {
1131
+ return (await this.getInputDOMRef()).value;
747
1132
  }
748
1133
  return "";
749
1134
  }
750
1135
 
751
1136
  async getInputDOMRef() {
752
- let inputDomRef;
753
-
754
1137
  if (isPhone() && this.Suggestions) {
755
- await this.Suggestions._respPopover();
756
- inputDomRef = this.Suggestions && this.Suggestions.responsivePopover.querySelector(".ui5-input-inner-phone");
1138
+ await this.Suggestions._getSuggestionPopover();
1139
+ return this.Suggestions && this.Suggestions.responsivePopover.querySelector(".ui5-input-inner-phone");
757
1140
  }
758
1141
 
759
- if (!inputDomRef) {
760
- inputDomRef = this.getDomRef().querySelector(`#${this.getInputId()}`);
1142
+ return this.nativeInput;
1143
+ }
1144
+
1145
+ getInputDOMRefSync() {
1146
+ if (isPhone() && this.Suggestions) {
1147
+ return this.Suggestions && this.Suggestions.responsivePopover.querySelector(".ui5-input-inner-phone");
761
1148
  }
762
1149
 
763
- this.inputDomRef = inputDomRef;
764
- return this.inputDomRef;
1150
+ return this.nativeInput;
1151
+ }
1152
+
1153
+ /**
1154
+ * Returns a reference to the native input element
1155
+ * @protected
1156
+ */
1157
+ get nativeInput() {
1158
+ return this.getDomRef() && this.getDomRef().querySelector(`input`);
1159
+ }
1160
+
1161
+ get nativeInputWidth() {
1162
+ return this.nativeInput && this.nativeInput.offsetWidth;
765
1163
  }
766
1164
 
767
1165
  getLabelableElementId() {
768
1166
  return this.getInputId();
769
1167
  }
770
1168
 
1169
+ getSuggestionByListItem(item) {
1170
+ const key = parseInt(item.getAttribute("data-ui5-key"));
1171
+ return this.suggestionItems[key];
1172
+ }
1173
+
1174
+ /**
1175
+ * Returns if the suggestions popover is scrollable.
1176
+ * The method returns <code>Promise</code> that resolves to true,
1177
+ * if the popup is scrollable and false otherwise.
1178
+ * @returns {Promise}
1179
+ */
1180
+ isSuggestionsScrollable() {
1181
+ if (!this.Suggestions) {
1182
+ return Promise.resolve(false);
1183
+ }
1184
+
1185
+ return this.Suggestions._isScrollable();
1186
+ }
1187
+
771
1188
  getInputId() {
772
1189
  return `${this._id}-inner`;
773
1190
  }
@@ -775,12 +1192,38 @@ class Input extends UI5Element {
775
1192
  /* Suggestions interface */
776
1193
  onItemFocused() {}
777
1194
 
1195
+ onItemMouseOver(event) {
1196
+ const item = event.target;
1197
+ const suggestion = this.getSuggestionByListItem(item);
1198
+ suggestion && suggestion.fireEvent("mouseover", {
1199
+ item: suggestion,
1200
+ targetRef: item,
1201
+ });
1202
+ }
1203
+
1204
+ onItemMouseOut(event) {
1205
+ const item = event.target;
1206
+ const suggestion = this.getSuggestionByListItem(item);
1207
+ suggestion && suggestion.fireEvent("mouseout", {
1208
+ item: suggestion,
1209
+ targetRef: item,
1210
+ });
1211
+ }
1212
+
1213
+ onItemMouseDown(event) {
1214
+ event.preventDefault();
1215
+ }
1216
+
778
1217
  onItemSelected(item, keyboardUsed) {
779
1218
  this.selectSuggestion(item, keyboardUsed);
780
1219
  }
781
1220
 
782
1221
  onItemPreviewed(item) {
783
1222
  this.previewSuggestion(item);
1223
+ this.fireEvent("suggestion-item-preview", {
1224
+ item: this.getSuggestionByListItem(item),
1225
+ targetRef: item,
1226
+ });
784
1227
  }
785
1228
 
786
1229
  onOpen() {}
@@ -788,28 +1231,40 @@ class Input extends UI5Element {
788
1231
  onClose() {}
789
1232
 
790
1233
  valueStateTextMappings() {
791
- const i18nBundle = this.i18nBundle;
792
-
793
1234
  return {
794
- "Success": i18nBundle.getText(VALUE_STATE_SUCCESS),
795
- "Information": i18nBundle.getText(VALUE_STATE_INFORMATION),
796
- "Error": i18nBundle.getText(VALUE_STATE_ERROR),
797
- "Warning": i18nBundle.getText(VALUE_STATE_WARNING),
1235
+ "Success": Input.i18nBundle.getText(VALUE_STATE_SUCCESS),
1236
+ "Information": Input.i18nBundle.getText(VALUE_STATE_INFORMATION),
1237
+ "Error": Input.i18nBundle.getText(VALUE_STATE_ERROR),
1238
+ "Warning": Input.i18nBundle.getText(VALUE_STATE_WARNING),
798
1239
  };
799
1240
  }
800
1241
 
1242
+ announceSelectedItem() {
1243
+ const invisibleText = this.shadowRoot.querySelector(`#${this._id}-selectionText`);
1244
+
1245
+ if (this.Suggestions && this.Suggestions._isItemOnTarget()) {
1246
+ invisibleText.textContent = this.itemSelectionAnnounce;
1247
+ } else {
1248
+ invisibleText.textContent = "";
1249
+ }
1250
+ }
1251
+
801
1252
  get _readonly() {
802
1253
  return this.readonly && !this.disabled;
803
1254
  }
804
1255
 
805
1256
  get _headerTitleText() {
806
- return this.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
1257
+ return Input.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
807
1258
  }
808
1259
 
809
1260
  get inputType() {
810
1261
  return this.type.toLowerCase();
811
1262
  }
812
1263
 
1264
+ get isTypeNumber() {
1265
+ return this.type === InputType.Number;
1266
+ }
1267
+
813
1268
  get suggestionsTextId() {
814
1269
  return this.showSuggestions ? `${this._id}-suggestionsText` : "";
815
1270
  }
@@ -821,26 +1276,57 @@ class Input extends UI5Element {
821
1276
  get accInfo() {
822
1277
  const ariaHasPopupDefault = this.showSuggestions ? "true" : undefined;
823
1278
  const ariaAutoCompleteDefault = this.showSuggestions ? "list" : undefined;
1279
+ const ariaDescribedBy = this._inputAccInfo.ariaDescribedBy ? `${this.suggestionsTextId} ${this.valueStateTextId} ${this._inputAccInfo.ariaDescribedBy}`.trim() : `${this.suggestionsTextId} ${this.valueStateTextId}`.trim();
1280
+
824
1281
  return {
825
- "wrapper": {
826
- },
827
1282
  "input": {
828
- "ariaDescribedBy": this._inputAccInfo.ariaDescribedBy ? `${this.suggestionsTextId} ${this.valueStateTextId} ${this._inputAccInfo.ariaDescribedBy}`.trim() : `${this.suggestionsTextId} ${this.valueStateTextId}`.trim(),
1283
+ "ariaRoledescription": this._inputAccInfo && (this._inputAccInfo.ariaRoledescription || undefined),
1284
+ "ariaDescribedBy": ariaDescribedBy || undefined,
829
1285
  "ariaInvalid": this.valueState === ValueState.Error ? "true" : undefined,
830
1286
  "ariaHasPopup": this._inputAccInfo.ariaHasPopup ? this._inputAccInfo.ariaHasPopup : ariaHasPopupDefault,
831
1287
  "ariaAutoComplete": this._inputAccInfo.ariaAutoComplete ? this._inputAccInfo.ariaAutoComplete : ariaAutoCompleteDefault,
832
1288
  "role": this._inputAccInfo && this._inputAccInfo.role,
833
- "ariaOwns": this._inputAccInfo && this._inputAccInfo.ariaOwns,
1289
+ "ariaControls": this._inputAccInfo && this._inputAccInfo.ariaControls,
834
1290
  "ariaExpanded": this._inputAccInfo && this._inputAccInfo.ariaExpanded,
835
1291
  "ariaDescription": this._inputAccInfo && this._inputAccInfo.ariaDescription,
1292
+ "ariaLabel": (this._inputAccInfo && this._inputAccInfo.ariaLabel) || getEffectiveAriaLabelText(this),
836
1293
  },
837
1294
  };
838
1295
  }
839
1296
 
1297
+ get nativeInputAttributes() {
1298
+ return {
1299
+ "min": this.isTypeNumber ? this._nativeInputAttributes.min : undefined,
1300
+ "max": this.isTypeNumber ? this._nativeInputAttributes.max : undefined,
1301
+ "step": this.isTypeNumber ? (this._nativeInputAttributes.step || "any") : undefined,
1302
+ };
1303
+ }
1304
+
1305
+ get ariaValueStateHiddenText() {
1306
+ if (!this.hasValueStateMessage) {
1307
+ return;
1308
+ }
1309
+
1310
+ if (this.shouldDisplayDefaultValueStateMessage) {
1311
+ return this.valueStateText;
1312
+ }
1313
+
1314
+ return this.valueStateMessageText.map(el => el.textContent).join(" ");
1315
+ }
1316
+
1317
+ get itemSelectionAnnounce() {
1318
+ return this.Suggestions ? this.Suggestions.itemSelectionAnnounce : undefined;
1319
+ }
1320
+
840
1321
  get classes() {
841
1322
  return {
1323
+ popover: {
1324
+ "ui5-suggestions-popover": !this.isPhone && this.showSuggestions,
1325
+ "ui5-suggestions-popover-with-value-state-header": !this.isPhone && this.showSuggestions && this.hasValueStateMessage,
1326
+ },
842
1327
  popoverValueState: {
843
1328
  "ui5-valuestatemessage-root": true,
1329
+ "ui5-valuestatemessage-header": true,
844
1330
  "ui5-valuestatemessage--success": this.valueState === ValueState.Success,
845
1331
  "ui5-valuestatemessage--error": this.valueState === ValueState.Error,
846
1332
  "ui5-valuestatemessage--warning": this.valueState === ValueState.Warning,
@@ -850,36 +1336,40 @@ class Input extends UI5Element {
850
1336
  }
851
1337
 
852
1338
  get styles() {
853
- return {
1339
+ const remSizeIxPx = parseInt(getComputedStyle(document.documentElement).fontSize);
1340
+
1341
+ const stylesObject = {
854
1342
  popoverHeader: {
855
- "width": `${this._inputWidth}px`,
1343
+ "max-width": `${this._inputWidth}px`,
856
1344
  },
857
1345
  suggestionPopoverHeader: {
858
1346
  "display": this._listWidth === 0 ? "none" : "inline-block",
859
1347
  "width": `${this._listWidth}px`,
860
- "padding": "0.5625rem 1rem",
861
1348
  },
1349
+ suggestionsPopover: {
1350
+ "min-width": `${this._inputWidth}px`,
1351
+ "max-width": (this._inputWidth / remSizeIxPx) > 40 ? `${this._inputWidth}px` : "40rem",
1352
+ },
1353
+ innerInput: {},
862
1354
  };
1355
+
1356
+ if (this.nativeInputWidth < 48) {
1357
+ stylesObject.innerInput.padding = "0";
1358
+ }
1359
+
1360
+ return stylesObject;
863
1361
  }
864
1362
 
865
- get valueStateMessageText() {
866
- const valueStateMessage = [];
867
-
868
- this.valueStateMessage.forEach(el => {
869
- if (el.localName === "slot") {
870
- el.assignedNodes({ flatten: true }).forEach(assignedNode => {
871
- valueStateMessage.push(assignedNode.cloneNode(true));
872
- });
873
- } else {
874
- valueStateMessage.push(el.cloneNode(true));
875
- }
876
- });
1363
+ get suggestionSeparators() {
1364
+ return "None";
1365
+ }
877
1366
 
878
- return valueStateMessage;
1367
+ get valueStateMessageText() {
1368
+ return this.getSlottedNodes("valueStateMessage").map(el => el.cloneNode(true));
879
1369
  }
880
1370
 
881
1371
  get shouldDisplayOnlyValueStateMessage() {
882
- return this.hasValueStateMessage && !this.shouldOpenSuggestions() && this.focused;
1372
+ return this.hasValueStateMessage && !this.readonly && !this.open && this.focused;
883
1373
  }
884
1374
 
885
1375
  get shouldDisplayDefaultValueStateMessage() {
@@ -901,21 +1391,128 @@ class Input extends UI5Element {
901
1391
  }
902
1392
 
903
1393
  get suggestionsText() {
904
- return this.i18nBundle.getText(INPUT_SUGGESTIONS);
1394
+ return Input.i18nBundle.getText(INPUT_SUGGESTIONS);
1395
+ }
1396
+
1397
+ get availableSuggestionsCount() {
1398
+ if (this.showSuggestions && (this.value || this.Suggestions.isOpened())) {
1399
+ switch (this.suggestionsTexts.length) {
1400
+ case 0:
1401
+ return Input.i18nBundle.getText(INPUT_SUGGESTIONS_NO_HIT);
1402
+
1403
+ case 1:
1404
+ return Input.i18nBundle.getText(INPUT_SUGGESTIONS_ONE_HIT);
1405
+
1406
+ default:
1407
+ return Input.i18nBundle.getText(INPUT_SUGGESTIONS_MORE_HITS, this.suggestionsTexts.length);
1408
+ }
1409
+ }
1410
+
1411
+ return undefined;
905
1412
  }
906
1413
 
907
1414
  get step() {
908
- return this.type === InputType.Number ? "any" : undefined;
1415
+ return this.isTypeNumber ? "any" : undefined;
909
1416
  }
910
1417
 
911
1418
  get _isPhone() {
912
1419
  return isPhone();
913
1420
  }
914
1421
 
1422
+ get _isSuggestionsFocused() {
1423
+ return !this.focused && this.Suggestions && this.Suggestions.isOpened();
1424
+ }
1425
+
1426
+ /**
1427
+ * Returns the placeholder value.
1428
+ * @protected
1429
+ */
1430
+ get _placeholder() {
1431
+ return this.placeholder;
1432
+ }
1433
+
1434
+ /**
1435
+ * This method is relevant for sap_horizon theme only
1436
+ */
1437
+ get _valueStateInputIcon() {
1438
+ const iconPerValueState = {
1439
+ 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"/>`,
1440
+ 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"/>`,
1441
+ 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"/>`,
1442
+ 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"/>`,
1443
+ };
1444
+
1445
+ const result = `
1446
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="20" viewBox="0 0 20 20" fill="none">
1447
+ ${iconPerValueState[this.valueState]};
1448
+ </svg>
1449
+ `;
1450
+
1451
+ return this.valueState !== ValueState.None ? result : "";
1452
+ }
1453
+
1454
+ get _valueStatePopoverHorizontalAlign() {
1455
+ return this.effectiveDir !== "rtl" ? "Left" : "Right";
1456
+ }
1457
+
1458
+ /**
1459
+ * This method is relevant for sap_horizon theme only
1460
+ */
1461
+ get _valueStateMessageInputIcon() {
1462
+ const iconPerValueState = {
1463
+ Error: "error",
1464
+ Warning: "alert",
1465
+ Success: "sys-enter-2",
1466
+ Information: "information",
1467
+ };
1468
+
1469
+ return this.valueState !== ValueState.None ? iconPerValueState[this.valueState] : "";
1470
+ }
1471
+
1472
+ /**
1473
+ * Returns the caret position inside the native input
1474
+ * @protected
1475
+ */
1476
+ getCaretPosition() {
1477
+ return getCaretPosition(this.nativeInput);
1478
+ }
1479
+
1480
+ /**
1481
+ * Sets the caret to a certain position inside the native input
1482
+ * @protected
1483
+ * @param pos
1484
+ */
1485
+ setCaretPosition(pos) {
1486
+ setCaretPosition(this.nativeInput, pos);
1487
+ }
1488
+
1489
+ /**
1490
+ * Removes the fractional part of floating-point number.
1491
+ * @param {string} value the numeric value of Input of type "Number"
1492
+ */
1493
+ removeFractionalPart(value) {
1494
+ if (value.includes(".")) {
1495
+ return value.slice(0, value.indexOf("."));
1496
+ }
1497
+ if (value.includes(",")) {
1498
+ return value.slice(0, value.indexOf(","));
1499
+ }
1500
+
1501
+ return value;
1502
+ }
1503
+
1504
+ static get dependencies() {
1505
+ const Suggestions = getFeature("InputSuggestions");
1506
+
1507
+ return [Popover].concat(Suggestions ? Suggestions.dependencies : []);
1508
+ }
1509
+
915
1510
  static async onDefine() {
916
- await Promise.all([
917
- Popover.define(),
918
- fetchI18nBundle("@ui5/webcomponents"),
1511
+ const Suggestions = getFeature("InputSuggestions");
1512
+
1513
+ [Input.i18nBundle] = await Promise.all([
1514
+ getI18nBundle("@ui5/webcomponents"),
1515
+ Suggestions ? Suggestions.init() : Promise.resolve(),
919
1516
  ]);
920
1517
  }
921
1518
  }