@ui5/webcomponents 2.0.0-rc.3 → 2.0.0-rc.4
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/.env.testing +4 -0
- package/CHANGELOG.md +215 -0
- package/README.md +0 -33
- package/dist/.tsbuildinfo +1 -1
- package/dist/Avatar.d.ts +2 -2
- package/dist/AvatarGroup.d.ts +4 -4
- package/dist/Breadcrumbs.d.ts +1 -1
- package/dist/Breadcrumbs.js +10 -5
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/Button.d.ts +26 -13
- package/dist/Button.js +34 -18
- package/dist/Button.js.map +1 -1
- package/dist/Calendar.d.ts +10 -5
- package/dist/Calendar.js +81 -26
- package/dist/Calendar.js.map +1 -1
- package/dist/CalendarDate.d.ts +2 -1
- package/dist/CalendarDate.js +1 -0
- package/dist/CalendarDate.js.map +1 -1
- package/dist/CalendarDateRange.d.ts +31 -0
- package/dist/CalendarDateRange.js +36 -0
- package/dist/CalendarDateRange.js.map +1 -0
- package/dist/CalendarHeader.js +8 -8
- package/dist/CalendarHeader.js.map +1 -1
- package/dist/CheckBox.d.ts +8 -17
- package/dist/CheckBox.js +14 -22
- package/dist/CheckBox.js.map +1 -1
- package/dist/ColorPalette.d.ts +19 -0
- package/dist/ColorPalette.js +112 -13
- package/dist/ColorPalette.js.map +1 -1
- package/dist/ColorPaletteItem.d.ts +16 -0
- package/dist/ColorPaletteItem.js +10 -0
- package/dist/ColorPaletteItem.js.map +1 -1
- package/dist/ColorPalettePopover.d.ts +5 -0
- package/dist/ColorPalettePopover.js +15 -0
- package/dist/ColorPalettePopover.js.map +1 -1
- package/dist/ColorPicker.d.ts +13 -1
- package/dist/ColorPicker.js +10 -0
- package/dist/ColorPicker.js.map +1 -1
- package/dist/ComboBox.d.ts +23 -11
- package/dist/ComboBox.js +156 -58
- package/dist/ComboBox.js.map +1 -1
- package/dist/ComboBoxItem.d.ts +5 -5
- package/dist/ComboBoxItem.js +3 -7
- package/dist/ComboBoxItem.js.map +1 -1
- package/dist/{ComboBoxGroupItem.d.ts → ComboBoxItemGroup.d.ts} +11 -3
- package/dist/{ComboBoxGroupItem.js → ComboBoxItemGroup.js} +24 -9
- package/dist/ComboBoxItemGroup.js.map +1 -0
- package/dist/CustomListItem.d.ts +7 -0
- package/dist/CustomListItem.js +7 -2
- package/dist/CustomListItem.js.map +1 -1
- package/dist/DatePicker.d.ts +9 -18
- package/dist/DatePicker.js +19 -15
- package/dist/DatePicker.js.map +1 -1
- package/dist/DateRangePicker.d.ts +5 -1
- package/dist/DateRangePicker.js +21 -0
- package/dist/DateRangePicker.js.map +1 -1
- package/dist/DateTimePicker.d.ts +4 -1
- package/dist/DateTimePicker.js +14 -0
- package/dist/DateTimePicker.js.map +1 -1
- package/dist/DayPicker.js +6 -4
- package/dist/DayPicker.js.map +1 -1
- package/dist/Dialog.d.ts +0 -16
- package/dist/Dialog.js +0 -21
- package/dist/Dialog.js.map +1 -1
- package/dist/FileUploader.d.ts +6 -23
- package/dist/FileUploader.js +15 -46
- package/dist/FileUploader.js.map +1 -1
- package/dist/Form.d.ts +198 -0
- package/dist/Form.js +358 -0
- package/dist/Form.js.map +1 -0
- package/dist/FormGroup.d.ts +63 -0
- package/dist/FormGroup.js +86 -0
- package/dist/FormGroup.js.map +1 -0
- package/dist/FormItem.d.ts +62 -0
- package/dist/FormItem.js +76 -0
- package/dist/FormItem.js.map +1 -0
- package/dist/Input.d.ts +17 -30
- package/dist/Input.js +46 -48
- package/dist/Input.js.map +1 -1
- package/dist/Label.d.ts +1 -1
- package/dist/Label.js +1 -1
- package/dist/Label.js.map +1 -1
- package/dist/Link.d.ts +4 -3
- package/dist/Link.js +2 -1
- package/dist/Link.js.map +1 -1
- package/dist/List.d.ts +3 -2
- package/dist/List.js +45 -0
- package/dist/List.js.map +1 -1
- package/dist/ListItem.d.ts +8 -15
- package/dist/ListItem.js +25 -34
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItemBase.d.ts +24 -2
- package/dist/ListItemBase.js +48 -13
- package/dist/ListItemBase.js.map +1 -1
- package/dist/ListItemGroup.d.ts +6 -1
- package/dist/ListItemGroup.js +4 -1
- package/dist/ListItemGroup.js.map +1 -1
- package/dist/ListItemGroupHeader.d.ts +2 -0
- package/dist/ListItemGroupHeader.js +9 -0
- package/dist/ListItemGroupHeader.js.map +1 -1
- package/dist/Menu.d.ts +11 -90
- package/dist/Menu.js +62 -324
- package/dist/Menu.js.map +1 -1
- package/dist/MenuItem.d.ts +57 -22
- package/dist/MenuItem.js +106 -24
- package/dist/MenuItem.js.map +1 -1
- package/dist/MonthPicker.d.ts +1 -0
- package/dist/MonthPicker.js +10 -6
- package/dist/MonthPicker.js.map +1 -1
- package/dist/MultiComboBox.d.ts +17 -3
- package/dist/MultiComboBox.js +63 -25
- package/dist/MultiComboBox.js.map +1 -1
- package/dist/MultiInput.d.ts +18 -4
- package/dist/MultiInput.js +56 -31
- package/dist/MultiInput.js.map +1 -1
- package/dist/NavigationMenu.d.ts +1 -6
- package/dist/NavigationMenu.js +3 -47
- package/dist/NavigationMenu.js.map +1 -1
- package/dist/NavigationMenuItem.d.ts +22 -3
- package/dist/NavigationMenuItem.js +29 -4
- package/dist/NavigationMenuItem.js.map +1 -1
- package/dist/Option.d.ts +20 -33
- package/dist/Option.js +31 -19
- package/dist/Option.js.map +1 -1
- package/dist/OptionCustom.d.ts +51 -0
- package/dist/OptionCustom.js +63 -0
- package/dist/OptionCustom.js.map +1 -0
- package/dist/Panel.d.ts +1 -1
- package/dist/Popover.d.ts +8 -21
- package/dist/Popover.js +32 -44
- package/dist/Popover.js.map +1 -1
- package/dist/Popup.d.ts +20 -23
- package/dist/Popup.js +53 -57
- package/dist/Popup.js.map +1 -1
- package/dist/RadioButton.d.ts +16 -27
- package/dist/RadioButton.js +19 -31
- package/dist/RadioButton.js.map +1 -1
- package/dist/RadioButtonGroup.js +6 -5
- package/dist/RadioButtonGroup.js.map +1 -1
- package/dist/RangeSlider.d.ts +3 -1
- package/dist/RangeSlider.js +7 -0
- package/dist/RangeSlider.js.map +1 -1
- package/dist/ResponsivePopover.d.ts +4 -16
- package/dist/ResponsivePopover.js +17 -30
- package/dist/ResponsivePopover.js.map +1 -1
- package/dist/SegmentedButtonItem.d.ts +6 -1
- package/dist/SegmentedButtonItem.js +7 -4
- package/dist/SegmentedButtonItem.js.map +1 -1
- package/dist/Select.d.ts +27 -82
- package/dist/Select.js +83 -231
- package/dist/Select.js.map +1 -1
- package/dist/Slider.d.ts +3 -1
- package/dist/Slider.js +4 -0
- package/dist/Slider.js.map +1 -1
- package/dist/SliderBase.d.ts +11 -1
- package/dist/SliderBase.js +6 -0
- package/dist/SliderBase.js.map +1 -1
- package/dist/StandardListItem.d.ts +7 -0
- package/dist/StandardListItem.js +3 -0
- package/dist/StandardListItem.js.map +1 -1
- package/dist/StepInput.d.ts +6 -15
- package/dist/StepInput.js +7 -11
- package/dist/StepInput.js.map +1 -1
- package/dist/Switch.d.ts +8 -17
- package/dist/Switch.js +13 -21
- package/dist/Switch.js.map +1 -1
- package/dist/TabContainer.js +11 -5
- package/dist/TabContainer.js.map +1 -1
- package/dist/Tag.d.ts +1 -1
- package/dist/Tag.js.map +1 -1
- package/dist/TextArea.d.ts +9 -18
- package/dist/TextArea.js +22 -15
- package/dist/TextArea.js.map +1 -1
- package/dist/TimePicker.d.ts +24 -24
- package/dist/TimePicker.js +32 -59
- package/dist/TimePicker.js.map +1 -1
- package/dist/TimeSelectionClocks.js +2 -0
- package/dist/TimeSelectionClocks.js.map +1 -1
- package/dist/TimeSelectionInputs.js +2 -0
- package/dist/TimeSelectionInputs.js.map +1 -1
- package/dist/Toast.d.ts +1 -1
- package/dist/Toast.js +2 -2
- package/dist/Toast.js.map +1 -1
- package/dist/ToggleSpinButton.d.ts +1 -1
- package/dist/ToggleSpinButton.js +1 -1
- package/dist/ToggleSpinButton.js.map +1 -1
- package/dist/Token.d.ts +5 -0
- package/dist/Token.js +3 -0
- package/dist/Token.js.map +1 -1
- package/dist/Tokenizer.d.ts +11 -5
- package/dist/Tokenizer.js +93 -71
- package/dist/Tokenizer.js.map +1 -1
- package/dist/Toolbar.d.ts +5 -0
- package/dist/Toolbar.js +16 -4
- package/dist/Toolbar.js.map +1 -1
- package/dist/ToolbarButton.d.ts +11 -3
- package/dist/ToolbarButton.js +2 -2
- package/dist/ToolbarButton.js.map +1 -1
- package/dist/TreeItemBase.d.ts +8 -1
- package/dist/TreeItemBase.js +3 -1
- package/dist/TreeItemBase.js.map +1 -1
- package/dist/TreeItemCustom.js +4 -2
- package/dist/TreeItemCustom.js.map +1 -1
- package/dist/bundle.esm.d.ts +0 -1
- package/dist/bundle.esm.js +5 -3
- package/dist/bundle.esm.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/CustomListItem.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 -0
- package/dist/css/themes/FormItem.css +1 -0
- package/dist/css/themes/FormLabelSpan.css +1 -0
- package/dist/css/themes/FormLayout.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/Label.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/ListItemAdditionalText.css +1 -0
- package/dist/css/themes/ListItemBase.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 -0
- package/dist/css/themes/Menu.css +1 -1
- package/dist/css/themes/MenuItem.css +1 -0
- 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/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 -0
- package/dist/css/themes/OptionBase.css +1 -0
- package/dist/css/themes/Panel.css +1 -1
- package/dist/css/themes/Popover.css +1 -1
- package/dist/css/themes/Popup.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/SelectPopover.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/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/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 +2414 -1795
- package/dist/custom-elements.json +1979 -1523
- package/dist/features/InputSuggestions.js +3 -1
- package/dist/features/InputSuggestions.js.map +1 -1
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.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/i18n/i18n-defaults.d.ts +6 -2
- package/dist/generated/i18n/i18n-defaults.js +6 -2
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/BusyIndicatorTemplate.lit.js +2 -2
- package/dist/generated/templates/BusyIndicatorTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ButtonTemplate.lit.js +3 -2
- package/dist/generated/templates/ButtonTemplate.lit.js.map +1 -1
- package/dist/generated/templates/CalendarTemplate.lit.js +1 -1
- package/dist/generated/templates/CalendarTemplate.lit.js.map +1 -1
- package/dist/generated/templates/CheckBoxTemplate.lit.js +1 -1
- package/dist/generated/templates/CheckBoxTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ColorPaletteItemTemplate.lit.js +2 -2
- package/dist/generated/templates/ColorPaletteItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ColorPaletteTemplate.lit.js +1 -1
- package/dist/generated/templates/ColorPaletteTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +12 -9
- package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ComboBoxTemplate.lit.js +14 -11
- package/dist/generated/templates/ComboBoxTemplate.lit.js.map +1 -1
- package/dist/generated/templates/DatePickerInputTemplate.lit.js +2 -2
- package/dist/generated/templates/DatePickerInputTemplate.lit.js.map +1 -1
- package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/DatePickerPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/DatePickerTemplate.lit.js +2 -2
- package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
- package/dist/generated/templates/DateRangePickerTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/DateRangePickerTemplate.lit.js +9 -0
- package/dist/generated/templates/DateRangePickerTemplate.lit.js.map +1 -0
- package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/DateTimePickerTemplate.lit.js +2 -2
- package/dist/generated/templates/DateTimePickerTemplate.lit.js.map +1 -1
- package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/FileUploaderTemplate.lit.js +5 -7
- package/dist/generated/templates/FileUploaderTemplate.lit.js.map +1 -1
- package/dist/generated/templates/FormItemTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/FormItemTemplate.lit.js +6 -0
- package/dist/generated/templates/FormItemTemplate.lit.js.map +1 -0
- package/dist/generated/templates/FormTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/FormTemplate.lit.js +13 -0
- package/dist/generated/templates/FormTemplate.lit.js.map +1 -0
- package/dist/generated/templates/InputPopoverTemplate.lit.js +2 -2
- package/dist/generated/templates/InputPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/InputTemplate.lit.js +4 -4
- package/dist/generated/templates/InputTemplate.lit.js.map +1 -1
- package/dist/generated/templates/{MenuListItemTemplate.lit.d.ts → ListItemBaseTemplate.lit.d.ts} +2 -2
- package/dist/generated/templates/ListItemBaseTemplate.lit.js +5 -0
- package/dist/generated/templates/ListItemBaseTemplate.lit.js.map +1 -0
- package/dist/generated/templates/ListItemGroupHeaderTemplate.lit.js +1 -1
- package/dist/generated/templates/ListItemGroupHeaderTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ListItemGroupTemplate.lit.js +1 -1
- package/dist/generated/templates/ListItemGroupTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MenuItemTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/{MenuListItemTemplate.lit.js → MenuItemTemplate.lit.js} +21 -15
- package/dist/generated/templates/MenuItemTemplate.lit.js.map +1 -0
- package/dist/generated/templates/MenuTemplate.lit.js +6 -8
- package/dist/generated/templates/MenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +2 -2
- package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MultiComboBoxTemplate.lit.js +4 -4
- package/dist/generated/templates/MultiComboBoxTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MultiInputTemplate.lit.js +28 -27
- package/dist/generated/templates/MultiInputTemplate.lit.js.map +1 -1
- package/dist/generated/templates/NavigationMenuItemTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/NavigationMenuItemTemplate.lit.js +57 -0
- package/dist/generated/templates/NavigationMenuItemTemplate.lit.js.map +1 -0
- package/dist/generated/templates/NavigationMenuTemplate.lit.js +6 -19
- package/dist/generated/templates/NavigationMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/OptionCustomTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/OptionCustomTemplate.lit.js +5 -0
- package/dist/generated/templates/OptionCustomTemplate.lit.js.map +1 -0
- package/dist/generated/templates/OptionTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/OptionTemplate.lit.js +7 -0
- package/dist/generated/templates/OptionTemplate.lit.js.map +1 -0
- package/dist/generated/templates/RadioButtonTemplate.lit.js +1 -1
- package/dist/generated/templates/RadioButtonTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +2 -2
- package/dist/generated/templates/ResponsivePopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +1 -1
- package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SelectPopoverTemplate.lit.js +6 -7
- package/dist/generated/templates/SelectPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SelectTemplate.lit.js +8 -9
- package/dist/generated/templates/SelectTemplate.lit.js.map +1 -1
- package/dist/generated/templates/StepInputTemplate.lit.js +3 -3
- package/dist/generated/templates/StepInputTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SwitchTemplate.lit.js +1 -1
- package/dist/generated/templates/SwitchTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TabContainerTemplate.lit.js +2 -2
- package/dist/generated/templates/TabContainerTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/TextAreaPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TextAreaTemplate.lit.js +2 -2
- package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +2 -2
- package/dist/generated/templates/TimePickerPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TimePickerTemplate.lit.js +3 -3
- package/dist/generated/templates/TimePickerTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ToggleButtonTemplate.lit.js +3 -2
- package/dist/generated/templates/ToggleButtonTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ToggleSpinButtonTemplate.lit.js +3 -2
- package/dist/generated/templates/ToggleSpinButtonTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TokenizerPopoverTemplate.lit.js +4 -3
- package/dist/generated/templates/TokenizerPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TokenizerTemplate.lit.js +4 -3
- package/dist/generated/templates/TokenizerTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ToolbarButtonTemplate.lit.js +1 -1
- package/dist/generated/templates/ToolbarButtonTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ToolbarPopoverButtonTemplate.lit.js +1 -1
- package/dist/generated/templates/ToolbarPopoverButtonTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ToolbarPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/ToolbarPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ToolbarTemplate.lit.js +1 -1
- package/dist/generated/templates/ToolbarTemplate.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/CustomListItem.css.js +1 -1
- package/dist/generated/themes/CustomListItem.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 +9 -0
- package/dist/generated/themes/Form.css.js.map +1 -0
- package/dist/generated/themes/FormItem.css.js +9 -0
- package/dist/generated/themes/FormItem.css.js.map +1 -0
- package/dist/generated/themes/FormLabelSpan.css.js +9 -0
- package/dist/generated/themes/FormLabelSpan.css.js.map +1 -0
- package/dist/generated/themes/FormLayout.css.d.ts +3 -0
- package/dist/generated/themes/FormLayout.css.js +9 -0
- package/dist/generated/themes/FormLayout.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/Label.css.js +1 -1
- package/dist/generated/themes/Label.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/ListItemAdditionalText.css.d.ts +3 -0
- package/dist/generated/themes/{SelectMenu.css.js → ListItemAdditionalText.css.js} +2 -2
- package/dist/generated/themes/ListItemAdditionalText.css.js.map +1 -0
- package/dist/generated/themes/ListItemBase.css.js +1 -1
- package/dist/generated/themes/ListItemBase.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.d.ts +3 -0
- package/dist/generated/themes/ListItemIcon.css.js +9 -0
- package/dist/generated/themes/ListItemIcon.css.js.map +1 -0
- package/dist/generated/themes/Menu.css.js +1 -1
- package/dist/generated/themes/Menu.css.js.map +1 -1
- package/dist/generated/themes/MenuItem.css.d.ts +3 -0
- package/dist/generated/themes/MenuItem.css.js +9 -0
- package/dist/generated/themes/MenuItem.css.js.map +1 -0
- 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/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.d.ts +3 -0
- package/dist/generated/themes/NavigationMenuItem.css.js +9 -0
- package/dist/generated/themes/NavigationMenuItem.css.js.map +1 -0
- package/dist/generated/themes/OptionBase.css.d.ts +3 -0
- package/dist/generated/themes/{SelectMenuOption.css.js → OptionBase.css.js} +3 -2
- package/dist/generated/themes/{SelectMenu.css.js.map → 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/Popup.css.js +1 -1
- package/dist/generated/themes/Popup.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/SelectPopover.css.js +1 -1
- package/dist/generated/themes/SelectPopover.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/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/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/popup-utils/OpenedPopupsRegistry.js +1 -1
- package/dist/popup-utils/OpenedPopupsRegistry.js.map +1 -1
- package/dist/popup-utils/PopoverRegistry.js +5 -4
- package/dist/popup-utils/PopoverRegistry.js.map +1 -1
- package/dist/styles/Icon.css +33 -0
- package/dist/styles/Icon.module.css +33 -0
- package/dist/types/FormItemSpacing.d.ts +19 -0
- package/dist/types/FormItemSpacing.js +21 -0
- package/dist/types/FormItemSpacing.js.map +1 -0
- package/dist/types/{HighlightTypes.d.ts → Highlight.d.ts} +3 -3
- package/dist/types/Highlight.js +30 -0
- package/dist/types/Highlight.js.map +1 -0
- package/dist/types/InputType.d.ts +7 -1
- package/dist/types/InputType.js +6 -0
- package/dist/types/InputType.js.map +1 -1
- package/dist/types/LinkAccessibleRole.d.ts +19 -0
- package/dist/types/LinkAccessibleRole.js +21 -0
- package/dist/types/LinkAccessibleRole.js.map +1 -0
- package/dist/vscode.html-custom-data.json +306 -157
- package/dist/web-types.json +698 -364
- package/package.json +10 -10
- package/src/BusyIndicator.hbs +1 -1
- package/src/Button.hbs +10 -1
- package/src/Calendar.hbs +2 -2
- package/src/CheckBox.hbs +0 -2
- package/src/ColorPalette.hbs +3 -1
- package/src/ColorPaletteItem.hbs +1 -1
- package/src/ColorPalettePopover.hbs +2 -1
- package/src/ComboBox.hbs +2 -2
- package/src/ComboBoxPopover.hbs +15 -4
- package/src/DatePickerInput.hbs +1 -3
- package/src/DatePickerPopover.hbs +3 -3
- package/src/DateRangePicker.hbs +23 -0
- package/src/DateTimePickerPopover.hbs +2 -2
- package/src/FileUploader.hbs +10 -16
- package/src/FileUploaderPopover.hbs +1 -1
- package/src/Form.hbs +37 -0
- package/src/FormItem.hbs +14 -0
- package/src/Input.hbs +1 -3
- package/src/InputPopover.hbs +5 -5
- package/src/ListItemBase.hbs +21 -0
- package/src/ListItemGroup.hbs +12 -12
- package/src/ListItemGroupHeader.hbs +0 -1
- package/src/Menu.hbs +17 -49
- package/src/MenuItem.hbs +109 -0
- package/src/MonthPicker.hbs +1 -1
- package/src/MultiComboBox.hbs +2 -2
- package/src/MultiComboBoxPopover.hbs +4 -4
- package/src/MultiInput.hbs +4 -2
- package/src/NavigationMenu.hbs +14 -101
- package/src/NavigationMenuItem.hbs +124 -0
- package/src/Option.hbs +15 -0
- package/src/OptionCustom.hbs +5 -0
- package/src/RadioButton.hbs +0 -1
- package/src/ResponsivePopover.hbs +6 -5
- package/src/SegmentedButtonItem.hbs +1 -1
- package/src/Select.hbs +2 -3
- package/src/SelectPopover.hbs +7 -20
- package/src/StepInput.hbs +2 -4
- package/src/Switch.hbs +0 -1
- package/src/TabContainer.hbs +4 -4
- package/src/TextArea.hbs +0 -2
- package/src/TextAreaPopover.hbs +1 -1
- package/src/TimePicker.hbs +4 -5
- package/src/TimePickerPopover.hbs +6 -5
- package/src/TokenizerPopover.hbs +9 -7
- package/src/ToolbarButton.hbs +1 -1
- package/src/ToolbarPopover.hbs +2 -2
- package/src/ToolbarPopoverButton.hbs +1 -1
- package/src/i18n/messagebundle.properties +11 -3
- package/src/i18n/messagebundle_en.properties +13 -3
- package/src/i18n/messagebundle_en_US_saprigi.properties +13 -3
- package/src/styles/Icon.module.css +1 -0
- package/src/themes/Button.css +7 -10
- package/src/themes/Calendar.css +1 -0
- package/src/themes/CalendarLegendItem.css +4 -1
- package/src/themes/ColorPalette.css +11 -6
- package/src/themes/ColorPaletteItem.css +55 -27
- package/src/themes/Form.css +50 -0
- package/src/themes/FormItem.css +65 -0
- package/src/themes/FormLabelSpan.css +267 -0
- package/src/themes/FormLayout.css +159 -0
- package/src/themes/GrowingButton.css +1 -1
- package/src/themes/Input.css +20 -20
- package/src/themes/InputIcon.css +6 -13
- package/src/themes/InputSharedStyles.css +15 -16
- package/src/themes/Label.css +7 -4
- package/src/themes/ListItem.css +6 -57
- package/src/themes/ListItemAdditionalText.css +10 -0
- package/src/themes/ListItemBase.css +61 -46
- package/src/themes/ListItemIcon.css +6 -0
- package/src/themes/Menu.css +0 -10
- package/src/themes/{MenuListItem.css → MenuItem.css} +12 -0
- package/src/themes/MonthPicker.css +23 -0
- package/src/themes/NavigationMenu.css +7 -65
- package/src/themes/NavigationMenuItem.css +54 -0
- package/src/themes/OptionBase.css +3 -0
- package/src/themes/Popover.css +1 -1
- package/src/themes/Popup.css +1 -1
- package/src/themes/ResponsivePopover.css +3 -3
- package/src/themes/ResponsivePopoverCommon.css +3 -3
- package/src/themes/SegmentedButton.css +2 -3
- package/src/themes/SegmentedButtonItem.css +0 -8
- package/src/themes/SelectPopover.css +1 -9
- package/src/themes/TimePicker.css +1 -24
- package/src/themes/base/ColorPalette-parameters.css +10 -4
- package/src/themes/base/Form-parameters.css +20 -0
- package/src/themes/base/sizes-parameters.css +25 -7
- package/src/themes/sap_fiori_3/parameters-bundle.css +2 -2
- package/src/themes/sap_fiori_3/sizes-parameters.css +6 -0
- package/src/themes/sap_fiori_3_dark/parameters-bundle.css +2 -2
- package/src/themes/sap_fiori_3_dark/sizes-parameters.css +6 -0
- package/src/themes/sap_fiori_3_hcb/Tag-parameters.css +102 -0
- package/src/themes/sap_fiori_3_hcw/Tag-parameters.css +102 -0
- package/src/themes/sap_horizon/ColorPalette-parameters.css +7 -4
- package/src/themes/sap_horizon/parameters-bundle.css +1 -0
- package/src/themes/sap_horizon/sizes-parameters.css +4 -2
- package/src/themes/sap_horizon_dark/ColorPalette-parameters.css +7 -4
- package/src/themes/sap_horizon_dark/sizes-parameters.css +4 -2
- package/src/themes/sap_horizon_dark_exp/ColorPalette-parameters.css +5 -4
- package/src/themes/sap_horizon_dark_exp/sizes-parameters.css +1 -2
- package/src/themes/sap_horizon_exp/ColorPalette-parameters.css +5 -4
- package/src/themes/sap_horizon_exp/parameters-bundle.css +1 -1
- package/src/themes/sap_horizon_exp/sizes-parameters.css +1 -2
- package/src/themes/sap_horizon_hcb/ColorPalette-parameters.css +8 -0
- package/src/themes/sap_horizon_hcb/Tag-parameters.css +9 -9
- package/src/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
- package/src/themes/sap_horizon_hcw/ColorPalette-parameters.css +8 -0
- package/src/themes/sap_horizon_hcw/Tag-parameters.css +9 -9
- package/src/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
- package/dist/ComboBoxGroupItem.js.map +0 -1
- package/dist/MenuListItem.d.ts +0 -61
- package/dist/MenuListItem.js +0 -71
- package/dist/MenuListItem.js.map +0 -1
- package/dist/SelectMenu.d.ts +0 -102
- package/dist/SelectMenu.js +0 -237
- package/dist/SelectMenu.js.map +0 -1
- package/dist/SelectMenuOption.d.ts +0 -94
- package/dist/SelectMenuOption.js +0 -78
- package/dist/SelectMenuOption.js.map +0 -1
- package/dist/css/themes/MenuListItem.css +0 -1
- package/dist/css/themes/SelectMenu.css +0 -1
- package/dist/css/themes/SelectMenuOption.css +0 -0
- package/dist/features/InputElementsFormSupport.d.ts +0 -41
- package/dist/features/InputElementsFormSupport.js +0 -134
- package/dist/features/InputElementsFormSupport.js.map +0 -1
- package/dist/generated/templates/MenuListItemTemplate.lit.js.map +0 -1
- package/dist/generated/templates/SelectMenuTemplate.lit.d.ts +0 -4
- package/dist/generated/templates/SelectMenuTemplate.lit.js +0 -15
- package/dist/generated/templates/SelectMenuTemplate.lit.js.map +0 -1
- package/dist/generated/themes/MenuListItem.css.js +0 -9
- package/dist/generated/themes/MenuListItem.css.js.map +0 -1
- package/dist/generated/themes/SelectMenuOption.css.js.map +0 -1
- package/dist/styles/Input.css +0 -0
- package/dist/styles/Input.module.css +0 -0
- package/dist/types/HighlightTypes.js +0 -30
- package/dist/types/HighlightTypes.js.map +0 -1
- package/src/MenuListItem.hbs +0 -35
- package/src/SelectMenu.hbs +0 -57
- package/src/styles/Input.module.css +0 -0
- package/src/themes/SelectMenu.css +0 -16
- package/src/themes/SelectMenuOption.css +0 -0
- /package/dist/generated/themes/{MenuListItem.css.d.ts → Form.css.d.ts} +0 -0
- /package/dist/generated/themes/{SelectMenu.css.d.ts → FormItem.css.d.ts} +0 -0
- /package/dist/generated/themes/{SelectMenuOption.css.d.ts → FormLabelSpan.css.d.ts} +0 -0
package/dist/Tokenizer.js
CHANGED
|
@@ -13,6 +13,7 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
|
|
|
13
13
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
14
14
|
import DOMReference from "@ui5/webcomponents-base/dist/types/DOMReference.js";
|
|
15
15
|
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
16
|
+
import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js";
|
|
16
17
|
import ItemNavigation from "@ui5/webcomponents-base/dist/delegate/ItemNavigation.js";
|
|
17
18
|
import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
|
|
18
19
|
import getActiveElement from "@ui5/webcomponents-base/dist/util/getActiveElement.js";
|
|
@@ -27,6 +28,7 @@ import List from "./List.js";
|
|
|
27
28
|
import ListSelectionMode from "./types/ListSelectionMode.js";
|
|
28
29
|
import Title from "./Title.js";
|
|
29
30
|
import Button from "./Button.js";
|
|
31
|
+
import Icon from "./Icon.js";
|
|
30
32
|
import StandardListItem from "./StandardListItem.js";
|
|
31
33
|
import "./Token.js";
|
|
32
34
|
import TokenizerTemplate from "./generated/templates/TokenizerTemplate.lit.js";
|
|
@@ -77,8 +79,8 @@ var ClipboardDataOperation;
|
|
|
77
79
|
*
|
|
78
80
|
* @constructor
|
|
79
81
|
* @extends sap.ui.webc.base.UI5Element
|
|
80
|
-
* @since 2.0
|
|
81
82
|
* @public
|
|
83
|
+
* @since 2.0.0
|
|
82
84
|
*/
|
|
83
85
|
let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
|
|
84
86
|
_handleResize() {
|
|
@@ -93,6 +95,7 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
|
|
|
93
95
|
});
|
|
94
96
|
this._scrollEnablement = new ScrollEnablement(this);
|
|
95
97
|
this._tokenDeleting = false;
|
|
98
|
+
this._deletedDialogItems = [];
|
|
96
99
|
}
|
|
97
100
|
onBeforeRendering() {
|
|
98
101
|
const tokensLength = this._tokens.length;
|
|
@@ -168,15 +171,10 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
|
|
|
168
171
|
const target = e.target;
|
|
169
172
|
if (!e.detail) { // if there are no details, the event is triggered by a click
|
|
170
173
|
this._tokenClickDelete(e, target);
|
|
171
|
-
this.open =
|
|
174
|
+
this.open = false;
|
|
172
175
|
return;
|
|
173
176
|
}
|
|
174
|
-
|
|
175
|
-
this._selectedTokens.forEach(token => this.deleteToken(token, e.detail.backSpace));
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
this.deleteToken(target, e.detail.backSpace);
|
|
179
|
-
}
|
|
177
|
+
this.deleteToken(target, e.detail.backSpace);
|
|
180
178
|
}
|
|
181
179
|
_tokenClickDelete(e, token) {
|
|
182
180
|
const tokens = this._getVisibleTokens();
|
|
@@ -186,7 +184,7 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
|
|
|
186
184
|
const nextToken = tokens[nextTokenIndex]; // if the last item was deleted this will be undefined
|
|
187
185
|
this._handleCurrentItemAfterDeletion(nextToken);
|
|
188
186
|
this._tokenDeleting = true;
|
|
189
|
-
this.fireEvent("token-delete", {
|
|
187
|
+
this.fireEvent("token-delete", { tokens: [token] || [target] });
|
|
190
188
|
}
|
|
191
189
|
_handleCurrentItemAfterDeletion(nextToken) {
|
|
192
190
|
if (nextToken && !isPhone()) {
|
|
@@ -216,7 +214,13 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
|
|
|
216
214
|
let nextToken = tokens[nextTokenIndex];
|
|
217
215
|
if (notSelectedTokens.length > 1) {
|
|
218
216
|
while (nextToken && nextToken.selected) {
|
|
219
|
-
|
|
217
|
+
nextTokenIndex = forwardFocusToPrevious ? --nextTokenIndex : ++nextTokenIndex;
|
|
218
|
+
if (nextTokenIndex < 0) {
|
|
219
|
+
nextToken = notSelectedTokens[0];
|
|
220
|
+
}
|
|
221
|
+
if (nextTokenIndex > notSelectedTokens.length) {
|
|
222
|
+
nextToken = notSelectedTokens[notSelectedTokens.length - 1];
|
|
223
|
+
}
|
|
220
224
|
}
|
|
221
225
|
}
|
|
222
226
|
else {
|
|
@@ -224,37 +228,41 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
|
|
|
224
228
|
}
|
|
225
229
|
this._handleCurrentItemAfterDeletion(nextToken);
|
|
226
230
|
this._tokenDeleting = true;
|
|
227
|
-
this.
|
|
231
|
+
if (this._selectedTokens.length) {
|
|
232
|
+
this.fireEvent("token-delete", { tokens: this._selectedTokens });
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
this.fireEvent("token-delete", { tokens: [token] });
|
|
236
|
+
}
|
|
228
237
|
}
|
|
229
|
-
itemDelete(e) {
|
|
238
|
+
async itemDelete(e) {
|
|
230
239
|
const token = e.detail.item.tokenRef;
|
|
231
240
|
const tokensArray = this._tokens;
|
|
232
241
|
// delay the token deletion in order to close the popover before removing token of the DOM
|
|
233
242
|
if (tokensArray.length === 1) {
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
});
|
|
241
|
-
return;
|
|
242
|
-
}
|
|
243
|
-
this.fireEvent("token-delete", { ref: token });
|
|
243
|
+
const morePopover = this.getPopover();
|
|
244
|
+
morePopover.addEventListener("ui5-close", () => {
|
|
245
|
+
this.fireEvent("token-delete", { tokens: [token] });
|
|
246
|
+
}, {
|
|
247
|
+
once: true,
|
|
248
|
+
});
|
|
244
249
|
this.open = false;
|
|
245
250
|
}
|
|
246
251
|
else {
|
|
247
|
-
|
|
252
|
+
if (isPhone()) {
|
|
253
|
+
token._isVisible = false;
|
|
254
|
+
this._deletedDialogItems.push(token);
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
this.fireEvent("token-delete", { tokens: [token] });
|
|
258
|
+
}
|
|
248
259
|
const currentListItem = e.detail.item;
|
|
249
260
|
const nextListItem = currentListItem.nextElementSibling;
|
|
250
|
-
const
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
else if (preciousListItem) {
|
|
256
|
-
const previousListItemIcon = preciousListItem.shadowRoot.querySelector("[part=delete-button]");
|
|
257
|
-
previousListItemIcon.focus();
|
|
261
|
+
const previousListItem = currentListItem.previousElementSibling;
|
|
262
|
+
const focusItem = nextListItem || previousListItem;
|
|
263
|
+
if (focusItem) {
|
|
264
|
+
await renderFinished();
|
|
265
|
+
focusItem.focus();
|
|
258
266
|
}
|
|
259
267
|
}
|
|
260
268
|
}
|
|
@@ -271,17 +279,28 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
|
|
|
271
279
|
}
|
|
272
280
|
}
|
|
273
281
|
handleBeforeOpen() {
|
|
282
|
+
this._tokens.forEach(token => {
|
|
283
|
+
token._isVisible = true;
|
|
284
|
+
});
|
|
285
|
+
const list = this._getList();
|
|
286
|
+
const firstListItem = list.querySelectorAll("[ui5-li]")[0];
|
|
287
|
+
list._itemNavigation.setCurrentItem(firstListItem);
|
|
274
288
|
this.fireEvent("before-more-popover-open");
|
|
275
289
|
}
|
|
276
290
|
handleAfterClose() {
|
|
277
291
|
this.open = false;
|
|
278
292
|
this._preventCollapse = false;
|
|
279
293
|
this._focusedElementBeforeOpen = null;
|
|
294
|
+
this._tokens.forEach(token => {
|
|
295
|
+
token._isVisible = true;
|
|
296
|
+
});
|
|
280
297
|
}
|
|
281
298
|
handleDialogButtonPress(e) {
|
|
282
299
|
const isOkButton = e.target.hasAttribute("data-ui5-tokenizer-dialog-ok-button");
|
|
283
300
|
const confirm = !!isOkButton;
|
|
284
|
-
this.
|
|
301
|
+
if (confirm && this._deletedDialogItems.length) {
|
|
302
|
+
this.fireEvent("token-delete", { tokens: this._deletedDialogItems });
|
|
303
|
+
}
|
|
285
304
|
this.open = false;
|
|
286
305
|
}
|
|
287
306
|
_onkeydown(e) {
|
|
@@ -290,9 +309,10 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
|
|
|
290
309
|
e.preventDefault();
|
|
291
310
|
const isCut = e.key.toLowerCase() === "x" || isDeleteShift(e);
|
|
292
311
|
const selectedTokens = this._tokens.filter(token => token.selected);
|
|
312
|
+
const focusedToken = selectedTokens.find(token => token.focused);
|
|
293
313
|
if (isCut) {
|
|
294
314
|
const cutResult = this._fillClipboard(ClipboardDataOperation.cut, selectedTokens);
|
|
295
|
-
|
|
315
|
+
focusedToken && this.deleteToken(focusedToken);
|
|
296
316
|
return cutResult;
|
|
297
317
|
}
|
|
298
318
|
return this._fillClipboard(ClipboardDataOperation.copy, selectedTokens);
|
|
@@ -383,7 +403,7 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
|
|
|
383
403
|
const selectedTokensChanged = JSON.stringify(previousSelectedTokens) !== JSON.stringify(this._selectedTokens);
|
|
384
404
|
if (selectedTokensChanged) {
|
|
385
405
|
this.fireEvent("selection-change", {
|
|
386
|
-
|
|
406
|
+
tokens: this._selectedTokens,
|
|
387
407
|
});
|
|
388
408
|
}
|
|
389
409
|
tokens[0].focus();
|
|
@@ -399,7 +419,7 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
|
|
|
399
419
|
const selectedTokensChanged = JSON.stringify(previousSelectedTokens) !== JSON.stringify(this._selectedTokens);
|
|
400
420
|
if (selectedTokensChanged) {
|
|
401
421
|
this.fireEvent("selection-change", {
|
|
402
|
-
|
|
422
|
+
tokens: this._selectedTokens,
|
|
403
423
|
});
|
|
404
424
|
}
|
|
405
425
|
tokens[tokens.length - 1].focus();
|
|
@@ -441,7 +461,7 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
|
|
|
441
461
|
const selectedTokensChanged = JSON.stringify(previousSelectedTokens) !== JSON.stringify(this._selectedTokens);
|
|
442
462
|
if (selectedTokensChanged) {
|
|
443
463
|
this.fireEvent("selection-change", {
|
|
444
|
-
|
|
464
|
+
tokens: this._selectedTokens,
|
|
445
465
|
});
|
|
446
466
|
}
|
|
447
467
|
tokens[nextIndex].focus();
|
|
@@ -450,7 +470,7 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
|
|
|
450
470
|
_click(e) {
|
|
451
471
|
if (e.metaKey || e.ctrlKey) {
|
|
452
472
|
this.fireEvent("selection-change", {
|
|
453
|
-
|
|
473
|
+
tokens: this._selectedTokens,
|
|
454
474
|
});
|
|
455
475
|
return;
|
|
456
476
|
}
|
|
@@ -477,7 +497,7 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
|
|
|
477
497
|
});
|
|
478
498
|
}
|
|
479
499
|
this.fireEvent("selection-change", {
|
|
480
|
-
|
|
500
|
+
tokens: this._selectedTokens,
|
|
481
501
|
});
|
|
482
502
|
return;
|
|
483
503
|
}
|
|
@@ -514,7 +534,7 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
|
|
|
514
534
|
const tokensAreSelected = tokens.every(token => token.selected);
|
|
515
535
|
tokens.forEach(token => { token.selected = !tokensAreSelected; });
|
|
516
536
|
this.fireEvent("selection-change", {
|
|
517
|
-
|
|
537
|
+
tokens: this._selectedTokens,
|
|
518
538
|
});
|
|
519
539
|
}
|
|
520
540
|
_handleTokenSelection(e, deselectAll = true) {
|
|
@@ -527,7 +547,7 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
|
|
|
527
547
|
}
|
|
528
548
|
});
|
|
529
549
|
this.fireEvent("selection-change", {
|
|
530
|
-
|
|
550
|
+
tokens: this._selectedTokens,
|
|
531
551
|
});
|
|
532
552
|
}
|
|
533
553
|
}
|
|
@@ -582,6 +602,9 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
|
|
|
582
602
|
this._scrollEnablement.scrollTo(this.contentDom.scrollLeft + (tokenRect.right - tokenContainerRect.right + 5), 0);
|
|
583
603
|
}
|
|
584
604
|
}
|
|
605
|
+
_getList() {
|
|
606
|
+
return this.getPopover().querySelector("[ui5-list]");
|
|
607
|
+
}
|
|
585
608
|
get _tokens() {
|
|
586
609
|
return this.getSlottedNodes("tokens");
|
|
587
610
|
}
|
|
@@ -663,17 +686,6 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
|
|
|
663
686
|
},
|
|
664
687
|
};
|
|
665
688
|
}
|
|
666
|
-
_tokensCountText() {
|
|
667
|
-
const iTokenCount = this._tokens.length;
|
|
668
|
-
const tokenCountMap = {
|
|
669
|
-
0: TOKENIZER_ARIA_CONTAIN_TOKEN,
|
|
670
|
-
1: TOKENIZER_ARIA_CONTAIN_ONE_TOKEN,
|
|
671
|
-
};
|
|
672
|
-
if (iTokenCount in tokenCountMap) {
|
|
673
|
-
return Tokenizer_1.i18nBundle.getText(tokenCountMap[iTokenCount]);
|
|
674
|
-
}
|
|
675
|
-
return Tokenizer_1.i18nBundle.getText(TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS, iTokenCount);
|
|
676
|
-
}
|
|
677
689
|
/**
|
|
678
690
|
* @protected
|
|
679
691
|
*/
|
|
@@ -732,7 +744,15 @@ __decorate([
|
|
|
732
744
|
property({ validator: Integer })
|
|
733
745
|
], Tokenizer.prototype, "_tokensCount", void 0);
|
|
734
746
|
__decorate([
|
|
735
|
-
slot({
|
|
747
|
+
slot({
|
|
748
|
+
type: HTMLElement,
|
|
749
|
+
"default": true,
|
|
750
|
+
individualSlots: true,
|
|
751
|
+
invalidateOnChildChange: {
|
|
752
|
+
properties: ["_isVisible"],
|
|
753
|
+
slots: false,
|
|
754
|
+
},
|
|
755
|
+
})
|
|
736
756
|
], Tokenizer.prototype, "tokens", void 0);
|
|
737
757
|
Tokenizer = Tokenizer_1 = __decorate([
|
|
738
758
|
customElement({
|
|
@@ -752,47 +772,38 @@ Tokenizer = Tokenizer_1 = __decorate([
|
|
|
752
772
|
StandardListItem,
|
|
753
773
|
Title,
|
|
754
774
|
Button,
|
|
775
|
+
Icon,
|
|
755
776
|
],
|
|
756
777
|
})
|
|
757
778
|
/**
|
|
758
|
-
* Fired when
|
|
759
|
-
*
|
|
760
|
-
* @param {HTMLElement} ref DOM ref of the token to be deleted.
|
|
779
|
+
* Fired when tokens are being deleted (delete icon, delete or backspace is pressed)
|
|
780
|
+
* @param {Array} tokens An array containing the deleted tokens.
|
|
761
781
|
* @public
|
|
762
782
|
*/
|
|
763
783
|
,
|
|
764
784
|
event("token-delete", {
|
|
765
785
|
detail: {
|
|
766
|
-
|
|
786
|
+
/**
|
|
787
|
+
* @public
|
|
788
|
+
*/
|
|
789
|
+
tokens: { type: Array },
|
|
767
790
|
},
|
|
768
791
|
})
|
|
769
792
|
/**
|
|
770
793
|
* Fired when token selection is changed by user interaction
|
|
771
794
|
*
|
|
772
|
-
* @param {Array<Token>}
|
|
795
|
+
* @param {Array<Token>} tokens An array of the selected items.
|
|
773
796
|
* @public
|
|
774
797
|
*/
|
|
775
798
|
,
|
|
776
799
|
event("selection-change", {
|
|
777
800
|
detail: {
|
|
778
|
-
|
|
779
|
-
},
|
|
780
|
-
})
|
|
781
|
-
/**
|
|
782
|
-
* Fired when a dialog button is pressed.
|
|
783
|
-
*
|
|
784
|
-
* @param {Boolean} confirm Indicates if the action is confirm.
|
|
785
|
-
* @public
|
|
786
|
-
*/
|
|
787
|
-
,
|
|
788
|
-
event("dialog-button-press", {
|
|
789
|
-
detail: {
|
|
790
|
-
confirm: { type: Boolean },
|
|
801
|
+
tokens: { type: Array },
|
|
791
802
|
},
|
|
792
803
|
})
|
|
793
804
|
/**
|
|
794
805
|
* Fired when nMore link is pressed.
|
|
795
|
-
* @
|
|
806
|
+
* @private
|
|
796
807
|
*/
|
|
797
808
|
,
|
|
798
809
|
event("show-more-items-press")
|
|
@@ -803,7 +814,18 @@ Tokenizer = Tokenizer_1 = __decorate([
|
|
|
803
814
|
,
|
|
804
815
|
event("before-more-popover-open")
|
|
805
816
|
], Tokenizer);
|
|
817
|
+
const getTokensCountText = (iTokenCount) => {
|
|
818
|
+
const tokenCountMap = {
|
|
819
|
+
0: TOKENIZER_ARIA_CONTAIN_TOKEN,
|
|
820
|
+
1: TOKENIZER_ARIA_CONTAIN_ONE_TOKEN,
|
|
821
|
+
};
|
|
822
|
+
if (iTokenCount in tokenCountMap) {
|
|
823
|
+
return Tokenizer.i18nBundle.getText(tokenCountMap[iTokenCount]);
|
|
824
|
+
}
|
|
825
|
+
return Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS, iTokenCount);
|
|
826
|
+
};
|
|
806
827
|
Tokenizer.define();
|
|
807
828
|
export default Tokenizer;
|
|
829
|
+
export { getTokensCountText };
|
|
808
830
|
export { ClipboardDataOperation };
|
|
809
831
|
//# sourceMappingURL=Tokenizer.js.map
|
package/dist/Tokenizer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tokenizer.js","sourceRoot":"","sources":["../src/Tokenizer.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport DOMReference from \"@ui5/webcomponents-base/dist/types/DOMReference.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport { getFocusedElement } from \"@ui5/webcomponents-base/dist/util/PopupUtils.js\";\nimport ScrollEnablement from \"@ui5/webcomponents-base/dist/delegate/ScrollEnablement.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle, I18nText } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n\tisSpace,\n\tisSpaceCtrl,\n\tisSpaceShift,\n\tisLeftCtrl,\n\tisRightCtrl,\n\tisUpCtrl,\n\tisDownCtrl,\n\tisUpShift,\n\tisDownShift,\n\tisLeftShift,\n\tisRightShift,\n\tisLeftShiftCtrl,\n\tisRightShiftCtrl,\n\tisDeleteShift,\n\tisInsertCtrl,\n\tisEnd,\n\tisHome,\n\tisHomeShift,\n\tisEndShift,\n\tisPageUpShift,\n\tisPageDownShift,\n\tisHomeCtrl,\n\tisEndCtrl,\n\tisRight,\n\tisLeft,\n\tisUp,\n\tisDown,\n\tisEscape,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport List from \"./List.js\";\nimport ListSelectionMode from \"./types/ListSelectionMode.js\";\nimport Title from \"./Title.js\";\nimport Button from \"./Button.js\";\nimport StandardListItem from \"./StandardListItem.js\";\nimport Token from \"./Token.js\";\nimport type { IToken } from \"./MultiInput.js\";\nimport type { TokenDeleteEventDetail } from \"./Token.js\";\nimport TokenizerTemplate from \"./generated/templates/TokenizerTemplate.lit.js\";\nimport {\n\tMULTIINPUT_SHOW_MORE_TOKENS,\n\tTOKENIZER_ARIA_LABEL,\n\tTOKENIZER_POPOVER_REMOVE,\n\tTOKENIZER_ARIA_CONTAIN_TOKEN,\n\tTOKENIZER_ARIA_CONTAIN_ONE_TOKEN,\n\tTOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS,\n\tTOKENIZER_SHOW_ALL_ITEMS,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport TokenizerCss from \"./generated/themes/Tokenizer.css.js\";\nimport TokenizerPopoverCss from \"./generated/themes/TokenizerPopover.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\n\n// reuse suggestions focus styling for NMore popup\nimport SuggestionsCss from \"./generated/themes/Suggestions.css.js\";\nimport ListItem from \"./ListItem.js\";\n\ntype TokenCountMapType = { [x: number]: I18nText };\n\ntype TokenizerTokenDeleteEventDetail = {\n\tref: Token;\n}\n\ntype TokenizerSelectionChangeEventDetail = {\n\tselectedTokens: Token[];\n}\n\ntype TokenizerDialogButtonPressDetail = {\n\tconfirm: boolean;\n}\n\nenum ClipboardDataOperation {\n\tcut = \"cut\",\n\tcopy = \"copy\",\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * A `ui5-tokenizer` is an invisible container for `ui5-token`s that supports keyboard navigation and token selection.\n *\n * The `ui5-tokenizer` consists of two parts:\n * - Tokens - displays the available tokens.\n * - N-more indicator - contains the number of the remaining tokens that cannot be displayed due to the limited space.\n *\n * ### Keyboard Handling\n *\n * #### Basic Navigation\n * The `ui5-tokenizer` provides advanced keyboard handling.\n * When a token is focused the user can use the following keyboard\n * shortcuts in order to perform a navigation:\n *\n * - [Left] or [Right] / [Up] or [Down] - Navigates left and right through the tokens.\n * - [Home] - Navigates to the first token.\n * - [End] - Navigates to the last token.\n *\n * The user can use the following keyboard shortcuts to perform actions (such as select, delete):\n *\n * - [Space] - Selects a token.\n * - [Backspace] / [Delete] - Deletes a token.\n * **Note:** The deletion of a token is handled by the application with the use of the `token-delete` event.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Tokenizer.js\";`\n *\n * @constructor\n * @extends sap.ui.webc.base.UI5Element\n * @since 2.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-tokenizer\",\n\tlanguageAware: true,\n\trenderer: litRender,\n\ttemplate: TokenizerTemplate,\n\tstyles: [\n\t\tTokenizerCss,\n\t\tResponsivePopoverCommonCss,\n\t\tSuggestionsCss,\n\t\tTokenizerPopoverCss,\n\t],\n\tdependencies: [\n\t\tResponsivePopover,\n\t\tList,\n\t\tStandardListItem,\n\t\tTitle,\n\t\tButton,\n\t],\n})\n\n/**\n * Fired when a token is deleted (delete icon, delete or backspace is pressed)\n *\n * @param {HTMLElement} ref DOM ref of the token to be deleted.\n * @public\n */\n@event<TokenizerTokenDeleteEventDetail>(\"token-delete\", {\n\tdetail: {\n\t\tref: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired when token selection is changed by user interaction\n *\n * @param {Array<Token>} selectedTokens An array of the selected items.\n * @public\n */\n@event<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\tdetail: {\n\t\tselectedTokens: { type: Array },\n\t},\n})\n\n/**\n * Fired when a dialog button is pressed.\n *\n * @param {Boolean} confirm Indicates if the action is confirm.\n * @public\n */\n@event<TokenizerDialogButtonPressDetail>(\"dialog-button-press\", {\n\tdetail: {\n\t\tconfirm: { type: Boolean },\n\t},\n})\n\n/**\n * Fired when nMore link is pressed.\n * @public\n */\n@event(\"show-more-items-press\")\n\n/**\n * Fired before nMore Popover is opened.\n * @private\n */\n@event(\"before-more-popover-open\")\n\nclass Tokenizer extends UI5Element {\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!: boolean;\n\n\t/**\n\t * Defines whether the component is disabled.\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!: boolean;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ defaultValue: undefined })\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component.\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ defaultValue: undefined })\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Indicates if the tokenizer should show all tokens or n more label instead\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\texpanded!: boolean;\n\n\t/**\n\t * Indicates if the nMore popover is open\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\topen!: boolean;\n\n\t/**\n\t * Defines the ID or DOM Reference of the element that the menu is shown at\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @private\n\t * @default \"\"\n\t */\n\t@property({ validator: DOMReference, defaultValue: \"\" })\n\topener!: HTMLElement;\n\n\t/**\n\t * Sets the min-width of the nMore Popover.\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @private\n\t */\n\t@property({ validator: Integer })\n\tpopoverMinWidth?: number;\n\n\t/**\n\t * Prevents tokens to be part of the tab chain.\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tpreventInitialFocus!: boolean;\n\n\t/**\n\t * Prevent opening of n-more Popover when label is clicked\n\t * **Note:** Used inside MultiComboBox component.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tpreventPopoverOpen!: boolean;\n\n\t/**\n\t * Hides the popover arrow.\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thidePopoverArrow!: boolean;\n\n\t@property({ validator: Integer })\n\t_nMoreCount!: number;\n\n\t@property({ validator: Integer })\n\t_tokensCount!: number;\n\n\t@slot({ type: HTMLElement, \"default\": true, individualSlots: true })\n\ttokens!: Array<Token>;\n\n\tstatic i18nBundle: I18nBundle;\n\t_resizeHandler: ResizeObserverCallback;\n\t_itemNav: ItemNavigation;\n\t_scrollEnablement: ScrollEnablement;\n\t_expandedScrollWidth?: number;\n\t_tokenDeleting!: boolean;\n\t_preventCollapse!: boolean;\n\t_skipTabIndex!: boolean;\n\t_previousToken!: Token | null;\n\t_focusedElementBeforeOpen?: HTMLElement | null;\n\n\t_handleResize() {\n\t\tthis._nMoreCount = this.overflownTokens.length;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._resizeHandler = this._handleResize.bind(this);\n\n\t\tthis._itemNav = new ItemNavigation(this, {\n\t\t\tcurrentIndex: -1,\n\t\t\tgetItemsCallback: this._getVisibleTokens.bind(this),\n\t\t});\n\n\t\tthis._scrollEnablement = new ScrollEnablement(this);\n\t\tthis._tokenDeleting = false;\n\t}\n\n\tonBeforeRendering() {\n\t\tconst tokensLength = this._tokens.length;\n\t\tthis._tokensCount = tokensLength;\n\n\t\tthis._tokens.forEach(token => {\n\t\t\ttoken.singleToken = tokensLength === 1;\n\t\t\ttoken.readonly = this.readonly;\n\t\t});\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this.contentDom, this._resizeHandler);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this.contentDom, this._resizeHandler);\n\t}\n\n\t_handleNMoreClick() {\n\t\tif (this.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.expanded = true;\n\n\t\tif (!this.preventPopoverOpen) {\n\t\t\tthis.open = true;\n\t\t\tthis.scrollToEnd();\n\t\t}\n\n\t\tthis._tokens.forEach(token => {\n\t\t\ttoken.forcedTabIndex = \"-1\";\n\t\t});\n\n\t\tthis._skipTabIndex = true;\n\n\t\tthis.fireEvent(\"show-more-items-press\");\n\t}\n\n\t_onmousedown(e: MouseEvent) {\n\t\tif ((e.target as HTMLElement).hasAttribute(\"ui5-token\")) {\n\t\t\tconst target = e.target as Token;\n\t\t\tthis.expanded = true;\n\n\t\t\tif (this.open) {\n\t\t\t\tthis._preventCollapse = true;\n\t\t\t}\n\n\t\t\tif (!target.toBeDeleted) {\n\t\t\t\tthis._itemNav.setCurrentItem(target);\n\t\t\t\tthis._scrollToToken(target);\n\t\t\t}\n\t\t}\n\t}\n\n\tonTokenSelect() {\n\t\tconst tokens = this._tokens;\n\t\tconst firstToken = tokens[0];\n\n\t\tif (tokens.length === 1 && firstToken.isTruncatable) {\n\t\t\tthis.open = firstToken.selected;\n\t\t}\n\t}\n\n\t_getVisibleTokens() {\n\t\tif (this.disabled) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn this._tokens.filter((token, index) => {\n\t\t\treturn index < (this._tokens.length - this._nMoreCount);\n\t\t});\n\t}\n\n\tonAfterRendering() {\n\t\tconst tokensArray = this._tokens;\n\t\tconst firstToken = tokensArray[0];\n\n\t\tthis._nMoreCount = this.overflownTokens.length;\n\n\t\tif (firstToken && !this.disabled && !this.preventInitialFocus && !this._skipTabIndex) {\n\t\t\tfirstToken.forcedTabIndex = \"0\";\n\t\t}\n\n\t\tthis._scrollEnablement.scrollContainer = this.contentDom;\n\n\t\tif (this.expanded) {\n\t\t\tthis._expandedScrollWidth = this.contentDom.scrollWidth;\n\t\t}\n\n\t\tthis._tokenDeleting = false;\n\t}\n\n\t_delete(e: CustomEvent<TokenDeleteEventDetail>) {\n\t\tconst target = e.target as Token;\n\n\t\tif (!e.detail) { // if there are no details, the event is triggered by a click\n\t\t\tthis._tokenClickDelete(e, target);\n\t\t\tthis.open = !this._tokens.length;\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._selectedTokens.length) {\n\t\t\tthis._selectedTokens.forEach(token => this.deleteToken(token, e.detail.backSpace));\n\t\t} else {\n\t\t\tthis.deleteToken(target, e.detail.backSpace);\n\t\t}\n\t}\n\n\t_tokenClickDelete(e: CustomEvent<TokenDeleteEventDetail>, token: Token) {\n\t\tconst tokens = this._getVisibleTokens();\n\t\tconst target = e.target as Token;\n\t\tconst deletedTokenIndex = token ? tokens.indexOf(token) : tokens.indexOf(target); // The index of the token that just got deleted\n\t\tconst nextTokenIndex = deletedTokenIndex === tokens.length - 1 ? deletedTokenIndex - 1 : deletedTokenIndex + 1; // The index of the next token that needs to be focused next due to the deletion\n\t\tconst nextToken = tokens[nextTokenIndex]; // if the last item was deleted this will be undefined\n\n\t\tthis._handleCurrentItemAfterDeletion(nextToken);\n\n\t\tthis._tokenDeleting = true;\n\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { ref: token || target });\n\t}\n\n\t_handleCurrentItemAfterDeletion(nextToken: Token) {\n\t\tif (nextToken && !isPhone()) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tnextToken.focus();\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\t/**\n\t * Removes a token from the Tokenizer.\n\t * This method should only be used by ui5-multi-combobox and ui5-multi-input\n\t * @protected\n\t * @param token Token to be focused.\n\t * @param forwardFocusToPrevious Indicates whether the focus will be forwarded to previous or next token after deletion.\n\t */\n\tdeleteToken(token: Token, forwardFocusToPrevious?: boolean) {\n\t\tconst tokens = this._getVisibleTokens();\n\t\tconst deletedTokenIndex = tokens.indexOf(token);\n\t\tlet nextTokenIndex = (deletedTokenIndex === tokens.length - 1) ? deletedTokenIndex - 1 : deletedTokenIndex + 1;\n\t\tconst notSelectedTokens = tokens.filter(t => !t.selected);\n\n\t\tif (forwardFocusToPrevious) { // on backspace key select the previous item (unless deleting the first)\n\t\t\tnextTokenIndex = deletedTokenIndex === 0 ? deletedTokenIndex + 1 : deletedTokenIndex - 1;\n\t\t} else { // on delete key or mouse click on the \"x\" select the next item (unless deleting the last)\n\t\t\tnextTokenIndex = deletedTokenIndex === tokens.length - 1 ? deletedTokenIndex - 1 : deletedTokenIndex + 1;\n\t\t}\n\n\t\tlet nextToken = tokens[nextTokenIndex];\n\n\t\tif (notSelectedTokens.length > 1) {\n\t\t\twhile (nextToken && nextToken.selected) {\n\t\t\t\tnextToken = forwardFocusToPrevious ? tokens[--nextTokenIndex] : tokens[++nextTokenIndex];\n\t\t\t}\n\t\t} else {\n\t\t\tnextToken = notSelectedTokens[0];\n\t\t}\n\n\t\tthis._handleCurrentItemAfterDeletion(nextToken);\n\n\t\tthis._tokenDeleting = true;\n\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { ref: token });\n\t}\n\n\titemDelete(e: CustomEvent) {\n\t\tconst token = e.detail.item.tokenRef;\n\t\tconst tokensArray = this._tokens;\n\n\t\t// delay the token deletion in order to close the popover before removing token of the DOM\n\t\tif (tokensArray.length === 1) {\n\t\t\tif (tokensArray[0].isTruncatable) {\n\t\t\t\tconst morePopover = this.getPopover();\n\n\t\t\t\tmorePopover.addEventListener(\"ui5-after-close\", () => {\n\t\t\t\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { ref: token });\n\t\t\t\t}, {\n\t\t\t\t\tonce: true,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { ref: token });\n\t\t\tthis.open = false;\n\t\t} else {\n\t\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { ref: token });\n\n\t\t\tconst currentListItem = e.detail.item as ListItem;\n\t\t\tconst nextListItem = currentListItem.nextElementSibling;\n\t\t\tconst preciousListItem = currentListItem.previousElementSibling;\n\n\t\t\tif (nextListItem) {\n\t\t\t\tconst nextListItemIcon = nextListItem.shadowRoot!.querySelector<HTMLElement>(\"[part=delete-button]\")!;\n\t\t\t\tnextListItemIcon.focus();\n\t\t\t} else if (preciousListItem) {\n\t\t\t\tconst previousListItemIcon = preciousListItem.shadowRoot!.querySelector<HTMLElement>(\"[part=delete-button]\")!;\n\t\t\t\tpreviousListItemIcon.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\thandleBeforeClose() {\n\t\tconst tokensArray = this._tokens;\n\n\t\tif (isPhone()) {\n\t\t\ttokensArray.forEach(token => {\n\t\t\t\ttoken.selected = false;\n\t\t\t});\n\t\t}\n\n\t\tif (!this._tokenDeleting && !this._preventCollapse) {\n\t\t\tthis._preventCollapse = false;\n\t\t\tthis.expanded = false;\n\t\t}\n\t}\n\n\thandleBeforeOpen() {\n\t\tthis.fireEvent(\"before-more-popover-open\");\n\t}\n\n\thandleAfterClose() {\n\t\tthis.open = false;\n\t\tthis._preventCollapse = false;\n\t\tthis._focusedElementBeforeOpen = null;\n\t}\n\n\thandleDialogButtonPress(e: MouseEvent) {\n\t\tconst isOkButton = (e.target as HTMLElement).hasAttribute(\"data-ui5-tokenizer-dialog-ok-button\");\n\t\tconst confirm = !!isOkButton;\n\n\t\tthis.fireEvent(\"dialog-button-press\", { confirm });\n\t\tthis.open = false;\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst isCtrl = !!(e.metaKey || e.ctrlKey);\n\n\t\tif ((isCtrl && [\"c\", \"x\"].includes(e.key.toLowerCase())) || isDeleteShift(e) || isInsertCtrl(e)) {\n\t\t\te.preventDefault();\n\n\t\t\tconst isCut = e.key.toLowerCase() === \"x\" || isDeleteShift(e);\n\t\t\tconst selectedTokens = this._tokens.filter(token => token.selected);\n\n\t\t\tif (isCut) {\n\t\t\t\tconst cutResult = this._fillClipboard(ClipboardDataOperation.cut, selectedTokens);\n\n\t\t\t\tselectedTokens.forEach(token => this.deleteToken(token));\n\n\t\t\t\treturn cutResult;\n\t\t\t}\n\n\t\t\treturn this._fillClipboard(ClipboardDataOperation.copy, selectedTokens);\n\t\t}\n\n\t\tif (isCtrl && e.key.toLowerCase() === \"i\" && this._tokens.length > 0) {\n\t\t\te.preventDefault();\n\n\t\t\tthis._preventCollapse = true;\n\t\t\tthis._focusedElementBeforeOpen = getFocusedElement();\n\n\t\t\tthis.open = true;\n\t\t}\n\n\t\tif (isSpaceShift(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isSpace(e) || isSpaceCtrl(e)) {\n\t\t\te.preventDefault();\n\n\t\t\treturn this._handleTokenSelection(e, false);\n\t\t}\n\n\t\tif (isHomeShift(e) || isPageUpShift(e)) {\n\t\t\tthis._handleHomeShift(e);\n\t\t}\n\n\t\tif (isEndShift(e) || isPageDownShift(e)) {\n\t\t\tthis._handleEndShift(e);\n\t\t}\n\n\t\tthis._handleItemNavigation(e, this._tokens);\n\t}\n\n\t_onPopoverListKeydown(e: KeyboardEvent) {\n\t\tconst isCtrl = !!(e.metaKey || e.ctrlKey);\n\n\t\tif ((isCtrl && e.key.toLowerCase() === \"i\") || isEscape(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.open = false;\n\n\t\t\tthis._preventCollapse = true;\n\t\t\tthis._focusedElementBeforeOpen && this._focusedElementBeforeOpen.focus();\n\n\t\t\tif (!this._focusedElementBeforeOpen) {\n\t\t\t\tthis._focusLastToken();\n\t\t\t}\n\t\t}\n\n\t\tif (e.key.toLowerCase() === \"f7\") {\n\t\t\te.preventDefault();\n\n\t\t\tconst eventTarget = e.target as ListItem;\n\t\t\tconst activeElement = getActiveElement();\n\n\t\t\tif (activeElement?.part.value === \"native-li\") {\n\t\t\t\teventTarget.shadowRoot!.querySelector<HTMLElement>(\"[part=delete-button]\")!.focus();\n\t\t\t} else {\n\t\t\t\teventTarget.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleItemNavigation(e: KeyboardEvent, tokens: Array<Token>) {\n\t\tconst isCtrl = !!(e.metaKey || e.ctrlKey);\n\t\tconst target = e.target as Token;\n\n\t\tif (isLeftCtrl(e) || isRightCtrl(e) || isDownCtrl(e) || isUpCtrl(e)) {\n\t\t\treturn this._handleArrowCtrl(e, target, tokens, isRightCtrl(e) || isDownCtrl(e));\n\t\t}\n\n\t\tif (isLeftShift(e) || isRightShift(e) || isUpShift(e) || isDownShift(e) || isLeftShiftCtrl(e) || isRightShiftCtrl(e)) {\n\t\t\te.preventDefault();\n\t\t\treturn this._handleArrowShift(target, tokens, (isRightShift(e) || isRightShiftCtrl(e) || isDownShift(e)));\n\t\t}\n\n\t\tif (isHome(e) || isEnd(e) || isHomeCtrl(e) || isEndCtrl(e)) {\n\t\t\te.preventDefault();\n\t\t\treturn this._handleHome(tokens, isEnd(e) || isEndCtrl(e));\n\t\t}\n\n\t\tif (isCtrl && e.key.toLowerCase() === \"a\") {\n\t\t\te.preventDefault();\n\n\t\t\treturn this._toggleTokenSelection(tokens);\n\t\t}\n\n\t\tif (isLeft(e) || isRight(e) || isUp(e) || isDown(e)) {\n\t\t\te.preventDefault();\n\t\t\tconst nextTokenIdx = this._calcNextTokenIndex(this._tokens.find(token => token.focused)!, tokens, (isRight(e) || isDown(e)));\n\t\t\tthis._scrollToToken(tokens[nextTokenIdx]);\n\t\t}\n\t}\n\n\t_handleHome(tokens: Array<Token>, endKeyPressed: boolean) {\n\t\tif (!tokens || !tokens.length) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tconst index = endKeyPressed ? tokens.length - 1 : 0;\n\n\t\ttokens[index].focus();\n\t}\n\n\t_handleHomeShift(e: KeyboardEvent) {\n\t\tconst tokens = this._tokens;\n\t\tconst target = e.target as Token;\n\t\tconst currentTokenIdx = tokens.indexOf(target);\n\t\tconst previousSelectedTokens = [...this._selectedTokens];\n\n\t\ttokens.filter((token, index) => index <= currentTokenIdx).forEach(token => {\n\t\t\ttoken.selected = true;\n\t\t});\n\n\t\tconst selectedTokensChanged = JSON.stringify(previousSelectedTokens) !== JSON.stringify(this._selectedTokens);\n\n\t\tif (selectedTokensChanged) {\n\t\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\tselectedTokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\n\t\ttokens[0].focus();\n\t}\n\n\t_handleEndShift(e: KeyboardEvent) {\n\t\tconst tokens = this._tokens;\n\t\tconst target = e.target as Token;\n\t\tconst currentTokenIdx = tokens.indexOf(target);\n\t\tconst previousSelectedTokens = [...this._selectedTokens];\n\n\t\ttokens.filter((token, index) => index >= currentTokenIdx).forEach(token => {\n\t\t\ttoken.selected = true;\n\t\t});\n\n\t\tconst selectedTokensChanged = JSON.stringify(previousSelectedTokens) !== JSON.stringify(this._selectedTokens);\n\n\t\tif (selectedTokensChanged) {\n\t\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\tselectedTokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\n\t\ttokens[tokens.length - 1].focus();\n\t}\n\n\t_calcNextTokenIndex(focusedToken: IToken, tokens: Array<IToken>, backwards: boolean) {\n\t\tif (!tokens.length) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tconst focusedTokenIndex = tokens.indexOf(focusedToken);\n\t\tlet nextIndex = backwards ? (focusedTokenIndex + 1) : (focusedTokenIndex - 1);\n\n\t\tif (nextIndex >= tokens.length) {\n\t\t\tnextIndex = tokens.length - 1;\n\t\t}\n\n\t\tif (nextIndex < 0) {\n\t\t\tnextIndex = 0;\n\t\t}\n\n\t\treturn nextIndex;\n\t}\n\n\t_handleArrowCtrl(e: KeyboardEvent, focusedToken: IToken, tokens: Array<IToken>, backwards: boolean) {\n\t\tconst nextIndex = this._calcNextTokenIndex(focusedToken, tokens, backwards);\n\n\t\te.preventDefault();\n\n\t\tif (nextIndex === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\ttokens[nextIndex].focus();\n\t\t}, 0);\n\n\t\tthis._scrollToToken(tokens[nextIndex]);\n\t}\n\n\t_handleArrowShift(focusedToken: Token, tokens: Array<Token>, backwards: boolean) {\n\t\tconst focusedTokenIndex = tokens.indexOf(focusedToken);\n\t\tconst nextIndex = backwards ? (focusedTokenIndex + 1) : (focusedTokenIndex - 1);\n\t\tconst previousSelectedTokens = [...this._selectedTokens];\n\n\t\tif (nextIndex === -1 || nextIndex === tokens.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tfocusedToken.selected = true;\n\t\ttokens[nextIndex].selected = true;\n\n\t\tconst selectedTokensChanged = JSON.stringify(previousSelectedTokens) !== JSON.stringify(this._selectedTokens);\n\n\t\tif (selectedTokensChanged) {\n\t\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\tselectedTokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\n\t\ttokens[nextIndex].focus();\n\n\t\tthis._scrollToToken(tokens[nextIndex]);\n\t}\n\n\t_click(e: MouseEvent) {\n\t\tif (e.metaKey || e.ctrlKey) {\n\t\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\tselectedTokens: this._selectedTokens,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tconst targetToken = e.target as Token;\n\n\t\tif (!e.shiftKey) {\n\t\t\tthis._previousToken = targetToken;\n\t\t}\n\n\t\tlet focusedToken = targetToken;\n\n\t\tif (this._previousToken) {\n\t\t\tfocusedToken = this._previousToken;\n\t\t} else {\n\t\t\tthis._previousToken = focusedToken;\n\t\t}\n\n\t\tif (e.shiftKey) {\n\t\t\tconst tokensArray = this._tokens;\n\t\t\tconst lastClickedIndex = tokensArray.indexOf(targetToken);\n\t\t\tconst firstSelectedTokenIndex = tokensArray.indexOf(focusedToken);\n\t\t\tconst start = Math.min(lastClickedIndex, firstSelectedTokenIndex);\n\t\t\tconst end = Math.max(lastClickedIndex, firstSelectedTokenIndex);\n\n\t\t\tif (lastClickedIndex !== -1) {\n\t\t\t\ttokensArray.forEach((token, i) => {\n\t\t\t\t\ttoken.selected = i >= start && i <= end;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\tselectedTokens: this._selectedTokens,\n\t\t\t});\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis._handleTokenSelection(e);\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tconst target = e.target as Token;\n\t\tthis.open = false;\n\t\tthis._itemNav.setCurrentItem(target);\n\n\t\tif (!this.expanded) {\n\t\t\tthis.expanded = true;\n\t\t}\n\t}\n\n\t_onfocusout(e: FocusEvent) {\n\t\tconst relatedTarget = e.relatedTarget as HTMLElement;\n\n\t\tthis._tokens.forEach(token => {\n\t\t\ttoken.forcedTabIndex = \"-1\";\n\t\t});\n\n\t\tthis._itemNav._currentIndex = -1;\n\t\tthis._skipTabIndex = true;\n\n\t\tif (!this.contains(relatedTarget)) {\n\t\t\tthis._tokens[0].forcedTabIndex = \"0\";\n\t\t\tthis._skipTabIndex = false;\n\t\t}\n\n\t\tif (!this._tokenDeleting && !this._preventCollapse) {\n\t\t\tthis._preventCollapse = false;\n\t\t\tthis.expanded = false;\n\t\t}\n\t}\n\n\t_toggleTokenSelection(tokens: Array<Token>) {\n\t\tif (!tokens || !tokens.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tokensAreSelected = tokens.every(token => token.selected);\n\t\ttokens.forEach(token => { token.selected = !tokensAreSelected; });\n\n\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\tselectedTokens: this._selectedTokens,\n\t\t});\n\t}\n\n\t_handleTokenSelection(e: KeyboardEvent | MouseEvent, deselectAll = true) {\n\t\tconst target = e.target as Token;\n\n\t\tif (target.hasAttribute(\"ui5-token\")) {\n\t\t\tconst deselectTokens = deselectAll ? this._tokens : [];\n\n\t\t\tdeselectTokens.forEach(token => {\n\t\t\t\tif (token !== target) {\n\t\t\t\t\ttoken.selected = false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\tselectedTokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\t}\n\n\t_fillClipboard(shortcutName: ClipboardDataOperation, tokens: Array<IToken>) {\n\t\tconst tokensTexts = tokens.filter(token => token.selected).map(token => token.text).join(\"\\r\\n\");\n\n\t\tconst cutToClipboard = (e: ClipboardEvent) => {\n\t\t\tif (e.clipboardData) {\n\t\t\t\te.clipboardData.setData(\"text/plain\", tokensTexts);\n\t\t\t}\n\n\t\t\te.preventDefault();\n\t\t};\n\n\t\tdocument.addEventListener(shortcutName, cutToClipboard);\n\t\tdocument.execCommand(shortcutName);\n\t\tdocument.removeEventListener(shortcutName, cutToClipboard);\n\t}\n\n\t/**\n\t * Scrolls the container of the tokens to its beginning.\n\t * This method is used by MultiInput and MultiComboBox.\n\t * @protected\n\t */\n\tscrollToStart() {\n\t\tif (this._scrollEnablement.scrollContainer) {\n\t\t\tthis._scrollEnablement.scrollTo(0, 0);\n\t\t}\n\t}\n\n\t/**\n\t * Scrolls the container of the tokens to its end when expanded.\n\t * This method is used by MultiInput and MultiComboBox.\n\t * @protected\n\t */\n\tscrollToEnd() {\n\t\tconst expandedTokenizerScrollWidth = this.contentDom && (this.effectiveDir !== \"rtl\" ? this.contentDom.scrollWidth : -this.contentDom.scrollWidth);\n\t\tif (this._scrollEnablement.scrollContainer) {\n\t\t\tthis._scrollEnablement.scrollTo(expandedTokenizerScrollWidth, 0, 5, 10);\n\t\t}\n\t}\n\n\t/**\n\t * Scrolls token to the visible area of the container.\n\t * Adds 4 pixels to the scroll position to ensure padding and border visibility on both ends\n\t * @protected\n\t */\n\t_scrollToToken(token: IToken) {\n\t\tif (!this.contentDom) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tokenRect = token.getBoundingClientRect();\n\t\tconst tokenContainerRect = this.contentDom.getBoundingClientRect();\n\n\t\tif (tokenRect.left < tokenContainerRect.left) {\n\t\t\tthis._scrollEnablement.scrollTo(this.contentDom.scrollLeft - (tokenContainerRect.left - tokenRect.left + 5), 0);\n\t\t} else if (tokenRect.right > tokenContainerRect.right) {\n\t\t\tthis._scrollEnablement.scrollTo(this.contentDom.scrollLeft + (tokenRect.right - tokenContainerRect.right + 5), 0);\n\t\t}\n\t}\n\n\tget _tokens() {\n\t\treturn this.getSlottedNodes<Token>(\"tokens\");\n\t}\n\n\tget morePopoverOpener(): HTMLElement {\n\t\treturn Object.keys(this.opener).length === 0 ? this : this.opener;\n\t}\n\n\tget _nMoreText() {\n\t\tif (!this._nMoreCount) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._getVisibleTokens().length) {\n\t\t\treturn Tokenizer.i18nBundle.getText(MULTIINPUT_SHOW_MORE_TOKENS, this._nMoreCount);\n\t\t}\n\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_SHOW_ALL_ITEMS, this._nMoreCount);\n\t}\n\n\tget showNMore() {\n\t\treturn !this.expanded && !!this.overflownTokens.length;\n\t}\n\n\tget contentDom() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-tokenizer--content\")!;\n\t}\n\n\tget moreLink() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-tokenizer-more-text\");\n\t}\n\n\tget tokenizerLabel() {\n\t\tconst effectiveLabelText = getEffectiveAriaLabelText(this);\n\t\treturn effectiveLabelText || Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_LABEL);\n\t}\n\n\tget tokenizerAriaDescription() {\n\t\treturn getEffectiveAriaLabelText(this) ? Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_LABEL) : undefined;\n\t}\n\n\tget _ariaDisabled() {\n\t\treturn this.disabled || undefined;\n\t}\n\n\tget _ariaReadonly() {\n\t\treturn this.readonly || undefined;\n\t}\n\n\tget morePopoverTitle() {\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_POPOVER_REMOVE);\n\t}\n\n\tget overflownTokens() {\n\t\tif (!this.contentDom) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst tokensArray = this._tokens;\n\n\t\t// Reset the overflow prop of the tokens first in order\n\t\t// to use their dimensions for calculation because already\n\t\t// hidden tokens are set to 'display: none'\n\t\ttokensArray.forEach(token => {\n\t\t\ttoken.overflows = false;\n\t\t});\n\n\t\treturn tokensArray.filter(token => {\n\t\t\tconst parentRect = this.contentDom.getBoundingClientRect();\n\t\t\tconst tokenRect = token.getBoundingClientRect();\n\t\t\tconst tokenEnd = Number(tokenRect.right.toFixed(2));\n\t\t\tconst parentEnd = Number(parentRect.right.toFixed(2));\n\t\t\tconst tokenStart = Number(tokenRect.left.toFixed(2));\n\t\t\tconst parentStart = Number(parentRect.left.toFixed(2));\n\n\t\t\ttoken.overflows = !this.expanded && ((tokenStart < parentStart) || (tokenEnd > parentEnd));\n\n\t\t\treturn token.overflows;\n\t\t});\n\t}\n\n\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\tget _selectedTokens() {\n\t\treturn this._tokens.filter(token => token.selected);\n\t}\n\n\tget _nMoreListMode() {\n\t\tif (this.readonly || this.disabled) {\n\t\t\treturn ListSelectionMode.None;\n\t\t}\n\n\t\treturn ListSelectionMode.Delete;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\tpopover: {\n\t\t\t\t\"min-width\": this.popoverMinWidth ? `${this.popoverMinWidth}px` : `${this.getBoundingClientRect().width}px`,\n\t\t\t},\n\t\t};\n\t}\n\n\t_tokensCountText() {\n\t\tconst iTokenCount = this._tokens.length;\n\n\t\tconst tokenCountMap: TokenCountMapType = {\n\t\t\t0: TOKENIZER_ARIA_CONTAIN_TOKEN,\n\t\t\t1: TOKENIZER_ARIA_CONTAIN_ONE_TOKEN,\n\t\t};\n\n\t\tif (iTokenCount in tokenCountMap) {\n\t\t\treturn Tokenizer.i18nBundle.getText(tokenCountMap[iTokenCount]);\n\t\t}\n\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS, iTokenCount);\n\t}\n\n\t/**\n\t * @protected\n\t */\n\t_focusLastToken() {\n\t\tconst tokens = this._tokens;\n\t\tif (tokens.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lastToken = tokens[tokens.length - 1];\n\t\tlastToken.focus();\n\t}\n\n\tstatic async onDefine() {\n\t\tTokenizer.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tgetPopover() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n}\n\nTokenizer.define();\n\nexport default Tokenizer;\nexport { ClipboardDataOperation };\nexport type { TokenizerTokenDeleteEventDetail, TokenizerSelectionChangeEventDetail, TokenizerDialogButtonPressDetail };\n"]}
|
|
1
|
+
{"version":3,"file":"Tokenizer.js","sourceRoot":"","sources":["../src/Tokenizer.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport DOMReference from \"@ui5/webcomponents-base/dist/types/DOMReference.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport { getFocusedElement } from \"@ui5/webcomponents-base/dist/util/PopupUtils.js\";\nimport ScrollEnablement from \"@ui5/webcomponents-base/dist/delegate/ScrollEnablement.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle, I18nText } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n\tisSpace,\n\tisSpaceCtrl,\n\tisSpaceShift,\n\tisLeftCtrl,\n\tisRightCtrl,\n\tisUpCtrl,\n\tisDownCtrl,\n\tisUpShift,\n\tisDownShift,\n\tisLeftShift,\n\tisRightShift,\n\tisLeftShiftCtrl,\n\tisRightShiftCtrl,\n\tisDeleteShift,\n\tisInsertCtrl,\n\tisEnd,\n\tisHome,\n\tisHomeShift,\n\tisEndShift,\n\tisPageUpShift,\n\tisPageDownShift,\n\tisHomeCtrl,\n\tisEndCtrl,\n\tisRight,\n\tisLeft,\n\tisUp,\n\tisDown,\n\tisEscape,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport List from \"./List.js\";\nimport ListSelectionMode from \"./types/ListSelectionMode.js\";\nimport Title from \"./Title.js\";\nimport Button from \"./Button.js\";\nimport Icon from \"./Icon.js\";\nimport StandardListItem from \"./StandardListItem.js\";\nimport Token from \"./Token.js\";\nimport type { IToken } from \"./MultiInput.js\";\nimport type { TokenDeleteEventDetail } from \"./Token.js\";\nimport TokenizerTemplate from \"./generated/templates/TokenizerTemplate.lit.js\";\nimport {\n\tMULTIINPUT_SHOW_MORE_TOKENS,\n\tTOKENIZER_ARIA_LABEL,\n\tTOKENIZER_POPOVER_REMOVE,\n\tTOKENIZER_ARIA_CONTAIN_TOKEN,\n\tTOKENIZER_ARIA_CONTAIN_ONE_TOKEN,\n\tTOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS,\n\tTOKENIZER_SHOW_ALL_ITEMS,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport TokenizerCss from \"./generated/themes/Tokenizer.css.js\";\nimport TokenizerPopoverCss from \"./generated/themes/TokenizerPopover.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\n\n// reuse suggestions focus styling for NMore popup\nimport SuggestionsCss from \"./generated/themes/Suggestions.css.js\";\nimport ListItem from \"./ListItem.js\";\n\ntype TokenCountMapType = { [x: number]: I18nText };\n\ntype TokenizerTokenDeleteEventDetail = {\n\ttokens: Token[];\n}\n\ntype TokenizerSelectionChangeEventDetail = {\n\ttokens: Token[];\n}\n\ntype TokenizerDialogButtonPressDetail = {\n\tconfirm: boolean;\n}\n\nenum ClipboardDataOperation {\n\tcut = \"cut\",\n\tcopy = \"copy\",\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * A `ui5-tokenizer` is an invisible container for `ui5-token`s that supports keyboard navigation and token selection.\n *\n * The `ui5-tokenizer` consists of two parts:\n * - Tokens - displays the available tokens.\n * - N-more indicator - contains the number of the remaining tokens that cannot be displayed due to the limited space.\n *\n * ### Keyboard Handling\n *\n * #### Basic Navigation\n * The `ui5-tokenizer` provides advanced keyboard handling.\n * When a token is focused the user can use the following keyboard\n * shortcuts in order to perform a navigation:\n *\n * - [Left] or [Right] / [Up] or [Down] - Navigates left and right through the tokens.\n * - [Home] - Navigates to the first token.\n * - [End] - Navigates to the last token.\n *\n * The user can use the following keyboard shortcuts to perform actions (such as select, delete):\n *\n * - [Space] - Selects a token.\n * - [Backspace] / [Delete] - Deletes a token.\n * **Note:** The deletion of a token is handled by the application with the use of the `token-delete` event.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Tokenizer.js\";`\n *\n * @constructor\n * @extends sap.ui.webc.base.UI5Element\n * @public\n * @since 2.0.0\n */\n@customElement({\n\ttag: \"ui5-tokenizer\",\n\tlanguageAware: true,\n\trenderer: litRender,\n\ttemplate: TokenizerTemplate,\n\tstyles: [\n\t\tTokenizerCss,\n\t\tResponsivePopoverCommonCss,\n\t\tSuggestionsCss,\n\t\tTokenizerPopoverCss,\n\t],\n\tdependencies: [\n\t\tResponsivePopover,\n\t\tList,\n\t\tStandardListItem,\n\t\tTitle,\n\t\tButton,\n\t\tIcon,\n\t],\n})\n\n/**\n * Fired when tokens are being deleted (delete icon, delete or backspace is pressed)\n * @param {Array} tokens An array containing the deleted tokens.\n * @public\n */\n@event<TokenizerTokenDeleteEventDetail>(\"token-delete\", {\n\tdetail: {\n\t\t/**\n\t\t* @public\n\t\t*/\n\t\ttokens: { type: Array },\n\t},\n})\n\n/**\n * Fired when token selection is changed by user interaction\n *\n * @param {Array<Token>} tokens An array of the selected items.\n * @public\n */\n@event<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\tdetail: {\n\t\ttokens: { type: Array },\n\t},\n})\n\n/**\n * Fired when nMore link is pressed.\n * @private\n */\n@event(\"show-more-items-press\")\n\n/**\n * Fired before nMore Popover is opened.\n * @private\n */\n@event(\"before-more-popover-open\")\n\nclass Tokenizer extends UI5Element {\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!: boolean;\n\n\t/**\n\t * Defines whether the component is disabled.\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!: boolean;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ defaultValue: undefined })\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component.\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ defaultValue: undefined })\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Indicates if the tokenizer should show all tokens or n more label instead\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\texpanded!: boolean;\n\n\t/**\n\t * Indicates if the nMore popover is open\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\topen!: boolean;\n\n\t/**\n\t * Defines the ID or DOM Reference of the element that the menu is shown at\n\t * When using this attribute in a declarative way, you must only use the `id` (as a string) of the element at which you want to show the tokenizer.\n\t * You can only set the `opener` attribute to a DOM Reference when using JavaScript.\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @private\n\t * @default \"\"\n\t */\n\t@property({ validator: DOMReference, defaultValue: \"\" })\n\topener!: HTMLElement;\n\n\t/**\n\t * Sets the min-width of the nMore Popover.\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @private\n\t */\n\t@property({ validator: Integer })\n\tpopoverMinWidth?: number;\n\n\t/**\n\t * Prevents tokens to be part of the tab chain.\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tpreventInitialFocus!: boolean;\n\n\t/**\n\t * Prevent opening of n-more Popover when label is clicked\n\t * **Note:** Used inside MultiComboBox component.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tpreventPopoverOpen!: boolean;\n\n\t/**\n\t * Hides the popover arrow.\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thidePopoverArrow!: boolean;\n\n\t@property({ validator: Integer })\n\t_nMoreCount!: number;\n\n\t@property({ validator: Integer })\n\t_tokensCount!: number;\n\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: [\"_isVisible\"],\n\t\t\tslots: false,\n\t\t},\n\t})\n\ttokens!: Array<Token>;\n\n\tstatic i18nBundle: I18nBundle;\n\t_resizeHandler: ResizeObserverCallback;\n\t_itemNav: ItemNavigation;\n\t_scrollEnablement: ScrollEnablement;\n\t_expandedScrollWidth?: number;\n\t_tokenDeleting!: boolean;\n\t_preventCollapse!: boolean;\n\t_skipTabIndex!: boolean;\n\t_previousToken!: Token | null;\n\t_focusedElementBeforeOpen?: HTMLElement | null;\n\t_deletedDialogItems!: Token[];\n\n\t_handleResize() {\n\t\tthis._nMoreCount = this.overflownTokens.length;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._resizeHandler = this._handleResize.bind(this);\n\n\t\tthis._itemNav = new ItemNavigation(this, {\n\t\t\tcurrentIndex: -1,\n\t\t\tgetItemsCallback: this._getVisibleTokens.bind(this),\n\t\t});\n\n\t\tthis._scrollEnablement = new ScrollEnablement(this);\n\t\tthis._tokenDeleting = false;\n\t\tthis._deletedDialogItems = [];\n\t}\n\n\tonBeforeRendering() {\n\t\tconst tokensLength = this._tokens.length;\n\t\tthis._tokensCount = tokensLength;\n\n\t\tthis._tokens.forEach(token => {\n\t\t\ttoken.singleToken = tokensLength === 1;\n\t\t\ttoken.readonly = this.readonly;\n\t\t});\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this.contentDom, this._resizeHandler);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this.contentDom, this._resizeHandler);\n\t}\n\n\t_handleNMoreClick() {\n\t\tif (this.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.expanded = true;\n\n\t\tif (!this.preventPopoverOpen) {\n\t\t\tthis.open = true;\n\t\t\tthis.scrollToEnd();\n\t\t}\n\n\t\tthis._tokens.forEach(token => {\n\t\t\ttoken.forcedTabIndex = \"-1\";\n\t\t});\n\n\t\tthis._skipTabIndex = true;\n\n\t\tthis.fireEvent(\"show-more-items-press\");\n\t}\n\n\t_onmousedown(e: MouseEvent) {\n\t\tif ((e.target as HTMLElement).hasAttribute(\"ui5-token\")) {\n\t\t\tconst target = e.target as Token;\n\t\t\tthis.expanded = true;\n\n\t\t\tif (this.open) {\n\t\t\t\tthis._preventCollapse = true;\n\t\t\t}\n\n\t\t\tif (!target.toBeDeleted) {\n\t\t\t\tthis._itemNav.setCurrentItem(target);\n\t\t\t\tthis._scrollToToken(target);\n\t\t\t}\n\t\t}\n\t}\n\n\tonTokenSelect() {\n\t\tconst tokens = this._tokens;\n\t\tconst firstToken = tokens[0];\n\n\t\tif (tokens.length === 1 && firstToken.isTruncatable) {\n\t\t\tthis.open = firstToken.selected;\n\t\t}\n\t}\n\n\t_getVisibleTokens() {\n\t\tif (this.disabled) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn this._tokens.filter((token, index) => {\n\t\t\treturn index < (this._tokens.length - this._nMoreCount);\n\t\t});\n\t}\n\n\tonAfterRendering() {\n\t\tconst tokensArray = this._tokens;\n\t\tconst firstToken = tokensArray[0];\n\n\t\tthis._nMoreCount = this.overflownTokens.length;\n\n\t\tif (firstToken && !this.disabled && !this.preventInitialFocus && !this._skipTabIndex) {\n\t\t\tfirstToken.forcedTabIndex = \"0\";\n\t\t}\n\n\t\tthis._scrollEnablement.scrollContainer = this.contentDom;\n\n\t\tif (this.expanded) {\n\t\t\tthis._expandedScrollWidth = this.contentDom.scrollWidth;\n\t\t}\n\n\t\tthis._tokenDeleting = false;\n\t}\n\n\t_delete(e: CustomEvent<TokenDeleteEventDetail>) {\n\t\tconst target = e.target as Token;\n\n\t\tif (!e.detail) { // if there are no details, the event is triggered by a click\n\t\t\tthis._tokenClickDelete(e, target);\n\t\t\tthis.open = false;\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.deleteToken(target, e.detail.backSpace);\n\t}\n\n\t_tokenClickDelete(e: CustomEvent<TokenDeleteEventDetail>, token: Token) {\n\t\tconst tokens = this._getVisibleTokens();\n\t\tconst target = e.target as Token;\n\t\tconst deletedTokenIndex = token ? tokens.indexOf(token) : tokens.indexOf(target); // The index of the token that just got deleted\n\t\tconst nextTokenIndex = deletedTokenIndex === tokens.length - 1 ? deletedTokenIndex - 1 : deletedTokenIndex + 1; // The index of the next token that needs to be focused next due to the deletion\n\t\tconst nextToken = tokens[nextTokenIndex]; // if the last item was deleted this will be undefined\n\n\t\tthis._handleCurrentItemAfterDeletion(nextToken);\n\n\t\tthis._tokenDeleting = true;\n\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { tokens: [token] || [target] });\n\t}\n\n\t_handleCurrentItemAfterDeletion(nextToken: Token) {\n\t\tif (nextToken && !isPhone()) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tnextToken.focus();\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\t/**\n\t * Removes a token from the Tokenizer.\n\t * This method should only be used by ui5-multi-combobox and ui5-multi-input\n\t * @protected\n\t * @param token Token to be focused.\n\t * @param forwardFocusToPrevious Indicates whether the focus will be forwarded to previous or next token after deletion.\n\t */\n\tdeleteToken(token: Token, forwardFocusToPrevious?: boolean) {\n\t\tconst tokens = this._getVisibleTokens();\n\t\tconst deletedTokenIndex = tokens.indexOf(token);\n\t\tlet nextTokenIndex = (deletedTokenIndex === tokens.length - 1) ? deletedTokenIndex - 1 : deletedTokenIndex + 1;\n\t\tconst notSelectedTokens = tokens.filter(t => !t.selected);\n\n\t\tif (forwardFocusToPrevious) { // on backspace key select the previous item (unless deleting the first)\n\t\t\tnextTokenIndex = deletedTokenIndex === 0 ? deletedTokenIndex + 1 : deletedTokenIndex - 1;\n\t\t} else { // on delete key or mouse click on the \"x\" select the next item (unless deleting the last)\n\t\t\tnextTokenIndex = deletedTokenIndex === tokens.length - 1 ? deletedTokenIndex - 1 : deletedTokenIndex + 1;\n\t\t}\n\n\t\tlet nextToken = tokens[nextTokenIndex];\n\n\t\tif (notSelectedTokens.length > 1) {\n\t\t\twhile (nextToken && nextToken.selected) {\n\t\t\t\tnextTokenIndex = forwardFocusToPrevious ? --nextTokenIndex : ++nextTokenIndex;\n\n\t\t\t\tif (nextTokenIndex < 0) {\n\t\t\t\t\tnextToken = notSelectedTokens[0];\n\t\t\t\t}\n\n\t\t\t\tif (nextTokenIndex > notSelectedTokens.length) {\n\t\t\t\t\tnextToken = notSelectedTokens[notSelectedTokens.length - 1];\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tnextToken = notSelectedTokens[0];\n\t\t}\n\n\t\tthis._handleCurrentItemAfterDeletion(nextToken);\n\n\t\tthis._tokenDeleting = true;\n\n\t\tif (this._selectedTokens.length) {\n\t\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { tokens: this._selectedTokens });\n\t\t} else {\n\t\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { tokens: [token] });\n\t\t}\n\t}\n\n\tasync itemDelete(e: CustomEvent) {\n\t\tconst token = e.detail.item.tokenRef;\n\t\tconst tokensArray = this._tokens;\n\n\t\t// delay the token deletion in order to close the popover before removing token of the DOM\n\t\tif (tokensArray.length === 1) {\n\t\t\tconst morePopover = this.getPopover();\n\n\t\t\tmorePopover.addEventListener(\"ui5-close\", () => {\n\t\t\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { tokens: [token] });\n\t\t\t}, {\n\t\t\t\tonce: true,\n\t\t\t});\n\t\t\tthis.open = false;\n\t\t} else {\n\t\t\tif (isPhone()) {\n\t\t\t\ttoken._isVisible = false;\n\t\t\t\tthis._deletedDialogItems.push(token as Token);\n\t\t\t} else {\n\t\t\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { tokens: [token] });\n\t\t\t}\n\t\t\tconst currentListItem = e.detail.item as ListItem;\n\t\t\tconst nextListItem = currentListItem.nextElementSibling as ListItem;\n\t\t\tconst previousListItem = currentListItem.previousElementSibling as ListItem;\n\t\t\tconst focusItem = nextListItem || previousListItem;\n\n\t\t\tif (focusItem) {\n\t\t\t\tawait renderFinished();\n\t\t\t\tfocusItem.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\thandleBeforeClose() {\n\t\tconst tokensArray = this._tokens;\n\n\t\tif (isPhone()) {\n\t\t\ttokensArray.forEach(token => {\n\t\t\t\ttoken.selected = false;\n\t\t\t});\n\t\t}\n\n\t\tif (!this._tokenDeleting && !this._preventCollapse) {\n\t\t\tthis._preventCollapse = false;\n\t\t\tthis.expanded = false;\n\t\t}\n\t}\n\n\thandleBeforeOpen() {\n\t\tthis._tokens.forEach(token => {\n\t\t\ttoken._isVisible = true;\n\t\t});\n\n\t\tconst list = this._getList();\n\t\tconst firstListItem = list.querySelectorAll(\"[ui5-li]\")[0]! as ListItem;\n\n\t\tlist._itemNavigation.setCurrentItem(firstListItem);\n\n\t\tthis.fireEvent(\"before-more-popover-open\");\n\t}\n\n\thandleAfterClose() {\n\t\tthis.open = false;\n\t\tthis._preventCollapse = false;\n\t\tthis._focusedElementBeforeOpen = null;\n\n\t\tthis._tokens.forEach(token => {\n\t\t\ttoken._isVisible = true;\n\t\t});\n\t}\n\n\thandleDialogButtonPress(e: MouseEvent) {\n\t\tconst isOkButton = (e.target as HTMLElement).hasAttribute(\"data-ui5-tokenizer-dialog-ok-button\");\n\t\tconst confirm = !!isOkButton;\n\n\t\tif (confirm && this._deletedDialogItems.length) {\n\t\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { tokens: this._deletedDialogItems });\n\t\t}\n\n\t\tthis.open = false;\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst isCtrl = !!(e.metaKey || e.ctrlKey);\n\n\t\tif ((isCtrl && [\"c\", \"x\"].includes(e.key.toLowerCase())) || isDeleteShift(e) || isInsertCtrl(e)) {\n\t\t\te.preventDefault();\n\n\t\t\tconst isCut = e.key.toLowerCase() === \"x\" || isDeleteShift(e);\n\t\t\tconst selectedTokens = this._tokens.filter(token => token.selected);\n\t\t\tconst focusedToken = selectedTokens.find(token => token.focused);\n\n\t\t\tif (isCut) {\n\t\t\t\tconst cutResult = this._fillClipboard(ClipboardDataOperation.cut, selectedTokens);\n\n\t\t\t\tfocusedToken && this.deleteToken(focusedToken);\n\n\t\t\t\treturn cutResult;\n\t\t\t}\n\n\t\t\treturn this._fillClipboard(ClipboardDataOperation.copy, selectedTokens);\n\t\t}\n\n\t\tif (isCtrl && e.key.toLowerCase() === \"i\" && this._tokens.length > 0) {\n\t\t\te.preventDefault();\n\n\t\t\tthis._preventCollapse = true;\n\t\t\tthis._focusedElementBeforeOpen = getFocusedElement();\n\n\t\t\tthis.open = true;\n\t\t}\n\n\t\tif (isSpaceShift(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isSpace(e) || isSpaceCtrl(e)) {\n\t\t\te.preventDefault();\n\n\t\t\treturn this._handleTokenSelection(e, false);\n\t\t}\n\n\t\tif (isHomeShift(e) || isPageUpShift(e)) {\n\t\t\tthis._handleHomeShift(e);\n\t\t}\n\n\t\tif (isEndShift(e) || isPageDownShift(e)) {\n\t\t\tthis._handleEndShift(e);\n\t\t}\n\n\t\tthis._handleItemNavigation(e, this._tokens);\n\t}\n\n\t_onPopoverListKeydown(e: KeyboardEvent) {\n\t\tconst isCtrl = !!(e.metaKey || e.ctrlKey);\n\n\t\tif ((isCtrl && e.key.toLowerCase() === \"i\") || isEscape(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.open = false;\n\n\t\t\tthis._preventCollapse = true;\n\t\t\tthis._focusedElementBeforeOpen && this._focusedElementBeforeOpen.focus();\n\n\t\t\tif (!this._focusedElementBeforeOpen) {\n\t\t\t\tthis._focusLastToken();\n\t\t\t}\n\t\t}\n\n\t\tif (e.key.toLowerCase() === \"f7\") {\n\t\t\te.preventDefault();\n\n\t\t\tconst eventTarget = e.target as ListItem;\n\t\t\tconst activeElement = getActiveElement();\n\n\t\t\tif (activeElement?.part.value === \"native-li\") {\n\t\t\t\teventTarget.shadowRoot!.querySelector<HTMLElement>(\"[part=delete-button]\")!.focus();\n\t\t\t} else {\n\t\t\t\teventTarget.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleItemNavigation(e: KeyboardEvent, tokens: Array<Token>) {\n\t\tconst isCtrl = !!(e.metaKey || e.ctrlKey);\n\t\tconst target = e.target as Token;\n\n\t\tif (isLeftCtrl(e) || isRightCtrl(e) || isDownCtrl(e) || isUpCtrl(e)) {\n\t\t\treturn this._handleArrowCtrl(e, target, tokens, isRightCtrl(e) || isDownCtrl(e));\n\t\t}\n\n\t\tif (isLeftShift(e) || isRightShift(e) || isUpShift(e) || isDownShift(e) || isLeftShiftCtrl(e) || isRightShiftCtrl(e)) {\n\t\t\te.preventDefault();\n\t\t\treturn this._handleArrowShift(target, tokens, (isRightShift(e) || isRightShiftCtrl(e) || isDownShift(e)));\n\t\t}\n\n\t\tif (isHome(e) || isEnd(e) || isHomeCtrl(e) || isEndCtrl(e)) {\n\t\t\te.preventDefault();\n\t\t\treturn this._handleHome(tokens, isEnd(e) || isEndCtrl(e));\n\t\t}\n\n\t\tif (isCtrl && e.key.toLowerCase() === \"a\") {\n\t\t\te.preventDefault();\n\n\t\t\treturn this._toggleTokenSelection(tokens);\n\t\t}\n\n\t\tif (isLeft(e) || isRight(e) || isUp(e) || isDown(e)) {\n\t\t\te.preventDefault();\n\t\t\tconst nextTokenIdx = this._calcNextTokenIndex(this._tokens.find(token => token.focused)!, tokens, (isRight(e) || isDown(e)));\n\t\t\tthis._scrollToToken(tokens[nextTokenIdx]);\n\t\t}\n\t}\n\n\t_handleHome(tokens: Array<Token>, endKeyPressed: boolean) {\n\t\tif (!tokens || !tokens.length) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tconst index = endKeyPressed ? tokens.length - 1 : 0;\n\n\t\ttokens[index].focus();\n\t}\n\n\t_handleHomeShift(e: KeyboardEvent) {\n\t\tconst tokens = this._tokens;\n\t\tconst target = e.target as Token;\n\t\tconst currentTokenIdx = tokens.indexOf(target);\n\t\tconst previousSelectedTokens = [...this._selectedTokens];\n\n\t\ttokens.filter((token, index) => index <= currentTokenIdx).forEach(token => {\n\t\t\ttoken.selected = true;\n\t\t});\n\n\t\tconst selectedTokensChanged = JSON.stringify(previousSelectedTokens) !== JSON.stringify(this._selectedTokens);\n\n\t\tif (selectedTokensChanged) {\n\t\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\n\t\ttokens[0].focus();\n\t}\n\n\t_handleEndShift(e: KeyboardEvent) {\n\t\tconst tokens = this._tokens;\n\t\tconst target = e.target as Token;\n\t\tconst currentTokenIdx = tokens.indexOf(target);\n\t\tconst previousSelectedTokens = [...this._selectedTokens];\n\n\t\ttokens.filter((token, index) => index >= currentTokenIdx).forEach(token => {\n\t\t\ttoken.selected = true;\n\t\t});\n\n\t\tconst selectedTokensChanged = JSON.stringify(previousSelectedTokens) !== JSON.stringify(this._selectedTokens);\n\n\t\tif (selectedTokensChanged) {\n\t\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\n\t\ttokens[tokens.length - 1].focus();\n\t}\n\n\t_calcNextTokenIndex(focusedToken: IToken, tokens: Array<IToken>, backwards: boolean) {\n\t\tif (!tokens.length) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tconst focusedTokenIndex = tokens.indexOf(focusedToken);\n\t\tlet nextIndex = backwards ? (focusedTokenIndex + 1) : (focusedTokenIndex - 1);\n\n\t\tif (nextIndex >= tokens.length) {\n\t\t\tnextIndex = tokens.length - 1;\n\t\t}\n\n\t\tif (nextIndex < 0) {\n\t\t\tnextIndex = 0;\n\t\t}\n\n\t\treturn nextIndex;\n\t}\n\n\t_handleArrowCtrl(e: KeyboardEvent, focusedToken: IToken, tokens: Array<IToken>, backwards: boolean) {\n\t\tconst nextIndex = this._calcNextTokenIndex(focusedToken, tokens, backwards);\n\n\t\te.preventDefault();\n\n\t\tif (nextIndex === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\ttokens[nextIndex].focus();\n\t\t}, 0);\n\n\t\tthis._scrollToToken(tokens[nextIndex]);\n\t}\n\n\t_handleArrowShift(focusedToken: Token, tokens: Array<Token>, backwards: boolean) {\n\t\tconst focusedTokenIndex = tokens.indexOf(focusedToken);\n\t\tconst nextIndex = backwards ? (focusedTokenIndex + 1) : (focusedTokenIndex - 1);\n\t\tconst previousSelectedTokens = [...this._selectedTokens];\n\n\t\tif (nextIndex === -1 || nextIndex === tokens.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tfocusedToken.selected = true;\n\t\ttokens[nextIndex].selected = true;\n\n\t\tconst selectedTokensChanged = JSON.stringify(previousSelectedTokens) !== JSON.stringify(this._selectedTokens);\n\n\t\tif (selectedTokensChanged) {\n\t\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\n\t\ttokens[nextIndex].focus();\n\n\t\tthis._scrollToToken(tokens[nextIndex]);\n\t}\n\n\t_click(e: MouseEvent) {\n\t\tif (e.metaKey || e.ctrlKey) {\n\t\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tconst targetToken = e.target as Token;\n\n\t\tif (!e.shiftKey) {\n\t\t\tthis._previousToken = targetToken;\n\t\t}\n\n\t\tlet focusedToken = targetToken;\n\n\t\tif (this._previousToken) {\n\t\t\tfocusedToken = this._previousToken;\n\t\t} else {\n\t\t\tthis._previousToken = focusedToken;\n\t\t}\n\n\t\tif (e.shiftKey) {\n\t\t\tconst tokensArray = this._tokens;\n\t\t\tconst lastClickedIndex = tokensArray.indexOf(targetToken);\n\t\t\tconst firstSelectedTokenIndex = tokensArray.indexOf(focusedToken);\n\t\t\tconst start = Math.min(lastClickedIndex, firstSelectedTokenIndex);\n\t\t\tconst end = Math.max(lastClickedIndex, firstSelectedTokenIndex);\n\n\t\t\tif (lastClickedIndex !== -1) {\n\t\t\t\ttokensArray.forEach((token, i) => {\n\t\t\t\t\ttoken.selected = i >= start && i <= end;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis._handleTokenSelection(e);\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tconst target = e.target as Token;\n\t\tthis.open = false;\n\t\tthis._itemNav.setCurrentItem(target);\n\n\t\tif (!this.expanded) {\n\t\t\tthis.expanded = true;\n\t\t}\n\t}\n\n\t_onfocusout(e: FocusEvent) {\n\t\tconst relatedTarget = e.relatedTarget as HTMLElement;\n\n\t\tthis._tokens.forEach(token => {\n\t\t\ttoken.forcedTabIndex = \"-1\";\n\t\t});\n\n\t\tthis._itemNav._currentIndex = -1;\n\t\tthis._skipTabIndex = true;\n\n\t\tif (!this.contains(relatedTarget)) {\n\t\t\tthis._tokens[0].forcedTabIndex = \"0\";\n\t\t\tthis._skipTabIndex = false;\n\t\t}\n\n\t\tif (!this._tokenDeleting && !this._preventCollapse) {\n\t\t\tthis._preventCollapse = false;\n\t\t\tthis.expanded = false;\n\t\t}\n\t}\n\n\t_toggleTokenSelection(tokens: Array<Token>) {\n\t\tif (!tokens || !tokens.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tokensAreSelected = tokens.every(token => token.selected);\n\t\ttokens.forEach(token => { token.selected = !tokensAreSelected; });\n\n\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\ttokens: this._selectedTokens,\n\t\t});\n\t}\n\n\t_handleTokenSelection(e: KeyboardEvent | MouseEvent, deselectAll = true) {\n\t\tconst target = e.target as Token;\n\n\t\tif (target.hasAttribute(\"ui5-token\")) {\n\t\t\tconst deselectTokens = deselectAll ? this._tokens : [];\n\n\t\t\tdeselectTokens.forEach(token => {\n\t\t\t\tif (token !== target) {\n\t\t\t\t\ttoken.selected = false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.fireEvent<TokenizerSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\t}\n\n\t_fillClipboard(shortcutName: ClipboardDataOperation, tokens: Array<IToken>) {\n\t\tconst tokensTexts = tokens.filter(token => token.selected).map(token => token.text).join(\"\\r\\n\");\n\n\t\tconst cutToClipboard = (e: ClipboardEvent) => {\n\t\t\tif (e.clipboardData) {\n\t\t\t\te.clipboardData.setData(\"text/plain\", tokensTexts);\n\t\t\t}\n\n\t\t\te.preventDefault();\n\t\t};\n\n\t\tdocument.addEventListener(shortcutName, cutToClipboard);\n\t\tdocument.execCommand(shortcutName);\n\t\tdocument.removeEventListener(shortcutName, cutToClipboard);\n\t}\n\n\t/**\n\t * Scrolls the container of the tokens to its beginning.\n\t * This method is used by MultiInput and MultiComboBox.\n\t * @protected\n\t */\n\tscrollToStart() {\n\t\tif (this._scrollEnablement.scrollContainer) {\n\t\t\tthis._scrollEnablement.scrollTo(0, 0);\n\t\t}\n\t}\n\n\t/**\n\t * Scrolls the container of the tokens to its end when expanded.\n\t * This method is used by MultiInput and MultiComboBox.\n\t * @protected\n\t */\n\tscrollToEnd() {\n\t\tconst expandedTokenizerScrollWidth = this.contentDom && (this.effectiveDir !== \"rtl\" ? this.contentDom.scrollWidth : -this.contentDom.scrollWidth);\n\t\tif (this._scrollEnablement.scrollContainer) {\n\t\t\tthis._scrollEnablement.scrollTo(expandedTokenizerScrollWidth, 0, 5, 10);\n\t\t}\n\t}\n\n\t/**\n\t * Scrolls token to the visible area of the container.\n\t * Adds 4 pixels to the scroll position to ensure padding and border visibility on both ends\n\t * @protected\n\t */\n\t_scrollToToken(token: IToken) {\n\t\tif (!this.contentDom) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tokenRect = token.getBoundingClientRect();\n\t\tconst tokenContainerRect = this.contentDom.getBoundingClientRect();\n\n\t\tif (tokenRect.left < tokenContainerRect.left) {\n\t\t\tthis._scrollEnablement.scrollTo(this.contentDom.scrollLeft - (tokenContainerRect.left - tokenRect.left + 5), 0);\n\t\t} else if (tokenRect.right > tokenContainerRect.right) {\n\t\t\tthis._scrollEnablement.scrollTo(this.contentDom.scrollLeft + (tokenRect.right - tokenContainerRect.right + 5), 0);\n\t\t}\n\t}\n\n\t_getList() {\n\t\treturn this.getPopover().querySelector<List>(\"[ui5-list]\")!;\n\t}\n\n\tget _tokens() {\n\t\treturn this.getSlottedNodes<Token>(\"tokens\");\n\t}\n\n\tget morePopoverOpener(): HTMLElement {\n\t\treturn Object.keys(this.opener).length === 0 ? this : this.opener;\n\t}\n\n\tget _nMoreText() {\n\t\tif (!this._nMoreCount) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._getVisibleTokens().length) {\n\t\t\treturn Tokenizer.i18nBundle.getText(MULTIINPUT_SHOW_MORE_TOKENS, this._nMoreCount);\n\t\t}\n\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_SHOW_ALL_ITEMS, this._nMoreCount);\n\t}\n\n\tget showNMore() {\n\t\treturn !this.expanded && !!this.overflownTokens.length;\n\t}\n\n\tget contentDom() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-tokenizer--content\")!;\n\t}\n\n\tget moreLink() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-tokenizer-more-text\");\n\t}\n\n\tget tokenizerLabel() {\n\t\tconst effectiveLabelText = getEffectiveAriaLabelText(this);\n\t\treturn effectiveLabelText || Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_LABEL);\n\t}\n\n\tget tokenizerAriaDescription() {\n\t\treturn getEffectiveAriaLabelText(this) ? Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_LABEL) : undefined;\n\t}\n\n\tget _ariaDisabled() {\n\t\treturn this.disabled || undefined;\n\t}\n\n\tget _ariaReadonly() {\n\t\treturn this.readonly || undefined;\n\t}\n\n\tget morePopoverTitle() {\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_POPOVER_REMOVE);\n\t}\n\n\tget overflownTokens() {\n\t\tif (!this.contentDom) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst tokensArray = this._tokens;\n\n\t\t// Reset the overflow prop of the tokens first in order\n\t\t// to use their dimensions for calculation because already\n\t\t// hidden tokens are set to 'display: none'\n\t\ttokensArray.forEach(token => {\n\t\t\ttoken.overflows = false;\n\t\t});\n\n\t\treturn tokensArray.filter(token => {\n\t\t\tconst parentRect = this.contentDom.getBoundingClientRect();\n\t\t\tconst tokenRect = token.getBoundingClientRect();\n\t\t\tconst tokenEnd = Number(tokenRect.right.toFixed(2));\n\t\t\tconst parentEnd = Number(parentRect.right.toFixed(2));\n\t\t\tconst tokenStart = Number(tokenRect.left.toFixed(2));\n\t\t\tconst parentStart = Number(parentRect.left.toFixed(2));\n\n\t\t\ttoken.overflows = !this.expanded && ((tokenStart < parentStart) || (tokenEnd > parentEnd));\n\n\t\t\treturn token.overflows;\n\t\t});\n\t}\n\n\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\tget _selectedTokens() {\n\t\treturn this._tokens.filter(token => token.selected);\n\t}\n\n\tget _nMoreListMode() {\n\t\tif (this.readonly || this.disabled) {\n\t\t\treturn ListSelectionMode.None;\n\t\t}\n\n\t\treturn ListSelectionMode.Delete;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\tpopover: {\n\t\t\t\t\"min-width\": this.popoverMinWidth ? `${this.popoverMinWidth}px` : `${this.getBoundingClientRect().width}px`,\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @protected\n\t */\n\t_focusLastToken() {\n\t\tconst tokens = this._tokens;\n\t\tif (tokens.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lastToken = tokens[tokens.length - 1];\n\t\tlastToken.focus();\n\t}\n\n\tstatic async onDefine() {\n\t\tTokenizer.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tgetPopover() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n}\n\nconst getTokensCountText = (iTokenCount: number) => {\n\tconst tokenCountMap: TokenCountMapType = {\n\t\t0: TOKENIZER_ARIA_CONTAIN_TOKEN,\n\t\t1: TOKENIZER_ARIA_CONTAIN_ONE_TOKEN,\n\t};\n\n\tif (iTokenCount in tokenCountMap) {\n\t\treturn Tokenizer.i18nBundle.getText(tokenCountMap[iTokenCount]);\n\t}\n\n\treturn Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS, iTokenCount);\n};\n\nTokenizer.define();\n\nexport default Tokenizer;\nexport { getTokensCountText };\nexport { ClipboardDataOperation };\nexport type { TokenizerTokenDeleteEventDetail, TokenizerSelectionChangeEventDetail, TokenizerDialogButtonPressDetail };\n"]}
|