@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
package/src/List.js CHANGED
@@ -1,11 +1,19 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
3
+ import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
3
4
  import ItemNavigation from "@ui5/webcomponents-base/dist/delegate/ItemNavigation.js";
5
+ import { isIE } from "@ui5/webcomponents-base/dist/Device.js";
6
+ import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js";
4
7
  import { getLastTabbableElement } from "@ui5/webcomponents-base/dist/util/TabbableElements.js";
5
- import { isTabNext } from "@ui5/webcomponents-base/dist/Keys.js";
8
+ import { isTabNext, isSpace, isEnter } from "@ui5/webcomponents-base/dist/Keys.js";
9
+ import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
6
10
  import NavigationMode from "@ui5/webcomponents-base/dist/types/NavigationMode.js";
7
11
  import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
12
+ import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
13
+ import debounce from "@ui5/webcomponents-base/dist/util/debounce.js";
14
+ import isElementInView from "@ui5/webcomponents-base/dist/util/isElementInView.js";
8
15
  import ListMode from "./types/ListMode.js";
16
+ import ListGrowingMode from "./types/ListGrowingMode.js";
9
17
  import ListSeparators from "./types/ListSeparators.js";
10
18
  import BusyIndicator from "./BusyIndicator.js";
11
19
 
@@ -15,9 +23,17 @@ import ListTemplate from "./generated/templates/ListTemplate.lit.js";
15
23
  // Styles
16
24
  import listCss from "./generated/themes/List.css.js";
17
25
 
18
- const BUSYINDICATOR_HEIGHT = 48; // px
26
+ // Texts
27
+ import {
28
+ LOAD_MORE_TEXT, ARIA_LABEL_LIST_SELECTABLE,
29
+ ARIA_LABEL_LIST_MULTISELECTABLE,
30
+ ARIA_LABEL_LIST_DELETABLE,
31
+ } from "./generated/i18n/i18n-defaults.js";
32
+
19
33
  const INFINITE_SCROLL_DEBOUNCE_RATE = 250; // ms
20
34
 
35
+ const PAGE_UP_DOWN_SIZE = 10;
36
+
21
37
  /**
22
38
  * @public
23
39
  */
@@ -27,7 +43,7 @@ const metadata = {
27
43
  slots: /** @lends sap.ui.webcomponents.main.List.prototype */ {
28
44
 
29
45
  /**
30
- * Defines the <code>ui5-list</code> header.
46
+ * Defines the component header.
31
47
  * <br><br>
32
48
  * <b>Note:</b> When <code>header</code> is set, the
33
49
  * <code>headerText</code> property is ignored.
@@ -41,12 +57,12 @@ const metadata = {
41
57
  },
42
58
 
43
59
  /**
44
- * Defines the items of the <code>ui5-list</code>.
60
+ * Defines the items of the component.
45
61
  * <br><br>
46
62
  * <b>Note:</b> Use <code>ui5-li</code>, <code>ui5-li-custom</code>, and <code>ui5-li-groupheader</code> for the intended design.
47
63
  *
48
- * @type {HTMLElement[]}
49
- * @slot
64
+ * @type {sap.ui.webcomponents.main.IListItem[]}
65
+ * @slot items
50
66
  * @public
51
67
  */
52
68
  "default": {
@@ -57,7 +73,7 @@ const metadata = {
57
73
  properties: /** @lends sap.ui.webcomponents.main.List.prototype */ {
58
74
 
59
75
  /**
60
- * Defines the <code>ui5-list</code> header text.
76
+ * Defines the component header text.
61
77
  * <br><br>
62
78
  * <b>Note:</b> If <code>header</code> is set this property is ignored.
63
79
  *
@@ -81,18 +97,18 @@ const metadata = {
81
97
  },
82
98
 
83
99
  /**
84
- * Determines whether the list items are indented.
100
+ * Determines whether the component is indented.
85
101
  *
86
102
  * @type {boolean}
87
103
  * @defaultvalue false
88
104
  * @public
89
105
  */
90
- inset: {
106
+ indent: {
91
107
  type: Boolean,
92
108
  },
93
109
 
94
110
  /**
95
- * Defines the mode of the <code>ui5-list</code>.
111
+ * Defines the mode of the component.
96
112
  * <br><br>
97
113
  * <b>Note:</b> Available options are <code>None</code>, <code>SingleSelect</code>, <code>SingleSelectBegin</code>,
98
114
  * <code>SingleSelectEnd</code>, <code>MultiSelect</code>, and <code>Delete</code>.
@@ -107,7 +123,7 @@ const metadata = {
107
123
  },
108
124
 
109
125
  /**
110
- * Defines the text that is displayed when the <code>ui5-list</code> contains no items.
126
+ * Defines the text that is displayed when the component contains no items.
111
127
  *
112
128
  * @type {string}
113
129
  * @defaultvalue ""
@@ -138,22 +154,34 @@ const metadata = {
138
154
  },
139
155
 
140
156
  /**
141
- * Defines if the component would fire the <code>load-more</code> event
142
- * when the user scrolls to the bottom of the list, and helps achieving an "infinite scroll" effect
143
- * by adding new items each time.
157
+ * Defines whether the component will have growing capability either by pressing a <code>More</code> button,
158
+ * or via user scroll. In both cases <code>load-more</code> event is fired.
159
+ * <br><br>
144
160
  *
145
- * @type {boolean}
146
- * @defaultvalue false
161
+ * Available options:
162
+ * <br><br>
163
+ * <code>Button</code> - Shows a <code>More</code> button at the bottom of the list,
164
+ * pressing of which triggers the <code>load-more</code> event.
165
+ * <br>
166
+ * <code>Scroll</code> - The <code>load-more</code> event is triggered when the user scrolls to the bottom of the list;
167
+ * <br>
168
+ * <code>None</code> (default) - The growing is off.
169
+ * <br><br>
170
+ *
171
+ * <b>Limitations:</b> <code>growing="Scroll"</code> is not supported for Internet Explorer,
172
+ * on IE the component will fallback to <code>growing="Button"</code>.
173
+ * @type {ListGrowingMode}
174
+ * @defaultvalue "None"
175
+ * @since 1.0.0-rc.13
147
176
  * @public
148
- * @since 1.0.0-rc.6
149
177
  */
150
- infiniteScroll: {
151
- type: Boolean,
178
+ growing: {
179
+ type: ListGrowingMode,
180
+ defaultValue: ListGrowingMode.None,
152
181
  },
153
182
 
154
183
  /**
155
- * Defines if the component would display a loading indicator at the bottom of the list.
156
- * It's especially useful, when combined with <code>infiniteScroll</code>.
184
+ * Defines if the component would display a loading indicator over the list.
157
185
  *
158
186
  * @type {boolean}
159
187
  * @defaultvalue false
@@ -165,39 +193,69 @@ const metadata = {
165
193
  },
166
194
 
167
195
  /**
196
+ * Defines the delay in milliseconds, after which the busy indicator will show up for this component.
197
+ *
198
+ * @type {Integer}
199
+ * @defaultValue 1000
200
+ * @public
201
+ */
202
+ busyDelay: {
203
+ type: Integer,
204
+ defaultValue: 1000,
205
+ },
206
+
207
+ /**
208
+ * Defines the accessible name of the component.
209
+ *
168
210
  * @type {String}
169
211
  * @defaultvalue ""
170
- * @private
171
- * @since 1.0.0-rc.8
212
+ * @public
213
+ * @since 1.0.0-rc.15
172
214
  */
173
- ariaLabel: {
215
+ accessibleName: {
174
216
  type: String,
175
217
  },
176
218
 
177
219
  /**
178
- * Receives id(or many ids) of the elements that label the input
220
+ * Defines the IDs of the elements that label the input.
179
221
  *
180
222
  * @type {String}
181
223
  * @defaultvalue ""
182
- * @private
183
- * @since 1.0.0-rc.8
224
+ * @public
225
+ * @since 1.0.0-rc.15
184
226
  */
185
- ariaLabelledby: {
227
+ accessibleNameRef: {
186
228
  type: String,
187
229
  defaultValue: "",
188
230
  },
189
231
 
190
232
  /**
191
- * Used to externally manipulate the role of the list
192
- *
193
- * @private
233
+ * Defines the accessible role of the component.
234
+ * <br><br>
235
+ * @public
194
236
  * @type {String}
195
- * @defaultvalue "listbox"
196
- * @since 1.0.0-rc.9
237
+ * @defaultvalue "list"
238
+ * @since 1.0.0-rc.15
197
239
  */
198
- role: {
240
+ accessibleRole: {
199
241
  type: String,
200
- defaultValue: "listbox",
242
+ defaultValue: "list",
243
+ },
244
+
245
+ /**
246
+ * Defines if the entire list is in view port.
247
+ * @private
248
+ */
249
+ _inViewport: {
250
+ type: Boolean,
251
+ },
252
+
253
+ /**
254
+ * Defines the active state of the <code>More</code> button.
255
+ * @private
256
+ */
257
+ _loadMoreActive: {
258
+ type: Boolean,
201
259
  },
202
260
  },
203
261
  events: /** @lends sap.ui.webcomponents.main.List.prototype */ {
@@ -207,7 +265,7 @@ const metadata = {
207
265
  * is set to <code>Inactive</code>.
208
266
  *
209
267
  * @event sap.ui.webcomponents.main.List#item-click
210
- * @param {HTMLElement} item the clicked item.
268
+ * @param {HTMLElement} item The clicked item.
211
269
  * @public
212
270
  */
213
271
  "item-click": {
@@ -253,7 +311,7 @@ const metadata = {
253
311
  * Fired when the Delete button of any item is pressed.
254
312
  * <br><br>
255
313
  * <b>Note:</b> A Delete button is displayed on each item,
256
- * when the <code>ui5-list</code> <code>mode</code> property is set to <code>Delete</code>.
314
+ * when the component <code>mode</code> property is set to <code>Delete</code>.
257
315
  *
258
316
  * @event sap.ui.webcomponents.main.List#item-delete
259
317
  * @param {HTMLElement} item the deleted item.
@@ -285,7 +343,7 @@ const metadata = {
285
343
  /**
286
344
  * Fired when the user scrolls to the bottom of the list.
287
345
  * <br><br>
288
- * <b>Note:</b> The event is fired when the <code>infiniteScroll</code> property is enabled.
346
+ * <b>Note:</b> The event is fired when the <code>growing='Scroll'</code> property is enabled.
289
347
  *
290
348
  * @event sap.ui.webcomponents.main.List#load-more
291
349
  * @public
@@ -303,7 +361,7 @@ const metadata = {
303
361
  * The <code>ui5-list</code> component allows displaying a list of items, advanced keyboard
304
362
  * handling support for navigating between items, and predefined modes to improve the development efficiency.
305
363
  * <br><br>
306
- * The <code>ui5-list</code> is а container for the available list items:
364
+ * The <code>ui5-list</code> is a container for the available list items:
307
365
  * <ul>
308
366
  * <li><code>ui5-li</code></li>
309
367
  * <li><code>ui5-li-custom</code></li>
@@ -316,6 +374,27 @@ const metadata = {
316
374
  * <br><br>
317
375
  * Additionally, the <code>ui5-list</code> provides header, footer, and customization for the list item separators.
318
376
  *
377
+ * <br><br>
378
+ * <h3>Keyboard Handling</h3>
379
+ * The <code>ui5-list</code> provides advanced keyboard handling.
380
+ * When a list is focused the user can use the following keyboard
381
+ * shortcuts in order to perform a navigation:
382
+ * <br>
383
+ *
384
+ * <ul>
385
+ * <li>[UP/DOWN] - Navigates up and down the items</li>
386
+ * <li>[HOME] - Navigates to first item</li>
387
+ * <li>[END] - Navigates to the last item</li>
388
+ * </ul>
389
+ *
390
+ * The user can use the following keyboard shortcuts to perform actions (such as select, delete),
391
+ * when the <code>mode</code> property is in use:
392
+ * <ul>
393
+ * <li>[SPACE] - Select an item (if <code>type</code> is 'Active') when <code>mode</code> is selection</li>
394
+ * <li>[DELETE] - Delete an item if <code>mode</code> property is <code>Delete</code></li>
395
+ * </ul>
396
+ * <br><br>
397
+ *
319
398
  * <h3>ES6 Module Import</h3>
320
399
  *
321
400
  * <code>import "@ui5/webcomponents/dist/List.js";</code>
@@ -351,6 +430,14 @@ class List extends UI5Element {
351
430
  return listCss;
352
431
  }
353
432
 
433
+ static async onDefine() {
434
+ List.i18nBundle = await getI18nBundle("@ui5/webcomponents");
435
+ }
436
+
437
+ static get dependencies() {
438
+ return [BusyIndicator];
439
+ }
440
+
354
441
  constructor() {
355
442
  super();
356
443
  this.initItemNavigation();
@@ -363,6 +450,12 @@ class List extends UI5Element {
363
450
 
364
451
  this._previouslySelectedItem = null;
365
452
 
453
+ // Indicates that the List has already subscribed for resize.
454
+ this.resizeListenerAttached = false;
455
+
456
+ // Indicates if the IntersectionObserver started observing the List
457
+ this.listEndObserved = false;
458
+
366
459
  this.addEventListener("ui5-_press", this.onItemPress.bind(this));
367
460
  this.addEventListener("ui5-close", this.onItemClose.bind(this));
368
461
  this.addEventListener("ui5-toggle", this.onItemToggle.bind(this));
@@ -371,6 +464,42 @@ class List extends UI5Element {
371
464
  this.addEventListener("ui5-_forward-before", this.onForwardBefore.bind(this));
372
465
  this.addEventListener("ui5-_selection-requested", this.onSelectionRequested.bind(this));
373
466
  this.addEventListener("ui5-_focus-requested", this.focusUploadCollectionItem.bind(this));
467
+
468
+ this._handleResize = this.checkListInViewport.bind(this);
469
+
470
+ // Indicates the List bottom most part has been detected by the IntersectionObserver
471
+ // for the first time.
472
+ this.initialIntersection = true;
473
+ }
474
+
475
+ onExitDOM() {
476
+ this.unobserveListEnd();
477
+ this.resizeListenerAttached = false;
478
+ ResizeHandler.deregister(this.getDomRef(), this._handleResize);
479
+ }
480
+
481
+ onBeforeRendering() {
482
+ this.prepareListItems();
483
+ }
484
+
485
+ onAfterRendering() {
486
+ if (this.growsOnScroll) {
487
+ this.observeListEnd();
488
+ } else if (this.listEndObserved) {
489
+ this.unobserveListEnd();
490
+ }
491
+
492
+ if (this.grows) {
493
+ this.checkListInViewport();
494
+ this.attachForResize();
495
+ }
496
+ }
497
+
498
+ attachForResize() {
499
+ if (!this.resizeListenerAttached) {
500
+ this.resizeListenerAttached = true;
501
+ ResizeHandler.register(this.getDomRef(), this._handleResize);
502
+ }
374
503
  }
375
504
 
376
505
  get shouldRenderH1() {
@@ -381,12 +510,33 @@ class List extends UI5Element {
381
510
  return `${this._id}-header`;
382
511
  }
383
512
 
513
+ get modeLabelID() {
514
+ return `${this._id}-modeLabel`;
515
+ }
516
+
517
+ get listEndDOM() {
518
+ return this.shadowRoot.querySelector(".ui5-list-end-marker");
519
+ }
520
+
521
+ get hasData() {
522
+ return this.getSlottedNodes("items").length !== 0;
523
+ }
524
+
384
525
  get showNoDataText() {
385
- return this.items.length === 0 && this.noDataText;
526
+ return !this.hasData && this.noDataText;
527
+ }
528
+
529
+ get isDelete() {
530
+ return this.mode === ListMode.Delete;
386
531
  }
387
532
 
388
- get showBusy() {
389
- return this.busy || this.infiniteScroll;
533
+ get isSingleSelect() {
534
+ return [
535
+ ListMode.SingleSelect,
536
+ ListMode.SingleSelectBegin,
537
+ ListMode.SingleSelectEnd,
538
+ ListMode.SingleSelectAuto,
539
+ ].includes(this.mode);
390
540
  }
391
541
 
392
542
  get isMultiSelect() {
@@ -394,27 +544,83 @@ class List extends UI5Element {
394
544
  }
395
545
 
396
546
  get ariaLabelledBy() {
397
- if (this.ariaLabelledby || this.ariaLabel) {
547
+ if (this.accessibleNameRef || this.accessibleName) {
398
548
  return undefined;
399
549
  }
550
+ const ids = [];
551
+
552
+ if (this.isMultiSelect || this.isSingleSelect || this.isDelete) {
553
+ ids.push(this.modeLabelID);
554
+ }
400
555
 
401
- return this.shouldRenderH1 ? this.headerID : undefined;
556
+ if (this.shouldRenderH1) {
557
+ ids.push(this.headerID);
558
+ }
559
+
560
+ return ids.length ? ids.join(" ") : undefined;
402
561
  }
403
562
 
404
- get ariaLabelТxt() {
563
+ get ariaLabelTxt() {
405
564
  return getEffectiveAriaLabelText(this);
406
565
  }
407
566
 
408
- onBeforeRendering() {
409
- this.prepareListItems();
567
+ get ariaLabelModeText() {
568
+ if (this.isMultiSelect) {
569
+ return List.i18nBundle.getText(ARIA_LABEL_LIST_MULTISELECTABLE);
570
+ }
571
+ if (this.isSingleSelect) {
572
+ return List.i18nBundle.getText(ARIA_LABEL_LIST_SELECTABLE);
573
+ }
574
+ if (this.isDelete) {
575
+ return List.i18nBundle.getText(ARIA_LABEL_LIST_DELETABLE);
576
+ }
577
+
578
+ return undefined;
579
+ }
580
+
581
+ get grows() {
582
+ return this.growing !== ListGrowingMode.None;
583
+ }
584
+
585
+ get growsOnScroll() {
586
+ return this.growing === ListGrowingMode.Scroll && !isIE();
587
+ }
588
+
589
+ get growsWithButton() {
590
+ if (isIE()) {
591
+ // On IE fallback to "More" button, even if growing of type "Scroll" is set.
592
+ return this.grows;
593
+ }
594
+
595
+ return this.growing === ListGrowingMode.Button;
596
+ }
597
+
598
+ get _growingButtonText() {
599
+ return List.i18nBundle.getText(LOAD_MORE_TEXT);
600
+ }
601
+
602
+ get busyIndPosition() {
603
+ if (isIE() || !this.grows) {
604
+ return "absolute";
605
+ }
606
+
607
+ return this._inViewport ? "absolute" : "sticky";
608
+ }
609
+
610
+ get styles() {
611
+ return {
612
+ busyInd: {
613
+ position: this.busyIndPosition,
614
+ },
615
+ };
410
616
  }
411
617
 
412
618
  initItemNavigation() {
413
619
  this._itemNavigation = new ItemNavigation(this, {
620
+ skipItemsSize: PAGE_UP_DOWN_SIZE, // PAGE_UP and PAGE_DOWN will skip trough 10 items
414
621
  navigationMode: NavigationMode.Vertical,
622
+ getItemsCallback: () => this.getEnabledItems(),
415
623
  });
416
-
417
- this._itemNavigation.getItemsCallback = () => this.getSlottedNodes("items");
418
624
  }
419
625
 
420
626
  prepareListItems() {
@@ -432,6 +638,34 @@ class List extends UI5Element {
432
638
  this._previouslySelectedItem = null;
433
639
  }
434
640
 
641
+ async observeListEnd() {
642
+ if (!this.listEndObserved) {
643
+ await renderFinished();
644
+ this.getIntersectionObserver().observe(this.listEndDOM);
645
+ this.listEndObserved = true;
646
+ }
647
+ }
648
+
649
+ unobserveListEnd() {
650
+ if (this.growingIntersectionObserver) {
651
+ this.growingIntersectionObserver.disconnect();
652
+ this.growingIntersectionObserver = null;
653
+ this.listEndObserved = false;
654
+ }
655
+ }
656
+
657
+ onInteresection(entries) {
658
+ if (this.initialIntersection) {
659
+ this.initialIntersection = false;
660
+ return;
661
+ }
662
+ entries.forEach(entry => {
663
+ if (entry.isIntersecting) {
664
+ debounce(this.loadMore.bind(this), INFINITE_SCROLL_DEBOUNCE_RATE);
665
+ }
666
+ });
667
+ }
668
+
435
669
  /*
436
670
  * ITEM SELECTION BASED ON THE CURRENT MODE
437
671
  */
@@ -494,18 +728,8 @@ class List extends UI5Element {
494
728
  return this.getSlottedNodes("items").filter(item => item.selected);
495
729
  }
496
730
 
497
- getFirstSelectedItem() {
498
- const slottedItems = this.getSlottedNodes("items");
499
- let firstSelectedItem = null;
500
-
501
- for (let i = 0; i < slottedItems.length; i++) {
502
- if (slottedItems[i].selected) {
503
- firstSelectedItem = slottedItems[i];
504
- break;
505
- }
506
- }
507
-
508
- return firstSelectedItem;
731
+ getEnabledItems() {
732
+ return this.getSlottedNodes("items").filter(item => !item.disabled);
509
733
  }
510
734
 
511
735
  _onkeydown(event) {
@@ -514,6 +738,50 @@ class List extends UI5Element {
514
738
  }
515
739
  }
516
740
 
741
+ _onLoadMoreKeydown(event) {
742
+ if (isSpace(event)) {
743
+ event.preventDefault();
744
+ this._loadMoreActive = true;
745
+ }
746
+
747
+ if (isEnter(event)) {
748
+ this._onLoadMoreClick();
749
+ this._loadMoreActive = true;
750
+ }
751
+
752
+ if (isTabNext(event)) {
753
+ this.setPreviouslyFocusedItem(event.target);
754
+ this.focusAfterElement();
755
+ }
756
+ }
757
+
758
+ _onLoadMoreKeyup(event) {
759
+ if (isSpace(event)) {
760
+ this._onLoadMoreClick();
761
+ }
762
+ this._loadMoreActive = false;
763
+ }
764
+
765
+ _onLoadMoreMousedown() {
766
+ this._loadMoreActive = true;
767
+ }
768
+
769
+ _onLoadMoreMouseup() {
770
+ this._loadMoreActive = false;
771
+ }
772
+
773
+ _onLoadMoreClick() {
774
+ this.loadMore();
775
+ }
776
+
777
+ checkListInViewport() {
778
+ this._inViewport = isElementInView(this.getDomRef());
779
+ }
780
+
781
+ loadMore() {
782
+ this.fireEvent("load-more");
783
+ }
784
+
517
785
  /*
518
786
  * KEYBOARD SUPPORT
519
787
  */
@@ -533,7 +801,7 @@ class List extends UI5Element {
533
801
  }
534
802
 
535
803
  if (lastTabbableEl === target) {
536
- if (this.getFirstSelectedItem()) {
804
+ if (this.getFirstItem(x => x.selected && !x.disabled)) {
537
805
  this.focusFirstSelectedItem();
538
806
  } else if (this.getPreviouslyFocusedItem()) {
539
807
  this.focusPreviouslyFocusedItem();
@@ -546,13 +814,6 @@ class List extends UI5Element {
546
814
  }
547
815
  }
548
816
 
549
- _onScroll(event) {
550
- if (!this.infiniteScroll) {
551
- return;
552
- }
553
- this.debounce(this.loadMore.bind(this, event.target), INFINITE_SCROLL_DEBOUNCE_RATE);
554
- }
555
-
556
817
  _onfocusin(event) {
557
818
  // If the focusin event does not origin from one of the 'triggers' - ignore it.
558
819
  if (!this.isForwardElement(this.getNormalizedTarget(event.target))) {
@@ -563,7 +824,7 @@ class List extends UI5Element {
563
824
  // The focus arrives in the List for the first time.
564
825
  // If there is selected item - focus it or focus the first item.
565
826
  if (!this.getPreviouslyFocusedItem()) {
566
- if (this.getFirstSelectedItem()) {
827
+ if (this.getFirstItem(x => x.selected && !x.disabled)) {
567
828
  this.focusFirstSelectedItem();
568
829
  } else {
569
830
  this.focusFirstItem();
@@ -576,11 +837,13 @@ class List extends UI5Element {
576
837
  // The focus returns to the List,
577
838
  // focus the first selected item or the previously focused element.
578
839
  if (!this.getForwardingFocus()) {
579
- if (this.getFirstSelectedItem()) {
840
+ if (this.getFirstItem(x => x.selected && !x.disabled)) {
580
841
  this.focusFirstSelectedItem();
581
842
  } else {
582
843
  this.focusPreviouslyFocusedItem();
583
844
  }
845
+
846
+ event.stopImmediatePropagation();
584
847
  }
585
848
 
586
849
  this.setForwardingFocus(false);
@@ -588,18 +851,20 @@ class List extends UI5Element {
588
851
 
589
852
  isForwardElement(node) {
590
853
  const nodeId = node.id;
854
+ const afterElement = this.getAfterElement();
855
+ const beforeElement = this.getBeforeElement();
591
856
 
592
- if (this._id === nodeId || this.getBeforeElement().id === nodeId) {
857
+ if (this._id === nodeId || (beforeElement && beforeElement.id === nodeId)) {
593
858
  return true;
594
859
  }
595
860
 
596
- return this.getAfterElement().id === nodeId;
861
+ return afterElement && afterElement.id === nodeId;
597
862
  }
598
863
 
599
864
  onItemFocused(event) {
600
865
  const target = event.target;
601
866
 
602
- this._itemNavigation.update(target);
867
+ this._itemNavigation.setCurrentItem(target);
603
868
  this.fireEvent("item-focused", { item: target });
604
869
 
605
870
  if (this.mode === ListMode.SingleSelectAuto) {
@@ -647,11 +912,15 @@ class List extends UI5Element {
647
912
  onForwardBefore(event) {
648
913
  this.setPreviouslyFocusedItem(event.target);
649
914
  this.focusBeforeElement();
915
+ event.stopImmediatePropagation();
650
916
  }
651
917
 
652
918
  onForwardAfter(event) {
653
919
  this.setPreviouslyFocusedItem(event.target);
654
- this.focusAfterElement();
920
+
921
+ if (!this.growsWithButton) {
922
+ this.focusAfterElement();
923
+ }
655
924
  }
656
925
 
657
926
  focusBeforeElement() {
@@ -665,7 +934,8 @@ class List extends UI5Element {
665
934
  }
666
935
 
667
936
  focusFirstItem() {
668
- const firstItem = this.getFirstItem();
937
+ // only enabled items are focusable
938
+ const firstItem = this.getFirstItem(x => !x.disabled);
669
939
 
670
940
  if (firstItem) {
671
941
  firstItem.focus();
@@ -681,18 +951,24 @@ class List extends UI5Element {
681
951
  }
682
952
 
683
953
  focusFirstSelectedItem() {
684
- const firstSelectedItem = this.getFirstSelectedItem();
954
+ // only enabled items are focusable
955
+ const firstSelectedItem = this.getFirstItem(x => x.selected && !x.disabled);
685
956
 
686
957
  if (firstSelectedItem) {
687
958
  firstSelectedItem.focus();
688
959
  }
689
960
  }
690
961
 
962
+ /**
963
+ * Focuses a list item and sets its tabindex to "0" via the ItemNavigation
964
+ * @protected
965
+ * @param item
966
+ */
691
967
  focusItem(item) {
968
+ this._itemNavigation.setCurrentItem(item);
692
969
  item.focus();
693
970
  }
694
971
 
695
-
696
972
  focusUploadCollectionItem(event) {
697
973
  setTimeout(() => {
698
974
  this.setPreviouslyFocusedItem(event.target);
@@ -716,9 +992,22 @@ class List extends UI5Element {
716
992
  return this._previouslyFocusedItem;
717
993
  }
718
994
 
719
- getFirstItem() {
995
+ getFirstItem(filter) {
720
996
  const slottedItems = this.getSlottedNodes("items");
721
- return !!slottedItems.length && slottedItems[0];
997
+ let firstItem = null;
998
+
999
+ if (!filter) {
1000
+ return !!slottedItems.length && slottedItems[0];
1001
+ }
1002
+
1003
+ for (let i = 0; i < slottedItems.length; i++) {
1004
+ if (filter(slottedItems[i])) {
1005
+ firstItem = slottedItems[i];
1006
+ break;
1007
+ }
1008
+ }
1009
+
1010
+ return firstItem;
722
1011
  }
723
1012
 
724
1013
  getAfterElement() {
@@ -749,32 +1038,16 @@ class List extends UI5Element {
749
1038
  return focused;
750
1039
  }
751
1040
 
752
- loadMore(el) {
753
- const scrollTop = el.scrollTop;
754
- const height = el.offsetHeight;
755
- const scrollHeight = el.scrollHeight;
756
-
757
- if (this.previousScrollPosition > scrollTop) { // skip scrolling upwards
758
- this.previousScrollPosition = scrollTop;
759
- return;
1041
+ getIntersectionObserver() {
1042
+ if (!this.growingIntersectionObserver) {
1043
+ this.growingIntersectionObserver = new IntersectionObserver(this.onInteresection.bind(this), {
1044
+ root: null,
1045
+ rootMargin: "0px",
1046
+ threshold: 1.0,
1047
+ });
760
1048
  }
761
- this.previousScrollPosition = scrollTop;
762
1049
 
763
- if (scrollHeight - BUSYINDICATOR_HEIGHT <= height + scrollTop) {
764
- this.fireEvent("load-more");
765
- }
766
- }
767
-
768
- debounce(fn, delay) {
769
- clearTimeout(this.debounceInterval);
770
- this.debounceInterval = setTimeout(() => {
771
- this.debounceInterval = null;
772
- fn();
773
- }, delay);
774
- }
775
-
776
- static get dependencies() {
777
- return [BusyIndicator];
1050
+ return this.growingIntersectionObserver;
778
1051
  }
779
1052
  }
780
1053