@ui5/webcomponents 0.0.0-323968e1b → 0.0.0-4180fe799
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 +717 -1
- package/README.md +144 -41
- package/csp.js +7 -0
- package/customI18n.js +50 -0
- package/dist/Assets-static.js +6 -0
- package/dist/Assets.js +3 -2
- package/dist/Avatar.js +224 -40
- package/dist/AvatarGroup.js +603 -0
- package/dist/Badge.js +48 -28
- package/dist/Breadcrumbs.js +563 -0
- package/dist/BreadcrumbsItem.js +109 -0
- package/dist/BusyIndicator.js +172 -19
- package/dist/Button.js +180 -49
- package/dist/Calendar.js +345 -554
- package/dist/CalendarDate.js +45 -0
- package/dist/CalendarHeader.js +133 -64
- package/dist/CalendarPart.js +111 -0
- package/dist/Card.js +47 -161
- package/dist/CardHeader.js +288 -0
- package/dist/Carousel.js +681 -0
- package/dist/CheckBox.js +154 -54
- package/dist/ColorPalette.js +493 -0
- package/dist/ColorPaletteItem.js +137 -0
- package/dist/ColorPalettePopover.js +219 -0
- package/dist/ColorPicker.js +524 -0
- package/dist/ComboBox.js +664 -107
- package/dist/ComboBoxFilters.js +8 -1
- package/dist/ComboBoxGroupItem.js +70 -0
- package/dist/ComboBoxItem.js +33 -30
- package/dist/CustomListItem.js +38 -9
- package/dist/DateComponentBase.js +170 -0
- package/dist/DatePicker.js +468 -384
- package/dist/DateRangePicker.js +328 -0
- package/dist/DateTimePicker.js +430 -0
- package/dist/DayPicker.js +513 -438
- package/dist/Dialog.js +501 -47
- package/dist/DurationPicker.js +312 -0
- package/dist/FileUploader.js +532 -0
- package/dist/GroupHeaderListItem.js +36 -8
- package/dist/Icon.js +221 -43
- package/dist/Input.js +796 -127
- package/dist/Interfaces.js +192 -0
- package/dist/Label.js +27 -12
- package/dist/Link.js +143 -35
- package/dist/List.js +560 -73
- package/dist/ListItem.js +139 -30
- package/dist/ListItemBase.js +53 -9
- package/dist/MessageStrip.js +82 -93
- package/dist/MonthPicker.js +181 -184
- package/dist/MultiComboBox.js +625 -200
- package/dist/MultiComboBoxItem.js +43 -0
- package/dist/MultiInput.js +301 -0
- package/dist/Option.js +48 -5
- package/dist/Panel.js +123 -41
- package/dist/Popover.js +314 -234
- package/dist/Popup.js +382 -287
- package/dist/ProgressIndicator.js +235 -0
- package/dist/RadioButton.js +153 -66
- package/dist/RadioButtonGroup.js +53 -29
- package/dist/RangeSlider.js +769 -0
- package/dist/RatingIndicator.js +291 -0
- package/dist/ResponsivePopover.js +117 -61
- package/dist/SegmentedButton.js +290 -0
- package/dist/SegmentedButtonItem.js +109 -0
- package/dist/Select.js +500 -110
- package/dist/Slider.js +320 -0
- package/dist/SliderBase.js +842 -0
- package/dist/StandardListItem.js +46 -24
- package/dist/StepInput.js +684 -0
- package/dist/SuggestionGroupItem.js +64 -0
- package/dist/SuggestionItem.js +146 -0
- package/dist/SuggestionListItem.js +76 -0
- package/dist/Switch.js +62 -48
- package/dist/Tab.js +184 -18
- package/dist/TabContainer.js +337 -235
- package/dist/TabSeparator.js +2 -1
- package/dist/Table.js +492 -39
- package/dist/TableCell.js +13 -15
- package/dist/TableColumn.js +18 -7
- package/dist/TableGroupRow.js +160 -0
- package/dist/TableRow.js +254 -31
- package/dist/TextArea.js +314 -38
- package/dist/TimePicker.js +166 -0
- package/dist/TimePickerBase.js +463 -0
- package/dist/TimeSelection.js +493 -0
- package/dist/Title.js +18 -10
- package/dist/Toast.js +63 -37
- package/dist/ToggleButton.js +21 -13
- package/dist/Token.js +87 -49
- package/dist/Tokenizer.js +250 -65
- package/dist/Tree.js +443 -0
- package/dist/TreeItem.js +168 -0
- package/dist/TreeListItem.js +332 -0
- package/dist/WheelSlider.js +435 -0
- package/dist/YearPicker.js +201 -258
- package/dist/api.json +6877 -0
- package/dist/features/ColorPaletteMoreColors.js +42 -0
- package/dist/features/InputElementsFormSupport.js +35 -1
- package/dist/features/InputSuggestions.js +294 -52
- 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_cs.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cy.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -0
- 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 -0
- 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_in.json +1 -0
- 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_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 -0
- 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_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_belize/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -0
- 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 -0
- package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -0
- package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -0
- package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -0
- package/dist/generated/i18n/i18n-defaults.js +2 -2
- package/dist/generated/json-imports/Themes-static.js +35 -0
- package/dist/generated/json-imports/Themes.js +23 -13
- package/dist/generated/json-imports/i18n-static.js +162 -0
- package/dist/generated/json-imports/i18n.js +113 -89
- package/dist/generated/templates/AvatarGroupTemplate.lit.js +9 -0
- package/dist/generated/templates/AvatarTemplate.lit.js +9 -9
- package/dist/generated/templates/BadgeTemplate.lit.js +5 -6
- package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +8 -0
- package/dist/generated/templates/BreadcrumbsTemplate.lit.js +9 -0
- package/dist/generated/templates/BusyIndicatorTemplate.lit.js +7 -5
- package/dist/generated/templates/ButtonTemplate.lit.js +6 -6
- package/dist/generated/templates/CalendarHeaderTemplate.lit.js +6 -4
- package/dist/generated/templates/CalendarTemplate.lit.js +4 -4
- package/dist/generated/templates/CardHeaderTemplate.lit.js +12 -0
- package/dist/generated/templates/CardTemplate.lit.js +5 -8
- package/dist/generated/templates/CarouselTemplate.lit.js +16 -0
- package/dist/generated/templates/CheckBoxTemplate.lit.js +7 -7
- package/dist/generated/templates/ColorPaletteDialogTemplate.lit.js +7 -0
- package/dist/generated/templates/ColorPaletteItemTemplate.lit.js +7 -0
- package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +8 -0
- package/dist/generated/templates/ColorPaletteTemplate.lit.js +12 -0
- package/dist/generated/templates/ColorPickerTemplate.lit.js +7 -0
- package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +20 -5
- package/dist/generated/templates/ComboBoxTemplate.lit.js +8 -5
- package/dist/generated/templates/CustomListItemTemplate.lit.js +13 -12
- package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +7 -4
- package/dist/generated/templates/DatePickerTemplate.lit.js +6 -5
- package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +12 -0
- package/dist/generated/templates/DayPickerTemplate.lit.js +13 -11
- package/dist/generated/templates/DialogTemplate.lit.js +9 -8
- package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +10 -0
- package/dist/generated/templates/FileUploaderTemplate.lit.js +10 -0
- package/dist/generated/templates/GroupHeaderListItemTemplate.lit.js +4 -4
- package/dist/generated/templates/IconTemplate.lit.js +6 -6
- package/dist/generated/templates/InputPopoverTemplate.lit.js +24 -6
- package/dist/generated/templates/InputTemplate.lit.js +9 -8
- package/dist/generated/templates/LabelTemplate.lit.js +4 -4
- package/dist/generated/templates/LinkTemplate.lit.js +5 -5
- package/dist/generated/templates/ListItemTemplate.lit.js +13 -12
- package/dist/generated/templates/ListTemplate.lit.js +12 -8
- package/dist/generated/templates/MessageStripTemplate.lit.js +6 -22
- package/dist/generated/templates/MonthPickerTemplate.lit.js +6 -6
- package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +23 -7
- package/dist/generated/templates/MultiComboBoxTemplate.lit.js +10 -8
- package/dist/generated/templates/MultiInputTemplate.lit.js +16 -0
- package/dist/generated/templates/PanelTemplate.lit.js +9 -6
- package/dist/generated/templates/PopoverTemplate.lit.js +9 -9
- package/dist/generated/templates/PopupBlockLayerTemplate.lit.js +7 -0
- package/dist/generated/templates/PopupTemplate.lit.js +4 -4
- package/dist/generated/templates/ProgressIndicatorTemplate.lit.js +17 -0
- package/dist/generated/templates/RadioButtonTemplate.lit.js +7 -7
- package/dist/generated/templates/RangeSliderTemplate.lit.js +13 -0
- package/dist/generated/templates/RatingIndicatorTemplate.lit.js +14 -0
- package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +16 -11
- package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +8 -0
- package/dist/generated/templates/SegmentedButtonTemplate.lit.js +7 -0
- package/dist/generated/templates/SelectPopoverTemplate.lit.js +20 -6
- package/dist/generated/templates/SelectTemplate.lit.js +6 -4
- package/dist/generated/templates/SliderBaseTemplate.lit.js +11 -0
- package/dist/generated/templates/SliderTemplate.lit.js +12 -0
- package/dist/generated/templates/StandardListItemTemplate.lit.js +21 -18
- package/dist/generated/templates/StepInputTemplate.lit.js +10 -0
- package/dist/generated/templates/SuggestionListItemTemplate.lit.js +27 -0
- package/dist/generated/templates/SwitchTemplate.lit.js +8 -6
- package/dist/generated/templates/TabContainerPopoverTemplate.lit.js +6 -8
- package/dist/generated/templates/TabContainerTemplate.lit.js +16 -18
- package/dist/generated/templates/TabInOverflowTemplate.lit.js +9 -0
- package/dist/generated/templates/TabInStripTemplate.lit.js +11 -0
- package/dist/generated/templates/TabSeparatorTemplate.lit.js +4 -4
- package/dist/generated/templates/TabTemplate.lit.js +4 -4
- package/dist/generated/templates/TableCellTemplate.lit.js +4 -4
- package/dist/generated/templates/TableColumnTemplate.lit.js +4 -4
- package/dist/generated/templates/TableGroupRowTemplate.lit.js +7 -0
- package/dist/generated/templates/TableRowTemplate.lit.js +12 -6
- package/dist/generated/templates/TableTemplate.lit.js +13 -8
- package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +11 -0
- package/dist/generated/templates/TextAreaTemplate.lit.js +8 -8
- package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +7 -0
- package/dist/generated/templates/TimePickerTemplate.lit.js +9 -0
- package/dist/generated/templates/TimeSelectionTemplate.lit.js +11 -0
- package/dist/generated/templates/TitleTemplate.lit.js +10 -10
- package/dist/generated/templates/ToastTemplate.lit.js +5 -4
- package/dist/generated/templates/ToggleButtonTemplate.lit.js +6 -6
- package/dist/generated/templates/TokenTemplate.lit.js +7 -5
- package/dist/generated/templates/TokenizerPopoverTemplate.lit.js +12 -0
- package/dist/generated/templates/TokenizerTemplate.lit.js +6 -6
- package/dist/generated/templates/TreeListItemTemplate.lit.js +21 -0
- package/dist/generated/templates/TreeTemplate.lit.js +8 -0
- package/dist/generated/templates/WheelSliderTemplate.lit.js +10 -0
- package/dist/generated/templates/YearPickerTemplate.lit.js +6 -6
- package/dist/generated/themes/Avatar.css.js +6 -7
- package/dist/generated/themes/AvatarGroup.css.js +8 -0
- package/dist/generated/themes/Badge.css.js +6 -7
- package/dist/generated/themes/Breadcrumbs.css.js +8 -0
- package/dist/generated/themes/BreadcrumbsPopover.css.js +8 -0
- package/dist/generated/themes/BrowserScrollbar.css.js +8 -0
- package/dist/generated/themes/BusyIndicator.css.js +6 -7
- package/dist/generated/themes/Button.css.js +6 -7
- package/dist/generated/themes/Button.ie11.css.js +8 -0
- package/dist/generated/themes/Calendar.css.js +6 -7
- package/dist/generated/themes/CalendarHeader.css.js +6 -7
- package/dist/generated/themes/Card.css.js +6 -7
- package/dist/generated/themes/CardHeader.css.js +8 -0
- package/dist/generated/themes/Carousel.css.js +8 -0
- package/dist/generated/themes/CheckBox.css.js +6 -7
- package/dist/generated/themes/ColorPalette.css.js +8 -0
- package/dist/generated/themes/ColorPaletteItem.css.js +8 -0
- package/dist/generated/themes/ColorPalettePopover.css.js +8 -0
- package/dist/generated/themes/ColorPaletteStaticArea.css.js +8 -0
- package/dist/generated/themes/ColorPicker.css.js +8 -0
- package/dist/generated/themes/ComboBox.css.js +6 -7
- package/dist/generated/themes/ComboBoxPopover.css.js +6 -7
- package/dist/generated/themes/CustomListItem.css.js +6 -7
- package/dist/generated/themes/DatePicker.css.js +6 -7
- package/dist/generated/themes/DatePickerPopover.css.js +6 -7
- package/dist/generated/themes/DateRangePicker.css.js +8 -0
- package/dist/generated/themes/DateTimePicker.css.js +8 -0
- package/dist/generated/themes/DateTimePickerPopover.css.js +8 -0
- package/dist/generated/themes/DayPicker.css.js +6 -7
- package/dist/generated/themes/Dialog.css.js +6 -7
- package/dist/generated/themes/FileUploader.css.js +8 -0
- package/dist/generated/themes/GroupHeaderListItem.css.js +6 -7
- package/dist/generated/themes/GrowingButton.css.js +8 -0
- package/dist/generated/themes/Icon.css.js +6 -7
- package/dist/generated/themes/Input.css.js +6 -7
- package/dist/generated/themes/InputIcon.css.js +6 -7
- package/dist/generated/themes/InvisibleTextStyles.css.js +6 -7
- package/dist/generated/themes/Label.css.js +6 -7
- package/dist/generated/themes/Link.css.js +6 -7
- package/dist/generated/themes/List.css.js +6 -7
- package/dist/generated/themes/ListItem.css.js +6 -7
- package/dist/generated/themes/ListItemBase.css.js +6 -7
- package/dist/generated/themes/MessageStrip.css.js +6 -7
- package/dist/generated/themes/MonthPicker.css.js +6 -7
- package/dist/generated/themes/MultiComboBox.css.js +6 -7
- package/dist/generated/themes/MultiInput.css.js +8 -0
- package/dist/generated/themes/Panel.css.js +6 -7
- package/dist/generated/themes/Popover.css.js +6 -7
- package/dist/generated/themes/Popup.css.js +6 -7
- package/dist/generated/themes/PopupGlobal.css.js +8 -0
- package/dist/generated/themes/PopupStaticAreaStyles.css.js +8 -0
- package/dist/generated/themes/PopupsCommon.css.js +8 -0
- package/dist/generated/themes/ProgressIndicator.css.js +8 -0
- package/dist/generated/themes/RadioButton.css.js +6 -7
- package/dist/generated/themes/RatingIndicator.css.js +8 -0
- package/dist/generated/themes/ResponsivePopover.css.js +6 -7
- package/dist/generated/themes/ResponsivePopoverCommon.css.js +6 -7
- package/dist/generated/themes/SegmentedButton.css.js +8 -0
- package/dist/generated/themes/Select.css.js +6 -7
- package/dist/generated/themes/SelectPopover.css.js +8 -0
- package/dist/generated/themes/SliderBase.css.js +8 -0
- package/dist/generated/themes/StepInput.css.js +8 -0
- package/dist/generated/themes/Suggestions.css.js +8 -0
- package/dist/generated/themes/Switch.css.js +6 -7
- package/dist/generated/themes/Tab.css.js +6 -7
- package/dist/generated/themes/TabContainer.css.js +6 -7
- package/dist/generated/themes/TabInOverflow.css.js +8 -0
- package/dist/generated/themes/TabInStrip.css.js +8 -0
- package/dist/generated/themes/Table.css.js +6 -7
- package/dist/generated/themes/TableCell.css.js +6 -7
- package/dist/generated/themes/TableColumn.css.js +6 -7
- package/dist/generated/themes/TableGroupRow.css.js +8 -0
- package/dist/generated/themes/TableRow.css.js +6 -7
- package/dist/generated/themes/TapHighlightColor.css.js +8 -0
- package/dist/generated/themes/TextArea.css.js +6 -7
- package/dist/generated/themes/TimePicker.css.js +8 -0
- package/dist/generated/themes/TimePickerPopover.css.js +8 -0
- package/dist/generated/themes/TimeSelection.css.js +8 -0
- package/dist/generated/themes/Title.css.js +6 -7
- package/dist/generated/themes/Toast.css.js +6 -7
- package/dist/generated/themes/ToggleButton.css.js +6 -7
- package/dist/generated/themes/ToggleButton.ie11.css.js +8 -0
- package/dist/generated/themes/Token.css.js +6 -7
- package/dist/generated/themes/Tokenizer.css.js +6 -7
- package/dist/generated/themes/Tree.css.js +8 -0
- package/dist/generated/themes/TreeListItem.css.js +8 -0
- package/dist/generated/themes/ValueStateMessage.css.js +8 -0
- package/dist/generated/themes/WheelSlider.css.js +8 -0
- package/dist/generated/themes/YearPicker.css.js +6 -7
- package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -0
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -0
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -0
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -0
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -0
- package/dist/i18n/messagebundle.properties +335 -0
- package/dist/i18n/messagebundle_ar.properties +224 -0
- package/dist/i18n/messagebundle_bg.properties +224 -0
- package/dist/i18n/messagebundle_ca.properties +224 -0
- package/dist/i18n/messagebundle_cs.properties +224 -0
- package/dist/i18n/messagebundle_cy.properties +224 -0
- package/dist/i18n/messagebundle_da.properties +224 -0
- package/dist/i18n/messagebundle_de.properties +224 -0
- package/dist/i18n/messagebundle_el.properties +224 -0
- package/dist/i18n/messagebundle_en.properties +224 -0
- package/dist/i18n/messagebundle_en_GB.properties +224 -0
- package/dist/i18n/messagebundle_en_US_sappsd.properties +224 -0
- package/dist/i18n/messagebundle_en_US_saprigi.properties +224 -0
- package/dist/i18n/messagebundle_en_US_saptrc.properties +224 -0
- package/dist/i18n/messagebundle_es.properties +224 -0
- package/dist/i18n/messagebundle_es_MX.properties +224 -0
- package/dist/i18n/messagebundle_et.properties +224 -0
- package/dist/i18n/messagebundle_fi.properties +224 -0
- package/dist/i18n/messagebundle_fr.properties +224 -0
- package/dist/i18n/messagebundle_fr_CA.properties +224 -0
- package/dist/i18n/messagebundle_hi.properties +224 -0
- package/dist/i18n/messagebundle_hr.properties +224 -0
- package/dist/i18n/messagebundle_hu.properties +224 -0
- package/dist/i18n/messagebundle_id.properties +224 -0
- package/dist/i18n/messagebundle_in.properties +172 -0
- package/dist/i18n/messagebundle_it.properties +224 -0
- package/dist/i18n/messagebundle_iw.properties +224 -0
- package/dist/i18n/messagebundle_ja.properties +224 -0
- package/dist/i18n/messagebundle_kk.properties +224 -0
- package/dist/i18n/messagebundle_ko.properties +224 -0
- package/dist/i18n/messagebundle_lt.properties +224 -0
- package/dist/i18n/messagebundle_lv.properties +224 -0
- package/dist/i18n/messagebundle_ms.properties +224 -0
- package/dist/i18n/messagebundle_nl.properties +224 -0
- package/dist/i18n/messagebundle_no.properties +224 -0
- package/dist/i18n/messagebundle_pl.properties +224 -0
- package/dist/i18n/messagebundle_pt.properties +224 -0
- package/dist/i18n/messagebundle_pt_PT.properties +224 -0
- package/dist/i18n/messagebundle_ro.properties +224 -0
- package/dist/i18n/messagebundle_ru.properties +224 -0
- package/dist/i18n/messagebundle_sh.properties +224 -0
- package/dist/i18n/messagebundle_sk.properties +224 -0
- package/dist/i18n/messagebundle_sl.properties +224 -0
- package/dist/i18n/messagebundle_sv.properties +224 -0
- package/dist/i18n/messagebundle_th.properties +224 -0
- package/dist/i18n/messagebundle_tr.properties +224 -0
- package/dist/i18n/messagebundle_uk.properties +224 -0
- package/dist/i18n/messagebundle_vi.properties +224 -0
- package/dist/i18n/messagebundle_zh_CN.properties +224 -0
- package/dist/i18n/messagebundle_zh_TW.properties +224 -0
- package/dist/popup-utils/OpenedPopupsRegistry.js +18 -13
- package/dist/popup-utils/PopoverRegistry.js +55 -21
- package/dist/timepicker-utils/TimeSlider.js +103 -0
- package/dist/types/{AvatarBackgroundColor.js → AvatarColorScheme.js} +9 -9
- package/dist/types/AvatarGroupType.js +43 -0
- package/dist/types/AvatarShape.js +1 -1
- package/dist/types/AvatarSize.js +1 -1
- package/dist/types/BreadcrumbsDesign.js +42 -0
- package/dist/types/BreadcrumbsSeparatorStyle.js +69 -0
- package/dist/types/BusyIndicatorSize.js +1 -1
- package/dist/types/ButtonDesign.js +8 -1
- package/dist/types/CalendarSelectionMode.js +47 -0
- package/dist/types/CarouselArrowsPlacement.js +40 -0
- package/dist/types/GrowingMode.js +48 -0
- package/dist/types/InputType.js +7 -7
- package/dist/types/LinkDesign.js +1 -1
- package/dist/types/ListGrowingMode.js +15 -0
- package/dist/types/ListItemType.js +8 -1
- package/dist/types/ListMode.js +9 -1
- package/dist/types/ListSeparators.js +1 -1
- package/dist/types/{MessageStripType.js → MessageStripDesign.js} +7 -7
- package/dist/types/PanelAccessibleRole.js +1 -1
- package/dist/types/PopoverHorizontalAlign.js +1 -1
- package/dist/types/PopoverPlacementType.js +2 -2
- package/dist/types/PopoverVerticalAlign.js +1 -2
- package/dist/types/Priority.js +55 -0
- package/dist/types/SemanticColor.js +1 -1
- package/dist/types/SwitchDesign.js +40 -0
- package/dist/types/TabContainerTabsPlacement.js +40 -0
- package/dist/types/TabLayout.js +40 -0
- package/dist/types/TableGrowingMode.js +15 -0
- package/dist/types/TableMode.js +47 -0
- package/dist/types/TableRowType.js +40 -0
- package/dist/types/TitleLevel.js +1 -1
- package/dist/types/ToastPlacement.js +1 -2
- package/dist/types/WrappingType.js +41 -0
- package/dist/webcomponentsjs/CHANGELOG.md +61 -0
- package/dist/webcomponentsjs/README.md +64 -47
- package/dist/webcomponentsjs/bundles/webcomponents-ce.js +38 -38
- package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +1 -1
- package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js +60 -0
- package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js.map +1 -0
- package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js +95 -0
- package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js.map +1 -0
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +292 -229
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +1 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +190 -170
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +1 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd.js +151 -132
- package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +1 -1
- package/dist/webcomponentsjs/custom-elements-es5-adapter.js +2 -2
- package/dist/webcomponentsjs/webcomponents-bundle.js +302 -230
- package/dist/webcomponentsjs/webcomponents-bundle.js.map +1 -1
- package/dist/webcomponentsjs/webcomponents-loader.js +49 -28
- package/package-scripts.js +1 -0
- package/package.json +23 -8
- package/src/Assets-static.js +6 -0
- package/src/Assets.js +7 -0
- package/src/Avatar.hbs +20 -0
- package/src/Avatar.js +392 -0
- package/src/AvatarGroup.hbs +30 -0
- package/src/AvatarGroup.js +603 -0
- package/src/Badge.hbs +14 -0
- package/src/Badge.js +165 -0
- package/src/Breadcrumbs.hbs +42 -0
- package/src/Breadcrumbs.js +563 -0
- package/src/BreadcrumbsItem.js +109 -0
- package/src/BreadcrumbsPopover.hbs +28 -0
- package/src/BusyIndicator.hbs +32 -0
- package/src/BusyIndicator.js +269 -0
- package/src/Button.hbs +45 -0
- package/src/Button.js +463 -0
- package/src/Calendar.hbs +69 -0
- package/src/Calendar.js +489 -0
- package/src/CalendarDate.js +45 -0
- package/src/CalendarHeader.hbs +54 -0
- package/src/CalendarHeader.js +209 -0
- package/src/CalendarPart.js +111 -0
- package/src/Card.hbs +14 -0
- package/src/Card.js +160 -0
- package/src/CardHeader.hbs +35 -0
- package/src/CardHeader.js +288 -0
- package/src/Carousel.hbs +85 -0
- package/src/Carousel.js +681 -0
- package/src/CheckBox.hbs +44 -0
- package/src/CheckBox.js +424 -0
- package/src/ColorPalette.hbs +52 -0
- package/src/ColorPalette.js +493 -0
- package/src/ColorPaletteDialog.hbs +18 -0
- package/src/ColorPaletteItem.hbs +11 -0
- package/src/ColorPaletteItem.js +137 -0
- package/src/ColorPalettePopover.hbs +29 -0
- package/src/ColorPalettePopover.js +219 -0
- package/src/ColorPicker.hbs +98 -0
- package/src/ColorPicker.js +524 -0
- package/src/ComboBox.hbs +49 -0
- package/src/ComboBox.js +1041 -0
- package/src/ComboBoxFilters.js +40 -0
- package/src/ComboBoxGroupItem.js +70 -0
- package/src/ComboBoxItem.js +49 -0
- package/src/ComboBoxPopover.hbs +125 -0
- package/src/CustomListItem.hbs +5 -0
- package/src/CustomListItem.js +99 -0
- package/src/DateComponentBase.js +170 -0
- package/src/DatePicker.hbs +44 -0
- package/src/DatePicker.js +823 -0
- package/src/DatePickerPopover.hbs +63 -0
- package/src/DateRangePicker.js +328 -0
- package/src/DateTimePicker.js +430 -0
- package/src/DateTimePickerPopover.hbs +74 -0
- package/src/DayPicker.hbs +66 -0
- package/src/DayPicker.js +754 -0
- package/src/Dialog.hbs +35 -0
- package/src/Dialog.js +601 -0
- package/src/DurationPicker.js +312 -0
- package/src/FileUploader.hbs +40 -0
- package/src/FileUploader.js +532 -0
- package/src/FileUploaderPopover.hbs +25 -0
- package/src/GroupHeaderListItem.hbs +15 -0
- package/src/GroupHeaderListItem.js +94 -0
- package/src/Icon.hbs +25 -0
- package/src/Icon.js +373 -0
- package/src/Input.hbs +78 -0
- package/src/Input.js +1381 -0
- package/src/InputPopover.hbs +118 -0
- package/src/Interfaces.js +192 -0
- package/src/Label.hbs +13 -0
- package/src/Label.js +152 -0
- package/src/Link.hbs +20 -0
- package/src/Link.js +349 -0
- package/src/List.hbs +89 -0
- package/src/List.js +1056 -0
- package/src/ListItem.hbs +102 -0
- package/src/ListItem.js +371 -0
- package/src/ListItemBase.js +179 -0
- package/src/MessageStrip.hbs +34 -0
- package/src/MessageStrip.js +227 -0
- package/src/MonthPicker.hbs +29 -0
- package/src/MonthPicker.js +299 -0
- package/src/MultiComboBox.hbs +78 -0
- package/src/MultiComboBox.js +1091 -0
- package/src/MultiComboBoxItem.js +43 -0
- package/src/MultiComboBoxPopover.hbs +133 -0
- package/src/MultiInput.hbs +41 -0
- package/src/MultiInput.js +301 -0
- package/src/Option.js +115 -0
- package/src/Panel.hbs +63 -0
- package/src/Panel.js +462 -0
- package/src/Popover.hbs +25 -0
- package/src/Popover.js +786 -0
- package/src/Popup.hbs +34 -0
- package/src/Popup.js +567 -0
- package/src/PopupBlockLayer.hbs +7 -0
- package/src/ProgressIndicator.hbs +35 -0
- package/src/ProgressIndicator.js +235 -0
- package/src/RadioButton.hbs +33 -0
- package/src/RadioButton.js +494 -0
- package/src/RadioButtonGroup.js +205 -0
- package/src/RangeSlider.hbs +70 -0
- package/src/RangeSlider.js +769 -0
- package/src/RatingIndicator.hbs +33 -0
- package/src/RatingIndicator.js +291 -0
- package/src/ResponsivePopover.hbs +39 -0
- package/src/ResponsivePopover.js +206 -0
- package/src/SegmentedButton.hbs +17 -0
- package/src/SegmentedButton.js +290 -0
- package/src/SegmentedButtonItem.hbs +42 -0
- package/src/SegmentedButtonItem.js +109 -0
- package/src/Select.hbs +45 -0
- package/src/Select.js +834 -0
- package/src/SelectPopover.hbs +89 -0
- package/src/Slider.hbs +42 -0
- package/src/Slider.js +320 -0
- package/src/SliderBase.hbs +38 -0
- package/src/SliderBase.js +842 -0
- package/src/StandardListItem.hbs +44 -0
- package/src/StandardListItem.js +191 -0
- package/src/StepInput.hbs +80 -0
- package/src/StepInput.js +684 -0
- package/src/SuggestionGroupItem.js +64 -0
- package/src/SuggestionItem.js +146 -0
- package/src/SuggestionListItem.hbs +33 -0
- package/src/SuggestionListItem.js +76 -0
- package/src/Switch.hbs +50 -0
- package/src/Switch.js +262 -0
- package/src/Tab.hbs +3 -0
- package/src/Tab.js +334 -0
- package/src/TabContainer.hbs +93 -0
- package/src/TabContainer.js +679 -0
- package/src/TabContainerPopover.hbs +24 -0
- package/src/TabInOverflow.hbs +22 -0
- package/src/TabInStrip.hbs +43 -0
- package/src/TabSeparator.hbs +1 -0
- package/src/TabSeparator.js +44 -0
- package/src/Table.hbs +99 -0
- package/src/Table.js +761 -0
- package/src/TableCell.hbs +7 -0
- package/src/TableCell.js +88 -0
- package/src/TableColumn.hbs +8 -0
- package/src/TableColumn.js +136 -0
- package/src/TableGroupRow.hbs +12 -0
- package/src/TableGroupRow.js +160 -0
- package/src/TableRow.hbs +61 -0
- package/src/TableRow.js +388 -0
- package/src/TextArea.hbs +50 -0
- package/src/TextArea.js +691 -0
- package/src/TextAreaPopover.hbs +28 -0
- package/src/TimePicker.hbs +35 -0
- package/src/TimePicker.js +166 -0
- package/src/TimePickerBase.js +463 -0
- package/src/TimePickerPopover.hbs +34 -0
- package/src/TimeSelection.hbs +60 -0
- package/src/TimeSelection.js +493 -0
- package/src/Title.hbs +47 -0
- package/src/Title.js +132 -0
- package/src/Toast.hbs +13 -0
- package/src/Toast.js +243 -0
- package/src/ToggleButton.hbs +5 -0
- package/src/ToggleButton.js +84 -0
- package/src/Token.hbs +30 -0
- package/src/Token.js +219 -0
- package/src/Tokenizer.hbs +27 -0
- package/src/Tokenizer.js +414 -0
- package/src/TokenizerPopover.hbs +50 -0
- package/src/Tree.hbs +42 -0
- package/src/Tree.js +443 -0
- package/src/TreeItem.js +168 -0
- package/src/TreeListItem.hbs +48 -0
- package/src/TreeListItem.js +332 -0
- package/src/WheelSlider.hbs +48 -0
- package/src/WheelSlider.js +435 -0
- package/src/YearPicker.hbs +27 -0
- package/src/YearPicker.js +324 -0
- package/src/features/ColorPaletteMoreColors.js +42 -0
- package/src/features/InputElementsFormSupport.js +88 -0
- package/src/features/InputSuggestions.js +530 -0
- package/src/i18n/messagebundle.properties +335 -0
- package/src/i18n/messagebundle_ar.properties +224 -0
- package/src/i18n/messagebundle_bg.properties +224 -0
- package/src/i18n/messagebundle_ca.properties +224 -0
- package/src/i18n/messagebundle_cs.properties +224 -0
- package/src/i18n/messagebundle_cy.properties +224 -0
- package/src/i18n/messagebundle_da.properties +224 -0
- package/src/i18n/messagebundle_de.properties +224 -0
- package/src/i18n/messagebundle_el.properties +224 -0
- package/src/i18n/messagebundle_en.properties +224 -0
- package/src/i18n/messagebundle_en_GB.properties +224 -0
- package/src/i18n/messagebundle_en_US_sappsd.properties +224 -0
- package/src/i18n/messagebundle_en_US_saprigi.properties +224 -0
- package/src/i18n/messagebundle_en_US_saptrc.properties +224 -0
- package/src/i18n/messagebundle_es.properties +224 -0
- package/src/i18n/messagebundle_es_MX.properties +224 -0
- package/src/i18n/messagebundle_et.properties +224 -0
- package/src/i18n/messagebundle_fi.properties +224 -0
- package/src/i18n/messagebundle_fr.properties +224 -0
- package/src/i18n/messagebundle_fr_CA.properties +224 -0
- package/src/i18n/messagebundle_hi.properties +224 -0
- package/src/i18n/messagebundle_hr.properties +224 -0
- package/src/i18n/messagebundle_hu.properties +224 -0
- package/src/i18n/messagebundle_id.properties +224 -0
- package/src/i18n/messagebundle_in.properties +172 -0
- package/src/i18n/messagebundle_it.properties +224 -0
- package/src/i18n/messagebundle_iw.properties +224 -0
- package/src/i18n/messagebundle_ja.properties +224 -0
- package/src/i18n/messagebundle_kk.properties +224 -0
- package/src/i18n/messagebundle_ko.properties +224 -0
- package/src/i18n/messagebundle_lt.properties +224 -0
- package/src/i18n/messagebundle_lv.properties +224 -0
- package/src/i18n/messagebundle_ms.properties +224 -0
- package/src/i18n/messagebundle_nl.properties +224 -0
- package/src/i18n/messagebundle_no.properties +224 -0
- package/src/i18n/messagebundle_pl.properties +224 -0
- package/src/i18n/messagebundle_pt.properties +224 -0
- package/src/i18n/messagebundle_pt_PT.properties +224 -0
- package/src/i18n/messagebundle_ro.properties +224 -0
- package/src/i18n/messagebundle_ru.properties +224 -0
- package/src/i18n/messagebundle_sh.properties +224 -0
- package/src/i18n/messagebundle_sk.properties +224 -0
- package/src/i18n/messagebundle_sl.properties +224 -0
- package/src/i18n/messagebundle_sv.properties +224 -0
- package/src/i18n/messagebundle_th.properties +224 -0
- package/src/i18n/messagebundle_tr.properties +224 -0
- package/src/i18n/messagebundle_uk.properties +224 -0
- package/src/i18n/messagebundle_vi.properties +224 -0
- package/src/i18n/messagebundle_zh_CN.properties +224 -0
- package/src/i18n/messagebundle_zh_TW.properties +224 -0
- package/src/popup-utils/OpenedPopupsRegistry.js +50 -0
- package/src/popup-utils/PopoverRegistry.js +145 -0
- package/src/timepicker-utils/TimeSlider.js +103 -0
- package/src/types/AvatarColorScheme.js +104 -0
- package/src/types/AvatarGroupType.js +43 -0
- package/src/types/AvatarShape.js +41 -0
- package/src/types/AvatarSize.js +67 -0
- package/src/types/BreadcrumbsDesign.js +42 -0
- package/src/types/BreadcrumbsSeparatorStyle.js +69 -0
- package/src/types/BusyIndicatorSize.js +47 -0
- package/src/types/ButtonDesign.js +68 -0
- package/src/types/CalendarSelectionMode.js +47 -0
- package/src/types/CarouselArrowsPlacement.js +40 -0
- package/src/types/GrowingMode.js +48 -0
- package/src/types/InputType.js +68 -0
- package/src/types/LinkDesign.js +47 -0
- package/src/types/ListGrowingMode.js +15 -0
- package/src/types/ListItemType.js +47 -0
- package/src/types/ListMode.js +77 -0
- package/src/types/ListSeparators.js +46 -0
- package/src/types/MessageStripDesign.js +54 -0
- package/src/types/PanelAccessibleRole.js +48 -0
- package/src/types/PopoverHorizontalAlign.js +54 -0
- package/src/types/PopoverPlacementType.js +54 -0
- package/src/types/PopoverVerticalAlign.js +54 -0
- package/src/types/Priority.js +55 -0
- package/src/types/SemanticColor.js +61 -0
- package/src/types/SwitchDesign.js +40 -0
- package/src/types/TabContainerTabsPlacement.js +40 -0
- package/src/types/TabLayout.js +40 -0
- package/src/types/TableGrowingMode.js +15 -0
- package/src/types/TableMode.js +47 -0
- package/src/types/TableRowType.js +40 -0
- package/src/types/TitleLevel.js +68 -0
- package/src/types/ToastPlacement.js +91 -0
- package/src/types/WrappingType.js +41 -0
- package/dist/Timeline.js +0 -81
- package/dist/TimelineItem.js +0 -163
- package/dist/generated/templates/ComboBoxItemTemplate.lit.js +0 -7
- package/dist/generated/templates/TimelineItemTemplate.lit.js +0 -12
- package/dist/generated/templates/TimelineTemplate.lit.js +0 -8
- package/dist/generated/themes/ComboBoxItem.css.js +0 -9
- package/dist/generated/themes/TabContainerPopup.css.js +0 -9
- package/dist/generated/themes/Timeline.css.js +0 -9
- package/dist/generated/themes/TimelineItem.css.js +0 -9
- package/dist/popup-utils/PopupUtils.js +0 -42
- package/dist/types/AvatarFitType.js +0 -40
- package/dist/webcomponentsjs/package.json +0 -46
- package/index.js +0 -2
package/dist/List.js
CHANGED
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
2
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
3
|
+
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
3
4
|
import ItemNavigation from "@ui5/webcomponents-base/dist/delegate/ItemNavigation.js";
|
|
5
|
+
import { isIE } from "@ui5/webcomponents-base/dist/Device.js";
|
|
6
|
+
import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js";
|
|
4
7
|
import { getLastTabbableElement } from "@ui5/webcomponents-base/dist/util/TabbableElements.js";
|
|
5
|
-
import { isTabNext } from "@ui5/webcomponents-base/dist/
|
|
8
|
+
import { isTabNext, isSpace, isEnter } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
9
|
+
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
|
|
6
10
|
import NavigationMode from "@ui5/webcomponents-base/dist/types/NavigationMode.js";
|
|
11
|
+
import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
|
|
12
|
+
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
13
|
+
import debounce from "@ui5/webcomponents-base/dist/util/debounce.js";
|
|
14
|
+
import isElementInView from "@ui5/webcomponents-base/dist/util/isElementInView.js";
|
|
7
15
|
import ListMode from "./types/ListMode.js";
|
|
16
|
+
import ListGrowingMode from "./types/ListGrowingMode.js";
|
|
8
17
|
import ListSeparators from "./types/ListSeparators.js";
|
|
18
|
+
import BusyIndicator from "./BusyIndicator.js";
|
|
9
19
|
|
|
10
20
|
// Template
|
|
11
21
|
import ListTemplate from "./generated/templates/ListTemplate.lit.js";
|
|
@@ -13,15 +23,28 @@ import ListTemplate from "./generated/templates/ListTemplate.lit.js";
|
|
|
13
23
|
// Styles
|
|
14
24
|
import listCss from "./generated/themes/List.css.js";
|
|
15
25
|
|
|
26
|
+
// Texts
|
|
27
|
+
import {
|
|
28
|
+
LOAD_MORE_TEXT, ARIA_LABEL_LIST_SELECTABLE,
|
|
29
|
+
ARIA_LABEL_LIST_MULTISELECTABLE,
|
|
30
|
+
ARIA_LABEL_LIST_DELETABLE,
|
|
31
|
+
} from "./generated/i18n/i18n-defaults.js";
|
|
32
|
+
|
|
33
|
+
const INFINITE_SCROLL_DEBOUNCE_RATE = 250; // ms
|
|
34
|
+
|
|
35
|
+
const PAGE_UP_DOWN_SIZE = 10;
|
|
36
|
+
|
|
16
37
|
/**
|
|
17
38
|
* @public
|
|
18
39
|
*/
|
|
19
40
|
const metadata = {
|
|
20
41
|
tag: "ui5-list",
|
|
42
|
+
managedSlots: true,
|
|
21
43
|
slots: /** @lends sap.ui.webcomponents.main.List.prototype */ {
|
|
22
44
|
|
|
23
45
|
/**
|
|
24
|
-
* Defines the
|
|
46
|
+
* Defines the component header.
|
|
47
|
+
* <br><br>
|
|
25
48
|
* <b>Note:</b> When <code>header</code> is set, the
|
|
26
49
|
* <code>headerText</code> property is ignored.
|
|
27
50
|
*
|
|
@@ -34,11 +57,12 @@ const metadata = {
|
|
|
34
57
|
},
|
|
35
58
|
|
|
36
59
|
/**
|
|
37
|
-
* Defines the items of the
|
|
38
|
-
* <br><
|
|
60
|
+
* Defines the items of the component.
|
|
61
|
+
* <br><br>
|
|
62
|
+
* <b>Note:</b> Use <code>ui5-li</code>, <code>ui5-li-custom</code>, and <code>ui5-li-groupheader</code> for the intended design.
|
|
39
63
|
*
|
|
40
|
-
* @type {
|
|
41
|
-
* @slot
|
|
64
|
+
* @type {sap.ui.webcomponents.main.IListItem[]}
|
|
65
|
+
* @slot items
|
|
42
66
|
* @public
|
|
43
67
|
*/
|
|
44
68
|
"default": {
|
|
@@ -49,12 +73,12 @@ const metadata = {
|
|
|
49
73
|
properties: /** @lends sap.ui.webcomponents.main.List.prototype */ {
|
|
50
74
|
|
|
51
75
|
/**
|
|
52
|
-
* Defines the
|
|
76
|
+
* Defines the component header text.
|
|
53
77
|
* <br><br>
|
|
54
78
|
* <b>Note:</b> If <code>header</code> is set this property is ignored.
|
|
55
79
|
*
|
|
56
80
|
* @type {string}
|
|
57
|
-
* @defaultvalue
|
|
81
|
+
* @defaultvalue ""
|
|
58
82
|
* @public
|
|
59
83
|
*/
|
|
60
84
|
headerText: {
|
|
@@ -65,7 +89,7 @@ const metadata = {
|
|
|
65
89
|
* Defines the footer text.
|
|
66
90
|
*
|
|
67
91
|
* @type {string}
|
|
68
|
-
* @defaultvalue
|
|
92
|
+
* @defaultvalue ""
|
|
69
93
|
* @public
|
|
70
94
|
*/
|
|
71
95
|
footerText: {
|
|
@@ -73,23 +97,23 @@ const metadata = {
|
|
|
73
97
|
},
|
|
74
98
|
|
|
75
99
|
/**
|
|
76
|
-
* Determines whether the
|
|
100
|
+
* Determines whether the component is indented.
|
|
77
101
|
*
|
|
78
102
|
* @type {boolean}
|
|
79
103
|
* @defaultvalue false
|
|
80
104
|
* @public
|
|
81
105
|
*/
|
|
82
|
-
|
|
106
|
+
indent: {
|
|
83
107
|
type: Boolean,
|
|
84
108
|
},
|
|
85
109
|
|
|
86
110
|
/**
|
|
87
|
-
* Defines the mode of the
|
|
111
|
+
* Defines the mode of the component.
|
|
88
112
|
* <br><br>
|
|
89
|
-
* <b>Note:</b>
|
|
90
|
-
* <code>MultiSelect</code>, and <code>Delete</code>.
|
|
113
|
+
* <b>Note:</b> Available options are <code>None</code>, <code>SingleSelect</code>, <code>SingleSelectBegin</code>,
|
|
114
|
+
* <code>SingleSelectEnd</code>, <code>MultiSelect</code>, and <code>Delete</code>.
|
|
91
115
|
*
|
|
92
|
-
* @type {
|
|
116
|
+
* @type {ListMode}
|
|
93
117
|
* @defaultvalue "None"
|
|
94
118
|
* @public
|
|
95
119
|
*/
|
|
@@ -99,10 +123,10 @@ const metadata = {
|
|
|
99
123
|
},
|
|
100
124
|
|
|
101
125
|
/**
|
|
102
|
-
* Defines the text that is displayed when the
|
|
126
|
+
* Defines the text that is displayed when the component contains no items.
|
|
103
127
|
*
|
|
104
128
|
* @type {string}
|
|
105
|
-
* @defaultvalue
|
|
129
|
+
* @defaultvalue ""
|
|
106
130
|
* @public
|
|
107
131
|
*/
|
|
108
132
|
noDataText: {
|
|
@@ -115,12 +139,12 @@ const metadata = {
|
|
|
115
139
|
* <b>Notes:</b>
|
|
116
140
|
* <ul>
|
|
117
141
|
* <li>Avalaible options are <code>All</code>, <code>Inner</code>, and <code>None</code>.</li>
|
|
118
|
-
* <li>When set to <code>None</code>, none of the items
|
|
142
|
+
* <li>When set to <code>None</code>, none of the items are separated by horizontal lines.</li>
|
|
119
143
|
* <li>When set to <code>Inner</code>, the first item doesn't have a top separator and the last
|
|
120
144
|
* item doesn't have a bottom separator.</li>
|
|
121
145
|
* </ul>
|
|
122
146
|
*
|
|
123
|
-
* @type {
|
|
147
|
+
* @type {ListSeparators}
|
|
124
148
|
* @defaultvalue "All"
|
|
125
149
|
* @public
|
|
126
150
|
*/
|
|
@@ -128,6 +152,111 @@ const metadata = {
|
|
|
128
152
|
type: ListSeparators,
|
|
129
153
|
defaultValue: ListSeparators.All,
|
|
130
154
|
},
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Defines whether the component will have growing capability either by pressing a <code>More</code> button,
|
|
158
|
+
* or via user scroll. In both cases <code>load-more</code> event is fired.
|
|
159
|
+
* <br><br>
|
|
160
|
+
*
|
|
161
|
+
* Available options:
|
|
162
|
+
* <br><br>
|
|
163
|
+
* <code>Button</code> - Shows a <code>More</code> button at the bottom of the list,
|
|
164
|
+
* pressing of which triggers the <code>load-more</code> event.
|
|
165
|
+
* <br>
|
|
166
|
+
* <code>Scroll</code> - The <code>load-more</code> event is triggered when the user scrolls to the bottom of the list;
|
|
167
|
+
* <br>
|
|
168
|
+
* <code>None</code> (default) - The growing is off.
|
|
169
|
+
* <br><br>
|
|
170
|
+
*
|
|
171
|
+
* <b>Limitations:</b> <code>growing="Scroll"</code> is not supported for Internet Explorer,
|
|
172
|
+
* on IE the component will fallback to <code>growing="Button"</code>.
|
|
173
|
+
* @type {ListGrowingMode}
|
|
174
|
+
* @defaultvalue "None"
|
|
175
|
+
* @since 1.0.0-rc.13
|
|
176
|
+
* @public
|
|
177
|
+
*/
|
|
178
|
+
growing: {
|
|
179
|
+
type: ListGrowingMode,
|
|
180
|
+
defaultValue: ListGrowingMode.None,
|
|
181
|
+
},
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Defines if the component would display a loading indicator over the list.
|
|
185
|
+
*
|
|
186
|
+
* @type {boolean}
|
|
187
|
+
* @defaultvalue false
|
|
188
|
+
* @public
|
|
189
|
+
* @since 1.0.0-rc.6
|
|
190
|
+
*/
|
|
191
|
+
busy: {
|
|
192
|
+
type: Boolean,
|
|
193
|
+
},
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Defines the delay in milliseconds, after which the busy indicator will show up for this component.
|
|
197
|
+
*
|
|
198
|
+
* @type {Integer}
|
|
199
|
+
* @defaultValue 1000
|
|
200
|
+
* @public
|
|
201
|
+
*/
|
|
202
|
+
busyDelay: {
|
|
203
|
+
type: Integer,
|
|
204
|
+
defaultValue: 1000,
|
|
205
|
+
},
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Defines the accessible name of the component.
|
|
209
|
+
*
|
|
210
|
+
* @type {String}
|
|
211
|
+
* @defaultvalue ""
|
|
212
|
+
* @public
|
|
213
|
+
* @since 1.0.0-rc.15
|
|
214
|
+
*/
|
|
215
|
+
accessibleName: {
|
|
216
|
+
type: String,
|
|
217
|
+
},
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Defines the IDs of the elements that label the input.
|
|
221
|
+
*
|
|
222
|
+
* @type {String}
|
|
223
|
+
* @defaultvalue ""
|
|
224
|
+
* @public
|
|
225
|
+
* @since 1.0.0-rc.15
|
|
226
|
+
*/
|
|
227
|
+
accessibleNameRef: {
|
|
228
|
+
type: String,
|
|
229
|
+
defaultValue: "",
|
|
230
|
+
},
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* Defines the accessible role of the component.
|
|
234
|
+
* <br><br>
|
|
235
|
+
* @public
|
|
236
|
+
* @type {String}
|
|
237
|
+
* @defaultvalue "list"
|
|
238
|
+
* @since 1.0.0-rc.15
|
|
239
|
+
*/
|
|
240
|
+
accessibleRole: {
|
|
241
|
+
type: String,
|
|
242
|
+
defaultValue: "list",
|
|
243
|
+
},
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* Defines if the entire list is in view port.
|
|
247
|
+
* @private
|
|
248
|
+
*/
|
|
249
|
+
_inViewport: {
|
|
250
|
+
type: Boolean,
|
|
251
|
+
},
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* Defines the active state of the <code>More</code> button.
|
|
255
|
+
* @private
|
|
256
|
+
*/
|
|
257
|
+
_loadMoreActive: {
|
|
258
|
+
type: Boolean,
|
|
259
|
+
},
|
|
131
260
|
},
|
|
132
261
|
events: /** @lends sap.ui.webcomponents.main.List.prototype */ {
|
|
133
262
|
|
|
@@ -135,11 +264,44 @@ const metadata = {
|
|
|
135
264
|
* Fired when an item is activated, unless the item's <code>type</code> property
|
|
136
265
|
* is set to <code>Inactive</code>.
|
|
137
266
|
*
|
|
138
|
-
* @event
|
|
139
|
-
* @param {HTMLElement} item
|
|
267
|
+
* @event sap.ui.webcomponents.main.List#item-click
|
|
268
|
+
* @param {HTMLElement} item The clicked item.
|
|
269
|
+
* @public
|
|
270
|
+
*/
|
|
271
|
+
"item-click": {
|
|
272
|
+
detail: {
|
|
273
|
+
item: { type: HTMLElement },
|
|
274
|
+
},
|
|
275
|
+
},
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* Fired when the <code>Close</code> button of any item is clicked
|
|
279
|
+
* <br><br>
|
|
280
|
+
* <b>Note:</b> This event is applicable to <code>ui5-li-notification</code> items only,
|
|
281
|
+
* not to be confused with <code>item-delete</code>.
|
|
282
|
+
*
|
|
283
|
+
* @event sap.ui.webcomponents.main.List#item-close
|
|
284
|
+
* @param {HTMLElement} item the item about to be closed.
|
|
285
|
+
* @public
|
|
286
|
+
* @since 1.0.0-rc.8
|
|
287
|
+
*/
|
|
288
|
+
"item-close": {
|
|
289
|
+
detail: {
|
|
290
|
+
item: { type: HTMLElement },
|
|
291
|
+
},
|
|
292
|
+
},
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* Fired when the <code>Toggle</code> button of any item is clicked.
|
|
296
|
+
* <br><br>
|
|
297
|
+
* <b>Note:</b> This event is applicable to <code>ui5-li-notification-group</code> items only.
|
|
298
|
+
*
|
|
299
|
+
* @event sap.ui.webcomponents.main.List#item-toggle
|
|
300
|
+
* @param {HTMLElement} item the toggled item.
|
|
140
301
|
* @public
|
|
302
|
+
* @since 1.0.0-rc.8
|
|
141
303
|
*/
|
|
142
|
-
|
|
304
|
+
"item-toggle": {
|
|
143
305
|
detail: {
|
|
144
306
|
item: { type: HTMLElement },
|
|
145
307
|
},
|
|
@@ -149,12 +311,13 @@ const metadata = {
|
|
|
149
311
|
* Fired when the Delete button of any item is pressed.
|
|
150
312
|
* <br><br>
|
|
151
313
|
* <b>Note:</b> A Delete button is displayed on each item,
|
|
152
|
-
* when the
|
|
153
|
-
*
|
|
314
|
+
* when the component <code>mode</code> property is set to <code>Delete</code>.
|
|
315
|
+
*
|
|
316
|
+
* @event sap.ui.webcomponents.main.List#item-delete
|
|
154
317
|
* @param {HTMLElement} item the deleted item.
|
|
155
318
|
* @public
|
|
156
319
|
*/
|
|
157
|
-
|
|
320
|
+
"item-delete": {
|
|
158
321
|
detail: {
|
|
159
322
|
item: { type: HTMLElement },
|
|
160
323
|
},
|
|
@@ -162,36 +325,47 @@ const metadata = {
|
|
|
162
325
|
|
|
163
326
|
/**
|
|
164
327
|
* Fired when selection is changed by user interaction
|
|
165
|
-
* in <code>SingleSelect</code> and <code>MultiSelect</code> modes.
|
|
328
|
+
* in <code>SingleSelect</code>, <code>SingleSelectBegin</code>, <code>SingleSelectEnd</code> and <code>MultiSelect</code> modes.
|
|
166
329
|
*
|
|
167
|
-
* @event
|
|
168
|
-
* @param {Array} selectedItems
|
|
169
|
-
* @param {Array} previouslySelectedItems
|
|
330
|
+
* @event sap.ui.webcomponents.main.List#selection-change
|
|
331
|
+
* @param {Array} selectedItems An array of the selected items.
|
|
332
|
+
* @param {Array} previouslySelectedItems An array of the previously selected items.
|
|
170
333
|
* @public
|
|
171
334
|
*/
|
|
172
|
-
|
|
335
|
+
"selection-change": {
|
|
173
336
|
detail: {
|
|
174
337
|
selectedItems: { type: Array },
|
|
175
338
|
previouslySelectedItems: { type: Array },
|
|
176
339
|
selectionComponentPressed: { type: Boolean }, // protected, indicates if the user used the selection components to change the selection
|
|
177
340
|
},
|
|
178
341
|
},
|
|
342
|
+
|
|
343
|
+
/**
|
|
344
|
+
* Fired when the user scrolls to the bottom of the list.
|
|
345
|
+
* <br><br>
|
|
346
|
+
* <b>Note:</b> The event is fired when the <code>growing='Scroll'</code> property is enabled.
|
|
347
|
+
*
|
|
348
|
+
* @event sap.ui.webcomponents.main.List#load-more
|
|
349
|
+
* @public
|
|
350
|
+
* @since 1.0.0-rc.6
|
|
351
|
+
*/
|
|
352
|
+
"load-more": {},
|
|
179
353
|
},
|
|
180
354
|
};
|
|
181
355
|
|
|
182
356
|
/**
|
|
183
357
|
* @class
|
|
184
358
|
*
|
|
185
|
-
* <h3 class="comment-api-title">
|
|
359
|
+
* <h3 class="comment-api-title">Overview</h3>
|
|
186
360
|
*
|
|
187
361
|
* The <code>ui5-list</code> component allows displaying a list of items, advanced keyboard
|
|
188
362
|
* handling support for navigating between items, and predefined modes to improve the development efficiency.
|
|
189
363
|
* <br><br>
|
|
190
|
-
* The <code>ui5-list</code> is
|
|
364
|
+
* The <code>ui5-list</code> is a container for the available list items:
|
|
191
365
|
* <ul>
|
|
192
366
|
* <li><code>ui5-li</code></li>
|
|
193
367
|
* <li><code>ui5-li-custom</code></li>
|
|
194
|
-
* <li><code>ui5-li-
|
|
368
|
+
* <li><code>ui5-li-groupheader</code></li>
|
|
195
369
|
* </ul>
|
|
196
370
|
* <br><br>
|
|
197
371
|
* To benefit from the built-in selection mechanism, you can use the available
|
|
@@ -200,6 +374,27 @@ const metadata = {
|
|
|
200
374
|
* <br><br>
|
|
201
375
|
* Additionally, the <code>ui5-list</code> provides header, footer, and customization for the list item separators.
|
|
202
376
|
*
|
|
377
|
+
* <br><br>
|
|
378
|
+
* <h3>Keyboard Handling</h3>
|
|
379
|
+
* The <code>ui5-list</code> provides advanced keyboard handling.
|
|
380
|
+
* When a list is focused the user can use the following keyboard
|
|
381
|
+
* shortcuts in order to perform a navigation:
|
|
382
|
+
* <br>
|
|
383
|
+
*
|
|
384
|
+
* <ul>
|
|
385
|
+
* <li>[UP/DOWN] - Navigates up and down the items</li>
|
|
386
|
+
* <li>[HOME] - Navigates to first item</li>
|
|
387
|
+
* <li>[END] - Navigates to the last item</li>
|
|
388
|
+
* </ul>
|
|
389
|
+
*
|
|
390
|
+
* The user can use the following keyboard shortcuts to perform actions (such as select, delete),
|
|
391
|
+
* when the <code>mode</code> property is in use:
|
|
392
|
+
* <ul>
|
|
393
|
+
* <li>[SPACE] - Select an item (if <code>type</code> is 'Active') when <code>mode</code> is selection</li>
|
|
394
|
+
* <li>[DELETE] - Delete an item if <code>mode</code> property is <code>Delete</code></li>
|
|
395
|
+
* </ul>
|
|
396
|
+
* <br><br>
|
|
397
|
+
*
|
|
203
398
|
* <h3>ES6 Module Import</h3>
|
|
204
399
|
*
|
|
205
400
|
* <code>import "@ui5/webcomponents/dist/List.js";</code>
|
|
@@ -208,7 +403,7 @@ const metadata = {
|
|
|
208
403
|
* <br>
|
|
209
404
|
* <code>import "@ui5/webcomponents/dist/CustomListItem.js";</code> (for <code>ui5-li-custom</code>)
|
|
210
405
|
* <br>
|
|
211
|
-
* <code>import "@ui5/webcomponents/dist/GroupHeaderListItem.js";</code> (for <code>ui5-li-
|
|
406
|
+
* <code>import "@ui5/webcomponents/dist/GroupHeaderListItem.js";</code> (for <code>ui5-li-groupheader</code>)
|
|
212
407
|
*
|
|
213
408
|
* @constructor
|
|
214
409
|
* @author SAP SE
|
|
@@ -235,6 +430,14 @@ class List extends UI5Element {
|
|
|
235
430
|
return listCss;
|
|
236
431
|
}
|
|
237
432
|
|
|
433
|
+
static async onDefine() {
|
|
434
|
+
List.i18nBundle = await getI18nBundle("@ui5/webcomponents");
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
static get dependencies() {
|
|
438
|
+
return [BusyIndicator];
|
|
439
|
+
}
|
|
440
|
+
|
|
238
441
|
constructor() {
|
|
239
442
|
super();
|
|
240
443
|
this.initItemNavigation();
|
|
@@ -247,23 +450,177 @@ class List extends UI5Element {
|
|
|
247
450
|
|
|
248
451
|
this._previouslySelectedItem = null;
|
|
249
452
|
|
|
453
|
+
// Indicates that the List has already subscribed for resize.
|
|
454
|
+
this.resizeListenerAttached = false;
|
|
455
|
+
|
|
456
|
+
// Indicates if the IntersectionObserver started observing the List
|
|
457
|
+
this.listEndObserved = false;
|
|
458
|
+
|
|
250
459
|
this.addEventListener("ui5-_press", this.onItemPress.bind(this));
|
|
460
|
+
this.addEventListener("ui5-close", this.onItemClose.bind(this));
|
|
461
|
+
this.addEventListener("ui5-toggle", this.onItemToggle.bind(this));
|
|
251
462
|
this.addEventListener("ui5-_focused", this.onItemFocused.bind(this));
|
|
252
|
-
this.addEventListener("ui5-
|
|
253
|
-
this.addEventListener("ui5-
|
|
254
|
-
this.addEventListener("ui5-
|
|
463
|
+
this.addEventListener("ui5-_forward-after", this.onForwardAfter.bind(this));
|
|
464
|
+
this.addEventListener("ui5-_forward-before", this.onForwardBefore.bind(this));
|
|
465
|
+
this.addEventListener("ui5-_selection-requested", this.onSelectionRequested.bind(this));
|
|
466
|
+
this.addEventListener("ui5-_focus-requested", this.focusUploadCollectionItem.bind(this));
|
|
467
|
+
|
|
468
|
+
this._handleResize = this.checkListInViewport.bind(this);
|
|
469
|
+
|
|
470
|
+
// Indicates the List bottom most part has been detected by the IntersectionObserver
|
|
471
|
+
// for the first time.
|
|
472
|
+
this.initialIntersection = true;
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
onExitDOM() {
|
|
476
|
+
this.unobserveListEnd();
|
|
477
|
+
this.resizeListenerAttached = false;
|
|
478
|
+
ResizeHandler.deregister(this.getDomRef(), this._handleResize);
|
|
255
479
|
}
|
|
256
480
|
|
|
257
481
|
onBeforeRendering() {
|
|
258
482
|
this.prepareListItems();
|
|
259
483
|
}
|
|
260
484
|
|
|
485
|
+
onAfterRendering() {
|
|
486
|
+
if (this.growsOnScroll) {
|
|
487
|
+
this.observeListEnd();
|
|
488
|
+
} else if (this.listEndObserved) {
|
|
489
|
+
this.unobserveListEnd();
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
if (this.grows) {
|
|
493
|
+
this.checkListInViewport();
|
|
494
|
+
this.attachForResize();
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
attachForResize() {
|
|
499
|
+
if (!this.resizeListenerAttached) {
|
|
500
|
+
this.resizeListenerAttached = true;
|
|
501
|
+
ResizeHandler.register(this.getDomRef(), this._handleResize);
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
get shouldRenderH1() {
|
|
506
|
+
return !this.header.length && this.headerText;
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
get headerID() {
|
|
510
|
+
return `${this._id}-header`;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
get modeLabelID() {
|
|
514
|
+
return `${this._id}-modeLabel`;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
get listEndDOM() {
|
|
518
|
+
return this.shadowRoot.querySelector(".ui5-list-end-marker");
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
get hasData() {
|
|
522
|
+
return this.getSlottedNodes("items").length !== 0;
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
get showNoDataText() {
|
|
526
|
+
return !this.hasData && this.noDataText;
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
get isDelete() {
|
|
530
|
+
return this.mode === ListMode.Delete;
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
get isSingleSelect() {
|
|
534
|
+
return [
|
|
535
|
+
ListMode.SingleSelect,
|
|
536
|
+
ListMode.SingleSelectBegin,
|
|
537
|
+
ListMode.SingleSelectEnd,
|
|
538
|
+
ListMode.SingleSelectAuto,
|
|
539
|
+
].includes(this.mode);
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
get isMultiSelect() {
|
|
543
|
+
return this.mode === ListMode.MultiSelect;
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
get ariaLabelledBy() {
|
|
547
|
+
if (this.accessibleNameRef || this.accessibleName) {
|
|
548
|
+
return undefined;
|
|
549
|
+
}
|
|
550
|
+
const ids = [];
|
|
551
|
+
|
|
552
|
+
if (this.isMultiSelect || this.isSingleSelect || this.isDelete) {
|
|
553
|
+
ids.push(this.modeLabelID);
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
if (this.shouldRenderH1) {
|
|
557
|
+
ids.push(this.headerID);
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
return ids.length ? ids.join(" ") : undefined;
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
get ariaLabelTxt() {
|
|
564
|
+
return getEffectiveAriaLabelText(this);
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
get ariaLabelModeText() {
|
|
568
|
+
if (this.isMultiSelect) {
|
|
569
|
+
return List.i18nBundle.getText(ARIA_LABEL_LIST_MULTISELECTABLE);
|
|
570
|
+
}
|
|
571
|
+
if (this.isSingleSelect) {
|
|
572
|
+
return List.i18nBundle.getText(ARIA_LABEL_LIST_SELECTABLE);
|
|
573
|
+
}
|
|
574
|
+
if (this.isDelete) {
|
|
575
|
+
return List.i18nBundle.getText(ARIA_LABEL_LIST_DELETABLE);
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
return undefined;
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
get grows() {
|
|
582
|
+
return this.growing !== ListGrowingMode.None;
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
get growsOnScroll() {
|
|
586
|
+
return this.growing === ListGrowingMode.Scroll && !isIE();
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
get growsWithButton() {
|
|
590
|
+
if (isIE()) {
|
|
591
|
+
// On IE fallback to "More" button, even if growing of type "Scroll" is set.
|
|
592
|
+
return this.grows;
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
return this.growing === ListGrowingMode.Button;
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
get _growingButtonText() {
|
|
599
|
+
return List.i18nBundle.getText(LOAD_MORE_TEXT);
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
get busyIndPosition() {
|
|
603
|
+
if (isIE() || !this.grows) {
|
|
604
|
+
return "absolute";
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
return this._inViewport ? "absolute" : "sticky";
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
get styles() {
|
|
611
|
+
return {
|
|
612
|
+
busyInd: {
|
|
613
|
+
position: this.busyIndPosition,
|
|
614
|
+
},
|
|
615
|
+
};
|
|
616
|
+
}
|
|
617
|
+
|
|
261
618
|
initItemNavigation() {
|
|
262
619
|
this._itemNavigation = new ItemNavigation(this, {
|
|
620
|
+
skipItemsSize: PAGE_UP_DOWN_SIZE, // PAGE_UP and PAGE_DOWN will skip trough 10 items
|
|
263
621
|
navigationMode: NavigationMode.Vertical,
|
|
622
|
+
getItemsCallback: () => this.getEnabledItems(),
|
|
264
623
|
});
|
|
265
|
-
|
|
266
|
-
this._itemNavigation.getItemsCallback = () => this.getSlottedNodes("items");
|
|
267
624
|
}
|
|
268
625
|
|
|
269
626
|
prepareListItems() {
|
|
@@ -281,6 +638,34 @@ class List extends UI5Element {
|
|
|
281
638
|
this._previouslySelectedItem = null;
|
|
282
639
|
}
|
|
283
640
|
|
|
641
|
+
async observeListEnd() {
|
|
642
|
+
if (!this.listEndObserved) {
|
|
643
|
+
await renderFinished();
|
|
644
|
+
this.getIntersectionObserver().observe(this.listEndDOM);
|
|
645
|
+
this.listEndObserved = true;
|
|
646
|
+
}
|
|
647
|
+
}
|
|
648
|
+
|
|
649
|
+
unobserveListEnd() {
|
|
650
|
+
if (this.growingIntersectionObserver) {
|
|
651
|
+
this.growingIntersectionObserver.disconnect();
|
|
652
|
+
this.growingIntersectionObserver = null;
|
|
653
|
+
this.listEndObserved = false;
|
|
654
|
+
}
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
onInteresection(entries) {
|
|
658
|
+
if (this.initialIntersection) {
|
|
659
|
+
this.initialIntersection = false;
|
|
660
|
+
return;
|
|
661
|
+
}
|
|
662
|
+
entries.forEach(entry => {
|
|
663
|
+
if (entry.isIntersecting) {
|
|
664
|
+
debounce(this.loadMore.bind(this), INFINITE_SCROLL_DEBOUNCE_RATE);
|
|
665
|
+
}
|
|
666
|
+
});
|
|
667
|
+
}
|
|
668
|
+
|
|
284
669
|
/*
|
|
285
670
|
* ITEM SELECTION BASED ON THE CURRENT MODE
|
|
286
671
|
*/
|
|
@@ -294,7 +679,7 @@ class List extends UI5Element {
|
|
|
294
679
|
}
|
|
295
680
|
|
|
296
681
|
if (selectionChange) {
|
|
297
|
-
this.fireEvent("
|
|
682
|
+
this.fireEvent("selection-change", {
|
|
298
683
|
selectedItems: this.getSelectedItems(),
|
|
299
684
|
previouslySelectedItems,
|
|
300
685
|
selectionComponentPressed: event.detail.selectionComponentPressed,
|
|
@@ -322,13 +707,17 @@ class List extends UI5Element {
|
|
|
322
707
|
return this.handleSingleSelect(item);
|
|
323
708
|
}
|
|
324
709
|
|
|
710
|
+
handleSingleSelectAuto(item) {
|
|
711
|
+
return this.handleSingleSelect(item);
|
|
712
|
+
}
|
|
713
|
+
|
|
325
714
|
handleMultiSelect(item, selected) {
|
|
326
715
|
item.selected = selected;
|
|
327
716
|
return true;
|
|
328
717
|
}
|
|
329
718
|
|
|
330
719
|
handleDelete(item) {
|
|
331
|
-
this.fireEvent("
|
|
720
|
+
this.fireEvent("item-delete", { item });
|
|
332
721
|
}
|
|
333
722
|
|
|
334
723
|
deselectSelectedItems() {
|
|
@@ -339,18 +728,8 @@ class List extends UI5Element {
|
|
|
339
728
|
return this.getSlottedNodes("items").filter(item => item.selected);
|
|
340
729
|
}
|
|
341
730
|
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
let firstSelectedItem = null;
|
|
345
|
-
|
|
346
|
-
for (let i = 0; i < slottedItems.length; i++) {
|
|
347
|
-
if (slottedItems[i].selected) {
|
|
348
|
-
firstSelectedItem = slottedItems[i];
|
|
349
|
-
break;
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
return firstSelectedItem;
|
|
731
|
+
getEnabledItems() {
|
|
732
|
+
return this.getSlottedNodes("items").filter(item => !item.disabled);
|
|
354
733
|
}
|
|
355
734
|
|
|
356
735
|
_onkeydown(event) {
|
|
@@ -359,6 +738,50 @@ class List extends UI5Element {
|
|
|
359
738
|
}
|
|
360
739
|
}
|
|
361
740
|
|
|
741
|
+
_onLoadMoreKeydown(event) {
|
|
742
|
+
if (isSpace(event)) {
|
|
743
|
+
event.preventDefault();
|
|
744
|
+
this._loadMoreActive = true;
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
if (isEnter(event)) {
|
|
748
|
+
this._onLoadMoreClick();
|
|
749
|
+
this._loadMoreActive = true;
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
if (isTabNext(event)) {
|
|
753
|
+
this.setPreviouslyFocusedItem(event.target);
|
|
754
|
+
this.focusAfterElement();
|
|
755
|
+
}
|
|
756
|
+
}
|
|
757
|
+
|
|
758
|
+
_onLoadMoreKeyup(event) {
|
|
759
|
+
if (isSpace(event)) {
|
|
760
|
+
this._onLoadMoreClick();
|
|
761
|
+
}
|
|
762
|
+
this._loadMoreActive = false;
|
|
763
|
+
}
|
|
764
|
+
|
|
765
|
+
_onLoadMoreMousedown() {
|
|
766
|
+
this._loadMoreActive = true;
|
|
767
|
+
}
|
|
768
|
+
|
|
769
|
+
_onLoadMoreMouseup() {
|
|
770
|
+
this._loadMoreActive = false;
|
|
771
|
+
}
|
|
772
|
+
|
|
773
|
+
_onLoadMoreClick() {
|
|
774
|
+
this.loadMore();
|
|
775
|
+
}
|
|
776
|
+
|
|
777
|
+
checkListInViewport() {
|
|
778
|
+
this._inViewport = isElementInView(this.getDomRef());
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
loadMore() {
|
|
782
|
+
this.fireEvent("load-more");
|
|
783
|
+
}
|
|
784
|
+
|
|
362
785
|
/*
|
|
363
786
|
* KEYBOARD SUPPORT
|
|
364
787
|
*/
|
|
@@ -378,7 +801,7 @@ class List extends UI5Element {
|
|
|
378
801
|
}
|
|
379
802
|
|
|
380
803
|
if (lastTabbableEl === target) {
|
|
381
|
-
if (this.
|
|
804
|
+
if (this.getFirstItem(x => x.selected && !x.disabled)) {
|
|
382
805
|
this.focusFirstSelectedItem();
|
|
383
806
|
} else if (this.getPreviouslyFocusedItem()) {
|
|
384
807
|
this.focusPreviouslyFocusedItem();
|
|
@@ -401,7 +824,7 @@ class List extends UI5Element {
|
|
|
401
824
|
// The focus arrives in the List for the first time.
|
|
402
825
|
// If there is selected item - focus it or focus the first item.
|
|
403
826
|
if (!this.getPreviouslyFocusedItem()) {
|
|
404
|
-
if (this.
|
|
827
|
+
if (this.getFirstItem(x => x.selected && !x.disabled)) {
|
|
405
828
|
this.focusFirstSelectedItem();
|
|
406
829
|
} else {
|
|
407
830
|
this.focusFirstItem();
|
|
@@ -414,11 +837,13 @@ class List extends UI5Element {
|
|
|
414
837
|
// The focus returns to the List,
|
|
415
838
|
// focus the first selected item or the previously focused element.
|
|
416
839
|
if (!this.getForwardingFocus()) {
|
|
417
|
-
if (this.
|
|
840
|
+
if (this.getFirstItem(x => x.selected && !x.disabled)) {
|
|
418
841
|
this.focusFirstSelectedItem();
|
|
419
842
|
} else {
|
|
420
843
|
this.focusPreviouslyFocusedItem();
|
|
421
844
|
}
|
|
845
|
+
|
|
846
|
+
event.stopImmediatePropagation();
|
|
422
847
|
}
|
|
423
848
|
|
|
424
849
|
this.setForwardingFocus(false);
|
|
@@ -426,27 +851,37 @@ class List extends UI5Element {
|
|
|
426
851
|
|
|
427
852
|
isForwardElement(node) {
|
|
428
853
|
const nodeId = node.id;
|
|
854
|
+
const afterElement = this.getAfterElement();
|
|
855
|
+
const beforeElement = this.getBeforeElement();
|
|
429
856
|
|
|
430
|
-
if (this._id === nodeId ||
|
|
857
|
+
if (this._id === nodeId || (beforeElement && beforeElement.id === nodeId)) {
|
|
431
858
|
return true;
|
|
432
859
|
}
|
|
433
860
|
|
|
434
|
-
return
|
|
861
|
+
return afterElement && afterElement.id === nodeId;
|
|
435
862
|
}
|
|
436
863
|
|
|
437
864
|
onItemFocused(event) {
|
|
438
865
|
const target = event.target;
|
|
439
866
|
|
|
440
|
-
this._itemNavigation.
|
|
441
|
-
this.fireEvent("
|
|
867
|
+
this._itemNavigation.setCurrentItem(target);
|
|
868
|
+
this.fireEvent("item-focused", { item: target });
|
|
869
|
+
|
|
870
|
+
if (this.mode === ListMode.SingleSelectAuto) {
|
|
871
|
+
this.onSelectionRequested({
|
|
872
|
+
detail: {
|
|
873
|
+
item: target,
|
|
874
|
+
selectionComponentPressed: false,
|
|
875
|
+
selected: true,
|
|
876
|
+
key: event.detail.key,
|
|
877
|
+
},
|
|
878
|
+
});
|
|
879
|
+
}
|
|
442
880
|
}
|
|
443
881
|
|
|
444
882
|
onItemPress(event) {
|
|
445
883
|
const pressedItem = event.detail.item;
|
|
446
884
|
|
|
447
|
-
this.fireEvent("itemPress", { item: pressedItem });
|
|
448
|
-
this.fireEvent("itemClick", { item: pressedItem });
|
|
449
|
-
|
|
450
885
|
if (!this._selectionRequested && this.mode !== ListMode.Delete) {
|
|
451
886
|
this._selectionRequested = true;
|
|
452
887
|
this.onSelectionRequested({
|
|
@@ -459,17 +894,33 @@ class List extends UI5Element {
|
|
|
459
894
|
});
|
|
460
895
|
}
|
|
461
896
|
|
|
897
|
+
this.fireEvent("item-press", { item: pressedItem });
|
|
898
|
+
this.fireEvent("item-click", { item: pressedItem });
|
|
899
|
+
|
|
462
900
|
this._selectionRequested = false;
|
|
463
901
|
}
|
|
464
902
|
|
|
903
|
+
// This is applicable to NoficationListItem
|
|
904
|
+
onItemClose(event) {
|
|
905
|
+
this.fireEvent("item-close", { item: event.detail.item });
|
|
906
|
+
}
|
|
907
|
+
|
|
908
|
+
onItemToggle(event) {
|
|
909
|
+
this.fireEvent("item-toggle", { item: event.detail.item });
|
|
910
|
+
}
|
|
911
|
+
|
|
465
912
|
onForwardBefore(event) {
|
|
466
913
|
this.setPreviouslyFocusedItem(event.target);
|
|
467
914
|
this.focusBeforeElement();
|
|
915
|
+
event.stopImmediatePropagation();
|
|
468
916
|
}
|
|
469
917
|
|
|
470
918
|
onForwardAfter(event) {
|
|
471
919
|
this.setPreviouslyFocusedItem(event.target);
|
|
472
|
-
|
|
920
|
+
|
|
921
|
+
if (!this.growsWithButton) {
|
|
922
|
+
this.focusAfterElement();
|
|
923
|
+
}
|
|
473
924
|
}
|
|
474
925
|
|
|
475
926
|
focusBeforeElement() {
|
|
@@ -483,7 +934,8 @@ class List extends UI5Element {
|
|
|
483
934
|
}
|
|
484
935
|
|
|
485
936
|
focusFirstItem() {
|
|
486
|
-
|
|
937
|
+
// only enabled items are focusable
|
|
938
|
+
const firstItem = this.getFirstItem(x => !x.disabled);
|
|
487
939
|
|
|
488
940
|
if (firstItem) {
|
|
489
941
|
firstItem.focus();
|
|
@@ -499,13 +951,31 @@ class List extends UI5Element {
|
|
|
499
951
|
}
|
|
500
952
|
|
|
501
953
|
focusFirstSelectedItem() {
|
|
502
|
-
|
|
954
|
+
// only enabled items are focusable
|
|
955
|
+
const firstSelectedItem = this.getFirstItem(x => x.selected && !x.disabled);
|
|
503
956
|
|
|
504
957
|
if (firstSelectedItem) {
|
|
505
958
|
firstSelectedItem.focus();
|
|
506
959
|
}
|
|
507
960
|
}
|
|
508
961
|
|
|
962
|
+
/**
|
|
963
|
+
* Focuses a list item and sets its tabindex to "0" via the ItemNavigation
|
|
964
|
+
* @protected
|
|
965
|
+
* @param item
|
|
966
|
+
*/
|
|
967
|
+
focusItem(item) {
|
|
968
|
+
this._itemNavigation.setCurrentItem(item);
|
|
969
|
+
item.focus();
|
|
970
|
+
}
|
|
971
|
+
|
|
972
|
+
focusUploadCollectionItem(event) {
|
|
973
|
+
setTimeout(() => {
|
|
974
|
+
this.setPreviouslyFocusedItem(event.target);
|
|
975
|
+
this.focusPreviouslyFocusedItem();
|
|
976
|
+
}, 0);
|
|
977
|
+
}
|
|
978
|
+
|
|
509
979
|
setForwardingFocus(forwardingFocus) {
|
|
510
980
|
this._forwardingFocus = forwardingFocus;
|
|
511
981
|
}
|
|
@@ -522,9 +992,22 @@ class List extends UI5Element {
|
|
|
522
992
|
return this._previouslyFocusedItem;
|
|
523
993
|
}
|
|
524
994
|
|
|
525
|
-
getFirstItem() {
|
|
995
|
+
getFirstItem(filter) {
|
|
526
996
|
const slottedItems = this.getSlottedNodes("items");
|
|
527
|
-
|
|
997
|
+
let firstItem = null;
|
|
998
|
+
|
|
999
|
+
if (!filter) {
|
|
1000
|
+
return !!slottedItems.length && slottedItems[0];
|
|
1001
|
+
}
|
|
1002
|
+
|
|
1003
|
+
for (let i = 0; i < slottedItems.length; i++) {
|
|
1004
|
+
if (filter(slottedItems[i])) {
|
|
1005
|
+
firstItem = slottedItems[i];
|
|
1006
|
+
break;
|
|
1007
|
+
}
|
|
1008
|
+
}
|
|
1009
|
+
|
|
1010
|
+
return firstItem;
|
|
528
1011
|
}
|
|
529
1012
|
|
|
530
1013
|
getAfterElement() {
|
|
@@ -555,12 +1038,16 @@ class List extends UI5Element {
|
|
|
555
1038
|
return focused;
|
|
556
1039
|
}
|
|
557
1040
|
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
1041
|
+
getIntersectionObserver() {
|
|
1042
|
+
if (!this.growingIntersectionObserver) {
|
|
1043
|
+
this.growingIntersectionObserver = new IntersectionObserver(this.onInteresection.bind(this), {
|
|
1044
|
+
root: null,
|
|
1045
|
+
rootMargin: "0px",
|
|
1046
|
+
threshold: 1.0,
|
|
1047
|
+
});
|
|
1048
|
+
}
|
|
561
1049
|
|
|
562
|
-
|
|
563
|
-
return this.items.length === 0 && this.noDataText;
|
|
1050
|
+
return this.growingIntersectionObserver;
|
|
564
1051
|
}
|
|
565
1052
|
}
|
|
566
1053
|
|