@ui5/webcomponents 2.3.0-rc.0 → 2.3.0-rc.1

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 (357) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/cypress/specs/Eventing.cy.ts +44 -0
  3. package/cypress/specs/F6.cy.ts +659 -0
  4. package/cypress/specs/Form.cy.ts +381 -0
  5. package/cypress/specs/FormSupport.cy.ts +896 -0
  6. package/cypress/specs/LitKeyFunction.cy.ts +50 -0
  7. package/cypress/specs/RTL.cy.ts +19 -0
  8. package/cypress.config.js +3 -1
  9. package/dist/.tsbuildinfo +1 -1
  10. package/dist/List.d.ts +2 -0
  11. package/dist/List.js +19 -15
  12. package/dist/List.js.map +1 -1
  13. package/dist/MultiComboBox.js +1 -0
  14. package/dist/MultiComboBox.js.map +1 -1
  15. package/dist/TabContainer.js +37 -31
  16. package/dist/TabContainer.js.map +1 -1
  17. package/dist/css/themes/Avatar.css +1 -1
  18. package/dist/css/themes/AvatarGroup.css +1 -1
  19. package/dist/css/themes/Bar.css +1 -1
  20. package/dist/css/themes/Breadcrumbs.css +1 -1
  21. package/dist/css/themes/BusyIndicator.css +1 -1
  22. package/dist/css/themes/Button.css +1 -1
  23. package/dist/css/themes/Calendar.css +1 -1
  24. package/dist/css/themes/CalendarHeader.css +1 -1
  25. package/dist/css/themes/CalendarLegend.css +1 -1
  26. package/dist/css/themes/CalendarLegendItem.css +1 -1
  27. package/dist/css/themes/Card.css +1 -1
  28. package/dist/css/themes/CardHeader.css +1 -1
  29. package/dist/css/themes/Carousel.css +1 -1
  30. package/dist/css/themes/CheckBox.css +1 -1
  31. package/dist/css/themes/ColorPalette.css +1 -1
  32. package/dist/css/themes/ColorPaletteItem.css +1 -1
  33. package/dist/css/themes/ColorPalettePopover.css +1 -1
  34. package/dist/css/themes/ColorPicker.css +1 -1
  35. package/dist/css/themes/ComboBox.css +1 -1
  36. package/dist/css/themes/DatePicker.css +1 -1
  37. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  38. package/dist/css/themes/DayPicker.css +1 -1
  39. package/dist/css/themes/Dialog.css +1 -1
  40. package/dist/css/themes/FileUploader.css +1 -1
  41. package/dist/css/themes/Form.css +1 -1
  42. package/dist/css/themes/FormItem.css +1 -1
  43. package/dist/css/themes/FormLabelSpan.css +1 -1
  44. package/dist/css/themes/GrowingButton.css +1 -1
  45. package/dist/css/themes/Icon.css +1 -1
  46. package/dist/css/themes/Input.css +1 -1
  47. package/dist/css/themes/InputIcon.css +1 -1
  48. package/dist/css/themes/InputSharedStyles.css +1 -1
  49. package/dist/css/themes/Link.css +1 -1
  50. package/dist/css/themes/List.css +1 -1
  51. package/dist/css/themes/ListItem.css +1 -1
  52. package/dist/css/themes/ListItemBase.css +1 -1
  53. package/dist/css/themes/ListItemCustom.css +1 -1
  54. package/dist/css/themes/ListItemGroup.css +1 -1
  55. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  56. package/dist/css/themes/ListItemIcon.css +1 -1
  57. package/dist/css/themes/Menu.css +1 -1
  58. package/dist/css/themes/MenuItem.css +1 -1
  59. package/dist/css/themes/MessageStrip.css +1 -1
  60. package/dist/css/themes/MonthPicker.css +1 -1
  61. package/dist/css/themes/MultiComboBox.css +1 -1
  62. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  63. package/dist/css/themes/MultiInput.css +1 -1
  64. package/dist/css/themes/NavigationMenu.css +1 -1
  65. package/dist/css/themes/NavigationMenuItem.css +1 -1
  66. package/dist/css/themes/OptionBase.css +1 -1
  67. package/dist/css/themes/Panel.css +1 -1
  68. package/dist/css/themes/Popover.css +1 -1
  69. package/dist/css/themes/PopupsCommon.css +1 -1
  70. package/dist/css/themes/ProgressIndicator.css +1 -1
  71. package/dist/css/themes/RadioButton.css +1 -1
  72. package/dist/css/themes/RangeSlider.css +1 -1
  73. package/dist/css/themes/RatingIndicator.css +1 -1
  74. package/dist/css/themes/ResponsivePopover.css +1 -1
  75. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  76. package/dist/css/themes/SegmentedButton.css +1 -1
  77. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  78. package/dist/css/themes/Select.css +1 -1
  79. package/dist/css/themes/SliderBase.css +1 -1
  80. package/dist/css/themes/SplitButton.css +1 -1
  81. package/dist/css/themes/StepInput.css +1 -1
  82. package/dist/css/themes/SuggestionItem.css +1 -1
  83. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  84. package/dist/css/themes/Switch.css +1 -1
  85. package/dist/css/themes/TabContainer.css +1 -1
  86. package/dist/css/themes/TabInOverflow.css +1 -1
  87. package/dist/css/themes/TabInStrip.css +1 -1
  88. package/dist/css/themes/TabSemanticIcon.css +1 -1
  89. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  90. package/dist/css/themes/Table.css +1 -1
  91. package/dist/css/themes/TableCellBase.css +1 -1
  92. package/dist/css/themes/TableHeaderRow.css +1 -1
  93. package/dist/css/themes/TableRow.css +1 -1
  94. package/dist/css/themes/TableRowBase.css +1 -1
  95. package/dist/css/themes/Tag.css +1 -1
  96. package/dist/css/themes/Text.css +1 -1
  97. package/dist/css/themes/TextArea.css +1 -1
  98. package/dist/css/themes/TimePicker.css +1 -1
  99. package/dist/css/themes/Toast.css +1 -1
  100. package/dist/css/themes/ToggleButton.css +1 -1
  101. package/dist/css/themes/Token.css +1 -1
  102. package/dist/css/themes/Tokenizer.css +1 -1
  103. package/dist/css/themes/TokenizerPopover.css +1 -1
  104. package/dist/css/themes/Toolbar.css +1 -1
  105. package/dist/css/themes/ToolbarPopover.css +1 -1
  106. package/dist/css/themes/TreeItem.css +1 -1
  107. package/dist/css/themes/ValueStateMessage.css +1 -1
  108. package/dist/css/themes/YearPicker.css +1 -1
  109. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  110. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  111. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  112. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  113. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  114. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  115. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  116. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  117. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  118. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  119. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  120. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  121. package/dist/custom-elements-internal.json +52 -0
  122. package/dist/custom-elements.json +25 -0
  123. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  124. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  125. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  126. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  127. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  128. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  129. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  130. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  131. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  132. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  133. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  134. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  135. package/dist/generated/templates/LinkTemplate.lit.js +1 -1
  136. package/dist/generated/templates/LinkTemplate.lit.js.map +1 -1
  137. package/dist/generated/templates/ListTemplate.lit.js +1 -1
  138. package/dist/generated/templates/ListTemplate.lit.js.map +1 -1
  139. package/dist/generated/themes/Avatar.css.js +1 -1
  140. package/dist/generated/themes/Avatar.css.js.map +1 -1
  141. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  142. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  143. package/dist/generated/themes/Bar.css.js +1 -1
  144. package/dist/generated/themes/Bar.css.js.map +1 -1
  145. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  146. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  147. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  148. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  149. package/dist/generated/themes/Button.css.js +1 -1
  150. package/dist/generated/themes/Button.css.js.map +1 -1
  151. package/dist/generated/themes/Calendar.css.js +1 -1
  152. package/dist/generated/themes/Calendar.css.js.map +1 -1
  153. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  154. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  155. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  156. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  157. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  158. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  159. package/dist/generated/themes/Card.css.js +1 -1
  160. package/dist/generated/themes/Card.css.js.map +1 -1
  161. package/dist/generated/themes/CardHeader.css.js +1 -1
  162. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  163. package/dist/generated/themes/Carousel.css.js +1 -1
  164. package/dist/generated/themes/Carousel.css.js.map +1 -1
  165. package/dist/generated/themes/CheckBox.css.js +1 -1
  166. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  167. package/dist/generated/themes/ColorPalette.css.js +1 -1
  168. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  169. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  170. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  171. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  172. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  173. package/dist/generated/themes/ColorPicker.css.js +1 -1
  174. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  175. package/dist/generated/themes/ComboBox.css.js +1 -1
  176. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  177. package/dist/generated/themes/DatePicker.css.js +1 -1
  178. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  179. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  180. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  181. package/dist/generated/themes/DayPicker.css.js +1 -1
  182. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  183. package/dist/generated/themes/Dialog.css.js +1 -1
  184. package/dist/generated/themes/Dialog.css.js.map +1 -1
  185. package/dist/generated/themes/FileUploader.css.js +1 -1
  186. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  187. package/dist/generated/themes/Form.css.js +1 -1
  188. package/dist/generated/themes/Form.css.js.map +1 -1
  189. package/dist/generated/themes/FormItem.css.js +1 -1
  190. package/dist/generated/themes/FormItem.css.js.map +1 -1
  191. package/dist/generated/themes/FormLabelSpan.css.js +1 -1
  192. package/dist/generated/themes/FormLabelSpan.css.js.map +1 -1
  193. package/dist/generated/themes/GrowingButton.css.js +1 -1
  194. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  195. package/dist/generated/themes/Icon.css.js +1 -1
  196. package/dist/generated/themes/Icon.css.js.map +1 -1
  197. package/dist/generated/themes/Input.css.js +1 -1
  198. package/dist/generated/themes/Input.css.js.map +1 -1
  199. package/dist/generated/themes/InputIcon.css.js +1 -1
  200. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  201. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  202. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  203. package/dist/generated/themes/Link.css.js +1 -1
  204. package/dist/generated/themes/Link.css.js.map +1 -1
  205. package/dist/generated/themes/List.css.js +1 -1
  206. package/dist/generated/themes/List.css.js.map +1 -1
  207. package/dist/generated/themes/ListItem.css.js +1 -1
  208. package/dist/generated/themes/ListItem.css.js.map +1 -1
  209. package/dist/generated/themes/ListItemBase.css.js +1 -1
  210. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  211. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  212. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  213. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  214. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  215. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  216. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  217. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  218. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  219. package/dist/generated/themes/Menu.css.js +1 -1
  220. package/dist/generated/themes/Menu.css.js.map +1 -1
  221. package/dist/generated/themes/MenuItem.css.js +1 -1
  222. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  223. package/dist/generated/themes/MessageStrip.css.js +1 -1
  224. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  225. package/dist/generated/themes/MonthPicker.css.js +1 -1
  226. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  227. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  228. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  229. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  230. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  231. package/dist/generated/themes/MultiInput.css.js +1 -1
  232. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  233. package/dist/generated/themes/NavigationMenu.css.js +1 -1
  234. package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
  235. package/dist/generated/themes/NavigationMenuItem.css.js +1 -1
  236. package/dist/generated/themes/NavigationMenuItem.css.js.map +1 -1
  237. package/dist/generated/themes/OptionBase.css.js +1 -1
  238. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  239. package/dist/generated/themes/Panel.css.js +1 -1
  240. package/dist/generated/themes/Panel.css.js.map +1 -1
  241. package/dist/generated/themes/Popover.css.js +1 -1
  242. package/dist/generated/themes/Popover.css.js.map +1 -1
  243. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  244. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  245. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  246. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  247. package/dist/generated/themes/RadioButton.css.js +1 -1
  248. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  249. package/dist/generated/themes/RangeSlider.css.js +1 -1
  250. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  251. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  252. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  253. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  254. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  255. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  256. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  257. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  258. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  259. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  260. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  261. package/dist/generated/themes/Select.css.js +1 -1
  262. package/dist/generated/themes/Select.css.js.map +1 -1
  263. package/dist/generated/themes/SliderBase.css.js +1 -1
  264. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  265. package/dist/generated/themes/SplitButton.css.js +1 -1
  266. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  267. package/dist/generated/themes/StepInput.css.js +1 -1
  268. package/dist/generated/themes/StepInput.css.js.map +1 -1
  269. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  270. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  271. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  272. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  273. package/dist/generated/themes/Switch.css.js +1 -1
  274. package/dist/generated/themes/Switch.css.js.map +1 -1
  275. package/dist/generated/themes/TabContainer.css.js +1 -1
  276. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  277. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  278. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  279. package/dist/generated/themes/TabInStrip.css.js +1 -1
  280. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  281. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  282. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  283. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  284. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  285. package/dist/generated/themes/Table.css.js +1 -1
  286. package/dist/generated/themes/Table.css.js.map +1 -1
  287. package/dist/generated/themes/TableCellBase.css.js +1 -1
  288. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  289. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  290. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  291. package/dist/generated/themes/TableRow.css.js +1 -1
  292. package/dist/generated/themes/TableRow.css.js.map +1 -1
  293. package/dist/generated/themes/TableRowBase.css.js +1 -1
  294. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  295. package/dist/generated/themes/Tag.css.js +1 -1
  296. package/dist/generated/themes/Tag.css.js.map +1 -1
  297. package/dist/generated/themes/Text.css.js +1 -1
  298. package/dist/generated/themes/Text.css.js.map +1 -1
  299. package/dist/generated/themes/TextArea.css.js +1 -1
  300. package/dist/generated/themes/TextArea.css.js.map +1 -1
  301. package/dist/generated/themes/TimePicker.css.js +1 -1
  302. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  303. package/dist/generated/themes/Toast.css.js +1 -1
  304. package/dist/generated/themes/Toast.css.js.map +1 -1
  305. package/dist/generated/themes/ToggleButton.css.js +1 -1
  306. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  307. package/dist/generated/themes/Token.css.js +1 -1
  308. package/dist/generated/themes/Token.css.js.map +1 -1
  309. package/dist/generated/themes/Tokenizer.css.js +1 -1
  310. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  311. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  312. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  313. package/dist/generated/themes/Toolbar.css.js +1 -1
  314. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  315. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  316. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  317. package/dist/generated/themes/TreeItem.css.js +1 -1
  318. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  319. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  320. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  321. package/dist/generated/themes/YearPicker.css.js +1 -1
  322. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  323. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  324. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  325. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  326. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  327. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  328. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  329. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  330. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  331. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  332. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  333. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  334. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  335. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  336. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  337. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  338. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  339. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  340. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  341. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  342. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  343. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  344. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  345. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  346. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  347. package/dist/types/NotificationListGrowingMode.d.ts +18 -0
  348. package/dist/types/NotificationListGrowingMode.js +20 -0
  349. package/dist/types/NotificationListGrowingMode.js.map +1 -0
  350. package/dist/vscode.html-custom-data.json +1 -1
  351. package/dist/web-types.json +10 -2
  352. package/package.json +9 -9
  353. package/src/Link.hbs +1 -0
  354. package/src/List.hbs +2 -1
  355. package/src/themes/Breadcrumbs.css +10 -0
  356. package/src/themes/GrowingButton.css +1 -1
  357. package/src/themes/Popover.css +1 -1
@@ -24,7 +24,7 @@ import { getScopedVarName } from "@ui5/webcomponents-base/dist/CustomElementsSco
24
24
  import "@ui5/webcomponents-icons/dist/slim-arrow-up.js";
25
25
  import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
26
26
  import arraysAreEqual from "@ui5/webcomponents-base/dist/util/arraysAreEqual.js";
27
- import { findClosestPosition, findClosestPositionByKey } from "@ui5/webcomponents-base/dist/util/dragAndDrop/findClosestPosition.js";
27
+ import { findClosestPosition, findClosestPositionsByKey } from "@ui5/webcomponents-base/dist/util/dragAndDrop/findClosestPosition.js";
28
28
  import Orientation from "@ui5/webcomponents-base/dist/types/Orientation.js";
29
29
  import DragRegistry from "@ui5/webcomponents-base/dist/util/dragAndDrop/DragRegistry.js";
30
30
  import longDragOverHandler from "@ui5/webcomponents-base/dist/util/dragAndDrop/longDragOverHandler.js";
@@ -341,33 +341,25 @@ let TabContainer = TabContainer_1 = class TabContainer extends UI5Element {
341
341
  if (!tab.movable) {
342
342
  return;
343
343
  }
344
- const headerItems = this.items.map(item => item.getDomRefInStrip()).filter((item) => !item?.hasAttribute("hidden"));
345
- let { placement, element } = findClosestPositionByKey(headerItems, tab.getDomRefInStrip(), e);
346
- if (!element || !placement) {
347
- return;
348
- }
349
- while (element && element.realTabReference.hasAttribute("ui5-tab-separator") && placement === MovePlacement.Before) {
350
- element = element.previousElementSibling;
351
- placement = MovePlacement.After;
352
- }
353
- while (element && element.realTabReference.hasAttribute("ui5-tab-separator") && placement === MovePlacement.After) {
354
- element = element.nextElementSibling;
355
- placement = MovePlacement.Before;
356
- }
357
- if (!element) {
358
- return;
359
- }
360
- const placementAccepted = !this.fireEvent("move-over", {
361
- source: {
362
- element: tab,
363
- },
364
- destination: {
365
- element: element.realTabReference,
344
+ const headerItems = this.items.map(item => item.getDomRefInStrip())
345
+ .filter((item) => !item?.hasAttribute("hidden"));
346
+ let positions = findClosestPositionsByKey(headerItems, tab.getDomRefInStrip(), e);
347
+ positions = positions.map(({ element, placement }) => {
348
+ while (element && element.realTabReference.hasAttribute("ui5-tab-separator") && placement === MovePlacement.Before) {
349
+ element = headerItems.at(headerItems.indexOf(element) - 1);
350
+ placement = MovePlacement.After;
351
+ }
352
+ while (element && element.realTabReference.hasAttribute("ui5-tab-separator") && placement === MovePlacement.After) {
353
+ element = headerItems.at(headerItems.indexOf(element) + 1);
354
+ placement = MovePlacement.Before;
355
+ }
356
+ return {
357
+ element,
366
358
  placement,
367
- },
368
- }, true);
369
- if (placementAccepted) {
370
- this.fireEvent("move", {
359
+ };
360
+ });
361
+ const acceptedPosition = positions.find(({ element, placement }) => {
362
+ return !this.fireEvent("move-over", {
371
363
  source: {
372
364
  element: tab,
373
365
  },
@@ -375,6 +367,17 @@ let TabContainer = TabContainer_1 = class TabContainer extends UI5Element {
375
367
  element: element.realTabReference,
376
368
  placement,
377
369
  },
370
+ }, true);
371
+ });
372
+ if (acceptedPosition) {
373
+ this.fireEvent("move", {
374
+ source: {
375
+ element: tab,
376
+ },
377
+ destination: {
378
+ element: acceptedPosition.element.realTabReference,
379
+ placement: acceptedPosition.placement,
380
+ },
378
381
  });
379
382
  tab.focus();
380
383
  }
@@ -389,6 +392,7 @@ let TabContainer = TabContainer_1 = class TabContainer extends UI5Element {
389
392
  const { destination, source } = e.detail;
390
393
  const draggedElement = DragRegistry.getDraggedElement();
391
394
  let destinationElement = destination.element.realTabReference;
395
+ // workaround to simulate tree behavior
392
396
  if (e.detail.originalEvent instanceof KeyboardEvent) {
393
397
  const realTabReference = source.element.realTabReference;
394
398
  const siblings = this._findSiblings(realTabReference);
@@ -398,8 +402,8 @@ let TabContainer = TabContainer_1 = class TabContainer extends UI5Element {
398
402
  return e.target.items.some(el => el.realTabReference === sibling);
399
403
  });
400
404
  }
401
- const nextPlacement = findClosestPositionByKey(items, realTabReference, e.detail.originalEvent);
402
- destinationElement = nextPlacement.element;
405
+ const nextPosition = findClosestPositionsByKey(items, realTabReference, e.detail.originalEvent);
406
+ destinationElement = nextPosition[0]?.element;
403
407
  }
404
408
  if (!destinationElement) {
405
409
  return;
@@ -430,6 +434,7 @@ let TabContainer = TabContainer_1 = class TabContainer extends UI5Element {
430
434
  const { destination, source } = e.detail;
431
435
  const draggedElement = DragRegistry.getDraggedElement();
432
436
  let destinationElement = destination.element.realTabReference;
437
+ // Workaround to simulate tree behavior
433
438
  if (e.detail.originalEvent instanceof KeyboardEvent) {
434
439
  const realTabReference = source.element.realTabReference;
435
440
  const siblings = this._findSiblings(realTabReference);
@@ -439,8 +444,8 @@ let TabContainer = TabContainer_1 = class TabContainer extends UI5Element {
439
444
  return e.target.items.some(el => el.realTabReference === sibling);
440
445
  });
441
446
  }
442
- const nextPlacement = findClosestPositionByKey(items, realTabReference, e.detail.originalEvent);
443
- destinationElement = nextPlacement.element;
447
+ const nextPosition = findClosestPositionsByKey(items, realTabReference, e.detail.originalEvent);
448
+ destinationElement = nextPosition[0]?.element;
444
449
  }
445
450
  if (!destinationElement) {
446
451
  return;
@@ -530,6 +535,7 @@ let TabContainer = TabContainer_1 = class TabContainer extends UI5Element {
530
535
  }
531
536
  if (isCtrl(e)) {
532
537
  this._moveHeaderItem(tab.realTabReference, e);
538
+ e.preventDefault();
533
539
  return;
534
540
  }
535
541
  if (tab.realTabReference.disabled) {
@@ -1 +1 @@
1
- {"version":3,"file":"TabContainer.js","sourceRoot":"","sources":["../src/TabContainer.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { AccessibilityAttributes, StyleData } from \"@ui5/webcomponents-base/dist/types.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport slideDown from \"@ui5/webcomponents-base/dist/animations/slideDown.js\";\nimport slideUp from \"@ui5/webcomponents-base/dist/animations/slideUp.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport {\n\tisDesktop,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n\tisSpace,\n\tisEnter,\n\tisDown,\n\tisRight,\n\tisLeft,\n\tisUp,\n\tisCtrl,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport MediaRange from \"@ui5/webcomponents-base/dist/MediaRange.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-up.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport arraysAreEqual from \"@ui5/webcomponents-base/dist/util/arraysAreEqual.js\";\nimport { findClosestPosition, findClosestPositionByKey } from \"@ui5/webcomponents-base/dist/util/dragAndDrop/findClosestPosition.js\";\nimport Orientation from \"@ui5/webcomponents-base/dist/types/Orientation.js\";\nimport DragRegistry from \"@ui5/webcomponents-base/dist/util/dragAndDrop/DragRegistry.js\";\nimport type { SetDraggedElementFunction } from \"@ui5/webcomponents-base/dist/util/dragAndDrop/DragRegistry.js\";\nimport longDragOverHandler from \"@ui5/webcomponents-base/dist/util/dragAndDrop/longDragOverHandler.js\";\nimport MovePlacement from \"@ui5/webcomponents-base/dist/types/MovePlacement.js\";\nimport {\n\tTABCONTAINER_PREVIOUS_ICON_ACC_NAME,\n\tTABCONTAINER_NEXT_ICON_ACC_NAME,\n\tTABCONTAINER_OVERFLOW_MENU_TITLE,\n\tTABCONTAINER_END_OVERFLOW,\n\tTABCONTAINER_POPOVER_CANCEL_BUTTON,\n\tTABCONTAINER_SUBTABS_DESCRIPTION,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport Button from \"./Button.js\";\nimport Icon from \"./Icon.js\";\nimport List from \"./List.js\";\nimport DropIndicator from \"./DropIndicator.js\";\nimport type Tab from \"./Tab.js\";\nimport type { TabInStrip, TabInOverflow } from \"./Tab.js\";\nimport type { TabSeparatorInOverflow, TabSeparatorInStrip } from \"./TabSeparator.js\";\nimport type { ListItemClickEventDetail, ListMoveEventDetail } from \"./List.js\";\nimport ListItemCustom from \"./ListItemCustom.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport TabContainerTabsPlacement from \"./types/TabContainerTabsPlacement.js\";\nimport SemanticColor from \"./types/SemanticColor.js\";\nimport type BackgroundDesign from \"./types/BackgroundDesign.js\";\nimport TabLayout from \"./types/TabLayout.js\";\nimport OverflowMode from \"./types/OverflowMode.js\";\nimport type { IButton } from \"./Button.js\";\n\n// Templates\nimport TabContainerTemplate from \"./generated/templates/TabContainerTemplate.lit.js\";\n\n// Styles\nimport tabContainerCss from \"./generated/themes/TabContainer.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\n\ntype TabContainerPopoverOwner = \"start-overflow\" | \"end-overflow\" | TabInStrip;\n\nconst tabStyles: Array<StyleData> = [];\nconst PAGE_UP_DOWN_SIZE = 5;\n\ntype TabContainerStripInfo = {\n\tgetElementInStrip: () => HTMLElement | undefined;\n\tisInline?: boolean;\n\tmixedMode?: boolean;\n\tposinset?: number;\n\tsetsize?: number;\n\tisTopLevelTab?: boolean;\n}\n\ntype TabContainerOverflowInfo = {\n\tgetElementInOverflow: () => HTMLElement | undefined;\n\tstyle: Record<string, any>;\n}\n\ntype TabContainerTabSelectEventDetail = {\n\ttab: Tab;\n\ttabIndex: number;\n}\n\ntype TabContainerMoveEventDetail = {\n\tsource: {\n\t\telement: HTMLElement;\n\t},\n\tdestination: {\n\t\telement: HTMLElement;\n\t\tplacement: `${MovePlacement}`\n\t}\n}\n\n/**\n * Interface for components that may be slotted inside `ui5-tabcontainer` as items\n *\n * **Note:** Use directly `ui5-tab` or `ui5-tab-seprator`. Implementing the interface does not guarantee that the class can work as a tab.\n * @public\n */\ninterface ITab extends UI5Element {\n\tisSeparator: boolean;\n\treceiveStripInfo: (arg0: TabContainerStripInfo) => void;\n\treceiveOverflowInfo: (arg0: TabContainerOverflowInfo) => void;\n\tgetDomRefInStrip: () => HTMLElement | undefined;\n\titems?: Array<ITab>;\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-tabcontainer` represents a collection of tabs with associated content.\n * Navigation through the tabs changes the content display of the currently active content area.\n * A tab can be labeled with text only, or icons with text.\n *\n * ### Structure\n *\n * The `ui5-tabcontainer` can hold two types of entities:\n *\n * - `ui5-tab` - contains all the information on an item (text and icon)\n * - `ui5-tab-separator` - used to separate tabs with a line\n *\n * ### Hierarchies\n * Multiple sub tabs could be placed underneath one main tab. Nesting allows deeper hierarchies with indentations\n * to indicate the level of each nested tab. When a tab has both sub tabs and own content its click area is split\n * to allow the user to display the content or alternatively to expand / collapse the list of sub tabs.\n *\n * ### Keyboard Handling\n *\n * #### Fast Navigation\n * This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\n * In order to use this functionality, you need to import the following module:\n * `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/TabContainer.js\";`\n *\n * `import \"@ui5/webcomponents/dist/Tab.js\";` (for `ui5-tab`)\n *\n * `import \"@ui5/webcomponents/dist/TabSeparator.js\";` (for `ui5-tab-separator`)\n * @constructor\n * @extends UI5Element\n * @public\n * @csspart content - Used to style the content of the component\n * @csspart tabstrip - Used to style the tabstrip of the component\n */\n@customElement({\n\ttag: \"ui5-tabcontainer\",\n\tlanguageAware: true,\n\tfastNavigation: true,\n\tstyles: [\n\t\ttabStyles,\n\t\ttabContainerCss,\n\t\tResponsivePopoverCommonCss,\n\t],\n\trenderer: litRender,\n\ttemplate: TabContainerTemplate,\n\tdependencies: [\n\t\tButton,\n\t\tIcon,\n\t\tList,\n\t\tResponsivePopover,\n\t\tDropIndicator,\n\t\tListItemCustom,\n\t],\n})\n/**\n * Fired when a tab is selected.\n * @param {Tab} tab The selected `tab`.\n * @param {Integer} tabIndex The selected `tab` index in the flattened array of all tabs and their subTabs, provided by the `allItems` getter.\n * @public\n * @since 2.0.0\n * @allowPreventDefault\n */\n@event<TabContainerTabSelectEventDetail>(\"tab-select\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\ttab: { type: HTMLElement },\n\t\t/**\n\t\t * @public\n\t\t */\n\t\ttabIndex: { type: Number },\n\t},\n})\n/**\n * Fired when element is being moved over the tab container.\n *\n * If the new position is valid, prevent the default action of the event using `preventDefault()`.\n * @param {object} source Contains information about the moved element under `element` property.\n * @param {object} destination Contains information about the destination of the moved element. Has `element` and `placement` properties.\n * @public\n * @since 2.0.0\n * @allowPreventDefault\n */\n@event<TabContainerMoveEventDetail>(\"move-over\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tsource: { type: Object },\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tdestination: { type: Object },\n\t},\n})\n/**\n * Fired when element is moved to the tab container.\n *\n * **Note:** `move` event is fired only if there was a preceding `move-over` with prevented default action.\n * @param {object} source Contains information about the moved element under `element` property.\n * @param {object} destination Contains information about the destination of the moved element. Has `element` and `placement` properties.\n * @public\n * @allowPreventDefault\n */\n@event<TabContainerMoveEventDetail>(\"move\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tsource: { type: Object },\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tdestination: { type: Object },\n\t},\n})\nclass TabContainer extends UI5Element {\n\t/**\n\t * Defines whether the tab content is collapsed.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tcollapsed = false;\n\n\t/**\n\t * Defines the alignment of the content and the `additionalText` of a tab.\n\t *\n\t * **Note:**\n\t * The content and the `additionalText` would be displayed vertically by default,\n\t * but when set to `Inline`, they would be displayed horizontally.\n\t * @default \"Standard\"\n\t * @public\n\t */\n\t@property()\n\ttabLayout: `${TabLayout}` = \"Standard\";\n\n\t/**\n\t * Defines the overflow mode of the header (the tab strip). If you have a large number of tabs, only the tabs that can fit on screen will be visible.\n\t * All other tabs that can 't fit on the screen are available in an overflow tab \"More\".\n\t *\n\t * **Note:**\n\t * Only one overflow at the end would be displayed by default,\n\t * but when set to `StartAndEnd`, there will be two overflows on both ends, and tab order will not change on tab selection.\n\t * @default \"End\"\n\t * @since 1.1.0\n\t * @public\n\t */\n\t@property()\n\toverflowMode: `${OverflowMode}` = \"End\";\n\n\t/**\n\t * Sets the background color of the Tab Container's header as `Solid`, `Transparent`, or `Translucent`.\n\t * @default \"Solid\"\n\t * @since 1.10.0\n\t * @public\n\t */\n\t@property()\n\theaderBackgroundDesign: `${BackgroundDesign}` = \"Solid\";\n\n\t/**\n\t * Sets the background color of the Tab Container's content as `Solid`, `Transparent`, or `Translucent`.\n\t * @default \"Solid\"\n\t * @since 1.10.0\n\t * @public\n\t */\n\t@property()\n\tcontentBackgroundDesign: `${BackgroundDesign}` = \"Solid\";\n\n\t/**\n\t * Defines the placement of the tab strip relative to the actual tabs' content.\n\t *\n\t * **Note:** By default the tab strip is displayed above the tabs' content area and this is the recommended\n\t * layout for most scenarios. Set to `Bottom` only when the component is at the\n\t * bottom of the page and you want the tab strip to act as a menu.\n\t * @default \"Top\"\n\t * @since 1.0.0-rc.7\n\t * @private\n\t */\n\t@property()\n\ttabsPlacement: `${TabContainerTabsPlacement}` = \"Top\";\n\n\t/**\n\t * Defines the current media query size.\n\t * @private\n\t */\n\t@property()\n\tmediaRange?: string;\n\n\t@property({ type: Object })\n\t_selectedTab?: Tab;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_animationRunning = false;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_contentCollapsed = false;\n\n\t@property({ noAttribute: true })\n\t_startOverflowText = \"0\"\n\n\t@property({ noAttribute: true })\n\t_endOverflowText = \"More\";\n\n\t@property({ type: Array })\n\t_popoverItemsFlat: Array<ITab> = [];\n\n\t@property({ type: Number, noAttribute: true })\n\t_width?: number;\n\n\t/**\n\t * Defines the tabs.\n\t *\n\t * **Note:** Use `ui5-tab` and `ui5-tab-separator` for the intended design.\n\t * @public\n\t */\n\t@slot({\n\t\t\"default\": true,\n\t\ttype: HTMLElement,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: true,\n\t\t\tslots: true,\n\t\t},\n\t})\n\titems!: Array<ITab>;\n\n\t/**\n\t * Defines the button which will open the overflow menu. If nothing is provided to this slot,\n\t * the default button will be used.\n\t * @public\n\t * @since 1.0.0-rc.9\n\t */\n\t@slot()\n\toverflowButton!: Array<IButton>;\n\n\t/**\n\t * Defines the button which will open the start overflow menu if available. If nothing is provided to this slot,\n\t * the default button will be used.\n\t * @public\n\t * @since 1.1.0\n\t */\n\t@slot()\n\tstartOverflowButton!: Array<IButton>;\n\n\t_itemNavigation: ItemNavigation;\n\t_itemsFlat: Array<ITab> = [];\n\tresponsivePopover?: ResponsivePopover;\n\t_hasScheduledPopoverOpen = false;\n\t_handleResizeBound: () => void;\n\t_setDraggedElement?: SetDraggedElementFunction;\n\n\tstatic registerTabStyles(styles: StyleData) {\n\t\ttabStyles.push(styles);\n\t}\n\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._handleResizeBound = this._handleResize.bind(this);\n\n\t\t// Init ItemNavigation\n\t\tthis._itemNavigation = new ItemNavigation(this, {\n\t\t\tgetItemsCallback: () => this._getFocusableRefs(),\n\t\t\tskipItemsSize: PAGE_UP_DOWN_SIZE,\n\t\t});\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._itemsFlat = this._flatten(this.items);\n\t\tif (!this._itemsFlat.length) {\n\t\t\treturn;\n\t\t}\n\n\t\t// update selected tab\n\t\tconst selectedTab = this._itemsFlat.find((tab): tab is Tab => !tab.isSeparator && (tab as Tab).selected);\n\n\t\tif (selectedTab) {\n\t\t\tthis._selectedTab = selectedTab;\n\t\t} else {\n\t\t\tthis._selectedTab = this._itemsFlat[0] as Tab;\n\t\t}\n\n\t\twalk(this.items, item => {\n\t\t\tif (!item.isSeparator) {\n\t\t\t\t(item as Tab)._selectedTabReference = this._selectedTab;\n\t\t\t}\n\t\t});\n\n\t\tthis._sendStripPresentationInfos(this.items);\n\n\t\tif (!this._animationRunning) {\n\t\t\tthis._contentCollapsed = this.collapsed;\n\t\t}\n\t}\n\n\tonAfterRendering() {\n\t\tif (!this.items.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._setItemsForStrip();\n\n\t\tif (!this.shadowRoot!.contains(document.activeElement)) {\n\t\t\tconst focusStart = this._getRootTab(this._selectedTab);\n\n\t\t\tif (focusStart) {\n\t\t\t\tthis._itemNavigation.setCurrentItem(focusStart);\n\t\t\t}\n\t\t}\n\n\t\tif (this.responsivePopover?.open) {\n\t\t\tconst popoverItems = this._getPopoverItemsFor(this._getPopoverOwner(this.responsivePopover.opener as HTMLElement));\n\n\t\t\tif (popoverItems.length) {\n\t\t\t\tthis._setPopoverItems(popoverItems);\n\t\t\t} else {\n\t\t\t\tthis._closePopover();\n\t\t\t}\n\t\t}\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this._getHeader(), this._handleResizeBound);\n\t\tDragRegistry.subscribe(this);\n\t\tthis._setDraggedElement = DragRegistry.addSelfManagedArea(this);\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this._getHeader(), this._handleResizeBound);\n\t\tDragRegistry.unsubscribe(this);\n\t\tDragRegistry.removeSelfManagedArea(this);\n\t\tthis._setDraggedElement = undefined;\n\t}\n\n\t_handleResize() {\n\t\tif (this.responsivePopover && this.responsivePopover.open) {\n\t\t\tthis._closePopover();\n\t\t}\n\n\t\t// invalidate\n\t\tthis._width = this.offsetWidth;\n\t\tthis._updateMediaRange(this._width);\n\t}\n\n\t_updateMediaRange(width: number) {\n\t\tthis.mediaRange = MediaRange.getCurrentRange(MediaRange.RANGESETS.RANGE_4STEPS, width);\n\t}\n\n\t_sendStripPresentationInfos(items: Array<ITab>) {\n\t\tconst setsize = this._getTabs().length;\n\t\tlet posinset = 1;\n\n\t\titems.forEach(item => {\n\t\t\tlet info: TabContainerStripInfo = {\n\t\t\t\tgetElementInStrip: () => this.getDomRef()!.querySelector<HTMLElement>(`[id=\"${item._id}\"]`)!,\n\t\t\t};\n\n\t\t\tif (!item.isSeparator) {\n\t\t\t\tinfo = {\n\t\t\t\t\t...info,\n\t\t\t\t\tisInline: this.tabLayout === TabLayout.Inline,\n\t\t\t\t\tmixedMode: this.mixedMode,\n\t\t\t\t\tposinset,\n\t\t\t\t\tsetsize,\n\t\t\t\t\tisTopLevelTab: items.some(i => i === item),\n\t\t\t\t};\n\n\t\t\t\tposinset++;\n\t\t\t}\n\n\t\t\titem.receiveStripInfo(info);\n\t\t});\n\t}\n\n\t_onHeaderFocusin(e: FocusEvent) {\n\t\tconst tab = getTabInStrip(e.target as HTMLElement);\n\n\t\tif (tab) {\n\t\t\tthis._itemNavigation.setCurrentItem(tab.realTabReference);\n\t\t}\n\t}\n\n\t_onDragStart(e: DragEvent) {\n\t\tif (!e.dataTransfer || !(e.target instanceof HTMLElement)) {\n\t\t\treturn;\n\t\t}\n\n\t\te.dataTransfer.dropEffect = \"move\";\n\t\te.dataTransfer.effectAllowed = \"move\";\n\n\t\tthis._setDraggedElement!((e.target as TabInStrip).realTabReference);\n\t}\n\n\t_onHeaderDragEnter(e: DragEvent) {\n\t\te.preventDefault();\n\t}\n\n\t@longDragOverHandler(\"[data-ui5-stable=overflow-start],[data-ui5-stable=overflow-end],[role=tab]\")\n\t_onHeaderDragOver(e: DragEvent, isLongDragOver: boolean) {\n\t\tif (!(e.target instanceof HTMLElement) || !e.target.closest(\"[data-ui5-stable=overflow-start],[data-ui5-stable=overflow-end],[role=tab],[role=separator]\")) {\n\t\t\tthis.dropIndicatorDOM!.targetReference = null;\n\t\t\treturn;\n\t\t}\n\n\t\tconst draggedElement = DragRegistry.getDraggedElement();\n\t\tconst closestPosition = findClosestPosition(\n\t\t\t[...this._getTabStrip().querySelectorAll<HTMLElement>(`[role=\"tab\"]:not([hidden])`)],\n\t\t\te.clientX,\n\t\t\tOrientation.Horizontal,\n\t\t);\n\t\tconst overflowButton = e.target.closest<HTMLElement>(\"[data-ui5-stable=overflow-start],[data-ui5-stable=overflow-end]\");\n\t\tlet popoverTarget = null;\n\n\t\tif (overflowButton) {\n\t\t\tpopoverTarget = overflowButton;\n\t\t\te.preventDefault();\n\t\t} else if (closestPosition) {\n\t\t\tconst dropTarget = (closestPosition.element as TabInStrip).realTabReference;\n\t\t\tlet placements = closestPosition.placements;\n\n\t\t\tif (dropTarget === draggedElement) {\n\t\t\t\tplacements = placements.filter(placement => placement !== MovePlacement.On);\n\t\t\t}\n\n\t\t\tconst acceptedPlacement = placements.find(placement => {\n\t\t\t\tconst dragOverPrevented = !this.fireEvent<TabContainerMoveEventDetail>(\"move-over\", {\n\t\t\t\t\tsource: {\n\t\t\t\t\t\telement: draggedElement!,\n\t\t\t\t\t},\n\t\t\t\t\tdestination: {\n\t\t\t\t\t\telement: dropTarget,\n\t\t\t\t\t\tplacement,\n\t\t\t\t\t},\n\t\t\t\t}, true);\n\n\t\t\t\tif (dragOverPrevented) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tthis.dropIndicatorDOM!.targetReference = closestPosition.element;\n\t\t\t\t\tthis.dropIndicatorDOM!.placement = placement;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t});\n\n\t\t\tif (acceptedPlacement === MovePlacement.On && (closestPosition.element as TabInStrip).realTabReference.items.length) {\n\t\t\t\tpopoverTarget = closestPosition.element;\n\t\t\t} else if (!acceptedPlacement) {\n\t\t\t\tthis.dropIndicatorDOM!.targetReference = null;\n\t\t\t}\n\t\t}\n\n\t\tif (popoverTarget && isLongDragOver) {\n\t\t\tthis._showPopoverAt(popoverTarget, false, true);\n\t\t} else {\n\t\t\tthis._closePopover();\n\t\t}\n\t}\n\n\t_onHeaderDrop(e: DragEvent) {\n\t\tif (e.target === this._getStartOverflowBtnDOM() || e.target === this._getEndOverflowBtnDOM()) {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\t\tconst draggedElement = DragRegistry.getDraggedElement()!;\n\n\t\tthis.fireEvent<TabContainerMoveEventDetail>(\"move\", {\n\t\t\tsource: {\n\t\t\t\telement: draggedElement,\n\t\t\t},\n\t\t\tdestination: {\n\t\t\t\telement: (this.dropIndicatorDOM!.targetReference as TabInStrip).realTabReference,\n\t\t\t\tplacement: this.dropIndicatorDOM!.placement,\n\t\t\t},\n\t\t});\n\n\t\tthis.dropIndicatorDOM!.targetReference = null;\n\t\tdraggedElement.focus();\n\t}\n\n\t_moveHeaderItem(tab: Tab, e: KeyboardEvent) {\n\t\tif (!tab.movable) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst headerItems = this.items.map(item => item.getDomRefInStrip()).filter((item): item is TabInStrip => !item?.hasAttribute(\"hidden\"));\n\t\tlet { placement, element } = findClosestPositionByKey(headerItems, tab.getDomRefInStrip()!, e);\n\n\t\tif (!element || !placement) {\n\t\t\treturn;\n\t\t}\n\n\t\twhile (element && (element as TabInStrip).realTabReference.hasAttribute(\"ui5-tab-separator\") && placement === MovePlacement.Before) {\n\t\t\telement = element.previousElementSibling as HTMLElement;\n\t\t\tplacement = MovePlacement.After;\n\t\t}\n\n\t\twhile (element && (element as TabInStrip).realTabReference.hasAttribute(\"ui5-tab-separator\") && placement === MovePlacement.After) {\n\t\t\telement = element.nextElementSibling as HTMLElement;\n\t\t\tplacement = MovePlacement.Before;\n\t\t}\n\n\t\tif (!element) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst placementAccepted = !this.fireEvent<TabContainerMoveEventDetail>(\"move-over\", {\n\t\t\tsource: {\n\t\t\t\telement: tab,\n\t\t\t},\n\t\t\tdestination: {\n\t\t\t\telement: (element as TabInStrip).realTabReference,\n\t\t\t\tplacement,\n\t\t\t},\n\t\t}, true);\n\n\t\tif (placementAccepted) {\n\t\t\tthis.fireEvent<TabContainerMoveEventDetail>(\"move\", {\n\t\t\t\tsource: {\n\t\t\t\t\telement: tab,\n\t\t\t\t},\n\t\t\t\tdestination: {\n\t\t\t\t\telement: (element as TabInStrip).realTabReference,\n\t\t\t\t\tplacement,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\ttab.focus();\n\t\t}\n\t}\n\n\t_onHeaderDragLeave(e: DragEvent) {\n\t\tif (e.relatedTarget instanceof Node && this.shadowRoot!.contains(e.relatedTarget)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.dropIndicatorDOM!.targetReference = null;\n\t}\n\n\t_onPopoverListMoveOver(e: CustomEvent<ListMoveEventDetail>) {\n\t\tconst { destination, source } = e.detail;\n\t\tconst draggedElement = DragRegistry.getDraggedElement()!;\n\t\tlet destinationElement: HTMLElement = (destination.element as TabInStrip | TabSeparatorInStrip).realTabReference;\n\n\t\tif (e.detail.originalEvent instanceof KeyboardEvent) {\n\t\t\tconst realTabReference = (source.element as TabInOverflow).realTabReference;\n\t\t\tconst siblings = this._findSiblings(realTabReference);\n\t\t\tlet items = siblings;\n\n\t\t\tif (this.items.includes(realTabReference)) {\n\t\t\t\titems = siblings.filter(sibling => {\n\t\t\t\t\treturn ((e.target as List).items as Array<TabInOverflow>).some(el => el.realTabReference === sibling);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst nextPlacement = findClosestPositionByKey(items, realTabReference, e.detail.originalEvent);\n\t\t\tdestinationElement = nextPlacement.element;\n\t\t}\n\n\t\tif (!destinationElement) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (destination.placement === MovePlacement.On && (destinationElement.hasAttribute(\"ui5-tab-separator\") || draggedElement === destinationElement)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (draggedElement !== destinationElement && draggedElement.contains(destinationElement)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst placementAccepted = !this.fireEvent<TabContainerMoveEventDetail>(\"move-over\", {\n\t\t\tsource: {\n\t\t\t\telement: draggedElement,\n\t\t\t},\n\t\t\tdestination: {\n\t\t\t\telement: destinationElement,\n\t\t\t\tplacement: destination.placement,\n\t\t\t},\n\t\t}, true);\n\n\t\tif (placementAccepted) {\n\t\t\te.preventDefault();\n\t\t} else {\n\t\t\tthis.dropIndicatorDOM!.targetReference = null;\n\t\t}\n\t}\n\n\t_onPopoverListMove(e: CustomEvent<ListMoveEventDetail>) {\n\t\tconst { destination, source } = e.detail;\n\t\tconst draggedElement = DragRegistry.getDraggedElement()!;\n\t\tlet destinationElement: HTMLElement = (destination.element as TabInStrip).realTabReference;\n\n\t\tif (e.detail.originalEvent instanceof KeyboardEvent) {\n\t\t\tconst realTabReference = (source.element as TabInOverflow).realTabReference;\n\t\t\tconst siblings = this._findSiblings(realTabReference);\n\t\t\tlet items = siblings;\n\n\t\t\tif (this.items.includes(realTabReference)) {\n\t\t\t\titems = siblings.filter(sibling => {\n\t\t\t\t\treturn ((e.target as List).items as Array<TabInOverflow>).some(el => el.realTabReference === sibling);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst nextPlacement = findClosestPositionByKey(items, realTabReference, e.detail.originalEvent);\n\t\t\tdestinationElement = nextPlacement.element;\n\t\t}\n\n\t\tif (!destinationElement) {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\n\t\tthis.fireEvent<TabContainerMoveEventDetail>(\"move\", {\n\t\t\tsource: {\n\t\t\t\telement: draggedElement,\n\t\t\t},\n\t\t\tdestination: {\n\t\t\t\telement: destinationElement,\n\t\t\t\tplacement: destination.placement,\n\t\t\t},\n\t\t}, true);\n\n\t\tthis.dropIndicatorDOM!.targetReference = null;\n\t\tdraggedElement.focus();\n\t}\n\n\t_onPopoverListKeyDown(e: KeyboardEvent) {\n\t\tif (isCtrl(e)) {\n\t\t\tthis._setDraggedElement!((e.target as TabInOverflow).realTabReference);\n\t\t}\n\t}\n\n\tasync _onTabStripClick(e: Event) {\n\t\tconst tab = getTabInStrip(e.target as HTMLElement);\n\t\tif (!tab || tab.realTabReference.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\te.stopPropagation();\n\t\te.preventDefault();\n\n\t\tif ((e.target as HTMLElement).hasAttribute(\"ui5-button\")) {\n\t\t\tthis._onTabExpandButtonClick(e);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!tab.realTabReference.hasOwnContent && tab.realTabReference.tabs.length) {\n\t\t\tawait this._togglePopover(tab);\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis._onHeaderItemSelect(tab);\n\t}\n\n\tasync _onTabExpandButtonClick(e: Event) {\n\t\te.stopPropagation();\n\t\te.preventDefault();\n\n\t\tlet tabInstance: TabInStrip;\n\n\t\tif (isTabInStrip(e.target as HTMLElement)) {\n\t\t\ttabInstance = e.target as TabInStrip;\n\t\t} else {\n\t\t\ttabInstance = getTabInStrip(e.target as HTMLElement) as TabInStrip;\n\t\t}\n\n\t\tif (tabInstance) {\n\t\t\ttabInstance.focus();\n\t\t}\n\n\t\tlet opener = e.target as HTMLElement;\n\n\t\tif (e.type === \"keydown\" && !(e.target as TabInStrip).realTabReference.isSingleClickArea) {\n\t\t\topener = (e.target as TabInStrip).querySelector(\".ui5-tab-expand-button [ui5-button]\")!;\n\t\t}\n\n\t\t// if clicked between the expand button and the tab\n\t\tif (!tabInstance) {\n\t\t\tthis._onHeaderItemSelect(opener.parentElement as HTMLElement);\n\t\t\treturn;\n\t\t}\n\n\t\tawait this._togglePopover(opener, true);\n\t}\n\n\t_setPopoverInitialFocus() {\n\t\tconst selectedTabInOverflow = this._getSelectedTabInOverflow();\n\t\tconst tab = selectedTabInOverflow || this._getFirstFocusableItemInOverflow();\n\n\t\tthis.responsivePopover!.initialFocus = `${tab.realTabReference._id}-li`;\n\t}\n\n\t_getSelectedTabInOverflow() {\n\t\treturn <TabInOverflow>(<List> this.responsivePopover!.content[0]).items.find(item => {\n\t\t\treturn (<TabInOverflow>item).realTabReference && (<TabInOverflow>item).realTabReference.selected;\n\t\t});\n\t}\n\n\t_getFirstFocusableItemInOverflow() {\n\t\treturn <TabInOverflow>(<List> this.responsivePopover!.content[0]).items.find(item => item.classList.contains(\"ui5-tab-overflow-item\"));\n\t}\n\n\t_findTabInOverflow(realTab: ITab) {\n\t\tif (!this.responsivePopover!.open) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn ((this.responsivePopover!.content[0] as List).items as Array<TabInOverflow | TabSeparatorInOverflow>).find(item => item.realTabReference === realTab);\n\t}\n\n\t_onTabStripKeyDown(e: KeyboardEvent) {\n\t\tconst tab = getTabInStrip(e.target as HTMLElement);\n\t\tif (!tab) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isCtrl(e)) {\n\t\t\tthis._moveHeaderItem(tab.realTabReference, e);\n\t\t\treturn;\n\t\t}\n\n\t\tif (tab.realTabReference.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tif (tab.realTabReference.isSingleClickArea) {\n\t\t\t\tthis._onTabStripClick(e);\n\t\t\t} else {\n\t\t\t\tthis._onHeaderItemSelect(tab);\n\t\t\t}\n\t\t}\n\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault(); // prevent scrolling\n\t\t}\n\n\t\tif (isDown(e) || isUp(e)) {\n\t\t\tif (tab.realTabReference.requiresExpandButton) {\n\t\t\t\tthis._onTabExpandButtonClick(e);\n\t\t\t}\n\t\t\tif (tab.realTabReference.isSingleClickArea) {\n\t\t\t\tthis._onTabStripClick(e);\n\t\t\t}\n\t\t}\n\t}\n\n\t_onTabStripKeyUp(e: KeyboardEvent) {\n\t\tconst tab = getTabInStrip(e.target as HTMLElement);\n\t\tif (!tab || tab.realTabReference.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t\tif (tab.realTabReference.isSingleClickArea) {\n\t\t\t\tthis._onTabStripClick(e);\n\t\t\t} else {\n\t\t\t\tthis._onHeaderItemSelect(tab);\n\t\t\t}\n\t\t}\n\t}\n\n\t_onHeaderItemSelect(tab: HTMLElement) {\n\t\tif (!tab.hasAttribute(\"disabled\")) {\n\t\t\tthis._onItemSelect(tab.id);\n\t\t}\n\t}\n\n\tasync _onOverflowListItemClick(e: CustomEvent<ListItemClickEventDetail>) {\n\t\te.preventDefault(); // cancel the item selection\n\n\t\tthis._onItemSelect(e.detail.item.id.slice(0, -3)); // strip \"-li\" from end of id\n\t\tthis._closePopover();\n\t\tawait renderFinished();\n\n\t\tconst selectedTopLevel = this._getRootTab(this._selectedTab);\n\t\tselectedTopLevel?.getDomRefInStrip()!.focus();\n\t}\n\n\t/**\n\t * Returns all slotted tabs and their subTabs in a flattened array.\n\t * The order of tabs is depth-first.\n\t *\n\t * @public\n\t * @default []\n\t */\n\tget allItems() : Array<ITab> {\n\t\treturn this._flatten(this.items);\n\t}\n\n\t_flatten(items: Array<ITab>) {\n\t\tconst result: Array<ITab> = [];\n\n\t\twalk(items, item => {\n\t\t\tif (item.hasAttribute(\"ui5-tab\") || item.hasAttribute(\"ui5-tab-separator\")) {\n\t\t\t\tresult.push(item);\n\t\t\t}\n\t\t});\n\n\t\treturn result;\n\t}\n\n\t_onItemSelect(selectedTabId: string) {\n\t\tconst selectedTabIndex = this._itemsFlat.findIndex(item => item.__id === selectedTabId);\n\t\tconst selectedTab = this._itemsFlat[selectedTabIndex] as Tab;\n\n\t\tconst selectionSuccessful = this.selectTab(selectedTab, selectedTabIndex);\n\t\tif (!selectionSuccessful) {\n\t\t\treturn;\n\t\t}\n\n\t\t// update selected property on all items\n\t\tthis._itemsFlat.forEach(item => {\n\t\t\tif (!item.isSeparator) {\n\t\t\t\t(item as Tab).selected = item === selectedTab;\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Fires the `tab-select` event and changes the internal reference for the currently selected tab.\n\t * If the event is prevented, the current tab is not changed.\n\t * @private\n\t * @param selectedTab selected tab instance\n\t * @param selectedTabIndex selected tab index for an array containing all tabs and sub tabs. **Note:** Use the method `allTabs` to get this array.\n\t * @returns true if the tab selection is successful, false if it was prevented\n\t */\n\tselectTab(selectedTab: Tab, selectedTabIndex: number) {\n\t\tif (!this.fireEvent<TabContainerTabSelectEventDetail>(\"tab-select\", { tab: selectedTab, tabIndex: selectedTabIndex }, true)) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// select the tab\n\t\tthis._selectedTab = selectedTab;\n\t\treturn true;\n\t}\n\n\tslideContentDown(element: HTMLElement) {\n\t\treturn slideDown(element).promise();\n\t}\n\n\tslideContentUp(element: HTMLElement) {\n\t\treturn slideUp(element).promise();\n\t}\n\n\tasync _onOverflowClick(e: Event) {\n\t\tif ((e.target as HTMLElement).classList.contains(\"ui5-tc__overflow\")) {\n\t\t\t// the empty area in the overflow was clicked\n\t\t\treturn;\n\t\t}\n\n\t\tconst overflow = e.currentTarget as HTMLElement;\n\t\tconst isEndOverflow = overflow.classList.contains(\"ui5-tc__overflow--end\");\n\t\tlet opener;\n\n\t\tif (isEndOverflow) {\n\t\t\topener = this.overflowButton[0] || this._getEndOverflowBtnDOM();\n\t\t} else {\n\t\t\topener = this.startOverflowButton[0] || this._getStartOverflowBtnDOM();\n\t\t}\n\n\t\tawait this._togglePopover(opener, true);\n\t}\n\n\t_sendOverflowPresentationInfos(items: Array<ITab>) {\n\t\tconst extraIndent = items\n\t\t\t.filter((item): item is Tab => !item.isSeparator)\n\t\t\t.some(tab => tab.design !== SemanticColor.Default && tab.design !== SemanticColor.Neutral);\n\n\t\twalk(items, (item, level) => {\n\t\t\titem.receiveOverflowInfo({\n\t\t\t\tgetElementInOverflow: () => {\n\t\t\t\t\treturn this._findTabInOverflow(item);\n\t\t\t\t},\n\t\t\t\tstyle: {\n\t\t\t\t\t[getScopedVarName(\"--_ui5-tab-indentation-level\")]: item.isSeparator ? level + 1 : level,\n\t\t\t\t\t[getScopedVarName(\"--_ui5-tab-extra-indent\")]: extraIndent ? 1 : null,\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t}\n\n\tasync _onOverflowKeyDown(e: KeyboardEvent) {\n\t\tconst overflow = e.currentTarget as HTMLElement;\n\t\tconst isEndOverflow = overflow.classList.contains(\"ui5-tc__overflow--end\");\n\t\tconst isStartOverflow = overflow.classList.contains(\"ui5-tc__overflow--start\");\n\n\t\tif (isDown(e) || (isStartOverflow && isLeft(e)) || (isEndOverflow && isRight(e))) {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t\tawait this._onOverflowClick(e);\n\t\t}\n\t}\n\n\t_setItemsForStrip() {\n\t\tconst tabStrip = this._getTabStrip();\n\t\tlet allItemsWidth = 0;\n\n\t\tif (!this._selectedTab) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst itemsDomRefs = this.items.map(item => item.getDomRefInStrip()) as Array<TabInStrip | TabSeparatorInStrip>;\n\n\t\t// make sure the overflows are hidden\n\t\tthis._getStartOverflow().setAttribute(\"hidden\", \"\");\n\t\tthis._getEndOverflow().setAttribute(\"hidden\", \"\");\n\n\t\t// show all tabs\n\t\tfor (let i = 0; i < itemsDomRefs.length; i++) {\n\t\t\titemsDomRefs[i].removeAttribute(\"hidden\");\n\t\t\titemsDomRefs[i].removeAttribute(\"start-overflow\");\n\t\t\titemsDomRefs[i].removeAttribute(\"end-overflow\");\n\t\t}\n\n\t\titemsDomRefs.forEach(item => {\n\t\t\tallItemsWidth += this._getItemWidth(item);\n\t\t});\n\n\t\tconst hasOverflow = tabStrip.offsetWidth < allItemsWidth;\n\t\tif (!hasOverflow) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.isModeStartAndEnd) {\n\t\t\tthis._updateStartAndEndOverflow(itemsDomRefs);\n\t\t\tthis._updateOverflowCounters();\n\t\t} else {\n\t\t\tthis._updateEndOverflow(itemsDomRefs);\n\t\t}\n\t}\n\n\t_getRootTab(tab: Tab | undefined) {\n\t\twhile (tab?.hasAttribute(\"ui5-tab\")) {\n\t\t\tif (tab.parentElement!.hasAttribute(\"ui5-tabcontainer\")) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\ttab = tab.parentElement as Tab;\n\t\t}\n\n\t\treturn tab;\n\t}\n\n\t_updateEndOverflow(itemsDomRefs: Array<TabInStrip | TabSeparatorInStrip>) {\n\t\t// show end overflow\n\t\tthis._getEndOverflow().removeAttribute(\"hidden\");\n\t\tconst selectedTab = this._getRootTab(this._selectedTab);\n\t\tconst selectedTabDomRef = selectedTab?.getDomRefInStrip() as TabInStrip | undefined;\n\t\tconst containerWidth = this._getTabStrip().offsetWidth;\n\n\t\tconst selectedItemIndexAndWidth = this._getSelectedItemIndexAndWidth(itemsDomRefs, selectedTabDomRef);\n\t\tconst lastVisibleTabIndex = this._findLastVisibleItem(itemsDomRefs, containerWidth, selectedItemIndexAndWidth.width);\n\n\t\tfor (let i = lastVisibleTabIndex + 1; i < itemsDomRefs.length; i++) {\n\t\t\titemsDomRefs[i].setAttribute(\"hidden\", \"\");\n\t\t\titemsDomRefs[i].setAttribute(\"end-overflow\", \"\");\n\t\t}\n\n\t\tthis._endOverflowText = this.overflowButtonText;\n\t}\n\n\t_updateStartAndEndOverflow(itemsDomRefs: Array<TabInStrip | TabSeparatorInStrip>) {\n\t\tlet containerWidth = this._getTabStrip().offsetWidth;\n\t\tconst selectedTab = this._getRootTab(this._selectedTab);\n\t\tconst selectedTabDomRef = selectedTab?.getDomRefInStrip() as TabInStrip | undefined;\n\t\tconst selectedItemIndexAndWidth = this._getSelectedItemIndexAndWidth(itemsDomRefs, selectedTabDomRef);\n\t\tconst hasStartOverflow = this._hasStartOverflow(containerWidth, itemsDomRefs, selectedItemIndexAndWidth);\n\t\tconst hasEndOverflow = this._hasEndOverflow(containerWidth, itemsDomRefs, selectedItemIndexAndWidth);\n\t\tlet firstVisible;\n\t\tlet lastVisible;\n\n\t\t// has \"end\", but no \"start\" overflow\n\t\tif (!hasStartOverflow) {\n\t\t\t// show \"end\" overflow\n\t\t\tthis._getEndOverflow().removeAttribute(\"hidden\");\n\t\t\t// width is changed\n\t\t\tcontainerWidth = this._getTabStrip().offsetWidth;\n\n\t\t\tlastVisible = this._findLastVisibleItem(itemsDomRefs, containerWidth, selectedItemIndexAndWidth.width);\n\n\t\t\tfor (let i = lastVisible + 1; i < itemsDomRefs.length; i++) {\n\t\t\t\titemsDomRefs[i].setAttribute(\"hidden\", \"\");\n\t\t\t\titemsDomRefs[i].setAttribute(\"end-overflow\", \"\");\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// has \"start\", but no \"end\" overflow\n\t\tif (!hasEndOverflow) {\n\t\t\t// show \"start\" overflow\n\t\t\tthis._getStartOverflow().removeAttribute(\"hidden\");\n\t\t\t// width is changed\n\t\t\tcontainerWidth = this._getTabStrip().offsetWidth;\n\n\t\t\tfirstVisible = this._findFirstVisibleItem(itemsDomRefs, containerWidth, selectedItemIndexAndWidth.width);\n\n\t\t\tfor (let i = firstVisible - 1; i >= 0; i--) {\n\t\t\t\titemsDomRefs[i].setAttribute(\"hidden\", \"\");\n\t\t\t\titemsDomRefs[i].setAttribute(\"start-overflow\", \"\");\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// show \"start\" overflow\n\t\tthis._getStartOverflow().removeAttribute(\"hidden\");\n\t\t// show \"end\" overflow\n\t\tthis._getEndOverflow().removeAttribute(\"hidden\");\n\t\t// width is changed\n\t\tcontainerWidth = this._getTabStrip().offsetWidth;\n\n\t\tfirstVisible = this._findFirstVisibleItem(itemsDomRefs, containerWidth, selectedItemIndexAndWidth.width, selectedItemIndexAndWidth.index - 1);\n\t\tlastVisible = this._findLastVisibleItem(itemsDomRefs, containerWidth, selectedItemIndexAndWidth.width, firstVisible);\n\n\t\tfor (let i = firstVisible - 1; i >= 0; i--) {\n\t\t\titemsDomRefs[i].setAttribute(\"hidden\", \"\");\n\t\t\titemsDomRefs[i].setAttribute(\"start-overflow\", \"\");\n\t\t}\n\n\t\tfor (let i = lastVisible + 1; i < itemsDomRefs.length; i++) {\n\t\t\titemsDomRefs[i].setAttribute(\"hidden\", \"\");\n\t\t\titemsDomRefs[i].setAttribute(\"end-overflow\", \"\");\n\t\t}\n\t}\n\n\t_hasStartOverflow(containerWidth: number, itemsDomRefs: Array<TabInStrip | TabSeparatorInStrip>, selectedItemIndexAndWidth: { width: number; index: number}) {\n\t\tif (selectedItemIndexAndWidth.index === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet leftItemsWidth = 0;\n\n\t\tfor (let i = selectedItemIndexAndWidth.index - 1; i >= 0; i--) {\n\t\t\tleftItemsWidth += this._getItemWidth(itemsDomRefs[i]);\n\t\t}\n\n\t\tlet hasStartOverflow = containerWidth < leftItemsWidth + selectedItemIndexAndWidth.width;\n\n\t\t// if there is no \"start\" overflow, it has \"end\" overflow\n\t\t// check it again with the \"end\" overflow\n\t\tif (!hasStartOverflow) {\n\t\t\tthis._getEndOverflow().removeAttribute(\"hidden\");\n\t\t\tcontainerWidth = this._getTabStrip().offsetWidth;\n\t\t\thasStartOverflow = containerWidth < leftItemsWidth + selectedItemIndexAndWidth.width;\n\t\t\tthis._getEndOverflow().setAttribute(\"hidden\", \"\");\n\t\t}\n\n\t\treturn hasStartOverflow;\n\t}\n\n\t_hasEndOverflow(containerWidth: number, itemsDomRefs: Array<TabInStrip | TabSeparatorInStrip>, selectedItemIndexAndWidth: { width: number; index: number}) {\n\t\tif (selectedItemIndexAndWidth.index >= itemsDomRefs.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet rightItemsWidth = 0;\n\n\t\tfor (let i = selectedItemIndexAndWidth.index; i < itemsDomRefs.length; i++) {\n\t\t\trightItemsWidth += this._getItemWidth(itemsDomRefs[i]);\n\t\t}\n\n\t\tlet hasEndOverflow = containerWidth < rightItemsWidth + selectedItemIndexAndWidth.width;\n\n\t\t// if there is no \"end\" overflow, it has \"start\" overflow\n\t\t// check it again with the \"start\" overflow\n\t\tif (!hasEndOverflow) {\n\t\t\tthis._getStartOverflow().removeAttribute(\"hidden\");\n\t\t\tcontainerWidth = this._getTabStrip().offsetWidth;\n\t\t\thasEndOverflow = containerWidth < rightItemsWidth + selectedItemIndexAndWidth.width;\n\t\t\tthis._getStartOverflow().setAttribute(\"hidden\", \"\");\n\t\t}\n\n\t\treturn hasEndOverflow;\n\t}\n\n\t_getItemWidth(itemDomRef: HTMLElement) {\n\t\tconst styles = window.getComputedStyle(itemDomRef);\n\t\tconst margins = Number.parseInt(styles.marginLeft) + Number.parseInt(styles.marginRight);\n\n\t\treturn itemDomRef.offsetWidth + margins;\n\t}\n\n\t_getSelectedItemIndexAndWidth(itemsDomRefs: Array<TabInStrip | TabSeparatorInStrip>, selectedTabDomRef: TabInStrip | undefined) {\n\t\tif (!selectedTabDomRef) {\n\t\t\treturn {\n\t\t\t\tindex: 0,\n\t\t\t\twidth: 0,\n\t\t\t};\n\t\t}\n\n\t\tlet index = itemsDomRefs.indexOf(selectedTabDomRef);\n\t\tlet width = selectedTabDomRef.offsetWidth;\n\t\tlet selectedSeparator;\n\n\t\tif (itemsDomRefs[index - 1] && itemsDomRefs[index - 1].realTabReference.isSeparator) {\n\t\t\tselectedSeparator = itemsDomRefs[index - 1];\n\t\t\twidth += this._getItemWidth(selectedSeparator);\n\t\t}\n\n\t\titemsDomRefs.splice(index, 1);\n\n\t\t// if previous item is a separator - remove it\n\t\tif (selectedSeparator) {\n\t\t\titemsDomRefs.splice(index - 1, 1);\n\t\t\tindex--;\n\t\t}\n\n\t\treturn {\n\t\t\tindex,\n\t\t\twidth,\n\t\t};\n\t}\n\n\t_findFirstVisibleItem(itemsDomRefs: Array<TabInStrip | TabSeparatorInStrip>, containerWidth: number, selectedItemWidth: number, startIndex?: number) {\n\t\tif (startIndex === undefined) {\n\t\t\tstartIndex = itemsDomRefs.length - 1;\n\t\t}\n\n\t\tlet lastVisible = startIndex + 1;\n\n\t\tfor (let index = startIndex; index >= 0; index--) {\n\t\t\tconst itemWidth = this._getItemWidth(itemsDomRefs[index]);\n\n\t\t\tif (containerWidth < selectedItemWidth + itemWidth) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tselectedItemWidth += itemWidth;\n\t\t\tlastVisible = index;\n\t\t}\n\n\t\treturn lastVisible;\n\t}\n\n\t_findLastVisibleItem(itemsDomRefs: Array<TabInStrip | TabSeparatorInStrip>, containerWidth: number, selectedItemWidth: number, startIndex = 0) {\n\t\tlet lastVisibleIndex = startIndex - 1;\n\t\tlet index = startIndex;\n\n\t\tfor (; index < itemsDomRefs.length; index++) {\n\t\t\tconst itemWidth = this._getItemWidth(itemsDomRefs[index]);\n\n\t\t\tif (containerWidth < selectedItemWidth + itemWidth) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tselectedItemWidth += itemWidth;\n\t\t\tlastVisibleIndex = index;\n\t\t}\n\n\t\t// if prev item is separator - hide it\n\t\tconst prevItem = itemsDomRefs[index - 1];\n\t\tif (prevItem && prevItem.realTabReference.isSeparator) {\n\t\t\tlastVisibleIndex -= 1;\n\t\t}\n\n\t\treturn lastVisibleIndex;\n\t}\n\n\tget isModeStartAndEnd() {\n\t\treturn this.overflowMode === OverflowMode.StartAndEnd;\n\t}\n\n\t_updateOverflowCounters() {\n\t\tlet startOverflowItemsCount = 0;\n\t\tlet endOverflowItemsCount = 0;\n\n\t\tthis._getTabs()\n\t\t\t.map(tab => tab.getDomRefInStrip()!)\n\t\t\t.forEach(tab => {\n\t\t\t\tif (tab.hasAttribute(\"start-overflow\")) {\n\t\t\t\t\tstartOverflowItemsCount++;\n\t\t\t\t}\n\n\t\t\t\tif (tab.hasAttribute(\"end-overflow\")) {\n\t\t\t\t\tendOverflowItemsCount++;\n\t\t\t\t}\n\t\t\t});\n\n\t\tthis._startOverflowText = `+${startOverflowItemsCount}`;\n\t\tthis._endOverflowText = `+${endOverflowItemsCount}`;\n\t}\n\n\t_getFocusableRefs() {\n\t\tif (!this.getDomRef()) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst focusableRefs = [];\n\n\t\tif (!this._getStartOverflow().hasAttribute(\"hidden\")) {\n\t\t\tfocusableRefs.push(this.startOverflowButton[0] || this._getStartOverflowBtnDOM());\n\t\t}\n\n\t\tthis._getTabs().forEach(tab => {\n\t\t\tconst ref = tab.getDomRefInStrip();\n\t\t\tconst focusable = ref && !ref.hasAttribute(\"hidden\");\n\n\t\t\tif (focusable) {\n\t\t\t\tfocusableRefs.push(tab);\n\t\t\t}\n\t\t});\n\n\t\tif (!this._getEndOverflow().hasAttribute(\"hidden\")) {\n\t\t\tfocusableRefs.push(this.overflowButton[0] || this._getEndOverflowBtnDOM());\n\t\t}\n\n\t\treturn focusableRefs;\n\t}\n\n\t_getHeader() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(`#${this._id}-header`)!;\n\t}\n\n\t_getTabs(): Array<Tab> {\n\t\treturn this.items.filter((item): item is Tab => !item.isSeparator);\n\t}\n\n\t_getPopoverOwner(opener: HTMLElement): TabContainerPopoverOwner {\n\t\tif (opener === this._getStartOverflowBtnDOM() || opener.slot === \"startOverflowButton\") {\n\t\t\treturn \"start-overflow\";\n\t\t}\n\n\t\tif (opener === this._getEndOverflowBtnDOM() || opener.slot === \"overflowButton\") {\n\t\t\treturn \"end-overflow\";\n\t\t}\n\n\t\treturn getTabInStrip(opener) as TabInStrip;\n\t}\n\n\t_getPopoverItemsFor(targetOwner: TabContainerPopoverOwner) {\n\t\tif (targetOwner === \"start-overflow\") {\n\t\t\treturn this.items.filter(item => {\n\t\t\t\tconst stripRef = item.getDomRefInStrip();\n\n\t\t\t\treturn stripRef && stripRef.hasAttribute(\"start-overflow\");\n\t\t\t});\n\t\t}\n\n\t\tif (targetOwner === \"end-overflow\") {\n\t\t\treturn this.items.filter(item => {\n\t\t\t\tconst stripRef = item.getDomRefInStrip();\n\n\t\t\t\treturn stripRef && stripRef.hasAttribute(\"end-overflow\");\n\t\t\t});\n\t\t}\n\n\t\treturn targetOwner.realTabReference.items;\n\t}\n\n\t_setPopoverItems(items: Array<ITab>) {\n\t\tthis._sendOverflowPresentationInfos(items);\n\t\tconst newItemsFlat = this._flatten(items);\n\n\t\tif (!arraysAreEqual(this._popoverItemsFlat, newItemsFlat)) {\n\t\t\tthis._popoverItemsFlat = newItemsFlat;\n\t\t}\n\t}\n\n\tasync _togglePopover(opener: HTMLElement, setInitialFocus = false) {\n\t\tthis.responsivePopover = await this._respPopover();\n\n\t\tif (this.responsivePopover.open) {\n\t\t\tthis._closePopover();\n\t\t} else {\n\t\t\tawait this._showPopoverAt(opener, setInitialFocus);\n\t\t}\n\t}\n\n\tasync _showPopoverAt(opener: HTMLElement, setInitialFocus = false, preventInitialFocus = false) {\n\t\tthis._hasScheduledPopoverOpen = true;\n\t\tthis._setPopoverItems(this._getPopoverItemsFor(this._getPopoverOwner(opener)));\n\t\tthis.responsivePopover = await this._respPopover();\n\n\t\tif (setInitialFocus) {\n\t\t\tthis._setPopoverInitialFocus();\n\t\t}\n\n\t\tif (this._hasScheduledPopoverOpen) {\n\t\t\tthis.responsivePopover.preventInitialFocus = preventInitialFocus;\n\t\t\tthis.responsivePopover.opener = opener;\n\t\t\tthis.responsivePopover.open = true;\n\t\t}\n\t}\n\n\tget hasItems(): boolean {\n\t\tconst tabs = this._getTabs();\n\n\t\tfor (let i = 0; i < tabs.length; i++) {\n\t\t\tif (tabs[i].items.length > 0) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t_getTabStrip() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(`#${this._id}-tabStrip`)!;\n\t}\n\n\t_getStartOverflow() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-tc__overflow--start\")!;\n\t}\n\n\t_getEndOverflow() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-tc__overflow--end\")!;\n\t}\n\n\t_getStartOverflowBtnDOM() {\n\t\treturn this._getStartOverflow().querySelector<Button>(\"[ui5-button]\");\n\t}\n\n\t_getEndOverflowBtnDOM() {\n\t\treturn this._getEndOverflow().querySelector<Button>(\"[ui5-button]\");\n\t}\n\n\tasync _respPopover() {\n\t\tawait renderFinished();\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(`#${this._id}-overflowMenu`)!;\n\t}\n\n\t_closePopover() {\n\t\tthis._hasScheduledPopoverOpen = false;\n\t\tif (this.responsivePopover) {\n\t\t\tthis.responsivePopover.open = false;\n\t\t}\n\t}\n\n\tget dropIndicatorDOM(): DropIndicator | null {\n\t\treturn this.shadowRoot!.querySelector(\"[ui5-drop-indicator]\");\n\t}\n\n\t_findSiblings(tab: Tab) {\n\t\tlet parent: Tab;\n\n\t\twalk(this.items, item => {\n\t\t\tif (item.items && item.items.includes(tab)) {\n\t\t\t\tparent = item as Tab;\n\t\t\t}\n\t\t});\n\n\t\treturn (parent! ?? this).items;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\troot: {\n\t\t\t\t\"ui5-tc-root\": true,\n\t\t\t\t\"ui5-tc--textOnly\": this.textOnly,\n\t\t\t\t\"ui5-tc--withAdditionalText\": this.withAdditionalText,\n\t\t\t\t\"ui5-tc--standardTabLayout\": this.standardTabLayout,\n\t\t\t},\n\t\t\theader: {\n\t\t\t\t\"ui5-tc__header\": true,\n\t\t\t},\n\t\t\ttabStrip: {\n\t\t\t\t\"ui5-tc__tabStrip\": true,\n\t\t\t},\n\t\t\tseparator: {\n\t\t\t\t\"ui5-tc__separator\": true,\n\t\t\t},\n\t\t\tcontent: {\n\t\t\t\t\"ui5-tc__content\": true,\n\t\t\t\t\"ui5-tc__content--collapsed\": this._contentCollapsed,\n\t\t\t},\n\t\t};\n\t}\n\n\tget mixedMode() {\n\t\tconst tabs = this._getTabs();\n\n\t\treturn tabs.some(item => item.icon) && tabs.some(item => item.text);\n\t}\n\n\tget textOnly() {\n\t\treturn this._getTabs().every(item => !item.icon);\n\t}\n\n\tget withAdditionalText() {\n\t\treturn this._getTabs().some(item => !!item.additionalText);\n\t}\n\n\tget standardTabLayout() {\n\t\treturn this.tabLayout === TabLayout.Standard;\n\t}\n\n\tget previousIconACCName() {\n\t\treturn TabContainer.i18nBundle.getText(TABCONTAINER_PREVIOUS_ICON_ACC_NAME);\n\t}\n\n\tget nextIconACCName() {\n\t\treturn TabContainer.i18nBundle.getText(TABCONTAINER_NEXT_ICON_ACC_NAME);\n\t}\n\n\tget overflowMenuTitle() {\n\t\treturn TabContainer.i18nBundle.getText(TABCONTAINER_OVERFLOW_MENU_TITLE);\n\t}\n\n\tget tabsAtTheBottom() {\n\t\treturn this.tabsPlacement === TabContainerTabsPlacement.Bottom;\n\t}\n\n\tget overflowMenuIcon() {\n\t\treturn this.tabsAtTheBottom ? \"slim-arrow-up\" : \"slim-arrow-down\";\n\t}\n\n\tget overflowButtonText() {\n\t\treturn TabContainer.i18nBundle.getText(TABCONTAINER_END_OVERFLOW);\n\t}\n\n\tget popoverCancelButtonText() {\n\t\treturn TabContainer.i18nBundle.getText(TABCONTAINER_POPOVER_CANCEL_BUTTON);\n\t}\n\n\tget accInvisibleText() {\n\t\treturn TabContainer.i18nBundle.getText(TABCONTAINER_SUBTABS_DESCRIPTION);\n\t}\n\n\tget overflowBtnAccessibilityAttributes(): Pick<AccessibilityAttributes, \"hasPopup\"> {\n\t\treturn {\n\t\t\thasPopup: \"menu\",\n\t\t};\n\t}\n\n\tget tablistAriaDescribedById() {\n\t\treturn this.hasItems ? `${this._id}-invisibleText` : undefined;\n\t}\n\n\tstatic async onDefine() {\n\t\tTabContainer.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n}\n\nconst isTabInStrip = (el: HTMLElement) => el.localName === \"div\" && el.getAttribute(\"role\") === \"tab\";\n\nconst getTabInStrip = (el: HTMLElement | null) => {\n\twhile (el) {\n\t\tif (isTabInStrip(el)) {\n\t\t\treturn el as TabInStrip;\n\t\t}\n\n\t\tel = el.parentElement;\n\t}\n\n\treturn false;\n};\n\nconst _walk = (items: Array<ITab>, callback: (arg0: ITab, arg1: number) => void, level: number) => {\n\t[...items].forEach(item => {\n\t\tcallback(item, level);\n\t\tif (item.hasAttribute(\"ui5-tab\") && item.items) {\n\t\t\t_walk(item.items, callback, level + 1);\n\t\t}\n\t});\n};\n\nconst walk = (items: Array<ITab>, callback: (arg0: ITab, arg1: number) => void) => {\n\t_walk(items, callback, 0);\n};\n\nTabContainer.define();\n\nexport default TabContainer;\nexport type {\n\tTabContainerTabSelectEventDetail,\n\tTabContainerMoveEventDetail,\n\tTabContainerStripInfo,\n\tTabContainerOverflowInfo,\n\tITab,\n};\n"]}
1
+ {"version":3,"file":"TabContainer.js","sourceRoot":"","sources":["../src/TabContainer.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { AccessibilityAttributes, StyleData } from \"@ui5/webcomponents-base/dist/types.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport slideDown from \"@ui5/webcomponents-base/dist/animations/slideDown.js\";\nimport slideUp from \"@ui5/webcomponents-base/dist/animations/slideUp.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport {\n\tisDesktop,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n\tisSpace,\n\tisEnter,\n\tisDown,\n\tisRight,\n\tisLeft,\n\tisUp,\n\tisCtrl,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport MediaRange from \"@ui5/webcomponents-base/dist/MediaRange.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-up.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport arraysAreEqual from \"@ui5/webcomponents-base/dist/util/arraysAreEqual.js\";\nimport { findClosestPosition, findClosestPositionsByKey } from \"@ui5/webcomponents-base/dist/util/dragAndDrop/findClosestPosition.js\";\nimport Orientation from \"@ui5/webcomponents-base/dist/types/Orientation.js\";\nimport DragRegistry from \"@ui5/webcomponents-base/dist/util/dragAndDrop/DragRegistry.js\";\nimport type { SetDraggedElementFunction } from \"@ui5/webcomponents-base/dist/util/dragAndDrop/DragRegistry.js\";\nimport longDragOverHandler from \"@ui5/webcomponents-base/dist/util/dragAndDrop/longDragOverHandler.js\";\nimport MovePlacement from \"@ui5/webcomponents-base/dist/types/MovePlacement.js\";\nimport {\n\tTABCONTAINER_PREVIOUS_ICON_ACC_NAME,\n\tTABCONTAINER_NEXT_ICON_ACC_NAME,\n\tTABCONTAINER_OVERFLOW_MENU_TITLE,\n\tTABCONTAINER_END_OVERFLOW,\n\tTABCONTAINER_POPOVER_CANCEL_BUTTON,\n\tTABCONTAINER_SUBTABS_DESCRIPTION,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport Button from \"./Button.js\";\nimport Icon from \"./Icon.js\";\nimport List from \"./List.js\";\nimport DropIndicator from \"./DropIndicator.js\";\nimport type Tab from \"./Tab.js\";\nimport type { TabInStrip, TabInOverflow } from \"./Tab.js\";\nimport type { TabSeparatorInOverflow, TabSeparatorInStrip } from \"./TabSeparator.js\";\nimport type { ListItemClickEventDetail, ListMoveEventDetail } from \"./List.js\";\nimport ListItemCustom from \"./ListItemCustom.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport TabContainerTabsPlacement from \"./types/TabContainerTabsPlacement.js\";\nimport SemanticColor from \"./types/SemanticColor.js\";\nimport type BackgroundDesign from \"./types/BackgroundDesign.js\";\nimport TabLayout from \"./types/TabLayout.js\";\nimport OverflowMode from \"./types/OverflowMode.js\";\nimport type { IButton } from \"./Button.js\";\n\n// Templates\nimport TabContainerTemplate from \"./generated/templates/TabContainerTemplate.lit.js\";\n\n// Styles\nimport tabContainerCss from \"./generated/themes/TabContainer.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\n\ntype TabContainerPopoverOwner = \"start-overflow\" | \"end-overflow\" | TabInStrip;\n\nconst tabStyles: Array<StyleData> = [];\nconst PAGE_UP_DOWN_SIZE = 5;\n\ntype TabContainerStripInfo = {\n\tgetElementInStrip: () => HTMLElement | undefined;\n\tisInline?: boolean;\n\tmixedMode?: boolean;\n\tposinset?: number;\n\tsetsize?: number;\n\tisTopLevelTab?: boolean;\n}\n\ntype TabContainerOverflowInfo = {\n\tgetElementInOverflow: () => HTMLElement | undefined;\n\tstyle: Record<string, any>;\n}\n\ntype TabContainerTabSelectEventDetail = {\n\ttab: Tab;\n\ttabIndex: number;\n}\n\ntype TabContainerMoveEventDetail = {\n\tsource: {\n\t\telement: HTMLElement;\n\t},\n\tdestination: {\n\t\telement: HTMLElement;\n\t\tplacement: `${MovePlacement}`\n\t}\n}\n\n/**\n * Interface for components that may be slotted inside `ui5-tabcontainer` as items\n *\n * **Note:** Use directly `ui5-tab` or `ui5-tab-seprator`. Implementing the interface does not guarantee that the class can work as a tab.\n * @public\n */\ninterface ITab extends UI5Element {\n\tisSeparator: boolean;\n\treceiveStripInfo: (arg0: TabContainerStripInfo) => void;\n\treceiveOverflowInfo: (arg0: TabContainerOverflowInfo) => void;\n\tgetDomRefInStrip: () => HTMLElement | undefined;\n\titems?: Array<ITab>;\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-tabcontainer` represents a collection of tabs with associated content.\n * Navigation through the tabs changes the content display of the currently active content area.\n * A tab can be labeled with text only, or icons with text.\n *\n * ### Structure\n *\n * The `ui5-tabcontainer` can hold two types of entities:\n *\n * - `ui5-tab` - contains all the information on an item (text and icon)\n * - `ui5-tab-separator` - used to separate tabs with a line\n *\n * ### Hierarchies\n * Multiple sub tabs could be placed underneath one main tab. Nesting allows deeper hierarchies with indentations\n * to indicate the level of each nested tab. When a tab has both sub tabs and own content its click area is split\n * to allow the user to display the content or alternatively to expand / collapse the list of sub tabs.\n *\n * ### Keyboard Handling\n *\n * #### Fast Navigation\n * This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\n * In order to use this functionality, you need to import the following module:\n * `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/TabContainer.js\";`\n *\n * `import \"@ui5/webcomponents/dist/Tab.js\";` (for `ui5-tab`)\n *\n * `import \"@ui5/webcomponents/dist/TabSeparator.js\";` (for `ui5-tab-separator`)\n * @constructor\n * @extends UI5Element\n * @public\n * @csspart content - Used to style the content of the component\n * @csspart tabstrip - Used to style the tabstrip of the component\n */\n@customElement({\n\ttag: \"ui5-tabcontainer\",\n\tlanguageAware: true,\n\tfastNavigation: true,\n\tstyles: [\n\t\ttabStyles,\n\t\ttabContainerCss,\n\t\tResponsivePopoverCommonCss,\n\t],\n\trenderer: litRender,\n\ttemplate: TabContainerTemplate,\n\tdependencies: [\n\t\tButton,\n\t\tIcon,\n\t\tList,\n\t\tResponsivePopover,\n\t\tDropIndicator,\n\t\tListItemCustom,\n\t],\n})\n/**\n * Fired when a tab is selected.\n * @param {Tab} tab The selected `tab`.\n * @param {Integer} tabIndex The selected `tab` index in the flattened array of all tabs and their subTabs, provided by the `allItems` getter.\n * @public\n * @since 2.0.0\n * @allowPreventDefault\n */\n@event<TabContainerTabSelectEventDetail>(\"tab-select\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\ttab: { type: HTMLElement },\n\t\t/**\n\t\t * @public\n\t\t */\n\t\ttabIndex: { type: Number },\n\t},\n})\n/**\n * Fired when element is being moved over the tab container.\n *\n * If the new position is valid, prevent the default action of the event using `preventDefault()`.\n * @param {object} source Contains information about the moved element under `element` property.\n * @param {object} destination Contains information about the destination of the moved element. Has `element` and `placement` properties.\n * @public\n * @since 2.0.0\n * @allowPreventDefault\n */\n@event<TabContainerMoveEventDetail>(\"move-over\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tsource: { type: Object },\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tdestination: { type: Object },\n\t},\n})\n/**\n * Fired when element is moved to the tab container.\n *\n * **Note:** `move` event is fired only if there was a preceding `move-over` with prevented default action.\n * @param {object} source Contains information about the moved element under `element` property.\n * @param {object} destination Contains information about the destination of the moved element. Has `element` and `placement` properties.\n * @public\n * @allowPreventDefault\n */\n@event<TabContainerMoveEventDetail>(\"move\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tsource: { type: Object },\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tdestination: { type: Object },\n\t},\n})\nclass TabContainer extends UI5Element {\n\t/**\n\t * Defines whether the tab content is collapsed.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tcollapsed = false;\n\n\t/**\n\t * Defines the alignment of the content and the `additionalText` of a tab.\n\t *\n\t * **Note:**\n\t * The content and the `additionalText` would be displayed vertically by default,\n\t * but when set to `Inline`, they would be displayed horizontally.\n\t * @default \"Standard\"\n\t * @public\n\t */\n\t@property()\n\ttabLayout: `${TabLayout}` = \"Standard\";\n\n\t/**\n\t * Defines the overflow mode of the header (the tab strip). If you have a large number of tabs, only the tabs that can fit on screen will be visible.\n\t * All other tabs that can 't fit on the screen are available in an overflow tab \"More\".\n\t *\n\t * **Note:**\n\t * Only one overflow at the end would be displayed by default,\n\t * but when set to `StartAndEnd`, there will be two overflows on both ends, and tab order will not change on tab selection.\n\t * @default \"End\"\n\t * @since 1.1.0\n\t * @public\n\t */\n\t@property()\n\toverflowMode: `${OverflowMode}` = \"End\";\n\n\t/**\n\t * Sets the background color of the Tab Container's header as `Solid`, `Transparent`, or `Translucent`.\n\t * @default \"Solid\"\n\t * @since 1.10.0\n\t * @public\n\t */\n\t@property()\n\theaderBackgroundDesign: `${BackgroundDesign}` = \"Solid\";\n\n\t/**\n\t * Sets the background color of the Tab Container's content as `Solid`, `Transparent`, or `Translucent`.\n\t * @default \"Solid\"\n\t * @since 1.10.0\n\t * @public\n\t */\n\t@property()\n\tcontentBackgroundDesign: `${BackgroundDesign}` = \"Solid\";\n\n\t/**\n\t * Defines the placement of the tab strip relative to the actual tabs' content.\n\t *\n\t * **Note:** By default the tab strip is displayed above the tabs' content area and this is the recommended\n\t * layout for most scenarios. Set to `Bottom` only when the component is at the\n\t * bottom of the page and you want the tab strip to act as a menu.\n\t * @default \"Top\"\n\t * @since 1.0.0-rc.7\n\t * @private\n\t */\n\t@property()\n\ttabsPlacement: `${TabContainerTabsPlacement}` = \"Top\";\n\n\t/**\n\t * Defines the current media query size.\n\t * @private\n\t */\n\t@property()\n\tmediaRange?: string;\n\n\t@property({ type: Object })\n\t_selectedTab?: Tab;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_animationRunning = false;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_contentCollapsed = false;\n\n\t@property({ noAttribute: true })\n\t_startOverflowText = \"0\"\n\n\t@property({ noAttribute: true })\n\t_endOverflowText = \"More\";\n\n\t@property({ type: Array })\n\t_popoverItemsFlat: Array<ITab> = [];\n\n\t@property({ type: Number, noAttribute: true })\n\t_width?: number;\n\n\t/**\n\t * Defines the tabs.\n\t *\n\t * **Note:** Use `ui5-tab` and `ui5-tab-separator` for the intended design.\n\t * @public\n\t */\n\t@slot({\n\t\t\"default\": true,\n\t\ttype: HTMLElement,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: true,\n\t\t\tslots: true,\n\t\t},\n\t})\n\titems!: Array<ITab>;\n\n\t/**\n\t * Defines the button which will open the overflow menu. If nothing is provided to this slot,\n\t * the default button will be used.\n\t * @public\n\t * @since 1.0.0-rc.9\n\t */\n\t@slot()\n\toverflowButton!: Array<IButton>;\n\n\t/**\n\t * Defines the button which will open the start overflow menu if available. If nothing is provided to this slot,\n\t * the default button will be used.\n\t * @public\n\t * @since 1.1.0\n\t */\n\t@slot()\n\tstartOverflowButton!: Array<IButton>;\n\n\t_itemNavigation: ItemNavigation;\n\t_itemsFlat: Array<ITab> = [];\n\tresponsivePopover?: ResponsivePopover;\n\t_hasScheduledPopoverOpen = false;\n\t_handleResizeBound: () => void;\n\t_setDraggedElement?: SetDraggedElementFunction;\n\n\tstatic registerTabStyles(styles: StyleData) {\n\t\ttabStyles.push(styles);\n\t}\n\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._handleResizeBound = this._handleResize.bind(this);\n\n\t\t// Init ItemNavigation\n\t\tthis._itemNavigation = new ItemNavigation(this, {\n\t\t\tgetItemsCallback: () => this._getFocusableRefs(),\n\t\t\tskipItemsSize: PAGE_UP_DOWN_SIZE,\n\t\t});\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._itemsFlat = this._flatten(this.items);\n\t\tif (!this._itemsFlat.length) {\n\t\t\treturn;\n\t\t}\n\n\t\t// update selected tab\n\t\tconst selectedTab = this._itemsFlat.find((tab): tab is Tab => !tab.isSeparator && (tab as Tab).selected);\n\n\t\tif (selectedTab) {\n\t\t\tthis._selectedTab = selectedTab;\n\t\t} else {\n\t\t\tthis._selectedTab = this._itemsFlat[0] as Tab;\n\t\t}\n\n\t\twalk(this.items, item => {\n\t\t\tif (!item.isSeparator) {\n\t\t\t\t(item as Tab)._selectedTabReference = this._selectedTab;\n\t\t\t}\n\t\t});\n\n\t\tthis._sendStripPresentationInfos(this.items);\n\n\t\tif (!this._animationRunning) {\n\t\t\tthis._contentCollapsed = this.collapsed;\n\t\t}\n\t}\n\n\tonAfterRendering() {\n\t\tif (!this.items.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._setItemsForStrip();\n\n\t\tif (!this.shadowRoot!.contains(document.activeElement)) {\n\t\t\tconst focusStart = this._getRootTab(this._selectedTab);\n\n\t\t\tif (focusStart) {\n\t\t\t\tthis._itemNavigation.setCurrentItem(focusStart);\n\t\t\t}\n\t\t}\n\n\t\tif (this.responsivePopover?.open) {\n\t\t\tconst popoverItems = this._getPopoverItemsFor(this._getPopoverOwner(this.responsivePopover.opener as HTMLElement));\n\n\t\t\tif (popoverItems.length) {\n\t\t\t\tthis._setPopoverItems(popoverItems);\n\t\t\t} else {\n\t\t\t\tthis._closePopover();\n\t\t\t}\n\t\t}\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this._getHeader(), this._handleResizeBound);\n\t\tDragRegistry.subscribe(this);\n\t\tthis._setDraggedElement = DragRegistry.addSelfManagedArea(this);\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this._getHeader(), this._handleResizeBound);\n\t\tDragRegistry.unsubscribe(this);\n\t\tDragRegistry.removeSelfManagedArea(this);\n\t\tthis._setDraggedElement = undefined;\n\t}\n\n\t_handleResize() {\n\t\tif (this.responsivePopover && this.responsivePopover.open) {\n\t\t\tthis._closePopover();\n\t\t}\n\n\t\t// invalidate\n\t\tthis._width = this.offsetWidth;\n\t\tthis._updateMediaRange(this._width);\n\t}\n\n\t_updateMediaRange(width: number) {\n\t\tthis.mediaRange = MediaRange.getCurrentRange(MediaRange.RANGESETS.RANGE_4STEPS, width);\n\t}\n\n\t_sendStripPresentationInfos(items: Array<ITab>) {\n\t\tconst setsize = this._getTabs().length;\n\t\tlet posinset = 1;\n\n\t\titems.forEach(item => {\n\t\t\tlet info: TabContainerStripInfo = {\n\t\t\t\tgetElementInStrip: () => this.getDomRef()!.querySelector<HTMLElement>(`[id=\"${item._id}\"]`)!,\n\t\t\t};\n\n\t\t\tif (!item.isSeparator) {\n\t\t\t\tinfo = {\n\t\t\t\t\t...info,\n\t\t\t\t\tisInline: this.tabLayout === TabLayout.Inline,\n\t\t\t\t\tmixedMode: this.mixedMode,\n\t\t\t\t\tposinset,\n\t\t\t\t\tsetsize,\n\t\t\t\t\tisTopLevelTab: items.some(i => i === item),\n\t\t\t\t};\n\n\t\t\t\tposinset++;\n\t\t\t}\n\n\t\t\titem.receiveStripInfo(info);\n\t\t});\n\t}\n\n\t_onHeaderFocusin(e: FocusEvent) {\n\t\tconst tab = getTabInStrip(e.target as HTMLElement);\n\n\t\tif (tab) {\n\t\t\tthis._itemNavigation.setCurrentItem(tab.realTabReference);\n\t\t}\n\t}\n\n\t_onDragStart(e: DragEvent) {\n\t\tif (!e.dataTransfer || !(e.target instanceof HTMLElement)) {\n\t\t\treturn;\n\t\t}\n\n\t\te.dataTransfer.dropEffect = \"move\";\n\t\te.dataTransfer.effectAllowed = \"move\";\n\n\t\tthis._setDraggedElement!((e.target as TabInStrip).realTabReference);\n\t}\n\n\t_onHeaderDragEnter(e: DragEvent) {\n\t\te.preventDefault();\n\t}\n\n\t@longDragOverHandler(\"[data-ui5-stable=overflow-start],[data-ui5-stable=overflow-end],[role=tab]\")\n\t_onHeaderDragOver(e: DragEvent, isLongDragOver: boolean) {\n\t\tif (!(e.target instanceof HTMLElement) || !e.target.closest(\"[data-ui5-stable=overflow-start],[data-ui5-stable=overflow-end],[role=tab],[role=separator]\")) {\n\t\t\tthis.dropIndicatorDOM!.targetReference = null;\n\t\t\treturn;\n\t\t}\n\n\t\tconst draggedElement = DragRegistry.getDraggedElement();\n\t\tconst closestPosition = findClosestPosition(\n\t\t\t[...this._getTabStrip().querySelectorAll<HTMLElement>(`[role=\"tab\"]:not([hidden])`)],\n\t\t\te.clientX,\n\t\t\tOrientation.Horizontal,\n\t\t);\n\t\tconst overflowButton = e.target.closest<HTMLElement>(\"[data-ui5-stable=overflow-start],[data-ui5-stable=overflow-end]\");\n\t\tlet popoverTarget = null;\n\n\t\tif (overflowButton) {\n\t\t\tpopoverTarget = overflowButton;\n\t\t\te.preventDefault();\n\t\t} else if (closestPosition) {\n\t\t\tconst dropTarget = (closestPosition.element as TabInStrip).realTabReference;\n\t\t\tlet placements = closestPosition.placements;\n\n\t\t\tif (dropTarget === draggedElement) {\n\t\t\t\tplacements = placements.filter(placement => placement !== MovePlacement.On);\n\t\t\t}\n\n\t\t\tconst acceptedPlacement = placements.find(placement => {\n\t\t\t\tconst dragOverPrevented = !this.fireEvent<TabContainerMoveEventDetail>(\"move-over\", {\n\t\t\t\t\tsource: {\n\t\t\t\t\t\telement: draggedElement!,\n\t\t\t\t\t},\n\t\t\t\t\tdestination: {\n\t\t\t\t\t\telement: dropTarget,\n\t\t\t\t\t\tplacement,\n\t\t\t\t\t},\n\t\t\t\t}, true);\n\n\t\t\t\tif (dragOverPrevented) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tthis.dropIndicatorDOM!.targetReference = closestPosition.element;\n\t\t\t\t\tthis.dropIndicatorDOM!.placement = placement;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t});\n\n\t\t\tif (acceptedPlacement === MovePlacement.On && (closestPosition.element as TabInStrip).realTabReference.items.length) {\n\t\t\t\tpopoverTarget = closestPosition.element;\n\t\t\t} else if (!acceptedPlacement) {\n\t\t\t\tthis.dropIndicatorDOM!.targetReference = null;\n\t\t\t}\n\t\t}\n\n\t\tif (popoverTarget && isLongDragOver) {\n\t\t\tthis._showPopoverAt(popoverTarget, false, true);\n\t\t} else {\n\t\t\tthis._closePopover();\n\t\t}\n\t}\n\n\t_onHeaderDrop(e: DragEvent) {\n\t\tif (e.target === this._getStartOverflowBtnDOM() || e.target === this._getEndOverflowBtnDOM()) {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\t\tconst draggedElement = DragRegistry.getDraggedElement()!;\n\n\t\tthis.fireEvent<TabContainerMoveEventDetail>(\"move\", {\n\t\t\tsource: {\n\t\t\t\telement: draggedElement,\n\t\t\t},\n\t\t\tdestination: {\n\t\t\t\telement: (this.dropIndicatorDOM!.targetReference as TabInStrip).realTabReference,\n\t\t\t\tplacement: this.dropIndicatorDOM!.placement,\n\t\t\t},\n\t\t});\n\n\t\tthis.dropIndicatorDOM!.targetReference = null;\n\t\tdraggedElement.focus();\n\t}\n\n\t_moveHeaderItem(tab: Tab, e: KeyboardEvent) {\n\t\tif (!tab.movable) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst headerItems = this.items.map(item => item.getDomRefInStrip())\n\t\t\t.filter((item): item is TabInStrip => !item?.hasAttribute(\"hidden\"));\n\t\tlet positions = findClosestPositionsByKey(headerItems, tab.getDomRefInStrip()!, e);\n\n\t\tpositions = positions.map(({ element, placement }) => {\n\t\t\twhile (element && (element as TabInStrip).realTabReference.hasAttribute(\"ui5-tab-separator\") && placement === MovePlacement.Before) {\n\t\t\t\telement = headerItems.at(headerItems.indexOf(element as TabInStrip) - 1) as HTMLElement;\n\t\t\t\tplacement = MovePlacement.After;\n\t\t\t}\n\n\t\t\twhile (element && (element as TabInStrip).realTabReference.hasAttribute(\"ui5-tab-separator\") && placement === MovePlacement.After) {\n\t\t\t\telement = headerItems.at(headerItems.indexOf(element as TabInStrip) + 1) as HTMLElement;\n\t\t\t\tplacement = MovePlacement.Before;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\telement,\n\t\t\t\tplacement,\n\t\t\t};\n\t\t});\n\n\t\tconst acceptedPosition = positions.find(({ element, placement }) => {\n\t\t\treturn !this.fireEvent<TabContainerMoveEventDetail>(\"move-over\", {\n\t\t\t\tsource: {\n\t\t\t\t\telement: tab,\n\t\t\t\t},\n\t\t\t\tdestination: {\n\t\t\t\t\telement: (element as TabInStrip).realTabReference,\n\t\t\t\t\tplacement,\n\t\t\t\t},\n\t\t\t}, true);\n\t\t});\n\n\t\tif (acceptedPosition) {\n\t\t\tthis.fireEvent<TabContainerMoveEventDetail>(\"move\", {\n\t\t\t\tsource: {\n\t\t\t\t\telement: tab,\n\t\t\t\t},\n\t\t\t\tdestination: {\n\t\t\t\t\telement: (acceptedPosition.element as TabInStrip).realTabReference,\n\t\t\t\t\tplacement: acceptedPosition.placement,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\ttab.focus();\n\t\t}\n\t}\n\n\t_onHeaderDragLeave(e: DragEvent) {\n\t\tif (e.relatedTarget instanceof Node && this.shadowRoot!.contains(e.relatedTarget)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.dropIndicatorDOM!.targetReference = null;\n\t}\n\n\t_onPopoverListMoveOver(e: CustomEvent<ListMoveEventDetail>) {\n\t\tconst { destination, source } = e.detail;\n\t\tconst draggedElement = DragRegistry.getDraggedElement()!;\n\t\tlet destinationElement: HTMLElement = (destination.element as TabInStrip | TabSeparatorInStrip).realTabReference;\n\n\t\t// workaround to simulate tree behavior\n\t\tif (e.detail.originalEvent instanceof KeyboardEvent) {\n\t\t\tconst realTabReference = (source.element as TabInOverflow).realTabReference;\n\t\t\tconst siblings = this._findSiblings(realTabReference);\n\t\t\tlet items = siblings;\n\n\t\t\tif (this.items.includes(realTabReference)) {\n\t\t\t\titems = siblings.filter(sibling => {\n\t\t\t\t\treturn ((e.target as List).items as Array<TabInOverflow>).some(el => el.realTabReference === sibling);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst nextPosition = findClosestPositionsByKey(items, realTabReference, e.detail.originalEvent);\n\t\t\tdestinationElement = nextPosition[0]?.element;\n\t\t}\n\n\t\tif (!destinationElement) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (destination.placement === MovePlacement.On && (destinationElement.hasAttribute(\"ui5-tab-separator\") || draggedElement === destinationElement)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (draggedElement !== destinationElement && draggedElement.contains(destinationElement)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst placementAccepted = !this.fireEvent<TabContainerMoveEventDetail>(\"move-over\", {\n\t\t\tsource: {\n\t\t\t\telement: draggedElement,\n\t\t\t},\n\t\t\tdestination: {\n\t\t\t\telement: destinationElement,\n\t\t\t\tplacement: destination.placement,\n\t\t\t},\n\t\t}, true);\n\n\t\tif (placementAccepted) {\n\t\t\te.preventDefault();\n\t\t} else {\n\t\t\tthis.dropIndicatorDOM!.targetReference = null;\n\t\t}\n\t}\n\n\t_onPopoverListMove(e: CustomEvent<ListMoveEventDetail>) {\n\t\tconst { destination, source } = e.detail;\n\t\tconst draggedElement = DragRegistry.getDraggedElement()!;\n\t\tlet destinationElement: HTMLElement = (destination.element as TabInStrip).realTabReference;\n\n\t\t// Workaround to simulate tree behavior\n\t\tif (e.detail.originalEvent instanceof KeyboardEvent) {\n\t\t\tconst realTabReference = (source.element as TabInOverflow).realTabReference;\n\t\t\tconst siblings = this._findSiblings(realTabReference);\n\t\t\tlet items = siblings;\n\n\t\t\tif (this.items.includes(realTabReference)) {\n\t\t\t\titems = siblings.filter(sibling => {\n\t\t\t\t\treturn ((e.target as List).items as Array<TabInOverflow>).some(el => el.realTabReference === sibling);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst nextPosition = findClosestPositionsByKey(items, realTabReference, e.detail.originalEvent);\n\t\t\tdestinationElement = nextPosition[0]?.element;\n\t\t}\n\n\t\tif (!destinationElement) {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\n\t\tthis.fireEvent<TabContainerMoveEventDetail>(\"move\", {\n\t\t\tsource: {\n\t\t\t\telement: draggedElement,\n\t\t\t},\n\t\t\tdestination: {\n\t\t\t\telement: destinationElement,\n\t\t\t\tplacement: destination.placement,\n\t\t\t},\n\t\t}, true);\n\n\t\tthis.dropIndicatorDOM!.targetReference = null;\n\t\tdraggedElement.focus();\n\t}\n\n\t_onPopoverListKeyDown(e: KeyboardEvent) {\n\t\tif (isCtrl(e)) {\n\t\t\tthis._setDraggedElement!((e.target as TabInOverflow).realTabReference);\n\t\t}\n\t}\n\n\tasync _onTabStripClick(e: Event) {\n\t\tconst tab = getTabInStrip(e.target as HTMLElement);\n\t\tif (!tab || tab.realTabReference.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\te.stopPropagation();\n\t\te.preventDefault();\n\n\t\tif ((e.target as HTMLElement).hasAttribute(\"ui5-button\")) {\n\t\t\tthis._onTabExpandButtonClick(e);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!tab.realTabReference.hasOwnContent && tab.realTabReference.tabs.length) {\n\t\t\tawait this._togglePopover(tab);\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis._onHeaderItemSelect(tab);\n\t}\n\n\tasync _onTabExpandButtonClick(e: Event) {\n\t\te.stopPropagation();\n\t\te.preventDefault();\n\n\t\tlet tabInstance: TabInStrip;\n\n\t\tif (isTabInStrip(e.target as HTMLElement)) {\n\t\t\ttabInstance = e.target as TabInStrip;\n\t\t} else {\n\t\t\ttabInstance = getTabInStrip(e.target as HTMLElement) as TabInStrip;\n\t\t}\n\n\t\tif (tabInstance) {\n\t\t\ttabInstance.focus();\n\t\t}\n\n\t\tlet opener = e.target as HTMLElement;\n\n\t\tif (e.type === \"keydown\" && !(e.target as TabInStrip).realTabReference.isSingleClickArea) {\n\t\t\topener = (e.target as TabInStrip).querySelector(\".ui5-tab-expand-button [ui5-button]\")!;\n\t\t}\n\n\t\t// if clicked between the expand button and the tab\n\t\tif (!tabInstance) {\n\t\t\tthis._onHeaderItemSelect(opener.parentElement as HTMLElement);\n\t\t\treturn;\n\t\t}\n\n\t\tawait this._togglePopover(opener, true);\n\t}\n\n\t_setPopoverInitialFocus() {\n\t\tconst selectedTabInOverflow = this._getSelectedTabInOverflow();\n\t\tconst tab = selectedTabInOverflow || this._getFirstFocusableItemInOverflow();\n\n\t\tthis.responsivePopover!.initialFocus = `${tab.realTabReference._id}-li`;\n\t}\n\n\t_getSelectedTabInOverflow() {\n\t\treturn <TabInOverflow>(<List> this.responsivePopover!.content[0]).items.find(item => {\n\t\t\treturn (<TabInOverflow>item).realTabReference && (<TabInOverflow>item).realTabReference.selected;\n\t\t});\n\t}\n\n\t_getFirstFocusableItemInOverflow() {\n\t\treturn <TabInOverflow>(<List> this.responsivePopover!.content[0]).items.find(item => item.classList.contains(\"ui5-tab-overflow-item\"));\n\t}\n\n\t_findTabInOverflow(realTab: ITab) {\n\t\tif (!this.responsivePopover!.open) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn ((this.responsivePopover!.content[0] as List).items as Array<TabInOverflow | TabSeparatorInOverflow>).find(item => item.realTabReference === realTab);\n\t}\n\n\t_onTabStripKeyDown(e: KeyboardEvent) {\n\t\tconst tab = getTabInStrip(e.target as HTMLElement);\n\t\tif (!tab) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isCtrl(e)) {\n\t\t\tthis._moveHeaderItem(tab.realTabReference, e);\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (tab.realTabReference.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tif (tab.realTabReference.isSingleClickArea) {\n\t\t\t\tthis._onTabStripClick(e);\n\t\t\t} else {\n\t\t\t\tthis._onHeaderItemSelect(tab);\n\t\t\t}\n\t\t}\n\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault(); // prevent scrolling\n\t\t}\n\n\t\tif (isDown(e) || isUp(e)) {\n\t\t\tif (tab.realTabReference.requiresExpandButton) {\n\t\t\t\tthis._onTabExpandButtonClick(e);\n\t\t\t}\n\t\t\tif (tab.realTabReference.isSingleClickArea) {\n\t\t\t\tthis._onTabStripClick(e);\n\t\t\t}\n\t\t}\n\t}\n\n\t_onTabStripKeyUp(e: KeyboardEvent) {\n\t\tconst tab = getTabInStrip(e.target as HTMLElement);\n\t\tif (!tab || tab.realTabReference.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t\tif (tab.realTabReference.isSingleClickArea) {\n\t\t\t\tthis._onTabStripClick(e);\n\t\t\t} else {\n\t\t\t\tthis._onHeaderItemSelect(tab);\n\t\t\t}\n\t\t}\n\t}\n\n\t_onHeaderItemSelect(tab: HTMLElement) {\n\t\tif (!tab.hasAttribute(\"disabled\")) {\n\t\t\tthis._onItemSelect(tab.id);\n\t\t}\n\t}\n\n\tasync _onOverflowListItemClick(e: CustomEvent<ListItemClickEventDetail>) {\n\t\te.preventDefault(); // cancel the item selection\n\n\t\tthis._onItemSelect(e.detail.item.id.slice(0, -3)); // strip \"-li\" from end of id\n\t\tthis._closePopover();\n\t\tawait renderFinished();\n\n\t\tconst selectedTopLevel = this._getRootTab(this._selectedTab);\n\t\tselectedTopLevel?.getDomRefInStrip()!.focus();\n\t}\n\n\t/**\n\t * Returns all slotted tabs and their subTabs in a flattened array.\n\t * The order of tabs is depth-first.\n\t *\n\t * @public\n\t * @default []\n\t */\n\tget allItems() : Array<ITab> {\n\t\treturn this._flatten(this.items);\n\t}\n\n\t_flatten(items: Array<ITab>) {\n\t\tconst result: Array<ITab> = [];\n\n\t\twalk(items, item => {\n\t\t\tif (item.hasAttribute(\"ui5-tab\") || item.hasAttribute(\"ui5-tab-separator\")) {\n\t\t\t\tresult.push(item);\n\t\t\t}\n\t\t});\n\n\t\treturn result;\n\t}\n\n\t_onItemSelect(selectedTabId: string) {\n\t\tconst selectedTabIndex = this._itemsFlat.findIndex(item => item.__id === selectedTabId);\n\t\tconst selectedTab = this._itemsFlat[selectedTabIndex] as Tab;\n\n\t\tconst selectionSuccessful = this.selectTab(selectedTab, selectedTabIndex);\n\t\tif (!selectionSuccessful) {\n\t\t\treturn;\n\t\t}\n\n\t\t// update selected property on all items\n\t\tthis._itemsFlat.forEach(item => {\n\t\t\tif (!item.isSeparator) {\n\t\t\t\t(item as Tab).selected = item === selectedTab;\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Fires the `tab-select` event and changes the internal reference for the currently selected tab.\n\t * If the event is prevented, the current tab is not changed.\n\t * @private\n\t * @param selectedTab selected tab instance\n\t * @param selectedTabIndex selected tab index for an array containing all tabs and sub tabs. **Note:** Use the method `allTabs` to get this array.\n\t * @returns true if the tab selection is successful, false if it was prevented\n\t */\n\tselectTab(selectedTab: Tab, selectedTabIndex: number) {\n\t\tif (!this.fireEvent<TabContainerTabSelectEventDetail>(\"tab-select\", { tab: selectedTab, tabIndex: selectedTabIndex }, true)) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// select the tab\n\t\tthis._selectedTab = selectedTab;\n\t\treturn true;\n\t}\n\n\tslideContentDown(element: HTMLElement) {\n\t\treturn slideDown(element).promise();\n\t}\n\n\tslideContentUp(element: HTMLElement) {\n\t\treturn slideUp(element).promise();\n\t}\n\n\tasync _onOverflowClick(e: Event) {\n\t\tif ((e.target as HTMLElement).classList.contains(\"ui5-tc__overflow\")) {\n\t\t\t// the empty area in the overflow was clicked\n\t\t\treturn;\n\t\t}\n\n\t\tconst overflow = e.currentTarget as HTMLElement;\n\t\tconst isEndOverflow = overflow.classList.contains(\"ui5-tc__overflow--end\");\n\t\tlet opener;\n\n\t\tif (isEndOverflow) {\n\t\t\topener = this.overflowButton[0] || this._getEndOverflowBtnDOM();\n\t\t} else {\n\t\t\topener = this.startOverflowButton[0] || this._getStartOverflowBtnDOM();\n\t\t}\n\n\t\tawait this._togglePopover(opener, true);\n\t}\n\n\t_sendOverflowPresentationInfos(items: Array<ITab>) {\n\t\tconst extraIndent = items\n\t\t\t.filter((item): item is Tab => !item.isSeparator)\n\t\t\t.some(tab => tab.design !== SemanticColor.Default && tab.design !== SemanticColor.Neutral);\n\n\t\twalk(items, (item, level) => {\n\t\t\titem.receiveOverflowInfo({\n\t\t\t\tgetElementInOverflow: () => {\n\t\t\t\t\treturn this._findTabInOverflow(item);\n\t\t\t\t},\n\t\t\t\tstyle: {\n\t\t\t\t\t[getScopedVarName(\"--_ui5-tab-indentation-level\")]: item.isSeparator ? level + 1 : level,\n\t\t\t\t\t[getScopedVarName(\"--_ui5-tab-extra-indent\")]: extraIndent ? 1 : null,\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t}\n\n\tasync _onOverflowKeyDown(e: KeyboardEvent) {\n\t\tconst overflow = e.currentTarget as HTMLElement;\n\t\tconst isEndOverflow = overflow.classList.contains(\"ui5-tc__overflow--end\");\n\t\tconst isStartOverflow = overflow.classList.contains(\"ui5-tc__overflow--start\");\n\n\t\tif (isDown(e) || (isStartOverflow && isLeft(e)) || (isEndOverflow && isRight(e))) {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t\tawait this._onOverflowClick(e);\n\t\t}\n\t}\n\n\t_setItemsForStrip() {\n\t\tconst tabStrip = this._getTabStrip();\n\t\tlet allItemsWidth = 0;\n\n\t\tif (!this._selectedTab) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst itemsDomRefs = this.items.map(item => item.getDomRefInStrip()) as Array<TabInStrip | TabSeparatorInStrip>;\n\n\t\t// make sure the overflows are hidden\n\t\tthis._getStartOverflow().setAttribute(\"hidden\", \"\");\n\t\tthis._getEndOverflow().setAttribute(\"hidden\", \"\");\n\n\t\t// show all tabs\n\t\tfor (let i = 0; i < itemsDomRefs.length; i++) {\n\t\t\titemsDomRefs[i].removeAttribute(\"hidden\");\n\t\t\titemsDomRefs[i].removeAttribute(\"start-overflow\");\n\t\t\titemsDomRefs[i].removeAttribute(\"end-overflow\");\n\t\t}\n\n\t\titemsDomRefs.forEach(item => {\n\t\t\tallItemsWidth += this._getItemWidth(item);\n\t\t});\n\n\t\tconst hasOverflow = tabStrip.offsetWidth < allItemsWidth;\n\t\tif (!hasOverflow) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.isModeStartAndEnd) {\n\t\t\tthis._updateStartAndEndOverflow(itemsDomRefs);\n\t\t\tthis._updateOverflowCounters();\n\t\t} else {\n\t\t\tthis._updateEndOverflow(itemsDomRefs);\n\t\t}\n\t}\n\n\t_getRootTab(tab: Tab | undefined) {\n\t\twhile (tab?.hasAttribute(\"ui5-tab\")) {\n\t\t\tif (tab.parentElement!.hasAttribute(\"ui5-tabcontainer\")) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\ttab = tab.parentElement as Tab;\n\t\t}\n\n\t\treturn tab;\n\t}\n\n\t_updateEndOverflow(itemsDomRefs: Array<TabInStrip | TabSeparatorInStrip>) {\n\t\t// show end overflow\n\t\tthis._getEndOverflow().removeAttribute(\"hidden\");\n\t\tconst selectedTab = this._getRootTab(this._selectedTab);\n\t\tconst selectedTabDomRef = selectedTab?.getDomRefInStrip() as TabInStrip | undefined;\n\t\tconst containerWidth = this._getTabStrip().offsetWidth;\n\n\t\tconst selectedItemIndexAndWidth = this._getSelectedItemIndexAndWidth(itemsDomRefs, selectedTabDomRef);\n\t\tconst lastVisibleTabIndex = this._findLastVisibleItem(itemsDomRefs, containerWidth, selectedItemIndexAndWidth.width);\n\n\t\tfor (let i = lastVisibleTabIndex + 1; i < itemsDomRefs.length; i++) {\n\t\t\titemsDomRefs[i].setAttribute(\"hidden\", \"\");\n\t\t\titemsDomRefs[i].setAttribute(\"end-overflow\", \"\");\n\t\t}\n\n\t\tthis._endOverflowText = this.overflowButtonText;\n\t}\n\n\t_updateStartAndEndOverflow(itemsDomRefs: Array<TabInStrip | TabSeparatorInStrip>) {\n\t\tlet containerWidth = this._getTabStrip().offsetWidth;\n\t\tconst selectedTab = this._getRootTab(this._selectedTab);\n\t\tconst selectedTabDomRef = selectedTab?.getDomRefInStrip() as TabInStrip | undefined;\n\t\tconst selectedItemIndexAndWidth = this._getSelectedItemIndexAndWidth(itemsDomRefs, selectedTabDomRef);\n\t\tconst hasStartOverflow = this._hasStartOverflow(containerWidth, itemsDomRefs, selectedItemIndexAndWidth);\n\t\tconst hasEndOverflow = this._hasEndOverflow(containerWidth, itemsDomRefs, selectedItemIndexAndWidth);\n\t\tlet firstVisible;\n\t\tlet lastVisible;\n\n\t\t// has \"end\", but no \"start\" overflow\n\t\tif (!hasStartOverflow) {\n\t\t\t// show \"end\" overflow\n\t\t\tthis._getEndOverflow().removeAttribute(\"hidden\");\n\t\t\t// width is changed\n\t\t\tcontainerWidth = this._getTabStrip().offsetWidth;\n\n\t\t\tlastVisible = this._findLastVisibleItem(itemsDomRefs, containerWidth, selectedItemIndexAndWidth.width);\n\n\t\t\tfor (let i = lastVisible + 1; i < itemsDomRefs.length; i++) {\n\t\t\t\titemsDomRefs[i].setAttribute(\"hidden\", \"\");\n\t\t\t\titemsDomRefs[i].setAttribute(\"end-overflow\", \"\");\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// has \"start\", but no \"end\" overflow\n\t\tif (!hasEndOverflow) {\n\t\t\t// show \"start\" overflow\n\t\t\tthis._getStartOverflow().removeAttribute(\"hidden\");\n\t\t\t// width is changed\n\t\t\tcontainerWidth = this._getTabStrip().offsetWidth;\n\n\t\t\tfirstVisible = this._findFirstVisibleItem(itemsDomRefs, containerWidth, selectedItemIndexAndWidth.width);\n\n\t\t\tfor (let i = firstVisible - 1; i >= 0; i--) {\n\t\t\t\titemsDomRefs[i].setAttribute(\"hidden\", \"\");\n\t\t\t\titemsDomRefs[i].setAttribute(\"start-overflow\", \"\");\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// show \"start\" overflow\n\t\tthis._getStartOverflow().removeAttribute(\"hidden\");\n\t\t// show \"end\" overflow\n\t\tthis._getEndOverflow().removeAttribute(\"hidden\");\n\t\t// width is changed\n\t\tcontainerWidth = this._getTabStrip().offsetWidth;\n\n\t\tfirstVisible = this._findFirstVisibleItem(itemsDomRefs, containerWidth, selectedItemIndexAndWidth.width, selectedItemIndexAndWidth.index - 1);\n\t\tlastVisible = this._findLastVisibleItem(itemsDomRefs, containerWidth, selectedItemIndexAndWidth.width, firstVisible);\n\n\t\tfor (let i = firstVisible - 1; i >= 0; i--) {\n\t\t\titemsDomRefs[i].setAttribute(\"hidden\", \"\");\n\t\t\titemsDomRefs[i].setAttribute(\"start-overflow\", \"\");\n\t\t}\n\n\t\tfor (let i = lastVisible + 1; i < itemsDomRefs.length; i++) {\n\t\t\titemsDomRefs[i].setAttribute(\"hidden\", \"\");\n\t\t\titemsDomRefs[i].setAttribute(\"end-overflow\", \"\");\n\t\t}\n\t}\n\n\t_hasStartOverflow(containerWidth: number, itemsDomRefs: Array<TabInStrip | TabSeparatorInStrip>, selectedItemIndexAndWidth: { width: number; index: number}) {\n\t\tif (selectedItemIndexAndWidth.index === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet leftItemsWidth = 0;\n\n\t\tfor (let i = selectedItemIndexAndWidth.index - 1; i >= 0; i--) {\n\t\t\tleftItemsWidth += this._getItemWidth(itemsDomRefs[i]);\n\t\t}\n\n\t\tlet hasStartOverflow = containerWidth < leftItemsWidth + selectedItemIndexAndWidth.width;\n\n\t\t// if there is no \"start\" overflow, it has \"end\" overflow\n\t\t// check it again with the \"end\" overflow\n\t\tif (!hasStartOverflow) {\n\t\t\tthis._getEndOverflow().removeAttribute(\"hidden\");\n\t\t\tcontainerWidth = this._getTabStrip().offsetWidth;\n\t\t\thasStartOverflow = containerWidth < leftItemsWidth + selectedItemIndexAndWidth.width;\n\t\t\tthis._getEndOverflow().setAttribute(\"hidden\", \"\");\n\t\t}\n\n\t\treturn hasStartOverflow;\n\t}\n\n\t_hasEndOverflow(containerWidth: number, itemsDomRefs: Array<TabInStrip | TabSeparatorInStrip>, selectedItemIndexAndWidth: { width: number; index: number}) {\n\t\tif (selectedItemIndexAndWidth.index >= itemsDomRefs.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet rightItemsWidth = 0;\n\n\t\tfor (let i = selectedItemIndexAndWidth.index; i < itemsDomRefs.length; i++) {\n\t\t\trightItemsWidth += this._getItemWidth(itemsDomRefs[i]);\n\t\t}\n\n\t\tlet hasEndOverflow = containerWidth < rightItemsWidth + selectedItemIndexAndWidth.width;\n\n\t\t// if there is no \"end\" overflow, it has \"start\" overflow\n\t\t// check it again with the \"start\" overflow\n\t\tif (!hasEndOverflow) {\n\t\t\tthis._getStartOverflow().removeAttribute(\"hidden\");\n\t\t\tcontainerWidth = this._getTabStrip().offsetWidth;\n\t\t\thasEndOverflow = containerWidth < rightItemsWidth + selectedItemIndexAndWidth.width;\n\t\t\tthis._getStartOverflow().setAttribute(\"hidden\", \"\");\n\t\t}\n\n\t\treturn hasEndOverflow;\n\t}\n\n\t_getItemWidth(itemDomRef: HTMLElement) {\n\t\tconst styles = window.getComputedStyle(itemDomRef);\n\t\tconst margins = Number.parseInt(styles.marginLeft) + Number.parseInt(styles.marginRight);\n\n\t\treturn itemDomRef.offsetWidth + margins;\n\t}\n\n\t_getSelectedItemIndexAndWidth(itemsDomRefs: Array<TabInStrip | TabSeparatorInStrip>, selectedTabDomRef: TabInStrip | undefined) {\n\t\tif (!selectedTabDomRef) {\n\t\t\treturn {\n\t\t\t\tindex: 0,\n\t\t\t\twidth: 0,\n\t\t\t};\n\t\t}\n\n\t\tlet index = itemsDomRefs.indexOf(selectedTabDomRef);\n\t\tlet width = selectedTabDomRef.offsetWidth;\n\t\tlet selectedSeparator;\n\n\t\tif (itemsDomRefs[index - 1] && itemsDomRefs[index - 1].realTabReference.isSeparator) {\n\t\t\tselectedSeparator = itemsDomRefs[index - 1];\n\t\t\twidth += this._getItemWidth(selectedSeparator);\n\t\t}\n\n\t\titemsDomRefs.splice(index, 1);\n\n\t\t// if previous item is a separator - remove it\n\t\tif (selectedSeparator) {\n\t\t\titemsDomRefs.splice(index - 1, 1);\n\t\t\tindex--;\n\t\t}\n\n\t\treturn {\n\t\t\tindex,\n\t\t\twidth,\n\t\t};\n\t}\n\n\t_findFirstVisibleItem(itemsDomRefs: Array<TabInStrip | TabSeparatorInStrip>, containerWidth: number, selectedItemWidth: number, startIndex?: number) {\n\t\tif (startIndex === undefined) {\n\t\t\tstartIndex = itemsDomRefs.length - 1;\n\t\t}\n\n\t\tlet lastVisible = startIndex + 1;\n\n\t\tfor (let index = startIndex; index >= 0; index--) {\n\t\t\tconst itemWidth = this._getItemWidth(itemsDomRefs[index]);\n\n\t\t\tif (containerWidth < selectedItemWidth + itemWidth) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tselectedItemWidth += itemWidth;\n\t\t\tlastVisible = index;\n\t\t}\n\n\t\treturn lastVisible;\n\t}\n\n\t_findLastVisibleItem(itemsDomRefs: Array<TabInStrip | TabSeparatorInStrip>, containerWidth: number, selectedItemWidth: number, startIndex = 0) {\n\t\tlet lastVisibleIndex = startIndex - 1;\n\t\tlet index = startIndex;\n\n\t\tfor (; index < itemsDomRefs.length; index++) {\n\t\t\tconst itemWidth = this._getItemWidth(itemsDomRefs[index]);\n\n\t\t\tif (containerWidth < selectedItemWidth + itemWidth) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tselectedItemWidth += itemWidth;\n\t\t\tlastVisibleIndex = index;\n\t\t}\n\n\t\t// if prev item is separator - hide it\n\t\tconst prevItem = itemsDomRefs[index - 1];\n\t\tif (prevItem && prevItem.realTabReference.isSeparator) {\n\t\t\tlastVisibleIndex -= 1;\n\t\t}\n\n\t\treturn lastVisibleIndex;\n\t}\n\n\tget isModeStartAndEnd() {\n\t\treturn this.overflowMode === OverflowMode.StartAndEnd;\n\t}\n\n\t_updateOverflowCounters() {\n\t\tlet startOverflowItemsCount = 0;\n\t\tlet endOverflowItemsCount = 0;\n\n\t\tthis._getTabs()\n\t\t\t.map(tab => tab.getDomRefInStrip()!)\n\t\t\t.forEach(tab => {\n\t\t\t\tif (tab.hasAttribute(\"start-overflow\")) {\n\t\t\t\t\tstartOverflowItemsCount++;\n\t\t\t\t}\n\n\t\t\t\tif (tab.hasAttribute(\"end-overflow\")) {\n\t\t\t\t\tendOverflowItemsCount++;\n\t\t\t\t}\n\t\t\t});\n\n\t\tthis._startOverflowText = `+${startOverflowItemsCount}`;\n\t\tthis._endOverflowText = `+${endOverflowItemsCount}`;\n\t}\n\n\t_getFocusableRefs() {\n\t\tif (!this.getDomRef()) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst focusableRefs = [];\n\n\t\tif (!this._getStartOverflow().hasAttribute(\"hidden\")) {\n\t\t\tfocusableRefs.push(this.startOverflowButton[0] || this._getStartOverflowBtnDOM());\n\t\t}\n\n\t\tthis._getTabs().forEach(tab => {\n\t\t\tconst ref = tab.getDomRefInStrip();\n\t\t\tconst focusable = ref && !ref.hasAttribute(\"hidden\");\n\n\t\t\tif (focusable) {\n\t\t\t\tfocusableRefs.push(tab);\n\t\t\t}\n\t\t});\n\n\t\tif (!this._getEndOverflow().hasAttribute(\"hidden\")) {\n\t\t\tfocusableRefs.push(this.overflowButton[0] || this._getEndOverflowBtnDOM());\n\t\t}\n\n\t\treturn focusableRefs;\n\t}\n\n\t_getHeader() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(`#${this._id}-header`)!;\n\t}\n\n\t_getTabs(): Array<Tab> {\n\t\treturn this.items.filter((item): item is Tab => !item.isSeparator);\n\t}\n\n\t_getPopoverOwner(opener: HTMLElement): TabContainerPopoverOwner {\n\t\tif (opener === this._getStartOverflowBtnDOM() || opener.slot === \"startOverflowButton\") {\n\t\t\treturn \"start-overflow\";\n\t\t}\n\n\t\tif (opener === this._getEndOverflowBtnDOM() || opener.slot === \"overflowButton\") {\n\t\t\treturn \"end-overflow\";\n\t\t}\n\n\t\treturn getTabInStrip(opener) as TabInStrip;\n\t}\n\n\t_getPopoverItemsFor(targetOwner: TabContainerPopoverOwner) {\n\t\tif (targetOwner === \"start-overflow\") {\n\t\t\treturn this.items.filter(item => {\n\t\t\t\tconst stripRef = item.getDomRefInStrip();\n\n\t\t\t\treturn stripRef && stripRef.hasAttribute(\"start-overflow\");\n\t\t\t});\n\t\t}\n\n\t\tif (targetOwner === \"end-overflow\") {\n\t\t\treturn this.items.filter(item => {\n\t\t\t\tconst stripRef = item.getDomRefInStrip();\n\n\t\t\t\treturn stripRef && stripRef.hasAttribute(\"end-overflow\");\n\t\t\t});\n\t\t}\n\n\t\treturn targetOwner.realTabReference.items;\n\t}\n\n\t_setPopoverItems(items: Array<ITab>) {\n\t\tthis._sendOverflowPresentationInfos(items);\n\t\tconst newItemsFlat = this._flatten(items);\n\n\t\tif (!arraysAreEqual(this._popoverItemsFlat, newItemsFlat)) {\n\t\t\tthis._popoverItemsFlat = newItemsFlat;\n\t\t}\n\t}\n\n\tasync _togglePopover(opener: HTMLElement, setInitialFocus = false) {\n\t\tthis.responsivePopover = await this._respPopover();\n\n\t\tif (this.responsivePopover.open) {\n\t\t\tthis._closePopover();\n\t\t} else {\n\t\t\tawait this._showPopoverAt(opener, setInitialFocus);\n\t\t}\n\t}\n\n\tasync _showPopoverAt(opener: HTMLElement, setInitialFocus = false, preventInitialFocus = false) {\n\t\tthis._hasScheduledPopoverOpen = true;\n\t\tthis._setPopoverItems(this._getPopoverItemsFor(this._getPopoverOwner(opener)));\n\t\tthis.responsivePopover = await this._respPopover();\n\n\t\tif (setInitialFocus) {\n\t\t\tthis._setPopoverInitialFocus();\n\t\t}\n\n\t\tif (this._hasScheduledPopoverOpen) {\n\t\t\tthis.responsivePopover.preventInitialFocus = preventInitialFocus;\n\t\t\tthis.responsivePopover.opener = opener;\n\t\t\tthis.responsivePopover.open = true;\n\t\t}\n\t}\n\n\tget hasItems(): boolean {\n\t\tconst tabs = this._getTabs();\n\n\t\tfor (let i = 0; i < tabs.length; i++) {\n\t\t\tif (tabs[i].items.length > 0) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t_getTabStrip() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(`#${this._id}-tabStrip`)!;\n\t}\n\n\t_getStartOverflow() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-tc__overflow--start\")!;\n\t}\n\n\t_getEndOverflow() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-tc__overflow--end\")!;\n\t}\n\n\t_getStartOverflowBtnDOM() {\n\t\treturn this._getStartOverflow().querySelector<Button>(\"[ui5-button]\");\n\t}\n\n\t_getEndOverflowBtnDOM() {\n\t\treturn this._getEndOverflow().querySelector<Button>(\"[ui5-button]\");\n\t}\n\n\tasync _respPopover() {\n\t\tawait renderFinished();\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(`#${this._id}-overflowMenu`)!;\n\t}\n\n\t_closePopover() {\n\t\tthis._hasScheduledPopoverOpen = false;\n\t\tif (this.responsivePopover) {\n\t\t\tthis.responsivePopover.open = false;\n\t\t}\n\t}\n\n\tget dropIndicatorDOM(): DropIndicator | null {\n\t\treturn this.shadowRoot!.querySelector(\"[ui5-drop-indicator]\");\n\t}\n\n\t_findSiblings(tab: Tab) {\n\t\tlet parent: Tab;\n\n\t\twalk(this.items, item => {\n\t\t\tif (item.items && item.items.includes(tab)) {\n\t\t\t\tparent = item as Tab;\n\t\t\t}\n\t\t});\n\n\t\treturn (parent! ?? this).items;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\troot: {\n\t\t\t\t\"ui5-tc-root\": true,\n\t\t\t\t\"ui5-tc--textOnly\": this.textOnly,\n\t\t\t\t\"ui5-tc--withAdditionalText\": this.withAdditionalText,\n\t\t\t\t\"ui5-tc--standardTabLayout\": this.standardTabLayout,\n\t\t\t},\n\t\t\theader: {\n\t\t\t\t\"ui5-tc__header\": true,\n\t\t\t},\n\t\t\ttabStrip: {\n\t\t\t\t\"ui5-tc__tabStrip\": true,\n\t\t\t},\n\t\t\tseparator: {\n\t\t\t\t\"ui5-tc__separator\": true,\n\t\t\t},\n\t\t\tcontent: {\n\t\t\t\t\"ui5-tc__content\": true,\n\t\t\t\t\"ui5-tc__content--collapsed\": this._contentCollapsed,\n\t\t\t},\n\t\t};\n\t}\n\n\tget mixedMode() {\n\t\tconst tabs = this._getTabs();\n\n\t\treturn tabs.some(item => item.icon) && tabs.some(item => item.text);\n\t}\n\n\tget textOnly() {\n\t\treturn this._getTabs().every(item => !item.icon);\n\t}\n\n\tget withAdditionalText() {\n\t\treturn this._getTabs().some(item => !!item.additionalText);\n\t}\n\n\tget standardTabLayout() {\n\t\treturn this.tabLayout === TabLayout.Standard;\n\t}\n\n\tget previousIconACCName() {\n\t\treturn TabContainer.i18nBundle.getText(TABCONTAINER_PREVIOUS_ICON_ACC_NAME);\n\t}\n\n\tget nextIconACCName() {\n\t\treturn TabContainer.i18nBundle.getText(TABCONTAINER_NEXT_ICON_ACC_NAME);\n\t}\n\n\tget overflowMenuTitle() {\n\t\treturn TabContainer.i18nBundle.getText(TABCONTAINER_OVERFLOW_MENU_TITLE);\n\t}\n\n\tget tabsAtTheBottom() {\n\t\treturn this.tabsPlacement === TabContainerTabsPlacement.Bottom;\n\t}\n\n\tget overflowMenuIcon() {\n\t\treturn this.tabsAtTheBottom ? \"slim-arrow-up\" : \"slim-arrow-down\";\n\t}\n\n\tget overflowButtonText() {\n\t\treturn TabContainer.i18nBundle.getText(TABCONTAINER_END_OVERFLOW);\n\t}\n\n\tget popoverCancelButtonText() {\n\t\treturn TabContainer.i18nBundle.getText(TABCONTAINER_POPOVER_CANCEL_BUTTON);\n\t}\n\n\tget accInvisibleText() {\n\t\treturn TabContainer.i18nBundle.getText(TABCONTAINER_SUBTABS_DESCRIPTION);\n\t}\n\n\tget overflowBtnAccessibilityAttributes(): Pick<AccessibilityAttributes, \"hasPopup\"> {\n\t\treturn {\n\t\t\thasPopup: \"menu\",\n\t\t};\n\t}\n\n\tget tablistAriaDescribedById() {\n\t\treturn this.hasItems ? `${this._id}-invisibleText` : undefined;\n\t}\n\n\tstatic async onDefine() {\n\t\tTabContainer.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n}\n\nconst isTabInStrip = (el: HTMLElement) => el.localName === \"div\" && el.getAttribute(\"role\") === \"tab\";\n\nconst getTabInStrip = (el: HTMLElement | null) => {\n\twhile (el) {\n\t\tif (isTabInStrip(el)) {\n\t\t\treturn el as TabInStrip;\n\t\t}\n\n\t\tel = el.parentElement;\n\t}\n\n\treturn false;\n};\n\nconst _walk = (items: Array<ITab>, callback: (arg0: ITab, arg1: number) => void, level: number) => {\n\t[...items].forEach(item => {\n\t\tcallback(item, level);\n\t\tif (item.hasAttribute(\"ui5-tab\") && item.items) {\n\t\t\t_walk(item.items, callback, level + 1);\n\t\t}\n\t});\n};\n\nconst walk = (items: Array<ITab>, callback: (arg0: ITab, arg1: number) => void) => {\n\t_walk(items, callback, 0);\n};\n\nTabContainer.define();\n\nexport default TabContainer;\nexport type {\n\tTabContainerTabSelectEventDetail,\n\tTabContainerMoveEventDetail,\n\tTabContainerStripInfo,\n\tTabContainerOverflowInfo,\n\tITab,\n};\n"]}
@@ -1 +1 @@
1
- :host(:not([hidden])){display:inline-block;box-sizing:border-box;position:relative;font-family:"72override",var(--sapFontFamily)}:host(:not([hidden]).ui5_hovered){opacity:.7}:host([interactive]:not([disabled])){cursor:pointer}:host([interactive]:not([hidden]):active){background-color:var(--sapButton_Active_Background);border-color:var(--sapButton_Active_BorderColor);color:var(--sapButton_Active_TextColor)}:host([interactive]:not([hidden]):not([disabled]):not(:active):hover){box-shadow:var(--ui5-v2-3-0-rc-0-avatar-hover-box-shadow-offset)}:host([interactive][desktop]:not([hidden])) .ui5-avatar-root:focus,:host([interactive]:not([hidden])) .ui5-avatar-root:focus-visible{outline:var(--_ui5-v2-3-0-rc-0_avatar_outline);outline-offset:var(--_ui5-v2-3-0-rc-0_avatar_focus_offset)}:host([disabled]){opacity:var(--sapContent_DisabledOpacity)}:host{height:3rem;width:3rem;border-radius:50%;border:var(--ui5-v2-3-0-rc-0-avatar-initials-border);outline:none;color:var(--ui5-v2-3-0-rc-0-avatar-initials-color)}.ui5-avatar-root{display:flex;align-items:center;justify-content:center;outline:none;height:100%;width:100%;border-radius:inherit}:host([_size="XS"]),:host([size="XS"]){height:2rem;width:2rem;min-height:2rem;min-width:2rem;font-size:var(--_ui5-v2-3-0-rc-0_avatar_fontsize_XS)}:host(:not([size])),:host([_size="S"]),:host([size="S"]){min-height:3rem;min-width:3rem;font-size:var(--_ui5-v2-3-0-rc-0_avatar_fontsize_S)}:host([_size="M"]),:host([size="M"]){min-height:4rem;min-width:4rem;font-size:var(--_ui5-v2-3-0-rc-0_avatar_fontsize_M)}:host([_size="L"]),:host([size="L"]){min-height:5rem;min-width:5rem;font-size:var(--_ui5-v2-3-0-rc-0_avatar_fontsize_L)}:host([_size="XL"]),:host([size="XL"]){min-height:7rem;min-width:7rem;font-size:var(--_ui5-v2-3-0-rc-0_avatar_fontsize_XL)}:host .ui5-avatar-icon{height:var(--_ui5-v2-3-0-rc-0_avatar_fontsize_S);width:var(--_ui5-v2-3-0-rc-0_avatar_fontsize_S);color:inherit}:host([_size="XS"]) .ui5-avatar-icon,:host([size="XS"]) .ui5-avatar-icon{height:var(--_ui5-v2-3-0-rc-0_avatar_icon_XS);width:var(--_ui5-v2-3-0-rc-0_avatar_icon_XS)}:host([_size="S"]) .ui5-avatar-icon,:host([size="S"]) .ui5-avatar-icon{height:var(--_ui5-v2-3-0-rc-0_avatar_icon_S);width:var(--_ui5-v2-3-0-rc-0_avatar_icon_S)}:host([_size="M"]) .ui5-avatar-icon,:host([size="M"]) .ui5-avatar-icon{height:var(--_ui5-v2-3-0-rc-0_avatar_icon_M);width:var(--_ui5-v2-3-0-rc-0_avatar_icon_M)}:host([_size="L"]) .ui5-avatar-icon,:host([size="L"]) .ui5-avatar-icon{height:var(--_ui5-v2-3-0-rc-0_avatar_icon_L);width:var(--_ui5-v2-3-0-rc-0_avatar_icon_L)}:host([_size="XL"]) .ui5-avatar-icon,:host([size="XL"]) .ui5-avatar-icon{height:var(--_ui5-v2-3-0-rc-0_avatar_icon_XL);width:var(--_ui5-v2-3-0-rc-0_avatar_icon_XL)}::slotted(*){border-radius:50%;width:100%;height:100%;pointer-events:none}:host([shape="Square"]){border-radius:var(--ui5-v2-3-0-rc-0-avatar-border-radius)}:host([shape="Square"]) ::slotted(*){border-radius:calc(var(--ui5-v2-3-0-rc-0-avatar-border-radius) - var(--ui5-v2-3-0-rc-0-avatar-border-radius-img-deduction))}:host(:not([color-scheme])),:host(:not([_has-image])),:host([_color-scheme="Accent6"]),:host([ui5-avatar][color-scheme="Accent6"]){background-color:var(--ui5-v2-3-0-rc-0-avatar-accent6);color:var(--ui5-v2-3-0-rc-0-avatar-accent6-color);border-color:var(--ui5-v2-3-0-rc-0-avatar-accent6-border-color)}:host([_color-scheme="Accent1"]),:host([ui5-avatar][color-scheme="Accent1"]){background-color:var(--ui5-v2-3-0-rc-0-avatar-accent1);color:var(--ui5-v2-3-0-rc-0-avatar-accent1-color);border-color:var(--ui5-v2-3-0-rc-0-avatar-accent1-border-color)}:host([_color-scheme="Accent2"]),:host([ui5-avatar][color-scheme="Accent2"]){background-color:var(--ui5-v2-3-0-rc-0-avatar-accent2);color:var(--ui5-v2-3-0-rc-0-avatar-accent2-color);border-color:var(--ui5-v2-3-0-rc-0-avatar-accent2-border-color)}:host([_color-scheme="Accent3"]),:host([ui5-avatar][color-scheme="Accent3"]){background-color:var(--ui5-v2-3-0-rc-0-avatar-accent3);color:var(--ui5-v2-3-0-rc-0-avatar-accent3-color);border-color:var(--ui5-v2-3-0-rc-0-avatar-accent3-border-color)}:host([_color-scheme="Accent4"]),:host([ui5-avatar][color-scheme="Accent4"]){background-color:var(--ui5-v2-3-0-rc-0-avatar-accent4);color:var(--ui5-v2-3-0-rc-0-avatar-accent4-color);border-color:var(--ui5-v2-3-0-rc-0-avatar-accent4-border-color)}:host([_color-scheme="Accent5"]),:host([ui5-avatar][color-scheme="Accent5"]){background-color:var(--ui5-v2-3-0-rc-0-avatar-accent5);color:var(--ui5-v2-3-0-rc-0-avatar-accent5-color);border-color:var(--ui5-v2-3-0-rc-0-avatar-accent5-border-color)}:host([_color-scheme="Accent7"]),:host([ui5-avatar][color-scheme="Accent7"]){background-color:var(--ui5-v2-3-0-rc-0-avatar-accent7);color:var(--ui5-v2-3-0-rc-0-avatar-accent7-color);border-color:var(--ui5-v2-3-0-rc-0-avatar-accent7-border-color)}:host([_color-scheme="Accent8"]),:host([ui5-avatar][color-scheme="Accent8"]){background-color:var(--ui5-v2-3-0-rc-0-avatar-accent8);color:var(--ui5-v2-3-0-rc-0-avatar-accent8-color);border-color:var(--ui5-v2-3-0-rc-0-avatar-accent8-border-color)}:host([_color-scheme="Accent9"]),:host([ui5-avatar][color-scheme="Accent9"]){background-color:var(--ui5-v2-3-0-rc-0-avatar-accent9);color:var(--ui5-v2-3-0-rc-0-avatar-accent9-color);border-color:var(--ui5-v2-3-0-rc-0-avatar-accent9-border-color)}:host([_color-scheme="Accent10"]),:host([ui5-avatar][color-scheme="Accent10"]){background-color:var(--ui5-v2-3-0-rc-0-avatar-accent10);color:var(--ui5-v2-3-0-rc-0-avatar-accent10-color);border-color:var(--ui5-v2-3-0-rc-0-avatar-accent10-border-color)}:host([_color-scheme="Placeholder"]),:host([ui5-avatar][color-scheme="Placeholder"]){background-color:var(--ui5-v2-3-0-rc-0-avatar-placeholder);color:var(--ui5-v2-3-0-rc-0-avatar-placeholder-color);border-color:var(--ui5-v2-3-0-rc-0-avatar-placeholder-border-color)}:host([_has-image]){color:var(--ui5-v2-3-0-rc-0-avatar-accent10-color);background-color:transparent;vertical-align:middle}.ui5-avatar-initials{color:inherit}.ui5-avatar-icon~.ui5-avatar-initials,.ui5-avatar-icon~.ui5-avatar-icon-fallback{display:none}.ui5-avatar-fallback-icon-hidden{display:none}.ui5-avatar-initials-hidden{position:absolute;visibility:hidden;z-index:0;pointer-events:none}::slotted([slot="badge"]){position:absolute;bottom:0;right:0;width:1.125rem;height:1.125rem;font-family:"72override",var(--sapFontFamily);font-size:var(--sapFontSmallSize);color:var(--sapBackgroundColor);--_ui5-v2-3-0-rc-0-tag-height: 1.125rem;--_ui5-v2-3-0-rc-0-tag-border-radius: 50%}:host([_size="L"]) ::slotted([slot="badge"]),:host([size="L"]) ::slotted([slot="badge"]){width:1.25rem;height:1.25rem;--_ui5-v2-3-0-rc-0-tag-height: 1.25rem;--_ui5-v2-3-0-rc-0-tag-icon-width: .875rem}:host([_size="XL"]) ::slotted([slot="badge"]),:host([size="XL"]) ::slotted([slot="badge"]){width:1.75rem;height:1.75rem;--_ui5-v2-3-0-rc-0-tag-height: 1.75rem;--_ui5-v2-3-0-rc-0-tag-icon-width: 1rem}:host([shape="Square"]) ::slotted([slot="badge"]){bottom:-.125rem;right:-.125rem}:host([_size="L"][shape="Square"]) ::slotted([slot="badge"]),:host([size="L"][shape="Square"]) ::slotted([slot="badge"]){bottom:-.1875rem;right:-.1875rem}:host([_size="XL"][shape="Square"]) ::slotted([slot="badge"]),:host([size="XL"][shape="Square"]) ::slotted([slot="badge"]){bottom:-.25rem;right:-.25rem}
1
+ :host(:not([hidden])){display:inline-block;box-sizing:border-box;position:relative;font-family:"72override",var(--sapFontFamily)}:host(:not([hidden]).ui5_hovered){opacity:.7}:host([interactive]:not([disabled])){cursor:pointer}:host([interactive]:not([hidden]):active){background-color:var(--sapButton_Active_Background);border-color:var(--sapButton_Active_BorderColor);color:var(--sapButton_Active_TextColor)}:host([interactive]:not([hidden]):not([disabled]):not(:active):hover){box-shadow:var(--ui5-v2-3-0-rc-1-avatar-hover-box-shadow-offset)}:host([interactive][desktop]:not([hidden])) .ui5-avatar-root:focus,:host([interactive]:not([hidden])) .ui5-avatar-root:focus-visible{outline:var(--_ui5-v2-3-0-rc-1_avatar_outline);outline-offset:var(--_ui5-v2-3-0-rc-1_avatar_focus_offset)}:host([disabled]){opacity:var(--sapContent_DisabledOpacity)}:host{height:3rem;width:3rem;border-radius:50%;border:var(--ui5-v2-3-0-rc-1-avatar-initials-border);outline:none;color:var(--ui5-v2-3-0-rc-1-avatar-initials-color)}.ui5-avatar-root{display:flex;align-items:center;justify-content:center;outline:none;height:100%;width:100%;border-radius:inherit}:host([_size="XS"]),:host([size="XS"]){height:2rem;width:2rem;min-height:2rem;min-width:2rem;font-size:var(--_ui5-v2-3-0-rc-1_avatar_fontsize_XS)}:host(:not([size])),:host([_size="S"]),:host([size="S"]){min-height:3rem;min-width:3rem;font-size:var(--_ui5-v2-3-0-rc-1_avatar_fontsize_S)}:host([_size="M"]),:host([size="M"]){min-height:4rem;min-width:4rem;font-size:var(--_ui5-v2-3-0-rc-1_avatar_fontsize_M)}:host([_size="L"]),:host([size="L"]){min-height:5rem;min-width:5rem;font-size:var(--_ui5-v2-3-0-rc-1_avatar_fontsize_L)}:host([_size="XL"]),:host([size="XL"]){min-height:7rem;min-width:7rem;font-size:var(--_ui5-v2-3-0-rc-1_avatar_fontsize_XL)}:host .ui5-avatar-icon{height:var(--_ui5-v2-3-0-rc-1_avatar_fontsize_S);width:var(--_ui5-v2-3-0-rc-1_avatar_fontsize_S);color:inherit}:host([_size="XS"]) .ui5-avatar-icon,:host([size="XS"]) .ui5-avatar-icon{height:var(--_ui5-v2-3-0-rc-1_avatar_icon_XS);width:var(--_ui5-v2-3-0-rc-1_avatar_icon_XS)}:host([_size="S"]) .ui5-avatar-icon,:host([size="S"]) .ui5-avatar-icon{height:var(--_ui5-v2-3-0-rc-1_avatar_icon_S);width:var(--_ui5-v2-3-0-rc-1_avatar_icon_S)}:host([_size="M"]) .ui5-avatar-icon,:host([size="M"]) .ui5-avatar-icon{height:var(--_ui5-v2-3-0-rc-1_avatar_icon_M);width:var(--_ui5-v2-3-0-rc-1_avatar_icon_M)}:host([_size="L"]) .ui5-avatar-icon,:host([size="L"]) .ui5-avatar-icon{height:var(--_ui5-v2-3-0-rc-1_avatar_icon_L);width:var(--_ui5-v2-3-0-rc-1_avatar_icon_L)}:host([_size="XL"]) .ui5-avatar-icon,:host([size="XL"]) .ui5-avatar-icon{height:var(--_ui5-v2-3-0-rc-1_avatar_icon_XL);width:var(--_ui5-v2-3-0-rc-1_avatar_icon_XL)}::slotted(*){border-radius:50%;width:100%;height:100%;pointer-events:none}:host([shape="Square"]){border-radius:var(--ui5-v2-3-0-rc-1-avatar-border-radius)}:host([shape="Square"]) ::slotted(*){border-radius:calc(var(--ui5-v2-3-0-rc-1-avatar-border-radius) - var(--ui5-v2-3-0-rc-1-avatar-border-radius-img-deduction))}:host(:not([color-scheme])),:host(:not([_has-image])),:host([_color-scheme="Accent6"]),:host([ui5-avatar][color-scheme="Accent6"]){background-color:var(--ui5-v2-3-0-rc-1-avatar-accent6);color:var(--ui5-v2-3-0-rc-1-avatar-accent6-color);border-color:var(--ui5-v2-3-0-rc-1-avatar-accent6-border-color)}:host([_color-scheme="Accent1"]),:host([ui5-avatar][color-scheme="Accent1"]){background-color:var(--ui5-v2-3-0-rc-1-avatar-accent1);color:var(--ui5-v2-3-0-rc-1-avatar-accent1-color);border-color:var(--ui5-v2-3-0-rc-1-avatar-accent1-border-color)}:host([_color-scheme="Accent2"]),:host([ui5-avatar][color-scheme="Accent2"]){background-color:var(--ui5-v2-3-0-rc-1-avatar-accent2);color:var(--ui5-v2-3-0-rc-1-avatar-accent2-color);border-color:var(--ui5-v2-3-0-rc-1-avatar-accent2-border-color)}:host([_color-scheme="Accent3"]),:host([ui5-avatar][color-scheme="Accent3"]){background-color:var(--ui5-v2-3-0-rc-1-avatar-accent3);color:var(--ui5-v2-3-0-rc-1-avatar-accent3-color);border-color:var(--ui5-v2-3-0-rc-1-avatar-accent3-border-color)}:host([_color-scheme="Accent4"]),:host([ui5-avatar][color-scheme="Accent4"]){background-color:var(--ui5-v2-3-0-rc-1-avatar-accent4);color:var(--ui5-v2-3-0-rc-1-avatar-accent4-color);border-color:var(--ui5-v2-3-0-rc-1-avatar-accent4-border-color)}:host([_color-scheme="Accent5"]),:host([ui5-avatar][color-scheme="Accent5"]){background-color:var(--ui5-v2-3-0-rc-1-avatar-accent5);color:var(--ui5-v2-3-0-rc-1-avatar-accent5-color);border-color:var(--ui5-v2-3-0-rc-1-avatar-accent5-border-color)}:host([_color-scheme="Accent7"]),:host([ui5-avatar][color-scheme="Accent7"]){background-color:var(--ui5-v2-3-0-rc-1-avatar-accent7);color:var(--ui5-v2-3-0-rc-1-avatar-accent7-color);border-color:var(--ui5-v2-3-0-rc-1-avatar-accent7-border-color)}:host([_color-scheme="Accent8"]),:host([ui5-avatar][color-scheme="Accent8"]){background-color:var(--ui5-v2-3-0-rc-1-avatar-accent8);color:var(--ui5-v2-3-0-rc-1-avatar-accent8-color);border-color:var(--ui5-v2-3-0-rc-1-avatar-accent8-border-color)}:host([_color-scheme="Accent9"]),:host([ui5-avatar][color-scheme="Accent9"]){background-color:var(--ui5-v2-3-0-rc-1-avatar-accent9);color:var(--ui5-v2-3-0-rc-1-avatar-accent9-color);border-color:var(--ui5-v2-3-0-rc-1-avatar-accent9-border-color)}:host([_color-scheme="Accent10"]),:host([ui5-avatar][color-scheme="Accent10"]){background-color:var(--ui5-v2-3-0-rc-1-avatar-accent10);color:var(--ui5-v2-3-0-rc-1-avatar-accent10-color);border-color:var(--ui5-v2-3-0-rc-1-avatar-accent10-border-color)}:host([_color-scheme="Placeholder"]),:host([ui5-avatar][color-scheme="Placeholder"]){background-color:var(--ui5-v2-3-0-rc-1-avatar-placeholder);color:var(--ui5-v2-3-0-rc-1-avatar-placeholder-color);border-color:var(--ui5-v2-3-0-rc-1-avatar-placeholder-border-color)}:host([_has-image]){color:var(--ui5-v2-3-0-rc-1-avatar-accent10-color);background-color:transparent;vertical-align:middle}.ui5-avatar-initials{color:inherit}.ui5-avatar-icon~.ui5-avatar-initials,.ui5-avatar-icon~.ui5-avatar-icon-fallback{display:none}.ui5-avatar-fallback-icon-hidden{display:none}.ui5-avatar-initials-hidden{position:absolute;visibility:hidden;z-index:0;pointer-events:none}::slotted([slot="badge"]){position:absolute;bottom:0;right:0;width:1.125rem;height:1.125rem;font-family:"72override",var(--sapFontFamily);font-size:var(--sapFontSmallSize);color:var(--sapBackgroundColor);--_ui5-v2-3-0-rc-1-tag-height: 1.125rem;--_ui5-v2-3-0-rc-1-tag-border-radius: 50%}:host([_size="L"]) ::slotted([slot="badge"]),:host([size="L"]) ::slotted([slot="badge"]){width:1.25rem;height:1.25rem;--_ui5-v2-3-0-rc-1-tag-height: 1.25rem;--_ui5-v2-3-0-rc-1-tag-icon-width: .875rem}:host([_size="XL"]) ::slotted([slot="badge"]),:host([size="XL"]) ::slotted([slot="badge"]){width:1.75rem;height:1.75rem;--_ui5-v2-3-0-rc-1-tag-height: 1.75rem;--_ui5-v2-3-0-rc-1-tag-icon-width: 1rem}:host([shape="Square"]) ::slotted([slot="badge"]){bottom:-.125rem;right:-.125rem}:host([_size="L"][shape="Square"]) ::slotted([slot="badge"]),:host([size="L"][shape="Square"]) ::slotted([slot="badge"]){bottom:-.1875rem;right:-.1875rem}:host([_size="XL"][shape="Square"]) ::slotted([slot="badge"]),:host([size="XL"][shape="Square"]) ::slotted([slot="badge"]){bottom:-.25rem;right:-.25rem}
@@ -1 +1 @@
1
- :host{-webkit-tap-highlight-color:rgba(0,0,0,0)}:host(:not([hidden])){display:block;width:100%}:host{--_ui5-v2-3-0-rc-0_button_focused_border: var(--_ui5-v2-3-0-rc-0_avatar_group_button_focus_border)}.ui5-avatar-group-items:focus{outline:none}:host([type="Group"][desktop]) .ui5-avatar-group-items:focus,:host([type="Group"]) .ui5-avatar-group-items:focus-visible{outline:var(--_ui5-v2-3-0-rc-0_avatar_outline);outline-offset:var(--_ui5-v2-3-0-rc-0_avatar_focus_offset);border-radius:var(--_ui5-v2-3-0-rc-0_avatar_group_focus_border_radius)}.ui5-avatar-group-root{display:flex}.ui5-avatar-group-items{white-space:nowrap;position:relative;display:inline-flex}:host([type="Group"]) .ui5-avatar-group-items{cursor:pointer}:host([type="Group"]) ::slotted([ui5-button]),:host([type="Group"]) ::slotted([ui5-avatar]){pointer-events:none}.ui5-avatar-group-overflow-btn{overflow:visible}.ui5-avatar-group-overflow-btn::part(button){min-width:auto}::slotted([ui5-button]:not([hidden])),.ui5-avatar-group-overflow-btn:not([hidden]){--_ui5-v2-3-0-rc-0_button_base_padding: 0;border-radius:50%;display:inline-flex;text-overflow:initial;z-index:0}::slotted([ui5-button][desktop]:focus),.ui5-avatar-group-overflow-btn[desktop]:focus{outline:var(--_ui5-v2-3-0-rc-0_avatar_outline);outline-offset:var(--_ui5-v2-3-0-rc-0_avatar_overflow_button_focus_offset)}.ui5-avatar-group-overflow-btn::part(button):focus-visible:after{outline:var(--_ui5-v2-3-0-rc-0_avatar_outline);outline-offset:var(--_ui5-v2-3-0-rc-0_avatar_focus_offset);border-radius:50%}.ui5-avatar-group-overflow-btn.ui5-avatar-group-overflow-btn-xs{height:2rem;width:2rem;min-width:2rem;font-size:.75rem}::slotted([ui5-button]),.ui5-avatar-group-overflow-btn.ui5-avatar-group-overflow-btn-s{height:3rem;width:3rem;min-width:3rem;font-size:1.125rem}.ui5-avatar-group-overflow-btn.ui5-avatar-group-overflow-btn-m{height:4rem;width:4rem;min-width:4rem;font-size:1.625rem}.ui5-avatar-group-overflow-btn.ui5-avatar-group-overflow-btn-l{height:5rem;width:5rem;min-width:5rem;font-size:2rem}.ui5-avatar-group-overflow-btn.ui5-avatar-group-overflow-btn-xl{height:7rem;width:7rem;min-width:7rem;font-size:2.75rem}
1
+ :host{-webkit-tap-highlight-color:rgba(0,0,0,0)}:host(:not([hidden])){display:block;width:100%}:host{--_ui5-v2-3-0-rc-1_button_focused_border: var(--_ui5-v2-3-0-rc-1_avatar_group_button_focus_border)}.ui5-avatar-group-items:focus{outline:none}:host([type="Group"][desktop]) .ui5-avatar-group-items:focus,:host([type="Group"]) .ui5-avatar-group-items:focus-visible{outline:var(--_ui5-v2-3-0-rc-1_avatar_outline);outline-offset:var(--_ui5-v2-3-0-rc-1_avatar_focus_offset);border-radius:var(--_ui5-v2-3-0-rc-1_avatar_group_focus_border_radius)}.ui5-avatar-group-root{display:flex}.ui5-avatar-group-items{white-space:nowrap;position:relative;display:inline-flex}:host([type="Group"]) .ui5-avatar-group-items{cursor:pointer}:host([type="Group"]) ::slotted([ui5-button]),:host([type="Group"]) ::slotted([ui5-avatar]){pointer-events:none}.ui5-avatar-group-overflow-btn{overflow:visible}.ui5-avatar-group-overflow-btn::part(button){min-width:auto}::slotted([ui5-button]:not([hidden])),.ui5-avatar-group-overflow-btn:not([hidden]){--_ui5-v2-3-0-rc-1_button_base_padding: 0;border-radius:50%;display:inline-flex;text-overflow:initial;z-index:0}::slotted([ui5-button][desktop]:focus),.ui5-avatar-group-overflow-btn[desktop]:focus{outline:var(--_ui5-v2-3-0-rc-1_avatar_outline);outline-offset:var(--_ui5-v2-3-0-rc-1_avatar_overflow_button_focus_offset)}.ui5-avatar-group-overflow-btn::part(button):focus-visible:after{outline:var(--_ui5-v2-3-0-rc-1_avatar_outline);outline-offset:var(--_ui5-v2-3-0-rc-1_avatar_focus_offset);border-radius:50%}.ui5-avatar-group-overflow-btn.ui5-avatar-group-overflow-btn-xs{height:2rem;width:2rem;min-width:2rem;font-size:.75rem}::slotted([ui5-button]),.ui5-avatar-group-overflow-btn.ui5-avatar-group-overflow-btn-s{height:3rem;width:3rem;min-width:3rem;font-size:1.125rem}.ui5-avatar-group-overflow-btn.ui5-avatar-group-overflow-btn-m{height:4rem;width:4rem;min-width:4rem;font-size:1.625rem}.ui5-avatar-group-overflow-btn.ui5-avatar-group-overflow-btn-l{height:5rem;width:5rem;min-width:5rem;font-size:2rem}.ui5-avatar-group-overflow-btn.ui5-avatar-group-overflow-btn-xl{height:7rem;width:7rem;min-width:7rem;font-size:2.75rem}