@ui5/webcomponents 0.0.0-aeb93167c → 0.0.0-b053ad005
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 +343 -0
- package/README.md +144 -52
- package/csp.js +7 -0
- package/customI18n.js +50 -0
- package/dist/Assets-static.js +6 -0
- package/dist/Assets.js +2 -1
- package/dist/Avatar.js +189 -49
- package/dist/AvatarGroup.js +603 -0
- package/dist/Badge.js +45 -19
- package/dist/Breadcrumbs.js +563 -0
- package/dist/BreadcrumbsItem.js +109 -0
- package/dist/BusyIndicator.js +121 -34
- package/dist/Button.js +110 -66
- package/dist/Calendar.js +324 -648
- package/dist/CalendarDate.js +45 -0
- package/dist/CalendarHeader.js +110 -59
- package/dist/CalendarPart.js +111 -0
- package/dist/Card.js +38 -198
- package/dist/CardHeader.js +288 -0
- package/dist/Carousel.js +253 -94
- package/dist/CheckBox.js +138 -70
- 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 +348 -144
- package/dist/ComboBoxFilters.js +8 -1
- package/dist/ComboBoxGroupItem.js +70 -0
- package/dist/ComboBoxItem.js +11 -24
- package/dist/CustomListItem.js +36 -2
- package/dist/DateComponentBase.js +170 -0
- package/dist/DatePicker.js +264 -519
- package/dist/DateRangePicker.js +162 -426
- package/dist/DateTimePicker.js +94 -413
- package/dist/DayPicker.js +443 -648
- package/dist/Dialog.js +220 -58
- package/dist/DurationPicker.js +109 -511
- package/dist/FileUploader.js +70 -31
- package/dist/GroupHeaderListItem.js +22 -13
- package/dist/Icon.js +103 -41
- package/dist/Input.js +346 -155
- package/dist/Interfaces.js +192 -0
- package/dist/Label.js +27 -12
- package/dist/Link.js +105 -43
- package/dist/List.js +377 -104
- package/dist/ListItem.js +60 -13
- package/dist/ListItemBase.js +29 -2
- package/dist/MessageStrip.js +47 -46
- package/dist/MonthPicker.js +171 -225
- package/dist/MultiComboBox.js +356 -135
- package/dist/MultiComboBoxItem.js +7 -2
- package/dist/MultiInput.js +55 -24
- package/dist/Option.js +48 -5
- package/dist/Panel.js +63 -73
- package/dist/Popover.js +195 -80
- package/dist/Popup.js +151 -61
- package/dist/ProgressIndicator.js +28 -20
- package/dist/RadioButton.js +126 -43
- package/dist/RadioButtonGroup.js +53 -29
- package/dist/RangeSlider.js +769 -0
- package/dist/RatingIndicator.js +27 -37
- package/dist/ResponsivePopover.js +56 -42
- package/dist/SegmentedButton.js +102 -68
- package/dist/SegmentedButtonItem.js +109 -0
- package/dist/Select.js +275 -116
- package/dist/Slider.js +320 -0
- package/dist/SliderBase.js +842 -0
- package/dist/StandardListItem.js +35 -9
- package/dist/StepInput.js +681 -0
- package/dist/SuggestionGroupItem.js +64 -0
- package/dist/SuggestionItem.js +13 -26
- package/dist/SuggestionListItem.js +17 -6
- package/dist/Switch.js +52 -32
- package/dist/Tab.js +47 -26
- package/dist/TabContainer.js +94 -34
- package/dist/TabSeparator.js +1 -0
- package/dist/Table.js +474 -22
- package/dist/TableCell.js +11 -9
- package/dist/TableColumn.js +13 -3
- package/dist/TableGroupRow.js +160 -0
- package/dist/TableRow.js +210 -11
- package/dist/TextArea.js +86 -46
- package/dist/TimePicker.js +27 -743
- package/dist/TimePickerBase.js +463 -0
- package/dist/TimeSelection.js +493 -0
- package/dist/Title.js +16 -9
- package/dist/Toast.js +19 -8
- package/dist/ToggleButton.js +21 -8
- package/dist/Token.js +32 -16
- package/dist/Tokenizer.js +75 -42
- package/dist/Tree.js +97 -41
- package/dist/TreeItem.js +44 -9
- package/dist/TreeListItem.js +86 -2
- package/dist/WheelSlider.js +58 -58
- package/dist/YearPicker.js +188 -284
- package/dist/api.json +6877 -1
- package/dist/features/ColorPaletteMoreColors.js +42 -0
- package/dist/features/InputElementsFormSupport.js +0 -1
- package/dist/features/InputSuggestions.js +131 -30
- 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 -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 -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 -19
- 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 -16
- package/dist/generated/templates/BadgeTemplate.lit.js +5 -13
- 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 -13
- package/dist/generated/templates/ButtonTemplate.lit.js +6 -13
- package/dist/generated/templates/CalendarHeaderTemplate.lit.js +6 -11
- package/dist/generated/templates/CalendarTemplate.lit.js +4 -11
- package/dist/generated/templates/CardHeaderTemplate.lit.js +12 -0
- package/dist/generated/templates/CardTemplate.lit.js +5 -17
- package/dist/generated/templates/CarouselTemplate.lit.js +13 -19
- package/dist/generated/templates/CheckBoxTemplate.lit.js +7 -14
- 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 -25
- package/dist/generated/templates/ComboBoxTemplate.lit.js +8 -14
- package/dist/generated/templates/CustomListItemTemplate.lit.js +13 -20
- package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +7 -13
- package/dist/generated/templates/DatePickerTemplate.lit.js +6 -13
- package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +9 -19
- package/dist/generated/templates/DayPickerTemplate.lit.js +13 -19
- package/dist/generated/templates/DialogTemplate.lit.js +9 -15
- package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +7 -14
- package/dist/generated/templates/FileUploaderTemplate.lit.js +7 -14
- package/dist/generated/templates/GroupHeaderListItemTemplate.lit.js +4 -11
- package/dist/generated/templates/IconTemplate.lit.js +6 -13
- package/dist/generated/templates/InputPopoverTemplate.lit.js +24 -31
- package/dist/generated/templates/InputTemplate.lit.js +9 -15
- package/dist/generated/templates/LabelTemplate.lit.js +4 -11
- package/dist/generated/templates/LinkTemplate.lit.js +5 -12
- package/dist/generated/templates/ListItemTemplate.lit.js +13 -20
- package/dist/generated/templates/ListTemplate.lit.js +12 -16
- package/dist/generated/templates/MessageStripTemplate.lit.js +8 -15
- package/dist/generated/templates/MonthPickerTemplate.lit.js +6 -13
- package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +23 -27
- package/dist/generated/templates/MultiComboBoxTemplate.lit.js +10 -16
- package/dist/generated/templates/MultiInputTemplate.lit.js +13 -19
- package/dist/generated/templates/PanelTemplate.lit.js +9 -14
- package/dist/generated/templates/PopoverTemplate.lit.js +9 -16
- package/dist/generated/templates/PopupBlockLayerTemplate.lit.js +4 -11
- package/dist/generated/templates/PopupTemplate.lit.js +4 -11
- package/dist/generated/templates/ProgressIndicatorTemplate.lit.js +14 -17
- package/dist/generated/templates/RadioButtonTemplate.lit.js +7 -14
- package/dist/generated/templates/RangeSliderTemplate.lit.js +13 -0
- package/dist/generated/templates/RatingIndicatorTemplate.lit.js +11 -16
- package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +16 -21
- package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +8 -0
- package/dist/generated/templates/SegmentedButtonTemplate.lit.js +4 -11
- package/dist/generated/templates/SelectPopoverTemplate.lit.js +20 -27
- package/dist/generated/templates/SelectTemplate.lit.js +6 -12
- 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 -28
- package/dist/generated/templates/StepInputTemplate.lit.js +8 -0
- package/dist/generated/templates/SuggestionListItemTemplate.lit.js +24 -31
- package/dist/generated/templates/SwitchTemplate.lit.js +8 -13
- package/dist/generated/templates/TabContainerPopoverTemplate.lit.js +6 -13
- package/dist/generated/templates/TabContainerTemplate.lit.js +16 -23
- package/dist/generated/templates/TabInOverflowTemplate.lit.js +6 -13
- package/dist/generated/templates/TabInStripTemplate.lit.js +8 -17
- package/dist/generated/templates/TabSeparatorTemplate.lit.js +4 -11
- package/dist/generated/templates/TabTemplate.lit.js +4 -11
- package/dist/generated/templates/TableCellTemplate.lit.js +4 -11
- package/dist/generated/templates/TableColumnTemplate.lit.js +4 -11
- package/dist/generated/templates/TableGroupRowTemplate.lit.js +7 -0
- package/dist/generated/templates/TableRowTemplate.lit.js +12 -18
- package/dist/generated/templates/TableTemplate.lit.js +13 -15
- package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +8 -15
- package/dist/generated/templates/TextAreaTemplate.lit.js +8 -15
- package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +4 -15
- package/dist/generated/templates/TimePickerTemplate.lit.js +6 -13
- package/dist/generated/templates/TimeSelectionTemplate.lit.js +11 -0
- package/dist/generated/templates/TitleTemplate.lit.js +10 -17
- package/dist/generated/templates/ToastTemplate.lit.js +5 -11
- package/dist/generated/templates/ToggleButtonTemplate.lit.js +6 -13
- package/dist/generated/templates/TokenTemplate.lit.js +7 -14
- package/dist/generated/templates/TokenizerPopoverTemplate.lit.js +9 -16
- package/dist/generated/templates/TokenizerTemplate.lit.js +6 -13
- package/dist/generated/templates/TreeListItemTemplate.lit.js +18 -24
- package/dist/generated/templates/TreeTemplate.lit.js +5 -12
- package/dist/generated/templates/WheelSliderTemplate.lit.js +7 -14
- package/dist/generated/templates/YearPickerTemplate.lit.js +6 -13
- package/dist/generated/themes/Avatar.css.js +5 -5
- package/dist/generated/themes/AvatarGroup.css.js +8 -0
- package/dist/generated/themes/Badge.css.js +5 -5
- 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 +5 -5
- package/dist/generated/themes/Button.css.js +5 -5
- package/dist/generated/themes/Button.ie11.css.js +8 -0
- package/dist/generated/themes/Calendar.css.js +5 -5
- package/dist/generated/themes/CalendarHeader.css.js +5 -5
- package/dist/generated/themes/Card.css.js +5 -5
- package/dist/generated/themes/CardHeader.css.js +8 -0
- package/dist/generated/themes/Carousel.css.js +5 -5
- package/dist/generated/themes/CheckBox.css.js +5 -5
- 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 +5 -5
- package/dist/generated/themes/ComboBoxPopover.css.js +5 -5
- package/dist/generated/themes/CustomListItem.css.js +5 -5
- package/dist/generated/themes/DatePicker.css.js +5 -5
- package/dist/generated/themes/DatePickerPopover.css.js +5 -5
- package/dist/generated/themes/DateRangePicker.css.js +5 -5
- package/dist/generated/themes/DateTimePicker.css.js +5 -5
- package/dist/generated/themes/DateTimePickerPopover.css.js +5 -5
- package/dist/generated/themes/DayPicker.css.js +5 -5
- package/dist/generated/themes/Dialog.css.js +5 -5
- package/dist/generated/themes/FileUploader.css.js +5 -5
- package/dist/generated/themes/GroupHeaderListItem.css.js +5 -5
- package/dist/generated/themes/GrowingButton.css.js +8 -0
- package/dist/generated/themes/Icon.css.js +5 -5
- package/dist/generated/themes/Input.css.js +5 -5
- package/dist/generated/themes/InputIcon.css.js +5 -5
- package/dist/generated/themes/InvisibleTextStyles.css.js +5 -5
- package/dist/generated/themes/Label.css.js +5 -5
- package/dist/generated/themes/Link.css.js +5 -5
- package/dist/generated/themes/List.css.js +5 -5
- package/dist/generated/themes/ListItem.css.js +5 -5
- package/dist/generated/themes/ListItemBase.css.js +5 -5
- package/dist/generated/themes/MessageStrip.css.js +5 -5
- package/dist/generated/themes/MonthPicker.css.js +5 -5
- package/dist/generated/themes/MultiComboBox.css.js +5 -5
- package/dist/generated/themes/MultiInput.css.js +5 -5
- package/dist/generated/themes/Panel.css.js +5 -5
- package/dist/generated/themes/Popover.css.js +5 -5
- package/dist/generated/themes/Popup.css.js +5 -5
- package/dist/generated/themes/PopupGlobal.css.js +8 -0
- package/dist/generated/themes/PopupStaticAreaStyles.css.js +5 -5
- package/dist/generated/themes/PopupsCommon.css.js +5 -5
- package/dist/generated/themes/ProgressIndicator.css.js +5 -5
- package/dist/generated/themes/RadioButton.css.js +5 -5
- package/dist/generated/themes/RatingIndicator.css.js +5 -5
- package/dist/generated/themes/ResponsivePopover.css.js +5 -5
- package/dist/generated/themes/ResponsivePopoverCommon.css.js +5 -5
- package/dist/generated/themes/SegmentedButton.css.js +5 -5
- package/dist/generated/themes/Select.css.js +5 -5
- package/dist/generated/themes/SelectPopover.css.js +5 -5
- 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 +5 -5
- package/dist/generated/themes/Tab.css.js +5 -5
- package/dist/generated/themes/TabContainer.css.js +5 -5
- package/dist/generated/themes/TabInOverflow.css.js +5 -5
- package/dist/generated/themes/TabInStrip.css.js +5 -5
- package/dist/generated/themes/Table.css.js +5 -5
- package/dist/generated/themes/TableCell.css.js +5 -5
- package/dist/generated/themes/TableColumn.css.js +5 -5
- package/dist/generated/themes/TableGroupRow.css.js +8 -0
- package/dist/generated/themes/TableRow.css.js +5 -5
- package/dist/generated/themes/TapHighlightColor.css.js +8 -0
- package/dist/generated/themes/TextArea.css.js +5 -5
- package/dist/generated/themes/TimePicker.css.js +5 -5
- package/dist/generated/themes/TimePickerPopover.css.js +5 -5
- package/dist/generated/themes/TimeSelection.css.js +8 -0
- package/dist/generated/themes/Title.css.js +5 -5
- package/dist/generated/themes/Toast.css.js +5 -5
- package/dist/generated/themes/ToggleButton.css.js +5 -5
- package/dist/generated/themes/ToggleButton.ie11.css.js +8 -0
- package/dist/generated/themes/Token.css.js +5 -5
- package/dist/generated/themes/Tokenizer.css.js +5 -5
- package/dist/generated/themes/Tree.css.js +5 -5
- package/dist/generated/themes/TreeListItem.css.js +5 -5
- package/dist/generated/themes/ValueStateMessage.css.js +5 -5
- package/dist/generated/themes/WheelSlider.css.js +5 -5
- package/dist/generated/themes/YearPicker.css.js +5 -5
- 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 -1
- 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 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
- 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 +1 -1
- package/dist/popup-utils/PopoverRegistry.js +2 -4
- package/dist/timepicker-utils/TimeSlider.js +15 -13
- package/{src/types/AvatarBackgroundColor.js → dist/types/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 +3 -3
- 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 +1 -1
- package/dist/types/ListMode.js +1 -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 +1 -1
- package/dist/types/SemanticColor.js +1 -1
- package/dist/types/SwitchDesign.js +40 -0
- package/dist/types/TabContainerTabsPlacement.js +5 -5
- package/dist/types/TabLayout.js +1 -1
- 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 +18 -7
- package/src/Assets-static.js +6 -0
- package/src/Assets.js +2 -1
- package/src/Avatar.hbs +14 -3
- package/src/Avatar.js +189 -49
- package/src/AvatarGroup.hbs +30 -0
- package/src/AvatarGroup.js +603 -0
- package/src/Badge.hbs +7 -4
- package/src/Badge.js +45 -19
- 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 +28 -14
- package/src/BusyIndicator.js +121 -34
- package/src/Button.hbs +5 -3
- package/src/Button.js +110 -66
- package/src/Calendar.hbs +53 -48
- package/src/Calendar.js +324 -648
- package/src/CalendarDate.js +45 -0
- package/src/CalendarHeader.hbs +29 -36
- package/src/CalendarHeader.js +110 -59
- package/src/CalendarPart.js +111 -0
- package/src/Card.hbs +7 -39
- package/src/Card.js +38 -198
- package/src/CardHeader.hbs +35 -0
- package/src/CardHeader.js +288 -0
- package/src/Carousel.hbs +23 -16
- package/src/Carousel.js +253 -94
- package/src/CheckBox.hbs +10 -7
- package/src/CheckBox.js +138 -70
- 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 +7 -2
- package/src/ComboBox.js +348 -144
- package/src/ComboBoxFilters.js +8 -1
- package/src/ComboBoxGroupItem.js +70 -0
- package/src/ComboBoxItem.js +11 -24
- package/src/ComboBoxPopover.hbs +26 -16
- package/src/CustomListItem.js +36 -2
- package/src/DateComponentBase.js +170 -0
- package/src/DatePicker.hbs +5 -4
- package/src/DatePicker.js +264 -519
- package/src/DatePickerPopover.hbs +22 -17
- package/src/DateRangePicker.js +162 -426
- package/src/DateTimePicker.js +94 -413
- package/src/DateTimePickerPopover.hbs +28 -52
- package/src/DayPicker.hbs +18 -12
- package/src/DayPicker.js +443 -648
- package/src/Dialog.hbs +14 -10
- package/src/Dialog.js +220 -58
- package/src/DurationPicker.js +109 -511
- package/src/FileUploader.hbs +3 -0
- package/src/FileUploader.js +70 -31
- package/src/FileUploaderPopover.hbs +2 -1
- package/src/GroupHeaderListItem.hbs +4 -4
- package/src/GroupHeaderListItem.js +22 -13
- package/src/Icon.hbs +4 -3
- package/src/Icon.js +103 -41
- package/src/Input.hbs +17 -6
- package/src/Input.js +346 -155
- package/src/InputPopover.hbs +11 -7
- package/src/Interfaces.js +192 -0
- package/src/Label.hbs +1 -1
- package/src/Label.js +27 -12
- package/src/Link.hbs +3 -2
- package/src/Link.js +105 -43
- package/src/List.hbs +76 -37
- package/src/List.js +377 -104
- package/src/ListItem.hbs +20 -7
- package/src/ListItem.js +60 -13
- package/src/ListItemBase.js +29 -2
- package/src/MessageStrip.hbs +10 -11
- package/src/MessageStrip.js +47 -46
- package/src/MonthPicker.hbs +6 -6
- package/src/MonthPicker.js +171 -225
- package/src/MultiComboBox.hbs +10 -6
- package/src/MultiComboBox.js +356 -135
- package/src/MultiComboBoxItem.js +7 -2
- package/src/MultiComboBoxPopover.hbs +42 -18
- package/src/MultiInput.hbs +2 -1
- package/src/MultiInput.js +55 -24
- package/src/Option.js +48 -5
- package/src/Panel.hbs +23 -16
- package/src/Panel.js +63 -73
- package/src/Popover.js +195 -80
- package/src/Popup.hbs +5 -0
- package/src/Popup.js +151 -61
- package/src/ProgressIndicator.hbs +7 -1
- package/src/ProgressIndicator.js +28 -20
- package/src/RadioButton.hbs +7 -4
- package/src/RadioButton.js +126 -43
- package/src/RadioButtonGroup.js +53 -29
- package/src/RangeSlider.hbs +70 -0
- package/src/RangeSlider.js +769 -0
- package/src/RatingIndicator.hbs +5 -3
- package/src/RatingIndicator.js +27 -37
- package/src/ResponsivePopover.hbs +13 -8
- package/src/ResponsivePopover.js +56 -42
- package/src/SegmentedButton.hbs +12 -5
- package/src/SegmentedButton.js +102 -68
- package/src/SegmentedButtonItem.hbs +42 -0
- package/src/SegmentedButtonItem.js +109 -0
- package/src/Select.hbs +26 -17
- package/src/Select.js +275 -116
- package/src/SelectPopover.hbs +27 -24
- 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 +7 -5
- package/src/StandardListItem.js +35 -9
- package/src/StepInput.hbs +77 -0
- package/src/StepInput.js +681 -0
- package/src/SuggestionGroupItem.js +64 -0
- package/src/SuggestionItem.js +13 -26
- package/src/SuggestionListItem.hbs +4 -4
- package/src/SuggestionListItem.js +17 -6
- package/src/Switch.hbs +19 -3
- package/src/Switch.js +52 -32
- package/src/Tab.js +47 -26
- package/src/TabContainer.hbs +43 -26
- package/src/TabContainer.js +94 -34
- package/src/TabContainerPopover.hbs +2 -1
- package/src/TabInStrip.hbs +1 -6
- package/src/TabSeparator.hbs +1 -1
- package/src/TabSeparator.js +1 -0
- package/src/Table.hbs +95 -25
- package/src/Table.js +474 -22
- package/src/TableCell.hbs +1 -0
- package/src/TableCell.js +11 -9
- package/src/TableColumn.hbs +2 -0
- package/src/TableColumn.js +13 -3
- package/src/TableGroupRow.hbs +12 -0
- package/src/TableGroupRow.js +160 -0
- package/src/TableRow.hbs +29 -2
- package/src/TableRow.js +210 -11
- package/src/TextArea.hbs +1 -3
- package/src/TextArea.js +86 -46
- package/src/TextAreaPopover.hbs +2 -1
- package/src/TimePicker.hbs +6 -3
- package/src/TimePicker.js +27 -743
- package/src/TimePickerBase.js +463 -0
- package/src/TimePickerPopover.hbs +28 -52
- package/src/TimeSelection.hbs +60 -0
- package/src/TimeSelection.js +493 -0
- package/src/Title.js +16 -9
- package/src/Toast.hbs +13 -11
- package/src/Toast.js +19 -8
- package/src/ToggleButton.js +21 -8
- package/src/Token.hbs +2 -0
- package/src/Token.js +32 -16
- package/src/Tokenizer.hbs +1 -0
- package/src/Tokenizer.js +75 -42
- package/src/TokenizerPopover.hbs +1 -1
- package/src/Tree.hbs +10 -2
- package/src/Tree.js +97 -41
- package/src/TreeItem.js +44 -9
- package/src/TreeListItem.hbs +15 -4
- package/src/TreeListItem.js +86 -2
- package/src/WheelSlider.hbs +17 -10
- package/src/WheelSlider.js +58 -58
- package/src/YearPicker.hbs +9 -7
- package/src/YearPicker.js +188 -284
- package/src/features/ColorPaletteMoreColors.js +42 -0
- package/src/features/InputElementsFormSupport.js +0 -1
- package/src/features/InputSuggestions.js +131 -30
- package/src/i18n/messagebundle.properties +144 -189
- package/src/i18n/messagebundle_ar.properties +99 -115
- package/src/i18n/messagebundle_bg.properties +99 -115
- package/src/i18n/messagebundle_ca.properties +99 -115
- package/src/i18n/messagebundle_cs.properties +99 -115
- package/src/i18n/messagebundle_cy.properties +224 -0
- package/src/i18n/messagebundle_da.properties +99 -115
- package/src/i18n/messagebundle_de.properties +99 -115
- package/src/i18n/messagebundle_el.properties +99 -115
- package/src/i18n/messagebundle_en.properties +99 -115
- package/src/i18n/messagebundle_en_GB.properties +224 -0
- package/src/i18n/messagebundle_en_US_sappsd.properties +99 -115
- package/src/i18n/messagebundle_en_US_saprigi.properties +224 -0
- package/src/i18n/messagebundle_en_US_saptrc.properties +99 -115
- package/src/i18n/messagebundle_es.properties +99 -115
- package/src/i18n/messagebundle_es_MX.properties +224 -0
- package/src/i18n/messagebundle_et.properties +99 -115
- package/src/i18n/messagebundle_fi.properties +99 -115
- package/src/i18n/messagebundle_fr.properties +99 -115
- package/src/i18n/messagebundle_fr_CA.properties +224 -0
- package/src/i18n/messagebundle_hi.properties +99 -115
- package/src/i18n/messagebundle_hr.properties +99 -115
- package/src/i18n/messagebundle_hu.properties +99 -115
- package/src/i18n/messagebundle_id.properties +224 -0
- package/src/i18n/messagebundle_in.properties +172 -0
- package/src/i18n/messagebundle_it.properties +99 -115
- package/src/i18n/messagebundle_iw.properties +99 -115
- package/src/i18n/messagebundle_ja.properties +100 -116
- package/src/i18n/messagebundle_kk.properties +99 -115
- package/src/i18n/messagebundle_ko.properties +99 -115
- package/src/i18n/messagebundle_lt.properties +99 -115
- package/src/i18n/messagebundle_lv.properties +99 -115
- package/src/i18n/messagebundle_ms.properties +99 -115
- package/src/i18n/messagebundle_nl.properties +99 -115
- package/src/i18n/messagebundle_no.properties +99 -115
- package/src/i18n/messagebundle_pl.properties +99 -115
- package/src/i18n/messagebundle_pt.properties +99 -115
- package/src/i18n/messagebundle_pt_PT.properties +224 -0
- package/src/i18n/messagebundle_ro.properties +98 -114
- package/src/i18n/messagebundle_ru.properties +99 -115
- package/src/i18n/messagebundle_sh.properties +99 -115
- package/src/i18n/messagebundle_sk.properties +99 -115
- package/src/i18n/messagebundle_sl.properties +99 -115
- package/src/i18n/messagebundle_sv.properties +99 -115
- package/src/i18n/messagebundle_th.properties +99 -115
- package/src/i18n/messagebundle_tr.properties +99 -115
- package/src/i18n/messagebundle_uk.properties +101 -117
- package/src/i18n/messagebundle_vi.properties +99 -115
- package/src/i18n/messagebundle_zh_CN.properties +99 -115
- package/src/i18n/messagebundle_zh_TW.properties +99 -115
- package/src/popup-utils/OpenedPopupsRegistry.js +1 -1
- package/src/popup-utils/PopoverRegistry.js +2 -4
- package/src/timepicker-utils/TimeSlider.js +15 -13
- package/{dist/types/AvatarBackgroundColor.js → src/types/AvatarColorScheme.js} +9 -9
- package/src/types/AvatarGroupType.js +43 -0
- package/src/types/AvatarShape.js +1 -1
- package/src/types/AvatarSize.js +1 -1
- package/src/types/BreadcrumbsDesign.js +42 -0
- package/src/types/BreadcrumbsSeparatorStyle.js +69 -0
- package/src/types/BusyIndicatorSize.js +1 -1
- package/src/types/ButtonDesign.js +8 -1
- package/src/types/CalendarSelectionMode.js +47 -0
- package/src/types/CarouselArrowsPlacement.js +3 -3
- package/src/types/GrowingMode.js +48 -0
- package/src/types/InputType.js +7 -7
- package/src/types/LinkDesign.js +1 -1
- package/src/types/ListGrowingMode.js +15 -0
- package/src/types/ListItemType.js +1 -1
- package/src/types/ListMode.js +1 -1
- package/src/types/ListSeparators.js +1 -1
- package/src/types/{MessageStripType.js → MessageStripDesign.js} +7 -7
- package/src/types/PanelAccessibleRole.js +1 -1
- package/src/types/PopoverHorizontalAlign.js +1 -1
- package/src/types/PopoverPlacementType.js +2 -2
- package/src/types/PopoverVerticalAlign.js +1 -2
- package/src/types/Priority.js +1 -1
- package/src/types/SemanticColor.js +1 -1
- package/src/types/SwitchDesign.js +40 -0
- package/src/types/TabContainerTabsPlacement.js +5 -5
- package/src/types/TabLayout.js +1 -1
- 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 +1 -1
- package/src/types/ToastPlacement.js +1 -2
- package/src/types/WrappingType.js +41 -0
- package/dist/Timeline.js +0 -99
- package/dist/TimelineItem.js +0 -156
- package/dist/generated/templates/ComboBoxItemTemplate.lit.js +0 -14
- package/dist/generated/templates/DateRangePickerTemplate.lit.js +0 -16
- package/dist/generated/templates/DurationPickerPopoverTemplate.lit.js +0 -17
- package/dist/generated/templates/DurationPickerTemplate.lit.js +0 -16
- package/dist/generated/templates/TimelineItemTemplate.lit.js +0 -19
- package/dist/generated/templates/TimelineTemplate.lit.js +0 -15
- package/dist/generated/themes/ComboBoxItem.css.js +0 -8
- package/dist/generated/themes/DurationPicker.css.js +0 -8
- package/dist/generated/themes/DurationPickerPopover.css.js +0 -8
- package/dist/generated/themes/Timeline.css.js +0 -8
- package/dist/generated/themes/TimelineItem.css.js +0 -8
- package/dist/popup-utils/PopupUtils.js +0 -84
- package/dist/types/AvatarFitType.js +0 -40
- package/dist/webcomponentsjs/package.json +0 -46
- package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
- package/src/ComboBoxItem.hbs +0 -0
- package/src/DateRangePicker.hbs +0 -1
- package/src/DurationPicker.hbs +0 -29
- package/src/DurationPickerPopover.hbs +0 -48
- package/src/Timeline.hbs +0 -9
- package/src/Timeline.js +0 -99
- package/src/TimelineItem.hbs +0 -39
- package/src/TimelineItem.js +0 -156
- package/src/popup-utils/PopupUtils.js +0 -84
- package/src/types/AvatarFitType.js +0 -40
|
@@ -0,0 +1,603 @@
|
|
|
1
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
+
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
3
|
+
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
4
|
+
import ItemNavigation from "@ui5/webcomponents-base/dist/delegate/ItemNavigation.js";
|
|
5
|
+
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
isEnter,
|
|
9
|
+
isSpace,
|
|
10
|
+
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
11
|
+
|
|
12
|
+
import {
|
|
13
|
+
AVATAR_GROUP_DISPLAYED_HIDDEN_LABEL,
|
|
14
|
+
AVATAR_GROUP_SHOW_COMPLETE_LIST_LABEL,
|
|
15
|
+
AVATAR_GROUP_ARIA_LABEL_INDIVIDUAL,
|
|
16
|
+
AVATAR_GROUP_ARIA_LABEL_GROUP,
|
|
17
|
+
AVATAR_GROUP_MOVE,
|
|
18
|
+
} from "./generated/i18n/i18n-defaults.js";
|
|
19
|
+
|
|
20
|
+
// Template
|
|
21
|
+
import AvatarGroupTemplate from "./generated/templates/AvatarGroupTemplate.lit.js";
|
|
22
|
+
// Styles
|
|
23
|
+
import AvatarGroupCss from "./generated/themes/AvatarGroup.css.js";
|
|
24
|
+
|
|
25
|
+
import Button from "./Button.js";
|
|
26
|
+
import AvatarSize from "./types/AvatarSize.js";
|
|
27
|
+
import AvatarGroupType from "./types/AvatarGroupType.js";
|
|
28
|
+
import AvatarColorScheme from "./types/AvatarColorScheme.js";
|
|
29
|
+
|
|
30
|
+
const OVERFLOW_BTN_CLASS = "ui5-avatar-group-overflow-btn";
|
|
31
|
+
const AVATAR_GROUP_OVERFLOW_BTN_SELECTOR = `.${OVERFLOW_BTN_CLASS}`;
|
|
32
|
+
|
|
33
|
+
// based on RTL/LTR a margin-left/right is set respectfully
|
|
34
|
+
const offsets = {
|
|
35
|
+
[AvatarSize.XS]: {
|
|
36
|
+
[AvatarGroupType.Individual]: "0.0625rem",
|
|
37
|
+
[AvatarGroupType.Group]: "-0.75rem",
|
|
38
|
+
},
|
|
39
|
+
[AvatarSize.S]: {
|
|
40
|
+
[AvatarGroupType.Individual]: "0.125rem",
|
|
41
|
+
[AvatarGroupType.Group]: "-1.25rem",
|
|
42
|
+
},
|
|
43
|
+
[AvatarSize.M]: {
|
|
44
|
+
[AvatarGroupType.Individual]: "0.125rem",
|
|
45
|
+
[AvatarGroupType.Group]: "-1.625rem",
|
|
46
|
+
},
|
|
47
|
+
[AvatarSize.L]: {
|
|
48
|
+
[AvatarGroupType.Individual]: "0.125rem",
|
|
49
|
+
[AvatarGroupType.Group]: " -2rem",
|
|
50
|
+
},
|
|
51
|
+
[AvatarSize.XL]: {
|
|
52
|
+
[AvatarGroupType.Individual]: "0.25rem",
|
|
53
|
+
[AvatarGroupType.Group]: "-2.75rem",
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* @public
|
|
59
|
+
*/
|
|
60
|
+
const metadata = {
|
|
61
|
+
tag: "ui5-avatar-group",
|
|
62
|
+
managedSlots: true,
|
|
63
|
+
properties: /** @lends sap.ui.webcomponents.main.AvatarGroup.prototype */ {
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Defines the mode of the <code>AvatarGroup</code>.
|
|
67
|
+
* <br><br>
|
|
68
|
+
* Available options are:
|
|
69
|
+
* <ul>
|
|
70
|
+
* <li><code>Group</code></li>
|
|
71
|
+
* <li><code>Individual</code></li>
|
|
72
|
+
* </ul>
|
|
73
|
+
* @type {AvatarGroupType}
|
|
74
|
+
* @defaultValue "Group"
|
|
75
|
+
* @public
|
|
76
|
+
*/
|
|
77
|
+
type: {
|
|
78
|
+
type: String,
|
|
79
|
+
defaultValue: AvatarGroupType.Group,
|
|
80
|
+
},
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Defines the aria-haspopup value of the component on:
|
|
84
|
+
* <br><br>
|
|
85
|
+
* <ul>
|
|
86
|
+
* <li> the whole container when <code>type</code> property is <code>Group</code></li>
|
|
87
|
+
* <li> the default "More" overflow button when <code>type</code> is <code>Individual</code></li>
|
|
88
|
+
* </ul>
|
|
89
|
+
* <br><br>
|
|
90
|
+
* @type String
|
|
91
|
+
* @since 1.0.0-rc.15
|
|
92
|
+
* @protected
|
|
93
|
+
*/
|
|
94
|
+
ariaHaspopup: {
|
|
95
|
+
type: String,
|
|
96
|
+
},
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* @private
|
|
100
|
+
*/
|
|
101
|
+
_overflowButtonText: {
|
|
102
|
+
type: String,
|
|
103
|
+
noAttribute: true,
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
slots: /** @lends sap.ui.webcomponents.main.AvatarGroup.prototype */ {
|
|
107
|
+
/**
|
|
108
|
+
* Defines the items of the component. Use the <code>ui5-avatar</code> component as an item.
|
|
109
|
+
* <br><br>
|
|
110
|
+
* <b>Note:</b> The UX guidelines recommends using avatars with "Circle" shape.
|
|
111
|
+
* Moreover, if you use avatars with "Square" shape, there will be visual inconsistency
|
|
112
|
+
* as the built-in overflow action has "Circle" shape.
|
|
113
|
+
* @type {sap.ui.webcomponents.main.IAvatar[]}
|
|
114
|
+
* @slot items
|
|
115
|
+
* @public
|
|
116
|
+
*/
|
|
117
|
+
"default": {
|
|
118
|
+
type: HTMLElement,
|
|
119
|
+
propertyName: "items",
|
|
120
|
+
},
|
|
121
|
+
/**
|
|
122
|
+
* Defines the overflow button of the component.
|
|
123
|
+
* <b>Note:</b> We recommend using the <code>ui5-button</code> component.
|
|
124
|
+
* <br><br>
|
|
125
|
+
* <b>Note:</b> If this slot is not used, the component will
|
|
126
|
+
* display the built-in overflow button.
|
|
127
|
+
* @type {HTMLElement}
|
|
128
|
+
* @slot overflowButton
|
|
129
|
+
* @public
|
|
130
|
+
* @since 1.0.0-rc.13
|
|
131
|
+
*/
|
|
132
|
+
overflowButton: {
|
|
133
|
+
type: HTMLElement,
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
events: /** @lends sap.ui.webcomponents.main.AvatarGroup.prototype */ {
|
|
137
|
+
/**
|
|
138
|
+
* Fired when the component is activated either with a
|
|
139
|
+
* click/tap or by using the Enter or Space key.
|
|
140
|
+
* @param {HTMLElement} targetRef The DOM ref of the clicked item.
|
|
141
|
+
* @param {boolean} overflowButtonClicked indicates if the overflow button is clicked
|
|
142
|
+
* @event
|
|
143
|
+
* @public
|
|
144
|
+
* @since 1.0.0-rc.11
|
|
145
|
+
*/
|
|
146
|
+
click: {
|
|
147
|
+
detail: {
|
|
148
|
+
targetRef: { type: HTMLElement },
|
|
149
|
+
overflowButtonClicked: { type: Boolean },
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
/**
|
|
153
|
+
* Fired when the count of visible <code>ui5-avatar</code> elements in the
|
|
154
|
+
* component has changed
|
|
155
|
+
* @event
|
|
156
|
+
* @public
|
|
157
|
+
* @since 1.0.0-rc.13
|
|
158
|
+
*/
|
|
159
|
+
overflow: {},
|
|
160
|
+
},
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* @class
|
|
165
|
+
*
|
|
166
|
+
* <h3 class="comment-api-title">Overview</h3>
|
|
167
|
+
*
|
|
168
|
+
* Displays a group of avatars arranged horizontally. It is useful to visually
|
|
169
|
+
* showcase a group of related avatars, such as, project team members or employees.
|
|
170
|
+
*
|
|
171
|
+
* The component allows you to display the avatars in different sizes,
|
|
172
|
+
* depending on your use case.
|
|
173
|
+
*
|
|
174
|
+
* The <code>AvatarGroup</code> component has two group types:
|
|
175
|
+
* <ul>
|
|
176
|
+
* <li><code>Group</code> type: The avatars are displayed as partially overlapped on
|
|
177
|
+
* top of each other and the entire group has one click/tap area.</li>
|
|
178
|
+
* <li><code>Individual</code> type: The avatars are displayed side-by-side and each
|
|
179
|
+
* avatar has its own click/tap area.</li>
|
|
180
|
+
* </ul>
|
|
181
|
+
*
|
|
182
|
+
* <h3>Responsive Behavior</h3>
|
|
183
|
+
*
|
|
184
|
+
* When the available space is less than the width required to display all avatars,
|
|
185
|
+
* an overflow visualization appears as a button placed at the end with the same shape
|
|
186
|
+
* and size as the avatars. The visualization displays the number of avatars that have overflowed
|
|
187
|
+
* and are not currently visible.
|
|
188
|
+
*
|
|
189
|
+
* <h3>Usage</h3>
|
|
190
|
+
*
|
|
191
|
+
* Use the <code>AvatarGroup</code> if:
|
|
192
|
+
* <ul>
|
|
193
|
+
* <li>You want to display a group of avatars.</li>
|
|
194
|
+
* <li>You want to display several avatars which have something in common.</li>
|
|
195
|
+
* </ul>
|
|
196
|
+
*
|
|
197
|
+
* Do not use the <code>AvatarGroup</code> if:
|
|
198
|
+
* <ul>
|
|
199
|
+
* <li>You want to display a single avatar.</li>
|
|
200
|
+
* <li>You want to display a gallery for simple images.</li>
|
|
201
|
+
* <li>You want to use it for other visual content than avatars.</li>
|
|
202
|
+
* </ul>
|
|
203
|
+
*
|
|
204
|
+
* <h3>Keyboard Handling</h3>
|
|
205
|
+
* The component provides advanced keyboard handling.
|
|
206
|
+
* When focused, the user can use the following keyboard
|
|
207
|
+
* shortcuts in order to perform a navigation:
|
|
208
|
+
* <br>
|
|
209
|
+
* - <code>type</code> Individual:
|
|
210
|
+
* <br>
|
|
211
|
+
* <ul>
|
|
212
|
+
* <li>[TAB] - Move focus to the overflow button</li>
|
|
213
|
+
* <li>[LEFT] - Navigate one avatar to the left</li>
|
|
214
|
+
* <li>[RIGHT] - Navigate one avatar to the right</li>
|
|
215
|
+
* <li>[HOME] - Navigate to the first avatar</li>
|
|
216
|
+
* <li>[END] - Navigate to the last avatar</li>
|
|
217
|
+
* <li>[SPACE],[ENTER],[RETURN] - Trigger <code>ui5-click</code> event</li>
|
|
218
|
+
* </ul>
|
|
219
|
+
* <br>
|
|
220
|
+
* - <code>type</code> Group:
|
|
221
|
+
* <br>
|
|
222
|
+
* <ul>
|
|
223
|
+
* <li>[TAB] - Move focus to the next interactive element after the component</li>
|
|
224
|
+
* <li>[SPACE],[ENTER],[RETURN] - Trigger <code>ui5-click</code> event</li>
|
|
225
|
+
* </ul>
|
|
226
|
+
* <br>
|
|
227
|
+
*
|
|
228
|
+
* @constructor
|
|
229
|
+
* @author SAP SE
|
|
230
|
+
* @alias sap.ui.webcomponents.main.AvatarGroup
|
|
231
|
+
* @extends UI5Element
|
|
232
|
+
* @tagname ui5-avatar-group
|
|
233
|
+
* @since 1.0.0-rc.11
|
|
234
|
+
* @public
|
|
235
|
+
*/
|
|
236
|
+
class AvatarGroup extends UI5Element {
|
|
237
|
+
constructor() {
|
|
238
|
+
super();
|
|
239
|
+
|
|
240
|
+
this._itemNavigation = new ItemNavigation(this, {
|
|
241
|
+
getItemsCallback: () => {
|
|
242
|
+
return this._isGroup ? [] : this.items.slice(0, this._hiddenStartIndex);
|
|
243
|
+
},
|
|
244
|
+
});
|
|
245
|
+
|
|
246
|
+
this._colorIndex = 0;
|
|
247
|
+
this._hiddenItems = 0;
|
|
248
|
+
this._onResizeHandler = this._onResize.bind(this);
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
static get metadata() {
|
|
252
|
+
return metadata;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
static get render() {
|
|
256
|
+
return litRender;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
static get template() {
|
|
260
|
+
return AvatarGroupTemplate;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
static get styles() {
|
|
264
|
+
return AvatarGroupCss;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
static get dependencies() {
|
|
268
|
+
return [
|
|
269
|
+
Button,
|
|
270
|
+
];
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
static async onDefine() {
|
|
274
|
+
AvatarGroup.i18nBundle = await getI18nBundle("@ui5/webcomponents");
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* Returns an array containing the <code>ui5-avatar</code> instances that are currently not displayed due to lack of space.
|
|
279
|
+
* @readonly
|
|
280
|
+
* @type { Array }
|
|
281
|
+
* @defaultValue []
|
|
282
|
+
* @public
|
|
283
|
+
*/
|
|
284
|
+
get hiddenItems() {
|
|
285
|
+
return this.items.slice(this._hiddenStartIndex);
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* Returns an array containing the <code>AvatarColorScheme</code> values that correspond to the avatars in the component.
|
|
290
|
+
* @readonly
|
|
291
|
+
* @type { Array }
|
|
292
|
+
* @defaultValue []
|
|
293
|
+
* @public
|
|
294
|
+
*/
|
|
295
|
+
get colorScheme() {
|
|
296
|
+
return this.items.map(avatar => avatar._effectiveBackgroundColor);
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
get _customOverflowButton() {
|
|
300
|
+
return this.overflowButton.length ? this.overflowButton[0] : undefined;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
get _ariaLabelText() {
|
|
304
|
+
const hiddenItemsCount = this.hiddenItems.length;
|
|
305
|
+
const typeLabelKey = this._isGroup ? AVATAR_GROUP_ARIA_LABEL_GROUP : AVATAR_GROUP_ARIA_LABEL_INDIVIDUAL;
|
|
306
|
+
|
|
307
|
+
// avatar type label
|
|
308
|
+
let text = AvatarGroup.i18nBundle.getText(typeLabelKey);
|
|
309
|
+
|
|
310
|
+
// add displayed-hidden avatars label
|
|
311
|
+
text += ` ${AvatarGroup.i18nBundle.getText(AVATAR_GROUP_DISPLAYED_HIDDEN_LABEL, this._itemsCount - hiddenItemsCount, hiddenItemsCount)}`;
|
|
312
|
+
|
|
313
|
+
if (this._isGroup) {
|
|
314
|
+
// the container role is "button", add the message for complete list activation
|
|
315
|
+
text += ` ${AvatarGroup.i18nBundle.getText(AVATAR_GROUP_SHOW_COMPLETE_LIST_LABEL)}`;
|
|
316
|
+
} else {
|
|
317
|
+
// the container role is "group", add the "how to navigate" message
|
|
318
|
+
text += ` ${AvatarGroup.i18nBundle.getText(AVATAR_GROUP_MOVE)}`;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
return text;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
get _overflowButtonAriaLabelText() {
|
|
325
|
+
return this._isGroup ? undefined : AvatarGroup.i18nBundle.getText(AVATAR_GROUP_SHOW_COMPLETE_LIST_LABEL);
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
get _containerAriaHasPopup() {
|
|
329
|
+
return this._isGroup ? this._getAriaHasPopup() : undefined;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
get _overflowButtonAccInfo() {
|
|
333
|
+
return {
|
|
334
|
+
ariaHaspopup: this._isGroup ? undefined : this._getAriaHasPopup(),
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
get _role() {
|
|
339
|
+
return this._isGroup ? "button" : "group";
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
get _hiddenStartIndex() {
|
|
343
|
+
return this._itemsCount - this._hiddenItems;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
get _overflowBtnHidden() {
|
|
347
|
+
return this._hiddenItems === 0;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
get _isGroup() {
|
|
351
|
+
return this.type === AvatarGroupType.Group;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
get _itemsCount() {
|
|
355
|
+
return this.items.length;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
get _groupTabIndex() {
|
|
359
|
+
return this._isGroup ? "0" : "-1";
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
get _overflowButton() {
|
|
363
|
+
return this.shadowRoot.querySelector(AVATAR_GROUP_OVERFLOW_BTN_SELECTOR);
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
/**
|
|
367
|
+
* Return the effective overflow button width
|
|
368
|
+
* Differences are that when in "Group" type the button is offset and overlaps the avatars
|
|
369
|
+
*
|
|
370
|
+
* 1) In case of "Group", (LTR/RTL aware) button width is qual to second item offset left/right
|
|
371
|
+
* 2) In case of "Individual" group type width is directly taken from button element
|
|
372
|
+
* @private
|
|
373
|
+
*/
|
|
374
|
+
get _overflowButtonEffectiveWidth() {
|
|
375
|
+
const button = this._customOverflowButton ? this._customOverflowButton : this._overflowButton;
|
|
376
|
+
// if in "Group" mode overflow button size is equal to the offset from second item
|
|
377
|
+
if (this._isGroup) {
|
|
378
|
+
let item = this.items[1];
|
|
379
|
+
|
|
380
|
+
// in some cases when second avatar is overflowed the offset of the button is the right one
|
|
381
|
+
if (!item || item.hidden) {
|
|
382
|
+
item = button;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
return this.effectiveDir === "rtl" ? this._getWidthToItem(item) : item.offsetLeft;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
return button.offsetWidth;
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
get firstAvatarSize() {
|
|
392
|
+
return this.items[0].size;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
get classes() {
|
|
396
|
+
return {
|
|
397
|
+
overflowButton: {
|
|
398
|
+
"ui5-avatar-group-overflow-btn": true,
|
|
399
|
+
"ui5-avatar-group-overflow-btn-xs": this.firstAvatarSize === "XS",
|
|
400
|
+
"ui5-avatar-group-overflow-btn-s": this.firstAvatarSize === "S",
|
|
401
|
+
"ui5-avatar-group-overflow-btn-m": this.firstAvatarSize === "M",
|
|
402
|
+
"ui5-avatar-group-overflow-btn-l": this.firstAvatarSize === "L",
|
|
403
|
+
"ui5-avatar-group-overflow-btn-xl": this.firstAvatarSize === "XL",
|
|
404
|
+
},
|
|
405
|
+
};
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
onAfterRendering() {
|
|
409
|
+
this._overflowItems();
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
onBeforeRendering() {
|
|
413
|
+
if (this._customOverflowButton) {
|
|
414
|
+
this._customOverflowButton.nonInteractive = this._isGroup;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
this._prepareAvatars();
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
onEnterDOM() {
|
|
421
|
+
ResizeHandler.register(this, this._onResizeHandler);
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
onExitDOM() {
|
|
425
|
+
ResizeHandler.deregister(this, this._onResizeHandler);
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
_onResize() {
|
|
429
|
+
this._overflowItems();
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
_onkeydown(event) {
|
|
433
|
+
// when type is "Individual" the ui5-avatar and ui5-button both
|
|
434
|
+
// fire "click" event when SPACE or ENTER are pressed and
|
|
435
|
+
// AvatarGroup "click" is fired in their handlers (_onClick, _onUI5Click).
|
|
436
|
+
if (this._isGroup) {
|
|
437
|
+
if (isEnter(event)) {
|
|
438
|
+
this._fireGroupEvent(event.target);
|
|
439
|
+
} else if (isSpace(event)) {
|
|
440
|
+
// prevent scrolling
|
|
441
|
+
event.preventDefault();
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
_onkeyup(event) {
|
|
447
|
+
if (!event.shiftKey && isSpace(event) && this._isGroup) {
|
|
448
|
+
this._fireGroupEvent(event.target);
|
|
449
|
+
event.preventDefault();
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
_fireGroupEvent(targetRef) {
|
|
454
|
+
const isOverflowButtonClicked = targetRef.classList.contains(OVERFLOW_BTN_CLASS) || targetRef === this._customOverflowButton;
|
|
455
|
+
|
|
456
|
+
this.fireEvent("click", {
|
|
457
|
+
targetRef,
|
|
458
|
+
overflowButtonClicked: isOverflowButtonClicked,
|
|
459
|
+
});
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
_onClick(event) {
|
|
463
|
+
// no matter the value of noConflict, the ui5-button and the group container (div) always fire a native click event
|
|
464
|
+
const isButton = event.target.hasAttribute("ui5-button");
|
|
465
|
+
event.stopPropagation();
|
|
466
|
+
|
|
467
|
+
if (this._isGroup || isButton) {
|
|
468
|
+
this._fireGroupEvent(event.target);
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
_onUI5Click(event) {
|
|
473
|
+
// when noConflict=true only ui5-avatar will fire ui5-click event
|
|
474
|
+
const isAvatar = event.target.hasAttribute("ui5-avatar");
|
|
475
|
+
event.stopPropagation();
|
|
476
|
+
|
|
477
|
+
if (isAvatar) {
|
|
478
|
+
this._fireGroupEvent(event.target);
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
/**
|
|
483
|
+
* Modifies avatars to the needs of avatar group properties. Respects already set size and background color.
|
|
484
|
+
* Set the margins (offsets) based on RTL/LTR.
|
|
485
|
+
* @private
|
|
486
|
+
*/
|
|
487
|
+
_prepareAvatars() {
|
|
488
|
+
const RTL = this.effectiveDir === "rtl";
|
|
489
|
+
this._colorIndex = 0;
|
|
490
|
+
|
|
491
|
+
this.items.forEach((avatar, index) => {
|
|
492
|
+
const colorIndex = this._getNextBackgroundColor();
|
|
493
|
+
avatar.interactive = !this._isGroup;
|
|
494
|
+
|
|
495
|
+
if (!avatar.getAttribute("_color-scheme")) {
|
|
496
|
+
// AvatarGroup respects colors set to ui5-avatar
|
|
497
|
+
avatar.setAttribute("_color-scheme", AvatarColorScheme[`Accent${colorIndex}`]);
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
// last avatar should not be offset as it breaks the container width and focus styles are no set correctly
|
|
501
|
+
if (index !== this._itemsCount - 1 || this._customOverflowButton) {
|
|
502
|
+
// based on RTL margin left or right is set to avatars
|
|
503
|
+
avatar.style[`margin-${RTL ? "left" : "right"}`] = offsets[avatar._effectiveSize][this.type];
|
|
504
|
+
}
|
|
505
|
+
});
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
_onfocusin(event) {
|
|
509
|
+
const target = event.target;
|
|
510
|
+
this._itemNavigation.setCurrentItem(target);
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
/**
|
|
514
|
+
* Returns the total width to item excluding the item width
|
|
515
|
+
* RTL/LTR aware
|
|
516
|
+
* @private
|
|
517
|
+
* @param {HTMLElement} item
|
|
518
|
+
*/
|
|
519
|
+
_getWidthToItem(item) {
|
|
520
|
+
const isRTL = this.effectiveDir === "rtl";
|
|
521
|
+
|
|
522
|
+
if (isRTL) {
|
|
523
|
+
// in RTL the total width is equal to difference of the parent container width and
|
|
524
|
+
// how much is the item offset to the left minus its offsetWidth
|
|
525
|
+
return item.offsetParent.offsetWidth - item.offsetLeft - item.offsetWidth;
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
// in LTR the width is equal to item.offsetLeft
|
|
529
|
+
return item.offsetLeft;
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
/**
|
|
533
|
+
* Overflows items that were not able to fit the container
|
|
534
|
+
* @private
|
|
535
|
+
*/
|
|
536
|
+
_overflowItems() {
|
|
537
|
+
if (this.items.length < 2) {
|
|
538
|
+
// no need to overflow avatars
|
|
539
|
+
return;
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
let hiddenItems = 0;
|
|
543
|
+
|
|
544
|
+
for (let index = 0; index < this._itemsCount; index++) {
|
|
545
|
+
const item = this.items[index];
|
|
546
|
+
|
|
547
|
+
// show item to determine if it will fit the new container size
|
|
548
|
+
item.hidden = false;
|
|
549
|
+
|
|
550
|
+
// container width to current item + item width (avatar)
|
|
551
|
+
// used to determine whether the following items will fit the container or not
|
|
552
|
+
let totalWidth = this._getWidthToItem(item) + item.offsetWidth;
|
|
553
|
+
|
|
554
|
+
if (index !== this._itemsCount - 1 || this._customOverflowButton) {
|
|
555
|
+
totalWidth += this._overflowButtonEffectiveWidth;
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
if (totalWidth > this.offsetWidth) {
|
|
559
|
+
hiddenItems = this._itemsCount - index;
|
|
560
|
+
break;
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
// hide the items that did not fit the container size
|
|
565
|
+
this._setHiddenItems(hiddenItems);
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
_getNextBackgroundColor() {
|
|
569
|
+
// counter is to automatically assign background colors to avatars, `Accent10` is the highest color value
|
|
570
|
+
if (++this._colorIndex > 10) {
|
|
571
|
+
this._colorIndex = 1;
|
|
572
|
+
}
|
|
573
|
+
return this._colorIndex;
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
_setHiddenItems(hiddenItems) {
|
|
577
|
+
const shouldFireEvent = this._hiddenItems !== hiddenItems;
|
|
578
|
+
|
|
579
|
+
this._hiddenItems = hiddenItems;
|
|
580
|
+
|
|
581
|
+
this.items.forEach((item, index) => {
|
|
582
|
+
item.hidden = index >= this._hiddenStartIndex;
|
|
583
|
+
});
|
|
584
|
+
|
|
585
|
+
this._overflowButtonText = `+${hiddenItems > 99 ? 99 : hiddenItems}`;
|
|
586
|
+
|
|
587
|
+
if (shouldFireEvent) {
|
|
588
|
+
this.fireEvent("overflow");
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
_getAriaHasPopup() {
|
|
593
|
+
if (this.ariaHaspopup === "") {
|
|
594
|
+
return;
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
return this.ariaHaspopup;
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
AvatarGroup.define();
|
|
602
|
+
|
|
603
|
+
export default AvatarGroup;
|
package/src/Badge.hbs
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
<div
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
{{
|
|
1
|
+
<div
|
|
2
|
+
class="ui5-badge-root"
|
|
3
|
+
dir="{{effectiveDir}}"
|
|
4
|
+
@mousedown="{{_onmousedown}}"
|
|
5
|
+
@mouseup="{{_onmouseup}}"
|
|
6
|
+
>
|
|
7
|
+
<slot name="icon"></slot>
|
|
5
8
|
|
|
6
9
|
{{#if hasText}}
|
|
7
10
|
<label class="ui5-badge-text"><bdi><slot></slot></bdi></label>
|