@ui5/webcomponents 1.9.2 → 1.10.0

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 (1150) hide show
  1. package/dist/Avatar.d.ts +251 -0
  2. package/dist/Avatar.js +203 -406
  3. package/dist/Avatar.js.map +1 -0
  4. package/dist/AvatarGroup.js +8 -8
  5. package/dist/Badge.d.ts +82 -0
  6. package/dist/Badge.js +65 -117
  7. package/dist/Badge.js.map +1 -0
  8. package/dist/Breadcrumbs.d.ts +200 -0
  9. package/dist/Breadcrumbs.js +438 -584
  10. package/dist/Breadcrumbs.js.map +1 -0
  11. package/dist/BreadcrumbsItem.d.ts +73 -0
  12. package/dist/BreadcrumbsItem.js +33 -87
  13. package/dist/BreadcrumbsItem.js.map +1 -0
  14. package/dist/BusyIndicator.js +6 -7
  15. package/dist/Button.d.ts +257 -0
  16. package/dist/Button.js +236 -456
  17. package/dist/Button.js.map +1 -0
  18. package/dist/Calendar.d.ts +251 -0
  19. package/dist/Calendar.js +266 -350
  20. package/dist/Calendar.js.map +1 -0
  21. package/dist/CalendarDate.d.ts +28 -0
  22. package/dist/CalendarDate.js +20 -30
  23. package/dist/CalendarDate.js.map +1 -0
  24. package/dist/CalendarHeader.d.ts +87 -0
  25. package/dist/CalendarHeader.js +144 -198
  26. package/dist/CalendarHeader.js.map +1 -0
  27. package/dist/CalendarPart.d.ts +53 -0
  28. package/dist/CalendarPart.js +71 -92
  29. package/dist/CalendarPart.js.map +1 -0
  30. package/dist/Card.d.ts +91 -0
  31. package/dist/Card.js +68 -123
  32. package/dist/Card.js.map +1 -0
  33. package/dist/CardHeader.d.ts +123 -0
  34. package/dist/CardHeader.js +152 -240
  35. package/dist/CardHeader.js.map +1 -0
  36. package/dist/Carousel.js +33 -11
  37. package/dist/CheckBox.d.ts +256 -0
  38. package/dist/CheckBox.js +219 -410
  39. package/dist/CheckBox.js.map +1 -0
  40. package/dist/ColorPalette.d.ts +140 -0
  41. package/dist/ColorPalette.js +362 -455
  42. package/dist/ColorPalette.js.map +1 -0
  43. package/dist/ColorPaletteItem.d.ts +68 -0
  44. package/dist/ColorPaletteItem.js +66 -114
  45. package/dist/ColorPaletteItem.js.map +1 -0
  46. package/dist/ColorPalettePopover.d.ts +127 -0
  47. package/dist/ColorPalettePopover.js +144 -203
  48. package/dist/ColorPalettePopover.js.map +1 -0
  49. package/dist/ColorPicker.d.ts +147 -0
  50. package/dist/ColorPicker.js +371 -556
  51. package/dist/ColorPicker.js.map +1 -0
  52. package/dist/ComboBox.js +9 -9
  53. package/dist/ComboBoxGroupItem.js +6 -6
  54. package/dist/ComboBoxItem.js +4 -4
  55. package/dist/CustomListItem.d.ts +44 -0
  56. package/dist/CustomListItem.js +52 -79
  57. package/dist/CustomListItem.js.map +1 -0
  58. package/dist/DateComponentBase.d.ts +83 -0
  59. package/dist/DateComponentBase.js +101 -143
  60. package/dist/DateComponentBase.js.map +1 -0
  61. package/dist/DatePicker.d.ts +452 -0
  62. package/dist/DatePicker.js +540 -737
  63. package/dist/DatePicker.js.map +1 -0
  64. package/dist/DateRangePicker.d.ts +169 -0
  65. package/dist/DateRangePicker.js +269 -315
  66. package/dist/DateRangePicker.js.map +1 -0
  67. package/dist/DateTimePicker.d.ts +207 -0
  68. package/dist/DateTimePicker.js +254 -339
  69. package/dist/DateTimePicker.js.map +1 -0
  70. package/dist/DayPicker.d.ts +243 -0
  71. package/dist/DayPicker.js +605 -730
  72. package/dist/DayPicker.js.map +1 -0
  73. package/dist/Dialog.d.ts +238 -0
  74. package/dist/Dialog.js +380 -606
  75. package/dist/Dialog.js.map +1 -0
  76. package/dist/DurationPicker.js +5 -5
  77. package/dist/FileUploader.d.ts +238 -0
  78. package/dist/FileUploader.js +305 -489
  79. package/dist/FileUploader.js.map +1 -0
  80. package/dist/Filters.d.ts +5 -0
  81. package/dist/Filters.js +10 -21
  82. package/dist/Filters.js.map +1 -0
  83. package/dist/GroupHeaderListItem.d.ts +45 -0
  84. package/dist/GroupHeaderListItem.js +42 -76
  85. package/dist/GroupHeaderListItem.js.map +1 -0
  86. package/dist/Icon.d.ts +252 -0
  87. package/dist/Icon.js +179 -306
  88. package/dist/Icon.js.map +1 -0
  89. package/dist/Input.d.ts +607 -0
  90. package/dist/Input.js +1095 -1627
  91. package/dist/Input.js.map +1 -0
  92. package/dist/Interfaces.d.ts +161 -0
  93. package/dist/Interfaces.js +45 -85
  94. package/dist/Interfaces.js.map +1 -0
  95. package/dist/Label.d.ts +98 -0
  96. package/dist/Label.js +63 -124
  97. package/dist/Label.js.map +1 -0
  98. package/dist/Link.d.ts +222 -0
  99. package/dist/Link.js +177 -358
  100. package/dist/Link.js.map +1 -0
  101. package/dist/List.d.ts +383 -0
  102. package/dist/List.js +706 -1029
  103. package/dist/List.js.map +1 -0
  104. package/dist/ListItem.d.ts +201 -0
  105. package/dist/ListItem.js +298 -407
  106. package/dist/ListItem.js.map +1 -0
  107. package/dist/ListItemBase.d.ts +61 -0
  108. package/dist/ListItemBase.js +114 -167
  109. package/dist/ListItemBase.js.map +1 -0
  110. package/dist/Menu.d.ts +187 -0
  111. package/dist/Menu.js +428 -453
  112. package/dist/Menu.js.map +1 -0
  113. package/dist/MenuItem.d.ts +124 -0
  114. package/dist/MenuItem.js +66 -166
  115. package/dist/MenuItem.js.map +1 -0
  116. package/dist/MessageStrip.d.ts +135 -0
  117. package/dist/MessageStrip.js +119 -207
  118. package/dist/MessageStrip.js.map +1 -0
  119. package/dist/MonthPicker.d.ts +109 -0
  120. package/dist/MonthPicker.js +260 -285
  121. package/dist/MonthPicker.js.map +1 -0
  122. package/dist/MultiComboBox.js +13 -11
  123. package/dist/MultiComboBoxGroupItem.js +6 -6
  124. package/dist/MultiComboBoxItem.js +4 -4
  125. package/dist/MultiInput.js +13 -10
  126. package/dist/Option.js +6 -6
  127. package/dist/Panel.d.ts +238 -0
  128. package/dist/Panel.js +230 -405
  129. package/dist/Panel.js.map +1 -0
  130. package/dist/Popover.d.ts +332 -0
  131. package/dist/Popover.js +520 -766
  132. package/dist/Popover.js.map +1 -0
  133. package/dist/Popup.d.ts +293 -0
  134. package/dist/Popup.js +404 -576
  135. package/dist/Popup.js.map +1 -0
  136. package/dist/ProgressIndicator.d.ts +121 -0
  137. package/dist/ProgressIndicator.js +121 -207
  138. package/dist/ProgressIndicator.js.map +1 -0
  139. package/dist/RadioButton.js +7 -8
  140. package/dist/RadioButtonGroup.js +1 -1
  141. package/dist/RangeSlider.d.ts +363 -0
  142. package/dist/RangeSlider.js +682 -757
  143. package/dist/RangeSlider.js.map +1 -0
  144. package/dist/RatingIndicator.js +7 -7
  145. package/dist/ResponsivePopover.d.ts +108 -0
  146. package/dist/ResponsivePopover.js +148 -174
  147. package/dist/ResponsivePopover.js.map +1 -0
  148. package/dist/SegmentedButton.js +24 -11
  149. package/dist/SegmentedButtonItem.js +5 -5
  150. package/dist/Select.js +8 -8
  151. package/dist/Slider.d.ts +163 -0
  152. package/dist/Slider.js +241 -261
  153. package/dist/Slider.js.map +1 -0
  154. package/dist/SliderBase.d.ts +357 -0
  155. package/dist/SliderBase.js +588 -794
  156. package/dist/SliderBase.js.map +1 -0
  157. package/dist/SplitButton.d.ts +220 -0
  158. package/dist/SplitButton.js +211 -382
  159. package/dist/SplitButton.js.map +1 -0
  160. package/dist/StandardListItem.d.ts +158 -0
  161. package/dist/StandardListItem.js +79 -174
  162. package/dist/StandardListItem.js.map +1 -0
  163. package/dist/StepInput.d.ts +301 -0
  164. package/dist/StepInput.js +378 -615
  165. package/dist/StepInput.js.map +1 -0
  166. package/dist/SuggestionGroupItem.d.ts +35 -0
  167. package/dist/SuggestionGroupItem.js +35 -51
  168. package/dist/SuggestionGroupItem.js.map +1 -0
  169. package/dist/SuggestionItem.d.ts +104 -0
  170. package/dist/SuggestionItem.js +49 -131
  171. package/dist/SuggestionItem.js.map +1 -0
  172. package/dist/SuggestionListItem.d.ts +47 -0
  173. package/dist/SuggestionListItem.js +38 -52
  174. package/dist/SuggestionListItem.js.map +1 -0
  175. package/dist/Switch.d.ts +167 -0
  176. package/dist/Switch.js +136 -251
  177. package/dist/Switch.js.map +1 -0
  178. package/dist/Tab.js +13 -8
  179. package/dist/TabContainer.js +20 -19
  180. package/dist/TabSeparator.js +3 -3
  181. package/dist/Table.d.ts +426 -0
  182. package/dist/Table.js +792 -1107
  183. package/dist/Table.js.map +1 -0
  184. package/dist/TableCell.d.ts +51 -0
  185. package/dist/TableCell.js +43 -60
  186. package/dist/TableCell.js.map +1 -0
  187. package/dist/TableColumn.d.ts +101 -0
  188. package/dist/TableColumn.js +53 -99
  189. package/dist/TableColumn.js.map +1 -0
  190. package/dist/TableGroupRow.d.ts +79 -0
  191. package/dist/TableGroupRow.js +97 -134
  192. package/dist/TableGroupRow.js.map +1 -0
  193. package/dist/TableRow.d.ts +160 -0
  194. package/dist/TableRow.js +315 -429
  195. package/dist/TableRow.js.map +1 -0
  196. package/dist/TextArea.js +11 -11
  197. package/dist/TimePicker.d.ts +116 -0
  198. package/dist/TimePicker.js +61 -96
  199. package/dist/TimePicker.js.map +1 -0
  200. package/dist/TimePickerBase.d.ts +188 -0
  201. package/dist/TimePickerBase.js +350 -453
  202. package/dist/TimePickerBase.js.map +1 -0
  203. package/dist/TimeSelection.d.ts +162 -0
  204. package/dist/TimeSelection.js +358 -468
  205. package/dist/TimeSelection.js.map +1 -0
  206. package/dist/Title.d.ts +69 -0
  207. package/dist/Title.js +62 -105
  208. package/dist/Title.js.map +1 -0
  209. package/dist/Toast.js +6 -6
  210. package/dist/ToggleButton.js +3 -4
  211. package/dist/Token.js +24 -7
  212. package/dist/Tokenizer.js +12 -8
  213. package/dist/Tree.js +28 -14
  214. package/dist/TreeItemBase.js +1 -1
  215. package/dist/TreeList.js +9 -4
  216. package/dist/WheelSlider.d.ts +122 -0
  217. package/dist/WheelSlider.js +302 -410
  218. package/dist/WheelSlider.js.map +1 -0
  219. package/dist/YearPicker.d.ts +105 -0
  220. package/dist/YearPicker.js +298 -328
  221. package/dist/YearPicker.js.map +1 -0
  222. package/dist/api.json +1 -1
  223. package/dist/assets/HT-1000.59a0ea5a.jpg +0 -0
  224. package/dist/assets/HT-1010.7b05e4f5.jpg +0 -0
  225. package/dist/assets/HT-1022.6fa171f0.jpg +0 -0
  226. package/dist/assets/ar.76457d6b.js +1 -0
  227. package/dist/assets/ar_EG.facab575.js +1 -0
  228. package/dist/assets/ar_SA.037c760a.js +1 -0
  229. package/dist/assets/bg.eb54e36a.js +1 -0
  230. package/dist/assets/ca.1047c043.js +1 -0
  231. package/dist/assets/cs.47109072.js +1 -0
  232. package/dist/assets/da.1562c279.js +1 -0
  233. package/dist/assets/de.3397b9d2.js +1 -0
  234. package/dist/assets/de_AT.fb777626.js +1 -0
  235. package/dist/assets/de_CH.c4011bf2.js +1 -0
  236. package/dist/assets/el.52a181c7.js +1 -0
  237. package/dist/assets/el_CY.065e8a48.js +1 -0
  238. package/dist/assets/en.8b571af2.js +1 -0
  239. package/dist/assets/en_AU.29f5e0e2.js +1 -0
  240. package/dist/assets/en_GB.b0afb274.js +1 -0
  241. package/dist/assets/en_HK.188c8a39.js +1 -0
  242. package/dist/assets/en_IE.b52bdf4f.js +1 -0
  243. package/dist/assets/en_IN.5925f501.js +1 -0
  244. package/dist/assets/en_NZ.adc1b6af.js +1 -0
  245. package/dist/assets/en_PG.2e475ab9.js +1 -0
  246. package/dist/assets/en_SG.400dc7e5.js +1 -0
  247. package/dist/assets/en_ZA.06de0b73.js +1 -0
  248. package/dist/assets/es.d137c08c.js +1 -0
  249. package/dist/assets/es_AR.a719c078.js +1 -0
  250. package/dist/assets/es_BO.ba051d49.js +1 -0
  251. package/dist/assets/es_CL.876855d2.js +1 -0
  252. package/dist/assets/es_CO.51c37c4d.js +1 -0
  253. package/dist/assets/es_MX.c11d012e.js +1 -0
  254. package/dist/assets/es_PE.1a5de4db.js +1 -0
  255. package/dist/assets/es_UY.29036823.js +1 -0
  256. package/dist/assets/es_VE.22e2164a.js +1 -0
  257. package/dist/assets/et.d802827f.js +1 -0
  258. package/dist/assets/fa.59b6aa5f.js +1 -0
  259. package/dist/assets/fi.2cc79303.js +1 -0
  260. package/dist/assets/fr.055c2d0d.js +1 -0
  261. package/dist/assets/fr_BE.79a4448b.js +1 -0
  262. package/dist/assets/fr_CA.0c4a98e4.js +1 -0
  263. package/dist/assets/fr_CH.ba0db8bd.js +1 -0
  264. package/dist/assets/fr_LU.21a6bcea.js +1 -0
  265. package/dist/assets/he.e187c6df.js +1 -0
  266. package/dist/assets/hi.cb35adb1.js +1 -0
  267. package/dist/assets/hr.24bc905c.js +1 -0
  268. package/dist/assets/hu.aadbd74c.js +1 -0
  269. package/dist/assets/id.b9bd26e5.js +1 -0
  270. package/dist/assets/it.36ffae4a.js +1 -0
  271. package/dist/assets/{it.bcf089f4.js → it_CH.7ef1e2bf.js} +1 -1
  272. package/dist/assets/ja.a08af783.js +1 -0
  273. package/dist/assets/kk.5d3dddbe.js +1 -0
  274. package/dist/assets/ko.264fdf35.js +1 -0
  275. package/dist/assets/lt.b967d42b.js +1 -0
  276. package/dist/assets/lv.9c0f8206.js +1 -0
  277. package/dist/assets/{messagebundle_ar.dec7510d.js → messagebundle_ar.7f1e385c.js} +1 -1
  278. package/dist/assets/{messagebundle_bg.39183011.js → messagebundle_bg.67505cb7.js} +1 -1
  279. package/dist/assets/messagebundle_ca.64fb370c.js +1 -0
  280. package/dist/assets/messagebundle_cs.ce8b8a69.js +1 -0
  281. package/dist/assets/messagebundle_cy.3dad0e1d.js +1 -0
  282. package/dist/assets/messagebundle_da.ff79429b.js +1 -0
  283. package/dist/assets/messagebundle_de.e9f4d979.js +1 -0
  284. package/dist/assets/{messagebundle_el.d41a6312.js → messagebundle_el.50666070.js} +1 -1
  285. package/dist/assets/messagebundle_en.edda053c.js +1 -0
  286. package/dist/assets/messagebundle_en_GB.9eb5f8cf.js +1 -0
  287. package/dist/assets/{messagebundle_en_US_sappsd.86cc73b7.js → messagebundle_en_US_sappsd.c97ca89f.js} +1 -1
  288. package/dist/assets/{messagebundle_en_US_saprigi.a7b06ef5.js → messagebundle_en_US_saprigi.d0b577b7.js} +1 -1
  289. package/dist/assets/messagebundle_en_US_saptrc.7da9b71b.js +1 -0
  290. package/dist/assets/messagebundle_es.3b0d6da4.js +1 -0
  291. package/dist/assets/messagebundle_es_MX.da0228db.js +1 -0
  292. package/dist/assets/messagebundle_et.2cfc3295.js +1 -0
  293. package/dist/assets/messagebundle_fi.f62f59fc.js +1 -0
  294. package/dist/assets/messagebundle_fr.7d7c418f.js +1 -0
  295. package/dist/assets/messagebundle_fr_CA.a4592fb9.js +1 -0
  296. package/dist/assets/{messagebundle_hi.b968aad6.js → messagebundle_hi.2f3db639.js} +1 -1
  297. package/dist/assets/messagebundle_hr.f8282341.js +1 -0
  298. package/dist/assets/messagebundle_hu.2589bdb3.js +1 -0
  299. package/dist/assets/messagebundle_it.146c4b3c.js +1 -0
  300. package/dist/assets/messagebundle_iw.2766f5a1.js +1 -0
  301. package/dist/assets/messagebundle_ja.b0b6d3d0.js +1 -0
  302. package/dist/assets/{messagebundle_kk.24effffd.js → messagebundle_kk.f9132ede.js} +1 -1
  303. package/dist/assets/messagebundle_ko.d23a9de8.js +1 -0
  304. package/dist/assets/messagebundle_lt.e2f6f5b0.js +1 -0
  305. package/dist/assets/messagebundle_lv.6b0ad93c.js +1 -0
  306. package/dist/assets/messagebundle_ms.8d8ac7f1.js +1 -0
  307. package/dist/assets/messagebundle_nl.1bb5da42.js +1 -0
  308. package/dist/assets/messagebundle_no.c7ee6784.js +1 -0
  309. package/dist/assets/messagebundle_pl.0d1b3dd1.js +1 -0
  310. package/dist/assets/messagebundle_pt.33ff9d42.js +1 -0
  311. package/dist/assets/messagebundle_pt_PT.a91f6468.js +1 -0
  312. package/dist/assets/messagebundle_ro.bd2e01e0.js +1 -0
  313. package/dist/assets/{messagebundle_ru.e7ffdb7d.js → messagebundle_ru.388e4272.js} +1 -1
  314. package/dist/assets/messagebundle_sh.122ca47b.js +1 -0
  315. package/dist/assets/messagebundle_sk.66d70983.js +1 -0
  316. package/dist/assets/messagebundle_sl.3f1a077f.js +1 -0
  317. package/dist/assets/messagebundle_sv.71f16a40.js +1 -0
  318. package/dist/assets/{messagebundle_th.4f145df6.js → messagebundle_th.700d6a4a.js} +1 -1
  319. package/dist/assets/messagebundle_tr.6f267da9.js +1 -0
  320. package/dist/assets/{messagebundle_uk.fc20aaae.js → messagebundle_uk.52e9f0c8.js} +1 -1
  321. package/dist/assets/messagebundle_vi.e9fe4caa.js +1 -0
  322. package/dist/assets/messagebundle_zh_CN.8ff0766b.js +1 -0
  323. package/dist/assets/messagebundle_zh_TW.25b49650.js +1 -0
  324. package/dist/assets/ms.5a523fbe.js +1 -0
  325. package/dist/assets/nb.6e98bbca.js +1 -0
  326. package/dist/assets/nl.84e9e6df.js +1 -0
  327. package/dist/assets/nl_BE.0f374ea5.js +1 -0
  328. package/dist/assets/parameters-bundle.css.09fdcedf.js +1 -0
  329. package/dist/assets/parameters-bundle.css.0c16556f.js +1 -0
  330. package/dist/assets/parameters-bundle.css.1d5159c7.js +1 -0
  331. package/dist/assets/parameters-bundle.css.3d586108.js +1 -0
  332. package/dist/assets/parameters-bundle.css.3fe96be2.js +1 -0
  333. package/dist/assets/parameters-bundle.css.44ff7825.js +1 -0
  334. package/dist/assets/parameters-bundle.css.58325286.js +1 -0
  335. package/dist/assets/parameters-bundle.css.5c29069a.js +1 -0
  336. package/dist/assets/parameters-bundle.css.759ff23e.js +1 -0
  337. package/dist/assets/parameters-bundle.css.7ad77620.js +1 -0
  338. package/dist/assets/parameters-bundle.css.ab7cc9c4.js +1 -0
  339. package/dist/assets/parameters-bundle.css.e7002fc1.js +1 -0
  340. package/dist/assets/pl.c8acba9e.js +1 -0
  341. package/dist/assets/pt.676d5650.js +1 -0
  342. package/dist/assets/pt_PT.0bbc2da6.js +1 -0
  343. package/dist/assets/ro.10993af2.js +1 -0
  344. package/dist/assets/ru.4aba168e.js +1 -0
  345. package/dist/assets/ru_UA.334d6613.js +1 -0
  346. package/dist/assets/sk.3183c85e.js +1 -0
  347. package/dist/assets/sl.edad6042.js +1 -0
  348. package/dist/assets/sr.3e293379.js +1 -0
  349. package/dist/assets/sr_Latn.0f4a03c3.js +1 -0
  350. package/dist/assets/sv.e76e14e4.js +1 -0
  351. package/dist/assets/th.f5491ec1.js +1 -0
  352. package/dist/assets/tr.3b838818.js +1 -0
  353. package/dist/assets/uk.ebbd81a0.js +1 -0
  354. package/dist/assets/vi.87616fa0.js +1 -0
  355. package/dist/assets/zh_CN.de478ef9.js +1 -0
  356. package/dist/assets/zh_HK.834c3161.js +1 -0
  357. package/dist/assets/zh_SG.13241ee3.js +1 -0
  358. package/dist/assets/zh_TW.8f4a16b5.js +1 -0
  359. package/dist/css/themes/Avatar.css +1 -1
  360. package/dist/css/themes/BusyIndicator.css +1 -1
  361. package/dist/css/themes/Button.css +1 -1
  362. package/dist/css/themes/CardHeader.css +1 -1
  363. package/dist/css/themes/Carousel.css +1 -1
  364. package/dist/css/themes/ComboBox.css +1 -1
  365. package/dist/css/themes/DatePicker.css +1 -1
  366. package/dist/css/themes/Dialog.css +1 -1
  367. package/dist/css/themes/Icon.css +1 -1
  368. package/dist/css/themes/Input.css +1 -1
  369. package/dist/css/themes/ListItem.css +1 -1
  370. package/dist/css/themes/MultiComboBox.css +1 -1
  371. package/dist/css/themes/MultiInput.css +1 -1
  372. package/dist/css/themes/RadioButton.css +1 -1
  373. package/dist/css/themes/Select.css +1 -1
  374. package/dist/css/themes/TabInStrip.css +1 -1
  375. package/dist/css/themes/Table.css +1 -1
  376. package/dist/css/themes/TableCell.css +1 -1
  377. package/dist/css/themes/TableRow.css +1 -1
  378. package/dist/css/themes/TextArea.css +1 -1
  379. package/dist/css/themes/Tokenizer.css +1 -1
  380. package/dist/css/themes/ValueStateMessage.css +1 -1
  381. package/dist/css/themes/sap_belize/parameters-bundle.css +1 -1
  382. package/dist/css/themes/sap_belize_hcb/parameters-bundle.css +1 -1
  383. package/dist/css/themes/sap_belize_hcw/parameters-bundle.css +1 -1
  384. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  385. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  386. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  387. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  388. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  389. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  390. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  391. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  392. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  393. package/dist/features/ColorPaletteMoreColors.d.ts +13 -0
  394. package/dist/features/ColorPaletteMoreColors.js +23 -33
  395. package/dist/features/ColorPaletteMoreColors.js.map +1 -0
  396. package/dist/features/InputElementsFormSupport.d.ts +31 -0
  397. package/dist/features/InputElementsFormSupport.js +95 -101
  398. package/dist/features/InputElementsFormSupport.js.map +1 -0
  399. package/dist/features/InputSuggestions.d.ts +130 -0
  400. package/dist/features/InputSuggestions.js +457 -590
  401. package/dist/features/InputSuggestions.js.map +1 -0
  402. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  403. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  404. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  405. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  406. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  407. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  408. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  409. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  410. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  411. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  412. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  413. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  414. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  415. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  416. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  417. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  418. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  419. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  420. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  421. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  422. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  423. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  424. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  425. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  426. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  427. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  428. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  429. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  430. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  431. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  432. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  433. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  434. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  435. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  436. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  437. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  438. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  439. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  440. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  441. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  442. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  443. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  444. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  445. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  446. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  447. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  448. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  449. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  450. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  451. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  452. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  453. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  454. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  455. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  456. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  457. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  458. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  459. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  460. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  461. package/dist/generated/i18n/i18n-defaults.js +2 -2
  462. package/dist/generated/templates/CardHeaderTemplate.lit.js +1 -1
  463. package/dist/generated/templates/CardTemplate.lit.js +1 -1
  464. package/dist/generated/templates/CheckBoxTemplate.lit.js +1 -1
  465. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +19 -17
  466. package/dist/generated/templates/CustomListItemTemplate.lit.js +9 -7
  467. package/dist/generated/templates/DialogTemplate.lit.js +1 -1
  468. package/dist/generated/templates/IconTemplate.lit.js +1 -1
  469. package/dist/generated/templates/InputTemplate.lit.js +1 -1
  470. package/dist/generated/templates/LinkTemplate.lit.js +1 -1
  471. package/dist/generated/templates/ListItemTemplate.lit.js +9 -7
  472. package/dist/generated/templates/ListTemplate.lit.js +3 -3
  473. package/dist/generated/templates/MenuTemplate.lit.js +1 -1
  474. package/dist/generated/templates/MonthPickerTemplate.lit.js +1 -1
  475. package/dist/generated/templates/MultiInputTemplate.lit.js +1 -1
  476. package/dist/generated/templates/PopoverTemplate.lit.js +1 -1
  477. package/dist/generated/templates/RangeSliderTemplate.lit.js +1 -1
  478. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +1 -1
  479. package/dist/generated/templates/SegmentedButtonTemplate.lit.js +1 -1
  480. package/dist/generated/templates/SliderTemplate.lit.js +1 -1
  481. package/dist/generated/templates/StandardListItemTemplate.lit.js +20 -16
  482. package/dist/generated/templates/SuggestionListItemTemplate.lit.js +23 -19
  483. package/dist/generated/templates/SwitchTemplate.lit.js +1 -1
  484. package/dist/generated/templates/TabInStripTemplate.lit.js +1 -1
  485. package/dist/generated/templates/TableRowTemplate.lit.js +5 -2
  486. package/dist/generated/templates/TableTemplate.lit.js +1 -1
  487. package/dist/generated/templates/TokenTemplate.lit.js +1 -1
  488. package/dist/generated/templates/TreeItemBaseTemplate.lit.js +10 -8
  489. package/dist/generated/templates/TreeItemCustomTemplate.lit.js +10 -8
  490. package/dist/generated/templates/TreeItemTemplate.lit.js +10 -8
  491. package/dist/generated/templates/TreeTemplate.lit.js +1 -1
  492. package/dist/generated/templates/YearPickerTemplate.lit.js +1 -1
  493. package/dist/generated/themes/Avatar.css.js +1 -1
  494. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  495. package/dist/generated/themes/Button.css.js +1 -1
  496. package/dist/generated/themes/CardHeader.css.js +1 -1
  497. package/dist/generated/themes/Carousel.css.js +1 -1
  498. package/dist/generated/themes/ComboBox.css.js +1 -1
  499. package/dist/generated/themes/DatePicker.css.js +1 -1
  500. package/dist/generated/themes/Dialog.css.js +1 -1
  501. package/dist/generated/themes/Icon.css.js +1 -1
  502. package/dist/generated/themes/Input.css.js +1 -1
  503. package/dist/generated/themes/ListItem.css.js +1 -1
  504. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  505. package/dist/generated/themes/MultiInput.css.js +1 -1
  506. package/dist/generated/themes/RadioButton.css.js +1 -1
  507. package/dist/generated/themes/Select.css.js +1 -1
  508. package/dist/generated/themes/TabInStrip.css.js +1 -1
  509. package/dist/generated/themes/Table.css.js +1 -1
  510. package/dist/generated/themes/TableCell.css.js +1 -1
  511. package/dist/generated/themes/TableRow.css.js +1 -1
  512. package/dist/generated/themes/TextArea.css.js +1 -1
  513. package/dist/generated/themes/Tokenizer.css.js +1 -1
  514. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  515. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  516. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  517. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  518. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  519. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  520. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  521. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  522. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  523. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  524. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  525. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  526. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  527. package/dist/i18n/messagebundle.properties +6 -0
  528. package/dist/i18n/messagebundle_ar.properties +4 -0
  529. package/dist/i18n/messagebundle_bg.properties +4 -0
  530. package/dist/i18n/messagebundle_ca.properties +4 -0
  531. package/dist/i18n/messagebundle_cs.properties +4 -0
  532. package/dist/i18n/messagebundle_cy.properties +4 -0
  533. package/dist/i18n/messagebundle_da.properties +4 -0
  534. package/dist/i18n/messagebundle_de.properties +4 -0
  535. package/dist/i18n/messagebundle_el.properties +4 -0
  536. package/dist/i18n/messagebundle_en.properties +4 -0
  537. package/dist/i18n/messagebundle_en_GB.properties +4 -0
  538. package/dist/i18n/messagebundle_en_US_sappsd.properties +4 -0
  539. package/dist/i18n/messagebundle_en_US_saprigi.properties +4 -0
  540. package/dist/i18n/messagebundle_en_US_saptrc.properties +4 -0
  541. package/dist/i18n/messagebundle_es.properties +4 -0
  542. package/dist/i18n/messagebundle_es_MX.properties +4 -0
  543. package/dist/i18n/messagebundle_et.properties +4 -0
  544. package/dist/i18n/messagebundle_fi.properties +4 -0
  545. package/dist/i18n/messagebundle_fr.properties +4 -0
  546. package/dist/i18n/messagebundle_fr_CA.properties +4 -0
  547. package/dist/i18n/messagebundle_hi.properties +4 -0
  548. package/dist/i18n/messagebundle_hr.properties +4 -0
  549. package/dist/i18n/messagebundle_hu.properties +4 -0
  550. package/dist/i18n/messagebundle_id.properties +4 -0
  551. package/dist/i18n/messagebundle_it.properties +4 -0
  552. package/dist/i18n/messagebundle_iw.properties +4 -0
  553. package/dist/i18n/messagebundle_ja.properties +4 -0
  554. package/dist/i18n/messagebundle_kk.properties +4 -0
  555. package/dist/i18n/messagebundle_ko.properties +4 -0
  556. package/dist/i18n/messagebundle_lt.properties +4 -0
  557. package/dist/i18n/messagebundle_lv.properties +4 -0
  558. package/dist/i18n/messagebundle_ms.properties +4 -0
  559. package/dist/i18n/messagebundle_nl.properties +4 -0
  560. package/dist/i18n/messagebundle_no.properties +5 -1
  561. package/dist/i18n/messagebundle_pl.properties +4 -0
  562. package/dist/i18n/messagebundle_pt.properties +4 -0
  563. package/dist/i18n/messagebundle_pt_PT.properties +4 -0
  564. package/dist/i18n/messagebundle_ro.properties +4 -0
  565. package/dist/i18n/messagebundle_ru.properties +4 -0
  566. package/dist/i18n/messagebundle_sh.properties +4 -0
  567. package/dist/i18n/messagebundle_sk.properties +4 -0
  568. package/dist/i18n/messagebundle_sl.properties +4 -0
  569. package/dist/i18n/messagebundle_sv.properties +4 -0
  570. package/dist/i18n/messagebundle_th.properties +4 -0
  571. package/dist/i18n/messagebundle_tr.properties +4 -0
  572. package/dist/i18n/messagebundle_uk.properties +4 -0
  573. package/dist/i18n/messagebundle_vi.properties +4 -0
  574. package/dist/i18n/messagebundle_zh_CN.properties +4 -0
  575. package/dist/i18n/messagebundle_zh_TW.properties +4 -0
  576. package/dist/popup-utils/OpenedPopupsRegistry.d.ts +9 -0
  577. package/dist/popup-utils/OpenedPopupsRegistry.js +43 -37
  578. package/dist/popup-utils/OpenedPopupsRegistry.js.map +1 -0
  579. package/dist/popup-utils/PopoverRegistry.d.ts +9 -0
  580. package/dist/popup-utils/PopoverRegistry.js +103 -123
  581. package/dist/popup-utils/PopoverRegistry.js.map +1 -0
  582. package/dist/timepicker-utils/TimeSlider.d.ts +15 -0
  583. package/dist/timepicker-utils/TimeSlider.js +80 -92
  584. package/dist/timepicker-utils/TimeSlider.js.map +1 -0
  585. package/dist/types/AvatarColorScheme.d.ts +78 -0
  586. package/dist/types/AvatarColorScheme.js +75 -99
  587. package/dist/types/AvatarColorScheme.js.map +1 -0
  588. package/dist/types/AvatarGroupType.d.ts +26 -0
  589. package/dist/types/AvatarGroupType.js +22 -37
  590. package/dist/types/AvatarGroupType.js.map +1 -0
  591. package/dist/types/AvatarShape.d.ts +24 -0
  592. package/dist/types/AvatarShape.js +20 -35
  593. package/dist/types/AvatarShape.js.map +1 -0
  594. package/dist/types/AvatarSize.d.ts +47 -0
  595. package/dist/types/AvatarSize.js +43 -61
  596. package/dist/types/AvatarSize.js.map +1 -0
  597. package/dist/types/BreadcrumbsDesign.d.ts +26 -0
  598. package/dist/types/BreadcrumbsDesign.js +23 -37
  599. package/dist/types/BreadcrumbsDesign.js.map +1 -0
  600. package/dist/types/BreadcrumbsSeparatorStyle.d.ts +48 -0
  601. package/dist/types/BreadcrumbsSeparatorStyle.js +45 -64
  602. package/dist/types/BreadcrumbsSeparatorStyle.js.map +1 -0
  603. package/dist/types/BusyIndicatorSize.d.ts +30 -0
  604. package/dist/types/BusyIndicatorSize.js +27 -42
  605. package/dist/types/BusyIndicatorSize.js.map +1 -0
  606. package/dist/types/ButtonDesign.d.ts +48 -0
  607. package/dist/types/ButtonDesign.js +45 -63
  608. package/dist/types/ButtonDesign.js.map +1 -0
  609. package/dist/types/CalendarSelectionMode.d.ts +30 -0
  610. package/dist/types/CalendarSelectionMode.js +27 -42
  611. package/dist/types/CalendarSelectionMode.js.map +1 -0
  612. package/dist/types/CarouselArrowsPlacement.d.ts +24 -0
  613. package/dist/types/CarouselArrowsPlacement.js +21 -35
  614. package/dist/types/CarouselArrowsPlacement.js.map +1 -0
  615. package/dist/types/CarouselPageIndicatorStyle.d.ts +25 -0
  616. package/dist/types/CarouselPageIndicatorStyle.js +27 -0
  617. package/dist/types/CarouselPageIndicatorStyle.js.map +1 -0
  618. package/dist/types/HasPopup.d.ts +42 -0
  619. package/dist/types/HasPopup.js +38 -56
  620. package/dist/types/HasPopup.js.map +1 -0
  621. package/dist/types/IconDesign.d.ts +60 -0
  622. package/dist/types/IconDesign.js +62 -0
  623. package/dist/types/IconDesign.js.map +1 -0
  624. package/dist/types/InputType.d.ts +48 -0
  625. package/dist/types/InputType.js +45 -63
  626. package/dist/types/InputType.js.map +1 -0
  627. package/dist/types/LinkDesign.d.ts +30 -0
  628. package/dist/types/LinkDesign.js +27 -42
  629. package/dist/types/LinkDesign.js.map +1 -0
  630. package/dist/types/ListGrowingMode.d.ts +31 -0
  631. package/dist/types/ListGrowingMode.js +28 -43
  632. package/dist/types/ListGrowingMode.js.map +1 -0
  633. package/dist/types/ListItemType.d.ts +36 -0
  634. package/dist/types/ListItemType.js +33 -42
  635. package/dist/types/ListItemType.js.map +1 -0
  636. package/dist/types/ListMode.d.ts +56 -0
  637. package/dist/types/ListMode.js +53 -72
  638. package/dist/types/ListMode.js.map +1 -0
  639. package/dist/types/ListSeparators.d.ts +31 -0
  640. package/dist/types/ListSeparators.js +28 -41
  641. package/dist/types/ListSeparators.js.map +1 -0
  642. package/dist/types/MessageStripDesign.d.ts +36 -0
  643. package/dist/types/MessageStripDesign.js +33 -49
  644. package/dist/types/MessageStripDesign.js.map +1 -0
  645. package/dist/types/PanelAccessibleRole.d.ts +33 -0
  646. package/dist/types/PanelAccessibleRole.js +30 -43
  647. package/dist/types/PanelAccessibleRole.js.map +1 -0
  648. package/dist/types/PopoverHorizontalAlign.d.ts +36 -0
  649. package/dist/types/PopoverHorizontalAlign.js +33 -49
  650. package/dist/types/PopoverHorizontalAlign.js.map +1 -0
  651. package/dist/types/PopoverPlacementType.d.ts +36 -0
  652. package/dist/types/PopoverPlacementType.js +33 -49
  653. package/dist/types/PopoverPlacementType.js.map +1 -0
  654. package/dist/types/PopoverVerticalAlign.d.ts +36 -0
  655. package/dist/types/PopoverVerticalAlign.js +33 -49
  656. package/dist/types/PopoverVerticalAlign.js.map +1 -0
  657. package/dist/types/Priority.d.ts +36 -0
  658. package/dist/types/Priority.js +32 -49
  659. package/dist/types/Priority.js.map +1 -0
  660. package/dist/types/SemanticColor.d.ts +42 -0
  661. package/dist/types/SemanticColor.js +39 -56
  662. package/dist/types/SemanticColor.js.map +1 -0
  663. package/dist/types/SwitchDesign.d.ts +24 -0
  664. package/dist/types/SwitchDesign.js +21 -35
  665. package/dist/types/SwitchDesign.js.map +1 -0
  666. package/dist/types/TabContainerBackgroundDesign.d.ts +30 -0
  667. package/dist/types/TabContainerBackgroundDesign.js +27 -43
  668. package/dist/types/TabContainerBackgroundDesign.js.map +1 -0
  669. package/dist/types/TabContainerTabsPlacement.d.ts +24 -0
  670. package/dist/types/TabContainerTabsPlacement.js +21 -35
  671. package/dist/types/TabContainerTabsPlacement.js.map +1 -0
  672. package/dist/types/TabLayout.d.ts +24 -0
  673. package/dist/types/TabLayout.js +21 -35
  674. package/dist/types/TabLayout.js.map +1 -0
  675. package/dist/types/TableColumnPopinDisplay.d.ts +24 -0
  676. package/dist/types/TableColumnPopinDisplay.js +26 -0
  677. package/dist/types/TableColumnPopinDisplay.js.map +1 -0
  678. package/dist/types/TableGrowingMode.d.ts +31 -0
  679. package/dist/types/TableGrowingMode.js +28 -43
  680. package/dist/types/TableGrowingMode.js.map +1 -0
  681. package/dist/types/TableMode.d.ts +30 -0
  682. package/dist/types/TableMode.js +27 -42
  683. package/dist/types/TableMode.js.map +1 -0
  684. package/dist/types/TableRowType.d.ts +24 -0
  685. package/dist/types/TableRowType.js +21 -35
  686. package/dist/types/TableRowType.js.map +1 -0
  687. package/dist/types/TabsOverflowMode.d.ts +24 -0
  688. package/dist/types/TabsOverflowMode.js +21 -35
  689. package/dist/types/TabsOverflowMode.js.map +1 -0
  690. package/dist/types/TitleLevel.d.ts +48 -0
  691. package/dist/types/TitleLevel.js +45 -63
  692. package/dist/types/TitleLevel.js.map +1 -0
  693. package/dist/types/ToastPlacement.d.ts +67 -0
  694. package/dist/types/ToastPlacement.js +64 -86
  695. package/dist/types/ToastPlacement.js.map +1 -0
  696. package/dist/types/WrappingType.d.ts +24 -0
  697. package/dist/types/WrappingType.js +20 -35
  698. package/dist/types/WrappingType.js.map +1 -0
  699. package/global.d.ts +12 -0
  700. package/package-scripts.js +1 -0
  701. package/package.json +7 -7
  702. package/src/Avatar.ts +435 -0
  703. package/src/AvatarGroup.js +8 -8
  704. package/src/Badge.ts +143 -0
  705. package/src/Breadcrumbs.hbs +41 -38
  706. package/src/{Breadcrumbs.js → Breadcrumbs.ts} +228 -187
  707. package/src/BreadcrumbsItem.ts +92 -0
  708. package/src/BusyIndicator.js +6 -7
  709. package/src/Button.ts +503 -0
  710. package/src/{Calendar.js → Calendar.ts} +152 -142
  711. package/src/CalendarDate.ts +36 -0
  712. package/src/CalendarHeader.ts +218 -0
  713. package/src/{CalendarPart.js → CalendarPart.ts} +15 -26
  714. package/src/Card.hbs +1 -1
  715. package/src/{Card.js → Card.ts} +67 -75
  716. package/src/CardHeader.hbs +1 -1
  717. package/src/CardHeader.ts +275 -0
  718. package/src/Carousel.hbs +72 -72
  719. package/src/Carousel.js +33 -11
  720. package/src/CheckBox.hbs +3 -3
  721. package/src/CheckBox.ts +466 -0
  722. package/src/{ColorPalette.js → ColorPalette.ts} +184 -165
  723. package/src/ColorPaletteItem.ts +124 -0
  724. package/src/{ColorPalettePopover.js → ColorPalettePopover.ts} +99 -97
  725. package/src/ColorPicker.ts +536 -0
  726. package/src/ComboBox.js +9 -9
  727. package/src/ComboBoxGroupItem.js +6 -6
  728. package/src/ComboBoxItem.js +4 -4
  729. package/src/ComboBoxPopover.hbs +45 -42
  730. package/src/CustomListItem.ts +89 -0
  731. package/src/DateComponentBase.ts +174 -0
  732. package/src/{DatePicker.js → DatePicker.ts} +355 -330
  733. package/src/{DateRangePicker.js → DateRangePicker.ts} +65 -61
  734. package/src/{DateTimePicker.js → DateTimePicker.ts} +82 -80
  735. package/src/{DayPicker.js → DayPicker.ts} +274 -218
  736. package/src/Dialog.hbs +1 -1
  737. package/src/{Dialog.js → Dialog.ts} +208 -195
  738. package/src/DurationPicker.js +5 -5
  739. package/src/FileUploader.ts +526 -0
  740. package/src/Filters.ts +28 -0
  741. package/src/GroupHeaderListItem.ts +86 -0
  742. package/src/Icon.hbs +1 -1
  743. package/src/{Icon.js → Icon.ts} +204 -182
  744. package/src/Input.hbs +3 -1
  745. package/src/{Input.js → Input.ts} +738 -706
  746. package/src/{Interfaces.js → Interfaces.ts} +40 -40
  747. package/src/Label.ts +143 -0
  748. package/src/Link.hbs +1 -1
  749. package/src/Link.ts +406 -0
  750. package/src/List.hbs +11 -2
  751. package/src/List.ts +1143 -0
  752. package/src/ListItem.hbs +12 -2
  753. package/src/ListItem.ts +497 -0
  754. package/src/ListItemBase.ts +168 -0
  755. package/src/Menu.hbs +4 -1
  756. package/src/Menu.ts +609 -0
  757. package/src/MenuItem.ts +168 -0
  758. package/src/MessageStrip.ts +245 -0
  759. package/src/MonthPicker.hbs +1 -0
  760. package/src/{MonthPicker.js → MonthPicker.ts} +147 -104
  761. package/src/MultiComboBox.js +13 -11
  762. package/src/MultiComboBoxGroupItem.js +6 -6
  763. package/src/MultiComboBoxItem.js +4 -4
  764. package/src/MultiInput.js +13 -10
  765. package/src/Option.js +6 -6
  766. package/src/{Panel.js → Panel.ts} +179 -219
  767. package/src/Popover.hbs +1 -1
  768. package/src/{Popover.js → Popover.ts} +293 -268
  769. package/src/{Popup.js → Popup.ts} +227 -210
  770. package/src/{ProgressIndicator.js → ProgressIndicator.ts} +91 -95
  771. package/src/RadioButton.js +7 -8
  772. package/src/RadioButtonGroup.js +1 -1
  773. package/src/RangeSlider.hbs +11 -5
  774. package/src/{RangeSlider.js → RangeSlider.ts} +248 -173
  775. package/src/RatingIndicator.js +7 -7
  776. package/src/{ResponsivePopover.js → ResponsivePopover.ts} +84 -62
  777. package/src/SegmentedButton.hbs +1 -0
  778. package/src/SegmentedButton.js +24 -11
  779. package/src/SegmentedButtonItem.js +5 -5
  780. package/src/Select.js +8 -8
  781. package/src/Slider.hbs +2 -2
  782. package/src/{Slider.js → Slider.ts} +94 -62
  783. package/src/{SliderBase.js → SliderBase.ts} +238 -270
  784. package/src/{SplitButton.js → SplitButton.ts} +217 -235
  785. package/src/StandardListItem.hbs +10 -4
  786. package/src/StandardListItem.ts +217 -0
  787. package/src/StepInput.hbs +1 -1
  788. package/src/{StepInput.js → StepInput.ts} +275 -314
  789. package/src/SuggestionGroupItem.ts +51 -0
  790. package/src/SuggestionItem.ts +134 -0
  791. package/src/{SuggestionListItem.js → SuggestionListItem.ts} +30 -32
  792. package/src/Switch.hbs +2 -2
  793. package/src/Switch.ts +299 -0
  794. package/src/Tab.js +13 -8
  795. package/src/TabContainer.js +20 -19
  796. package/src/TabInStrip.hbs +2 -1
  797. package/src/TabSeparator.js +3 -3
  798. package/src/Table.hbs +7 -1
  799. package/src/Table.ts +1303 -0
  800. package/src/{TableCell.js → TableCell.ts} +32 -42
  801. package/src/TableColumn.ts +135 -0
  802. package/src/TableGroupRow.ts +159 -0
  803. package/src/TableRow.hbs +17 -5
  804. package/src/TableRow.ts +505 -0
  805. package/src/TextArea.js +11 -11
  806. package/src/{TimePicker.js → TimePicker.ts} +43 -50
  807. package/src/{TimePickerBase.js → TimePickerBase.ts} +154 -145
  808. package/src/{TimeSelection.js → TimeSelection.ts} +198 -170
  809. package/src/Title.ts +117 -0
  810. package/src/Toast.js +6 -6
  811. package/src/ToggleButton.js +3 -4
  812. package/src/Token.hbs +1 -0
  813. package/src/Token.js +24 -7
  814. package/src/Tokenizer.js +12 -8
  815. package/src/Tree.hbs +2 -1
  816. package/src/Tree.js +28 -14
  817. package/src/TreeItemBase.js +1 -1
  818. package/src/TreeList.js +9 -4
  819. package/src/{WheelSlider.js → WheelSlider.ts} +120 -126
  820. package/src/YearPicker.hbs +1 -0
  821. package/src/{YearPicker.js → YearPicker.ts} +146 -101
  822. package/src/features/{ColorPaletteMoreColors.js → ColorPaletteMoreColors.ts} +8 -3
  823. package/src/features/{InputElementsFormSupport.js → InputElementsFormSupport.ts} +49 -17
  824. package/src/features/{InputSuggestions.js → InputSuggestions.ts} +154 -99
  825. package/src/i18n/messagebundle.properties +6 -0
  826. package/src/i18n/messagebundle_ar.properties +4 -0
  827. package/src/i18n/messagebundle_bg.properties +4 -0
  828. package/src/i18n/messagebundle_ca.properties +4 -0
  829. package/src/i18n/messagebundle_cs.properties +4 -0
  830. package/src/i18n/messagebundle_cy.properties +4 -0
  831. package/src/i18n/messagebundle_da.properties +4 -0
  832. package/src/i18n/messagebundle_de.properties +4 -0
  833. package/src/i18n/messagebundle_el.properties +4 -0
  834. package/src/i18n/messagebundle_en.properties +4 -0
  835. package/src/i18n/messagebundle_en_GB.properties +4 -0
  836. package/src/i18n/messagebundle_en_US_sappsd.properties +4 -0
  837. package/src/i18n/messagebundle_en_US_saprigi.properties +4 -0
  838. package/src/i18n/messagebundle_en_US_saptrc.properties +4 -0
  839. package/src/i18n/messagebundle_es.properties +4 -0
  840. package/src/i18n/messagebundle_es_MX.properties +4 -0
  841. package/src/i18n/messagebundle_et.properties +4 -0
  842. package/src/i18n/messagebundle_fi.properties +4 -0
  843. package/src/i18n/messagebundle_fr.properties +4 -0
  844. package/src/i18n/messagebundle_fr_CA.properties +4 -0
  845. package/src/i18n/messagebundle_hi.properties +4 -0
  846. package/src/i18n/messagebundle_hr.properties +4 -0
  847. package/src/i18n/messagebundle_hu.properties +4 -0
  848. package/src/i18n/messagebundle_id.properties +4 -0
  849. package/src/i18n/messagebundle_it.properties +4 -0
  850. package/src/i18n/messagebundle_iw.properties +4 -0
  851. package/src/i18n/messagebundle_ja.properties +4 -0
  852. package/src/i18n/messagebundle_kk.properties +4 -0
  853. package/src/i18n/messagebundle_ko.properties +4 -0
  854. package/src/i18n/messagebundle_lt.properties +4 -0
  855. package/src/i18n/messagebundle_lv.properties +4 -0
  856. package/src/i18n/messagebundle_ms.properties +4 -0
  857. package/src/i18n/messagebundle_nl.properties +4 -0
  858. package/src/i18n/messagebundle_no.properties +5 -1
  859. package/src/i18n/messagebundle_pl.properties +4 -0
  860. package/src/i18n/messagebundle_pt.properties +4 -0
  861. package/src/i18n/messagebundle_pt_PT.properties +4 -0
  862. package/src/i18n/messagebundle_ro.properties +4 -0
  863. package/src/i18n/messagebundle_ru.properties +4 -0
  864. package/src/i18n/messagebundle_sh.properties +4 -0
  865. package/src/i18n/messagebundle_sk.properties +4 -0
  866. package/src/i18n/messagebundle_sl.properties +4 -0
  867. package/src/i18n/messagebundle_sv.properties +4 -0
  868. package/src/i18n/messagebundle_th.properties +4 -0
  869. package/src/i18n/messagebundle_tr.properties +4 -0
  870. package/src/i18n/messagebundle_uk.properties +4 -0
  871. package/src/i18n/messagebundle_vi.properties +4 -0
  872. package/src/i18n/messagebundle_zh_CN.properties +4 -0
  873. package/src/i18n/messagebundle_zh_TW.properties +4 -0
  874. package/src/popup-utils/{OpenedPopupsRegistry.js → OpenedPopupsRegistry.ts} +31 -5
  875. package/src/popup-utils/{PopoverRegistry.js → PopoverRegistry.ts} +50 -29
  876. package/src/themes/Avatar.css +5 -2
  877. package/src/themes/BusyIndicator.css +1 -1
  878. package/src/themes/Button.css +14 -13
  879. package/src/themes/CardHeader.css +19 -2
  880. package/src/themes/Carousel.css +4 -4
  881. package/src/themes/DatePicker.css +7 -1
  882. package/src/themes/Dialog.css +2 -2
  883. package/src/themes/Icon.css +37 -0
  884. package/src/themes/Input.css +26 -2
  885. package/src/themes/ListItem.css +20 -2
  886. package/src/themes/MultiComboBox.css +0 -4
  887. package/src/themes/MultiInput.css +1 -5
  888. package/src/themes/RadioButton.css +6 -6
  889. package/src/themes/Select.css +1 -1
  890. package/src/themes/TabInStrip.css +10 -10
  891. package/src/themes/Table.css +1 -1
  892. package/src/themes/TableCell.css +4 -0
  893. package/src/themes/TableRow.css +9 -0
  894. package/src/themes/TextArea.css +16 -23
  895. package/src/themes/Tokenizer.css +1 -1
  896. package/src/themes/ValueStateMessage.css +9 -1
  897. package/src/themes/base/Avatar-parameters.css +1 -0
  898. package/src/themes/base/Input-parameters.css +11 -1
  899. package/src/themes/base/Select-parameters.css +1 -1
  900. package/src/themes/base/TextArea-parameters.css +18 -0
  901. package/src/themes/base/Tokenizer-parameters.css +1 -0
  902. package/src/themes/base/sizes-parameters.css +1 -9
  903. package/src/themes/sap_belize/TextArea-parameters.css +8 -0
  904. package/src/themes/sap_belize_hcb/TextArea-parameters.css +8 -0
  905. package/src/themes/sap_belize_hcw/TextArea-parameters.css +8 -0
  906. package/src/themes/sap_fiori_3_hcb/TextArea-parameters.css +13 -3
  907. package/src/themes/sap_fiori_3_hcw/TextArea-parameters.css +13 -3
  908. package/src/themes/sap_horizon/CheckBox-parameters.css +1 -0
  909. package/src/themes/sap_horizon/Input-parameters.css +3 -0
  910. package/src/themes/sap_horizon/TextArea-parameters.css +14 -0
  911. package/src/themes/sap_horizon/Tokenizer-parameters.css +5 -0
  912. package/src/themes/sap_horizon/parameters-bundle.css +1 -1
  913. package/src/themes/sap_horizon_dark/Input-parameters.css +3 -0
  914. package/src/themes/sap_horizon_dark/ListItemBase-parameters.css +0 -1
  915. package/src/themes/sap_horizon_dark/TextArea-parameters.css +14 -0
  916. package/src/themes/sap_horizon_dark/Tokenizer-parameters.css +5 -0
  917. package/src/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  918. package/src/themes/sap_horizon_exp/Select-parameters.css +1 -1
  919. package/src/themes/sap_horizon_hcb/Input-parameters.css +1 -0
  920. package/src/themes/sap_horizon_hcb/TextArea-parameters.css +15 -6
  921. package/src/themes/sap_horizon_hcw/Input-parameters.css +1 -0
  922. package/src/themes/sap_horizon_hcw/TextArea-parameters.css +15 -6
  923. package/src/timepicker-utils/{TimeSlider.js → TimeSlider.ts} +26 -9
  924. package/src/types/AvatarColorScheme.ts +89 -0
  925. package/src/types/AvatarGroupType.ts +28 -0
  926. package/src/types/AvatarShape.ts +26 -0
  927. package/src/types/AvatarSize.ts +52 -0
  928. package/src/types/BreadcrumbsDesign.ts +28 -0
  929. package/src/types/BreadcrumbsSeparatorStyle.ts +55 -0
  930. package/src/types/BusyIndicatorSize.ts +33 -0
  931. package/src/types/ButtonDesign.ts +54 -0
  932. package/src/types/CalendarSelectionMode.ts +33 -0
  933. package/src/types/CarouselArrowsPlacement.ts +26 -0
  934. package/src/types/CarouselPageIndicatorStyle.ts +27 -0
  935. package/src/types/HasPopup.ts +47 -0
  936. package/src/types/IconDesign.ts +68 -0
  937. package/src/types/{InputType.js → InputType.ts} +13 -27
  938. package/src/types/LinkDesign.ts +33 -0
  939. package/src/types/ListGrowingMode.ts +34 -0
  940. package/src/types/ListItemType.ts +40 -0
  941. package/src/types/{ListMode.js → ListMode.ts} +14 -28
  942. package/src/types/ListSeparators.ts +32 -0
  943. package/src/types/MessageStripDesign.ts +40 -0
  944. package/src/types/PanelAccessibleRole.ts +37 -0
  945. package/src/types/PopoverHorizontalAlign.ts +40 -0
  946. package/src/types/PopoverPlacementType.ts +40 -0
  947. package/src/types/PopoverVerticalAlign.ts +40 -0
  948. package/src/types/Priority.ts +40 -0
  949. package/src/types/SemanticColor.ts +47 -0
  950. package/src/types/SwitchDesign.ts +26 -0
  951. package/src/types/TabContainerBackgroundDesign.ts +33 -0
  952. package/src/types/TabContainerTabsPlacement.ts +26 -0
  953. package/src/types/TabLayout.ts +26 -0
  954. package/src/types/TableColumnPopinDisplay.ts +26 -0
  955. package/src/types/TableGrowingMode.ts +34 -0
  956. package/src/types/TableMode.ts +33 -0
  957. package/src/types/TableRowType.ts +26 -0
  958. package/src/types/TabsOverflowMode.ts +26 -0
  959. package/src/types/{TitleLevel.js → TitleLevel.ts} +13 -27
  960. package/src/types/ToastPlacement.ts +77 -0
  961. package/src/types/WrappingType.ts +26 -0
  962. package/tsconfig.json +14 -0
  963. package/dist/assets/ar.7fd1011b.js +0 -1
  964. package/dist/assets/ar_EG.4dd5f305.js +0 -1
  965. package/dist/assets/ar_SA.8c5a937a.js +0 -1
  966. package/dist/assets/bg.a4d82c03.js +0 -1
  967. package/dist/assets/ca.0021f734.js +0 -1
  968. package/dist/assets/cs.0e585b65.js +0 -1
  969. package/dist/assets/da.521611de.js +0 -1
  970. package/dist/assets/de.63fdffdf.js +0 -1
  971. package/dist/assets/de_AT.ea95f993.js +0 -1
  972. package/dist/assets/de_CH.90d5e701.js +0 -1
  973. package/dist/assets/el.3e1beb01.js +0 -1
  974. package/dist/assets/el_CY.209073e0.js +0 -1
  975. package/dist/assets/en.1af5f31c.js +0 -1
  976. package/dist/assets/en_AU.25e8cf38.js +0 -1
  977. package/dist/assets/en_GB.43297e37.js +0 -1
  978. package/dist/assets/en_HK.0da1e0b5.js +0 -1
  979. package/dist/assets/en_IE.c4988873.js +0 -1
  980. package/dist/assets/en_IN.96d721e2.js +0 -1
  981. package/dist/assets/en_NZ.1091e526.js +0 -1
  982. package/dist/assets/en_PG.f028e345.js +0 -1
  983. package/dist/assets/en_SG.8d370bdb.js +0 -1
  984. package/dist/assets/en_ZA.0cbf9d6e.js +0 -1
  985. package/dist/assets/es.37dda275.js +0 -1
  986. package/dist/assets/es_AR.da796f99.js +0 -1
  987. package/dist/assets/es_BO.2b15333c.js +0 -1
  988. package/dist/assets/es_CL.048ca1f2.js +0 -1
  989. package/dist/assets/es_CO.257ed3d6.js +0 -1
  990. package/dist/assets/es_MX.061e6bbb.js +0 -1
  991. package/dist/assets/es_PE.f7c17b7a.js +0 -1
  992. package/dist/assets/es_UY.73781c0c.js +0 -1
  993. package/dist/assets/es_VE.fe0f3310.js +0 -1
  994. package/dist/assets/et.fbe81c9d.js +0 -1
  995. package/dist/assets/fa.acfcfa4d.js +0 -1
  996. package/dist/assets/fi.0379b5fc.js +0 -1
  997. package/dist/assets/fr.f6c58c06.js +0 -1
  998. package/dist/assets/fr_BE.c6e52c3f.js +0 -1
  999. package/dist/assets/fr_CA.e3c92112.js +0 -1
  1000. package/dist/assets/fr_CH.fc89bdfc.js +0 -1
  1001. package/dist/assets/fr_LU.4fffec47.js +0 -1
  1002. package/dist/assets/he.ca2cb3e0.js +0 -1
  1003. package/dist/assets/hi.82a0ad5b.js +0 -1
  1004. package/dist/assets/hr.ab15877f.js +0 -1
  1005. package/dist/assets/hu.c3d72d24.js +0 -1
  1006. package/dist/assets/id.163ccc8d.js +0 -1
  1007. package/dist/assets/it_CH.69227571.js +0 -1
  1008. package/dist/assets/ja.18f39a5b.js +0 -1
  1009. package/dist/assets/kk.a697e741.js +0 -1
  1010. package/dist/assets/ko.ebe1e5db.js +0 -1
  1011. package/dist/assets/lt.775927de.js +0 -1
  1012. package/dist/assets/lv.d7e9d5e6.js +0 -1
  1013. package/dist/assets/messagebundle_ca.0d94d392.js +0 -1
  1014. package/dist/assets/messagebundle_cs.fd5eaccc.js +0 -1
  1015. package/dist/assets/messagebundle_cy.ff1e6c97.js +0 -1
  1016. package/dist/assets/messagebundle_da.5ff8a1f1.js +0 -1
  1017. package/dist/assets/messagebundle_de.bff2fc47.js +0 -1
  1018. package/dist/assets/messagebundle_en.fdb7abce.js +0 -1
  1019. package/dist/assets/messagebundle_en_GB.4a95abfb.js +0 -1
  1020. package/dist/assets/messagebundle_en_US_saptrc.71435964.js +0 -1
  1021. package/dist/assets/messagebundle_es.04498029.js +0 -1
  1022. package/dist/assets/messagebundle_es_MX.a39214a3.js +0 -1
  1023. package/dist/assets/messagebundle_et.d2e7cd16.js +0 -1
  1024. package/dist/assets/messagebundle_fi.1aa86ded.js +0 -1
  1025. package/dist/assets/messagebundle_fr.d651062e.js +0 -1
  1026. package/dist/assets/messagebundle_fr_CA.5a066480.js +0 -1
  1027. package/dist/assets/messagebundle_hr.51d15b46.js +0 -1
  1028. package/dist/assets/messagebundle_hu.f66f6bd4.js +0 -1
  1029. package/dist/assets/messagebundle_it.fc18db7c.js +0 -1
  1030. package/dist/assets/messagebundle_iw.61cc9591.js +0 -1
  1031. package/dist/assets/messagebundle_ja.9d222bf0.js +0 -1
  1032. package/dist/assets/messagebundle_ko.c1f9bbe4.js +0 -1
  1033. package/dist/assets/messagebundle_lt.68cc1270.js +0 -1
  1034. package/dist/assets/messagebundle_lv.45ee5e9b.js +0 -1
  1035. package/dist/assets/messagebundle_ms.5c238d83.js +0 -1
  1036. package/dist/assets/messagebundle_nl.42d4c6f9.js +0 -1
  1037. package/dist/assets/messagebundle_no.040efcc2.js +0 -1
  1038. package/dist/assets/messagebundle_pl.180e5190.js +0 -1
  1039. package/dist/assets/messagebundle_pt.8c0b8aa8.js +0 -1
  1040. package/dist/assets/messagebundle_pt_PT.08badb3a.js +0 -1
  1041. package/dist/assets/messagebundle_ro.dc736139.js +0 -1
  1042. package/dist/assets/messagebundle_sh.06513aad.js +0 -1
  1043. package/dist/assets/messagebundle_sk.f8c93117.js +0 -1
  1044. package/dist/assets/messagebundle_sl.e321cf3f.js +0 -1
  1045. package/dist/assets/messagebundle_sv.7c70049d.js +0 -1
  1046. package/dist/assets/messagebundle_tr.b1de509f.js +0 -1
  1047. package/dist/assets/messagebundle_vi.39c09ada.js +0 -1
  1048. package/dist/assets/messagebundle_zh_CN.cb6c2fc4.js +0 -1
  1049. package/dist/assets/messagebundle_zh_TW.38b9d6a7.js +0 -1
  1050. package/dist/assets/ms.d6569411.js +0 -1
  1051. package/dist/assets/nb.e08266d5.js +0 -1
  1052. package/dist/assets/nl.9999541e.js +0 -1
  1053. package/dist/assets/nl_BE.10b9e463.js +0 -1
  1054. package/dist/assets/parameters-bundle.css.1f15a001.js +0 -1
  1055. package/dist/assets/parameters-bundle.css.2c92b83f.js +0 -1
  1056. package/dist/assets/parameters-bundle.css.37d45e6a.js +0 -1
  1057. package/dist/assets/parameters-bundle.css.43cfec9f.js +0 -1
  1058. package/dist/assets/parameters-bundle.css.6ac2a3ec.js +0 -1
  1059. package/dist/assets/parameters-bundle.css.8156fdfe.js +0 -1
  1060. package/dist/assets/parameters-bundle.css.9ff9d4cd.js +0 -1
  1061. package/dist/assets/parameters-bundle.css.abcd1057.js +0 -1
  1062. package/dist/assets/parameters-bundle.css.b58e1801.js +0 -1
  1063. package/dist/assets/parameters-bundle.css.d4817fb4.js +0 -1
  1064. package/dist/assets/parameters-bundle.css.dd8f8072.js +0 -1
  1065. package/dist/assets/parameters-bundle.css.feee54fa.js +0 -1
  1066. package/dist/assets/pl.896f748a.js +0 -1
  1067. package/dist/assets/pt.9282da43.js +0 -1
  1068. package/dist/assets/pt_PT.8de6f4a2.js +0 -1
  1069. package/dist/assets/ro.f27aab0d.js +0 -1
  1070. package/dist/assets/ru.925a56df.js +0 -1
  1071. package/dist/assets/ru_UA.066d9903.js +0 -1
  1072. package/dist/assets/sk.cea36c4c.js +0 -1
  1073. package/dist/assets/sl.00e904c8.js +0 -1
  1074. package/dist/assets/sr.5ffa8a72.js +0 -1
  1075. package/dist/assets/sr_Latn.37760dd7.js +0 -1
  1076. package/dist/assets/sv.e8d71660.js +0 -1
  1077. package/dist/assets/th.9c7b50b0.js +0 -1
  1078. package/dist/assets/tr.0a0fb3ee.js +0 -1
  1079. package/dist/assets/uk.7ee1da23.js +0 -1
  1080. package/dist/assets/vi.b1f74e9c.js +0 -1
  1081. package/dist/assets/zh_CN.a1d71c11.js +0 -1
  1082. package/dist/assets/zh_HK.a47dd921.js +0 -1
  1083. package/dist/assets/zh_SG.1cd17a31.js +0 -1
  1084. package/dist/assets/zh_TW.b03069d7.js +0 -1
  1085. package/dist/types/GrowingMode.js +0 -48
  1086. package/src/Avatar.js +0 -451
  1087. package/src/Badge.js +0 -151
  1088. package/src/BreadcrumbsItem.js +0 -103
  1089. package/src/Button.js +0 -513
  1090. package/src/CalendarDate.js +0 -45
  1091. package/src/CalendarHeader.js +0 -213
  1092. package/src/CardHeader.js +0 -283
  1093. package/src/CheckBox.js +0 -471
  1094. package/src/ColorPaletteItem.js +0 -137
  1095. package/src/ColorPicker.js +0 -600
  1096. package/src/CustomListItem.js +0 -99
  1097. package/src/DateComponentBase.js +0 -168
  1098. package/src/FileUploader.js +0 -533
  1099. package/src/Filters.js +0 -28
  1100. package/src/GroupHeaderListItem.js +0 -94
  1101. package/src/Label.js +0 -158
  1102. package/src/Link.js +0 -410
  1103. package/src/List.js +0 -1120
  1104. package/src/ListItem.js +0 -428
  1105. package/src/ListItemBase.js +0 -181
  1106. package/src/Menu.js +0 -502
  1107. package/src/MenuItem.js +0 -193
  1108. package/src/MessageStrip.js +0 -256
  1109. package/src/StandardListItem.js +0 -207
  1110. package/src/SuggestionGroupItem.js +0 -64
  1111. package/src/SuggestionItem.js +0 -146
  1112. package/src/Switch.js +0 -306
  1113. package/src/Table.js +0 -1200
  1114. package/src/TableColumn.js +0 -129
  1115. package/src/TableGroupRow.js +0 -167
  1116. package/src/TableRow.js +0 -464
  1117. package/src/Title.js +0 -132
  1118. package/src/types/AvatarColorScheme.js +0 -104
  1119. package/src/types/AvatarGroupType.js +0 -43
  1120. package/src/types/AvatarShape.js +0 -41
  1121. package/src/types/AvatarSize.js +0 -67
  1122. package/src/types/BreadcrumbsDesign.js +0 -42
  1123. package/src/types/BreadcrumbsSeparatorStyle.js +0 -69
  1124. package/src/types/BusyIndicatorSize.js +0 -47
  1125. package/src/types/ButtonDesign.js +0 -68
  1126. package/src/types/CalendarSelectionMode.js +0 -47
  1127. package/src/types/CarouselArrowsPlacement.js +0 -40
  1128. package/src/types/GrowingMode.js +0 -48
  1129. package/src/types/HasPopup.js +0 -62
  1130. package/src/types/LinkDesign.js +0 -47
  1131. package/src/types/ListGrowingMode.js +0 -48
  1132. package/src/types/ListItemType.js +0 -47
  1133. package/src/types/ListSeparators.js +0 -46
  1134. package/src/types/MessageStripDesign.js +0 -54
  1135. package/src/types/PanelAccessibleRole.js +0 -48
  1136. package/src/types/PopoverHorizontalAlign.js +0 -54
  1137. package/src/types/PopoverPlacementType.js +0 -54
  1138. package/src/types/PopoverVerticalAlign.js +0 -54
  1139. package/src/types/Priority.js +0 -55
  1140. package/src/types/SemanticColor.js +0 -61
  1141. package/src/types/SwitchDesign.js +0 -40
  1142. package/src/types/TabContainerBackgroundDesign.js +0 -48
  1143. package/src/types/TabContainerTabsPlacement.js +0 -40
  1144. package/src/types/TabLayout.js +0 -40
  1145. package/src/types/TableGrowingMode.js +0 -48
  1146. package/src/types/TableMode.js +0 -47
  1147. package/src/types/TableRowType.js +0 -40
  1148. package/src/types/TabsOverflowMode.js +0 -40
  1149. package/src/types/ToastPlacement.js +0 -91
  1150. package/src/types/WrappingType.js +0 -41
@@ -1,4 +1,10 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
3
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
4
+ import event from "@ui5/webcomponents-base/dist/decorators/event.js";
5
+ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
6
+ import languageAware from "@ui5/webcomponents-base/dist/decorators/languageAware.js";
7
+ import type { ClassMap } from "@ui5/webcomponents-base/dist/types.js";
2
8
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
3
9
  import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
4
10
  import {
@@ -22,6 +28,8 @@ import {
22
28
  isEnd,
23
29
  } from "@ui5/webcomponents-base/dist/Keys.js";
24
30
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
31
+ import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
32
+ import type { I18nText } from "@ui5/webcomponents-base/dist/i18nBundle.js";
25
33
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
26
34
  import { getEffectiveAriaLabelText, getAssociatedLabelForTexts } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
27
35
  import { getCaretPosition, setCaretPosition } from "@ui5/webcomponents-base/dist/util/Caret.js";
@@ -32,13 +40,20 @@ import "@ui5/webcomponents-icons/dist/error.js";
32
40
  import "@ui5/webcomponents-icons/dist/alert.js";
33
41
  import "@ui5/webcomponents-icons/dist/sys-enter-2.js";
34
42
  import "@ui5/webcomponents-icons/dist/information.js";
43
+ import type SuggestionItem from "./SuggestionItem.js";
44
+ import type { InputSuggestionText, SuggestionComponent } from "./features/InputSuggestions.js";
45
+ import type InputSuggestions from "./features/InputSuggestions.js";
46
+ import type FormSupportT from "./features/InputElementsFormSupport.js";
47
+ import type { IFormElement } from "./features/InputElementsFormSupport.js";
48
+ import type SuggestionListItem from "./SuggestionListItem.js";
49
+ import type { PopupScrollEventDetail } from "./Popup.js";
35
50
  import InputType from "./types/InputType.js";
36
51
  import Popover from "./Popover.js";
37
52
  import Icon from "./Icon.js";
38
53
  // Templates
39
54
  import InputTemplate from "./generated/templates/InputTemplate.lit.js";
40
55
  import InputPopoverTemplate from "./generated/templates/InputPopoverTemplate.lit.js";
41
- import * as Filters from "./Filters.js";
56
+ import { StartsWith } from "./Filters.js";
42
57
 
43
58
  import {
44
59
  VALUE_STATE_SUCCESS,
@@ -54,6 +69,7 @@ import {
54
69
  INPUT_SUGGESTIONS_ONE_HIT,
55
70
  INPUT_SUGGESTIONS_MORE_HITS,
56
71
  INPUT_SUGGESTIONS_NO_HIT,
72
+ // @ts-ignore
57
73
  } from "./generated/i18n/i18n-defaults.js";
58
74
 
59
75
  // Styles
@@ -62,465 +78,54 @@ import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverComm
62
78
  import ValueStateMessageCss from "./generated/themes/ValueStateMessage.css.js";
63
79
  import SuggestionsCss from "./generated/themes/Suggestions.css.js";
64
80
 
65
- /**
66
- * @public
67
- */
68
- const metadata = {
69
- tag: "ui5-input",
70
- languageAware: true,
71
- managedSlots: true,
72
- slots: /** @lends sap.ui.webcomponents.main.Input.prototype */ {
73
-
74
- /**
75
- * Defines the icon to be displayed in the component.
76
- *
77
- * @type {sap.ui.webcomponents.main.IIcon[]}
78
- * @slot
79
- * @public
80
- */
81
- icon: {
82
- type: HTMLElement,
83
- },
84
-
85
- /**
86
- * Defines the suggestion items.
87
- * <br><br>
88
- * Example:
89
- * <br><br>
90
- * &lt;ui5-input show-suggestions><br>
91
- * &nbsp;&nbsp;&nbsp;&nbsp;&lt;ui5-suggestion-item text="Item #1">&lt;/ui5-suggestion-item><br>
92
- * &nbsp;&nbsp;&nbsp;&nbsp;&lt;ui5-suggestion-item text="Item #2">&lt;/ui5-suggestion-item><br>
93
- * &lt;/ui5-input>
94
- * <br>
95
- * <ui5-input show-suggestions>
96
- * <ui5-suggestion-group-item text="Group #1"></ui5-suggestion-group-item>
97
- * <ui5-suggestion-item text="Item #1"></ui5-suggestion-item>
98
- * <ui5-suggestion-item text="Item #2"></ui5-suggestion-item>
99
- * <ui5-suggestion-group-item text="Group #2"></ui5-suggestion-group-item>
100
- * <ui5-suggestion-item text="Item #3"></ui5-suggestion-item>
101
- * <ui5-suggestion-item text="Item #4"></ui5-suggestion-item>
102
- * </ui5-input>
103
- * <br><br>
104
- * <b>Note:</b> The suggestions would be displayed only if the <code>showSuggestions</code>
105
- * property is set to <code>true</code>.
106
- * <br><br>
107
- * <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.
108
- * <br><br>
109
- * <b>Note:</b> Importing the Input Suggestions Support feature:
110
- * <br>
111
- * <code>import "@ui5/webcomponents/dist/features/InputSuggestions.js";</code>
112
- * <br>
113
- * automatically imports the <code>&lt;ui5-suggestion-item></code> and <code>&lt;ui5-suggestion-group-item></code> for your convenience.
114
- *
115
- * @type {sap.ui.webcomponents.main.IInputSuggestionItem[]}
116
- * @slot suggestionItems
117
- * @public
118
- */
119
- "default": {
120
- propertyName: "suggestionItems",
121
- type: HTMLElement,
122
- },
123
-
124
- /**
125
- * The slot is used for native <code>input</code> HTML element to enable form submit,
126
- * when <code>name</code> property is set.
127
- * @type {HTMLElement[]}
128
- * @private
129
- */
130
- formSupport: {
131
- type: HTMLElement,
132
- },
133
-
134
- /**
135
- * Defines the value state message that will be displayed as pop up under the component.
136
- * <br><br>
137
- *
138
- * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.
139
- * <br><br>
140
- * <b>Note:</b> The <code>valueStateMessage</code> would be displayed,
141
- * when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
142
- * <br><br>
143
- * <b>Note:</b> If the component has <code>suggestionItems</code>,
144
- * the <code>valueStateMessage</code> would be displayed as part of the same popover, if used on desktop, or dialog - on phone.
145
- * @type {HTMLElement[]}
146
- * @since 1.0.0-rc.6
147
- * @slot
148
- * @public
149
- */
150
- valueStateMessage: {
151
- type: HTMLElement,
152
- },
153
- },
154
- properties: /** @lends sap.ui.webcomponents.main.Input.prototype */ {
155
-
156
- /**
157
- * Defines whether the component is in disabled state.
158
- * <br><br>
159
- * <b>Note:</b> A disabled component is completely noninteractive.
160
- *
161
- * @type {boolean}
162
- * @defaultvalue false
163
- * @public
164
- */
165
- disabled: {
166
- type: Boolean,
167
- },
168
-
169
- /**
170
- * Defines if characters within the suggestions are to be highlighted
171
- * in case the input value matches parts of the suggestions text.
172
- * <br><br>
173
- * <b>Note:</b> takes effect when <code>showSuggestions</code> is set to <code>true</code>
174
- *
175
- * @type {boolean}
176
- * @defaultvalue false
177
- * @private
178
- * @sicne 1.0.0-rc.8
179
- */
180
- highlight: {
181
- type: Boolean,
182
- },
183
-
184
- /**
185
- * Defines a short hint intended to aid the user with data entry when the
186
- * component has no value.
187
- * @type {string}
188
- * @defaultvalue ""
189
- * @public
190
- */
191
- placeholder: {
192
- type: String,
193
- },
194
-
195
- /**
196
- * Defines whether the component is read-only.
197
- * <br><br>
198
- * <b>Note:</b> A read-only component is not editable,
199
- * but still provides visual feedback upon user interaction.
200
- *
201
- * @type {boolean}
202
- * @defaultvalue false
203
- * @public
204
- */
205
- readonly: {
206
- type: Boolean,
207
- },
208
-
209
- /**
210
- * Defines whether the component is required.
211
- *
212
- * @type {boolean}
213
- * @defaultvalue false
214
- * @public
215
- * @since 1.0.0-rc.3
216
- */
217
- required: {
218
- type: Boolean,
219
- },
220
-
221
- /**
222
- * Defines whether the value will be autcompleted to match an item
223
- *
224
- * @type {boolean}
225
- * @defaultvalue false
226
- * @public
227
- * @since 1.4.0
228
- */
229
- noTypeahead: {
230
- type: Boolean,
231
- },
232
-
233
- /**
234
- * Defines the HTML type of the component.
235
- * Available options are: <code>Text</code>, <code>Email</code>,
236
- * <code>Number</code>, <code>Password</code>, <code>Tel</code>, and <code>URL</code>.
237
- * <br><br>
238
- * <b>Notes:</b>
239
- * <ul>
240
- * <li>The particular effect of this property differs depending on the browser
241
- * and the current language settings, especially for type <code>Number</code>.</li>
242
- * <li>The property is mostly intended to be used with touch devices
243
- * that use different soft keyboard layouts depending on the given input type.</li>
244
- * </ul>
245
- *
246
- * @type {sap.ui.webcomponents.main.types.InputType}
247
- * @defaultvalue "Text"
248
- * @public
249
- */
250
- type: {
251
- type: InputType,
252
- defaultValue: InputType.Text,
253
- },
254
-
255
- /**
256
- * Defines the value of the component.
257
- * <br><br>
258
- * <b>Note:</b> The property is updated upon typing.
259
- *
260
- * @type {string}
261
- * @defaultvalue ""
262
- * @formEvents change input
263
- * @formProperty
264
- * @public
265
- */
266
- value: {
267
- type: String,
268
- },
269
-
270
- /**
271
- * Defines the inner stored value of the component.
272
- * <br><br>
273
- * <b>Note:</b> The property is updated upon typing. In some special cases the old value is kept (e.g. deleting the value after the dot in a float)
274
- *
275
- * @type {string}
276
- * @defaultvalue ""
277
- * @private
278
- */
279
- _innerValue: {
280
- type: String,
281
- noAttribute: true,
282
- },
283
-
284
- /**
285
- * Defines the value state of the component.
286
- * <br><br>
287
- * Available options are:
288
- * <ul>
289
- * <li><code>None</code></li>
290
- * <li><code>Error</code></li>
291
- * <li><code>Warning</code></li>
292
- * <li><code>Success</code></li>
293
- * <li><code>Information</code></li>
294
- * </ul>
295
- *
296
- * @type {sap.ui.webcomponents.base.types.ValueState}
297
- * @defaultvalue "None"
298
- * @public
299
- */
300
- valueState: {
301
- type: ValueState,
302
- defaultValue: ValueState.None,
303
- },
304
-
305
- /**
306
- * Determines the name with which the component will be submitted in an HTML form.
307
- *
308
- * <br><br>
309
- * <b>Important:</b> For the <code>name</code> property to have effect, you must add the following import to your project:
310
- * <code>import "@ui5/webcomponents/dist/features/InputElementsFormSupport.js";</code>
311
- *
312
- * <br><br>
313
- * <b>Note:</b> When set, a native <code>input</code> HTML element
314
- * will be created inside the component so that it can be submitted as
315
- * part of an HTML form. Do not use this property unless you need to submit a form.
316
- *
317
- * @type {string}
318
- * @defaultvalue ""
319
- * @public
320
- */
321
- name: {
322
- type: String,
323
- },
324
-
325
- /**
326
- * Defines whether the component should show suggestions, if such are present.
327
- * <br><br>
328
- * <b>Note:</b> You need to import the <code>InputSuggestions</code> module
329
- * from <code>"@ui5/webcomponents/dist/features/InputSuggestions.js"</code> to enable this functionality.
330
- * @type {boolean}
331
- * @defaultvalue false
332
- * @public
333
- */
334
- showSuggestions: {
335
- type: Boolean,
336
- },
337
-
338
- /**
339
- * Sets the maximum number of characters available in the input field.
340
- * <br><br>
341
- * <b>Note:</b> This property is not compatible with the ui5-input type InputType.Number. If the ui5-input type is set to Number, the maxlength value is ignored.
342
- * @type {sap.ui.webcomponents.base.types.Integer}
343
- * @since 1.0.0-rc.5
344
- * @public
345
- */
346
- maxlength: {
347
- type: Integer,
348
- },
349
-
350
- /**
351
- * Defines the accessible ARIA name of the component.
352
- *
353
- * @type {string}
354
- * @public
355
- * @since 1.0.0-rc.15
356
- */
357
- accessibleName: {
358
- type: String,
359
- },
360
-
361
- /**
362
- * Receives id(or many ids) of the elements that label the input.
363
- *
364
- * @type {string}
365
- * @defaultvalue ""
366
- * @public
367
- * @since 1.0.0-rc.15
368
- */
369
- accessibleNameRef: {
370
- type: String,
371
- defaultValue: "",
372
- },
373
-
374
- /**
375
- * Defines whether the clear icon of the input will be shown.
376
- *
377
- * @type {boolean}
378
- * @defaultvalue false
379
- * @public
380
- * @since 1.2.0
381
- */
382
- showClearIcon: {
383
- type: Boolean,
384
- },
385
-
386
- /**
387
- * Defines whether the clear icon is visible.
388
- *
389
- * @type {boolean}
390
- * @defaultvalue false
391
- * @private
392
- * @since 1.2.0
393
- */
394
- effectiveShowClearIcon: {
395
- type: Boolean,
396
- },
397
-
398
- /**
399
- * @private
400
- */
401
- focused: {
402
- type: Boolean,
403
- },
404
-
405
- openOnMobile: {
406
- type: Boolean,
407
- },
408
-
409
- open: {
410
- type: Boolean,
411
- },
412
-
413
- /**
414
- * Determines whether to manually show the suggestions popover
415
- * @private
416
- */
417
- _forceOpen: {
418
- type: Boolean,
419
- },
420
-
421
- /**
422
- * Indicates whether the visual focus is on the value state header
423
- * @private
424
- */
425
- _isValueStateFocused: {
426
- type: Boolean,
427
- },
428
-
429
- _input: {
430
- type: Object,
431
- },
432
-
433
- _inputAccInfo: {
434
- type: Object,
435
- },
436
-
437
- _nativeInputAttributes: {
438
- type: Object,
439
- },
440
-
441
- _inputWidth: {
442
- type: Integer,
443
- },
444
-
445
- _listWidth: {
446
- type: Integer,
447
- },
448
-
449
- _isPopoverOpen: {
450
- type: Boolean,
451
- noAttribute: true,
452
- },
453
-
454
- _inputIconFocused: {
455
- type: Boolean,
456
- noAttribute: true,
457
- },
458
- },
459
- events: /** @lends sap.ui.webcomponents.main.Input.prototype */ {
460
- /**
461
- * Fired when the input operation has finished by pressing Enter or on focusout.
462
- *
463
- * @event
464
- * @public
465
- */
466
- change: {},
467
-
468
- /**
469
- * Fired when the value of the component changes at each keystroke,
470
- * and when a suggestion item has been selected.
471
- *
472
- * @event
473
- * @public
474
- */
475
- input: {},
476
-
477
- /**
478
- * Fired when a suggestion item, that is displayed in the suggestion popup, is selected.
479
- *
480
- * @event sap.ui.webcomponents.main.Input#suggestion-item-select
481
- * @param {HTMLElement} item The selected item.
482
- * @public
483
- */
484
- "suggestion-item-select": {
485
- detail: {
486
- item: { type: HTMLElement },
487
- },
488
- },
489
-
490
- /**
491
- * Fired when the user navigates to a suggestion item via the ARROW keys,
492
- * as a preview, before the final selection.
493
- *
494
- * @event sap.ui.webcomponents.main.Input#suggestion-item-preview
495
- * @param {HTMLElement} item The previewed suggestion item.
496
- * @param {HTMLElement} targetRef The DOM ref of the suggestion item.
497
- * @public
498
- * @since 1.0.0-rc.8
499
- */
500
- "suggestion-item-preview": {
501
- detail: {
502
- item: { type: HTMLElement },
503
- targetRef: { type: HTMLElement },
504
- },
505
- },
506
-
507
- /**
508
- * Fired when the user scrolls the suggestion popover.
509
- *
510
- * @event sap.ui.webcomponents.main.Input#suggestion-scroll
511
- * @param {Integer} scrollTop The current scroll position.
512
- * @param {HTMLElement} scrollContainer The scroll container.
513
- * @protected
514
- * @since 1.0.0-rc.8
515
- */
516
- "suggestion-scroll": {
517
- detail: {
518
- scrollTop: { type: Integer },
519
- scrollContainer: { type: HTMLElement },
520
- },
521
- },
522
- },
523
- };
81
+ type NativeInputAttributes = {
82
+ min?: number,
83
+ max?: number,
84
+ step?: number
85
+ }
86
+
87
+ type AccInfo = {
88
+ ariaRoledescription?: string,
89
+ ariaDescribedBy?: string,
90
+ ariaHasPopup?: string,
91
+ ariaAutoComplete?: string,
92
+ role?: string,
93
+ ariaControls?: string,
94
+ ariaExpanded?: string,
95
+ ariaDescription?: string,
96
+ ariaLabel?: string,
97
+ }
98
+
99
+ // all sementic events
100
+ enum INPUT_EVENTS {
101
+ CHANGE = "change",
102
+ INPUT = "input",
103
+ SUGGESTION_ITEM_SELECT = "suggestion-item-select",
104
+ }
105
+
106
+ // all user interactions
107
+ enum INPUT_ACTIONS {
108
+ ACTION_ENTER = "enter",
109
+ ACTION_USER_INPUT = "input",
110
+ }
111
+
112
+ type InputEventDetail = {
113
+ inputType?: string;
114
+ }
115
+
116
+ type SuggestionItemSelectEventDetail = {
117
+ item: SuggestionItem;
118
+ }
119
+
120
+ type SuggestionItemPreviewEventDetail = {
121
+ item: SuggestionItem;
122
+ targetRef: SuggestionListItem;
123
+ }
124
+
125
+ type SuggestionScrollEventDetail = {
126
+ scrollTop: number;
127
+ scrollContainer: HTMLElement;
128
+ }
524
129
 
525
130
  /**
526
131
  * @class
@@ -565,17 +170,458 @@ const metadata = {
565
170
  *
566
171
  * @constructor
567
172
  * @author SAP SE
568
- * @alias sap.ui.webcomponents.main.Input
569
- * @extends sap.ui.webcomponents.base.UI5Element
173
+ * @alias sap.ui.webc.main.Input
174
+ * @extends sap.ui.webc.base.UI5Element
570
175
  * @tagname ui5-input
571
176
  * @appenddocs SuggestionItem SuggestionGroupItem
572
- * @implements sap.ui.webcomponents.main.IInput
177
+ * @implements sap.ui.webc.main.IInput
573
178
  * @public
574
179
  */
575
- class Input extends UI5Element {
576
- static get metadata() {
577
- return metadata;
578
- }
180
+ @customElement("ui5-input")
181
+ @languageAware
182
+
183
+ /**
184
+ * Fired when the input operation has finished by pressing Enter or on focusout.
185
+ *
186
+ * @event sap.ui.webc.main.Input#change
187
+ * @public
188
+ */
189
+ @event("change")
190
+
191
+ /**
192
+ * Fired when the value of the component changes at each keystroke,
193
+ * and when a suggestion item has been selected.
194
+ *
195
+ * @event sap.ui.webc.main.Input#input
196
+ * @public
197
+ */
198
+ @event("input")
199
+
200
+ /**
201
+ * Fired when a suggestion item, that is displayed in the suggestion popup, is selected.
202
+ *
203
+ * @event sap.ui.webc.main.Input#suggestion-item-select
204
+ * @param {HTMLElement} item The selected item.
205
+ * @public
206
+ */
207
+ @event("suggestion-item-select", {
208
+ detail: {
209
+ item: { type: HTMLElement },
210
+ },
211
+ })
212
+
213
+ /**
214
+ * Fired when the user navigates to a suggestion item via the ARROW keys,
215
+ * as a preview, before the final selection.
216
+ *
217
+ * @event sap.ui.webc.main.Input#suggestion-item-preview
218
+ * @param {HTMLElement} item The previewed suggestion item.
219
+ * @param {HTMLElement} targetRef The DOM ref of the suggestion item.
220
+ * @public
221
+ * @since 1.0.0-rc.8
222
+ */
223
+ @event("suggestion-item-preview", {
224
+ detail: {
225
+ item: { type: HTMLElement },
226
+ targetRef: { type: HTMLElement },
227
+ },
228
+ })
229
+
230
+ /**
231
+ * Fired when the user scrolls the suggestion popover.
232
+ *
233
+ * @event sap.ui.webc.main.Input#suggestion-scroll
234
+ * @param {Integer} scrollTop The current scroll position.
235
+ * @param {HTMLElement} scrollContainer The scroll container.
236
+ * @protected
237
+ * @since 1.0.0-rc.8
238
+ */
239
+ @event("suggestion-scroll", {
240
+ detail: {
241
+ scrollTop: { type: Integer },
242
+ scrollContainer: { type: HTMLElement },
243
+ },
244
+ })
245
+
246
+ class Input extends UI5Element implements SuggestionComponent, IFormElement {
247
+ /**
248
+ * Defines whether the component is in disabled state.
249
+ * <br><br>
250
+ * <b>Note:</b> A disabled component is completely noninteractive.
251
+ *
252
+ * @type {boolean}
253
+ * @name sap.ui.webc.main.Input.prototype.disabled
254
+ * @defaultvalue false
255
+ * @public
256
+ */
257
+ @property({ type: Boolean })
258
+ disabled!: boolean;
259
+
260
+ /**
261
+ * Defines if characters within the suggestions are to be highlighted
262
+ * in case the input value matches parts of the suggestions text.
263
+ * <br><br>
264
+ * <b>Note:</b> takes effect when <code>showSuggestions</code> is set to <code>true</code>
265
+ *
266
+ * @type {boolean}
267
+ * @defaultvalue false
268
+ * @private
269
+ * @sicne 1.0.0-rc.8
270
+ */
271
+ @property({ type: Boolean })
272
+ highlight!: boolean;
273
+
274
+ /**
275
+ * Defines a short hint intended to aid the user with data entry when the
276
+ * component has no value.
277
+ * @type {string}
278
+ * @name sap.ui.webc.main.Input.prototype.placeholder
279
+ * @defaultvalue ""
280
+ * @public
281
+ */
282
+ @property()
283
+ placeholder!: string;
284
+
285
+ /**
286
+ * Defines whether the component is read-only.
287
+ * <br><br>
288
+ * <b>Note:</b> A read-only component is not editable,
289
+ * but still provides visual feedback upon user interaction.
290
+ *
291
+ * @type {boolean}
292
+ * @name sap.ui.webc.main.Input.prototype.readonly
293
+ * @defaultvalue false
294
+ * @public
295
+ */
296
+ @property({ type: Boolean })
297
+ readonly!: boolean;
298
+
299
+ /**
300
+ * Defines whether the component is required.
301
+ *
302
+ * @type {boolean}
303
+ * @name sap.ui.webc.main.Input.prototype.required
304
+ * @defaultvalue false
305
+ * @public
306
+ * @since 1.0.0-rc.3
307
+ */
308
+ @property({ type: Boolean })
309
+ required!: boolean;
310
+
311
+ /**
312
+ * Defines whether the value will be autcompleted to match an item
313
+ *
314
+ * @type {boolean}
315
+ * @name sap.ui.webc.main.Input.prototype.noTypeahead
316
+ * @defaultvalue false
317
+ * @public
318
+ * @since 1.4.0
319
+ */
320
+ @property({ type: Boolean })
321
+ noTypeahead!: boolean;
322
+
323
+ /**
324
+ * Defines the HTML type of the component.
325
+ * Available options are: <code>Text</code>, <code>Email</code>,
326
+ * <code>Number</code>, <code>Password</code>, <code>Tel</code>, and <code>URL</code>.
327
+ * <br><br>
328
+ * <b>Notes:</b>
329
+ * <ul>
330
+ * <li>The particular effect of this property differs depending on the browser
331
+ * and the current language settings, especially for type <code>Number</code>.</li>
332
+ * <li>The property is mostly intended to be used with touch devices
333
+ * that use different soft keyboard layouts depending on the given input type.</li>
334
+ * </ul>
335
+ *
336
+ * @type {sap.ui.webc.main.types.InputType}
337
+ * @name sap.ui.webc.main.Input.prototype.type
338
+ * @defaultvalue "Text"
339
+ * @public
340
+ */
341
+ @property({ type: InputType, defaultValue: InputType.Text })
342
+ type!: InputType;
343
+
344
+ /**
345
+ * Defines the value of the component.
346
+ * <br><br>
347
+ * <b>Note:</b> The property is updated upon typing.
348
+ *
349
+ * @type {string}
350
+ * @name sap.ui.webc.main.Input.prototype.value
351
+ * @defaultvalue ""
352
+ * @formEvents change input
353
+ * @formProperty
354
+ * @public
355
+ */
356
+ @property()
357
+ value!: string;
358
+
359
+ /**
360
+ * Defines the inner stored value of the component.
361
+ * <br><br>
362
+ * <b>Note:</b> The property is updated upon typing. In some special cases the old value is kept (e.g. deleting the value after the dot in a float)
363
+ *
364
+ * @type {string}
365
+ * @defaultvalue ""
366
+ * @private
367
+ */
368
+ @property({ noAttribute: true })
369
+ _innerValue!: string;
370
+
371
+ /**
372
+ * Defines the value state of the component.
373
+ * <br><br>
374
+ * Available options are:
375
+ * <ul>
376
+ * <li><code>None</code></li>
377
+ * <li><code>Error</code></li>
378
+ * <li><code>Warning</code></li>
379
+ * <li><code>Success</code></li>
380
+ * <li><code>Information</code></li>
381
+ * </ul>
382
+ *
383
+ * @type {sap.ui.webc.base.types.ValueState}
384
+ * @name sap.ui.webc.main.Input.prototype.valueState
385
+ * @defaultvalue "None"
386
+ * @public
387
+ */
388
+ @property({ type: ValueState, defaultValue: ValueState.None })
389
+ valueState!: ValueState;
390
+
391
+ /**
392
+ * Determines the name with which the component will be submitted in an HTML form.
393
+ *
394
+ * <br><br>
395
+ * <b>Important:</b> For the <code>name</code> property to have effect, you must add the following import to your project:
396
+ * <code>import "@ui5/webcomponents/dist/features/InputElementsFormSupport.js";</code>
397
+ *
398
+ * <br><br>
399
+ * <b>Note:</b> When set, a native <code>input</code> HTML element
400
+ * will be created inside the component so that it can be submitted as
401
+ * part of an HTML form. Do not use this property unless you need to submit a form.
402
+ *
403
+ * @type {string}
404
+ * @name sap.ui.webc.main.Input.prototype.name
405
+ * @defaultvalue ""
406
+ * @public
407
+ */
408
+ @property()
409
+ name!: string;
410
+
411
+ /**
412
+ * Defines whether the component should show suggestions, if such are present.
413
+ * <br><br>
414
+ * <b>Note:</b> You need to import the <code>InputSuggestions</code> module
415
+ * from <code>"@ui5/webcomponents/dist/features/InputSuggestions.js"</code> to enable this functionality.
416
+ * @type {boolean}
417
+ * @name sap.ui.webc.main.Input.prototype.showSuggestions
418
+ * @defaultvalue false
419
+ * @public
420
+ */
421
+ @property({ type: Boolean })
422
+ showSuggestions!: boolean;
423
+
424
+ /**
425
+ * Sets the maximum number of characters available in the input field.
426
+ * <br><br>
427
+ * <b>Note:</b> This property is not compatible with the ui5-input type InputType.Number. If the ui5-input type is set to Number, the maxlength value is ignored.
428
+ * @type {sap.ui.webc.base.types.Integer}
429
+ * @name sap.ui.webc.main.Input.prototype.maxlength
430
+ * @since 1.0.0-rc.5
431
+ * @public
432
+ */
433
+ @property({ validator: Integer })
434
+ maxlength?: number;
435
+
436
+ /**
437
+ * Defines the accessible ARIA name of the component.
438
+ *
439
+ * @type {string}
440
+ * @name sap.ui.webc.main.Input.prototype.accessibleName
441
+ * @public
442
+ * @since 1.0.0-rc.15
443
+ */
444
+ @property()
445
+ accessibleName!: string;
446
+
447
+ /**
448
+ * Receives id(or many ids) of the elements that label the input.
449
+ *
450
+ * @type {string}
451
+ * @name sap.ui.webc.main.Input.prototype.accessibleNameRef
452
+ * @defaultvalue ""
453
+ * @public
454
+ * @since 1.0.0-rc.15
455
+ */
456
+ @property({ defaultValue: "" })
457
+ accessibleNameRef!: string;
458
+
459
+ /**
460
+ * Defines whether the clear icon of the input will be shown.
461
+ *
462
+ * @type {boolean}
463
+ * @name sap.ui.webc.main.Input.prototype.showClearIcon
464
+ * @defaultvalue false
465
+ * @public
466
+ * @since 1.2.0
467
+ */
468
+ @property({ type: Boolean })
469
+ showClearIcon!: boolean;
470
+
471
+ /**
472
+ * Defines whether the clear icon is visible.
473
+ *
474
+ * @type {boolean}
475
+ * @defaultvalue false
476
+ * @private
477
+ * @since 1.2.0
478
+ */
479
+ @property({ type: Boolean })
480
+ effectiveShowClearIcon!: boolean;
481
+
482
+ /**
483
+ * @private
484
+ */
485
+ @property({ type: Boolean })
486
+ focused!: boolean;
487
+
488
+ @property({ type: Boolean })
489
+ openOnMobile!: boolean;
490
+
491
+ @property({ type: Boolean })
492
+ open!: boolean;
493
+
494
+ /**
495
+ * Determines whether to manually show the suggestions popover
496
+ * @private
497
+ */
498
+ @property({ type: Boolean })
499
+ _forceOpen!: boolean;
500
+
501
+ /**
502
+ * Indicates whether the visual focus is on the value state header
503
+ * @private
504
+ */
505
+ @property({ type: Boolean })
506
+ _isValueStateFocused!: boolean;
507
+
508
+ @property({ type: Object, noAttribute: true })
509
+ _inputAccInfo!: AccInfo;
510
+
511
+ @property({ type: Object, noAttribute: true })
512
+ _nativeInputAttributes!: NativeInputAttributes;
513
+
514
+ @property({ validator: Integer })
515
+ _inputWidth?: number;
516
+
517
+ @property({ validator: Integer })
518
+ _listWidth?: number;
519
+
520
+ @property({ type: Boolean, noAttribute: true })
521
+ _isPopoverOpen!: boolean;
522
+
523
+ @property({ type: Boolean, noAttribute: true })
524
+ _inputIconFocused!: boolean;
525
+
526
+ /**
527
+ * Defines the suggestion items.
528
+ * <br><br>
529
+ * Example:
530
+ * <br><br>
531
+ * &lt;ui5-input show-suggestions><br>
532
+ * &nbsp;&nbsp;&nbsp;&nbsp;&lt;ui5-suggestion-item text="Item #1">&lt;/ui5-suggestion-item><br>
533
+ * &nbsp;&nbsp;&nbsp;&nbsp;&lt;ui5-suggestion-item text="Item #2">&lt;/ui5-suggestion-item><br>
534
+ * &lt;/ui5-input>
535
+ * <br>
536
+ * <ui5-input show-suggestions>
537
+ * <ui5-suggestion-group-item text="Group #1"></ui5-suggestion-group-item>
538
+ * <ui5-suggestion-item text="Item #1"></ui5-suggestion-item>
539
+ * <ui5-suggestion-item text="Item #2"></ui5-suggestion-item>
540
+ * <ui5-suggestion-group-item text="Group #2"></ui5-suggestion-group-item>
541
+ * <ui5-suggestion-item text="Item #3"></ui5-suggestion-item>
542
+ * <ui5-suggestion-item text="Item #4"></ui5-suggestion-item>
543
+ * </ui5-input>
544
+ * <br><br>
545
+ * <b>Note:</b> The suggestions would be displayed only if the <code>showSuggestions</code>
546
+ * property is set to <code>true</code>.
547
+ * <br><br>
548
+ * <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.
549
+ * <br><br>
550
+ * <b>Note:</b> Importing the Input Suggestions Support feature:
551
+ * <br>
552
+ * <code>import "@ui5/webcomponents/dist/features/InputSuggestions.js";</code>
553
+ * <br>
554
+ * automatically imports the <code>&lt;ui5-suggestion-item></code> and <code>&lt;ui5-suggestion-group-item></code> for your convenience.
555
+ *
556
+ * @type {sap.ui.webc.main.IInputSuggestionItem[]}
557
+ * @name sap.ui.webc.main.Input.prototype.default
558
+ * @slot suggestionItems
559
+ * @public
560
+ */
561
+ @slot({ type: HTMLElement, "default": true })
562
+ suggestionItems!: Array<SuggestionItem>;
563
+
564
+ /**
565
+ * Defines the icon to be displayed in the component.
566
+ *
567
+ * @type {sap.ui.webc.main.IIcon[]}
568
+ * @name sap.ui.webc.main.Input.prototype.icon
569
+ * @slot
570
+ * @public
571
+ */
572
+ @slot()
573
+ icon!: Array<Icon>;
574
+
575
+ /**
576
+ * The slot is used for native <code>input</code> HTML element to enable form submit,
577
+ * when <code>name</code> property is set.
578
+ * @type {HTMLElement[]}
579
+ * @private
580
+ */
581
+ @slot()
582
+ formSupport!: Array<HTMLElement>;
583
+
584
+ /**
585
+ * Defines the value state message that will be displayed as pop up under the component.
586
+ * <br><br>
587
+ *
588
+ * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.
589
+ * <br><br>
590
+ * <b>Note:</b> The <code>valueStateMessage</code> would be displayed,
591
+ * when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
592
+ * <br><br>
593
+ * <b>Note:</b> If the component has <code>suggestionItems</code>,
594
+ * the <code>valueStateMessage</code> would be displayed as part of the same popover, if used on desktop, or dialog - on phone.
595
+ * @type {HTMLElement[]}
596
+ * @name sap.ui.webc.main.Input.prototype.valueStateMessage
597
+ * @since 1.0.0-rc.6
598
+ * @slot
599
+ * @public
600
+ */
601
+ @slot()
602
+ valueStateMessage!: Array<HTMLElement>;
603
+
604
+ hasSuggestionItemSelected: boolean;
605
+ valueBeforeItemSelection: string;
606
+ valueBeforeItemPreview: string
607
+ suggestionSelectionCanceled: boolean;
608
+ previousValue: string;
609
+ firstRendering: boolean;
610
+ typedInValue: string;
611
+ lastConfirmedValue: string
612
+ isTyping: boolean
613
+ suggestionsTexts: Array<InputSuggestionText>;
614
+ _handleResizeBound: () => void;
615
+ _keepInnerValue: boolean;
616
+ _shouldAutocomplete?: boolean;
617
+ _keyDown?: boolean;
618
+ _isKeyNavigation?: boolean;
619
+ Suggestions?: InputSuggestions;
620
+ FormSupport?: typeof FormSupportT;
621
+ _selectedText?: string;
622
+ _clearIconClicked?: boolean;
623
+ _previewItem?: SuggestionListItem;
624
+ static i18nBundle: I18nBundle;
579
625
 
580
626
  static get render() {
581
627
  return litRender;
@@ -617,32 +663,20 @@ class Input extends UI5Element {
617
663
  this.suggestionSelectionCanceled = false;
618
664
 
619
665
  // tracks the value between focus in and focus out to detect that change event should be fired.
620
- this.previousValue = undefined;
666
+ this.previousValue = "";
621
667
 
622
668
  // Indicates, if the component is rendering for first time.
623
669
  this.firstRendering = true;
624
670
 
625
- // The value that should be highlited.
626
- this.highlightValue = "";
671
+ // The typed in value.
672
+ this.typedInValue = "";
627
673
 
628
674
  // The last value confirmed by the user with "ENTER"
629
675
  this.lastConfirmedValue = "";
630
676
 
631
- // The value that the user is typed in the input
632
- this.valueBeforeAutoComplete = "";
633
-
634
677
  // Indicates, if the user is typing. Gets reset once popup is closed
635
678
  this.isTyping = false;
636
679
 
637
- // all sementic events
638
- this.EVENT_CHANGE = "change";
639
- this.EVENT_INPUT = "input";
640
- this.EVENT_SUGGESTION_ITEM_SELECT = "suggestion-item-select";
641
-
642
- // all user interactions
643
- this.ACTION_ENTER = "enter";
644
- this.ACTION_USER_INPUT = "input";
645
-
646
680
  // Suggestions array initialization
647
681
  this.suggestionsTexts = [];
648
682
 
@@ -666,15 +700,15 @@ class Input extends UI5Element {
666
700
 
667
701
  if (this.showSuggestions) {
668
702
  this.enableSuggestions();
669
- this.suggestionsTexts = this.Suggestions.defaultSlotProperties(this.highlightValue);
703
+ this.suggestionsTexts = this.Suggestions!.defaultSlotProperties(this.typedInValue);
670
704
  }
671
705
 
672
706
  this.effectiveShowClearIcon = (this.showClearIcon && !!this.value && !this.readonly && !this.disabled);
673
707
 
674
- this.FormSupport = getFeature("FormSupport");
675
- const hasItems = this.suggestionItems.length;
708
+ this.FormSupport = getFeature<typeof FormSupportT>("FormSupport");
709
+ const hasItems = !!this.suggestionItems.length;
676
710
  const hasValue = !!this.value;
677
- const isFocused = this.shadowRoot.querySelector("input") === getActiveElement();
711
+ const isFocused = this.shadowRoot!.querySelector("input") === getActiveElement();
678
712
 
679
713
  if (this._isPhone) {
680
714
  this.open = this.openOnMobile;
@@ -697,16 +731,15 @@ class Input extends UI5Element {
697
731
  return;
698
732
  }
699
733
 
700
- const autoCompletedChars = innerInput.selectionEnd - innerInput.selectionStart;
734
+ const autoCompletedChars = innerInput.selectionEnd! - innerInput.selectionStart!;
701
735
 
702
736
  // Typehead causes issues on Android devices, so we disable it for now
703
737
  // If there is already a selection the autocomplete has already been performed
704
738
  if (this._shouldAutocomplete && !isAndroid() && !autoCompletedChars && !this._isKeyNavigation) {
705
739
  const item = this._getFirstMatchingItem(value);
706
-
707
- // Keep the original typed in text intact
708
- this.valueBeforeAutoComplete += value.slice(this.valueBeforeAutoComplete.length, value.length);
709
- this._handleTypeAhead(item, value);
740
+ if (item) {
741
+ this._handleTypeAhead(item, value);
742
+ }
710
743
  }
711
744
  }
712
745
 
@@ -726,52 +759,48 @@ class Input extends UI5Element {
726
759
  }
727
760
  }
728
761
 
729
- _onkeydown(event) {
762
+ _onkeydown(e: KeyboardEvent) {
730
763
  this._isKeyNavigation = true;
731
- this._shouldAutocomplete = !this.noTypeahead && !(isBackSpace(event) || isDelete(event) || isEscape(event));
764
+ this._shouldAutocomplete = !this.noTypeahead && !(isBackSpace(e) || isDelete(e) || isEscape(e));
732
765
 
733
- if (isUp(event)) {
734
- return this._handleUp(event);
766
+ if (isUp(e)) {
767
+ return this._handleUp(e);
735
768
  }
736
769
 
737
- if (isDown(event)) {
738
- return this._handleDown(event);
770
+ if (isDown(e)) {
771
+ return this._handleDown(e);
739
772
  }
740
773
 
741
- if (isSpace(event)) {
742
- return this._handleSpace(event);
774
+ if (isSpace(e)) {
775
+ return this._handleSpace(e);
743
776
  }
744
777
 
745
- if (isTabNext(event)) {
746
- return this._handleTab(event);
778
+ if (isTabNext(e)) {
779
+ return this._handleTab();
747
780
  }
748
781
 
749
- if (isEnter(event)) {
750
- return this._handleEnter(event);
782
+ if (isEnter(e)) {
783
+ return this._handleEnter(e);
751
784
  }
752
785
 
753
- if (isPageUp(event)) {
754
- return this._handlePageUp(event);
786
+ if (isPageUp(e)) {
787
+ return this._handlePageUp(e);
755
788
  }
756
789
 
757
- if (isPageDown(event)) {
758
- return this._handlePageDown(event);
790
+ if (isPageDown(e)) {
791
+ return this._handlePageDown(e);
759
792
  }
760
793
 
761
- if (isHome(event)) {
762
- return this._handleHome(event);
794
+ if (isHome(e)) {
795
+ return this._handleHome(e);
763
796
  }
764
797
 
765
- if (isEnd(event)) {
766
- return this._handleEnd(event);
798
+ if (isEnd(e)) {
799
+ return this._handleEnd(e);
767
800
  }
768
801
 
769
- if (isEscape(event)) {
770
- return this._handleEscape(event);
771
- }
772
-
773
- if (isBackSpace(event)) {
774
- this._selectedText = window.getSelection().toString();
802
+ if (isEscape(e)) {
803
+ return this._handleEscape();
775
804
  }
776
805
 
777
806
  if (this.showSuggestions) {
@@ -782,53 +811,52 @@ class Input extends UI5Element {
782
811
  this._isKeyNavigation = false;
783
812
  }
784
813
 
785
- _onkeyup(event) {
814
+ _onkeyup(e: KeyboardEvent) {
786
815
  // The native Delete event does not update the value property "on time".
787
816
  // So, the (native) change event is always fired with the old value
788
- if (isDelete(event)) {
789
- this.value = event.target.value;
817
+ if (isDelete(e)) {
818
+ this.value = (e.target as HTMLInputElement).value;
790
819
  }
791
820
 
792
821
  this._keyDown = false;
793
822
  }
794
823
 
795
- /* Event handling */
796
- _handleUp(event) {
824
+ _handleUp(e: KeyboardEvent) {
797
825
  if (this.Suggestions && this.Suggestions.isOpened()) {
798
- this.Suggestions.onUp(event);
826
+ this.Suggestions.onUp(e);
799
827
  }
800
828
  }
801
829
 
802
- _handleDown(event) {
830
+ _handleDown(e: KeyboardEvent) {
803
831
  if (this.Suggestions && this.Suggestions.isOpened()) {
804
- this.Suggestions.onDown(event);
832
+ this.Suggestions.onDown(e);
805
833
  }
806
834
  }
807
835
 
808
- _handleSpace(event) {
836
+ _handleSpace(e: KeyboardEvent) {
809
837
  if (this.Suggestions) {
810
- this.Suggestions.onSpace(event);
838
+ this.Suggestions.onSpace(e);
811
839
  }
812
840
  }
813
841
 
814
- _handleTab(event) {
842
+ _handleTab() {
815
843
  if (this.Suggestions && (this.previousValue !== this.value)) {
816
- this.Suggestions.onTab(event);
844
+ this.Suggestions.onTab();
817
845
  }
818
846
  }
819
847
 
820
- _handleEnter(event) {
821
- const itemPressed = !!(this.Suggestions && this.Suggestions.onEnter(event));
822
- const innerInput = this.getInputDOMRefSync();
848
+ _handleEnter(e: KeyboardEvent) {
849
+ const itemPressed = !!(this.Suggestions && this.Suggestions.onEnter(e));
850
+ const innerInput = this.getInputDOMRefSync()!;
823
851
  // Check for autocompleted item
824
852
  const matchingItem = this.suggestionItems.find(item => {
825
853
  return (item.text && item.text === this.value) || (item.textContent === this.value);
826
854
  });
827
855
 
828
856
  if (matchingItem) {
829
- const itemText = matchingItem.text ? matchingItem.text : matchingItem.textContent;
857
+ const itemText = matchingItem.text ? matchingItem.text : (matchingItem.textContent || "");
830
858
 
831
- this.getInputDOMRefSync().setSelectionRange(itemText.length, itemText.length);
859
+ innerInput.setSelectionRange(itemText.length, itemText.length);
832
860
  if (!itemPressed) {
833
861
  this.selectSuggestion(matchingItem, true);
834
862
  this.open = false;
@@ -852,39 +880,39 @@ class Input extends UI5Element {
852
880
  this.focused = true;
853
881
  }
854
882
 
855
- _handlePageUp(event) {
883
+ _handlePageUp(e: KeyboardEvent) {
856
884
  if (this._isSuggestionsFocused) {
857
- this.Suggestions.onPageUp(event);
885
+ this.Suggestions!.onPageUp(e);
858
886
  } else {
859
- event.preventDefault();
887
+ e.preventDefault();
860
888
  }
861
889
  }
862
890
 
863
- _handlePageDown(event) {
891
+ _handlePageDown(e: KeyboardEvent) {
864
892
  if (this._isSuggestionsFocused) {
865
- this.Suggestions.onPageDown(event);
893
+ this.Suggestions!.onPageDown(e);
866
894
  } else {
867
- event.preventDefault();
895
+ e.preventDefault();
868
896
  }
869
897
  }
870
898
 
871
- _handleHome(event) {
899
+ _handleHome(e: KeyboardEvent) {
872
900
  if (this._isSuggestionsFocused) {
873
- this.Suggestions.onHome(event);
901
+ this.Suggestions!.onHome(e);
874
902
  }
875
903
  }
876
904
 
877
- _handleEnd(event) {
905
+ _handleEnd(e: KeyboardEvent) {
878
906
  if (this._isSuggestionsFocused) {
879
- this.Suggestions.onEnd(event);
907
+ this.Suggestions!.onEnd(e);
880
908
  }
881
909
  }
882
910
 
883
911
  _handleEscape() {
884
912
  const hasSuggestions = this.showSuggestions && !!this.Suggestions;
885
913
  const isOpen = hasSuggestions && this.open;
886
- const innerInput = this.getInputDOMRefSync();
887
- const isAutoCompleted = innerInput.selectionEnd - innerInput.selectionStart > 0;
914
+ const innerInput = this.getInputDOMRefSync()!;
915
+ const isAutoCompleted = innerInput.selectionEnd! - innerInput.selectionStart! > 0;
888
916
 
889
917
  this.isTyping = false;
890
918
 
@@ -893,9 +921,9 @@ class Input extends UI5Element {
893
921
  return;
894
922
  }
895
923
 
896
- if (hasSuggestions && isOpen && this.Suggestions._isItemOnTarget()) {
924
+ if (isOpen && this.Suggestions!._isItemOnTarget()) {
897
925
  // Restore the value.
898
- this.value = this.valueBeforeAutoComplete || this.valueBeforeItemPreview;
926
+ this.value = this.typedInValue || this.valueBeforeItemPreview;
899
927
 
900
928
  // Mark that the selection has been canceled, so the popover can close
901
929
  // and not reopen, due to receiving focus.
@@ -906,7 +934,7 @@ class Input extends UI5Element {
906
934
  }
907
935
 
908
936
  if (isAutoCompleted) {
909
- this.value = this.valueBeforeAutoComplete;
937
+ this.value = this.typedInValue;
910
938
  }
911
939
 
912
940
  if (this._isValueStateFocused) {
@@ -915,20 +943,20 @@ class Input extends UI5Element {
915
943
  }
916
944
  }
917
945
 
918
- async _onfocusin(event) {
946
+ async _onfocusin(e: FocusEvent) {
919
947
  await this.getInputDOMRef();
920
948
 
921
- this.valueBeforeAutoComplete = "";
922
949
  this.focused = true; // invalidating property
923
950
  this.previousValue = this.value;
924
951
  this.valueBeforeItemPreview = this.value;
925
952
 
926
- this._inputIconFocused = event.target && event.target === this.querySelector("[ui5-icon]");
953
+ this._inputIconFocused = !!e.target && e.target === this.querySelector<Icon>("[ui5-icon]");
927
954
  }
928
955
 
929
- _onfocusout(event) {
930
- const focusedOutToSuggestions = this.Suggestions && event.relatedTarget && event.relatedTarget.shadowRoot && event.relatedTarget.shadowRoot.contains(this.Suggestions.responsivePopover);
931
- const focusedOutToValueStateMessage = event.relatedTarget && event.relatedTarget.shadowRoot && event.relatedTarget.shadowRoot.querySelector(".ui5-valuestatemessage-root");
956
+ _onfocusout(e: FocusEvent) {
957
+ const toBeFocused = e.relatedTarget as HTMLElement;
958
+ const focusedOutToSuggestions = this.Suggestions && toBeFocused && toBeFocused.shadowRoot && toBeFocused.shadowRoot.contains(this.Suggestions.responsivePopover as Node);
959
+ const focusedOutToValueStateMessage = toBeFocused && toBeFocused.shadowRoot && toBeFocused.shadowRoot.querySelector(".ui5-valuestatemessage-root");
932
960
 
933
961
  this._keepInnerValue = false;
934
962
 
@@ -940,13 +968,11 @@ class Input extends UI5Element {
940
968
  // if focusout is triggered by pressing on suggestion item or value state message popover, skip invalidation, because re-rendering
941
969
  // will happen before "itemPress" event, which will make item "active" state not visualized
942
970
  if (focusedOutToSuggestions || focusedOutToValueStateMessage) {
943
- event.stopImmediatePropagation();
971
+ e.stopImmediatePropagation();
944
972
  return;
945
973
  }
946
974
 
947
- const toBeFocused = event.relatedTarget;
948
-
949
- if (toBeFocused && toBeFocused.classList.contains(this._id)) {
975
+ if (toBeFocused && (toBeFocused).classList.contains(this._id)) {
950
976
  return;
951
977
  }
952
978
 
@@ -972,7 +998,7 @@ class Input extends UI5Element {
972
998
  this.Suggestions._clearItemFocus();
973
999
  }
974
1000
 
975
- _click(event) {
1001
+ _click() {
976
1002
  if (isPhone() && !this.readonly && this.Suggestions) {
977
1003
  this.blur();
978
1004
  this.openOnMobile = true;
@@ -985,15 +1011,15 @@ class Input extends UI5Element {
985
1011
  return;
986
1012
  }
987
1013
 
988
- if (this.previousValue !== this.getInputDOMRefSync().value) {
989
- this.previousValue = this.getInputDOMRefSync().value;
990
- this.fireEvent(this.EVENT_CHANGE);
1014
+ if (this.previousValue !== this.getInputDOMRefSync()!.value) {
1015
+ this.previousValue = this.getInputDOMRefSync()!.value;
1016
+ this.fireEvent(INPUT_EVENTS.CHANGE);
991
1017
  }
992
1018
  }
993
1019
 
994
1020
  _clear() {
995
1021
  this.value = "";
996
- this.fireEvent(this.EVENT_INPUT);
1022
+ this.fireEvent<InputEventDetail>(INPUT_EVENTS.INPUT);
997
1023
  if (!this._isPhone) {
998
1024
  this.focus();
999
1025
  }
@@ -1003,18 +1029,19 @@ class Input extends UI5Element {
1003
1029
  this._clearIconClicked = true;
1004
1030
  }
1005
1031
 
1006
- _scroll(event) {
1007
- const detail = event.detail;
1008
- this.fireEvent("suggestion-scroll", {
1009
- scrollTop: detail.scrollTop,
1010
- scrollContainer: detail.targetRef,
1032
+ _scroll(e: CustomEvent<PopupScrollEventDetail>) {
1033
+ this.fireEvent<SuggestionScrollEventDetail>("suggestion-scroll", {
1034
+ scrollTop: e.detail.scrollTop,
1035
+ scrollContainer: e.detail.targetRef,
1011
1036
  });
1012
1037
  }
1013
1038
 
1014
- _handleInput(event) {
1039
+ _handleInput(e: InputEvent | CustomEvent<InputEventDetail>) {
1015
1040
  const inputDomRef = this.getInputDOMRefSync();
1016
- const emptyValueFiredOnNumberInput = this.value && this.isTypeNumber && !inputDomRef.value;
1017
- const eventType = event.inputType || (event.detail && event.detail.inputType);
1041
+ const emptyValueFiredOnNumberInput = this.value && this.isTypeNumber && !inputDomRef!.value;
1042
+ const eventType: string = (e as InputEvent).inputType
1043
+ || (e.detail && (e as CustomEvent<InputEventDetail>).detail.inputType!)
1044
+ || "";
1018
1045
  this._keepInnerValue = false;
1019
1046
 
1020
1047
  const allowedEventTypes = [
@@ -1036,64 +1063,67 @@ class Input extends UI5Element {
1036
1063
  this._shouldAutocomplete = !allowedEventTypes.includes(eventType) && !this.noTypeahead;
1037
1064
  this.suggestionSelectionCanceled = false;
1038
1065
 
1039
- // ---- Special cases of numeric Input ----
1040
- // ---------------- Start -----------------
1041
-
1042
- // When the last character after the delimiter is removed.
1043
- // In such cases, we want to skip the re-rendering of the
1044
- // component as this leads to cursor repositioning and causes user experience issues.
1045
-
1046
- // There are few scenarios:
1047
- // Example: type "123.4" and press BACKSPACE - the native input is firing event with the whole part as value (123).
1048
- // Pressing BACKSPACE again will remove the delimiter and the native input will fire event with the whole part as value again (123).
1049
- // Example: type "123.456", select/mark "456" and press BACKSPACE - the native input is firing event with the whole part as value (123).
1050
- // Example: type "123.456", select/mark "123.456" and press BACKSPACE - the native input is firing event with empty value.
1051
- const delimiterCase = this.isTypeNumber
1052
- && (event.inputType === "deleteContentForward" || event.inputType === "deleteContentBackward")
1053
- && !event.target.value.includes(".")
1054
- && this.value.includes(".");
1055
-
1056
- // Handle special numeric notation with "e", example "12.5e12"
1057
- const eNotationCase = emptyValueFiredOnNumberInput && event.data === "e";
1058
-
1059
- // Handle special numeric notation with "-", example "-3"
1060
- // When pressing BACKSPACE, the native input fires event with empty value
1061
- const minusRemovalCase = emptyValueFiredOnNumberInput
1062
- && this.value.startsWith("-")
1063
- && this.value.length === 2
1064
- && (event.inputType === "deleteContentForward" || event.inputType === "deleteContentBackward");
1065
-
1066
- if (delimiterCase || eNotationCase || minusRemovalCase) {
1067
- this.value = event.target.value;
1068
- this._keepInnerValue = true;
1066
+ if (e instanceof InputEvent) {
1067
+ // ---- Special cases of numeric Input ----
1068
+ // ---------------- Start -----------------
1069
+
1070
+ // When the last character after the delimiter is removed.
1071
+ // In such cases, we want to skip the re-rendering of the
1072
+ // component as this leads to cursor repositioning and causes user experience issues.
1073
+
1074
+ // There are few scenarios:
1075
+ // Example: type "123.4" and press BACKSPACE - the native input is firing event with the whole part as value (123).
1076
+ // Pressing BACKSPACE again will remove the delimiter and the native input will fire event with the whole part as value again (123).
1077
+ // Example: type "123.456", select/mark "456" and press BACKSPACE - the native input is firing event with the whole part as value (123).
1078
+ // Example: type "123.456", select/mark "123.456" and press BACKSPACE - the native input is firing event with empty value.
1079
+ const delimiterCase = this.isTypeNumber
1080
+ && (e.inputType === "deleteContentForward" || e.inputType === "deleteContentBackward")
1081
+ && !(e.target as HTMLInputElement).value.includes(".")
1082
+ && this.value.includes(".");
1083
+
1084
+ // Handle special numeric notation with "e", example "12.5e12"
1085
+ const eNotationCase = emptyValueFiredOnNumberInput && e.data === "e";
1086
+
1087
+ // Handle special numeric notation with "-", example "-3"
1088
+ // When pressing BACKSPACE, the native input fires event with empty value
1089
+ const minusRemovalCase = emptyValueFiredOnNumberInput
1090
+ && this.value.startsWith("-")
1091
+ && this.value.length === 2
1092
+ && (e.inputType === "deleteContentForward" || e.inputType === "deleteContentBackward");
1093
+
1094
+ if (delimiterCase || eNotationCase || minusRemovalCase) {
1095
+ this.value = (e.target as HTMLInputElement).value;
1096
+ this._keepInnerValue = true;
1097
+ }
1098
+ // ----------------- End ------------------
1069
1099
  }
1070
- // ----------------- End ------------------
1071
1100
 
1072
- if (event.target === inputDomRef) {
1101
+ if (e.target === inputDomRef) {
1073
1102
  this.focused = true;
1074
1103
 
1075
1104
  // stop the native event, as the semantic "input" would be fired.
1076
- event.stopImmediatePropagation();
1105
+ e.stopImmediatePropagation();
1077
1106
  }
1078
1107
 
1079
- this.fireEventByAction(this.ACTION_USER_INPUT, event);
1108
+ this.fireEventByAction(INPUT_ACTIONS.ACTION_ENTER, e as InputEvent);
1080
1109
 
1081
1110
  this.hasSuggestionItemSelected = false;
1082
1111
  this._isValueStateFocused = false;
1083
1112
 
1084
1113
  if (this.Suggestions) {
1085
- this.Suggestions.updateSelectedItemPosition(null);
1114
+ this.Suggestions.updateSelectedItemPosition(-1);
1086
1115
  }
1087
1116
 
1088
1117
  this.isTyping = true;
1089
1118
  }
1090
1119
 
1091
- _startsWithMatchingItems(str) {
1120
+ _startsWithMatchingItems(str: string): Array<SuggestionItem> {
1092
1121
  const textProp = this.suggestionItems[0].text ? "text" : "textContent";
1093
- return Filters.StartsWith(str, this.suggestionItems, textProp);
1122
+
1123
+ return StartsWith(str, this.suggestionItems, textProp);
1094
1124
  }
1095
1125
 
1096
- _getFirstMatchingItem(current) {
1126
+ _getFirstMatchingItem(current: string) {
1097
1127
  if (!this.suggestionItems.length) {
1098
1128
  return;
1099
1129
  }
@@ -1105,13 +1135,9 @@ class Input extends UI5Element {
1105
1135
  }
1106
1136
  }
1107
1137
 
1108
- _handleTypeAhead(item, filterValue) {
1109
- if (!item) {
1110
- return;
1111
- }
1112
-
1138
+ _handleTypeAhead(item: SuggestionItem, filterValue: string) {
1113
1139
  const value = item.text ? item.text : item.textContent || "";
1114
- const innerInput = this.getInputDOMRefSync();
1140
+ const innerInput = this.getInputDOMRefSync()!;
1115
1141
 
1116
1142
  filterValue = filterValue || "";
1117
1143
  this._innerValue = value;
@@ -1129,14 +1155,14 @@ class Input extends UI5Element {
1129
1155
  this._inputWidth = this.offsetWidth;
1130
1156
  }
1131
1157
 
1132
- _closeRespPopover(preventFocusRestore) {
1133
- this.Suggestions.close(preventFocusRestore);
1158
+ _closeRespPopover() {
1159
+ this.Suggestions!.close(true);
1134
1160
  }
1135
1161
 
1136
1162
  async _afterOpenPopover() {
1137
1163
  // Set initial focus to the native input
1138
1164
  if (isPhone()) {
1139
- (await this.getInputDOMRef()).focus();
1165
+ (await this.getInputDOMRef())!.focus();
1140
1166
  }
1141
1167
  }
1142
1168
 
@@ -1179,13 +1205,16 @@ class Input extends UI5Element {
1179
1205
 
1180
1206
  async _getPopover() {
1181
1207
  const staticAreaItem = await this.getStaticAreaItemDomRef();
1182
- return staticAreaItem && staticAreaItem.querySelector("[ui5-popover]");
1208
+ return staticAreaItem!.querySelector<Popover>("[ui5-popover]")!;
1183
1209
  }
1184
1210
 
1185
1211
  /**
1186
1212
  * Manually opens the suggestions popover, assuming suggestions are enabled. Items must be preloaded for it to open.
1187
- * @since 1.3.0
1188
1213
  * @public
1214
+ * @method
1215
+ * @name sap.ui.webc.main.Input#openPicker
1216
+ * @return {void}
1217
+ * @since 1.3.0
1189
1218
  */
1190
1219
  openPicker() {
1191
1220
  if (!this.suggestionItems.length || this.disabled || this.readonly) {
@@ -1200,23 +1229,23 @@ class Input extends UI5Element {
1200
1229
  return;
1201
1230
  }
1202
1231
 
1203
- const Suggestions = getFeature("InputSuggestions");
1232
+ const Suggestions = getFeature<typeof InputSuggestions>("InputSuggestions");
1204
1233
 
1205
1234
  if (Suggestions) {
1206
- this.Suggestions = new Suggestions(this, "suggestionItems", true);
1235
+ this.Suggestions = new Suggestions(this, "suggestionItems", true, false);
1207
1236
  } else {
1208
1237
  throw new Error(`You have to import "@ui5/webcomponents/dist/features/InputSuggestions.js" module to use ui5-input suggestions`);
1209
1238
  }
1210
1239
  }
1211
1240
 
1212
- selectSuggestion(item, keyboardUsed) {
1213
- if (item.group) {
1241
+ selectSuggestion(item: SuggestionItem, keyboardUsed: boolean) {
1242
+ if (item.groupItem) {
1214
1243
  return;
1215
1244
  }
1216
1245
 
1217
- const innerInput = this.getInputDOMRefSync();
1218
- const value = this.valueBeforeAutoComplete || this.value;
1219
- const itemText = item.text || item.textContent; // keep textContent for compatibility
1246
+ const innerInput = this.getInputDOMRefSync()!;
1247
+ const value = this.typedInValue || this.value;
1248
+ const itemText = item.text || item.textContent || ""; // keep textContent for compatibility
1220
1249
  const fireInput = keyboardUsed
1221
1250
  ? this.valueBeforeItemSelection !== itemText : value !== itemText;
1222
1251
 
@@ -1226,8 +1255,8 @@ class Input extends UI5Element {
1226
1255
  this.value = itemText;
1227
1256
  this.valueBeforeItemSelection = itemText;
1228
1257
  this.lastConfirmedValue = itemText;
1229
- this.getInputDOMRefSync().value = itemText;
1230
- this.fireEvent(this.EVENT_INPUT);
1258
+ innerInput.value = itemText;
1259
+ this.fireEvent<InputEventDetail>(INPUT_EVENTS.INPUT);
1231
1260
  this._handleChange();
1232
1261
  innerInput.setSelectionRange(this.value.length, this.value.length);
1233
1262
  }
@@ -1235,14 +1264,14 @@ class Input extends UI5Element {
1235
1264
  this.valueBeforeItemPreview = "";
1236
1265
  this.suggestionSelectionCanceled = false;
1237
1266
 
1238
- this.fireEvent(this.EVENT_SUGGESTION_ITEM_SELECT, { item });
1267
+ this.fireEvent<SuggestionItemSelectEventDetail>(INPUT_EVENTS.SUGGESTION_ITEM_SELECT, { item });
1239
1268
 
1240
1269
  this.isTyping = false;
1241
1270
  this.openOnMobile = false;
1242
1271
  this._forceOpen = false;
1243
1272
  }
1244
1273
 
1245
- previewSuggestion(item) {
1274
+ previewSuggestion(item: SuggestionListItem) {
1246
1275
  this.valueBeforeItemSelection = this.value;
1247
1276
  this.updateValueOnPreview(item);
1248
1277
  this.announceSelectedItem();
@@ -1253,19 +1282,20 @@ class Input extends UI5Element {
1253
1282
  * Updates the input value on item preview.
1254
1283
  * @param {Object} item The item that is on preview
1255
1284
  */
1256
- updateValueOnPreview(item) {
1257
- const noPreview = item.type === "Inactive" || item.group;
1258
- const innerInput = this.getInputDOMRefSync();
1259
- const itemValue = noPreview ? this.valueBeforeItemPreview : (item.effectiveTitle || item.textContent);
1285
+ updateValueOnPreview(item: SuggestionListItem) {
1286
+ const noPreview = item.type === "Inactive" || item.groupItem;
1287
+ const innerInput = this.getInputDOMRefSync()!;
1288
+ const itemValue = noPreview ? this.valueBeforeItemPreview : (item.effectiveTitle || item.textContent || "");
1260
1289
 
1261
1290
  this.value = itemValue;
1262
1291
  innerInput.value = itemValue;
1263
- innerInput.setSelectionRange(this.valueBeforeAutoComplete.length, this.value.length);
1292
+ innerInput.setSelectionRange(this.typedInValue.length, this.value.length);
1264
1293
  }
1265
1294
 
1266
1295
  /**
1267
1296
  * The suggestion item on preview.
1268
- * @type {sap.ui.webcomponents.main.IInputSuggestionItem}
1297
+ * @type {sap.ui.webc.main.IInputSuggestionItem | null}
1298
+ * @name sap.ui.webc.main.Input.prototype.previewItem
1269
1299
  * @readonly
1270
1300
  * @public
1271
1301
  */
@@ -1277,20 +1307,20 @@ class Input extends UI5Element {
1277
1307
  return this.getSuggestionByListItem(this._previewItem);
1278
1308
  }
1279
1309
 
1280
- async fireEventByAction(action, event) {
1310
+ async fireEventByAction(action: INPUT_ACTIONS, e: InputEvent) {
1281
1311
  if (this.disabled || this.readonly) {
1282
1312
  return;
1283
1313
  }
1284
1314
 
1285
1315
  const inputValue = await this.getInputValue();
1286
- const isUserInput = action === this.ACTION_USER_INPUT;
1316
+ const isUserInput = action === INPUT_ACTIONS.ACTION_ENTER;
1287
1317
 
1288
1318
  this.value = inputValue;
1289
- this.highlightValue = inputValue;
1319
+ this.typedInValue = inputValue;
1290
1320
  this.valueBeforeItemPreview = inputValue;
1291
1321
 
1292
1322
  if (isUserInput) { // input
1293
- this.fireEvent(this.EVENT_INPUT, { inputType: event.inputType });
1323
+ this.fireEvent<InputEventDetail>(INPUT_EVENTS.INPUT, { inputType: e.inputType });
1294
1324
  // Angular two way data binding
1295
1325
  this.fireEvent("value-changed");
1296
1326
  }
@@ -1300,7 +1330,7 @@ class Input extends UI5Element {
1300
1330
  const domRef = this.getDomRef();
1301
1331
 
1302
1332
  if (domRef) {
1303
- return (await this.getInputDOMRef()).value;
1333
+ return (await this.getInputDOMRef())!.value;
1304
1334
  }
1305
1335
  return "";
1306
1336
  }
@@ -1308,7 +1338,7 @@ class Input extends UI5Element {
1308
1338
  async getInputDOMRef() {
1309
1339
  if (isPhone() && this.Suggestions) {
1310
1340
  await this.Suggestions._getSuggestionPopover();
1311
- return this.Suggestions && this.Suggestions.responsivePopover.querySelector(".ui5-input-inner-phone");
1341
+ return this.Suggestions.responsivePopover!.querySelector<Input>(".ui5-input-inner-phone")!;
1312
1342
  }
1313
1343
 
1314
1344
  return this.nativeInput;
@@ -1316,7 +1346,7 @@ class Input extends UI5Element {
1316
1346
 
1317
1347
  getInputDOMRefSync() {
1318
1348
  if (isPhone() && this.Suggestions && this.Suggestions.responsivePopover) {
1319
- return this.Suggestions.responsivePopover.querySelector(".ui5-input-inner-phone").shadowRoot.querySelector("input");
1349
+ return this.Suggestions.responsivePopover.querySelector(".ui5-input-inner-phone")!.shadowRoot!.querySelector<HTMLInputElement>("input")!;
1320
1350
  }
1321
1351
 
1322
1352
  return this.nativeInput;
@@ -1327,19 +1357,21 @@ class Input extends UI5Element {
1327
1357
  * @protected
1328
1358
  */
1329
1359
  get nativeInput() {
1330
- return this.getDomRef() && this.getDomRef().querySelector(`input`);
1360
+ const domRef = this.getDomRef();
1361
+
1362
+ return domRef ? domRef.querySelector<HTMLInputElement>(`input`) : null;
1331
1363
  }
1332
1364
 
1333
1365
  get nativeInputWidth() {
1334
- return this.nativeInput && this.nativeInput.offsetWidth;
1366
+ return this.nativeInput ? this.nativeInput.offsetWidth : 0;
1335
1367
  }
1336
1368
 
1337
1369
  getLabelableElementId() {
1338
1370
  return this.getInputId();
1339
1371
  }
1340
1372
 
1341
- getSuggestionByListItem(item) {
1342
- const key = parseInt(item.getAttribute("data-ui5-key"));
1373
+ getSuggestionByListItem(item: SuggestionListItem): SuggestionItem {
1374
+ const key = parseInt(item.getAttribute("data-ui5-key")!);
1343
1375
  return this.suggestionItems[key];
1344
1376
  }
1345
1377
 
@@ -1362,10 +1394,8 @@ class Input extends UI5Element {
1362
1394
  }
1363
1395
 
1364
1396
  /* Suggestions interface */
1365
- onItemFocused() {}
1366
-
1367
- onItemMouseOver(event) {
1368
- const item = event.target;
1397
+ onItemMouseOver(e: MouseEvent) {
1398
+ const item = e.target as SuggestionListItem;
1369
1399
  const suggestion = this.getSuggestionByListItem(item);
1370
1400
  suggestion && suggestion.fireEvent("mouseover", {
1371
1401
  item: suggestion,
@@ -1373,8 +1403,8 @@ class Input extends UI5Element {
1373
1403
  });
1374
1404
  }
1375
1405
 
1376
- onItemMouseOut(event) {
1377
- const item = event.target;
1406
+ onItemMouseOut(e: MouseEvent) {
1407
+ const item = e.target as SuggestionListItem;
1378
1408
  const suggestion = this.getSuggestionByListItem(item);
1379
1409
  suggestion && suggestion.fireEvent("mouseout", {
1380
1410
  item: suggestion,
@@ -1382,46 +1412,42 @@ class Input extends UI5Element {
1382
1412
  });
1383
1413
  }
1384
1414
 
1385
- onItemMouseDown(event) {
1386
- event.preventDefault();
1415
+ onItemMouseDown(e: MouseEvent) {
1416
+ e.preventDefault();
1387
1417
  }
1388
1418
 
1389
- onItemSelected(item, keyboardUsed) {
1419
+ onItemSelected(item: SuggestionItem, keyboardUsed: boolean) {
1390
1420
  this.selectSuggestion(item, keyboardUsed);
1391
1421
  }
1392
1422
 
1393
- onItemPreviewed(item) {
1423
+ onItemPreviewed(item: SuggestionListItem) {
1394
1424
  this.previewSuggestion(item);
1395
- this.fireEvent("suggestion-item-preview", {
1425
+ this.fireEvent<SuggestionItemPreviewEventDetail>("suggestion-item-preview", {
1396
1426
  item: this.getSuggestionByListItem(item),
1397
1427
  targetRef: item,
1398
1428
  });
1399
1429
  }
1400
1430
 
1401
- onOpen() {}
1402
-
1403
- onClose() {}
1404
-
1405
1431
  get valueStateTypeMappings() {
1406
1432
  return {
1407
- "Success": Input.i18nBundle.getText(VALUE_STATE_TYPE_SUCCESS),
1408
- "Information": Input.i18nBundle.getText(VALUE_STATE_TYPE_INFORMATION),
1409
- "Error": Input.i18nBundle.getText(VALUE_STATE_TYPE_ERROR),
1410
- "Warning": Input.i18nBundle.getText(VALUE_STATE_TYPE_WARNING),
1433
+ "Success": Input.i18nBundle.getText(VALUE_STATE_TYPE_SUCCESS as I18nText),
1434
+ "Information": Input.i18nBundle.getText(VALUE_STATE_TYPE_INFORMATION as I18nText),
1435
+ "Error": Input.i18nBundle.getText(VALUE_STATE_TYPE_ERROR as I18nText),
1436
+ "Warning": Input.i18nBundle.getText(VALUE_STATE_TYPE_WARNING as I18nText),
1411
1437
  };
1412
1438
  }
1413
1439
 
1414
1440
  valueStateTextMappings() {
1415
1441
  return {
1416
- "Success": Input.i18nBundle.getText(VALUE_STATE_SUCCESS),
1417
- "Information": Input.i18nBundle.getText(VALUE_STATE_INFORMATION),
1418
- "Error": Input.i18nBundle.getText(VALUE_STATE_ERROR),
1419
- "Warning": Input.i18nBundle.getText(VALUE_STATE_WARNING),
1442
+ "Success": Input.i18nBundle.getText(VALUE_STATE_SUCCESS as I18nText),
1443
+ "Information": Input.i18nBundle.getText(VALUE_STATE_INFORMATION as I18nText),
1444
+ "Error": Input.i18nBundle.getText(VALUE_STATE_ERROR as I18nText),
1445
+ "Warning": Input.i18nBundle.getText(VALUE_STATE_WARNING as I18nText),
1420
1446
  };
1421
1447
  }
1422
1448
 
1423
1449
  announceSelectedItem() {
1424
- const invisibleText = this.shadowRoot.querySelector(`#${this._id}-selectionText`);
1450
+ const invisibleText = this.shadowRoot!.querySelector(`#${this._id}-selectionText`)!;
1425
1451
 
1426
1452
  if (this.Suggestions && this.Suggestions._isItemOnTarget()) {
1427
1453
  invisibleText.textContent = this.itemSelectionAnnounce;
@@ -1435,7 +1461,7 @@ class Input extends UI5Element {
1435
1461
  }
1436
1462
 
1437
1463
  get _headerTitleText() {
1438
- return Input.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
1464
+ return Input.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE as I18nText);
1439
1465
  }
1440
1466
 
1441
1467
  get inputType() {
@@ -1488,22 +1514,24 @@ class Input extends UI5Element {
1488
1514
  return;
1489
1515
  }
1490
1516
 
1517
+ const valueState = this.valueState !== ValueState.None ? this.valueStateTypeMappings[this.valueState] : "";
1518
+
1491
1519
  if (this.shouldDisplayDefaultValueStateMessage) {
1492
- return `${this.valueStateTypeMappings[this.valueState]} ${this.valueStateText}`;
1520
+ return this.valueStateText ? `${valueState} ${this.valueStateText}` : valueState;
1493
1521
  }
1494
1522
 
1495
- return `${this.valueStateTypeMappings[this.valueState]}`.concat(" ", this.valueStateMessageText.map(el => el.textContent).join(" "));
1523
+ return `${valueState}`.concat(" ", this.valueStateMessageText.map(el => el.textContent).join(" "));
1496
1524
  }
1497
1525
 
1498
1526
  get itemSelectionAnnounce() {
1499
- return this.Suggestions ? this.Suggestions.itemSelectionAnnounce : undefined;
1527
+ return this.Suggestions ? this.Suggestions.itemSelectionAnnounce : "";
1500
1528
  }
1501
1529
 
1502
- get classes() {
1530
+ get classes(): ClassMap {
1503
1531
  return {
1504
1532
  popover: {
1505
- "ui5-suggestions-popover": !this.isPhone && this.showSuggestions,
1506
- "ui5-suggestions-popover-with-value-state-header": !this.isPhone && this.showSuggestions && this.hasValueStateMessage,
1533
+ "ui5-suggestions-popover": !this._isPhone && this.showSuggestions,
1534
+ "ui5-suggestions-popover-with-value-state-header": !this._isPhone && this.showSuggestions && this.hasValueStateMessage,
1507
1535
  },
1508
1536
  popoverValueState: {
1509
1537
  "ui5-valuestatemessage-root": true,
@@ -1521,17 +1549,19 @@ class Input extends UI5Element {
1521
1549
 
1522
1550
  const stylesObject = {
1523
1551
  popoverHeader: {
1524
- "max-width": `${this._inputWidth}px`,
1552
+ "max-width": this._inputWidth ? `${this._inputWidth}px` : "",
1525
1553
  },
1526
1554
  suggestionPopoverHeader: {
1527
1555
  "display": this._listWidth === 0 ? "none" : "inline-block",
1528
- "width": `${this._listWidth}px`,
1556
+ "width": this._listWidth ? `${this._listWidth}px` : "",
1529
1557
  },
1530
1558
  suggestionsPopover: {
1531
- "min-width": `${this._inputWidth}px`,
1532
- "max-width": (this._inputWidth / remSizeIxPx) > 40 ? `${this._inputWidth}px` : "40rem",
1559
+ "min-width": this._inputWidth ? `${this._inputWidth}px` : "",
1560
+ "max-width": this._inputWidth && (this._inputWidth / remSizeIxPx) > 40 ? `${this._inputWidth}px` : "40rem",
1561
+ },
1562
+ innerInput: {
1563
+ "padding": "",
1533
1564
  },
1534
- innerInput: {},
1535
1565
  };
1536
1566
 
1537
1567
  if (this.nativeInputWidth < 48) {
@@ -1564,28 +1594,28 @@ class Input extends UI5Element {
1564
1594
  get hasValueStateMessage() {
1565
1595
  return this.hasValueState && this.valueState !== ValueState.Success
1566
1596
  && (!this._inputIconFocused // Handles the cases when valueStateMessage is forwarded (from datepicker e.g.)
1567
- || (this._isPhone && this.Suggestions)); // Handles Input with suggestions on mobile
1597
+ || !!(this._isPhone && this.Suggestions)); // Handles Input with suggestions on mobile
1568
1598
  }
1569
1599
 
1570
1600
  get valueStateText() {
1571
- return this.valueStateTextMappings()[this.valueState];
1601
+ return this.valueState !== ValueState.None ? this.valueStateTextMappings()[this.valueState] : undefined;
1572
1602
  }
1573
1603
 
1574
1604
  get suggestionsText() {
1575
- return Input.i18nBundle.getText(INPUT_SUGGESTIONS);
1605
+ return Input.i18nBundle.getText(INPUT_SUGGESTIONS as I18nText);
1576
1606
  }
1577
1607
 
1578
1608
  get availableSuggestionsCount() {
1579
- if (this.showSuggestions && (this.value || this.Suggestions.isOpened())) {
1609
+ if (this.showSuggestions && (this.value || this.Suggestions!.isOpened())) {
1580
1610
  switch (this.suggestionsTexts.length) {
1581
1611
  case 0:
1582
- return Input.i18nBundle.getText(INPUT_SUGGESTIONS_NO_HIT);
1612
+ return Input.i18nBundle.getText(INPUT_SUGGESTIONS_NO_HIT as I18nText);
1583
1613
 
1584
1614
  case 1:
1585
- return Input.i18nBundle.getText(INPUT_SUGGESTIONS_ONE_HIT);
1615
+ return Input.i18nBundle.getText(INPUT_SUGGESTIONS_ONE_HIT as I18nText);
1586
1616
 
1587
1617
  default:
1588
- return Input.i18nBundle.getText(INPUT_SUGGESTIONS_MORE_HITS, this.suggestionsTexts.length);
1618
+ return Input.i18nBundle.getText(INPUT_SUGGESTIONS_MORE_HITS as I18nText, this.suggestionsTexts.length);
1589
1619
  }
1590
1620
  }
1591
1621
 
@@ -1623,13 +1653,15 @@ class Input extends UI5Element {
1623
1653
  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"/>`,
1624
1654
  };
1625
1655
 
1626
- const result = `
1627
- <svg xmlns="http://www.w3.org/2000/svg" width="24" height="20" viewBox="0 0 20 20" fill="none">
1628
- ${iconPerValueState[this.valueState]};
1629
- </svg>
1630
- `;
1656
+ if (this.valueState !== ValueState.None) {
1657
+ return `
1658
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="20" viewBox="0 0 20 20" fill="none">
1659
+ ${iconPerValueState[this.valueState]};
1660
+ </svg>
1661
+ `;
1662
+ }
1631
1663
 
1632
- return this.valueState !== ValueState.None ? result : "";
1664
+ return "";
1633
1665
  }
1634
1666
 
1635
1667
  get _valueStatePopoverHorizontalAlign() {
@@ -1654,8 +1686,8 @@ class Input extends UI5Element {
1654
1686
  * Returns the caret position inside the native input
1655
1687
  * @protected
1656
1688
  */
1657
- getCaretPosition() {
1658
- return getCaretPosition(this.nativeInput);
1689
+ getCaretPosition(): number | null {
1690
+ return getCaretPosition(this.nativeInput!);
1659
1691
  }
1660
1692
 
1661
1693
  /**
@@ -1663,15 +1695,15 @@ class Input extends UI5Element {
1663
1695
  * @protected
1664
1696
  * @param pos
1665
1697
  */
1666
- setCaretPosition(pos) {
1667
- setCaretPosition(this.nativeInput, pos);
1698
+ setCaretPosition(pos: number | null) {
1699
+ setCaretPosition(this.nativeInput!, pos);
1668
1700
  }
1669
1701
 
1670
1702
  /**
1671
1703
  * Removes the fractional part of floating-point number.
1672
1704
  * @param {string} value the numeric value of Input of type "Number"
1673
1705
  */
1674
- removeFractionalPart(value) {
1706
+ removeFractionalPart(value: string) {
1675
1707
  if (value.includes(".")) {
1676
1708
  return value.slice(0, value.indexOf("."));
1677
1709
  }
@@ -1683,13 +1715,13 @@ class Input extends UI5Element {
1683
1715
  }
1684
1716
 
1685
1717
  static get dependencies() {
1686
- const Suggestions = getFeature("InputSuggestions");
1718
+ const Suggestions = getFeature<typeof InputSuggestions>("InputSuggestions");
1687
1719
 
1688
- return [Popover, Icon].concat(Suggestions ? Suggestions.dependencies : []);
1720
+ return ([Popover, Icon] as Array<typeof UI5Element>).concat(Suggestions ? Suggestions.dependencies : []);
1689
1721
  }
1690
1722
 
1691
1723
  static async onDefine() {
1692
- const Suggestions = getFeature("InputSuggestions");
1724
+ const Suggestions = getFeature<typeof InputSuggestions>("InputSuggestions");
1693
1725
 
1694
1726
  [Input.i18nBundle] = await Promise.all([
1695
1727
  getI18nBundle("@ui5/webcomponents"),