@ui5/webcomponents 2.5.0-rc.2 → 2.5.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/cypress/specs/Button.cy.ts +84 -70
- package/cypress/specs/FormSupport.cy.ts +64 -0
- package/cypress/specs/Link.cy.ts +16 -0
- package/cypress/specs/List.cy.ts +84 -0
- package/cypress/specs/Menu.cy.ts +39 -0
- package/cypress/specs/RatingIndicator.cy.ts +39 -0
- package/cypress/specs/TableVirtualizer.cy.ts +246 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/Avatar.d.ts +3 -0
- package/dist/Avatar.js +1 -1
- package/dist/Avatar.js.map +1 -1
- package/dist/AvatarGroup.d.ts +4 -0
- package/dist/AvatarGroup.js +2 -13
- package/dist/AvatarGroup.js.map +1 -1
- package/dist/Bar.d.ts +3 -0
- package/dist/Bar.js +3 -0
- package/dist/Bar.js.map +1 -1
- package/dist/Breadcrumbs.d.ts +7 -4
- package/dist/Breadcrumbs.js +1 -23
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/Button.d.ts +12 -0
- package/dist/Button.js +7 -1
- package/dist/Button.js.map +1 -1
- package/dist/Calendar.d.ts +7 -2
- package/dist/Calendar.js +11 -22
- package/dist/Calendar.js.map +1 -1
- package/dist/CalendarLegend.d.ts +4 -0
- package/dist/CalendarLegend.js +1 -4
- package/dist/CalendarLegend.js.map +1 -1
- package/dist/CardHeader.d.ts +3 -0
- package/dist/CardHeader.js +1 -1
- package/dist/CardHeader.js.map +1 -1
- package/dist/Carousel.d.ts +3 -0
- package/dist/Carousel.js +1 -7
- package/dist/Carousel.js.map +1 -1
- package/dist/CheckBox.d.ts +4 -0
- package/dist/CheckBox.js +1 -1
- package/dist/CheckBox.js.map +1 -1
- package/dist/ColorPalette.d.ts +3 -0
- package/dist/ColorPalette.js +2 -11
- package/dist/ColorPalette.js.map +1 -1
- package/dist/ColorPalettePopover.d.ts +4 -0
- package/dist/ColorPalettePopover.js +1 -9
- package/dist/ColorPalettePopover.js.map +1 -1
- package/dist/ColorPicker.d.ts +3 -0
- package/dist/ColorPicker.js +1 -1
- package/dist/ColorPicker.js.map +1 -1
- package/dist/ComboBox.d.ts +5 -0
- package/dist/ComboBox.js +1 -7
- package/dist/ComboBox.js.map +1 -1
- package/dist/DatePicker.d.ts +9 -1
- package/dist/DatePicker.js +2 -44
- package/dist/DatePicker.js.map +1 -1
- package/dist/DayPicker.d.ts +4 -0
- package/dist/DayPicker.js +1 -1
- package/dist/DayPicker.js.map +1 -1
- package/dist/Dialog.d.ts +1 -0
- package/dist/Dialog.js.map +1 -1
- package/dist/FileUploader.d.ts +4 -0
- package/dist/FileUploader.js +1 -13
- package/dist/FileUploader.js.map +1 -1
- package/dist/Icon.d.ts +3 -0
- package/dist/Icon.js +1 -1
- package/dist/Icon.js.map +1 -1
- package/dist/Input.d.ts +10 -0
- package/dist/Input.js +2 -28
- package/dist/Input.js.map +1 -1
- package/dist/Link.d.ts +11 -0
- package/dist/Link.js +7 -19
- package/dist/Link.js.map +1 -1
- package/dist/List.d.ts +13 -0
- package/dist/List.js +29 -84
- package/dist/List.js.map +1 -1
- package/dist/ListItem.d.ts +7 -0
- package/dist/ListItem.js +1 -4
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItemBase.d.ts +9 -2
- package/dist/ListItemBase.js +1 -1
- package/dist/ListItemBase.js.map +1 -1
- package/dist/ListItemGroup.d.ts +4 -0
- package/dist/ListItemGroup.js +1 -21
- package/dist/ListItemGroup.js.map +1 -1
- package/dist/Menu.d.ts +8 -0
- package/dist/Menu.js +13 -38
- package/dist/Menu.js.map +1 -1
- package/dist/MenuItem.d.ts +1 -0
- package/dist/MenuItem.js +8 -0
- package/dist/MenuItem.js.map +1 -1
- package/dist/MessageStrip.d.ts +3 -0
- package/dist/MessageStrip.js +1 -1
- package/dist/MessageStrip.js.map +1 -1
- package/dist/MonthPicker.d.ts +4 -0
- package/dist/MonthPicker.js +1 -1
- package/dist/MonthPicker.js.map +1 -1
- package/dist/MultiComboBox.d.ts +7 -0
- package/dist/MultiComboBox.js +1 -9
- package/dist/MultiComboBox.js.map +1 -1
- package/dist/MultiComboBoxItem.d.ts +4 -0
- package/dist/MultiComboBoxItem.js +1 -1
- package/dist/MultiComboBoxItem.js.map +1 -1
- package/dist/MultiInput.d.ts +4 -0
- package/dist/MultiInput.js +1 -7
- package/dist/MultiInput.js.map +1 -1
- package/dist/Panel.d.ts +3 -0
- package/dist/Panel.js +1 -1
- package/dist/Panel.js.map +1 -1
- package/dist/Popover.js +7 -2
- package/dist/Popover.js.map +1 -1
- package/dist/Popup.d.ts +7 -0
- package/dist/Popup.js +4 -12
- package/dist/Popup.js.map +1 -1
- package/dist/RadioButton.d.ts +3 -0
- package/dist/RadioButton.js +1 -1
- package/dist/RadioButton.js.map +1 -1
- package/dist/RatingIndicator.d.ts +4 -0
- package/dist/RatingIndicator.js +4 -1
- package/dist/RatingIndicator.js.map +1 -1
- package/dist/ResponsivePopover.d.ts +5 -3
- package/dist/ResponsivePopover.js +10 -8
- package/dist/ResponsivePopover.js.map +1 -1
- package/dist/SegmentedButton.d.ts +3 -0
- package/dist/SegmentedButton.js +2 -9
- package/dist/SegmentedButton.js.map +1 -1
- package/dist/Select.d.ts +8 -0
- package/dist/Select.js +1 -13
- package/dist/Select.js.map +1 -1
- package/dist/SliderBase.d.ts +4 -0
- package/dist/SliderBase.js +1 -1
- package/dist/SliderBase.js.map +1 -1
- package/dist/SplitButton.d.ts +4 -0
- package/dist/SplitButton.js +1 -1
- package/dist/SplitButton.js.map +1 -1
- package/dist/StepInput.d.ts +4 -0
- package/dist/StepInput.js +2 -16
- package/dist/StepInput.js.map +1 -1
- package/dist/Switch.d.ts +4 -0
- package/dist/Switch.js +1 -1
- package/dist/Switch.js.map +1 -1
- package/dist/TabContainer.d.ts +5 -0
- package/dist/TabContainer.js +1 -31
- package/dist/TabContainer.js.map +1 -1
- package/dist/Table.d.ts +12 -1
- package/dist/Table.js +20 -11
- package/dist/Table.js.map +1 -1
- package/dist/TableGrowing.d.ts +4 -1
- package/dist/TableGrowing.js +2 -2
- package/dist/TableGrowing.js.map +1 -1
- package/dist/TableNavigation.js +6 -1
- package/dist/TableNavigation.js.map +1 -1
- package/dist/TableRow.d.ts +7 -0
- package/dist/TableRow.js +13 -0
- package/dist/TableRow.js.map +1 -1
- package/dist/TableSelection.d.ts +3 -0
- package/dist/TableSelection.js +1 -1
- package/dist/TableSelection.js.map +1 -1
- package/dist/TableUtils.d.ts +2 -1
- package/dist/TableUtils.js +10 -1
- package/dist/TableUtils.js.map +1 -1
- package/dist/TableVirtualizer.d.ts +99 -0
- package/dist/TableVirtualizer.js +251 -0
- package/dist/TableVirtualizer.js.map +1 -0
- package/dist/Tag.d.ts +3 -0
- package/dist/Tag.js +1 -1
- package/dist/Tag.js.map +1 -1
- package/dist/TextArea.d.ts +7 -0
- package/dist/TextArea.js +5 -5
- package/dist/TextArea.js.map +1 -1
- package/dist/TimePicker.d.ts +8 -1
- package/dist/TimePicker.js +1 -29
- package/dist/TimePicker.js.map +1 -1
- package/dist/TimePickerClock.d.ts +3 -0
- package/dist/TimePickerClock.js +7 -21
- package/dist/TimePickerClock.js.map +1 -1
- package/dist/TimePickerInternals.d.ts +3 -0
- package/dist/TimePickerInternals.js +1 -5
- package/dist/TimePickerInternals.js.map +1 -1
- package/dist/TimeSelectionClocks.d.ts +3 -0
- package/dist/TimeSelectionClocks.js +1 -1
- package/dist/TimeSelectionClocks.js.map +1 -1
- package/dist/TimeSelectionInputs.d.ts +3 -0
- package/dist/TimeSelectionInputs.js +1 -1
- package/dist/TimeSelectionInputs.js.map +1 -1
- package/dist/Toast.d.ts +3 -0
- package/dist/Toast.js +1 -1
- package/dist/Toast.js.map +1 -1
- package/dist/Token.d.ts +6 -2
- package/dist/Token.js +1 -5
- package/dist/Token.js.map +1 -1
- package/dist/Tokenizer.d.ts +6 -0
- package/dist/Tokenizer.js +1 -10
- package/dist/Tokenizer.js.map +1 -1
- package/dist/Toolbar.d.ts +3 -0
- package/dist/Toolbar.js +2 -7
- package/dist/Toolbar.js.map +1 -1
- package/dist/ToolbarButton.d.ts +3 -0
- package/dist/ToolbarButton.js +5 -2
- package/dist/ToolbarButton.js.map +1 -1
- package/dist/ToolbarSelect.d.ts +5 -0
- package/dist/ToolbarSelect.js +1 -7
- package/dist/ToolbarSelect.js.map +1 -1
- package/dist/Tree.d.ts +11 -0
- package/dist/Tree.js +1 -56
- package/dist/Tree.js.map +1 -1
- package/dist/TreeItemBase.d.ts +5 -0
- package/dist/TreeItemBase.js +1 -10
- package/dist/TreeItemBase.js.map +1 -1
- package/dist/YearPicker.d.ts +4 -0
- package/dist/YearPicker.js +1 -1
- package/dist/YearPicker.js.map +1 -1
- package/dist/bundle.esm.js +1 -0
- 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/ComboBoxItem.css +1 -1
- package/dist/css/themes/DatePicker.css +1 -1
- package/dist/css/themes/DateTimePickerPopover.css +1 -1
- package/dist/css/themes/DayPicker.css +1 -1
- package/dist/css/themes/Dialog.css +1 -1
- package/dist/css/themes/FileUploader.css +1 -1
- package/dist/css/themes/Form.css +1 -1
- package/dist/css/themes/FormItem.css +1 -1
- package/dist/css/themes/FormItemSpan.css +1 -1
- package/dist/css/themes/GrowingButton.css +1 -1
- package/dist/css/themes/Icon.css +1 -1
- package/dist/css/themes/Input.css +1 -1
- package/dist/css/themes/InputIcon.css +1 -1
- package/dist/css/themes/InputSharedStyles.css +1 -1
- package/dist/css/themes/Link.css +1 -1
- package/dist/css/themes/List.css +1 -1
- package/dist/css/themes/ListItem.css +1 -1
- package/dist/css/themes/ListItemBase.css +1 -1
- package/dist/css/themes/ListItemCustom.css +1 -1
- package/dist/css/themes/ListItemGroup.css +1 -1
- package/dist/css/themes/ListItemGroupHeader.css +1 -1
- package/dist/css/themes/ListItemIcon.css +1 -1
- package/dist/css/themes/Menu.css +1 -1
- package/dist/css/themes/MenuItem.css +1 -1
- package/dist/css/themes/MessageStrip.css +1 -1
- package/dist/css/themes/MonthPicker.css +1 -1
- package/dist/css/themes/MultiComboBox.css +1 -1
- package/dist/css/themes/MultiComboBoxItem.css +1 -1
- package/dist/css/themes/MultiComboBoxPopover.css +1 -1
- package/dist/css/themes/MultiInput.css +1 -1
- package/dist/css/themes/NavigationMenu.css +1 -1
- package/dist/css/themes/NavigationMenuItem.css +1 -1
- package/dist/css/themes/OptionBase.css +1 -1
- package/dist/css/themes/Panel.css +1 -1
- package/dist/css/themes/Popover.css +1 -1
- package/dist/css/themes/PopupsCommon.css +1 -1
- package/dist/css/themes/ProgressIndicator.css +1 -1
- package/dist/css/themes/RadioButton.css +1 -1
- package/dist/css/themes/RangeSlider.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/ResponsivePopover.css +1 -1
- package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
- package/dist/css/themes/SegmentedButton.css +1 -1
- package/dist/css/themes/SegmentedButtonItem.css +1 -1
- package/dist/css/themes/Select.css +1 -1
- package/dist/css/themes/SliderBase.css +1 -1
- package/dist/css/themes/SplitButton.css +1 -1
- package/dist/css/themes/StepInput.css +1 -1
- package/dist/css/themes/SuggestionItem.css +1 -1
- package/dist/css/themes/SuggestionItemCustom.css +1 -1
- package/dist/css/themes/Switch.css +1 -1
- package/dist/css/themes/TabContainer.css +1 -1
- package/dist/css/themes/TabInOverflow.css +1 -1
- package/dist/css/themes/TabInStrip.css +1 -1
- package/dist/css/themes/TabSemanticIcon.css +1 -1
- package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
- package/dist/css/themes/Table.css +1 -1
- package/dist/css/themes/TableCellBase.css +1 -1
- package/dist/css/themes/TableHeaderRow.css +1 -1
- package/dist/css/themes/TableRow.css +1 -1
- package/dist/css/themes/TableRowBase.css +1 -1
- package/dist/css/themes/Tag.css +1 -1
- package/dist/css/themes/Text.css +1 -1
- package/dist/css/themes/TextArea.css +1 -1
- package/dist/css/themes/TimePicker.css +1 -1
- package/dist/css/themes/Toast.css +1 -1
- package/dist/css/themes/ToggleButton.css +1 -1
- package/dist/css/themes/Token.css +1 -1
- package/dist/css/themes/Tokenizer.css +1 -1
- package/dist/css/themes/TokenizerPopover.css +1 -1
- package/dist/css/themes/Toolbar.css +1 -1
- package/dist/css/themes/ToolbarPopover.css +1 -1
- package/dist/css/themes/TreeItem.css +1 -1
- package/dist/css/themes/ValueStateMessage.css +1 -1
- package/dist/css/themes/YearPicker.css +1 -1
- package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
- package/dist/custom-elements-internal.json +270 -8
- package/dist/custom-elements.json +220 -0
- package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/templates/BarTemplate.lit.js +1 -1
- package/dist/generated/templates/BarTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ButtonTemplate.lit.js +1 -1
- package/dist/generated/templates/ButtonTemplate.lit.js.map +1 -1
- package/dist/generated/templates/LinkTemplate.lit.js +1 -1
- package/dist/generated/templates/LinkTemplate.lit.js.map +1 -1
- package/dist/generated/templates/RatingIndicatorTemplate.lit.js +1 -1
- package/dist/generated/templates/RatingIndicatorTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/ResponsivePopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TableTemplate.lit.js +1 -1
- package/dist/generated/templates/TableTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ToggleButtonTemplate.lit.js +1 -1
- package/dist/generated/templates/ToggleButtonTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ToggleSpinButtonTemplate.lit.js +1 -1
- package/dist/generated/templates/ToggleSpinButtonTemplate.lit.js.map +1 -1
- package/dist/generated/themes/Avatar.css.js +1 -1
- package/dist/generated/themes/Avatar.css.js.map +1 -1
- package/dist/generated/themes/AvatarGroup.css.js +1 -1
- package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
- package/dist/generated/themes/Bar.css.js +1 -1
- package/dist/generated/themes/Bar.css.js.map +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
- package/dist/generated/themes/BusyIndicator.css.js +1 -1
- package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
- package/dist/generated/themes/Button.css.js +1 -1
- package/dist/generated/themes/Button.css.js.map +1 -1
- package/dist/generated/themes/Calendar.css.js +1 -1
- package/dist/generated/themes/Calendar.css.js.map +1 -1
- package/dist/generated/themes/CalendarHeader.css.js +1 -1
- package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
- package/dist/generated/themes/CalendarLegend.css.js +1 -1
- package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
- package/dist/generated/themes/Card.css.js +1 -1
- package/dist/generated/themes/Card.css.js.map +1 -1
- package/dist/generated/themes/CardHeader.css.js +1 -1
- package/dist/generated/themes/CardHeader.css.js.map +1 -1
- package/dist/generated/themes/Carousel.css.js +1 -1
- package/dist/generated/themes/Carousel.css.js.map +1 -1
- package/dist/generated/themes/CheckBox.css.js +1 -1
- package/dist/generated/themes/CheckBox.css.js.map +1 -1
- package/dist/generated/themes/ColorPalette.css.js +1 -1
- package/dist/generated/themes/ColorPalette.css.js.map +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
- package/dist/generated/themes/ColorPicker.css.js +1 -1
- package/dist/generated/themes/ColorPicker.css.js.map +1 -1
- package/dist/generated/themes/ComboBox.css.js +1 -1
- package/dist/generated/themes/ComboBox.css.js.map +1 -1
- package/dist/generated/themes/ComboBoxItem.css.js +1 -1
- package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
- package/dist/generated/themes/DatePicker.css.js +1 -1
- package/dist/generated/themes/DatePicker.css.js.map +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
- package/dist/generated/themes/DayPicker.css.js +1 -1
- package/dist/generated/themes/DayPicker.css.js.map +1 -1
- package/dist/generated/themes/Dialog.css.js +1 -1
- package/dist/generated/themes/Dialog.css.js.map +1 -1
- package/dist/generated/themes/FileUploader.css.js +1 -1
- package/dist/generated/themes/FileUploader.css.js.map +1 -1
- package/dist/generated/themes/Form.css.js +1 -1
- package/dist/generated/themes/Form.css.js.map +1 -1
- package/dist/generated/themes/FormItem.css.js +1 -1
- package/dist/generated/themes/FormItem.css.js.map +1 -1
- package/dist/generated/themes/FormItemSpan.css.js +1 -1
- package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
- package/dist/generated/themes/GrowingButton.css.js +1 -1
- package/dist/generated/themes/GrowingButton.css.js.map +1 -1
- package/dist/generated/themes/Icon.css.js +1 -1
- package/dist/generated/themes/Icon.css.js.map +1 -1
- package/dist/generated/themes/Input.css.js +1 -1
- package/dist/generated/themes/Input.css.js.map +1 -1
- package/dist/generated/themes/InputIcon.css.js +1 -1
- package/dist/generated/themes/InputIcon.css.js.map +1 -1
- package/dist/generated/themes/InputSharedStyles.css.js +1 -1
- package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
- package/dist/generated/themes/Link.css.js +1 -1
- package/dist/generated/themes/Link.css.js.map +1 -1
- package/dist/generated/themes/List.css.js +1 -1
- package/dist/generated/themes/List.css.js.map +1 -1
- package/dist/generated/themes/ListItem.css.js +1 -1
- package/dist/generated/themes/ListItem.css.js.map +1 -1
- package/dist/generated/themes/ListItemBase.css.js +1 -1
- package/dist/generated/themes/ListItemBase.css.js.map +1 -1
- package/dist/generated/themes/ListItemCustom.css.js +1 -1
- package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
- package/dist/generated/themes/ListItemGroup.css.js +1 -1
- package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
- package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
- package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
- package/dist/generated/themes/ListItemIcon.css.js +1 -1
- package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
- package/dist/generated/themes/Menu.css.js +1 -1
- package/dist/generated/themes/Menu.css.js.map +1 -1
- package/dist/generated/themes/MenuItem.css.js +1 -1
- package/dist/generated/themes/MenuItem.css.js.map +1 -1
- package/dist/generated/themes/MessageStrip.css.js +1 -1
- package/dist/generated/themes/MessageStrip.css.js.map +1 -1
- package/dist/generated/themes/MonthPicker.css.js +1 -1
- package/dist/generated/themes/MonthPicker.css.js.map +1 -1
- package/dist/generated/themes/MultiComboBox.css.js +1 -1
- package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
- package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
- package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
- package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
- package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
- package/dist/generated/themes/MultiInput.css.js +1 -1
- package/dist/generated/themes/MultiInput.css.js.map +1 -1
- package/dist/generated/themes/NavigationMenu.css.js +1 -1
- package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
- package/dist/generated/themes/NavigationMenuItem.css.js +1 -1
- package/dist/generated/themes/NavigationMenuItem.css.js.map +1 -1
- package/dist/generated/themes/OptionBase.css.js +1 -1
- package/dist/generated/themes/OptionBase.css.js.map +1 -1
- package/dist/generated/themes/Panel.css.js +1 -1
- package/dist/generated/themes/Panel.css.js.map +1 -1
- package/dist/generated/themes/Popover.css.js +1 -1
- package/dist/generated/themes/Popover.css.js.map +1 -1
- package/dist/generated/themes/PopupsCommon.css.js +1 -1
- package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
- package/dist/generated/themes/ProgressIndicator.css.js +1 -1
- package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
- package/dist/generated/themes/RadioButton.css.js +1 -1
- package/dist/generated/themes/RadioButton.css.js.map +1 -1
- package/dist/generated/themes/RangeSlider.css.js +1 -1
- package/dist/generated/themes/RangeSlider.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/ResponsivePopover.css.js +1 -1
- package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
- package/dist/generated/themes/SegmentedButton.css.js +1 -1
- package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
- package/dist/generated/themes/Select.css.js +1 -1
- package/dist/generated/themes/Select.css.js.map +1 -1
- package/dist/generated/themes/SliderBase.css.js +1 -1
- package/dist/generated/themes/SliderBase.css.js.map +1 -1
- package/dist/generated/themes/SplitButton.css.js +1 -1
- package/dist/generated/themes/SplitButton.css.js.map +1 -1
- package/dist/generated/themes/StepInput.css.js +1 -1
- package/dist/generated/themes/StepInput.css.js.map +1 -1
- package/dist/generated/themes/SuggestionItem.css.js +1 -1
- package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
- package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
- package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
- package/dist/generated/themes/Switch.css.js +1 -1
- package/dist/generated/themes/Switch.css.js.map +1 -1
- package/dist/generated/themes/TabContainer.css.js +1 -1
- package/dist/generated/themes/TabContainer.css.js.map +1 -1
- package/dist/generated/themes/TabInOverflow.css.js +1 -1
- package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
- package/dist/generated/themes/TabInStrip.css.js +1 -1
- package/dist/generated/themes/TabInStrip.css.js.map +1 -1
- package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
- package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
- package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
- package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
- package/dist/generated/themes/Table.css.js +1 -1
- package/dist/generated/themes/Table.css.js.map +1 -1
- package/dist/generated/themes/TableCellBase.css.js +1 -1
- package/dist/generated/themes/TableCellBase.css.js.map +1 -1
- package/dist/generated/themes/TableHeaderRow.css.js +1 -1
- package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
- package/dist/generated/themes/TableRow.css.js +1 -1
- package/dist/generated/themes/TableRow.css.js.map +1 -1
- package/dist/generated/themes/TableRowBase.css.js +1 -1
- package/dist/generated/themes/TableRowBase.css.js.map +1 -1
- package/dist/generated/themes/Tag.css.js +1 -1
- package/dist/generated/themes/Tag.css.js.map +1 -1
- package/dist/generated/themes/Text.css.js +1 -1
- package/dist/generated/themes/Text.css.js.map +1 -1
- package/dist/generated/themes/TextArea.css.js +1 -1
- package/dist/generated/themes/TextArea.css.js.map +1 -1
- package/dist/generated/themes/TimePicker.css.js +1 -1
- package/dist/generated/themes/TimePicker.css.js.map +1 -1
- package/dist/generated/themes/Toast.css.js +1 -1
- package/dist/generated/themes/Toast.css.js.map +1 -1
- package/dist/generated/themes/ToggleButton.css.js +1 -1
- package/dist/generated/themes/ToggleButton.css.js.map +1 -1
- package/dist/generated/themes/Token.css.js +1 -1
- package/dist/generated/themes/Token.css.js.map +1 -1
- package/dist/generated/themes/Tokenizer.css.js +1 -1
- package/dist/generated/themes/Tokenizer.css.js.map +1 -1
- package/dist/generated/themes/TokenizerPopover.css.js +1 -1
- package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
- package/dist/generated/themes/Toolbar.css.js +1 -1
- package/dist/generated/themes/Toolbar.css.js.map +1 -1
- package/dist/generated/themes/ToolbarPopover.css.js +1 -1
- package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
- package/dist/generated/themes/TreeItem.css.js +1 -1
- package/dist/generated/themes/TreeItem.css.js.map +1 -1
- package/dist/generated/themes/ValueStateMessage.css.js +1 -1
- package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
- package/dist/generated/themes/YearPicker.css.js +1 -1
- package/dist/generated/themes/YearPicker.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
- package/dist/vscode.html-custom-data.json +43 -1
- package/dist/web-types.json +107 -2
- package/package.json +9 -9
- package/src/Bar.hbs +3 -3
- package/src/Button.hbs +1 -0
- package/src/Link.hbs +1 -0
- package/src/RatingIndicator.hbs +1 -1
- package/src/ResponsivePopover.hbs +2 -2
- package/src/Table.hbs +6 -1
- package/src/i18n/messagebundle_ar.properties +2 -0
- package/src/i18n/messagebundle_bg.properties +2 -0
- package/src/i18n/messagebundle_ca.properties +2 -0
- package/src/i18n/messagebundle_cnr.properties +2 -0
- package/src/i18n/messagebundle_cs.properties +2 -0
- package/src/i18n/messagebundle_cy.properties +2 -0
- package/src/i18n/messagebundle_da.properties +2 -0
- package/src/i18n/messagebundle_de.properties +2 -0
- package/src/i18n/messagebundle_el.properties +2 -0
- package/src/i18n/messagebundle_en_GB.properties +2 -0
- package/src/i18n/messagebundle_es.properties +2 -0
- package/src/i18n/messagebundle_es_MX.properties +2 -0
- package/src/i18n/messagebundle_et.properties +2 -0
- package/src/i18n/messagebundle_fi.properties +2 -0
- package/src/i18n/messagebundle_fr.properties +2 -0
- package/src/i18n/messagebundle_fr_CA.properties +2 -0
- package/src/i18n/messagebundle_hi.properties +2 -0
- package/src/i18n/messagebundle_hr.properties +2 -0
- package/src/i18n/messagebundle_hu.properties +2 -0
- package/src/i18n/messagebundle_id.properties +2 -0
- package/src/i18n/messagebundle_it.properties +2 -0
- package/src/i18n/messagebundle_iw.properties +2 -0
- package/src/i18n/messagebundle_ja.properties +2 -0
- package/src/i18n/messagebundle_kk.properties +2 -0
- package/src/i18n/messagebundle_ko.properties +2 -0
- package/src/i18n/messagebundle_lt.properties +2 -0
- package/src/i18n/messagebundle_lv.properties +2 -0
- package/src/i18n/messagebundle_mk.properties +2 -0
- package/src/i18n/messagebundle_ms.properties +2 -0
- package/src/i18n/messagebundle_nl.properties +2 -0
- package/src/i18n/messagebundle_no.properties +2 -0
- package/src/i18n/messagebundle_pl.properties +2 -0
- package/src/i18n/messagebundle_pt.properties +2 -0
- package/src/i18n/messagebundle_pt_PT.properties +2 -0
- package/src/i18n/messagebundle_ro.properties +2 -0
- package/src/i18n/messagebundle_ru.properties +2 -0
- package/src/i18n/messagebundle_sh.properties +2 -0
- package/src/i18n/messagebundle_sk.properties +2 -0
- package/src/i18n/messagebundle_sl.properties +2 -0
- package/src/i18n/messagebundle_sr.properties +2 -0
- package/src/i18n/messagebundle_sv.properties +2 -0
- package/src/i18n/messagebundle_th.properties +2 -0
- package/src/i18n/messagebundle_tr.properties +2 -0
- package/src/i18n/messagebundle_uk.properties +2 -0
- package/src/i18n/messagebundle_vi.properties +2 -0
- package/src/i18n/messagebundle_zh_CN.properties +2 -0
- package/src/i18n/messagebundle_zh_TW.properties +2 -0
- package/src/themes/ListItem.css +4 -0
- package/src/themes/ListItemBase.css +8 -0
- package/src/themes/RatingIndicator.css +1 -0
- package/src/themes/Table.css +15 -2
- package/src/themes/TableCellBase.css +1 -1
- package/src/themes/TableRow.css +5 -0
- package/src/themes/Tag.css +10 -0
- package/src/themes/base/RatingIndicator-parameters.css +3 -2
- package/src/themes/base/Tag-parameters.css +6 -0
- package/src/themes/sap_fiori_3_hcb/Tag-parameters.css +2 -0
- package/src/themes/sap_fiori_3_hcw/Tag-parameters.css +2 -0
- package/src/themes/sap_horizon/RatingIndicator-parameters.css +0 -2
- package/src/themes/sap_horizon_dark/RatingIndicator-parameters.css +0 -2
- package/src/themes/sap_horizon_hcb/RatingIndicator-parameters.css +0 -1
- package/src/themes/sap_horizon_hcb/Tag-parameters.css +2 -0
- package/src/themes/sap_horizon_hcw/RatingIndicator-parameters.css +0 -1
- package/src/themes/sap_horizon_hcw/Tag-parameters.css +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableSelection.js","sourceRoot":"","sources":["../src/TableSelection.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tisUpShift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport TableSelectionMode from \"./types/TableSelectionMode.js\";\nimport type Table from \"./Table.js\";\nimport type { ITableFeature } from \"./Table.js\";\nimport type TableRow from \"./TableRow.js\";\nimport type TableRowBase from \"./TableRowBase.js\";\nimport { isSelectionCheckbox, isHeaderSelector, findRowInPath } from \"./TableUtils.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-table-selection` component is used inside the `ui5-table` ti add key-based selection capabilities to the `ui5-table`.\n *\n * The component offers three selection modes:\n * * Single - select a single row.\n * * Multiple - select multiple rows.\n * * None - no selection active.\n *\n * As the selection is key-based, `ui5-table-row` components need to define a unique `row-key` property.\n *\n * ### Usage\n *\n * The `ui5-table-selection` component is only used inside the `ui5-table` component as a feature.\n * It has to be slotted inside the `ui5-table` in the `features` slot.\n * The component is not intended to be used as a standalone component.\n *\n * ```html\n * <ui5-table>\n * \t<ui5-table-selection mode=\"Multiple\" slot=\"features\"></ui5-table-selection>\n * </ui5-table>\n * ```\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/TableSelection.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @since 2.0.0\n * @public\n * @experimental This web component is available since 2.0 with an experimental flag and its API and behavior are subject to change.\n */\n@customElement({ tag: \"ui5-table-selection\" })\n\n/**\n * Fired when selection is changed by user interaction.\n *\n * @public\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n\nclass TableSelection extends UI5Element implements ITableFeature {\n\t/**\n\t * Defines the selection mode.\n\t *\n\t * @default \"Multiple\"\n\t * @public\n\t */\n\t@property()\n\tmode: `${TableSelectionMode}` = \"Multiple\";\n\n\t/**\n\t * Defines the selected rows separated by a space.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tselected = \"\";\n\n\treadonly identifier = \"TableSelection\";\n\t_table?: Table;\n\t_rangeSelection?: {selected: boolean, isUp: boolean | null, rows: TableRow[], isMouse: boolean, shiftPressed: boolean} | null;\n\n\tonTableActivate(table: Table) {\n\t\tthis._table = table;\n\t\tthis._invalidateTableAndRows();\n\t}\n\n\tonExitDOM() {\n\t\tthis.mode = TableSelectionMode.None;\n\t\tthis._invalidateTableAndRows();\n\t\tthis._table = undefined;\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._invalidateTableAndRows();\n\t}\n\n\tisSelectable(): boolean {\n\t\treturn this.mode !== TableSelectionMode.None;\n\t}\n\n\tisMultiSelect(): boolean {\n\t\treturn this.mode === TableSelectionMode.Multiple;\n\t}\n\n\thasRowSelector(): boolean {\n\t\treturn this.mode !== TableSelectionMode.None;\n\t}\n\n\tgetRowIdentifier(row: TableRow): string {\n\t\treturn row.rowKey;\n\t}\n\n\tisSelected(row: TableRowBase): boolean {\n\t\tif (!this._table || !this.isSelectable()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (row.isHeaderRow()) {\n\t\t\treturn this.areAllRowsSelected();\n\t\t}\n\n\t\tconst rowIdentifier = this.getRowIdentifier(row as TableRow);\n\t\treturn this.selectedAsArray.includes(rowIdentifier);\n\t}\n\n\thasSelectedRow(): boolean {\n\t\tif (!this._table || !this.isSelectable()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst selectedArray = this.selectedAsArray;\n\t\treturn this._table.rows.some(row => {\n\t\t\tconst rowIdentifier = this.getRowIdentifier(row);\n\t\t\treturn selectedArray.includes(rowIdentifier);\n\t\t});\n\t}\n\n\tareAllRowsSelected(): boolean {\n\t\tif (!this._table || !this._table.rows.length || this.mode !== TableSelectionMode.Multiple) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst selectedArray = this.selectedAsArray;\n\t\treturn this._table.rows.every(row => {\n\t\t\tconst rowIdentifier = this.getRowIdentifier(row);\n\t\t\treturn selectedArray.includes(rowIdentifier);\n\t\t});\n\t}\n\n\tinformSelectionChange(row: TableRowBase) {\n\t\tif (this._rangeSelection?.isMouse && this._rangeSelection.shiftPressed) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (row.isHeaderRow()) {\n\t\t\tthis._informHeaderRowSelectionChange();\n\t\t} else {\n\t\t\tthis._informRowSelectionChange(row as TableRow);\n\t\t}\n\t}\n\n\tget selectedAsArray(): string[] {\n\t\treturn this.selected.split(\" \").filter(String);\n\t}\n\n\tset selectedAsArray(selectedArray: string[]) {\n\t\tthis.selected = selectedArray.filter(String).join(\" \");\n\t}\n\n\tget selectedAsSet(): Set<string> {\n\t\treturn new Set(this.selectedAsArray);\n\t}\n\n\tset selectedAsSet(selectedSet: Set<string>) {\n\t\tthis.selectedAsArray = [...selectedSet];\n\t}\n\n\t_selectRow(row: TableRow, selected: boolean) {\n\t\tconst rowIdentifier = this.getRowIdentifier(row);\n\t\tif (this.mode === TableSelectionMode.Multiple) {\n\t\t\tconst selectedSet = this.selectedAsSet;\n\t\t\tselectedSet[selected ? \"add\" : \"delete\"](rowIdentifier);\n\t\t\tthis.selectedAsSet = selectedSet;\n\t\t} else {\n\t\t\tthis.selected = selected ? rowIdentifier : \"\";\n\t\t}\n\t}\n\n\t_informRowSelectionChange(row: TableRow) {\n\t\tconst isRowSelected = this.isMultiSelect() ? !this.isSelected(row) : true;\n\t\tthis._selectRow(row, isRowSelected);\n\t\tthis.fireDecoratorEvent(\"change\");\n\t}\n\n\t_informHeaderRowSelectionChange() {\n\t\tconst isRowSelected = this.areAllRowsSelected();\n\t\tconst selectedSet = this.selectedAsSet;\n\t\tthis._table!.rows.forEach(row => {\n\t\t\tconst rowIdentifier = this.getRowIdentifier(row);\n\t\t\tselectedSet[isRowSelected ? \"delete\" : \"add\"](rowIdentifier);\n\t\t});\n\t\tthis.selectedAsSet = selectedSet;\n\t\tthis.fireDecoratorEvent(\"change\");\n\t}\n\n\t_invalidateTableAndRows() {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.isSelectable()) {\n\t\t\tthis.selected = \"\";\n\t\t} else if (!this.isMultiSelect()) {\n\t\t\tthis.selected = this.selectedAsArray.shift() || \"\";\n\t\t}\n\n\t\tthis._table._invalidate++;\n\t\tthis._table.headerRow[0]._invalidate++;\n\t\tthis._table.rows.forEach(row => row._invalidate++);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (!this.isMultiSelect() || !this._table || !e.shiftKey) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst focusedElement = getActiveElement(); // Assumption: The focused element is always the \"next\" row after navigation.\n\n\t\tif (!(focusedElement?.hasAttribute(\"ui5-table-row\") || this._rangeSelection?.isMouse || focusedElement?.hasAttribute(\"ui5-growing-row\"))) {\n\t\t\tthis._stopRangeSelection();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._rangeSelection) {\n\t\t\t// If no range selection is active, start one\n\t\t\tthis._startRangeSelection(focusedElement as TableRow);\n\t\t} else if (e.key === \"ArrowUp\" || e.key === \"ArrowDown\") {\n\t\t\tconst change = isUpShift(e) ? -1 : 1;\n\t\t\tthis._handleRangeSelection(focusedElement as TableRow, change);\n\t\t}\n\n\t\tif (this._rangeSelection) {\n\t\t\tthis._rangeSelection.shiftPressed = e.shiftKey;\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!eventOrigin.hasAttribute(\"ui5-table-row\") || !this._rangeSelection || !e.shiftKey) {\n\t\t\t// Stop range selection if a) Shift is relased or b) the event target is not a row\n\t\t\tthis._stopRangeSelection();\n\t\t}\n\n\t\tif (this._rangeSelection) {\n\t\t\tthis._rangeSelection.shiftPressed = e.shiftKey;\n\t\t}\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isHeaderSelector(e)) {\n\t\t\tthis._stopRangeSelection();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!isSelectionCheckbox(e)) {\n\t\t\tthis._stopRangeSelection();\n\t\t\treturn;\n\t\t}\n\n\t\tconst row = findRowInPath(e.composedPath());\n\n\t\tif (e.shiftKey && this._rangeSelection?.isMouse) {\n\t\t\tconst startRow = this._rangeSelection.rows[0];\n\t\t\tconst startIndex = this._table.rows.indexOf(startRow);\n\t\t\tconst endIndex = this._table.rows.indexOf(row);\n\n\t\t\t// When doing a range selection and clicking on an already selected row, the checked status should not change\n\t\t\t// Therefore, we need to manually set the checked attribute again, as clicking it would deselect it and leads to\n\t\t\t// a visual inconsistency.\n\t\t\trow.shadowRoot?.querySelector(\"#selection-component\")?.toggleAttribute(\"checked\", true);\n\n\t\t\tif (startIndex === -1 || endIndex === -1 || row.rowKey === startRow.rowKey || row.rowKey === this._rangeSelection.rows[this._rangeSelection.rows.length - 1].rowKey) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst change = endIndex - startIndex;\n\t\t\tthis._handleRangeSelection(row, change);\n\t\t} else if (row) {\n\t\t\tthis._startRangeSelection(row, true);\n\t\t}\n\t}\n\n\t/**\n\t * Start the range selection and initialises the range selection state\n\t * @param row starting row\n\t * @private\n\t */\n\t_startRangeSelection(row: TableRow, isMouse = false) {\n\t\tconst selected = this.isSelected(row);\n\t\tif (isMouse && !selected) {\n\t\t\t// Do not initiate range selection if the row is not selected\n\t\t\treturn;\n\t\t}\n\n\t\tthis._rangeSelection = {\n\t\t\tselected,\n\t\t\tisUp: null,\n\t\t\trows: [row],\n\t\t\tisMouse,\n\t\t\tshiftPressed: false,\n\t\t};\n\t}\n\n\t/**\n\t * Handles the range selection\n\t * @param targetRow row that is currently focused\n\t * @param change indicates direction\n\t * @private\n\t */\n\t_handleRangeSelection(targetRow: TableRow, change: number) {\n\t\tif (!this._rangeSelection) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isUp = change > 0;\n\t\tthis._rangeSelection.isUp ??= isUp;\n\n\t\tconst shouldReverseSelection = isUp !== this._rangeSelection.isUp && !this._rangeSelection.isMouse;\n\t\tlet selectionChanged = shouldReverseSelection && this.isSelected(targetRow);\n\n\t\tif (shouldReverseSelection) {\n\t\t\tthis._reverseRangeSelection();\n\t\t} else {\n\t\t\tconst rowIndex = this._table!.rows.indexOf(targetRow);\n\t\t\tconst [startIndex, endIndex] = [rowIndex, rowIndex - change].sort((a, b) => a - b);\n\n\t\t\tselectionChanged = this._table?.rows.slice(startIndex, endIndex + 1).reduce((changed, row) => {\n\t\t\t\tconst isRowNotInSelection = !this._rangeSelection?.rows.includes(row);\n\t\t\t\tconst isRowSelectionDifferent = this.isSelected(row) !== this._rangeSelection!.selected;\n\n\t\t\t\tif (isRowNotInSelection) {\n\t\t\t\t\tthis._rangeSelection?.rows.push(row);\n\t\t\t\t}\n\n\t\t\t\tthis._selectRow(row, this._rangeSelection!.selected);\n\n\t\t\t\treturn changed || isRowSelectionDifferent;\n\t\t\t}, selectionChanged) || false;\n\t\t}\n\n\t\tselectionChanged && this.fireDecoratorEvent(\"change\");\n\t}\n\n\t_stopRangeSelection() {\n\t\tthis._rangeSelection = null;\n\t}\n\n\t_reverseRangeSelection() {\n\t\tconst row = this._rangeSelection?.rows.pop();\n\t\tif (row) {\n\t\t\tthis._selectRow(row, false);\n\t\t}\n\n\t\tif (this._rangeSelection?.rows.length === 1) {\n\t\t\tthis._rangeSelection.isUp = null;\n\t\t}\n\t}\n}\n\nTableSelection.define();\n\nexport default TableSelection;\n"]}
|
|
1
|
+
{"version":3,"file":"TableSelection.js","sourceRoot":"","sources":["../src/TableSelection.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tisUpShift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport TableSelectionMode from \"./types/TableSelectionMode.js\";\nimport type Table from \"./Table.js\";\nimport type { ITableFeature } from \"./Table.js\";\nimport type TableRow from \"./TableRow.js\";\nimport type TableRowBase from \"./TableRowBase.js\";\nimport { isSelectionCheckbox, isHeaderSelector, findRowInPath } from \"./TableUtils.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-table-selection` component is used inside the `ui5-table` ti add key-based selection capabilities to the `ui5-table`.\n *\n * The component offers three selection modes:\n * * Single - select a single row.\n * * Multiple - select multiple rows.\n * * None - no selection active.\n *\n * As the selection is key-based, `ui5-table-row` components need to define a unique `row-key` property.\n *\n * ### Usage\n *\n * The `ui5-table-selection` component is only used inside the `ui5-table` component as a feature.\n * It has to be slotted inside the `ui5-table` in the `features` slot.\n * The component is not intended to be used as a standalone component.\n *\n * ```html\n * <ui5-table>\n * \t<ui5-table-selection mode=\"Multiple\" slot=\"features\"></ui5-table-selection>\n * </ui5-table>\n * ```\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/TableSelection.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @since 2.0.0\n * @public\n * @experimental This web component is available since 2.0 with an experimental flag and its API and behavior are subject to change.\n */\n@customElement({ tag: \"ui5-table-selection\" })\n\n/**\n * Fired when selection is changed by user interaction.\n *\n * @public\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n\nclass TableSelection extends UI5Element implements ITableFeature {\n\teventDetails!: {\n\t\tchange: void,\n\t}\n\t/**\n\t * Defines the selection mode.\n\t *\n\t * @default \"Multiple\"\n\t * @public\n\t */\n\t@property()\n\tmode: `${TableSelectionMode}` = \"Multiple\";\n\n\t/**\n\t * Defines the selected rows separated by a space.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tselected = \"\";\n\n\treadonly identifier = \"TableSelection\";\n\t_table?: Table;\n\t_rangeSelection?: {selected: boolean, isUp: boolean | null, rows: TableRow[], isMouse: boolean, shiftPressed: boolean} | null;\n\n\tonTableActivate(table: Table) {\n\t\tthis._table = table;\n\t\tthis._invalidateTableAndRows();\n\t}\n\n\tonExitDOM() {\n\t\tthis.mode = TableSelectionMode.None;\n\t\tthis._invalidateTableAndRows();\n\t\tthis._table = undefined;\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._invalidateTableAndRows();\n\t}\n\n\tisSelectable(): boolean {\n\t\treturn this.mode !== TableSelectionMode.None;\n\t}\n\n\tisMultiSelect(): boolean {\n\t\treturn this.mode === TableSelectionMode.Multiple;\n\t}\n\n\thasRowSelector(): boolean {\n\t\treturn this.mode !== TableSelectionMode.None;\n\t}\n\n\tgetRowIdentifier(row: TableRow): string {\n\t\treturn row.rowKey;\n\t}\n\n\tisSelected(row: TableRowBase): boolean {\n\t\tif (!this._table || !this.isSelectable()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (row.isHeaderRow()) {\n\t\t\treturn this.areAllRowsSelected();\n\t\t}\n\n\t\tconst rowIdentifier = this.getRowIdentifier(row as TableRow);\n\t\treturn this.selectedAsArray.includes(rowIdentifier);\n\t}\n\n\thasSelectedRow(): boolean {\n\t\tif (!this._table || !this.isSelectable()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst selectedArray = this.selectedAsArray;\n\t\treturn this._table.rows.some(row => {\n\t\t\tconst rowIdentifier = this.getRowIdentifier(row);\n\t\t\treturn selectedArray.includes(rowIdentifier);\n\t\t});\n\t}\n\n\tareAllRowsSelected(): boolean {\n\t\tif (!this._table || !this._table.rows.length || this.mode !== TableSelectionMode.Multiple) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst selectedArray = this.selectedAsArray;\n\t\treturn this._table.rows.every(row => {\n\t\t\tconst rowIdentifier = this.getRowIdentifier(row);\n\t\t\treturn selectedArray.includes(rowIdentifier);\n\t\t});\n\t}\n\n\tinformSelectionChange(row: TableRowBase) {\n\t\tif (this._rangeSelection?.isMouse && this._rangeSelection.shiftPressed) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (row.isHeaderRow()) {\n\t\t\tthis._informHeaderRowSelectionChange();\n\t\t} else {\n\t\t\tthis._informRowSelectionChange(row as TableRow);\n\t\t}\n\t}\n\n\tget selectedAsArray(): string[] {\n\t\treturn this.selected.split(\" \").filter(String);\n\t}\n\n\tset selectedAsArray(selectedArray: string[]) {\n\t\tthis.selected = selectedArray.filter(String).join(\" \");\n\t}\n\n\tget selectedAsSet(): Set<string> {\n\t\treturn new Set(this.selectedAsArray);\n\t}\n\n\tset selectedAsSet(selectedSet: Set<string>) {\n\t\tthis.selectedAsArray = [...selectedSet];\n\t}\n\n\t_selectRow(row: TableRow, selected: boolean) {\n\t\tconst rowIdentifier = this.getRowIdentifier(row);\n\t\tif (this.mode === TableSelectionMode.Multiple) {\n\t\t\tconst selectedSet = this.selectedAsSet;\n\t\t\tselectedSet[selected ? \"add\" : \"delete\"](rowIdentifier);\n\t\t\tthis.selectedAsSet = selectedSet;\n\t\t} else {\n\t\t\tthis.selected = selected ? rowIdentifier : \"\";\n\t\t}\n\t}\n\n\t_informRowSelectionChange(row: TableRow) {\n\t\tconst isRowSelected = this.isMultiSelect() ? !this.isSelected(row) : true;\n\t\tthis._selectRow(row, isRowSelected);\n\t\tthis.fireDecoratorEvent(\"change\");\n\t}\n\n\t_informHeaderRowSelectionChange() {\n\t\tconst isRowSelected = this.areAllRowsSelected();\n\t\tconst selectedSet = this.selectedAsSet;\n\t\tthis._table!.rows.forEach(row => {\n\t\t\tconst rowIdentifier = this.getRowIdentifier(row);\n\t\t\tselectedSet[isRowSelected ? \"delete\" : \"add\"](rowIdentifier);\n\t\t});\n\t\tthis.selectedAsSet = selectedSet;\n\t\tthis.fireDecoratorEvent(\"change\");\n\t}\n\n\t_invalidateTableAndRows() {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.isSelectable()) {\n\t\t\tthis.selected = \"\";\n\t\t} else if (!this.isMultiSelect()) {\n\t\t\tthis.selected = this.selectedAsArray.shift() || \"\";\n\t\t}\n\n\t\tthis._table._invalidate++;\n\t\tthis._table.headerRow[0]._invalidate++;\n\t\tthis._table.rows.forEach(row => row._invalidate++);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (!this.isMultiSelect() || !this._table || !e.shiftKey) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst focusedElement = getActiveElement(); // Assumption: The focused element is always the \"next\" row after navigation.\n\n\t\tif (!(focusedElement?.hasAttribute(\"ui5-table-row\") || this._rangeSelection?.isMouse || focusedElement?.hasAttribute(\"ui5-growing-row\"))) {\n\t\t\tthis._stopRangeSelection();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._rangeSelection) {\n\t\t\t// If no range selection is active, start one\n\t\t\tthis._startRangeSelection(focusedElement as TableRow);\n\t\t} else if (e.key === \"ArrowUp\" || e.key === \"ArrowDown\") {\n\t\t\tconst change = isUpShift(e) ? -1 : 1;\n\t\t\tthis._handleRangeSelection(focusedElement as TableRow, change);\n\t\t}\n\n\t\tif (this._rangeSelection) {\n\t\t\tthis._rangeSelection.shiftPressed = e.shiftKey;\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!eventOrigin.hasAttribute(\"ui5-table-row\") || !this._rangeSelection || !e.shiftKey) {\n\t\t\t// Stop range selection if a) Shift is relased or b) the event target is not a row\n\t\t\tthis._stopRangeSelection();\n\t\t}\n\n\t\tif (this._rangeSelection) {\n\t\t\tthis._rangeSelection.shiftPressed = e.shiftKey;\n\t\t}\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isHeaderSelector(e)) {\n\t\t\tthis._stopRangeSelection();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!isSelectionCheckbox(e)) {\n\t\t\tthis._stopRangeSelection();\n\t\t\treturn;\n\t\t}\n\n\t\tconst row = findRowInPath(e.composedPath());\n\n\t\tif (e.shiftKey && this._rangeSelection?.isMouse) {\n\t\t\tconst startRow = this._rangeSelection.rows[0];\n\t\t\tconst startIndex = this._table.rows.indexOf(startRow);\n\t\t\tconst endIndex = this._table.rows.indexOf(row);\n\n\t\t\t// When doing a range selection and clicking on an already selected row, the checked status should not change\n\t\t\t// Therefore, we need to manually set the checked attribute again, as clicking it would deselect it and leads to\n\t\t\t// a visual inconsistency.\n\t\t\trow.shadowRoot?.querySelector(\"#selection-component\")?.toggleAttribute(\"checked\", true);\n\n\t\t\tif (startIndex === -1 || endIndex === -1 || row.rowKey === startRow.rowKey || row.rowKey === this._rangeSelection.rows[this._rangeSelection.rows.length - 1].rowKey) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst change = endIndex - startIndex;\n\t\t\tthis._handleRangeSelection(row, change);\n\t\t} else if (row) {\n\t\t\tthis._startRangeSelection(row, true);\n\t\t}\n\t}\n\n\t/**\n\t * Start the range selection and initialises the range selection state\n\t * @param row starting row\n\t * @private\n\t */\n\t_startRangeSelection(row: TableRow, isMouse = false) {\n\t\tconst selected = this.isSelected(row);\n\t\tif (isMouse && !selected) {\n\t\t\t// Do not initiate range selection if the row is not selected\n\t\t\treturn;\n\t\t}\n\n\t\tthis._rangeSelection = {\n\t\t\tselected,\n\t\t\tisUp: null,\n\t\t\trows: [row],\n\t\t\tisMouse,\n\t\t\tshiftPressed: false,\n\t\t};\n\t}\n\n\t/**\n\t * Handles the range selection\n\t * @param targetRow row that is currently focused\n\t * @param change indicates direction\n\t * @private\n\t */\n\t_handleRangeSelection(targetRow: TableRow, change: number) {\n\t\tif (!this._rangeSelection) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isUp = change > 0;\n\t\tthis._rangeSelection.isUp ??= isUp;\n\n\t\tconst shouldReverseSelection = isUp !== this._rangeSelection.isUp && !this._rangeSelection.isMouse;\n\t\tlet selectionChanged = shouldReverseSelection && this.isSelected(targetRow);\n\n\t\tif (shouldReverseSelection) {\n\t\t\tthis._reverseRangeSelection();\n\t\t} else {\n\t\t\tconst rowIndex = this._table!.rows.indexOf(targetRow);\n\t\t\tconst [startIndex, endIndex] = [rowIndex, rowIndex - change].sort((a, b) => a - b);\n\n\t\t\tselectionChanged = this._table?.rows.slice(startIndex, endIndex + 1).reduce((changed, row) => {\n\t\t\t\tconst isRowNotInSelection = !this._rangeSelection?.rows.includes(row);\n\t\t\t\tconst isRowSelectionDifferent = this.isSelected(row) !== this._rangeSelection!.selected;\n\n\t\t\t\tif (isRowNotInSelection) {\n\t\t\t\t\tthis._rangeSelection?.rows.push(row);\n\t\t\t\t}\n\n\t\t\t\tthis._selectRow(row, this._rangeSelection!.selected);\n\n\t\t\t\treturn changed || isRowSelectionDifferent;\n\t\t\t}, selectionChanged) || false;\n\t\t}\n\n\t\tselectionChanged && this.fireDecoratorEvent(\"change\");\n\t}\n\n\t_stopRangeSelection() {\n\t\tthis._rangeSelection = null;\n\t}\n\n\t_reverseRangeSelection() {\n\t\tconst row = this._rangeSelection?.rows.pop();\n\t\tif (row) {\n\t\t\tthis._selectRow(row, false);\n\t\t}\n\n\t\tif (this._rangeSelection?.rows.length === 1) {\n\t\t\tthis._rangeSelection.isUp = null;\n\t\t}\n\t}\n}\n\nTableSelection.define();\n\nexport default TableSelection;\n"]}
|
package/dist/TableUtils.d.ts
CHANGED
|
@@ -7,4 +7,5 @@ declare const findRowInPath: (composedPath: Array<EventTarget>) => TableRow;
|
|
|
7
7
|
declare const findVerticalScrollContainer: (element: HTMLElement) => HTMLElement;
|
|
8
8
|
declare const scrollElementIntoView: (scrollContainer: HTMLElement, element: HTMLElement, stickyElements: HTMLElement[], isRtl: boolean) => void;
|
|
9
9
|
declare const isFeature: <T>(element: any, identifier: string) => element is T;
|
|
10
|
-
|
|
10
|
+
declare const throttle: (callback: () => void) => () => void;
|
|
11
|
+
export { isInstanceOfTable, isSelectionCheckbox, isHeaderSelector, findRowInPath, findVerticalScrollContainer, scrollElementIntoView, isFeature, throttle, };
|
package/dist/TableUtils.js
CHANGED
|
@@ -61,5 +61,14 @@ const scrollElementIntoView = (scrollContainer, element, stickyElements, isRtl)
|
|
|
61
61
|
const isFeature = (element, identifier) => {
|
|
62
62
|
return element.identifier === identifier;
|
|
63
63
|
};
|
|
64
|
-
|
|
64
|
+
const throttle = (callback) => {
|
|
65
|
+
let timer;
|
|
66
|
+
return () => {
|
|
67
|
+
cancelAnimationFrame(timer);
|
|
68
|
+
timer = requestAnimationFrame(() => {
|
|
69
|
+
callback();
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
export { isInstanceOfTable, isSelectionCheckbox, isHeaderSelector, findRowInPath, findVerticalScrollContainer, scrollElementIntoView, isFeature, throttle, };
|
|
65
74
|
//# sourceMappingURL=TableUtils.js.map
|
package/dist/TableUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableUtils.js","sourceRoot":"","sources":["../src/TableUtils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TableUtils.js","sourceRoot":"","sources":["../src/TableUtils.ts"],"names":[],"mappings":"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","sourcesContent":["import type Table from \"./Table.js\";\nimport type TableRow from \"./TableRow.js\";\n\nconst isInstanceOfTable = (obj: any): obj is Table => {\n\treturn \"isTable\" in obj && !!obj.isTable;\n};\n\nconst isSelectionCheckbox = (e: Event) => {\n\treturn e.composedPath().some((el: EventTarget) => (el as HTMLElement).hasAttribute?.(\"ui5-table-selection-component\"));\n};\n\nconst isHeaderSelector = (e: Event) => {\n\treturn isSelectionCheckbox(e) && e.composedPath().some((el: EventTarget) => el instanceof HTMLElement && el.hasAttribute(\"ui5-table-header-row\"));\n};\n\nconst findRowInPath = (composedPath: Array<EventTarget>) => {\n\treturn composedPath.find((el: EventTarget) => el instanceof HTMLElement && el.hasAttribute(\"ui5-table-row\")) as TableRow;\n};\n\nconst findVerticalScrollContainer = (element: HTMLElement): HTMLElement => {\n\twhile (element) {\n\t\tconst { overflowY } = window.getComputedStyle(element);\n\t\tif (overflowY === \"auto\" || overflowY === \"scroll\") {\n\t\t\treturn element;\n\t\t}\n\n\t\tif (element.parentNode instanceof ShadowRoot) {\n\t\t\telement = element.parentNode.host as HTMLElement;\n\t\t} else {\n\t\t\telement = element.parentElement as HTMLElement;\n\t\t}\n\t}\n\n\treturn document.scrollingElement as HTMLElement || document.documentElement;\n};\n\nconst scrollElementIntoView = (scrollContainer: HTMLElement, element: HTMLElement, stickyElements: HTMLElement[], isRtl: boolean) => {\n\tif (stickyElements.length === 0) {\n\t\treturn;\n\t}\n\n\tconst elementRect = element.getBoundingClientRect();\n\tconst inline = isRtl ? \"right\" : \"left\";\n\n\tconst { x: stickyX, y: stickyY } = stickyElements.reduce(({ x, y }, stickyElement) => {\n\t\tconst { top, [inline]: inlineStart } = getComputedStyle(stickyElement);\n\t\tconst stickyElementRect = stickyElement.getBoundingClientRect();\n\t\tif (top !== \"auto\" && stickyElementRect.bottom > elementRect.top) {\n\t\t\ty = Math.max(y, stickyElementRect.bottom);\n\t\t}\n\t\tif (inlineStart !== \"auto\") {\n\t\t\tif (!isRtl && stickyElementRect.right > elementRect.left) {\n\t\t\t\tx = Math.max(x, stickyElementRect.right);\n\t\t\t} else if (isRtl && stickyElementRect.left < elementRect.right) {\n\t\t\t\tx = Math.min(x, stickyElementRect.left);\n\t\t\t}\n\t\t}\n\n\t\treturn { x, y };\n\t}, { x: elementRect[inline], y: elementRect.top });\n\n\tconst scrollX = elementRect[inline] - stickyX;\n\tconst scrollY = elementRect.top - stickyY;\n\n\tif (scrollX === 0 && scrollY === 0) {\n\t\t// avoid unnecessary scroll call, when nothing changes\n\t\treturn;\n\t}\n\n\tscrollContainer.scrollBy({\n\t\ttop: scrollY,\n\t\tleft: scrollX,\n\t});\n};\n\nconst isFeature = <T>(element: any, identifier: string): element is T => {\n\treturn element.identifier === identifier;\n};\n\nconst throttle = (callback: () => void) => {\n\tlet timer: number;\n\treturn () => {\n\t\tcancelAnimationFrame(timer);\n\t\ttimer = requestAnimationFrame(() => {\n\t\t\tcallback();\n\t\t});\n\t};\n};\n\nexport {\n\tisInstanceOfTable,\n\tisSelectionCheckbox,\n\tisHeaderSelector,\n\tfindRowInPath,\n\tfindVerticalScrollContainer,\n\tscrollElementIntoView,\n\tisFeature,\n\tthrottle,\n};\n"]}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import UI5Element, { type InvalidationInfo } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
+
import type { ITableFeature } from "./Table.js";
|
|
3
|
+
import type Table from "./Table.js";
|
|
4
|
+
declare enum TabBlocking {
|
|
5
|
+
None = 0,
|
|
6
|
+
Next = 1,
|
|
7
|
+
Previous = 2,
|
|
8
|
+
Released = 4,
|
|
9
|
+
NextReleased = 5,
|
|
10
|
+
PreviousReleased = 6
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Fired when the virtualizer is changed by user interaction e.g. on scrolling.
|
|
14
|
+
* @param number {first} The 0-based index of the first children currently rendered
|
|
15
|
+
* @param number {last} The 0-based index of the last children currently rendered
|
|
16
|
+
* @public
|
|
17
|
+
*/
|
|
18
|
+
type RangeChangeEventDetail = {
|
|
19
|
+
first: number;
|
|
20
|
+
last: number;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* @class
|
|
24
|
+
*
|
|
25
|
+
* ### Overview
|
|
26
|
+
*
|
|
27
|
+
* The `ui5-table-virtualizer` component is used inside the `ui5-table` to virtualize the table rows, if the `overflowMode` property of the table is set to 'Scroll'.
|
|
28
|
+
* It is responsible for rendering only the rows that are visible in the viewport and updating them on scroll.
|
|
29
|
+
* This allows large numbers of rows to exist, but maintain high performance by only paying the cost for those that are currently visible.
|
|
30
|
+
*
|
|
31
|
+
* **Note:** The maximum number of virtualized rows is limited by browser constraints, specifically the maximum supported height for a DOM element.
|
|
32
|
+
*
|
|
33
|
+
* ### ES6 Module Import
|
|
34
|
+
* `import "@ui5/webcomponents/dist/TableVirtualizer.js";`
|
|
35
|
+
*
|
|
36
|
+
* @constructor
|
|
37
|
+
* @extends UI5Element
|
|
38
|
+
* @public
|
|
39
|
+
* @experimental This component is not intended to be used in a productive enviroment. The API is under development and may be changed in the future.
|
|
40
|
+
*/
|
|
41
|
+
declare class TableVirtualizer extends UI5Element implements ITableFeature {
|
|
42
|
+
eventDetails: {
|
|
43
|
+
"range-change": RangeChangeEventDetail;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Defines the height of the rows in the table.
|
|
47
|
+
*
|
|
48
|
+
* **Note:** This property is mandatory for the virtualization to work properly.
|
|
49
|
+
*
|
|
50
|
+
* @default 45
|
|
51
|
+
* @public
|
|
52
|
+
*/
|
|
53
|
+
rowHeight: number;
|
|
54
|
+
/**
|
|
55
|
+
* Defines the total count of rows in the table.
|
|
56
|
+
*
|
|
57
|
+
* **Note:** This property is mandatory for the virtualization to work properly.
|
|
58
|
+
*
|
|
59
|
+
* @default 100
|
|
60
|
+
* @public
|
|
61
|
+
*/
|
|
62
|
+
rowCount: number;
|
|
63
|
+
/**
|
|
64
|
+
* Defines the count of extra rows to be rendered at the top and bottom of the table.
|
|
65
|
+
*
|
|
66
|
+
* **Note:** This property is experimental and may be changed or deleted in the future.
|
|
67
|
+
*
|
|
68
|
+
* @default 0
|
|
69
|
+
* @public
|
|
70
|
+
*/
|
|
71
|
+
extraRows: number;
|
|
72
|
+
readonly identifier = "TableVirtualizer";
|
|
73
|
+
_table?: Table;
|
|
74
|
+
_lastRowPosition: number;
|
|
75
|
+
_firstRowPosition: number;
|
|
76
|
+
_visibleRowCount: number;
|
|
77
|
+
_tabBlockingState: TabBlocking;
|
|
78
|
+
_onRowInvalidateBound: (invalidationInfo: InvalidationInfo) => void;
|
|
79
|
+
_onScrollBound: () => void;
|
|
80
|
+
constructor();
|
|
81
|
+
onTableActivate(table: Table): void;
|
|
82
|
+
onAfterRendering(): void;
|
|
83
|
+
onTableAfterRendering(): void;
|
|
84
|
+
onExitDOM(): void;
|
|
85
|
+
/**
|
|
86
|
+
* Resets the virtualizer to its initial state and triggers the `range-change` event.
|
|
87
|
+
* @public
|
|
88
|
+
*/
|
|
89
|
+
reset(): void;
|
|
90
|
+
get _scrollContainer(): HTMLElement;
|
|
91
|
+
get _rowsContainer(): HTMLElement;
|
|
92
|
+
_onScroll(): void;
|
|
93
|
+
_updateRowsHeight(): void;
|
|
94
|
+
_getTransform(): string | undefined;
|
|
95
|
+
_onRowInvalidate(invalidationInfo: InvalidationInfo): void;
|
|
96
|
+
_onKeyDown(e: KeyboardEvent): void;
|
|
97
|
+
}
|
|
98
|
+
export default TableVirtualizer;
|
|
99
|
+
export type { RangeChangeEventDetail, };
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
/* eslint-disable no-bitwise */
|
|
8
|
+
import { isUp, isUpShift, isDown, isDownShift, isPageUp, isPageDown, isHome, isEnd, isTabNext, isTabPrevious, } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
9
|
+
import UI5Element, {} from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
10
|
+
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
11
|
+
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
12
|
+
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
13
|
+
import getActiveElement from "@ui5/webcomponents-base/dist/util/getActiveElement.js";
|
|
14
|
+
import { getTabbableElements } from "@ui5/webcomponents-base/dist/util/TabbableElements.js";
|
|
15
|
+
import { throttle } from "./TableUtils.js";
|
|
16
|
+
var TabBlocking;
|
|
17
|
+
(function (TabBlocking) {
|
|
18
|
+
TabBlocking[TabBlocking["None"] = 0] = "None";
|
|
19
|
+
TabBlocking[TabBlocking["Next"] = 1] = "Next";
|
|
20
|
+
TabBlocking[TabBlocking["Previous"] = 2] = "Previous";
|
|
21
|
+
TabBlocking[TabBlocking["Released"] = 4] = "Released";
|
|
22
|
+
TabBlocking[TabBlocking["NextReleased"] = 5] = "NextReleased";
|
|
23
|
+
TabBlocking[TabBlocking["PreviousReleased"] = 6] = "PreviousReleased";
|
|
24
|
+
})(TabBlocking || (TabBlocking = {}));
|
|
25
|
+
/**
|
|
26
|
+
* @class
|
|
27
|
+
*
|
|
28
|
+
* ### Overview
|
|
29
|
+
*
|
|
30
|
+
* The `ui5-table-virtualizer` component is used inside the `ui5-table` to virtualize the table rows, if the `overflowMode` property of the table is set to 'Scroll'.
|
|
31
|
+
* It is responsible for rendering only the rows that are visible in the viewport and updating them on scroll.
|
|
32
|
+
* This allows large numbers of rows to exist, but maintain high performance by only paying the cost for those that are currently visible.
|
|
33
|
+
*
|
|
34
|
+
* **Note:** The maximum number of virtualized rows is limited by browser constraints, specifically the maximum supported height for a DOM element.
|
|
35
|
+
*
|
|
36
|
+
* ### ES6 Module Import
|
|
37
|
+
* `import "@ui5/webcomponents/dist/TableVirtualizer.js";`
|
|
38
|
+
*
|
|
39
|
+
* @constructor
|
|
40
|
+
* @extends UI5Element
|
|
41
|
+
* @public
|
|
42
|
+
* @experimental This component is not intended to be used in a productive enviroment. The API is under development and may be changed in the future.
|
|
43
|
+
*/
|
|
44
|
+
let TableVirtualizer = class TableVirtualizer extends UI5Element {
|
|
45
|
+
constructor() {
|
|
46
|
+
super();
|
|
47
|
+
/**
|
|
48
|
+
* Defines the height of the rows in the table.
|
|
49
|
+
*
|
|
50
|
+
* **Note:** This property is mandatory for the virtualization to work properly.
|
|
51
|
+
*
|
|
52
|
+
* @default 45
|
|
53
|
+
* @public
|
|
54
|
+
*/
|
|
55
|
+
this.rowHeight = 45;
|
|
56
|
+
/**
|
|
57
|
+
* Defines the total count of rows in the table.
|
|
58
|
+
*
|
|
59
|
+
* **Note:** This property is mandatory for the virtualization to work properly.
|
|
60
|
+
*
|
|
61
|
+
* @default 100
|
|
62
|
+
* @public
|
|
63
|
+
*/
|
|
64
|
+
this.rowCount = 100;
|
|
65
|
+
/**
|
|
66
|
+
* Defines the count of extra rows to be rendered at the top and bottom of the table.
|
|
67
|
+
*
|
|
68
|
+
* **Note:** This property is experimental and may be changed or deleted in the future.
|
|
69
|
+
*
|
|
70
|
+
* @default 0
|
|
71
|
+
* @public
|
|
72
|
+
*/
|
|
73
|
+
this.extraRows = 0;
|
|
74
|
+
this.identifier = "TableVirtualizer";
|
|
75
|
+
this._lastRowPosition = 0;
|
|
76
|
+
this._firstRowPosition = 0;
|
|
77
|
+
this._visibleRowCount = 0;
|
|
78
|
+
this._tabBlockingState = TabBlocking.None;
|
|
79
|
+
this._onScrollBound = throttle(this._onScroll.bind(this));
|
|
80
|
+
this._onRowInvalidateBound = this._onRowInvalidate.bind(this);
|
|
81
|
+
}
|
|
82
|
+
onTableActivate(table) {
|
|
83
|
+
this._table = table;
|
|
84
|
+
this._scrollContainer.addEventListener("scroll", this._onScrollBound, { passive: true });
|
|
85
|
+
this._onScroll();
|
|
86
|
+
}
|
|
87
|
+
onAfterRendering() {
|
|
88
|
+
this._table && this._table._invalidate++;
|
|
89
|
+
}
|
|
90
|
+
onTableAfterRendering() {
|
|
91
|
+
if (!this._table) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
this._updateRowsHeight();
|
|
95
|
+
if (this._tabBlockingState & TabBlocking.Released) {
|
|
96
|
+
const tabBlockingRow = this._table.rows.at(this._tabBlockingState & TabBlocking.Next ? -1 : 0);
|
|
97
|
+
const tabForwardingElement = getTabbableElements(tabBlockingRow).at(this._tabBlockingState & TabBlocking.Next ? 0 : -1);
|
|
98
|
+
this._tabBlockingState = TabBlocking.None;
|
|
99
|
+
(tabForwardingElement || tabBlockingRow).focus();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
onExitDOM() {
|
|
103
|
+
this._scrollContainer.removeEventListener("scroll", this._onScrollBound);
|
|
104
|
+
this._table = undefined;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Resets the virtualizer to its initial state and triggers the `range-change` event.
|
|
108
|
+
* @public
|
|
109
|
+
*/
|
|
110
|
+
reset() {
|
|
111
|
+
this._lastRowPosition = -1;
|
|
112
|
+
this._firstRowPosition = -1;
|
|
113
|
+
if (this._scrollContainer.scrollTop > 0) {
|
|
114
|
+
this._scrollContainer.scrollTop = 0;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
this._onScroll();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
get _scrollContainer() {
|
|
121
|
+
return this._table._tableElement;
|
|
122
|
+
}
|
|
123
|
+
get _rowsContainer() {
|
|
124
|
+
return this._table.shadowRoot.getElementById("rows");
|
|
125
|
+
}
|
|
126
|
+
_onScroll() {
|
|
127
|
+
if (!this._table) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
const headerRow = this._table.headerRow[0];
|
|
131
|
+
const headerHeight = headerRow.offsetHeight;
|
|
132
|
+
let scrollTop = this._scrollContainer.scrollTop;
|
|
133
|
+
let scrollableHeight = this._scrollContainer.clientHeight;
|
|
134
|
+
if (headerRow.sticky) {
|
|
135
|
+
scrollableHeight = Math.max(0, scrollableHeight - headerHeight);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
scrollTop = Math.max(0, scrollTop - headerHeight);
|
|
139
|
+
}
|
|
140
|
+
this._visibleRowCount = Math.ceil(scrollableHeight / this.rowHeight);
|
|
141
|
+
let firstRowPosition = Math.floor(scrollTop / this.rowHeight) - this.extraRows;
|
|
142
|
+
firstRowPosition = Math.max(0, firstRowPosition);
|
|
143
|
+
let lastRowPosition = Math.max(0, firstRowPosition + this._visibleRowCount + 2 * this.extraRows);
|
|
144
|
+
lastRowPosition = Math.min(lastRowPosition, this.rowCount);
|
|
145
|
+
if (this._firstRowPosition === firstRowPosition && this._lastRowPosition === lastRowPosition) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
this._lastRowPosition = lastRowPosition;
|
|
149
|
+
this._firstRowPosition = firstRowPosition;
|
|
150
|
+
this.fireDecoratorEvent("range-change", {
|
|
151
|
+
first: firstRowPosition,
|
|
152
|
+
last: lastRowPosition,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
_updateRowsHeight() {
|
|
156
|
+
const rowsHeight = this.rowCount * this.rowHeight;
|
|
157
|
+
this._rowsContainer.style.height = `${rowsHeight}px`;
|
|
158
|
+
}
|
|
159
|
+
_getTransform() {
|
|
160
|
+
if (!this._table) {
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
const firstRow = this._table.rows[0];
|
|
164
|
+
if (firstRow && firstRow.position > 0) {
|
|
165
|
+
const transform = firstRow.position * this.rowHeight;
|
|
166
|
+
return `translateY(${transform}px)`;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
_onRowInvalidate(invalidationInfo) {
|
|
170
|
+
if (invalidationInfo.name === "position") {
|
|
171
|
+
invalidationInfo.target.detachInvalidate(this._onRowInvalidateBound);
|
|
172
|
+
this._tabBlockingState |= TabBlocking.Released;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
_onKeyDown(e) {
|
|
176
|
+
if (!this._table) {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
let scrollTopChange = 0;
|
|
180
|
+
const rows = this._table.rows;
|
|
181
|
+
const firstRow = rows[0];
|
|
182
|
+
const lastRow = rows[rows.length - 1];
|
|
183
|
+
const hasDataBeforeFirstRow = firstRow.position !== 0;
|
|
184
|
+
const hasDataAfterLastRow = lastRow.position !== this.rowCount - 1;
|
|
185
|
+
const tableNavigation = this._table._tableNavigation;
|
|
186
|
+
const activeElement = getActiveElement();
|
|
187
|
+
if (isTabNext(e) && hasDataAfterLastRow && getTabbableElements(this._rowsContainer).pop() === activeElement) {
|
|
188
|
+
this._tabBlockingState = TabBlocking.Next;
|
|
189
|
+
lastRow.attachInvalidate(this._onRowInvalidateBound);
|
|
190
|
+
scrollTopChange = this.rowHeight;
|
|
191
|
+
}
|
|
192
|
+
else if (isTabPrevious(e) && hasDataBeforeFirstRow && getTabbableElements(this._rowsContainer).shift() === activeElement) {
|
|
193
|
+
this._tabBlockingState = TabBlocking.Previous;
|
|
194
|
+
firstRow.attachInvalidate(this._onRowInvalidateBound);
|
|
195
|
+
scrollTopChange = this.rowHeight * -1;
|
|
196
|
+
}
|
|
197
|
+
else if (hasDataAfterLastRow && tableNavigation._getNavigationItemsOfRow(lastRow).includes(activeElement)) {
|
|
198
|
+
if (isDown(e) || isDownShift(e)) {
|
|
199
|
+
scrollTopChange = this.rowHeight;
|
|
200
|
+
}
|
|
201
|
+
else if (isPageDown(e)) {
|
|
202
|
+
scrollTopChange = this._visibleRowCount * this.rowHeight;
|
|
203
|
+
}
|
|
204
|
+
else if (isEnd(e) && activeElement === lastRow) {
|
|
205
|
+
scrollTopChange = this.rowCount * this.rowHeight;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
else if (hasDataBeforeFirstRow && tableNavigation._getNavigationItemsOfRow(firstRow).includes(activeElement)) {
|
|
209
|
+
if (isUp(e) || isUpShift(e)) {
|
|
210
|
+
scrollTopChange = this.rowHeight * -1;
|
|
211
|
+
}
|
|
212
|
+
else if (isPageUp(e)) {
|
|
213
|
+
scrollTopChange = this._visibleRowCount * this.rowHeight * -1;
|
|
214
|
+
}
|
|
215
|
+
else if (isHome(e) && activeElement === firstRow) {
|
|
216
|
+
scrollTopChange = this.rowCount * this.rowHeight * -1;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
if (scrollTopChange) {
|
|
220
|
+
const scrollTop = this._table.scrollTop;
|
|
221
|
+
this._scrollContainer.scrollTop += scrollTopChange;
|
|
222
|
+
if (this._scrollContainer.scrollTop !== scrollTop) {
|
|
223
|
+
e.preventDefault();
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
__decorate([
|
|
229
|
+
property({ type: Number })
|
|
230
|
+
], TableVirtualizer.prototype, "rowHeight", void 0);
|
|
231
|
+
__decorate([
|
|
232
|
+
property({ type: Number })
|
|
233
|
+
], TableVirtualizer.prototype, "rowCount", void 0);
|
|
234
|
+
__decorate([
|
|
235
|
+
property({ type: Number })
|
|
236
|
+
], TableVirtualizer.prototype, "extraRows", void 0);
|
|
237
|
+
TableVirtualizer = __decorate([
|
|
238
|
+
customElement({ tag: "ui5-table-virtualizer" })
|
|
239
|
+
/**
|
|
240
|
+
* Fired when the virtualizer is changed by user interaction e.g. on scrolling.
|
|
241
|
+
*
|
|
242
|
+
* @param {number} first The 0-based index of the first children currently rendered
|
|
243
|
+
* @param {number} last The 0-based index of the last children currently rendered
|
|
244
|
+
* @public
|
|
245
|
+
*/
|
|
246
|
+
,
|
|
247
|
+
event("range-change")
|
|
248
|
+
], TableVirtualizer);
|
|
249
|
+
TableVirtualizer.define();
|
|
250
|
+
export default TableVirtualizer;
|
|
251
|
+
//# sourceMappingURL=TableVirtualizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableVirtualizer.js","sourceRoot":"","sources":["../src/TableVirtualizer.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-bitwise */\nimport {\n\tisUp,\n\tisUpShift,\n\tisDown,\n\tisDownShift,\n\tisPageUp,\n\tisPageDown,\n\tisHome,\n\tisEnd,\n\tisTabNext,\n\tisTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport UI5Element, { type InvalidationInfo } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport { getTabbableElements } from \"@ui5/webcomponents-base/dist/util/TabbableElements.js\";\nimport { throttle } from \"./TableUtils.js\";\nimport type { ITableFeature } from \"./Table.js\";\nimport type Table from \"./Table.js\";\n\nenum TabBlocking {\n\tNone = 0,\n\tNext = 1,\n\tPrevious = 2,\n\tReleased = 4,\n\tNextReleased = Next | Released,\n\tPreviousReleased = Previous | Released,\n}\n\n/**\n * Fired when the virtualizer is changed by user interaction e.g. on scrolling.\n * @param number {first} The 0-based index of the first children currently rendered\n * @param number {last} The 0-based index of the last children currently rendered\n * @public\n */\ntype RangeChangeEventDetail = {\n\tfirst: number,\n\tlast: number,\n};\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-table-virtualizer` component is used inside the `ui5-table` to virtualize the table rows, if the `overflowMode` property of the table is set to 'Scroll'.\n * It is responsible for rendering only the rows that are visible in the viewport and updating them on scroll.\n * This allows large numbers of rows to exist, but maintain high performance by only paying the cost for those that are currently visible.\n *\n * **Note:** The maximum number of virtualized rows is limited by browser constraints, specifically the maximum supported height for a DOM element.\n *\n * ### ES6 Module Import\n * `import \"@ui5/webcomponents/dist/TableVirtualizer.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @public\n * @experimental This component is not intended to be used in a productive enviroment. The API is under development and may be changed in the future.\n */\n@customElement({ tag: \"ui5-table-virtualizer\" })\n\n/**\n * Fired when the virtualizer is changed by user interaction e.g. on scrolling.\n *\n * @param {number} first The 0-based index of the first children currently rendered\n * @param {number} last The 0-based index of the last children currently rendered\n * @public\n */\n@event(\"range-change\")\n\nclass TableVirtualizer extends UI5Element implements ITableFeature {\n\teventDetails!: {\n\t\t\"range-change\": RangeChangeEventDetail\n\t}\n\t/**\n\t * Defines the height of the rows in the table.\n\t *\n\t * **Note:** This property is mandatory for the virtualization to work properly.\n\t *\n\t * @default 45\n\t * @public\n\t */\n\t@property({ type: Number })\n\trowHeight = 45;\n\n\t/**\n\t * Defines the total count of rows in the table.\n\t *\n\t * **Note:** This property is mandatory for the virtualization to work properly.\n\t *\n\t * @default 100\n\t * @public\n\t */\n\t@property({ type: Number })\n\trowCount = 100;\n\n\t/**\n\t * Defines the count of extra rows to be rendered at the top and bottom of the table.\n\t *\n\t * **Note:** This property is experimental and may be changed or deleted in the future.\n\t *\n\t * @default 0\n\t * @public\n\t */\n\t@property({ type: Number })\n\textraRows = 0;\n\n\treadonly identifier = \"TableVirtualizer\";\n\n\t_table?: Table;\n\t_lastRowPosition: number = 0;\n\t_firstRowPosition: number = 0;\n\t_visibleRowCount: number = 0;\n\t_tabBlockingState: TabBlocking = TabBlocking.None;\n\t_onRowInvalidateBound: (invalidationInfo: InvalidationInfo) => void;\n\t_onScrollBound: () => void;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._onScrollBound = throttle(this._onScroll.bind(this));\n\t\tthis._onRowInvalidateBound = this._onRowInvalidate.bind(this);\n\t}\n\n\tonTableActivate(table: Table): void {\n\t\tthis._table = table;\n\t\tthis._scrollContainer.addEventListener(\"scroll\", this._onScrollBound, { passive: true });\n\t\tthis._onScroll();\n\t}\n\n\tonAfterRendering(): void {\n\t\tthis._table && this._table._invalidate++;\n\t}\n\n\tonTableAfterRendering(): void {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._updateRowsHeight();\n\t\tif (this._tabBlockingState & TabBlocking.Released) {\n\t\t\tconst tabBlockingRow = this._table.rows.at(this._tabBlockingState & TabBlocking.Next ? -1 : 0) as HTMLElement;\n\t\t\tconst tabForwardingElement = getTabbableElements(tabBlockingRow).at(this._tabBlockingState & TabBlocking.Next ? 0 : -1);\n\t\t\tthis._tabBlockingState = TabBlocking.None;\n\t\t\t(tabForwardingElement || tabBlockingRow).focus();\n\t\t}\n\t}\n\n\tonExitDOM(): void {\n\t\tthis._scrollContainer.removeEventListener(\"scroll\", this._onScrollBound);\n\t\tthis._table = undefined;\n\t}\n\n\t/**\n\t * Resets the virtualizer to its initial state and triggers the `range-change` event.\n\t * @public\n\t */\n\treset(): void {\n\t\tthis._lastRowPosition = -1;\n\t\tthis._firstRowPosition = -1;\n\t\tif (this._scrollContainer.scrollTop > 0) {\n\t\t\tthis._scrollContainer.scrollTop = 0;\n\t\t} else {\n\t\t\tthis._onScroll();\n\t\t}\n\t}\n\n\tget _scrollContainer() {\n\t\treturn this._table!._tableElement;\n\t}\n\n\tget _rowsContainer() {\n\t\treturn this._table!.shadowRoot!.getElementById(\"rows\")!;\n\t}\n\n\t_onScroll(): void {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst headerRow = this._table.headerRow[0];\n\t\tconst headerHeight = headerRow.offsetHeight;\n\t\tlet scrollTop = this._scrollContainer.scrollTop;\n\t\tlet scrollableHeight = this._scrollContainer.clientHeight;\n\t\tif (headerRow.sticky) {\n\t\t\tscrollableHeight = Math.max(0, scrollableHeight - headerHeight);\n\t\t} else {\n\t\t\tscrollTop = Math.max(0, scrollTop - headerHeight);\n\t\t}\n\n\t\tthis._visibleRowCount = Math.ceil(scrollableHeight / this.rowHeight);\n\t\tlet firstRowPosition = Math.floor(scrollTop / this.rowHeight) - this.extraRows;\n\t\tfirstRowPosition = Math.max(0, firstRowPosition);\n\t\tlet lastRowPosition = Math.max(0, firstRowPosition + this._visibleRowCount + 2 * this.extraRows);\n\t\tlastRowPosition = Math.min(lastRowPosition, this.rowCount);\n\n\t\tif (this._firstRowPosition === firstRowPosition && this._lastRowPosition === lastRowPosition) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._lastRowPosition = lastRowPosition;\n\t\tthis._firstRowPosition = firstRowPosition;\n\t\tthis.fireDecoratorEvent(\"range-change\", {\n\t\t\tfirst: firstRowPosition,\n\t\t\tlast: lastRowPosition,\n\t\t});\n\t}\n\n\t_updateRowsHeight() {\n\t\tconst rowsHeight = this.rowCount * this.rowHeight;\n\t\tthis._rowsContainer.style.height = `${rowsHeight}px`;\n\t}\n\n\t_getTransform() {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst firstRow = this._table.rows[0];\n\t\tif (firstRow && firstRow.position > 0) {\n\t\t\tconst transform = firstRow.position * this.rowHeight;\n\t\t\treturn `translateY(${transform}px)`;\n\t\t}\n\t}\n\n\t_onRowInvalidate(invalidationInfo: InvalidationInfo) {\n\t\tif (invalidationInfo.name === \"position\") {\n\t\t\tinvalidationInfo.target.detachInvalidate(this._onRowInvalidateBound);\n\t\t\tthis._tabBlockingState |= TabBlocking.Released;\n\t\t}\n\t}\n\n\t_onKeyDown(e: KeyboardEvent) {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet scrollTopChange = 0;\n\t\tconst rows = this._table.rows;\n\t\tconst firstRow = rows[0];\n\t\tconst lastRow = rows[rows.length - 1];\n\t\tconst hasDataBeforeFirstRow = firstRow.position !== 0;\n\t\tconst hasDataAfterLastRow = lastRow.position !== this.rowCount - 1;\n\t\tconst tableNavigation = this._table._tableNavigation!;\n\t\tconst activeElement = getActiveElement() as HTMLElement;\n\n\t\tif (isTabNext(e) && hasDataAfterLastRow && getTabbableElements(this._rowsContainer).pop() === activeElement) {\n\t\t\tthis._tabBlockingState = TabBlocking.Next;\n\t\t\tlastRow.attachInvalidate(this._onRowInvalidateBound);\n\t\t\tscrollTopChange = this.rowHeight;\n\t\t} else if (isTabPrevious(e) && hasDataBeforeFirstRow && getTabbableElements(this._rowsContainer).shift() === activeElement) {\n\t\t\tthis._tabBlockingState = TabBlocking.Previous;\n\t\t\tfirstRow.attachInvalidate(this._onRowInvalidateBound);\n\t\t\tscrollTopChange = this.rowHeight * -1;\n\t\t} else if (hasDataAfterLastRow && tableNavigation._getNavigationItemsOfRow(lastRow).includes(activeElement)) {\n\t\t\tif (isDown(e) || isDownShift(e)) {\n\t\t\t\tscrollTopChange = this.rowHeight;\n\t\t\t} else if (isPageDown(e)) {\n\t\t\t\tscrollTopChange = this._visibleRowCount * this.rowHeight;\n\t\t\t} else if (isEnd(e) && activeElement === lastRow) {\n\t\t\t\tscrollTopChange = this.rowCount * this.rowHeight;\n\t\t\t}\n\t\t} else if (hasDataBeforeFirstRow && tableNavigation._getNavigationItemsOfRow(firstRow).includes(activeElement)) {\n\t\t\tif (isUp(e) || isUpShift(e)) {\n\t\t\t\tscrollTopChange = this.rowHeight * -1;\n\t\t\t} else if (isPageUp(e)) {\n\t\t\t\tscrollTopChange = this._visibleRowCount * this.rowHeight * -1;\n\t\t\t} else if (isHome(e) && activeElement === firstRow) {\n\t\t\t\tscrollTopChange = this.rowCount * this.rowHeight * -1;\n\t\t\t}\n\t\t}\n\n\t\tif (scrollTopChange) {\n\t\t\tconst scrollTop = this._table.scrollTop;\n\t\t\tthis._scrollContainer.scrollTop += scrollTopChange;\n\t\t\tif (this._scrollContainer.scrollTop !== scrollTop) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t}\n\t}\n}\n\nTableVirtualizer.define();\n\nexport default TableVirtualizer;\n\nexport type {\n\tRangeChangeEventDetail,\n};\n"]}
|
package/dist/Tag.d.ts
CHANGED
package/dist/Tag.js
CHANGED
|
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var Tag_1;
|
|
8
8
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
9
9
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
10
|
-
import event from "@ui5/webcomponents-base/dist/decorators/event.js";
|
|
10
|
+
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
11
11
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
12
12
|
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
13
13
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
package/dist/Tag.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tag.js","sourceRoot":"","sources":["../src/Tag.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport willShowContent from \"@ui5/webcomponents-base/dist/util/willShowContent.js\";\nimport {\n\tisDesktop,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type { IIcon } from \"./Icon.js\";\nimport Icon from \"./Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/sys-help-2.js\";\nimport \"@ui5/webcomponents-icons/dist/sys-enter-2.js\";\nimport \"@ui5/webcomponents-icons/dist/error.js\";\nimport \"@ui5/webcomponents-icons/dist/alert.js\";\nimport \"@ui5/webcomponents-icons/dist/information.js\";\nimport type WrappingType from \"./types/WrappingType.js\";\nimport TagDesign from \"./types/TagDesign.js\";\nimport type TagSize from \"./types/TagSize.js\";\n// Template\nimport TagTemplate from \"./generated/templates/TagTemplate.lit.js\";\n\nimport {\n\tTAG_DESCRIPTION_TAG,\n\tTAG_ROLE_DESCRIPTION,\n\tTAG_ERROR,\n\tTAG_WARNING,\n\tTAG_SUCCESS,\n\tTAG_INFORMATION,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport tagCss from \"./generated/themes/Tag.css.js\";\n\n/**\n * @class\n * ### Overview\n *\n * The `ui5-tag` is a component which serves\n * the purpose to attract the user attention to some piece\n * of information (state, quantity, condition, etc.).\n * It can contain icon and text information, and its design can be chosen from specific design types.\n *\n * ### Usage Guidelines\n *\n * - If the text is longer than the width of the component, it can wrap, or it can show ellipsis, depending on the `wrappingType` property.\n * - Colors can be semantic or not semantic.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Tag.js\";`\n * @constructor\n * @extends UI5Element\n * @since 2.0.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-tag\",\n\tlanguageAware: true,\n\trenderer: litRender,\n\ttemplate: TagTemplate,\n\tstyles: tagCss,\n\tdependencies: [\n\t\tIcon,\n\t],\n})\n\n/**\n * Fired when the user clicks on an interactive tag.\n *\n * **Note:** The event will be fired if the `interactive` property is `true`\n * @public\n * @since 1.22.0\n */\n@event(\"click\", {\n\tbubbles: true,\n})\nclass Tag extends UI5Element {\n\t/**\n\t * Defines the design type of the component.\n\t * @default \"Neutral\"\n\t * @public\n\t * @since 1.22.0\n\t */\n\t@property()\n\tdesign: `${TagDesign}` = \"Neutral\"\n\n\t/**\n\t * Defines the color scheme of the component.\n\t * There are 10 predefined schemes.\n\t * To use one you can set a number from `\"1\"` to `\"10\"`. The `colorScheme` `\"1\"` will be set by default.\n\t * @default \"1\"\n\t * @public\n\t */\n\t@property()\n\tcolorScheme = \"1\";\n\n\t/**\n\t * Defines if the default state icon is shown.\n\t * @default false\n\t * @public\n\t * @since 1.22.0\n\t */\n\t@property({ type: Boolean })\n\thideStateIcon = false;\n\n\t/**\n\t * Defines if the component is interactive (focusable and pressable).\n\t *\n\t * @default false\n\t * @public\n\t * @since 1.22.0\n\t */\n\t@property({ type: Boolean })\n\tinteractive = false;\n\n\t/**\n\t * Defines how the text of a component will be displayed when there is not enough space.\n\t *\n\t * **Note:** For option \"Normal\" the text will wrap and the\n\t * words will not be broken based on hyphenation.\n\t * @default \"Normal\"\n\t * @public\n\t * @since 1.22.0\n\t */\n\t@property()\n\twrappingType: `${WrappingType}` = \"Normal\";\n\n\t/**\n\t * Defines predefined size of the component.\n\t * @default \"S\"\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@property()\n\tsize: `${TagSize}` = \"S\";\n\n\t/**\n\t * Defines if the tag has an icon.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_hasIcon = false;\n\n\t/**\n\t * Defines if the tag has only an icon (and no text).\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_iconOnly = false;\n\n\t/**\n\t * Defines the text of the component.\n\t *\n\t * **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n\t * @public\n\t */\n\t@slot({ type: Node, \"default\": true })\n\ttext!: Array<Node>;\n\n\t/**\n\t * Defines the icon to be displayed in the component.\n\t * @public\n\t */\n\t@slot()\n\ticon!: Array<IIcon>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tonEnterDOM() {\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._hasIcon = this.hasIcon || !!this._semanticIconName;\n\t\tthis._iconOnly = this.iconOnly;\n\t}\n\n\tget _roleDescription() {\n\t\treturn Tag.i18nBundle.getText(TAG_ROLE_DESCRIPTION);\n\t}\n\n\tget _valueState() {\n\t\tswitch (this.design) {\n\t\tcase TagDesign.Positive:\n\t\t\treturn Tag.i18nBundle.getText(TAG_SUCCESS);\n\t\tcase TagDesign.Negative:\n\t\t\treturn Tag.i18nBundle.getText(TAG_ERROR);\n\t\tcase TagDesign.Critical:\n\t\t\treturn Tag.i18nBundle.getText(TAG_WARNING);\n\t\tcase TagDesign.Information:\n\t\t\treturn Tag.i18nBundle.getText(TAG_INFORMATION);\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget hasText() {\n\t\treturn willShowContent(this.text);\n\t}\n\n\tget hasIcon() {\n\t\treturn !!this.icon.length;\n\t}\n\n\tget iconOnly() {\n\t\treturn this.hasIcon && !this.hasText;\n\t}\n\n\tget _title() {\n\t\treturn this.title || undefined;\n\t}\n\n\tget tagDescription() {\n\t\tif (this.interactive) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst valueState = this._valueState;\n\t\tlet description = Tag.i18nBundle.getText(TAG_DESCRIPTION_TAG);\n\n\t\tif (valueState) {\n\t\t\tdescription = `${description} ${valueState}`;\n\t\t}\n\n\t\treturn description;\n\t}\n\n\tget _semanticIconName() {\n\t\tif (this.hideStateIcon || this.hasIcon) {\n\t\t\treturn null;\n\t\t}\n\n\t\tswitch (this.design) {\n\t\tcase TagDesign.Neutral:\n\t\t\treturn \"sys-help-2\";\n\t\tcase TagDesign.Positive:\n\t\t\treturn \"sys-enter-2\";\n\t\tcase TagDesign.Negative:\n\t\t\treturn \"error\";\n\t\tcase TagDesign.Critical:\n\t\t\treturn \"alert\";\n\t\tcase TagDesign.Information:\n\t\t\treturn \"information\";\n\t\tdefault:\n\t\t\treturn null;\n\t\t}\n\t}\n\n\t_onclick() {\n\t\tthis.fireDecoratorEvent(\"click\");\n\t}\n}\n\nTag.define();\n\nexport default Tag;\n"]}
|
|
1
|
+
{"version":3,"file":"Tag.js","sourceRoot":"","sources":["../src/Tag.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport willShowContent from \"@ui5/webcomponents-base/dist/util/willShowContent.js\";\nimport {\n\tisDesktop,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type { IIcon } from \"./Icon.js\";\nimport Icon from \"./Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/sys-help-2.js\";\nimport \"@ui5/webcomponents-icons/dist/sys-enter-2.js\";\nimport \"@ui5/webcomponents-icons/dist/error.js\";\nimport \"@ui5/webcomponents-icons/dist/alert.js\";\nimport \"@ui5/webcomponents-icons/dist/information.js\";\nimport type WrappingType from \"./types/WrappingType.js\";\nimport TagDesign from \"./types/TagDesign.js\";\nimport type TagSize from \"./types/TagSize.js\";\n// Template\nimport TagTemplate from \"./generated/templates/TagTemplate.lit.js\";\n\nimport {\n\tTAG_DESCRIPTION_TAG,\n\tTAG_ROLE_DESCRIPTION,\n\tTAG_ERROR,\n\tTAG_WARNING,\n\tTAG_SUCCESS,\n\tTAG_INFORMATION,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport tagCss from \"./generated/themes/Tag.css.js\";\n\n/**\n * @class\n * ### Overview\n *\n * The `ui5-tag` is a component which serves\n * the purpose to attract the user attention to some piece\n * of information (state, quantity, condition, etc.).\n * It can contain icon and text information, and its design can be chosen from specific design types.\n *\n * ### Usage Guidelines\n *\n * - If the text is longer than the width of the component, it can wrap, or it can show ellipsis, depending on the `wrappingType` property.\n * - Colors can be semantic or not semantic.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Tag.js\";`\n * @constructor\n * @extends UI5Element\n * @since 2.0.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-tag\",\n\tlanguageAware: true,\n\trenderer: litRender,\n\ttemplate: TagTemplate,\n\tstyles: tagCss,\n\tdependencies: [\n\t\tIcon,\n\t],\n})\n\n/**\n * Fired when the user clicks on an interactive tag.\n *\n * **Note:** The event will be fired if the `interactive` property is `true`\n * @public\n * @since 1.22.0\n */\n@event(\"click\", {\n\tbubbles: true,\n})\nclass Tag extends UI5Element {\n\teventDetails!: {\n\t\tclick: void;\n\t}\n\t/**\n\t * Defines the design type of the component.\n\t * @default \"Neutral\"\n\t * @public\n\t * @since 1.22.0\n\t */\n\t@property()\n\tdesign: `${TagDesign}` = \"Neutral\"\n\n\t/**\n\t * Defines the color scheme of the component.\n\t * There are 10 predefined schemes.\n\t * To use one you can set a number from `\"1\"` to `\"10\"`. The `colorScheme` `\"1\"` will be set by default.\n\t * @default \"1\"\n\t * @public\n\t */\n\t@property()\n\tcolorScheme = \"1\";\n\n\t/**\n\t * Defines if the default state icon is shown.\n\t * @default false\n\t * @public\n\t * @since 1.22.0\n\t */\n\t@property({ type: Boolean })\n\thideStateIcon = false;\n\n\t/**\n\t * Defines if the component is interactive (focusable and pressable).\n\t *\n\t * @default false\n\t * @public\n\t * @since 1.22.0\n\t */\n\t@property({ type: Boolean })\n\tinteractive = false;\n\n\t/**\n\t * Defines how the text of a component will be displayed when there is not enough space.\n\t *\n\t * **Note:** For option \"Normal\" the text will wrap and the\n\t * words will not be broken based on hyphenation.\n\t * @default \"Normal\"\n\t * @public\n\t * @since 1.22.0\n\t */\n\t@property()\n\twrappingType: `${WrappingType}` = \"Normal\";\n\n\t/**\n\t * Defines predefined size of the component.\n\t * @default \"S\"\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@property()\n\tsize: `${TagSize}` = \"S\";\n\n\t/**\n\t * Defines if the tag has an icon.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_hasIcon = false;\n\n\t/**\n\t * Defines if the tag has only an icon (and no text).\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_iconOnly = false;\n\n\t/**\n\t * Defines the text of the component.\n\t *\n\t * **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n\t * @public\n\t */\n\t@slot({ type: Node, \"default\": true })\n\ttext!: Array<Node>;\n\n\t/**\n\t * Defines the icon to be displayed in the component.\n\t * @public\n\t */\n\t@slot()\n\ticon!: Array<IIcon>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tonEnterDOM() {\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._hasIcon = this.hasIcon || !!this._semanticIconName;\n\t\tthis._iconOnly = this.iconOnly;\n\t}\n\n\tget _roleDescription() {\n\t\treturn Tag.i18nBundle.getText(TAG_ROLE_DESCRIPTION);\n\t}\n\n\tget _valueState() {\n\t\tswitch (this.design) {\n\t\tcase TagDesign.Positive:\n\t\t\treturn Tag.i18nBundle.getText(TAG_SUCCESS);\n\t\tcase TagDesign.Negative:\n\t\t\treturn Tag.i18nBundle.getText(TAG_ERROR);\n\t\tcase TagDesign.Critical:\n\t\t\treturn Tag.i18nBundle.getText(TAG_WARNING);\n\t\tcase TagDesign.Information:\n\t\t\treturn Tag.i18nBundle.getText(TAG_INFORMATION);\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget hasText() {\n\t\treturn willShowContent(this.text);\n\t}\n\n\tget hasIcon() {\n\t\treturn !!this.icon.length;\n\t}\n\n\tget iconOnly() {\n\t\treturn this.hasIcon && !this.hasText;\n\t}\n\n\tget _title() {\n\t\treturn this.title || undefined;\n\t}\n\n\tget tagDescription() {\n\t\tif (this.interactive) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst valueState = this._valueState;\n\t\tlet description = Tag.i18nBundle.getText(TAG_DESCRIPTION_TAG);\n\n\t\tif (valueState) {\n\t\t\tdescription = `${description} ${valueState}`;\n\t\t}\n\n\t\treturn description;\n\t}\n\n\tget _semanticIconName() {\n\t\tif (this.hideStateIcon || this.hasIcon) {\n\t\t\treturn null;\n\t\t}\n\n\t\tswitch (this.design) {\n\t\tcase TagDesign.Neutral:\n\t\t\treturn \"sys-help-2\";\n\t\tcase TagDesign.Positive:\n\t\t\treturn \"sys-enter-2\";\n\t\tcase TagDesign.Negative:\n\t\t\treturn \"error\";\n\t\tcase TagDesign.Critical:\n\t\t\treturn \"alert\";\n\t\tcase TagDesign.Information:\n\t\t\treturn \"information\";\n\t\tdefault:\n\t\t\treturn null;\n\t\t}\n\t}\n\n\t_onclick() {\n\t\tthis.fireDecoratorEvent(\"click\");\n\t}\n}\n\nTag.define();\n\nexport default Tag;\n"]}
|