@ui5/webcomponents 0.0.0-453158269 → 0.0.0-49cef2d02

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 (1295) hide show
  1. package/.dev-server-port +1 -0
  2. package/CHANGELOG.md +236 -0
  3. package/README.md +9 -7
  4. package/dist/Avatar.d.ts +251 -0
  5. package/dist/Avatar.js +204 -348
  6. package/dist/Avatar.js.map +1 -0
  7. package/dist/AvatarGroup.js +30 -12
  8. package/dist/Badge.d.ts +82 -0
  9. package/dist/Badge.js +65 -116
  10. package/dist/Badge.js.map +1 -0
  11. package/dist/Breadcrumbs.d.ts +200 -0
  12. package/dist/Breadcrumbs.js +439 -574
  13. package/dist/Breadcrumbs.js.map +1 -0
  14. package/dist/BreadcrumbsItem.d.ts +73 -0
  15. package/dist/BreadcrumbsItem.js +34 -88
  16. package/dist/BreadcrumbsItem.js.map +1 -0
  17. package/dist/BusyIndicator.js +7 -10
  18. package/dist/Button.d.ts +257 -0
  19. package/dist/Button.js +236 -452
  20. package/dist/Button.js.map +1 -0
  21. package/dist/Calendar.d.ts +251 -0
  22. package/dist/Calendar.js +268 -364
  23. package/dist/Calendar.js.map +1 -0
  24. package/dist/CalendarDate.d.ts +28 -0
  25. package/dist/CalendarDate.js +20 -30
  26. package/dist/CalendarDate.js.map +1 -0
  27. package/dist/CalendarHeader.d.ts +87 -0
  28. package/dist/CalendarHeader.js +144 -194
  29. package/dist/CalendarHeader.js.map +1 -0
  30. package/dist/CalendarPart.d.ts +53 -0
  31. package/dist/CalendarPart.js +71 -92
  32. package/dist/CalendarPart.js.map +1 -0
  33. package/dist/Card.d.ts +91 -0
  34. package/dist/Card.js +68 -123
  35. package/dist/Card.js.map +1 -0
  36. package/dist/CardHeader.d.ts +123 -0
  37. package/dist/CardHeader.js +153 -241
  38. package/dist/CardHeader.js.map +1 -0
  39. package/dist/Carousel.js +52 -11
  40. package/dist/CheckBox.d.ts +256 -0
  41. package/dist/CheckBox.js +219 -408
  42. package/dist/CheckBox.js.map +1 -0
  43. package/dist/ColorPalette.d.ts +140 -0
  44. package/dist/ColorPalette.js +362 -455
  45. package/dist/ColorPalette.js.map +1 -0
  46. package/dist/ColorPaletteItem.d.ts +68 -0
  47. package/dist/ColorPaletteItem.js +66 -114
  48. package/dist/ColorPaletteItem.js.map +1 -0
  49. package/dist/ColorPalettePopover.d.ts +128 -0
  50. package/dist/ColorPalettePopover.js +141 -203
  51. package/dist/ColorPalettePopover.js.map +1 -0
  52. package/dist/ColorPicker.d.ts +147 -0
  53. package/dist/ColorPicker.js +371 -565
  54. package/dist/ColorPicker.js.map +1 -0
  55. package/dist/ComboBox.js +72 -18
  56. package/dist/ComboBoxGroupItem.js +7 -7
  57. package/dist/ComboBoxItem.js +4 -4
  58. package/dist/CustomListItem.d.ts +44 -0
  59. package/dist/CustomListItem.js +52 -79
  60. package/dist/CustomListItem.js.map +1 -0
  61. package/dist/DateComponentBase.d.ts +83 -0
  62. package/dist/DateComponentBase.js +101 -143
  63. package/dist/DateComponentBase.js.map +1 -0
  64. package/dist/DatePicker.d.ts +448 -0
  65. package/dist/DatePicker.js +542 -724
  66. package/dist/DatePicker.js.map +1 -0
  67. package/dist/DateRangePicker.d.ts +165 -0
  68. package/dist/DateRangePicker.js +265 -309
  69. package/dist/DateRangePicker.js.map +1 -0
  70. package/dist/DateTimePicker.d.ts +212 -0
  71. package/dist/DateTimePicker.js +255 -344
  72. package/dist/DateTimePicker.js.map +1 -0
  73. package/dist/DayPicker.d.ts +243 -0
  74. package/dist/DayPicker.js +605 -730
  75. package/dist/DayPicker.js.map +1 -0
  76. package/dist/Dialog.d.ts +236 -0
  77. package/dist/Dialog.js +386 -545
  78. package/dist/Dialog.js.map +1 -0
  79. package/dist/DurationPicker.js +5 -5
  80. package/dist/FileUploader.d.ts +237 -0
  81. package/dist/FileUploader.js +304 -487
  82. package/dist/FileUploader.js.map +1 -0
  83. package/dist/Filters.d.ts +5 -0
  84. package/dist/Filters.js +10 -21
  85. package/dist/Filters.js.map +1 -0
  86. package/dist/GroupHeaderListItem.d.ts +45 -0
  87. package/dist/GroupHeaderListItem.js +42 -76
  88. package/dist/GroupHeaderListItem.js.map +1 -0
  89. package/dist/Icon.d.ts +252 -0
  90. package/dist/Icon.js +183 -333
  91. package/dist/Icon.js.map +1 -0
  92. package/dist/Input.d.ts +598 -0
  93. package/dist/Input.js +1095 -1604
  94. package/dist/Input.js.map +1 -0
  95. package/dist/Interfaces.d.ts +161 -0
  96. package/dist/Interfaces.js +45 -85
  97. package/dist/Interfaces.js.map +1 -0
  98. package/dist/Label.d.ts +98 -0
  99. package/dist/Label.js +63 -124
  100. package/dist/Label.js.map +1 -0
  101. package/dist/Link.d.ts +222 -0
  102. package/dist/Link.js +177 -326
  103. package/dist/Link.js.map +1 -0
  104. package/dist/List.d.ts +383 -0
  105. package/dist/List.js +707 -1016
  106. package/dist/List.js.map +1 -0
  107. package/dist/ListItem.d.ts +196 -0
  108. package/dist/ListItem.js +298 -375
  109. package/dist/ListItem.js.map +1 -0
  110. package/dist/ListItemBase.d.ts +61 -0
  111. package/dist/ListItemBase.js +114 -167
  112. package/dist/ListItemBase.js.map +1 -0
  113. package/dist/Menu.d.ts +183 -0
  114. package/dist/Menu.js +426 -452
  115. package/dist/Menu.js.map +1 -0
  116. package/dist/MenuItem.d.ts +124 -0
  117. package/dist/MenuItem.js +67 -136
  118. package/dist/MenuItem.js.map +1 -0
  119. package/dist/MessageStrip.d.ts +135 -0
  120. package/dist/MessageStrip.js +119 -207
  121. package/dist/MessageStrip.js.map +1 -0
  122. package/dist/MonthPicker.d.ts +109 -0
  123. package/dist/MonthPicker.js +262 -278
  124. package/dist/MonthPicker.js.map +1 -0
  125. package/dist/MultiComboBox.js +169 -44
  126. package/dist/MultiComboBoxGroupItem.js +7 -7
  127. package/dist/MultiComboBoxItem.js +4 -4
  128. package/dist/MultiInput.js +28 -12
  129. package/dist/Option.js +8 -8
  130. package/dist/Panel.d.ts +238 -0
  131. package/dist/Panel.js +230 -385
  132. package/dist/Panel.js.map +1 -0
  133. package/dist/Popover.d.ts +329 -0
  134. package/dist/Popover.js +519 -762
  135. package/dist/Popover.js.map +1 -0
  136. package/dist/Popup.d.ts +290 -0
  137. package/dist/Popup.js +403 -567
  138. package/dist/Popup.js.map +1 -0
  139. package/dist/ProgressIndicator.d.ts +121 -0
  140. package/dist/ProgressIndicator.js +121 -207
  141. package/dist/ProgressIndicator.js.map +1 -0
  142. package/dist/RadioButton.js +40 -20
  143. package/dist/RadioButtonGroup.js +1 -1
  144. package/dist/RangeSlider.d.ts +363 -0
  145. package/dist/RangeSlider.js +682 -753
  146. package/dist/RangeSlider.js.map +1 -0
  147. package/dist/RatingIndicator.js +13 -8
  148. package/dist/ResponsivePopover.js +12 -4
  149. package/dist/SegmentedButton.js +26 -22
  150. package/dist/SegmentedButtonItem.js +6 -6
  151. package/dist/Select.js +43 -16
  152. package/dist/Slider.d.ts +163 -0
  153. package/dist/Slider.js +241 -259
  154. package/dist/Slider.js.map +1 -0
  155. package/dist/SliderBase.d.ts +357 -0
  156. package/dist/SliderBase.js +589 -795
  157. package/dist/SliderBase.js.map +1 -0
  158. package/dist/SplitButton.d.ts +220 -0
  159. package/dist/SplitButton.js +211 -382
  160. package/dist/SplitButton.js.map +1 -0
  161. package/dist/StandardListItem.d.ts +156 -0
  162. package/dist/StandardListItem.js +80 -159
  163. package/dist/StandardListItem.js.map +1 -0
  164. package/dist/StepInput.d.ts +301 -0
  165. package/dist/StepInput.js +378 -615
  166. package/dist/StepInput.js.map +1 -0
  167. package/dist/SuggestionGroupItem.d.ts +35 -0
  168. package/dist/SuggestionGroupItem.js +35 -51
  169. package/dist/SuggestionGroupItem.js.map +1 -0
  170. package/dist/SuggestionItem.d.ts +104 -0
  171. package/dist/SuggestionItem.js +49 -131
  172. package/dist/SuggestionItem.js.map +1 -0
  173. package/dist/SuggestionListItem.d.ts +47 -0
  174. package/dist/SuggestionListItem.js +38 -52
  175. package/dist/SuggestionListItem.js.map +1 -0
  176. package/dist/Switch.d.ts +167 -0
  177. package/dist/Switch.js +136 -236
  178. package/dist/Switch.js.map +1 -0
  179. package/dist/Tab.js +62 -19
  180. package/dist/TabContainer.js +219 -164
  181. package/dist/TabSeparator.js +11 -4
  182. package/dist/Table.d.ts +426 -0
  183. package/dist/Table.js +792 -1118
  184. package/dist/Table.js.map +1 -0
  185. package/dist/TableCell.d.ts +51 -0
  186. package/dist/TableCell.js +43 -60
  187. package/dist/TableCell.js.map +1 -0
  188. package/dist/TableColumn.d.ts +101 -0
  189. package/dist/TableColumn.js +53 -99
  190. package/dist/TableColumn.js.map +1 -0
  191. package/dist/TableGroupRow.d.ts +79 -0
  192. package/dist/TableGroupRow.js +97 -134
  193. package/dist/TableGroupRow.js.map +1 -0
  194. package/dist/TableRow.d.ts +160 -0
  195. package/dist/TableRow.js +315 -401
  196. package/dist/TableRow.js.map +1 -0
  197. package/dist/TextArea.js +56 -57
  198. package/dist/TimePicker.d.ts +115 -0
  199. package/dist/TimePicker.js +60 -96
  200. package/dist/TimePicker.js.map +1 -0
  201. package/dist/TimePickerBase.d.ts +180 -0
  202. package/dist/TimePickerBase.js +341 -443
  203. package/dist/TimePickerBase.js.map +1 -0
  204. package/dist/TimeSelection.d.ts +162 -0
  205. package/dist/TimeSelection.js +359 -474
  206. package/dist/TimeSelection.js.map +1 -0
  207. package/dist/Title.d.ts +69 -0
  208. package/dist/Title.js +62 -105
  209. package/dist/Title.js.map +1 -0
  210. package/dist/Toast.js +6 -6
  211. package/dist/ToggleButton.js +5 -8
  212. package/dist/Token.js +24 -7
  213. package/dist/Tokenizer.js +115 -25
  214. package/dist/Tree.js +122 -58
  215. package/dist/TreeItem.js +35 -120
  216. package/dist/TreeItemBase.js +431 -0
  217. package/dist/TreeItemCustom.js +102 -0
  218. package/dist/TreeList.js +48 -0
  219. package/dist/WheelSlider.d.ts +122 -0
  220. package/dist/WheelSlider.js +302 -410
  221. package/dist/WheelSlider.js.map +1 -0
  222. package/dist/YearPicker.d.ts +105 -0
  223. package/dist/YearPicker.js +299 -304
  224. package/dist/YearPicker.js.map +1 -0
  225. package/dist/api.json +1 -7488
  226. package/dist/assets/HT-1000.59a0ea5a.jpg +0 -0
  227. package/dist/assets/HT-1010.7b05e4f5.jpg +0 -0
  228. package/dist/assets/HT-1022.6fa171f0.jpg +0 -0
  229. package/dist/assets/John_Miller.fc9d0d73.png +0 -0
  230. package/dist/assets/Lamp_avatar_01.ab251b40.jpg +0 -0
  231. package/dist/assets/SAP-icons-TNT.fa06c05f.js +1 -0
  232. package/dist/assets/SAP-icons-business-suite.7cff1fd8.js +1 -0
  233. package/dist/assets/SAP-icons.7f154911.js +1 -0
  234. package/dist/assets/SAP-icons.e76c8241.js +1 -0
  235. package/dist/assets/ar.76457d6b.js +1 -0
  236. package/dist/assets/ar_EG.facab575.js +1 -0
  237. package/dist/assets/ar_SA.037c760a.js +1 -0
  238. package/dist/assets/bg.eb54e36a.js +1 -0
  239. package/dist/assets/ca.1047c043.js +1 -0
  240. package/dist/assets/cs.47109072.js +1 -0
  241. package/dist/assets/da.1562c279.js +1 -0
  242. package/dist/assets/de.3397b9d2.js +1 -0
  243. package/dist/assets/de_AT.fb777626.js +1 -0
  244. package/dist/assets/de_CH.c4011bf2.js +1 -0
  245. package/dist/assets/el.52a181c7.js +1 -0
  246. package/dist/assets/el_CY.065e8a48.js +1 -0
  247. package/dist/assets/en.8b571af2.js +1 -0
  248. package/dist/assets/en_AU.29f5e0e2.js +1 -0
  249. package/dist/assets/en_GB.b0afb274.js +1 -0
  250. package/dist/assets/en_HK.188c8a39.js +1 -0
  251. package/dist/assets/en_IE.b52bdf4f.js +1 -0
  252. package/dist/assets/en_IN.5925f501.js +1 -0
  253. package/dist/assets/en_NZ.adc1b6af.js +1 -0
  254. package/dist/assets/en_PG.2e475ab9.js +1 -0
  255. package/dist/assets/en_SG.400dc7e5.js +1 -0
  256. package/dist/assets/en_ZA.06de0b73.js +1 -0
  257. package/dist/assets/es.d137c08c.js +1 -0
  258. package/dist/assets/es_AR.a719c078.js +1 -0
  259. package/dist/assets/es_BO.ba051d49.js +1 -0
  260. package/dist/assets/es_CL.876855d2.js +1 -0
  261. package/dist/assets/es_CO.51c37c4d.js +1 -0
  262. package/dist/assets/es_MX.c11d012e.js +1 -0
  263. package/dist/assets/es_PE.1a5de4db.js +1 -0
  264. package/dist/assets/es_UY.29036823.js +1 -0
  265. package/dist/assets/es_VE.22e2164a.js +1 -0
  266. package/dist/assets/et.d802827f.js +1 -0
  267. package/dist/assets/fa.59b6aa5f.js +1 -0
  268. package/dist/assets/fi.2cc79303.js +1 -0
  269. package/dist/assets/fr.055c2d0d.js +1 -0
  270. package/dist/assets/fr_BE.79a4448b.js +1 -0
  271. package/dist/assets/fr_CA.0c4a98e4.js +1 -0
  272. package/dist/assets/fr_CH.ba0db8bd.js +1 -0
  273. package/dist/assets/fr_LU.21a6bcea.js +1 -0
  274. package/dist/assets/he.e187c6df.js +1 -0
  275. package/dist/assets/hi.cb35adb1.js +1 -0
  276. package/dist/assets/hr.24bc905c.js +1 -0
  277. package/dist/assets/hu.aadbd74c.js +1 -0
  278. package/dist/assets/id.b9bd26e5.js +1 -0
  279. package/dist/assets/it.36ffae4a.js +1 -0
  280. package/dist/assets/it_CH.7ef1e2bf.js +1 -0
  281. package/dist/assets/ja.a08af783.js +1 -0
  282. package/dist/assets/kitchen-scripts.489c25fb.css +1 -0
  283. package/dist/assets/kitchen-scripts.ec775613.js +1 -0
  284. package/dist/assets/kk.5d3dddbe.js +1 -0
  285. package/dist/assets/ko.264fdf35.js +1 -0
  286. package/dist/assets/loading.b2cd685f.gif +0 -0
  287. package/dist/assets/lt.b967d42b.js +1 -0
  288. package/dist/assets/lv.9c0f8206.js +1 -0
  289. package/dist/assets/messagebundle_ar.3285e748.js +1 -0
  290. package/dist/assets/messagebundle_ar.7f1e385c.js +1 -0
  291. package/dist/assets/messagebundle_bg.67505cb7.js +1 -0
  292. package/dist/assets/messagebundle_bg.eba3e906.js +1 -0
  293. package/dist/assets/messagebundle_ca.47eb5246.js +1 -0
  294. package/dist/assets/messagebundle_ca.64fb370c.js +1 -0
  295. package/dist/assets/messagebundle_cs.2c9254dc.js +1 -0
  296. package/dist/assets/messagebundle_cs.ce8b8a69.js +1 -0
  297. package/dist/assets/messagebundle_cy.3dad0e1d.js +1 -0
  298. package/dist/assets/messagebundle_cy.b66ab3d7.js +1 -0
  299. package/dist/assets/messagebundle_da.7306ba78.js +1 -0
  300. package/dist/assets/messagebundle_da.ff79429b.js +1 -0
  301. package/dist/assets/messagebundle_de.11a43c3f.js +1 -0
  302. package/dist/assets/messagebundle_de.e9f4d979.js +1 -0
  303. package/dist/assets/messagebundle_el.50666070.js +1 -0
  304. package/dist/assets/messagebundle_el.5313ff1a.js +1 -0
  305. package/dist/assets/messagebundle_en.4d827ce9.js +1 -0
  306. package/dist/assets/messagebundle_en.edda053c.js +1 -0
  307. package/dist/assets/messagebundle_en_GB.9eb5f8cf.js +1 -0
  308. package/dist/assets/messagebundle_en_GB.b09b6a64.js +1 -0
  309. package/dist/assets/messagebundle_en_US_sappsd.7d173b62.js +1 -0
  310. package/dist/assets/messagebundle_en_US_sappsd.c97ca89f.js +1 -0
  311. package/dist/assets/messagebundle_en_US_saprigi.443cefd7.js +1 -0
  312. package/dist/assets/messagebundle_en_US_saprigi.d0b577b7.js +1 -0
  313. package/dist/assets/messagebundle_en_US_saptrc.7da9b71b.js +1 -0
  314. package/dist/assets/messagebundle_en_US_saptrc.ec370551.js +1 -0
  315. package/dist/assets/messagebundle_es.3b0d6da4.js +1 -0
  316. package/dist/assets/messagebundle_es.881ff0f9.js +1 -0
  317. package/dist/assets/messagebundle_es_MX.3fc62f39.js +1 -0
  318. package/dist/assets/messagebundle_es_MX.da0228db.js +1 -0
  319. package/dist/assets/messagebundle_et.2cfc3295.js +1 -0
  320. package/dist/assets/messagebundle_et.45f3eda8.js +1 -0
  321. package/dist/assets/messagebundle_fi.17dccdfe.js +1 -0
  322. package/dist/assets/messagebundle_fi.f62f59fc.js +1 -0
  323. package/dist/assets/messagebundle_fr.01378189.js +1 -0
  324. package/dist/assets/messagebundle_fr.7d7c418f.js +1 -0
  325. package/dist/assets/messagebundle_fr_CA.2594af28.js +1 -0
  326. package/dist/assets/messagebundle_fr_CA.a4592fb9.js +1 -0
  327. package/dist/assets/messagebundle_hi.0dd7cf25.js +1 -0
  328. package/dist/assets/messagebundle_hi.2f3db639.js +1 -0
  329. package/dist/assets/messagebundle_hr.22e41fe6.js +1 -0
  330. package/dist/assets/messagebundle_hr.f8282341.js +1 -0
  331. package/dist/assets/messagebundle_hu.2589bdb3.js +1 -0
  332. package/dist/assets/messagebundle_hu.31a245d6.js +1 -0
  333. package/dist/assets/messagebundle_in.52c1e21c.js +1 -0
  334. package/dist/assets/messagebundle_in.920ee55c.js +1 -0
  335. package/dist/assets/messagebundle_it.146c4b3c.js +1 -0
  336. package/dist/assets/messagebundle_it.7c4db606.js +1 -0
  337. package/dist/assets/messagebundle_iw.2766f5a1.js +1 -0
  338. package/dist/assets/messagebundle_iw.668edbae.js +1 -0
  339. package/dist/assets/messagebundle_ja.4ca0da85.js +1 -0
  340. package/dist/assets/messagebundle_ja.b0b6d3d0.js +1 -0
  341. package/dist/assets/messagebundle_kk.f1d95e67.js +1 -0
  342. package/dist/assets/messagebundle_kk.f9132ede.js +1 -0
  343. package/dist/assets/messagebundle_ko.a9126af1.js +1 -0
  344. package/dist/assets/messagebundle_ko.d23a9de8.js +1 -0
  345. package/dist/assets/messagebundle_lt.1c86044c.js +1 -0
  346. package/dist/assets/messagebundle_lt.e2f6f5b0.js +1 -0
  347. package/dist/assets/messagebundle_lv.023b46ad.js +1 -0
  348. package/dist/assets/messagebundle_lv.6b0ad93c.js +1 -0
  349. package/dist/assets/messagebundle_ms.12fa7211.js +1 -0
  350. package/dist/assets/messagebundle_ms.8d8ac7f1.js +1 -0
  351. package/dist/assets/messagebundle_nl.1bb5da42.js +1 -0
  352. package/dist/assets/messagebundle_nl.3d8877e1.js +1 -0
  353. package/dist/assets/messagebundle_no.416b83e7.js +1 -0
  354. package/dist/assets/messagebundle_no.c7ee6784.js +1 -0
  355. package/dist/assets/messagebundle_pl.0d1b3dd1.js +1 -0
  356. package/dist/assets/messagebundle_pl.942cdbbd.js +1 -0
  357. package/dist/assets/messagebundle_pt.027e899b.js +1 -0
  358. package/dist/assets/messagebundle_pt.33ff9d42.js +1 -0
  359. package/dist/assets/messagebundle_pt_PT.9bca19db.js +1 -0
  360. package/dist/assets/messagebundle_pt_PT.a91f6468.js +1 -0
  361. package/dist/assets/messagebundle_ro.80e6cfad.js +1 -0
  362. package/dist/assets/messagebundle_ro.bd2e01e0.js +1 -0
  363. package/dist/assets/messagebundle_ru.388e4272.js +1 -0
  364. package/dist/assets/messagebundle_ru.e5bfb3ae.js +1 -0
  365. package/dist/assets/messagebundle_sh.122ca47b.js +1 -0
  366. package/dist/assets/messagebundle_sh.6d1a0a62.js +1 -0
  367. package/dist/assets/messagebundle_sk.1c800907.js +1 -0
  368. package/dist/assets/messagebundle_sk.66d70983.js +1 -0
  369. package/dist/assets/messagebundle_sl.3f1a077f.js +1 -0
  370. package/dist/assets/messagebundle_sl.af7daebc.js +1 -0
  371. package/dist/assets/messagebundle_sv.71f16a40.js +1 -0
  372. package/dist/assets/messagebundle_sv.d8d543df.js +1 -0
  373. package/dist/assets/messagebundle_th.700d6a4a.js +1 -0
  374. package/dist/assets/messagebundle_th.f54d55d7.js +1 -0
  375. package/dist/assets/messagebundle_tr.6f267da9.js +1 -0
  376. package/dist/assets/messagebundle_tr.971a97d0.js +1 -0
  377. package/dist/assets/messagebundle_uk.52e9f0c8.js +1 -0
  378. package/dist/assets/messagebundle_uk.e0830675.js +1 -0
  379. package/dist/assets/messagebundle_vi.57d3d183.js +1 -0
  380. package/dist/assets/messagebundle_vi.e9fe4caa.js +1 -0
  381. package/dist/assets/messagebundle_zh_CN.8ff0766b.js +1 -0
  382. package/dist/assets/messagebundle_zh_CN.9669c0a2.js +1 -0
  383. package/dist/assets/messagebundle_zh_TW.25b49650.js +1 -0
  384. package/dist/assets/messagebundle_zh_TW.4841569f.js +1 -0
  385. package/dist/assets/ms.5a523fbe.js +1 -0
  386. package/dist/assets/nb.6e98bbca.js +1 -0
  387. package/dist/assets/nl.84e9e6df.js +1 -0
  388. package/dist/assets/nl_BE.0f374ea5.js +1 -0
  389. package/dist/assets/parameters-bundle.css.06e5f6af.js +1 -0
  390. package/dist/assets/parameters-bundle.css.09fdcedf.js +1 -0
  391. package/dist/assets/parameters-bundle.css.0c16556f.js +1 -0
  392. package/dist/assets/parameters-bundle.css.1024d408.js +1 -0
  393. package/dist/assets/parameters-bundle.css.12ef5553.js +1 -0
  394. package/dist/assets/parameters-bundle.css.1d5159c7.js +1 -0
  395. package/dist/assets/parameters-bundle.css.2ff57cb9.js +1 -0
  396. package/dist/assets/parameters-bundle.css.3d586108.js +1 -0
  397. package/dist/assets/parameters-bundle.css.3fe96be2.js +1 -0
  398. package/dist/assets/parameters-bundle.css.44ff7825.js +1 -0
  399. package/dist/assets/parameters-bundle.css.50f83b44.js +1 -0
  400. package/dist/assets/parameters-bundle.css.58325286.js +1 -0
  401. package/dist/assets/parameters-bundle.css.5c29069a.js +1 -0
  402. package/dist/assets/parameters-bundle.css.759ff23e.js +1 -0
  403. package/dist/assets/parameters-bundle.css.76ee50df.js +1 -0
  404. package/dist/assets/parameters-bundle.css.7ad77620.js +1 -0
  405. package/dist/assets/parameters-bundle.css.828caf0e.js +1 -0
  406. package/dist/assets/parameters-bundle.css.89d7ea85.js +1 -0
  407. package/dist/assets/parameters-bundle.css.a1f2b381.js +1 -0
  408. package/dist/assets/parameters-bundle.css.a9042929.js +1 -0
  409. package/dist/assets/parameters-bundle.css.ab7cc9c4.js +1 -0
  410. package/dist/assets/parameters-bundle.css.c3acfe91.js +1 -0
  411. package/dist/assets/parameters-bundle.css.e7002fc1.js +1 -0
  412. package/dist/assets/parameters-bundle.css.fe4c8069.js +1 -0
  413. package/dist/assets/pl.c8acba9e.js +1 -0
  414. package/dist/assets/pt.676d5650.js +1 -0
  415. package/dist/assets/pt_PT.0bbc2da6.js +1 -0
  416. package/dist/assets/ro.10993af2.js +1 -0
  417. package/dist/assets/ru.4aba168e.js +1 -0
  418. package/dist/assets/ru_UA.334d6613.js +1 -0
  419. package/dist/assets/sk.3183c85e.js +1 -0
  420. package/dist/assets/sl.edad6042.js +1 -0
  421. package/dist/assets/sr.3e293379.js +1 -0
  422. package/dist/assets/sr_Latn.0f4a03c3.js +1 -0
  423. package/dist/assets/sv.e76e14e4.js +1 -0
  424. package/dist/assets/th.f5491ec1.js +1 -0
  425. package/dist/assets/tr.3b838818.js +1 -0
  426. package/dist/assets/uk.ebbd81a0.js +1 -0
  427. package/dist/assets/vi.87616fa0.js +1 -0
  428. package/dist/assets/woman_avatar_5.7316a316.png +0 -0
  429. package/dist/assets/zh_CN.de478ef9.js +1 -0
  430. package/dist/assets/zh_HK.834c3161.js +1 -0
  431. package/dist/assets/zh_SG.13241ee3.js +1 -0
  432. package/dist/assets/zh_TW.8f4a16b5.js +1 -0
  433. package/dist/css/themes/Avatar.css +1 -1
  434. package/dist/css/themes/AvatarGroup.css +1 -1
  435. package/dist/css/themes/Badge.css +1 -1
  436. package/dist/css/themes/Breadcrumbs.css +1 -1
  437. package/dist/css/themes/BreadcrumbsPopover.css +1 -1
  438. package/dist/css/themes/BrowserScrollbar.css +1 -1
  439. package/dist/css/themes/BusyIndicator.css +1 -1
  440. package/dist/css/themes/Button.css +1 -1
  441. package/dist/css/themes/CalendarHeader.css +1 -1
  442. package/dist/css/themes/CardHeader.css +1 -1
  443. package/dist/css/themes/Carousel.css +1 -1
  444. package/dist/css/themes/CheckBox.css +1 -1
  445. package/dist/css/themes/ColorPicker.css +1 -1
  446. package/dist/css/themes/ComboBox.css +1 -1
  447. package/dist/css/themes/DatePicker.css +1 -1
  448. package/dist/css/themes/DayPicker.css +1 -1
  449. package/dist/css/themes/Dialog.css +1 -1
  450. package/dist/css/themes/GroupHeaderListItem.css +1 -1
  451. package/dist/css/themes/Icon.css +1 -1
  452. package/dist/css/themes/Input.css +1 -1
  453. package/dist/css/themes/Link.css +1 -1
  454. package/dist/css/themes/ListItem.css +1 -1
  455. package/dist/css/themes/ListItemBase.css +1 -1
  456. package/dist/css/themes/Menu.css +1 -1
  457. package/dist/css/themes/MonthPicker.css +1 -1
  458. package/dist/css/themes/MultiComboBox.css +1 -1
  459. package/dist/css/themes/MultiInput.css +1 -1
  460. package/dist/css/themes/Panel.css +1 -1
  461. package/dist/css/themes/PopupsCommon.css +1 -1
  462. package/dist/css/themes/RadioButton.css +1 -1
  463. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  464. package/dist/css/themes/Select.css +1 -1
  465. package/dist/css/themes/SliderBase.css +1 -1
  466. package/dist/css/themes/StepInput.css +1 -1
  467. package/dist/css/themes/Switch.css +1 -1
  468. package/dist/css/themes/TabContainer.css +1 -1
  469. package/dist/css/themes/TabInOverflow.css +1 -1
  470. package/dist/css/themes/TabInStrip.css +1 -1
  471. package/dist/css/themes/Table.css +1 -1
  472. package/dist/css/themes/TableCell.css +1 -1
  473. package/dist/css/themes/TableColumn.css +1 -1
  474. package/dist/css/themes/TableRow.css +1 -1
  475. package/dist/css/themes/TextArea.css +1 -1
  476. package/dist/css/themes/TimePicker.css +1 -1
  477. package/dist/css/themes/Title.css +1 -1
  478. package/dist/css/themes/Toast.css +1 -1
  479. package/dist/css/themes/ToggleButton.css +1 -1
  480. package/dist/css/themes/Tokenizer.css +1 -1
  481. package/dist/css/themes/TreeItem.css +1 -0
  482. package/dist/css/themes/ValueStateMessage.css +1 -1
  483. package/dist/css/themes/YearPicker.css +1 -1
  484. package/dist/css/themes/sap_belize/parameters-bundle.css +1 -1
  485. package/dist/css/themes/sap_belize_hcb/parameters-bundle.css +1 -1
  486. package/dist/css/themes/sap_belize_hcw/parameters-bundle.css +1 -1
  487. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  488. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  489. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  490. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  491. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  492. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  493. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  494. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  495. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  496. package/dist/features/ColorPaletteMoreColors.d.ts +13 -0
  497. package/dist/features/ColorPaletteMoreColors.js +23 -33
  498. package/dist/features/ColorPaletteMoreColors.js.map +1 -0
  499. package/dist/features/InputElementsFormSupport.d.ts +31 -0
  500. package/dist/features/InputElementsFormSupport.js +95 -83
  501. package/dist/features/InputElementsFormSupport.js.map +1 -0
  502. package/dist/features/InputSuggestions.d.ts +126 -0
  503. package/dist/features/InputSuggestions.js +458 -573
  504. package/dist/features/InputSuggestions.js.map +1 -0
  505. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  506. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  507. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  508. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  509. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  510. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  511. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  512. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  513. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  514. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  515. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  516. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  517. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  518. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  519. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  520. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  521. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  522. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  523. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  524. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  525. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  526. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  527. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  528. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  529. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  530. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  531. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  532. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  533. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  534. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  535. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  536. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  537. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  538. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  539. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  540. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  541. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  542. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  543. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  544. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  545. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  546. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  547. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  548. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  549. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  550. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  551. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  552. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  553. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  554. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  555. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  556. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  557. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  558. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  559. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  560. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  561. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  562. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  563. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  564. package/dist/generated/i18n/i18n-defaults.js +2 -2
  565. package/dist/generated/templates/AvatarTemplate.lit.js +1 -1
  566. package/dist/generated/templates/BreadcrumbsTemplate.lit.js +2 -2
  567. package/dist/generated/templates/ButtonTemplate.lit.js +1 -1
  568. package/dist/generated/templates/CalendarHeaderTemplate.lit.js +2 -2
  569. package/dist/generated/templates/CalendarTemplate.lit.js +1 -1
  570. package/dist/generated/templates/CardHeaderTemplate.lit.js +3 -3
  571. package/dist/generated/templates/CardTemplate.lit.js +1 -1
  572. package/dist/generated/templates/CarouselTemplate.lit.js +4 -4
  573. package/dist/generated/templates/CheckBoxTemplate.lit.js +1 -1
  574. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +19 -17
  575. package/dist/generated/templates/ComboBoxTemplate.lit.js +1 -1
  576. package/dist/generated/templates/CustomListItemTemplate.lit.js +14 -8
  577. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +1 -1
  578. package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
  579. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +1 -1
  580. package/dist/generated/templates/DialogTemplate.lit.js +7 -6
  581. package/dist/generated/templates/GroupHeaderListItemTemplate.lit.js +1 -1
  582. package/dist/generated/templates/IconTemplate.lit.js +4 -2
  583. package/dist/generated/templates/InputPopoverTemplate.lit.js +1 -1
  584. package/dist/generated/templates/InputTemplate.lit.js +2 -2
  585. package/dist/generated/templates/LabelTemplate.lit.js +1 -1
  586. package/dist/generated/templates/LinkTemplate.lit.js +1 -1
  587. package/dist/generated/templates/ListItemTemplate.lit.js +14 -8
  588. package/dist/generated/templates/ListTemplate.lit.js +3 -3
  589. package/dist/generated/templates/MenuTemplate.lit.js +2 -2
  590. package/dist/generated/templates/MonthPickerTemplate.lit.js +3 -2
  591. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +5 -5
  592. package/dist/generated/templates/MultiComboBoxTemplate.lit.js +2 -2
  593. package/dist/generated/templates/MultiInputTemplate.lit.js +2 -2
  594. package/dist/generated/templates/PanelTemplate.lit.js +7 -6
  595. package/dist/generated/templates/PopoverTemplate.lit.js +2 -2
  596. package/dist/generated/templates/PopupTemplate.lit.js +1 -1
  597. package/dist/generated/templates/RadioButtonTemplate.lit.js +1 -1
  598. package/dist/generated/templates/RangeSliderTemplate.lit.js +1 -1
  599. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +2 -2
  600. package/dist/generated/templates/SegmentedButtonTemplate.lit.js +1 -1
  601. package/dist/generated/templates/SliderBaseTemplate.lit.js +1 -1
  602. package/dist/generated/templates/SliderTemplate.lit.js +1 -1
  603. package/dist/generated/templates/StandardListItemTemplate.lit.js +24 -16
  604. package/dist/generated/templates/SuggestionListItemTemplate.lit.js +27 -19
  605. package/dist/generated/templates/SwitchTemplate.lit.js +1 -1
  606. package/dist/generated/templates/TabContainerTemplate.lit.js +1 -1
  607. package/dist/generated/templates/TabInOverflowTemplate.lit.js +3 -2
  608. package/dist/generated/templates/TabInStripTemplate.lit.js +9 -8
  609. package/dist/generated/templates/TableGroupRowTemplate.lit.js +1 -1
  610. package/dist/generated/templates/TableRowTemplate.lit.js +6 -3
  611. package/dist/generated/templates/TableTemplate.lit.js +9 -8
  612. package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +1 -1
  613. package/dist/generated/templates/TextAreaTemplate.lit.js +2 -2
  614. package/dist/generated/templates/TimeSelectionTemplate.lit.js +3 -3
  615. package/dist/generated/templates/ToggleButtonTemplate.lit.js +1 -1
  616. package/dist/generated/templates/TokenTemplate.lit.js +1 -1
  617. package/dist/generated/templates/TreeItemBaseTemplate.lit.js +26 -0
  618. package/dist/generated/templates/TreeItemCustomTemplate.lit.js +26 -0
  619. package/dist/generated/templates/TreeItemTemplate.lit.js +28 -0
  620. package/dist/generated/templates/TreeTemplate.lit.js +1 -2
  621. package/dist/generated/templates/YearPickerTemplate.lit.js +3 -2
  622. package/dist/generated/themes/Avatar.css.js +1 -1
  623. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  624. package/dist/generated/themes/Badge.css.js +1 -1
  625. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  626. package/dist/generated/themes/BreadcrumbsPopover.css.js +1 -1
  627. package/dist/generated/themes/BrowserScrollbar.css.js +1 -1
  628. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  629. package/dist/generated/themes/Button.css.js +1 -1
  630. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  631. package/dist/generated/themes/CardHeader.css.js +1 -1
  632. package/dist/generated/themes/Carousel.css.js +1 -1
  633. package/dist/generated/themes/CheckBox.css.js +1 -1
  634. package/dist/generated/themes/ColorPicker.css.js +1 -1
  635. package/dist/generated/themes/ComboBox.css.js +1 -1
  636. package/dist/generated/themes/DatePicker.css.js +1 -1
  637. package/dist/generated/themes/DayPicker.css.js +1 -1
  638. package/dist/generated/themes/Dialog.css.js +1 -1
  639. package/dist/generated/themes/GroupHeaderListItem.css.js +1 -1
  640. package/dist/generated/themes/Icon.css.js +1 -1
  641. package/dist/generated/themes/Input.css.js +1 -1
  642. package/dist/generated/themes/Link.css.js +1 -1
  643. package/dist/generated/themes/ListItem.css.js +1 -1
  644. package/dist/generated/themes/ListItemBase.css.js +1 -1
  645. package/dist/generated/themes/Menu.css.js +1 -1
  646. package/dist/generated/themes/MonthPicker.css.js +1 -1
  647. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  648. package/dist/generated/themes/MultiInput.css.js +1 -1
  649. package/dist/generated/themes/Panel.css.js +1 -1
  650. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  651. package/dist/generated/themes/RadioButton.css.js +1 -1
  652. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  653. package/dist/generated/themes/Select.css.js +1 -1
  654. package/dist/generated/themes/SliderBase.css.js +1 -1
  655. package/dist/generated/themes/StepInput.css.js +1 -1
  656. package/dist/generated/themes/Switch.css.js +1 -1
  657. package/dist/generated/themes/TabContainer.css.js +1 -1
  658. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  659. package/dist/generated/themes/TabInStrip.css.js +1 -1
  660. package/dist/generated/themes/Table.css.js +1 -1
  661. package/dist/generated/themes/TableCell.css.js +1 -1
  662. package/dist/generated/themes/TableColumn.css.js +1 -1
  663. package/dist/generated/themes/TableRow.css.js +1 -1
  664. package/dist/generated/themes/TextArea.css.js +1 -1
  665. package/dist/generated/themes/TimePicker.css.js +1 -1
  666. package/dist/generated/themes/Title.css.js +1 -1
  667. package/dist/generated/themes/Toast.css.js +1 -1
  668. package/dist/generated/themes/ToggleButton.css.js +1 -1
  669. package/dist/generated/themes/Tokenizer.css.js +1 -1
  670. package/dist/generated/themes/TreeItem.css.js +8 -0
  671. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  672. package/dist/generated/themes/YearPicker.css.js +1 -1
  673. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  674. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  675. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  676. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  677. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  678. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  679. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  680. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  681. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  682. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  683. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  684. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  685. package/dist/i18n/messagebundle.properties +36 -6
  686. package/dist/i18n/messagebundle_ar.properties +30 -10
  687. package/dist/i18n/messagebundle_bg.properties +32 -12
  688. package/dist/i18n/messagebundle_ca.properties +29 -9
  689. package/dist/i18n/messagebundle_cs.properties +30 -10
  690. package/dist/i18n/messagebundle_cy.properties +29 -9
  691. package/dist/i18n/messagebundle_da.properties +29 -9
  692. package/dist/i18n/messagebundle_de.properties +30 -10
  693. package/dist/i18n/messagebundle_el.properties +30 -10
  694. package/dist/i18n/messagebundle_en.properties +23 -3
  695. package/dist/i18n/messagebundle_en_GB.properties +23 -3
  696. package/dist/i18n/messagebundle_en_US_sappsd.properties +38 -4
  697. package/dist/i18n/messagebundle_en_US_saprigi.properties +24 -4
  698. package/dist/i18n/messagebundle_en_US_saptrc.properties +39 -5
  699. package/dist/i18n/messagebundle_es.properties +29 -9
  700. package/dist/i18n/messagebundle_es_MX.properties +29 -9
  701. package/dist/i18n/messagebundle_et.properties +30 -10
  702. package/dist/i18n/messagebundle_fi.properties +30 -10
  703. package/dist/i18n/messagebundle_fr.properties +29 -9
  704. package/dist/i18n/messagebundle_fr_CA.properties +30 -10
  705. package/dist/i18n/messagebundle_hi.properties +30 -10
  706. package/dist/i18n/messagebundle_hr.properties +30 -10
  707. package/dist/i18n/messagebundle_hu.properties +30 -10
  708. package/dist/i18n/messagebundle_id.properties +30 -10
  709. package/dist/i18n/messagebundle_it.properties +32 -12
  710. package/dist/i18n/messagebundle_iw.properties +30 -10
  711. package/dist/i18n/messagebundle_ja.properties +30 -10
  712. package/dist/i18n/messagebundle_kk.properties +30 -10
  713. package/dist/i18n/messagebundle_ko.properties +30 -10
  714. package/dist/i18n/messagebundle_lt.properties +30 -10
  715. package/dist/i18n/messagebundle_lv.properties +30 -10
  716. package/dist/i18n/messagebundle_ms.properties +30 -10
  717. package/dist/i18n/messagebundle_nl.properties +32 -12
  718. package/dist/i18n/messagebundle_no.properties +31 -11
  719. package/dist/i18n/messagebundle_pl.properties +30 -10
  720. package/dist/i18n/messagebundle_pt.properties +29 -9
  721. package/dist/i18n/messagebundle_pt_PT.properties +29 -9
  722. package/dist/i18n/messagebundle_ro.properties +30 -10
  723. package/dist/i18n/messagebundle_ru.properties +30 -10
  724. package/dist/i18n/messagebundle_sh.properties +30 -10
  725. package/dist/i18n/messagebundle_sk.properties +30 -10
  726. package/dist/i18n/messagebundle_sl.properties +30 -10
  727. package/dist/i18n/messagebundle_sv.properties +29 -9
  728. package/dist/i18n/messagebundle_th.properties +33 -13
  729. package/dist/i18n/messagebundle_tr.properties +30 -10
  730. package/dist/i18n/messagebundle_uk.properties +31 -11
  731. package/dist/i18n/messagebundle_vi.properties +29 -9
  732. package/dist/i18n/messagebundle_zh_CN.properties +31 -11
  733. package/dist/i18n/messagebundle_zh_TW.properties +29 -9
  734. package/dist/popup-utils/OpenedPopupsRegistry.d.ts +9 -0
  735. package/dist/popup-utils/OpenedPopupsRegistry.js +43 -37
  736. package/dist/popup-utils/OpenedPopupsRegistry.js.map +1 -0
  737. package/dist/popup-utils/PopoverRegistry.d.ts +9 -0
  738. package/dist/popup-utils/PopoverRegistry.js +103 -123
  739. package/dist/popup-utils/PopoverRegistry.js.map +1 -0
  740. package/dist/timepicker-utils/TimeSlider.d.ts +15 -0
  741. package/dist/timepicker-utils/TimeSlider.js +80 -92
  742. package/dist/timepicker-utils/TimeSlider.js.map +1 -0
  743. package/dist/types/AvatarColorScheme.d.ts +78 -0
  744. package/dist/types/AvatarColorScheme.js +75 -99
  745. package/dist/types/AvatarColorScheme.js.map +1 -0
  746. package/dist/types/AvatarGroupType.d.ts +26 -0
  747. package/dist/types/AvatarGroupType.js +22 -37
  748. package/dist/types/AvatarGroupType.js.map +1 -0
  749. package/dist/types/AvatarShape.d.ts +24 -0
  750. package/dist/types/AvatarShape.js +20 -35
  751. package/dist/types/AvatarShape.js.map +1 -0
  752. package/dist/types/AvatarSize.d.ts +47 -0
  753. package/dist/types/AvatarSize.js +43 -61
  754. package/dist/types/AvatarSize.js.map +1 -0
  755. package/dist/types/BreadcrumbsDesign.d.ts +26 -0
  756. package/dist/types/BreadcrumbsDesign.js +23 -37
  757. package/dist/types/BreadcrumbsDesign.js.map +1 -0
  758. package/dist/types/BreadcrumbsSeparatorStyle.d.ts +48 -0
  759. package/dist/types/BreadcrumbsSeparatorStyle.js +45 -64
  760. package/dist/types/BreadcrumbsSeparatorStyle.js.map +1 -0
  761. package/dist/types/BusyIndicatorSize.d.ts +30 -0
  762. package/dist/types/BusyIndicatorSize.js +27 -42
  763. package/dist/types/BusyIndicatorSize.js.map +1 -0
  764. package/dist/types/ButtonDesign.d.ts +48 -0
  765. package/dist/types/ButtonDesign.js +45 -63
  766. package/dist/types/ButtonDesign.js.map +1 -0
  767. package/dist/types/CalendarSelectionMode.d.ts +30 -0
  768. package/dist/types/CalendarSelectionMode.js +27 -42
  769. package/dist/types/CalendarSelectionMode.js.map +1 -0
  770. package/dist/types/CarouselArrowsPlacement.d.ts +24 -0
  771. package/dist/types/CarouselArrowsPlacement.js +21 -35
  772. package/dist/types/CarouselArrowsPlacement.js.map +1 -0
  773. package/dist/types/CarouselPageIndicatorStyle.d.ts +25 -0
  774. package/dist/types/CarouselPageIndicatorStyle.js +27 -0
  775. package/dist/types/CarouselPageIndicatorStyle.js.map +1 -0
  776. package/dist/types/HasPopup.d.ts +42 -0
  777. package/dist/types/HasPopup.js +38 -56
  778. package/dist/types/HasPopup.js.map +1 -0
  779. package/dist/types/IconDesign.d.ts +60 -0
  780. package/dist/types/IconDesign.js +62 -0
  781. package/dist/types/IconDesign.js.map +1 -0
  782. package/dist/types/InputType.d.ts +48 -0
  783. package/dist/types/InputType.js +45 -63
  784. package/dist/types/InputType.js.map +1 -0
  785. package/dist/types/LinkDesign.d.ts +30 -0
  786. package/dist/types/LinkDesign.js +27 -42
  787. package/dist/types/LinkDesign.js.map +1 -0
  788. package/dist/types/ListGrowingMode.d.ts +31 -0
  789. package/dist/types/ListGrowingMode.js +28 -43
  790. package/dist/types/ListGrowingMode.js.map +1 -0
  791. package/dist/types/ListItemType.d.ts +36 -0
  792. package/dist/types/ListItemType.js +33 -42
  793. package/dist/types/ListItemType.js.map +1 -0
  794. package/dist/types/ListMode.d.ts +56 -0
  795. package/dist/types/ListMode.js +53 -72
  796. package/dist/types/ListMode.js.map +1 -0
  797. package/dist/types/ListSeparators.d.ts +31 -0
  798. package/dist/types/ListSeparators.js +28 -41
  799. package/dist/types/ListSeparators.js.map +1 -0
  800. package/dist/types/MessageStripDesign.d.ts +36 -0
  801. package/dist/types/MessageStripDesign.js +33 -49
  802. package/dist/types/MessageStripDesign.js.map +1 -0
  803. package/dist/types/PanelAccessibleRole.d.ts +33 -0
  804. package/dist/types/PanelAccessibleRole.js +30 -43
  805. package/dist/types/PanelAccessibleRole.js.map +1 -0
  806. package/dist/types/PopoverHorizontalAlign.d.ts +36 -0
  807. package/dist/types/PopoverHorizontalAlign.js +33 -49
  808. package/dist/types/PopoverHorizontalAlign.js.map +1 -0
  809. package/dist/types/PopoverPlacementType.d.ts +36 -0
  810. package/dist/types/PopoverPlacementType.js +33 -49
  811. package/dist/types/PopoverPlacementType.js.map +1 -0
  812. package/dist/types/PopoverVerticalAlign.d.ts +36 -0
  813. package/dist/types/PopoverVerticalAlign.js +33 -49
  814. package/dist/types/PopoverVerticalAlign.js.map +1 -0
  815. package/dist/types/Priority.d.ts +36 -0
  816. package/dist/types/Priority.js +32 -49
  817. package/dist/types/Priority.js.map +1 -0
  818. package/dist/types/SemanticColor.d.ts +42 -0
  819. package/dist/types/SemanticColor.js +39 -56
  820. package/dist/types/SemanticColor.js.map +1 -0
  821. package/dist/types/SwitchDesign.d.ts +24 -0
  822. package/dist/types/SwitchDesign.js +21 -35
  823. package/dist/types/SwitchDesign.js.map +1 -0
  824. package/dist/types/TabContainerBackgroundDesign.d.ts +30 -0
  825. package/dist/types/TabContainerBackgroundDesign.js +32 -0
  826. package/dist/types/TabContainerBackgroundDesign.js.map +1 -0
  827. package/dist/types/TabContainerTabsPlacement.d.ts +24 -0
  828. package/dist/types/TabContainerTabsPlacement.js +21 -35
  829. package/dist/types/TabContainerTabsPlacement.js.map +1 -0
  830. package/dist/types/TabLayout.d.ts +24 -0
  831. package/dist/types/TabLayout.js +21 -35
  832. package/dist/types/TabLayout.js.map +1 -0
  833. package/dist/types/TableColumnPopinDisplay.d.ts +24 -0
  834. package/dist/types/TableColumnPopinDisplay.js +26 -0
  835. package/dist/types/TableColumnPopinDisplay.js.map +1 -0
  836. package/dist/types/TableGrowingMode.d.ts +31 -0
  837. package/dist/types/TableGrowingMode.js +28 -43
  838. package/dist/types/TableGrowingMode.js.map +1 -0
  839. package/dist/types/TableMode.d.ts +30 -0
  840. package/dist/types/TableMode.js +27 -42
  841. package/dist/types/TableMode.js.map +1 -0
  842. package/dist/types/TableRowType.d.ts +24 -0
  843. package/dist/types/TableRowType.js +21 -35
  844. package/dist/types/TableRowType.js.map +1 -0
  845. package/dist/types/TabsOverflowMode.d.ts +24 -0
  846. package/dist/types/TabsOverflowMode.js +21 -35
  847. package/dist/types/TabsOverflowMode.js.map +1 -0
  848. package/dist/types/TitleLevel.d.ts +48 -0
  849. package/dist/types/TitleLevel.js +45 -63
  850. package/dist/types/TitleLevel.js.map +1 -0
  851. package/dist/types/ToastPlacement.d.ts +67 -0
  852. package/dist/types/ToastPlacement.js +64 -86
  853. package/dist/types/ToastPlacement.js.map +1 -0
  854. package/dist/types/WrappingType.d.ts +24 -0
  855. package/dist/types/WrappingType.js +20 -35
  856. package/dist/types/WrappingType.js.map +1 -0
  857. package/global.d.ts +12 -0
  858. package/package-scripts.js +1 -0
  859. package/package.json +10 -8
  860. package/src/Avatar.hbs +2 -0
  861. package/src/Avatar.ts +435 -0
  862. package/src/AvatarGroup.js +30 -12
  863. package/src/Badge.ts +143 -0
  864. package/src/Breadcrumbs.hbs +41 -38
  865. package/src/{Breadcrumbs.js → Breadcrumbs.ts} +234 -176
  866. package/src/BreadcrumbsItem.ts +92 -0
  867. package/src/BusyIndicator.js +7 -10
  868. package/src/Button.hbs +1 -0
  869. package/src/Button.ts +503 -0
  870. package/src/Calendar.hbs +3 -0
  871. package/src/{Calendar.js → Calendar.ts} +177 -179
  872. package/src/CalendarDate.ts +36 -0
  873. package/src/CalendarHeader.hbs +5 -1
  874. package/src/CalendarHeader.ts +218 -0
  875. package/src/{CalendarPart.js → CalendarPart.ts} +15 -26
  876. package/src/Card.hbs +1 -1
  877. package/src/{Card.js → Card.ts} +67 -75
  878. package/src/CardHeader.hbs +45 -29
  879. package/src/CardHeader.ts +275 -0
  880. package/src/Carousel.hbs +72 -72
  881. package/src/Carousel.js +52 -11
  882. package/src/CheckBox.hbs +3 -3
  883. package/src/CheckBox.ts +466 -0
  884. package/src/{ColorPalette.js → ColorPalette.ts} +184 -165
  885. package/src/ColorPaletteItem.ts +124 -0
  886. package/src/{ColorPalettePopover.js → ColorPalettePopover.ts} +105 -97
  887. package/src/ColorPicker.ts +536 -0
  888. package/src/ComboBox.hbs +1 -1
  889. package/src/ComboBox.js +72 -18
  890. package/src/ComboBoxGroupItem.js +7 -7
  891. package/src/ComboBoxItem.js +4 -4
  892. package/src/ComboBoxPopover.hbs +48 -44
  893. package/src/CustomListItem.ts +89 -0
  894. package/src/DateComponentBase.ts +174 -0
  895. package/src/DatePicker.hbs +2 -0
  896. package/src/{DatePicker.js → DatePicker.ts} +369 -329
  897. package/src/DatePickerPopover.hbs +0 -1
  898. package/src/{DateRangePicker.js → DateRangePicker.ts} +72 -66
  899. package/src/{DateTimePicker.js → DateTimePicker.ts} +95 -91
  900. package/src/{DayPicker.js → DayPicker.ts} +274 -218
  901. package/src/Dialog.hbs +6 -2
  902. package/src/{Dialog.js → Dialog.ts} +271 -191
  903. package/src/DurationPicker.js +5 -5
  904. package/src/FileUploader.ts +525 -0
  905. package/src/Filters.ts +28 -0
  906. package/src/GroupHeaderListItem.hbs +2 -2
  907. package/src/GroupHeaderListItem.ts +86 -0
  908. package/src/Icon.hbs +9 -3
  909. package/src/{Icon.js → Icon.ts} +211 -212
  910. package/src/Input.hbs +5 -3
  911. package/src/Input.ts +1726 -0
  912. package/src/InputPopover.hbs +1 -1
  913. package/src/{Interfaces.js → Interfaces.ts} +40 -40
  914. package/src/Label.hbs +0 -1
  915. package/src/Label.ts +143 -0
  916. package/src/Link.hbs +1 -1
  917. package/src/Link.ts +406 -0
  918. package/src/List.hbs +12 -3
  919. package/src/List.ts +1143 -0
  920. package/src/ListItem.hbs +23 -4
  921. package/src/ListItem.ts +492 -0
  922. package/src/ListItemBase.ts +168 -0
  923. package/src/Menu.hbs +7 -2
  924. package/src/Menu.ts +612 -0
  925. package/src/MenuItem.ts +168 -0
  926. package/src/MessageStrip.ts +245 -0
  927. package/src/MonthPicker.hbs +9 -1
  928. package/src/MonthPicker.ts +351 -0
  929. package/src/MultiComboBox.hbs +2 -1
  930. package/src/MultiComboBox.js +169 -44
  931. package/src/MultiComboBoxGroupItem.js +7 -7
  932. package/src/MultiComboBoxItem.js +4 -4
  933. package/src/MultiComboBoxPopover.hbs +4 -2
  934. package/src/MultiInput.js +28 -12
  935. package/src/Option.js +8 -8
  936. package/src/Panel.hbs +56 -46
  937. package/src/{Panel.js → Panel.ts} +197 -217
  938. package/src/Popover.hbs +1 -1
  939. package/src/{Popover.js → Popover.ts} +293 -266
  940. package/src/Popup.hbs +1 -1
  941. package/src/{Popup.js → Popup.ts} +236 -211
  942. package/src/{ProgressIndicator.js → ProgressIndicator.ts} +91 -95
  943. package/src/RadioButton.hbs +3 -3
  944. package/src/RadioButton.js +40 -20
  945. package/src/RadioButtonGroup.js +1 -1
  946. package/src/RangeSlider.hbs +13 -7
  947. package/src/{RangeSlider.js → RangeSlider.ts} +249 -170
  948. package/src/RatingIndicator.js +13 -8
  949. package/src/ResponsivePopover.js +12 -4
  950. package/src/SegmentedButton.hbs +1 -0
  951. package/src/SegmentedButton.js +26 -22
  952. package/src/SegmentedButtonItem.js +6 -6
  953. package/src/Select.js +43 -16
  954. package/src/Slider.hbs +3 -3
  955. package/src/{Slider.js → Slider.ts} +95 -61
  956. package/src/SliderBase.hbs +1 -0
  957. package/src/{SliderBase.js → SliderBase.ts} +240 -272
  958. package/src/{SplitButton.js → SplitButton.ts} +217 -235
  959. package/src/StandardListItem.hbs +10 -4
  960. package/src/StandardListItem.ts +217 -0
  961. package/src/StepInput.hbs +1 -1
  962. package/src/{StepInput.js → StepInput.ts} +275 -314
  963. package/src/SuggestionGroupItem.ts +51 -0
  964. package/src/SuggestionItem.ts +134 -0
  965. package/src/{SuggestionListItem.js → SuggestionListItem.ts} +30 -32
  966. package/src/Switch.hbs +3 -2
  967. package/src/Switch.ts +299 -0
  968. package/src/Tab.js +62 -19
  969. package/src/TabContainer.hbs +5 -1
  970. package/src/TabContainer.js +219 -164
  971. package/src/TabInOverflow.hbs +6 -5
  972. package/src/TabInStrip.hbs +10 -3
  973. package/src/TabSeparator.js +11 -4
  974. package/src/Table.hbs +18 -10
  975. package/src/Table.ts +1303 -0
  976. package/src/{TableCell.js → TableCell.ts} +32 -42
  977. package/src/TableColumn.ts +135 -0
  978. package/src/TableGroupRow.hbs +0 -1
  979. package/src/TableGroupRow.ts +159 -0
  980. package/src/TableRow.hbs +33 -10
  981. package/src/TableRow.ts +505 -0
  982. package/src/TextArea.hbs +30 -29
  983. package/src/TextArea.js +56 -57
  984. package/src/TextAreaPopover.hbs +1 -1
  985. package/src/{TimePicker.js → TimePicker.ts} +43 -51
  986. package/src/{TimePickerBase.js → TimePickerBase.ts} +158 -141
  987. package/src/TimeSelection.hbs +3 -3
  988. package/src/{TimeSelection.js → TimeSelection.ts} +200 -177
  989. package/src/Title.ts +117 -0
  990. package/src/Toast.js +6 -6
  991. package/src/ToggleButton.js +5 -8
  992. package/src/Token.hbs +1 -0
  993. package/src/Token.js +24 -7
  994. package/src/Tokenizer.js +115 -25
  995. package/src/Tree.hbs +10 -32
  996. package/src/Tree.js +122 -58
  997. package/src/TreeItem.hbs +13 -0
  998. package/src/TreeItem.js +35 -120
  999. package/src/{TreeListItem.hbs → TreeItemBase.hbs} +17 -10
  1000. package/src/TreeItemBase.js +431 -0
  1001. package/src/TreeItemCustom.hbs +7 -0
  1002. package/src/TreeItemCustom.js +102 -0
  1003. package/src/TreeList.js +48 -0
  1004. package/src/{WheelSlider.js → WheelSlider.ts} +120 -126
  1005. package/src/YearPicker.hbs +8 -0
  1006. package/src/YearPicker.ts +394 -0
  1007. package/src/features/{ColorPaletteMoreColors.js → ColorPaletteMoreColors.ts} +8 -3
  1008. package/src/features/InputElementsFormSupport.ts +141 -0
  1009. package/src/features/{InputSuggestions.js → InputSuggestions.ts} +170 -95
  1010. package/src/i18n/messagebundle.properties +36 -6
  1011. package/src/i18n/messagebundle_ar.properties +30 -10
  1012. package/src/i18n/messagebundle_bg.properties +32 -12
  1013. package/src/i18n/messagebundle_ca.properties +29 -9
  1014. package/src/i18n/messagebundle_cs.properties +30 -10
  1015. package/src/i18n/messagebundle_cy.properties +29 -9
  1016. package/src/i18n/messagebundle_da.properties +29 -9
  1017. package/src/i18n/messagebundle_de.properties +30 -10
  1018. package/src/i18n/messagebundle_el.properties +30 -10
  1019. package/src/i18n/messagebundle_en.properties +23 -3
  1020. package/src/i18n/messagebundle_en_GB.properties +23 -3
  1021. package/src/i18n/messagebundle_en_US_sappsd.properties +38 -4
  1022. package/src/i18n/messagebundle_en_US_saprigi.properties +24 -4
  1023. package/src/i18n/messagebundle_en_US_saptrc.properties +39 -5
  1024. package/src/i18n/messagebundle_es.properties +29 -9
  1025. package/src/i18n/messagebundle_es_MX.properties +29 -9
  1026. package/src/i18n/messagebundle_et.properties +30 -10
  1027. package/src/i18n/messagebundle_fi.properties +30 -10
  1028. package/src/i18n/messagebundle_fr.properties +29 -9
  1029. package/src/i18n/messagebundle_fr_CA.properties +30 -10
  1030. package/src/i18n/messagebundle_hi.properties +30 -10
  1031. package/src/i18n/messagebundle_hr.properties +30 -10
  1032. package/src/i18n/messagebundle_hu.properties +30 -10
  1033. package/src/i18n/messagebundle_id.properties +30 -10
  1034. package/src/i18n/messagebundle_it.properties +32 -12
  1035. package/src/i18n/messagebundle_iw.properties +30 -10
  1036. package/src/i18n/messagebundle_ja.properties +30 -10
  1037. package/src/i18n/messagebundle_kk.properties +30 -10
  1038. package/src/i18n/messagebundle_ko.properties +30 -10
  1039. package/src/i18n/messagebundle_lt.properties +30 -10
  1040. package/src/i18n/messagebundle_lv.properties +30 -10
  1041. package/src/i18n/messagebundle_ms.properties +30 -10
  1042. package/src/i18n/messagebundle_nl.properties +32 -12
  1043. package/src/i18n/messagebundle_no.properties +31 -11
  1044. package/src/i18n/messagebundle_pl.properties +30 -10
  1045. package/src/i18n/messagebundle_pt.properties +29 -9
  1046. package/src/i18n/messagebundle_pt_PT.properties +29 -9
  1047. package/src/i18n/messagebundle_ro.properties +30 -10
  1048. package/src/i18n/messagebundle_ru.properties +30 -10
  1049. package/src/i18n/messagebundle_sh.properties +30 -10
  1050. package/src/i18n/messagebundle_sk.properties +30 -10
  1051. package/src/i18n/messagebundle_sl.properties +30 -10
  1052. package/src/i18n/messagebundle_sv.properties +29 -9
  1053. package/src/i18n/messagebundle_th.properties +33 -13
  1054. package/src/i18n/messagebundle_tr.properties +30 -10
  1055. package/src/i18n/messagebundle_uk.properties +31 -11
  1056. package/src/i18n/messagebundle_vi.properties +29 -9
  1057. package/src/i18n/messagebundle_zh_CN.properties +31 -11
  1058. package/src/i18n/messagebundle_zh_TW.properties +29 -9
  1059. package/src/popup-utils/{OpenedPopupsRegistry.js → OpenedPopupsRegistry.ts} +31 -5
  1060. package/src/popup-utils/{PopoverRegistry.js → PopoverRegistry.ts} +50 -29
  1061. package/src/themes/Avatar.css +56 -2
  1062. package/src/themes/AvatarGroup.css +1 -0
  1063. package/src/themes/Badge.css +12 -5
  1064. package/src/themes/Breadcrumbs.css +3 -0
  1065. package/src/themes/BreadcrumbsPopover.css +1 -0
  1066. package/src/themes/BrowserScrollbar.css +6 -6
  1067. package/src/themes/BusyIndicator.css +1 -14
  1068. package/src/themes/Button.css +19 -14
  1069. package/src/themes/CalendarHeader.css +3 -4
  1070. package/src/themes/CardHeader.css +30 -2
  1071. package/src/themes/Carousel.css +6 -4
  1072. package/src/themes/CheckBox.css +0 -10
  1073. package/src/themes/ColorPicker.css +5 -5
  1074. package/src/themes/DatePicker.css +19 -1
  1075. package/src/themes/DayPicker.css +4 -5
  1076. package/src/themes/Dialog.css +45 -2
  1077. package/src/themes/GroupHeaderListItem.css +1 -0
  1078. package/src/themes/Icon.css +40 -1
  1079. package/src/themes/Input.css +60 -45
  1080. package/src/themes/Link.css +6 -8
  1081. package/src/themes/ListItem.css +30 -7
  1082. package/src/themes/ListItemBase.css +0 -2
  1083. package/src/themes/Menu.css +26 -2
  1084. package/src/themes/MonthPicker.css +9 -3
  1085. package/src/themes/MultiComboBox.css +0 -18
  1086. package/src/themes/MultiInput.css +0 -9
  1087. package/src/themes/Panel.css +12 -8
  1088. package/src/themes/PopupsCommon.css +0 -6
  1089. package/src/themes/RadioButton.css +6 -6
  1090. package/src/themes/ResponsivePopoverCommon.css +0 -11
  1091. package/src/themes/Select.css +1 -1
  1092. package/src/themes/SliderBase.css +3 -5
  1093. package/src/themes/StepInput.css +9 -0
  1094. package/src/themes/Switch.css +3 -4
  1095. package/src/themes/TabContainer.css +19 -3
  1096. package/src/themes/TabInOverflow.css +1 -0
  1097. package/src/themes/TabInStrip.css +12 -11
  1098. package/src/themes/Table.css +11 -1
  1099. package/src/themes/TableCell.css +4 -0
  1100. package/src/themes/TableColumn.css +1 -1
  1101. package/src/themes/TableRow.css +34 -4
  1102. package/src/themes/TextArea.css +243 -168
  1103. package/src/themes/TimePicker.css +12 -0
  1104. package/src/themes/Title.css +1 -1
  1105. package/src/themes/Toast.css +0 -6
  1106. package/src/themes/ToggleButton.css +1 -6
  1107. package/src/themes/Tokenizer.css +2 -6
  1108. package/src/themes/{TreeListItem.css → TreeItem.css} +49 -2
  1109. package/src/themes/ValueStateMessage.css +10 -1
  1110. package/src/themes/YearPicker.css +13 -3
  1111. package/src/themes/base/Avatar-parameters.css +1 -0
  1112. package/src/themes/base/DayPicker-parameters.css +3 -0
  1113. package/src/themes/base/Dialog-parameters.css +8 -0
  1114. package/src/themes/base/Input-parameters.css +13 -2
  1115. package/src/themes/base/Menu-parameters.css +2 -0
  1116. package/src/themes/base/Panel-parameters.css +1 -0
  1117. package/src/themes/base/Select-parameters.css +1 -1
  1118. package/src/themes/base/SliderBase-parameters.css +2 -0
  1119. package/src/themes/base/TabContainer-parameters.css +4 -0
  1120. package/src/themes/base/Table-parameters.css +1 -0
  1121. package/src/themes/base/TextArea-parameters.css +53 -17
  1122. package/src/themes/base/Tokenizer-parameters.css +1 -0
  1123. package/src/themes/base/ValueStateMessage-parameters.css +2 -1
  1124. package/src/themes/base/sizes-parameters.css +7 -4
  1125. package/src/themes/sap_belize/DayPicker-parameters.css +1 -1
  1126. package/src/themes/sap_belize/TabContainer-parameters.css +4 -0
  1127. package/src/themes/sap_belize/TextArea-parameters.css +23 -0
  1128. package/src/themes/sap_belize/parameters-bundle.css +2 -2
  1129. package/src/themes/sap_belize/sizes-parameters.css +2 -0
  1130. package/src/themes/sap_belize_hcb/Button-parameters.css +1 -0
  1131. package/src/themes/sap_belize_hcb/DayPicker-parameters.css +7 -0
  1132. package/src/themes/sap_belize_hcb/Input-parameters.css +3 -0
  1133. package/src/themes/sap_belize_hcb/TextArea-parameters.css +30 -4
  1134. package/src/themes/sap_belize_hcw/Button-parameters.css +1 -0
  1135. package/src/themes/sap_belize_hcw/DayPicker-parameters.css +7 -0
  1136. package/src/themes/sap_belize_hcw/Input-parameters.css +3 -0
  1137. package/src/themes/sap_belize_hcw/TextArea-parameters.css +30 -4
  1138. package/src/themes/sap_fiori_3_hcb/Button-parameters.css +1 -0
  1139. package/src/themes/sap_fiori_3_hcb/Dialog-parameters.css +8 -0
  1140. package/src/themes/sap_fiori_3_hcb/Input-parameters.css +2 -1
  1141. package/src/themes/sap_fiori_3_hcb/TextArea-parameters.css +29 -9
  1142. package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  1143. package/src/themes/sap_fiori_3_hcw/Button-parameters.css +1 -0
  1144. package/src/themes/sap_fiori_3_hcw/Dialog-parameters.css +8 -0
  1145. package/src/themes/sap_fiori_3_hcw/Input-parameters.css +2 -1
  1146. package/src/themes/sap_fiori_3_hcw/TextArea-parameters.css +29 -9
  1147. package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  1148. package/src/themes/sap_horizon/CheckBox-parameters.css +2 -0
  1149. package/src/themes/sap_horizon/Input-parameters.css +3 -0
  1150. package/src/themes/sap_horizon/Panel-parameters.css +1 -0
  1151. package/src/themes/sap_horizon/Table-parameters.css +0 -1
  1152. package/src/themes/sap_horizon/TextArea-parameters.css +45 -12
  1153. package/src/themes/sap_horizon/Tokenizer-parameters.css +5 -0
  1154. package/src/themes/sap_horizon/ValueStateMessage-parameters.css +1 -0
  1155. package/src/themes/sap_horizon/parameters-bundle.css +2 -2
  1156. package/src/themes/sap_horizon/sizes-parameters.css +4 -0
  1157. package/src/themes/sap_horizon_dark/CheckBox-parameters.css +1 -0
  1158. package/src/themes/sap_horizon_dark/Input-parameters.css +3 -0
  1159. package/src/themes/sap_horizon_dark/ListItemBase-parameters.css +0 -1
  1160. package/src/themes/sap_horizon_dark/Panel-parameters.css +1 -0
  1161. package/src/themes/sap_horizon_dark/Table-parameters.css +0 -1
  1162. package/src/themes/sap_horizon_dark/TextArea-parameters.css +45 -12
  1163. package/src/themes/sap_horizon_dark/Tokenizer-parameters.css +5 -0
  1164. package/src/themes/sap_horizon_dark/ValueStateMessage-parameters.css +1 -0
  1165. package/src/themes/sap_horizon_dark/parameters-bundle.css +2 -2
  1166. package/src/themes/sap_horizon_dark/sizes-parameters.css +6 -0
  1167. package/src/themes/sap_horizon_exp/Select-parameters.css +1 -1
  1168. package/src/themes/sap_horizon_hcb/CheckBox-parameters.css +1 -0
  1169. package/src/themes/sap_horizon_hcb/Dialog-parameters.css +4 -0
  1170. package/src/themes/sap_horizon_hcb/Input-parameters.css +2 -1
  1171. package/src/themes/sap_horizon_hcb/TextArea-parameters.css +33 -10
  1172. package/src/themes/sap_horizon_hcw/CheckBox-parameters.css +1 -0
  1173. package/src/themes/sap_horizon_hcw/Dialog-parameters.css +4 -0
  1174. package/src/themes/sap_horizon_hcw/Input-parameters.css +2 -1
  1175. package/src/themes/sap_horizon_hcw/TextArea-parameters.css +34 -11
  1176. package/src/timepicker-utils/{TimeSlider.js → TimeSlider.ts} +26 -9
  1177. package/src/types/AvatarColorScheme.ts +89 -0
  1178. package/src/types/AvatarGroupType.ts +28 -0
  1179. package/src/types/AvatarShape.ts +26 -0
  1180. package/src/types/AvatarSize.ts +52 -0
  1181. package/src/types/BreadcrumbsDesign.ts +28 -0
  1182. package/src/types/BreadcrumbsSeparatorStyle.ts +55 -0
  1183. package/src/types/BusyIndicatorSize.ts +33 -0
  1184. package/src/types/ButtonDesign.ts +54 -0
  1185. package/src/types/CalendarSelectionMode.ts +33 -0
  1186. package/src/types/CarouselArrowsPlacement.ts +26 -0
  1187. package/src/types/CarouselPageIndicatorStyle.ts +27 -0
  1188. package/src/types/HasPopup.ts +47 -0
  1189. package/src/types/IconDesign.ts +68 -0
  1190. package/src/types/{InputType.js → InputType.ts} +13 -27
  1191. package/src/types/LinkDesign.ts +33 -0
  1192. package/src/types/ListGrowingMode.ts +34 -0
  1193. package/src/types/ListItemType.ts +40 -0
  1194. package/src/types/{ListMode.js → ListMode.ts} +14 -28
  1195. package/src/types/ListSeparators.ts +32 -0
  1196. package/src/types/MessageStripDesign.ts +40 -0
  1197. package/src/types/PanelAccessibleRole.ts +37 -0
  1198. package/src/types/PopoverHorizontalAlign.ts +40 -0
  1199. package/src/types/PopoverPlacementType.ts +40 -0
  1200. package/src/types/PopoverVerticalAlign.ts +40 -0
  1201. package/src/types/Priority.ts +40 -0
  1202. package/src/types/SemanticColor.ts +47 -0
  1203. package/src/types/SwitchDesign.ts +26 -0
  1204. package/src/types/TabContainerBackgroundDesign.ts +33 -0
  1205. package/src/types/TabContainerTabsPlacement.ts +26 -0
  1206. package/src/types/TabLayout.ts +26 -0
  1207. package/src/types/TableColumnPopinDisplay.ts +26 -0
  1208. package/src/types/TableGrowingMode.ts +34 -0
  1209. package/src/types/TableMode.ts +33 -0
  1210. package/src/types/TableRowType.ts +26 -0
  1211. package/src/types/TabsOverflowMode.ts +26 -0
  1212. package/src/types/{TitleLevel.js → TitleLevel.ts} +13 -27
  1213. package/src/types/ToastPlacement.ts +77 -0
  1214. package/src/types/WrappingType.ts +26 -0
  1215. package/tsconfig.json +14 -0
  1216. package/dist/TreeListItem.js +0 -343
  1217. package/dist/css/themes/Button.ie11.css +0 -1
  1218. package/dist/css/themes/ToggleButton.ie11.css +0 -1
  1219. package/dist/css/themes/TreeListItem.css +0 -1
  1220. package/dist/generated/templates/TreeListItemTemplate.lit.js +0 -21
  1221. package/dist/generated/themes/Button.ie11.css.js +0 -8
  1222. package/dist/generated/themes/ToggleButton.ie11.css.js +0 -8
  1223. package/dist/generated/themes/TreeListItem.css.js +0 -8
  1224. package/dist/types/GrowingMode.js +0 -48
  1225. package/src/Avatar.js +0 -392
  1226. package/src/Badge.js +0 -150
  1227. package/src/BreadcrumbsItem.js +0 -103
  1228. package/src/Button.js +0 -509
  1229. package/src/CalendarDate.js +0 -45
  1230. package/src/CalendarHeader.js +0 -209
  1231. package/src/CardHeader.js +0 -283
  1232. package/src/CheckBox.js +0 -469
  1233. package/src/ColorPaletteItem.js +0 -137
  1234. package/src/ColorPicker.js +0 -609
  1235. package/src/CustomListItem.js +0 -99
  1236. package/src/DateComponentBase.js +0 -168
  1237. package/src/FileUploader.js +0 -531
  1238. package/src/Filters.js +0 -28
  1239. package/src/GroupHeaderListItem.js +0 -94
  1240. package/src/Input.js +0 -1679
  1241. package/src/Label.js +0 -158
  1242. package/src/Link.js +0 -378
  1243. package/src/List.js +0 -1106
  1244. package/src/ListItem.js +0 -396
  1245. package/src/ListItemBase.js +0 -181
  1246. package/src/Menu.js +0 -500
  1247. package/src/MenuItem.js +0 -162
  1248. package/src/MessageStrip.js +0 -256
  1249. package/src/MonthPicker.js +0 -299
  1250. package/src/StandardListItem.js +0 -191
  1251. package/src/SuggestionGroupItem.js +0 -64
  1252. package/src/SuggestionItem.js +0 -146
  1253. package/src/Switch.js +0 -291
  1254. package/src/Table.js +0 -1211
  1255. package/src/TableColumn.js +0 -129
  1256. package/src/TableGroupRow.js +0 -167
  1257. package/src/TableRow.js +0 -436
  1258. package/src/Title.js +0 -132
  1259. package/src/TreeListItem.js +0 -343
  1260. package/src/YearPicker.js +0 -324
  1261. package/src/features/InputElementsFormSupport.js +0 -91
  1262. package/src/themes/Button.ie11.css +0 -48
  1263. package/src/themes/ToggleButton.ie11.css +0 -48
  1264. package/src/types/AvatarColorScheme.js +0 -104
  1265. package/src/types/AvatarGroupType.js +0 -43
  1266. package/src/types/AvatarShape.js +0 -41
  1267. package/src/types/AvatarSize.js +0 -67
  1268. package/src/types/BreadcrumbsDesign.js +0 -42
  1269. package/src/types/BreadcrumbsSeparatorStyle.js +0 -69
  1270. package/src/types/BusyIndicatorSize.js +0 -47
  1271. package/src/types/ButtonDesign.js +0 -68
  1272. package/src/types/CalendarSelectionMode.js +0 -47
  1273. package/src/types/CarouselArrowsPlacement.js +0 -40
  1274. package/src/types/GrowingMode.js +0 -48
  1275. package/src/types/HasPopup.js +0 -62
  1276. package/src/types/LinkDesign.js +0 -47
  1277. package/src/types/ListGrowingMode.js +0 -48
  1278. package/src/types/ListItemType.js +0 -47
  1279. package/src/types/ListSeparators.js +0 -46
  1280. package/src/types/MessageStripDesign.js +0 -54
  1281. package/src/types/PanelAccessibleRole.js +0 -48
  1282. package/src/types/PopoverHorizontalAlign.js +0 -54
  1283. package/src/types/PopoverPlacementType.js +0 -54
  1284. package/src/types/PopoverVerticalAlign.js +0 -54
  1285. package/src/types/Priority.js +0 -55
  1286. package/src/types/SemanticColor.js +0 -61
  1287. package/src/types/SwitchDesign.js +0 -40
  1288. package/src/types/TabContainerTabsPlacement.js +0 -40
  1289. package/src/types/TabLayout.js +0 -40
  1290. package/src/types/TableGrowingMode.js +0 -48
  1291. package/src/types/TableMode.js +0 -47
  1292. package/src/types/TableRowType.js +0 -40
  1293. package/src/types/TabsOverflowMode.js +0 -40
  1294. package/src/types/ToastPlacement.js +0 -91
  1295. package/src/types/WrappingType.js +0 -41
package/src/Input.ts ADDED
@@ -0,0 +1,1726 @@
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";
8
+ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
9
+ import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
10
+ import {
11
+ isPhone,
12
+ isAndroid,
13
+ } from "@ui5/webcomponents-base/dist/Device.js";
14
+ import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
15
+ import { getFeature } from "@ui5/webcomponents-base/dist/FeaturesRegistry.js";
16
+ import {
17
+ isUp,
18
+ isDown,
19
+ isSpace,
20
+ isEnter,
21
+ isBackSpace,
22
+ isDelete,
23
+ isEscape,
24
+ isTabNext,
25
+ isPageUp,
26
+ isPageDown,
27
+ isHome,
28
+ isEnd,
29
+ } from "@ui5/webcomponents-base/dist/Keys.js";
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";
33
+ import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
34
+ import { getEffectiveAriaLabelText, getAssociatedLabelForTexts } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
35
+ import { getCaretPosition, setCaretPosition } from "@ui5/webcomponents-base/dist/util/Caret.js";
36
+ import getActiveElement from "@ui5/webcomponents-base/dist/util/getActiveElement.js";
37
+ import "@ui5/webcomponents-icons/dist/decline.js";
38
+ import "@ui5/webcomponents-icons/dist/not-editable.js";
39
+ import "@ui5/webcomponents-icons/dist/error.js";
40
+ import "@ui5/webcomponents-icons/dist/alert.js";
41
+ import "@ui5/webcomponents-icons/dist/sys-enter-2.js";
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 { ScrollEventDetail } from "./Popup.js";
50
+ import InputType from "./types/InputType.js";
51
+ import Popover from "./Popover.js";
52
+ import Icon from "./Icon.js";
53
+ // Templates
54
+ import InputTemplate from "./generated/templates/InputTemplate.lit.js";
55
+ import InputPopoverTemplate from "./generated/templates/InputPopoverTemplate.lit.js";
56
+ import { StartsWith } from "./Filters.js";
57
+
58
+ import {
59
+ VALUE_STATE_SUCCESS,
60
+ VALUE_STATE_INFORMATION,
61
+ VALUE_STATE_ERROR,
62
+ VALUE_STATE_WARNING,
63
+ VALUE_STATE_TYPE_SUCCESS,
64
+ VALUE_STATE_TYPE_INFORMATION,
65
+ VALUE_STATE_TYPE_ERROR,
66
+ VALUE_STATE_TYPE_WARNING,
67
+ INPUT_SUGGESTIONS,
68
+ INPUT_SUGGESTIONS_TITLE,
69
+ INPUT_SUGGESTIONS_ONE_HIT,
70
+ INPUT_SUGGESTIONS_MORE_HITS,
71
+ INPUT_SUGGESTIONS_NO_HIT,
72
+ // @ts-ignore
73
+ } from "./generated/i18n/i18n-defaults.js";
74
+
75
+ // Styles
76
+ import styles from "./generated/themes/Input.css.js";
77
+ import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverCommon.css.js";
78
+ import ValueStateMessageCss from "./generated/themes/ValueStateMessage.css.js";
79
+ import SuggestionsCss from "./generated/themes/Suggestions.css.js";
80
+
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
+ }
129
+
130
+ /**
131
+ * @class
132
+ * <h3 class="comment-api-title">Overview</h3>
133
+ *
134
+ * The <code>ui5-input</code> component allows the user to enter and edit text or numeric values in one line.
135
+ * <br>
136
+ * Additionally, you can provide <code>suggestionItems</code>,
137
+ * that are displayed in a popover right under the input.
138
+ * <br><br>
139
+ * The text field can be editable or read-only (<code>readonly</code> property),
140
+ * and it can be enabled or disabled (<code>disabled</code> property).
141
+ * To visualize semantic states, such as "error" or "warning", the <code>valueState</code> property is provided.
142
+ * When the user makes changes to the text, the change event is fired,
143
+ * which enables you to react on any text change.
144
+ * <br><br>
145
+ * <b>Note:</b> If you are using the <code>ui5-input</code> as a single npm module,
146
+ * don't forget to import the <code>InputSuggestions</code> module from
147
+ * "@ui5/webcomponents/dist/features/InputSuggestions.js"
148
+ * to enable the suggestions functionality.
149
+ *
150
+ * <h3>Keyboard Handling</h3>
151
+ * The <code>ui5-input</code> provides the following keyboard shortcuts:
152
+ * <br>
153
+ *
154
+ * <ul>
155
+ * <li>[ESC] - Closes the suggestion list, if open. If closed or not enabled, cancels changes and reverts to the value which the Input field had when it got the focus.</li>
156
+ * <li>[ENTER] or [RETURN] - If suggestion list is open takes over the current matching item and closes it. If value state or group header is focused, does nothing.</li>
157
+ * <li>[DOWN] - Focuses the next matching item in the suggestion list.</li>
158
+ * <li>[UP] - Focuses the previous matching item in the suggestion list.</li>
159
+ * <li>[HOME] - If focus is in the text input, moves caret before the first character. If focus is in the list, highlights the first item and updates the input accordingly.</li>
160
+ * <li>[END] - If focus is in the text input, moves caret after the last character. If focus is in the list, highlights the last item and updates the input accordingly.</li>
161
+ * <li>[PAGEUP] - If focus is in the list, moves highlight up by page size (10 items by default). If focus is in the input, does nothing.</li>
162
+ * <li>[PAGEDOWN] - If focus is in the list, moves highlight down by page size (10 items by default). If focus is in the input, does nothing.</li>
163
+ * </ul>
164
+ *
165
+ * <h3>ES6 Module Import</h3>
166
+ *
167
+ * <code>import "@ui5/webcomponents/dist/Input.js";</code>
168
+ * <br>
169
+ * <code>import "@ui5/webcomponents/dist/features/InputSuggestions.js";</code> (optional - for input suggestions support)
170
+ *
171
+ * @constructor
172
+ * @author SAP SE
173
+ * @alias sap.ui.webc.main.Input
174
+ * @extends sap.ui.webc.base.UI5Element
175
+ * @tagname ui5-input
176
+ * @appenddocs SuggestionItem SuggestionGroupItem
177
+ * @implements sap.ui.webc.main.IInput
178
+ * @public
179
+ */
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
+ @slot({ type: HTMLElement })
527
+ icon!: Array<Icon>;
528
+
529
+ /**
530
+ * Defines the suggestion items.
531
+ * <br><br>
532
+ * Example:
533
+ * <br><br>
534
+ * &lt;ui5-input show-suggestions><br>
535
+ * &nbsp;&nbsp;&nbsp;&nbsp;&lt;ui5-suggestion-item text="Item #1">&lt;/ui5-suggestion-item><br>
536
+ * &nbsp;&nbsp;&nbsp;&nbsp;&lt;ui5-suggestion-item text="Item #2">&lt;/ui5-suggestion-item><br>
537
+ * &lt;/ui5-input>
538
+ * <br>
539
+ * <ui5-input show-suggestions>
540
+ * <ui5-suggestion-group-item text="Group #1"></ui5-suggestion-group-item>
541
+ * <ui5-suggestion-item text="Item #1"></ui5-suggestion-item>
542
+ * <ui5-suggestion-item text="Item #2"></ui5-suggestion-item>
543
+ * <ui5-suggestion-group-item text="Group #2"></ui5-suggestion-group-item>
544
+ * <ui5-suggestion-item text="Item #3"></ui5-suggestion-item>
545
+ * <ui5-suggestion-item text="Item #4"></ui5-suggestion-item>
546
+ * </ui5-input>
547
+ * <br><br>
548
+ * <b>Note:</b> The suggestions would be displayed only if the <code>showSuggestions</code>
549
+ * property is set to <code>true</code>.
550
+ * <br><br>
551
+ * <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.
552
+ * <br><br>
553
+ * <b>Note:</b> Importing the Input Suggestions Support feature:
554
+ * <br>
555
+ * <code>import "@ui5/webcomponents/dist/features/InputSuggestions.js";</code>
556
+ * <br>
557
+ * automatically imports the <code>&lt;ui5-suggestion-item></code> and <code>&lt;ui5-suggestion-group-item></code> for your convenience.
558
+ *
559
+ * @type {sap.ui.webc.main.IInputSuggestionItem[]}
560
+ * @name sap.ui.webc.main.Input.prototype.default
561
+ * @slot suggestionItems
562
+ * @public
563
+ */
564
+ @slot({ type: HTMLElement, "default": true })
565
+ suggestionItems!: Array<SuggestionItem>;
566
+
567
+ /**
568
+ * The slot is used for native <code>input</code> HTML element to enable form submit,
569
+ * when <code>name</code> property is set.
570
+ * @type {HTMLElement[]}
571
+ * @private
572
+ */
573
+ @slot({ type: HTMLElement })
574
+ formSupport!: Array<HTMLElement>;
575
+
576
+ /**
577
+ * Defines the value state message that will be displayed as pop up under the component.
578
+ * <br><br>
579
+ *
580
+ * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.
581
+ * <br><br>
582
+ * <b>Note:</b> The <code>valueStateMessage</code> would be displayed,
583
+ * when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
584
+ * <br><br>
585
+ * <b>Note:</b> If the component has <code>suggestionItems</code>,
586
+ * the <code>valueStateMessage</code> would be displayed as part of the same popover, if used on desktop, or dialog - on phone.
587
+ * @type {HTMLElement[]}
588
+ * @name sap.ui.webc.main.Input.prototype.valueStateMessage
589
+ * @since 1.0.0-rc.6
590
+ * @slot
591
+ * @public
592
+ */
593
+ @slot({ type: HTMLElement })
594
+ valueStateMessage!: Array<HTMLElement>;
595
+
596
+ hasSuggestionItemSelected: boolean;
597
+ valueBeforeItemSelection: string;
598
+ valueBeforeItemPreview: string
599
+ suggestionSelectionCanceled: boolean;
600
+ previousValue: string;
601
+ firstRendering: boolean;
602
+ typedInValue: string;
603
+ lastConfirmedValue: string
604
+ isTyping: boolean
605
+ suggestionsTexts: Array<InputSuggestionText>;
606
+ _handleResizeBound: () => void;
607
+ _keepInnerValue: boolean;
608
+ _shouldAutocomplete?: boolean;
609
+ _keyDown?: boolean;
610
+ _isKeyNavigation?: boolean;
611
+ Suggestions?: InputSuggestions;
612
+ FormSupport?: typeof FormSupportT;
613
+ _selectedText?: string;
614
+ _clearIconClicked?: boolean;
615
+ _previewItem?: SuggestionListItem;
616
+ static i18nBundle: I18nBundle;
617
+
618
+ static get render() {
619
+ return litRender;
620
+ }
621
+
622
+ static get template() {
623
+ return InputTemplate;
624
+ }
625
+
626
+ static get staticAreaTemplate() {
627
+ return InputPopoverTemplate;
628
+ }
629
+
630
+ static get styles() {
631
+ return styles;
632
+ }
633
+
634
+ static get staticAreaStyles() {
635
+ return [ResponsivePopoverCommonCss, ValueStateMessageCss, SuggestionsCss];
636
+ }
637
+
638
+ constructor() {
639
+ super();
640
+ // Indicates if there is selected suggestionItem.
641
+ this.hasSuggestionItemSelected = false;
642
+
643
+ // Represents the value before user moves selection from suggestion item to another
644
+ // and its value is updated after each move.
645
+ // Note: Used to register and fire "input" event upon [SPACE] or [ENTER].
646
+ // Note: The property "value" is updated upon selection move and can`t be used.
647
+ this.valueBeforeItemSelection = "";
648
+
649
+ // Represents the value before user moves selection between the suggestion items
650
+ // and its value remains the same when the user navigates up or down the list.
651
+ // Note: Used to cancel selection upon [ESC].
652
+ this.valueBeforeItemPreview = "";
653
+
654
+ // Indicates if the user selection has been canceled with [ESC].
655
+ this.suggestionSelectionCanceled = false;
656
+
657
+ // tracks the value between focus in and focus out to detect that change event should be fired.
658
+ this.previousValue = "";
659
+
660
+ // Indicates, if the component is rendering for first time.
661
+ this.firstRendering = true;
662
+
663
+ // The typed in value.
664
+ this.typedInValue = "";
665
+
666
+ // The last value confirmed by the user with "ENTER"
667
+ this.lastConfirmedValue = "";
668
+
669
+ // Indicates, if the user is typing. Gets reset once popup is closed
670
+ this.isTyping = false;
671
+
672
+ // Suggestions array initialization
673
+ this.suggestionsTexts = [];
674
+
675
+ this._handleResizeBound = this._handleResize.bind(this);
676
+
677
+ this._keepInnerValue = false;
678
+ }
679
+
680
+ onEnterDOM() {
681
+ ResizeHandler.register(this, this._handleResizeBound);
682
+ }
683
+
684
+ onExitDOM() {
685
+ ResizeHandler.deregister(this, this._handleResizeBound);
686
+ }
687
+
688
+ onBeforeRendering() {
689
+ if (!this._keepInnerValue) {
690
+ this._innerValue = this.value;
691
+ }
692
+
693
+ if (this.showSuggestions) {
694
+ this.enableSuggestions();
695
+ this.suggestionsTexts = this.Suggestions!.defaultSlotProperties(this.typedInValue);
696
+ }
697
+
698
+ this.effectiveShowClearIcon = (this.showClearIcon && !!this.value && !this.readonly && !this.disabled);
699
+
700
+ this.FormSupport = getFeature<typeof FormSupportT>("FormSupport");
701
+ const hasItems = !!this.suggestionItems.length;
702
+ const hasValue = !!this.value;
703
+ const isFocused = this.shadowRoot!.querySelector("input") === getActiveElement();
704
+
705
+ if (this._isPhone) {
706
+ this.open = this.openOnMobile;
707
+ } else if (this._forceOpen) {
708
+ this.open = true;
709
+ } else {
710
+ this.open = hasValue && hasItems && isFocused && this.isTyping;
711
+ }
712
+
713
+ if (this.FormSupport) {
714
+ this.FormSupport.syncNativeHiddenInput(this);
715
+ } else if (this.name) {
716
+ console.warn(`In order for the "name" property to have effect, you should also: import "@ui5/webcomponents/dist/features/InputElementsFormSupport.js";`); // eslint-disable-line
717
+ }
718
+
719
+ const value = this.value;
720
+ const innerInput = this.getInputDOMRefSync();
721
+
722
+ if (!innerInput || !value) {
723
+ return;
724
+ }
725
+
726
+ const autoCompletedChars = innerInput.selectionEnd! - innerInput.selectionStart!;
727
+
728
+ // Typehead causes issues on Android devices, so we disable it for now
729
+ // If there is already a selection the autocomplete has already been performed
730
+ if (this._shouldAutocomplete && !isAndroid() && !autoCompletedChars && !this._isKeyNavigation) {
731
+ const item = this._getFirstMatchingItem(value);
732
+ if (item) {
733
+ this._handleTypeAhead(item, value);
734
+ }
735
+ }
736
+ }
737
+
738
+ async onAfterRendering() {
739
+ if (this.Suggestions && this.showSuggestions) {
740
+ this.Suggestions.toggle(this.open, {
741
+ preventFocusRestore: true,
742
+ });
743
+
744
+ this._listWidth = await this.Suggestions._getListWidth();
745
+ }
746
+
747
+ if (this.shouldDisplayOnlyValueStateMessage) {
748
+ this.openPopover();
749
+ } else {
750
+ this.closePopover();
751
+ }
752
+ }
753
+
754
+ _onkeydown(e: KeyboardEvent) {
755
+ this._isKeyNavigation = true;
756
+ this._shouldAutocomplete = !this.noTypeahead && !(isBackSpace(e) || isDelete(e) || isEscape(e));
757
+
758
+ if (isUp(e)) {
759
+ return this._handleUp(e);
760
+ }
761
+
762
+ if (isDown(e)) {
763
+ return this._handleDown(e);
764
+ }
765
+
766
+ if (isSpace(e)) {
767
+ return this._handleSpace(e);
768
+ }
769
+
770
+ if (isTabNext(e)) {
771
+ return this._handleTab();
772
+ }
773
+
774
+ if (isEnter(e)) {
775
+ return this._handleEnter(e);
776
+ }
777
+
778
+ if (isPageUp(e)) {
779
+ return this._handlePageUp(e);
780
+ }
781
+
782
+ if (isPageDown(e)) {
783
+ return this._handlePageDown(e);
784
+ }
785
+
786
+ if (isHome(e)) {
787
+ return this._handleHome(e);
788
+ }
789
+
790
+ if (isEnd(e)) {
791
+ return this._handleEnd(e);
792
+ }
793
+
794
+ if (isEscape(e)) {
795
+ return this._handleEscape();
796
+ }
797
+
798
+ if (this.showSuggestions) {
799
+ this._clearPopoverFocusAndSelection();
800
+ }
801
+
802
+ this._keyDown = true;
803
+ this._isKeyNavigation = false;
804
+ }
805
+
806
+ _onkeyup(e: KeyboardEvent) {
807
+ // The native Delete event does not update the value property "on time".
808
+ // So, the (native) change event is always fired with the old value
809
+ if (isDelete(e)) {
810
+ this.value = (e.target as HTMLInputElement).value;
811
+ }
812
+
813
+ this._keyDown = false;
814
+ }
815
+
816
+ _handleUp(e: KeyboardEvent) {
817
+ if (this.Suggestions && this.Suggestions.isOpened()) {
818
+ this.Suggestions.onUp(e);
819
+ }
820
+ }
821
+
822
+ _handleDown(e: KeyboardEvent) {
823
+ if (this.Suggestions && this.Suggestions.isOpened()) {
824
+ this.Suggestions.onDown(e);
825
+ }
826
+ }
827
+
828
+ _handleSpace(e: KeyboardEvent) {
829
+ if (this.Suggestions) {
830
+ this.Suggestions.onSpace(e);
831
+ }
832
+ }
833
+
834
+ _handleTab() {
835
+ if (this.Suggestions && (this.previousValue !== this.value)) {
836
+ this.Suggestions.onTab();
837
+ }
838
+ }
839
+
840
+ _handleEnter(e: KeyboardEvent) {
841
+ const itemPressed = !!(this.Suggestions && this.Suggestions.onEnter(e));
842
+ const innerInput = this.getInputDOMRefSync()!;
843
+ // Check for autocompleted item
844
+ const matchingItem = this.suggestionItems.find(item => {
845
+ return (item.text && item.text === this.value) || (item.textContent === this.value);
846
+ });
847
+
848
+ if (matchingItem) {
849
+ const itemText = matchingItem.text ? matchingItem.text : (matchingItem.textContent || "");
850
+
851
+ innerInput.setSelectionRange(itemText.length, itemText.length);
852
+ if (!itemPressed) {
853
+ this.selectSuggestion(matchingItem, true);
854
+ this.open = false;
855
+ }
856
+ }
857
+
858
+ if (this._isPhone && !this.suggestionItems.length) {
859
+ innerInput.setSelectionRange(this.value.length, this.value.length);
860
+ }
861
+
862
+ if (!itemPressed) {
863
+ this.lastConfirmedValue = this.value;
864
+
865
+ if (this.FormSupport) {
866
+ this.FormSupport.triggerFormSubmit(this);
867
+ }
868
+
869
+ return;
870
+ }
871
+
872
+ this.focused = true;
873
+ }
874
+
875
+ _handlePageUp(e: KeyboardEvent) {
876
+ if (this._isSuggestionsFocused) {
877
+ this.Suggestions!.onPageUp(e);
878
+ } else {
879
+ e.preventDefault();
880
+ }
881
+ }
882
+
883
+ _handlePageDown(e: KeyboardEvent) {
884
+ if (this._isSuggestionsFocused) {
885
+ this.Suggestions!.onPageDown(e);
886
+ } else {
887
+ e.preventDefault();
888
+ }
889
+ }
890
+
891
+ _handleHome(e: KeyboardEvent) {
892
+ if (this._isSuggestionsFocused) {
893
+ this.Suggestions!.onHome(e);
894
+ }
895
+ }
896
+
897
+ _handleEnd(e: KeyboardEvent) {
898
+ if (this._isSuggestionsFocused) {
899
+ this.Suggestions!.onEnd(e);
900
+ }
901
+ }
902
+
903
+ _handleEscape() {
904
+ const hasSuggestions = this.showSuggestions && !!this.Suggestions;
905
+ const isOpen = hasSuggestions && this.open;
906
+ const innerInput = this.getInputDOMRefSync()!;
907
+ const isAutoCompleted = innerInput.selectionEnd! - innerInput.selectionStart! > 0;
908
+
909
+ this.isTyping = false;
910
+
911
+ if (!isOpen) {
912
+ this.value = this.lastConfirmedValue ? this.lastConfirmedValue : this.previousValue;
913
+ return;
914
+ }
915
+
916
+ if (isOpen && this.Suggestions!._isItemOnTarget()) {
917
+ // Restore the value.
918
+ this.value = this.typedInValue || this.valueBeforeItemPreview;
919
+
920
+ // Mark that the selection has been canceled, so the popover can close
921
+ // and not reopen, due to receiving focus.
922
+ this.suggestionSelectionCanceled = true;
923
+ this.focused = true;
924
+
925
+ return;
926
+ }
927
+
928
+ if (isAutoCompleted) {
929
+ this.value = this.typedInValue;
930
+ }
931
+
932
+ if (this._isValueStateFocused) {
933
+ this._isValueStateFocused = false;
934
+ this.focused = true;
935
+ }
936
+ }
937
+
938
+ async _onfocusin(e: FocusEvent) {
939
+ await this.getInputDOMRef();
940
+
941
+ this.focused = true; // invalidating property
942
+ this.previousValue = this.value;
943
+ this.valueBeforeItemPreview = this.value;
944
+
945
+ this._inputIconFocused = !!e.target && e.target === this.querySelector<Icon>("[ui5-icon]");
946
+ }
947
+
948
+ _onfocusout(e: FocusEvent) {
949
+ const toBeFocused = e.relatedTarget as HTMLElement;
950
+ const focusedOutToSuggestions = this.Suggestions && toBeFocused && toBeFocused.shadowRoot && toBeFocused.shadowRoot.contains(this.Suggestions.responsivePopover as Node);
951
+ const focusedOutToValueStateMessage = toBeFocused && toBeFocused.shadowRoot && toBeFocused.shadowRoot.querySelector(".ui5-valuestatemessage-root");
952
+
953
+ this._keepInnerValue = false;
954
+
955
+ if (this.showClearIcon && !this.effectiveShowClearIcon) {
956
+ this._clearIconClicked = false;
957
+ this._handleChange();
958
+ }
959
+
960
+ // if focusout is triggered by pressing on suggestion item or value state message popover, skip invalidation, because re-rendering
961
+ // will happen before "itemPress" event, which will make item "active" state not visualized
962
+ if (focusedOutToSuggestions || focusedOutToValueStateMessage) {
963
+ e.stopImmediatePropagation();
964
+ return;
965
+ }
966
+
967
+ if (toBeFocused && (toBeFocused).classList.contains(this._id)) {
968
+ return;
969
+ }
970
+
971
+ this.open = false;
972
+ this._clearPopoverFocusAndSelection();
973
+
974
+ this.previousValue = "";
975
+ this.lastConfirmedValue = "";
976
+ this.focused = false; // invalidating property
977
+ this.isTyping = false;
978
+ this._forceOpen = false;
979
+ }
980
+
981
+ _clearPopoverFocusAndSelection() {
982
+ if (!this.showSuggestions || !this.Suggestions) {
983
+ return;
984
+ }
985
+
986
+ this._isValueStateFocused = false;
987
+ this.hasSuggestionItemSelected = false;
988
+
989
+ this.Suggestions._deselectItems();
990
+ this.Suggestions._clearItemFocus();
991
+ }
992
+
993
+ _click() {
994
+ if (isPhone() && !this.readonly && this.Suggestions) {
995
+ this.blur();
996
+ this.openOnMobile = true;
997
+ }
998
+ }
999
+
1000
+ _handleChange() {
1001
+ if (this._clearIconClicked) {
1002
+ this._clearIconClicked = false;
1003
+ return;
1004
+ }
1005
+
1006
+ if (this.previousValue !== this.getInputDOMRefSync()!.value) {
1007
+ this.previousValue = this.getInputDOMRefSync()!.value;
1008
+ this.fireEvent(INPUT_EVENTS.CHANGE);
1009
+ }
1010
+ }
1011
+
1012
+ _clear() {
1013
+ this.value = "";
1014
+ this.fireEvent<InputEventDetail>(INPUT_EVENTS.INPUT);
1015
+ if (!this._isPhone) {
1016
+ this.focus();
1017
+ }
1018
+ }
1019
+
1020
+ _iconMouseDown() {
1021
+ this._clearIconClicked = true;
1022
+ }
1023
+
1024
+ _scroll(e: CustomEvent<ScrollEventDetail>) {
1025
+ this.fireEvent<SuggestionScrollEventDetail>("suggestion-scroll", {
1026
+ scrollTop: e.detail.scrollTop,
1027
+ scrollContainer: e.detail.targetRef,
1028
+ });
1029
+ }
1030
+
1031
+ _handleInput(e: InputEvent | CustomEvent<InputEventDetail>) {
1032
+ const inputDomRef = this.getInputDOMRefSync();
1033
+ const emptyValueFiredOnNumberInput = this.value && this.isTypeNumber && !inputDomRef!.value;
1034
+ const eventType: string = (e as InputEvent).inputType
1035
+ || (e.detail && (e as CustomEvent<InputEventDetail>).detail.inputType!)
1036
+ || "";
1037
+ this._keepInnerValue = false;
1038
+
1039
+ const allowedEventTypes = [
1040
+ "deleteWordBackward",
1041
+ "deleteWordForward",
1042
+ "deleteSoftLineBackward",
1043
+ "deleteSoftLineForward",
1044
+ "deleteEntireSoftLine",
1045
+ "deleteHardLineBackward",
1046
+ "deleteHardLineForward",
1047
+ "deleteByDrag",
1048
+ "deleteByCut",
1049
+ "deleteContent",
1050
+ "deleteContentBackward",
1051
+ "deleteContentForward",
1052
+ "historyUndo",
1053
+ ];
1054
+
1055
+ this._shouldAutocomplete = !allowedEventTypes.includes(eventType) && !this.noTypeahead;
1056
+ this.suggestionSelectionCanceled = false;
1057
+
1058
+ if (e instanceof InputEvent) {
1059
+ // ---- Special cases of numeric Input ----
1060
+ // ---------------- Start -----------------
1061
+
1062
+ // When the last character after the delimiter is removed.
1063
+ // In such cases, we want to skip the re-rendering of the
1064
+ // component as this leads to cursor repositioning and causes user experience issues.
1065
+
1066
+ // There are few scenarios:
1067
+ // Example: type "123.4" and press BACKSPACE - the native input is firing event with the whole part as value (123).
1068
+ // Pressing BACKSPACE again will remove the delimiter and the native input will fire event with the whole part as value again (123).
1069
+ // Example: type "123.456", select/mark "456" and press BACKSPACE - the native input is firing event with the whole part as value (123).
1070
+ // Example: type "123.456", select/mark "123.456" and press BACKSPACE - the native input is firing event with empty value.
1071
+ const delimiterCase = this.isTypeNumber
1072
+ && (e.inputType === "deleteContentForward" || e.inputType === "deleteContentBackward")
1073
+ && !(e.target as HTMLInputElement).value.includes(".")
1074
+ && this.value.includes(".");
1075
+
1076
+ // Handle special numeric notation with "e", example "12.5e12"
1077
+ const eNotationCase = emptyValueFiredOnNumberInput && e.data === "e";
1078
+
1079
+ // Handle special numeric notation with "-", example "-3"
1080
+ // When pressing BACKSPACE, the native input fires event with empty value
1081
+ const minusRemovalCase = emptyValueFiredOnNumberInput
1082
+ && this.value.startsWith("-")
1083
+ && this.value.length === 2
1084
+ && (e.inputType === "deleteContentForward" || e.inputType === "deleteContentBackward");
1085
+
1086
+ if (delimiterCase || eNotationCase || minusRemovalCase) {
1087
+ this.value = (e.target as HTMLInputElement).value;
1088
+ this._keepInnerValue = true;
1089
+ }
1090
+ // ----------------- End ------------------
1091
+ }
1092
+
1093
+ if (e.target === inputDomRef) {
1094
+ this.focused = true;
1095
+
1096
+ // stop the native event, as the semantic "input" would be fired.
1097
+ e.stopImmediatePropagation();
1098
+ }
1099
+
1100
+ this.fireEventByAction(INPUT_ACTIONS.ACTION_ENTER, e as InputEvent);
1101
+
1102
+ this.hasSuggestionItemSelected = false;
1103
+ this._isValueStateFocused = false;
1104
+
1105
+ if (this.Suggestions) {
1106
+ this.Suggestions.updateSelectedItemPosition(-1);
1107
+ }
1108
+
1109
+ this.isTyping = true;
1110
+ }
1111
+
1112
+ _startsWithMatchingItems(str: string): Array<SuggestionItem> {
1113
+ const textProp = this.suggestionItems[0].text ? "text" : "textContent";
1114
+
1115
+ return StartsWith(str, this.suggestionItems, textProp);
1116
+ }
1117
+
1118
+ _getFirstMatchingItem(current: string) {
1119
+ if (!this.suggestionItems.length) {
1120
+ return;
1121
+ }
1122
+
1123
+ const matchingItems = this._startsWithMatchingItems(current).filter(item => !item.groupItem);
1124
+
1125
+ if (matchingItems.length) {
1126
+ return matchingItems[0];
1127
+ }
1128
+ }
1129
+
1130
+ _handleTypeAhead(item: SuggestionItem, filterValue: string) {
1131
+ const value = item.text ? item.text : item.textContent || "";
1132
+ const innerInput = this.getInputDOMRefSync()!;
1133
+
1134
+ filterValue = filterValue || "";
1135
+ this._innerValue = value;
1136
+ this.value = value;
1137
+
1138
+ innerInput.value = value;
1139
+ setTimeout(() => {
1140
+ innerInput.setSelectionRange(filterValue.length, value.length);
1141
+ }, 0);
1142
+
1143
+ this._shouldAutocomplete = false;
1144
+ }
1145
+
1146
+ _handleResize() {
1147
+ this._inputWidth = this.offsetWidth;
1148
+ }
1149
+
1150
+ _closeRespPopover() {
1151
+ this.Suggestions!.close(true);
1152
+ }
1153
+
1154
+ async _afterOpenPopover() {
1155
+ // Set initial focus to the native input
1156
+ if (isPhone()) {
1157
+ (await this.getInputDOMRef())!.focus();
1158
+ }
1159
+ }
1160
+
1161
+ _afterClosePopover() {
1162
+ this.announceSelectedItem();
1163
+
1164
+ // close device's keyboard and prevent further typing
1165
+ if (isPhone()) {
1166
+ this.blur();
1167
+ this.focused = false;
1168
+ }
1169
+
1170
+ this.openOnMobile = false;
1171
+ this.open = false;
1172
+ this._forceOpen = false;
1173
+ }
1174
+
1175
+ /**
1176
+ * Checks if the value state popover is open.
1177
+ * @returns {boolean} true if the value state popover is open, false otherwise
1178
+ */
1179
+ isValueStateOpened() {
1180
+ return !!this._isPopoverOpen;
1181
+ }
1182
+
1183
+ async openPopover() {
1184
+ const popover = await this._getPopover();
1185
+
1186
+ if (popover) {
1187
+ this._isPopoverOpen = true;
1188
+ popover.showAt(this);
1189
+ }
1190
+ }
1191
+
1192
+ async closePopover() {
1193
+ const popover = await this._getPopover();
1194
+
1195
+ popover && popover.close();
1196
+ }
1197
+
1198
+ async _getPopover() {
1199
+ const staticAreaItem = await this.getStaticAreaItemDomRef();
1200
+ return staticAreaItem!.querySelector<Popover>("[ui5-popover]")!;
1201
+ }
1202
+
1203
+ /**
1204
+ * Manually opens the suggestions popover, assuming suggestions are enabled. Items must be preloaded for it to open.
1205
+ * @since 1.3.0
1206
+ * @public
1207
+ * @name sap.ui.webc.main.Input#openPicker
1208
+ * @return {void}
1209
+ */
1210
+ openPicker() {
1211
+ if (!this.suggestionItems.length || this.disabled || this.readonly) {
1212
+ return;
1213
+ }
1214
+
1215
+ this._forceOpen = true;
1216
+ }
1217
+
1218
+ enableSuggestions() {
1219
+ if (this.Suggestions) {
1220
+ return;
1221
+ }
1222
+
1223
+ const Suggestions = getFeature<typeof InputSuggestions>("InputSuggestions");
1224
+
1225
+ if (Suggestions) {
1226
+ this.Suggestions = new Suggestions(this, "suggestionItems", true, false);
1227
+ } else {
1228
+ throw new Error(`You have to import "@ui5/webcomponents/dist/features/InputSuggestions.js" module to use ui5-input suggestions`);
1229
+ }
1230
+ }
1231
+
1232
+ selectSuggestion(item: SuggestionItem, keyboardUsed: boolean) {
1233
+ if (item.groupItem) {
1234
+ return;
1235
+ }
1236
+
1237
+ const innerInput = this.getInputDOMRefSync()!;
1238
+ const value = this.typedInValue || this.value;
1239
+ const itemText = item.text || item.textContent || ""; // keep textContent for compatibility
1240
+ const fireInput = keyboardUsed
1241
+ ? this.valueBeforeItemSelection !== itemText : value !== itemText;
1242
+
1243
+ this.hasSuggestionItemSelected = true;
1244
+
1245
+ if (fireInput) {
1246
+ this.value = itemText;
1247
+ this.valueBeforeItemSelection = itemText;
1248
+ this.lastConfirmedValue = itemText;
1249
+ innerInput.value = itemText;
1250
+ this.fireEvent<InputEventDetail>(INPUT_EVENTS.INPUT);
1251
+ this._handleChange();
1252
+ innerInput.setSelectionRange(this.value.length, this.value.length);
1253
+ }
1254
+
1255
+ this.valueBeforeItemPreview = "";
1256
+ this.suggestionSelectionCanceled = false;
1257
+
1258
+ this.fireEvent<SuggestionItemSelectEventDetail>(INPUT_EVENTS.SUGGESTION_ITEM_SELECT, { item });
1259
+
1260
+ this.isTyping = false;
1261
+ this.openOnMobile = false;
1262
+ this._forceOpen = false;
1263
+ }
1264
+
1265
+ previewSuggestion(item: SuggestionListItem) {
1266
+ this.valueBeforeItemSelection = this.value;
1267
+ this.updateValueOnPreview(item);
1268
+ this.announceSelectedItem();
1269
+ this._previewItem = item;
1270
+ }
1271
+
1272
+ /**
1273
+ * Updates the input value on item preview.
1274
+ * @param {Object} item The item that is on preview
1275
+ */
1276
+ updateValueOnPreview(item: SuggestionListItem) {
1277
+ const noPreview = item.type === "Inactive" || item.groupItem;
1278
+ const innerInput = this.getInputDOMRefSync()!;
1279
+ const itemValue = noPreview ? this.valueBeforeItemPreview : (item.effectiveTitle || item.textContent || "");
1280
+
1281
+ this.value = itemValue;
1282
+ innerInput.value = itemValue;
1283
+ innerInput.setSelectionRange(this.typedInValue.length, this.value.length);
1284
+ }
1285
+
1286
+ /**
1287
+ * The suggestion item on preview.
1288
+ * @type {sap.ui.webc.main.IInputSuggestionItem | null}
1289
+ * @name sap.ui.webc.main.Input.prototype.previewItem
1290
+ * @readonly
1291
+ * @public
1292
+ */
1293
+ get previewItem() {
1294
+ if (!this._previewItem) {
1295
+ return null;
1296
+ }
1297
+
1298
+ return this.getSuggestionByListItem(this._previewItem);
1299
+ }
1300
+
1301
+ async fireEventByAction(action: INPUT_ACTIONS, e: InputEvent) {
1302
+ if (this.disabled || this.readonly) {
1303
+ return;
1304
+ }
1305
+
1306
+ const inputValue = await this.getInputValue();
1307
+ const isUserInput = action === INPUT_ACTIONS.ACTION_ENTER;
1308
+
1309
+ this.value = inputValue;
1310
+ this.typedInValue = inputValue;
1311
+ this.valueBeforeItemPreview = inputValue;
1312
+
1313
+ if (isUserInput) { // input
1314
+ this.fireEvent<InputEventDetail>(INPUT_EVENTS.INPUT, { inputType: e.inputType });
1315
+ // Angular two way data binding
1316
+ this.fireEvent("value-changed");
1317
+ }
1318
+ }
1319
+
1320
+ async getInputValue() {
1321
+ const domRef = this.getDomRef();
1322
+
1323
+ if (domRef) {
1324
+ return (await this.getInputDOMRef())!.value;
1325
+ }
1326
+ return "";
1327
+ }
1328
+
1329
+ async getInputDOMRef() {
1330
+ if (isPhone() && this.Suggestions) {
1331
+ await this.Suggestions._getSuggestionPopover();
1332
+ return this.Suggestions.responsivePopover!.querySelector<Input>(".ui5-input-inner-phone")!;
1333
+ }
1334
+
1335
+ return this.nativeInput;
1336
+ }
1337
+
1338
+ getInputDOMRefSync() {
1339
+ if (isPhone() && this.Suggestions && this.Suggestions.responsivePopover) {
1340
+ return this.Suggestions.responsivePopover.querySelector(".ui5-input-inner-phone")!.shadowRoot!.querySelector<HTMLInputElement>("input")!;
1341
+ }
1342
+
1343
+ return this.nativeInput;
1344
+ }
1345
+
1346
+ /**
1347
+ * Returns a reference to the native input element
1348
+ * @protected
1349
+ */
1350
+ get nativeInput() {
1351
+ const domRef = this.getDomRef();
1352
+
1353
+ return domRef ? domRef.querySelector<HTMLInputElement>(`input`) : null;
1354
+ }
1355
+
1356
+ get nativeInputWidth() {
1357
+ return this.nativeInput ? this.nativeInput.offsetWidth : 0;
1358
+ }
1359
+
1360
+ getLabelableElementId() {
1361
+ return this.getInputId();
1362
+ }
1363
+
1364
+ getSuggestionByListItem(item: SuggestionListItem): SuggestionItem {
1365
+ const key = parseInt(item.getAttribute("data-ui5-key")!);
1366
+ return this.suggestionItems[key];
1367
+ }
1368
+
1369
+ /**
1370
+ * Returns if the suggestions popover is scrollable.
1371
+ * The method returns <code>Promise</code> that resolves to true,
1372
+ * if the popup is scrollable and false otherwise.
1373
+ * @returns {Promise}
1374
+ */
1375
+ isSuggestionsScrollable() {
1376
+ if (!this.Suggestions) {
1377
+ return Promise.resolve(false);
1378
+ }
1379
+
1380
+ return this.Suggestions._isScrollable();
1381
+ }
1382
+
1383
+ getInputId() {
1384
+ return `${this._id}-inner`;
1385
+ }
1386
+
1387
+ /* Suggestions interface */
1388
+ onItemMouseOver(e: MouseEvent) {
1389
+ const item = e.target as SuggestionListItem;
1390
+ const suggestion = this.getSuggestionByListItem(item);
1391
+ suggestion && suggestion.fireEvent("mouseover", {
1392
+ item: suggestion,
1393
+ targetRef: item,
1394
+ });
1395
+ }
1396
+
1397
+ onItemMouseOut(e: MouseEvent) {
1398
+ const item = e.target as SuggestionListItem;
1399
+ const suggestion = this.getSuggestionByListItem(item);
1400
+ suggestion && suggestion.fireEvent("mouseout", {
1401
+ item: suggestion,
1402
+ targetRef: item,
1403
+ });
1404
+ }
1405
+
1406
+ onItemMouseDown(e: MouseEvent) {
1407
+ e.preventDefault();
1408
+ }
1409
+
1410
+ onItemSelected(item: SuggestionItem, keyboardUsed: boolean) {
1411
+ this.selectSuggestion(item, keyboardUsed);
1412
+ }
1413
+
1414
+ onItemPreviewed(item: SuggestionListItem) {
1415
+ this.previewSuggestion(item);
1416
+ this.fireEvent<SuggestionItemPreviewEventDetail>("suggestion-item-preview", {
1417
+ item: this.getSuggestionByListItem(item),
1418
+ targetRef: item,
1419
+ });
1420
+ }
1421
+
1422
+ get valueStateTypeMappings() {
1423
+ return {
1424
+ "Success": Input.i18nBundle.getText(VALUE_STATE_TYPE_SUCCESS as I18nText),
1425
+ "Information": Input.i18nBundle.getText(VALUE_STATE_TYPE_INFORMATION as I18nText),
1426
+ "Error": Input.i18nBundle.getText(VALUE_STATE_TYPE_ERROR as I18nText),
1427
+ "Warning": Input.i18nBundle.getText(VALUE_STATE_TYPE_WARNING as I18nText),
1428
+ };
1429
+ }
1430
+
1431
+ valueStateTextMappings() {
1432
+ return {
1433
+ "Success": Input.i18nBundle.getText(VALUE_STATE_SUCCESS as I18nText),
1434
+ "Information": Input.i18nBundle.getText(VALUE_STATE_INFORMATION as I18nText),
1435
+ "Error": Input.i18nBundle.getText(VALUE_STATE_ERROR as I18nText),
1436
+ "Warning": Input.i18nBundle.getText(VALUE_STATE_WARNING as I18nText),
1437
+ };
1438
+ }
1439
+
1440
+ announceSelectedItem() {
1441
+ const invisibleText = this.shadowRoot!.querySelector(`#${this._id}-selectionText`)!;
1442
+
1443
+ if (this.Suggestions && this.Suggestions._isItemOnTarget()) {
1444
+ invisibleText.textContent = this.itemSelectionAnnounce;
1445
+ } else {
1446
+ invisibleText.textContent = "";
1447
+ }
1448
+ }
1449
+
1450
+ get _readonly() {
1451
+ return this.readonly && !this.disabled;
1452
+ }
1453
+
1454
+ get _headerTitleText() {
1455
+ return Input.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE as I18nText);
1456
+ }
1457
+
1458
+ get inputType() {
1459
+ return this.type.toLowerCase();
1460
+ }
1461
+
1462
+ get isTypeNumber() {
1463
+ return this.type === InputType.Number;
1464
+ }
1465
+
1466
+ get suggestionsTextId() {
1467
+ return this.showSuggestions ? `${this._id}-suggestionsText` : "";
1468
+ }
1469
+
1470
+ get valueStateTextId() {
1471
+ return this.hasValueState ? `${this._id}-valueStateDesc` : "";
1472
+ }
1473
+
1474
+ get accInfo() {
1475
+ const ariaHasPopupDefault = this.showSuggestions ? "true" : undefined;
1476
+ const ariaAutoCompleteDefault = this.showSuggestions ? "list" : undefined;
1477
+ const ariaDescribedBy = this._inputAccInfo.ariaDescribedBy ? `${this.suggestionsTextId} ${this.valueStateTextId} ${this._inputAccInfo.ariaDescribedBy}`.trim() : `${this.suggestionsTextId} ${this.valueStateTextId}`.trim();
1478
+
1479
+ return {
1480
+ "input": {
1481
+ "ariaRoledescription": this._inputAccInfo && (this._inputAccInfo.ariaRoledescription || undefined),
1482
+ "ariaDescribedBy": ariaDescribedBy || undefined,
1483
+ "ariaInvalid": this.valueState === ValueState.Error ? "true" : undefined,
1484
+ "ariaHasPopup": this._inputAccInfo.ariaHasPopup ? this._inputAccInfo.ariaHasPopup : ariaHasPopupDefault,
1485
+ "ariaAutoComplete": this._inputAccInfo.ariaAutoComplete ? this._inputAccInfo.ariaAutoComplete : ariaAutoCompleteDefault,
1486
+ "role": this._inputAccInfo && this._inputAccInfo.role,
1487
+ "ariaControls": this._inputAccInfo && this._inputAccInfo.ariaControls,
1488
+ "ariaExpanded": this._inputAccInfo && this._inputAccInfo.ariaExpanded,
1489
+ "ariaDescription": this._inputAccInfo && this._inputAccInfo.ariaDescription,
1490
+ "ariaLabel": (this._inputAccInfo && this._inputAccInfo.ariaLabel) || getEffectiveAriaLabelText(this) || getAssociatedLabelForTexts(this),
1491
+ },
1492
+ };
1493
+ }
1494
+
1495
+ get nativeInputAttributes() {
1496
+ return {
1497
+ "min": this.isTypeNumber ? this._nativeInputAttributes.min : undefined,
1498
+ "max": this.isTypeNumber ? this._nativeInputAttributes.max : undefined,
1499
+ "step": this.isTypeNumber ? (this._nativeInputAttributes.step || "any") : undefined,
1500
+ };
1501
+ }
1502
+
1503
+ get ariaValueStateHiddenText() {
1504
+ if (!this.hasValueState) {
1505
+ return;
1506
+ }
1507
+
1508
+ const valueState = this.valueState !== ValueState.None ? this.valueStateTypeMappings[this.valueState] : "";
1509
+
1510
+ if (this.shouldDisplayDefaultValueStateMessage) {
1511
+ return this.valueStateText ? `${valueState} ${this.valueStateText}` : valueState;
1512
+ }
1513
+
1514
+ return `${valueState}`.concat(" ", this.valueStateMessageText.map(el => el.textContent).join(" "));
1515
+ }
1516
+
1517
+ get itemSelectionAnnounce() {
1518
+ return this.Suggestions ? this.Suggestions.itemSelectionAnnounce : "";
1519
+ }
1520
+
1521
+ get classes(): ClassMap {
1522
+ return {
1523
+ popover: {
1524
+ "ui5-suggestions-popover": !this._isPhone && this.showSuggestions,
1525
+ "ui5-suggestions-popover-with-value-state-header": !this._isPhone && this.showSuggestions && this.hasValueStateMessage,
1526
+ },
1527
+ popoverValueState: {
1528
+ "ui5-valuestatemessage-root": true,
1529
+ "ui5-valuestatemessage-header": true,
1530
+ "ui5-valuestatemessage--success": this.valueState === ValueState.Success,
1531
+ "ui5-valuestatemessage--error": this.valueState === ValueState.Error,
1532
+ "ui5-valuestatemessage--warning": this.valueState === ValueState.Warning,
1533
+ "ui5-valuestatemessage--information": this.valueState === ValueState.Information,
1534
+ },
1535
+ };
1536
+ }
1537
+
1538
+ get styles() {
1539
+ const remSizeIxPx = parseInt(getComputedStyle(document.documentElement).fontSize);
1540
+
1541
+ const stylesObject = {
1542
+ popoverHeader: {
1543
+ "max-width": this._inputWidth ? `${this._inputWidth}px` : "",
1544
+ },
1545
+ suggestionPopoverHeader: {
1546
+ "display": this._listWidth === 0 ? "none" : "inline-block",
1547
+ "width": this._listWidth ? `${this._listWidth}px` : "",
1548
+ },
1549
+ suggestionsPopover: {
1550
+ "min-width": this._inputWidth ? `${this._inputWidth}px` : "",
1551
+ "max-width": this._inputWidth && (this._inputWidth / remSizeIxPx) > 40 ? `${this._inputWidth}px` : "40rem",
1552
+ },
1553
+ innerInput: {
1554
+ "padding": "",
1555
+ },
1556
+ };
1557
+
1558
+ if (this.nativeInputWidth < 48) {
1559
+ stylesObject.innerInput.padding = "0";
1560
+ }
1561
+
1562
+ return stylesObject;
1563
+ }
1564
+
1565
+ get suggestionSeparators() {
1566
+ return "None";
1567
+ }
1568
+
1569
+ get valueStateMessageText() {
1570
+ return this.getSlottedNodes("valueStateMessage").map(el => el.cloneNode(true));
1571
+ }
1572
+
1573
+ get shouldDisplayOnlyValueStateMessage() {
1574
+ return this.hasValueStateMessage && !this.readonly && !this.open && this.focused;
1575
+ }
1576
+
1577
+ get shouldDisplayDefaultValueStateMessage() {
1578
+ return !this.valueStateMessage.length && this.hasValueStateMessage;
1579
+ }
1580
+
1581
+ get hasValueState() {
1582
+ return this.valueState !== ValueState.None;
1583
+ }
1584
+
1585
+ get hasValueStateMessage() {
1586
+ return this.hasValueState && this.valueState !== ValueState.Success
1587
+ && (!this._inputIconFocused // Handles the cases when valueStateMessage is forwarded (from datepicker e.g.)
1588
+ || !!(this._isPhone && this.Suggestions)); // Handles Input with suggestions on mobile
1589
+ }
1590
+
1591
+ get valueStateText() {
1592
+ return this.valueState !== ValueState.None ? this.valueStateTextMappings()[this.valueState] : undefined;
1593
+ }
1594
+
1595
+ get suggestionsText() {
1596
+ return Input.i18nBundle.getText(INPUT_SUGGESTIONS as I18nText);
1597
+ }
1598
+
1599
+ get availableSuggestionsCount() {
1600
+ if (this.showSuggestions && (this.value || this.Suggestions!.isOpened())) {
1601
+ switch (this.suggestionsTexts.length) {
1602
+ case 0:
1603
+ return Input.i18nBundle.getText(INPUT_SUGGESTIONS_NO_HIT as I18nText);
1604
+
1605
+ case 1:
1606
+ return Input.i18nBundle.getText(INPUT_SUGGESTIONS_ONE_HIT as I18nText);
1607
+
1608
+ default:
1609
+ return Input.i18nBundle.getText(INPUT_SUGGESTIONS_MORE_HITS as I18nText, this.suggestionsTexts.length);
1610
+ }
1611
+ }
1612
+
1613
+ return undefined;
1614
+ }
1615
+
1616
+ get step() {
1617
+ return this.isTypeNumber ? "any" : undefined;
1618
+ }
1619
+
1620
+ get _isPhone() {
1621
+ return isPhone();
1622
+ }
1623
+
1624
+ get _isSuggestionsFocused() {
1625
+ return !this.focused && this.Suggestions && this.Suggestions.isOpened();
1626
+ }
1627
+
1628
+ /**
1629
+ * Returns the placeholder value.
1630
+ * @protected
1631
+ */
1632
+ get _placeholder() {
1633
+ return this.placeholder;
1634
+ }
1635
+
1636
+ /**
1637
+ * This method is relevant for sap_horizon theme only
1638
+ */
1639
+ get _valueStateInputIcon() {
1640
+ const iconPerValueState = {
1641
+ Error: `<path xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" d="M10 20C4.47715 20 0 15.5228 0 10C0 4.47715 4.47715 0 10 0C15.5228 0 20 4.47715 20 10C20 15.5228 15.5228 20 10 20ZM7.70711 13.7071C7.31658 14.0976 6.68342 14.0976 6.29289 13.7071C5.90237 13.3166 5.90237 12.6834 6.29289 12.2929L8.58579 10L6.29289 7.70711C5.90237 7.31658 5.90237 6.68342 6.29289 6.29289C6.68342 5.90237 7.31658 5.90237 7.70711 6.29289L10 8.58579L12.2929 6.29289C12.6834 5.90237 13.3166 5.90237 13.7071 6.29289C14.0976 6.68342 14.0976 7.31658 13.7071 7.70711L11.4142 10L13.7071 12.2929C14.0976 12.6834 14.0976 13.3166 13.7071 13.7071C13.3166 14.0976 12.6834 14.0976 12.2929 13.7071L10 11.4142L7.70711 13.7071Z" fill="#EE3939"/>`,
1642
+ Warning: `<path xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" d="M11.8619 0.49298C11.6823 0.187541 11.3544 0 11 0C10.6456 0 10.3177 0.187541 10.1381 0.49298L0.138066 17.493C-0.0438112 17.8022 -0.0461447 18.1851 0.13195 18.4965C0.310046 18.8079 0.641283 19 1 19H21C21.3587 19 21.69 18.8079 21.868 18.4965C22.0461 18.1851 22.0438 17.8022 21.8619 17.493L11.8619 0.49298ZM11 6C11.5523 6 12 6.44772 12 7V10C12 10.5523 11.5523 11 11 11C10.4477 11 10 10.5523 10 10V7C10 6.44772 10.4477 6 11 6ZM11 16C11.8284 16 12.5 15.3284 12.5 14.5C12.5 13.6716 11.8284 13 11 13C10.1716 13 9.5 13.6716 9.5 14.5C9.5 15.3284 10.1716 16 11 16Z" fill="#F58B00"/>`,
1643
+ Success: `<path xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" d="M0 10C0 15.5228 4.47715 20 10 20C15.5228 20 20 15.5228 20 10C20 4.47715 15.5228 0 10 0C4.47715 0 0 4.47715 0 10ZM14.7071 6.29289C14.3166 5.90237 13.6834 5.90237 13.2929 6.29289L8 11.5858L6.70711 10.2929C6.31658 9.90237 5.68342 9.90237 5.29289 10.2929C4.90237 10.6834 4.90237 11.3166 5.29289 11.7071L7.29289 13.7071C7.68342 14.0976 8.31658 14.0976 8.70711 13.7071L14.7071 7.70711C15.0976 7.31658 15.0976 6.68342 14.7071 6.29289Z" fill="#36A41D"/>`,
1644
+ 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"/>`,
1645
+ };
1646
+
1647
+ if (this.valueState !== ValueState.None) {
1648
+ return `
1649
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="20" viewBox="0 0 20 20" fill="none">
1650
+ ${iconPerValueState[this.valueState]};
1651
+ </svg>
1652
+ `;
1653
+ }
1654
+
1655
+ return "";
1656
+ }
1657
+
1658
+ get _valueStatePopoverHorizontalAlign() {
1659
+ return this.effectiveDir !== "rtl" ? "Left" : "Right";
1660
+ }
1661
+
1662
+ /**
1663
+ * This method is relevant for sap_horizon theme only
1664
+ */
1665
+ get _valueStateMessageInputIcon() {
1666
+ const iconPerValueState = {
1667
+ Error: "error",
1668
+ Warning: "alert",
1669
+ Success: "sys-enter-2",
1670
+ Information: "information",
1671
+ };
1672
+
1673
+ return this.valueState !== ValueState.None ? iconPerValueState[this.valueState] : "";
1674
+ }
1675
+
1676
+ /**
1677
+ * Returns the caret position inside the native input
1678
+ * @protected
1679
+ */
1680
+ getCaretPosition(): number | null {
1681
+ return getCaretPosition(this.nativeInput!);
1682
+ }
1683
+
1684
+ /**
1685
+ * Sets the caret to a certain position inside the native input
1686
+ * @protected
1687
+ * @param pos
1688
+ */
1689
+ setCaretPosition(pos: number | null) {
1690
+ setCaretPosition(this.nativeInput!, pos);
1691
+ }
1692
+
1693
+ /**
1694
+ * Removes the fractional part of floating-point number.
1695
+ * @param {string} value the numeric value of Input of type "Number"
1696
+ */
1697
+ removeFractionalPart(value: string) {
1698
+ if (value.includes(".")) {
1699
+ return value.slice(0, value.indexOf("."));
1700
+ }
1701
+ if (value.includes(",")) {
1702
+ return value.slice(0, value.indexOf(","));
1703
+ }
1704
+
1705
+ return value;
1706
+ }
1707
+
1708
+ static get dependencies() {
1709
+ const Suggestions = getFeature<typeof InputSuggestions>("InputSuggestions");
1710
+
1711
+ return [Popover, Icon].concat(Suggestions ? Suggestions.dependencies : []);
1712
+ }
1713
+
1714
+ static async onDefine() {
1715
+ const Suggestions = getFeature<typeof InputSuggestions>("InputSuggestions");
1716
+
1717
+ [Input.i18nBundle] = await Promise.all([
1718
+ getI18nBundle("@ui5/webcomponents"),
1719
+ Suggestions ? Suggestions.init() : Promise.resolve(),
1720
+ ]);
1721
+ }
1722
+ }
1723
+
1724
+ Input.define();
1725
+
1726
+ export default Input;