@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,1091 @@
1
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
3
+ import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
4
+ import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
5
+ import {
6
+ isShow,
7
+ isDown,
8
+ isUp,
9
+ isBackSpace,
10
+ isSpace,
11
+ isLeft,
12
+ isRight,
13
+ isEscape,
14
+ isEnter,
15
+ } from "@ui5/webcomponents-base/dist/Keys.js";
16
+ import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
17
+ import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
18
+ import { isIE, isPhone } from "@ui5/webcomponents-base/dist/Device.js";
19
+ import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
20
+ import "@ui5/webcomponents-icons/dist/decline.js";
21
+ import "@ui5/webcomponents-icons/dist/multiselect-all.js";
22
+ import "@ui5/webcomponents-icons/dist/not-editable.js";
23
+ import MultiComboBoxItem from "./MultiComboBoxItem.js";
24
+ import Tokenizer from "./Tokenizer.js";
25
+ import Token from "./Token.js";
26
+ import Icon from "./Icon.js";
27
+ import Popover from "./Popover.js";
28
+ import ResponsivePopover from "./ResponsivePopover.js";
29
+ import List from "./List.js";
30
+ import StandardListItem from "./StandardListItem.js";
31
+ import ToggleButton from "./ToggleButton.js";
32
+ import * as Filters from "./ComboBoxFilters.js";
33
+ import Button from "./Button.js";
34
+
35
+ import {
36
+ VALUE_STATE_SUCCESS,
37
+ VALUE_STATE_ERROR,
38
+ VALUE_STATE_WARNING,
39
+ VALUE_STATE_INFORMATION,
40
+ INPUT_SUGGESTIONS_TITLE,
41
+ SELECT_OPTIONS,
42
+ MULTICOMBOBOX_DIALOG_OK_BUTTON,
43
+ VALUE_STATE_ERROR_ALREADY_SELECTED,
44
+ } from "./generated/i18n/i18n-defaults.js";
45
+
46
+ // Templates
47
+ import MultiComboBoxTemplate from "./generated/templates/MultiComboBoxTemplate.lit.js";
48
+ import MultiComboBoxPopoverTemplate from "./generated/templates/MultiComboBoxPopoverTemplate.lit.js";
49
+
50
+ // Styles
51
+ import styles from "./generated/themes/MultiComboBox.css.js";
52
+ import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverCommon.css.js";
53
+ import ValueStateMessageCss from "./generated/themes/ValueStateMessage.css.js";
54
+ import SuggestionsCss from "./generated/themes/Suggestions.css.js";
55
+
56
+ /**
57
+ * @public
58
+ */
59
+ const metadata = {
60
+ tag: "ui5-multi-combobox",
61
+ languageAware: true,
62
+ managedSlots: true,
63
+ slots: /** @lends sap.ui.webcomponents.main.MultiComboBox.prototype */ {
64
+ /**
65
+ * Defines the component items.
66
+ *
67
+ * @type {sap.ui.webcomponents.main.IMultiComboBoxItem[]}
68
+ * @slot items
69
+ * @public
70
+ */
71
+ "default": {
72
+ propertyName: "items",
73
+ type: HTMLElement,
74
+ invalidateOnChildChange: true,
75
+ },
76
+
77
+ /**
78
+ * Defines the icon to be displayed in the component.
79
+ *
80
+ * @type {sap.ui.webcomponents.main.IIcon}
81
+ * @slot
82
+ * @public
83
+ * @since 1.0.0-rc.9
84
+ */
85
+ icon: {
86
+ type: HTMLElement,
87
+ },
88
+
89
+ /**
90
+ * Defines the value state message that will be displayed as pop up under the component.
91
+ * <br><br>
92
+ *
93
+ * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.
94
+ * <br>
95
+ * <b>Note:</b> The <code>valueStateMessage</code> would be displayed,
96
+ * when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
97
+ * @type {HTMLElement[]}
98
+ * @since 1.0.0-rc.9
99
+ * @slot
100
+ * @public
101
+ */
102
+ valueStateMessage: {
103
+ type: HTMLElement,
104
+ },
105
+ },
106
+ properties: /** @lends sap.ui.webcomponents.main.MultiComboBox.prototype */ {
107
+ /**
108
+ * Defines the value of the component.
109
+ * <br><br>
110
+ * <b>Note:</b> The property is updated upon typing.
111
+ *
112
+ * @type {string}
113
+ * @defaultvalue ""
114
+ * @public
115
+ */
116
+ value: {
117
+ type: String,
118
+ defaultValue: "",
119
+ },
120
+
121
+ /**
122
+ * Defines a short hint intended to aid the user with data entry when the
123
+ * component has no value.
124
+ * @type {string}
125
+ * @defaultvalue ""
126
+ * @public
127
+ */
128
+ placeholder: {
129
+ type: String,
130
+ defaultValue: "",
131
+ },
132
+
133
+ /**
134
+ * Defines if the user input will be prevented, if no matching item has been found
135
+ *
136
+ * @type {boolean}
137
+ * @defaultvalue false
138
+ * @public
139
+ */
140
+ allowCustomValues: {
141
+ type: Boolean,
142
+ },
143
+
144
+ /**
145
+ * Defines whether the component is in disabled state.
146
+ * <br><br>
147
+ * <b>Note:</b> A disabled component is completely noninteractive.
148
+ *
149
+ * @type {boolean}
150
+ * @defaultvalue false
151
+ * @public
152
+ */
153
+ disabled: {
154
+ type: Boolean,
155
+ },
156
+
157
+ /**
158
+ * Defines the value state of the component.
159
+ * <br><br>
160
+ * Available options are:
161
+ * <ul>
162
+ * <li><code>None</code></li>
163
+ * <li><code>Error</code></li>
164
+ * <li><code>Warning</code></li>
165
+ * <li><code>Success</code></li>
166
+ * <li><code>Information</code></li>
167
+ * </ul>
168
+ *
169
+ * @type {ValueState}
170
+ * @defaultvalue "None"
171
+ * @public
172
+ */
173
+ valueState: {
174
+ type: ValueState,
175
+ defaultValue: ValueState.None,
176
+ },
177
+
178
+ /**
179
+ * Defines whether the component is read-only.
180
+ * <br><br>
181
+ * <b>Note:</b> A read-only component is not editable,
182
+ * but still provides visual feedback upon user interaction.
183
+ *
184
+ * @type {boolean}
185
+ * @defaultvalue false
186
+ * @public
187
+ */
188
+ readonly: {
189
+ type: Boolean,
190
+ },
191
+
192
+ /**
193
+ * Defines whether the component is required.
194
+ *
195
+ * @type {boolean}
196
+ * @defaultvalue false
197
+ * @public
198
+ * @since 1.0.0-rc.5
199
+ */
200
+ required: {
201
+ type: Boolean,
202
+ },
203
+
204
+ /**
205
+ * Defines the filter type of the component.
206
+ * Available options are: <code>StartsWithPerTerm</code>, <code>StartsWith</code>, <code>Contains</code> and <code>None</code>.
207
+ *
208
+ * @type {string}
209
+ * @defaultvalue "StartsWithPerTerm"
210
+ * @public
211
+ */
212
+ filter: {
213
+ type: String,
214
+ defaultValue: "StartsWithPerTerm",
215
+ },
216
+
217
+ /**
218
+ * Indicates whether the dropdown is open. True if the dropdown is open, false otherwise.
219
+ *
220
+ * @type {boolean}
221
+ * @defaultvalue false
222
+ * @readonly
223
+ * @since 1.0.0-rc.5
224
+ * @public
225
+ */
226
+ open: {
227
+ type: Boolean,
228
+ },
229
+
230
+ _filteredItems: {
231
+ type: Object,
232
+ },
233
+
234
+ filterSelected: {
235
+ type: Boolean,
236
+ },
237
+
238
+ focused: {
239
+ type: Boolean,
240
+ },
241
+
242
+ _tokenizerFocused: {
243
+ type: Boolean,
244
+ },
245
+
246
+ _iconPressed: {
247
+ type: Boolean,
248
+ noAttribute: true,
249
+ },
250
+
251
+ _inputWidth: {
252
+ type: Integer,
253
+ noAttribute: true,
254
+ },
255
+
256
+ _listWidth: {
257
+ type: Integer,
258
+ defaultValue: 0,
259
+ noAttribute: true,
260
+ },
261
+
262
+ _performingSelectionTwice: {
263
+ type: Boolean,
264
+ },
265
+ },
266
+ events: /** @lends sap.ui.webcomponents.main.MultiComboBox.prototype */ {
267
+ /**
268
+ * Fired when the input operation has finished by pressing Enter or on focusout.
269
+ *
270
+ * @event
271
+ * @public
272
+ */
273
+ change: {},
274
+
275
+ /**
276
+ * Fired when the value of the component changes at each keystroke.
277
+ *
278
+ * @event
279
+ * @public
280
+ */
281
+ input: {},
282
+
283
+ /**
284
+ * Fired when the dropdown is opened or closed.
285
+ *
286
+ * @event sap.ui.webcomponents.main.MultiComboBox#open-change
287
+ * @since 1.0.0-rc.5
288
+ * @public
289
+ */
290
+ "open-change": {},
291
+
292
+ /**
293
+ * Fired when selection is changed by user interaction
294
+ * in <code>SingleSelect</code> and <code>MultiSelect</code> modes.
295
+ *
296
+ * @event sap.ui.webcomponents.main.MultiComboBox#selection-change
297
+ * @param {Array} items an array of the selected items.
298
+ * @public
299
+ */
300
+ "selection-change": {
301
+ detail: {
302
+ items: { type: Array },
303
+ },
304
+ },
305
+ },
306
+ };
307
+
308
+ /**
309
+ * @class
310
+ *
311
+ * <h3 class="comment-api-title">Overview</h3>
312
+ *
313
+ * The <code>ui5-multi-combobox</code> component consists of a list box with items and a text field allowing the user to either type a value directly into the text field, or choose from the list of existing items.
314
+ *
315
+ * The drop-down list is used for selecting and filtering values, it enables users to select one or more options from a predefined list. The control provides an editable input field to filter the list, and a dropdown arrow to expand/collapse the list of available options.
316
+ * The options in the list have checkboxes that permit multi-selection. Entered values are displayed as tokens.
317
+ * <h3>Structure</h3>
318
+ * The <code>ui5-multi-combobox</code> consists of the following elements:
319
+ * <ul>
320
+ * <li> Tokenizer - a list of tokens with selected options.
321
+ * <li> Input field - displays the selected option/s as token/s. Users can type to filter the list.
322
+ * <li> Drop-down arrow - expands\collapses the option list.</li>
323
+ * <li> Option list - the list of available options.</li>
324
+ * </ul>
325
+ * <h3>Keyboard Handling</h3>
326
+ *
327
+ * The <code>ui5-multi-combobox</code> provides advanced keyboard handling.
328
+ *
329
+ * <h4>Picker</h4>
330
+ * If the <code>ui5-multi-combobox</code> is focused,
331
+ * you can open or close the drop-down by pressing <code>F4</code>, <code>ALT+UP</code> or <code>ALT+DOWN</code> keys.
332
+ * Once the drop-down is opened, you can use the <code>UP</code> and <code>DOWN</code> arrow keys
333
+ * to navigate through the available options and select one by pressing the <code>Space</code> or <code>Enter</code> keys.
334
+ * <br>
335
+ *
336
+ * <h4>Tokens</h4>
337
+ * <ul>
338
+ * <li> Left/Right arrow keys - moves the focus selection form the currently focused token to the previous/next one (if available). </li>
339
+ * <li> Delete - deletes the token and focuses the previous token. </li>
340
+ * <li> Backspace - deletes the token and focus the next token. </li>
341
+ * </ul>
342
+ *
343
+ * <h3>CSS Shadow Parts</h3>
344
+ *
345
+ * <ui5-link target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/CSS/::part">CSS Shadow Parts</ui5-link> allow developers to style elements inside the Shadow DOM.
346
+ * <br>
347
+ * The <code>ui5-multi-combobox</code> exposes the following CSS Shadow Parts:
348
+ * <ul>
349
+ * <li>token-{index} - Used to style each token(where <code>token-0</code> corresponds to the first item)</li>
350
+ * </ul>
351
+ *
352
+ * <h3>ES6 Module Import</h3>
353
+ *
354
+ * <code>import "@ui5/webcomponents/dist/MultiComboBox";</code>
355
+ *
356
+ *
357
+ * @constructor
358
+ * @author SAP SE
359
+ * @alias sap.ui.webcomponents.main.MultiComboBox
360
+ * @extends UI5Element
361
+ * @tagname ui5-multi-combobox
362
+ * @public
363
+ * @appenddocs MultiComboBoxItem
364
+ * @since 0.11.0
365
+ */
366
+ class MultiComboBox extends UI5Element {
367
+ static get metadata() {
368
+ return metadata;
369
+ }
370
+
371
+ static get render() {
372
+ return litRender;
373
+ }
374
+
375
+ static get template() {
376
+ return MultiComboBoxTemplate;
377
+ }
378
+
379
+ static get staticAreaTemplate() {
380
+ return MultiComboBoxPopoverTemplate;
381
+ }
382
+
383
+ static get styles() {
384
+ return styles;
385
+ }
386
+
387
+ static get staticAreaStyles() {
388
+ return [ResponsivePopoverCommonCss, ValueStateMessageCss, SuggestionsCss];
389
+ }
390
+
391
+ static get dependencies() {
392
+ return [
393
+ MultiComboBoxItem,
394
+ Tokenizer,
395
+ Token,
396
+ Icon,
397
+ ResponsivePopover,
398
+ Popover,
399
+ List,
400
+ StandardListItem,
401
+ ToggleButton,
402
+ Button,
403
+ ];
404
+ }
405
+
406
+ constructor() {
407
+ super();
408
+
409
+ this._filteredItems = [];
410
+ this.selectedValues = [];
411
+ this._inputLastValue = "";
412
+ this._valueBeforeOpen = "";
413
+ this._deleting = false;
414
+ this._validationTimeout = null;
415
+ this._handleResizeBound = this._handleResize.bind(this);
416
+ }
417
+
418
+ onEnterDOM() {
419
+ ResizeHandler.register(this, this._handleResizeBound);
420
+ }
421
+
422
+ onExitDOM() {
423
+ ResizeHandler.deregister(this, this._handleResizeBound);
424
+ }
425
+
426
+ _handleResize() {
427
+ this._inputWidth = this.offsetWidth;
428
+ }
429
+
430
+ _inputChange() {
431
+ this.fireEvent("change");
432
+ }
433
+
434
+ togglePopover() {
435
+ this.allItemsPopover.toggle(this);
436
+ }
437
+
438
+ _showFilteredItems() {
439
+ this.filterSelected = true;
440
+ this._showMorePressed = true;
441
+
442
+ this.togglePopover();
443
+ }
444
+
445
+ filterSelectedItems(event) {
446
+ this.filterSelected = event.target.pressed;
447
+ this.selectedItems = this._filteredItems.filter(item => item.selected);
448
+ }
449
+
450
+ get _showAllItemsButtonPressed() {
451
+ return this.filterSelected;
452
+ }
453
+
454
+ get _inputDom() {
455
+ return this.shadowRoot.querySelector("#ui5-multi-combobox-input");
456
+ }
457
+
458
+ _inputLiveChange(event) {
459
+ const input = event.target;
460
+ const value = input.value;
461
+ const filteredItems = this._filterItems(value);
462
+ const oldValueState = this.valueState;
463
+
464
+ if (this.filterSelected) {
465
+ this.filterSelected = false;
466
+ }
467
+
468
+ /* skip calling change event when an input with a placeholder is focused on IE
469
+ - value of the host and the internal input should be differnt in case of actual input
470
+ - input is called when a key is pressed => keyup should not be called yet
471
+ */
472
+ const skipFiring = (this._inputDom.value === this.value) && isIE() && !this._keyDown && !!this.placeholder;
473
+
474
+ if (skipFiring) {
475
+ event.preventDefault();
476
+
477
+ return;
478
+ }
479
+
480
+ if (this._validationTimeout) {
481
+ input.value = this._inputLastValue;
482
+ return;
483
+ }
484
+
485
+ if (!filteredItems.length && value && !this.allowCustomValues) {
486
+ input.value = this._inputLastValue;
487
+ this.valueState = "Error";
488
+
489
+ this._resetValueState(oldValueState);
490
+
491
+ return;
492
+ }
493
+
494
+ this._inputLastValue = input.value;
495
+ this.value = input.value;
496
+ this._filteredItems = filteredItems;
497
+
498
+ if (!isPhone()) {
499
+ if (filteredItems.length === 0) {
500
+ this.allItemsPopover.close();
501
+ } else {
502
+ this.allItemsPopover.showAt(this);
503
+ }
504
+ }
505
+
506
+ this.fireEvent("input");
507
+ }
508
+
509
+ _tokenDelete(event) {
510
+ const token = event.detail.ref;
511
+ const deletingItem = this.items.find(item => item._id === token.getAttribute("data-ui5-id"));
512
+
513
+ deletingItem.selected = false;
514
+ this._deleting = true;
515
+
516
+ this.fireSelectionChange();
517
+ }
518
+
519
+ get _getPlaceholder() {
520
+ if (this._tokenizer && this._tokenizer.tokens.length) {
521
+ return "";
522
+ }
523
+
524
+ return this.placeholder;
525
+ }
526
+
527
+ _handleLeft() {
528
+ const cursorPosition = this.getDomRef().querySelector(`input`).selectionStart;
529
+
530
+ if (cursorPosition === 0) {
531
+ this._tokenizer._focusLastToken();
532
+ }
533
+ }
534
+
535
+ _tokenizerFocusOut(event) {
536
+ this._tokenizerFocused = false;
537
+
538
+ const tokensCount = this._tokenizer.tokens.length - 1;
539
+
540
+ if (!event.relatedTarget || event.relatedTarget.localName !== "ui5-token") {
541
+ this._tokenizer.tokens.forEach(token => { token.selected = false; });
542
+ this._tokenizer.scrollToStart();
543
+ }
544
+
545
+ if (tokensCount === 0 && this._deleting) {
546
+ setTimeout(() => {
547
+ if (!isPhone()) {
548
+ this.shadowRoot.querySelector("input").focus();
549
+ }
550
+
551
+ this._deleting = false;
552
+ }, 0);
553
+ }
554
+ }
555
+
556
+ _tokenizerFocusIn() {
557
+ this._tokenizerFocused = true;
558
+ this.focused = false;
559
+ }
560
+
561
+ _onkeyup() {
562
+ this._keyDown = false;
563
+ }
564
+
565
+ async _onkeydown(event) {
566
+ if (isLeft(event)) {
567
+ this._handleLeft(event);
568
+ }
569
+
570
+ if (isShow(event) && !this.readonly && !this.disabled) {
571
+ event.preventDefault();
572
+ this.togglePopover();
573
+ }
574
+
575
+ if (this.open && (isUp(event) || isDown(event))) {
576
+ this._handleArrowNavigation(event);
577
+ }
578
+
579
+ if (isBackSpace(event) && event.target.value === "") {
580
+ event.preventDefault();
581
+
582
+ this._tokenizer._focusLastToken();
583
+ }
584
+
585
+ // Reset value on ESC
586
+ if (isEscape(event) && (!this.allowCustomValues || (!this.open && this.allowCustomValues))) {
587
+ this.value = this._lastValue;
588
+ }
589
+
590
+ if (isEnter(event)) {
591
+ this.handleEnter();
592
+ }
593
+
594
+ this._keyDown = true;
595
+ }
596
+
597
+ _onValueStateKeydown(event) {
598
+ const isArrowDown = isDown(event);
599
+ const isArrowUp = isUp(event);
600
+
601
+ event.preventDefault();
602
+
603
+ if (isArrowDown) {
604
+ this._handleArrowDown(event);
605
+ }
606
+
607
+ if (isArrowUp) {
608
+ this._inputDom.focus();
609
+ }
610
+ }
611
+
612
+ _onItemKeydown(event) {
613
+ const isFirstItem = this.list.items[0] === event.target;
614
+
615
+ event.preventDefault();
616
+
617
+ if (!isUp(event) || !isFirstItem) {
618
+ return;
619
+ }
620
+
621
+ if (this.valueStateHeader) {
622
+ this.valueStateHeader.focus();
623
+ return;
624
+ }
625
+
626
+ this._inputDom.focus();
627
+ }
628
+
629
+ async _handleArrowNavigation(event) {
630
+ const isArrowDown = isDown(event);
631
+ const hasSuggestions = this.allItemsPopover.opened && this.items.length;
632
+
633
+ event.preventDefault();
634
+
635
+ if (this.hasValueStateMessage && !this.valueStateHeader) {
636
+ await this._setValueStateHeader();
637
+ }
638
+
639
+ if (isArrowDown && this.focused && this.valueStateHeader) {
640
+ this.valueStateHeader.focus();
641
+ return;
642
+ }
643
+
644
+ if (isArrowDown && this.focused && hasSuggestions) {
645
+ this._handleArrowDown(event);
646
+ }
647
+ }
648
+
649
+ _handleArrowDown(event) {
650
+ const firstListItem = this.list.items[0];
651
+
652
+ this.list._itemNavigation.setCurrentItem(firstListItem);
653
+ firstListItem.focus();
654
+ }
655
+
656
+ handleEnter() {
657
+ const lowerCaseValue = this.value.toLowerCase();
658
+ const matchingItem = this.items.find(item => item.text.toLowerCase() === lowerCaseValue);
659
+ const oldValueState = this.valueState;
660
+
661
+ if (matchingItem) {
662
+ if (matchingItem.selected) {
663
+ if (this._validationTimeout) {
664
+ return;
665
+ }
666
+
667
+ this.valueState = "Error";
668
+ this._performingSelectionTwice = true;
669
+ this._resetValueState(oldValueState, () => {
670
+ this._performingSelectionTwice = false;
671
+ });
672
+ } else {
673
+ matchingItem.selected = true;
674
+ this.value = "";
675
+ this.fireSelectionChange();
676
+ }
677
+
678
+ this.allItemsPopover.close();
679
+ }
680
+ }
681
+
682
+ _resetValueState(valueState, callback) {
683
+ this._validationTimeout = setTimeout(() => {
684
+ this.valueState = valueState;
685
+ this._validationTimeout = null;
686
+
687
+ callback && callback();
688
+ }, 2000);
689
+ }
690
+
691
+ _onTokenizerKeydown(event) {
692
+ if (isRight(event)) {
693
+ const lastTokenIndex = this._tokenizer.tokens.length - 1;
694
+
695
+ if (this._tokenizer.tokens[lastTokenIndex] === document.activeElement.shadowRoot.activeElement) {
696
+ setTimeout(() => {
697
+ this.shadowRoot.querySelector("input").focus();
698
+ }, 0);
699
+ }
700
+ }
701
+ }
702
+
703
+ _filterItems(str) {
704
+ return (Filters[this.filter] || Filters.StartsWithPerTerm)(str, this.items);
705
+ }
706
+
707
+ _afterOpenPicker() {
708
+ this._toggle();
709
+
710
+ if (!isPhone()) {
711
+ this._innerInput.focus();
712
+ } else {
713
+ this.allItemsPopover.focus();
714
+ }
715
+ }
716
+
717
+ _toggle() {
718
+ this.open = !this.open;
719
+ this.fireEvent("open-change");
720
+ }
721
+
722
+ _getSelectedItems() {
723
+ // Angular 2 way data binding
724
+ this.selectedValues = this.items.filter(item => item.selected);
725
+ return this.selectedValues;
726
+ }
727
+
728
+ _listSelectionChange(event) {
729
+ // sync list items and cb items
730
+ this.syncItems(event.target.items);
731
+
732
+ // don't call selection change right after selection as user can cancel it on phone
733
+ if (!isPhone()) {
734
+ this.fireSelectionChange();
735
+ }
736
+
737
+ if (!event.detail.selectionComponentPressed && !isSpace(event.detail)) {
738
+ this.allItemsPopover.close();
739
+ this.value = "";
740
+
741
+ // if the item (not checkbox) is clicked, call the selection change
742
+ if (isPhone()) {
743
+ this.fireSelectionChange();
744
+ }
745
+
746
+ this.fireEvent("input");
747
+ }
748
+ }
749
+
750
+ syncItems(listItems) {
751
+ listItems.forEach(item => {
752
+ this.items.forEach(mcbItem => {
753
+ if (mcbItem._id === item.getAttribute("data-ui5-token-id")) {
754
+ mcbItem.selected = item.selected;
755
+ }
756
+ });
757
+ });
758
+ }
759
+
760
+ fireSelectionChange() {
761
+ this.fireEvent("selection-change", { items: this._getSelectedItems() });
762
+ // Angular 2 way data binding
763
+ this.fireEvent("value-changed");
764
+ }
765
+
766
+ async _getRespPopover() {
767
+ const staticAreaItem = await this.getStaticAreaItemDomRef();
768
+ this.allItemsPopover = staticAreaItem.querySelector(`.ui5-multi-combobox-all-items-responsive-popover`);
769
+ }
770
+
771
+ async _getList() {
772
+ const staticAreaItem = await this.getStaticAreaItemDomRef();
773
+ this.list = staticAreaItem.querySelector(".ui5-multi-combobox-all-items-list");
774
+ }
775
+
776
+ _click(event) {
777
+ if (isPhone() && !this.readonly && !this._showMorePressed && !this._deleting) {
778
+ this.allItemsPopover.showAt(this);
779
+ }
780
+
781
+ this._showMorePressed = false;
782
+ }
783
+
784
+ _afterClosePicker() {
785
+ // close device's keyboard and prevent further typing
786
+ if (isPhone()) {
787
+ this.blur();
788
+ }
789
+
790
+ this._toggle();
791
+
792
+ this._iconPressed = false;
793
+ this.filterSelected = false;
794
+ }
795
+
796
+ _beforeOpen() {
797
+ this._itemsBeforeOpen = this.items.map(item => {
798
+ return {
799
+ ref: item,
800
+ selected: item.selected,
801
+ };
802
+ });
803
+
804
+ this._valueBeforeOpen = this.value;
805
+
806
+ if (this.filterSelected) {
807
+ this.selectedItems = this._filteredItems.filter(item => item.selected);
808
+ }
809
+ }
810
+
811
+ onBeforeRendering() {
812
+ const input = this.shadowRoot.querySelector("input");
813
+ this._inputLastValue = this.value;
814
+
815
+ if (input && !input.value) {
816
+ this._filteredItems = this.items;
817
+ }
818
+
819
+ this.items.forEach(item => {
820
+ item._getRealDomRef = () => this.allItemsPopover.querySelector(`*[data-ui5-stable=${item.stableDomRef}]`);
821
+ });
822
+
823
+ const filteredItems = this._filterItems(this.value);
824
+ this._filteredItems = filteredItems;
825
+ }
826
+
827
+ async onAfterRendering() {
828
+ await this._getRespPopover();
829
+ await this._getList();
830
+
831
+ this.toggle(this.shouldDisplayOnlyValueStateMessage);
832
+ this.storeResponsivePopoverWidth();
833
+
834
+ this._deleting = false;
835
+ }
836
+
837
+ get _isPhone() {
838
+ return isPhone();
839
+ }
840
+
841
+ _onIconMousedown() {
842
+ this._iconPressed = true;
843
+ }
844
+
845
+ storeResponsivePopoverWidth() {
846
+ if (this.open && !this._listWidth) {
847
+ this._listWidth = this.list.offsetWidth;
848
+ }
849
+ }
850
+
851
+ toggle(isToggled) {
852
+ if (isToggled && !this.open) {
853
+ this.openPopover();
854
+ } else {
855
+ this.closePopover();
856
+ }
857
+ }
858
+
859
+ handleCancel() {
860
+ this._itemsBeforeOpen.forEach(item => {
861
+ item.ref.selected = item.selected;
862
+ });
863
+
864
+ this.togglePopover();
865
+
866
+ this.value = this._valueBeforeOpen;
867
+ }
868
+
869
+ handleOK() {
870
+ if (isPhone()) {
871
+ this.fireSelectionChange();
872
+ }
873
+
874
+ this.togglePopover();
875
+ }
876
+
877
+ async openPopover() {
878
+ const popover = await this._getPopover();
879
+
880
+ if (popover) {
881
+ popover.showAt(this);
882
+ }
883
+ }
884
+
885
+ _forwardFocusToInner() {
886
+ this._innerInput.focus();
887
+ }
888
+
889
+ async closePopover() {
890
+ const popover = await this._getPopover();
891
+
892
+ popover && popover.close();
893
+ }
894
+
895
+ async _getPopover() {
896
+ const staticAreaItem = await this.getStaticAreaItemDomRef();
897
+ return staticAreaItem.querySelector("[ui5-popover]");
898
+ }
899
+
900
+ async _getResponsivePopover() {
901
+ const staticAreaItem = await this.getStaticAreaItemDomRef();
902
+ return staticAreaItem.querySelector("[ui5-responsive-popover]");
903
+ }
904
+
905
+ async _setValueStateHeader() {
906
+ const responsivePopover = await this._getResponsivePopover();
907
+ this.valueStateHeader = responsivePopover.querySelector("div.ui5-responsive-popover-header.ui5-valuestatemessage-root");
908
+ }
909
+
910
+ get _tokenizer() {
911
+ return this.shadowRoot.querySelector("[ui5-tokenizer]");
912
+ }
913
+
914
+ inputFocusIn() {
915
+ if (!isPhone()) {
916
+ this.focused = true;
917
+ } else {
918
+ this._innerInput.blur();
919
+ }
920
+
921
+ this._lastValue = this.value;
922
+ }
923
+
924
+ inputFocusOut(event) {
925
+ if (!this.shadowRoot.contains(event.relatedTarget) && !this._deleting) {
926
+ this.focused = false;
927
+
928
+ // remove the value if user focus out the input and focus is not going in the popover
929
+ if (!isPhone() && !this.allowCustomValues && (this.staticAreaItem !== event.relatedTarget)) {
930
+ this.value = "";
931
+ }
932
+ }
933
+ }
934
+
935
+ _readonlyIconClick() {
936
+ this._inputDom.focus();
937
+ }
938
+
939
+ get editable() {
940
+ return !this.readonly;
941
+ }
942
+
943
+ get _isFocusInside() {
944
+ return !isPhone() && (this.focused || this._tokenizerFocused);
945
+ }
946
+
947
+ get selectedItemsListMode() {
948
+ return this.readonly ? "None" : "MultiSelect";
949
+ }
950
+
951
+ get _listItemsType() {
952
+ return this.readonly ? "Inactive" : "Active";
953
+ }
954
+
955
+ get hasValueState() {
956
+ return this.valueState !== ValueState.None;
957
+ }
958
+
959
+ get hasValueStateMessage() {
960
+ return this.hasValueState && this.valueState !== ValueState.Success;
961
+ }
962
+
963
+ get valueStateText() {
964
+ let key = this.valueState;
965
+
966
+ if (this._performingSelectionTwice) {
967
+ key = "Error_Selection";
968
+ }
969
+
970
+ return this.valueStateTextMappings[key];
971
+ }
972
+
973
+ get valueStateTextId() {
974
+ return this.hasValueState ? `${this._id}-valueStateDesc` : undefined;
975
+ }
976
+
977
+ get valueStateMessageText() {
978
+ return this.getSlottedNodes("valueStateMessage").map(el => el.cloneNode(true));
979
+ }
980
+
981
+ /**
982
+ * This method is relevant for sap_horizon theme only
983
+ */
984
+ get _valueStateMessageIcon() {
985
+ const iconPerValueState = {
986
+ Error: "error",
987
+ Warning: "alert",
988
+ Success: "sys-enter-2",
989
+ Information: "information",
990
+ };
991
+
992
+ return this.valueState !== ValueState.None ? iconPerValueState[this.valueState] : "";
993
+ }
994
+
995
+ get _tokensCountText() {
996
+ if (!this._tokenizer) {
997
+ return;
998
+ }
999
+ return this._tokenizer._tokensCountText();
1000
+ }
1001
+
1002
+ get _tokensCountTextId() {
1003
+ return `${this._id}-hiddenText-nMore`;
1004
+ }
1005
+
1006
+ get ariaDescribedByText() {
1007
+ return this.valueStateTextId ? `${this._tokensCountTextId} ${this.valueStateTextId}` : `${this._tokensCountTextId}`;
1008
+ }
1009
+
1010
+ get shouldDisplayDefaultValueStateMessage() {
1011
+ return !this.valueStateMessage.length && this.hasValueStateMessage;
1012
+ }
1013
+
1014
+ get shouldDisplayOnlyValueStateMessage() {
1015
+ return this.focused && this.hasValueStateMessage && !this._iconPressed;
1016
+ }
1017
+
1018
+ get valueStateTextMappings() {
1019
+ return {
1020
+ "Success": MultiComboBox.i18nBundle.getText(VALUE_STATE_SUCCESS),
1021
+ "Error": MultiComboBox.i18nBundle.getText(VALUE_STATE_ERROR),
1022
+ "Error_Selection": MultiComboBox.i18nBundle.getText(VALUE_STATE_ERROR_ALREADY_SELECTED),
1023
+ "Warning": MultiComboBox.i18nBundle.getText(VALUE_STATE_WARNING),
1024
+ "Information": MultiComboBox.i18nBundle.getText(VALUE_STATE_INFORMATION),
1025
+ };
1026
+ }
1027
+
1028
+ get _innerInput() {
1029
+ if (isPhone()) {
1030
+ if (this.allItemsPopover.opened) {
1031
+ return this.allItemsPopover.querySelector("input");
1032
+ }
1033
+ }
1034
+
1035
+ return this.getDomRef().querySelector("#ui5-multi-combobox-input");
1036
+ }
1037
+
1038
+ get _headerTitleText() {
1039
+ return MultiComboBox.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
1040
+ }
1041
+
1042
+ get _iconAccessibleNameText() {
1043
+ return MultiComboBox.i18nBundle.getText(SELECT_OPTIONS);
1044
+ }
1045
+
1046
+ get _dialogOkButton() {
1047
+ return MultiComboBox.i18nBundle.getText(MULTICOMBOBOX_DIALOG_OK_BUTTON);
1048
+ }
1049
+
1050
+ get _tokenizerExpanded() {
1051
+ return (this._isFocusInside || this.open) && !this.readonly;
1052
+ }
1053
+
1054
+ get classes() {
1055
+ return {
1056
+ popover: {
1057
+ "ui5-multi-combobox-all-items-responsive-popover": true,
1058
+ "ui5-suggestions-popover": !this.isPhone,
1059
+ "ui5-suggestions-popover-with-value-state-header": !this.isPhone && this.hasValueStateMessage,
1060
+ },
1061
+ popoverValueState: {
1062
+ "ui5-valuestatemessage-root": true,
1063
+ "ui5-valuestatemessage-header": true,
1064
+ "ui5-valuestatemessage--success": this.valueState === ValueState.Success,
1065
+ "ui5-valuestatemessage--error": this.valueState === ValueState.Error,
1066
+ "ui5-valuestatemessage--warning": this.valueState === ValueState.Warning,
1067
+ "ui5-valuestatemessage--information": this.valueState === ValueState.Information,
1068
+ },
1069
+ };
1070
+ }
1071
+
1072
+ get styles() {
1073
+ return {
1074
+ popoverValueStateMessage: {
1075
+ "width": `${this._listWidth}px`,
1076
+ "display": this._listWidth === 0 ? "none" : "inline-block",
1077
+ },
1078
+ popoverHeader: {
1079
+ "max-width": isPhone() ? "100%" : `${this._inputWidth}px`,
1080
+ },
1081
+ };
1082
+ }
1083
+
1084
+ static async onDefine() {
1085
+ MultiComboBox.i18nBundle = await getI18nBundle("@ui5/webcomponents");
1086
+ }
1087
+ }
1088
+
1089
+ MultiComboBox.define();
1090
+
1091
+ export default MultiComboBox;