@ui5/webcomponents 2.5.0-rc.1 → 2.5.0-rc.2
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 +20 -0
- package/cypress/specs/Form.cy.ts +47 -23
- package/cypress/specs/Input.cy.ts +32 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/ComboBox.js +6 -3
- package/dist/ComboBox.js.map +1 -1
- package/dist/Form.d.ts +40 -3
- package/dist/Form.js +109 -7
- package/dist/Form.js.map +1 -1
- package/dist/FormGroup.d.ts +0 -1
- package/dist/FormGroup.js +0 -5
- package/dist/FormGroup.js.map +1 -1
- package/dist/FormItem.d.ts +0 -4
- package/dist/FormItem.js +0 -7
- package/dist/FormItem.js.map +1 -1
- package/dist/Input.js +6 -2
- package/dist/Input.js.map +1 -1
- package/dist/List.d.ts +3 -0
- package/dist/List.js +30 -1
- package/dist/List.js.map +1 -1
- package/dist/RadioButton.d.ts +5 -2
- package/dist/RadioButton.js +6 -3
- package/dist/RadioButton.js.map +1 -1
- package/dist/RadioButtonGroup.d.ts +2 -2
- package/dist/RadioButtonGroup.js +56 -34
- package/dist/RadioButtonGroup.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/Calendar.css +1 -1
- package/dist/css/themes/CalendarHeader.css +1 -1
- package/dist/css/themes/CalendarLegend.css +1 -1
- package/dist/css/themes/CalendarLegendItem.css +1 -1
- package/dist/css/themes/Card.css +1 -1
- package/dist/css/themes/CardHeader.css +1 -1
- package/dist/css/themes/Carousel.css +1 -1
- package/dist/css/themes/CheckBox.css +1 -1
- package/dist/css/themes/ColorPalette.css +1 -1
- package/dist/css/themes/ColorPaletteItem.css +1 -1
- package/dist/css/themes/ColorPalettePopover.css +1 -1
- package/dist/css/themes/ColorPicker.css +1 -1
- package/dist/css/themes/ComboBox.css +1 -1
- package/dist/css/themes/ComboBoxItem.css +1 -1
- package/dist/css/themes/DatePicker.css +1 -1
- package/dist/css/themes/DateTimePickerPopover.css +1 -1
- package/dist/css/themes/DayPicker.css +1 -1
- package/dist/css/themes/Dialog.css +1 -1
- package/dist/css/themes/FileUploader.css +1 -1
- package/dist/css/themes/Form.css +1 -1
- package/dist/css/themes/FormItem.css +1 -1
- package/dist/css/themes/FormItemSpan.css +1 -0
- 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/NavigationMenu.css +1 -1
- package/dist/css/themes/NavigationMenuItem.css +1 -1
- package/dist/css/themes/OptionBase.css +1 -1
- package/dist/css/themes/Panel.css +1 -1
- package/dist/css/themes/Popover.css +1 -1
- package/dist/css/themes/PopupsCommon.css +1 -1
- package/dist/css/themes/ProgressIndicator.css +1 -1
- package/dist/css/themes/RadioButton.css +1 -1
- package/dist/css/themes/RangeSlider.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/ResponsivePopover.css +1 -1
- package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
- package/dist/css/themes/SegmentedButton.css +1 -1
- package/dist/css/themes/SegmentedButtonItem.css +1 -1
- package/dist/css/themes/Select.css +1 -1
- package/dist/css/themes/SliderBase.css +1 -1
- package/dist/css/themes/SplitButton.css +1 -1
- package/dist/css/themes/StepInput.css +1 -1
- package/dist/css/themes/SuggestionItem.css +1 -1
- package/dist/css/themes/SuggestionItemCustom.css +1 -1
- package/dist/css/themes/Switch.css +1 -1
- package/dist/css/themes/TabContainer.css +1 -1
- package/dist/css/themes/TabInOverflow.css +1 -1
- package/dist/css/themes/TabInStrip.css +1 -1
- package/dist/css/themes/TabSemanticIcon.css +1 -1
- package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
- package/dist/css/themes/Table.css +1 -1
- package/dist/css/themes/TableCellBase.css +1 -1
- package/dist/css/themes/TableHeaderRow.css +1 -1
- package/dist/css/themes/TableRow.css +1 -1
- package/dist/css/themes/TableRowBase.css +1 -1
- package/dist/css/themes/Tag.css +1 -1
- package/dist/css/themes/Text.css +1 -1
- package/dist/css/themes/TextArea.css +1 -1
- package/dist/css/themes/TimePicker.css +1 -1
- package/dist/css/themes/Toast.css +1 -1
- package/dist/css/themes/ToggleButton.css +1 -1
- package/dist/css/themes/Token.css +1 -1
- package/dist/css/themes/Tokenizer.css +1 -1
- package/dist/css/themes/TokenizerPopover.css +1 -1
- package/dist/css/themes/Toolbar.css +1 -1
- package/dist/css/themes/ToolbarPopover.css +1 -1
- package/dist/css/themes/TreeItem.css +1 -1
- package/dist/css/themes/ValueStateMessage.css +1 -1
- package/dist/css/themes/YearPicker.css +1 -1
- package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
- package/dist/custom-elements-internal.json +27 -7
- package/dist/custom-elements.json +26 -7
- package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.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_dark_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_exp/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_hcb_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/templates/RadioButtonTemplate.lit.js +1 -1
- package/dist/generated/templates/RadioButtonTemplate.lit.js.map +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.js +1 -1
- package/dist/generated/themes/AvatarGroup.css.js.map +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.js +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js.map +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.js +1 -1
- package/dist/generated/themes/Button.css.js.map +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.js +1 -1
- package/dist/generated/themes/CalendarHeader.css.js.map +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.js +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.js.map +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.js +1 -1
- package/dist/generated/themes/CardHeader.css.js.map +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.js +1 -1
- package/dist/generated/themes/CheckBox.css.js.map +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.js +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.js.map +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.js +1 -1
- package/dist/generated/themes/ColorPicker.css.js.map +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.js +1 -1
- package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
- package/dist/generated/themes/DatePicker.css.js +1 -1
- package/dist/generated/themes/DatePicker.css.js.map +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.js.map +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.js +1 -1
- package/dist/generated/themes/Dialog.css.js.map +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.js +1 -1
- package/dist/generated/themes/Form.css.js.map +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.js +9 -0
- package/dist/generated/themes/FormItemSpan.css.js.map +1 -0
- 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.js +1 -1
- package/dist/generated/themes/Icon.css.js.map +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.js +1 -1
- package/dist/generated/themes/InputIcon.css.js.map +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.js +1 -1
- package/dist/generated/themes/Link.css.js.map +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.js +1 -1
- package/dist/generated/themes/ListItem.css.js.map +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.js +1 -1
- package/dist/generated/themes/ListItemCustom.css.js.map +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.js +1 -1
- package/dist/generated/themes/ListItemGroupHeader.css.js.map +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.js +1 -1
- package/dist/generated/themes/Menu.css.js.map +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.js +1 -1
- package/dist/generated/themes/MessageStrip.css.js.map +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.js +1 -1
- package/dist/generated/themes/MultiComboBox.css.js.map +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.js +1 -1
- package/dist/generated/themes/MultiComboBoxPopover.css.js.map +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/NavigationMenu.css.js +1 -1
- package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
- package/dist/generated/themes/NavigationMenuItem.css.js +1 -1
- package/dist/generated/themes/NavigationMenuItem.css.js.map +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.js +1 -1
- package/dist/generated/themes/Panel.css.js.map +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.js +1 -1
- package/dist/generated/themes/PopupsCommon.css.js.map +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.js +1 -1
- package/dist/generated/themes/RadioButton.css.js.map +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.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +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.js +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +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.js +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.js.map +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.js +1 -1
- package/dist/generated/themes/SliderBase.css.js.map +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.js +1 -1
- package/dist/generated/themes/StepInput.css.js.map +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.js +1 -1
- package/dist/generated/themes/SuggestionItemCustom.css.js.map +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.js +1 -1
- package/dist/generated/themes/TabContainer.css.js.map +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.js +1 -1
- package/dist/generated/themes/TabInStrip.css.js.map +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.js +1 -1
- package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
- package/dist/generated/themes/Table.css.js +1 -1
- package/dist/generated/themes/Table.css.js.map +1 -1
- package/dist/generated/themes/TableCellBase.css.js +1 -1
- package/dist/generated/themes/TableCellBase.css.js.map +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.js +1 -1
- package/dist/generated/themes/TableRow.css.js.map +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.js +1 -1
- package/dist/generated/themes/Tag.css.js.map +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.js +1 -1
- package/dist/generated/themes/TextArea.css.js.map +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.js +1 -1
- package/dist/generated/themes/Toast.css.js.map +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.js +1 -1
- package/dist/generated/themes/Token.css.js.map +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.js +1 -1
- package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
- package/dist/generated/themes/Toolbar.css.js +1 -1
- package/dist/generated/themes/Toolbar.css.js.map +1 -1
- package/dist/generated/themes/ToolbarPopover.css.js +1 -1
- package/dist/generated/themes/ToolbarPopover.css.js.map +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.js +1 -1
- package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
- package/dist/generated/themes/YearPicker.css.js +1 -1
- package/dist/generated/themes/YearPicker.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.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.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.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.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.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.js +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +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_hcb_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +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/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
- package/dist/vscode.html-custom-data.json +9 -4
- package/dist/web-types.json +18 -8
- package/package.json +9 -9
- package/src/RadioButton.hbs +1 -1
- package/src/i18n/messagebundle_en_US_saptrc.properties +2 -0
- package/src/themes/Form.css +1 -1
- package/src/themes/FormItemSpan.css +59 -0
- package/src/themes/TabContainer.css +1 -1
- package/src/themes/Tokenizer.css +17 -18
- package/src/themes/base/Form-parameters.css +1 -13
- package/src/themes/base/Tokenizer-parameters.css +2 -0
- package/dist/css/themes/FormLabelSpan.css +0 -1
- package/dist/generated/themes/FormLabelSpan.css.js +0 -9
- package/dist/generated/themes/FormLabelSpan.css.js.map +0 -1
- package/src/themes/FormLabelSpan.css +0 -267
- /package/dist/generated/themes/{FormLabelSpan.css.d.ts → FormItemSpan.css.d.ts} +0 -0
package/dist/ComboBox.js
CHANGED
|
@@ -431,7 +431,8 @@ let ComboBox = ComboBox_1 = class ComboBox extends UI5Element {
|
|
|
431
431
|
const allItems = [];
|
|
432
432
|
this._filteredItems.forEach(item => {
|
|
433
433
|
if (isInstanceOfComboBoxItemGroup(item)) {
|
|
434
|
-
const
|
|
434
|
+
const visibleItems = this.open ? item.items.filter(i => i._isVisible) : item.items;
|
|
435
|
+
const groupedItems = [item, ...visibleItems];
|
|
435
436
|
allItems.push(...groupedItems);
|
|
436
437
|
return;
|
|
437
438
|
}
|
|
@@ -446,7 +447,7 @@ let ComboBox = ComboBox_1 = class ComboBox extends UI5Element {
|
|
|
446
447
|
}
|
|
447
448
|
const isOpen = this.open;
|
|
448
449
|
const currentItem = allItems.find(item => {
|
|
449
|
-
return
|
|
450
|
+
return item.selected || item.focused;
|
|
450
451
|
});
|
|
451
452
|
const indexOfItem = currentItem ? allItems.indexOf(currentItem) : -1;
|
|
452
453
|
e.preventDefault();
|
|
@@ -527,17 +528,19 @@ let ComboBox = ComboBox_1 = class ComboBox extends UI5Element {
|
|
|
527
528
|
this._itemFocused = false;
|
|
528
529
|
return;
|
|
529
530
|
}
|
|
530
|
-
if (indexOfItem === 0 && this.hasValueStateText && isOpen) {
|
|
531
|
+
if (indexOfItem === 0 && this.hasValueStateText && isOpen && !this._isValueStateFocused) {
|
|
531
532
|
this._clearFocus();
|
|
532
533
|
this._itemFocused = false;
|
|
533
534
|
this._isValueStateFocused = true;
|
|
534
535
|
this._announceValueStateText();
|
|
535
536
|
this._filteredItems[0].selected = false;
|
|
537
|
+
this.value = this._userTypedValue;
|
|
536
538
|
return;
|
|
537
539
|
}
|
|
538
540
|
if (this._isValueStateFocused) {
|
|
539
541
|
this.focused = true;
|
|
540
542
|
this._isValueStateFocused = false;
|
|
543
|
+
this.value = this._userTypedValue;
|
|
541
544
|
return;
|
|
542
545
|
}
|
|
543
546
|
indexOfItem = !isOpen && this.hasValueState && indexOfItem === -1 ? 0 : indexOfItem;
|
package/dist/ComboBox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboBox.js","sourceRoot":"","sources":["../src/ComboBox.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,UAAU,MAAM,kDAAkD,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,oBAAoB,MAAM,4DAA4D,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,+DAA+D,CAAC;AAC1G,OAAO,QAAQ,MAAM,uDAAuD,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qDAAqD,CAAC;AACvF,OAAO,kDAAkD,CAAC;AAC1D,OAAO,0CAA0C,CAAC;AAClD,OAAO,+CAA+C,CAAC;AACvD,OAAO,wCAAwC,CAAC;AAChD,OAAO,wCAAwC,CAAC;AAChD,OAAO,8CAA8C,CAAC;AACtD,OAAO,8CAA8C,CAAC;AAEtD,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,mEAAmE,CAAC;AAE/F,OAAO,EACN,WAAW,EACX,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,QAAQ,EACR,SAAS,EACT,aAAa,EACb,QAAQ,EACR,UAAU,EACV,MAAM,EACN,KAAK,GACL,MAAM,sCAAsC,CAAC;AAE9C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAExC,OAAO,EACN,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC5B,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,GACvB,MAAM,mCAAmC,CAAC;AAE3C,YAAY;AACZ,OAAO,gBAAgB,MAAM,+CAA+C,CAAC;AAE7E,SAAS;AACT,OAAO,WAAW,MAAM,oCAAoC,CAAC;AAC7D,OAAO,kBAAkB,MAAM,2CAA2C,CAAC;AAC3E,OAAO,0BAA0B,MAAM,mDAAmD,CAAC;AAC3F,OAAO,oBAAoB,MAAM,6CAA6C,CAAC;AAC/E,OAAO,cAAc,MAAM,uCAAuC,CAAC;AAEnE,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,iBAAiB,EAAE,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAE3D,OAAO,sBAAsB,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,MAAM,eAAe,GAAG,EAAE,CAAC;AAoB3B,IAAK,qBAKJ;AALD,WAAK,qBAAqB;IACzB,2CAAkB,CAAA;IAClB,2CAAkB,CAAA;IAClB,iDAAwB,CAAA;IACxB,oDAA2B,CAAA;AAC5B,CAAC,EALI,qBAAqB,KAArB,qBAAqB,QAKzB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AA8DH,IAAM,QAAQ,gBAAd,MAAM,QAAS,SAAQ,UAAU;IA4NhC,IAAI,mBAAmB;QACtB,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,YAAY;QACf,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,iBAAiB;QACtB,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC;IACnC,CAAC;IAED,IAAI,kBAAkB;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED;QACC,KAAK,EAAE,CAAC;QA5OT;;;;;;WAMG;QAEH,UAAK,GAAG,EAAE,CAAC;QAaX;;;;;WAKG;QAEH,gBAAW,GAAG,KAAK,CAAC;QAEpB;;;;;;;;WAQG;QAEH,gBAAW,GAAG,EAAE,CAAA;QAWhB;;;;;;WAMG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAEjB;;;;WAIG;QAEH,eAAU,GAAoB,MAAM,CAAC;QAErC;;;;;;;WAOG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAEjB;;;;WAIG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAEjB;;;;WAIG;QAEH,YAAO,GAAG,KAAK,CAAC;QAEhB;;;;WAIG;QAEH,WAAM,GAAwB,mBAAmB,CAAC;QAElD;;;;;WAKG;QAEH,kBAAa,GAAG,KAAK,CAAC;QAEtB;;;WAGG;QAEH,YAAO,GAAG,KAAK,CAAC;QAEhB;;;WAGG;QAEH,yBAAoB,GAAG,KAAK,CAAC;QAqB7B,iBAAY,GAAG,KAAK,CAAC;QAGrB,mBAAc,GAAyB,EAAE,CAAC;QAM1C,4BAAuB,GAAG,KAAK,CAAA;QAE/B;;;;WAIG;QAEH,mBAAc,GAAG,KAAK,CAAC;QAEvB;;;;WAIG;QAEH,SAAI,GAAG,KAAK,CAAC;QAoCb,sBAAiB,GAAG,IAAI,CAAC;QACzB,iBAAY,GAAG,KAAK,CAAC;QACrB,oDAAoD;QACpD,kBAAa,GAAG,KAAK,CAAC;QACtB,qBAAgB,GAAG,KAAK,CAAC;QACzB,wBAAmB,GAAG,KAAK,CAAC;QAE5B,sBAAiB,GAAG,EAAE,CAAC;QACvB,oBAAe,GAAG,EAAE,CAAC;QAuBpB,uEAAuE;QACvE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACpD,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,uBAAuB,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAExG,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACtD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;QAClC,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAClD,IAAI,CAAC,cAAc,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACrD,CAAC;QAED,MAAM,iBAAiB,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAEtG,6FAA6F;QAC7F,IAAI,CAAC,CAAC,iBAAiB,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;QAClC,CAAC;QAED,IAAI,IAAI,CAAC,kCAAkC,EAAE,CAAC;YAC7C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC5B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAE/B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,IAAI,UAAU;QACb,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAElD,OAAO,iBAAiB,GAAG,cAAc,GAAG,mBAAmB,CAAC;IACjE,CAAC;IAED,gBAAgB;QACf,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACpC,CAAC;IAED,QAAQ,CAAC,CAAa;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAE3B,CAAC,OAAO,EAAE,IAAK,CAAC,CAAC,MAA2B,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtF,CAAC;IAED,SAAS,CAAC,CAAa;QACtB,MAAM,WAAW,GAAG,CAAC,CAAC,aAA4B,CAAC;QACnD,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAC;QACzF,MAAM,qBAAqB,GAAG,gBAAgB,KAAK,WAAW,IAAI,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;QAE1G,IAAI,IAAI,CAAC,uBAAuB,IAAI,qBAAqB,EAAE,CAAC;YAC3D,OAAO;QACR,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,MAAM,uBAAuB,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACrF,MAAM,sBAAsB,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAEjF,IAAI,uBAAuB,IAAI,sBAAsB,EAAE,CAAC;YACvD,CAAC,CAAC,wBAAwB,EAAE,CAAC;YAC7B,OAAO;QACR,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,EAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC;YAC3F,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACtB,CAAC;IACF,CAAC;IAED,kBAAkB;QACjB,IAAI,OAAO,EAAE,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3C,CAAC;IACF,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,kBAAkB;QACjB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAE5B,qDAAqD;QACrD,IAAI,OAAO,EAAE,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,EAAE,CAAC;QACb,CAAC;QAED,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;YAC7B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACnB,CAAC;IAED,kBAAkB;QACjB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzB,CAAC;IACF,CAAC;IAED,2BAA2B;QAC1B,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC;QACjD,CAAC;IACF,CAAC;IAED,gCAAgC;QAC/B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,kCAAkC;QACjC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,qBAAqB;QACpB,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAU,gCAAgC,CAAE,CAAC;IACnF,CAAC;IAED,aAAa;QACZ,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,0BAA0B,CAAS,CAAC;IAC5E,CAAC;IAED,YAAY;QACX,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC5B,CAAC;IAED,oBAAoB;QACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACzB,IAAI,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;oBACvB,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;gBACtB,CAAC,CAAC,CAAC;gBACH,OAAO;YACR,CAAC;YAED,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,WAAW;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,IAAI,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACjD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC3B,CAAC;IAED,oBAAoB,CAAC,CAAgB;QACpC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;YACzC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1B,CAAC;IACF,CAAC;IAED,kBAAkB,CAAC,CAAgC;QAClD,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,WAAW,GAAI,MAAgB,CAAC,KAAK,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAI,MAAgB,CAAC,KAAK,CAAC;QACrC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,CAAa;QACnB,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,MAA0B,CAAC;QAC/C,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAEtD,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YAC7B,iEAAiE;YACjE,CAAC,CAAC,wBAAwB,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAE/C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,eAAe;QACf,IAAI,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAEjC,IAAI,OAAO,EAAE,EAAE,CAAC;YACf,OAAO;QACR,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACjD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzB,CAAC;IACF,CAAC;IAED,kBAAkB,CAAC,CAAa;QAC/B,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;QAC9B,MAAM,iBAAiB,GAAG;YACzB,oBAAoB;YACpB,mBAAmB;YACnB,wBAAwB;YACxB,uBAAuB;YACvB,sBAAsB;YACtB,wBAAwB;YACxB,uBAAuB;YACvB,cAAc;YACd,aAAa;YACb,eAAe;YACf,uBAAuB;YACvB,sBAAsB;YACtB,aAAa;SACb,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACpE,CAAC;IAED,wBAAwB,CAAC,GAAW;QACnC,MAAM,QAAQ,GAAwB,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5G,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,WAAW;QACV,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAElC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACnB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YAErB,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,qDAAqD;IACrD,SAAS;QACR,MAAM,QAAQ,GAAyB,EAAE,CAAC;QAE1C,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAClC,IAAI,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3C,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;gBAC/B,OAAO;YACR,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,iBAAiB,CAAC,CAAgB;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAElC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC3D,OAAO;QACR,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACxC,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,CAAC,CAAC,cAAc,EAAE,CAAC;QAEnB,IAAI,IAAI,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,OAAO;QACR,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,KAAK,WAAW,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,OAAO;QACR,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAE7B,IACC,CAAC,CAAC,GAAG,KAAK,WAAW;eAClB,CAAC,CAAC,GAAG,KAAK,SAAS;eACnB,CAAC,CAAC,GAAG,KAAK,QAAQ;eAClB,CAAC,CAAC,GAAG,KAAK,UAAU;eACpB,CAAC,CAAC,GAAG,KAAK,MAAM;eAChB,CAAC,CAAC,GAAG,KAAK,KAAK,EACjB,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QACzC,CAAC;IACF,CAAC;IAED,qBAAqB,CAAC,CAAgB,EAAE,WAAmB,EAAE,SAAkB;QAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAElC,MAAM,WAAW,GAAkB,QAAQ,CAAC,WAAW,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,WAAW,IAAI,WAAW,CAAC,WAAW,CAAC;QAC3D,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAEnF,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;YACpF,OAAO;QACR,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAK,CAAC;YAClD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YAErB,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;QAC5B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAK,CAAC,CAAC,CAAC,WAAW,CAAC,IAAK,CAAC;YAC9D,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAElC,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;QACxC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAEhC,IAAI,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC9B,OAAO;QACR,CAAC;QACD,eAAe;QACf,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAEhF,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,gBAAgB,CAAC,KAAa,EAAE,WAAmB,EAAE,iBAA0B;QAC9E,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAE/C,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO;QACR,CAAC;QAED,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAEtD,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACjF,IAAI,CAAC,kBAAkB,CAAqC,kBAAkB,EAAE;gBAC/E,IAAI,EAAE,IAAoB;aAC1B,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,gBAAgB,CAAC,CAAgB,EAAE,WAAmB;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QAEzB,IAAI,IAAI,CAAC,OAAO,IAAI,WAAW,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,iBAAiB,IAAI,MAAM,EAAE,CAAC;YAC5E,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,OAAO;QACR,CAAC;QAED,WAAW,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,IAAI,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAEpF,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACpE,CAAC;IAED,cAAc,CAAC,CAAgB,EAAE,WAAmB;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QAEzB,IAAI,WAAW,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAClD,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,OAAO;QACR,CAAC;QAED,IAAI,WAAW,KAAK,CAAC,IAAI,IAAI,CAAC,iBAAiB,IAAI,MAAM,EAAE,CAAC;YAC3D,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;YACxC,OAAO;QACR,CAAC;QAED,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAClC,OAAO;QACR,CAAC;QAED,WAAW,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,IAAI,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACpF,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IACrE,CAAC;IAED,aAAa,CAAC,CAAgB,EAAE,WAAmB;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,oBAAoB,GAAG,WAAW,GAAG,eAAe,GAAG,CAAC,CAAC,CAAC;QAChE,WAAW,GAAG,oBAAoB,CAAC,CAAC,CAAC,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,iBAAiB,GAAG,6BAA6B,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAE7F,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAClE,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,OAAO;QACR,CAAC;QAED,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAC/D,CAAC;IAED,eAAe,CAAC,CAAgB,EAAE,WAAmB;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC;QACpC,MAAM,oBAAoB,GAAG,WAAW,GAAG,eAAe,GAAG,WAAW,CAAC;QAEzE,WAAW,GAAG,oBAAoB,CAAC,CAAC,CAAC,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;QACrF,MAAM,iBAAiB,GAAG,6BAA6B,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAE7F,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAC/D,CAAC;IAED,WAAW,CAAC,CAAgB;QAC3B,MAAM,iBAAiB,GAAG,6BAA6B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAE9F,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACzC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,OAAO;QACR,CAAC;QAED,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACrD,CAAC;IAED,UAAU,CAAC,CAAgB;QAC1B,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAClF,CAAC;IAED,MAAM;QACL,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,QAAQ,CAAC,CAAgB;QACxB,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/F,MAAM,QAAQ,GAAyB,IAAI,CAAC,SAAS,EAAE,CAAC;QAExD,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAE9B,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAC9D,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,IAAI,WAAsC,CAAC;YAE3C,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAClC,IAAI,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACzD,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBAC/D,CAAC;gBAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,WAAW,GAAG,IAAI,CAAC;gBACpB,CAAC;YACF,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAExB,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC;gBAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACpE,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBACjC,UAAU,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACF,CAAC;QAED,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACvD,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACrD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnD,CAAC,CAAC,cAAc,EAAE,CAAC;YAEnB,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAE1B,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACzC,OAAO,IAAI,CAAC,QAAQ,CAAC;YACtB,CAAC,CAAC,CAAC;YAEH,IAAI,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACtB,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC1E,sFAAsF;gBACtF,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACnG,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YACxE,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACrB,CAAC;QACF,CAAC;IACF,CAAC;IAED,qBAAqB,CAAC,CAAgB;QACrC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1B,CAAC;IACF,CAAC;IAED,sBAAsB;QACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,MAAM;QACL,IAAI,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzB,CAAC;IACF,CAAC;IAED,iBAAiB,CAAC,CAAgB;QACjC,IAAI,CAAC,CAAC,IAAK,CAAC,CAAC,MAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC,EAAE,CAAC;YAC7F,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;gBACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;YAC1C,CAAC;QACF,CAAC;QAED,IAAI,OAAO,EAAE,EAAE,CAAC;YACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,gBAAgB;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,YAAY,CAAC,GAAW;QACvB,IAAI,YAA0B,CAAC;QAC/B,IAAI,kBAAkB,GAAyB,EAAE,CAAC;QAClD,MAAM,aAAa,GAAyB,EAAE,CAAC;QAC/C,MAAM,kBAAkB,GAAyB,EAAE,CAAC;QAEpD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACzB,IAAI,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,kBAAkB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAClG,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAC9B,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;gBACrB,CAAC,CAAC,CAAC;gBAEH,IAAI,kBAAkB,CAAC,MAAM,EAAE,CAAC;oBAC/B,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/B,CAAC;gBAED,OAAO;YACR,CAAC;YAED,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;YAE1F,IAAI,YAAY,EAAE,CAAC;gBAClB,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;gBAC/B,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAClC,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,kBAAkB,EAAE,GAAG,aAAa,CAAC,CAAC;IAClD,CAAC;IAED,qBAAqB,CAAC,OAAe;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;QAE1E,IAAI,oBAAoB,EAAE,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9B,OAAO;QACR,CAAC;QAED,MAAM,aAAa,GAAyB,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAEnF,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;IACF,CAAC;IAED,6BAA6B,CAAC,IAAmB,EAAE,WAAmB;QACrE,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAExC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,mBAAmB;QAClB,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnE,MAAM,wBAAwB,GAAG,oBAAoB,IAAI,oBAAoB,CAAC,WAAW,CAAC;QAC1F,IAAI,gBAA2C,CAAC;QAEhD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAClC,IAAI,CAAC,wBAAwB,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpD,gBAAgB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/H,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACpD,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,gBAAgB,CAAC;gBAC1C,OAAO,IAAI,CAAC;YACb,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC/B,SAAS,CAAC,QAAQ,GAAG,gBAAgB,KAAK,SAAS,CAAC;YACrD,CAAC,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,gBAAgB;QACf,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YACpC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9B,CAAC;IACF,CAAC;IAED,YAAY,CAAC,CAAQ;QACpB,CAAC,CAAC,cAAc,EAAE,CAAC;IACpB,CAAC;IAED,cAAc,CAAC,CAAa;QAC3B,CAAC,CAAC,cAAc,EAAE,CAAC;IACpB,CAAC;IAED,WAAW,CAAC,CAAwC;QACnD,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAoB,CAAC;QAE3C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAEhC,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,iBAAiB,CAAC;QAC/D,MAAM,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAE3F,IAAI,gBAAgB,IAAI,sBAAsB,EAAE,CAAC;YAChD,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,0FAA0F;YACnH,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEpC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpB,IAAI,CAAC,kBAAkB,CAAqC,kBAAkB,EAAE;gBAC/E,IAAI;aACJ,CAAC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,kBAAkB;QAClB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC;IAED,YAAY;QACX,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,qBAAqB,CAAC,WAAmB;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjE,MAAM,yBAAyB,GAAG,WAAW,EAAE,cAAc,IAAI,EAAE,CAAC;QACpE,MAAM,WAAW,GAAG,WAAW,EAAE,WAAW,CAAC;QAC7C,MAAM,gBAAgB,GAAG,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,kBAAkB,EAAE,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QACvI,MAAM,eAAe,GAAG,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAE5E,IAAI,WAAW,EAAE,CAAC;YACjB,QAAQ,CAAC,GAAG,eAAe,IAAI,WAAW,CAAC,UAAU,EAAE,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACvF,CAAC;aAAM,CAAC;YACP,QAAQ,CAAC,GAAG,yBAAyB,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAClG,CAAC;IACF,CAAC;IAED,MAAM;QACL,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE5D,IAAI,YAAY,EAAE,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YACvC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAEjC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,KAAK,EAAE,CAAC;QACd,CAAC;IACF,CAAC;IAED,eAAe,CAAC,IAAmB;QAClC,IAAI,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC9B,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;YAC7B,CAAC,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,aAAa,CAAC,WAAmB;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;QAE9C,IAAI,QAAQ,EAAE,CAAC;YACd,MAAM,UAAU,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAClD,MAAM,YAAY,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YACtD,MAAM,uBAAuB,GAAG,YAAY,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,IAAI,YAAY,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC;YAE/G,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC9B,QAAQ,CAAC,cAAc,CAAC;oBACvB,QAAQ,EAAE,MAAM;oBAChB,KAAK,EAAE,SAAS;oBAChB,MAAM,EAAE,SAAS;iBACjB,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;IAED,uBAAuB;QACtB,MAAM,cAAc,GAAG,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE5J,IAAI,cAAc,EAAE,CAAC;YACpB,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACvD,CAAC;IACF,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,uBAAuB;QAC1B,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,WAAW;QACd,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,KAAK;QACR,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC;YAC9B,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,OAAO,CAAE;YAC5D,CAAC,CAAC,IAAI,CAAC,UAAW,CAAC,aAAa,CAAmB,eAAe,CAAE,CAAC;IACvE,CAAC;IAED,UAAU;QACT,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAoB,0BAA0B,CAAE,CAAC;IACvF,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,UAAU,EAAG,CAAC,aAAa,CAAmB,aAAa,CAAE,CAAC;IAC3E,CAAC;IAED,IAAI,YAAY;QACf,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,CAAC;IAC5C,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,QAAQ,CAAC;IACtE,CAAC;IAED,IAAI,wBAAwB;QAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACX,CAAC;QAED,IAAI,IAAI,GAAG,EAAE,CAAC;QAEd,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,EAAE,CAAC;YACzC,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,IAAI,CAAC,qCAAqC,EAAE,CAAC;YAChD,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,qBAAqB,IAAI,EAAE,EAAE,CAAC;QACtD,CAAC;QAED,OAAO,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,IAAI,qBAAqB;QACxB,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,EAAE,CAAC;YACzC,OAAO;QACR,CAAC;QAED,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,sBAAsB;QACzB,OAAO;YACN,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC;YACvE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC;YACrE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC;YACvE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,uBAAuB,CAAC;SAC9E,CAAC;IACH,CAAC;IAED,IAAI,sBAAsB;QACzB,OAAO;YACN,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC;YAC5E,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,4BAA4B,CAAC;YACnF,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC;YAC1E,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC;SAC5E,CAAC;IACH,CAAC;IAED,IAAI,kCAAkC;QACrC,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,YAAY;eACjF,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED,IAAI,qCAAqC;QACxC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC;IACjE,CAAC;IAED,IAAI,iCAAiC;QACpC,OAAO,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC;IAChG,CAAC;IAED;;OAEG;IACH,IAAI,sBAAsB;QACzB,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1F,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,OAAO,EAAE,CAAC;IAClB,CAAC;IAED,IAAI,YAAY;QACf,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,uBAAuB;QAC1B,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,mBAAmB;QACtB,OAAO,GAAG,IAAI,CAAC,GAAG,UAAU,CAAC;IAC9B,CAAC;IAED,IAAI,MAAM;QACT,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC;QAClF,OAAO;YACN,aAAa,EAAE;gBACd,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI;aAChC;YACD,uBAAuB,EAAE;gBACxB,SAAS,EAAE,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc;gBAC1D,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,IAAI;aACrC;YACD,kBAAkB,EAAE;gBACnB,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI;gBACzC,WAAW,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,OAAO;aACtF;YACD,wBAAwB,EAAE,EAAE;SAC5B,CAAC;IACH,CAAC;IAED,IAAI,OAAO;QACV,OAAO;YACN,OAAO,EAAE;gBACR,yBAAyB,EAAE,IAAI;gBAC/B,2CAA2C,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB;gBACpF,qCAAqC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB;aAC/E;YACD,iBAAiB,EAAE;gBAClB,8BAA8B,EAAE,IAAI;gBACpC,4BAA4B,EAAE,IAAI;gBAClC,gCAAgC,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,QAAQ;gBACzE,8BAA8B,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,QAAQ;gBACvE,gCAAgC,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,QAAQ;gBACzE,oCAAoC,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,WAAW;aAChF;SACD,CAAC;IACH,CAAC;CACD,CAAA;AA3oCA;IADC,QAAQ,EAAE;uCACA;AAWX;IADC,QAAQ,EAAE;sCACG;AASd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;6CACR;AAYpB;IADC,QAAQ,EAAE;6CACK;AAShB;IADC,QAAQ,EAAE;6CACU;AAUrB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACX;AAQjB;IADC,QAAQ,EAAE;4CAC0B;AAWrC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACX;AAQjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACX;AAQjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;yCACZ;AAQhB;IADC,QAAQ,EAAE;wCACuC;AASlD;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+CACN;AAOtB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;yCACZ;AAOhB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;sDACC;AAS7B;IADC,QAAQ,EAAE;gDACa;AASxB;IADC,QAAQ,EAAE;mDACgB;AAG3B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;8CAC1B;AAGrB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gDACgB;AAG1C;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;4CAC1B;AAGpB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;yDAChB;AAQ/B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;gDACxB;AAQvB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;sCAClC;AAYb;IANC,IAAI,CAAC;QACL,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,IAAI;QACf,eAAe,EAAE,IAAI;QACrB,uBAAuB,EAAE,IAAI;KAC7B,CAAC;uCAC2B;AAc7B;IADC,IAAI,EAAE;mDACgC;AAQvC;IADC,IAAI,EAAE;sCACa;AAYb;IADN,IAAI,CAAC,oBAAoB,CAAC;kCACG;AA1NzB,QAAQ;IA7Db,aAAa,CAAC;QACd,GAAG,EAAE,cAAc;QACnB,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,IAAI;QACpB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE;YACP,WAAW;YACX,0BAA0B;YAC1B,oBAAoB;YACpB,kBAAkB;YAClB,cAAc;SACd;QACD,QAAQ,EAAE,gBAAgB;QAC1B,YAAY,EAAE;YACb,YAAY;YACZ,IAAI;YACJ,iBAAiB;YACjB,IAAI;YACJ,aAAa;YACb,MAAM;YACN,gBAAgB;YAChB,aAAa;YACb,mBAAmB;YACnB,OAAO;YACP,iBAAiB;YACjB,KAAK;YACL,cAAc;SACd;KACD,CAAC;IACF;;;OAGG;;IACF,KAAK,CAAC,QAAQ,EAAE;QAChB,OAAO,EAAE,IAAI;KACb,CAAC;IAEF;;;;;OAKG;;IACF,KAAK,CAAC,OAAO,EAAE;QACf,OAAO,EAAE,IAAI;KACb,CAAC;IACF;;;;OAIG;;IACF,KAAK,CAAqC,kBAAkB,EAAE;QAC9D,MAAM,EAAE;YACP;;cAEE;YACF,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC3B;QACD,OAAO,EAAE,IAAI;KACb,CAAC;GAEI,QAAQ,CAopCb;AAED,QAAQ,CAAC,MAAM,EAAE,CAAC;AAElB,eAAe,QAAQ,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { isPhone, isAndroid } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/not-editable.js\";\nimport \"@ui5/webcomponents-icons/dist/error.js\";\nimport \"@ui5/webcomponents-icons/dist/alert.js\";\nimport \"@ui5/webcomponents-icons/dist/sys-enter-2.js\";\nimport \"@ui5/webcomponents-icons/dist/information.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport { submitForm } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport {\n\tisBackSpace,\n\tisDelete,\n\tisShow,\n\tisUp,\n\tisDown,\n\tisEnter,\n\tisEscape,\n\tisTabNext,\n\tisTabPrevious,\n\tisPageUp,\n\tisPageDown,\n\tisHome,\n\tisEnd,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { IIcon } from \"./Icon.js\";\nimport * as Filters from \"./Filters.js\";\n\nimport {\n\tVALUE_STATE_SUCCESS,\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n\tVALUE_STATE_INFORMATION,\n\tVALUE_STATE_TYPE_SUCCESS,\n\tVALUE_STATE_TYPE_INFORMATION,\n\tVALUE_STATE_TYPE_ERROR,\n\tVALUE_STATE_TYPE_WARNING,\n\tINPUT_SUGGESTIONS_TITLE,\n\tCOMBOBOX_AVAILABLE_OPTIONS,\n\tSELECT_OPTIONS,\n\tLIST_ITEM_POSITION,\n\tLIST_ITEM_GROUP_HEADER,\n\tINPUT_CLEAR_ICON_ACC_NAME,\n\tFORM_TEXTFIELD_REQUIRED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Templates\nimport ComboBoxTemplate from \"./generated/templates/ComboBoxTemplate.lit.js\";\n\n// Styles\nimport ComboBoxCss from \"./generated/themes/ComboBox.css.js\";\nimport ComboBoxPopoverCss from \"./generated/themes/ComboBoxPopover.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\nimport ValueStateMessageCss from \"./generated/themes/ValueStateMessage.css.js\";\nimport SuggestionsCss from \"./generated/themes/Suggestions.css.js\";\n\nimport ComboBoxItem from \"./ComboBoxItem.js\";\nimport Icon from \"./Icon.js\";\nimport Popover from \"./Popover.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport List from \"./List.js\";\nimport type { ListItemClickEventDetail } from \"./List.js\";\nimport BusyIndicator from \"./BusyIndicator.js\";\nimport Button from \"./Button.js\";\nimport ListItemStandard from \"./ListItemStandard.js\";\nimport ComboBoxItemGroup, { isInstanceOfComboBoxItemGroup } from \"./ComboBoxItemGroup.js\";\nimport ListItemGroup from \"./ListItemGroup.js\";\nimport ListItemGroupHeader from \"./ListItemGroupHeader.js\";\nimport type ComboBoxFilter from \"./types/ComboBoxFilter.js\";\nimport PopoverHorizontalAlign from \"./types/PopoverHorizontalAlign.js\";\nimport Input from \"./Input.js\";\nimport type { InputEventDetail } from \"./Input.js\";\nimport SuggestionItem from \"./SuggestionItem.js\";\n\nconst SKIP_ITEMS_SIZE = 10;\n\n/**\n * Interface for components that may be slotted inside a `ui5-combobox`\n * @public\n */\ninterface IComboBoxItem extends UI5Element {\n\ttext?: string,\n\theaderText?: string,\n\tfocused: boolean,\n\tisGroupItem?: boolean,\n\tselected?: boolean,\n\tadditionalText?: string,\n\t_isVisible?: boolean,\n\titems?: Array<IComboBoxItem>\n}\n\ntype ValueStateAnnouncement = Record<Exclude<ValueState, ValueState.None>, string>;\ntype ValueStateTypeAnnouncement = Record<Exclude<ValueState, ValueState.None>, string>;\n\nenum ValueStateIconMapping {\n\tNegative = \"error\",\n\tCritical = \"alert\",\n\tPositive = \"sys-enter-2\",\n\tInformation = \"information\",\n}\n\ntype ComboBoxSelectionChangeEventDetail = {\n\titem: ComboBoxItem,\n};\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-combobox` component represents a drop-down menu with a list of the available options and a text input field to narrow down the options.\n *\n * It is commonly used to enable users to select an option from a predefined list.\n *\n * ### Structure\n * The `ui5-combobox` consists of the following elements:\n *\n * - Input field - displays the selected option or a custom user entry. Users can type to narrow down the list or enter their own value.\n * - Drop-down arrow - expands\\collapses the option list.\n * - Option list - the list of available options.\n *\n * ### Keyboard Handling\n *\n * The `ui5-combobox` provides advanced keyboard handling.\n *\n * - [F4], [Alt]+[Up], or [Alt]+[Down] - Toggles the picker.\n * - [Escape] - Closes the picker, if open. If closed, cancels changes and reverts the typed in value.\n * - [Enter] or [Return] - If picker is open, takes over the currently selected item and closes it.\n * - [Down] - Selects the next matching item in the picker.\n * - [Up] - Selects the previous matching item in the picker.\n * - [Page Down] - Moves selection down by page size (10 items by default).\n * - [Page Up] - Moves selection up by page size (10 items by default).\n * - [Home] - If focus is in the ComboBox, moves cursor at the beginning of text. If focus is in the picker, selects the first item.\n * - [End] - If focus is in the ComboBox, moves cursor at the end of text. If focus is in the picker, selects the last item.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/ComboBox.js\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.0.0-rc.6\n */\n@customElement({\n\ttag: \"ui5-combobox\",\n\tlanguageAware: true,\n\tformAssociated: true,\n\trenderer: litRender,\n\tstyles: [\n\t\tComboBoxCss,\n\t\tResponsivePopoverCommonCss,\n\t\tValueStateMessageCss,\n\t\tComboBoxPopoverCss,\n\t\tSuggestionsCss,\n\t],\n\ttemplate: ComboBoxTemplate,\n\tdependencies: [\n\t\tComboBoxItem,\n\t\tIcon,\n\t\tResponsivePopover,\n\t\tList,\n\t\tBusyIndicator,\n\t\tButton,\n\t\tListItemStandard,\n\t\tListItemGroup,\n\t\tListItemGroupHeader,\n\t\tPopover,\n\t\tComboBoxItemGroup,\n\t\tInput,\n\t\tSuggestionItem,\n\t],\n})\n/**\n * Fired when the input operation has finished by pressing Enter, focusout or an item is selected.\n * @public\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when typing in input or clear icon is pressed.\n *\n * **Note:** filterValue property is updated, input is changed.\n * @public\n */\n@event(\"input\", {\n\tbubbles: true,\n})\n/**\n * Fired when selection is changed by user interaction\n * @param {IComboBoxItem} item item to be selected.\n * @public\n */\n@event<ComboBoxSelectionChangeEventDetail>(\"selection-change\", {\n\tdetail: {\n\t\t/**\n\t\t* @public\n\t\t*/\n\t\titem: { type: HTMLElement },\n\t},\n\tbubbles: true,\n})\n\nclass ComboBox extends UI5Element implements IFormInputElement {\n\t/**\n\t * Defines the value of the component.\n\t * @default \"\"\n\t * @formEvents change input\n\t * @formProperty\n\t * @public\n\t */\n\t@property()\n\tvalue = \"\";\n\n\t/**\n\t * Determines the name by which the component will be identified upon submission in an HTML form.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.\n\t * @default undefined\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@property()\n\tname?: string;\n\n\t/**\n\t * Defines whether the value will be autocompleted to match an item\n\t * @default false\n\t * @public\n\t * @since 1.19.0\n\t */\n\t@property({ type: Boolean })\n\tnoTypeahead = false;\n\n\t/**\n\t * Defines the \"live\" value of the component.\n\t *\n\t * **Note:** If we have an item e.g. \"Bulgaria\", \"B\" is typed, \"ulgaria\" is typed ahead, value will be \"Bulgaria\", filterValue will be \"B\".\n\t *\n\t * **Note:** Initially the filter value is synced with value.\n\t * @default \"\"\n\t * @private\n\t */\n\t@property()\n\tfilterValue = \"\"\n\n\t/**\n\t * Defines a short hint intended to aid the user with data entry when the\n\t * component has no value.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tplaceholder?: string;\n\n\t/**\n\t * Defines whether the component is in disabled state.\n\t *\n\t * **Note:** A disabled component is completely noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines the value state of the component.\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property()\n\tvalueState: `${ValueState}` = \"None\";\n\n\t/**\n\t * Defines whether the component is read-only.\n\t *\n\t * **Note:** A read-only component is not editable,\n\t * but still provides visual feedback upon user interaction.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly = false;\n\n\t/**\n\t * Defines whether the component is required.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\trequired = false;\n\n\t/**\n\t * Indicates whether a loading indicator should be shown in the picker.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines the filter type of the component.\n\t * @default \"StartsWithPerTerm\"\n\t * @public\n\t */\n\t@property()\n\tfilter: `${ComboBoxFilter}` = \"StartsWithPerTerm\";\n\n\t/**\n\t * Defines whether the clear icon of the combobox will be shown.\n\t * @default false\n\t * @public\n\t * @since 1.20.1\n\t */\n\t@property({ type: Boolean })\n\tshowClearIcon = false;\n\n\t/**\n\t * Indicates whether the input is focssed\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused = false;\n\n\t/**\n\t * Indicates whether the visual focus is on the value state header\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_isValueStateFocused = false;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_iconPressed = false;\n\n\t@property({ type: Array })\n\t_filteredItems: Array<IComboBoxItem> = [];\n\n\t@property({ type: Number, noAttribute: true })\n\t_listWidth?: number;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_effectiveShowClearIcon = false\n\n\t/**\n\t * Indicates whether the value state message popover is open.\n\t * @private\n\t * @since 2.0.0\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\tvalueStateOpen = false;\n\n\t/**\n\t * Indicates whether the items picker is open.\n\t * @private\n\t * @since 2.0.0\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\topen = false;\n\n\t/**\n\t * Defines the component items.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: true,\n\t})\n\titems!: Array<IComboBoxItem>;\n\n\t/**\n\t * Defines the value state message that will be displayed as pop up under the component.\n\t * The value state message slot should contain only one root element.\n\t *\n\t * **Note:** If not specified, a default text (in the respective language) will be displayed.\n\t *\n\t * **Note:** The `valueStateMessage` would be displayed,\n\t * when the `ui5-combobox` is in `Information`, `Critical` or `Negative` value state.\n\t * @since 1.0.0-rc.9\n\t * @public\n\t */\n\t@slot()\n\tvalueStateMessage!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the icon to be displayed in the input field.\n\t * @public\n\t * @since 1.0.0-rc.9\n\t */\n\t@slot()\n\ticon!: Array<IIcon>;\n\n\t_initialRendering = true;\n\t_itemFocused = false;\n\t// used only for Safari fix (check onAfterRendering)\n\t_autocomplete = false;\n\t_isKeyNavigation = false;\n\t_selectionPerformed = false;\n\t_lastValue: string;\n\t_selectedItemText = \"\";\n\t_userTypedValue = \"\";\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tget formValidityMessage() {\n\t\treturn ComboBox.i18nBundle.getText(FORM_TEXTFIELD_REQUIRED);\n\t}\n\n\tget formValidity(): ValidityStateFlags {\n\t\treturn { valueMissing: this.required && !this.value };\n\t}\n\n\tasync formElementAnchor() {\n\t\treturn this.getFocusDomRefAsync();\n\t}\n\n\tget formFormattedValue() {\n\t\treturn this.value;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\t// when an initial value is set it should be considered as a _lastValue\n\t\tthis._lastValue = this.getAttribute(\"value\") || \"\";\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._effectiveShowClearIcon = (this.showClearIcon && !!this.value && !this.readonly && !this.disabled);\n\n\t\tif (this._initialRendering || this.filter === \"None\") {\n\t\t\tthis._filteredItems = this.items;\n\t\t}\n\n\t\tif (this.open && !this._isKeyNavigation) {\n\t\t\tconst items = this._filterItems(this.filterValue);\n\t\t\tthis._filteredItems = (items.length && items) || [];\n\t\t}\n\n\t\tconst hasNoVisibleItems = !this._filteredItems.length || !this._filteredItems.some(i => i._isVisible);\n\n\t\t// If there is no filtered items matching the value, show all items when the arrow is pressed\n\t\tif (((hasNoVisibleItems && !isPhone()) && this.value)) {\n\t\t\tthis.items.forEach(this._makeAllVisible.bind(this));\n\t\t\tthis._filteredItems = this.items;\n\t\t}\n\n\t\tif (this.shouldOpenValueStateMessagePopover) {\n\t\t\tthis.valueStateOpen = true;\n\t\t} else {\n\t\t\tthis.valueStateOpen = false;\n\t\t}\n\n\t\tthis._selectMatchingItem();\n\t\tthis._initialRendering = false;\n\n\t\tthis.style.setProperty(getScopedVarName(\"--_ui5-input-icons-count\"), `${this.iconsCount}`);\n\t}\n\n\tget iconsCount() {\n\t\tconst slottedIconsCount = this.icon?.length || 0;\n\t\tconst clearIconCount = Number(this._effectiveShowClearIcon) ?? 0;\n\t\tconst arrowDownIconsCount = this.readonly ? 0 : 1;\n\n\t\treturn slottedIconsCount + clearIconCount + arrowDownIconsCount;\n\t}\n\n\tonAfterRendering() {\n\t\tif (this.inner && this.value !== this.inner.value) {\n\t\t\tthis.value = this.inner.value;\n\t\t}\n\n\t\tthis.storeResponsivePopoverWidth();\n\t}\n\n\t_focusin(e: FocusEvent) {\n\t\tthis.focused = true;\n\t\tthis._autocomplete = false;\n\n\t\t!isPhone() && (e.target as HTMLInputElement).setSelectionRange(0, this.value.length);\n\t}\n\n\t_focusout(e: FocusEvent) {\n\t\tconst toBeFocused = e.relatedTarget as HTMLElement;\n\t\tconst clearIconWrapper = this.shadowRoot!.querySelector(\".ui5-input-clear-icon-wrapper\");\n\t\tconst focusedOutToClearIcon = clearIconWrapper === toBeFocused || clearIconWrapper?.contains(toBeFocused);\n\n\t\tif (this._effectiveShowClearIcon && focusedOutToClearIcon) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._fireChangeEvent();\n\n\t\tconst focusedOutToItemsPicker = this.open && this._getPicker().contains(toBeFocused);\n\t\tconst focusedOutToValueState = this.valueStateOpen && this.contains(toBeFocused);\n\n\t\tif (focusedOutToItemsPicker || focusedOutToValueState) {\n\t\t\te.stopImmediatePropagation();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!(this.getDomRef()!.contains(toBeFocused)) && (this._getPicker() !== e.relatedTarget)) {\n\t\t\tthis.focused = false;\n\t\t}\n\t}\n\n\t_beforeOpenPopover() {\n\t\tif (isPhone()) {\n\t\t\tthis._getPickerInput().value = this.value;\n\t\t}\n\t}\n\n\t_afterOpenPopover() {\n\t\tthis._iconPressed = true;\n\t\tthis.inner.focus();\n\t}\n\n\t_afterClosePopover() {\n\t\tthis._iconPressed = false;\n\t\tthis._filteredItems = this.items;\n\t\tthis.filterValue = \"\";\n\t\tthis._selectedItemText = \"\";\n\n\t\t// close device's keyboard and prevent further typing\n\t\tif (isPhone()) {\n\t\t\tthis.blur();\n\t\t}\n\n\t\tif (this._selectionPerformed) {\n\t\t\tthis._lastValue = this.value;\n\t\t\tthis._selectionPerformed = false;\n\t\t}\n\n\t\tthis.open = false;\n\t}\n\n\t_toggleRespPopover() {\n\t\tif (this.open) {\n\t\t\tthis._closeRespPopover();\n\t\t} else {\n\t\t\tthis._openRespPopover();\n\t\t}\n\t}\n\n\tstoreResponsivePopoverWidth() {\n\t\tif (this.open && !this._listWidth) {\n\t\t\tthis._listWidth = this._getPicker().offsetWidth;\n\t\t}\n\t}\n\n\t_handleValueStatePopoverFocusout() {\n\t\tthis.focused = false;\n\t}\n\n\t_handleValueStatePopoverAfterClose() {\n\t\tthis.valueStateOpen = false;\n\t}\n\n\t_getValueStatePopover() {\n\t\treturn this.shadowRoot!.querySelector<Popover>(\".ui5-valuestatemessage-popover\")!;\n\t}\n\n\t_getItemsList(): List {\n\t\treturn this._getPicker().querySelector(\".ui5-combobox-items-list\") as List;\n\t}\n\n\t_resetFilter() {\n\t\tthis._userTypedValue = \"\";\n\t\tthis.inner.setSelectionRange(0, this.value.length);\n\t\tthis._filteredItems = this._filterItems(\"\");\n\t\tthis._selectMatchingItem();\n\t}\n\n\t_resetItemVisibility() {\n\t\tthis.items.forEach(item => {\n\t\t\tif (isInstanceOfComboBoxItemGroup(item)) {\n\t\t\t\titem.items?.forEach(i => {\n\t\t\t\t\ti._isVisible = false;\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\titem._isVisible = false;\n\t\t});\n\t}\n\n\t_arrowClick() {\n\t\tthis.inner.focus();\n\t\tthis._resetFilter();\n\n\t\tif (isPhone() && this.value && !this._lastValue) {\n\t\t\tthis._lastValue = this.value;\n\t\t}\n\n\t\tthis._toggleRespPopover();\n\t}\n\n\t_handleMobileKeydown(e: KeyboardEvent) {\n\t\tif (isEscape(e)) {\n\t\t\tthis.value = this._lastValue || \"\";\n\t\t\tthis.filterValue = this._lastValue || \"\";\n\t\t\tthis._closeRespPopover();\n\t\t}\n\t}\n\n\t_handleMobileInput(e: CustomEvent<InputEventDetail>) {\n\t\tconst { target } = e;\n\t\tthis.filterValue = (target as Input).value;\n\t\tthis.value = (target as Input).value;\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_input(e: InputEvent) {\n\t\tconst { value } = e.target as HTMLInputElement;\n\t\tconst shouldAutocomplete = this.shouldAutocomplete(e);\n\n\t\tif (e.target === this.inner) {\n\t\t\t// stop the native event, as the semantic \"input\" would be fired.\n\t\t\te.stopImmediatePropagation();\n\t\t\tthis.focused = true;\n\t\t\tthis._isValueStateFocused = false;\n\t\t}\n\n\t\tthis._filteredItems = this._filterItems(value);\n\n\t\tthis.value = value;\n\t\tthis.filterValue = value;\n\n\t\tthis._clearFocus();\n\n\t\t// autocomplete\n\t\tif (shouldAutocomplete && !isAndroid()) {\n\t\t\tthis._handleTypeAhead(value, value, true);\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"input\");\n\n\t\tif (isPhone()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._filteredItems.length || value === \"\") {\n\t\t\tthis._closeRespPopover();\n\t\t} else {\n\t\t\tthis._openRespPopover();\n\t\t}\n\t}\n\n\tshouldAutocomplete(e: InputEvent): boolean {\n\t\tconst eventType = e.inputType;\n\t\tconst allowedEventTypes = [\n\t\t\t\"deleteWordBackward\",\n\t\t\t\"deleteWordForward\",\n\t\t\t\"deleteSoftLineBackward\",\n\t\t\t\"deleteSoftLineForward\",\n\t\t\t\"deleteEntireSoftLine\",\n\t\t\t\"deleteHardLineBackward\",\n\t\t\t\"deleteHardLineForward\",\n\t\t\t\"deleteByDrag\",\n\t\t\t\"deleteByCut\",\n\t\t\t\"deleteContent\",\n\t\t\t\"deleteContentBackward\",\n\t\t\t\"deleteContentForward\",\n\t\t\t\"historyUndo\",\n\t\t];\n\n\t\treturn !this.noTypeahead && !allowedEventTypes.includes(eventType);\n\t}\n\n\t_startsWithMatchingItems(str: string): Array<IComboBoxItem> {\n\t\tconst allItems:Array<IComboBoxItem> = this._getItems().filter(item => !isInstanceOfComboBoxItemGroup(item));\n\t\treturn Filters.StartsWith(str, allItems, \"text\");\n\t}\n\n\t_clearFocus() {\n\t\tconst allItems = this._getItems();\n\n\t\tallItems.map(item => {\n\t\t\titem.focused = false;\n\n\t\t\treturn item;\n\t\t});\n\t}\n\n\t// Get groups and items as a flat array for filtering\n\t_getItems() {\n\t\tconst allItems: Array<IComboBoxItem> = [];\n\n\t\tthis._filteredItems.forEach(item => {\n\t\t\tif (isInstanceOfComboBoxItemGroup(item)) {\n\t\t\t\tconst groupedItems = [item, ...item.items];\n\t\t\t\tallItems.push(...groupedItems);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tallItems.push(item);\n\t\t});\n\n\t\treturn allItems;\n\t}\n\n\thandleNavKeyPress(e: KeyboardEvent) {\n\t\tconst allItems = this._getItems();\n\n\t\tif (this.focused && (isHome(e) || isEnd(e)) && this.value) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isOpen = this.open;\n\t\tconst currentItem = allItems.find(item => {\n\t\t\treturn isOpen ? item.focused : item.selected;\n\t\t});\n\n\t\tconst indexOfItem = currentItem ? allItems.indexOf(currentItem) : -1;\n\t\te.preventDefault();\n\n\t\tif (this.focused && isOpen && (isUp(e) || isPageUp(e) || isPageDown(e))) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (allItems.length - 1 === indexOfItem && isDown(e)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isKeyNavigation = true;\n\n\t\tif (\n\t\t\te.key === \"ArrowDown\"\n\t\t\t|| e.key === \"ArrowUp\"\n\t\t\t|| e.key === \"PageUp\"\n\t\t\t|| e.key === \"PageDown\"\n\t\t\t|| e.key === \"Home\"\n\t\t\t|| e.key === \"End\"\n\t\t) {\n\t\t\tthis[`_handle${e.key}`](e, indexOfItem);\n\t\t}\n\t}\n\n\t_handleItemNavigation(e: KeyboardEvent, indexOfItem: number, isForward: boolean) {\n\t\tconst allItems = this._getItems();\n\n\t\tconst currentItem: IComboBoxItem = allItems[indexOfItem];\n\t\tconst isGroupItem = currentItem && currentItem.isGroupItem;\n\t\tconst nextItem = isForward ? allItems[indexOfItem + 1] : allItems[indexOfItem - 1];\n\n\t\tif ((!this.open) && ((isGroupItem && !nextItem) || (!isGroupItem && !currentItem))) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._clearFocus();\n\n\t\tif (this.open) {\n\t\t\tthis._itemFocused = true;\n\t\t\tthis.value = isGroupItem ? \"\" : currentItem.text!;\n\t\t\tthis.focused = false;\n\n\t\t\tcurrentItem.focused = true;\n\t\t} else {\n\t\t\tthis.focused = true;\n\t\t\tthis.value = isGroupItem ? nextItem.text! : currentItem.text!;\n\t\t\tcurrentItem.focused = false;\n\t\t}\n\n\t\tthis._isValueStateFocused = false;\n\n\t\tthis._announceSelectedItem(indexOfItem);\n\t\tthis._scrollToItem(indexOfItem);\n\n\t\tif (isGroupItem && this.open) {\n\t\t\treturn;\n\t\t}\n\t\t// autocomplete\n\t\tthis._handleTypeAhead(this.value, this.open ? this._userTypedValue : \"\", false);\n\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_handleTypeAhead(value: string, filterValue: string, checkForGroupItem: boolean) {\n\t\tconst item = this._getFirstMatchingItem(value);\n\n\t\tif (!item) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._applyAtomicValueAndSelection(item, filterValue);\n\n\t\tif (value !== \"\" && !item.selected && (!checkForGroupItem || !item.isGroupItem)) {\n\t\t\tthis.fireDecoratorEvent<ComboBoxSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\titem: item as ComboBoxItem,\n\t\t\t});\n\t\t}\n\t}\n\n\t_handleArrowDown(e: KeyboardEvent, indexOfItem: number) {\n\t\tconst isOpen = this.open;\n\n\t\tif (this.focused && indexOfItem === -1 && this.hasValueStateText && isOpen) {\n\t\t\tthis._isValueStateFocused = true;\n\t\t\tthis._announceValueStateText();\n\t\t\tthis.focused = false;\n\t\t\treturn;\n\t\t}\n\n\t\tindexOfItem = !isOpen && this.hasValueState && indexOfItem === -1 ? 0 : indexOfItem;\n\n\t\tthis._handleItemNavigation(e, ++indexOfItem, true /* isForward */);\n\t}\n\n\t_handleArrowUp(e: KeyboardEvent, indexOfItem: number) {\n\t\tconst isOpen = this.open;\n\n\t\tif (indexOfItem === 0 && !this.hasValueStateText) {\n\t\t\tthis._clearFocus();\n\t\t\tthis.focused = true;\n\t\t\tthis._itemFocused = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (indexOfItem === 0 && this.hasValueStateText && isOpen) {\n\t\t\tthis._clearFocus();\n\t\t\tthis._itemFocused = false;\n\t\t\tthis._isValueStateFocused = true;\n\t\t\tthis._announceValueStateText();\n\t\t\tthis._filteredItems[0].selected = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isValueStateFocused) {\n\t\t\tthis.focused = true;\n\t\t\tthis._isValueStateFocused = false;\n\t\t\treturn;\n\t\t}\n\n\t\tindexOfItem = !isOpen && this.hasValueState && indexOfItem === -1 ? 0 : indexOfItem;\n\t\tthis._handleItemNavigation(e, --indexOfItem, false /* isForward */);\n\t}\n\n\t_handlePageUp(e: KeyboardEvent, indexOfItem: number) {\n\t\tconst allItems = this._getItems();\n\t\tconst isProposedIndexValid = indexOfItem - SKIP_ITEMS_SIZE > -1;\n\t\tindexOfItem = isProposedIndexValid ? indexOfItem - SKIP_ITEMS_SIZE : 0;\n\t\tconst shouldMoveForward = isInstanceOfComboBoxItemGroup(allItems[indexOfItem]) && !this.open;\n\n\t\tif (!isProposedIndexValid && this.hasValueStateText && this.open) {\n\t\t\tthis._clearFocus();\n\t\t\tthis._itemFocused = false;\n\t\t\tthis._isValueStateFocused = true;\n\t\t\tthis._announceValueStateText();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._handleItemNavigation(e, indexOfItem, shouldMoveForward);\n\t}\n\n\t_handlePageDown(e: KeyboardEvent, indexOfItem: number) {\n\t\tconst allItems = this._getItems();\n\t\tconst itemsLength = allItems.length;\n\t\tconst isProposedIndexValid = indexOfItem + SKIP_ITEMS_SIZE < itemsLength;\n\n\t\tindexOfItem = isProposedIndexValid ? indexOfItem + SKIP_ITEMS_SIZE : itemsLength - 1;\n\t\tconst shouldMoveForward = isInstanceOfComboBoxItemGroup(allItems[indexOfItem]) && !this.open;\n\n\t\tthis._handleItemNavigation(e, indexOfItem, shouldMoveForward);\n\t}\n\n\t_handleHome(e: KeyboardEvent) {\n\t\tconst shouldMoveForward = isInstanceOfComboBoxItemGroup(this._filteredItems[0]) && !this.open;\n\n\t\tif (this.hasValueStateText && this.open) {\n\t\t\tthis._clearFocus();\n\t\t\tthis._itemFocused = false;\n\t\t\tthis._isValueStateFocused = true;\n\t\t\tthis._announceValueStateText();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._handleItemNavigation(e, 0, shouldMoveForward);\n\t}\n\n\t_handleEnd(e: KeyboardEvent) {\n\t\tthis._handleItemNavigation(e, this._getItems().length - 1, true /* isForward */);\n\t}\n\n\t_keyup() {\n\t\tthis._userTypedValue = this.value.substring(0, this.inner.selectionStart || 0);\n\t}\n\n\t_keydown(e: KeyboardEvent) {\n\t\tconst isNavKey = isDown(e) || isUp(e) || isPageUp(e) || isPageDown(e) || isHome(e) || isEnd(e);\n\t\tconst allItems: Array<IComboBoxItem> = this._getItems();\n\n\t\tthis._autocomplete = !(isBackSpace(e) || isDelete(e));\n\t\tthis._isKeyNavigation = false;\n\n\t\tif (isNavKey && !this.readonly && this._filteredItems.length) {\n\t\t\tthis.handleNavKeyPress(e);\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tlet focusedItem: IComboBoxItem | undefined;\n\n\t\t\tthis._filteredItems.forEach(item => {\n\t\t\t\tif (isInstanceOfComboBoxItemGroup(item) && !focusedItem) {\n\t\t\t\t\tfocusedItem = item.items.find(groupItem => groupItem.focused);\n\t\t\t\t}\n\n\t\t\t\tif (item.focused) {\n\t\t\t\t\tfocusedItem = item;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis._fireChangeEvent();\n\n\t\t\tif (this.open && !focusedItem?.isGroupItem) {\n\t\t\t\tthis._closeRespPopover();\n\t\t\t\tthis.focused = true;\n\t\t\t\tthis.inner.setSelectionRange(this.value.length, this.value.length);\n\t\t\t} else if (this._internals.form) {\n\t\t\t\tsubmitForm(this);\n\t\t\t}\n\t\t}\n\n\t\tif (isEscape(e)) {\n\t\t\tthis.focused = true;\n\t\t\tthis.value = !this.open ? this._lastValue : this.value;\n\t\t\tthis._isValueStateFocused = false;\n\t\t}\n\n\t\tif ((isTabNext(e) || isTabPrevious(e)) && this.open) {\n\t\t\tthis._closeRespPopover();\n\t\t}\n\n\t\tif (isShow(e) && !this.readonly && !this.disabled) {\n\t\t\te.preventDefault();\n\n\t\t\tthis._resetFilter();\n\t\t\tthis._toggleRespPopover();\n\n\t\t\tconst selectedItem = allItems.find(item => {\n\t\t\t\treturn item.selected;\n\t\t\t});\n\n\t\t\tif (selectedItem && this.open) {\n\t\t\t\tthis._itemFocused = true;\n\t\t\t\tselectedItem.focused = true;\n\t\t\t\tthis.focused = false;\n\t\t\t} else if (this.open && this._filteredItems.length && !this.value.length) {\n\t\t\t\t// If no item is selected, select the first non-group item on \"Show\" (F4, Alt+Up/Down)\n\t\t\t\tconst firstNonGroupItem = this._getItems().findIndex(item => item._isVisible && !item.isGroupItem);\n\t\t\t\tthis._handleItemNavigation(e, firstNonGroupItem, true /* isForward */);\n\t\t\t} else {\n\t\t\t\tthis.focused = true;\n\t\t\t}\n\t\t}\n\t}\n\n\t_handlePopoverKeydown(e: KeyboardEvent) {\n\t\tif (isTabNext(e)) {\n\t\t\tthis._closeRespPopover();\n\t\t}\n\t}\n\n\t_handlePopoverFocusout() {\n\t\tthis.focused = false;\n\t}\n\n\t_click() {\n\t\tif (isPhone() && !this.readonly) {\n\t\t\tthis._openRespPopover();\n\t\t}\n\t}\n\n\t_closeRespPopover(e?: Event | null) {\n\t\tif ((e && (e.target as HTMLElement).classList.contains(\"ui5-responsive-popover-close-btn\"))) {\n\t\t\tif (this._selectedItemText) {\n\t\t\t\tthis.value = this._selectedItemText;\n\t\t\t\tthis.filterValue = this._selectedItemText;\n\t\t\t} else {\n\t\t\t\tthis.value = this._lastValue || \"\";\n\t\t\t\tthis.filterValue = this._lastValue || \"\";\n\t\t\t}\n\t\t}\n\n\t\tif (isPhone()) {\n\t\t\tthis._fireChangeEvent();\n\t\t}\n\n\t\tthis._isValueStateFocused = false;\n\t\tthis._clearFocus();\n\t\tthis.open = false;\n\t\tthis.valueStateOpen = false;\n\t}\n\n\t_openRespPopover() {\n\t\tthis.open = true;\n\t}\n\n\t_filterItems(str: string) {\n\t\tlet filteredItem:IComboBoxItem;\n\t\tlet filteredGroupItems: Array<IComboBoxItem> = [];\n\t\tconst filteredItems: Array<IComboBoxItem> = [];\n\t\tconst filteredItemGroups: Array<IComboBoxItem> = [];\n\n\t\tthis._resetItemVisibility();\n\t\tthis.items.forEach(item => {\n\t\t\tif (isInstanceOfComboBoxItemGroup(item)) {\n\t\t\t\tfilteredGroupItems = (Filters[this.filter] || Filters.StartsWithPerTerm)(str, item.items, \"text\");\n\t\t\t\tfilteredGroupItems.forEach(i => {\n\t\t\t\t\ti._isVisible = true;\n\t\t\t\t});\n\n\t\t\t\tif (filteredGroupItems.length) {\n\t\t\t\t\tfilteredItemGroups.push(item);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t[filteredItem] = (Filters[this.filter] || Filters.StartsWithPerTerm)(str, [item], \"text\");\n\n\t\t\tif (filteredItem) {\n\t\t\t\tfilteredItem._isVisible = true;\n\t\t\t\tfilteredItems.push(filteredItem);\n\t\t\t}\n\t\t});\n\n\t\treturn [...filteredItemGroups, ...filteredItems];\n\t}\n\n\t_getFirstMatchingItem(current: string): IComboBoxItem | void {\n\t\tconst allItems = this._getItems();\n\t\tconst currentlyFocusedItem = allItems.find(item => item.focused === true);\n\n\t\tif (currentlyFocusedItem?.isGroupItem) {\n\t\t\tthis.value = this.filterValue;\n\t\t\treturn;\n\t\t}\n\n\t\tconst matchingItems: Array<IComboBoxItem> = this._startsWithMatchingItems(current);\n\n\t\tif (matchingItems.length) {\n\t\t\treturn matchingItems[0];\n\t\t}\n\t}\n\n\t_applyAtomicValueAndSelection(item: IComboBoxItem, filterValue: string) {\n\t\tconst value = (item && item.text) || \"\";\n\n\t\tthis.inner.value = value;\n\t\tthis.inner.setSelectionRange(filterValue.length, value.length);\n\t\tthis.value = value;\n\t}\n\n\t_selectMatchingItem() {\n\t\tconst currentlyFocusedItem = this.items.find(item => item.focused);\n\t\tconst shouldSelectionBeCleared = currentlyFocusedItem && currentlyFocusedItem.isGroupItem;\n\t\tlet itemToBeSelected: IComboBoxItem | undefined;\n\n\t\tthis._filteredItems.forEach(item => {\n\t\t\tif (!shouldSelectionBeCleared && !itemToBeSelected) {\n\t\t\t\titemToBeSelected = ((!item.isGroupItem && (item.text === this.value)) ? item : item?.items?.find(i => i.text === this.value));\n\t\t\t}\n\t\t});\n\n\t\tthis._filteredItems = this._filteredItems.map(item => {\n\t\t\tif (!isInstanceOfComboBoxItemGroup(item)) {\n\t\t\t\titem.selected = item === itemToBeSelected;\n\t\t\t\treturn item;\n\t\t\t}\n\n\t\t\titem.items?.forEach(groupItem => {\n\t\t\t\tgroupItem.selected = itemToBeSelected === groupItem;\n\t\t\t});\n\n\t\t\treturn item;\n\t\t});\n\t}\n\n\t_fireChangeEvent() {\n\t\tif (this.value !== this._lastValue) {\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t\tthis._lastValue = this.value;\n\t\t}\n\t}\n\n\t_inputChange(e: Event) {\n\t\te.preventDefault();\n\t}\n\n\t_itemMousedown(e: MouseEvent) {\n\t\te.preventDefault();\n\t}\n\n\t_selectItem(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst item = e.detail.item as ComboBoxItem;\n\n\t\tthis._selectedItemText = item.text || \"\";\n\t\tthis._selectionPerformed = true;\n\n\t\tconst sameItemSelected = this.value === this._selectedItemText;\n\t\tconst sameSelectionPerformed = this.value.toLowerCase() === this.filterValue.toLowerCase();\n\n\t\tif (sameItemSelected && sameSelectionPerformed) {\n\t\t\tthis._fireChangeEvent(); // Click on an already typed, but not memoized value shouold also trigger the change event\n\t\t\treturn this._closeRespPopover();\n\t\t}\n\n\t\tthis.value = this._selectedItemText;\n\n\t\tif (!item.selected) {\n\t\t\tthis.fireDecoratorEvent<ComboBoxSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\titem,\n\t\t\t});\n\t\t}\n\n\t\tthis._fireChangeEvent();\n\t\tthis._closeRespPopover();\n\n\t\t// reset selection\n\t\tthis.inner.setSelectionRange(this.value.length, this.value.length);\n\t}\n\n\t_onItemFocus() {\n\t\tthis._itemFocused = true;\n\t}\n\n\t_announceSelectedItem(indexOfItem: number) {\n\t\tconst allItems = this._getItems();\n\t\tconst currentItem = allItems[indexOfItem];\n\t\tconst nonGroupItems = allItems.filter(item => !item.isGroupItem);\n\t\tconst currentItemAdditionalText = currentItem?.additionalText || \"\";\n\t\tconst isGroupItem = currentItem?.isGroupItem;\n\t\tconst itemPositionText = ComboBox.i18nBundle.getText(LIST_ITEM_POSITION, nonGroupItems.indexOf(currentItem) + 1, nonGroupItems.length);\n\t\tconst groupHeaderText = ComboBox.i18nBundle.getText(LIST_ITEM_GROUP_HEADER);\n\n\t\tif (isGroupItem) {\n\t\t\tannounce(`${groupHeaderText} ${currentItem.headerText}`, InvisibleMessageMode.Polite);\n\t\t} else {\n\t\t\tannounce(`${currentItemAdditionalText} ${itemPositionText}`.trim(), InvisibleMessageMode.Polite);\n\t\t}\n\t}\n\n\t_clear() {\n\t\tconst selectedItem = this.items.find(item => item.selected);\n\n\t\tif (selectedItem?.text === this.value) {\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t}\n\n\t\tthis.value = \"\";\n\t\tthis.fireDecoratorEvent(\"input\");\n\n\t\tif (this._isPhone) {\n\t\t\tthis._lastValue = \"\";\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t} else {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\t_makeAllVisible(item: IComboBoxItem) {\n\t\tif (isInstanceOfComboBoxItemGroup(item)) {\n\t\t\titem.items.forEach(groupItem => {\n\t\t\t\tgroupItem._isVisible = true;\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\titem._isVisible = true;\n\t}\n\n\t_scrollToItem(indexOfItem: number) {\n\t\tconst picker = this._getPicker();\n\t\tconst list = this._getItemsList();\n\t\tconst listItem = list?.listItems[indexOfItem];\n\n\t\tif (listItem) {\n\t\t\tconst pickerRect = picker.getBoundingClientRect();\n\t\t\tconst listItemRect = listItem.getBoundingClientRect();\n\t\t\tconst isListItemInVisibleArea = listItemRect.top >= pickerRect.top && listItemRect.bottom <= pickerRect.bottom;\n\n\t\t\tif (!isListItemInVisibleArea) {\n\t\t\t\tlistItem.scrollIntoView({\n\t\t\t\t\tbehavior: \"auto\",\n\t\t\t\t\tblock: \"nearest\",\n\t\t\t\t\tinline: \"nearest\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t_announceValueStateText() {\n\t\tconst valueStateText = this.shouldDisplayDefaultValueStateMessage ? this.valueStateDefaultText : this.valueStateMessage.map(el => el.textContent).join(\" \");\n\n\t\tif (valueStateText) {\n\t\t\tannounce(valueStateText, InvisibleMessageMode.Polite);\n\t\t}\n\t}\n\n\tget _headerTitleText() {\n\t\treturn ComboBox.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);\n\t}\n\n\tget _iconAccessibleNameText() {\n\t\treturn ComboBox.i18nBundle.getText(SELECT_OPTIONS);\n\t}\n\n\tget _popupLabel() {\n\t\treturn ComboBox.i18nBundle.getText(COMBOBOX_AVAILABLE_OPTIONS);\n\t}\n\n\tget inner(): HTMLInputElement {\n\t\treturn (isPhone() && this.open)\n\t\t\t? this._getPickerInput().shadowRoot!.querySelector(\"input\")!\n\t\t\t: this.shadowRoot!.querySelector<HTMLInputElement>(\"[inner-input]\")!;\n\t}\n\n\t_getPicker() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\t_getPickerInput() {\n\t\treturn this._getPicker()!.querySelector<HTMLInputElement>(\"[ui5-input]\")!;\n\t}\n\n\tget openOnMobile() {\n\t\treturn this._isPhone && this.open;\n\t}\n\n\tget hasValueState(): boolean {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget hasValueStateText(): boolean {\n\t\treturn this.hasValueState && this.valueState !== ValueState.Positive;\n\t}\n\n\tget ariaValueStateHiddenText(): string {\n\t\tif (!this.hasValueState) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tlet text = \"\";\n\n\t\tif (this.valueState !== ValueState.None) {\n\t\t\ttext = this.valueStateTypeMappings[this.valueState];\n\t\t}\n\n\t\tif (this.shouldDisplayDefaultValueStateMessage) {\n\t\t\treturn `${text} ${this.valueStateDefaultText || \"\"}`;\n\t\t}\n\n\t\treturn `${text}`.concat(\" \", this.valueStateMessage.map(el => el.textContent).join(\" \"));\n\t}\n\n\tget valueStateDefaultText(): string | undefined {\n\t\tif (this.valueState === ValueState.None) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.valueStateTextMappings[this.valueState];\n\t}\n\n\tget valueStateTextMappings(): ValueStateAnnouncement {\n\t\treturn {\n\t\t\t[ValueState.Positive]: ComboBox.i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t\t[ValueState.Negative]: ComboBox.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t[ValueState.Critical]: ComboBox.i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t\t[ValueState.Information]: ComboBox.i18nBundle.getText(VALUE_STATE_INFORMATION),\n\t\t};\n\t}\n\n\tget valueStateTypeMappings(): ValueStateTypeAnnouncement {\n\t\treturn {\n\t\t\t[ValueState.Positive]: ComboBox.i18nBundle.getText(VALUE_STATE_TYPE_SUCCESS),\n\t\t\t[ValueState.Information]: ComboBox.i18nBundle.getText(VALUE_STATE_TYPE_INFORMATION),\n\t\t\t[ValueState.Negative]: ComboBox.i18nBundle.getText(VALUE_STATE_TYPE_ERROR),\n\t\t\t[ValueState.Critical]: ComboBox.i18nBundle.getText(VALUE_STATE_TYPE_WARNING),\n\t\t};\n\t}\n\n\tget shouldOpenValueStateMessagePopover(): boolean {\n\t\treturn this.focused && !this.readonly && this.hasValueStateText && !this._iconPressed\n\t\t\t&& !this.open && !this._isPhone;\n\t}\n\n\tget shouldDisplayDefaultValueStateMessage(): boolean {\n\t\treturn !this.valueStateMessage.length && this.hasValueStateText;\n\t}\n\n\tget _valueStatePopoverHorizontalAlign(): `${PopoverHorizontalAlign}` {\n\t\treturn this.effectiveDir !== \"rtl\" ? PopoverHorizontalAlign.Start : PopoverHorizontalAlign.End;\n\t}\n\n\t/**\n\t * This method is relevant for sap_horizon theme only\n\t */\n\tget _valueStateMessageIcon(): string {\n\t\treturn this.valueState !== ValueState.None ? ValueStateIconMapping[this.valueState] : \"\";\n\t}\n\n\tget _isPhone(): boolean {\n\t\treturn isPhone();\n\t}\n\n\tget itemTabIndex() {\n\t\treturn undefined;\n\t}\n\n\tget ariaLabelText(): string | undefined {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget clearIconAccessibleName() {\n\t\treturn ComboBox.i18nBundle.getText(INPUT_CLEAR_ICON_ACC_NAME);\n\t}\n\n\tget responsivePopoverId() {\n\t\treturn `${this._id}-popover`;\n\t}\n\n\tget styles() {\n\t\tconst remSizeInPx = parseInt(getComputedStyle(document.documentElement).fontSize);\n\t\treturn {\n\t\t\tpopoverHeader: {\n\t\t\t\t\"width\": `${this.offsetWidth}px`,\n\t\t\t},\n\t\t\tsuggestionPopoverHeader: {\n\t\t\t\t\"display\": this._listWidth === 0 ? \"none\" : \"inline-block\",\n\t\t\t\t\"width\": `${this._listWidth || \"\"}px`,\n\t\t\t},\n\t\t\tsuggestionsPopover: {\n\t\t\t\t\"min-width\": `${this.offsetWidth || 0}px`,\n\t\t\t\t\"max-width\": (this.offsetWidth / remSizeInPx) > 40 ? `${this.offsetWidth}px` : \"40rem\",\n\t\t\t},\n\t\t\tpopoverValueStateMessage: {},\n\t\t};\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tpopover: {\n\t\t\t\t\"ui5-suggestions-popover\": true,\n\t\t\t\t\"ui5-popover-with-value-state-header-phone\": this._isPhone && this.hasValueStateText,\n\t\t\t\t\"ui5-popover-with-value-state-header\": !this._isPhone && this.hasValueStateText,\n\t\t\t},\n\t\t\tpopoverValueState: {\n\t\t\t\t\"ui5-valuestatemessage-header\": true,\n\t\t\t\t\"ui5-valuestatemessage-root\": true,\n\t\t\t\t\"ui5-valuestatemessage--success\": this.valueState === ValueState.Positive,\n\t\t\t\t\"ui5-valuestatemessage--error\": this.valueState === ValueState.Negative,\n\t\t\t\t\"ui5-valuestatemessage--warning\": this.valueState === ValueState.Critical,\n\t\t\t\t\"ui5-valuestatemessage--information\": this.valueState === ValueState.Information,\n\t\t\t},\n\t\t};\n\t}\n}\n\nComboBox.define();\n\nexport default ComboBox;\n\nexport type {\n\tComboBoxSelectionChangeEventDetail,\n\tIComboBoxItem,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"ComboBox.js","sourceRoot":"","sources":["../src/ComboBox.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { isPhone, isAndroid } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/not-editable.js\";\nimport \"@ui5/webcomponents-icons/dist/error.js\";\nimport \"@ui5/webcomponents-icons/dist/alert.js\";\nimport \"@ui5/webcomponents-icons/dist/sys-enter-2.js\";\nimport \"@ui5/webcomponents-icons/dist/information.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport { submitForm } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport {\n\tisBackSpace,\n\tisDelete,\n\tisShow,\n\tisUp,\n\tisDown,\n\tisEnter,\n\tisEscape,\n\tisTabNext,\n\tisTabPrevious,\n\tisPageUp,\n\tisPageDown,\n\tisHome,\n\tisEnd,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { IIcon } from \"./Icon.js\";\nimport * as Filters from \"./Filters.js\";\n\nimport {\n\tVALUE_STATE_SUCCESS,\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n\tVALUE_STATE_INFORMATION,\n\tVALUE_STATE_TYPE_SUCCESS,\n\tVALUE_STATE_TYPE_INFORMATION,\n\tVALUE_STATE_TYPE_ERROR,\n\tVALUE_STATE_TYPE_WARNING,\n\tINPUT_SUGGESTIONS_TITLE,\n\tCOMBOBOX_AVAILABLE_OPTIONS,\n\tSELECT_OPTIONS,\n\tLIST_ITEM_POSITION,\n\tLIST_ITEM_GROUP_HEADER,\n\tINPUT_CLEAR_ICON_ACC_NAME,\n\tFORM_TEXTFIELD_REQUIRED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Templates\nimport ComboBoxTemplate from \"./generated/templates/ComboBoxTemplate.lit.js\";\n\n// Styles\nimport ComboBoxCss from \"./generated/themes/ComboBox.css.js\";\nimport ComboBoxPopoverCss from \"./generated/themes/ComboBoxPopover.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\nimport ValueStateMessageCss from \"./generated/themes/ValueStateMessage.css.js\";\nimport SuggestionsCss from \"./generated/themes/Suggestions.css.js\";\n\nimport ComboBoxItem from \"./ComboBoxItem.js\";\nimport Icon from \"./Icon.js\";\nimport Popover from \"./Popover.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport List from \"./List.js\";\nimport type { ListItemClickEventDetail } from \"./List.js\";\nimport BusyIndicator from \"./BusyIndicator.js\";\nimport Button from \"./Button.js\";\nimport ListItemStandard from \"./ListItemStandard.js\";\nimport ComboBoxItemGroup, { isInstanceOfComboBoxItemGroup } from \"./ComboBoxItemGroup.js\";\nimport ListItemGroup from \"./ListItemGroup.js\";\nimport ListItemGroupHeader from \"./ListItemGroupHeader.js\";\nimport type ComboBoxFilter from \"./types/ComboBoxFilter.js\";\nimport PopoverHorizontalAlign from \"./types/PopoverHorizontalAlign.js\";\nimport Input from \"./Input.js\";\nimport type { InputEventDetail } from \"./Input.js\";\nimport SuggestionItem from \"./SuggestionItem.js\";\n\nconst SKIP_ITEMS_SIZE = 10;\n\n/**\n * Interface for components that may be slotted inside a `ui5-combobox`\n * @public\n */\ninterface IComboBoxItem extends UI5Element {\n\ttext?: string,\n\theaderText?: string,\n\tfocused: boolean,\n\tisGroupItem?: boolean,\n\tselected?: boolean,\n\tadditionalText?: string,\n\t_isVisible?: boolean,\n\titems?: Array<IComboBoxItem>\n}\n\ntype ValueStateAnnouncement = Record<Exclude<ValueState, ValueState.None>, string>;\ntype ValueStateTypeAnnouncement = Record<Exclude<ValueState, ValueState.None>, string>;\n\nenum ValueStateIconMapping {\n\tNegative = \"error\",\n\tCritical = \"alert\",\n\tPositive = \"sys-enter-2\",\n\tInformation = \"information\",\n}\n\ntype ComboBoxSelectionChangeEventDetail = {\n\titem: ComboBoxItem,\n};\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-combobox` component represents a drop-down menu with a list of the available options and a text input field to narrow down the options.\n *\n * It is commonly used to enable users to select an option from a predefined list.\n *\n * ### Structure\n * The `ui5-combobox` consists of the following elements:\n *\n * - Input field - displays the selected option or a custom user entry. Users can type to narrow down the list or enter their own value.\n * - Drop-down arrow - expands\\collapses the option list.\n * - Option list - the list of available options.\n *\n * ### Keyboard Handling\n *\n * The `ui5-combobox` provides advanced keyboard handling.\n *\n * - [F4], [Alt]+[Up], or [Alt]+[Down] - Toggles the picker.\n * - [Escape] - Closes the picker, if open. If closed, cancels changes and reverts the typed in value.\n * - [Enter] or [Return] - If picker is open, takes over the currently selected item and closes it.\n * - [Down] - Selects the next matching item in the picker.\n * - [Up] - Selects the previous matching item in the picker.\n * - [Page Down] - Moves selection down by page size (10 items by default).\n * - [Page Up] - Moves selection up by page size (10 items by default).\n * - [Home] - If focus is in the ComboBox, moves cursor at the beginning of text. If focus is in the picker, selects the first item.\n * - [End] - If focus is in the ComboBox, moves cursor at the end of text. If focus is in the picker, selects the last item.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/ComboBox.js\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.0.0-rc.6\n */\n@customElement({\n\ttag: \"ui5-combobox\",\n\tlanguageAware: true,\n\tformAssociated: true,\n\trenderer: litRender,\n\tstyles: [\n\t\tComboBoxCss,\n\t\tResponsivePopoverCommonCss,\n\t\tValueStateMessageCss,\n\t\tComboBoxPopoverCss,\n\t\tSuggestionsCss,\n\t],\n\ttemplate: ComboBoxTemplate,\n\tdependencies: [\n\t\tComboBoxItem,\n\t\tIcon,\n\t\tResponsivePopover,\n\t\tList,\n\t\tBusyIndicator,\n\t\tButton,\n\t\tListItemStandard,\n\t\tListItemGroup,\n\t\tListItemGroupHeader,\n\t\tPopover,\n\t\tComboBoxItemGroup,\n\t\tInput,\n\t\tSuggestionItem,\n\t],\n})\n/**\n * Fired when the input operation has finished by pressing Enter, focusout or an item is selected.\n * @public\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when typing in input or clear icon is pressed.\n *\n * **Note:** filterValue property is updated, input is changed.\n * @public\n */\n@event(\"input\", {\n\tbubbles: true,\n})\n/**\n * Fired when selection is changed by user interaction\n * @param {IComboBoxItem} item item to be selected.\n * @public\n */\n@event<ComboBoxSelectionChangeEventDetail>(\"selection-change\", {\n\tdetail: {\n\t\t/**\n\t\t* @public\n\t\t*/\n\t\titem: { type: HTMLElement },\n\t},\n\tbubbles: true,\n})\n\nclass ComboBox extends UI5Element implements IFormInputElement {\n\t/**\n\t * Defines the value of the component.\n\t * @default \"\"\n\t * @formEvents change input\n\t * @formProperty\n\t * @public\n\t */\n\t@property()\n\tvalue = \"\";\n\n\t/**\n\t * Determines the name by which the component will be identified upon submission in an HTML form.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.\n\t * @default undefined\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@property()\n\tname?: string;\n\n\t/**\n\t * Defines whether the value will be autocompleted to match an item\n\t * @default false\n\t * @public\n\t * @since 1.19.0\n\t */\n\t@property({ type: Boolean })\n\tnoTypeahead = false;\n\n\t/**\n\t * Defines the \"live\" value of the component.\n\t *\n\t * **Note:** If we have an item e.g. \"Bulgaria\", \"B\" is typed, \"ulgaria\" is typed ahead, value will be \"Bulgaria\", filterValue will be \"B\".\n\t *\n\t * **Note:** Initially the filter value is synced with value.\n\t * @default \"\"\n\t * @private\n\t */\n\t@property()\n\tfilterValue = \"\"\n\n\t/**\n\t * Defines a short hint intended to aid the user with data entry when the\n\t * component has no value.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tplaceholder?: string;\n\n\t/**\n\t * Defines whether the component is in disabled state.\n\t *\n\t * **Note:** A disabled component is completely noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines the value state of the component.\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property()\n\tvalueState: `${ValueState}` = \"None\";\n\n\t/**\n\t * Defines whether the component is read-only.\n\t *\n\t * **Note:** A read-only component is not editable,\n\t * but still provides visual feedback upon user interaction.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly = false;\n\n\t/**\n\t * Defines whether the component is required.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\trequired = false;\n\n\t/**\n\t * Indicates whether a loading indicator should be shown in the picker.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines the filter type of the component.\n\t * @default \"StartsWithPerTerm\"\n\t * @public\n\t */\n\t@property()\n\tfilter: `${ComboBoxFilter}` = \"StartsWithPerTerm\";\n\n\t/**\n\t * Defines whether the clear icon of the combobox will be shown.\n\t * @default false\n\t * @public\n\t * @since 1.20.1\n\t */\n\t@property({ type: Boolean })\n\tshowClearIcon = false;\n\n\t/**\n\t * Indicates whether the input is focssed\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused = false;\n\n\t/**\n\t * Indicates whether the visual focus is on the value state header\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_isValueStateFocused = false;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_iconPressed = false;\n\n\t@property({ type: Array })\n\t_filteredItems: Array<IComboBoxItem> = [];\n\n\t@property({ type: Number, noAttribute: true })\n\t_listWidth?: number;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_effectiveShowClearIcon = false\n\n\t/**\n\t * Indicates whether the value state message popover is open.\n\t * @private\n\t * @since 2.0.0\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\tvalueStateOpen = false;\n\n\t/**\n\t * Indicates whether the items picker is open.\n\t * @private\n\t * @since 2.0.0\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\topen = false;\n\n\t/**\n\t * Defines the component items.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: true,\n\t})\n\titems!: Array<IComboBoxItem>;\n\n\t/**\n\t * Defines the value state message that will be displayed as pop up under the component.\n\t * The value state message slot should contain only one root element.\n\t *\n\t * **Note:** If not specified, a default text (in the respective language) will be displayed.\n\t *\n\t * **Note:** The `valueStateMessage` would be displayed,\n\t * when the `ui5-combobox` is in `Information`, `Critical` or `Negative` value state.\n\t * @since 1.0.0-rc.9\n\t * @public\n\t */\n\t@slot()\n\tvalueStateMessage!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the icon to be displayed in the input field.\n\t * @public\n\t * @since 1.0.0-rc.9\n\t */\n\t@slot()\n\ticon!: Array<IIcon>;\n\n\t_initialRendering = true;\n\t_itemFocused = false;\n\t// used only for Safari fix (check onAfterRendering)\n\t_autocomplete = false;\n\t_isKeyNavigation = false;\n\t_selectionPerformed = false;\n\t_lastValue: string;\n\t_selectedItemText = \"\";\n\t_userTypedValue = \"\";\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tget formValidityMessage() {\n\t\treturn ComboBox.i18nBundle.getText(FORM_TEXTFIELD_REQUIRED);\n\t}\n\n\tget formValidity(): ValidityStateFlags {\n\t\treturn { valueMissing: this.required && !this.value };\n\t}\n\n\tasync formElementAnchor() {\n\t\treturn this.getFocusDomRefAsync();\n\t}\n\n\tget formFormattedValue() {\n\t\treturn this.value;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\t// when an initial value is set it should be considered as a _lastValue\n\t\tthis._lastValue = this.getAttribute(\"value\") || \"\";\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._effectiveShowClearIcon = (this.showClearIcon && !!this.value && !this.readonly && !this.disabled);\n\n\t\tif (this._initialRendering || this.filter === \"None\") {\n\t\t\tthis._filteredItems = this.items;\n\t\t}\n\n\t\tif (this.open && !this._isKeyNavigation) {\n\t\t\tconst items = this._filterItems(this.filterValue);\n\t\t\tthis._filteredItems = (items.length && items) || [];\n\t\t}\n\n\t\tconst hasNoVisibleItems = !this._filteredItems.length || !this._filteredItems.some(i => i._isVisible);\n\n\t\t// If there is no filtered items matching the value, show all items when the arrow is pressed\n\t\tif (((hasNoVisibleItems && !isPhone()) && this.value)) {\n\t\t\tthis.items.forEach(this._makeAllVisible.bind(this));\n\t\t\tthis._filteredItems = this.items;\n\t\t}\n\n\t\tif (this.shouldOpenValueStateMessagePopover) {\n\t\t\tthis.valueStateOpen = true;\n\t\t} else {\n\t\t\tthis.valueStateOpen = false;\n\t\t}\n\n\t\tthis._selectMatchingItem();\n\t\tthis._initialRendering = false;\n\n\t\tthis.style.setProperty(getScopedVarName(\"--_ui5-input-icons-count\"), `${this.iconsCount}`);\n\t}\n\n\tget iconsCount() {\n\t\tconst slottedIconsCount = this.icon?.length || 0;\n\t\tconst clearIconCount = Number(this._effectiveShowClearIcon) ?? 0;\n\t\tconst arrowDownIconsCount = this.readonly ? 0 : 1;\n\n\t\treturn slottedIconsCount + clearIconCount + arrowDownIconsCount;\n\t}\n\n\tonAfterRendering() {\n\t\tif (this.inner && this.value !== this.inner.value) {\n\t\t\tthis.value = this.inner.value;\n\t\t}\n\n\t\tthis.storeResponsivePopoverWidth();\n\t}\n\n\t_focusin(e: FocusEvent) {\n\t\tthis.focused = true;\n\t\tthis._autocomplete = false;\n\n\t\t!isPhone() && (e.target as HTMLInputElement).setSelectionRange(0, this.value.length);\n\t}\n\n\t_focusout(e: FocusEvent) {\n\t\tconst toBeFocused = e.relatedTarget as HTMLElement;\n\t\tconst clearIconWrapper = this.shadowRoot!.querySelector(\".ui5-input-clear-icon-wrapper\");\n\t\tconst focusedOutToClearIcon = clearIconWrapper === toBeFocused || clearIconWrapper?.contains(toBeFocused);\n\n\t\tif (this._effectiveShowClearIcon && focusedOutToClearIcon) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._fireChangeEvent();\n\n\t\tconst focusedOutToItemsPicker = this.open && this._getPicker().contains(toBeFocused);\n\t\tconst focusedOutToValueState = this.valueStateOpen && this.contains(toBeFocused);\n\n\t\tif (focusedOutToItemsPicker || focusedOutToValueState) {\n\t\t\te.stopImmediatePropagation();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!(this.getDomRef()!.contains(toBeFocused)) && (this._getPicker() !== e.relatedTarget)) {\n\t\t\tthis.focused = false;\n\t\t}\n\t}\n\n\t_beforeOpenPopover() {\n\t\tif (isPhone()) {\n\t\t\tthis._getPickerInput().value = this.value;\n\t\t}\n\t}\n\n\t_afterOpenPopover() {\n\t\tthis._iconPressed = true;\n\t\tthis.inner.focus();\n\t}\n\n\t_afterClosePopover() {\n\t\tthis._iconPressed = false;\n\t\tthis._filteredItems = this.items;\n\t\tthis.filterValue = \"\";\n\t\tthis._selectedItemText = \"\";\n\n\t\t// close device's keyboard and prevent further typing\n\t\tif (isPhone()) {\n\t\t\tthis.blur();\n\t\t}\n\n\t\tif (this._selectionPerformed) {\n\t\t\tthis._lastValue = this.value;\n\t\t\tthis._selectionPerformed = false;\n\t\t}\n\n\t\tthis.open = false;\n\t}\n\n\t_toggleRespPopover() {\n\t\tif (this.open) {\n\t\t\tthis._closeRespPopover();\n\t\t} else {\n\t\t\tthis._openRespPopover();\n\t\t}\n\t}\n\n\tstoreResponsivePopoverWidth() {\n\t\tif (this.open && !this._listWidth) {\n\t\t\tthis._listWidth = this._getPicker().offsetWidth;\n\t\t}\n\t}\n\n\t_handleValueStatePopoverFocusout() {\n\t\tthis.focused = false;\n\t}\n\n\t_handleValueStatePopoverAfterClose() {\n\t\tthis.valueStateOpen = false;\n\t}\n\n\t_getValueStatePopover() {\n\t\treturn this.shadowRoot!.querySelector<Popover>(\".ui5-valuestatemessage-popover\")!;\n\t}\n\n\t_getItemsList(): List {\n\t\treturn this._getPicker().querySelector(\".ui5-combobox-items-list\") as List;\n\t}\n\n\t_resetFilter() {\n\t\tthis._userTypedValue = \"\";\n\t\tthis.inner.setSelectionRange(0, this.value.length);\n\t\tthis._filteredItems = this._filterItems(\"\");\n\t\tthis._selectMatchingItem();\n\t}\n\n\t_resetItemVisibility() {\n\t\tthis.items.forEach(item => {\n\t\t\tif (isInstanceOfComboBoxItemGroup(item)) {\n\t\t\t\titem.items?.forEach(i => {\n\t\t\t\t\ti._isVisible = false;\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\titem._isVisible = false;\n\t\t});\n\t}\n\n\t_arrowClick() {\n\t\tthis.inner.focus();\n\t\tthis._resetFilter();\n\n\t\tif (isPhone() && this.value && !this._lastValue) {\n\t\t\tthis._lastValue = this.value;\n\t\t}\n\n\t\tthis._toggleRespPopover();\n\t}\n\n\t_handleMobileKeydown(e: KeyboardEvent) {\n\t\tif (isEscape(e)) {\n\t\t\tthis.value = this._lastValue || \"\";\n\t\t\tthis.filterValue = this._lastValue || \"\";\n\t\t\tthis._closeRespPopover();\n\t\t}\n\t}\n\n\t_handleMobileInput(e: CustomEvent<InputEventDetail>) {\n\t\tconst { target } = e;\n\t\tthis.filterValue = (target as Input).value;\n\t\tthis.value = (target as Input).value;\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_input(e: InputEvent) {\n\t\tconst { value } = e.target as HTMLInputElement;\n\t\tconst shouldAutocomplete = this.shouldAutocomplete(e);\n\n\t\tif (e.target === this.inner) {\n\t\t\t// stop the native event, as the semantic \"input\" would be fired.\n\t\t\te.stopImmediatePropagation();\n\t\t\tthis.focused = true;\n\t\t\tthis._isValueStateFocused = false;\n\t\t}\n\n\t\tthis._filteredItems = this._filterItems(value);\n\n\t\tthis.value = value;\n\t\tthis.filterValue = value;\n\n\t\tthis._clearFocus();\n\n\t\t// autocomplete\n\t\tif (shouldAutocomplete && !isAndroid()) {\n\t\t\tthis._handleTypeAhead(value, value, true);\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"input\");\n\n\t\tif (isPhone()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._filteredItems.length || value === \"\") {\n\t\t\tthis._closeRespPopover();\n\t\t} else {\n\t\t\tthis._openRespPopover();\n\t\t}\n\t}\n\n\tshouldAutocomplete(e: InputEvent): boolean {\n\t\tconst eventType = e.inputType;\n\t\tconst allowedEventTypes = [\n\t\t\t\"deleteWordBackward\",\n\t\t\t\"deleteWordForward\",\n\t\t\t\"deleteSoftLineBackward\",\n\t\t\t\"deleteSoftLineForward\",\n\t\t\t\"deleteEntireSoftLine\",\n\t\t\t\"deleteHardLineBackward\",\n\t\t\t\"deleteHardLineForward\",\n\t\t\t\"deleteByDrag\",\n\t\t\t\"deleteByCut\",\n\t\t\t\"deleteContent\",\n\t\t\t\"deleteContentBackward\",\n\t\t\t\"deleteContentForward\",\n\t\t\t\"historyUndo\",\n\t\t];\n\n\t\treturn !this.noTypeahead && !allowedEventTypes.includes(eventType);\n\t}\n\n\t_startsWithMatchingItems(str: string): Array<IComboBoxItem> {\n\t\tconst allItems:Array<IComboBoxItem> = this._getItems().filter(item => !isInstanceOfComboBoxItemGroup(item));\n\t\treturn Filters.StartsWith(str, allItems, \"text\");\n\t}\n\n\t_clearFocus() {\n\t\tconst allItems = this._getItems();\n\n\t\tallItems.map(item => {\n\t\t\titem.focused = false;\n\n\t\t\treturn item;\n\t\t});\n\t}\n\n\t// Get groups and items as a flat array for filtering\n\t_getItems() {\n\t\tconst allItems: Array<IComboBoxItem> = [];\n\n\t\tthis._filteredItems.forEach(item => {\n\t\t\tif (isInstanceOfComboBoxItemGroup(item)) {\n\t\t\t\tconst visibleItems = this.open ? item.items.filter(i => i._isVisible) : item.items;\n\t\t\t\tconst groupedItems = [item, ...visibleItems];\n\t\t\t\tallItems.push(...groupedItems);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tallItems.push(item);\n\t\t});\n\n\t\treturn allItems;\n\t}\n\n\thandleNavKeyPress(e: KeyboardEvent) {\n\t\tconst allItems = this._getItems();\n\n\t\tif (this.focused && (isHome(e) || isEnd(e)) && this.value) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isOpen = this.open;\n\t\tconst currentItem = allItems.find(item => {\n\t\t\treturn item.selected || item.focused;\n\t\t});\n\n\t\tconst indexOfItem = currentItem ? allItems.indexOf(currentItem) : -1;\n\t\te.preventDefault();\n\n\t\tif (this.focused && isOpen && (isUp(e) || isPageUp(e) || isPageDown(e))) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (allItems.length - 1 === indexOfItem && isDown(e)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isKeyNavigation = true;\n\n\t\tif (\n\t\t\te.key === \"ArrowDown\"\n\t\t\t|| e.key === \"ArrowUp\"\n\t\t\t|| e.key === \"PageUp\"\n\t\t\t|| e.key === \"PageDown\"\n\t\t\t|| e.key === \"Home\"\n\t\t\t|| e.key === \"End\"\n\t\t) {\n\t\t\tthis[`_handle${e.key}`](e, indexOfItem);\n\t\t}\n\t}\n\n\t_handleItemNavigation(e: KeyboardEvent, indexOfItem: number, isForward: boolean) {\n\t\tconst allItems = this._getItems();\n\n\t\tconst currentItem: IComboBoxItem = allItems[indexOfItem];\n\t\tconst isGroupItem = currentItem && currentItem.isGroupItem;\n\t\tconst nextItem = isForward ? allItems[indexOfItem + 1] : allItems[indexOfItem - 1];\n\n\t\tif ((!this.open) && ((isGroupItem && !nextItem) || (!isGroupItem && !currentItem))) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._clearFocus();\n\n\t\tif (this.open) {\n\t\t\tthis._itemFocused = true;\n\t\t\tthis.value = isGroupItem ? \"\" : currentItem.text!;\n\t\t\tthis.focused = false;\n\n\t\t\tcurrentItem.focused = true;\n\t\t} else {\n\t\t\tthis.focused = true;\n\t\t\tthis.value = isGroupItem ? nextItem.text! : currentItem.text!;\n\t\t\tcurrentItem.focused = false;\n\t\t}\n\n\t\tthis._isValueStateFocused = false;\n\n\t\tthis._announceSelectedItem(indexOfItem);\n\t\tthis._scrollToItem(indexOfItem);\n\n\t\tif (isGroupItem && this.open) {\n\t\t\treturn;\n\t\t}\n\t\t// autocomplete\n\t\tthis._handleTypeAhead(this.value, this.open ? this._userTypedValue : \"\", false);\n\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_handleTypeAhead(value: string, filterValue: string, checkForGroupItem: boolean) {\n\t\tconst item = this._getFirstMatchingItem(value);\n\n\t\tif (!item) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._applyAtomicValueAndSelection(item, filterValue);\n\n\t\tif (value !== \"\" && !item.selected && (!checkForGroupItem || !item.isGroupItem)) {\n\t\t\tthis.fireDecoratorEvent<ComboBoxSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\titem: item as ComboBoxItem,\n\t\t\t});\n\t\t}\n\t}\n\n\t_handleArrowDown(e: KeyboardEvent, indexOfItem: number) {\n\t\tconst isOpen = this.open;\n\n\t\tif (this.focused && indexOfItem === -1 && this.hasValueStateText && isOpen) {\n\t\t\tthis._isValueStateFocused = true;\n\t\t\tthis._announceValueStateText();\n\t\t\tthis.focused = false;\n\t\t\treturn;\n\t\t}\n\n\t\tindexOfItem = !isOpen && this.hasValueState && indexOfItem === -1 ? 0 : indexOfItem;\n\n\t\tthis._handleItemNavigation(e, ++indexOfItem, true /* isForward */);\n\t}\n\n\t_handleArrowUp(e: KeyboardEvent, indexOfItem: number) {\n\t\tconst isOpen = this.open;\n\n\t\tif (indexOfItem === 0 && !this.hasValueStateText) {\n\t\t\tthis._clearFocus();\n\t\t\tthis.focused = true;\n\t\t\tthis._itemFocused = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (indexOfItem === 0 && this.hasValueStateText && isOpen && !this._isValueStateFocused) {\n\t\t\tthis._clearFocus();\n\t\t\tthis._itemFocused = false;\n\t\t\tthis._isValueStateFocused = true;\n\t\t\tthis._announceValueStateText();\n\t\t\tthis._filteredItems[0].selected = false;\n\t\t\tthis.value = this._userTypedValue;\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._isValueStateFocused) {\n\t\t\tthis.focused = true;\n\t\t\tthis._isValueStateFocused = false;\n\t\t\tthis.value = this._userTypedValue;\n\n\t\t\treturn;\n\t\t}\n\n\t\tindexOfItem = !isOpen && this.hasValueState && indexOfItem === -1 ? 0 : indexOfItem;\n\t\tthis._handleItemNavigation(e, --indexOfItem, false /* isForward */);\n\t}\n\n\t_handlePageUp(e: KeyboardEvent, indexOfItem: number) {\n\t\tconst allItems = this._getItems();\n\t\tconst isProposedIndexValid = indexOfItem - SKIP_ITEMS_SIZE > -1;\n\t\tindexOfItem = isProposedIndexValid ? indexOfItem - SKIP_ITEMS_SIZE : 0;\n\t\tconst shouldMoveForward = isInstanceOfComboBoxItemGroup(allItems[indexOfItem]) && !this.open;\n\n\t\tif (!isProposedIndexValid && this.hasValueStateText && this.open) {\n\t\t\tthis._clearFocus();\n\t\t\tthis._itemFocused = false;\n\t\t\tthis._isValueStateFocused = true;\n\t\t\tthis._announceValueStateText();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._handleItemNavigation(e, indexOfItem, shouldMoveForward);\n\t}\n\n\t_handlePageDown(e: KeyboardEvent, indexOfItem: number) {\n\t\tconst allItems = this._getItems();\n\t\tconst itemsLength = allItems.length;\n\t\tconst isProposedIndexValid = indexOfItem + SKIP_ITEMS_SIZE < itemsLength;\n\n\t\tindexOfItem = isProposedIndexValid ? indexOfItem + SKIP_ITEMS_SIZE : itemsLength - 1;\n\t\tconst shouldMoveForward = isInstanceOfComboBoxItemGroup(allItems[indexOfItem]) && !this.open;\n\n\t\tthis._handleItemNavigation(e, indexOfItem, shouldMoveForward);\n\t}\n\n\t_handleHome(e: KeyboardEvent) {\n\t\tconst shouldMoveForward = isInstanceOfComboBoxItemGroup(this._filteredItems[0]) && !this.open;\n\n\t\tif (this.hasValueStateText && this.open) {\n\t\t\tthis._clearFocus();\n\t\t\tthis._itemFocused = false;\n\t\t\tthis._isValueStateFocused = true;\n\t\t\tthis._announceValueStateText();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._handleItemNavigation(e, 0, shouldMoveForward);\n\t}\n\n\t_handleEnd(e: KeyboardEvent) {\n\t\tthis._handleItemNavigation(e, this._getItems().length - 1, true /* isForward */);\n\t}\n\n\t_keyup() {\n\t\tthis._userTypedValue = this.value.substring(0, this.inner.selectionStart || 0);\n\t}\n\n\t_keydown(e: KeyboardEvent) {\n\t\tconst isNavKey = isDown(e) || isUp(e) || isPageUp(e) || isPageDown(e) || isHome(e) || isEnd(e);\n\t\tconst allItems: Array<IComboBoxItem> = this._getItems();\n\n\t\tthis._autocomplete = !(isBackSpace(e) || isDelete(e));\n\t\tthis._isKeyNavigation = false;\n\n\t\tif (isNavKey && !this.readonly && this._filteredItems.length) {\n\t\t\tthis.handleNavKeyPress(e);\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tlet focusedItem: IComboBoxItem | undefined;\n\n\t\t\tthis._filteredItems.forEach(item => {\n\t\t\t\tif (isInstanceOfComboBoxItemGroup(item) && !focusedItem) {\n\t\t\t\t\tfocusedItem = item.items.find(groupItem => groupItem.focused);\n\t\t\t\t}\n\n\t\t\t\tif (item.focused) {\n\t\t\t\t\tfocusedItem = item;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis._fireChangeEvent();\n\n\t\t\tif (this.open && !focusedItem?.isGroupItem) {\n\t\t\t\tthis._closeRespPopover();\n\t\t\t\tthis.focused = true;\n\t\t\t\tthis.inner.setSelectionRange(this.value.length, this.value.length);\n\t\t\t} else if (this._internals.form) {\n\t\t\t\tsubmitForm(this);\n\t\t\t}\n\t\t}\n\n\t\tif (isEscape(e)) {\n\t\t\tthis.focused = true;\n\t\t\tthis.value = !this.open ? this._lastValue : this.value;\n\t\t\tthis._isValueStateFocused = false;\n\t\t}\n\n\t\tif ((isTabNext(e) || isTabPrevious(e)) && this.open) {\n\t\t\tthis._closeRespPopover();\n\t\t}\n\n\t\tif (isShow(e) && !this.readonly && !this.disabled) {\n\t\t\te.preventDefault();\n\n\t\t\tthis._resetFilter();\n\t\t\tthis._toggleRespPopover();\n\n\t\t\tconst selectedItem = allItems.find(item => {\n\t\t\t\treturn item.selected;\n\t\t\t});\n\n\t\t\tif (selectedItem && this.open) {\n\t\t\t\tthis._itemFocused = true;\n\t\t\t\tselectedItem.focused = true;\n\t\t\t\tthis.focused = false;\n\t\t\t} else if (this.open && this._filteredItems.length && !this.value.length) {\n\t\t\t\t// If no item is selected, select the first non-group item on \"Show\" (F4, Alt+Up/Down)\n\t\t\t\tconst firstNonGroupItem = this._getItems().findIndex(item => item._isVisible && !item.isGroupItem);\n\t\t\t\tthis._handleItemNavigation(e, firstNonGroupItem, true /* isForward */);\n\t\t\t} else {\n\t\t\t\tthis.focused = true;\n\t\t\t}\n\t\t}\n\t}\n\n\t_handlePopoverKeydown(e: KeyboardEvent) {\n\t\tif (isTabNext(e)) {\n\t\t\tthis._closeRespPopover();\n\t\t}\n\t}\n\n\t_handlePopoverFocusout() {\n\t\tthis.focused = false;\n\t}\n\n\t_click() {\n\t\tif (isPhone() && !this.readonly) {\n\t\t\tthis._openRespPopover();\n\t\t}\n\t}\n\n\t_closeRespPopover(e?: Event | null) {\n\t\tif ((e && (e.target as HTMLElement).classList.contains(\"ui5-responsive-popover-close-btn\"))) {\n\t\t\tif (this._selectedItemText) {\n\t\t\t\tthis.value = this._selectedItemText;\n\t\t\t\tthis.filterValue = this._selectedItemText;\n\t\t\t} else {\n\t\t\t\tthis.value = this._lastValue || \"\";\n\t\t\t\tthis.filterValue = this._lastValue || \"\";\n\t\t\t}\n\t\t}\n\n\t\tif (isPhone()) {\n\t\t\tthis._fireChangeEvent();\n\t\t}\n\n\t\tthis._isValueStateFocused = false;\n\t\tthis._clearFocus();\n\t\tthis.open = false;\n\t\tthis.valueStateOpen = false;\n\t}\n\n\t_openRespPopover() {\n\t\tthis.open = true;\n\t}\n\n\t_filterItems(str: string) {\n\t\tlet filteredItem:IComboBoxItem;\n\t\tlet filteredGroupItems: Array<IComboBoxItem> = [];\n\t\tconst filteredItems: Array<IComboBoxItem> = [];\n\t\tconst filteredItemGroups: Array<IComboBoxItem> = [];\n\n\t\tthis._resetItemVisibility();\n\t\tthis.items.forEach(item => {\n\t\t\tif (isInstanceOfComboBoxItemGroup(item)) {\n\t\t\t\tfilteredGroupItems = (Filters[this.filter] || Filters.StartsWithPerTerm)(str, item.items, \"text\");\n\t\t\t\tfilteredGroupItems.forEach(i => {\n\t\t\t\t\ti._isVisible = true;\n\t\t\t\t});\n\n\t\t\t\tif (filteredGroupItems.length) {\n\t\t\t\t\tfilteredItemGroups.push(item);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t[filteredItem] = (Filters[this.filter] || Filters.StartsWithPerTerm)(str, [item], \"text\");\n\n\t\t\tif (filteredItem) {\n\t\t\t\tfilteredItem._isVisible = true;\n\t\t\t\tfilteredItems.push(filteredItem);\n\t\t\t}\n\t\t});\n\n\t\treturn [...filteredItemGroups, ...filteredItems];\n\t}\n\n\t_getFirstMatchingItem(current: string): IComboBoxItem | void {\n\t\tconst allItems = this._getItems();\n\t\tconst currentlyFocusedItem = allItems.find(item => item.focused === true);\n\n\t\tif (currentlyFocusedItem?.isGroupItem) {\n\t\t\tthis.value = this.filterValue;\n\t\t\treturn;\n\t\t}\n\n\t\tconst matchingItems: Array<IComboBoxItem> = this._startsWithMatchingItems(current);\n\n\t\tif (matchingItems.length) {\n\t\t\treturn matchingItems[0];\n\t\t}\n\t}\n\n\t_applyAtomicValueAndSelection(item: IComboBoxItem, filterValue: string) {\n\t\tconst value = (item && item.text) || \"\";\n\n\t\tthis.inner.value = value;\n\t\tthis.inner.setSelectionRange(filterValue.length, value.length);\n\t\tthis.value = value;\n\t}\n\n\t_selectMatchingItem() {\n\t\tconst currentlyFocusedItem = this.items.find(item => item.focused);\n\t\tconst shouldSelectionBeCleared = currentlyFocusedItem && currentlyFocusedItem.isGroupItem;\n\t\tlet itemToBeSelected: IComboBoxItem | undefined;\n\n\t\tthis._filteredItems.forEach(item => {\n\t\t\tif (!shouldSelectionBeCleared && !itemToBeSelected) {\n\t\t\t\titemToBeSelected = ((!item.isGroupItem && (item.text === this.value)) ? item : item?.items?.find(i => i.text === this.value));\n\t\t\t}\n\t\t});\n\n\t\tthis._filteredItems = this._filteredItems.map(item => {\n\t\t\tif (!isInstanceOfComboBoxItemGroup(item)) {\n\t\t\t\titem.selected = item === itemToBeSelected;\n\t\t\t\treturn item;\n\t\t\t}\n\n\t\t\titem.items?.forEach(groupItem => {\n\t\t\t\tgroupItem.selected = itemToBeSelected === groupItem;\n\t\t\t});\n\n\t\t\treturn item;\n\t\t});\n\t}\n\n\t_fireChangeEvent() {\n\t\tif (this.value !== this._lastValue) {\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t\tthis._lastValue = this.value;\n\t\t}\n\t}\n\n\t_inputChange(e: Event) {\n\t\te.preventDefault();\n\t}\n\n\t_itemMousedown(e: MouseEvent) {\n\t\te.preventDefault();\n\t}\n\n\t_selectItem(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst item = e.detail.item as ComboBoxItem;\n\n\t\tthis._selectedItemText = item.text || \"\";\n\t\tthis._selectionPerformed = true;\n\n\t\tconst sameItemSelected = this.value === this._selectedItemText;\n\t\tconst sameSelectionPerformed = this.value.toLowerCase() === this.filterValue.toLowerCase();\n\n\t\tif (sameItemSelected && sameSelectionPerformed) {\n\t\t\tthis._fireChangeEvent(); // Click on an already typed, but not memoized value shouold also trigger the change event\n\t\t\treturn this._closeRespPopover();\n\t\t}\n\n\t\tthis.value = this._selectedItemText;\n\n\t\tif (!item.selected) {\n\t\t\tthis.fireDecoratorEvent<ComboBoxSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\titem,\n\t\t\t});\n\t\t}\n\n\t\tthis._fireChangeEvent();\n\t\tthis._closeRespPopover();\n\n\t\t// reset selection\n\t\tthis.inner.setSelectionRange(this.value.length, this.value.length);\n\t}\n\n\t_onItemFocus() {\n\t\tthis._itemFocused = true;\n\t}\n\n\t_announceSelectedItem(indexOfItem: number) {\n\t\tconst allItems = this._getItems();\n\t\tconst currentItem = allItems[indexOfItem];\n\t\tconst nonGroupItems = allItems.filter(item => !item.isGroupItem);\n\t\tconst currentItemAdditionalText = currentItem?.additionalText || \"\";\n\t\tconst isGroupItem = currentItem?.isGroupItem;\n\t\tconst itemPositionText = ComboBox.i18nBundle.getText(LIST_ITEM_POSITION, nonGroupItems.indexOf(currentItem) + 1, nonGroupItems.length);\n\t\tconst groupHeaderText = ComboBox.i18nBundle.getText(LIST_ITEM_GROUP_HEADER);\n\n\t\tif (isGroupItem) {\n\t\t\tannounce(`${groupHeaderText} ${currentItem.headerText}`, InvisibleMessageMode.Polite);\n\t\t} else {\n\t\t\tannounce(`${currentItemAdditionalText} ${itemPositionText}`.trim(), InvisibleMessageMode.Polite);\n\t\t}\n\t}\n\n\t_clear() {\n\t\tconst selectedItem = this.items.find(item => item.selected);\n\n\t\tif (selectedItem?.text === this.value) {\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t}\n\n\t\tthis.value = \"\";\n\t\tthis.fireDecoratorEvent(\"input\");\n\n\t\tif (this._isPhone) {\n\t\t\tthis._lastValue = \"\";\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t} else {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\t_makeAllVisible(item: IComboBoxItem) {\n\t\tif (isInstanceOfComboBoxItemGroup(item)) {\n\t\t\titem.items.forEach(groupItem => {\n\t\t\t\tgroupItem._isVisible = true;\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\titem._isVisible = true;\n\t}\n\n\t_scrollToItem(indexOfItem: number) {\n\t\tconst picker = this._getPicker();\n\t\tconst list = this._getItemsList();\n\t\tconst listItem = list?.listItems[indexOfItem];\n\n\t\tif (listItem) {\n\t\t\tconst pickerRect = picker.getBoundingClientRect();\n\t\t\tconst listItemRect = listItem.getBoundingClientRect();\n\t\t\tconst isListItemInVisibleArea = listItemRect.top >= pickerRect.top && listItemRect.bottom <= pickerRect.bottom;\n\n\t\t\tif (!isListItemInVisibleArea) {\n\t\t\t\tlistItem.scrollIntoView({\n\t\t\t\t\tbehavior: \"auto\",\n\t\t\t\t\tblock: \"nearest\",\n\t\t\t\t\tinline: \"nearest\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t_announceValueStateText() {\n\t\tconst valueStateText = this.shouldDisplayDefaultValueStateMessage ? this.valueStateDefaultText : this.valueStateMessage.map(el => el.textContent).join(\" \");\n\n\t\tif (valueStateText) {\n\t\t\tannounce(valueStateText, InvisibleMessageMode.Polite);\n\t\t}\n\t}\n\n\tget _headerTitleText() {\n\t\treturn ComboBox.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);\n\t}\n\n\tget _iconAccessibleNameText() {\n\t\treturn ComboBox.i18nBundle.getText(SELECT_OPTIONS);\n\t}\n\n\tget _popupLabel() {\n\t\treturn ComboBox.i18nBundle.getText(COMBOBOX_AVAILABLE_OPTIONS);\n\t}\n\n\tget inner(): HTMLInputElement {\n\t\treturn (isPhone() && this.open)\n\t\t\t? this._getPickerInput().shadowRoot!.querySelector(\"input\")!\n\t\t\t: this.shadowRoot!.querySelector<HTMLInputElement>(\"[inner-input]\")!;\n\t}\n\n\t_getPicker() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\t_getPickerInput() {\n\t\treturn this._getPicker()!.querySelector<HTMLInputElement>(\"[ui5-input]\")!;\n\t}\n\n\tget openOnMobile() {\n\t\treturn this._isPhone && this.open;\n\t}\n\n\tget hasValueState(): boolean {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget hasValueStateText(): boolean {\n\t\treturn this.hasValueState && this.valueState !== ValueState.Positive;\n\t}\n\n\tget ariaValueStateHiddenText(): string {\n\t\tif (!this.hasValueState) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tlet text = \"\";\n\n\t\tif (this.valueState !== ValueState.None) {\n\t\t\ttext = this.valueStateTypeMappings[this.valueState];\n\t\t}\n\n\t\tif (this.shouldDisplayDefaultValueStateMessage) {\n\t\t\treturn `${text} ${this.valueStateDefaultText || \"\"}`;\n\t\t}\n\n\t\treturn `${text}`.concat(\" \", this.valueStateMessage.map(el => el.textContent).join(\" \"));\n\t}\n\n\tget valueStateDefaultText(): string | undefined {\n\t\tif (this.valueState === ValueState.None) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.valueStateTextMappings[this.valueState];\n\t}\n\n\tget valueStateTextMappings(): ValueStateAnnouncement {\n\t\treturn {\n\t\t\t[ValueState.Positive]: ComboBox.i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t\t[ValueState.Negative]: ComboBox.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t[ValueState.Critical]: ComboBox.i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t\t[ValueState.Information]: ComboBox.i18nBundle.getText(VALUE_STATE_INFORMATION),\n\t\t};\n\t}\n\n\tget valueStateTypeMappings(): ValueStateTypeAnnouncement {\n\t\treturn {\n\t\t\t[ValueState.Positive]: ComboBox.i18nBundle.getText(VALUE_STATE_TYPE_SUCCESS),\n\t\t\t[ValueState.Information]: ComboBox.i18nBundle.getText(VALUE_STATE_TYPE_INFORMATION),\n\t\t\t[ValueState.Negative]: ComboBox.i18nBundle.getText(VALUE_STATE_TYPE_ERROR),\n\t\t\t[ValueState.Critical]: ComboBox.i18nBundle.getText(VALUE_STATE_TYPE_WARNING),\n\t\t};\n\t}\n\n\tget shouldOpenValueStateMessagePopover(): boolean {\n\t\treturn this.focused && !this.readonly && this.hasValueStateText && !this._iconPressed\n\t\t\t&& !this.open && !this._isPhone;\n\t}\n\n\tget shouldDisplayDefaultValueStateMessage(): boolean {\n\t\treturn !this.valueStateMessage.length && this.hasValueStateText;\n\t}\n\n\tget _valueStatePopoverHorizontalAlign(): `${PopoverHorizontalAlign}` {\n\t\treturn this.effectiveDir !== \"rtl\" ? PopoverHorizontalAlign.Start : PopoverHorizontalAlign.End;\n\t}\n\n\t/**\n\t * This method is relevant for sap_horizon theme only\n\t */\n\tget _valueStateMessageIcon(): string {\n\t\treturn this.valueState !== ValueState.None ? ValueStateIconMapping[this.valueState] : \"\";\n\t}\n\n\tget _isPhone(): boolean {\n\t\treturn isPhone();\n\t}\n\n\tget itemTabIndex() {\n\t\treturn undefined;\n\t}\n\n\tget ariaLabelText(): string | undefined {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget clearIconAccessibleName() {\n\t\treturn ComboBox.i18nBundle.getText(INPUT_CLEAR_ICON_ACC_NAME);\n\t}\n\n\tget responsivePopoverId() {\n\t\treturn `${this._id}-popover`;\n\t}\n\n\tget styles() {\n\t\tconst remSizeInPx = parseInt(getComputedStyle(document.documentElement).fontSize);\n\t\treturn {\n\t\t\tpopoverHeader: {\n\t\t\t\t\"width\": `${this.offsetWidth}px`,\n\t\t\t},\n\t\t\tsuggestionPopoverHeader: {\n\t\t\t\t\"display\": this._listWidth === 0 ? \"none\" : \"inline-block\",\n\t\t\t\t\"width\": `${this._listWidth || \"\"}px`,\n\t\t\t},\n\t\t\tsuggestionsPopover: {\n\t\t\t\t\"min-width\": `${this.offsetWidth || 0}px`,\n\t\t\t\t\"max-width\": (this.offsetWidth / remSizeInPx) > 40 ? `${this.offsetWidth}px` : \"40rem\",\n\t\t\t},\n\t\t\tpopoverValueStateMessage: {},\n\t\t};\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tpopover: {\n\t\t\t\t\"ui5-suggestions-popover\": true,\n\t\t\t\t\"ui5-popover-with-value-state-header-phone\": this._isPhone && this.hasValueStateText,\n\t\t\t\t\"ui5-popover-with-value-state-header\": !this._isPhone && this.hasValueStateText,\n\t\t\t},\n\t\t\tpopoverValueState: {\n\t\t\t\t\"ui5-valuestatemessage-header\": true,\n\t\t\t\t\"ui5-valuestatemessage-root\": true,\n\t\t\t\t\"ui5-valuestatemessage--success\": this.valueState === ValueState.Positive,\n\t\t\t\t\"ui5-valuestatemessage--error\": this.valueState === ValueState.Negative,\n\t\t\t\t\"ui5-valuestatemessage--warning\": this.valueState === ValueState.Critical,\n\t\t\t\t\"ui5-valuestatemessage--information\": this.valueState === ValueState.Information,\n\t\t\t},\n\t\t};\n\t}\n}\n\nComboBox.define();\n\nexport default ComboBox;\n\nexport type {\n\tComboBoxSelectionChangeEventDetail,\n\tIComboBoxItem,\n};\n"]}
|
package/dist/Form.d.ts
CHANGED
|
@@ -7,7 +7,6 @@ import type FormItemSpacing from "./types/FormItemSpacing.js";
|
|
|
7
7
|
* @since 2.0.0
|
|
8
8
|
*/
|
|
9
9
|
interface IFormItem extends UI5Element {
|
|
10
|
-
labelSpan: string;
|
|
11
10
|
itemSpacing: `${FormItemSpacing}`;
|
|
12
11
|
readonly isGroup: boolean;
|
|
13
12
|
colsXl?: number;
|
|
@@ -101,6 +100,22 @@ type ItemsInfo = {
|
|
|
101
100
|
*
|
|
102
101
|
* **For example:** To always place the labels on top set: `labelSpan="S12 M12 L12 XL12"` property.
|
|
103
102
|
*
|
|
103
|
+
* ### Items Empty Span
|
|
104
|
+
*
|
|
105
|
+
* By default, a form item spans 12 cells, fully divided between its label and field, with no empty space at the end:
|
|
106
|
+
* - **Label:** occupies 4 cells.
|
|
107
|
+
* - **Field:** occupies 8 cells.
|
|
108
|
+
*
|
|
109
|
+
* The `emptySpan` property provides additional layout flexibility by defining empty space at the form item’s end.
|
|
110
|
+
*
|
|
111
|
+
* **For example:** Setting "S0 M0 L3 XL3" (or just "L3 XL3") adjusts the layout as follows:
|
|
112
|
+
* - **Label:** remains 4 cells.
|
|
113
|
+
* - **Field:** is reduced to 5 cells.
|
|
114
|
+
* - **Empty space:** 3 cells are added at the end.
|
|
115
|
+
*
|
|
116
|
+
* Greater values increase the empty space at the end of the form item, reducing the space available for the label and its field.
|
|
117
|
+
* However, setting `emptySpan` to 1 cell is recommended and typically sufficient to achieve a balanced layout.
|
|
118
|
+
*
|
|
104
119
|
* ### Navigation flow
|
|
105
120
|
*
|
|
106
121
|
* The Form component supports two layout options for keyboard navigation:
|
|
@@ -172,7 +187,7 @@ declare class Form extends UI5Element {
|
|
|
172
187
|
*/
|
|
173
188
|
layout: string;
|
|
174
189
|
/**
|
|
175
|
-
* Defines the width proportion of the labels and fields of a
|
|
190
|
+
* Defines the width proportion of the labels and fields of a form item by breakpoint.
|
|
176
191
|
*
|
|
177
192
|
* By default, the labels take 4/12 (or 1/3) of the form item in M,L and XL sizes,
|
|
178
193
|
* and 12/12 in S size, e.g in S the label is on top of its associated field.
|
|
@@ -180,10 +195,26 @@ declare class Form extends UI5Element {
|
|
|
180
195
|
* The supported values are between 1 and 12. Greater the number, more space the label will use.
|
|
181
196
|
*
|
|
182
197
|
* **Note:** If "12" is set, the label will be displayed on top of its assosiated field.
|
|
198
|
+
*
|
|
183
199
|
* @default "S12 M4 L4 XL4"
|
|
184
200
|
* @public
|
|
185
201
|
*/
|
|
186
202
|
labelSpan: string;
|
|
203
|
+
/**
|
|
204
|
+
* Defines the number of cells that are empty at the end of each form item, configurable by breakpoint.
|
|
205
|
+
*
|
|
206
|
+
* By default, a form item spans 12 cells, fully divided between its label (4 cells) and field (8 cells), with no empty space at the end.
|
|
207
|
+
* The `emptySpan` provides additional layout flexibility by defining empty space at the form item’s end.
|
|
208
|
+
*
|
|
209
|
+
* **Note:**
|
|
210
|
+
* - The maximum allowable empty space is 10 cells. At least 1 cell each must remain for the label and the field.
|
|
211
|
+
* - When `emptySpan` is specified (greater than 0), ensure that the combined value of `emptySpan` and `labelSpan` does not exceed 11. This guarantees a minimum of 1 cell for the field.
|
|
212
|
+
*
|
|
213
|
+
* @default "S0 M0 L0 XL0"
|
|
214
|
+
* @since 2.5.0
|
|
215
|
+
* @public
|
|
216
|
+
*/
|
|
217
|
+
emptySpan: string;
|
|
187
218
|
/**
|
|
188
219
|
* Defines the header text of the component.
|
|
189
220
|
*
|
|
@@ -224,16 +255,22 @@ declare class Form extends UI5Element {
|
|
|
224
255
|
*/
|
|
225
256
|
columnsS: number;
|
|
226
257
|
labelSpanS: number;
|
|
258
|
+
emptySpanS: number;
|
|
227
259
|
columnsM: number;
|
|
228
260
|
labelSpanM: number;
|
|
261
|
+
emptySpanM: number;
|
|
229
262
|
columnsL: number;
|
|
230
263
|
labelSpanL: number;
|
|
264
|
+
emptySpanL: number;
|
|
231
265
|
columnsXl: number;
|
|
232
266
|
labelSpanXl: number;
|
|
267
|
+
emptySpanXl: number;
|
|
233
268
|
onBeforeRendering(): void;
|
|
234
269
|
onAfterRendering(): void;
|
|
235
270
|
setColumnLayout(): void;
|
|
236
|
-
|
|
271
|
+
parseFormItemSpan(): void;
|
|
272
|
+
setFormItemLayout(): void;
|
|
273
|
+
isValidFormItemLayout(labelSpan: number, emptySpan: number): boolean;
|
|
237
274
|
setFastNavGroup(): void;
|
|
238
275
|
setGroupsColSpan(): void;
|
|
239
276
|
getGroupsColSpan(cols: number, groups: number, index: number, group: IFormItem): number;
|