@ui5/webcomponents 2.15.0-rc.2 → 2.15.0-rc.3
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 +13 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/ComboBox.d.ts +1 -0
- package/dist/ComboBox.js +9 -1
- package/dist/ComboBox.js.map +1 -1
- package/dist/ComboBoxPopoverTemplate.js +2 -3
- package/dist/ComboBoxPopoverTemplate.js.map +1 -1
- package/dist/Input.d.ts +1 -0
- package/dist/Input.js +4 -1
- package/dist/Input.js.map +1 -1
- package/dist/MultiComboBox.d.ts +1 -0
- package/dist/MultiComboBox.js +4 -1
- package/dist/MultiComboBox.js.map +1 -1
- package/dist/MultiComboBoxPopoverTemplate.js +2 -3
- package/dist/MultiComboBoxPopoverTemplate.js.map +1 -1
- package/dist/TabContainer.d.ts +1 -0
- package/dist/TabContainer.js +9 -2
- package/dist/TabContainer.js.map +1 -1
- package/dist/TokenizerPopoverTemplate.js +1 -1
- package/dist/TokenizerPopoverTemplate.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/DatePickerPopover.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/DynamicDateRange.css +1 -1
- package/dist/css/themes/DynamicDateRangePopover.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/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/ToolbarButton.css +1 -1
- package/dist/css/themes/ToolbarPopover.css +1 -1
- package/dist/css/themes/ToolbarSeparator.css +1 -1
- package/dist/css/themes/TreeItem.css +1 -1
- package/dist/css/themes/ValueStateMessage.css +1 -1
- package/dist/css/themes/ValueStateVariables.css +1 -1
- package/dist/css/themes/YearPicker.css +1 -1
- package/dist/css/themes/YearRangePicker.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 +6 -6
- package/dist/custom-elements.json +6 -6
- package/dist/features/InputSuggestionsTemplate.js +2 -3
- package/dist/features/InputSuggestionsTemplate.js.map +1 -1
- 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_GB.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_id.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 +4 -1
- package/dist/generated/i18n/i18n-defaults.js +4 -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/DatePickerPopover.css.d.ts +1 -1
- package/dist/generated/themes/DatePickerPopover.css.js +1 -1
- package/dist/generated/themes/DatePickerPopover.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/DynamicDateRange.css.d.ts +1 -1
- package/dist/generated/themes/DynamicDateRange.css.js +1 -1
- package/dist/generated/themes/DynamicDateRange.css.js.map +1 -1
- package/dist/generated/themes/DynamicDateRangePopover.css.d.ts +1 -1
- package/dist/generated/themes/DynamicDateRangePopover.css.js +1 -1
- package/dist/generated/themes/DynamicDateRangePopover.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/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/ToolbarButton.css.d.ts +1 -1
- package/dist/generated/themes/ToolbarButton.css.js +1 -1
- package/dist/generated/themes/ToolbarButton.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/ToolbarSeparator.css.d.ts +1 -1
- package/dist/generated/themes/ToolbarSeparator.css.js +1 -1
- package/dist/generated/themes/ToolbarSeparator.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/ValueStateVariables.css.d.ts +1 -1
- package/dist/generated/themes/ValueStateVariables.css.js +1 -1
- package/dist/generated/themes/ValueStateVariables.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/YearRangePicker.css.d.ts +1 -1
- package/dist/generated/themes/YearRangePicker.css.js +1 -1
- package/dist/generated/themes/YearRangePicker.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/web-types.json +1 -1
- package/package.json +12 -13
- package/src/ComboBoxPopoverTemplate.tsx +8 -9
- package/src/MultiComboBoxPopoverTemplate.tsx +8 -9
- package/src/TokenizerPopoverTemplate.tsx +1 -0
- package/src/features/InputSuggestionsTemplate.tsx +8 -9
- package/src/i18n/messagebundle.properties +10 -1
- package/src/i18n/messagebundle_ar.properties +16 -2
- package/src/i18n/messagebundle_bg.properties +16 -2
- package/src/i18n/messagebundle_ca.properties +16 -2
- package/src/i18n/messagebundle_cnr.properties +16 -2
- package/src/i18n/messagebundle_cs.properties +16 -2
- package/src/i18n/messagebundle_cy.properties +16 -2
- package/src/i18n/messagebundle_da.properties +16 -2
- package/src/i18n/messagebundle_de.properties +16 -2
- package/src/i18n/messagebundle_el.properties +16 -2
- package/src/i18n/messagebundle_en.properties +0 -282
- package/src/i18n/messagebundle_en_GB.properties +16 -2
- package/src/i18n/messagebundle_es.properties +16 -2
- package/src/i18n/messagebundle_es_MX.properties +16 -2
- package/src/i18n/messagebundle_et.properties +16 -2
- package/src/i18n/messagebundle_fi.properties +16 -2
- package/src/i18n/messagebundle_fr.properties +16 -2
- package/src/i18n/messagebundle_fr_CA.properties +16 -2
- package/src/i18n/messagebundle_hi.properties +16 -2
- package/src/i18n/messagebundle_hr.properties +16 -2
- package/src/i18n/messagebundle_hu.properties +16 -2
- package/src/i18n/messagebundle_id.properties +17 -3
- package/src/i18n/messagebundle_it.properties +16 -2
- package/src/i18n/messagebundle_iw.properties +16 -2
- package/src/i18n/messagebundle_ja.properties +16 -2
- package/src/i18n/messagebundle_kk.properties +16 -2
- package/src/i18n/messagebundle_ko.properties +16 -2
- package/src/i18n/messagebundle_lt.properties +16 -2
- package/src/i18n/messagebundle_lv.properties +16 -2
- package/src/i18n/messagebundle_mk.properties +16 -2
- package/src/i18n/messagebundle_ms.properties +16 -2
- package/src/i18n/messagebundle_nl.properties +16 -2
- package/src/i18n/messagebundle_no.properties +16 -2
- package/src/i18n/messagebundle_pl.properties +17 -3
- package/src/i18n/messagebundle_pt.properties +16 -2
- package/src/i18n/messagebundle_pt_PT.properties +16 -2
- package/src/i18n/messagebundle_ro.properties +16 -2
- package/src/i18n/messagebundle_ru.properties +16 -2
- package/src/i18n/messagebundle_sh.properties +16 -2
- package/src/i18n/messagebundle_sk.properties +16 -2
- package/src/i18n/messagebundle_sl.properties +16 -2
- package/src/i18n/messagebundle_sr.properties +16 -2
- package/src/i18n/messagebundle_sv.properties +16 -2
- package/src/i18n/messagebundle_th.properties +16 -2
- package/src/i18n/messagebundle_tr.properties +16 -2
- package/src/i18n/messagebundle_uk.properties +16 -2
- package/src/i18n/messagebundle_vi.properties +16 -2
- package/src/i18n/messagebundle_zh_CN.properties +16 -2
- package/src/i18n/messagebundle_zh_TW.properties +16 -2
- package/src/themes/ResponsivePopoverCommon.css +5 -1
- package/src/themes/TokenizerPopover.css +0 -3
- package/src/themes/ValueStateMessage.css +1 -0
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ui5/webcomponents-base/jsx-runtime";
|
|
2
|
-
import decline from "@ui5/webcomponents-icons/dist/decline.js";
|
|
3
2
|
import multiSelectAll from "@ui5/webcomponents-icons/dist/multiselect-all.js";
|
|
4
3
|
import ResponsivePopover from "./ResponsivePopover.js";
|
|
5
4
|
import Button from "./Button.js";
|
|
@@ -11,13 +10,13 @@ import List from "./List.js";
|
|
|
11
10
|
import Popover from "./Popover.js";
|
|
12
11
|
import CheckBox from "./CheckBox.js";
|
|
13
12
|
export default function MultiComboBoxPopoverTemplate() {
|
|
14
|
-
return (_jsxs(_Fragment, { children: [_jsxs(ResponsivePopover, { placement: "Bottom", horizontalAlign: "Start", class: this.classes.popover, id: this.responsivePopoverId, hideArrow: true, preventInitialFocus: true, style: this.styles.suggestionsPopover, "onui5-selection-change": this._listSelectionChange, onClose: this._afterClose, onBeforeOpen: this._beforeOpen, onBeforeClose: this._beforeClose, onOpen: this._afterOpen, onFocusOut: this._onPopoverFocusOut, accessibleName: this._popupLabel, open: this.open, opener: this, children: [this._isPhone && _jsxs(_Fragment, { children: [_jsxs("div", { slot: "header", class: "ui5-responsive-popover-header", style: this.styles.popoverHeader, children: [
|
|
13
|
+
return (_jsxs(_Fragment, { children: [_jsxs(ResponsivePopover, { placement: "Bottom", horizontalAlign: "Start", class: this.classes.popover, id: this.responsivePopoverId, hideArrow: true, preventInitialFocus: true, style: this.styles.suggestionsPopover, "onui5-selection-change": this._listSelectionChange, onClose: this._afterClose, onBeforeOpen: this._beforeOpen, onBeforeClose: this._beforeClose, onOpen: this._afterOpen, onFocusOut: this._onPopoverFocusOut, accessibleName: this._popupLabel, open: this.open, opener: this, children: [this._isPhone && _jsxs(_Fragment, { children: [_jsxs("div", { slot: "header", class: "ui5-responsive-popover-header", style: this.styles.popoverHeader, children: [_jsx("div", { class: "row", children: _jsx("span", { children: this._headerTitleText }) }), _jsxs("div", { class: "row", children: [_jsx(Input, { onInput: this._handleMobileInput, onKeyDown: this._onMobileInputKeydown, placeholder: this.placeholder, valueState: this._dialogInputValueState, showClearIcon: this.showClearIcon, noTypeahead: this.noTypeahead, children: this._filteredItems.map(item => (_jsx(SuggestionItem, { text: item.text, additionalText: item.additionalText }))) }), _jsx(ToggleButton, { slot: "header", class: "ui5-multi-combobox-toggle-button", icon: multiSelectAll, design: "Transparent", pressed: this._showAllItemsButtonPressed, onClick: this.filterSelectedItems, accessibleName: this._showSelectedButtonAccessibleNameText })] })] }), "\t\t\t\t", this.hasValueStateMessage &&
|
|
15
14
|
_jsxs("div", { class: this.classes.popoverValueState, style: this.styles.popoverValueStateMessage, children: [_jsx(Icon, { class: "ui5-input-value-state-message-icon", name: this._valueStateMessageIcon }), this.open && valueStateMessage.call(this)] }), selectAllWrapper.call(this)] }), !this._isPhone && _jsxs(_Fragment, { children: [this.hasValueStateMessage &&
|
|
16
15
|
_jsxs("div", { slot: "header", onKeyDown: this._onListHeaderKeydown, class: this.classes.responsivePopoverHeaderValueState, style: this.styles.popoverValueStateMessage, children: [_jsx(Icon, { class: "ui5-input-value-state-message-icon", name: this._valueStateMessageIcon }), this.open && valueStateMessage.call(this)] }), selectAllWrapper.call(this)] }), this.filterSelected ?
|
|
17
16
|
_jsx(List, { separators: "None", selectionMode: "Multiple", class: "ui5-multi-combobox-all-items-list", accessibleRole: "ListBox", children: this.selectedItems.map(item => _jsx("slot", { name: item._individualSlot })) })
|
|
18
17
|
:
|
|
19
18
|
_jsx(List, { separators: "None", selectionMode: "Multiple", class: "ui5-multi-combobox-all-items-list", accessibleRole: "ListBox", onKeyDown: this._onItemKeydown, children: this._filteredItems.map(item => _jsx("slot", { name: item._individualSlot })) }), this._isPhone &&
|
|
20
|
-
|
|
19
|
+
_jsxs("div", { slot: "footer", class: "ui5-responsive-popover-footer", children: [_jsx(Button, { design: "Emphasized", onClick: this.handleOK, children: this._dialogOkButton }), _jsx(Button, { class: "ui5-responsive-popover-close-btn", design: "Transparent", onClick: this.handleCancel, children: this._dialogCancelButton })] })] }), this.hasValueStateMessage &&
|
|
21
20
|
_jsx(Popover
|
|
22
21
|
// skipRegistryUpdate={true}
|
|
23
22
|
, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiComboBoxPopoverTemplate.js","sourceRoot":"","sources":["../src/MultiComboBoxPopoverTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import decline from \"@ui5/webcomponents-icons/dist/decline.js\";\nimport multiSelectAll from \"@ui5/webcomponents-icons/dist/multiselect-all.js\";\nimport type MultiComboBox from \"./MultiComboBox.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport Button from \"./Button.js\";\nimport Input from \"./Input.js\";\nimport ToggleButton from \"./ToggleButton.js\";\nimport SuggestionItem from \"./SuggestionItem.js\";\nimport Icon from \"./Icon.js\";\nimport List from \"./List.js\";\nimport Popover from \"./Popover.js\";\nimport CheckBox from \"./CheckBox.js\";\n\nexport default function MultiComboBoxPopoverTemplate(this: MultiComboBox) {\n\treturn (<>\n\t\t<ResponsivePopover\n\t\t\tplacement=\"Bottom\"\n\t\t\thorizontalAlign=\"Start\"\n\t\t\tclass={this.classes.popover}\n\t\t\tid={this.responsivePopoverId}\n\t\t\thideArrow={true}\n\t\t\tpreventInitialFocus={true}\n\t\t\tstyle={this.styles.suggestionsPopover}\n\t\t\tonui5-selection-change={this._listSelectionChange}\n\t\t\tonClose={this._afterClose}\n\t\t\tonBeforeOpen={this._beforeOpen}\n\t\t\tonBeforeClose={this._beforeClose}\n\t\t\tonOpen={this._afterOpen}\n\t\t\tonFocusOut={this._onPopoverFocusOut}\n\t\t\taccessibleName={this._popupLabel}\n\t\t\topen={this.open}\n\t\t\topener={this}\n\t\t>\n\t\t\t{this._isPhone && <>\n\t\t\t\t<div slot=\"header\" class=\"ui5-responsive-popover-header\" style={this.styles.popoverHeader}>\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<span>{this._headerTitleText}</span>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclass=\"ui5-responsive-popover-close-btn\"\n\t\t\t\t\t\t\ticon={decline}\n\t\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\t\tonClick={this.handleCancel}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\tonInput={this._handleMobileInput}\n\t\t\t\t\t\t\tonKeyDown={this._onMobileInputKeydown}\n\t\t\t\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\t\t\t\tvalueState={this._dialogInputValueState}\n\t\t\t\t\t\t\tshowClearIcon={this.showClearIcon}\n\t\t\t\t\t\t\tnoTypeahead={this.noTypeahead}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{this._filteredItems.map(item => (\n\t\t\t\t\t\t\t\t<SuggestionItem text={item.text} additionalText={item.additionalText}></SuggestionItem>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</Input>\n\t\t\t\t\t\t<ToggleButton\n\t\t\t\t\t\t\tslot=\"header\"\n\t\t\t\t\t\t\tclass=\"ui5-multi-combobox-toggle-button\"\n\t\t\t\t\t\t\ticon={multiSelectAll}\n\t\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\t\tpressed={this._showAllItemsButtonPressed}\n\t\t\t\t\t\t\tonClick={this.filterSelectedItems}\n\t\t\t\t\t\t\taccessibleName={this._showSelectedButtonAccessibleNameText}\n\t\t\t\t\t\t></ToggleButton>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\t\t\t\t{this.hasValueStateMessage &&\n\t\t\t\t\t<div class={this.classes.popoverValueState} style={this.styles.popoverValueStateMessage}>\n\t\t\t\t\t\t<Icon class=\"ui5-input-value-state-message-icon\" name={this._valueStateMessageIcon}></Icon>\n\t\t\t\t\t\t{this.open && valueStateMessage.call(this)}\n\t\t\t\t\t</div>\n\t\t\t\t}\n\n\t\t\t\t{selectAllWrapper.call(this)}\n\t\t\t</>}\n\n\t\t\t{!this._isPhone && <>\n\t\t\t\t{this.hasValueStateMessage &&\n\t\t\t\t\t<div slot=\"header\" onKeyDown={this._onListHeaderKeydown} class={this.classes.responsivePopoverHeaderValueState} style={this.styles.popoverValueStateMessage}>\n\t\t\t\t\t\t<Icon class=\"ui5-input-value-state-message-icon\" name={this._valueStateMessageIcon}></Icon>\n\t\t\t\t\t\t{this.open && valueStateMessage.call(this)}\n\t\t\t\t\t</div>\n\t\t\t\t}\n\n\t\t\t\t{selectAllWrapper.call(this)}\n\t\t\t</>}\n\n\t\t\t{this.filterSelected ?\n\t\t\t\t<List separators=\"None\" selectionMode=\"Multiple\" class=\"ui5-multi-combobox-all-items-list\" accessibleRole=\"ListBox\">\n\t\t\t\t\t{this.selectedItems.map(item => <slot name={item._individualSlot}></slot>)}\n\t\t\t\t</List>\n\t\t\t\t:\n\t\t\t\t<List separators=\"None\" selectionMode=\"Multiple\" class=\"ui5-multi-combobox-all-items-list\" accessibleRole=\"ListBox\" onKeyDown={this._onItemKeydown}>\n\t\t\t\t\t{this._filteredItems.map(item => <slot name={item._individualSlot}></slot>)}\n\t\t\t\t</List>\n\t\t\t}\n\n\t\t\t{this._isPhone &&\n\t\t\t\t<div slot=\"footer\" class=\"ui5-responsive-popover-footer\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\tonClick={this.handleOK}\n\t\t\t\t\t>{this._dialogOkButton}</Button>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</ResponsivePopover>\n\n\t\t{this.hasValueStateMessage &&\n\t\t\t<Popover\n\t\t\t\t// skipRegistryUpdate={true}\n\t\t\t\tpreventInitialFocus={true}\n\t\t\t\tpreventFocusRestore={true}\n\t\t\t\thideArrow={true}\n\t\t\t\tclass=\"ui5-valuestatemessage-popover\"\n\t\t\t\tplacement=\"Bottom\"\n\t\t\t\thorizontalAlign={this._valueStatePopoverHorizontalAlign}\n\t\t\t\ttabIndex={-1}\n\t\t\t\topen={this.valueStateOpen}\n\t\t\t\topener={this}\n\t\t\t>\n\t\t\t\t<div slot=\"header\" class={this.classes.popoverValueState} style={this.styles.popoverHeader}>\n\t\t\t\t\t<Icon class=\"ui5-input-value-state-message-icon\" name={this._valueStateMessageIcon}></Icon>\n\t\t\t\t\t{this.valueStateOpen && valueStateMessage.call(this)}\n\t\t\t\t</div>\n\t\t\t</Popover>\n\t\t}\n\t</>);\n}\n\nfunction valueStateMessage(this: MultiComboBox) {\n\treturn this.shouldDisplayDefaultValueStateMessage ? this.valueStateDefaultText : <slot name=\"valueStateMessage\"></slot>;\n}\n\nfunction selectAllWrapper(this: MultiComboBox) {\n\tif (this.showSelectAll) {\n\t\treturn (\n\t\t\t<div class=\"ui5-mcb-select-all-header\" onKeyDown={this._onListHeaderKeydown} tabIndex={0}>\n\t\t\t\t<CheckBox\n\t\t\t\t\tdisabled={this.readonly}\n\t\t\t\t\tchecked={this._allSelected}\n\t\t\t\t\tclass=\"ui5-mcb-select-all-checkbox\"\n\t\t\t\t\ttext={this.selectAllCheckboxLabel}\n\t\t\t\t\tonChange={this._handleSelectAllCheckboxClick}\n\t\t\t\t></CheckBox>\n\t\t\t</div>\n\t\t);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"MultiComboBoxPopoverTemplate.js","sourceRoot":"","sources":["../src/MultiComboBoxPopoverTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import multiSelectAll from \"@ui5/webcomponents-icons/dist/multiselect-all.js\";\nimport type MultiComboBox from \"./MultiComboBox.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport Button from \"./Button.js\";\nimport Input from \"./Input.js\";\nimport ToggleButton from \"./ToggleButton.js\";\nimport SuggestionItem from \"./SuggestionItem.js\";\nimport Icon from \"./Icon.js\";\nimport List from \"./List.js\";\nimport Popover from \"./Popover.js\";\nimport CheckBox from \"./CheckBox.js\";\n\nexport default function MultiComboBoxPopoverTemplate(this: MultiComboBox) {\n\treturn (<>\n\t\t<ResponsivePopover\n\t\t\tplacement=\"Bottom\"\n\t\t\thorizontalAlign=\"Start\"\n\t\t\tclass={this.classes.popover}\n\t\t\tid={this.responsivePopoverId}\n\t\t\thideArrow={true}\n\t\t\tpreventInitialFocus={true}\n\t\t\tstyle={this.styles.suggestionsPopover}\n\t\t\tonui5-selection-change={this._listSelectionChange}\n\t\t\tonClose={this._afterClose}\n\t\t\tonBeforeOpen={this._beforeOpen}\n\t\t\tonBeforeClose={this._beforeClose}\n\t\t\tonOpen={this._afterOpen}\n\t\t\tonFocusOut={this._onPopoverFocusOut}\n\t\t\taccessibleName={this._popupLabel}\n\t\t\topen={this.open}\n\t\t\topener={this}\n\t\t>\n\t\t\t{this._isPhone && <>\n\t\t\t\t<div slot=\"header\" class=\"ui5-responsive-popover-header\" style={this.styles.popoverHeader}>\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<span>{this._headerTitleText}</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\tonInput={this._handleMobileInput}\n\t\t\t\t\t\t\tonKeyDown={this._onMobileInputKeydown}\n\t\t\t\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\t\t\t\tvalueState={this._dialogInputValueState}\n\t\t\t\t\t\t\tshowClearIcon={this.showClearIcon}\n\t\t\t\t\t\t\tnoTypeahead={this.noTypeahead}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{this._filteredItems.map(item => (\n\t\t\t\t\t\t\t\t<SuggestionItem text={item.text} additionalText={item.additionalText}></SuggestionItem>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</Input>\n\t\t\t\t\t\t<ToggleButton\n\t\t\t\t\t\t\tslot=\"header\"\n\t\t\t\t\t\t\tclass=\"ui5-multi-combobox-toggle-button\"\n\t\t\t\t\t\t\ticon={multiSelectAll}\n\t\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\t\tpressed={this._showAllItemsButtonPressed}\n\t\t\t\t\t\t\tonClick={this.filterSelectedItems}\n\t\t\t\t\t\t\taccessibleName={this._showSelectedButtonAccessibleNameText}\n\t\t\t\t\t\t></ToggleButton>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\t\t\t\t{this.hasValueStateMessage &&\n\t\t\t\t\t<div class={this.classes.popoverValueState} style={this.styles.popoverValueStateMessage}>\n\t\t\t\t\t\t<Icon class=\"ui5-input-value-state-message-icon\" name={this._valueStateMessageIcon}></Icon>\n\t\t\t\t\t\t{this.open && valueStateMessage.call(this)}\n\t\t\t\t\t</div>\n\t\t\t\t}\n\n\t\t\t\t{selectAllWrapper.call(this)}\n\t\t\t</>}\n\n\t\t\t{!this._isPhone && <>\n\t\t\t\t{this.hasValueStateMessage &&\n\t\t\t\t\t<div slot=\"header\" onKeyDown={this._onListHeaderKeydown} class={this.classes.responsivePopoverHeaderValueState} style={this.styles.popoverValueStateMessage}>\n\t\t\t\t\t\t<Icon class=\"ui5-input-value-state-message-icon\" name={this._valueStateMessageIcon}></Icon>\n\t\t\t\t\t\t{this.open && valueStateMessage.call(this)}\n\t\t\t\t\t</div>\n\t\t\t\t}\n\n\t\t\t\t{selectAllWrapper.call(this)}\n\t\t\t</>}\n\n\t\t\t{this.filterSelected ?\n\t\t\t\t<List separators=\"None\" selectionMode=\"Multiple\" class=\"ui5-multi-combobox-all-items-list\" accessibleRole=\"ListBox\">\n\t\t\t\t\t{this.selectedItems.map(item => <slot name={item._individualSlot}></slot>)}\n\t\t\t\t</List>\n\t\t\t\t:\n\t\t\t\t<List separators=\"None\" selectionMode=\"Multiple\" class=\"ui5-multi-combobox-all-items-list\" accessibleRole=\"ListBox\" onKeyDown={this._onItemKeydown}>\n\t\t\t\t\t{this._filteredItems.map(item => <slot name={item._individualSlot}></slot>)}\n\t\t\t\t</List>\n\t\t\t}\n\n\t\t\t{this._isPhone &&\n\t\t\t\t<div slot=\"footer\" class=\"ui5-responsive-popover-footer\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tdesign=\"Emphasized\"\n\t\t\t\t\t\tonClick={this.handleOK}\n\t\t\t\t\t>{this._dialogOkButton}</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclass=\"ui5-responsive-popover-close-btn\"\n\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\tonClick={this.handleCancel}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this._dialogCancelButton}\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</ResponsivePopover>\n\n\t\t{this.hasValueStateMessage &&\n\t\t\t<Popover\n\t\t\t\t// skipRegistryUpdate={true}\n\t\t\t\tpreventInitialFocus={true}\n\t\t\t\tpreventFocusRestore={true}\n\t\t\t\thideArrow={true}\n\t\t\t\tclass=\"ui5-valuestatemessage-popover\"\n\t\t\t\tplacement=\"Bottom\"\n\t\t\t\thorizontalAlign={this._valueStatePopoverHorizontalAlign}\n\t\t\t\ttabIndex={-1}\n\t\t\t\topen={this.valueStateOpen}\n\t\t\t\topener={this}\n\t\t\t>\n\t\t\t\t<div slot=\"header\" class={this.classes.popoverValueState} style={this.styles.popoverHeader}>\n\t\t\t\t\t<Icon class=\"ui5-input-value-state-message-icon\" name={this._valueStateMessageIcon}></Icon>\n\t\t\t\t\t{this.valueStateOpen && valueStateMessage.call(this)}\n\t\t\t\t</div>\n\t\t\t</Popover>\n\t\t}\n\t</>);\n}\n\nfunction valueStateMessage(this: MultiComboBox) {\n\treturn this.shouldDisplayDefaultValueStateMessage ? this.valueStateDefaultText : <slot name=\"valueStateMessage\"></slot>;\n}\n\nfunction selectAllWrapper(this: MultiComboBox) {\n\tif (this.showSelectAll) {\n\t\treturn (\n\t\t\t<div class=\"ui5-mcb-select-all-header\" onKeyDown={this._onListHeaderKeydown} tabIndex={0}>\n\t\t\t\t<CheckBox\n\t\t\t\t\tdisabled={this.readonly}\n\t\t\t\t\tchecked={this._allSelected}\n\t\t\t\t\tclass=\"ui5-mcb-select-all-checkbox\"\n\t\t\t\t\ttext={this.selectAllCheckboxLabel}\n\t\t\t\t\tonChange={this._handleSelectAllCheckboxClick}\n\t\t\t\t></CheckBox>\n\t\t\t</div>\n\t\t);\n\t}\n}\n"]}
|
package/dist/TabContainer.d.ts
CHANGED
package/dist/TabContainer.js
CHANGED
|
@@ -158,6 +158,7 @@ let TabContainer = TabContainer_1 = class TabContainer extends UI5Element {
|
|
|
158
158
|
this._startOverflowText = "0";
|
|
159
159
|
this._endOverflowText = "More";
|
|
160
160
|
this._popoverItemsFlat = [];
|
|
161
|
+
this._dragging = false;
|
|
161
162
|
this._itemsFlat = [];
|
|
162
163
|
this._hasScheduledPopoverOpen = false;
|
|
163
164
|
this._handleResizeBound = this._handleResize.bind(this);
|
|
@@ -315,9 +316,10 @@ let TabContainer = TabContainer_1 = class TabContainer extends UI5Element {
|
|
|
315
316
|
this.dropIndicatorDOM.targetReference = null;
|
|
316
317
|
}
|
|
317
318
|
_moveHeaderItem(tab, e) {
|
|
318
|
-
if (!tab.movable) {
|
|
319
|
+
if (!tab.movable || this._dragging) {
|
|
319
320
|
return;
|
|
320
321
|
}
|
|
322
|
+
this._dragging = true;
|
|
321
323
|
const headerItems = this.items.map(item => item.getDomRefInStrip())
|
|
322
324
|
.filter((item) => !item?.hasAttribute("hidden"));
|
|
323
325
|
let positions = findClosestPositionsByKey(headerItems, tab.getDomRefInStrip(), e);
|
|
@@ -356,7 +358,12 @@ let TabContainer = TabContainer_1 = class TabContainer extends UI5Element {
|
|
|
356
358
|
placement: acceptedPosition.placement,
|
|
357
359
|
},
|
|
358
360
|
});
|
|
359
|
-
tab.focus()
|
|
361
|
+
tab.focus().then(() => {
|
|
362
|
+
this._dragging = false;
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
else {
|
|
366
|
+
this._dragging = false;
|
|
360
367
|
}
|
|
361
368
|
}
|
|
362
369
|
_onHeaderDragLeave(e) {
|
package/dist/TabContainer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabContainer.js","sourceRoot":"","sources":["../src/TabContainer.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AAEpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,aAAa,MAAM,wDAAwD,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,OAAO,MAAM,oDAAoD,CAAC;AACzE,OAAO,cAAc,MAAM,yDAAyD,CAAC;AACrF,OAAO,EACN,SAAS,GACT,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACN,OAAO,EACP,OAAO,EACP,MAAM,EACN,OAAO,EACP,MAAM,EACN,IAAI,EACJ,MAAM,GACN,MAAM,sCAAsC,CAAC;AAC9C,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qDAAqD,CAAC;AACvF,OAAO,gDAAgD,CAAC;AACxD,OAAO,kDAAkD,CAAC;AAC1D,OAAO,cAAc,MAAM,qDAAqD,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,sEAAsE,CAAC;AACnJ,OAAO,WAAW,MAAM,mDAAmD,CAAC;AAC5E,OAAO,YAAY,MAAM,+DAA+D,CAAC;AACzF,OAAO,cAAc,MAAM,iEAAiE,CAAC;AAC7F,OAAO,UAAU,MAAM,6DAA6D,CAAC;AACrF,OAAO,mBAAmB,MAAM,sEAAsE,CAAC;AACvG,OAAO,aAAa,MAAM,qDAAqD,CAAC;AAChF,OAAO,EACN,mCAAmC,EACnC,+BAA+B,EAC/B,gCAAgC,EAChC,yBAAyB,EACzB,kCAAkC,EAClC,gCAAgC,GAChC,MAAM,mCAAmC,CAAC;AAS3C,OAAO,yBAAyB,MAAM,sCAAsC,CAAC;AAC7E,OAAO,aAAa,MAAM,0BAA0B,CAAC;AAErD,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,YAAY,MAAM,yBAAyB,CAAC;AAGnD,YAAY;AACZ,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAE7D,SAAS;AACT,OAAO,eAAe,MAAM,wCAAwC,CAAC;AACrE,OAAO,0BAA0B,MAAM,mDAAmD,CAAC;AAI3F,MAAM,SAAS,GAAkB,EAAE,CAAC;AACpC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AA6C5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAgDH,IAAM,YAAY,oBAAlB,MAAM,YAAa,SAAQ,UAAU;IAwJpC,MAAM,CAAC,iBAAiB,CAAC,MAAc;QACtC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAKD;QACC,KAAK,EAAE,CAAC;QA1JT;;;;WAIG;QAEH,cAAS,GAAG,KAAK,CAAC;QAElB;;;;;;;;WAQG;QAEH,cAAS,GAAmB,UAAU,CAAC;QAEvC;;;;;;;;;;WAUG;QAEH,iBAAY,GAAsB,KAAK,CAAC;QAExC;;;;;WAKG;QAEH,2BAAsB,GAA0B,OAAO,CAAC;QAExD;;;;;WAKG;QAEH,4BAAuB,GAA0B,OAAO,CAAC;QAEzD;;;;;;;;;WASG;QAEH,kBAAa,GAAmC,KAAK,CAAC;QAEtD;;;;;;;;WAQG;QAEH,oBAAe,GAAG,KAAK,CAAC;QAaxB,sBAAiB,GAAG,KAAK,CAAC;QAG1B,sBAAiB,GAAG,KAAK,CAAC;QAG1B,uBAAkB,GAAG,GAAG,CAAA;QAGxB,qBAAgB,GAAG,MAAM,CAAC;QAG1B,sBAAiB,GAAgB,EAAE,CAAC;QAyCpC,eAAU,GAAgB,EAAE,CAAC;QAE7B,6BAAwB,GAAG,KAAK,CAAC;QAahC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAExD,sBAAsB;QACtB,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE;YAC/C,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAChD,aAAa,EAAE,iBAAiB;SAChC,CAAC,CAAC;IACJ,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAC7B,OAAO;QACR,CAAC;QAED,sBAAsB;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAc,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,IAAK,GAAW,CAAC,QAAQ,CAAC,CAAC;QAEzG,IAAI,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QACjC,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAQ,CAAC;QAC/C,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,IAAY,CAAC,qBAAqB,GAAG,IAAI,CAAC,YAAY,CAAC;YACzD,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE7C,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC;QACzC,CAAC;IACF,CAAC;IAED,gBAAgB;QACf,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO;QACR,CAAC;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,CAAC,IAAI,CAAC,UAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACxD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEvD,IAAI,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YACjD,CAAC;QACF,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC;YAClC,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAqB,CAAC,CAAC,CAAC;YAEnH,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;gBACzB,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,CAAC;QACF,CAAC;IACF,CAAC;IAED,UAAU;QACT,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACnE,IAAI,SAAS,EAAE,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAClC,CAAC;IACF,CAAC;IAED,SAAS;QACR,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACtE,CAAC;IAED,aAAa;QACZ,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;YAC3D,IAAI,CAAC,aAAa,EAAE,CAAC;QACtB,CAAC;QAED,aAAa;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;QAC/B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,iBAAiB,CAAC,KAAa;QAC9B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACxF,CAAC;IAED,2BAA2B,CAAC,KAAkB;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;QACvC,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACpB,IAAI,IAAI,GAA0B;gBACjC,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAG,CAAC,aAAa,CAAc,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAE;aAC5F,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvB,IAAI,GAAG;oBACN,GAAG,IAAI;oBACP,QAAQ,EAAE,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,MAAM;oBAC7C,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,QAAQ;oBACR,OAAO;oBACP,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;iBAC1C,CAAC;gBAEF,QAAQ,EAAE,CAAC;YACZ,CAAC;YAED,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,CAAa;QAC7B,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,MAAqB,CAAC,CAAC;QAEnD,IAAI,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC3D,CAAC;IACF,CAAC;IAED,YAAY,CAAC,CAAY;QACxB,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,YAAY,WAAW,CAAC,EAAE,CAAC;YAC3D,OAAO;QACR,CAAC;QAED,CAAC,CAAC,YAAY,CAAC,UAAU,GAAG,MAAM,CAAC;QACnC,CAAC,CAAC,YAAY,CAAC,aAAa,GAAG,MAAM,CAAC;QAEtC,YAAY,CAAC,iBAAiB,CAAE,CAAC,CAAC,MAAqB,CAAC,gBAAgB,CAAC,CAAC;IAC3E,CAAC;IAED,kBAAkB,CAAC,CAAY;QAC9B,CAAC,CAAC,cAAc,EAAE,CAAC;IACpB,CAAC;IAGD,iBAAiB,CAAC,CAAY,EAAE,cAAwB;QACvD,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,6FAA6F,CAAC,EAAE,CAAC;YAC5J,IAAI,CAAC,gBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;YAC9C,OAAO;QACR,CAAC;QAED,MAAM,cAAc,GAAG,YAAY,CAAC,iBAAiB,EAAE,CAAC;QACxD,MAAM,eAAe,GAAG,mBAAmB,CAC1C,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,gBAAgB,CAAc,4BAA4B,CAAC,CAAC,EACpF,CAAC,CAAC,OAAO,EACT,WAAW,CAAC,UAAU,CACtB,CAAC;QACF,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAc,iEAAiE,CAAC,CAAC;QACxH,IAAI,aAAa,GAAG,IAAI,CAAC;QAEzB,IAAI,cAAc,EAAE,CAAC;YACpB,aAAa,GAAG,cAAc,CAAC;YAC/B,CAAC,CAAC,cAAc,EAAE,CAAC;QACpB,CAAC;aAAM,IAAI,eAAe,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAI,eAAe,CAAC,OAAsB,CAAC,gBAAgB,CAAC;YAE5E,IAAI,UAAU,KAAK,cAAc,EAAE,CAAC;gBACnC,eAAe,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,KAAK,aAAa,CAAC,EAAE,CAAC,CAAC;YAC7G,CAAC;YAED,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;YAC5F,IAAI,CAAC,gBAAiB,CAAC,eAAe,GAAG,eAAe,CAAC;YACzD,IAAI,CAAC,gBAAiB,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7C,IAAI,SAAS,KAAK,aAAa,CAAC,EAAE,IAAK,eAAe,CAAC,OAAsB,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC7G,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC;YACzC,CAAC;iBAAM,IAAI,CAAC,SAAS,EAAE,CAAC;gBACvB,IAAI,CAAC,gBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;YAC/C,CAAC;QACF,CAAC;QAED,IAAI,aAAa,IAAI,cAAc,EAAE,CAAC;YACrC,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,aAAa,EAAE,CAAC;QACtB,CAAC;IACF,CAAC;IAED,aAAa,CAAC,CAAY;QACzB,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;YAC9F,OAAO;QACR,CAAC;QAED,UAAU,CAAC,CAAC,EAAE,IAAI,EAAG,IAAI,CAAC,gBAAiB,CAAC,eAA8B,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAiB,CAAC,SAAS,CAAC,CAAC;QAC/H,IAAI,CAAC,gBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;IAC/C,CAAC;IAED,eAAe,CAAC,GAAQ,EAAE,CAAgB;QACzC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;QACR,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;aACjE,MAAM,CAAC,CAAC,IAAI,EAAsB,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtE,IAAI,SAAS,GAAG,yBAAyB,CAAC,WAAW,EAAE,GAAG,CAAC,gBAAgB,EAAG,EAAE,CAAC,CAAC,CAAC;QAEnF,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE;YACpD,OAAO,OAAO,IAAK,OAAsB,CAAC,gBAAgB,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,SAAS,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC;gBACpI,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,OAAqB,CAAC,GAAG,CAAC,CAAgB,CAAC;gBACxF,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC;YACjC,CAAC;YAED,OAAO,OAAO,IAAK,OAAsB,CAAC,gBAAgB,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,SAAS,KAAK,aAAa,CAAC,KAAK,EAAE,CAAC;gBACnI,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,OAAqB,CAAC,GAAG,CAAC,CAAgB,CAAC;gBACxF,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC;YAClC,CAAC;YAED,OAAO;gBACN,OAAO;gBACP,SAAS;aACT,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE;YAClE,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;gBAC5C,MAAM,EAAE;oBACP,OAAO,EAAE,GAAG;iBACZ;gBACD,WAAW,EAAE;oBACZ,OAAO,EAAG,OAAsB,CAAC,gBAAgB;oBACjD,SAAS;iBACT;aACD,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,gBAAgB,EAAE,CAAC;YACtB,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;gBAC/B,MAAM,EAAE;oBACP,OAAO,EAAE,GAAG;iBACZ;gBACD,WAAW,EAAE;oBACZ,OAAO,EAAG,gBAAgB,CAAC,OAAsB,CAAC,gBAAgB;oBAClE,SAAS,EAAE,gBAAgB,CAAC,SAAS;iBACrC;aACD,CAAC,CAAC;YAEH,GAAG,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACF,CAAC;IAED,kBAAkB,CAAC,CAAY;QAC9B,IAAI,CAAC,CAAC,aAAa,YAAY,IAAI,IAAI,IAAI,CAAC,UAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC;YACnF,OAAO;QACR,CAAC;QAED,IAAI,CAAC,gBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;IAC/C,CAAC;IAED,sBAAsB,CAAC,CAAmC;QACzD,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;QACzC,MAAM,cAAc,GAAG,YAAY,CAAC,iBAAiB,EAAG,CAAC;QACzD,IAAI,kBAAkB,GAAiB,WAAW,CAAC,OAA4C,CAAC,gBAAgB,CAAC;QAEjH,uCAAuC;QACvC,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,YAAY,aAAa,EAAE,CAAC;YACrD,MAAM,gBAAgB,GAAI,MAAM,CAAC,OAAyB,CAAC,gBAAgB,CAAC;YAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;YACtD,IAAI,KAAK,GAAG,QAAQ,CAAC;YAErB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC3C,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;oBACjC,OAAS,CAAC,CAAC,MAAe,CAAC,KAA8B,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,KAAK,OAAO,CAAC,CAAC;gBACvG,CAAC,CAAC,CAAC;YACJ,CAAC;YAED,MAAM,YAAY,GAAG,yBAAyB,CAAC,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAChG,kBAAkB,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACzB,OAAO;QACR,CAAC;QAED,IAAI,WAAW,CAAC,SAAS,KAAK,aAAa,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,cAAc,KAAK,kBAAkB,CAAC,EAAE,CAAC;YACnJ,OAAO;QACR,CAAC;QAED,IAAI,cAAc,KAAK,kBAAkB,IAAI,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC1F,OAAO;QACR,CAAC;QAED,MAAM,iBAAiB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;YAC/D,MAAM,EAAE;gBACP,OAAO,EAAE,cAAc;aACvB;YACD,WAAW,EAAE;gBACZ,OAAO,EAAE,kBAAkB;gBAC3B,SAAS,EAAE,WAAW,CAAC,SAAS;aAChC;SACD,CAAC,CAAC;QAEH,IAAI,iBAAiB,EAAE,CAAC;YACvB,CAAC,CAAC,cAAc,EAAE,CAAC;QACpB,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,gBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;QAC/C,CAAC;IACF,CAAC;IAED,kBAAkB,CAAC,CAAmC;QACrD,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;QACzC,MAAM,cAAc,GAAG,YAAY,CAAC,iBAAiB,EAAG,CAAC;QACzD,IAAI,kBAAkB,GAAiB,WAAW,CAAC,OAAsB,CAAC,gBAAgB,CAAC;QAE3F,uCAAuC;QACvC,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,YAAY,aAAa,EAAE,CAAC;YACrD,MAAM,gBAAgB,GAAI,MAAM,CAAC,OAAyB,CAAC,gBAAgB,CAAC;YAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;YACtD,IAAI,KAAK,GAAG,QAAQ,CAAC;YAErB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC3C,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;oBACjC,OAAS,CAAC,CAAC,MAAe,CAAC,KAA8B,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,KAAK,OAAO,CAAC,CAAC;gBACvG,CAAC,CAAC,CAAC;YACJ,CAAC;YAED,MAAM,YAAY,GAAG,yBAAyB,CAAC,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAChG,kBAAkB,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACzB,OAAO;QACR,CAAC;QAED,CAAC,CAAC,cAAc,EAAE,CAAC;QAEnB,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAC/B,MAAM,EAAE;gBACP,OAAO,EAAE,cAAc;aACvB;YACD,WAAW,EAAE;gBACZ,OAAO,EAAE,kBAAkB;gBAC3B,SAAS,EAAE,WAAW,CAAC,SAAS;aAChC;SACD,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9C,cAAc,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED,qBAAqB,CAAC,CAAgB;QACrC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,YAAY,CAAC,iBAAiB,CAAE,CAAC,CAAC,MAAwB,CAAC,gBAAgB,CAAC,CAAC;QAC9E,CAAC;IACF,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,CAAQ;QAC9B,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,MAAqB,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YAC3C,OAAO;QACR,CAAC;QAED,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,CAAC,CAAC,cAAc,EAAE,CAAC;QAEnB,IAAK,CAAC,CAAC,MAAsB,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;YAChC,OAAO;QACR,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,aAAa,IAAI,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7E,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAE/B,OAAO;QACR,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,CAAQ;QACrC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,CAAC,CAAC,cAAc,EAAE,CAAC;QAEnB,IAAI,WAAuB,CAAC;QAE5B,IAAI,YAAY,CAAC,CAAC,CAAC,MAAqB,CAAC,EAAE,CAAC;YAC3C,WAAW,GAAG,CAAC,CAAC,MAAoB,CAAC;QACtC,CAAC;aAAM,CAAC;YACP,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,MAAqB,CAAe,CAAC;QACpE,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YACjB,WAAW,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;QAED,IAAI,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC;QAErC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAE,CAAC,CAAC,MAAqB,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;YAC1F,MAAM,GAAI,CAAC,CAAC,MAAqB,CAAC,aAAa,CAAC,qCAAqC,CAAE,CAAC;QACzF,CAAC;QAED,mDAAmD;QACnD,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,aAA4B,CAAC,CAAC;YAC9D,OAAO;QACR,CAAC;QAED,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,uBAAuB;QACtB,MAAM,qBAAqB,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC/D,MAAM,GAAG,GAAG,qBAAqB,IAAI,IAAI,CAAC,gCAAgC,EAAE,CAAC;QAE7E,IAAI,CAAC,iBAAkB,CAAC,YAAY,GAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC;IACzE,CAAC;IAED,yBAAyB;QACxB,OAA8B,IAAI,CAAC,iBAAkB,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACnF,OAAuB,IAAK,CAAC,gBAAgB,IAAoB,IAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC;QAClG,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,gCAAgC;QAC/B,OAA8B,IAAI,CAAC,iBAAkB,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACxI,CAAC;IAED,kBAAkB,CAAC,OAAa;QAC/B,IAAI,CAAC,IAAI,CAAC,iBAAkB,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,OAAS,IAAI,CAAC,iBAAkB,CAAC,OAAO,CAAC,CAAC,CAAU,CAAC,KAAuD,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,KAAK,OAAO,CAAC,CAAC;IAC9J,CAAC;IAED,kBAAkB,CAAC,CAAgB;QAClC,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,MAAqB,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG,EAAE,CAAC;YACV,OAAO;QACR,CAAC;QAED,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,gBAAgB,CAAC,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YACrE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;YAC9C,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QAED,IAAI,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YACnC,OAAO;QACR,CAAC;QAED,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,IAAI,GAAG,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;gBAC5C,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;QACF,CAAC;QAED,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,oBAAoB;QACzC,CAAC;QAED,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1B,IAAI,GAAG,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,CAAC;gBAC/C,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;YACjC,CAAC;YACD,IAAI,GAAG,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;gBAC5C,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;QACF,CAAC;IACF,CAAC;IAED,gBAAgB,CAAC,CAAgB;QAChC,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,MAAqB,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YAC3C,OAAO;QACR,CAAC;QAED,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,GAAG,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;gBAC5C,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;QACF,CAAC;IACF,CAAC;IAED,mBAAmB,CAAC,GAAgB;QACnC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC;IACF,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,CAAwC;QACtE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,4BAA4B;QAEhD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B;QAChF,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,cAAc,EAAE,CAAC;QAEvB,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7D,gBAAgB,EAAE,gBAAgB,EAAG,CAAC,KAAK,EAAE,CAAC;IAC/C,CAAC;IAED;;;;;;OAMG;IACH,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,QAAQ,CAAC,KAAkB;QAC1B,MAAM,MAAM,GAAgB,EAAE,CAAC;QAE/B,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;YAClB,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAC5E,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IACf,CAAC;IAED,aAAa,CAAC,aAAqB;QAClC,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QACxF,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAQ,CAAC;QAE7D,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC1E,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC1B,OAAO;QACR,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,IAAY,CAAC,QAAQ,GAAG,IAAI,KAAK,WAAW,CAAC;YAC/C,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,WAAgB,EAAE,gBAAwB;QACnD,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC;YAC9F,OAAO,KAAK,CAAC;QACd,CAAC;QAED,iBAAiB;QACjB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,gBAAgB,CAAC,OAAoB;QACpC,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;IACrC,CAAC;IAED,cAAc,CAAC,OAAoB;QAClC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,CAAQ;QAC9B,IAAK,CAAC,CAAC,MAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACtE,6CAA6C;YAC7C,OAAO;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,CAAC,aAA4B,CAAC;QAChD,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;QAC3E,IAAI,MAAM,CAAC;QAEX,IAAI,aAAa,EAAE,CAAC;YACnB,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACjE,CAAC;aAAM,CAAC;YACP,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACxE,CAAC;QAED,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,8BAA8B,CAAC,KAAkB;QAChD,MAAM,aAAa,GAAG,KAAK;aACzB,MAAM,CAAC,CAAC,IAAI,EAAe,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;aAChD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,aAAa,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,KAAK,aAAa,CAAC,OAAO,CAAC,CAAC;QAE5F,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC3B,IAAI,CAAC,mBAAmB,CAAC;gBACxB,oBAAoB,EAAE,GAAG,EAAE;oBAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBACtC,CAAC;gBACD,KAAK,EAAE;oBACN,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,CAAC,EAAE,KAAK;oBACzD,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;iBAC1E;aACD,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,CAAgB;QACxC,MAAM,QAAQ,GAAG,CAAC,CAAC,aAA4B,CAAC;QAChD,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;QAC3E,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;QAE/E,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;IACF,CAAC;IAED,iBAAiB;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAA4C,CAAC;QAEhH,IAAI,oBAAoB,GAAG,CAAC,CAAC;QAE7B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxD,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC;QACvD,MAAM,iBAAiB,GAAG,WAAW,EAAE,gBAAgB,EAA4B,CAAC;QACpF,MAAM,mBAAmB,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEtE,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAClC,oBAAoB,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,IAAI,mBAAmB,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,IAAI,oBAAoB,GAAG,cAAc,IAAI,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,cAAc,CAAC;QAExR,qCAAqC;QACrC,IAAI,CAAC,iBAAiB,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,eAAe,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAElD,IAAI,iBAAiB,CAAC;QAEtB,IAAI,iBAAiB,EAAE,CAAC;YACvB,iBAAiB,GAAG,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,CAAC;QAED,gBAAgB;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,YAAY,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC1C,YAAY,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;YAClD,YAAY,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;QACjD,CAAC;QAED,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC3B,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,GAAG,aAAa,CAAC;QACzD,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,OAAO;QACR,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC,0BAA0B,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;YACjE,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAChC,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC;IACF,CAAC;IAED,WAAW,CAAC,GAAoB;QAC/B,OAAO,GAAG,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;YACrC,IAAI,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACzD,MAAM;YACP,CAAC;YAED,GAAG,GAAG,CAAC,GAAG,CAAC,aAAa,IAAI,SAAS,CAAoB,CAAC;QAC3D,CAAC;QAED,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,kBAAkB,CAAC,YAAqD;QACvE,oBAAoB;QACpB,IAAI,CAAC,eAAe,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxD,MAAM,iBAAiB,GAAG,WAAW,EAAE,gBAAgB,EAA4B,CAAC;QACpF,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC;QAEvD,MAAM,yBAAyB,GAAG,IAAI,CAAC,6BAA6B,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;QACtG,MAAM,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,cAAc,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAErH,KAAK,IAAI,CAAC,GAAG,mBAAmB,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpE,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC3C,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC;IACjD,CAAC;IAED,0BAA0B,CAAC,YAAoD,EAAE,iBAA0B;QAC1G,IAAI,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxD,MAAM,iBAAiB,GAAG,WAAW,EAAE,gBAAgB,EAA4B,CAAC;QACpF,MAAM,yBAAyB,GAAG,IAAI,CAAC,6BAA6B,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;QACtG,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,YAAY,EAAE,yBAAyB,CAAC,CAAC;QACzG,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,YAAY,EAAE,yBAAyB,CAAC,CAAC;QACrG,IAAI,WAAW,CAAC;QAEhB,qCAAqC;QACrC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACvB,sBAAsB;YACtB,IAAI,CAAC,eAAe,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACjD,mBAAmB;YACnB,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC;YAEjD,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,cAAc,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC;YAEvG,KAAK,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5D,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC3C,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YAClD,CAAC;YAED,OAAO;QACR,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,cAAc,EAAE,CAAC;YACrB,wBAAwB;YACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACnD,mBAAmB;YACnB,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC;YAEjD,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACxB,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,cAAc,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC;YAC/G,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,iBAAiB,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjD,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC3C,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YACpD,CAAC;YAED,OAAO;QACR,CAAC;QAED,wBAAwB;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACnD,sBAAsB;QACtB,IAAI,CAAC,eAAe,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACjD,mBAAmB;QACnB,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC;QAEjD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACxB,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,cAAc,EAAE,yBAAyB,CAAC,KAAK,EAAE,yBAAyB,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACpJ,CAAC;QACD,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,cAAc,EAAE,yBAAyB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QAE1H,KAAK,IAAI,CAAC,GAAG,iBAAiB,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACjD,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC3C,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5D,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC3C,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAClD,CAAC;IACF,CAAC;IAED,iBAAiB,CAAC,cAAsB,EAAE,YAAqD,EAAE,yBAA0D;QAC1J,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC;QACb,CAAC;QAED,IAAI,yBAAyB,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YAC3C,OAAO,KAAK,CAAC;QACd,CAAC;QAED,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,KAAK,IAAI,CAAC,GAAG,yBAAyB,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/D,cAAc,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,gBAAgB,GAAG,cAAc,GAAG,cAAc,GAAG,yBAAyB,CAAC,KAAK,CAAC;QAEzF,yDAAyD;QACzD,yCAAyC;QACzC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACvB,IAAI,CAAC,eAAe,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACjD,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC;YACjD,gBAAgB,GAAG,cAAc,GAAG,cAAc,GAAG,yBAAyB,CAAC,KAAK,CAAC;YACrF,IAAI,CAAC,eAAe,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,gBAAgB,CAAC;IACzB,CAAC;IAED,eAAe,CAAC,cAAsB,EAAE,YAAqD,EAAE,yBAA0D;QACxJ,IAAI,yBAAyB,CAAC,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YAC5D,OAAO,KAAK,CAAC;QACd,CAAC;QAED,IAAI,eAAe,GAAG,CAAC,CAAC;QAExB,KAAK,IAAI,CAAC,GAAG,yBAAyB,CAAC,KAAK,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5E,eAAe,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,cAAc,GAAG,cAAc,GAAG,eAAe,GAAG,yBAAyB,CAAC,KAAK,CAAC;QAExF,yDAAyD;QACzD,2CAA2C;QAC3C,IAAI,CAAC,cAAc,EAAE,CAAC;YACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACnD,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC;YACjD,cAAc,GAAG,cAAc,GAAG,eAAe,GAAG,yBAAyB,CAAC,KAAK,CAAC;YACpF,IAAI,CAAC,iBAAiB,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,cAAc,CAAC;IACvB,CAAC;IAED,aAAa,CAAC,UAAuB;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAEzF,OAAO,UAAU,CAAC,WAAW,GAAG,OAAO,CAAC;IACzC,CAAC;IAED,6BAA6B,CAAC,YAAqD,EAAE,iBAAyC;QAC7H,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACxB,OAAO;gBACN,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,CAAC;aACR,CAAC;QACH,CAAC;QAED,IAAI,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACpD,IAAI,KAAK,GAAG,iBAAiB,CAAC,WAAW,CAAC;QAC1C,IAAI,iBAAiB,CAAC;QAEtB,IAAI,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;YACrF,iBAAiB,GAAG,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC5C,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QAChD,CAAC;QAED,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAE9B,8CAA8C;QAC9C,IAAI,iBAAiB,EAAE,CAAC;YACvB,YAAY,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAClC,KAAK,EAAE,CAAC;QACT,CAAC;QAED,OAAO;YACN,KAAK;YACL,KAAK;SACL,CAAC;IACH,CAAC;IAED,qBAAqB,CAAC,YAAqD,EAAE,cAAsB,EAAE,iBAAyB,EAAE,UAAmB;QAClJ,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC9B,UAAU,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,WAAW,GAAG,UAAU,GAAG,CAAC,CAAC;QAEjC,KAAK,IAAI,KAAK,GAAG,UAAU,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YAClD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;YAE1D,IAAI,cAAc,GAAG,iBAAiB,GAAG,SAAS,EAAE,CAAC;gBACpD,MAAM;YACP,CAAC;YAED,iBAAiB,IAAI,SAAS,CAAC;YAC/B,WAAW,GAAG,KAAK,CAAC;QACrB,CAAC;QAED,OAAO,WAAW,CAAC;IACpB,CAAC;IAED,oBAAoB,CAAC,YAAqD,EAAE,cAAsB,EAAE,iBAAyB,EAAE,UAAU,GAAG,CAAC;QAC5I,IAAI,gBAAgB,GAAG,UAAU,GAAG,CAAC,CAAC;QACtC,IAAI,KAAK,GAAG,UAAU,CAAC;QAEvB,OAAO,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;YAE1D,IAAI,cAAc,GAAG,iBAAiB,GAAG,SAAS,EAAE,CAAC;gBACpD,MAAM;YACP,CAAC;YAED,iBAAiB,IAAI,SAAS,CAAC;YAC/B,gBAAgB,GAAG,KAAK,CAAC;QAC1B,CAAC;QAED,sCAAsC;QACtC,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,QAAQ,IAAI,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;YACvD,gBAAgB,IAAI,CAAC,CAAC;QACvB,CAAC;QAED,OAAO,gBAAgB,CAAC;IACzB,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,IAAI,CAAC,YAAY,KAAK,YAAY,CAAC,WAAW,CAAC;IACvD,CAAC;IAED,uBAAuB;QACtB,IAAI,uBAAuB,GAAG,CAAC,CAAC;QAChC,IAAI,qBAAqB,GAAG,CAAC,CAAC;QAE9B,IAAI,CAAC,QAAQ,EAAE;aACb,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,gBAAgB,EAAG,CAAC;aACnC,OAAO,CAAC,GAAG,CAAC,EAAE;YACd,IAAI,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACxC,uBAAuB,EAAE,CAAC;YAC3B,CAAC;YAED,IAAI,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC;gBACtC,qBAAqB,EAAE,CAAC;YACzB,CAAC;QACF,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,kBAAkB,GAAG,IAAI,uBAAuB,EAAE,CAAC;QACxD,IAAI,CAAC,gBAAgB,GAAG,IAAI,qBAAqB,EAAE,CAAC;IACrD,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC;QACX,CAAC;QAED,MAAM,aAAa,GAAG,EAAE,CAAC;QAEzB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAErD,IAAI,SAAS,EAAE,CAAC;gBACf,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,OAAO,aAAa,CAAC;IACtB,CAAC;IAED,UAAU;QACT,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAc,IAAI,IAAI,CAAC,GAAG,SAAS,CAAE,CAAC;IAC5E,CAAC;IAED,QAAQ;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAe,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACpE,CAAC;IAED,gBAAgB,CAAC,MAAmB;QACnC,IAAI,MAAM,KAAK,IAAI,CAAC,uBAAuB,EAAE,IAAI,MAAM,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YACxF,OAAO,gBAAgB,CAAC;QACzB,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,CAAC,qBAAqB,EAAE,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACjF,OAAO,cAAc,CAAC;QACvB,CAAC;QAED,OAAO,aAAa,CAAC,MAAM,CAAe,CAAC;IAC5C,CAAC;IAED,mBAAmB,CAAC,WAAqC;QACxD,IAAI,WAAW,KAAK,gBAAgB,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAEzC,OAAO,QAAQ,IAAI,QAAQ,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,KAAK,cAAc,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAEzC,OAAO,QAAQ,IAAI,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,WAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC;IAC3C,CAAC;IAED,gBAAgB,CAAC,KAAkB;QAClC,IAAI,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE1C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC;QACvC,CAAC;IACF,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAmB,EAAE,eAAe,GAAG,KAAK;QAChE,IAAI,CAAC,iBAAiB,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAEnD,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,aAAa,EAAE,CAAC;QACtB,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACpD,CAAC;IACF,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAmB,EAAE,eAAe,GAAG,KAAK,EAAE,mBAAmB,GAAG,KAAK;QAC7F,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;QACrC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,iBAAiB,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAEnD,IAAI,eAAe,EAAE,CAAC;YACrB,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACnC,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;YACjE,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,MAAM,CAAC;YACvC,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC;QACpC,CAAC;IACF,CAAC;IAED,IAAI,QAAQ;QACX,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACb,CAAC;QACF,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC;IAED,YAAY;QACX,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAc,IAAI,IAAI,CAAC,GAAG,WAAW,CAAE,CAAC;IAC9E,CAAC;IAED,iBAAiB;QAChB,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAc,0BAA0B,CAAE,CAAC;IACjF,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAc,wBAAwB,CAAE,CAAC;IAC/E,CAAC;IAED,uBAAuB;QACtB,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC,aAAa,CAAS,cAAc,CAAC,CAAC;IACvE,CAAC;IAED,qBAAqB;QACpB,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,aAAa,CAAS,cAAc,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,YAAY;QACjB,MAAM,cAAc,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAoB,IAAI,IAAI,CAAC,GAAG,eAAe,CAAE,CAAC;IACxF,CAAC;IAED,aAAa;QACZ,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;QACtC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,KAAK,CAAC;QACrC,CAAC;IACF,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAC/D,CAAC;IAED,aAAa,CAAC,GAAQ;QACrB,IAAI,MAAW,CAAC;QAEhB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;YACvB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5C,MAAM,GAAG,IAAW,CAAC;YACtB,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,MAAO,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC;IAChC,CAAC;IAED,IAAI,SAAS;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE7B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,kBAAkB;QACrB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,QAAQ,CAAC;IAC9C,CAAC;IAED,IAAI,mBAAmB;QACtB,OAAO,cAAY,CAAC,UAAU,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,eAAe;QAClB,OAAO,cAAY,CAAC,UAAU,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,cAAY,CAAC,UAAU,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,eAAe;QAClB,OAAO,IAAI,CAAC,aAAa,KAAK,yBAAyB,CAAC,MAAM,CAAC;IAChE,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC;IACnE,CAAC;IAED,IAAI,kBAAkB;QACrB,OAAO,cAAY,CAAC,UAAU,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,uBAAuB;QAC1B,OAAO,cAAY,CAAC,UAAU,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,cAAY,CAAC,UAAU,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,kCAAkC;QACrC,OAAO;YACN,QAAQ,EAAE,MAAM;SAChB,CAAC;IACH,CAAC;IAED,IAAI,wBAAwB;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,CAAC;CACD,CAAA;AAjxCA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+CACV;AAYlB;IADC,QAAQ,EAAE;+CAC4B;AAcvC;IADC,QAAQ,EAAE;kDAC6B;AASxC;IADC,QAAQ,EAAE;4DAC6C;AASxD;IADC,QAAQ,EAAE;6DAC8C;AAazD;IADC,QAAQ,EAAE;mDAC2C;AAYtD;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;qDACJ;AAOxB;IADC,QAAQ,EAAE;gDACS;AAGpB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kDACR;AAGnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;uDACrB;AAG1B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;uDACrB;AAG1B;IADC,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;wDACR;AAGxB;IADC,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;sDACN;AAG1B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;uDACU;AAGpC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;4CAC9B;AAiBhB;IATC,IAAI,CAAC;QACL,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,WAAW;QACjB,eAAe,EAAE,IAAI;QACrB,uBAAuB,EAAE;YACxB,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,IAAI;SACX;KACD,CAAC;2CACkB;AASpB;IADC,IAAI,EAAE;oDACyB;AAShC;IADC,IAAI,EAAE;yDAC8B;AA8JrC;IADC,mBAAmB,CAAC,4EAA4E,CAAC;qDAyCjG;AAzLM;IADN,IAAI,CAAC,oBAAoB,CAAC;sCACG;AA7JzB,YAAY;IA/CjB,aAAa,CAAC;QACd,GAAG,EAAE,kBAAkB;QACvB,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,IAAI;QACpB,MAAM,EAAE;YACP,SAAS;YACT,eAAe;YACf,0BAA0B;SAC1B;QACD,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,oBAAoB;KAC9B,CAAC;IACF;;;;;;OAMG;;IACF,KAAK,CAAC,YAAY,EAAE;QACpB,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;KAChB,CAAC;IACF;;;;;;;;OAQG;;IACF,KAAK,CAAC,WAAW,EAAE;QACnB,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;KAChB,CAAC;IACF;;;;;;;OAOG;;IACF,KAAK,CAAC,MAAM,EAAE;QACd,OAAO,EAAE,IAAI;KACb,CAAC;GACI,YAAY,CA6xCjB;AAED,MAAM,YAAY,GAAG,CAAC,EAAe,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC;AAEtG,MAAM,aAAa,GAAG,CAAC,EAAsB,EAAE,EAAE;IAChD,OAAO,EAAE,EAAE,CAAC;QACX,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;YACtB,OAAO,EAAgB,CAAC;QACzB,CAAC;QAED,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC;IACvB,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,KAAK,GAAG,CAAC,KAAkB,EAAE,QAA4C,EAAE,KAAa,EAAE,EAAE;IACjG,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACzB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACxC,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,CAAC,KAAkB,EAAE,QAA4C,EAAE,EAAE;IACjF,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC3B,CAAC,CAAC;AAEF,YAAY,CAAC,MAAM,EAAE,CAAC;AAEtB,eAAe,YAAY,CAAC","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 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\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\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}\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\tDragRegistry.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\tDragRegistry.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\tlet allVisibleItemsWidth = 0;\n\n\t\tconst selectedTab = this._getRootTab(this._selectedTab);\n\t\tconst containerWidth = this._getTabStrip().offsetWidth;\n\t\tconst selectedTabDomRef = selectedTab?.getDomRefInStrip() as TabInStrip | undefined;\n\t\tconst visibleItemsDomRefs = itemsDomRefs.filter(item => !item.hidden);\n\n\t\tvisibleItemsDomRefs.forEach(item => {\n\t\t\tallVisibleItemsWidth += this._getItemWidth(item);\n\t\t});\n\n\t\tconst changeTabPosition = visibleItemsDomRefs.length !== itemsDomRefs.length && this.isModeStartAndEnd && selectedTabDomRef && visibleItemsDomRefs.indexOf(selectedTabDomRef) !== -1 && allVisibleItemsWidth < containerWidth && this._getItemWidth(selectedTabDomRef) < containerWidth;\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\tlet firstVisibleIndex;\n\n\t\tif (changeTabPosition) {\n\t\t\tfirstVisibleIndex = itemsDomRefs.indexOf(visibleItemsDomRefs[0]);\n\t\t}\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, firstVisibleIndex);\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): 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 ?? undefined) as Tab | undefined;\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>, firstVisibleIndex?: number) {\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 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\tif (!firstVisibleIndex) {\n\t\t\t\tfirstVisibleIndex = this._findFirstVisibleItem(itemsDomRefs, containerWidth, selectedItemIndexAndWidth.width);\n\t\t\t}\n\n\t\t\tfor (let i = firstVisibleIndex - 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\tif (!firstVisibleIndex) {\n\t\t\tfirstVisibleIndex = this._findFirstVisibleItem(itemsDomRefs, containerWidth, selectedItemIndexAndWidth.width, selectedItemIndexAndWidth.index - 1);\n\t\t}\n\t\tlastVisible = this._findLastVisibleItem(itemsDomRefs, containerWidth, selectedItemIndexAndWidth.width, firstVisibleIndex);\n\n\t\tfor (let i = firstVisibleIndex - 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 (this._getStartOverflow().textContent !== \"+0\") {\n\t\t\treturn true;\n\t\t}\n\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 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 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_dragging = false;\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\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\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}\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\tDragRegistry.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 || this._dragging) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._dragging = true;\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().then(() => {\n\t\t\t\tthis._dragging = false;\n\t\t\t});\n\t\t} else {\n\t\t\tthis._dragging = false;\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\tDragRegistry.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\tlet allVisibleItemsWidth = 0;\n\n\t\tconst selectedTab = this._getRootTab(this._selectedTab);\n\t\tconst containerWidth = this._getTabStrip().offsetWidth;\n\t\tconst selectedTabDomRef = selectedTab?.getDomRefInStrip() as TabInStrip | undefined;\n\t\tconst visibleItemsDomRefs = itemsDomRefs.filter(item => !item.hidden);\n\n\t\tvisibleItemsDomRefs.forEach(item => {\n\t\t\tallVisibleItemsWidth += this._getItemWidth(item);\n\t\t});\n\n\t\tconst changeTabPosition = visibleItemsDomRefs.length !== itemsDomRefs.length && this.isModeStartAndEnd && selectedTabDomRef && visibleItemsDomRefs.indexOf(selectedTabDomRef) !== -1 && allVisibleItemsWidth < containerWidth && this._getItemWidth(selectedTabDomRef) < containerWidth;\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\tlet firstVisibleIndex;\n\n\t\tif (changeTabPosition) {\n\t\t\tfirstVisibleIndex = itemsDomRefs.indexOf(visibleItemsDomRefs[0]);\n\t\t}\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, firstVisibleIndex);\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): 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 ?? undefined) as Tab | undefined;\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>, firstVisibleIndex?: number) {\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 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\tif (!firstVisibleIndex) {\n\t\t\t\tfirstVisibleIndex = this._findFirstVisibleItem(itemsDomRefs, containerWidth, selectedItemIndexAndWidth.width);\n\t\t\t}\n\n\t\t\tfor (let i = firstVisibleIndex - 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\tif (!firstVisibleIndex) {\n\t\t\tfirstVisibleIndex = this._findFirstVisibleItem(itemsDomRefs, containerWidth, selectedItemIndexAndWidth.width, selectedItemIndexAndWidth.index - 1);\n\t\t}\n\t\tlastVisible = this._findLastVisibleItem(itemsDomRefs, containerWidth, selectedItemIndexAndWidth.width, firstVisibleIndex);\n\n\t\tfor (let i = firstVisibleIndex - 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 (this._getStartOverflow().textContent !== \"+0\") {\n\t\t\treturn true;\n\t\t}\n\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 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"]}
|
|
@@ -8,6 +8,6 @@ export default function TokenizerPopoverTemplate() {
|
|
|
8
8
|
return (_jsxs(ResponsivePopover, { "tokenizer-popover": "true", open: this.open, opener: this.morePopoverOpener, style: { "min-width": this.popoverMinWidth ? `${this.popoverMinWidth}px` : `${this.getBoundingClientRect().width}px` }, contentOnlyOnDesktop: true, preventFocusRestore: true, hideArrow: this.hidePopoverArrow, placement: "Bottom", horizontalAlign: "Start", onClose: this.handleAfterClose, onBeforeClose: this.handleBeforeClose, onBeforeOpen: this.handleBeforeOpen, children: [this._isPhone &&
|
|
9
9
|
_jsx("div", { slot: "header", class: "ui5-responsive-popover-header", children: _jsx("div", { class: "row", children: _jsx(Title, { level: "H1", wrappingType: "None", class: "ui5-responsive-popover-header-text", children: this.morePopoverTitle }) }) }), _jsx(List, { class: "ui5-tokenizer-list", selectionMode: this._nMoreListMode, separators: "None", onKeyDown: this._onPopoverListKeydown, onItemDelete: this.itemDelete, children: this._tokens
|
|
10
10
|
.map(token => _jsx(ListItemStandard, { "data-ui5-token-ref-id": token._id, wrappingType: "Normal", text: token.text }, String(token._id))) }), this._isPhone &&
|
|
11
|
-
_jsxs("div", { slot: "footer", class: "ui5-responsive-popover-footer", children: [_jsx(Button, { design: "Emphasized", "data-ui5-tokenizer-dialog-ok-button": true, onClick: this.handleDialogButtonPress, children: this._okButtonText }), _jsx(Button, { design: "Transparent", onClick: this.handleDialogButtonPress, children: this._cancelButtonText })] })] }));
|
|
11
|
+
_jsxs("div", { slot: "footer", class: "ui5-responsive-popover-footer", children: [_jsx(Button, { design: "Emphasized", "data-ui5-tokenizer-dialog-ok-button": true, onClick: this.handleDialogButtonPress, children: this._okButtonText }), _jsx(Button, { design: "Transparent", class: "ui5-responsive-popover-close-btn", onClick: this.handleDialogButtonPress, children: this._cancelButtonText })] })] }));
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=TokenizerPopoverTemplate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenizerPopoverTemplate.js","sourceRoot":"","sources":["../src/TokenizerPopoverTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B,MAAM,CAAC,OAAO,UAAU,wBAAwB;IAC/C,OAAO,CACN,MAAC,iBAAiB,yBACC,MAAM,EACxB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAC9B,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,KAAK,IAAI,EAAE,EACtH,oBAAoB,EAAE,IAAI,EAC1B,mBAAmB,EAAE,IAAI,EACzB,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAChC,SAAS,EAAC,QAAQ,EAClB,eAAe,EAAC,OAAO,EACvB,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAC9B,aAAa,EAAE,IAAI,CAAC,iBAAiB,EACrC,YAAY,EAAE,IAAI,CAAC,gBAAgB,aAElC,IAAI,CAAC,QAAQ;gBACd,cAAK,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,+BAA+B,YACvD,cAAK,KAAK,EAAC,KAAK,YACf,KAAC,KAAK,IACL,KAAK,EAAC,IAAI,EACV,YAAY,EAAC,MAAM,EACnB,KAAK,EAAC,oCAAoC,YAEzC,IAAI,CAAC,gBAAgB,GACf,GACH,GACD,EAEN,KAAC,IAAI,IACJ,KAAK,EAAC,oBAAoB,EAC1B,aAAa,EAAE,IAAI,CAAC,cAAc,EAClC,UAAU,EAAC,MAAM,EACjB,SAAS,EAAE,IAAI,CAAC,qBAAqB,EACrC,YAAY,EAAE,IAAI,CAAC,UAAU,YAE5B,IAAI,CAAC,OAAO;qBACX,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAC,gBAAgB,6BAAgD,KAAK,CAAC,GAAG,EAAE,YAAY,EAAC,QAAQ,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAA3F,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAA+F,CAAC,GACjJ,EAEN,IAAI,CAAC,QAAQ;gBACd,eAAK,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,+BAA+B,aACvD,KAAC,MAAM,IACN,MAAM,EAAC,YAAY,+CAEnB,OAAO,EAAE,IAAI,CAAC,uBAAuB,YACpC,IAAI,CAAC,aAAa,GAAU,EAC9B,KAAC,MAAM,IACN,MAAM,EAAC,aAAa,EACpB,OAAO,EAAE,IAAI,CAAC,uBAAuB,YACpC,IAAI,CAAC,iBAAiB,GAAU,IAC7B,IAEa,CACpB,CAAC;AACH,CAAC","sourcesContent":["import Button from \"./Button.js\";\nimport List from \"./List.js\";\nimport ListItemStandard from \"./ListItemStandard.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport Title from \"./Title.js\";\nimport type Tokenizer from \"./Tokenizer.js\";\n\nexport default function TokenizerPopoverTemplate(this: Tokenizer) {\n\treturn (\n\t\t<ResponsivePopover\n\t\t\ttokenizer-popover=\"true\"\n\t\t\topen={this.open}\n\t\t\topener={this.morePopoverOpener}\n\t\t\tstyle={{ \"min-width\": this.popoverMinWidth ? `${this.popoverMinWidth}px` : `${this.getBoundingClientRect().width}px` }}\n\t\t\tcontentOnlyOnDesktop={true}\n\t\t\tpreventFocusRestore={true}\n\t\t\thideArrow={this.hidePopoverArrow}\n\t\t\tplacement=\"Bottom\"\n\t\t\thorizontalAlign=\"Start\"\n\t\t\tonClose={this.handleAfterClose}\n\t\t\tonBeforeClose={this.handleBeforeClose}\n\t\t\tonBeforeOpen={this.handleBeforeOpen}\n\t\t>\n\t\t\t{this._isPhone &&\n\t\t\t<div slot=\"header\" class=\"ui5-responsive-popover-header\">\n\t\t\t\t<div class=\"row\">\n\t\t\t\t\t<Title\n\t\t\t\t\t\tlevel=\"H1\"\n\t\t\t\t\t\twrappingType=\"None\"\n\t\t\t\t\t\tclass=\"ui5-responsive-popover-header-text\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.morePopoverTitle}\n\t\t\t\t\t</Title>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t}\n\t\t\t<List\n\t\t\t\tclass=\"ui5-tokenizer-list\"\n\t\t\t\tselectionMode={this._nMoreListMode}\n\t\t\t\tseparators=\"None\"\n\t\t\t\tonKeyDown={this._onPopoverListKeydown}\n\t\t\t\tonItemDelete={this.itemDelete}\n\t\t\t>\n\t\t\t\t{this._tokens\n\t\t\t\t\t.map(token => <ListItemStandard key={String(token._id)} data-ui5-token-ref-id={token._id} wrappingType=\"Normal\" text={token.text}></ListItemStandard>)}\n\t\t\t</List>\n\n\t\t\t{this._isPhone &&\n\t\t\t<div slot=\"footer\" class=\"ui5-responsive-popover-footer\">\n\t\t\t\t<Button\n\t\t\t\t\tdesign=\"Emphasized\"\n\t\t\t\t\tdata-ui5-tokenizer-dialog-ok-button\n\t\t\t\t\tonClick={this.handleDialogButtonPress}\n\t\t\t\t>{this._okButtonText}</Button>\n\t\t\t\t<Button\n\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\tonClick={this.handleDialogButtonPress}\n\t\t\t\t>{this._cancelButtonText}</Button>\n\t\t\t</div>\n\t\t\t}\n\t\t</ResponsivePopover>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TokenizerPopoverTemplate.js","sourceRoot":"","sources":["../src/TokenizerPopoverTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B,MAAM,CAAC,OAAO,UAAU,wBAAwB;IAC/C,OAAO,CACN,MAAC,iBAAiB,yBACC,MAAM,EACxB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAC9B,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,KAAK,IAAI,EAAE,EACtH,oBAAoB,EAAE,IAAI,EAC1B,mBAAmB,EAAE,IAAI,EACzB,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAChC,SAAS,EAAC,QAAQ,EAClB,eAAe,EAAC,OAAO,EACvB,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAC9B,aAAa,EAAE,IAAI,CAAC,iBAAiB,EACrC,YAAY,EAAE,IAAI,CAAC,gBAAgB,aAElC,IAAI,CAAC,QAAQ;gBACd,cAAK,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,+BAA+B,YACvD,cAAK,KAAK,EAAC,KAAK,YACf,KAAC,KAAK,IACL,KAAK,EAAC,IAAI,EACV,YAAY,EAAC,MAAM,EACnB,KAAK,EAAC,oCAAoC,YAEzC,IAAI,CAAC,gBAAgB,GACf,GACH,GACD,EAEN,KAAC,IAAI,IACJ,KAAK,EAAC,oBAAoB,EAC1B,aAAa,EAAE,IAAI,CAAC,cAAc,EAClC,UAAU,EAAC,MAAM,EACjB,SAAS,EAAE,IAAI,CAAC,qBAAqB,EACrC,YAAY,EAAE,IAAI,CAAC,UAAU,YAE5B,IAAI,CAAC,OAAO;qBACX,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAC,gBAAgB,6BAAgD,KAAK,CAAC,GAAG,EAAE,YAAY,EAAC,QAAQ,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAA3F,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAA+F,CAAC,GACjJ,EAEN,IAAI,CAAC,QAAQ;gBACd,eAAK,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,+BAA+B,aACvD,KAAC,MAAM,IACN,MAAM,EAAC,YAAY,+CAEnB,OAAO,EAAE,IAAI,CAAC,uBAAuB,YACpC,IAAI,CAAC,aAAa,GAAU,EAC9B,KAAC,MAAM,IACN,MAAM,EAAC,aAAa,EACpB,KAAK,EAAC,kCAAkC,EACxC,OAAO,EAAE,IAAI,CAAC,uBAAuB,YACpC,IAAI,CAAC,iBAAiB,GAAU,IAC7B,IAEa,CACpB,CAAC;AACH,CAAC","sourcesContent":["import Button from \"./Button.js\";\nimport List from \"./List.js\";\nimport ListItemStandard from \"./ListItemStandard.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport Title from \"./Title.js\";\nimport type Tokenizer from \"./Tokenizer.js\";\n\nexport default function TokenizerPopoverTemplate(this: Tokenizer) {\n\treturn (\n\t\t<ResponsivePopover\n\t\t\ttokenizer-popover=\"true\"\n\t\t\topen={this.open}\n\t\t\topener={this.morePopoverOpener}\n\t\t\tstyle={{ \"min-width\": this.popoverMinWidth ? `${this.popoverMinWidth}px` : `${this.getBoundingClientRect().width}px` }}\n\t\t\tcontentOnlyOnDesktop={true}\n\t\t\tpreventFocusRestore={true}\n\t\t\thideArrow={this.hidePopoverArrow}\n\t\t\tplacement=\"Bottom\"\n\t\t\thorizontalAlign=\"Start\"\n\t\t\tonClose={this.handleAfterClose}\n\t\t\tonBeforeClose={this.handleBeforeClose}\n\t\t\tonBeforeOpen={this.handleBeforeOpen}\n\t\t>\n\t\t\t{this._isPhone &&\n\t\t\t<div slot=\"header\" class=\"ui5-responsive-popover-header\">\n\t\t\t\t<div class=\"row\">\n\t\t\t\t\t<Title\n\t\t\t\t\t\tlevel=\"H1\"\n\t\t\t\t\t\twrappingType=\"None\"\n\t\t\t\t\t\tclass=\"ui5-responsive-popover-header-text\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.morePopoverTitle}\n\t\t\t\t\t</Title>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t}\n\t\t\t<List\n\t\t\t\tclass=\"ui5-tokenizer-list\"\n\t\t\t\tselectionMode={this._nMoreListMode}\n\t\t\t\tseparators=\"None\"\n\t\t\t\tonKeyDown={this._onPopoverListKeydown}\n\t\t\t\tonItemDelete={this.itemDelete}\n\t\t\t>\n\t\t\t\t{this._tokens\n\t\t\t\t\t.map(token => <ListItemStandard key={String(token._id)} data-ui5-token-ref-id={token._id} wrappingType=\"Normal\" text={token.text}></ListItemStandard>)}\n\t\t\t</List>\n\n\t\t\t{this._isPhone &&\n\t\t\t<div slot=\"footer\" class=\"ui5-responsive-popover-footer\">\n\t\t\t\t<Button\n\t\t\t\t\tdesign=\"Emphasized\"\n\t\t\t\t\tdata-ui5-tokenizer-dialog-ok-button\n\t\t\t\t\tonClick={this.handleDialogButtonPress}\n\t\t\t\t>{this._okButtonText}</Button>\n\t\t\t\t<Button\n\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\tclass=\"ui5-responsive-popover-close-btn\"\n\t\t\t\t\tonClick={this.handleDialogButtonPress}\n\t\t\t\t>{this._cancelButtonText}</Button>\n\t\t\t</div>\n\t\t\t}\n\t\t</ResponsivePopover>\n\t);\n}\n"]}
|