@ui5/webcomponents 0.0.0-aeb93167c → 0.0.0-b053ad005

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 (742) hide show
  1. package/CHANGELOG.md +343 -0
  2. package/README.md +144 -52
  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 +2 -1
  7. package/dist/Avatar.js +189 -49
  8. package/dist/AvatarGroup.js +603 -0
  9. package/dist/Badge.js +45 -19
  10. package/dist/Breadcrumbs.js +563 -0
  11. package/dist/BreadcrumbsItem.js +109 -0
  12. package/dist/BusyIndicator.js +121 -34
  13. package/dist/Button.js +110 -66
  14. package/dist/Calendar.js +324 -648
  15. package/dist/CalendarDate.js +45 -0
  16. package/dist/CalendarHeader.js +110 -59
  17. package/dist/CalendarPart.js +111 -0
  18. package/dist/Card.js +38 -198
  19. package/dist/CardHeader.js +288 -0
  20. package/dist/Carousel.js +253 -94
  21. package/dist/CheckBox.js +138 -70
  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 +348 -144
  27. package/dist/ComboBoxFilters.js +8 -1
  28. package/dist/ComboBoxGroupItem.js +70 -0
  29. package/dist/ComboBoxItem.js +11 -24
  30. package/dist/CustomListItem.js +36 -2
  31. package/dist/DateComponentBase.js +170 -0
  32. package/dist/DatePicker.js +264 -519
  33. package/dist/DateRangePicker.js +162 -426
  34. package/dist/DateTimePicker.js +94 -413
  35. package/dist/DayPicker.js +443 -648
  36. package/dist/Dialog.js +220 -58
  37. package/dist/DurationPicker.js +109 -511
  38. package/dist/FileUploader.js +70 -31
  39. package/dist/GroupHeaderListItem.js +22 -13
  40. package/dist/Icon.js +103 -41
  41. package/dist/Input.js +346 -155
  42. package/dist/Interfaces.js +192 -0
  43. package/dist/Label.js +27 -12
  44. package/dist/Link.js +105 -43
  45. package/dist/List.js +377 -104
  46. package/dist/ListItem.js +60 -13
  47. package/dist/ListItemBase.js +29 -2
  48. package/dist/MessageStrip.js +47 -46
  49. package/dist/MonthPicker.js +171 -225
  50. package/dist/MultiComboBox.js +356 -135
  51. package/dist/MultiComboBoxItem.js +7 -2
  52. package/dist/MultiInput.js +55 -24
  53. package/dist/Option.js +48 -5
  54. package/dist/Panel.js +63 -73
  55. package/dist/Popover.js +195 -80
  56. package/dist/Popup.js +151 -61
  57. package/dist/ProgressIndicator.js +28 -20
  58. package/dist/RadioButton.js +126 -43
  59. package/dist/RadioButtonGroup.js +53 -29
  60. package/dist/RangeSlider.js +769 -0
  61. package/dist/RatingIndicator.js +27 -37
  62. package/dist/ResponsivePopover.js +56 -42
  63. package/dist/SegmentedButton.js +102 -68
  64. package/dist/SegmentedButtonItem.js +109 -0
  65. package/dist/Select.js +275 -116
  66. package/dist/Slider.js +320 -0
  67. package/dist/SliderBase.js +842 -0
  68. package/dist/StandardListItem.js +35 -9
  69. package/dist/StepInput.js +681 -0
  70. package/dist/SuggestionGroupItem.js +64 -0
  71. package/dist/SuggestionItem.js +13 -26
  72. package/dist/SuggestionListItem.js +17 -6
  73. package/dist/Switch.js +52 -32
  74. package/dist/Tab.js +47 -26
  75. package/dist/TabContainer.js +94 -34
  76. package/dist/TabSeparator.js +1 -0
  77. package/dist/Table.js +474 -22
  78. package/dist/TableCell.js +11 -9
  79. package/dist/TableColumn.js +13 -3
  80. package/dist/TableGroupRow.js +160 -0
  81. package/dist/TableRow.js +210 -11
  82. package/dist/TextArea.js +86 -46
  83. package/dist/TimePicker.js +27 -743
  84. package/dist/TimePickerBase.js +463 -0
  85. package/dist/TimeSelection.js +493 -0
  86. package/dist/Title.js +16 -9
  87. package/dist/Toast.js +19 -8
  88. package/dist/ToggleButton.js +21 -8
  89. package/dist/Token.js +32 -16
  90. package/dist/Tokenizer.js +75 -42
  91. package/dist/Tree.js +97 -41
  92. package/dist/TreeItem.js +44 -9
  93. package/dist/TreeListItem.js +86 -2
  94. package/dist/WheelSlider.js +58 -58
  95. package/dist/YearPicker.js +188 -284
  96. package/dist/api.json +6877 -1
  97. package/dist/features/ColorPaletteMoreColors.js +42 -0
  98. package/dist/features/InputElementsFormSupport.js +0 -1
  99. package/dist/features/InputSuggestions.js +131 -30
  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 -1
  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 -1
  154. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  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 -19
  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 -16
  164. package/dist/generated/templates/BadgeTemplate.lit.js +5 -13
  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 -13
  168. package/dist/generated/templates/ButtonTemplate.lit.js +6 -13
  169. package/dist/generated/templates/CalendarHeaderTemplate.lit.js +6 -11
  170. package/dist/generated/templates/CalendarTemplate.lit.js +4 -11
  171. package/dist/generated/templates/CardHeaderTemplate.lit.js +12 -0
  172. package/dist/generated/templates/CardTemplate.lit.js +5 -17
  173. package/dist/generated/templates/CarouselTemplate.lit.js +13 -19
  174. package/dist/generated/templates/CheckBoxTemplate.lit.js +7 -14
  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 -25
  181. package/dist/generated/templates/ComboBoxTemplate.lit.js +8 -14
  182. package/dist/generated/templates/CustomListItemTemplate.lit.js +13 -20
  183. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +7 -13
  184. package/dist/generated/templates/DatePickerTemplate.lit.js +6 -13
  185. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +9 -19
  186. package/dist/generated/templates/DayPickerTemplate.lit.js +13 -19
  187. package/dist/generated/templates/DialogTemplate.lit.js +9 -15
  188. package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +7 -14
  189. package/dist/generated/templates/FileUploaderTemplate.lit.js +7 -14
  190. package/dist/generated/templates/GroupHeaderListItemTemplate.lit.js +4 -11
  191. package/dist/generated/templates/IconTemplate.lit.js +6 -13
  192. package/dist/generated/templates/InputPopoverTemplate.lit.js +24 -31
  193. package/dist/generated/templates/InputTemplate.lit.js +9 -15
  194. package/dist/generated/templates/LabelTemplate.lit.js +4 -11
  195. package/dist/generated/templates/LinkTemplate.lit.js +5 -12
  196. package/dist/generated/templates/ListItemTemplate.lit.js +13 -20
  197. package/dist/generated/templates/ListTemplate.lit.js +12 -16
  198. package/dist/generated/templates/MessageStripTemplate.lit.js +8 -15
  199. package/dist/generated/templates/MonthPickerTemplate.lit.js +6 -13
  200. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +23 -27
  201. package/dist/generated/templates/MultiComboBoxTemplate.lit.js +10 -16
  202. package/dist/generated/templates/MultiInputTemplate.lit.js +13 -19
  203. package/dist/generated/templates/PanelTemplate.lit.js +9 -14
  204. package/dist/generated/templates/PopoverTemplate.lit.js +9 -16
  205. package/dist/generated/templates/PopupBlockLayerTemplate.lit.js +4 -11
  206. package/dist/generated/templates/PopupTemplate.lit.js +4 -11
  207. package/dist/generated/templates/ProgressIndicatorTemplate.lit.js +14 -17
  208. package/dist/generated/templates/RadioButtonTemplate.lit.js +7 -14
  209. package/dist/generated/templates/RangeSliderTemplate.lit.js +13 -0
  210. package/dist/generated/templates/RatingIndicatorTemplate.lit.js +11 -16
  211. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +16 -21
  212. package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +8 -0
  213. package/dist/generated/templates/SegmentedButtonTemplate.lit.js +4 -11
  214. package/dist/generated/templates/SelectPopoverTemplate.lit.js +20 -27
  215. package/dist/generated/templates/SelectTemplate.lit.js +6 -12
  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 -28
  219. package/dist/generated/templates/StepInputTemplate.lit.js +8 -0
  220. package/dist/generated/templates/SuggestionListItemTemplate.lit.js +24 -31
  221. package/dist/generated/templates/SwitchTemplate.lit.js +8 -13
  222. package/dist/generated/templates/TabContainerPopoverTemplate.lit.js +6 -13
  223. package/dist/generated/templates/TabContainerTemplate.lit.js +16 -23
  224. package/dist/generated/templates/TabInOverflowTemplate.lit.js +6 -13
  225. package/dist/generated/templates/TabInStripTemplate.lit.js +8 -17
  226. package/dist/generated/templates/TabSeparatorTemplate.lit.js +4 -11
  227. package/dist/generated/templates/TabTemplate.lit.js +4 -11
  228. package/dist/generated/templates/TableCellTemplate.lit.js +4 -11
  229. package/dist/generated/templates/TableColumnTemplate.lit.js +4 -11
  230. package/dist/generated/templates/TableGroupRowTemplate.lit.js +7 -0
  231. package/dist/generated/templates/TableRowTemplate.lit.js +12 -18
  232. package/dist/generated/templates/TableTemplate.lit.js +13 -15
  233. package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +8 -15
  234. package/dist/generated/templates/TextAreaTemplate.lit.js +8 -15
  235. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +4 -15
  236. package/dist/generated/templates/TimePickerTemplate.lit.js +6 -13
  237. package/dist/generated/templates/TimeSelectionTemplate.lit.js +11 -0
  238. package/dist/generated/templates/TitleTemplate.lit.js +10 -17
  239. package/dist/generated/templates/ToastTemplate.lit.js +5 -11
  240. package/dist/generated/templates/ToggleButtonTemplate.lit.js +6 -13
  241. package/dist/generated/templates/TokenTemplate.lit.js +7 -14
  242. package/dist/generated/templates/TokenizerPopoverTemplate.lit.js +9 -16
  243. package/dist/generated/templates/TokenizerTemplate.lit.js +6 -13
  244. package/dist/generated/templates/TreeListItemTemplate.lit.js +18 -24
  245. package/dist/generated/templates/TreeTemplate.lit.js +5 -12
  246. package/dist/generated/templates/WheelSliderTemplate.lit.js +7 -14
  247. package/dist/generated/templates/YearPickerTemplate.lit.js +6 -13
  248. package/dist/generated/themes/Avatar.css.js +5 -5
  249. package/dist/generated/themes/AvatarGroup.css.js +8 -0
  250. package/dist/generated/themes/Badge.css.js +5 -5
  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 +5 -5
  255. package/dist/generated/themes/Button.css.js +5 -5
  256. package/dist/generated/themes/Button.ie11.css.js +8 -0
  257. package/dist/generated/themes/Calendar.css.js +5 -5
  258. package/dist/generated/themes/CalendarHeader.css.js +5 -5
  259. package/dist/generated/themes/Card.css.js +5 -5
  260. package/dist/generated/themes/CardHeader.css.js +8 -0
  261. package/dist/generated/themes/Carousel.css.js +5 -5
  262. package/dist/generated/themes/CheckBox.css.js +5 -5
  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 +5 -5
  269. package/dist/generated/themes/ComboBoxPopover.css.js +5 -5
  270. package/dist/generated/themes/CustomListItem.css.js +5 -5
  271. package/dist/generated/themes/DatePicker.css.js +5 -5
  272. package/dist/generated/themes/DatePickerPopover.css.js +5 -5
  273. package/dist/generated/themes/DateRangePicker.css.js +5 -5
  274. package/dist/generated/themes/DateTimePicker.css.js +5 -5
  275. package/dist/generated/themes/DateTimePickerPopover.css.js +5 -5
  276. package/dist/generated/themes/DayPicker.css.js +5 -5
  277. package/dist/generated/themes/Dialog.css.js +5 -5
  278. package/dist/generated/themes/FileUploader.css.js +5 -5
  279. package/dist/generated/themes/GroupHeaderListItem.css.js +5 -5
  280. package/dist/generated/themes/GrowingButton.css.js +8 -0
  281. package/dist/generated/themes/Icon.css.js +5 -5
  282. package/dist/generated/themes/Input.css.js +5 -5
  283. package/dist/generated/themes/InputIcon.css.js +5 -5
  284. package/dist/generated/themes/InvisibleTextStyles.css.js +5 -5
  285. package/dist/generated/themes/Label.css.js +5 -5
  286. package/dist/generated/themes/Link.css.js +5 -5
  287. package/dist/generated/themes/List.css.js +5 -5
  288. package/dist/generated/themes/ListItem.css.js +5 -5
  289. package/dist/generated/themes/ListItemBase.css.js +5 -5
  290. package/dist/generated/themes/MessageStrip.css.js +5 -5
  291. package/dist/generated/themes/MonthPicker.css.js +5 -5
  292. package/dist/generated/themes/MultiComboBox.css.js +5 -5
  293. package/dist/generated/themes/MultiInput.css.js +5 -5
  294. package/dist/generated/themes/Panel.css.js +5 -5
  295. package/dist/generated/themes/Popover.css.js +5 -5
  296. package/dist/generated/themes/Popup.css.js +5 -5
  297. package/dist/generated/themes/PopupGlobal.css.js +8 -0
  298. package/dist/generated/themes/PopupStaticAreaStyles.css.js +5 -5
  299. package/dist/generated/themes/PopupsCommon.css.js +5 -5
  300. package/dist/generated/themes/ProgressIndicator.css.js +5 -5
  301. package/dist/generated/themes/RadioButton.css.js +5 -5
  302. package/dist/generated/themes/RatingIndicator.css.js +5 -5
  303. package/dist/generated/themes/ResponsivePopover.css.js +5 -5
  304. package/dist/generated/themes/ResponsivePopoverCommon.css.js +5 -5
  305. package/dist/generated/themes/SegmentedButton.css.js +5 -5
  306. package/dist/generated/themes/Select.css.js +5 -5
  307. package/dist/generated/themes/SelectPopover.css.js +5 -5
  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 +5 -5
  312. package/dist/generated/themes/Tab.css.js +5 -5
  313. package/dist/generated/themes/TabContainer.css.js +5 -5
  314. package/dist/generated/themes/TabInOverflow.css.js +5 -5
  315. package/dist/generated/themes/TabInStrip.css.js +5 -5
  316. package/dist/generated/themes/Table.css.js +5 -5
  317. package/dist/generated/themes/TableCell.css.js +5 -5
  318. package/dist/generated/themes/TableColumn.css.js +5 -5
  319. package/dist/generated/themes/TableGroupRow.css.js +8 -0
  320. package/dist/generated/themes/TableRow.css.js +5 -5
  321. package/dist/generated/themes/TapHighlightColor.css.js +8 -0
  322. package/dist/generated/themes/TextArea.css.js +5 -5
  323. package/dist/generated/themes/TimePicker.css.js +5 -5
  324. package/dist/generated/themes/TimePickerPopover.css.js +5 -5
  325. package/dist/generated/themes/TimeSelection.css.js +8 -0
  326. package/dist/generated/themes/Title.css.js +5 -5
  327. package/dist/generated/themes/Toast.css.js +5 -5
  328. package/dist/generated/themes/ToggleButton.css.js +5 -5
  329. package/dist/generated/themes/ToggleButton.ie11.css.js +8 -0
  330. package/dist/generated/themes/Token.css.js +5 -5
  331. package/dist/generated/themes/Tokenizer.css.js +5 -5
  332. package/dist/generated/themes/Tree.css.js +5 -5
  333. package/dist/generated/themes/TreeListItem.css.js +5 -5
  334. package/dist/generated/themes/ValueStateMessage.css.js +5 -5
  335. package/dist/generated/themes/WheelSlider.css.js +5 -5
  336. package/dist/generated/themes/YearPicker.css.js +5 -5
  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 -1
  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 -1
  343. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  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 +1 -1
  397. package/dist/popup-utils/PopoverRegistry.js +2 -4
  398. package/dist/timepicker-utils/TimeSlider.js +15 -13
  399. package/{src/types/AvatarBackgroundColor.js → dist/types/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 +3 -3
  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 +1 -1
  414. package/dist/types/ListMode.js +1 -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 +1 -1
  422. package/dist/types/SemanticColor.js +1 -1
  423. package/dist/types/SwitchDesign.js +40 -0
  424. package/dist/types/TabContainerTabsPlacement.js +5 -5
  425. package/dist/types/TabLayout.js +1 -1
  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 +18 -7
  452. package/src/Assets-static.js +6 -0
  453. package/src/Assets.js +2 -1
  454. package/src/Avatar.hbs +14 -3
  455. package/src/Avatar.js +189 -49
  456. package/src/AvatarGroup.hbs +30 -0
  457. package/src/AvatarGroup.js +603 -0
  458. package/src/Badge.hbs +7 -4
  459. package/src/Badge.js +45 -19
  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 +28 -14
  465. package/src/BusyIndicator.js +121 -34
  466. package/src/Button.hbs +5 -3
  467. package/src/Button.js +110 -66
  468. package/src/Calendar.hbs +53 -48
  469. package/src/Calendar.js +324 -648
  470. package/src/CalendarDate.js +45 -0
  471. package/src/CalendarHeader.hbs +29 -36
  472. package/src/CalendarHeader.js +110 -59
  473. package/src/CalendarPart.js +111 -0
  474. package/src/Card.hbs +7 -39
  475. package/src/Card.js +38 -198
  476. package/src/CardHeader.hbs +35 -0
  477. package/src/CardHeader.js +288 -0
  478. package/src/Carousel.hbs +23 -16
  479. package/src/Carousel.js +253 -94
  480. package/src/CheckBox.hbs +10 -7
  481. package/src/CheckBox.js +138 -70
  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 +7 -2
  492. package/src/ComboBox.js +348 -144
  493. package/src/ComboBoxFilters.js +8 -1
  494. package/src/ComboBoxGroupItem.js +70 -0
  495. package/src/ComboBoxItem.js +11 -24
  496. package/src/ComboBoxPopover.hbs +26 -16
  497. package/src/CustomListItem.js +36 -2
  498. package/src/DateComponentBase.js +170 -0
  499. package/src/DatePicker.hbs +5 -4
  500. package/src/DatePicker.js +264 -519
  501. package/src/DatePickerPopover.hbs +22 -17
  502. package/src/DateRangePicker.js +162 -426
  503. package/src/DateTimePicker.js +94 -413
  504. package/src/DateTimePickerPopover.hbs +28 -52
  505. package/src/DayPicker.hbs +18 -12
  506. package/src/DayPicker.js +443 -648
  507. package/src/Dialog.hbs +14 -10
  508. package/src/Dialog.js +220 -58
  509. package/src/DurationPicker.js +109 -511
  510. package/src/FileUploader.hbs +3 -0
  511. package/src/FileUploader.js +70 -31
  512. package/src/FileUploaderPopover.hbs +2 -1
  513. package/src/GroupHeaderListItem.hbs +4 -4
  514. package/src/GroupHeaderListItem.js +22 -13
  515. package/src/Icon.hbs +4 -3
  516. package/src/Icon.js +103 -41
  517. package/src/Input.hbs +17 -6
  518. package/src/Input.js +346 -155
  519. package/src/InputPopover.hbs +11 -7
  520. package/src/Interfaces.js +192 -0
  521. package/src/Label.hbs +1 -1
  522. package/src/Label.js +27 -12
  523. package/src/Link.hbs +3 -2
  524. package/src/Link.js +105 -43
  525. package/src/List.hbs +76 -37
  526. package/src/List.js +377 -104
  527. package/src/ListItem.hbs +20 -7
  528. package/src/ListItem.js +60 -13
  529. package/src/ListItemBase.js +29 -2
  530. package/src/MessageStrip.hbs +10 -11
  531. package/src/MessageStrip.js +47 -46
  532. package/src/MonthPicker.hbs +6 -6
  533. package/src/MonthPicker.js +171 -225
  534. package/src/MultiComboBox.hbs +10 -6
  535. package/src/MultiComboBox.js +356 -135
  536. package/src/MultiComboBoxItem.js +7 -2
  537. package/src/MultiComboBoxPopover.hbs +42 -18
  538. package/src/MultiInput.hbs +2 -1
  539. package/src/MultiInput.js +55 -24
  540. package/src/Option.js +48 -5
  541. package/src/Panel.hbs +23 -16
  542. package/src/Panel.js +63 -73
  543. package/src/Popover.js +195 -80
  544. package/src/Popup.hbs +5 -0
  545. package/src/Popup.js +151 -61
  546. package/src/ProgressIndicator.hbs +7 -1
  547. package/src/ProgressIndicator.js +28 -20
  548. package/src/RadioButton.hbs +7 -4
  549. package/src/RadioButton.js +126 -43
  550. package/src/RadioButtonGroup.js +53 -29
  551. package/src/RangeSlider.hbs +70 -0
  552. package/src/RangeSlider.js +769 -0
  553. package/src/RatingIndicator.hbs +5 -3
  554. package/src/RatingIndicator.js +27 -37
  555. package/src/ResponsivePopover.hbs +13 -8
  556. package/src/ResponsivePopover.js +56 -42
  557. package/src/SegmentedButton.hbs +12 -5
  558. package/src/SegmentedButton.js +102 -68
  559. package/src/SegmentedButtonItem.hbs +42 -0
  560. package/src/SegmentedButtonItem.js +109 -0
  561. package/src/Select.hbs +26 -17
  562. package/src/Select.js +275 -116
  563. package/src/SelectPopover.hbs +27 -24
  564. package/src/Slider.hbs +42 -0
  565. package/src/Slider.js +320 -0
  566. package/src/SliderBase.hbs +38 -0
  567. package/src/SliderBase.js +842 -0
  568. package/src/StandardListItem.hbs +7 -5
  569. package/src/StandardListItem.js +35 -9
  570. package/src/StepInput.hbs +77 -0
  571. package/src/StepInput.js +681 -0
  572. package/src/SuggestionGroupItem.js +64 -0
  573. package/src/SuggestionItem.js +13 -26
  574. package/src/SuggestionListItem.hbs +4 -4
  575. package/src/SuggestionListItem.js +17 -6
  576. package/src/Switch.hbs +19 -3
  577. package/src/Switch.js +52 -32
  578. package/src/Tab.js +47 -26
  579. package/src/TabContainer.hbs +43 -26
  580. package/src/TabContainer.js +94 -34
  581. package/src/TabContainerPopover.hbs +2 -1
  582. package/src/TabInStrip.hbs +1 -6
  583. package/src/TabSeparator.hbs +1 -1
  584. package/src/TabSeparator.js +1 -0
  585. package/src/Table.hbs +95 -25
  586. package/src/Table.js +474 -22
  587. package/src/TableCell.hbs +1 -0
  588. package/src/TableCell.js +11 -9
  589. package/src/TableColumn.hbs +2 -0
  590. package/src/TableColumn.js +13 -3
  591. package/src/TableGroupRow.hbs +12 -0
  592. package/src/TableGroupRow.js +160 -0
  593. package/src/TableRow.hbs +29 -2
  594. package/src/TableRow.js +210 -11
  595. package/src/TextArea.hbs +1 -3
  596. package/src/TextArea.js +86 -46
  597. package/src/TextAreaPopover.hbs +2 -1
  598. package/src/TimePicker.hbs +6 -3
  599. package/src/TimePicker.js +27 -743
  600. package/src/TimePickerBase.js +463 -0
  601. package/src/TimePickerPopover.hbs +28 -52
  602. package/src/TimeSelection.hbs +60 -0
  603. package/src/TimeSelection.js +493 -0
  604. package/src/Title.js +16 -9
  605. package/src/Toast.hbs +13 -11
  606. package/src/Toast.js +19 -8
  607. package/src/ToggleButton.js +21 -8
  608. package/src/Token.hbs +2 -0
  609. package/src/Token.js +32 -16
  610. package/src/Tokenizer.hbs +1 -0
  611. package/src/Tokenizer.js +75 -42
  612. package/src/TokenizerPopover.hbs +1 -1
  613. package/src/Tree.hbs +10 -2
  614. package/src/Tree.js +97 -41
  615. package/src/TreeItem.js +44 -9
  616. package/src/TreeListItem.hbs +15 -4
  617. package/src/TreeListItem.js +86 -2
  618. package/src/WheelSlider.hbs +17 -10
  619. package/src/WheelSlider.js +58 -58
  620. package/src/YearPicker.hbs +9 -7
  621. package/src/YearPicker.js +188 -284
  622. package/src/features/ColorPaletteMoreColors.js +42 -0
  623. package/src/features/InputElementsFormSupport.js +0 -1
  624. package/src/features/InputSuggestions.js +131 -30
  625. package/src/i18n/messagebundle.properties +144 -189
  626. package/src/i18n/messagebundle_ar.properties +99 -115
  627. package/src/i18n/messagebundle_bg.properties +99 -115
  628. package/src/i18n/messagebundle_ca.properties +99 -115
  629. package/src/i18n/messagebundle_cs.properties +99 -115
  630. package/src/i18n/messagebundle_cy.properties +224 -0
  631. package/src/i18n/messagebundle_da.properties +99 -115
  632. package/src/i18n/messagebundle_de.properties +99 -115
  633. package/src/i18n/messagebundle_el.properties +99 -115
  634. package/src/i18n/messagebundle_en.properties +99 -115
  635. package/src/i18n/messagebundle_en_GB.properties +224 -0
  636. package/src/i18n/messagebundle_en_US_sappsd.properties +99 -115
  637. package/src/i18n/messagebundle_en_US_saprigi.properties +224 -0
  638. package/src/i18n/messagebundle_en_US_saptrc.properties +99 -115
  639. package/src/i18n/messagebundle_es.properties +99 -115
  640. package/src/i18n/messagebundle_es_MX.properties +224 -0
  641. package/src/i18n/messagebundle_et.properties +99 -115
  642. package/src/i18n/messagebundle_fi.properties +99 -115
  643. package/src/i18n/messagebundle_fr.properties +99 -115
  644. package/src/i18n/messagebundle_fr_CA.properties +224 -0
  645. package/src/i18n/messagebundle_hi.properties +99 -115
  646. package/src/i18n/messagebundle_hr.properties +99 -115
  647. package/src/i18n/messagebundle_hu.properties +99 -115
  648. package/src/i18n/messagebundle_id.properties +224 -0
  649. package/src/i18n/messagebundle_in.properties +172 -0
  650. package/src/i18n/messagebundle_it.properties +99 -115
  651. package/src/i18n/messagebundle_iw.properties +99 -115
  652. package/src/i18n/messagebundle_ja.properties +100 -116
  653. package/src/i18n/messagebundle_kk.properties +99 -115
  654. package/src/i18n/messagebundle_ko.properties +99 -115
  655. package/src/i18n/messagebundle_lt.properties +99 -115
  656. package/src/i18n/messagebundle_lv.properties +99 -115
  657. package/src/i18n/messagebundle_ms.properties +99 -115
  658. package/src/i18n/messagebundle_nl.properties +99 -115
  659. package/src/i18n/messagebundle_no.properties +99 -115
  660. package/src/i18n/messagebundle_pl.properties +99 -115
  661. package/src/i18n/messagebundle_pt.properties +99 -115
  662. package/src/i18n/messagebundle_pt_PT.properties +224 -0
  663. package/src/i18n/messagebundle_ro.properties +98 -114
  664. package/src/i18n/messagebundle_ru.properties +99 -115
  665. package/src/i18n/messagebundle_sh.properties +99 -115
  666. package/src/i18n/messagebundle_sk.properties +99 -115
  667. package/src/i18n/messagebundle_sl.properties +99 -115
  668. package/src/i18n/messagebundle_sv.properties +99 -115
  669. package/src/i18n/messagebundle_th.properties +99 -115
  670. package/src/i18n/messagebundle_tr.properties +99 -115
  671. package/src/i18n/messagebundle_uk.properties +101 -117
  672. package/src/i18n/messagebundle_vi.properties +99 -115
  673. package/src/i18n/messagebundle_zh_CN.properties +99 -115
  674. package/src/i18n/messagebundle_zh_TW.properties +99 -115
  675. package/src/popup-utils/OpenedPopupsRegistry.js +1 -1
  676. package/src/popup-utils/PopoverRegistry.js +2 -4
  677. package/src/timepicker-utils/TimeSlider.js +15 -13
  678. package/{dist/types/AvatarBackgroundColor.js → src/types/AvatarColorScheme.js} +9 -9
  679. package/src/types/AvatarGroupType.js +43 -0
  680. package/src/types/AvatarShape.js +1 -1
  681. package/src/types/AvatarSize.js +1 -1
  682. package/src/types/BreadcrumbsDesign.js +42 -0
  683. package/src/types/BreadcrumbsSeparatorStyle.js +69 -0
  684. package/src/types/BusyIndicatorSize.js +1 -1
  685. package/src/types/ButtonDesign.js +8 -1
  686. package/src/types/CalendarSelectionMode.js +47 -0
  687. package/src/types/CarouselArrowsPlacement.js +3 -3
  688. package/src/types/GrowingMode.js +48 -0
  689. package/src/types/InputType.js +7 -7
  690. package/src/types/LinkDesign.js +1 -1
  691. package/src/types/ListGrowingMode.js +15 -0
  692. package/src/types/ListItemType.js +1 -1
  693. package/src/types/ListMode.js +1 -1
  694. package/src/types/ListSeparators.js +1 -1
  695. package/src/types/{MessageStripType.js → MessageStripDesign.js} +7 -7
  696. package/src/types/PanelAccessibleRole.js +1 -1
  697. package/src/types/PopoverHorizontalAlign.js +1 -1
  698. package/src/types/PopoverPlacementType.js +2 -2
  699. package/src/types/PopoverVerticalAlign.js +1 -2
  700. package/src/types/Priority.js +1 -1
  701. package/src/types/SemanticColor.js +1 -1
  702. package/src/types/SwitchDesign.js +40 -0
  703. package/src/types/TabContainerTabsPlacement.js +5 -5
  704. package/src/types/TabLayout.js +1 -1
  705. package/src/types/TableGrowingMode.js +15 -0
  706. package/src/types/TableMode.js +47 -0
  707. package/src/types/TableRowType.js +40 -0
  708. package/src/types/TitleLevel.js +1 -1
  709. package/src/types/ToastPlacement.js +1 -2
  710. package/src/types/WrappingType.js +41 -0
  711. package/dist/Timeline.js +0 -99
  712. package/dist/TimelineItem.js +0 -156
  713. package/dist/generated/templates/ComboBoxItemTemplate.lit.js +0 -14
  714. package/dist/generated/templates/DateRangePickerTemplate.lit.js +0 -16
  715. package/dist/generated/templates/DurationPickerPopoverTemplate.lit.js +0 -17
  716. package/dist/generated/templates/DurationPickerTemplate.lit.js +0 -16
  717. package/dist/generated/templates/TimelineItemTemplate.lit.js +0 -19
  718. package/dist/generated/templates/TimelineTemplate.lit.js +0 -15
  719. package/dist/generated/themes/ComboBoxItem.css.js +0 -8
  720. package/dist/generated/themes/DurationPicker.css.js +0 -8
  721. package/dist/generated/themes/DurationPickerPopover.css.js +0 -8
  722. package/dist/generated/themes/Timeline.css.js +0 -8
  723. package/dist/generated/themes/TimelineItem.css.js +0 -8
  724. package/dist/popup-utils/PopupUtils.js +0 -84
  725. package/dist/types/AvatarFitType.js +0 -40
  726. package/dist/webcomponentsjs/package.json +0 -46
  727. package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
  728. package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
  729. package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
  730. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
  731. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
  732. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
  733. package/src/ComboBoxItem.hbs +0 -0
  734. package/src/DateRangePicker.hbs +0 -1
  735. package/src/DurationPicker.hbs +0 -29
  736. package/src/DurationPickerPopover.hbs +0 -48
  737. package/src/Timeline.hbs +0 -9
  738. package/src/Timeline.js +0 -99
  739. package/src/TimelineItem.hbs +0 -39
  740. package/src/TimelineItem.js +0 -156
  741. package/src/popup-utils/PopupUtils.js +0 -84
  742. package/src/types/AvatarFitType.js +0 -40
@@ -5,36 +5,42 @@ import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
5
5
  import {
6
6
  isShow,
7
7
  isDown,
8
+ isUp,
8
9
  isBackSpace,
9
10
  isSpace,
10
11
  isLeft,
11
12
  isRight,
13
+ isEscape,
14
+ isEnter,
12
15
  } from "@ui5/webcomponents-base/dist/Keys.js";
13
16
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
14
17
  import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
15
18
  import { isIE, isPhone } from "@ui5/webcomponents-base/dist/Device.js";
16
- import { fetchI18nBundle, getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
19
+ import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
17
20
  import "@ui5/webcomponents-icons/dist/decline.js";
18
21
  import "@ui5/webcomponents-icons/dist/multiselect-all.js";
22
+ import "@ui5/webcomponents-icons/dist/not-editable.js";
19
23
  import MultiComboBoxItem from "./MultiComboBoxItem.js";
20
24
  import Tokenizer from "./Tokenizer.js";
21
25
  import Token from "./Token.js";
22
26
  import Icon from "./Icon.js";
27
+ import Popover from "./Popover.js";
23
28
  import ResponsivePopover from "./ResponsivePopover.js";
24
29
  import List from "./List.js";
25
30
  import StandardListItem from "./StandardListItem.js";
26
31
  import ToggleButton from "./ToggleButton.js";
32
+ import * as Filters from "./ComboBoxFilters.js";
27
33
  import Button from "./Button.js";
34
+
28
35
  import {
29
36
  VALUE_STATE_SUCCESS,
30
37
  VALUE_STATE_ERROR,
31
38
  VALUE_STATE_WARNING,
32
- TOKENIZER_ARIA_CONTAIN_TOKEN,
33
- TOKENIZER_ARIA_CONTAIN_ONE_TOKEN,
34
- TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS,
39
+ VALUE_STATE_INFORMATION,
35
40
  INPUT_SUGGESTIONS_TITLE,
36
- ICON_ACCESSIBLE_NAME,
41
+ SELECT_OPTIONS,
37
42
  MULTICOMBOBOX_DIALOG_OK_BUTTON,
43
+ VALUE_STATE_ERROR_ALREADY_SELECTED,
38
44
  } from "./generated/i18n/i18n-defaults.js";
39
45
 
40
46
  // Templates
@@ -45,6 +51,7 @@ import MultiComboBoxPopoverTemplate from "./generated/templates/MultiComboBoxPop
45
51
  import styles from "./generated/themes/MultiComboBox.css.js";
46
52
  import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverCommon.css.js";
47
53
  import ValueStateMessageCss from "./generated/themes/ValueStateMessage.css.js";
54
+ import SuggestionsCss from "./generated/themes/Suggestions.css.js";
48
55
 
49
56
  /**
50
57
  * @public
@@ -55,45 +62,38 @@ const metadata = {
55
62
  managedSlots: true,
56
63
  slots: /** @lends sap.ui.webcomponents.main.MultiComboBox.prototype */ {
57
64
  /**
58
- * Defines the <code>ui5-multi-combobox</code> items.
59
- * <br><br>
60
- * Example: <br>
61
- * &lt;ui5-multi-combobox><br>
62
- * &nbsp;&nbsp;&nbsp;&nbsp;&lt;ui5-li>Item #1&lt;/ui5-li><br>
63
- * &nbsp;&nbsp;&nbsp;&nbsp;&lt;ui5-li>Item #2&lt;/ui5-li><br>
64
- * &lt;/ui5-multi-combobox>
65
- * <br> <br>
65
+ * Defines the component items.
66
66
  *
67
- * @type {HTMLElement[]}
68
- * @slot
67
+ * @type {sap.ui.webcomponents.main.IMultiComboBoxItem[]}
68
+ * @slot items
69
69
  * @public
70
70
  */
71
71
  "default": {
72
72
  propertyName: "items",
73
73
  type: HTMLElement,
74
- listenFor: { include: ["*"] },
74
+ invalidateOnChildChange: true,
75
75
  },
76
76
 
77
77
  /**
78
- * Defines the icon to be displayed in the <code>ui5-multi-combobox</code>.
78
+ * Defines the icon to be displayed in the component.
79
79
  *
80
- * @type {HTMLElement[]}
80
+ * @type {sap.ui.webcomponents.main.IIcon}
81
81
  * @slot
82
82
  * @public
83
83
  * @since 1.0.0-rc.9
84
84
  */
85
- icon: {
86
- type: HTMLElement,
87
- },
85
+ icon: {
86
+ type: HTMLElement,
87
+ },
88
88
 
89
89
  /**
90
- * Defines the value state message that will be displayed as pop up under the <code>ui5-multicombobox</code>.
90
+ * Defines the value state message that will be displayed as pop up under the component.
91
91
  * <br><br>
92
92
  *
93
93
  * <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.
94
94
  * <br>
95
95
  * <b>Note:</b> The <code>valueStateMessage</code> would be displayed,
96
- * when the <code>ui5-select</code> is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
96
+ * when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
97
97
  * @type {HTMLElement[]}
98
98
  * @since 1.0.0-rc.9
99
99
  * @slot
@@ -105,7 +105,7 @@ const metadata = {
105
105
  },
106
106
  properties: /** @lends sap.ui.webcomponents.main.MultiComboBox.prototype */ {
107
107
  /**
108
- * Defines the value of the <code>ui5-multi-combobox</code>.
108
+ * Defines the value of the component.
109
109
  * <br><br>
110
110
  * <b>Note:</b> The property is updated upon typing.
111
111
  *
@@ -120,7 +120,7 @@ const metadata = {
120
120
 
121
121
  /**
122
122
  * Defines a short hint intended to aid the user with data entry when the
123
- * <code>ui5-multi-combobox</code> has no value.
123
+ * component has no value.
124
124
  * @type {string}
125
125
  * @defaultvalue ""
126
126
  * @public
@@ -142,9 +142,9 @@ const metadata = {
142
142
  },
143
143
 
144
144
  /**
145
- * Defines whether <code>ui5-multi-combobox</code> is in disabled state.
145
+ * Defines whether the component is in disabled state.
146
146
  * <br><br>
147
- * <b>Note:</b> A disabled <code>ui5-multi-combobox</code> is completely noninteractive.
147
+ * <b>Note:</b> A disabled component is completely noninteractive.
148
148
  *
149
149
  * @type {boolean}
150
150
  * @defaultvalue false
@@ -155,7 +155,7 @@ const metadata = {
155
155
  },
156
156
 
157
157
  /**
158
- * Defines the value state of the <code>ui5-multi-combobox</code>.
158
+ * Defines the value state of the component.
159
159
  * <br><br>
160
160
  * Available options are:
161
161
  * <ul>
@@ -176,9 +176,9 @@ const metadata = {
176
176
  },
177
177
 
178
178
  /**
179
- * Defines whether the <code>ui5-multi-combobox</code> is read-only.
179
+ * Defines whether the component is read-only.
180
180
  * <br><br>
181
- * <b>Note:</b> A read-only <code>ui5-multi-combobox</code> is not editable,
181
+ * <b>Note:</b> A read-only component is not editable,
182
182
  * but still provides visual feedback upon user interaction.
183
183
  *
184
184
  * @type {boolean}
@@ -190,7 +190,7 @@ const metadata = {
190
190
  },
191
191
 
192
192
  /**
193
- * Defines whether the <code>ui5-multi-combobox</code> is required.
193
+ * Defines whether the component is required.
194
194
  *
195
195
  * @type {boolean}
196
196
  * @defaultvalue false
@@ -201,11 +201,25 @@ const metadata = {
201
201
  type: Boolean,
202
202
  },
203
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
+
204
217
  /**
205
218
  * Indicates whether the dropdown is open. True if the dropdown is open, false otherwise.
206
219
  *
207
220
  * @type {boolean}
208
221
  * @defaultvalue false
222
+ * @readonly
209
223
  * @since 1.0.0-rc.5
210
224
  * @public
211
225
  */
@@ -217,7 +231,6 @@ const metadata = {
217
231
  type: Object,
218
232
  },
219
233
 
220
-
221
234
  filterSelected: {
222
235
  type: Boolean,
223
236
  },
@@ -245,6 +258,10 @@ const metadata = {
245
258
  defaultValue: 0,
246
259
  noAttribute: true,
247
260
  },
261
+
262
+ _performingSelectionTwice: {
263
+ type: Boolean,
264
+ },
248
265
  },
249
266
  events: /** @lends sap.ui.webcomponents.main.MultiComboBox.prototype */ {
250
267
  /**
@@ -256,7 +273,7 @@ const metadata = {
256
273
  change: {},
257
274
 
258
275
  /**
259
- * Fired when the value of the <code>ui5-multi-combobox</code> changes at each keystroke.
276
+ * Fired when the value of the component changes at each keystroke.
260
277
  *
261
278
  * @event
262
279
  * @public
@@ -293,10 +310,10 @@ const metadata = {
293
310
  *
294
311
  * <h3 class="comment-api-title">Overview</h3>
295
312
  *
296
- * The <code>ui5-multi-combobox</code> component provides a list box with items and a text field allowing the user to either type a value directly into the control, or choose from the list of existing items.
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.
297
314
  *
298
- * It is a drop-down list for selecting and filtering values, commonly used to enable 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 of available options.
299
- * The select options in the list have checkboxes that permit multi-selection. Entered values are displayed as tokens.
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.
300
317
  * <h3>Structure</h3>
301
318
  * The <code>ui5-multi-combobox</code> consists of the following elements:
302
319
  * <ul>
@@ -323,6 +340,15 @@ const metadata = {
323
340
  * <li> Backspace - deletes the token and focus the next token. </li>
324
341
  * </ul>
325
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
+ *
326
352
  * <h3>ES6 Module Import</h3>
327
353
  *
328
354
  * <code>import "@ui5/webcomponents/dist/MultiComboBox";</code>
@@ -359,7 +385,7 @@ class MultiComboBox extends UI5Element {
359
385
  }
360
386
 
361
387
  static get staticAreaStyles() {
362
- return [ResponsivePopoverCommonCss, ValueStateMessageCss];
388
+ return [ResponsivePopoverCommonCss, ValueStateMessageCss, SuggestionsCss];
363
389
  }
364
390
 
365
391
  static get dependencies() {
@@ -369,6 +395,7 @@ class MultiComboBox extends UI5Element {
369
395
  Token,
370
396
  Icon,
371
397
  ResponsivePopover,
398
+ Popover,
372
399
  List,
373
400
  StandardListItem,
374
401
  ToggleButton,
@@ -380,10 +407,11 @@ class MultiComboBox extends UI5Element {
380
407
  super();
381
408
 
382
409
  this._filteredItems = [];
410
+ this.selectedValues = [];
383
411
  this._inputLastValue = "";
412
+ this._valueBeforeOpen = "";
384
413
  this._deleting = false;
385
414
  this._validationTimeout = null;
386
- this.i18nBundle = getI18nBundle("@ui5/webcomponents");
387
415
  this._handleResizeBound = this._handleResize.bind(this);
388
416
  }
389
417
 
@@ -403,34 +431,24 @@ class MultiComboBox extends UI5Element {
403
431
  this.fireEvent("change");
404
432
  }
405
433
 
406
- _showMorePopover() {
407
- this.filterSelected = true;
408
- this._toggleRespPopover();
434
+ togglePopover() {
435
+ this.allItemsPopover.toggle(this);
409
436
  }
410
437
 
411
- togglePopover() {
412
- this._toggleRespPopover();
438
+ _showFilteredItems() {
439
+ this.filterSelected = true;
440
+ this._showMorePressed = true;
413
441
 
414
- if (!isPhone()) {
415
- this._inputDom.focus();
416
- }
442
+ this.togglePopover();
417
443
  }
418
444
 
419
445
  filterSelectedItems(event) {
420
- if (this.allItemsSelected) {
421
- this.filterSelected = true;
422
- return;
423
- }
424
-
425
446
  this.filterSelected = event.target.pressed;
447
+ this.selectedItems = this._filteredItems.filter(item => item.selected);
426
448
  }
427
449
 
428
450
  get _showAllItemsButtonPressed() {
429
- return this.filterSelected || this.allItemsSelected;
430
- }
431
-
432
- get allItemsSelected() {
433
- return this.items.length === this.selectedValues.length;
451
+ return this.filterSelected;
434
452
  }
435
453
 
436
454
  get _inputDom() {
@@ -443,11 +461,15 @@ class MultiComboBox extends UI5Element {
443
461
  const filteredItems = this._filterItems(value);
444
462
  const oldValueState = this.valueState;
445
463
 
464
+ if (this.filterSelected) {
465
+ this.filterSelected = false;
466
+ }
467
+
446
468
  /* skip calling change event when an input with a placeholder is focused on IE
447
469
  - value of the host and the internal input should be differnt in case of actual input
448
470
  - input is called when a key is pressed => keyup should not be called yet
449
471
  */
450
- const skipFiring = (this._inputDom.value === this.value) && isIE && !this._keyDown && !!this.placeholder;
472
+ const skipFiring = (this._inputDom.value === this.value) && isIE() && !this._keyDown && !!this.placeholder;
451
473
 
452
474
  if (skipFiring) {
453
475
  event.preventDefault();
@@ -464,15 +486,11 @@ class MultiComboBox extends UI5Element {
464
486
  input.value = this._inputLastValue;
465
487
  this.valueState = "Error";
466
488
 
467
- this._validationTimeout = setTimeout(() => {
468
- this.valueState = oldValueState;
469
- this._validationTimeout = null;
470
- }, 2000);
489
+ this._resetValueState(oldValueState);
471
490
 
472
491
  return;
473
492
  }
474
493
 
475
-
476
494
  this._inputLastValue = input.value;
477
495
  this.value = input.value;
478
496
  this._filteredItems = filteredItems;
@@ -481,7 +499,7 @@ class MultiComboBox extends UI5Element {
481
499
  if (filteredItems.length === 0) {
482
500
  this.allItemsPopover.close();
483
501
  } else {
484
- this.allItemsPopover.open(this);
502
+ this.allItemsPopover.showAt(this);
485
503
  }
486
504
  }
487
505
 
@@ -498,30 +516,26 @@ class MultiComboBox extends UI5Element {
498
516
  this.fireSelectionChange();
499
517
  }
500
518
 
501
- _handleLeft() {
502
- const cursorPosition = this.getDomRef().querySelector(`input`).selectionStart;
503
-
504
- if (cursorPosition === 0) {
505
- this._focusLastToken();
519
+ get _getPlaceholder() {
520
+ if (this._tokenizer && this._tokenizer.tokens.length) {
521
+ return "";
506
522
  }
523
+
524
+ return this.placeholder;
507
525
  }
508
526
 
509
- _focusLastToken() {
510
- const lastTokenIndex = this._tokenizer.tokens.length - 1;
527
+ _handleLeft() {
528
+ const cursorPosition = this.getDomRef().querySelector(`input`).selectionStart;
511
529
 
512
- if (lastTokenIndex < 0) {
513
- return;
530
+ if (cursorPosition === 0) {
531
+ this._tokenizer._focusLastToken();
514
532
  }
515
-
516
- this._tokenizer.tokens[lastTokenIndex].focus();
517
- this._tokenizer._itemNav.currentIndex = lastTokenIndex;
518
533
  }
519
534
 
520
535
  _tokenizerFocusOut(event) {
521
536
  this._tokenizerFocused = false;
522
537
 
523
- const tokenizer = this.shadowRoot.querySelector("[ui5-tokenizer]");
524
- const tokensCount = tokenizer.tokens.length - 1;
538
+ const tokensCount = this._tokenizer.tokens.length - 1;
525
539
 
526
540
  if (!event.relatedTarget || event.relatedTarget.localName !== "ui5-token") {
527
541
  this._tokenizer.tokens.forEach(token => { token.selected = false; });
@@ -555,25 +569,125 @@ class MultiComboBox extends UI5Element {
555
569
 
556
570
  if (isShow(event) && !this.readonly && !this.disabled) {
557
571
  event.preventDefault();
558
- this._toggleRespPopover();
572
+ this.togglePopover();
559
573
  }
560
574
 
561
- if (isDown(event) && this.allItemsPopover.opened && this.items.length) {
562
- event.preventDefault();
563
- await this._getList();
564
- this.list._itemNavigation.current = 0;
565
- this.list.items[0].focus();
575
+ if (this.open && (isUp(event) || isDown(event))) {
576
+ this._handleArrowNavigation(event);
566
577
  }
567
578
 
568
579
  if (isBackSpace(event) && event.target.value === "") {
569
580
  event.preventDefault();
570
581
 
571
- this._focusLastToken();
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();
572
592
  }
573
593
 
574
594
  this._keyDown = true;
575
595
  }
576
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
+
577
691
  _onTokenizerKeydown(event) {
578
692
  if (isRight(event)) {
579
693
  const lastTokenIndex = this._tokenizer.tokens.length - 1;
@@ -586,21 +700,23 @@ class MultiComboBox extends UI5Element {
586
700
  }
587
701
  }
588
702
 
589
- _filterItems(value) {
590
- return this.items.filter(item => {
591
- return item.text
592
- && item.text.toLowerCase().startsWith(value.toLowerCase())
593
- && (this.filterSelected ? item.selected : true);
594
- });
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
+ }
595
715
  }
596
716
 
597
717
  _toggle() {
598
718
  this.open = !this.open;
599
719
  this.fireEvent("open-change");
600
-
601
- if (!this.open) {
602
- this._afterClosePopover();
603
- }
604
720
  }
605
721
 
606
722
  _getSelectedItems() {
@@ -610,23 +726,37 @@ class MultiComboBox extends UI5Element {
610
726
  }
611
727
 
612
728
  _listSelectionChange(event) {
613
- event.target.items.forEach(item => {
614
- this.items.forEach(mcbItem => {
615
- if (mcbItem._id === item.getAttribute("data-ui5-token-id")) {
616
- mcbItem.selected = item.selected;
617
- }
618
- });
619
- });
729
+ // sync list items and cb items
730
+ this.syncItems(event.target.items);
620
731
 
621
- this.fireSelectionChange();
732
+ // don't call selection change right after selection as user can cancel it on phone
733
+ if (!isPhone()) {
734
+ this.fireSelectionChange();
735
+ }
622
736
 
623
737
  if (!event.detail.selectionComponentPressed && !isSpace(event.detail)) {
624
738
  this.allItemsPopover.close();
625
739
  this.value = "";
740
+
741
+ // if the item (not checkbox) is clicked, call the selection change
742
+ if (isPhone()) {
743
+ this.fireSelectionChange();
744
+ }
745
+
626
746
  this.fireEvent("input");
627
747
  }
628
748
  }
629
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
+
630
760
  fireSelectionChange() {
631
761
  this.fireEvent("selection-change", { items: this._getSelectedItems() });
632
762
  // Angular 2 way data binding
@@ -643,28 +773,41 @@ class MultiComboBox extends UI5Element {
643
773
  this.list = staticAreaItem.querySelector(".ui5-multi-combobox-all-items-list");
644
774
  }
645
775
 
646
- _toggleRespPopover() {
647
- this.allItemsPopover.toggle(this);
648
- }
649
-
650
776
  _click(event) {
651
- if (isPhone() && !this.readonly && !this._showMorePressed) {
652
- this.allItemsPopover.open(this);
777
+ if (isPhone() && !this.readonly && !this._showMorePressed && !this._deleting) {
778
+ this.allItemsPopover.showAt(this);
653
779
  }
654
780
 
655
781
  this._showMorePressed = false;
656
782
  }
657
783
 
658
- _afterClosePopover() {
784
+ _afterClosePicker() {
659
785
  // close device's keyboard and prevent further typing
660
786
  if (isPhone()) {
661
787
  this.blur();
662
788
  }
663
789
 
790
+ this._toggle();
791
+
664
792
  this._iconPressed = false;
665
793
  this.filterSelected = false;
666
794
  }
667
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
+
668
811
  onBeforeRendering() {
669
812
  const input = this.shadowRoot.querySelector("input");
670
813
  this._inputLastValue = this.value;
@@ -673,6 +816,10 @@ class MultiComboBox extends UI5Element {
673
816
  this._filteredItems = this.items;
674
817
  }
675
818
 
819
+ this.items.forEach(item => {
820
+ item._getRealDomRef = () => this.allItemsPopover.querySelector(`*[data-ui5-stable=${item.stableDomRef}]`);
821
+ });
822
+
676
823
  const filteredItems = this._filterItems(this.value);
677
824
  this._filteredItems = filteredItems;
678
825
  }
@@ -683,6 +830,8 @@ class MultiComboBox extends UI5Element {
683
830
 
684
831
  this.toggle(this.shouldDisplayOnlyValueStateMessage);
685
832
  this.storeResponsivePopoverWidth();
833
+
834
+ this._deleting = false;
686
835
  }
687
836
 
688
837
  get _isPhone() {
@@ -707,14 +856,36 @@ class MultiComboBox extends UI5Element {
707
856
  }
708
857
  }
709
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
+
710
877
  async openPopover() {
711
878
  const popover = await this._getPopover();
712
879
 
713
880
  if (popover) {
714
- popover.openBy(this);
881
+ popover.showAt(this);
715
882
  }
716
883
  }
717
884
 
885
+ _forwardFocusToInner() {
886
+ this._innerInput.focus();
887
+ }
888
+
718
889
  async closePopover() {
719
890
  const popover = await this._getPopover();
720
891
 
@@ -726,42 +897,51 @@ class MultiComboBox extends UI5Element {
726
897
  return staticAreaItem.querySelector("[ui5-popover]");
727
898
  }
728
899
 
729
- get _tokenizer() {
730
- return this.shadowRoot.querySelector("[ui5-tokenizer]");
900
+ async _getResponsivePopover() {
901
+ const staticAreaItem = await this.getStaticAreaItemDomRef();
902
+ return staticAreaItem.querySelector("[ui5-responsive-popover]");
731
903
  }
732
904
 
733
- get nMoreCountText() {
734
- const iTokenCount = this._getSelectedItems().length;
735
-
736
- if (iTokenCount === 0) {
737
- return this.i18nBundle.getText(TOKENIZER_ARIA_CONTAIN_TOKEN);
738
- }
739
-
740
- if (iTokenCount === 1) {
741
- return this.i18nBundle.getText(TOKENIZER_ARIA_CONTAIN_ONE_TOKEN);
742
- }
905
+ async _setValueStateHeader() {
906
+ const responsivePopover = await this._getResponsivePopover();
907
+ this.valueStateHeader = responsivePopover.querySelector("div.ui5-responsive-popover-header.ui5-valuestatemessage-root");
908
+ }
743
909
 
744
- return this.i18nBundle.getText(TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS, iTokenCount);
910
+ get _tokenizer() {
911
+ return this.shadowRoot.querySelector("[ui5-tokenizer]");
745
912
  }
746
913
 
747
914
  inputFocusIn() {
748
915
  if (!isPhone()) {
749
916
  this.focused = true;
917
+ } else {
918
+ this._innerInput.blur();
750
919
  }
920
+
921
+ this._lastValue = this.value;
751
922
  }
752
923
 
753
924
  inputFocusOut(event) {
754
925
  if (!this.shadowRoot.contains(event.relatedTarget) && !this._deleting) {
755
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
+ }
756
932
  }
757
933
  }
758
934
 
935
+ _readonlyIconClick() {
936
+ this._inputDom.focus();
937
+ }
938
+
759
939
  get editable() {
760
940
  return !this.readonly;
761
941
  }
762
942
 
763
943
  get _isFocusInside() {
764
- return this.focused || this._tokenizerFocused;
944
+ return !isPhone() && (this.focused || this._tokenizerFocused);
765
945
  }
766
946
 
767
947
  get selectedItemsListMode() {
@@ -781,7 +961,13 @@ class MultiComboBox extends UI5Element {
781
961
  }
782
962
 
783
963
  get valueStateText() {
784
- return this.valueStateTextMappings[this.valueState];
964
+ let key = this.valueState;
965
+
966
+ if (this._performingSelectionTwice) {
967
+ key = "Error_Selection";
968
+ }
969
+
970
+ return this.valueStateTextMappings[key];
785
971
  }
786
972
 
787
973
  get valueStateTextId() {
@@ -792,6 +978,35 @@ class MultiComboBox extends UI5Element {
792
978
  return this.getSlottedNodes("valueStateMessage").map(el => el.cloneNode(true));
793
979
  }
794
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
+
795
1010
  get shouldDisplayDefaultValueStateMessage() {
796
1011
  return !this.valueStateMessage.length && this.hasValueStateMessage;
797
1012
  }
@@ -802,9 +1017,11 @@ class MultiComboBox extends UI5Element {
802
1017
 
803
1018
  get valueStateTextMappings() {
804
1019
  return {
805
- "Success": this.i18nBundle.getText(VALUE_STATE_SUCCESS),
806
- "Error": this.i18nBundle.getText(VALUE_STATE_ERROR),
807
- "Warning": this.i18nBundle.getText(VALUE_STATE_WARNING),
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),
808
1025
  };
809
1026
  }
810
1027
 
@@ -819,15 +1036,15 @@ class MultiComboBox extends UI5Element {
819
1036
  }
820
1037
 
821
1038
  get _headerTitleText() {
822
- return this.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
1039
+ return MultiComboBox.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
823
1040
  }
824
1041
 
825
1042
  get _iconAccessibleNameText() {
826
- return this.i18nBundle.getText(ICON_ACCESSIBLE_NAME);
1043
+ return MultiComboBox.i18nBundle.getText(SELECT_OPTIONS);
827
1044
  }
828
1045
 
829
1046
  get _dialogOkButton() {
830
- return this.i18nBundle.getText(MULTICOMBOBOX_DIALOG_OK_BUTTON);
1047
+ return MultiComboBox.i18nBundle.getText(MULTICOMBOBOX_DIALOG_OK_BUTTON);
831
1048
  }
832
1049
 
833
1050
  get _tokenizerExpanded() {
@@ -836,8 +1053,14 @@ class MultiComboBox extends UI5Element {
836
1053
 
837
1054
  get classes() {
838
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
+ },
839
1061
  popoverValueState: {
840
1062
  "ui5-valuestatemessage-root": true,
1063
+ "ui5-valuestatemessage-header": true,
841
1064
  "ui5-valuestatemessage--success": this.valueState === ValueState.Success,
842
1065
  "ui5-valuestatemessage--error": this.valueState === ValueState.Error,
843
1066
  "ui5-valuestatemessage--warning": this.valueState === ValueState.Warning,
@@ -850,18 +1073,16 @@ class MultiComboBox extends UI5Element {
850
1073
  return {
851
1074
  popoverValueStateMessage: {
852
1075
  "width": `${this._listWidth}px`,
853
- "min-height": "2.5rem",
854
- "padding": "0.5625rem 1rem",
855
1076
  "display": this._listWidth === 0 ? "none" : "inline-block",
856
1077
  },
857
1078
  popoverHeader: {
858
- "width": `${this._inputWidth}px`,
1079
+ "max-width": isPhone() ? "100%" : `${this._inputWidth}px`,
859
1080
  },
860
1081
  };
861
1082
  }
862
1083
 
863
1084
  static async onDefine() {
864
- await fetchI18nBundle("@ui5/webcomponents");
1085
+ MultiComboBox.i18nBundle = await getI18nBundle("@ui5/webcomponents");
865
1086
  }
866
1087
  }
867
1088