@sapudex/web-components 0.114.2 → 0.127.6
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/bundle.esm.js +6 -0
- package/config/wdio.conf.js +19 -8
- package/dist/AccordionItem.d.ts +2 -1
- package/dist/AccordionItem.js +3 -3
- package/dist/AccordionItem.js.map +1 -1
- package/dist/Avatar.d.ts +20 -1
- package/dist/Avatar.js +26 -2
- package/dist/Avatar.js.map +1 -1
- package/dist/AvatarGroup.d.ts +28 -0
- package/dist/AvatarGroup.js +126 -0
- package/dist/AvatarGroup.js.map +1 -0
- package/dist/CountrySelector.d.ts +1 -0
- package/dist/CountrySelector.js +3 -0
- package/dist/CountrySelector.js.map +1 -1
- package/dist/Dropdown.d.ts +11 -1
- package/dist/Dropdown.js +15 -3
- package/dist/Dropdown.js.map +1 -1
- package/dist/FilterMenu.d.ts +21 -5
- package/dist/FilterMenu.js +50 -8
- package/dist/FilterMenu.js.map +1 -1
- package/dist/Footer.d.ts +27 -0
- package/dist/Footer.js +27 -36
- package/dist/Footer.js.map +1 -1
- package/dist/HeroBanner.js +3 -0
- package/dist/HeroBanner.js.map +1 -1
- package/dist/InputGroup.js.map +1 -1
- package/dist/List.d.ts +7 -0
- package/dist/List.js +78 -18
- package/dist/List.js.map +1 -1
- package/dist/ListItem.d.ts +0 -1
- package/dist/ListItem.js +0 -6
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItemBase.d.ts +3 -0
- package/dist/ListItemBase.js +12 -0
- package/dist/ListItemBase.js.map +1 -1
- package/dist/MastheadItem.d.ts +1 -0
- package/dist/MastheadItem.js +5 -11
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadShell.d.ts +8 -0
- package/dist/MastheadShell.js +10 -0
- package/dist/MastheadShell.js.map +1 -1
- package/dist/MessageStrip.js +1 -1
- package/dist/MessageStrip.js.map +1 -1
- package/dist/Pagination.d.ts +3 -0
- package/dist/Pagination.js +16 -4
- package/dist/Pagination.js.map +1 -1
- package/dist/PasswordField.d.ts +14 -4
- package/dist/PasswordField.js +24 -15
- package/dist/PasswordField.js.map +1 -1
- package/dist/PhoneNumberField.d.ts +6 -0
- package/dist/PhoneNumberField.js +6 -1
- package/dist/PhoneNumberField.js.map +1 -1
- package/dist/RatingBar.d.ts +53 -0
- package/dist/RatingBar.js +96 -0
- package/dist/RatingBar.js.map +1 -0
- package/dist/Review.d.ts +71 -0
- package/dist/Review.js +108 -0
- package/dist/Review.js.map +1 -0
- package/dist/Search.d.ts +51 -0
- package/dist/Search.js +65 -11
- package/dist/Search.js.map +1 -1
- package/dist/SearchableListBase.d.ts +1 -1
- package/dist/SearchableListBase.js +1 -1
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SecondaryNavigation.d.ts +35 -47
- package/dist/SecondaryNavigation.js +158 -167
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.d.ts +101 -0
- package/dist/SecondaryNavigationItem.js +297 -0
- package/dist/SecondaryNavigationItem.js.map +1 -0
- package/dist/SecondaryNavigationItemBase.d.ts +82 -0
- package/dist/SecondaryNavigationItemBase.js +104 -0
- package/dist/SecondaryNavigationItemBase.js.map +1 -0
- package/dist/SecondaryNavigationSubItem.d.ts +53 -0
- package/dist/SecondaryNavigationSubItem.js +105 -0
- package/dist/SecondaryNavigationSubItem.js.map +1 -0
- package/dist/SelectBox.d.ts +1 -0
- package/dist/SelectBox.js +15 -1
- package/dist/SelectBox.js.map +1 -1
- package/dist/StatusBadge.d.ts +67 -0
- package/dist/StatusBadge.js +104 -0
- package/dist/StatusBadge.js.map +1 -0
- package/dist/Switch.d.ts +1 -0
- package/dist/Switch.js +3 -0
- package/dist/Switch.js.map +1 -1
- package/dist/Tab.d.ts +8 -0
- package/dist/Tab.js +4 -1
- package/dist/Tab.js.map +1 -1
- package/dist/TabNavigation.d.ts +20 -20
- package/dist/TabNavigation.js +82 -101
- package/dist/TabNavigation.js.map +1 -1
- package/dist/Tag.d.ts +13 -6
- package/dist/Tag.js +34 -20
- package/dist/Tag.js.map +1 -1
- package/dist/TextArea.d.ts +1 -1
- package/dist/TextArea.js +3 -0
- package/dist/TextArea.js.map +1 -1
- package/dist/TextField.d.ts +9 -0
- package/dist/TextField.js +16 -0
- package/dist/TextField.js.map +1 -1
- package/dist/Tooltip.d.ts +2 -2
- package/dist/Tooltip.js +3 -3
- package/dist/Tooltip.js.map +1 -1
- package/dist/assets/bundle.esm-7d53f4f2.js +314 -0
- package/dist/assets/messagebundle_en-6dcc9ab4.js +1 -0
- package/dist/assets/parameters-bundle.css-de55cf62.js +2 -0
- package/dist/css/themes/AccordionItem.css +1 -1
- package/dist/css/themes/Avatar.css +1 -1
- package/dist/css/themes/Badge.css +1 -1
- package/dist/css/themes/Checkbox.css +1 -1
- package/dist/css/themes/CountrySelector.css +1 -1
- package/dist/css/themes/Divider.css +1 -1
- package/dist/css/themes/Dropdown.css +1 -1
- package/dist/css/themes/FilterMenu.css +1 -1
- package/dist/css/themes/Footer.css +1 -1
- package/dist/css/themes/HeroBanner.css +1 -1
- package/dist/css/themes/MastheadShell.css +1 -1
- package/dist/css/themes/MediaPlayer.css +1 -1
- package/dist/css/themes/Modal.css +1 -1
- package/dist/css/themes/Pagination.css +1 -1
- package/dist/css/themes/PhoneNumberField.css +1 -1
- package/dist/css/themes/RatingBar.css +1 -0
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/Review.css +1 -0
- package/dist/css/themes/Search.css +1 -1
- package/dist/css/themes/SecondaryNavigation.css +1 -1
- package/dist/css/themes/SecondaryNavigationItem.css +1 -0
- package/dist/css/themes/SecondaryNavigationSubItem.css +1 -0
- package/dist/css/themes/SelectBox.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/css/themes/StatusBadge.css +1 -0
- package/dist/css/themes/StepInput.css +1 -1
- package/dist/css/themes/TabNavigation.css +1 -1
- package/dist/css/themes/Tag.css +1 -1
- package/dist/css/themes/TextField.css +1 -1
- package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +1 -1
- package/dist/custom-elements-internal.json +1291 -119
- package/dist/custom-elements.json +1298 -199
- package/dist/data/CountryListISO3166.js +162 -162
- package/dist/data/CountryListISO3166.js.map +1 -1
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/assets/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +16 -1
- package/dist/generated/i18n/i18n-defaults.js +20 -5
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/AccordionItemTemplate.lit.js +1 -1
- package/dist/generated/templates/AccordionItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/CountrySelectorTemplate.lit.js +1 -1
- package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
- package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
- package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
- package/dist/generated/templates/DropdownTemplate.lit.js +2 -2
- package/dist/generated/templates/DropdownTemplate.lit.js.map +1 -1
- package/dist/generated/templates/FilterMenuTemplate.lit.js +3 -3
- package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/FooterTemplate.lit.js +26 -28
- package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
- package/dist/generated/templates/HeroBannerTemplate.lit.js +9 -8
- package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.js +4 -4
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ListItemTemplate.lit.js +1 -1
- package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ListSelectAllTemplate.lit.js +1 -1
- package/dist/generated/templates/ListSelectAllTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadItemTemplate.lit.js +3 -3
- package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadShellTemplate.lit.js +2 -2
- package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
- package/dist/generated/templates/PaginationTemplate.lit.js +1 -1
- package/dist/generated/templates/PaginationTemplate.lit.js.map +1 -1
- package/dist/generated/templates/PasswordFieldTemplate.lit.js +1 -2
- package/dist/generated/templates/PasswordFieldTemplate.lit.js.map +1 -1
- package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +3 -3
- package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
- package/dist/generated/templates/RatingBarTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/RatingBarTemplate.lit.js +6 -0
- package/dist/generated/templates/RatingBarTemplate.lit.js.map +1 -0
- package/dist/generated/templates/ReviewTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/ReviewTemplate.lit.js +10 -0
- package/dist/generated/templates/ReviewTemplate.lit.js.map +1 -0
- package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +1 -1
- package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SearchTemplate.lit.js +7 -7
- package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SearchableListBaseTemplate.lit.js +2 -2
- package/dist/generated/templates/SearchableListBaseTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +11 -0
- package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -0
- package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +10 -0
- package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +1 -0
- package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +7 -10
- package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SelectBoxTemplate.lit.js +2 -2
- package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
- package/dist/generated/templates/StatusBadgeTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/StatusBadgeTemplate.lit.js +5 -0
- package/dist/generated/templates/StatusBadgeTemplate.lit.js.map +1 -0
- package/dist/generated/templates/SwitchTemplate.lit.js +2 -2
- package/dist/generated/templates/SwitchTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TabInOverflowTemplate.lit.js +2 -2
- package/dist/generated/templates/TabInOverflowTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TabNavigationTemplate.lit.js +2 -2
- package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TagTemplate.lit.js +9 -3
- package/dist/generated/templates/TagTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TextAreaTemplate.lit.js +1 -1
- package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TextFieldTemplate.lit.js +2 -2
- package/dist/generated/templates/TextFieldTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TooltipTemplate.lit.js +1 -1
- package/dist/generated/templates/TooltipTemplate.lit.js.map +1 -1
- package/dist/generated/themes/AccordionItem.css.js +1 -1
- package/dist/generated/themes/AccordionItem.css.js.map +1 -1
- package/dist/generated/themes/Avatar.css.js +1 -1
- package/dist/generated/themes/Avatar.css.js.map +1 -1
- package/dist/generated/themes/Badge.css.js +1 -1
- package/dist/generated/themes/Badge.css.js.map +1 -1
- package/dist/generated/themes/Checkbox.css.js +1 -1
- package/dist/generated/themes/Checkbox.css.js.map +1 -1
- package/dist/generated/themes/CountrySelector.css.js +1 -1
- package/dist/generated/themes/CountrySelector.css.js.map +1 -1
- package/dist/generated/themes/Divider.css.js +1 -1
- package/dist/generated/themes/Divider.css.js.map +1 -1
- package/dist/generated/themes/Dropdown.css.js +1 -1
- package/dist/generated/themes/Dropdown.css.js.map +1 -1
- package/dist/generated/themes/FilterMenu.css.js +1 -1
- package/dist/generated/themes/FilterMenu.css.js.map +1 -1
- package/dist/generated/themes/Footer.css.js +1 -1
- package/dist/generated/themes/Footer.css.js.map +1 -1
- package/dist/generated/themes/HeroBanner.css.js +1 -1
- package/dist/generated/themes/HeroBanner.css.js.map +1 -1
- package/dist/generated/themes/MastheadShell.css.js +1 -1
- package/dist/generated/themes/MastheadShell.css.js.map +1 -1
- package/dist/generated/themes/MediaPlayer.css.js +1 -1
- package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
- package/dist/generated/themes/Modal.css.js +1 -1
- package/dist/generated/themes/Modal.css.js.map +1 -1
- package/dist/generated/themes/Pagination.css.js +1 -1
- package/dist/generated/themes/Pagination.css.js.map +1 -1
- package/dist/generated/themes/PhoneNumberField.css.js +1 -1
- package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
- package/dist/generated/themes/RatingBar.css.js +9 -0
- package/dist/generated/themes/RatingBar.css.js.map +1 -0
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/Review.css.d.ts +3 -0
- package/dist/generated/themes/Review.css.js +9 -0
- package/dist/generated/themes/Review.css.js.map +1 -0
- package/dist/generated/themes/Search.css.js +1 -1
- package/dist/generated/themes/Search.css.js.map +1 -1
- package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
- package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
- package/dist/generated/themes/SecondaryNavigationItem.css.d.ts +3 -0
- package/dist/generated/themes/SecondaryNavigationItem.css.js +9 -0
- package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -0
- package/dist/generated/themes/SecondaryNavigationSubItem.css.d.ts +3 -0
- package/dist/generated/themes/SecondaryNavigationSubItem.css.js +9 -0
- package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -0
- package/dist/generated/themes/SelectBox.css.js +1 -1
- package/dist/generated/themes/SelectBox.css.js.map +1 -1
- package/dist/generated/themes/Slider.css.js +1 -1
- package/dist/generated/themes/Slider.css.js.map +1 -1
- package/dist/generated/themes/StatusBadge.css.d.ts +3 -0
- package/dist/generated/themes/StatusBadge.css.js +9 -0
- package/dist/generated/themes/StatusBadge.css.js.map +1 -0
- package/dist/generated/themes/StepInput.css.js +1 -1
- package/dist/generated/themes/StepInput.css.js.map +1 -1
- package/dist/generated/themes/TabNavigation.css.js +1 -1
- package/dist/generated/themes/TabNavigation.css.js.map +1 -1
- package/dist/generated/themes/Tag.css.js +1 -1
- package/dist/generated/themes/Tag.css.js.map +1 -1
- package/dist/generated/themes/TextField.css.js +1 -1
- package/dist/generated/themes/TextField.css.js.map +1 -1
- package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js.map +1 -1
- package/dist/i18n/messagebundle.properties +40 -5
- package/dist/i18n/messagebundle_en.properties +20 -5
- package/dist/vscode.html-custom-data.json +239 -16
- package/dist/web-types.json +405 -25
- package/package.json +8 -8
- package/src/AccordionItem.hbs +1 -4
- package/src/AccordionItem.ts +5 -4
- package/src/Avatar.ts +35 -3
- package/src/AvatarGroup.ts +135 -0
- package/src/CountrySelector.hbs +2 -1
- package/src/CountrySelector.ts +4 -1
- package/src/DatePicker.hbs +0 -1
- package/src/Dropdown.hbs +5 -3
- package/src/Dropdown.ts +24 -3
- package/src/FilterMenu.hbs +8 -1
- package/src/FilterMenu.ts +70 -12
- package/src/Footer.hbs +12 -37
- package/src/Footer.ts +64 -51
- package/src/HeroBanner.hbs +28 -21
- package/src/HeroBanner.ts +3 -0
- package/src/InputGroup.ts +6 -5
- package/src/List.ts +92 -21
- package/src/ListGroupHeader.hbs +9 -5
- package/src/ListItem.hbs +2 -1
- package/src/ListItem.ts +0 -7
- package/src/ListItemBase.ts +14 -0
- package/src/ListSelectAll.hbs +1 -0
- package/src/MastheadItem.hbs +3 -3
- package/src/MastheadItem.ts +10 -4
- package/src/MastheadShell.hbs +4 -0
- package/src/MastheadShell.ts +18 -0
- package/src/MessageStrip.ts +1 -1
- package/src/Pagination.hbs +4 -2
- package/src/Pagination.ts +19 -4
- package/src/PasswordField.hbs +6 -17
- package/src/PasswordField.ts +31 -23
- package/src/PhoneNumberField.hbs +8 -3
- package/src/PhoneNumberField.ts +12 -2
- package/src/RatingBar.hbs +11 -0
- package/src/RatingBar.ts +113 -0
- package/src/Review.hbs +44 -0
- package/src/Review.ts +140 -0
- package/src/Search.hbs +20 -14
- package/src/Search.ts +107 -10
- package/src/SearchSuggestions.hbs +2 -1
- package/src/SearchableListBase.hbs +2 -0
- package/src/SearchableListBase.ts +1 -1
- package/src/SecondaryNavigation.hbs +53 -71
- package/src/SecondaryNavigation.ts +192 -198
- package/src/SecondaryNavigationItem.hbs +64 -0
- package/src/SecondaryNavigationItem.ts +368 -0
- package/src/SecondaryNavigationItemBase.ts +153 -0
- package/src/SecondaryNavigationSubItem.hbs +44 -0
- package/src/SecondaryNavigationSubItem.ts +127 -0
- package/src/SelectBox.hbs +76 -76
- package/src/SelectBox.ts +18 -1
- package/src/StatusBadge.hbs +9 -0
- package/src/StatusBadge.ts +129 -0
- package/src/Switch.hbs +3 -3
- package/src/Switch.ts +4 -0
- package/src/Tab.ts +11 -1
- package/src/TabInOverflow.hbs +3 -2
- package/src/TabNavigation.hbs +12 -10
- package/src/TabNavigation.ts +92 -116
- package/src/TabNavigationPopover.hbs +1 -0
- package/src/Tag.hbs +60 -26
- package/src/Tag.ts +54 -34
- package/src/TextArea.hbs +3 -4
- package/src/TextArea.ts +3 -0
- package/src/TextField.hbs +40 -36
- package/src/TextField.ts +24 -0
- package/src/Tooltip.hbs +2 -2
- package/src/Tooltip.ts +4 -4
- package/src/data/CountryListISO3166.ts +162 -162
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/templates/AccordionItemTemplate.lit.ts +1 -1
- package/src/generated/templates/CountrySelectorTemplate.lit.ts +1 -1
- package/src/generated/templates/DatePickerTemplate.lit.ts +1 -1
- package/src/generated/templates/DropdownTemplate.lit.ts +2 -2
- package/src/generated/templates/FilterMenuTemplate.lit.ts +3 -3
- package/src/generated/templates/FooterTemplate.lit.ts +26 -28
- package/src/generated/templates/HeroBannerTemplate.lit.ts +9 -8
- package/src/generated/templates/ListGroupHeaderTemplate.lit.ts +4 -4
- package/src/generated/templates/ListItemTemplate.lit.ts +1 -1
- package/src/generated/templates/ListSelectAllTemplate.lit.ts +1 -1
- package/src/generated/templates/MastheadItemTemplate.lit.ts +3 -3
- package/src/generated/templates/MastheadShellTemplate.lit.ts +2 -2
- package/src/generated/templates/PaginationTemplate.lit.ts +1 -1
- package/src/generated/templates/PasswordFieldTemplate.lit.ts +1 -2
- package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +3 -3
- package/src/generated/templates/RatingBarTemplate.lit.ts +11 -0
- package/src/generated/templates/ReviewTemplate.lit.ts +15 -0
- package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +1 -1
- package/src/generated/templates/SearchTemplate.lit.ts +7 -7
- package/src/generated/templates/SearchableListBaseTemplate.lit.ts +2 -2
- package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +16 -0
- package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +15 -0
- package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +7 -10
- package/src/generated/templates/SelectBoxTemplate.lit.ts +2 -2
- package/src/generated/templates/StatusBadgeTemplate.lit.ts +10 -0
- package/src/generated/templates/SwitchTemplate.lit.ts +2 -2
- package/src/generated/templates/TabInOverflowTemplate.lit.ts +2 -2
- package/src/generated/templates/TabNavigationPopoverTemplate.lit.ts +1 -1
- package/src/generated/templates/TabNavigationTemplate.lit.ts +2 -2
- package/src/generated/templates/TagTemplate.lit.ts +9 -3
- package/src/generated/templates/TextAreaTemplate.lit.ts +1 -1
- package/src/generated/templates/TextFieldTemplate.lit.ts +2 -2
- package/src/generated/templates/TooltipTemplate.lit.ts +1 -1
- package/src/generated/themes/AccordionItem.css.ts +1 -1
- package/src/generated/themes/Avatar.css.ts +1 -1
- package/src/generated/themes/Badge.css.ts +1 -1
- package/src/generated/themes/Checkbox.css.ts +1 -1
- package/src/generated/themes/CountrySelector.css.ts +1 -1
- package/src/generated/themes/Divider.css.ts +1 -1
- package/src/generated/themes/Dropdown.css.ts +1 -1
- package/src/generated/themes/FilterMenu.css.ts +1 -1
- package/src/generated/themes/Footer.css.ts +1 -1
- package/src/generated/themes/HeroBanner.css.ts +1 -1
- package/src/generated/themes/MastheadShell.css.ts +1 -1
- package/src/generated/themes/MediaPlayer.css.ts +1 -1
- package/src/generated/themes/Modal.css.ts +1 -1
- package/src/generated/themes/Pagination.css.ts +1 -1
- package/src/generated/themes/PhoneNumberField.css.ts +1 -1
- package/src/generated/themes/RatingBar.css.ts +13 -0
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/Review.css.ts +13 -0
- package/src/generated/themes/Search.css.ts +1 -1
- package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
- package/src/generated/themes/SecondaryNavigationItem.css.ts +13 -0
- package/src/generated/themes/SecondaryNavigationSubItem.css.ts +13 -0
- package/src/generated/themes/SelectBox.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/generated/themes/StatusBadge.css.ts +13 -0
- package/src/generated/themes/StepInput.css.ts +1 -1
- package/src/generated/themes/TabNavigation.css.ts +1 -1
- package/src/generated/themes/Tag.css.ts +1 -1
- package/src/generated/themes/TextField.css.ts +1 -1
- package/src/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +1 -1
- package/src/i18n/messagebundle.properties +40 -5
- package/src/i18n/messagebundle_en.properties +20 -5
- package/src/themes/AccordionItem.css +6 -4
- package/src/themes/Avatar.css +43 -6
- package/src/themes/Badge.css +1 -1
- package/src/themes/Checkbox.css +12 -0
- package/src/themes/CountrySelector.css +4 -0
- package/src/themes/Divider.css +6 -2
- package/src/themes/Dropdown.css +2 -0
- package/src/themes/FilterMenu.css +10 -0
- package/src/themes/Footer.css +93 -168
- package/src/themes/HeroBanner.css +84 -20
- package/src/themes/MastheadShell.css +25 -29
- package/src/themes/MediaPlayer.css +3 -2
- package/src/themes/Modal.css +6 -0
- package/src/themes/Pagination.css +7 -0
- package/src/themes/PhoneNumberField.css +5 -0
- package/src/themes/RatingBar.css +52 -0
- package/src/themes/Review.css +196 -0
- package/src/themes/Search.css +37 -21
- package/src/themes/SecondaryNavigation.css +64 -293
- package/src/themes/SecondaryNavigationItem.css +221 -0
- package/src/themes/SecondaryNavigationSubItem.css +118 -0
- package/src/themes/SelectBox.css +17 -24
- package/src/themes/StatusBadge.css +135 -0
- package/src/themes/StepInput.css +5 -2
- package/src/themes/TabNavigation.css +7 -1
- package/src/themes/Tag.css +180 -148
- package/src/themes/TextField.css +75 -55
- package/dist/assets/bundle.esm-ab45813e.js +0 -312
- package/dist/assets/messagebundle_en-26cd7a92.js +0 -1
- package/dist/assets/parameters-bundle.css-76ef62fa.js +0 -2
- package/dist/css/themes/PasswordField.css +0 -1
- package/dist/generated/themes/PasswordField.css.js +0 -9
- package/dist/generated/themes/PasswordField.css.js.map +0 -1
- package/src/generated/themes/PasswordField.css.ts +0 -13
- package/src/themes/PasswordField.css +0 -29
- /package/dist/generated/themes/{PasswordField.css.d.ts → RatingBar.css.d.ts} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sapudex/web-components",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.127.6",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"registry": "https://registry.npmjs.org/"
|
|
6
6
|
},
|
|
@@ -30,17 +30,17 @@
|
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@types/vimeo__player": "^2.18.3",
|
|
32
32
|
"@types/youtube": "^0.1.0",
|
|
33
|
-
"@ui5/webcomponents": "1.24.
|
|
34
|
-
"@ui5/webcomponents-base": "1.24.
|
|
35
|
-
"@ui5/webcomponents-fiori": "1.24.
|
|
36
|
-
"@ui5/webcomponents-icons": "1.24.
|
|
37
|
-
"@ui5/webcomponents-theming": "1.24.
|
|
33
|
+
"@ui5/webcomponents": "1.24.15",
|
|
34
|
+
"@ui5/webcomponents-base": "1.24.15",
|
|
35
|
+
"@ui5/webcomponents-fiori": "1.24.15",
|
|
36
|
+
"@ui5/webcomponents-icons": "1.24.15",
|
|
37
|
+
"@ui5/webcomponents-theming": "1.24.15",
|
|
38
38
|
"@vimeo/player": "^2.24.0",
|
|
39
39
|
"video.js": "8.19.2"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@ui5/webcomponents-tools": "1.24.
|
|
43
|
-
"chromedriver": "
|
|
42
|
+
"@ui5/webcomponents-tools": "1.24.15",
|
|
43
|
+
"chromedriver": "132.0.2",
|
|
44
44
|
"cross-env": "^7.0.3",
|
|
45
45
|
"typescript": "^4.9.4",
|
|
46
46
|
"wdio-chromedriver-service": "^8.1.1",
|
package/src/AccordionItem.hbs
CHANGED
|
@@ -2,15 +2,12 @@
|
|
|
2
2
|
aria-expanded="{{expanded}}"
|
|
3
3
|
role="listitem"
|
|
4
4
|
@keydown={{keydownHandler}}>
|
|
5
|
-
<div class="udex-accordion-item__header-wrapper"
|
|
6
|
-
aria-level="2"
|
|
7
|
-
role="heading">
|
|
5
|
+
<div class="udex-accordion-item__header-wrapper">
|
|
8
6
|
<div role="button"
|
|
9
7
|
class="udex-accordion-item__header"
|
|
10
8
|
tabindex="0"
|
|
11
9
|
aria-expanded="false"
|
|
12
10
|
aria-controls="udex-accordion-item__{{_id}}-content"
|
|
13
|
-
aria-labelledby="{{ariaLabelledby}}"
|
|
14
11
|
@focus={{focusHandler}}
|
|
15
12
|
@click={{itemClickHandler}}>
|
|
16
13
|
<div class="udex-accordion-item__icon-wrapper">
|
package/src/AccordionItem.ts
CHANGED
|
@@ -62,6 +62,8 @@ class UDExAccordionItem extends UI5Element {
|
|
|
62
62
|
|
|
63
63
|
/**
|
|
64
64
|
* Defines the title of the accordion item component.
|
|
65
|
+
* TODO: With transition to UI5 2.x, change "title" attribute name.
|
|
66
|
+
* Title property is also valid HTML attribute that results in showing hover tooltip and is read by screen readers.
|
|
65
67
|
*
|
|
66
68
|
* @default ""
|
|
67
69
|
* @public
|
|
@@ -167,10 +169,6 @@ class UDExAccordionItem extends UI5Element {
|
|
|
167
169
|
return classes;
|
|
168
170
|
}
|
|
169
171
|
|
|
170
|
-
get ariaLabelledby() {
|
|
171
|
-
return `${this._id}-header-title`;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
172
|
onAfterRendering() {
|
|
175
173
|
this._el = this.shadowRoot?.querySelector(".udex-accordion-item") || null;
|
|
176
174
|
const accordion = this.shadowRoot?.querySelector<HTMLElement>(
|
|
@@ -193,6 +191,9 @@ class UDExAccordionItem extends UI5Element {
|
|
|
193
191
|
}
|
|
194
192
|
|
|
195
193
|
this?.parentElement?.addEventListener("ui5-toggle-items", this.toggleAllHandler.bind(this));
|
|
194
|
+
// TODO: this should be removed with transition to UI5 2.x, wne changed "title" attribute name.
|
|
195
|
+
// Fix was provided to avoid reading "title" property by screen readers, which results reading title twice.
|
|
196
|
+
this.setAttribute("aria-hidden", "true");
|
|
196
197
|
}
|
|
197
198
|
}
|
|
198
199
|
|
package/src/Avatar.ts
CHANGED
|
@@ -5,7 +5,7 @@ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
|
5
5
|
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
6
6
|
import Avatar from "@ui5/webcomponents/dist/Avatar.js";
|
|
7
7
|
import I18nBundle, { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
8
|
-
import { AVATAR_TEXT, DISABLED } from "./generated/i18n/i18n-defaults.js";
|
|
8
|
+
import { ATTENTION_BADGE, AVATAR_TEXT, DISABLED } from "./generated/i18n/i18n-defaults.js";
|
|
9
9
|
|
|
10
10
|
// Template
|
|
11
11
|
import AvatarTemplate from "./generated/templates/AvatarTemplate.lit.js";
|
|
@@ -152,7 +152,7 @@ class UDExAvatar extends UI5Element {
|
|
|
152
152
|
shape!: `${AvatarShape}`;
|
|
153
153
|
|
|
154
154
|
/**
|
|
155
|
-
*
|
|
155
|
+
* Defines predefined size of the component.
|
|
156
156
|
*
|
|
157
157
|
* @default "S"
|
|
158
158
|
* @public
|
|
@@ -160,6 +160,15 @@ class UDExAvatar extends UI5Element {
|
|
|
160
160
|
@property({ type: AvatarSize, defaultValue: AvatarSize.S })
|
|
161
161
|
size!: `${AvatarSize}`;
|
|
162
162
|
|
|
163
|
+
/**
|
|
164
|
+
* Defines the displaying attention badge.
|
|
165
|
+
*
|
|
166
|
+
* @public
|
|
167
|
+
* @default false
|
|
168
|
+
*/
|
|
169
|
+
@property({ type: Boolean })
|
|
170
|
+
showAttentionBadge!: boolean;
|
|
171
|
+
|
|
163
172
|
/**
|
|
164
173
|
* Receives the desired <img> tag
|
|
165
174
|
*
|
|
@@ -191,6 +200,26 @@ class UDExAvatar extends UI5Element {
|
|
|
191
200
|
}
|
|
192
201
|
}
|
|
193
202
|
|
|
203
|
+
/**
|
|
204
|
+
* Returns the effective avatar size.
|
|
205
|
+
* @default "S"
|
|
206
|
+
* @private
|
|
207
|
+
*/
|
|
208
|
+
get effectiveSize(): AvatarSize {
|
|
209
|
+
// we read the attribute, because the "size" property will always have a default value
|
|
210
|
+
return this.getAttribute("size") as AvatarSize || this.size;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Returns the effective background color.
|
|
215
|
+
* @default "Blue"
|
|
216
|
+
* @private
|
|
217
|
+
*/
|
|
218
|
+
get еffectiveBackgroundColor(): AvatarColorScheme {
|
|
219
|
+
// we read the attribute, because the "background-color" property will always have a default value
|
|
220
|
+
return this.getAttribute("color-scheme") as AvatarColorScheme || this.colorScheme;
|
|
221
|
+
}
|
|
222
|
+
|
|
194
223
|
get getUI5AvatarColorScheme(): string {
|
|
195
224
|
return udexToUi5ColorSchemeMap[this.colorScheme];
|
|
196
225
|
}
|
|
@@ -214,7 +243,10 @@ class UDExAvatar extends UI5Element {
|
|
|
214
243
|
}
|
|
215
244
|
|
|
216
245
|
get avatarAccessibleName(): string {
|
|
217
|
-
|
|
246
|
+
let accName = `${this.accessibleName ? this.accessibleName : `${UDExAvatar.i18nBundle.getText(AVATAR_TEXT)} ${this.initials}`}`;
|
|
247
|
+
accName += ` ${this.disabled ? UDExAvatar.i18nBundle.getText(DISABLED) : ""}`;
|
|
248
|
+
accName += ` ${this.showAttentionBadge ? UDExAvatar.i18nBundle.getText(ATTENTION_BADGE) : ""}`;
|
|
249
|
+
return accName;
|
|
218
250
|
}
|
|
219
251
|
}
|
|
220
252
|
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import AvatarGroup, { IAvatarGroupItem } from "@ui5/webcomponents/dist/AvatarGroup.js";
|
|
2
|
+
import AvatarGroupType from "@ui5/webcomponents/dist/types/AvatarGroupType.js";
|
|
3
|
+
import ItemNavigation from "@ui5/webcomponents-base/dist/delegate/ItemNavigation.js";
|
|
4
|
+
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
5
|
+
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
6
|
+
|
|
7
|
+
// Styles
|
|
8
|
+
import UI5AvatarGroupCss from "@ui5/webcomponents/dist/generated/themes/AvatarGroup.css.js";
|
|
9
|
+
|
|
10
|
+
import UDExAvatar, { AvatarColorScheme, AvatarSize } from "./Avatar.js";
|
|
11
|
+
|
|
12
|
+
const avatarOffsets = {
|
|
13
|
+
[AvatarSize.XS]: {
|
|
14
|
+
[AvatarGroupType.Individual]: "0.0625rem",
|
|
15
|
+
[AvatarGroupType.Group]: "-0.75rem",
|
|
16
|
+
},
|
|
17
|
+
[AvatarSize.S]: {
|
|
18
|
+
[AvatarGroupType.Individual]: "0.125rem",
|
|
19
|
+
[AvatarGroupType.Group]: "-1.25rem",
|
|
20
|
+
},
|
|
21
|
+
[AvatarSize.M]: {
|
|
22
|
+
[AvatarGroupType.Individual]: "0.125rem",
|
|
23
|
+
[AvatarGroupType.Group]: "-1.625rem",
|
|
24
|
+
},
|
|
25
|
+
[AvatarSize.L]: {
|
|
26
|
+
[AvatarGroupType.Individual]: "0.125rem",
|
|
27
|
+
[AvatarGroupType.Group]: "-2rem",
|
|
28
|
+
},
|
|
29
|
+
[AvatarSize.XL]: {
|
|
30
|
+
[AvatarGroupType.Individual]: "0.25rem",
|
|
31
|
+
[AvatarGroupType.Group]: "-2.75rem",
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @class
|
|
37
|
+
*
|
|
38
|
+
* <h3 class="comment-api-title">Overview</h3>
|
|
39
|
+
*
|
|
40
|
+
*
|
|
41
|
+
* <h3>Usage</h3>
|
|
42
|
+
*
|
|
43
|
+
* For the <code>udex-avatar-group</code>
|
|
44
|
+
* <h3>ES6 Module Import</h3>
|
|
45
|
+
*
|
|
46
|
+
* <code>import "@udex/web-components/dist/AvatarGroup.js";</code>
|
|
47
|
+
*
|
|
48
|
+
* @constructor
|
|
49
|
+
* @author SAP SE
|
|
50
|
+
* @extends AvatarGroup
|
|
51
|
+
* @public
|
|
52
|
+
*/
|
|
53
|
+
@customElement({
|
|
54
|
+
tag: "udex-avatar-group",
|
|
55
|
+
renderer: litRender,
|
|
56
|
+
styles: [UI5AvatarGroupCss],
|
|
57
|
+
dependencies: [UDExAvatar],
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
class UDExAvatarGroup extends AvatarGroup {
|
|
61
|
+
constructor() {
|
|
62
|
+
super();
|
|
63
|
+
|
|
64
|
+
this._itemNavigation = new ItemNavigation(this, {
|
|
65
|
+
getItemsCallback: () => {
|
|
66
|
+
return this._isGroup
|
|
67
|
+
? []
|
|
68
|
+
: this.items.slice(0, this._hiddenStartIndex).map(
|
|
69
|
+
item => item.shadowRoot?.firstElementChild as IAvatarGroupItem,
|
|
70
|
+
);
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
onEnterDOM(): void {
|
|
75
|
+
super.onEnterDOM();
|
|
76
|
+
const container: HTMLElement = this.shadowRoot?.querySelector(".ui5-avatar-group-items") as HTMLElement;
|
|
77
|
+
container?.addEventListener("mouseenter", this._onHover.bind(this, true));
|
|
78
|
+
container?.addEventListener("mouseleave", this._onHover.bind(this, false));
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
onExitDOM(): void {
|
|
82
|
+
super.onExitDOM();
|
|
83
|
+
const container: HTMLElement = this.shadowRoot?.querySelector(".ui5-avatar-group-items") as HTMLElement;
|
|
84
|
+
container?.removeEventListener("mouseenter", this._onHover.bind(this, true));
|
|
85
|
+
container?.removeEventListener("mouseleave", this._onHover.bind(this, false));
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
_onHover(hover: boolean) {
|
|
89
|
+
if (this._isGroup) {
|
|
90
|
+
this.items.every(avatar => {
|
|
91
|
+
avatar.toggleAttribute("hover", hover);
|
|
92
|
+
return !avatar.hidden;
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
_onfocusin(e: FocusEvent) {
|
|
98
|
+
const targetItem = this._isGroup
|
|
99
|
+
? e.currentTarget
|
|
100
|
+
: (e.target as HTMLElement).shadowRoot?.firstElementChild;
|
|
101
|
+
this._itemNavigation.setCurrentItem(targetItem as IAvatarGroupItem);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
_prepareAvatars() {
|
|
105
|
+
this._colorIndex = 0;
|
|
106
|
+
const visibleColors = Object.values(AvatarColorScheme);
|
|
107
|
+
let avatarInitials = "";
|
|
108
|
+
|
|
109
|
+
this.items.forEach((avatar, index) => {
|
|
110
|
+
if (++this._colorIndex > visibleColors.length - 3) {
|
|
111
|
+
this._colorIndex = 1;
|
|
112
|
+
}
|
|
113
|
+
avatar.interactive = !this._isGroup;
|
|
114
|
+
avatar.toggleAttribute("ui5-avatar", true);
|
|
115
|
+
avatarInitials += this._isGroup && avatar.hasAttribute("initials") && !avatar.shadowRoot?.firstElementChild?.hasAttribute("_has-image")
|
|
116
|
+
? `${avatar.getAttribute("initials")} ` : "";
|
|
117
|
+
|
|
118
|
+
if (!avatar.getAttribute("color-scheme")) {
|
|
119
|
+
avatar.setAttribute("color-scheme", visibleColors[this._colorIndex]);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (index !== this._itemsCount - 1 || this._customOverflowButton) {
|
|
123
|
+
avatar.style.marginInlineEnd = avatarOffsets[avatar.effectiveSize][this.type];
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
if (avatarInitials) {
|
|
128
|
+
this.shadowRoot?.querySelector(".ui5-avatar-group-items")?.setAttribute("aria-label", `${avatarInitials}${this._ariaLabelText}`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
UDExAvatarGroup.define();
|
|
134
|
+
|
|
135
|
+
export default UDExAvatarGroup;
|
package/src/CountrySelector.hbs
CHANGED
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
@click-trigger="{{handleTriggerClick}}"
|
|
12
12
|
@ui5-submit-search-value="{{handleSubmitSearch}}"
|
|
13
13
|
@ui5-handle-value-search="{{handleValueSearch}}"
|
|
14
|
-
@ui5-handle-value-reset="{{handleResetSearch}}"
|
|
14
|
+
@ui5-handle-value-reset="{{handleResetSearch}}"
|
|
15
|
+
@ui5-handle-close-search="{{handleCloseSearch}}">
|
|
15
16
|
{{> trigger}}
|
|
16
17
|
{{searchableList}}
|
|
17
18
|
</udex-dropdown>
|
package/src/CountrySelector.ts
CHANGED
|
@@ -378,6 +378,10 @@ class CountrySelector extends UDExSearchableListBase {
|
|
|
378
378
|
return localName ? `${countryName} (${localName})` : countryName;
|
|
379
379
|
}
|
|
380
380
|
|
|
381
|
+
handleCloseSearch() {
|
|
382
|
+
this._dropdown.onClose();
|
|
383
|
+
}
|
|
384
|
+
|
|
381
385
|
handleItemPress(e: CustomEvent) {
|
|
382
386
|
this.onItemPress(e);
|
|
383
387
|
const target = e.target as HTMLElement;
|
|
@@ -393,7 +397,6 @@ class CountrySelector extends UDExSearchableListBase {
|
|
|
393
397
|
|
|
394
398
|
const keyEvent = e.detail as KeyboardEvent;
|
|
395
399
|
const key = keyEvent.key;
|
|
396
|
-
|
|
397
400
|
if (isEnter(keyEvent) || isSpace(keyEvent)) {
|
|
398
401
|
if (this._dropdown.open) {
|
|
399
402
|
this._dropdown.onClose();
|
package/src/DatePicker.hbs
CHANGED
package/src/Dropdown.hbs
CHANGED
|
@@ -2,15 +2,17 @@
|
|
|
2
2
|
{{#if hasTriggerSlot}}
|
|
3
3
|
<div
|
|
4
4
|
class="udex-dropdown__opener"
|
|
5
|
-
|
|
5
|
+
role="{{triggerAccessibleRole}}"
|
|
6
|
+
aria-label="{{triggerAccessibleName}}"
|
|
6
7
|
aria-expanded="{{open}}"
|
|
7
|
-
aria-
|
|
8
|
+
aria-haspopup="true"
|
|
9
|
+
aria-controls="{{this._id}}_udex-dropdown"
|
|
8
10
|
@click="{{onTriggerClick}}">
|
|
9
11
|
<slot slot="trigger" name="trigger"></slot>
|
|
10
12
|
</div>
|
|
11
13
|
{{/if}}
|
|
12
14
|
<ui5-popover
|
|
13
|
-
id="
|
|
15
|
+
id="{{this._id}}_udex-dropdown"
|
|
14
16
|
class="udex-dropdown__pane"
|
|
15
17
|
?allow-target-overlap="{{disableAllowTargetOverlap}}"
|
|
16
18
|
hide-arrow
|
package/src/Dropdown.ts
CHANGED
|
@@ -7,8 +7,11 @@ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
|
7
7
|
import event from "@ui5/webcomponents-base/dist/decorators/event.js";
|
|
8
8
|
import getEffectiveScrollbarStyle from "@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js";
|
|
9
9
|
import PopupAccessibleRole from "@ui5/webcomponents/dist/types/PopupAccessibleRole.js";
|
|
10
|
+
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
11
|
+
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
10
12
|
import DropdownTemplate from "./generated/templates/DropdownTemplate.lit.js";
|
|
11
13
|
import { PlacementType, HorizontalAlign } from "./types/Dropdown.js";
|
|
14
|
+
import { TRIGGER } from "./generated/i18n/i18n-defaults.js";
|
|
12
15
|
|
|
13
16
|
// Styles
|
|
14
17
|
import DropdownCss from "./generated/themes/Dropdown.css";
|
|
@@ -120,12 +123,20 @@ class UDExDropdown extends UI5Element {
|
|
|
120
123
|
|
|
121
124
|
/**
|
|
122
125
|
* Allows setting a custom role.
|
|
123
|
-
* @default "
|
|
126
|
+
* @default "None"
|
|
124
127
|
* @public
|
|
125
128
|
*/
|
|
126
|
-
@property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.
|
|
129
|
+
@property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.None })
|
|
127
130
|
accessibleRole!: `${PopupAccessibleRole}`;
|
|
128
131
|
|
|
132
|
+
/**
|
|
133
|
+
* Allows setting a custom role for dropdown trigger.
|
|
134
|
+
* @default "combobox"
|
|
135
|
+
* @public
|
|
136
|
+
*/
|
|
137
|
+
@property({ type: String, defaultValue: "combobox" })
|
|
138
|
+
triggerAccessibleRole!: string;
|
|
139
|
+
|
|
129
140
|
/**
|
|
130
141
|
* Defines the content of the Dropdown.
|
|
131
142
|
*
|
|
@@ -188,6 +199,12 @@ class UDExDropdown extends UI5Element {
|
|
|
188
199
|
@property({ type: String })
|
|
189
200
|
_direction?: string;
|
|
190
201
|
|
|
202
|
+
static i18nBundle: I18nBundle;
|
|
203
|
+
|
|
204
|
+
static async onDefine(): Promise<void> {
|
|
205
|
+
UDExDropdown.i18nBundle = await getI18nBundle("sap-ui-webcomponents-bundle");
|
|
206
|
+
}
|
|
207
|
+
|
|
191
208
|
onAfterRendering() {
|
|
192
209
|
this.handleDirection();
|
|
193
210
|
}
|
|
@@ -283,9 +300,13 @@ class UDExDropdown extends UI5Element {
|
|
|
283
300
|
return !!this.footer.length;
|
|
284
301
|
}
|
|
285
302
|
|
|
286
|
-
get disableAllowTargetOverlap() {
|
|
303
|
+
get disableAllowTargetOverlap(): boolean {
|
|
287
304
|
return this.disableTargetOverlap?.toString() !== "true";
|
|
288
305
|
}
|
|
306
|
+
|
|
307
|
+
get triggerAccessibleName(): string {
|
|
308
|
+
return UDExDropdown.i18nBundle.getText(TRIGGER);
|
|
309
|
+
}
|
|
289
310
|
}
|
|
290
311
|
|
|
291
312
|
UDExDropdown.define();
|
package/src/FilterMenu.hbs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<udex-dropdown
|
|
2
|
+
id="{{this._id}}_dropdown-menu"
|
|
2
3
|
class="udex-filter-menu"
|
|
3
4
|
?disable-target-overlap="{{disableTargetOverlap}}"
|
|
4
5
|
placement-type="{{placementType}}"
|
|
@@ -12,7 +13,9 @@
|
|
|
12
13
|
@ui5-after-open="{{_dropdownAfterOpen}}"
|
|
13
14
|
@ui5-before-close="{{_dropdownBeforeClose}}"
|
|
14
15
|
@ui5-after-close="{{_dropdownAfterClose}}"
|
|
15
|
-
@click-trigger="{{
|
|
16
|
+
@click-trigger="{{onDropdownClose}}"
|
|
17
|
+
@search-keydown="{{handleKeyDownSearch}}"
|
|
18
|
+
@keydown="{{handleKeyDownList}}"
|
|
16
19
|
@ui5-submit-search-value="{{handleSubmitSearch}}"
|
|
17
20
|
@ui5-handle-value-search="{{handleValueSearch}}"
|
|
18
21
|
@ui5-handle-value-reset="{{handleResetSearch}}">
|
|
@@ -28,6 +31,8 @@
|
|
|
28
31
|
aria-label="{{accessibleName}}"
|
|
29
32
|
aria-expanded="{{_open}}"
|
|
30
33
|
aria-haspopup="true"
|
|
34
|
+
role="{{triggerAccessibleRole}}"
|
|
35
|
+
aria-controls="{{this._id}}_dropdown-menu"
|
|
31
36
|
?disabled="{{disabled}}"
|
|
32
37
|
class="udex-filter-menu__trigger"
|
|
33
38
|
slot="trigger"
|
|
@@ -64,6 +69,7 @@
|
|
|
64
69
|
size="Medium"
|
|
65
70
|
design="Primary"
|
|
66
71
|
?disabled="{{disabledResultBtn}}"
|
|
72
|
+
@keydown="{{handleKeyDownResultBtn}}"
|
|
67
73
|
@click="{{handleResult}}">
|
|
68
74
|
{{getResultLabelText}}
|
|
69
75
|
</udex-button>
|
|
@@ -73,6 +79,7 @@
|
|
|
73
79
|
class="udex-filter-menu__reset-btn"
|
|
74
80
|
size="Medium"
|
|
75
81
|
design="Tertiary"
|
|
82
|
+
@keydown="{{handleKeyDownResetBtn}}"
|
|
76
83
|
@click="{{handleReset}}">
|
|
77
84
|
{{getResetLabelText}}
|
|
78
85
|
</udex-button>
|
package/src/FilterMenu.ts
CHANGED
|
@@ -7,6 +7,7 @@ import "@ui5/webcomponents/dist/Icon.js";
|
|
|
7
7
|
import "@ui5/webcomponents-icons/dist/navigation-down-arrow.js";
|
|
8
8
|
import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
|
|
9
9
|
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
|
|
10
|
+
import { isTabPrevious, isTabNext, isEscape } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
10
11
|
import PopupAccessibleRole from "@ui5/webcomponents/dist/types/PopupAccessibleRole.js";
|
|
11
12
|
import UDExDropdown from "./Dropdown.js";
|
|
12
13
|
import UDExList from "./List.js";
|
|
@@ -14,14 +15,15 @@ import UDExListItem from "./ListItem.js";
|
|
|
14
15
|
import UDExListGroupHeader from "./ListGroupHeader.js";
|
|
15
16
|
import UDExFilterMenuItem from "./FilterMenuItem.js";
|
|
16
17
|
import UDExFilterMenuGroupHeader from "./FilterMenuGroupHeader.js";
|
|
17
|
-
import
|
|
18
|
-
import
|
|
18
|
+
import UDExSearch from "./Search.js";
|
|
19
|
+
import UDEButton from "./Button.js";
|
|
19
20
|
import UDExSearchableListBase from "./SearchableListBase.js";
|
|
20
21
|
import { PlacementType, HorizontalAlign } from "./types/Dropdown.js";
|
|
21
22
|
import { ListMode } from "./types/List.js";
|
|
22
23
|
import UDExFilterMenuSelectAll from "./FilterMenuSelectAll.js";
|
|
23
24
|
import UDExListSelectAll from "./ListSelectAll.js";
|
|
24
25
|
import UDExBadge from "./Badge.js";
|
|
26
|
+
import UDExListItemBase from "./ListItemBase.js";
|
|
25
27
|
|
|
26
28
|
import { RESET, SHOW_RESULTS, SELECT_OPTIONS } from "./generated/i18n/i18n-defaults.js";
|
|
27
29
|
import FilterMenuTemplate from "./generated/templates/FilterMenuTemplate.lit.js";
|
|
@@ -64,8 +66,8 @@ import SearchableListCss from "./generated/themes/SearchableList.css.js";
|
|
|
64
66
|
UDExListItem,
|
|
65
67
|
UDExListGroupHeader,
|
|
66
68
|
UDExBadge,
|
|
67
|
-
|
|
68
|
-
|
|
69
|
+
UDExSearch,
|
|
70
|
+
UDEButton,
|
|
69
71
|
],
|
|
70
72
|
})
|
|
71
73
|
|
|
@@ -267,18 +269,28 @@ class UDExFilterMenu extends UDExSearchableListBase {
|
|
|
267
269
|
|
|
268
270
|
/**
|
|
269
271
|
* Allows setting a custom role.
|
|
270
|
-
* @default "
|
|
272
|
+
* @default "None"
|
|
271
273
|
* @public
|
|
272
274
|
*/
|
|
273
|
-
@property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.
|
|
275
|
+
@property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.None })
|
|
274
276
|
accessibleRole!: `${PopupAccessibleRole}`;
|
|
275
277
|
|
|
278
|
+
/**
|
|
279
|
+
* Allows setting a custom role for dropdown trigger.
|
|
280
|
+
* @default "combobox"
|
|
281
|
+
* @public
|
|
282
|
+
*/
|
|
283
|
+
@property({ type: String, defaultValue: "combobox" })
|
|
284
|
+
triggerAccessibleRole!: string;
|
|
285
|
+
|
|
276
286
|
_dropdown!: UDExDropdown;
|
|
277
|
-
_search!:
|
|
287
|
+
_search!: UDExSearch;
|
|
288
|
+
_hasFooterButtons!: boolean;
|
|
278
289
|
|
|
279
290
|
onAfterRendering() {
|
|
280
291
|
this._dropdown = this.getDropdown();
|
|
281
292
|
this._search = this.getSearch();
|
|
293
|
+
this._hasFooterButtons = this.hasFooterButtons;
|
|
282
294
|
}
|
|
283
295
|
|
|
284
296
|
onEnterDOM(): void {
|
|
@@ -300,7 +312,7 @@ class UDExFilterMenu extends UDExSearchableListBase {
|
|
|
300
312
|
this.onItemPress(e);
|
|
301
313
|
|
|
302
314
|
if (this.modeSingleSelect) {
|
|
303
|
-
this.
|
|
315
|
+
this.onDropdownClose();
|
|
304
316
|
}
|
|
305
317
|
}
|
|
306
318
|
|
|
@@ -313,7 +325,7 @@ class UDExFilterMenu extends UDExSearchableListBase {
|
|
|
313
325
|
}
|
|
314
326
|
|
|
315
327
|
handleSubmitSearch() {
|
|
316
|
-
this.
|
|
328
|
+
this.onDropdownClose();
|
|
317
329
|
this.onSubmitSearch();
|
|
318
330
|
}
|
|
319
331
|
|
|
@@ -337,7 +349,37 @@ class UDExFilterMenu extends UDExSearchableListBase {
|
|
|
337
349
|
}
|
|
338
350
|
}
|
|
339
351
|
|
|
340
|
-
|
|
352
|
+
handleKeyDownList(e: KeyboardEvent) {
|
|
353
|
+
const isTabNextPress = isTabNext(e) && !this._hasFooterButtons;
|
|
354
|
+
const isTabPrevPress = isTabPrevious(e) && !this._search;
|
|
355
|
+
|
|
356
|
+
if (isTabNextPress || isTabPrevPress) {
|
|
357
|
+
this.onDropdownClose();
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
handleKeyDownSearch(e: CustomEvent) {
|
|
362
|
+
const keyEvent = e.detail as KeyboardEvent;
|
|
363
|
+
if (isTabPrevious(keyEvent) || isEscape(keyEvent)) {
|
|
364
|
+
this.onDropdownClose();
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
handleKeyDownResultBtn(e: KeyboardEvent) {
|
|
369
|
+
e.stopPropagation();
|
|
370
|
+
if (isTabNext(e) && !this.hasResetBtn) {
|
|
371
|
+
this.onDropdownClose();
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
handleKeyDownResetBtn(e: KeyboardEvent) {
|
|
376
|
+
e.stopPropagation();
|
|
377
|
+
if (isTabNext(e)) {
|
|
378
|
+
this.onDropdownClose();
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
onDropdownClose() {
|
|
341
383
|
if (this._dropdown.open) {
|
|
342
384
|
this._dropdown.onClose();
|
|
343
385
|
}
|
|
@@ -347,8 +389,8 @@ class UDExFilterMenu extends UDExSearchableListBase {
|
|
|
347
389
|
return this.shadowRoot!.querySelector<UDExDropdown>("udex-dropdown")!;
|
|
348
390
|
}
|
|
349
391
|
|
|
350
|
-
getSearch():
|
|
351
|
-
return this.shadowRoot!.querySelector<
|
|
392
|
+
getSearch(): UDExSearch {
|
|
393
|
+
return this.shadowRoot!.querySelector<UDExSearch>("udex-search")!;
|
|
352
394
|
}
|
|
353
395
|
|
|
354
396
|
_dropdownBeforeOpen() {
|
|
@@ -399,6 +441,22 @@ class UDExFilterMenu extends UDExSearchableListBase {
|
|
|
399
441
|
return this.hideResultBtn && this.hideResetBtn;
|
|
400
442
|
}
|
|
401
443
|
|
|
444
|
+
get hasFooterButtons(): boolean {
|
|
445
|
+
return (this.hasResultBtn || this.hasResetBtn) && this.modeMultiSelect;
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
get hasResultBtn(): boolean {
|
|
449
|
+
return !this.hideResultBtn && !this.disabledResultBtn;
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
get hasResetBtn(): boolean {
|
|
453
|
+
return !this.hideResetBtn;
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
getItems(): Array<UDExListItemBase> {
|
|
457
|
+
return this.getSlottedNodes<UDExListItemBase>("items");
|
|
458
|
+
}
|
|
459
|
+
|
|
402
460
|
static get searchableListBaseTemplate() {
|
|
403
461
|
return SearchableListBaseTemplate;
|
|
404
462
|
}
|