@ui5/webcomponents 0.0.0-323968e1b → 0.0.0-4180fe799

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 (730) hide show
  1. package/CHANGELOG.md +717 -1
  2. package/README.md +144 -41
  3. package/csp.js +7 -0
  4. package/customI18n.js +50 -0
  5. package/dist/Assets-static.js +6 -0
  6. package/dist/Assets.js +3 -2
  7. package/dist/Avatar.js +224 -40
  8. package/dist/AvatarGroup.js +603 -0
  9. package/dist/Badge.js +48 -28
  10. package/dist/Breadcrumbs.js +563 -0
  11. package/dist/BreadcrumbsItem.js +109 -0
  12. package/dist/BusyIndicator.js +172 -19
  13. package/dist/Button.js +180 -49
  14. package/dist/Calendar.js +345 -554
  15. package/dist/CalendarDate.js +45 -0
  16. package/dist/CalendarHeader.js +133 -64
  17. package/dist/CalendarPart.js +111 -0
  18. package/dist/Card.js +47 -161
  19. package/dist/CardHeader.js +288 -0
  20. package/dist/Carousel.js +681 -0
  21. package/dist/CheckBox.js +154 -54
  22. package/dist/ColorPalette.js +493 -0
  23. package/dist/ColorPaletteItem.js +137 -0
  24. package/dist/ColorPalettePopover.js +219 -0
  25. package/dist/ColorPicker.js +524 -0
  26. package/dist/ComboBox.js +664 -107
  27. package/dist/ComboBoxFilters.js +8 -1
  28. package/dist/ComboBoxGroupItem.js +70 -0
  29. package/dist/ComboBoxItem.js +33 -30
  30. package/dist/CustomListItem.js +38 -9
  31. package/dist/DateComponentBase.js +170 -0
  32. package/dist/DatePicker.js +468 -384
  33. package/dist/DateRangePicker.js +328 -0
  34. package/dist/DateTimePicker.js +430 -0
  35. package/dist/DayPicker.js +513 -438
  36. package/dist/Dialog.js +501 -47
  37. package/dist/DurationPicker.js +312 -0
  38. package/dist/FileUploader.js +532 -0
  39. package/dist/GroupHeaderListItem.js +36 -8
  40. package/dist/Icon.js +221 -43
  41. package/dist/Input.js +796 -127
  42. package/dist/Interfaces.js +192 -0
  43. package/dist/Label.js +27 -12
  44. package/dist/Link.js +143 -35
  45. package/dist/List.js +560 -73
  46. package/dist/ListItem.js +139 -30
  47. package/dist/ListItemBase.js +53 -9
  48. package/dist/MessageStrip.js +82 -93
  49. package/dist/MonthPicker.js +181 -184
  50. package/dist/MultiComboBox.js +625 -200
  51. package/dist/MultiComboBoxItem.js +43 -0
  52. package/dist/MultiInput.js +301 -0
  53. package/dist/Option.js +48 -5
  54. package/dist/Panel.js +123 -41
  55. package/dist/Popover.js +314 -234
  56. package/dist/Popup.js +382 -287
  57. package/dist/ProgressIndicator.js +235 -0
  58. package/dist/RadioButton.js +153 -66
  59. package/dist/RadioButtonGroup.js +53 -29
  60. package/dist/RangeSlider.js +769 -0
  61. package/dist/RatingIndicator.js +291 -0
  62. package/dist/ResponsivePopover.js +117 -61
  63. package/dist/SegmentedButton.js +290 -0
  64. package/dist/SegmentedButtonItem.js +109 -0
  65. package/dist/Select.js +500 -110
  66. package/dist/Slider.js +320 -0
  67. package/dist/SliderBase.js +842 -0
  68. package/dist/StandardListItem.js +46 -24
  69. package/dist/StepInput.js +684 -0
  70. package/dist/SuggestionGroupItem.js +64 -0
  71. package/dist/SuggestionItem.js +146 -0
  72. package/dist/SuggestionListItem.js +76 -0
  73. package/dist/Switch.js +62 -48
  74. package/dist/Tab.js +184 -18
  75. package/dist/TabContainer.js +337 -235
  76. package/dist/TabSeparator.js +2 -1
  77. package/dist/Table.js +492 -39
  78. package/dist/TableCell.js +13 -15
  79. package/dist/TableColumn.js +18 -7
  80. package/dist/TableGroupRow.js +160 -0
  81. package/dist/TableRow.js +254 -31
  82. package/dist/TextArea.js +314 -38
  83. package/dist/TimePicker.js +166 -0
  84. package/dist/TimePickerBase.js +463 -0
  85. package/dist/TimeSelection.js +493 -0
  86. package/dist/Title.js +18 -10
  87. package/dist/Toast.js +63 -37
  88. package/dist/ToggleButton.js +21 -13
  89. package/dist/Token.js +87 -49
  90. package/dist/Tokenizer.js +250 -65
  91. package/dist/Tree.js +443 -0
  92. package/dist/TreeItem.js +168 -0
  93. package/dist/TreeListItem.js +332 -0
  94. package/dist/WheelSlider.js +435 -0
  95. package/dist/YearPicker.js +201 -258
  96. package/dist/api.json +6877 -0
  97. package/dist/features/ColorPaletteMoreColors.js +42 -0
  98. package/dist/features/InputElementsFormSupport.js +35 -1
  99. package/dist/features/InputSuggestions.js +294 -52
  100. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  101. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  102. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  103. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  104. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -0
  105. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  106. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  107. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  108. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  109. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -0
  110. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -0
  111. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -0
  112. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -0
  113. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  114. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -0
  115. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  116. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  117. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  118. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -0
  119. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  120. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  121. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  122. package/dist/generated/assets/i18n/messagebundle_in.json +1 -0
  123. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  124. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  125. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  126. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  127. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  128. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  129. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  130. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  131. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  132. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  133. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  134. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  135. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -0
  136. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  137. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  138. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  139. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  140. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  141. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  142. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  143. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  144. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  145. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  146. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  147. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  148. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  149. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  150. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -0
  151. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  152. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  153. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -0
  154. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -0
  155. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -0
  156. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -0
  157. package/dist/generated/i18n/i18n-defaults.js +2 -2
  158. package/dist/generated/json-imports/Themes-static.js +35 -0
  159. package/dist/generated/json-imports/Themes.js +23 -13
  160. package/dist/generated/json-imports/i18n-static.js +162 -0
  161. package/dist/generated/json-imports/i18n.js +113 -89
  162. package/dist/generated/templates/AvatarGroupTemplate.lit.js +9 -0
  163. package/dist/generated/templates/AvatarTemplate.lit.js +9 -9
  164. package/dist/generated/templates/BadgeTemplate.lit.js +5 -6
  165. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +8 -0
  166. package/dist/generated/templates/BreadcrumbsTemplate.lit.js +9 -0
  167. package/dist/generated/templates/BusyIndicatorTemplate.lit.js +7 -5
  168. package/dist/generated/templates/ButtonTemplate.lit.js +6 -6
  169. package/dist/generated/templates/CalendarHeaderTemplate.lit.js +6 -4
  170. package/dist/generated/templates/CalendarTemplate.lit.js +4 -4
  171. package/dist/generated/templates/CardHeaderTemplate.lit.js +12 -0
  172. package/dist/generated/templates/CardTemplate.lit.js +5 -8
  173. package/dist/generated/templates/CarouselTemplate.lit.js +16 -0
  174. package/dist/generated/templates/CheckBoxTemplate.lit.js +7 -7
  175. package/dist/generated/templates/ColorPaletteDialogTemplate.lit.js +7 -0
  176. package/dist/generated/templates/ColorPaletteItemTemplate.lit.js +7 -0
  177. package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +8 -0
  178. package/dist/generated/templates/ColorPaletteTemplate.lit.js +12 -0
  179. package/dist/generated/templates/ColorPickerTemplate.lit.js +7 -0
  180. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +20 -5
  181. package/dist/generated/templates/ComboBoxTemplate.lit.js +8 -5
  182. package/dist/generated/templates/CustomListItemTemplate.lit.js +13 -12
  183. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +7 -4
  184. package/dist/generated/templates/DatePickerTemplate.lit.js +6 -5
  185. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +12 -0
  186. package/dist/generated/templates/DayPickerTemplate.lit.js +13 -11
  187. package/dist/generated/templates/DialogTemplate.lit.js +9 -8
  188. package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +10 -0
  189. package/dist/generated/templates/FileUploaderTemplate.lit.js +10 -0
  190. package/dist/generated/templates/GroupHeaderListItemTemplate.lit.js +4 -4
  191. package/dist/generated/templates/IconTemplate.lit.js +6 -6
  192. package/dist/generated/templates/InputPopoverTemplate.lit.js +24 -6
  193. package/dist/generated/templates/InputTemplate.lit.js +9 -8
  194. package/dist/generated/templates/LabelTemplate.lit.js +4 -4
  195. package/dist/generated/templates/LinkTemplate.lit.js +5 -5
  196. package/dist/generated/templates/ListItemTemplate.lit.js +13 -12
  197. package/dist/generated/templates/ListTemplate.lit.js +12 -8
  198. package/dist/generated/templates/MessageStripTemplate.lit.js +6 -22
  199. package/dist/generated/templates/MonthPickerTemplate.lit.js +6 -6
  200. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +23 -7
  201. package/dist/generated/templates/MultiComboBoxTemplate.lit.js +10 -8
  202. package/dist/generated/templates/MultiInputTemplate.lit.js +16 -0
  203. package/dist/generated/templates/PanelTemplate.lit.js +9 -6
  204. package/dist/generated/templates/PopoverTemplate.lit.js +9 -9
  205. package/dist/generated/templates/PopupBlockLayerTemplate.lit.js +7 -0
  206. package/dist/generated/templates/PopupTemplate.lit.js +4 -4
  207. package/dist/generated/templates/ProgressIndicatorTemplate.lit.js +17 -0
  208. package/dist/generated/templates/RadioButtonTemplate.lit.js +7 -7
  209. package/dist/generated/templates/RangeSliderTemplate.lit.js +13 -0
  210. package/dist/generated/templates/RatingIndicatorTemplate.lit.js +14 -0
  211. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +16 -11
  212. package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +8 -0
  213. package/dist/generated/templates/SegmentedButtonTemplate.lit.js +7 -0
  214. package/dist/generated/templates/SelectPopoverTemplate.lit.js +20 -6
  215. package/dist/generated/templates/SelectTemplate.lit.js +6 -4
  216. package/dist/generated/templates/SliderBaseTemplate.lit.js +11 -0
  217. package/dist/generated/templates/SliderTemplate.lit.js +12 -0
  218. package/dist/generated/templates/StandardListItemTemplate.lit.js +21 -18
  219. package/dist/generated/templates/StepInputTemplate.lit.js +10 -0
  220. package/dist/generated/templates/SuggestionListItemTemplate.lit.js +27 -0
  221. package/dist/generated/templates/SwitchTemplate.lit.js +8 -6
  222. package/dist/generated/templates/TabContainerPopoverTemplate.lit.js +6 -8
  223. package/dist/generated/templates/TabContainerTemplate.lit.js +16 -18
  224. package/dist/generated/templates/TabInOverflowTemplate.lit.js +9 -0
  225. package/dist/generated/templates/TabInStripTemplate.lit.js +11 -0
  226. package/dist/generated/templates/TabSeparatorTemplate.lit.js +4 -4
  227. package/dist/generated/templates/TabTemplate.lit.js +4 -4
  228. package/dist/generated/templates/TableCellTemplate.lit.js +4 -4
  229. package/dist/generated/templates/TableColumnTemplate.lit.js +4 -4
  230. package/dist/generated/templates/TableGroupRowTemplate.lit.js +7 -0
  231. package/dist/generated/templates/TableRowTemplate.lit.js +12 -6
  232. package/dist/generated/templates/TableTemplate.lit.js +13 -8
  233. package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +11 -0
  234. package/dist/generated/templates/TextAreaTemplate.lit.js +8 -8
  235. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +7 -0
  236. package/dist/generated/templates/TimePickerTemplate.lit.js +9 -0
  237. package/dist/generated/templates/TimeSelectionTemplate.lit.js +11 -0
  238. package/dist/generated/templates/TitleTemplate.lit.js +10 -10
  239. package/dist/generated/templates/ToastTemplate.lit.js +5 -4
  240. package/dist/generated/templates/ToggleButtonTemplate.lit.js +6 -6
  241. package/dist/generated/templates/TokenTemplate.lit.js +7 -5
  242. package/dist/generated/templates/TokenizerPopoverTemplate.lit.js +12 -0
  243. package/dist/generated/templates/TokenizerTemplate.lit.js +6 -6
  244. package/dist/generated/templates/TreeListItemTemplate.lit.js +21 -0
  245. package/dist/generated/templates/TreeTemplate.lit.js +8 -0
  246. package/dist/generated/templates/WheelSliderTemplate.lit.js +10 -0
  247. package/dist/generated/templates/YearPickerTemplate.lit.js +6 -6
  248. package/dist/generated/themes/Avatar.css.js +6 -7
  249. package/dist/generated/themes/AvatarGroup.css.js +8 -0
  250. package/dist/generated/themes/Badge.css.js +6 -7
  251. package/dist/generated/themes/Breadcrumbs.css.js +8 -0
  252. package/dist/generated/themes/BreadcrumbsPopover.css.js +8 -0
  253. package/dist/generated/themes/BrowserScrollbar.css.js +8 -0
  254. package/dist/generated/themes/BusyIndicator.css.js +6 -7
  255. package/dist/generated/themes/Button.css.js +6 -7
  256. package/dist/generated/themes/Button.ie11.css.js +8 -0
  257. package/dist/generated/themes/Calendar.css.js +6 -7
  258. package/dist/generated/themes/CalendarHeader.css.js +6 -7
  259. package/dist/generated/themes/Card.css.js +6 -7
  260. package/dist/generated/themes/CardHeader.css.js +8 -0
  261. package/dist/generated/themes/Carousel.css.js +8 -0
  262. package/dist/generated/themes/CheckBox.css.js +6 -7
  263. package/dist/generated/themes/ColorPalette.css.js +8 -0
  264. package/dist/generated/themes/ColorPaletteItem.css.js +8 -0
  265. package/dist/generated/themes/ColorPalettePopover.css.js +8 -0
  266. package/dist/generated/themes/ColorPaletteStaticArea.css.js +8 -0
  267. package/dist/generated/themes/ColorPicker.css.js +8 -0
  268. package/dist/generated/themes/ComboBox.css.js +6 -7
  269. package/dist/generated/themes/ComboBoxPopover.css.js +6 -7
  270. package/dist/generated/themes/CustomListItem.css.js +6 -7
  271. package/dist/generated/themes/DatePicker.css.js +6 -7
  272. package/dist/generated/themes/DatePickerPopover.css.js +6 -7
  273. package/dist/generated/themes/DateRangePicker.css.js +8 -0
  274. package/dist/generated/themes/DateTimePicker.css.js +8 -0
  275. package/dist/generated/themes/DateTimePickerPopover.css.js +8 -0
  276. package/dist/generated/themes/DayPicker.css.js +6 -7
  277. package/dist/generated/themes/Dialog.css.js +6 -7
  278. package/dist/generated/themes/FileUploader.css.js +8 -0
  279. package/dist/generated/themes/GroupHeaderListItem.css.js +6 -7
  280. package/dist/generated/themes/GrowingButton.css.js +8 -0
  281. package/dist/generated/themes/Icon.css.js +6 -7
  282. package/dist/generated/themes/Input.css.js +6 -7
  283. package/dist/generated/themes/InputIcon.css.js +6 -7
  284. package/dist/generated/themes/InvisibleTextStyles.css.js +6 -7
  285. package/dist/generated/themes/Label.css.js +6 -7
  286. package/dist/generated/themes/Link.css.js +6 -7
  287. package/dist/generated/themes/List.css.js +6 -7
  288. package/dist/generated/themes/ListItem.css.js +6 -7
  289. package/dist/generated/themes/ListItemBase.css.js +6 -7
  290. package/dist/generated/themes/MessageStrip.css.js +6 -7
  291. package/dist/generated/themes/MonthPicker.css.js +6 -7
  292. package/dist/generated/themes/MultiComboBox.css.js +6 -7
  293. package/dist/generated/themes/MultiInput.css.js +8 -0
  294. package/dist/generated/themes/Panel.css.js +6 -7
  295. package/dist/generated/themes/Popover.css.js +6 -7
  296. package/dist/generated/themes/Popup.css.js +6 -7
  297. package/dist/generated/themes/PopupGlobal.css.js +8 -0
  298. package/dist/generated/themes/PopupStaticAreaStyles.css.js +8 -0
  299. package/dist/generated/themes/PopupsCommon.css.js +8 -0
  300. package/dist/generated/themes/ProgressIndicator.css.js +8 -0
  301. package/dist/generated/themes/RadioButton.css.js +6 -7
  302. package/dist/generated/themes/RatingIndicator.css.js +8 -0
  303. package/dist/generated/themes/ResponsivePopover.css.js +6 -7
  304. package/dist/generated/themes/ResponsivePopoverCommon.css.js +6 -7
  305. package/dist/generated/themes/SegmentedButton.css.js +8 -0
  306. package/dist/generated/themes/Select.css.js +6 -7
  307. package/dist/generated/themes/SelectPopover.css.js +8 -0
  308. package/dist/generated/themes/SliderBase.css.js +8 -0
  309. package/dist/generated/themes/StepInput.css.js +8 -0
  310. package/dist/generated/themes/Suggestions.css.js +8 -0
  311. package/dist/generated/themes/Switch.css.js +6 -7
  312. package/dist/generated/themes/Tab.css.js +6 -7
  313. package/dist/generated/themes/TabContainer.css.js +6 -7
  314. package/dist/generated/themes/TabInOverflow.css.js +8 -0
  315. package/dist/generated/themes/TabInStrip.css.js +8 -0
  316. package/dist/generated/themes/Table.css.js +6 -7
  317. package/dist/generated/themes/TableCell.css.js +6 -7
  318. package/dist/generated/themes/TableColumn.css.js +6 -7
  319. package/dist/generated/themes/TableGroupRow.css.js +8 -0
  320. package/dist/generated/themes/TableRow.css.js +6 -7
  321. package/dist/generated/themes/TapHighlightColor.css.js +8 -0
  322. package/dist/generated/themes/TextArea.css.js +6 -7
  323. package/dist/generated/themes/TimePicker.css.js +8 -0
  324. package/dist/generated/themes/TimePickerPopover.css.js +8 -0
  325. package/dist/generated/themes/TimeSelection.css.js +8 -0
  326. package/dist/generated/themes/Title.css.js +6 -7
  327. package/dist/generated/themes/Toast.css.js +6 -7
  328. package/dist/generated/themes/ToggleButton.css.js +6 -7
  329. package/dist/generated/themes/ToggleButton.ie11.css.js +8 -0
  330. package/dist/generated/themes/Token.css.js +6 -7
  331. package/dist/generated/themes/Tokenizer.css.js +6 -7
  332. package/dist/generated/themes/Tree.css.js +8 -0
  333. package/dist/generated/themes/TreeListItem.css.js +8 -0
  334. package/dist/generated/themes/ValueStateMessage.css.js +8 -0
  335. package/dist/generated/themes/WheelSlider.css.js +8 -0
  336. package/dist/generated/themes/YearPicker.css.js +6 -7
  337. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  338. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  339. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -0
  340. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  341. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  342. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -0
  343. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -0
  344. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -0
  345. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -0
  346. package/dist/i18n/messagebundle.properties +335 -0
  347. package/dist/i18n/messagebundle_ar.properties +224 -0
  348. package/dist/i18n/messagebundle_bg.properties +224 -0
  349. package/dist/i18n/messagebundle_ca.properties +224 -0
  350. package/dist/i18n/messagebundle_cs.properties +224 -0
  351. package/dist/i18n/messagebundle_cy.properties +224 -0
  352. package/dist/i18n/messagebundle_da.properties +224 -0
  353. package/dist/i18n/messagebundle_de.properties +224 -0
  354. package/dist/i18n/messagebundle_el.properties +224 -0
  355. package/dist/i18n/messagebundle_en.properties +224 -0
  356. package/dist/i18n/messagebundle_en_GB.properties +224 -0
  357. package/dist/i18n/messagebundle_en_US_sappsd.properties +224 -0
  358. package/dist/i18n/messagebundle_en_US_saprigi.properties +224 -0
  359. package/dist/i18n/messagebundle_en_US_saptrc.properties +224 -0
  360. package/dist/i18n/messagebundle_es.properties +224 -0
  361. package/dist/i18n/messagebundle_es_MX.properties +224 -0
  362. package/dist/i18n/messagebundle_et.properties +224 -0
  363. package/dist/i18n/messagebundle_fi.properties +224 -0
  364. package/dist/i18n/messagebundle_fr.properties +224 -0
  365. package/dist/i18n/messagebundle_fr_CA.properties +224 -0
  366. package/dist/i18n/messagebundle_hi.properties +224 -0
  367. package/dist/i18n/messagebundle_hr.properties +224 -0
  368. package/dist/i18n/messagebundle_hu.properties +224 -0
  369. package/dist/i18n/messagebundle_id.properties +224 -0
  370. package/dist/i18n/messagebundle_in.properties +172 -0
  371. package/dist/i18n/messagebundle_it.properties +224 -0
  372. package/dist/i18n/messagebundle_iw.properties +224 -0
  373. package/dist/i18n/messagebundle_ja.properties +224 -0
  374. package/dist/i18n/messagebundle_kk.properties +224 -0
  375. package/dist/i18n/messagebundle_ko.properties +224 -0
  376. package/dist/i18n/messagebundle_lt.properties +224 -0
  377. package/dist/i18n/messagebundle_lv.properties +224 -0
  378. package/dist/i18n/messagebundle_ms.properties +224 -0
  379. package/dist/i18n/messagebundle_nl.properties +224 -0
  380. package/dist/i18n/messagebundle_no.properties +224 -0
  381. package/dist/i18n/messagebundle_pl.properties +224 -0
  382. package/dist/i18n/messagebundle_pt.properties +224 -0
  383. package/dist/i18n/messagebundle_pt_PT.properties +224 -0
  384. package/dist/i18n/messagebundle_ro.properties +224 -0
  385. package/dist/i18n/messagebundle_ru.properties +224 -0
  386. package/dist/i18n/messagebundle_sh.properties +224 -0
  387. package/dist/i18n/messagebundle_sk.properties +224 -0
  388. package/dist/i18n/messagebundle_sl.properties +224 -0
  389. package/dist/i18n/messagebundle_sv.properties +224 -0
  390. package/dist/i18n/messagebundle_th.properties +224 -0
  391. package/dist/i18n/messagebundle_tr.properties +224 -0
  392. package/dist/i18n/messagebundle_uk.properties +224 -0
  393. package/dist/i18n/messagebundle_vi.properties +224 -0
  394. package/dist/i18n/messagebundle_zh_CN.properties +224 -0
  395. package/dist/i18n/messagebundle_zh_TW.properties +224 -0
  396. package/dist/popup-utils/OpenedPopupsRegistry.js +18 -13
  397. package/dist/popup-utils/PopoverRegistry.js +55 -21
  398. package/dist/timepicker-utils/TimeSlider.js +103 -0
  399. package/dist/types/{AvatarBackgroundColor.js → AvatarColorScheme.js} +9 -9
  400. package/dist/types/AvatarGroupType.js +43 -0
  401. package/dist/types/AvatarShape.js +1 -1
  402. package/dist/types/AvatarSize.js +1 -1
  403. package/dist/types/BreadcrumbsDesign.js +42 -0
  404. package/dist/types/BreadcrumbsSeparatorStyle.js +69 -0
  405. package/dist/types/BusyIndicatorSize.js +1 -1
  406. package/dist/types/ButtonDesign.js +8 -1
  407. package/dist/types/CalendarSelectionMode.js +47 -0
  408. package/dist/types/CarouselArrowsPlacement.js +40 -0
  409. package/dist/types/GrowingMode.js +48 -0
  410. package/dist/types/InputType.js +7 -7
  411. package/dist/types/LinkDesign.js +1 -1
  412. package/dist/types/ListGrowingMode.js +15 -0
  413. package/dist/types/ListItemType.js +8 -1
  414. package/dist/types/ListMode.js +9 -1
  415. package/dist/types/ListSeparators.js +1 -1
  416. package/dist/types/{MessageStripType.js → MessageStripDesign.js} +7 -7
  417. package/dist/types/PanelAccessibleRole.js +1 -1
  418. package/dist/types/PopoverHorizontalAlign.js +1 -1
  419. package/dist/types/PopoverPlacementType.js +2 -2
  420. package/dist/types/PopoverVerticalAlign.js +1 -2
  421. package/dist/types/Priority.js +55 -0
  422. package/dist/types/SemanticColor.js +1 -1
  423. package/dist/types/SwitchDesign.js +40 -0
  424. package/dist/types/TabContainerTabsPlacement.js +40 -0
  425. package/dist/types/TabLayout.js +40 -0
  426. package/dist/types/TableGrowingMode.js +15 -0
  427. package/dist/types/TableMode.js +47 -0
  428. package/dist/types/TableRowType.js +40 -0
  429. package/dist/types/TitleLevel.js +1 -1
  430. package/dist/types/ToastPlacement.js +1 -2
  431. package/dist/types/WrappingType.js +41 -0
  432. package/dist/webcomponentsjs/CHANGELOG.md +61 -0
  433. package/dist/webcomponentsjs/README.md +64 -47
  434. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +38 -38
  435. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +1 -1
  436. package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js +60 -0
  437. package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js.map +1 -0
  438. package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js +95 -0
  439. package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js.map +1 -0
  440. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +292 -229
  441. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +1 -1
  442. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +190 -170
  443. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +1 -1
  444. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +151 -132
  445. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +1 -1
  446. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +2 -2
  447. package/dist/webcomponentsjs/webcomponents-bundle.js +302 -230
  448. package/dist/webcomponentsjs/webcomponents-bundle.js.map +1 -1
  449. package/dist/webcomponentsjs/webcomponents-loader.js +49 -28
  450. package/package-scripts.js +1 -0
  451. package/package.json +23 -8
  452. package/src/Assets-static.js +6 -0
  453. package/src/Assets.js +7 -0
  454. package/src/Avatar.hbs +20 -0
  455. package/src/Avatar.js +392 -0
  456. package/src/AvatarGroup.hbs +30 -0
  457. package/src/AvatarGroup.js +603 -0
  458. package/src/Badge.hbs +14 -0
  459. package/src/Badge.js +165 -0
  460. package/src/Breadcrumbs.hbs +42 -0
  461. package/src/Breadcrumbs.js +563 -0
  462. package/src/BreadcrumbsItem.js +109 -0
  463. package/src/BreadcrumbsPopover.hbs +28 -0
  464. package/src/BusyIndicator.hbs +32 -0
  465. package/src/BusyIndicator.js +269 -0
  466. package/src/Button.hbs +45 -0
  467. package/src/Button.js +463 -0
  468. package/src/Calendar.hbs +69 -0
  469. package/src/Calendar.js +489 -0
  470. package/src/CalendarDate.js +45 -0
  471. package/src/CalendarHeader.hbs +54 -0
  472. package/src/CalendarHeader.js +209 -0
  473. package/src/CalendarPart.js +111 -0
  474. package/src/Card.hbs +14 -0
  475. package/src/Card.js +160 -0
  476. package/src/CardHeader.hbs +35 -0
  477. package/src/CardHeader.js +288 -0
  478. package/src/Carousel.hbs +85 -0
  479. package/src/Carousel.js +681 -0
  480. package/src/CheckBox.hbs +44 -0
  481. package/src/CheckBox.js +424 -0
  482. package/src/ColorPalette.hbs +52 -0
  483. package/src/ColorPalette.js +493 -0
  484. package/src/ColorPaletteDialog.hbs +18 -0
  485. package/src/ColorPaletteItem.hbs +11 -0
  486. package/src/ColorPaletteItem.js +137 -0
  487. package/src/ColorPalettePopover.hbs +29 -0
  488. package/src/ColorPalettePopover.js +219 -0
  489. package/src/ColorPicker.hbs +98 -0
  490. package/src/ColorPicker.js +524 -0
  491. package/src/ComboBox.hbs +49 -0
  492. package/src/ComboBox.js +1041 -0
  493. package/src/ComboBoxFilters.js +40 -0
  494. package/src/ComboBoxGroupItem.js +70 -0
  495. package/src/ComboBoxItem.js +49 -0
  496. package/src/ComboBoxPopover.hbs +125 -0
  497. package/src/CustomListItem.hbs +5 -0
  498. package/src/CustomListItem.js +99 -0
  499. package/src/DateComponentBase.js +170 -0
  500. package/src/DatePicker.hbs +44 -0
  501. package/src/DatePicker.js +823 -0
  502. package/src/DatePickerPopover.hbs +63 -0
  503. package/src/DateRangePicker.js +328 -0
  504. package/src/DateTimePicker.js +430 -0
  505. package/src/DateTimePickerPopover.hbs +74 -0
  506. package/src/DayPicker.hbs +66 -0
  507. package/src/DayPicker.js +754 -0
  508. package/src/Dialog.hbs +35 -0
  509. package/src/Dialog.js +601 -0
  510. package/src/DurationPicker.js +312 -0
  511. package/src/FileUploader.hbs +40 -0
  512. package/src/FileUploader.js +532 -0
  513. package/src/FileUploaderPopover.hbs +25 -0
  514. package/src/GroupHeaderListItem.hbs +15 -0
  515. package/src/GroupHeaderListItem.js +94 -0
  516. package/src/Icon.hbs +25 -0
  517. package/src/Icon.js +373 -0
  518. package/src/Input.hbs +78 -0
  519. package/src/Input.js +1381 -0
  520. package/src/InputPopover.hbs +118 -0
  521. package/src/Interfaces.js +192 -0
  522. package/src/Label.hbs +13 -0
  523. package/src/Label.js +152 -0
  524. package/src/Link.hbs +20 -0
  525. package/src/Link.js +349 -0
  526. package/src/List.hbs +89 -0
  527. package/src/List.js +1056 -0
  528. package/src/ListItem.hbs +102 -0
  529. package/src/ListItem.js +371 -0
  530. package/src/ListItemBase.js +179 -0
  531. package/src/MessageStrip.hbs +34 -0
  532. package/src/MessageStrip.js +227 -0
  533. package/src/MonthPicker.hbs +29 -0
  534. package/src/MonthPicker.js +299 -0
  535. package/src/MultiComboBox.hbs +78 -0
  536. package/src/MultiComboBox.js +1091 -0
  537. package/src/MultiComboBoxItem.js +43 -0
  538. package/src/MultiComboBoxPopover.hbs +133 -0
  539. package/src/MultiInput.hbs +41 -0
  540. package/src/MultiInput.js +301 -0
  541. package/src/Option.js +115 -0
  542. package/src/Panel.hbs +63 -0
  543. package/src/Panel.js +462 -0
  544. package/src/Popover.hbs +25 -0
  545. package/src/Popover.js +786 -0
  546. package/src/Popup.hbs +34 -0
  547. package/src/Popup.js +567 -0
  548. package/src/PopupBlockLayer.hbs +7 -0
  549. package/src/ProgressIndicator.hbs +35 -0
  550. package/src/ProgressIndicator.js +235 -0
  551. package/src/RadioButton.hbs +33 -0
  552. package/src/RadioButton.js +494 -0
  553. package/src/RadioButtonGroup.js +205 -0
  554. package/src/RangeSlider.hbs +70 -0
  555. package/src/RangeSlider.js +769 -0
  556. package/src/RatingIndicator.hbs +33 -0
  557. package/src/RatingIndicator.js +291 -0
  558. package/src/ResponsivePopover.hbs +39 -0
  559. package/src/ResponsivePopover.js +206 -0
  560. package/src/SegmentedButton.hbs +17 -0
  561. package/src/SegmentedButton.js +290 -0
  562. package/src/SegmentedButtonItem.hbs +42 -0
  563. package/src/SegmentedButtonItem.js +109 -0
  564. package/src/Select.hbs +45 -0
  565. package/src/Select.js +834 -0
  566. package/src/SelectPopover.hbs +89 -0
  567. package/src/Slider.hbs +42 -0
  568. package/src/Slider.js +320 -0
  569. package/src/SliderBase.hbs +38 -0
  570. package/src/SliderBase.js +842 -0
  571. package/src/StandardListItem.hbs +44 -0
  572. package/src/StandardListItem.js +191 -0
  573. package/src/StepInput.hbs +80 -0
  574. package/src/StepInput.js +684 -0
  575. package/src/SuggestionGroupItem.js +64 -0
  576. package/src/SuggestionItem.js +146 -0
  577. package/src/SuggestionListItem.hbs +33 -0
  578. package/src/SuggestionListItem.js +76 -0
  579. package/src/Switch.hbs +50 -0
  580. package/src/Switch.js +262 -0
  581. package/src/Tab.hbs +3 -0
  582. package/src/Tab.js +334 -0
  583. package/src/TabContainer.hbs +93 -0
  584. package/src/TabContainer.js +679 -0
  585. package/src/TabContainerPopover.hbs +24 -0
  586. package/src/TabInOverflow.hbs +22 -0
  587. package/src/TabInStrip.hbs +43 -0
  588. package/src/TabSeparator.hbs +1 -0
  589. package/src/TabSeparator.js +44 -0
  590. package/src/Table.hbs +99 -0
  591. package/src/Table.js +761 -0
  592. package/src/TableCell.hbs +7 -0
  593. package/src/TableCell.js +88 -0
  594. package/src/TableColumn.hbs +8 -0
  595. package/src/TableColumn.js +136 -0
  596. package/src/TableGroupRow.hbs +12 -0
  597. package/src/TableGroupRow.js +160 -0
  598. package/src/TableRow.hbs +61 -0
  599. package/src/TableRow.js +388 -0
  600. package/src/TextArea.hbs +50 -0
  601. package/src/TextArea.js +691 -0
  602. package/src/TextAreaPopover.hbs +28 -0
  603. package/src/TimePicker.hbs +35 -0
  604. package/src/TimePicker.js +166 -0
  605. package/src/TimePickerBase.js +463 -0
  606. package/src/TimePickerPopover.hbs +34 -0
  607. package/src/TimeSelection.hbs +60 -0
  608. package/src/TimeSelection.js +493 -0
  609. package/src/Title.hbs +47 -0
  610. package/src/Title.js +132 -0
  611. package/src/Toast.hbs +13 -0
  612. package/src/Toast.js +243 -0
  613. package/src/ToggleButton.hbs +5 -0
  614. package/src/ToggleButton.js +84 -0
  615. package/src/Token.hbs +30 -0
  616. package/src/Token.js +219 -0
  617. package/src/Tokenizer.hbs +27 -0
  618. package/src/Tokenizer.js +414 -0
  619. package/src/TokenizerPopover.hbs +50 -0
  620. package/src/Tree.hbs +42 -0
  621. package/src/Tree.js +443 -0
  622. package/src/TreeItem.js +168 -0
  623. package/src/TreeListItem.hbs +48 -0
  624. package/src/TreeListItem.js +332 -0
  625. package/src/WheelSlider.hbs +48 -0
  626. package/src/WheelSlider.js +435 -0
  627. package/src/YearPicker.hbs +27 -0
  628. package/src/YearPicker.js +324 -0
  629. package/src/features/ColorPaletteMoreColors.js +42 -0
  630. package/src/features/InputElementsFormSupport.js +88 -0
  631. package/src/features/InputSuggestions.js +530 -0
  632. package/src/i18n/messagebundle.properties +335 -0
  633. package/src/i18n/messagebundle_ar.properties +224 -0
  634. package/src/i18n/messagebundle_bg.properties +224 -0
  635. package/src/i18n/messagebundle_ca.properties +224 -0
  636. package/src/i18n/messagebundle_cs.properties +224 -0
  637. package/src/i18n/messagebundle_cy.properties +224 -0
  638. package/src/i18n/messagebundle_da.properties +224 -0
  639. package/src/i18n/messagebundle_de.properties +224 -0
  640. package/src/i18n/messagebundle_el.properties +224 -0
  641. package/src/i18n/messagebundle_en.properties +224 -0
  642. package/src/i18n/messagebundle_en_GB.properties +224 -0
  643. package/src/i18n/messagebundle_en_US_sappsd.properties +224 -0
  644. package/src/i18n/messagebundle_en_US_saprigi.properties +224 -0
  645. package/src/i18n/messagebundle_en_US_saptrc.properties +224 -0
  646. package/src/i18n/messagebundle_es.properties +224 -0
  647. package/src/i18n/messagebundle_es_MX.properties +224 -0
  648. package/src/i18n/messagebundle_et.properties +224 -0
  649. package/src/i18n/messagebundle_fi.properties +224 -0
  650. package/src/i18n/messagebundle_fr.properties +224 -0
  651. package/src/i18n/messagebundle_fr_CA.properties +224 -0
  652. package/src/i18n/messagebundle_hi.properties +224 -0
  653. package/src/i18n/messagebundle_hr.properties +224 -0
  654. package/src/i18n/messagebundle_hu.properties +224 -0
  655. package/src/i18n/messagebundle_id.properties +224 -0
  656. package/src/i18n/messagebundle_in.properties +172 -0
  657. package/src/i18n/messagebundle_it.properties +224 -0
  658. package/src/i18n/messagebundle_iw.properties +224 -0
  659. package/src/i18n/messagebundle_ja.properties +224 -0
  660. package/src/i18n/messagebundle_kk.properties +224 -0
  661. package/src/i18n/messagebundle_ko.properties +224 -0
  662. package/src/i18n/messagebundle_lt.properties +224 -0
  663. package/src/i18n/messagebundle_lv.properties +224 -0
  664. package/src/i18n/messagebundle_ms.properties +224 -0
  665. package/src/i18n/messagebundle_nl.properties +224 -0
  666. package/src/i18n/messagebundle_no.properties +224 -0
  667. package/src/i18n/messagebundle_pl.properties +224 -0
  668. package/src/i18n/messagebundle_pt.properties +224 -0
  669. package/src/i18n/messagebundle_pt_PT.properties +224 -0
  670. package/src/i18n/messagebundle_ro.properties +224 -0
  671. package/src/i18n/messagebundle_ru.properties +224 -0
  672. package/src/i18n/messagebundle_sh.properties +224 -0
  673. package/src/i18n/messagebundle_sk.properties +224 -0
  674. package/src/i18n/messagebundle_sl.properties +224 -0
  675. package/src/i18n/messagebundle_sv.properties +224 -0
  676. package/src/i18n/messagebundle_th.properties +224 -0
  677. package/src/i18n/messagebundle_tr.properties +224 -0
  678. package/src/i18n/messagebundle_uk.properties +224 -0
  679. package/src/i18n/messagebundle_vi.properties +224 -0
  680. package/src/i18n/messagebundle_zh_CN.properties +224 -0
  681. package/src/i18n/messagebundle_zh_TW.properties +224 -0
  682. package/src/popup-utils/OpenedPopupsRegistry.js +50 -0
  683. package/src/popup-utils/PopoverRegistry.js +145 -0
  684. package/src/timepicker-utils/TimeSlider.js +103 -0
  685. package/src/types/AvatarColorScheme.js +104 -0
  686. package/src/types/AvatarGroupType.js +43 -0
  687. package/src/types/AvatarShape.js +41 -0
  688. package/src/types/AvatarSize.js +67 -0
  689. package/src/types/BreadcrumbsDesign.js +42 -0
  690. package/src/types/BreadcrumbsSeparatorStyle.js +69 -0
  691. package/src/types/BusyIndicatorSize.js +47 -0
  692. package/src/types/ButtonDesign.js +68 -0
  693. package/src/types/CalendarSelectionMode.js +47 -0
  694. package/src/types/CarouselArrowsPlacement.js +40 -0
  695. package/src/types/GrowingMode.js +48 -0
  696. package/src/types/InputType.js +68 -0
  697. package/src/types/LinkDesign.js +47 -0
  698. package/src/types/ListGrowingMode.js +15 -0
  699. package/src/types/ListItemType.js +47 -0
  700. package/src/types/ListMode.js +77 -0
  701. package/src/types/ListSeparators.js +46 -0
  702. package/src/types/MessageStripDesign.js +54 -0
  703. package/src/types/PanelAccessibleRole.js +48 -0
  704. package/src/types/PopoverHorizontalAlign.js +54 -0
  705. package/src/types/PopoverPlacementType.js +54 -0
  706. package/src/types/PopoverVerticalAlign.js +54 -0
  707. package/src/types/Priority.js +55 -0
  708. package/src/types/SemanticColor.js +61 -0
  709. package/src/types/SwitchDesign.js +40 -0
  710. package/src/types/TabContainerTabsPlacement.js +40 -0
  711. package/src/types/TabLayout.js +40 -0
  712. package/src/types/TableGrowingMode.js +15 -0
  713. package/src/types/TableMode.js +47 -0
  714. package/src/types/TableRowType.js +40 -0
  715. package/src/types/TitleLevel.js +68 -0
  716. package/src/types/ToastPlacement.js +91 -0
  717. package/src/types/WrappingType.js +41 -0
  718. package/dist/Timeline.js +0 -81
  719. package/dist/TimelineItem.js +0 -163
  720. package/dist/generated/templates/ComboBoxItemTemplate.lit.js +0 -7
  721. package/dist/generated/templates/TimelineItemTemplate.lit.js +0 -12
  722. package/dist/generated/templates/TimelineTemplate.lit.js +0 -8
  723. package/dist/generated/themes/ComboBoxItem.css.js +0 -9
  724. package/dist/generated/themes/TabContainerPopup.css.js +0 -9
  725. package/dist/generated/themes/Timeline.css.js +0 -9
  726. package/dist/generated/themes/TimelineItem.css.js +0 -9
  727. package/dist/popup-utils/PopupUtils.js +0 -42
  728. package/dist/types/AvatarFitType.js +0 -40
  729. package/dist/webcomponentsjs/package.json +0 -46
  730. package/index.js +0 -2
@@ -0,0 +1,1041 @@
1
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
3
+ import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
4
+ import { isPhone, isSafari } from "@ui5/webcomponents-base/dist/Device.js";
5
+ import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
6
+ import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
7
+ import announce from "@ui5/webcomponents-base/dist/util/InvisibleMessage.js";
8
+ import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
9
+ import "@ui5/webcomponents-icons/dist/decline.js";
10
+ import "@ui5/webcomponents-icons/dist/not-editable.js";
11
+ import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
12
+ import {
13
+ isBackSpace,
14
+ isDelete,
15
+ isShow,
16
+ isUp,
17
+ isDown,
18
+ isEnter,
19
+ isEscape,
20
+ isTabNext,
21
+ isTabPrevious,
22
+ } from "@ui5/webcomponents-base/dist/Keys.js";
23
+ import * as Filters from "./ComboBoxFilters.js";
24
+
25
+ import {
26
+ VALUE_STATE_SUCCESS,
27
+ VALUE_STATE_ERROR,
28
+ VALUE_STATE_WARNING,
29
+ VALUE_STATE_INFORMATION,
30
+ INPUT_SUGGESTIONS_TITLE,
31
+ SELECT_OPTIONS,
32
+ LIST_ITEM_POSITION,
33
+ LIST_ITEM_SELECTED,
34
+ } from "./generated/i18n/i18n-defaults.js";
35
+
36
+ // Templates
37
+ import ComboBoxTemplate from "./generated/templates/ComboBoxTemplate.lit.js";
38
+ import ComboBoxPopoverTemplate from "./generated/templates/ComboBoxPopoverTemplate.lit.js";
39
+
40
+ // Styles
41
+ import ComboBoxCss from "./generated/themes/ComboBox.css.js";
42
+ import ComboBoxPopoverCss from "./generated/themes/ComboBoxPopover.css.js";
43
+ import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverCommon.css.js";
44
+ import ValueStateMessageCss from "./generated/themes/ValueStateMessage.css.js";
45
+ import SuggestionsCss from "./generated/themes/Suggestions.css.js";
46
+
47
+ import ComboBoxItem from "./ComboBoxItem.js";
48
+ import Icon from "./Icon.js";
49
+ import Popover from "./Popover.js";
50
+ import ResponsivePopover from "./ResponsivePopover.js";
51
+ import List from "./List.js";
52
+ import BusyIndicator from "./BusyIndicator.js";
53
+ import Button from "./Button.js";
54
+ import StandardListItem from "./StandardListItem.js";
55
+ import ComboBoxGroupItem from "./ComboBoxGroupItem.js";
56
+
57
+ /**
58
+ * @public
59
+ */
60
+ const metadata = {
61
+ tag: "ui5-combobox",
62
+ languageAware: true,
63
+ properties: /** @lends sap.ui.webcomponents.main.ComboBox.prototype */ {
64
+ /**
65
+ * Defines the value of the component.
66
+ *
67
+ * @type {string}
68
+ * @defaultvalue ""
69
+ * @public
70
+ */
71
+ value: {
72
+ type: String,
73
+ defaultValue: "",
74
+ },
75
+
76
+ /**
77
+ * Defines the "live" value of the component.
78
+ * <br><br>
79
+ * <b>Note:</b> If we have an item e.g. "Bulgaria", "B" is typed, "ulgaria" is typed ahead, value will be "Bulgaria", filterValue will be "B".
80
+ *
81
+ * <br><br>
82
+ * <b>Note:</b> Initially the filter value is synced with value.
83
+ *
84
+ * @type {string}
85
+ * @defaultvalue ""
86
+ * @private
87
+ */
88
+ filterValue: {
89
+ type: String,
90
+ defaultValue: "",
91
+ },
92
+
93
+ /**
94
+ * Defines a short hint intended to aid the user with data entry when the
95
+ * component has no value.
96
+ * @type {string}
97
+ * @defaultvalue ""
98
+ * @public
99
+ */
100
+ placeholder: {
101
+ type: String,
102
+ defaultValue: "",
103
+ },
104
+
105
+ /**
106
+ * Defines whether the component is in disabled state.
107
+ * <br><br>
108
+ * <b>Note:</b> A disabled component is completely noninteractive.
109
+ *
110
+ * @type {boolean}
111
+ * @defaultvalue false
112
+ * @public
113
+ */
114
+ disabled: {
115
+ type: Boolean,
116
+ },
117
+
118
+ /**
119
+ * Defines the value state of the component.
120
+ * <br><br>
121
+ * Available options are:
122
+ * <ul>
123
+ * <li><code>None</code></li>
124
+ * <li><code>Error</code></li>
125
+ * <li><code>Warning</code></li>
126
+ * <li><code>Success</code></li>
127
+ * <li><code>Information</code></li>
128
+ * </ul>
129
+ *
130
+ * @type {ValueState}
131
+ * @defaultvalue "None"
132
+ * @public
133
+ */
134
+ valueState: {
135
+ type: ValueState,
136
+ defaultValue: ValueState.None,
137
+ },
138
+
139
+ /**
140
+ * Defines whether the component is read-only.
141
+ * <br><br>
142
+ * <b>Note:</b> A read-only component is not editable,
143
+ * but still provides visual feedback upon user interaction.
144
+ *
145
+ * @type {boolean}
146
+ * @defaultvalue false
147
+ * @public
148
+ */
149
+ readonly: {
150
+ type: Boolean,
151
+ },
152
+
153
+ /**
154
+ * Defines whether the component is required.
155
+ *
156
+ * @type {boolean}
157
+ * @defaultvalue false
158
+ * @public
159
+ */
160
+ required: {
161
+ type: Boolean,
162
+ },
163
+
164
+ /**
165
+ * Indicates whether a loading indicator should be shown in the picker.
166
+ *
167
+ * @type {boolean}
168
+ * @defaultvalue false
169
+ * @public
170
+ */
171
+ loading: {
172
+ type: Boolean,
173
+ },
174
+
175
+ /**
176
+ * Defines the filter type of the component.
177
+ * Available options are: <code>StartsWithPerTerm</code>, <code>StartsWith</code> and <code>Contains</code>.
178
+ *
179
+ * @type {string}
180
+ * @defaultvalue "StartsWithPerTerm"
181
+ * @public
182
+ */
183
+ filter: {
184
+ type: String,
185
+ defaultValue: "StartsWithPerTerm",
186
+ },
187
+
188
+ /**
189
+ * Indicates whether the input is focssed
190
+ * @private
191
+ */
192
+ focused: {
193
+ type: Boolean,
194
+ },
195
+
196
+ /**
197
+ * Indicates whether the visual focus is on the value state header
198
+ * @private
199
+ */
200
+ _isValueStateFocused: {
201
+ type: Boolean,
202
+ },
203
+
204
+ /**
205
+ * Sets the accessible aria name of the component.
206
+ *
207
+ * @type {String}
208
+ * @defaultvalue: ""
209
+ * @public
210
+ * @since 1.0.0-rc.15
211
+ */
212
+ accessibleName: {
213
+ type: String,
214
+ defaultValue: undefined,
215
+ },
216
+
217
+ /**
218
+ * Receives id(or many ids) of the elements that label the combo box
219
+ * @type {String}
220
+ * @defaultvalue ""
221
+ * @public
222
+ * @since 1.0.0-rc.15
223
+ */
224
+ accessibleNameRef: {
225
+ type: String,
226
+ defaultValue: "",
227
+ },
228
+
229
+ _iconPressed: {
230
+ type: Boolean,
231
+ noAttribute: true,
232
+ },
233
+
234
+ _filteredItems: {
235
+ type: Object,
236
+ },
237
+
238
+ _listWidth: {
239
+ type: Integer,
240
+ defaultValue: 0,
241
+ noAttribute: true,
242
+ },
243
+ },
244
+ managedSlots: true,
245
+ slots: /** @lends sap.ui.webcomponents.main.ComboBox.prototype */ {
246
+ /**
247
+ * Defines the component items.
248
+ *
249
+ * @type {sap.ui.webcomponents.main.IComboBoxItem[]}
250
+ * @slot items
251
+ * @public
252
+ */
253
+ "default": {
254
+ propertyName: "items",
255
+ type: HTMLElement,
256
+ invalidateOnChildChange: true,
257
+ },
258
+
259
+ /**
260
+ * Defines the value state message that will be displayed as pop up under the component.
261
+ * <br><br>
262
+ *
263
+ * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.
264
+ * <br>
265
+ * <b>Note:</b> The <code>valueStateMessage</code> would be displayed,
266
+ * when the <code>ui5-combobox</code> is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
267
+ * @type {HTMLElement[]}
268
+ * @since 1.0.0-rc.9
269
+ * @slot
270
+ * @public
271
+ */
272
+ valueStateMessage: {
273
+ type: HTMLElement,
274
+ },
275
+
276
+ /**
277
+ * Defines the icon to be displayed in the input field.
278
+ *
279
+ * @type {sap.ui.webcomponents.main.IIcon}
280
+ * @slot
281
+ * @public
282
+ * @since 1.0.0-rc.9
283
+ */
284
+ icon: {
285
+ type: HTMLElement,
286
+ },
287
+ },
288
+ events: /** @lends sap.ui.webcomponents.main.ComboBox.prototype */ {
289
+ /**
290
+ * Fired when the input operation has finished by pressing Enter, focusout or an item is selected.
291
+ *
292
+ * @event
293
+ * @public
294
+ */
295
+ change: {},
296
+
297
+ /**
298
+ * Fired when typing in input.
299
+ * <br><br>
300
+ * <b>Note:</b> filterValue property is updated, input is changed.
301
+ * @event
302
+ * @public
303
+ */
304
+ input: {},
305
+
306
+ /**
307
+ * Fired when selection is changed by user interaction
308
+ *
309
+ * @event sap.ui.webcomponents.main.ComboBox#selection-change
310
+ * @param {HTMLElement} item item to be selected.
311
+ * @public
312
+ */
313
+ "selection-change": {
314
+ detail: {
315
+ item: { type: HTMLElement },
316
+ },
317
+ },
318
+ },
319
+ };
320
+
321
+ /**
322
+ * @class
323
+ *
324
+ * <h3 class="comment-api-title">Overview</h3>
325
+ *
326
+ * The <code>ui5-combobox</code> component represents a drop-down menu with a list of the available options and a text input field to narrow down the options.
327
+ *
328
+ * It is commonly used to enable users to select an option from a predefined list.
329
+ * <h3>Structure</h3>
330
+ * The <code>ui5-combobox</code> consists of the following elements:
331
+ * <ul>
332
+ * <li> Input field - displays the selected option or a custom user entry. Users can type to narrow down the list or enter their own value.
333
+ * <li> Drop-down arrow - expands\collapses the option list.</li>
334
+ * <li> Option list - the list of available options.</li>
335
+ * </ul>
336
+ * <h3>Keyboard Handling</h3>
337
+ *
338
+ * The <code>ui5-combobox</code> provides advanced keyboard handling.
339
+ *
340
+ * <h4>Picker</h4>
341
+ * If the <code>ui5-combobox</code> is focused,
342
+ * you can open or close the drop-down by pressing <code>F4</code>, <code>ALT+UP</code> or <code>ALT+DOWN</code> keys.
343
+ * <br>
344
+ *
345
+ *
346
+ * <h3>ES6 Module Import</h3>
347
+ *
348
+ * <code>import "@ui5/webcomponents/dist/ComboBox";</code>
349
+ *
350
+ *
351
+ * @constructor
352
+ * @author SAP SE
353
+ * @alias sap.ui.webcomponents.main.ComboBox
354
+ * @extends UI5Element
355
+ * @tagname ui5-combobox
356
+ * @appenddocs ComboBoxItem ComboBoxGroupItem
357
+ * @public
358
+ * @since 1.0.0-rc.6
359
+ */
360
+ class ComboBox extends UI5Element {
361
+ static get metadata() {
362
+ return metadata;
363
+ }
364
+
365
+ static get render() {
366
+ return litRender;
367
+ }
368
+
369
+ static get styles() {
370
+ return ComboBoxCss;
371
+ }
372
+
373
+ static get staticAreaStyles() {
374
+ return [ResponsivePopoverCommonCss, ValueStateMessageCss, ComboBoxPopoverCss, SuggestionsCss];
375
+ }
376
+
377
+ static get template() {
378
+ return ComboBoxTemplate;
379
+ }
380
+
381
+ static get staticAreaTemplate() {
382
+ return ComboBoxPopoverTemplate;
383
+ }
384
+
385
+ constructor(props) {
386
+ super(props);
387
+
388
+ this._filteredItems = [];
389
+ this._initialRendering = true;
390
+ this._itemFocused = false;
391
+ this._selectionChanged = false;
392
+ }
393
+
394
+ onBeforeRendering() {
395
+ if (this._initialRendering) {
396
+ this._filteredItems = this.items;
397
+ }
398
+
399
+ if (!this._initialRendering && this.popover && document.activeElement === this && !this._filteredItems.length) {
400
+ this.popover.close();
401
+ }
402
+
403
+ this._selectMatchingItem();
404
+ this._initialRendering = false;
405
+ }
406
+
407
+ async onAfterRendering() {
408
+ await this._respPopover();
409
+ if (isPhone() && this.responsivePopover.opened) {
410
+ // Set initial focus to the native input
411
+ this.inner.focus();
412
+ }
413
+
414
+ if (this.shouldClosePopover() && !isPhone()) {
415
+ this.responsivePopover.close(false, false, true);
416
+ this._clearFocus();
417
+ this._itemFocused = false;
418
+ }
419
+
420
+ this.toggleValueStatePopover(this.shouldOpenValueStateMessagePopover);
421
+ this.storeResponsivePopoverWidth();
422
+
423
+ // Safari is quite slow and does not preserve text highlighting on control rerendering.
424
+ // That's why we need to restore it "manually".
425
+ if (isSafari() && this._autocomplete && this.filterValue !== this.value) {
426
+ this.inner.setSelectionRange(
427
+ (this._isKeyNavigation ? 0 : this.filterValue.length),
428
+ this.value.length,
429
+ );
430
+ }
431
+ }
432
+
433
+ shouldClosePopover() {
434
+ return this.responsivePopover.opened && !this.focused && !this._itemFocused && !this._isValueStateFocused;
435
+ }
436
+
437
+ _focusin(event) {
438
+ this.focused = true;
439
+
440
+ this._lastValue = this.value;
441
+
442
+ this._autocomplete = false;
443
+
444
+ !isPhone() && event.target.setSelectionRange(0, this.value.length);
445
+ }
446
+
447
+ _focusout(event) {
448
+ const focusedOutToValueStateMessage = event.relatedTarget && event.relatedTarget.shadowRoot && event.relatedTarget.shadowRoot.querySelector(".ui5-valuestatemessage-root");
449
+
450
+ this._fireChangeEvent();
451
+
452
+ if (focusedOutToValueStateMessage) {
453
+ event.stopImmediatePropagation();
454
+ return;
455
+ }
456
+
457
+ if (!this.shadowRoot.contains(event.relatedTarget)) {
458
+ this.focused = false;
459
+ !isPhone() && this._closeRespPopover(event);
460
+ }
461
+ }
462
+
463
+ _afterOpenPopover() {
464
+ this._iconPressed = true;
465
+ }
466
+
467
+ _afterClosePopover() {
468
+ this._iconPressed = false;
469
+ this._filteredItems = this.items;
470
+
471
+ // close device's keyboard and prevent further typing
472
+ if (isPhone()) {
473
+ this.blur();
474
+ }
475
+
476
+ if (this._selectionPerformed) {
477
+ this._lastValue = this.value;
478
+ this._selectionPerformed = false;
479
+ }
480
+ }
481
+
482
+ _toggleRespPopover() {
483
+ if (this.responsivePopover.opened) {
484
+ this._closeRespPopover();
485
+ } else {
486
+ this._openRespPopover();
487
+ }
488
+ }
489
+
490
+ storeResponsivePopoverWidth() {
491
+ if (this.open && !this._listWidth) {
492
+ this._listWidth = this.responsivePopover.offsetWidth;
493
+ }
494
+ }
495
+
496
+ toggleValueStatePopover(open) {
497
+ if (open) {
498
+ this.openValueStatePopover();
499
+ } else {
500
+ this.closeValueStatePopover();
501
+ }
502
+ }
503
+
504
+ async openValueStatePopover() {
505
+ this.popover = await this._getPopover();
506
+ this.popover && this.popover.showAt(this);
507
+ }
508
+
509
+ async closeValueStatePopover() {
510
+ this.popover = await this._getPopover();
511
+ this.popover && this.popover.close();
512
+ }
513
+
514
+ async _getPopover() {
515
+ const staticAreaItem = await this.getStaticAreaItemDomRef();
516
+ return staticAreaItem.querySelector(".ui5-valuestatemessage-popover");
517
+ }
518
+
519
+ _resetFilter() {
520
+ this._filteredItems = this._filterItems("");
521
+ this._selectMatchingItem();
522
+ }
523
+
524
+ _arrowClick() {
525
+ this.inner.focus();
526
+ this._resetFilter();
527
+
528
+ this._toggleRespPopover();
529
+ }
530
+
531
+ _readonlyIconClick() {
532
+ this.inner.focus();
533
+ }
534
+
535
+ _input(event) {
536
+ const { value } = event.target;
537
+
538
+ if (event.target === this.inner) {
539
+ // stop the native event, as the semantic "input" would be fired.
540
+ event.stopImmediatePropagation();
541
+ this.focused = true;
542
+ this._isValueStateFocused = false;
543
+ }
544
+
545
+ this._filteredItems = this._filterItems(value);
546
+
547
+ this.value = value;
548
+ this.filterValue = value;
549
+
550
+ this._clearFocus();
551
+
552
+ // autocomplete
553
+ if (this._autocomplete) {
554
+ const item = this._getFirstMatchingItem(value);
555
+ this._applyAtomicValueAndSelection(item, value, true);
556
+
557
+ if (value !== "" && !this._selectionChanged && (item && !item.selected && !item.isGroupItem)) {
558
+ this.fireEvent("selection-change", {
559
+ item,
560
+ });
561
+
562
+ this._selectionChanged = false;
563
+ }
564
+ }
565
+
566
+ this.fireEvent("input");
567
+
568
+ if (isPhone()) {
569
+ return;
570
+ }
571
+
572
+ if (!this._filteredItems.length || value === "") {
573
+ this._closeRespPopover();
574
+ } else {
575
+ this._openRespPopover();
576
+ }
577
+ }
578
+
579
+ _startsWithMatchingItems(str) {
580
+ return Filters.StartsWith(str, this._filteredItems);
581
+ }
582
+
583
+ _clearFocus() {
584
+ this._filteredItems.map(item => {
585
+ item.focused = false;
586
+
587
+ return item;
588
+ });
589
+ }
590
+
591
+ async handleArrowKeyPress(event) {
592
+ if (this.readonly || !this._filteredItems.length) {
593
+ return;
594
+ }
595
+
596
+ const isOpen = this.open;
597
+ const isArrowDown = isDown(event);
598
+ const isArrowUp = isUp(event);
599
+ const currentItem = this._filteredItems.find(item => {
600
+ return isOpen ? item.focused : item.selected;
601
+ });
602
+ const indexOfItem = this._filteredItems.indexOf(currentItem);
603
+
604
+ event.preventDefault();
605
+
606
+ if ((this.focused === true && isArrowUp && isOpen) || (this._filteredItems.length - 1 === indexOfItem && isArrowDown)) {
607
+ return;
608
+ }
609
+
610
+ this._isKeyNavigation = true;
611
+
612
+ if (isArrowDown) {
613
+ this._handleArrowDown(event, indexOfItem);
614
+ }
615
+
616
+ if (isArrowUp) {
617
+ this._handleArrowUp(event, indexOfItem);
618
+ }
619
+ }
620
+
621
+ _handleItemNavigation(event, indexOfItem, isForward) {
622
+ const isOpen = this.open;
623
+ const currentItem = this._filteredItems[indexOfItem];
624
+ const nextItem = isForward ? this._filteredItems[indexOfItem + 1] : this._filteredItems[indexOfItem - 1];
625
+ const isGroupItem = currentItem && currentItem.isGroupItem;
626
+
627
+ if ((!isOpen) && ((isGroupItem && !nextItem) || (!isGroupItem && !currentItem))) {
628
+ return;
629
+ }
630
+
631
+ this._clearFocus();
632
+
633
+ if (isOpen) {
634
+ this._itemFocused = true;
635
+ this.value = isGroupItem ? this.filterValue : currentItem.text;
636
+ this.focused = false;
637
+ currentItem.focused = true;
638
+ } else {
639
+ this.focused = true;
640
+ this.value = isGroupItem ? nextItem.text : currentItem.text;
641
+ currentItem.focused = false;
642
+ }
643
+
644
+ this._isValueStateFocused = false;
645
+ this._selectionChanged = true;
646
+
647
+ if (isGroupItem && isOpen) {
648
+ return;
649
+ }
650
+
651
+ this._announceSelectedItem(indexOfItem);
652
+
653
+ // autocomplete
654
+ const item = this._getFirstMatchingItem(this.value);
655
+ this._applyAtomicValueAndSelection(item, "", true);
656
+
657
+ if ((item && !item.selected)) {
658
+ this.fireEvent("selection-change", {
659
+ item,
660
+ });
661
+ }
662
+
663
+ this.fireEvent("input");
664
+ this._fireChangeEvent();
665
+ }
666
+
667
+ _handleArrowDown(event, indexOfItem) {
668
+ const isOpen = this.open;
669
+
670
+ if (this.focused && indexOfItem === -1 && this.hasValueStateText && isOpen) {
671
+ this._isValueStateFocused = true;
672
+ this.focused = false;
673
+ return;
674
+ }
675
+
676
+ indexOfItem = !isOpen && this.hasValueState && indexOfItem === -1 ? 0 : indexOfItem;
677
+
678
+ this._handleItemNavigation(event, ++indexOfItem, true /* isForward */);
679
+ }
680
+
681
+ _handleArrowUp(event, indexOfItem) {
682
+ const isOpen = this.open;
683
+
684
+ if (indexOfItem === 0 && !this.hasValueStateText) {
685
+ this._clearFocus();
686
+ this.focused = true;
687
+ this._itemFocused = false;
688
+ return;
689
+ }
690
+
691
+ if (indexOfItem === 0 && this.hasValueStateText && isOpen) {
692
+ this._clearFocus();
693
+ this._itemFocused = false;
694
+ this._isValueStateFocused = true;
695
+ this._filteredItems[0].selected = false;
696
+ return;
697
+ }
698
+
699
+ if (this._isValueStateFocused) {
700
+ this.focused = true;
701
+ this._isValueStateFocused = false;
702
+ return;
703
+ }
704
+
705
+ indexOfItem = !isOpen && this.hasValueState && indexOfItem === -1 ? 0 : indexOfItem;
706
+ this._handleItemNavigation(event, --indexOfItem, false /* isForward */);
707
+ }
708
+
709
+ _keydown(event) {
710
+ const isArrowKey = isDown(event) || isUp(event);
711
+ this._autocomplete = !(isBackSpace(event) || isDelete(event));
712
+ this._isKeyNavigation = false;
713
+
714
+ if (isArrowKey) {
715
+ this.handleArrowKeyPress(event);
716
+ }
717
+
718
+ if (isEnter(event)) {
719
+ this._fireChangeEvent();
720
+ this._closeRespPopover();
721
+ this.focused = true;
722
+ }
723
+
724
+ if (isEscape(event)) {
725
+ this.focused = true;
726
+ this.value = !this.open ? this._lastValue : this.value;
727
+ this._isValueStateFocused = false;
728
+ }
729
+
730
+ if ((isTabNext(event) || isTabPrevious(event)) && this.open) {
731
+ this._closeRespPopover();
732
+ }
733
+
734
+ if (isShow(event) && !this.readonly && !this.disabled) {
735
+ event.preventDefault();
736
+
737
+ this._resetFilter();
738
+ this._toggleRespPopover();
739
+
740
+ const selectedItem = this._filteredItems.find(item => {
741
+ return item.selected;
742
+ });
743
+
744
+ if (selectedItem && this.open) {
745
+ this._itemFocused = true;
746
+ selectedItem.focused = true;
747
+ this.focused = false;
748
+ } else {
749
+ this.focused = true;
750
+ }
751
+ }
752
+ }
753
+
754
+ _click(event) {
755
+ if (isPhone() && !this.readonly) {
756
+ this._openRespPopover();
757
+ }
758
+ }
759
+
760
+ _closeRespPopover(event) {
761
+ if (isPhone() && event && event.target.classList.contains("ui5-responsive-popover-close-btn") && this._selectedItemText) {
762
+ this.value = this._selectedItemText;
763
+ this.filterValue = this._selectedItemText;
764
+ }
765
+
766
+ this._isValueStateFocused = false;
767
+ this._clearFocus();
768
+
769
+ this.responsivePopover.close();
770
+ }
771
+
772
+ _openRespPopover() {
773
+ this.responsivePopover.showAt(this);
774
+ }
775
+
776
+ _filterItems(str) {
777
+ const itemsToFilter = this.items.filter(item => !item.isGroupItem);
778
+ const filteredItems = (Filters[this.filter] || Filters.StartsWithPerTerm)(str, itemsToFilter);
779
+
780
+ // Return the filtered items and their group items
781
+ return this.items.filter((item, idx, allItems) => ComboBox._groupItemFilter(item, ++idx, allItems, filteredItems) || filteredItems.indexOf(item) !== -1);
782
+ }
783
+
784
+ /**
785
+ * Returns true if the group header should be shown (if there is a filtered suggestion item for this group item)
786
+ *
787
+ * @private
788
+ */
789
+ static _groupItemFilter(item, idx, allItems, filteredItems) {
790
+ if (item.isGroupItem) {
791
+ let groupHasFilteredItems;
792
+
793
+ while (allItems[idx] && !allItems[idx].isGroupItem && !groupHasFilteredItems) {
794
+ groupHasFilteredItems = filteredItems.indexOf(allItems[idx]) !== -1;
795
+ idx++;
796
+ }
797
+
798
+ return groupHasFilteredItems;
799
+ }
800
+ }
801
+
802
+ _getFirstMatchingItem(current) {
803
+ const currentlyFocusedItem = this.items.find(item => item.focused === true);
804
+
805
+ if (currentlyFocusedItem && currentlyFocusedItem.isGroupItem) {
806
+ this.value = this.filterValue;
807
+ return;
808
+ }
809
+
810
+ const matchingItems = this._startsWithMatchingItems(current).filter(item => !item.isGroupItem);
811
+
812
+ if (matchingItems.length) {
813
+ return matchingItems[0];
814
+ }
815
+ }
816
+
817
+ _applyAtomicValueAndSelection(item, filterValue, highlightValue) {
818
+ if (!item) {
819
+ return;
820
+ }
821
+
822
+ const value = (item && item.text) || "";
823
+ this.inner.value = value;
824
+ if (highlightValue) {
825
+ this.inner.setSelectionRange(filterValue.length, value.length);
826
+ }
827
+ this.value = value;
828
+ }
829
+
830
+ _selectMatchingItem() {
831
+ const currentlyFocusedItem = this.items.find(item => item.focused);
832
+ const shouldSelectionBeCleared = currentlyFocusedItem && currentlyFocusedItem.isGroupItem;
833
+
834
+ this._filteredItems = this._filteredItems.map(item => {
835
+ item.selected = !item.isGroupItem && (item.text === this.value) && !shouldSelectionBeCleared;
836
+ return item;
837
+ });
838
+ }
839
+
840
+ _fireChangeEvent() {
841
+ if (this.value !== this._lastValue) {
842
+ this.fireEvent("change");
843
+ this._lastValue = this.value;
844
+ }
845
+ }
846
+
847
+ _inputChange(event) {
848
+ event.preventDefault();
849
+ }
850
+
851
+ _itemMousedown(event) {
852
+ event.preventDefault();
853
+ }
854
+
855
+ _selectItem(event) {
856
+ const listItem = event.detail.item;
857
+
858
+ this._selectedItemText = listItem.mappedItem.text;
859
+ this._selectionPerformed = true;
860
+
861
+ const sameItemSelected = this.value === this._selectedItemText;
862
+ const sameSelectionPerformed = this.value.toLowerCase() === this.filterValue.toLowerCase();
863
+
864
+ if (sameItemSelected && sameSelectionPerformed) {
865
+ return this._closeRespPopover();
866
+ }
867
+
868
+ this.value = this._selectedItemText;
869
+
870
+ if (!listItem.mappedItem.selected) {
871
+ this.fireEvent("selection-change", {
872
+ item: listItem.mappedItem,
873
+ });
874
+
875
+ this._selectionChanged = true;
876
+ }
877
+
878
+ this._filteredItems.map(item => {
879
+ item.selected = (item === listItem.mappedItem && !item.isGroupItem);
880
+ return item;
881
+ });
882
+
883
+ this._fireChangeEvent();
884
+ this._closeRespPopover();
885
+
886
+ // reset selection
887
+ this.inner.setSelectionRange(this.value.length, this.value.length);
888
+ }
889
+
890
+ _onItemFocus(event) {
891
+ this._itemFocused = true;
892
+ }
893
+
894
+ _announceSelectedItem(indexOfItem) {
895
+ const itemPositionText = ComboBox.i18nBundle.getText(LIST_ITEM_POSITION, indexOfItem + 1, this._filteredItems.length);
896
+ const itemSelectionText = ComboBox.i18nBundle.getText(LIST_ITEM_SELECTED);
897
+
898
+ announce(`${itemPositionText} ${itemSelectionText}`, "Polite");
899
+ }
900
+
901
+ get _headerTitleText() {
902
+ return ComboBox.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
903
+ }
904
+
905
+ get _iconAccessibleNameText() {
906
+ return ComboBox.i18nBundle.getText(SELECT_OPTIONS);
907
+ }
908
+
909
+ get inner() {
910
+ return isPhone() ? this.responsivePopover.querySelector(".ui5-input-inner-phone") : this.shadowRoot.querySelector("[inner-input]");
911
+ }
912
+
913
+ async _respPopover() {
914
+ const staticAreaItem = await this.getStaticAreaItemDomRef();
915
+ this.responsivePopover = staticAreaItem.querySelector("[ui5-responsive-popover]");
916
+ return this.responsivePopover;
917
+ }
918
+
919
+ get editable() {
920
+ return !this.readonly;
921
+ }
922
+
923
+ get hasValueState() {
924
+ return this.valueState !== ValueState.None;
925
+ }
926
+
927
+ get hasValueStateText() {
928
+ return this.hasValueState && this.valueState !== ValueState.Success;
929
+ }
930
+
931
+ get valueStateText() {
932
+ return this.valueStateTextMappings[this.valueState];
933
+ }
934
+
935
+ get valueStateMessageText() {
936
+ return this.getSlottedNodes("valueStateMessage").map(el => el.cloneNode(true));
937
+ }
938
+
939
+ get valueStateTextId() {
940
+ return this.hasValueState ? `${this._id}-valueStateDesc` : undefined;
941
+ }
942
+
943
+ get valueStateTextMappings() {
944
+ return {
945
+ "Success": ComboBox.i18nBundle.getText(VALUE_STATE_SUCCESS),
946
+ "Error": ComboBox.i18nBundle.getText(VALUE_STATE_ERROR),
947
+ "Warning": ComboBox.i18nBundle.getText(VALUE_STATE_WARNING),
948
+ "Information": ComboBox.i18nBundle.getText(VALUE_STATE_INFORMATION),
949
+ };
950
+ }
951
+
952
+ get shouldOpenValueStateMessagePopover() {
953
+ return this.focused && this.hasValueStateText && !this._iconPressed
954
+ && !this.open && !this._isPhone;
955
+ }
956
+
957
+ get shouldDisplayDefaultValueStateMessage() {
958
+ return !this.valueStateMessage.length && this.hasValueStateText;
959
+ }
960
+
961
+ /**
962
+ * This method is relevant for sap_horizon theme only
963
+ */
964
+ get _valueStateMessageIcon() {
965
+ const iconPerValueState = {
966
+ Error: "error",
967
+ Warning: "alert",
968
+ Success: "sys-enter-2",
969
+ Information: "information",
970
+ };
971
+
972
+ return this.valueState !== ValueState.None ? iconPerValueState[this.valueState] : "";
973
+ }
974
+
975
+ get open() {
976
+ return this.responsivePopover ? this.responsivePopover.opened : false;
977
+ }
978
+
979
+ get _isPhone() {
980
+ return isPhone();
981
+ }
982
+
983
+ get itemTabIndex() {
984
+ return undefined;
985
+ }
986
+
987
+ get ariaLabelText() {
988
+ return getEffectiveAriaLabelText(this);
989
+ }
990
+
991
+ static get dependencies() {
992
+ return [
993
+ ComboBoxItem,
994
+ Icon,
995
+ ResponsivePopover,
996
+ List,
997
+ BusyIndicator,
998
+ Button,
999
+ StandardListItem,
1000
+ Popover,
1001
+ ComboBoxGroupItem,
1002
+ ];
1003
+ }
1004
+
1005
+ static async onDefine() {
1006
+ ComboBox.i18nBundle = await getI18nBundle("@ui5/webcomponents");
1007
+ }
1008
+
1009
+ get styles() {
1010
+ return {
1011
+ popoverHeader: {
1012
+ "width": `${this.offsetWidth}px`,
1013
+ },
1014
+ suggestionPopoverHeader: {
1015
+ "display": this._listWidth === 0 ? "none" : "inline-block",
1016
+ "width": `${this._listWidth}px`,
1017
+ },
1018
+ };
1019
+ }
1020
+
1021
+ get classes() {
1022
+ return {
1023
+ popover: {
1024
+ "ui5-suggestions-popover": !this.isPhone,
1025
+ "ui5-suggestions-popover-with-value-state-header": !this.isPhone && this.hasValueStateText,
1026
+ },
1027
+ popoverValueState: {
1028
+ "ui5-valuestatemessage-header": true,
1029
+ "ui5-valuestatemessage-root": true,
1030
+ "ui5-valuestatemessage--success": this.valueState === ValueState.Success,
1031
+ "ui5-valuestatemessage--error": this.valueState === ValueState.Error,
1032
+ "ui5-valuestatemessage--warning": this.valueState === ValueState.Warning,
1033
+ "ui5-valuestatemessage--information": this.valueState === ValueState.Information,
1034
+ },
1035
+ };
1036
+ }
1037
+ }
1038
+
1039
+ ComboBox.define();
1040
+
1041
+ export default ComboBox;