@ui5/webcomponents 2.8.1-rc.0 → 2.9.0-rc.0
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.
- package/CHANGELOG.md +26 -0
- package/cypress/specs/AvatarGroup.cy.tsx +15 -0
- package/cypress/specs/Carousel.cy.tsx +27 -0
- package/cypress/specs/ComboBox.cy.tsx +83 -0
- package/cypress/specs/Input.cy.tsx +42 -1
- package/cypress/specs/Menu.cy.tsx +3 -1
- package/cypress/specs/MultiComboBox.cy.tsx +68 -0
- package/cypress/specs/Slider.cy.tsx +26 -0
- package/cypress/specs/TabContainer.cy.tsx +49 -0
- package/cypress/specs/base/Events.cy.tsx +10 -1
- package/cypress/specs/base/Tooltips.cy.tsx +5 -3
- package/cypress/support/commands.ts +1 -0
- package/cypress/support/component-index.html +12 -0
- package/cypress/support/component.ts +35 -2
- package/cypress/tsconfig.json +0 -1
- package/cypress.config.js +11 -6
- package/dist/.tsbuildinfo +1 -1
- package/dist/AvatarGroup.js +3 -0
- package/dist/AvatarGroup.js.map +1 -1
- package/dist/Carousel.d.ts +1 -0
- package/dist/Carousel.js +4 -1
- package/dist/Carousel.js.map +1 -1
- package/dist/CarouselTemplate.js +2 -2
- package/dist/CarouselTemplate.js.map +1 -1
- package/dist/ComboBox.d.ts +4 -2
- package/dist/ComboBox.js +24 -3
- package/dist/ComboBox.js.map +1 -1
- package/dist/Icon.d.ts +1 -1
- package/dist/Icon.js +3 -4
- package/dist/Icon.js.map +1 -1
- package/dist/InputTemplate.js +1 -1
- package/dist/InputTemplate.js.map +1 -1
- package/dist/List.d.ts +2 -0
- package/dist/List.js +10 -2
- package/dist/List.js.map +1 -1
- package/dist/MenuItem.js +0 -13
- package/dist/MenuItem.js.map +1 -1
- package/dist/MultiComboBox.d.ts +4 -3
- package/dist/MultiComboBox.js +26 -25
- package/dist/MultiComboBox.js.map +1 -1
- package/dist/MultiComboBoxPopoverTemplate.js +1 -1
- package/dist/MultiComboBoxPopoverTemplate.js.map +1 -1
- package/dist/OptionCustom.d.ts +1 -3
- package/dist/OptionCustom.js.map +1 -1
- package/dist/Slider.d.ts +1 -0
- package/dist/Slider.js +8 -0
- package/dist/Slider.js.map +1 -1
- package/dist/SliderTemplate.js +1 -1
- package/dist/SliderTemplate.js.map +1 -1
- package/dist/Switch.js +0 -1
- package/dist/Switch.js.map +1 -1
- package/dist/TabContainer.js +2 -2
- package/dist/TabContainer.js.map +1 -1
- package/dist/ToolbarButton.d.ts +6 -0
- package/dist/ToolbarButton.js +9 -0
- package/dist/ToolbarButton.js.map +1 -1
- package/dist/css/themes/Avatar.css +1 -1
- package/dist/css/themes/AvatarGroup.css +1 -1
- package/dist/css/themes/Bar.css +1 -1
- package/dist/css/themes/Breadcrumbs.css +1 -1
- package/dist/css/themes/BusyIndicator.css +1 -1
- package/dist/css/themes/Button.css +1 -1
- package/dist/css/themes/ButtonBadge.css +1 -1
- package/dist/css/themes/Calendar.css +1 -1
- package/dist/css/themes/CalendarHeader.css +1 -1
- package/dist/css/themes/CalendarLegend.css +1 -1
- package/dist/css/themes/CalendarLegendItem.css +1 -1
- package/dist/css/themes/Card.css +1 -1
- package/dist/css/themes/CardHeader.css +1 -1
- package/dist/css/themes/Carousel.css +1 -1
- package/dist/css/themes/CheckBox.css +1 -1
- package/dist/css/themes/ColorPalette.css +1 -1
- package/dist/css/themes/ColorPaletteItem.css +1 -1
- package/dist/css/themes/ColorPalettePopover.css +1 -1
- package/dist/css/themes/ColorPicker.css +1 -1
- package/dist/css/themes/ComboBox.css +1 -1
- package/dist/css/themes/ComboBoxItem.css +1 -1
- package/dist/css/themes/DatePicker.css +1 -1
- package/dist/css/themes/DateTimePickerPopover.css +1 -1
- package/dist/css/themes/DayPicker.css +1 -1
- package/dist/css/themes/Dialog.css +1 -1
- package/dist/css/themes/FileUploader.css +1 -1
- package/dist/css/themes/Form.css +1 -1
- package/dist/css/themes/FormItem.css +1 -1
- package/dist/css/themes/FormItemSpan.css +1 -1
- package/dist/css/themes/GrowingButton.css +1 -1
- package/dist/css/themes/Icon.css +1 -1
- package/dist/css/themes/Input.css +1 -1
- package/dist/css/themes/InputIcon.css +1 -1
- package/dist/css/themes/InputSharedStyles.css +1 -1
- package/dist/css/themes/Link.css +1 -1
- package/dist/css/themes/List.css +1 -1
- package/dist/css/themes/ListItem.css +1 -1
- package/dist/css/themes/ListItemBase.css +1 -1
- package/dist/css/themes/ListItemCustom.css +1 -1
- package/dist/css/themes/ListItemGroup.css +1 -1
- package/dist/css/themes/ListItemGroupHeader.css +1 -1
- package/dist/css/themes/ListItemIcon.css +1 -1
- package/dist/css/themes/Menu.css +1 -1
- package/dist/css/themes/MenuItem.css +1 -1
- package/dist/css/themes/MessageStrip.css +1 -1
- package/dist/css/themes/MonthPicker.css +1 -1
- package/dist/css/themes/MultiComboBox.css +1 -1
- package/dist/css/themes/MultiComboBoxItem.css +1 -1
- package/dist/css/themes/MultiComboBoxPopover.css +1 -1
- package/dist/css/themes/MultiInput.css +1 -1
- package/dist/css/themes/OptionBase.css +1 -1
- package/dist/css/themes/Panel.css +1 -1
- package/dist/css/themes/Popover.css +1 -1
- package/dist/css/themes/PopupsCommon.css +1 -1
- package/dist/css/themes/ProgressIndicator.css +1 -1
- package/dist/css/themes/RadioButton.css +1 -1
- package/dist/css/themes/RangeSlider.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/ResponsivePopover.css +1 -1
- package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
- package/dist/css/themes/SegmentedButton.css +1 -1
- package/dist/css/themes/SegmentedButtonItem.css +1 -1
- package/dist/css/themes/Select.css +1 -1
- package/dist/css/themes/SliderBase.css +1 -1
- package/dist/css/themes/SplitButton.css +1 -1
- package/dist/css/themes/StepInput.css +1 -1
- package/dist/css/themes/SuggestionItem.css +1 -1
- package/dist/css/themes/SuggestionItemCustom.css +1 -1
- package/dist/css/themes/Switch.css +1 -1
- package/dist/css/themes/TabContainer.css +1 -1
- package/dist/css/themes/TabInOverflow.css +1 -1
- package/dist/css/themes/TabInStrip.css +1 -1
- package/dist/css/themes/TabSemanticIcon.css +1 -1
- package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
- package/dist/css/themes/Table.css +1 -1
- package/dist/css/themes/TableCellBase.css +1 -1
- package/dist/css/themes/TableHeaderRow.css +1 -1
- package/dist/css/themes/TableRow.css +1 -1
- package/dist/css/themes/TableRowActionBase.css +1 -1
- package/dist/css/themes/TableRowBase.css +1 -1
- package/dist/css/themes/Tag.css +1 -1
- package/dist/css/themes/Text.css +1 -1
- package/dist/css/themes/TextArea.css +1 -1
- package/dist/css/themes/TimePicker.css +1 -1
- package/dist/css/themes/Toast.css +1 -1
- package/dist/css/themes/ToggleButton.css +1 -1
- package/dist/css/themes/Token.css +1 -1
- package/dist/css/themes/Tokenizer.css +1 -1
- package/dist/css/themes/TokenizerPopover.css +1 -1
- package/dist/css/themes/Toolbar.css +1 -1
- package/dist/css/themes/ToolbarPopover.css +1 -1
- package/dist/css/themes/TreeItem.css +1 -1
- package/dist/css/themes/ValueStateMessage.css +1 -1
- package/dist/css/themes/YearPicker.css +1 -1
- package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
- package/dist/custom-elements-internal.json +68 -4
- package/dist/custom-elements.json +56 -4
- package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
- package/dist/generated/i18n/i18n-defaults.js +2 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/themes/Avatar.css.d.ts +1 -1
- package/dist/generated/themes/Avatar.css.js +1 -1
- package/dist/generated/themes/Avatar.css.js.map +1 -1
- package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
- package/dist/generated/themes/AvatarGroup.css.js +1 -1
- package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
- package/dist/generated/themes/Bar.css.d.ts +1 -1
- package/dist/generated/themes/Bar.css.js +1 -1
- package/dist/generated/themes/Bar.css.js.map +1 -1
- package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
- package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
- package/dist/generated/themes/BusyIndicator.css.js +1 -1
- package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
- package/dist/generated/themes/Button.css.d.ts +1 -1
- package/dist/generated/themes/Button.css.js +1 -1
- package/dist/generated/themes/Button.css.js.map +1 -1
- package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
- package/dist/generated/themes/ButtonBadge.css.js +1 -1
- package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
- package/dist/generated/themes/Calendar.css.d.ts +1 -1
- package/dist/generated/themes/Calendar.css.js +1 -1
- package/dist/generated/themes/Calendar.css.js.map +1 -1
- package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
- package/dist/generated/themes/CalendarHeader.css.js +1 -1
- package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
- package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
- package/dist/generated/themes/CalendarLegend.css.js +1 -1
- package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
- package/dist/generated/themes/Card.css.d.ts +1 -1
- package/dist/generated/themes/Card.css.js +1 -1
- package/dist/generated/themes/Card.css.js.map +1 -1
- package/dist/generated/themes/CardHeader.css.d.ts +1 -1
- package/dist/generated/themes/CardHeader.css.js +1 -1
- package/dist/generated/themes/CardHeader.css.js.map +1 -1
- package/dist/generated/themes/Carousel.css.d.ts +1 -1
- package/dist/generated/themes/Carousel.css.js +1 -1
- package/dist/generated/themes/Carousel.css.js.map +1 -1
- package/dist/generated/themes/CheckBox.css.d.ts +1 -1
- package/dist/generated/themes/CheckBox.css.js +1 -1
- package/dist/generated/themes/CheckBox.css.js.map +1 -1
- package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
- package/dist/generated/themes/ColorPalette.css.js +1 -1
- package/dist/generated/themes/ColorPalette.css.js.map +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
- package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
- package/dist/generated/themes/ColorPicker.css.js +1 -1
- package/dist/generated/themes/ColorPicker.css.js.map +1 -1
- package/dist/generated/themes/ComboBox.css.d.ts +1 -1
- package/dist/generated/themes/ComboBox.css.js +1 -1
- package/dist/generated/themes/ComboBox.css.js.map +1 -1
- package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
- package/dist/generated/themes/ComboBoxItem.css.js +1 -1
- package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
- package/dist/generated/themes/DatePicker.css.d.ts +1 -1
- package/dist/generated/themes/DatePicker.css.js +1 -1
- package/dist/generated/themes/DatePicker.css.js.map +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
- package/dist/generated/themes/DayPicker.css.d.ts +1 -1
- package/dist/generated/themes/DayPicker.css.js +1 -1
- package/dist/generated/themes/DayPicker.css.js.map +1 -1
- package/dist/generated/themes/Dialog.css.d.ts +1 -1
- package/dist/generated/themes/Dialog.css.js +1 -1
- package/dist/generated/themes/Dialog.css.js.map +1 -1
- package/dist/generated/themes/FileUploader.css.d.ts +1 -1
- package/dist/generated/themes/FileUploader.css.js +1 -1
- package/dist/generated/themes/FileUploader.css.js.map +1 -1
- package/dist/generated/themes/Form.css.d.ts +1 -1
- package/dist/generated/themes/Form.css.js +1 -1
- package/dist/generated/themes/Form.css.js.map +1 -1
- package/dist/generated/themes/FormItem.css.d.ts +1 -1
- package/dist/generated/themes/FormItem.css.js +1 -1
- package/dist/generated/themes/FormItem.css.js.map +1 -1
- package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
- package/dist/generated/themes/FormItemSpan.css.js +1 -1
- package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
- package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
- package/dist/generated/themes/GrowingButton.css.js +1 -1
- package/dist/generated/themes/GrowingButton.css.js.map +1 -1
- package/dist/generated/themes/Icon.css.d.ts +1 -1
- package/dist/generated/themes/Icon.css.js +1 -1
- package/dist/generated/themes/Icon.css.js.map +1 -1
- package/dist/generated/themes/Input.css.d.ts +1 -1
- package/dist/generated/themes/Input.css.js +1 -1
- package/dist/generated/themes/Input.css.js.map +1 -1
- package/dist/generated/themes/InputIcon.css.d.ts +1 -1
- package/dist/generated/themes/InputIcon.css.js +1 -1
- package/dist/generated/themes/InputIcon.css.js.map +1 -1
- package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
- package/dist/generated/themes/InputSharedStyles.css.js +1 -1
- package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
- package/dist/generated/themes/Link.css.d.ts +1 -1
- package/dist/generated/themes/Link.css.js +1 -1
- package/dist/generated/themes/Link.css.js.map +1 -1
- package/dist/generated/themes/List.css.d.ts +1 -1
- package/dist/generated/themes/List.css.js +1 -1
- package/dist/generated/themes/List.css.js.map +1 -1
- package/dist/generated/themes/ListItem.css.d.ts +1 -1
- package/dist/generated/themes/ListItem.css.js +1 -1
- package/dist/generated/themes/ListItem.css.js.map +1 -1
- package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
- package/dist/generated/themes/ListItemBase.css.js +1 -1
- package/dist/generated/themes/ListItemBase.css.js.map +1 -1
- package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
- package/dist/generated/themes/ListItemCustom.css.js +1 -1
- package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
- package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
- package/dist/generated/themes/ListItemGroup.css.js +1 -1
- package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
- package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
- package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
- package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
- package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
- package/dist/generated/themes/ListItemIcon.css.js +1 -1
- package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
- package/dist/generated/themes/Menu.css.d.ts +1 -1
- package/dist/generated/themes/Menu.css.js +1 -1
- package/dist/generated/themes/Menu.css.js.map +1 -1
- package/dist/generated/themes/MenuItem.css.d.ts +1 -1
- package/dist/generated/themes/MenuItem.css.js +1 -1
- package/dist/generated/themes/MenuItem.css.js.map +1 -1
- package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
- package/dist/generated/themes/MessageStrip.css.js +1 -1
- package/dist/generated/themes/MessageStrip.css.js.map +1 -1
- package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
- package/dist/generated/themes/MonthPicker.css.js +1 -1
- package/dist/generated/themes/MonthPicker.css.js.map +1 -1
- package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
- package/dist/generated/themes/MultiComboBox.css.js +1 -1
- package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
- package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
- package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
- package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
- package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
- package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
- package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
- package/dist/generated/themes/MultiInput.css.d.ts +1 -1
- package/dist/generated/themes/MultiInput.css.js +1 -1
- package/dist/generated/themes/MultiInput.css.js.map +1 -1
- package/dist/generated/themes/OptionBase.css.d.ts +1 -1
- package/dist/generated/themes/OptionBase.css.js +1 -1
- package/dist/generated/themes/OptionBase.css.js.map +1 -1
- package/dist/generated/themes/Panel.css.d.ts +1 -1
- package/dist/generated/themes/Panel.css.js +1 -1
- package/dist/generated/themes/Panel.css.js.map +1 -1
- package/dist/generated/themes/Popover.css.d.ts +1 -1
- package/dist/generated/themes/Popover.css.js +1 -1
- package/dist/generated/themes/Popover.css.js.map +1 -1
- package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
- package/dist/generated/themes/PopupsCommon.css.js +1 -1
- package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
- package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
- package/dist/generated/themes/ProgressIndicator.css.js +1 -1
- package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
- package/dist/generated/themes/RadioButton.css.d.ts +1 -1
- package/dist/generated/themes/RadioButton.css.js +1 -1
- package/dist/generated/themes/RadioButton.css.js.map +1 -1
- package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
- package/dist/generated/themes/RangeSlider.css.js +1 -1
- package/dist/generated/themes/RangeSlider.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
- package/dist/generated/themes/ResponsivePopover.css.js +1 -1
- package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
- package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
- package/dist/generated/themes/SegmentedButton.css.js +1 -1
- package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
- package/dist/generated/themes/Select.css.d.ts +1 -1
- package/dist/generated/themes/Select.css.js +1 -1
- package/dist/generated/themes/Select.css.js.map +1 -1
- package/dist/generated/themes/SliderBase.css.d.ts +1 -1
- package/dist/generated/themes/SliderBase.css.js +1 -1
- package/dist/generated/themes/SliderBase.css.js.map +1 -1
- package/dist/generated/themes/SplitButton.css.d.ts +1 -1
- package/dist/generated/themes/SplitButton.css.js +1 -1
- package/dist/generated/themes/SplitButton.css.js.map +1 -1
- package/dist/generated/themes/StepInput.css.d.ts +1 -1
- package/dist/generated/themes/StepInput.css.js +1 -1
- package/dist/generated/themes/StepInput.css.js.map +1 -1
- package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
- package/dist/generated/themes/SuggestionItem.css.js +1 -1
- package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
- package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
- package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
- package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
- package/dist/generated/themes/Switch.css.d.ts +1 -1
- package/dist/generated/themes/Switch.css.js +1 -1
- package/dist/generated/themes/Switch.css.js.map +1 -1
- package/dist/generated/themes/TabContainer.css.d.ts +1 -1
- package/dist/generated/themes/TabContainer.css.js +1 -1
- package/dist/generated/themes/TabContainer.css.js.map +1 -1
- package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
- package/dist/generated/themes/TabInOverflow.css.js +1 -1
- package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
- package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
- package/dist/generated/themes/TabInStrip.css.js +1 -1
- package/dist/generated/themes/TabInStrip.css.js.map +1 -1
- package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
- package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
- package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
- package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
- package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
- package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
- package/dist/generated/themes/Table.css.d.ts +1 -1
- package/dist/generated/themes/Table.css.js +1 -1
- package/dist/generated/themes/Table.css.js.map +1 -1
- package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
- package/dist/generated/themes/TableCellBase.css.js +1 -1
- package/dist/generated/themes/TableCellBase.css.js.map +1 -1
- package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
- package/dist/generated/themes/TableHeaderRow.css.js +1 -1
- package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
- package/dist/generated/themes/TableRow.css.d.ts +1 -1
- package/dist/generated/themes/TableRow.css.js +1 -1
- package/dist/generated/themes/TableRow.css.js.map +1 -1
- package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
- package/dist/generated/themes/TableRowActionBase.css.js +1 -1
- package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
- package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
- package/dist/generated/themes/TableRowBase.css.js +1 -1
- package/dist/generated/themes/TableRowBase.css.js.map +1 -1
- package/dist/generated/themes/Tag.css.d.ts +1 -1
- package/dist/generated/themes/Tag.css.js +1 -1
- package/dist/generated/themes/Tag.css.js.map +1 -1
- package/dist/generated/themes/Text.css.d.ts +1 -1
- package/dist/generated/themes/Text.css.js +1 -1
- package/dist/generated/themes/Text.css.js.map +1 -1
- package/dist/generated/themes/TextArea.css.d.ts +1 -1
- package/dist/generated/themes/TextArea.css.js +1 -1
- package/dist/generated/themes/TextArea.css.js.map +1 -1
- package/dist/generated/themes/TimePicker.css.d.ts +1 -1
- package/dist/generated/themes/TimePicker.css.js +1 -1
- package/dist/generated/themes/TimePicker.css.js.map +1 -1
- package/dist/generated/themes/Toast.css.d.ts +1 -1
- package/dist/generated/themes/Toast.css.js +1 -1
- package/dist/generated/themes/Toast.css.js.map +1 -1
- package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
- package/dist/generated/themes/ToggleButton.css.js +1 -1
- package/dist/generated/themes/ToggleButton.css.js.map +1 -1
- package/dist/generated/themes/Token.css.d.ts +1 -1
- package/dist/generated/themes/Token.css.js +1 -1
- package/dist/generated/themes/Token.css.js.map +1 -1
- package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
- package/dist/generated/themes/Tokenizer.css.js +1 -1
- package/dist/generated/themes/Tokenizer.css.js.map +1 -1
- package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
- package/dist/generated/themes/TokenizerPopover.css.js +1 -1
- package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
- package/dist/generated/themes/Toolbar.css.d.ts +1 -1
- package/dist/generated/themes/Toolbar.css.js +1 -1
- package/dist/generated/themes/Toolbar.css.js.map +1 -1
- package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
- package/dist/generated/themes/ToolbarPopover.css.js +1 -1
- package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
- package/dist/generated/themes/TreeItem.css.d.ts +1 -1
- package/dist/generated/themes/TreeItem.css.js +1 -1
- package/dist/generated/themes/TreeItem.css.js.map +1 -1
- package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
- package/dist/generated/themes/ValueStateMessage.css.js +1 -1
- package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
- package/dist/generated/themes/YearPicker.css.d.ts +1 -1
- package/dist/generated/themes/YearPicker.css.js +1 -1
- package/dist/generated/themes/YearPicker.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/vscode.html-custom-data.json +12 -2
- package/dist/web-types.json +41 -5
- package/package.json +11 -10
- package/src/CarouselTemplate.tsx +3 -2
- package/src/InputTemplate.tsx +3 -1
- package/src/MultiComboBoxPopoverTemplate.tsx +1 -1
- package/src/SliderTemplate.tsx +1 -0
- package/src/i18n/messagebundle.properties +3 -0
- package/src/i18n/messagebundle_ar.properties +6 -0
- package/src/i18n/messagebundle_bg.properties +7 -1
- package/src/i18n/messagebundle_ca.properties +6 -0
- package/src/i18n/messagebundle_cnr.properties +6 -0
- package/src/i18n/messagebundle_cs.properties +6 -0
- package/src/i18n/messagebundle_cy.properties +6 -0
- package/src/i18n/messagebundle_da.properties +6 -0
- package/src/i18n/messagebundle_de.properties +7 -1
- package/src/i18n/messagebundle_el.properties +6 -0
- package/src/i18n/messagebundle_en.properties +6 -0
- package/src/i18n/messagebundle_en_GB.properties +6 -0
- package/src/i18n/messagebundle_en_US_sappsd.properties +6 -0
- package/src/i18n/messagebundle_en_US_saprigi.properties +2 -0
- package/src/i18n/messagebundle_en_US_saptrc.properties +6 -0
- package/src/i18n/messagebundle_es.properties +7 -1
- package/src/i18n/messagebundle_es_MX.properties +6 -0
- package/src/i18n/messagebundle_et.properties +6 -0
- package/src/i18n/messagebundle_fi.properties +6 -0
- package/src/i18n/messagebundle_fr.properties +6 -0
- package/src/i18n/messagebundle_fr_CA.properties +6 -0
- package/src/i18n/messagebundle_hi.properties +6 -0
- package/src/i18n/messagebundle_hr.properties +6 -0
- package/src/i18n/messagebundle_hu.properties +6 -0
- package/src/i18n/messagebundle_id.properties +6 -0
- package/src/i18n/messagebundle_it.properties +6 -0
- package/src/i18n/messagebundle_iw.properties +6 -0
- package/src/i18n/messagebundle_ja.properties +6 -0
- package/src/i18n/messagebundle_kk.properties +6 -0
- package/src/i18n/messagebundle_ko.properties +6 -0
- package/src/i18n/messagebundle_lt.properties +6 -0
- package/src/i18n/messagebundle_lv.properties +6 -0
- package/src/i18n/messagebundle_mk.properties +6 -0
- package/src/i18n/messagebundle_ms.properties +6 -0
- package/src/i18n/messagebundle_nl.properties +6 -0
- package/src/i18n/messagebundle_no.properties +6 -0
- package/src/i18n/messagebundle_pl.properties +11 -5
- package/src/i18n/messagebundle_pt.properties +7 -1
- package/src/i18n/messagebundle_pt_PT.properties +6 -0
- package/src/i18n/messagebundle_ro.properties +7 -1
- package/src/i18n/messagebundle_ru.properties +7 -1
- package/src/i18n/messagebundle_sh.properties +6 -0
- package/src/i18n/messagebundle_sk.properties +7 -1
- package/src/i18n/messagebundle_sl.properties +7 -1
- package/src/i18n/messagebundle_sr.properties +6 -0
- package/src/i18n/messagebundle_sv.properties +7 -1
- package/src/i18n/messagebundle_th.properties +6 -0
- package/src/i18n/messagebundle_tr.properties +6 -0
- package/src/i18n/messagebundle_uk.properties +6 -0
- package/src/i18n/messagebundle_vi.properties +6 -0
- package/src/i18n/messagebundle_zh_CN.properties +6 -0
- package/src/i18n/messagebundle_zh_TW.properties +6 -0
- package/src/themes/List.css +3 -2
- package/src/themes/Switch.css +0 -2
package/dist/TabContainer.js.map
CHANGED
|
@@ -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 } 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-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.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 i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.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 handleDragOver from \"@ui5/webcomponents-base/dist/util/dragAndDrop/handleDragOver.js\";\nimport handleDrop from \"@ui5/webcomponents-base/dist/util/dragAndDrop/handleDrop.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 type Button from \"./Button.js\";\nimport type List from \"./List.js\";\nimport type 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 type 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 \"./TabContainerTemplate.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<string> = [];\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: jsxRenderer,\n\ttemplate: TabContainerTemplate,\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 */\n@event(\"tab-select\", {\n\tbubbles: true,\n\tcancelable: true,\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 */\n@event(\"move-over\", {\n\tbubbles: true,\n\tcancelable: true,\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 */\n@event(\"move\", {\n\tbubbles: true,\n})\nclass TabContainer extends UI5Element {\n\teventDetails!: {\n\t\t\"tab-select\": TabContainerTabSelectEventDetail;\n\t\t\"move-over\": TabContainerMoveEventDetail;\n\t\t\"move\": TabContainerMoveEventDetail;\n\t}\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 if automatic tab selection is deactivated.\n\t *\n\t * **Note:** By default, if none of the child tabs have the `selected` property set, the first tab will be automatically selected.\n\t * Setting this property to `true` allows preventing this behavior.\n\t * @default false\n\t * @public\n\t * @since 2.9.0\n\t */\n\t@property({ type: Boolean })\n\tnoAutoSelection = false;\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: string) {\n\t\ttabStyles.push(styles);\n\t}\n\n\t@i18n(\"@ui5/webcomponents\")\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 if (!this.noAutoSelection) {\n\t\t\tthis._selectedTab = this._itemsFlat[0] as Tab;\n\t\t} else {\n\t\t\tthis._selectedTab = undefined;\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\n\t\t\tif (dropTarget === draggedElement) {\n\t\t\t\tclosestPosition.placements = closestPosition.placements.filter(placement => placement !== MovePlacement.On);\n\t\t\t}\n\n\t\t\tconst { targetReference, placement } = handleDragOver(e, this, closestPosition, dropTarget);\n\t\t\tthis.dropIndicatorDOM!.targetReference = targetReference;\n\t\t\tthis.dropIndicatorDOM!.placement = placement;\n\t\t\tif (placement === MovePlacement.On && (closestPosition.element as TabInStrip).realTabReference.items.length) {\n\t\t\t\tpopoverTarget = closestPosition.element;\n\t\t\t} else if (!placement) {\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\thandleDrop(e, this, (this.dropIndicatorDOM!.targetReference as TabInStrip).realTabReference, this.dropIndicatorDOM!.placement);\n\t\tthis.dropIndicatorDOM!.targetReference = null;\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.fireDecoratorEvent(\"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});\n\t\t});\n\n\t\tif (acceptedPosition) {\n\t\t\tthis.fireDecoratorEvent(\"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.fireDecoratorEvent(\"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});\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.fireDecoratorEvent(\"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});\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.fireDecoratorEvent(\"tab-select\", { tab: selectedTab, tabIndex: selectedTabIndex })) {\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 semanticIcons = 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\")]: level,\n\t\t\t\t\t[getScopedVarName(\"--_ui5-tab-level-has-icon\")]: semanticIcons ? \"1\" : \"0\",\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\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--noTabSelected\": !this._selectedTab,\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\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 } 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-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.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 i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.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, isMovingKey } 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 handleDragOver from \"@ui5/webcomponents-base/dist/util/dragAndDrop/handleDragOver.js\";\nimport handleDrop from \"@ui5/webcomponents-base/dist/util/dragAndDrop/handleDrop.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 type Button from \"./Button.js\";\nimport type List from \"./List.js\";\nimport type 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 type 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 \"./TabContainerTemplate.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<string> = [];\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: jsxRenderer,\n\ttemplate: TabContainerTemplate,\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 */\n@event(\"tab-select\", {\n\tbubbles: true,\n\tcancelable: true,\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 */\n@event(\"move-over\", {\n\tbubbles: true,\n\tcancelable: true,\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 */\n@event(\"move\", {\n\tbubbles: true,\n})\nclass TabContainer extends UI5Element {\n\teventDetails!: {\n\t\t\"tab-select\": TabContainerTabSelectEventDetail;\n\t\t\"move-over\": TabContainerMoveEventDetail;\n\t\t\"move\": TabContainerMoveEventDetail;\n\t}\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 if automatic tab selection is deactivated.\n\t *\n\t * **Note:** By default, if none of the child tabs have the `selected` property set, the first tab will be automatically selected.\n\t * Setting this property to `true` allows preventing this behavior.\n\t * @default false\n\t * @public\n\t * @since 2.9.0\n\t */\n\t@property({ type: Boolean })\n\tnoAutoSelection = false;\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: string) {\n\t\ttabStyles.push(styles);\n\t}\n\n\t@i18n(\"@ui5/webcomponents\")\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 if (!this.noAutoSelection) {\n\t\t\tthis._selectedTab = this._itemsFlat[0] as Tab;\n\t\t} else {\n\t\t\tthis._selectedTab = undefined;\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\n\t\t\tif (dropTarget === draggedElement) {\n\t\t\t\tclosestPosition.placements = closestPosition.placements.filter(placement => placement !== MovePlacement.On);\n\t\t\t}\n\n\t\t\tconst { targetReference, placement } = handleDragOver(e, this, closestPosition, dropTarget);\n\t\t\tthis.dropIndicatorDOM!.targetReference = targetReference;\n\t\t\tthis.dropIndicatorDOM!.placement = placement;\n\t\t\tif (placement === MovePlacement.On && (closestPosition.element as TabInStrip).realTabReference.items.length) {\n\t\t\t\tpopoverTarget = closestPosition.element;\n\t\t\t} else if (!placement) {\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\thandleDrop(e, this, (this.dropIndicatorDOM!.targetReference as TabInStrip).realTabReference, this.dropIndicatorDOM!.placement);\n\t\tthis.dropIndicatorDOM!.targetReference = null;\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.fireDecoratorEvent(\"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});\n\t\t});\n\n\t\tif (acceptedPosition) {\n\t\t\tthis.fireDecoratorEvent(\"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.fireDecoratorEvent(\"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});\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.fireDecoratorEvent(\"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});\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) && tab.realTabReference.movable && isMovingKey(e.key)) {\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.fireDecoratorEvent(\"tab-select\", { tab: selectedTab, tabIndex: selectedTabIndex })) {\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 semanticIcons = 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\")]: level,\n\t\t\t\t\t[getScopedVarName(\"--_ui5-tab-level-has-icon\")]: semanticIcons ? \"1\" : \"0\",\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\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--noTabSelected\": !this._selectedTab,\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\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"]}
|
package/dist/ToolbarButton.d.ts
CHANGED
|
@@ -109,6 +109,12 @@ declare class ToolbarButton extends ToolbarItem {
|
|
|
109
109
|
* @public
|
|
110
110
|
*/
|
|
111
111
|
width?: string;
|
|
112
|
+
/**
|
|
113
|
+
* Defines if the toolbar button is hidden.
|
|
114
|
+
* @private
|
|
115
|
+
* @default false
|
|
116
|
+
*/
|
|
117
|
+
hidden: boolean;
|
|
112
118
|
get styles(): {
|
|
113
119
|
width: string | undefined;
|
|
114
120
|
display: string;
|
package/dist/ToolbarButton.js
CHANGED
|
@@ -62,6 +62,12 @@ let ToolbarButton = class ToolbarButton extends ToolbarItem {
|
|
|
62
62
|
* @public
|
|
63
63
|
*/
|
|
64
64
|
this.accessibilityAttributes = {};
|
|
65
|
+
/**
|
|
66
|
+
* Defines if the toolbar button is hidden.
|
|
67
|
+
* @private
|
|
68
|
+
* @default false
|
|
69
|
+
*/
|
|
70
|
+
this.hidden = false;
|
|
65
71
|
}
|
|
66
72
|
get styles() {
|
|
67
73
|
return {
|
|
@@ -116,6 +122,9 @@ __decorate([
|
|
|
116
122
|
__decorate([
|
|
117
123
|
property()
|
|
118
124
|
], ToolbarButton.prototype, "width", void 0);
|
|
125
|
+
__decorate([
|
|
126
|
+
property({ type: Boolean })
|
|
127
|
+
], ToolbarButton.prototype, "hidden", void 0);
|
|
119
128
|
ToolbarButton = __decorate([
|
|
120
129
|
customElement({
|
|
121
130
|
tag: "ui5-toolbar-button",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolbarButton.js","sourceRoot":"","sources":["../src/ToolbarButton.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAI5E,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAC/D,OAAO,4BAA4B,MAAM,mCAAmC,CAAC;AAE7E,OAAO,uBAAuB,MAAM,gDAAgD,CAAC;AAErF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAI3D;;;;;;;;;;;;;;GAcG;AAkBH,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,WAAW;IAAvC;;QACC;;;;;;WAMG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAEjB;;;;WAIG;QAEH,WAAM,GAAsB,SAAS,CAAC;QAuDtC;;;;;;;;;;;;;;;;WAgBG;QAEH,4BAAuB,GAAyC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ToolbarButton.js","sourceRoot":"","sources":["../src/ToolbarButton.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAI5E,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAC/D,OAAO,4BAA4B,MAAM,mCAAmC,CAAC;AAE7E,OAAO,uBAAuB,MAAM,gDAAgD,CAAC;AAErF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAI3D;;;;;;;;;;;;;;GAcG;AAkBH,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,WAAW;IAAvC;;QACC;;;;;;WAMG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAEjB;;;;WAIG;QAEH,WAAM,GAAsB,SAAS,CAAC;QAuDtC;;;;;;;;;;;;;;;;WAgBG;QAEH,4BAAuB,GAAyC,EAAE,CAAC;QAoBnE;;;;WAIM;QAEN,WAAM,GAAG,KAAK,CAAC;IA4BhB,CAAC;IA1BA,IAAI,MAAM;QACT,OAAO;YACN,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc;SAC9C,CAAC;IACH,CAAC;IAED,IAAI,YAAY;QACf,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,KAAK,eAAe;QACzB,OAAO,qBAAqB,CAAC;IAC9B,CAAC;IAED,MAAM,KAAK,sBAAsB;QAChC,OAAO,4BAA4B,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,CAAQ;QACf,CAAC,CAAC,wBAAwB,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,MAAqB,EAAE,CAAC,CAAC;QAC5F,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChD,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;QAC3C,CAAC;IACF,CAAC;CACD,CAAA;AAvIA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+CACX;AAQjB;IADC,QAAQ,EAAE;6CAC2B;AAWtC;IADC,QAAQ,EAAE;2CACE;AAgBb;IADC,QAAQ,EAAE;8CACM;AAUjB;IADC,QAAQ,EAAE;8CACK;AAQhB;IADC,QAAQ,EAAE;qDACa;AAQxB;IADC,QAAQ,EAAE;wDACgB;AAoB3B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8DACwC;AAQnE;IADC,QAAQ,EAAE;2CACG;AAUd;IADC,QAAQ,EAAE;4CACI;AAQf;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;6CACb;AApHV,aAAa;IAjBlB,aAAa,CAAC;QACd,GAAG,EAAE,oBAAoB;QACzB,MAAM,EAAE,uBAAuB;KAC/B,CAAC;IAEF;;;;;;;OAOG;;IACF,KAAK,CAAC,OAAO,EAAE;QACf,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;KAChB,CAAC;GACI,aAAa,CAgJlB;AAED,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAEnC,aAAa,CAAC,MAAM,EAAE,CAAC;AAEvB,eAAe,aAAa,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport type { ButtonAccessibilityAttributes } from \"./Button.js\";\nimport type ButtonDesign from \"./types/ButtonDesign.js\";\n\nimport ToolbarItem from \"./ToolbarItem.js\";\nimport ToolbarButtonTemplate from \"./ToolbarButtonTemplate.js\";\nimport ToolbarPopoverButtonTemplate from \"./ToolbarPopoverButtonTemplate.js\";\n\nimport ToolbarButtonPopoverCss from \"./generated/themes/ToolbarButtonPopover.css.js\";\n\nimport { registerToolbarItem } from \"./ToolbarRegistry.js\";\n\ntype ToolbarButtonAccessibilityAttributes = ButtonAccessibilityAttributes;\n\n/**\n * @class\n *\n * ### Overview\n * The `ui5-toolbar-button` represents an abstract action,\n * used in the `ui5-toolbar`.\n *\n * ### ES6 Module Import\n * `import \"@ui5/webcomponents/dist/ToolbarButton.js\";`\n * @constructor\n * @abstract\n * @extends ToolbarItem\n * @public\n * @since 1.17.0\n */\n@customElement({\n\ttag: \"ui5-toolbar-button\",\n\tstyles: ToolbarButtonPopoverCss,\n})\n\n/**\n * Fired when the component is activated either with a\n * mouse/tap or by using the Enter or Space key.\n *\n * **Note:** The event will not be fired if the `disabled`\n * property is set to `true`.\n * @public\n */\n@event(\"click\", {\n\tbubbles: true,\n\tcancelable: true,\n})\nclass ToolbarButton extends ToolbarItem {\n\t/**\n\t * Defines if the action is disabled.\n\t *\n\t * **Note:** a disabled action can't be pressed or focused, and it is not in the tab chain.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines the action design.\n\t * @default \"Default\"\n\t * @public\n\t */\n\t@property()\n\tdesign: `${ButtonDesign}` = \"Default\";\n\n\t/**\n\t * Defines the `icon` source URI.\n\t *\n\t * **Note:** SAP-icons font provides numerous buil-in icons. To find all the available icons, see the\n\t * [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ticon?: string\n\n\t/**\n\t * Defines the icon, displayed as graphical element within the component after the button text.\n\t *\n\t * **Note:** It is highly recommended to use `endIcon` property only together with `icon` and/or `text` properties.\n\t * Usage of `endIcon` only should be avoided.\n\t *\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * Example:\n\t * See all the available icons within the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tendIcon?: string;\n\n\t/**\n\t * Defines the tooltip of the component.\n\t *\n\t * **Note:** A tooltip attribute should be provided for icon-only buttons, in order to represent their exact meaning/function.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ttooltip?: string\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the additional accessibility attributes that will be applied to the component.\n\t *\n\t * The following fields are supported:\n\t *\n\t * - **expanded**: Indicates whether the button, or another grouping element it controls, is currently expanded or collapsed.\n\t * Accepts the following string values: `true` or `false`\n\t *\n\t * - **hasPopup**: Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by the button.\n\t * Accepts the following string values: `dialog`, `grid`, `listbox`, `menu` or `tree`.\n\t *\n\t * - **controls**: Identifies the element (or elements) whose contents or presence are controlled by the button element.\n\t * Accepts a lowercase string value.\n\t *\n\t * @default {}\n\t * @public\n\t */\n\t@property({ type: Object })\n\taccessibilityAttributes: ToolbarButtonAccessibilityAttributes = {};\n\n\t/**\n\t * Button text\n\t * @public\n\t * @default undefined\n\t */\n\t@property()\n\ttext?: string;\n\n\t/**\n\t * Defines the width of the button.\n\t *\n\t * **Note:** all CSS sizes are supported - 'percentage', 'px', 'rem', 'auto', etc.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\twidth?: string;\n\n\t/**\n * Defines if the toolbar button is hidden.\n * @private\n * @default false\n */\n\t@property({ type: Boolean })\n\thidden = false;\n\n\tget styles() {\n\t\treturn {\n\t\t\twidth: this.width,\n\t\t\tdisplay: this.hidden ? \"none\" : \"inline-block\",\n\t\t};\n\t}\n\n\tget containsText() {\n\t\treturn true;\n\t}\n\n\tstatic get toolbarTemplate() {\n\t\treturn ToolbarButtonTemplate;\n\t}\n\n\tstatic get toolbarPopoverTemplate() {\n\t\treturn ToolbarPopoverButtonTemplate;\n\t}\n\n\tonClick(e: Event) {\n\t\te.stopImmediatePropagation();\n\t\tconst prevented = !this.fireDecoratorEvent(\"click\", { targetRef: e.target as HTMLElement });\n\t\tif (!prevented && !this.preventOverflowClosing) {\n\t\t\tthis.fireDecoratorEvent(\"close-overflow\");\n\t\t}\n\t}\n}\n\nregisterToolbarItem(ToolbarButton);\n\nToolbarButton.define();\n\nexport default ToolbarButton;\n\nexport type {\n\tToolbarButtonAccessibilityAttributes,\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):not([focused]):hover){box-shadow:var(--ui5-v2-
|
|
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):not([focused]):hover){box-shadow:var(--ui5-v2-9-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-9-0-rc-0_avatar_outline);outline-offset:var(--_ui5-v2-9-0-rc-0_avatar_focus_offset)}:host([disabled]){opacity:var(--sapContent_DisabledOpacity)}:host{height:3rem;width:3rem;border-radius:50%;border:var(--ui5-v2-9-0-rc-0-avatar-initials-border);outline:none;color:var(--ui5-v2-9-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-9-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-9-0-rc-0_avatar_fontsize_S)}:host([_size="M"]),:host([size="M"]){min-height:4rem;min-width:4rem;font-size:var(--_ui5-v2-9-0-rc-0_avatar_fontsize_M)}:host([_size="L"]),:host([size="L"]){min-height:5rem;min-width:5rem;font-size:var(--_ui5-v2-9-0-rc-0_avatar_fontsize_L)}:host([_size="XL"]),:host([size="XL"]){min-height:7rem;min-width:7rem;font-size:var(--_ui5-v2-9-0-rc-0_avatar_fontsize_XL)}:host .ui5-avatar-icon{height:var(--_ui5-v2-9-0-rc-0_avatar_fontsize_S);width:var(--_ui5-v2-9-0-rc-0_avatar_fontsize_S);color:inherit}:host([_size="XS"]) .ui5-avatar-icon,:host([size="XS"]) .ui5-avatar-icon{height:var(--_ui5-v2-9-0-rc-0_avatar_icon_XS);width:var(--_ui5-v2-9-0-rc-0_avatar_icon_XS)}:host([_size="S"]) .ui5-avatar-icon,:host([size="S"]) .ui5-avatar-icon{height:var(--_ui5-v2-9-0-rc-0_avatar_icon_S);width:var(--_ui5-v2-9-0-rc-0_avatar_icon_S)}:host([_size="M"]) .ui5-avatar-icon,:host([size="M"]) .ui5-avatar-icon{height:var(--_ui5-v2-9-0-rc-0_avatar_icon_M);width:var(--_ui5-v2-9-0-rc-0_avatar_icon_M)}:host([_size="L"]) .ui5-avatar-icon,:host([size="L"]) .ui5-avatar-icon{height:var(--_ui5-v2-9-0-rc-0_avatar_icon_L);width:var(--_ui5-v2-9-0-rc-0_avatar_icon_L)}:host([_size="XL"]) .ui5-avatar-icon,:host([size="XL"]) .ui5-avatar-icon{height:var(--_ui5-v2-9-0-rc-0_avatar_icon_XL);width:var(--_ui5-v2-9-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-9-0-rc-0-avatar-border-radius)}:host([shape="Square"]) ::slotted(*){border-radius:calc(var(--ui5-v2-9-0-rc-0-avatar-border-radius) - var(--ui5-v2-9-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-9-0-rc-0-avatar-accent6);color:var(--ui5-v2-9-0-rc-0-avatar-accent6-color);border-color:var(--ui5-v2-9-0-rc-0-avatar-accent6-border-color)}:host([_color-scheme="Accent6"][interactive]:not([hidden]):not([disabled]):not(:active):hover),:host([ui5-avatar][color-scheme="Accent6"][interactive]:not([hidden]):not([disabled]):not(:active):hover){background-color:var(--sapAvatar_6_Hover_Background)}:host([_color-scheme="Accent1"]),:host([ui5-avatar][color-scheme="Accent1"]){background-color:var(--ui5-v2-9-0-rc-0-avatar-accent1);color:var(--ui5-v2-9-0-rc-0-avatar-accent1-color);border-color:var(--ui5-v2-9-0-rc-0-avatar-accent1-border-color)}:host([_color-scheme="Accent1"][interactive]:not([hidden]):not([disabled]):not(:active):hover),:host([ui5-avatar][color-scheme="Accent1"][interactive]:not([hidden]):not([disabled]):not(:active):hover){background-color:var(--sapAvatar_1_Hover_Background)}:host([_color-scheme="Accent2"]),:host([ui5-avatar][color-scheme="Accent2"]){background-color:var(--ui5-v2-9-0-rc-0-avatar-accent2);color:var(--ui5-v2-9-0-rc-0-avatar-accent2-color);border-color:var(--ui5-v2-9-0-rc-0-avatar-accent2-border-color)}:host([_color-scheme="Accent2"][interactive]:not([hidden]):not([disabled]):not(:active):hover),:host([ui5-avatar][color-scheme="Accent2"][interactive]:not([hidden]):not([disabled]):not(:active):hover){background-color:var(--sapAvatar_2_Hover_Background)}:host([_color-scheme="Accent3"]),:host([ui5-avatar][color-scheme="Accent3"]){background-color:var(--ui5-v2-9-0-rc-0-avatar-accent3);color:var(--ui5-v2-9-0-rc-0-avatar-accent3-color);border-color:var(--ui5-v2-9-0-rc-0-avatar-accent3-border-color)}:host([_color-scheme="Accent3"][interactive]:not([hidden]):not([disabled]):not(:active):hover),:host([ui5-avatar][color-scheme="Accent3"][interactive]:not([hidden]):not([disabled]):not(:active):hover){background-color:var(--sapAvatar_3_Hover_Background)}:host([_color-scheme="Accent4"]),:host([ui5-avatar][color-scheme="Accent4"]){background-color:var(--ui5-v2-9-0-rc-0-avatar-accent4);color:var(--ui5-v2-9-0-rc-0-avatar-accent4-color);border-color:var(--ui5-v2-9-0-rc-0-avatar-accent4-border-color)}:host([_color-scheme="Accent4"][interactive]:not([hidden]):not([disabled]):not(:active):hover),:host([ui5-avatar][color-scheme="Accent4"][interactive]:not([hidden]):not([disabled]):not(:active):hover){background-color:var(--sapAvatar_4_Hover_Background)}:host([_color-scheme="Accent5"]),:host([ui5-avatar][color-scheme="Accent5"]){background-color:var(--ui5-v2-9-0-rc-0-avatar-accent5);color:var(--ui5-v2-9-0-rc-0-avatar-accent5-color);border-color:var(--ui5-v2-9-0-rc-0-avatar-accent5-border-color)}:host([_color-scheme="Accent5"][interactive]:not([hidden]):not([disabled]):not(:active):hover),:host([ui5-avatar][color-scheme="Accent5"][interactive]:not([hidden]):not([disabled]):not(:active):hover){background-color:var(--sapAvatar_5_Hover_Background)}:host([_color-scheme="Accent7"]),:host([ui5-avatar][color-scheme="Accent7"]){background-color:var(--ui5-v2-9-0-rc-0-avatar-accent7);color:var(--ui5-v2-9-0-rc-0-avatar-accent7-color);border-color:var(--ui5-v2-9-0-rc-0-avatar-accent7-border-color)}:host([_color-scheme="Accent7"][interactive]:not([hidden]):not([disabled]):not(:active):hover),:host([ui5-avatar][color-scheme="Accent7"][interactive]:not([hidden]):not([disabled]):not(:active):hover){background-color:var(--sapAvatar_7_Hover_Background)}:host([_color-scheme="Accent8"]),:host([ui5-avatar][color-scheme="Accent8"]){background-color:var(--ui5-v2-9-0-rc-0-avatar-accent8);color:var(--ui5-v2-9-0-rc-0-avatar-accent8-color);border-color:var(--ui5-v2-9-0-rc-0-avatar-accent8-border-color)}:host([_color-scheme="Accent8"][interactive]:not([hidden]):not([disabled]):not(:active):hover),:host([ui5-avatar][color-scheme="Accent8"][interactive]:not([hidden]):not([disabled]):not(:active):hover){background-color:var(--sapAvatar_8_Hover_Background)}:host([_color-scheme="Accent9"]),:host([ui5-avatar][color-scheme="Accent9"]){background-color:var(--ui5-v2-9-0-rc-0-avatar-accent9);color:var(--ui5-v2-9-0-rc-0-avatar-accent9-color);border-color:var(--ui5-v2-9-0-rc-0-avatar-accent9-border-color)}:host([_color-scheme="Accent9"][interactive]:not([hidden]):not([disabled]):not(:active):hover),:host([ui5-avatar][color-scheme="Accent9"][interactive]:not([hidden]):not([disabled]):not(:active):hover){background-color:var(--sapAvatar_9_Hover_Background)}:host([_color-scheme="Accent10"]),:host([ui5-avatar][color-scheme="Accent10"]){background-color:var(--ui5-v2-9-0-rc-0-avatar-accent10);color:var(--ui5-v2-9-0-rc-0-avatar-accent10-color);border-color:var(--ui5-v2-9-0-rc-0-avatar-accent10-border-color)}:host([_color-scheme="Accent10"][interactive]:not([hidden]):not([disabled]):not(:active):hover),:host([ui5-avatar][color-scheme="Accent10"][interactive]:not([hidden]):not([disabled]):not(:active):hover){background-color:var(--sapAvatar_10_Hover_Background)}:host([_color-scheme="Placeholder"]),:host([ui5-avatar][color-scheme="Placeholder"]){background-color:var(--ui5-v2-9-0-rc-0-avatar-placeholder);color:var(--ui5-v2-9-0-rc-0-avatar-placeholder-color);border-color:var(--sapAvatar_Lite_BorderColor)}:host([_has-image]){color:var(--ui5-v2-9-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"]){pointer-events:initial;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-9-0-rc-0-tag-height: 1.125rem;--_ui5-v2-9-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-9-0-rc-0-tag-height: 1.25rem;--_ui5-v2-9-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-9-0-rc-0-tag-height: 1.75rem;--_ui5-v2-9-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 +1 @@
|
|
|
1
|
-
:host{-webkit-tap-highlight-color:rgba(0,0,0,0)}:host(:not([hidden])){display:block;width:100%}:host{--_ui5-v2-
|
|
1
|
+
:host{-webkit-tap-highlight-color:rgba(0,0,0,0)}:host(:not([hidden])){display:block;width:100%}:host{--_ui5-v2-9-0-rc-0_button_focused_border: var(--_ui5-v2-9-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-9-0-rc-0_avatar_outline);outline-offset:var(--_ui5-v2-9-0-rc-0_avatar_focus_offset);border-radius:var(--_ui5-v2-9-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-9-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-9-0-rc-0_avatar_outline);outline-offset:var(--_ui5-v2-9-0-rc-0_avatar_overflow_button_focus_offset)}.ui5-avatar-group-overflow-btn::part(button):focus-visible:after{outline:var(--_ui5-v2-9-0-rc-0_avatar_outline);outline-offset:var(--_ui5-v2-9-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}
|
package/dist/css/themes/Bar.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:host{background-color:var(--sapPageHeader_Background);height:var(--_ui5-v2-
|
|
1
|
+
:host{background-color:var(--sapPageHeader_Background);height:var(--_ui5-v2-9-0-rc-0_bar_base_height);width:100%;box-shadow:var(--sapContent_HeaderShadow);display:block}.ui5-bar-root{container-type:size;display:flex;align-items:center;justify-content:space-between;height:100%;width:100%;background-color:inherit;box-shadow:inherit;border-radius:inherit}.ui5-bar-root .ui5-bar-startcontent-container{padding-inline-start:var(--_ui5-v2-9-0-rc-0_bar-start-container-padding-start);display:flex;flex-direction:row;align-items:center;justify-content:flex-start}.ui5-bar-root .ui5-bar-content-container{min-width:calc(30% - calc(var(--_ui5-v2-9-0-rc-0_bar-start-container-padding-start) + var(--_ui5-v2-9-0-rc-0_bar-end-container-padding-end) + (2*var(--_ui5-v2-9-0-rc-0_bar-mid-container-padding-start-end))))}.ui5-bar-root.ui5-bar-root-shrinked .ui5-bar-content-container{min-width:0px;overflow:hidden;height:100%}.ui5-bar-root .ui5-bar-endcontent-container{padding-inline-end:var(--_ui5-v2-9-0-rc-0_bar-end-container-padding-end);display:flex;flex-direction:row;align-items:center;justify-content:flex-end}.ui5-bar-root .ui5-bar-midcontent-container{padding:0 var(--_ui5-v2-9-0-rc-0_bar-mid-container-padding-start-end);display:flex;flex-direction:row;align-items:center;justify-content:center}:host([design="Footer"]){background-color:var(--sapPageFooter_Background);border-top:.0625rem solid var(--sapPageFooter_BorderColor);box-shadow:none}:host([design="Subheader"]){height:var(--_ui5-v2-9-0-rc-0_bar_subheader_height);margin-top:var(--_ui5-v2-9-0-rc-0_bar_subheader_margin-top)}:host([design="FloatingFooter"]){border-radius:var(--sapElement_BorderCornerRadius);background-color:var(--sapPageFooter_Background);box-shadow:var(--sapContent_Shadow1);border:none}::slotted(*){margin:0 .25rem}@container (width < 600px){*{--_ui5-v2-9-0-rc-0_bar-start-container-padding-start: var(--_ui5-v2-9-0-rc-0_bar-start-container-padding-start_S);--_ui5-v2-9-0-rc-0_bar-end-container-padding-end: var(--_ui5-v2-9-0-rc-0_bar-end-container-padding-end_S) }}@container (width > 1439px){*{--_ui5-v2-9-0-rc-0_bar-start-container-padding-start: var(--_ui5-v2-9-0-rc-0_bar-start-container-padding-start_XL);--_ui5-v2-9-0-rc-0_bar-end-container-padding-end: var(--_ui5-v2-9-0-rc-0_bar-end-container-padding-end_XL)}}
|