@sapudex/web-components 0.117.1 → 0.138.0
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 +5 -0
- package/config/wdio.conf.js +19 -8
- package/dist/Accordion.d.ts +1 -1
- package/dist/Accordion.js +1 -1
- package/dist/Accordion.js.map +1 -1
- package/dist/AccordionItem.d.ts +3 -2
- package/dist/AccordionItem.js +4 -4
- package/dist/AccordionItem.js.map +1 -1
- package/dist/Avatar.d.ts +12 -0
- package/dist/Avatar.js +22 -1
- 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/Checkbox.d.ts +1 -1
- package/dist/Checkbox.js +1 -1
- package/dist/Checkbox.js.map +1 -1
- package/dist/CountrySelector.d.ts +24 -6
- package/dist/CountrySelector.js +25 -7
- package/dist/CountrySelector.js.map +1 -1
- package/dist/DatePicker.d.ts +1 -0
- package/dist/DatePicker.js +4 -1
- package/dist/DatePicker.js.map +1 -1
- package/dist/Dropdown.d.ts +12 -2
- package/dist/Dropdown.js +18 -6
- package/dist/Dropdown.js.map +1 -1
- package/dist/FilterMenu.d.ts +26 -6
- package/dist/FilterMenu.js +61 -21
- package/dist/FilterMenu.js.map +1 -1
- package/dist/Footer.d.ts +36 -1
- package/dist/Footer.js +35 -37
- package/dist/Footer.js.map +1 -1
- package/dist/HeroBanner.js +3 -0
- package/dist/HeroBanner.js.map +1 -1
- package/dist/Link.d.ts +1 -1
- package/dist/Link.js +1 -1
- package/dist/Link.js.map +1 -1
- package/dist/List.d.ts +1 -1
- package/dist/List.js +17 -1
- package/dist/List.js.map +1 -1
- package/dist/ListGroupHeader.d.ts +2 -2
- package/dist/ListGroupHeader.js +2 -2
- package/dist/ListGroupHeader.js.map +1 -1
- package/dist/ListItem.d.ts +3 -3
- package/dist/ListItem.js +6 -7
- package/dist/ListItem.js.map +1 -1
- package/dist/ListSelectAll.d.ts +1 -1
- package/dist/ListSelectAll.js +1 -1
- package/dist/ListSelectAll.js.map +1 -1
- package/dist/MastheadItem.d.ts +10 -1
- package/dist/MastheadItem.js +29 -18
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadMenu.d.ts +5 -0
- package/dist/MastheadMenu.js +24 -0
- package/dist/MastheadMenu.js.map +1 -1
- package/dist/MastheadMenuItem.d.ts +2 -3
- package/dist/MastheadMenuItem.js +2 -17
- package/dist/MastheadMenuItem.js.map +1 -1
- package/dist/MastheadMobileMenu.d.ts +25 -5
- package/dist/MastheadMobileMenu.js +135 -21
- package/dist/MastheadMobileMenu.js.map +1 -1
- package/dist/MastheadProfileMenu.d.ts +13 -4
- package/dist/MastheadProfileMenu.js +40 -9
- package/dist/MastheadProfileMenu.js.map +1 -1
- package/dist/MastheadShell.d.ts +11 -0
- package/dist/MastheadShell.js +52 -8
- package/dist/MastheadShell.js.map +1 -1
- package/dist/MediaPlayer.d.ts +3 -3
- package/dist/MediaPlayer.js +115 -25
- package/dist/MediaPlayer.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 +32 -0
- package/dist/PhoneNumberField.js +51 -2
- 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/ReviewItem.d.ts +105 -0
- package/dist/ReviewItem.js +157 -0
- package/dist/ReviewItem.js.map +1 -0
- package/dist/Search.d.ts +64 -2
- package/dist/Search.js +62 -8
- 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 +9 -8
- package/dist/SecondaryNavigation.js +59 -46
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.d.ts +1 -1
- package/dist/SecondaryNavigationItem.js +15 -5
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SecondaryNavigationItemBase.d.ts +16 -2
- package/dist/SecondaryNavigationItemBase.js +27 -1
- package/dist/SecondaryNavigationItemBase.js.map +1 -1
- package/dist/SecondaryNavigationSubItem.d.ts +2 -1
- package/dist/SecondaryNavigationSubItem.js +5 -2
- package/dist/SecondaryNavigationSubItem.js.map +1 -1
- package/dist/SelectBox.d.ts +33 -9
- package/dist/SelectBox.js +121 -60
- package/dist/SelectBox.js.map +1 -1
- package/dist/StatusBadge.d.ts +5 -5
- package/dist/StatusBadge.js.map +1 -1
- package/dist/Switch.d.ts +20 -0
- package/dist/Switch.js +22 -0
- package/dist/Switch.js.map +1 -1
- package/dist/Tab.d.ts +9 -1
- package/dist/Tab.js +4 -1
- package/dist/Tab.js.map +1 -1
- package/dist/TabNavigation.d.ts +21 -21
- package/dist/TabNavigation.js +83 -102
- package/dist/TabNavigation.js.map +1 -1
- package/dist/Tag.d.ts +22 -7
- package/dist/Tag.js +52 -21
- package/dist/Tag.js.map +1 -1
- package/dist/TagGroup.d.ts +94 -0
- package/dist/TagGroup.js +174 -0
- package/dist/TagGroup.js.map +1 -0
- package/dist/TextArea.d.ts +14 -1
- package/dist/TextArea.js +18 -0
- package/dist/TextArea.js.map +1 -1
- package/dist/TextField.d.ts +32 -13
- package/dist/TextField.js +32 -2
- package/dist/TextField.js.map +1 -1
- package/dist/Tooltip.d.ts +3 -3
- package/dist/Tooltip.js +4 -4
- package/dist/Tooltip.js.map +1 -1
- package/dist/assets/bundle.esm-bb1c7413.js +316 -0
- package/dist/assets/messagebundle_en-c677773a.js +1 -0
- package/dist/assets/parameters-bundle.css-c897ae23.js +2 -0
- package/dist/assets/video.es-60bfb78c.js +228 -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/CountrySelector.css +1 -1
- package/dist/css/themes/Divider.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/ListItem.css +1 -1
- package/dist/css/themes/MastheadItem.css +1 -1
- package/dist/css/themes/MastheadMobileMenu.css +1 -1
- package/dist/css/themes/MastheadShell.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/ReviewItem.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 -1
- package/dist/css/themes/SecondaryNavigationSubItem.css +1 -1
- package/dist/css/themes/SelectBox.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- 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/TagGroup.css +1 -0
- package/dist/css/themes/TextArea.css +1 -1
- package/dist/css/themes/TextField.css +1 -1
- package/dist/css/themes/Toast.css +1 -1
- package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +1 -1
- package/dist/custom-elements-internal.json +1435 -444
- package/dist/custom-elements.json +1267 -358
- 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 +11 -1
- package/dist/generated/i18n/i18n-defaults.js +18 -8
- 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 +3 -3
- 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 +1 -1
- 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 +7 -7
- package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ListItemTemplate.lit.js +6 -6
- 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/MastheadMenuItemTemplate.lit.js +1 -1
- package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadMenuTemplate.lit.js +2 -2
- package/dist/generated/templates/MastheadMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +16 -12
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js +2 -2
- package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadShellTemplate.lit.js +8 -8
- package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MediaPlayerTemplate.lit.js +2 -2
- package/dist/generated/templates/MediaPlayerTemplate.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 +6 -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/ReviewItemTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/ReviewItemTemplate.lit.js +8 -0
- package/dist/generated/templates/ReviewItemTemplate.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/SecondaryNavigationItemTemplate.lit.js +3 -3
- package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +5 -4
- package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +7 -6
- 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/SwitchTemplate.lit.js +2 -2
- package/dist/generated/templates/SwitchTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TabHeaderTemplate.lit.js +2 -2
- package/dist/generated/templates/TabHeaderTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TabInOverflowTemplate.lit.js +6 -6
- 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 +4 -2
- package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TagGroupTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/TagGroupTemplate.lit.js +8 -0
- package/dist/generated/templates/TagGroupTemplate.lit.js.map +1 -0
- package/dist/generated/templates/TagTemplate.lit.js +13 -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/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/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/ListItem.css.js +1 -1
- package/dist/generated/themes/ListItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadItem.css.js +1 -1
- package/dist/generated/themes/MastheadItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadMobileMenu.css.js +1 -1
- package/dist/generated/themes/MastheadMobileMenu.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/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/ReviewItem.css.d.ts +3 -0
- package/dist/generated/themes/ReviewItem.css.js +9 -0
- package/dist/generated/themes/ReviewItem.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.js +1 -1
- package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
- package/dist/generated/themes/SecondaryNavigationSubItem.css.js +1 -1
- package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -1
- 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/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/TagGroup.css.d.ts +3 -0
- package/dist/generated/themes/TagGroup.css.js +9 -0
- package/dist/generated/themes/TagGroup.css.js.map +1 -0
- package/dist/generated/themes/TextArea.css.js +1 -1
- package/dist/generated/themes/TextArea.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/Toast.css.js +1 -1
- package/dist/generated/themes/Toast.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 +35 -7
- package/dist/i18n/messagebundle_en.properties +17 -7
- package/dist/vscode.html-custom-data.json +260 -95
- package/dist/web-types.json +605 -183
- package/package.json +9 -9
- package/src/Accordion.ts +1 -1
- package/src/AccordionItem.hbs +1 -4
- package/src/AccordionItem.ts +6 -5
- package/src/Avatar.ts +24 -1
- package/src/AvatarGroup.ts +135 -0
- package/src/Checkbox.ts +1 -1
- package/src/CountrySelector.hbs +19 -15
- package/src/CountrySelector.ts +42 -9
- package/src/DatePicker.hbs +7 -9
- package/src/DatePicker.ts +14 -10
- package/src/Dropdown.hbs +8 -2
- package/src/Dropdown.ts +27 -6
- package/src/FilterMenu.hbs +58 -56
- package/src/FilterMenu.ts +101 -39
- package/src/Footer.hbs +21 -37
- package/src/Footer.ts +74 -52
- package/src/HeroBanner.hbs +22 -15
- package/src/HeroBanner.ts +3 -0
- package/src/Link.ts +1 -1
- package/src/List.ts +43 -23
- package/src/ListGroupHeader.ts +2 -2
- package/src/ListItem.hbs +4 -2
- package/src/ListItem.ts +8 -10
- package/src/ListSelectAll.hbs +1 -1
- package/src/ListSelectAll.ts +1 -1
- package/src/MastheadItem.hbs +7 -5
- package/src/MastheadItem.ts +44 -11
- package/src/MastheadMenu.hbs +4 -2
- package/src/MastheadMenu.ts +30 -0
- package/src/MastheadMenuItem.hbs +0 -2
- package/src/MastheadMenuItem.ts +2 -16
- package/src/MastheadMobileMenu.hbs +36 -10
- package/src/MastheadMobileMenu.ts +162 -22
- package/src/MastheadProfileMenu.hbs +6 -2
- package/src/MastheadProfileMenu.ts +66 -20
- package/src/MastheadShell.hbs +14 -4
- package/src/MastheadShell.ts +67 -8
- package/src/MediaPlayer.hbs +1 -3
- package/src/MediaPlayer.ts +122 -26
- 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 +26 -6
- package/src/PhoneNumberField.ts +77 -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/ReviewItem.hbs +20 -0
- package/src/ReviewItem.ts +227 -0
- package/src/Search.hbs +19 -14
- package/src/Search.ts +113 -6
- package/src/SearchSuggestions.hbs +1 -0
- package/src/SearchableListBase.ts +1 -1
- package/src/SecondaryNavigation.hbs +14 -8
- package/src/SecondaryNavigation.ts +76 -56
- package/src/SecondaryNavigationItem.hbs +3 -2
- package/src/SecondaryNavigationItem.ts +15 -5
- package/src/SecondaryNavigationItemBase.ts +41 -3
- package/src/SecondaryNavigationSubItem.hbs +13 -10
- package/src/SecondaryNavigationSubItem.ts +6 -2
- package/src/SelectBox.hbs +84 -83
- package/src/SelectBox.ts +155 -72
- package/src/StatusBadge.ts +2 -2
- package/src/Switch.hbs +3 -3
- package/src/Switch.ts +25 -0
- package/src/Tab.ts +11 -1
- package/src/TabHeader.hbs +3 -1
- package/src/TabInOverflow.hbs +19 -6
- package/src/TabNavigation.hbs +22 -12
- package/src/TabNavigation.ts +93 -117
- package/src/TabNavigationPopover.hbs +1 -0
- package/src/Tag.hbs +76 -26
- package/src/Tag.ts +77 -36
- package/src/TagGroup.hbs +48 -0
- package/src/TagGroup.ts +222 -0
- package/src/TextArea.hbs +36 -34
- package/src/TextArea.ts +28 -0
- package/src/TextField.hbs +45 -39
- package/src/TextField.ts +73 -17
- package/src/Tooltip.hbs +2 -2
- package/src/Tooltip.ts +5 -5
- 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 +3 -3
- 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 +1 -1
- package/src/generated/templates/FooterTemplate.lit.ts +26 -28
- package/src/generated/templates/HeroBannerTemplate.lit.ts +7 -7
- package/src/generated/templates/ListItemTemplate.lit.ts +6 -6
- package/src/generated/templates/ListSelectAllTemplate.lit.ts +1 -1
- package/src/generated/templates/MastheadItemTemplate.lit.ts +3 -3
- package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +1 -1
- package/src/generated/templates/MastheadMenuTemplate.lit.ts +2 -2
- package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +16 -12
- package/src/generated/templates/MastheadProfileMenuTemplate.lit.ts +2 -2
- package/src/generated/templates/MastheadShellTemplate.lit.ts +8 -8
- package/src/generated/templates/MediaPlayerTemplate.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 +6 -3
- package/src/generated/templates/RatingBarTemplate.lit.ts +11 -0
- package/src/generated/templates/ReviewItemTemplate.lit.ts +13 -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/SecondaryNavigationItemTemplate.lit.ts +3 -3
- package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +5 -4
- package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +7 -6
- package/src/generated/templates/SelectBoxTemplate.lit.ts +2 -2
- package/src/generated/templates/SwitchTemplate.lit.ts +2 -2
- package/src/generated/templates/TabHeaderTemplate.lit.ts +2 -2
- package/src/generated/templates/TabInOverflowTemplate.lit.ts +6 -6
- package/src/generated/templates/TabNavigationPopoverTemplate.lit.ts +1 -1
- package/src/generated/templates/TabNavigationTemplate.lit.ts +4 -2
- package/src/generated/templates/TagGroupTemplate.lit.ts +13 -0
- package/src/generated/templates/TagTemplate.lit.ts +13 -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/CountrySelector.css.ts +1 -1
- package/src/generated/themes/Divider.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/ListItem.css.ts +1 -1
- package/src/generated/themes/MastheadItem.css.ts +1 -1
- package/src/generated/themes/MastheadMobileMenu.css.ts +1 -1
- package/src/generated/themes/MastheadShell.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/ReviewItem.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 +1 -1
- package/src/generated/themes/SecondaryNavigationSubItem.css.ts +1 -1
- package/src/generated/themes/SelectBox.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- 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/TagGroup.css.ts +13 -0
- package/src/generated/themes/TextArea.css.ts +1 -1
- package/src/generated/themes/TextField.css.ts +1 -1
- package/src/generated/themes/Toast.css.ts +1 -1
- package/src/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +1 -1
- package/src/i18n/messagebundle.properties +35 -7
- package/src/i18n/messagebundle_en.properties +17 -7
- package/src/themes/AccordionItem.css +6 -4
- package/src/themes/Avatar.css +24 -7
- package/src/themes/Badge.css +1 -1
- package/src/themes/CountrySelector.css +49 -26
- package/src/themes/Divider.css +6 -2
- package/src/themes/FilterMenu.css +52 -15
- package/src/themes/Footer.css +93 -168
- package/src/themes/HeroBanner.css +52 -24
- package/src/themes/ListItem.css +4 -0
- package/src/themes/MastheadItem.css +12 -2
- package/src/themes/MastheadMobileMenu.css +4 -0
- package/src/themes/MastheadShell.css +25 -29
- package/src/themes/Modal.css +6 -0
- package/src/themes/Pagination.css +7 -0
- package/src/themes/PhoneNumberField.css +15 -1
- package/src/themes/RatingBar.css +52 -0
- package/src/themes/Review.css +196 -0
- package/src/themes/ReviewItem.css +121 -0
- package/src/themes/Search.css +46 -25
- package/src/themes/SecondaryNavigation.css +41 -13
- package/src/themes/SecondaryNavigationItem.css +6 -4
- package/src/themes/SecondaryNavigationSubItem.css +5 -5
- package/src/themes/SelectBox.css +51 -24
- package/src/themes/StepInput.css +5 -2
- package/src/themes/TabNavigation.css +7 -1
- package/src/themes/Tag.css +200 -148
- package/src/themes/TagGroup.css +90 -0
- package/src/themes/TextArea.css +13 -0
- package/src/themes/TextField.css +97 -60
- package/src/themes/Toast.css +4 -0
- package/dist/assets/bundle.esm-f65ae7da.js +0 -315
- package/dist/assets/messagebundle_en-7249941b.js +0 -1
- package/dist/assets/parameters-bundle.css-76ef62fa.js +0 -2
- package/dist/assets/video.es-17aecf95.js +0 -219
- 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/src/SelectBox.ts
CHANGED
|
@@ -15,13 +15,14 @@ import {
|
|
|
15
15
|
isUp,
|
|
16
16
|
isEscape,
|
|
17
17
|
isBackSpace,
|
|
18
|
+
isShift,
|
|
18
19
|
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
19
20
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
20
21
|
import Tokenizer from "@ui5/webcomponents/dist/Tokenizer.js";
|
|
21
22
|
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
22
23
|
import Token from "@ui5/webcomponents/dist/Token.js";
|
|
23
24
|
import ResizeHandler, { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
24
|
-
import
|
|
25
|
+
import ResponsivePopover from "@ui5/webcomponents/dist/ResponsivePopover.js";
|
|
25
26
|
import UDExList from "./List.js";
|
|
26
27
|
import UDExListItem from "./ListItem.js";
|
|
27
28
|
import UDExListGroupHeader from "./ListGroupHeader.js";
|
|
@@ -44,6 +45,7 @@ import SelectBoxCss from "./generated/themes/SelectBox.css.js";
|
|
|
44
45
|
import TextFieldCss from "./generated/themes/TextField.css.js";
|
|
45
46
|
import SearchableListCss from "./generated/themes/SearchableList.css.js";
|
|
46
47
|
import UDExStatusMessage from "./StatusMessage.js";
|
|
48
|
+
import UDExControlButton from "./ControlButton.js";
|
|
47
49
|
|
|
48
50
|
/**
|
|
49
51
|
* @class
|
|
@@ -75,7 +77,6 @@ import UDExStatusMessage from "./StatusMessage.js";
|
|
|
75
77
|
UDExListSelectAll,
|
|
76
78
|
UDExSelectBoxItem,
|
|
77
79
|
UDExList,
|
|
78
|
-
UDExDropdown,
|
|
79
80
|
UDExTooltip,
|
|
80
81
|
UDExSearch,
|
|
81
82
|
UDExButton,
|
|
@@ -84,6 +85,8 @@ import UDExStatusMessage from "./StatusMessage.js";
|
|
|
84
85
|
Token,
|
|
85
86
|
Icon,
|
|
86
87
|
UDExStatusMessage,
|
|
88
|
+
UDExControlButton,
|
|
89
|
+
ResponsivePopover,
|
|
87
90
|
],
|
|
88
91
|
})
|
|
89
92
|
|
|
@@ -220,20 +223,37 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
220
223
|
@property({ type: String, noAttribute: true })
|
|
221
224
|
_direction?: string;
|
|
222
225
|
|
|
226
|
+
/**
|
|
227
|
+
* @default false
|
|
228
|
+
* @private
|
|
229
|
+
*/
|
|
223
230
|
@property({ type: Boolean })
|
|
224
231
|
_focused!: boolean;
|
|
225
232
|
|
|
233
|
+
/**
|
|
234
|
+
* @default false
|
|
235
|
+
* @private
|
|
236
|
+
*/
|
|
226
237
|
@property({ type: Boolean })
|
|
227
|
-
_open
|
|
238
|
+
_open!: boolean;
|
|
228
239
|
|
|
240
|
+
/**
|
|
241
|
+
* @default false
|
|
242
|
+
* @private
|
|
243
|
+
*/
|
|
229
244
|
@property({ type: Boolean })
|
|
230
|
-
_showTagsDropdownContent
|
|
245
|
+
_showTagsDropdownContent!: boolean;
|
|
231
246
|
|
|
232
|
-
|
|
247
|
+
_trigger!: HTMLElement;
|
|
248
|
+
_popover!: ResponsivePopover;
|
|
233
249
|
_tokenizer!: Tokenizer;
|
|
234
250
|
_search!: UDExSearch;
|
|
235
251
|
_singleSelectedOption!: string;
|
|
236
252
|
_truncatableTag!: UDExTag;
|
|
253
|
+
_tags!: Array<UDExTag>;
|
|
254
|
+
_inactiveTabIndex: number = -1;
|
|
255
|
+
_activeTabIndex: number = 0;
|
|
256
|
+
_openedByTrigger: boolean = true;
|
|
237
257
|
|
|
238
258
|
_handleResizeBound: ResizeObserverCallback;
|
|
239
259
|
|
|
@@ -244,22 +264,24 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
244
264
|
this._filteredItems = [];
|
|
245
265
|
}
|
|
246
266
|
|
|
247
|
-
onEnterDOM()
|
|
267
|
+
onEnterDOM() {
|
|
248
268
|
ResizeHandler.register(this, this._handleResizeBound);
|
|
249
269
|
}
|
|
250
270
|
|
|
251
|
-
onExitDOM()
|
|
271
|
+
onExitDOM() {
|
|
252
272
|
ResizeHandler.deregister(this, this._handleResizeBound);
|
|
253
273
|
}
|
|
254
274
|
|
|
255
275
|
onAfterRendering() {
|
|
256
|
-
this._tokenizer = this.
|
|
257
|
-
this.
|
|
258
|
-
this._search = this.
|
|
276
|
+
this._tokenizer = this.getTokenizer();
|
|
277
|
+
this._popover = this.getPopover();
|
|
278
|
+
this._search = this.getSearch();
|
|
279
|
+
this._trigger = this.getTrigger();
|
|
280
|
+
this._tags = this.getTags();
|
|
259
281
|
this.handleDirection();
|
|
260
|
-
|
|
261
282
|
if (this._tokenizer?.tokens.length > 0) {
|
|
262
283
|
this.handleOutsideClick();
|
|
284
|
+
this.resetTagsTabIndexes();
|
|
263
285
|
}
|
|
264
286
|
}
|
|
265
287
|
|
|
@@ -272,7 +294,7 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
272
294
|
}
|
|
273
295
|
|
|
274
296
|
_handleResize() {
|
|
275
|
-
this.
|
|
297
|
+
this._popover.style.setProperty("--udex-dropdown-pane-width", `${this.offsetWidth}px`);
|
|
276
298
|
}
|
|
277
299
|
|
|
278
300
|
handleItemPress(e:CustomEvent) {
|
|
@@ -322,7 +344,11 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
322
344
|
}
|
|
323
345
|
|
|
324
346
|
handleDropdownBeforeOpen() {
|
|
325
|
-
this.
|
|
347
|
+
if (this.height) {
|
|
348
|
+
const content = this._popover.shadowRoot!.querySelector("[part=content]") as HTMLElement;
|
|
349
|
+
content.style.maxHeight = this.height;
|
|
350
|
+
}
|
|
351
|
+
this.fireEvent("before-open");
|
|
326
352
|
}
|
|
327
353
|
|
|
328
354
|
handleDropdownAfterClose() {
|
|
@@ -364,13 +390,7 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
364
390
|
handleTagPress(e: CustomEvent) {
|
|
365
391
|
const tag = e.target as UDExTag;
|
|
366
392
|
tag.selected = false;
|
|
367
|
-
|
|
368
|
-
if (tag.isTruncatable && !this._tokenizer.expanded) {
|
|
369
|
-
this._truncatableTag = tag;
|
|
370
|
-
this._truncatableTag.selected = true;
|
|
371
|
-
this._showTagsDropdownContent = true;
|
|
372
|
-
this.openDropdown();
|
|
373
|
-
}
|
|
393
|
+
this.toggleTruncatedPopover(tag);
|
|
374
394
|
}
|
|
375
395
|
|
|
376
396
|
handleUnselectTruncatableTag() {
|
|
@@ -381,11 +401,13 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
381
401
|
|
|
382
402
|
handleKeydownTokenizer(e: KeyboardEvent) {
|
|
383
403
|
e.stopPropagation();
|
|
404
|
+
this.getTagContent(this._tags[0]).tabIndex = this._inactiveTabIndex;
|
|
405
|
+
|
|
384
406
|
const target = e.target as Token;
|
|
385
407
|
const activeIndex = this._tokenizer.tokens?.indexOf(target);
|
|
386
408
|
const tagsCount = this._tokenizer._tokensCount;
|
|
387
|
-
const
|
|
388
|
-
|
|
409
|
+
const shouldNavigateTags = (isLeft(e) || isRight(e) || isBackSpace(e) || isDelete(e)) && tagsCount > 0;
|
|
410
|
+
this._tokenizer.expanded = shouldNavigateTags;
|
|
389
411
|
|
|
390
412
|
if (isLeft(e) && activeIndex !== 0) {
|
|
391
413
|
this.focusTag(activeIndex - 1);
|
|
@@ -397,35 +419,33 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
397
419
|
this.scrollToTag(activeIndex + 1);
|
|
398
420
|
}
|
|
399
421
|
|
|
400
|
-
if (
|
|
401
|
-
this.
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
if (isDown(e) || isUp(e)) {
|
|
422
|
+
if ((isDown(e) || isUp(e))) {
|
|
423
|
+
this._openedByTrigger = false;
|
|
405
424
|
this.openDropdown();
|
|
406
425
|
}
|
|
407
426
|
}
|
|
408
427
|
|
|
409
428
|
handleKeyDownTrigger(e: KeyboardEvent) {
|
|
410
|
-
if (isSpace(e)) {
|
|
411
|
-
e.preventDefault();
|
|
412
|
-
}
|
|
413
|
-
|
|
414
429
|
if (isSpace(e) || isEnter(e)) {
|
|
430
|
+
e.preventDefault();
|
|
431
|
+
e.stopPropagation();
|
|
432
|
+
this._showTagsDropdownContent = false;
|
|
433
|
+
this._openedByTrigger = true;
|
|
415
434
|
this.openDropdown();
|
|
416
435
|
}
|
|
417
|
-
|
|
418
|
-
if (isTabNext(e) && this._tokenizer?._tokensCount > 0) {
|
|
419
|
-
this._tokenizer.expanded = true;
|
|
420
|
-
setTimeout(() => {
|
|
421
|
-
this.focusTag(this._tokenizer._tokensCount - 1);
|
|
422
|
-
});
|
|
423
|
-
}
|
|
424
436
|
}
|
|
425
437
|
|
|
426
438
|
handleKeyDownTag(e: KeyboardEvent) {
|
|
427
|
-
|
|
439
|
+
const tag = e.target as UDExTag;
|
|
440
|
+
if (isSpace(e) || isShift(e) || isEnter(e)) {
|
|
428
441
|
e.preventDefault();
|
|
442
|
+
e.stopPropagation();
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
if (tag.isTruncatable && this.validTruncatableKey(e)) {
|
|
446
|
+
this.toggleTruncatedPopover(tag);
|
|
447
|
+
} else {
|
|
448
|
+
this._showTagsDropdownContent = false;
|
|
429
449
|
}
|
|
430
450
|
|
|
431
451
|
if (isDelete(e) || isBackSpace(e)) {
|
|
@@ -433,32 +453,37 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
433
453
|
const target = e.target as Token;
|
|
434
454
|
const tags = this._tokenizer.tokens;
|
|
435
455
|
const deletedTagIndex = tags.indexOf(target);
|
|
436
|
-
|
|
456
|
+
let nextTokenIndex = deletedTagIndex + 1;
|
|
437
457
|
if (this._tokenizer.tokens.length !== 1) {
|
|
438
|
-
|
|
458
|
+
if (deletedTagIndex === tags.length - 1) {
|
|
459
|
+
nextTokenIndex = deletedTagIndex - 1;
|
|
460
|
+
this.focusTag(nextTokenIndex);
|
|
461
|
+
} else {
|
|
462
|
+
this.focusTag(nextTokenIndex);
|
|
463
|
+
}
|
|
439
464
|
this.scrollToTag(nextTokenIndex);
|
|
440
465
|
} else {
|
|
441
|
-
this.
|
|
466
|
+
this._trigger.focus();
|
|
442
467
|
}
|
|
443
468
|
}
|
|
444
469
|
}
|
|
445
470
|
|
|
446
471
|
handleKeyDownDropdown(e: KeyboardEvent) {
|
|
447
472
|
const isTabPrevPress = isTabPrevious(e) && !this._search;
|
|
473
|
+
const isTabNextPress = isTabNext(e);
|
|
474
|
+
const isEscapePress = isEscape(e);
|
|
475
|
+
const isSearchResetTrigger = e.target === this._search;
|
|
448
476
|
|
|
449
|
-
if (
|
|
450
|
-
this.
|
|
451
|
-
}
|
|
452
|
-
|
|
453
|
-
if (isTabNext(e) || isTabPrevPress) {
|
|
454
|
-
this.closeDropdown();
|
|
477
|
+
if ((isTabNextPress && (!isSearchResetTrigger || this.isListEmpty)) || isTabPrevPress || isEscapePress) {
|
|
478
|
+
this.closeDropdown(e);
|
|
455
479
|
}
|
|
456
480
|
}
|
|
457
481
|
|
|
458
482
|
handleKeyDownSearch(e: CustomEvent) {
|
|
459
483
|
const keyEvent = e.detail as KeyboardEvent;
|
|
484
|
+
|
|
460
485
|
if (isTabPrevious(keyEvent) || isEscape(keyEvent)) {
|
|
461
|
-
this.closeDropdown();
|
|
486
|
+
this.closeDropdown(keyEvent);
|
|
462
487
|
}
|
|
463
488
|
}
|
|
464
489
|
|
|
@@ -471,12 +496,41 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
471
496
|
}
|
|
472
497
|
|
|
473
498
|
openDropdown() {
|
|
474
|
-
this.
|
|
499
|
+
this._popover.showAt(this._trigger);
|
|
500
|
+
this._open = true;
|
|
501
|
+
if (this.showMultiSelectedOptions) {
|
|
502
|
+
this._tokenizer.expanded = true;
|
|
503
|
+
}
|
|
475
504
|
}
|
|
476
505
|
|
|
477
|
-
closeDropdown() {
|
|
478
|
-
if (this.
|
|
479
|
-
this.
|
|
506
|
+
closeDropdown(e?: KeyboardEvent) {
|
|
507
|
+
if (this._popover.open) {
|
|
508
|
+
if (this._tokenizer) {
|
|
509
|
+
this._tokenizer.expanded = false;
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
if (e && (isEscape(e) || isTabPrevious(e))) {
|
|
513
|
+
e.preventDefault();
|
|
514
|
+
if (this._openedByTrigger) {
|
|
515
|
+
this._trigger.focus();
|
|
516
|
+
} else {
|
|
517
|
+
this.focusTag(0);
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
this._popover.close();
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
toggleTruncatedPopover(tag: UDExTag) {
|
|
525
|
+
if (!tag.isTruncatable) {
|
|
526
|
+
this._showTagsDropdownContent = false;
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
if (tag.isTruncatable && !this._open) {
|
|
530
|
+
this._truncatableTag = tag;
|
|
531
|
+
this._truncatableTag.selected = true;
|
|
532
|
+
this._showTagsDropdownContent = true;
|
|
533
|
+
this.openDropdown();
|
|
480
534
|
}
|
|
481
535
|
}
|
|
482
536
|
|
|
@@ -496,7 +550,7 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
496
550
|
}
|
|
497
551
|
|
|
498
552
|
handleOpenMultiSelect() {
|
|
499
|
-
if (this.
|
|
553
|
+
if (this._popover.open) {
|
|
500
554
|
this.closeDropdown();
|
|
501
555
|
} else {
|
|
502
556
|
this._showTagsDropdownContent = false;
|
|
@@ -505,7 +559,7 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
505
559
|
}
|
|
506
560
|
|
|
507
561
|
handleOpenSingleSelect() {
|
|
508
|
-
if (this.
|
|
562
|
+
if (this._popover.open) {
|
|
509
563
|
this.closeDropdown();
|
|
510
564
|
} else {
|
|
511
565
|
this.openDropdown();
|
|
@@ -524,6 +578,30 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
524
578
|
return this.displayonly ? this.showMoreReadOnlyItems() : this.showMoreItems();
|
|
525
579
|
}
|
|
526
580
|
|
|
581
|
+
getPopover(): ResponsivePopover {
|
|
582
|
+
return this.shadowRoot!.querySelector<ResponsivePopover>("[ui5-popover]")!;
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
getSearch(): UDExSearch {
|
|
586
|
+
return this.shadowRoot!.querySelector<UDExSearch>("udex-search")!;
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
getTrigger(): HTMLElement {
|
|
590
|
+
return this.shadowRoot!.querySelector(".udex-text-field__input")!;
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
getTokenizer(): Tokenizer {
|
|
594
|
+
return this.shadowRoot!.querySelector<Tokenizer>("[ui5-tokenizer]")!;
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
getTags(): Array<UDExTag> {
|
|
598
|
+
return Array.from(this.shadowRoot!.querySelectorAll<UDExTag>("udex-tag"));
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
getTagContent(tag: UDExTag): HTMLElement {
|
|
602
|
+
return tag.shadowRoot!.querySelector(".udex-tag")!;
|
|
603
|
+
}
|
|
604
|
+
|
|
527
605
|
handleDirection() {
|
|
528
606
|
const directionStyles: string = window
|
|
529
607
|
.getComputedStyle(this)
|
|
@@ -536,6 +614,18 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
536
614
|
}
|
|
537
615
|
}
|
|
538
616
|
|
|
617
|
+
validTruncatableKey(e: KeyboardEvent): boolean {
|
|
618
|
+
return isSpace(e) || isEnter(e);
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
resetTagsTabIndexes() {
|
|
622
|
+
this._tags.forEach((tag, i) => { this.getTagContent(tag).tabIndex = i === 0 ? this._activeTabIndex : this._inactiveTabIndex; });
|
|
623
|
+
}
|
|
624
|
+
|
|
625
|
+
get allowTargetOverlap(): boolean {
|
|
626
|
+
return !this.disableTargetOverlap;
|
|
627
|
+
}
|
|
628
|
+
|
|
539
629
|
get isDisabled(): boolean {
|
|
540
630
|
return this.readonly || this.displayonly || this.disabled;
|
|
541
631
|
}
|
|
@@ -556,22 +646,6 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
556
646
|
return this.hasSelectedItems && this.modeMultiSelect;
|
|
557
647
|
}
|
|
558
648
|
|
|
559
|
-
get dropdown(): UDExDropdown {
|
|
560
|
-
return this.shadowRoot!.querySelector<UDExDropdown>("udex-dropdown")!;
|
|
561
|
-
}
|
|
562
|
-
|
|
563
|
-
get search(): UDExSearch {
|
|
564
|
-
return this.shadowRoot!.querySelector<UDExSearch>("udex-search")!;
|
|
565
|
-
}
|
|
566
|
-
|
|
567
|
-
get trigger(): UDExDropdown {
|
|
568
|
-
return this.shadowRoot!.querySelector(".udex-text-field__input")!;
|
|
569
|
-
}
|
|
570
|
-
|
|
571
|
-
get tokenizer(): Tokenizer {
|
|
572
|
-
return this.shadowRoot!.querySelector<Tokenizer>("[ui5-tokenizer]")!;
|
|
573
|
-
}
|
|
574
|
-
|
|
575
649
|
get labelClass(): string {
|
|
576
650
|
const baseClass = "udex-text-field__label";
|
|
577
651
|
const isActive = this._open || this._singleSelectedOption || this.hasSelectedItems;
|
|
@@ -592,6 +666,11 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
592
666
|
if (this._showTagsDropdownContent && this._truncatableTag) {
|
|
593
667
|
return false;
|
|
594
668
|
}
|
|
669
|
+
|
|
670
|
+
if (this._tokenizer) {
|
|
671
|
+
return this._tokenizer.expanded;
|
|
672
|
+
}
|
|
673
|
+
|
|
595
674
|
return this._open;
|
|
596
675
|
}
|
|
597
676
|
|
|
@@ -605,7 +684,11 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
605
684
|
|
|
606
685
|
get effectiveTabIndex(): string {
|
|
607
686
|
const tabindex = this.getAttribute("tabindex");
|
|
608
|
-
return this.disabled ?
|
|
687
|
+
return this.disabled ? `${this._inactiveTabIndex}` : tabindex || `${this._inactiveTabIndex}`;
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
get triggerTabIndex(): string {
|
|
691
|
+
return this.disabled || this.readonly ? `${this._inactiveTabIndex}` : "";
|
|
609
692
|
}
|
|
610
693
|
|
|
611
694
|
get iconAccessibleNameText(): string {
|
package/src/StatusBadge.ts
CHANGED
|
@@ -82,13 +82,13 @@ class UDExStatusBadge extends UI5Element {
|
|
|
82
82
|
@property({ type: BadgeSize, defaultValue: BadgeSize.S })
|
|
83
83
|
size!: `${BadgeSize}`;
|
|
84
84
|
|
|
85
|
-
|
|
85
|
+
/**
|
|
86
86
|
* Defines the text alternative of the component.
|
|
87
87
|
*
|
|
88
88
|
* @default ""
|
|
89
89
|
* @public
|
|
90
90
|
*/
|
|
91
|
-
|
|
91
|
+
@property({ type: String, defaultValue: "" })
|
|
92
92
|
accessibleName!: string;
|
|
93
93
|
|
|
94
94
|
static i18nBundle: I18nBundle;
|
package/src/Switch.hbs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<div class="udex-switch">
|
|
2
2
|
{{#if label}}
|
|
3
|
-
<label for="
|
|
3
|
+
<label id="{{this._id}}-switch__label" for="{{this._id}}-switch__input" class="udex-switch__label" part="label">{{label}}</label>
|
|
4
4
|
{{/if}}
|
|
5
5
|
<div
|
|
6
6
|
class="udex-switch__container"
|
|
7
7
|
role="switch"
|
|
8
8
|
aria-label="{{accessibleName}}"
|
|
9
|
-
aria-labelledby="{{
|
|
9
|
+
aria-labelledby="{{ariaLabeledBy}}"
|
|
10
10
|
aria-checked="{{checked}}"
|
|
11
11
|
aria-disabled="{{disabled}}"
|
|
12
12
|
tabindex="{{switchTabIndex}}"
|
|
@@ -32,6 +32,6 @@
|
|
|
32
32
|
</div>
|
|
33
33
|
</div>
|
|
34
34
|
|
|
35
|
-
<input id="
|
|
35
|
+
<input id="{{this._id}}-switch__input" type="checkbox" ?checked="{{checked}}" class="udex-switch__input" />
|
|
36
36
|
</div>
|
|
37
37
|
</div>
|
package/src/Switch.ts
CHANGED
|
@@ -22,6 +22,26 @@ export enum SwitchColor {
|
|
|
22
22
|
Semantic = "Semantic",
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
/**
|
|
26
|
+
* @class
|
|
27
|
+
*
|
|
28
|
+
* <h3 class="comment-api-title">Overview</h3>
|
|
29
|
+
*
|
|
30
|
+
*
|
|
31
|
+
* <h3>Usage</h3>
|
|
32
|
+
*
|
|
33
|
+
* For the <code>udex-switch</code>
|
|
34
|
+
* <h3>ES6 Module Import</h3>
|
|
35
|
+
*
|
|
36
|
+
* <code>import "@udex/web-components/dist/Switch.js";</code>
|
|
37
|
+
*
|
|
38
|
+
* @constructor
|
|
39
|
+
* @author SAP SE
|
|
40
|
+
* @extends UI5Element
|
|
41
|
+
* @tagname udex-switch
|
|
42
|
+
* @public
|
|
43
|
+
*/
|
|
44
|
+
|
|
25
45
|
@customElement({
|
|
26
46
|
tag: "udex-switch",
|
|
27
47
|
renderer: litRender,
|
|
@@ -29,6 +49,7 @@ export enum SwitchColor {
|
|
|
29
49
|
template: SwitchTemplate,
|
|
30
50
|
dependencies: [Icon],
|
|
31
51
|
})
|
|
52
|
+
|
|
32
53
|
/**
|
|
33
54
|
* Fired when the component checked state changes.
|
|
34
55
|
*
|
|
@@ -131,6 +152,10 @@ class UDExSwitch extends UI5Element {
|
|
|
131
152
|
get isSemanticColor(): boolean {
|
|
132
153
|
return this.color === SwitchColor.Semantic;
|
|
133
154
|
}
|
|
155
|
+
|
|
156
|
+
get ariaLabeledBy(): string {
|
|
157
|
+
return this.accessibleNameRef || this.label ? `${this._id}-switch__label` : "";
|
|
158
|
+
}
|
|
134
159
|
}
|
|
135
160
|
|
|
136
161
|
UDExSwitch.define();
|
package/src/Tab.ts
CHANGED
|
@@ -46,6 +46,7 @@ interface ITab extends UI5Element {
|
|
|
46
46
|
_slotName: string;
|
|
47
47
|
_selected?: boolean;
|
|
48
48
|
_tabIndex: string;
|
|
49
|
+
_contentTabIndex: string;
|
|
49
50
|
_iconWithoutBackground: boolean;
|
|
50
51
|
_posinset?: number;
|
|
51
52
|
_setsize?: number;
|
|
@@ -66,7 +67,7 @@ interface ITab extends UI5Element {
|
|
|
66
67
|
* For the <code>udex-tab</code>
|
|
67
68
|
* <h3>ES6 Module Import</h3>
|
|
68
69
|
*
|
|
69
|
-
* <code>import @udex/web-components/dist/Tab.js";</code>
|
|
70
|
+
* <code>import "@udex/web-components/dist/Tab.js";</code>
|
|
70
71
|
*
|
|
71
72
|
* @constructor
|
|
72
73
|
* @author SAP SE
|
|
@@ -173,6 +174,15 @@ class UDExTab extends UI5Element implements ITab {
|
|
|
173
174
|
@property({ type: String })
|
|
174
175
|
_tabIndex!: string;
|
|
175
176
|
|
|
177
|
+
/**
|
|
178
|
+
* Defines the tabindex of the tab content.
|
|
179
|
+
*
|
|
180
|
+
* @private
|
|
181
|
+
* @default -1
|
|
182
|
+
*/
|
|
183
|
+
@property({ type: String })
|
|
184
|
+
_contentTabIndex!: string;
|
|
185
|
+
|
|
176
186
|
/**
|
|
177
187
|
* Defines the background color of the component.
|
|
178
188
|
*
|
package/src/TabHeader.hbs
CHANGED
|
@@ -33,7 +33,9 @@
|
|
|
33
33
|
|
|
34
34
|
{{#*inline "tab-content"}}
|
|
35
35
|
{{#if hasIcon}}
|
|
36
|
-
<span class="udex-tab-navigation__button-icon-outer"
|
|
36
|
+
<span class="udex-tab-navigation__button-icon-outer"
|
|
37
|
+
role="presentation"
|
|
38
|
+
aria-hidden="true">
|
|
37
39
|
<ui5-icon
|
|
38
40
|
class="udex-tab-navigation__button-icon"
|
|
39
41
|
name="{{icon}}"
|
package/src/TabInOverflow.hbs
CHANGED
|
@@ -3,9 +3,12 @@
|
|
|
3
3
|
id="{{this._id}}"
|
|
4
4
|
class="udex-tab-overflow__button"
|
|
5
5
|
role="tab"
|
|
6
|
-
|
|
6
|
+
aria-selected="{{this.effectiveSelected}}"
|
|
7
|
+
tabindex="{{_tabIndex}}">
|
|
7
8
|
{{#if hasIcon}}
|
|
8
|
-
<span class="udex-tab-overflow__button-icon"
|
|
9
|
+
<span class="udex-tab-overflow__button-icon"
|
|
10
|
+
role="presentation"
|
|
11
|
+
aria-hidden="true">
|
|
9
12
|
<ui5-icon
|
|
10
13
|
name="{{icon}}"
|
|
11
14
|
></ui5-icon>
|
|
@@ -16,18 +19,25 @@
|
|
|
16
19
|
{{/if}}
|
|
17
20
|
{{text}}
|
|
18
21
|
{{#if hasNotIcon}}
|
|
19
|
-
<span class="udex-tab-overflow__button-badge"
|
|
22
|
+
<span class="udex-tab-overflow__button-badge"
|
|
23
|
+
role="presentation"
|
|
24
|
+
aria-hidden="true">
|
|
25
|
+
</span>
|
|
20
26
|
{{/if}}
|
|
21
27
|
</button>
|
|
22
28
|
{{else}}
|
|
23
29
|
<a
|
|
30
|
+
id="{{this._id}}"
|
|
24
31
|
href="{{href}}"
|
|
25
32
|
target="{{this.target}}"
|
|
26
33
|
class="udex-tab-overflow__button"
|
|
27
34
|
role="tab"
|
|
28
|
-
|
|
35
|
+
aria-selected="{{this.effectiveSelected}}"
|
|
36
|
+
tabindex="{{_tabIndex}}">
|
|
29
37
|
{{#if hasIcon}}
|
|
30
|
-
<span class="udex-tab-overflow__button-icon"
|
|
38
|
+
<span class="udex-tab-overflow__button-icon"
|
|
39
|
+
role="presentation"
|
|
40
|
+
aria-hidden="true">
|
|
31
41
|
<ui5-icon
|
|
32
42
|
name="{{icon}}"
|
|
33
43
|
></ui5-icon>
|
|
@@ -38,7 +48,10 @@
|
|
|
38
48
|
{{/if}}
|
|
39
49
|
{{text}}
|
|
40
50
|
{{#if hasNotIcon}}
|
|
41
|
-
<span class="udex-tab-overflow__button-badge"
|
|
51
|
+
<span class="udex-tab-overflow__button-badge"
|
|
52
|
+
role="presentation"
|
|
53
|
+
aria-hidden="true">
|
|
54
|
+
</span>
|
|
42
55
|
{{/if}}
|
|
43
56
|
</a>
|
|
44
57
|
{{/if}}
|
package/src/TabNavigation.hbs
CHANGED
|
@@ -3,15 +3,14 @@
|
|
|
3
3
|
id="{{_id}}-header"
|
|
4
4
|
class="udex-tab-navigation__header"
|
|
5
5
|
part="tab-navigation-header"
|
|
6
|
-
@keydown="{{handleKeyDown}}"
|
|
7
|
-
>
|
|
6
|
+
@keydown="{{handleKeyDown}}">
|
|
8
7
|
<div
|
|
9
8
|
id="{{_id}}-header-tabs"
|
|
10
9
|
class="udex-tab-navigation__header-tabs"
|
|
11
10
|
role="tablist"
|
|
11
|
+
aria-labelledby="tablist-{{_id}}"
|
|
12
12
|
part="tab-navigation-header-tabs"
|
|
13
|
-
@click="{{onTabClick}}"
|
|
14
|
-
>
|
|
13
|
+
@click="{{onTabClick}}">
|
|
15
14
|
{{#each items}}
|
|
16
15
|
{{this.tabNavigation}}
|
|
17
16
|
{{/each}}
|
|
@@ -20,28 +19,39 @@
|
|
|
20
19
|
class="udex-tab-navigation__button-more"
|
|
21
20
|
@click="{{handleMoreButton}}"
|
|
22
21
|
@keydown="{{handleFocusMoreButton}}"
|
|
23
|
-
tabindex="
|
|
22
|
+
tabindex="0"
|
|
24
23
|
aria-haspopup="menu"
|
|
25
24
|
aria-expanded="{{_isExpanded}}"
|
|
26
25
|
tooltip="{{moreButtonText}}"
|
|
27
|
-
hidden
|
|
28
|
-
>
|
|
26
|
+
hidden>
|
|
29
27
|
{{moreButtonText}}
|
|
30
28
|
<ui5-icon
|
|
31
29
|
class="udex-tab-navigation__button-more-icon"
|
|
32
30
|
name="navigation-down-arrow"
|
|
33
31
|
></ui5-icon>
|
|
34
32
|
</button>
|
|
33
|
+
{{tabNavigationPopover}}
|
|
35
34
|
</div>
|
|
36
35
|
<div
|
|
37
36
|
class="udex-tab-navigation__content"
|
|
38
37
|
id="udex-{{__id}}-content"
|
|
39
|
-
part="tab-navigation-content"
|
|
40
|
-
>
|
|
38
|
+
part="tab-navigation-content">
|
|
41
39
|
{{#each items}}
|
|
42
|
-
|
|
43
|
-
<
|
|
44
|
-
|
|
40
|
+
{{#if this.selected}}
|
|
41
|
+
<div
|
|
42
|
+
class="udex-tab-navigation__content-item"
|
|
43
|
+
id="{{_contentId}}"
|
|
44
|
+
aria-labelledby="{{_id}}"
|
|
45
|
+
tabindex="{{_contentTabIndex}}">
|
|
46
|
+
<slot name="{{this._slotName}}"></slot>
|
|
47
|
+
</div>
|
|
48
|
+
{{else}}
|
|
49
|
+
<div
|
|
50
|
+
class="udex-tab-navigation__content-item"
|
|
51
|
+
id="{{_contentId}}">
|
|
52
|
+
<slot name="{{this._slotName}}"></slot>
|
|
53
|
+
</div>
|
|
54
|
+
{{/if}}
|
|
45
55
|
{{/each}}
|
|
46
56
|
</div>
|
|
47
57
|
</div>
|