@ui5/webcomponents 0.0.0-185851a98 → 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 (1244) hide show
  1. package/CHANGELOG.md +942 -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 +218 -35
  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 +170 -16
  12. package/dist/Button.js +187 -67
  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 +382 -94
  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 +698 -93
  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 -9
  30. package/dist/DateComponentBase.js +168 -0
  31. package/dist/DatePicker.js +436 -403
  32. package/dist/DateRangePicker.js +356 -0
  33. package/dist/DateTimePicker.js +119 -376
  34. package/dist/DayPicker.js +509 -431
  35. package/dist/Dialog.js +510 -50
  36. package/dist/DurationPicker.js +170 -317
  37. package/dist/FileUploader.js +219 -28
  38. package/dist/GroupHeaderListItem.js +24 -19
  39. package/dist/Icon.js +200 -36
  40. package/dist/Input.js +805 -167
  41. package/dist/Interfaces.js +192 -0
  42. package/dist/Label.js +34 -13
  43. package/dist/Link.js +169 -30
  44. package/dist/List.js +510 -109
  45. package/dist/ListItem.js +110 -28
  46. package/dist/ListItemBase.js +42 -8
  47. package/dist/MessageStrip.js +86 -71
  48. package/dist/MonthPicker.js +180 -182
  49. package/dist/MultiComboBox.js +714 -202
  50. package/dist/MultiComboBoxItem.js +8 -5
  51. package/dist/MultiInput.js +348 -0
  52. package/dist/Option.js +59 -5
  53. package/dist/Panel.js +128 -39
  54. package/dist/Popover.js +352 -242
  55. package/dist/Popup.js +426 -275
  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 +88 -41
  62. package/dist/SegmentedButton.js +147 -52
  63. package/dist/SegmentedButtonItem.js +109 -0
  64. package/dist/Select.js +481 -102
  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 -22
  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 +182 -12
  75. package/dist/TabContainer.js +750 -276
  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 +165 -57
  83. package/dist/TimePicker.js +55 -644
  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 -13
  89. package/dist/Token.js +84 -45
  90. package/dist/Tokenizer.js +398 -64
  91. package/dist/Tree.js +447 -0
  92. package/dist/TreeItem.js +189 -0
  93. package/dist/TreeListItem.js +343 -0
  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 +342 -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 -5
  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 -13
  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 -5
  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 -5
  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 -8
  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 +6 -27
  301. package/dist/generated/templates/MonthPickerTemplate.lit.js +6 -6
  302. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +23 -7
  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 +7 -0
  308. package/dist/generated/templates/PopupTemplate.lit.js +4 -4
  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 -11
  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 -4
  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 -19
  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 -8
  326. package/dist/generated/templates/TabContainerTemplate.lit.js +15 -18
  327. package/dist/generated/templates/TabInOverflowTemplate.lit.js +9 -0
  328. package/dist/generated/templates/TabInStripTemplate.lit.js +11 -0
  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 -10
  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 -8
  339. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +4 -8
  340. package/dist/generated/templates/TimePickerTemplate.lit.js +6 -5
  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 +21 -0
  349. package/dist/generated/templates/TreeTemplate.lit.js +8 -0
  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 +8 -0
  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 +8 -0
  420. package/dist/generated/themes/TabInStrip.css.js +8 -0
  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 +8 -0
  441. package/dist/generated/themes/TreeListItem.css.js +8 -0
  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 +55 -21
  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 +55 -0
  531. package/dist/types/SemanticColor.js +1 -1
  532. package/dist/types/SwitchDesign.js +40 -0
  533. package/dist/types/TabContainerTabsPlacement.js +40 -0
  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 -93
  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 -8
  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/TabContainerPopup.css.js +0 -8
  1240. package/dist/generated/themes/Timeline.css.js +0 -8
  1241. package/dist/generated/themes/TimelineItem.css.js +0 -8
  1242. package/dist/popup-utils/PopupUtils.js +0 -55
  1243. package/dist/types/AvatarFitType.js +0 -40
  1244. 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,18 +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
- * and you need to import the <code>"@ui5/webcomponents/dist/SuggestionItem"</code> module.
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:
102
+ * <br>
103
+ * <code>import "@ui5/webcomponents/dist/features/InputSuggestions.js";</code>
104
+ * <br>
105
+ * automatically imports the <code>&lt;ui5-suggestion-item></code> and <code>&lt;ui5-suggestion-group-item></code> for your convenience.
76
106
  *
77
- * @type {HTMLElement[]}
78
- * @slot
107
+ * @type {sap.ui.webcomponents.main.IInputSuggestionItem[]}
108
+ * @slot suggestionItems
79
109
  * @public
80
110
  */
81
111
  "default": {
@@ -94,15 +124,15 @@ const metadata = {
94
124
  },
95
125
 
96
126
  /**
97
- * 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.
98
128
  * <br><br>
99
129
  *
100
130
  * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.
101
- * <br>
131
+ * <br><br>
102
132
  * <b>Note:</b> The <code>valueStateMessage</code> would be displayed,
103
- * when the <code>ui5-input</code> is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
104
- * <br>
105
- * <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>,
106
136
  * the <code>valueStateMessage</code> would be displayed as part of the same popover, if used on desktop, or dialog - on phone.
107
137
  * @type {HTMLElement[]}
108
138
  * @since 1.0.0-rc.6
@@ -116,9 +146,9 @@ const metadata = {
116
146
  properties: /** @lends sap.ui.webcomponents.main.Input.prototype */ {
117
147
 
118
148
  /**
119
- * Defines whether the <code>ui5-input</code> is in disabled state.
149
+ * Defines whether the component is in disabled state.
120
150
  * <br><br>
121
- * <b>Note:</b> A disabled <code>ui5-input</code> is completely noninteractive.
151
+ * <b>Note:</b> A disabled component is completely noninteractive.
122
152
  *
123
153
  * @type {boolean}
124
154
  * @defaultvalue false
@@ -128,9 +158,24 @@ const metadata = {
128
158
  type: Boolean,
129
159
  },
130
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
+
131
176
  /**
132
177
  * Defines a short hint intended to aid the user with data entry when the
133
- * <code>ui5-input</code> has no value.
178
+ * component has no value.
134
179
  * @type {string}
135
180
  * @defaultvalue ""
136
181
  * @public
@@ -140,9 +185,9 @@ const metadata = {
140
185
  },
141
186
 
142
187
  /**
143
- * Defines whether the <code>ui5-input</code> is read-only.
188
+ * Defines whether the component is read-only.
144
189
  * <br><br>
145
- * <b>Note:</b> A read-only <code>ui5-input</code> is not editable,
190
+ * <b>Note:</b> A read-only component is not editable,
146
191
  * but still provides visual feedback upon user interaction.
147
192
  *
148
193
  * @type {boolean}
@@ -154,7 +199,7 @@ const metadata = {
154
199
  },
155
200
 
156
201
  /**
157
- * Defines whether the <code>ui5-input</code> is required.
202
+ * Defines whether the component is required.
158
203
  *
159
204
  * @type {boolean}
160
205
  * @defaultvalue false
@@ -166,7 +211,7 @@ const metadata = {
166
211
  },
167
212
 
168
213
  /**
169
- * Defines the HTML type of the <code>ui5-input</code>.
214
+ * Defines the HTML type of the component.
170
215
  * Available options are: <code>Text</code>, <code>Email</code>,
171
216
  * <code>Number</code>, <code>Password</code>, <code>Tel</code>, and <code>URL</code>.
172
217
  * <br><br>
@@ -188,7 +233,7 @@ const metadata = {
188
233
  },
189
234
 
190
235
  /**
191
- * Defines the value of the <code>ui5-input</code>.
236
+ * Defines the value of the component.
192
237
  * <br><br>
193
238
  * <b>Note:</b> The property is updated upon typing.
194
239
  *
@@ -201,7 +246,7 @@ const metadata = {
201
246
  },
202
247
 
203
248
  /**
204
- * Defines the value state of the <code>ui5-input</code>.
249
+ * Defines the value state of the component.
205
250
  * <br><br>
206
251
  * Available options are:
207
252
  * <ul>
@@ -222,7 +267,7 @@ const metadata = {
222
267
  },
223
268
 
224
269
  /**
225
- * 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.
226
271
  *
227
272
  * <br><br>
228
273
  * <b>Important:</b> For the <code>name</code> property to have effect, you must add the following import to your project:
@@ -230,7 +275,7 @@ const metadata = {
230
275
  *
231
276
  * <br><br>
232
277
  * <b>Note:</b> When set, a native <code>input</code> HTML element
233
- * 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
234
279
  * part of an HTML form. Do not use this property unless you need to submit a form.
235
280
  *
236
281
  * @type {string}
@@ -242,10 +287,10 @@ const metadata = {
242
287
  },
243
288
 
244
289
  /**
245
- * 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.
246
291
  * <br><br>
247
- * <b>Note:</b>
248
- * 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.
249
294
  * @type {boolean}
250
295
  * @defaultvalue false
251
296
  * @public
@@ -265,6 +310,54 @@ const metadata = {
265
310
  type: Integer,
266
311
  },
267
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
+
268
361
  /**
269
362
  * @private
270
363
  */
@@ -272,6 +365,18 @@ const metadata = {
272
365
  type: Boolean,
273
366
  },
274
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
+
275
380
  _input: {
276
381
  type: Object,
277
382
  },
@@ -280,7 +385,7 @@ const metadata = {
280
385
  type: Object,
281
386
  },
282
387
 
283
- _wrapperAccInfo: {
388
+ _nativeInputAttributes: {
284
389
  type: Object,
285
390
  },
286
391
 
@@ -296,6 +401,11 @@ const metadata = {
296
401
  type: Boolean,
297
402
  noAttribute: true,
298
403
  },
404
+
405
+ _inputIconFocused: {
406
+ type: Boolean,
407
+ noAttribute: true,
408
+ },
299
409
  },
300
410
  events: /** @lends sap.ui.webcomponents.main.Input.prototype */ {
301
411
  /**
@@ -307,7 +417,7 @@ const metadata = {
307
417
  change: {},
308
418
 
309
419
  /**
310
- * 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,
311
421
  * and when a suggestion item has been selected.
312
422
  *
313
423
  * @event
@@ -316,27 +426,48 @@ const metadata = {
316
426
  input: {},
317
427
 
318
428
  /**
319
- * Fired when user presses Enter key on the <code>ui5-input</code>.
320
- * <br><br>
321
- * <b>Note:</b> The event is fired independent of whether there was a change before or not.
322
- * If change was performed, the event is fired after the change event.
323
- * 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.
324
430
  *
325
- * @event
431
+ * @event sap.ui.webcomponents.main.Input#suggestion-item-select
432
+ * @param {HTMLElement} item The selected item.
326
433
  * @public
327
434
  */
328
- submit: {},
435
+ "suggestion-item-select": {
436
+ detail: {
437
+ item: { type: HTMLElement },
438
+ },
439
+ },
329
440
 
330
441
  /**
331
- * 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.
332
444
  *
333
- * @event
334
- * @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.
335
448
  * @public
449
+ * @since 1.0.0-rc.8
336
450
  */
337
- suggestionItemSelect: {
451
+ "suggestion-item-preview": {
338
452
  detail: {
339
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 },
340
471
  },
341
472
  },
342
473
  },
@@ -352,7 +483,7 @@ const metadata = {
352
483
  * that are displayed in a popover right under the input.
353
484
  * <br><br>
354
485
  * The text field can be editable or read-only (<code>readonly</code> property),
355
- * and it can be enabled or disabled (<code>enabled</code> property).
486
+ * and it can be enabled or disabled (<code>disabled</code> property).
356
487
  * To visualize semantic states, such as "error" or "warning", the <code>valueState</code> property is provided.
357
488
  * When the user makes changes to the text, the change event is fired,
358
489
  * which enables you to react on any text change.
@@ -362,6 +493,21 @@ const metadata = {
362
493
  * "@ui5/webcomponents/dist/features/InputSuggestions.js"
363
494
  * to enable the suggestions functionality.
364
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
+ *
365
511
  * <h3>ES6 Module Import</h3>
366
512
  *
367
513
  * <code>import "@ui5/webcomponents/dist/Input.js";</code>
@@ -373,7 +519,8 @@ const metadata = {
373
519
  * @alias sap.ui.webcomponents.main.Input
374
520
  * @extends sap.ui.webcomponents.base.UI5Element
375
521
  * @tagname ui5-input
376
- * @appenddocs SuggestionItem
522
+ * @appenddocs SuggestionItem SuggestionGroupItem
523
+ * @implements sap.ui.webcomponents.main.IInput
377
524
  * @public
378
525
  */
379
526
  class Input extends UI5Element {
@@ -398,7 +545,7 @@ class Input extends UI5Element {
398
545
  }
399
546
 
400
547
  static get staticAreaStyles() {
401
- return [ResponsivePopoverCommonCss, ValueStateMessageCss];
548
+ return [ResponsivePopoverCommonCss, ValueStateMessageCss, SuggestionsCss];
402
549
  }
403
550
 
404
551
  constructor() {
@@ -406,22 +553,42 @@ class Input extends UI5Element {
406
553
  // Indicates if there is selected suggestionItem.
407
554
  this.hasSuggestionItemSelected = false;
408
555
 
409
- // Represents the value before user moves selection between the suggestion items.
410
- // Used to register and fire "input" event upon [SPACE] or [ENTER].
411
- // 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.
412
560
  this.valueBeforeItemSelection = "";
413
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
+
414
573
  // tracks the value between focus in and focus out to detect that change event should be fired.
415
574
  this.previousValue = undefined;
416
575
 
417
576
  // Indicates, if the component is rendering for first time.
418
577
  this.firstRendering = true;
419
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
+
420
588
  // all sementic events
421
- this.EVENT_SUBMIT = "submit";
422
589
  this.EVENT_CHANGE = "change";
423
590
  this.EVENT_INPUT = "input";
424
- this.EVENT_SUGGESTION_ITEM_SELECT = "suggestionItemSelect";
591
+ this.EVENT_SUGGESTION_ITEM_SELECT = "suggestion-item-select";
425
592
 
426
593
  // all user interactions
427
594
  this.ACTION_ENTER = "enter";
@@ -430,8 +597,6 @@ class Input extends UI5Element {
430
597
  // Suggestions array initialization
431
598
  this.suggestionsTexts = [];
432
599
 
433
- this.i18nBundle = getI18nBundle("@ui5/webcomponents");
434
-
435
600
  this._handleResizeBound = this._handleResize.bind(this);
436
601
  }
437
602
 
@@ -446,10 +611,14 @@ class Input extends UI5Element {
446
611
  onBeforeRendering() {
447
612
  if (this.showSuggestions) {
448
613
  this.enableSuggestions();
449
- this.suggestionsTexts = this.Suggestions.defaultSlotProperties();
614
+ this.suggestionsTexts = this.Suggestions.defaultSlotProperties(this.highlightValue);
450
615
  }
451
616
 
617
+ this.effectiveShowClearIcon = (this.showClearIcon && !!this.value && !this.readonly && !this.disabled);
618
+ this.open = this.open && (!!this.suggestionItems.length || this._isPhone);
619
+
452
620
  const FormSupport = getFeature("FormSupport");
621
+
453
622
  if (FormSupport) {
454
623
  FormSupport.syncNativeHiddenInput(this);
455
624
  } else if (this.name) {
@@ -457,28 +626,20 @@ class Input extends UI5Element {
457
626
  }
458
627
  }
459
628
 
460
- onAfterRendering() {
461
- if (!this.firstRendering && !isPhone() && this.Suggestions) {
462
- const shouldOpenSuggestions = this.shouldOpenSuggestions();
463
-
464
- this.updateStaticAreaItemContentDensity();
465
- this.Suggestions.toggle(shouldOpenSuggestions);
466
-
467
- RenderScheduler.whenFinished().then(async () => {
468
- this._listWidth = await this.Suggestions._getListWidth();
629
+ async onAfterRendering() {
630
+ if (this.Suggestions) {
631
+ this.Suggestions.toggle(this.open, {
632
+ preventFocusRestore: true,
469
633
  });
470
634
 
471
- if (!isPhone() && shouldOpenSuggestions) {
472
- // Set initial focus to the native input
473
- this.getInputDOMRef().focus();
474
- }
635
+ this._listWidth = await this.Suggestions._getListWidth();
475
636
  }
476
637
 
477
- if (!this.firstRendering && this.hasValueStateMessage) {
478
- this.toggle(this.shouldDisplayOnlyValueStateMessage);
638
+ if (this.shouldDisplayOnlyValueStateMessage) {
639
+ this.openPopover();
640
+ } else {
641
+ this.closePopover();
479
642
  }
480
-
481
- this.firstRendering = false;
482
643
  }
483
644
 
484
645
  _onkeydown(event) {
@@ -494,15 +655,54 @@ class Input extends UI5Element {
494
655
  return this._handleSpace(event);
495
656
  }
496
657
 
658
+ if (isTabNext(event)) {
659
+ return this._handleTab(event);
660
+ }
661
+
497
662
  if (isEnter(event)) {
498
663
  return this._handleEnter(event);
499
664
  }
500
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
+
501
695
  this._keyDown = true;
502
696
  }
503
697
 
504
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
+
505
704
  this._keyDown = false;
705
+ this._backspaceKeyDown = false;
506
706
  }
507
707
 
508
708
  /* Event handling */
@@ -524,47 +724,220 @@ class Input extends UI5Element {
524
724
  }
525
725
  }
526
726
 
727
+ _handleTab(event) {
728
+ if (this.Suggestions && (this.previousValue !== this.value)) {
729
+ this.Suggestions.onTab(event);
730
+ }
731
+ }
732
+
527
733
  _handleEnter(event) {
528
734
  const itemPressed = !!(this.Suggestions && this.Suggestions.onEnter(event));
735
+
529
736
  if (!itemPressed) {
530
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();
750
+ }
751
+ }
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);
531
764
  }
532
765
  }
533
766
 
534
- _onfocusin(event) {
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
+
800
+ async _onfocusin(event) {
801
+ await this.getInputDOMRef();
802
+
535
803
  this.focused = true; // invalidating property
536
804
  this.previousValue = this.value;
805
+ this.valueBeforeItemPreview = this.value;
806
+
807
+ this._inputIconFocused = event.target && event.target === this.querySelector("[ui5-icon]");
537
808
  }
538
809
 
539
810
  _onfocusout(event) {
540
- // if focusout is triggered by pressing on suggestion item skip invalidation, because re-rendering
811
+ const focusedOutToSuggestions = this.Suggestions && event.relatedTarget && event.relatedTarget.shadowRoot && event.relatedTarget.shadowRoot.contains(this.Suggestions.responsivePopover);
812
+ const focusedOutToValueStateMessage = event.relatedTarget && event.relatedTarget.shadowRoot && event.relatedTarget.shadowRoot.querySelector(".ui5-valuestatemessage-root");
813
+
814
+ this._preventNextChange = this.effectiveShowClearIcon && this.shadowRoot.contains(event.relatedTarget);
815
+
816
+ // if focusout is triggered by pressing on suggestion item or value state message popover, skip invalidation, because re-rendering
541
817
  // will happen before "itemPress" event, which will make item "active" state not visualized
542
- if (this.Suggestions && event.relatedTarget && event.relatedTarget.shadowRoot && event.relatedTarget.shadowRoot.contains(this.Suggestions.responsivePopover)) {
818
+ if (focusedOutToSuggestions || focusedOutToValueStateMessage) {
819
+ event.stopImmediatePropagation();
543
820
  return;
544
821
  }
545
822
 
546
- if (this.popover) {
547
- this.popover.close(false, false, true);
823
+ const toBeFocused = event.relatedTarget;
824
+
825
+ if (toBeFocused && toBeFocused.classList.contains(this._id)) {
826
+ return;
548
827
  }
549
828
 
829
+ this.closePopover();
830
+ this._clearPopoverFocusAndSelection();
831
+
550
832
  this.previousValue = "";
833
+ this.lastConfirmedValue = "";
551
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();
552
848
  }
553
849
 
554
850
  _click(event) {
555
851
  if (isPhone() && !this.readonly && this.Suggestions) {
556
- this.updateStaticAreaItemContentDensity();
557
- this.Suggestions.open(this);
558
- this.isRespPopoverOpen = true;
852
+ this.blur();
853
+ this.open = true;
854
+ }
855
+ }
856
+
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);
862
+ }
863
+
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();
559
883
  }
560
884
  }
561
885
 
562
- _handleChange(event) {
563
- this.fireEvent(this.EVENT_CHANGE);
886
+ _scroll(event) {
887
+ const detail = event.detail;
888
+ this.fireEvent("suggestion-scroll", {
889
+ scrollTop: detail.scrollTop,
890
+ scrollContainer: detail.targetRef,
891
+ });
564
892
  }
565
893
 
566
894
  _handleInput(event) {
567
- if (event.target === this.getInputDOMRef()) {
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
+
568
941
  // stop the native event, as the semantic "input" would be fired.
569
942
  event.stopImmediatePropagation();
570
943
  }
@@ -573,74 +946,73 @@ class Input extends UI5Element {
573
946
  - value of the host and the internal input should be differnt in case of actual input
574
947
  - input is called when a key is pressed => keyup should not be called yet
575
948
  */
576
- const skipFiring = (this.getInputDOMRef().value === this.value) && isIE() && !this._keyDown && !!this.placeholder;
949
+ const skipFiring = (inputDomRef.value === this.value) && isIE() && !this._keyDown && !!this.placeholder;
577
950
 
578
951
  !skipFiring && this.fireEventByAction(this.ACTION_USER_INPUT);
579
952
 
580
953
  this.hasSuggestionItemSelected = false;
954
+ this._isValueStateFocused = false;
581
955
 
582
956
  if (this.Suggestions) {
583
957
  this.Suggestions.updateSelectedItemPosition(null);
958
+
959
+ if (!this._isPhone) {
960
+ this.open = !!inputDomRef.value;
961
+ }
584
962
  }
585
963
  }
586
964
 
587
965
  _handleResize() {
588
- if (this.hasValueStateMessage) {
589
- this._inputWidth = this.offsetWidth;
590
- }
966
+ this._inputWidth = this.offsetWidth;
591
967
  }
592
968
 
593
- _closeRespPopover() {
594
- this.Suggestions.close();
969
+ _closeRespPopover(preventFocusRestore) {
970
+ this.Suggestions.close(preventFocusRestore);
595
971
  }
596
972
 
597
- _afterOpenPopover() {
973
+ async _afterOpenPopover() {
598
974
  // Set initial focus to the native input
599
975
  if (isPhone()) {
600
- this.getInputDOMRef().focus();
976
+ (await this.getInputDOMRef()).focus();
601
977
  }
602
978
  }
603
979
 
604
980
  _afterClosePopover() {
981
+ this.announceSelectedItem();
982
+
605
983
  // close device's keyboard and prevent further typing
606
984
  if (isPhone()) {
607
985
  this.blur();
608
- }
609
- }
610
-
611
- toggle(isToggled) {
612
- if (isToggled && !this.isRespPopoverOpen) {
613
- this.openPopover();
614
- } else {
615
- this.closePopover();
986
+ this.focused = false;
616
987
  }
617
988
  }
618
989
 
619
990
  /**
620
- * Checks if the popover is open.
621
- * @returns {Boolean} true if the popover is open, false otherwise
622
- * @public
991
+ * Checks if the value state popover is open.
992
+ * @returns {boolean} true if the value state popover is open, false otherwise
623
993
  */
624
- isOpen() {
994
+ isValueStateOpened() {
625
995
  return !!this._isPopoverOpen;
626
996
  }
627
997
 
628
998
  async openPopover() {
629
- this._isPopoverOpen = true;
630
- this.popover = await this._getPopover();
631
- this.popover.openBy(this);
632
- }
999
+ const popover = await this._getPopover();
633
1000
 
634
- closePopover() {
635
- if (this.isOpen()) {
636
- this._isPopoverOpen = false;
637
- this.popover.close();
1001
+ if (popover) {
1002
+ this._isPopoverOpen = true;
1003
+ popover.showAt(this);
638
1004
  }
639
1005
  }
640
1006
 
1007
+ async closePopover() {
1008
+ const popover = await this._getPopover();
1009
+
1010
+ popover && popover.close();
1011
+ }
1012
+
641
1013
  async _getPopover() {
642
1014
  const staticAreaItem = await this.getStaticAreaItemDomRef();
643
- return staticAreaItem.querySelector("ui5-popover");
1015
+ return staticAreaItem && staticAreaItem.querySelector("[ui5-popover]");
644
1016
  }
645
1017
 
646
1018
  enableSuggestions() {
@@ -649,20 +1021,14 @@ class Input extends UI5Element {
649
1021
  }
650
1022
 
651
1023
  const Suggestions = getFeature("InputSuggestions");
1024
+
652
1025
  if (Suggestions) {
653
- this.Suggestions = new Suggestions(this, "suggestionItems");
1026
+ this.Suggestions = new Suggestions(this, "suggestionItems", true);
654
1027
  } else {
655
1028
  throw new Error(`You have to import "@ui5/webcomponents/dist/features/InputSuggestions.js" module to use ui5-input suggestions`);
656
1029
  }
657
1030
  }
658
1031
 
659
- shouldOpenSuggestions() {
660
- return !!(this.suggestionItems.length
661
- && this.focused
662
- && this.showSuggestions
663
- && !this.hasSuggestionItemSelected);
664
- }
665
-
666
1032
  selectSuggestion(item, keyboardUsed) {
667
1033
  if (item.group) {
668
1034
  return;
@@ -673,31 +1039,76 @@ class Input extends UI5Element {
673
1039
  ? this.valueBeforeItemSelection !== itemText : this.value !== itemText;
674
1040
 
675
1041
  this.hasSuggestionItemSelected = true;
676
- this.fireEvent(this.EVENT_SUGGESTION_ITEM_SELECT, { item });
677
1042
 
678
1043
  if (fireInput) {
679
1044
  this.value = itemText;
680
1045
  this.valueBeforeItemSelection = itemText;
1046
+ this.lastConfirmedValue = itemText;
681
1047
  this.fireEvent(this.EVENT_INPUT);
682
- this.fireEvent(this.EVENT_CHANGE);
1048
+ this._handleChange();
683
1049
  }
1050
+
1051
+ this.valueBeforeItemPreview = "";
1052
+ this.suggestionSelectionCanceled = false;
1053
+
1054
+ this.fireEvent(this.EVENT_SUGGESTION_ITEM_SELECT, { item });
684
1055
  }
685
1056
 
686
1057
  previewSuggestion(item) {
687
1058
  this.valueBeforeItemSelection = this.value;
688
- 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);
689
1086
  }
690
1087
 
691
- fireEventByAction(action) {
1088
+ async fireEventByAction(action) {
1089
+ await this.getInputDOMRef();
1090
+
692
1091
  if (this.disabled || this.readonly) {
693
1092
  return;
694
1093
  }
695
1094
 
696
- const inputValue = this.getInputValue();
697
- const isSubmit = action === this.ACTION_ENTER;
1095
+ const inputValue = await this.getInputValue();
698
1096
  const isUserInput = action === this.ACTION_USER_INPUT;
699
1097
 
1098
+ const input = await this.getInputDOMRef();
1099
+ const cursorPosition = input.selectionStart;
1100
+
700
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
+ }
701
1112
 
702
1113
  if (isUserInput) { // input
703
1114
  this.fireEvent(this.EVENT_INPUT);
@@ -706,43 +1117,74 @@ class Input extends UI5Element {
706
1117
  return;
707
1118
  }
708
1119
 
709
- if (isSubmit) { // submit
710
- this.fireEvent(this.EVENT_SUBMIT);
711
- }
712
-
713
1120
  // In IE, pressing the ENTER does not fire change
714
1121
  const valueChanged = (this.previousValue !== undefined) && (this.previousValue !== this.value);
715
- if (isIE() && isSubmit && valueChanged) {
716
- this.fireEvent(this.EVENT_CHANGE);
1122
+ if (isIE() && action === this.ACTION_ENTER && valueChanged) {
1123
+ this._handleChange();
717
1124
  }
718
1125
  }
719
1126
 
720
- getInputValue() {
721
- const inputDOM = this.getDomRef();
722
- if (inputDOM) {
723
- return this.getInputDOMRef().value;
1127
+ async getInputValue() {
1128
+ const domRef = this.getDomRef();
1129
+
1130
+ if (domRef) {
1131
+ return (await this.getInputDOMRef()).value;
724
1132
  }
725
1133
  return "";
726
1134
  }
727
1135
 
728
- getInputDOMRef() {
729
- let inputDomRef;
730
-
731
- if (isPhone()) {
732
- inputDomRef = this.Suggestions && this.Suggestions.responsivePopover.querySelector(".ui5-input-inner-phone");
1136
+ async getInputDOMRef() {
1137
+ if (isPhone() && this.Suggestions) {
1138
+ await this.Suggestions._getSuggestionPopover();
1139
+ return this.Suggestions && this.Suggestions.responsivePopover.querySelector(".ui5-input-inner-phone");
733
1140
  }
734
1141
 
735
- if (!inputDomRef) {
736
- 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");
737
1148
  }
738
1149
 
739
- return 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;
740
1163
  }
741
1164
 
742
1165
  getLabelableElementId() {
743
1166
  return this.getInputId();
744
1167
  }
745
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
+
746
1188
  getInputId() {
747
1189
  return `${this._id}-inner`;
748
1190
  }
@@ -750,12 +1192,38 @@ class Input extends UI5Element {
750
1192
  /* Suggestions interface */
751
1193
  onItemFocused() {}
752
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
+
753
1217
  onItemSelected(item, keyboardUsed) {
754
1218
  this.selectSuggestion(item, keyboardUsed);
755
1219
  }
756
1220
 
757
1221
  onItemPreviewed(item) {
758
1222
  this.previewSuggestion(item);
1223
+ this.fireEvent("suggestion-item-preview", {
1224
+ item: this.getSuggestionByListItem(item),
1225
+ targetRef: item,
1226
+ });
759
1227
  }
760
1228
 
761
1229
  onOpen() {}
@@ -763,28 +1231,40 @@ class Input extends UI5Element {
763
1231
  onClose() {}
764
1232
 
765
1233
  valueStateTextMappings() {
766
- const i18nBundle = this.i18nBundle;
767
-
768
1234
  return {
769
- "Success": i18nBundle.getText(VALUE_STATE_SUCCESS),
770
- "Information": i18nBundle.getText(VALUE_STATE_INFORMATION),
771
- "Error": i18nBundle.getText(VALUE_STATE_ERROR),
772
- "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),
773
1239
  };
774
1240
  }
775
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
+
776
1252
  get _readonly() {
777
1253
  return this.readonly && !this.disabled;
778
1254
  }
779
1255
 
780
1256
  get _headerTitleText() {
781
- return this.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
1257
+ return Input.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
782
1258
  }
783
1259
 
784
1260
  get inputType() {
785
1261
  return this.type.toLowerCase();
786
1262
  }
787
1263
 
1264
+ get isTypeNumber() {
1265
+ return this.type === InputType.Number;
1266
+ }
1267
+
788
1268
  get suggestionsTextId() {
789
1269
  return this.showSuggestions ? `${this._id}-suggestionsText` : "";
790
1270
  }
@@ -796,26 +1276,57 @@ class Input extends UI5Element {
796
1276
  get accInfo() {
797
1277
  const ariaHasPopupDefault = this.showSuggestions ? "true" : undefined;
798
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
+
799
1281
  return {
800
- "wrapper": {
801
- },
802
1282
  "input": {
803
- "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,
804
1285
  "ariaInvalid": this.valueState === ValueState.Error ? "true" : undefined,
805
1286
  "ariaHasPopup": this._inputAccInfo.ariaHasPopup ? this._inputAccInfo.ariaHasPopup : ariaHasPopupDefault,
806
1287
  "ariaAutoComplete": this._inputAccInfo.ariaAutoComplete ? this._inputAccInfo.ariaAutoComplete : ariaAutoCompleteDefault,
807
1288
  "role": this._inputAccInfo && this._inputAccInfo.role,
808
- "ariaOwns": this._inputAccInfo && this._inputAccInfo.ariaOwns,
1289
+ "ariaControls": this._inputAccInfo && this._inputAccInfo.ariaControls,
809
1290
  "ariaExpanded": this._inputAccInfo && this._inputAccInfo.ariaExpanded,
810
1291
  "ariaDescription": this._inputAccInfo && this._inputAccInfo.ariaDescription,
1292
+ "ariaLabel": (this._inputAccInfo && this._inputAccInfo.ariaLabel) || getEffectiveAriaLabelText(this),
811
1293
  },
812
1294
  };
813
1295
  }
814
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
+
815
1321
  get classes() {
816
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
+ },
817
1327
  popoverValueState: {
818
1328
  "ui5-valuestatemessage-root": true,
1329
+ "ui5-valuestatemessage-header": true,
819
1330
  "ui5-valuestatemessage--success": this.valueState === ValueState.Success,
820
1331
  "ui5-valuestatemessage--error": this.valueState === ValueState.Error,
821
1332
  "ui5-valuestatemessage--warning": this.valueState === ValueState.Warning,
@@ -825,26 +1336,40 @@ class Input extends UI5Element {
825
1336
  }
826
1337
 
827
1338
  get styles() {
828
- return {
1339
+ const remSizeIxPx = parseInt(getComputedStyle(document.documentElement).fontSize);
1340
+
1341
+ const stylesObject = {
829
1342
  popoverHeader: {
830
- "width": `${this._inputWidth}px`,
1343
+ "max-width": `${this._inputWidth}px`,
831
1344
  },
832
1345
  suggestionPopoverHeader: {
833
1346
  "display": this._listWidth === 0 ? "none" : "inline-block",
834
1347
  "width": `${this._listWidth}px`,
835
- "padding": "0.5625rem 1rem",
836
1348
  },
1349
+ suggestionsPopover: {
1350
+ "min-width": `${this._inputWidth}px`,
1351
+ "max-width": (this._inputWidth / remSizeIxPx) > 40 ? `${this._inputWidth}px` : "40rem",
1352
+ },
1353
+ innerInput: {},
837
1354
  };
1355
+
1356
+ if (this.nativeInputWidth < 48) {
1357
+ stylesObject.innerInput.padding = "0";
1358
+ }
1359
+
1360
+ return stylesObject;
838
1361
  }
839
1362
 
840
- get valueStateMessageText() {
841
- const valueStateMessage = this.valueStateMessage.map(x => x.cloneNode(true));
1363
+ get suggestionSeparators() {
1364
+ return "None";
1365
+ }
842
1366
 
843
- return valueStateMessage;
1367
+ get valueStateMessageText() {
1368
+ return this.getSlottedNodes("valueStateMessage").map(el => el.cloneNode(true));
844
1369
  }
845
1370
 
846
1371
  get shouldDisplayOnlyValueStateMessage() {
847
- return this.hasValueStateMessage && !this.shouldOpenSuggestions() && this.focused;
1372
+ return this.hasValueStateMessage && !this.readonly && !this.open && this.focused;
848
1373
  }
849
1374
 
850
1375
  get shouldDisplayDefaultValueStateMessage() {
@@ -856,7 +1381,9 @@ class Input extends UI5Element {
856
1381
  }
857
1382
 
858
1383
  get hasValueStateMessage() {
859
- return this.hasValueState && this.valueState !== ValueState.Success;
1384
+ return this.hasValueState && this.valueState !== ValueState.Success
1385
+ && (!this._inputIconFocused // Handles the cases when valueStateMessage is forwarded (from datepicker e.g.)
1386
+ || (this._isPhone && this.Suggestions)); // Handles Input with suggestions on mobile
860
1387
  }
861
1388
 
862
1389
  get valueStateText() {
@@ -864,17 +1391,128 @@ class Input extends UI5Element {
864
1391
  }
865
1392
 
866
1393
  get suggestionsText() {
867
- 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;
1412
+ }
1413
+
1414
+ get step() {
1415
+ return this.isTypeNumber ? "any" : undefined;
868
1416
  }
869
1417
 
870
1418
  get _isPhone() {
871
1419
  return isPhone();
872
1420
  }
873
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
+
874
1510
  static async onDefine() {
875
- await Promise.all([
876
- Popover.define(),
877
- 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(),
878
1516
  ]);
879
1517
  }
880
1518
  }