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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (730) hide show
  1. package/CHANGELOG.md +717 -1
  2. package/README.md +144 -41
  3. package/csp.js +7 -0
  4. package/customI18n.js +50 -0
  5. package/dist/Assets-static.js +6 -0
  6. package/dist/Assets.js +3 -2
  7. package/dist/Avatar.js +224 -40
  8. package/dist/AvatarGroup.js +603 -0
  9. package/dist/Badge.js +48 -28
  10. package/dist/Breadcrumbs.js +563 -0
  11. package/dist/BreadcrumbsItem.js +109 -0
  12. package/dist/BusyIndicator.js +172 -19
  13. package/dist/Button.js +180 -49
  14. package/dist/Calendar.js +345 -554
  15. package/dist/CalendarDate.js +45 -0
  16. package/dist/CalendarHeader.js +133 -64
  17. package/dist/CalendarPart.js +111 -0
  18. package/dist/Card.js +47 -161
  19. package/dist/CardHeader.js +288 -0
  20. package/dist/Carousel.js +681 -0
  21. package/dist/CheckBox.js +154 -54
  22. package/dist/ColorPalette.js +493 -0
  23. package/dist/ColorPaletteItem.js +137 -0
  24. package/dist/ColorPalettePopover.js +219 -0
  25. package/dist/ColorPicker.js +524 -0
  26. package/dist/ComboBox.js +664 -107
  27. package/dist/ComboBoxFilters.js +8 -1
  28. package/dist/ComboBoxGroupItem.js +70 -0
  29. package/dist/ComboBoxItem.js +33 -30
  30. package/dist/CustomListItem.js +38 -9
  31. package/dist/DateComponentBase.js +170 -0
  32. package/dist/DatePicker.js +468 -384
  33. package/dist/DateRangePicker.js +328 -0
  34. package/dist/DateTimePicker.js +430 -0
  35. package/dist/DayPicker.js +513 -438
  36. package/dist/Dialog.js +501 -47
  37. package/dist/DurationPicker.js +312 -0
  38. package/dist/FileUploader.js +532 -0
  39. package/dist/GroupHeaderListItem.js +36 -8
  40. package/dist/Icon.js +221 -43
  41. package/dist/Input.js +796 -127
  42. package/dist/Interfaces.js +192 -0
  43. package/dist/Label.js +27 -12
  44. package/dist/Link.js +143 -35
  45. package/dist/List.js +560 -73
  46. package/dist/ListItem.js +139 -30
  47. package/dist/ListItemBase.js +53 -9
  48. package/dist/MessageStrip.js +82 -93
  49. package/dist/MonthPicker.js +181 -184
  50. package/dist/MultiComboBox.js +625 -200
  51. package/dist/MultiComboBoxItem.js +43 -0
  52. package/dist/MultiInput.js +301 -0
  53. package/dist/Option.js +48 -5
  54. package/dist/Panel.js +123 -41
  55. package/dist/Popover.js +314 -234
  56. package/dist/Popup.js +382 -287
  57. package/dist/ProgressIndicator.js +235 -0
  58. package/dist/RadioButton.js +153 -66
  59. package/dist/RadioButtonGroup.js +53 -29
  60. package/dist/RangeSlider.js +769 -0
  61. package/dist/RatingIndicator.js +291 -0
  62. package/dist/ResponsivePopover.js +117 -61
  63. package/dist/SegmentedButton.js +290 -0
  64. package/dist/SegmentedButtonItem.js +109 -0
  65. package/dist/Select.js +500 -110
  66. package/dist/Slider.js +320 -0
  67. package/dist/SliderBase.js +842 -0
  68. package/dist/StandardListItem.js +46 -24
  69. package/dist/StepInput.js +684 -0
  70. package/dist/SuggestionGroupItem.js +64 -0
  71. package/dist/SuggestionItem.js +146 -0
  72. package/dist/SuggestionListItem.js +76 -0
  73. package/dist/Switch.js +62 -48
  74. package/dist/Tab.js +184 -18
  75. package/dist/TabContainer.js +337 -235
  76. package/dist/TabSeparator.js +2 -1
  77. package/dist/Table.js +492 -39
  78. package/dist/TableCell.js +13 -15
  79. package/dist/TableColumn.js +18 -7
  80. package/dist/TableGroupRow.js +160 -0
  81. package/dist/TableRow.js +254 -31
  82. package/dist/TextArea.js +314 -38
  83. package/dist/TimePicker.js +166 -0
  84. package/dist/TimePickerBase.js +463 -0
  85. package/dist/TimeSelection.js +493 -0
  86. package/dist/Title.js +18 -10
  87. package/dist/Toast.js +63 -37
  88. package/dist/ToggleButton.js +21 -13
  89. package/dist/Token.js +87 -49
  90. package/dist/Tokenizer.js +250 -65
  91. package/dist/Tree.js +443 -0
  92. package/dist/TreeItem.js +168 -0
  93. package/dist/TreeListItem.js +332 -0
  94. package/dist/WheelSlider.js +435 -0
  95. package/dist/YearPicker.js +201 -258
  96. package/dist/api.json +6877 -0
  97. package/dist/features/ColorPaletteMoreColors.js +42 -0
  98. package/dist/features/InputElementsFormSupport.js +35 -1
  99. package/dist/features/InputSuggestions.js +294 -52
  100. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  101. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  102. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  103. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  104. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -0
  105. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  106. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  107. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  108. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  109. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -0
  110. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -0
  111. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -0
  112. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -0
  113. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  114. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -0
  115. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  116. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  117. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  118. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -0
  119. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  120. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  121. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  122. package/dist/generated/assets/i18n/messagebundle_in.json +1 -0
  123. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  124. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  125. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  126. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  127. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  128. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  129. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  130. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  131. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  132. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  133. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  134. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  135. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -0
  136. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  137. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  138. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  139. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  140. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  141. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  142. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  143. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  144. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  145. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  146. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  147. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  148. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  149. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  150. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -0
  151. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  152. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  153. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -0
  154. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -0
  155. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -0
  156. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -0
  157. package/dist/generated/i18n/i18n-defaults.js +2 -2
  158. package/dist/generated/json-imports/Themes-static.js +35 -0
  159. package/dist/generated/json-imports/Themes.js +23 -13
  160. package/dist/generated/json-imports/i18n-static.js +162 -0
  161. package/dist/generated/json-imports/i18n.js +113 -89
  162. package/dist/generated/templates/AvatarGroupTemplate.lit.js +9 -0
  163. package/dist/generated/templates/AvatarTemplate.lit.js +9 -9
  164. package/dist/generated/templates/BadgeTemplate.lit.js +5 -6
  165. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +8 -0
  166. package/dist/generated/templates/BreadcrumbsTemplate.lit.js +9 -0
  167. package/dist/generated/templates/BusyIndicatorTemplate.lit.js +7 -5
  168. package/dist/generated/templates/ButtonTemplate.lit.js +6 -6
  169. package/dist/generated/templates/CalendarHeaderTemplate.lit.js +6 -4
  170. package/dist/generated/templates/CalendarTemplate.lit.js +4 -4
  171. package/dist/generated/templates/CardHeaderTemplate.lit.js +12 -0
  172. package/dist/generated/templates/CardTemplate.lit.js +5 -8
  173. package/dist/generated/templates/CarouselTemplate.lit.js +16 -0
  174. package/dist/generated/templates/CheckBoxTemplate.lit.js +7 -7
  175. package/dist/generated/templates/ColorPaletteDialogTemplate.lit.js +7 -0
  176. package/dist/generated/templates/ColorPaletteItemTemplate.lit.js +7 -0
  177. package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +8 -0
  178. package/dist/generated/templates/ColorPaletteTemplate.lit.js +12 -0
  179. package/dist/generated/templates/ColorPickerTemplate.lit.js +7 -0
  180. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +20 -5
  181. package/dist/generated/templates/ComboBoxTemplate.lit.js +8 -5
  182. package/dist/generated/templates/CustomListItemTemplate.lit.js +13 -12
  183. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +7 -4
  184. package/dist/generated/templates/DatePickerTemplate.lit.js +6 -5
  185. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +12 -0
  186. package/dist/generated/templates/DayPickerTemplate.lit.js +13 -11
  187. package/dist/generated/templates/DialogTemplate.lit.js +9 -8
  188. package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +10 -0
  189. package/dist/generated/templates/FileUploaderTemplate.lit.js +10 -0
  190. package/dist/generated/templates/GroupHeaderListItemTemplate.lit.js +4 -4
  191. package/dist/generated/templates/IconTemplate.lit.js +6 -6
  192. package/dist/generated/templates/InputPopoverTemplate.lit.js +24 -6
  193. package/dist/generated/templates/InputTemplate.lit.js +9 -8
  194. package/dist/generated/templates/LabelTemplate.lit.js +4 -4
  195. package/dist/generated/templates/LinkTemplate.lit.js +5 -5
  196. package/dist/generated/templates/ListItemTemplate.lit.js +13 -12
  197. package/dist/generated/templates/ListTemplate.lit.js +12 -8
  198. package/dist/generated/templates/MessageStripTemplate.lit.js +6 -22
  199. package/dist/generated/templates/MonthPickerTemplate.lit.js +6 -6
  200. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +23 -7
  201. package/dist/generated/templates/MultiComboBoxTemplate.lit.js +10 -8
  202. package/dist/generated/templates/MultiInputTemplate.lit.js +16 -0
  203. package/dist/generated/templates/PanelTemplate.lit.js +9 -6
  204. package/dist/generated/templates/PopoverTemplate.lit.js +9 -9
  205. package/dist/generated/templates/PopupBlockLayerTemplate.lit.js +7 -0
  206. package/dist/generated/templates/PopupTemplate.lit.js +4 -4
  207. package/dist/generated/templates/ProgressIndicatorTemplate.lit.js +17 -0
  208. package/dist/generated/templates/RadioButtonTemplate.lit.js +7 -7
  209. package/dist/generated/templates/RangeSliderTemplate.lit.js +13 -0
  210. package/dist/generated/templates/RatingIndicatorTemplate.lit.js +14 -0
  211. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +16 -11
  212. package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +8 -0
  213. package/dist/generated/templates/SegmentedButtonTemplate.lit.js +7 -0
  214. package/dist/generated/templates/SelectPopoverTemplate.lit.js +20 -6
  215. package/dist/generated/templates/SelectTemplate.lit.js +6 -4
  216. package/dist/generated/templates/SliderBaseTemplate.lit.js +11 -0
  217. package/dist/generated/templates/SliderTemplate.lit.js +12 -0
  218. package/dist/generated/templates/StandardListItemTemplate.lit.js +21 -18
  219. package/dist/generated/templates/StepInputTemplate.lit.js +10 -0
  220. package/dist/generated/templates/SuggestionListItemTemplate.lit.js +27 -0
  221. package/dist/generated/templates/SwitchTemplate.lit.js +8 -6
  222. package/dist/generated/templates/TabContainerPopoverTemplate.lit.js +6 -8
  223. package/dist/generated/templates/TabContainerTemplate.lit.js +16 -18
  224. package/dist/generated/templates/TabInOverflowTemplate.lit.js +9 -0
  225. package/dist/generated/templates/TabInStripTemplate.lit.js +11 -0
  226. package/dist/generated/templates/TabSeparatorTemplate.lit.js +4 -4
  227. package/dist/generated/templates/TabTemplate.lit.js +4 -4
  228. package/dist/generated/templates/TableCellTemplate.lit.js +4 -4
  229. package/dist/generated/templates/TableColumnTemplate.lit.js +4 -4
  230. package/dist/generated/templates/TableGroupRowTemplate.lit.js +7 -0
  231. package/dist/generated/templates/TableRowTemplate.lit.js +12 -6
  232. package/dist/generated/templates/TableTemplate.lit.js +13 -8
  233. package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +11 -0
  234. package/dist/generated/templates/TextAreaTemplate.lit.js +8 -8
  235. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +7 -0
  236. package/dist/generated/templates/TimePickerTemplate.lit.js +9 -0
  237. package/dist/generated/templates/TimeSelectionTemplate.lit.js +11 -0
  238. package/dist/generated/templates/TitleTemplate.lit.js +10 -10
  239. package/dist/generated/templates/ToastTemplate.lit.js +5 -4
  240. package/dist/generated/templates/ToggleButtonTemplate.lit.js +6 -6
  241. package/dist/generated/templates/TokenTemplate.lit.js +7 -5
  242. package/dist/generated/templates/TokenizerPopoverTemplate.lit.js +12 -0
  243. package/dist/generated/templates/TokenizerTemplate.lit.js +6 -6
  244. package/dist/generated/templates/TreeListItemTemplate.lit.js +21 -0
  245. package/dist/generated/templates/TreeTemplate.lit.js +8 -0
  246. package/dist/generated/templates/WheelSliderTemplate.lit.js +10 -0
  247. package/dist/generated/templates/YearPickerTemplate.lit.js +6 -6
  248. package/dist/generated/themes/Avatar.css.js +6 -7
  249. package/dist/generated/themes/AvatarGroup.css.js +8 -0
  250. package/dist/generated/themes/Badge.css.js +6 -7
  251. package/dist/generated/themes/Breadcrumbs.css.js +8 -0
  252. package/dist/generated/themes/BreadcrumbsPopover.css.js +8 -0
  253. package/dist/generated/themes/BrowserScrollbar.css.js +8 -0
  254. package/dist/generated/themes/BusyIndicator.css.js +6 -7
  255. package/dist/generated/themes/Button.css.js +6 -7
  256. package/dist/generated/themes/Button.ie11.css.js +8 -0
  257. package/dist/generated/themes/Calendar.css.js +6 -7
  258. package/dist/generated/themes/CalendarHeader.css.js +6 -7
  259. package/dist/generated/themes/Card.css.js +6 -7
  260. package/dist/generated/themes/CardHeader.css.js +8 -0
  261. package/dist/generated/themes/Carousel.css.js +8 -0
  262. package/dist/generated/themes/CheckBox.css.js +6 -7
  263. package/dist/generated/themes/ColorPalette.css.js +8 -0
  264. package/dist/generated/themes/ColorPaletteItem.css.js +8 -0
  265. package/dist/generated/themes/ColorPalettePopover.css.js +8 -0
  266. package/dist/generated/themes/ColorPaletteStaticArea.css.js +8 -0
  267. package/dist/generated/themes/ColorPicker.css.js +8 -0
  268. package/dist/generated/themes/ComboBox.css.js +6 -7
  269. package/dist/generated/themes/ComboBoxPopover.css.js +6 -7
  270. package/dist/generated/themes/CustomListItem.css.js +6 -7
  271. package/dist/generated/themes/DatePicker.css.js +6 -7
  272. package/dist/generated/themes/DatePickerPopover.css.js +6 -7
  273. package/dist/generated/themes/DateRangePicker.css.js +8 -0
  274. package/dist/generated/themes/DateTimePicker.css.js +8 -0
  275. package/dist/generated/themes/DateTimePickerPopover.css.js +8 -0
  276. package/dist/generated/themes/DayPicker.css.js +6 -7
  277. package/dist/generated/themes/Dialog.css.js +6 -7
  278. package/dist/generated/themes/FileUploader.css.js +8 -0
  279. package/dist/generated/themes/GroupHeaderListItem.css.js +6 -7
  280. package/dist/generated/themes/GrowingButton.css.js +8 -0
  281. package/dist/generated/themes/Icon.css.js +6 -7
  282. package/dist/generated/themes/Input.css.js +6 -7
  283. package/dist/generated/themes/InputIcon.css.js +6 -7
  284. package/dist/generated/themes/InvisibleTextStyles.css.js +6 -7
  285. package/dist/generated/themes/Label.css.js +6 -7
  286. package/dist/generated/themes/Link.css.js +6 -7
  287. package/dist/generated/themes/List.css.js +6 -7
  288. package/dist/generated/themes/ListItem.css.js +6 -7
  289. package/dist/generated/themes/ListItemBase.css.js +6 -7
  290. package/dist/generated/themes/MessageStrip.css.js +6 -7
  291. package/dist/generated/themes/MonthPicker.css.js +6 -7
  292. package/dist/generated/themes/MultiComboBox.css.js +6 -7
  293. package/dist/generated/themes/MultiInput.css.js +8 -0
  294. package/dist/generated/themes/Panel.css.js +6 -7
  295. package/dist/generated/themes/Popover.css.js +6 -7
  296. package/dist/generated/themes/Popup.css.js +6 -7
  297. package/dist/generated/themes/PopupGlobal.css.js +8 -0
  298. package/dist/generated/themes/PopupStaticAreaStyles.css.js +8 -0
  299. package/dist/generated/themes/PopupsCommon.css.js +8 -0
  300. package/dist/generated/themes/ProgressIndicator.css.js +8 -0
  301. package/dist/generated/themes/RadioButton.css.js +6 -7
  302. package/dist/generated/themes/RatingIndicator.css.js +8 -0
  303. package/dist/generated/themes/ResponsivePopover.css.js +6 -7
  304. package/dist/generated/themes/ResponsivePopoverCommon.css.js +6 -7
  305. package/dist/generated/themes/SegmentedButton.css.js +8 -0
  306. package/dist/generated/themes/Select.css.js +6 -7
  307. package/dist/generated/themes/SelectPopover.css.js +8 -0
  308. package/dist/generated/themes/SliderBase.css.js +8 -0
  309. package/dist/generated/themes/StepInput.css.js +8 -0
  310. package/dist/generated/themes/Suggestions.css.js +8 -0
  311. package/dist/generated/themes/Switch.css.js +6 -7
  312. package/dist/generated/themes/Tab.css.js +6 -7
  313. package/dist/generated/themes/TabContainer.css.js +6 -7
  314. package/dist/generated/themes/TabInOverflow.css.js +8 -0
  315. package/dist/generated/themes/TabInStrip.css.js +8 -0
  316. package/dist/generated/themes/Table.css.js +6 -7
  317. package/dist/generated/themes/TableCell.css.js +6 -7
  318. package/dist/generated/themes/TableColumn.css.js +6 -7
  319. package/dist/generated/themes/TableGroupRow.css.js +8 -0
  320. package/dist/generated/themes/TableRow.css.js +6 -7
  321. package/dist/generated/themes/TapHighlightColor.css.js +8 -0
  322. package/dist/generated/themes/TextArea.css.js +6 -7
  323. package/dist/generated/themes/TimePicker.css.js +8 -0
  324. package/dist/generated/themes/TimePickerPopover.css.js +8 -0
  325. package/dist/generated/themes/TimeSelection.css.js +8 -0
  326. package/dist/generated/themes/Title.css.js +6 -7
  327. package/dist/generated/themes/Toast.css.js +6 -7
  328. package/dist/generated/themes/ToggleButton.css.js +6 -7
  329. package/dist/generated/themes/ToggleButton.ie11.css.js +8 -0
  330. package/dist/generated/themes/Token.css.js +6 -7
  331. package/dist/generated/themes/Tokenizer.css.js +6 -7
  332. package/dist/generated/themes/Tree.css.js +8 -0
  333. package/dist/generated/themes/TreeListItem.css.js +8 -0
  334. package/dist/generated/themes/ValueStateMessage.css.js +8 -0
  335. package/dist/generated/themes/WheelSlider.css.js +8 -0
  336. package/dist/generated/themes/YearPicker.css.js +6 -7
  337. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  338. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  339. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -0
  340. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  341. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  342. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -0
  343. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -0
  344. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -0
  345. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -0
  346. package/dist/i18n/messagebundle.properties +335 -0
  347. package/dist/i18n/messagebundle_ar.properties +224 -0
  348. package/dist/i18n/messagebundle_bg.properties +224 -0
  349. package/dist/i18n/messagebundle_ca.properties +224 -0
  350. package/dist/i18n/messagebundle_cs.properties +224 -0
  351. package/dist/i18n/messagebundle_cy.properties +224 -0
  352. package/dist/i18n/messagebundle_da.properties +224 -0
  353. package/dist/i18n/messagebundle_de.properties +224 -0
  354. package/dist/i18n/messagebundle_el.properties +224 -0
  355. package/dist/i18n/messagebundle_en.properties +224 -0
  356. package/dist/i18n/messagebundle_en_GB.properties +224 -0
  357. package/dist/i18n/messagebundle_en_US_sappsd.properties +224 -0
  358. package/dist/i18n/messagebundle_en_US_saprigi.properties +224 -0
  359. package/dist/i18n/messagebundle_en_US_saptrc.properties +224 -0
  360. package/dist/i18n/messagebundle_es.properties +224 -0
  361. package/dist/i18n/messagebundle_es_MX.properties +224 -0
  362. package/dist/i18n/messagebundle_et.properties +224 -0
  363. package/dist/i18n/messagebundle_fi.properties +224 -0
  364. package/dist/i18n/messagebundle_fr.properties +224 -0
  365. package/dist/i18n/messagebundle_fr_CA.properties +224 -0
  366. package/dist/i18n/messagebundle_hi.properties +224 -0
  367. package/dist/i18n/messagebundle_hr.properties +224 -0
  368. package/dist/i18n/messagebundle_hu.properties +224 -0
  369. package/dist/i18n/messagebundle_id.properties +224 -0
  370. package/dist/i18n/messagebundle_in.properties +172 -0
  371. package/dist/i18n/messagebundle_it.properties +224 -0
  372. package/dist/i18n/messagebundle_iw.properties +224 -0
  373. package/dist/i18n/messagebundle_ja.properties +224 -0
  374. package/dist/i18n/messagebundle_kk.properties +224 -0
  375. package/dist/i18n/messagebundle_ko.properties +224 -0
  376. package/dist/i18n/messagebundle_lt.properties +224 -0
  377. package/dist/i18n/messagebundle_lv.properties +224 -0
  378. package/dist/i18n/messagebundle_ms.properties +224 -0
  379. package/dist/i18n/messagebundle_nl.properties +224 -0
  380. package/dist/i18n/messagebundle_no.properties +224 -0
  381. package/dist/i18n/messagebundle_pl.properties +224 -0
  382. package/dist/i18n/messagebundle_pt.properties +224 -0
  383. package/dist/i18n/messagebundle_pt_PT.properties +224 -0
  384. package/dist/i18n/messagebundle_ro.properties +224 -0
  385. package/dist/i18n/messagebundle_ru.properties +224 -0
  386. package/dist/i18n/messagebundle_sh.properties +224 -0
  387. package/dist/i18n/messagebundle_sk.properties +224 -0
  388. package/dist/i18n/messagebundle_sl.properties +224 -0
  389. package/dist/i18n/messagebundle_sv.properties +224 -0
  390. package/dist/i18n/messagebundle_th.properties +224 -0
  391. package/dist/i18n/messagebundle_tr.properties +224 -0
  392. package/dist/i18n/messagebundle_uk.properties +224 -0
  393. package/dist/i18n/messagebundle_vi.properties +224 -0
  394. package/dist/i18n/messagebundle_zh_CN.properties +224 -0
  395. package/dist/i18n/messagebundle_zh_TW.properties +224 -0
  396. package/dist/popup-utils/OpenedPopupsRegistry.js +18 -13
  397. package/dist/popup-utils/PopoverRegistry.js +55 -21
  398. package/dist/timepicker-utils/TimeSlider.js +103 -0
  399. package/dist/types/{AvatarBackgroundColor.js → AvatarColorScheme.js} +9 -9
  400. package/dist/types/AvatarGroupType.js +43 -0
  401. package/dist/types/AvatarShape.js +1 -1
  402. package/dist/types/AvatarSize.js +1 -1
  403. package/dist/types/BreadcrumbsDesign.js +42 -0
  404. package/dist/types/BreadcrumbsSeparatorStyle.js +69 -0
  405. package/dist/types/BusyIndicatorSize.js +1 -1
  406. package/dist/types/ButtonDesign.js +8 -1
  407. package/dist/types/CalendarSelectionMode.js +47 -0
  408. package/dist/types/CarouselArrowsPlacement.js +40 -0
  409. package/dist/types/GrowingMode.js +48 -0
  410. package/dist/types/InputType.js +7 -7
  411. package/dist/types/LinkDesign.js +1 -1
  412. package/dist/types/ListGrowingMode.js +15 -0
  413. package/dist/types/ListItemType.js +8 -1
  414. package/dist/types/ListMode.js +9 -1
  415. package/dist/types/ListSeparators.js +1 -1
  416. package/dist/types/{MessageStripType.js → MessageStripDesign.js} +7 -7
  417. package/dist/types/PanelAccessibleRole.js +1 -1
  418. package/dist/types/PopoverHorizontalAlign.js +1 -1
  419. package/dist/types/PopoverPlacementType.js +2 -2
  420. package/dist/types/PopoverVerticalAlign.js +1 -2
  421. package/dist/types/Priority.js +55 -0
  422. package/dist/types/SemanticColor.js +1 -1
  423. package/dist/types/SwitchDesign.js +40 -0
  424. package/dist/types/TabContainerTabsPlacement.js +40 -0
  425. package/dist/types/TabLayout.js +40 -0
  426. package/dist/types/TableGrowingMode.js +15 -0
  427. package/dist/types/TableMode.js +47 -0
  428. package/dist/types/TableRowType.js +40 -0
  429. package/dist/types/TitleLevel.js +1 -1
  430. package/dist/types/ToastPlacement.js +1 -2
  431. package/dist/types/WrappingType.js +41 -0
  432. package/dist/webcomponentsjs/CHANGELOG.md +61 -0
  433. package/dist/webcomponentsjs/README.md +64 -47
  434. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +38 -38
  435. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +1 -1
  436. package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js +60 -0
  437. package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js.map +1 -0
  438. package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js +95 -0
  439. package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js.map +1 -0
  440. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +292 -229
  441. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +1 -1
  442. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +190 -170
  443. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +1 -1
  444. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +151 -132
  445. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +1 -1
  446. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +2 -2
  447. package/dist/webcomponentsjs/webcomponents-bundle.js +302 -230
  448. package/dist/webcomponentsjs/webcomponents-bundle.js.map +1 -1
  449. package/dist/webcomponentsjs/webcomponents-loader.js +49 -28
  450. package/package-scripts.js +1 -0
  451. package/package.json +23 -8
  452. package/src/Assets-static.js +6 -0
  453. package/src/Assets.js +7 -0
  454. package/src/Avatar.hbs +20 -0
  455. package/src/Avatar.js +392 -0
  456. package/src/AvatarGroup.hbs +30 -0
  457. package/src/AvatarGroup.js +603 -0
  458. package/src/Badge.hbs +14 -0
  459. package/src/Badge.js +165 -0
  460. package/src/Breadcrumbs.hbs +42 -0
  461. package/src/Breadcrumbs.js +563 -0
  462. package/src/BreadcrumbsItem.js +109 -0
  463. package/src/BreadcrumbsPopover.hbs +28 -0
  464. package/src/BusyIndicator.hbs +32 -0
  465. package/src/BusyIndicator.js +269 -0
  466. package/src/Button.hbs +45 -0
  467. package/src/Button.js +463 -0
  468. package/src/Calendar.hbs +69 -0
  469. package/src/Calendar.js +489 -0
  470. package/src/CalendarDate.js +45 -0
  471. package/src/CalendarHeader.hbs +54 -0
  472. package/src/CalendarHeader.js +209 -0
  473. package/src/CalendarPart.js +111 -0
  474. package/src/Card.hbs +14 -0
  475. package/src/Card.js +160 -0
  476. package/src/CardHeader.hbs +35 -0
  477. package/src/CardHeader.js +288 -0
  478. package/src/Carousel.hbs +85 -0
  479. package/src/Carousel.js +681 -0
  480. package/src/CheckBox.hbs +44 -0
  481. package/src/CheckBox.js +424 -0
  482. package/src/ColorPalette.hbs +52 -0
  483. package/src/ColorPalette.js +493 -0
  484. package/src/ColorPaletteDialog.hbs +18 -0
  485. package/src/ColorPaletteItem.hbs +11 -0
  486. package/src/ColorPaletteItem.js +137 -0
  487. package/src/ColorPalettePopover.hbs +29 -0
  488. package/src/ColorPalettePopover.js +219 -0
  489. package/src/ColorPicker.hbs +98 -0
  490. package/src/ColorPicker.js +524 -0
  491. package/src/ComboBox.hbs +49 -0
  492. package/src/ComboBox.js +1041 -0
  493. package/src/ComboBoxFilters.js +40 -0
  494. package/src/ComboBoxGroupItem.js +70 -0
  495. package/src/ComboBoxItem.js +49 -0
  496. package/src/ComboBoxPopover.hbs +125 -0
  497. package/src/CustomListItem.hbs +5 -0
  498. package/src/CustomListItem.js +99 -0
  499. package/src/DateComponentBase.js +170 -0
  500. package/src/DatePicker.hbs +44 -0
  501. package/src/DatePicker.js +823 -0
  502. package/src/DatePickerPopover.hbs +63 -0
  503. package/src/DateRangePicker.js +328 -0
  504. package/src/DateTimePicker.js +430 -0
  505. package/src/DateTimePickerPopover.hbs +74 -0
  506. package/src/DayPicker.hbs +66 -0
  507. package/src/DayPicker.js +754 -0
  508. package/src/Dialog.hbs +35 -0
  509. package/src/Dialog.js +601 -0
  510. package/src/DurationPicker.js +312 -0
  511. package/src/FileUploader.hbs +40 -0
  512. package/src/FileUploader.js +532 -0
  513. package/src/FileUploaderPopover.hbs +25 -0
  514. package/src/GroupHeaderListItem.hbs +15 -0
  515. package/src/GroupHeaderListItem.js +94 -0
  516. package/src/Icon.hbs +25 -0
  517. package/src/Icon.js +373 -0
  518. package/src/Input.hbs +78 -0
  519. package/src/Input.js +1381 -0
  520. package/src/InputPopover.hbs +118 -0
  521. package/src/Interfaces.js +192 -0
  522. package/src/Label.hbs +13 -0
  523. package/src/Label.js +152 -0
  524. package/src/Link.hbs +20 -0
  525. package/src/Link.js +349 -0
  526. package/src/List.hbs +89 -0
  527. package/src/List.js +1056 -0
  528. package/src/ListItem.hbs +102 -0
  529. package/src/ListItem.js +371 -0
  530. package/src/ListItemBase.js +179 -0
  531. package/src/MessageStrip.hbs +34 -0
  532. package/src/MessageStrip.js +227 -0
  533. package/src/MonthPicker.hbs +29 -0
  534. package/src/MonthPicker.js +299 -0
  535. package/src/MultiComboBox.hbs +78 -0
  536. package/src/MultiComboBox.js +1091 -0
  537. package/src/MultiComboBoxItem.js +43 -0
  538. package/src/MultiComboBoxPopover.hbs +133 -0
  539. package/src/MultiInput.hbs +41 -0
  540. package/src/MultiInput.js +301 -0
  541. package/src/Option.js +115 -0
  542. package/src/Panel.hbs +63 -0
  543. package/src/Panel.js +462 -0
  544. package/src/Popover.hbs +25 -0
  545. package/src/Popover.js +786 -0
  546. package/src/Popup.hbs +34 -0
  547. package/src/Popup.js +567 -0
  548. package/src/PopupBlockLayer.hbs +7 -0
  549. package/src/ProgressIndicator.hbs +35 -0
  550. package/src/ProgressIndicator.js +235 -0
  551. package/src/RadioButton.hbs +33 -0
  552. package/src/RadioButton.js +494 -0
  553. package/src/RadioButtonGroup.js +205 -0
  554. package/src/RangeSlider.hbs +70 -0
  555. package/src/RangeSlider.js +769 -0
  556. package/src/RatingIndicator.hbs +33 -0
  557. package/src/RatingIndicator.js +291 -0
  558. package/src/ResponsivePopover.hbs +39 -0
  559. package/src/ResponsivePopover.js +206 -0
  560. package/src/SegmentedButton.hbs +17 -0
  561. package/src/SegmentedButton.js +290 -0
  562. package/src/SegmentedButtonItem.hbs +42 -0
  563. package/src/SegmentedButtonItem.js +109 -0
  564. package/src/Select.hbs +45 -0
  565. package/src/Select.js +834 -0
  566. package/src/SelectPopover.hbs +89 -0
  567. package/src/Slider.hbs +42 -0
  568. package/src/Slider.js +320 -0
  569. package/src/SliderBase.hbs +38 -0
  570. package/src/SliderBase.js +842 -0
  571. package/src/StandardListItem.hbs +44 -0
  572. package/src/StandardListItem.js +191 -0
  573. package/src/StepInput.hbs +80 -0
  574. package/src/StepInput.js +684 -0
  575. package/src/SuggestionGroupItem.js +64 -0
  576. package/src/SuggestionItem.js +146 -0
  577. package/src/SuggestionListItem.hbs +33 -0
  578. package/src/SuggestionListItem.js +76 -0
  579. package/src/Switch.hbs +50 -0
  580. package/src/Switch.js +262 -0
  581. package/src/Tab.hbs +3 -0
  582. package/src/Tab.js +334 -0
  583. package/src/TabContainer.hbs +93 -0
  584. package/src/TabContainer.js +679 -0
  585. package/src/TabContainerPopover.hbs +24 -0
  586. package/src/TabInOverflow.hbs +22 -0
  587. package/src/TabInStrip.hbs +43 -0
  588. package/src/TabSeparator.hbs +1 -0
  589. package/src/TabSeparator.js +44 -0
  590. package/src/Table.hbs +99 -0
  591. package/src/Table.js +761 -0
  592. package/src/TableCell.hbs +7 -0
  593. package/src/TableCell.js +88 -0
  594. package/src/TableColumn.hbs +8 -0
  595. package/src/TableColumn.js +136 -0
  596. package/src/TableGroupRow.hbs +12 -0
  597. package/src/TableGroupRow.js +160 -0
  598. package/src/TableRow.hbs +61 -0
  599. package/src/TableRow.js +388 -0
  600. package/src/TextArea.hbs +50 -0
  601. package/src/TextArea.js +691 -0
  602. package/src/TextAreaPopover.hbs +28 -0
  603. package/src/TimePicker.hbs +35 -0
  604. package/src/TimePicker.js +166 -0
  605. package/src/TimePickerBase.js +463 -0
  606. package/src/TimePickerPopover.hbs +34 -0
  607. package/src/TimeSelection.hbs +60 -0
  608. package/src/TimeSelection.js +493 -0
  609. package/src/Title.hbs +47 -0
  610. package/src/Title.js +132 -0
  611. package/src/Toast.hbs +13 -0
  612. package/src/Toast.js +243 -0
  613. package/src/ToggleButton.hbs +5 -0
  614. package/src/ToggleButton.js +84 -0
  615. package/src/Token.hbs +30 -0
  616. package/src/Token.js +219 -0
  617. package/src/Tokenizer.hbs +27 -0
  618. package/src/Tokenizer.js +414 -0
  619. package/src/TokenizerPopover.hbs +50 -0
  620. package/src/Tree.hbs +42 -0
  621. package/src/Tree.js +443 -0
  622. package/src/TreeItem.js +168 -0
  623. package/src/TreeListItem.hbs +48 -0
  624. package/src/TreeListItem.js +332 -0
  625. package/src/WheelSlider.hbs +48 -0
  626. package/src/WheelSlider.js +435 -0
  627. package/src/YearPicker.hbs +27 -0
  628. package/src/YearPicker.js +324 -0
  629. package/src/features/ColorPaletteMoreColors.js +42 -0
  630. package/src/features/InputElementsFormSupport.js +88 -0
  631. package/src/features/InputSuggestions.js +530 -0
  632. package/src/i18n/messagebundle.properties +335 -0
  633. package/src/i18n/messagebundle_ar.properties +224 -0
  634. package/src/i18n/messagebundle_bg.properties +224 -0
  635. package/src/i18n/messagebundle_ca.properties +224 -0
  636. package/src/i18n/messagebundle_cs.properties +224 -0
  637. package/src/i18n/messagebundle_cy.properties +224 -0
  638. package/src/i18n/messagebundle_da.properties +224 -0
  639. package/src/i18n/messagebundle_de.properties +224 -0
  640. package/src/i18n/messagebundle_el.properties +224 -0
  641. package/src/i18n/messagebundle_en.properties +224 -0
  642. package/src/i18n/messagebundle_en_GB.properties +224 -0
  643. package/src/i18n/messagebundle_en_US_sappsd.properties +224 -0
  644. package/src/i18n/messagebundle_en_US_saprigi.properties +224 -0
  645. package/src/i18n/messagebundle_en_US_saptrc.properties +224 -0
  646. package/src/i18n/messagebundle_es.properties +224 -0
  647. package/src/i18n/messagebundle_es_MX.properties +224 -0
  648. package/src/i18n/messagebundle_et.properties +224 -0
  649. package/src/i18n/messagebundle_fi.properties +224 -0
  650. package/src/i18n/messagebundle_fr.properties +224 -0
  651. package/src/i18n/messagebundle_fr_CA.properties +224 -0
  652. package/src/i18n/messagebundle_hi.properties +224 -0
  653. package/src/i18n/messagebundle_hr.properties +224 -0
  654. package/src/i18n/messagebundle_hu.properties +224 -0
  655. package/src/i18n/messagebundle_id.properties +224 -0
  656. package/src/i18n/messagebundle_in.properties +172 -0
  657. package/src/i18n/messagebundle_it.properties +224 -0
  658. package/src/i18n/messagebundle_iw.properties +224 -0
  659. package/src/i18n/messagebundle_ja.properties +224 -0
  660. package/src/i18n/messagebundle_kk.properties +224 -0
  661. package/src/i18n/messagebundle_ko.properties +224 -0
  662. package/src/i18n/messagebundle_lt.properties +224 -0
  663. package/src/i18n/messagebundle_lv.properties +224 -0
  664. package/src/i18n/messagebundle_ms.properties +224 -0
  665. package/src/i18n/messagebundle_nl.properties +224 -0
  666. package/src/i18n/messagebundle_no.properties +224 -0
  667. package/src/i18n/messagebundle_pl.properties +224 -0
  668. package/src/i18n/messagebundle_pt.properties +224 -0
  669. package/src/i18n/messagebundle_pt_PT.properties +224 -0
  670. package/src/i18n/messagebundle_ro.properties +224 -0
  671. package/src/i18n/messagebundle_ru.properties +224 -0
  672. package/src/i18n/messagebundle_sh.properties +224 -0
  673. package/src/i18n/messagebundle_sk.properties +224 -0
  674. package/src/i18n/messagebundle_sl.properties +224 -0
  675. package/src/i18n/messagebundle_sv.properties +224 -0
  676. package/src/i18n/messagebundle_th.properties +224 -0
  677. package/src/i18n/messagebundle_tr.properties +224 -0
  678. package/src/i18n/messagebundle_uk.properties +224 -0
  679. package/src/i18n/messagebundle_vi.properties +224 -0
  680. package/src/i18n/messagebundle_zh_CN.properties +224 -0
  681. package/src/i18n/messagebundle_zh_TW.properties +224 -0
  682. package/src/popup-utils/OpenedPopupsRegistry.js +50 -0
  683. package/src/popup-utils/PopoverRegistry.js +145 -0
  684. package/src/timepicker-utils/TimeSlider.js +103 -0
  685. package/src/types/AvatarColorScheme.js +104 -0
  686. package/src/types/AvatarGroupType.js +43 -0
  687. package/src/types/AvatarShape.js +41 -0
  688. package/src/types/AvatarSize.js +67 -0
  689. package/src/types/BreadcrumbsDesign.js +42 -0
  690. package/src/types/BreadcrumbsSeparatorStyle.js +69 -0
  691. package/src/types/BusyIndicatorSize.js +47 -0
  692. package/src/types/ButtonDesign.js +68 -0
  693. package/src/types/CalendarSelectionMode.js +47 -0
  694. package/src/types/CarouselArrowsPlacement.js +40 -0
  695. package/src/types/GrowingMode.js +48 -0
  696. package/src/types/InputType.js +68 -0
  697. package/src/types/LinkDesign.js +47 -0
  698. package/src/types/ListGrowingMode.js +15 -0
  699. package/src/types/ListItemType.js +47 -0
  700. package/src/types/ListMode.js +77 -0
  701. package/src/types/ListSeparators.js +46 -0
  702. package/src/types/MessageStripDesign.js +54 -0
  703. package/src/types/PanelAccessibleRole.js +48 -0
  704. package/src/types/PopoverHorizontalAlign.js +54 -0
  705. package/src/types/PopoverPlacementType.js +54 -0
  706. package/src/types/PopoverVerticalAlign.js +54 -0
  707. package/src/types/Priority.js +55 -0
  708. package/src/types/SemanticColor.js +61 -0
  709. package/src/types/SwitchDesign.js +40 -0
  710. package/src/types/TabContainerTabsPlacement.js +40 -0
  711. package/src/types/TabLayout.js +40 -0
  712. package/src/types/TableGrowingMode.js +15 -0
  713. package/src/types/TableMode.js +47 -0
  714. package/src/types/TableRowType.js +40 -0
  715. package/src/types/TitleLevel.js +68 -0
  716. package/src/types/ToastPlacement.js +91 -0
  717. package/src/types/WrappingType.js +41 -0
  718. package/dist/Timeline.js +0 -81
  719. package/dist/TimelineItem.js +0 -163
  720. package/dist/generated/templates/ComboBoxItemTemplate.lit.js +0 -7
  721. package/dist/generated/templates/TimelineItemTemplate.lit.js +0 -12
  722. package/dist/generated/templates/TimelineTemplate.lit.js +0 -8
  723. package/dist/generated/themes/ComboBoxItem.css.js +0 -9
  724. package/dist/generated/themes/TabContainerPopup.css.js +0 -9
  725. package/dist/generated/themes/Timeline.css.js +0 -9
  726. package/dist/generated/themes/TimelineItem.css.js +0 -9
  727. package/dist/popup-utils/PopupUtils.js +0 -42
  728. package/dist/types/AvatarFitType.js +0 -40
  729. package/dist/webcomponentsjs/package.json +0 -46
  730. package/index.js +0 -2
@@ -2,20 +2,24 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
3
3
  import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
4
4
  import ScrollEnablement from "@ui5/webcomponents-base/dist/delegate/ScrollEnablement.js";
5
+ import slideDown from "@ui5/webcomponents-base/dist/animations/slideDown.js";
6
+ import slideUp from "@ui5/webcomponents-base/dist/animations/slideUp.js";
7
+ import AnimationMode from "@ui5/webcomponents-base/dist/types/AnimationMode.js";
8
+ import { getAnimationMode } from "@ui5/webcomponents-base/dist/config/AnimationMode.js";
5
9
  import ItemNavigation from "@ui5/webcomponents-base/dist/delegate/ItemNavigation.js";
6
- import { isSpace, isEnter } from "@ui5/webcomponents-base/dist/events/PseudoEvents.js";
7
- import { getRTL } from "@ui5/webcomponents-base/dist/config/RTL.js";
8
- import { fetchI18nBundle, getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
9
- import "@ui5/webcomponents-icons/dist/icons/slim-arrow-down.js";
10
- import "@ui5/webcomponents-icons/dist/icons/slim-arrow-left.js";
11
- import "@ui5/webcomponents-icons/dist/icons/slim-arrow-right.js";
10
+ import { isSpace, isEnter } from "@ui5/webcomponents-base/dist/Keys.js";
11
+ import MediaRange from "@ui5/webcomponents-base/dist/MediaRange.js";
12
+ import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
13
+ import "@ui5/webcomponents-icons/dist/slim-arrow-up.js";
14
+ import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
15
+ import "@ui5/webcomponents-icons/dist/slim-arrow-left.js";
16
+ import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
12
17
  import { TABCONTAINER_PREVIOUS_ICON_ACC_NAME, TABCONTAINER_NEXT_ICON_ACC_NAME, TABCONTAINER_OVERFLOW_MENU_TITLE } from "./generated/i18n/i18n-defaults.js";
13
18
  import Button from "./Button.js";
14
- import CustomListItem from "./CustomListItem.js";
15
19
  import Icon from "./Icon.js";
16
20
  import List from "./List.js";
17
21
  import ResponsivePopover from "./ResponsivePopover.js";
18
- import SemanticColor from "./types/SemanticColor.js";
22
+ import TabContainerTabsPlacement from "./types/TabContainerTabsPlacement.js";
19
23
 
20
24
  // Templates
21
25
  import TabContainerTemplate from "./generated/templates/TabContainerTemplate.lit.js";
@@ -23,38 +27,59 @@ import TabContainerPopoverTemplate from "./generated/templates/TabContainerPopov
23
27
 
24
28
  // Styles
25
29
  import tabContainerCss from "./generated/themes/TabContainer.css.js";
26
- import tabContainerPopoverCss from "./generated/themes/TabContainerPopup.css.js";
27
30
  import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverCommon.css.js";
31
+ import TabLayout from "./types/TabLayout.js";
28
32
 
29
33
  const SCROLL_STEP = 128;
30
34
 
35
+ const tabStyles = [];
36
+ const staticAreaTabStyles = [];
37
+
31
38
  /**
32
39
  * @public
33
40
  */
34
41
  const metadata = {
35
42
  tag: "ui5-tabcontainer",
43
+ languageAware: true,
44
+ managedSlots: true,
36
45
  slots: /** @lends sap.ui.webcomponents.main.TabContainer.prototype */ {
37
46
  /**
38
47
  * Defines the tabs.
39
- * <br><b>Note:</b> Use <code>ui5-tab</code> and <code>ui5-tab-separator</code> for the intended design.
48
+ * <br><br>
49
+ * <b>Note:</b> Use <code>ui5-tab</code> and <code>ui5-tab-separator</code> for the intended design.
40
50
  *
41
- * @type {HTMLElement[]}
51
+ * @type {sap.ui.webcomponents.main.ITab[]}
42
52
  * @public
43
- * @slot
53
+ * @slot items
44
54
  */
45
55
  "default": {
46
56
  propertyName: "items",
47
57
  type: HTMLElement,
48
58
  individualSlots: true,
49
- listenFor: { include: ["*"] },
59
+ invalidateOnChildChange: {
60
+ properties: true,
61
+ slots: false,
62
+ },
63
+ },
64
+
65
+ /**
66
+ * Defines the button which will open the overflow menu. If nothing is provided to this slot, the default button will be used.
67
+ *
68
+ * @type {sap.ui.webcomponents.main.IButton}
69
+ * @public
70
+ * @slot
71
+ * @since 1.0.0-rc.9
72
+ */
73
+ overflowButton: {
74
+ type: HTMLElement,
50
75
  },
51
76
  },
52
77
  properties: /** @lends sap.ui.webcomponents.main.TabContainer.prototype */ {
53
78
  /**
54
- * Determines whether the tabs are in a fixed state that is not
79
+ * Defines whether the tabs are in a fixed state that is not
55
80
  * expandable/collapsible by user interaction.
56
81
  *
57
- * @type {Boolean}
82
+ * @type {boolean}
58
83
  * @defaultvalue false
59
84
  * @public
60
85
  */
@@ -63,9 +88,9 @@ const metadata = {
63
88
  },
64
89
 
65
90
  /**
66
- * Determines whether the tab content is collapsed.
91
+ * Defines whether the tab content is collapsed.
67
92
  *
68
- * @type {Boolean}
93
+ * @type {boolean}
69
94
  * @defaultvalue false
70
95
  * @public
71
96
  */
@@ -74,12 +99,36 @@ const metadata = {
74
99
  },
75
100
 
76
101
  /**
77
- * Specifies if the overflow select list is displayed.
102
+ * Defines the placement of the tab strip (tab buttons area) relative to the actual tabs' content.
103
+ * <br><br>
104
+ * <b>Note:</b> By default the tab strip is displayed above the tabs' content area and this is the recommended
105
+ * layout for most scenarios. Set to <code>Bottom</code> only when the component is at the
106
+ * bottom of the page and you want the tab strip to act as a menu.
107
+ *
108
+ * <br><br>
109
+ * Available options are:
110
+ * <ul>
111
+ * <li><code>Top</code></li>
112
+ * <li><code>Bottom</code></li>
113
+ * </ul>
114
+ *
115
+ * @type {TabContainerTabsPlacement}
116
+ * @defaultvalue "Top"
117
+ * @since 1.0.0-rc.7
118
+ * @private
119
+ */
120
+ tabsPlacement: {
121
+ type: TabContainerTabsPlacement,
122
+ defaultValue: TabContainerTabsPlacement.Top,
123
+ },
124
+
125
+ /**
126
+ * Defines whether the overflow select list is displayed.
78
127
  * <br><br>
79
128
  * The overflow select list represents a list, where all tab filters are displayed
80
129
  * so that it's easier for the user to select a specific tab filter.
81
130
  *
82
- * @type {Boolean}
131
+ * @type {boolean}
83
132
  * @defaultvalue false
84
133
  * @public
85
134
  */
@@ -87,6 +136,40 @@ const metadata = {
87
136
  type: Boolean,
88
137
  },
89
138
 
139
+ /**
140
+ * Defines the alignment of the content and the <code>additionalText</code> of a tab.
141
+ *
142
+ * <br><br>
143
+ * <b>Note:</b>
144
+ * The content and the <code>additionalText</code> would be displayed vertically by defualt,
145
+ * but when set to <code>Inline</code>, they would be displayed horizontally.
146
+ *
147
+ * <br><br>
148
+ * Available options are:
149
+ * <ul>
150
+ * <li><code>Standard</code></li>
151
+ * <li><code>Inline</code></li>
152
+ * </ul>
153
+ *
154
+ * @type {TabLayout}
155
+ * @defaultvalue "Standard"
156
+ * @public
157
+ */
158
+ tabLayout: {
159
+ type: String,
160
+ defaultValue: TabLayout.Standard,
161
+ },
162
+
163
+ /**
164
+ * Defines the current media query size.
165
+ *
166
+ * @type {string}
167
+ * @private
168
+ */
169
+ mediaRange: {
170
+ type: String,
171
+ },
172
+
90
173
  _selectedTab: {
91
174
  type: Object,
92
175
  },
@@ -105,22 +188,32 @@ const metadata = {
105
188
  type: Boolean,
106
189
  noAttribute: true,
107
190
  },
108
- _textOnly: {
191
+
192
+ _animationRunning: {
109
193
  type: Boolean,
110
194
  noAttribute: true,
111
195
  },
112
196
 
197
+ _contentCollapsed: {
198
+ type: Boolean,
199
+ noAttribute: true,
200
+ },
113
201
  },
114
202
  events: /** @lends sap.ui.webcomponents.main.TabContainer.prototype */ {
203
+
115
204
  /**
116
- * Fired when an item is selected.
205
+ * Fired when a tab is selected.
117
206
  *
118
- * @event
119
- * @param {HTMLElement} item The selected <code>item</code>.
207
+ * @event sap.ui.webcomponents.main.TabContainer#tab-select
208
+ * @param {HTMLElement} tab The selected <code>tab</code>.
209
+ * @param {Integer} tabIndex The selected <code>tab</code> index.
120
210
  * @public
121
211
  */
122
- itemSelect: {
123
- item: { type: HTMLElement },
212
+ "tab-select": {
213
+ detail: {
214
+ tab: { type: HTMLElement },
215
+ tabIndex: { type: Number },
216
+ },
124
217
  },
125
218
  },
126
219
  };
@@ -142,7 +235,7 @@ const metadata = {
142
235
  * <li><code>ui5-tab-separator</code> - used to separate tabs with a vertical line</li>
143
236
  * </ul>
144
237
  *
145
- * <h3>ES6 import</h3>
238
+ * <h3>ES6 Module Import</h3>
146
239
  *
147
240
  * <code>import "@ui5/webcomponents/dist/TabContainer";</code>
148
241
  * <br>
@@ -164,11 +257,11 @@ class TabContainer extends UI5Element {
164
257
  }
165
258
 
166
259
  static get styles() {
167
- return tabContainerCss;
260
+ return [tabStyles, tabContainerCss];
168
261
  }
169
262
 
170
263
  static get staticAreaStyles() {
171
- return [tabContainerPopoverCss, ResponsivePopoverCommonCss];
264
+ return [ResponsivePopoverCommonCss, staticAreaTabStyles];
172
265
  }
173
266
 
174
267
  static get render() {
@@ -183,85 +276,102 @@ class TabContainer extends UI5Element {
183
276
  return TabContainerPopoverTemplate;
184
277
  }
185
278
 
279
+ static registerTabStyles(styles) {
280
+ tabStyles.push(styles);
281
+ }
282
+
283
+ static registerStaticAreaTabStyles(styles) {
284
+ staticAreaTabStyles.push(styles);
285
+ }
286
+
186
287
  constructor() {
187
288
  super();
188
289
 
189
- this._handleHeaderResize = this._handleHeaderResize.bind(this);
290
+ this._handleResize = this._handleResize.bind(this);
190
291
 
191
292
  // Init ScrollEnablement
192
293
  this._scrollEnablement = new ScrollEnablement(this);
193
294
  this._scrollEnablement.attachEvent("scroll", this._updateScrolling.bind(this));
194
295
 
195
296
  // Init ItemNavigation
196
- this._initItemNavigation();
197
-
198
- this.i18nBundle = getI18nBundle("@ui5/webcomponents");
297
+ this._itemNavigation = new ItemNavigation(this, {
298
+ getItemsCallback: () => this._getTabs(),
299
+ });
199
300
  }
200
301
 
201
302
  onBeforeRendering() {
202
- const hasSelected = this.items.some(item => item.selected);
203
- this._textOnly = this.items.every(item => !item.icon);
204
-
205
- this.items.forEach(item => {
303
+ // Set external properties to items
304
+ this.items.filter(item => !item.isSeparator).forEach((item, index, arr) => {
305
+ item._isInline = this.tabLayout === TabLayout.Inline;
306
+ item._mixedMode = this.mixedMode;
307
+ item._posinset = index + 1;
308
+ item._setsize = arr.length;
206
309
  item._getTabContainerHeaderItemCallback = _ => {
207
310
  return this.getDomRef().querySelector(`#${item._id}`);
208
311
  };
312
+ item._itemSelectCallback = this._onItemSelect.bind(this);
313
+ item._getRealDomRef = () => this.getDomRef().querySelector(`*[data-ui5-stable=${item.stableDomRef}]`);
209
314
  });
210
- if (this.items.length && !hasSelected) {
211
- this.items[0].selected = true;
212
- }
213
-
214
- this.calculateRenderItems();
215
- }
216
-
217
- calculateRenderItems() {
218
- this.renderItems = this.items.map((item, index) => {
219
- const isSeparator = item.isSeparator;
220
-
221
- if (isSeparator) {
222
- return { isSeparator, _tabIndex: item._tabIndex, _id: item._id };
223
- }
224
315
 
225
- return {
226
- item,
227
- isMixedModeTab: !item.icon && this.mixedMode,
228
- isTextOnlyTab: !item.icon && !this.mixedMode,
229
- isIconTab: item.icon,
230
- position: index + 1,
231
- disabled: item.disabled || undefined,
232
- selected: item.selected || false,
233
- hidden: !item.selected,
234
- ariaLabelledBy: calculateAriaLabelledBy(item),
235
- contentItemClasses: calculateContentItemClasses(item),
236
- headerItemClasses: calculateHeaderItemClasses(item, this.mixedMode),
237
- headerItemContentClasses: calculateHeaderItemContentClasses(item),
238
- headerItemIconClasses: calculateHeaderItemIconClasses(item),
239
- headerItemSemanticIconClasses: calculateHeaderItemSemanticIconClasses(item),
240
- headerItemTextClasses: calculateHeaderItemTextClasses(item),
241
- headerItemAdditionalTextClasses: calculateHeaderItemAdditionalTextClasses(item),
242
- overflowItemClasses: calculateOverflowItemClasses(item),
243
- overflowItemContentClasses: calculateOverflowItemContentClasses(item),
244
- overflowItemState: calculateOverflowItemState(item),
245
- };
246
- }, this);
316
+ if (!this._animationRunning) {
317
+ this._contentCollapsed = this.collapsed;
318
+ }
247
319
  }
248
320
 
249
321
  onAfterRendering() {
250
322
  this._scrollEnablement.scrollContainer = this._getHeaderScrollContainer();
251
323
  this._updateScrolling();
324
+
325
+ this.items.forEach(item => {
326
+ item._getTabInStripDomRef = this.getDomRef().querySelector(`*[data-ui5-stable="${item.stableDomRef}"]`);
327
+ });
252
328
  }
253
329
 
254
330
  onEnterDOM() {
255
- ResizeHandler.register(this._getHeader(), this._handleHeaderResize);
331
+ ResizeHandler.register(this._getHeader(), this._handleResize);
256
332
  }
257
333
 
258
334
  onExitDOM() {
259
- ResizeHandler.deregister(this._getHeader(), this._handleHeaderResize);
335
+ ResizeHandler.deregister(this._getHeader(), this._handleResize);
260
336
  }
261
337
 
262
- _onHeaderItemKeyDown(event) {
338
+ _onTablistFocusin(event) {
339
+ const target = event.target;
340
+
341
+ if (!this._scrollable || !target.classList.contains("ui5-tab-strip-item")) {
342
+ return;
343
+ }
344
+
345
+ const headerScrollContainer = this._getHeaderScrollContainer();
346
+ const leftArrowWidth = this.shadowRoot.querySelector(".ui5-tc__headerArrowLeft").offsetWidth;
347
+ const rightArrowWidth = this.shadowRoot.querySelector(".ui5-tc__headerArrowRight").offsetWidth;
348
+
349
+ if (this._scrollableBack && (target.offsetLeft - leftArrowWidth < headerScrollContainer.scrollLeft)) {
350
+ this._scrollEnablement.move(target.offsetLeft - leftArrowWidth - headerScrollContainer.scrollLeft, 0, true);
351
+ this._updateScrolling();
352
+ } else if (this._scrollableForward && (target.offsetLeft + target.offsetWidth > headerScrollContainer.scrollLeft + headerScrollContainer.offsetWidth - rightArrowWidth)) {
353
+ this._scrollEnablement.move(target.offsetLeft + target.offsetWidth - headerScrollContainer.scrollLeft - headerScrollContainer.offsetWidth + rightArrowWidth, 0, true);
354
+ this._updateScrolling();
355
+ }
356
+ }
357
+
358
+ _onHeaderClick(event) {
359
+ const tab = getTab(event.target);
360
+ if (!tab) {
361
+ return;
362
+ }
363
+
364
+ this._onHeaderItemSelect(tab);
365
+ }
366
+
367
+ _onHeaderKeyDown(event) {
368
+ const tab = getTab(event.target);
369
+ if (!tab) {
370
+ return;
371
+ }
372
+
263
373
  if (isEnter(event)) {
264
- this._onHeaderItemSelect(event);
374
+ this._onHeaderItemSelect(tab);
265
375
  }
266
376
 
267
377
  // Prevent Scrolling
@@ -270,33 +380,33 @@ class TabContainer extends UI5Element {
270
380
  }
271
381
  }
272
382
 
273
- _onHeaderItemKeyUp(event) {
274
- if (isSpace(event)) {
275
- this._onHeaderItemSelect(event);
383
+ _onHeaderKeyUp(event) {
384
+ const tab = getTab(event.target);
385
+ if (!tab) {
386
+ return;
276
387
  }
277
- }
278
388
 
279
- _initItemNavigation() {
280
- this._itemNavigation = new ItemNavigation(this);
281
- this._itemNavigation.getItemsCallback = () => this._getTabs();
389
+ if (isSpace(event)) {
390
+ this._onHeaderItemSelect(tab);
391
+ }
282
392
  }
283
393
 
284
- _onHeaderItemSelect(event) {
285
- if (!event.target.hasAttribute("disabled")) {
286
- this._onItemSelect(event.target);
394
+ _onHeaderItemSelect(tab) {
395
+ if (!tab.hasAttribute("disabled")) {
396
+ this._onItemSelect(tab);
287
397
  }
288
398
  }
289
399
 
290
400
  _onOverflowListItemSelect(event) {
291
401
  this._onItemSelect(event.detail.item);
292
- this._respPopover.close();
402
+ this.responsivePopover.close();
293
403
  this.shadowRoot.querySelector(`#${event.detail.item.id}`).focus();
294
404
  }
295
405
 
296
406
  _onItemSelect(target) {
297
407
  const selectedIndex = findIndex(this.items, item => item._id === target.id);
298
408
  const selectedTabIndex = findIndex(this._getTabs(), item => item._id === target.id);
299
- const currentSelectedTab = this.items[selectedIndex];
409
+ const selectedTab = this.items[selectedIndex];
300
410
 
301
411
  // update selected items
302
412
  this.items.forEach((item, index) => {
@@ -305,29 +415,85 @@ class TabContainer extends UI5Element {
305
415
  item.selected = selected;
306
416
 
307
417
  if (selected) {
308
- this._itemNavigation.current = selectedTabIndex;
418
+ this._itemNavigation.setCurrentItem(item);
309
419
  }
310
420
  }
311
421
  }, this);
312
422
 
313
- // update collapsed state
314
- if (!this.fixed) {
315
- if (currentSelectedTab === this._selectedTab) {
316
- this.collapsed = !this.collapsed;
317
- } else {
318
- this.collapsed = false;
319
- }
423
+ if (this.fixed) {
424
+ this.selectTab(selectedTab, selectedTabIndex);
425
+ return;
426
+ }
427
+
428
+ if (!this.animate) {
429
+ this.toggle(selectedTab);
430
+ this.selectTab(selectedTab, selectedTabIndex);
431
+ return;
320
432
  }
321
433
 
434
+ this.toggleAnimated(selectedTab);
435
+ this.selectTab(selectedTab, selectedTabIndex);
436
+ }
437
+
438
+ async toggleAnimated(selectedTab) {
439
+ const content = this.shadowRoot.querySelector(".ui5-tc__content");
440
+ let animationPromise = null;
441
+
442
+ this._animationRunning = true;
443
+
444
+ if (selectedTab === this._selectedTab) {
445
+ // click on already selected tab - animate both directions
446
+ this.collapsed = !this.collapsed;
447
+ animationPromise = this.collapsed ? this.slideContentUp(content) : this.slideContentDown(content);
448
+ } else {
449
+ // click on new tab - animate if the content is currently collapsed
450
+ animationPromise = this.collapsed ? this.slideContentDown(content) : Promise.resolve();
451
+ this.collapsed = false;
452
+ }
453
+
454
+ await animationPromise;
455
+ this._contentCollapsed = this.collapsed;
456
+ this._animationRunning = false;
457
+ }
458
+
459
+ toggle(selectedTab) {
460
+ if (selectedTab === this._selectedTab) {
461
+ this.collapsed = !this.collapsed;
462
+ } else {
463
+ this.collapsed = false;
464
+ }
465
+ }
466
+
467
+ selectTab(selectedTab, selectedTabIndex) {
322
468
  // select the tab
323
- this._selectedTab = currentSelectedTab;
324
- this.fireEvent("itemSelect", {
325
- item: currentSelectedTab,
469
+ this._selectedTab = selectedTab;
470
+ this.fireEvent("tab-select", {
471
+ tab: selectedTab,
472
+ tabIndex: selectedTabIndex,
326
473
  });
327
474
  }
328
475
 
329
- _onOverflowButtonClick(event) {
330
- this._respPopover.open(event.target);
476
+ slideContentDown(element) {
477
+ return slideDown({ element }).promise();
478
+ }
479
+
480
+ slideContentUp(element) {
481
+ return slideUp({ element }).promise();
482
+ }
483
+
484
+ async _onOverflowButtonClick(event) {
485
+ const button = this.overflowButton[0] || this.getDomRef().querySelector(".ui-tc__overflowButton > [ui5-button]");
486
+
487
+ if (event.target !== button) {
488
+ return;
489
+ }
490
+
491
+ this.responsivePopover = await this._respPopover();
492
+ if (this.responsivePopover.opened) {
493
+ this.responsivePopover.close();
494
+ } else {
495
+ this.responsivePopover.showAt(button);
496
+ }
331
497
  }
332
498
 
333
499
  _onHeaderBackArrowClick() {
@@ -340,12 +506,14 @@ class TabContainer extends UI5Element {
340
506
  .then(_ => this._updateScrolling());
341
507
  }
342
508
 
343
- _handleHeaderResize() {
509
+ _handleResize() {
344
510
  this._updateScrolling();
511
+ this._updateMediaRange();
345
512
  }
346
513
 
347
- _closeRespPopover() {
348
- this._respPopover.close();
514
+ async _closeRespPopover() {
515
+ this.responsivePopover = await this._respPopover();
516
+ this.responsivePopover.close();
349
517
  }
350
518
 
351
519
  _updateScrolling() {
@@ -354,6 +522,14 @@ class TabContainer extends UI5Element {
354
522
  this._scrollable = headerScrollContainer.offsetWidth < headerScrollContainer.scrollWidth;
355
523
  this._scrollableBack = headerScrollContainer.scrollLeft > 0;
356
524
  this._scrollableForward = Math.ceil(headerScrollContainer.scrollLeft) < headerScrollContainer.scrollWidth - headerScrollContainer.offsetWidth;
525
+
526
+ if (!this._scrollable) {
527
+ this._closeRespPopover();
528
+ }
529
+ }
530
+
531
+ _updateMediaRange() {
532
+ this.mediaRange = MediaRange.getCurrentRange(MediaRange.RANGESETS.RANGE_4STEPS, this.getDomRef().offsetWidth);
357
533
  }
358
534
 
359
535
  _getHeader() {
@@ -368,20 +544,30 @@ class TabContainer extends UI5Element {
368
544
  return this.shadowRoot.querySelector(`#${this._id}-headerScrollContainer`);
369
545
  }
370
546
 
371
- get _respPopover() {
372
- return this.getStaticAreaItemDomRef().querySelector(`#${this._id}-overflowMenu`);
547
+ async _respPopover() {
548
+ const staticAreaItem = await this.getStaticAreaItemDomRef();
549
+ return staticAreaItem.querySelector(`#${this._id}-overflowMenu`);
550
+ }
551
+
552
+ get shouldShowOverflow() {
553
+ return this.showOverflow && this._scrollable;
373
554
  }
374
555
 
375
556
  get classes() {
376
557
  return {
377
558
  root: {
378
559
  "ui5-tc-root": true,
379
- "ui5-tc--textOnly": this._textOnly,
560
+ "ui5-tc--textOnly": this.textOnly,
561
+ "ui5-tc--withAdditonalText": this.withAdditonalText,
562
+ "ui5-tc--standardTabLayout": this.standardTabLayout,
380
563
  },
381
564
  header: {
382
565
  "ui5-tc__header": true,
383
566
  "ui5-tc__header--scrollable": this._scrollable,
384
567
  },
568
+ headerInnerContainer: {
569
+ "ui5-tc__headerInnerContainer": true,
570
+ },
385
571
  headerScrollContainer: {
386
572
  "ui-tc__headerScrollContainer": true,
387
573
  },
@@ -401,13 +587,9 @@ class TabContainer extends UI5Element {
401
587
  "ui5-tc__headerArrowRight": true,
402
588
  "ui5-tc__headerArrow--visible": this._scrollableForward,
403
589
  },
404
- overflowButton: {
405
- "ui-tc__overflowButton": true,
406
- "ui-tc__overflowButton--visible": this._scrollable,
407
- },
408
590
  content: {
409
591
  "ui5-tc__content": true,
410
- "ui5-tc__content--collapsed": this.collapsed,
592
+ "ui5-tc__content--collapsed": this._contentCollapsed,
411
593
  },
412
594
  };
413
595
  }
@@ -416,160 +598,80 @@ class TabContainer extends UI5Element {
416
598
  return this.items.some(item => item.icon) && this.items.some(item => item.text);
417
599
  }
418
600
 
419
- get previousIconACCName() {
420
- return this.i18nBundle.getText(TABCONTAINER_PREVIOUS_ICON_ACC_NAME);
421
- }
422
-
423
- get nextIconACCName() {
424
- return this.i18nBundle.getText(TABCONTAINER_NEXT_ICON_ACC_NAME);
601
+ get textOnly() {
602
+ return this.items.every(item => !item.icon);
425
603
  }
426
604
 
427
- get overflowMenuTitle() {
428
- return this.i18nBundle.getText(TABCONTAINER_OVERFLOW_MENU_TITLE);
605
+ get withAdditonalText() {
606
+ return this.items.some(item => !!item.additionalText);
429
607
  }
430
608
 
431
- get rtl() {
432
- return getRTL() ? "rtl" : undefined;
609
+ get standardTabLayout() {
610
+ return this.tabLayout === TabLayout.Standard;
433
611
  }
434
612
 
435
- static async define(...params) {
436
- await Promise.all([
437
- Button.define(),
438
- CustomListItem.define(),
439
- Icon.define(),
440
- List.define(),
441
- ResponsivePopover.define(),
442
- fetchI18nBundle("@ui5/webcomponents"),
443
- ]);
444
-
445
- super.define(...params);
446
- }
447
- }
448
-
449
- const findIndex = (arr, predicate) => {
450
- for (let i = 0; i < arr.length; i++) {
451
- const result = predicate(arr[i]);
452
-
453
- if (result) {
454
- return i;
455
- }
456
- }
457
-
458
- return -1;
459
- };
460
-
461
- /* CSS classes calculation helpers */
462
-
463
- const calculateAriaLabelledBy = item => {
464
- const labels = [];
465
-
466
- if (item.text) {
467
- labels.push(`${item._id}-text`);
468
- }
469
-
470
- if (item.additionalText) {
471
- labels.push(`${item._id}-additionalText`);
613
+ get previousIconACCName() {
614
+ return TabContainer.i18nBundle.getText(TABCONTAINER_PREVIOUS_ICON_ACC_NAME);
472
615
  }
473
616
 
474
- if (item.icon) {
475
- labels.push(`${item._id}-icon`);
617
+ get nextIconACCName() {
618
+ return TabContainer.i18nBundle.getText(TABCONTAINER_NEXT_ICON_ACC_NAME);
476
619
  }
477
620
 
478
- return labels.join(" ");
479
- };
480
-
481
- const calculateHeaderItemClasses = (item, mixedMode) => {
482
- const classes = ["ui5-tc__headerItem"];
483
-
484
- if (item.selected) {
485
- classes.push("ui5-tc__headerItem--selected");
621
+ get overflowMenuTitle() {
622
+ return TabContainer.i18nBundle.getText(TABCONTAINER_OVERFLOW_MENU_TITLE);
486
623
  }
487
624
 
488
- if (item.disabled) {
489
- classes.push("ui5-tc__headerItem--disabled");
625
+ get tabsAtTheBottom() {
626
+ return this.tabsPlacement === TabContainerTabsPlacement.Bottom;
490
627
  }
491
628
 
492
- if (!item.icon && !mixedMode) {
493
- classes.push("ui5-tc__headerItem--textOnly");
629
+ get overflowMenuIcon() {
630
+ return this.tabsAtTheBottom ? "slim-arrow-up" : "slim-arrow-down";
494
631
  }
495
632
 
496
- if (item.icon) {
497
- classes.push("ui5-tc__headerItem--withIcon");
633
+ get animate() {
634
+ return getAnimationMode() !== AnimationMode.None;
498
635
  }
499
636
 
500
- if (!item.icon && mixedMode) {
501
- classes.push("ui5-tc__headerItem--mixedMode");
637
+ static get dependencies() {
638
+ return [
639
+ Button,
640
+ Icon,
641
+ List,
642
+ ResponsivePopover,
643
+ ];
502
644
  }
503
645
 
504
- if (item.semanticColor !== SemanticColor.Default) {
505
- classes.push(`ui5-tc__headerItem--${item.semanticColor.toLowerCase()}`);
646
+ static async onDefine() {
647
+ TabContainer.i18nBundle = await getI18nBundle("@ui5/webcomponents");
506
648
  }
649
+ }
507
650
 
508
- return classes.join(" ");
509
- };
510
-
511
- const calculateHeaderItemContentClasses = item => {
512
- const classes = ["ui5-tc__headerItemContent"];
513
-
514
- return classes.join(" ");
515
- };
516
-
517
- const calculateHeaderItemIconClasses = item => {
518
- const classes = ["ui5-tc-headerItemIcon"];
519
-
520
- return classes.join(" ");
521
- };
651
+ const isTabLi = el => el.localName === "li" && el.getAttribute("role") === "tab";
522
652
 
523
- const calculateHeaderItemSemanticIconClasses = item => {
524
- const classes = ["ui5-tc-headerItemSemanticIcon"];
653
+ const getTab = el => {
654
+ while (el) {
655
+ if (isTabLi(el)) {
656
+ return el;
657
+ }
525
658
 
526
- if (item.semanticColor !== SemanticColor.Default) {
527
- classes.push(`ui5-tc-headerItemSemanticIcon--${item.semanticColor.toLowerCase()}`);
659
+ el = el.parentElement;
528
660
  }
529
661
 
530
- return classes.join(" ");
531
- };
532
-
533
- const calculateHeaderItemTextClasses = item => {
534
- const classes = ["ui5-tc__headerItemText"];
535
-
536
- return classes.join(" ");
537
- };
538
-
539
- const calculateHeaderItemAdditionalTextClasses = item => {
540
- const classes = ["ui5-tc__headerItemAdditionalText"];
541
-
542
- return classes.join(" ");
662
+ return false;
543
663
  };
544
664
 
545
- const calculateOverflowItemClasses = item => {
546
- const classes = ["ui5-tc__overflowItem"];
547
-
548
- if (item.semanticColor !== SemanticColor.Default) {
549
- classes.push(`ui5-tc__overflowItem--${item.semanticColor.toLowerCase()}`);
550
- }
665
+ const findIndex = (arr, predicate) => {
666
+ for (let i = 0; i < arr.length; i++) {
667
+ const result = predicate(arr[i]);
551
668
 
552
- if (item.disabled) {
553
- classes.push("ui5-tc__overflowItem--disabled");
669
+ if (result) {
670
+ return i;
671
+ }
554
672
  }
555
673
 
556
- return classes.join(" ");
557
- };
558
-
559
- const calculateOverflowItemContentClasses = item => {
560
- const classes = ["ui5-tc__overflowItemContent"];
561
-
562
- return classes.join(" ");
563
- };
564
-
565
- const calculateOverflowItemState = item => {
566
- return item.disabled ? "Inactive" : "Active";
567
- };
568
-
569
- const calculateContentItemClasses = item => {
570
- const classes = ["ui5-tc__contentItem"];
571
-
572
- return classes.join(" ");
674
+ return -1;
573
675
  };
574
676
 
575
677
  TabContainer.define();