@sapudex/web-components 0.127.6 → 0.143.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 +2 -0
- package/dist/Accordion.d.ts +1 -1
- package/dist/Accordion.js +2 -2
- package/dist/Accordion.js.map +1 -1
- package/dist/AccordionItem.d.ts +1 -1
- package/dist/AccordionItem.js +2 -2
- package/dist/AccordionItem.js.map +1 -1
- package/dist/Avatar.js +1 -1
- package/dist/Avatar.js.map +1 -1
- package/dist/Breadcrumbs.js +1 -1
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/Carousel.js +1 -1
- package/dist/Carousel.js.map +1 -1
- 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 +32 -10
- package/dist/CountrySelector.js.map +1 -1
- package/dist/DatePicker.d.ts +1 -0
- package/dist/DatePicker.js +5 -2
- package/dist/DatePicker.js.map +1 -1
- package/dist/Dropdown.d.ts +2 -1
- package/dist/Dropdown.js +16 -4
- package/dist/Dropdown.js.map +1 -1
- package/dist/FilterMenu.d.ts +21 -6
- package/dist/FilterMenu.js +66 -21
- package/dist/FilterMenu.js.map +1 -1
- package/dist/Footer.d.ts +9 -1
- package/dist/Footer.js +9 -2
- package/dist/Footer.js.map +1 -1
- package/dist/InputGroup.js +1 -1
- package/dist/InputGroup.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 +18 -2
- 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 +7 -8
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItemBase.d.ts +2 -2
- package/dist/ListItemBase.js.map +1 -1
- package/dist/ListSelectAll.d.ts +1 -1
- package/dist/ListSelectAll.js +2 -2
- package/dist/ListSelectAll.js.map +1 -1
- package/dist/MastheadItem.d.ts +9 -1
- package/dist/MastheadItem.js +28 -16
- 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 +136 -22
- package/dist/MastheadMobileMenu.js.map +1 -1
- package/dist/MastheadProfileMenu.d.ts +13 -4
- package/dist/MastheadProfileMenu.js +41 -10
- package/dist/MastheadProfileMenu.js.map +1 -1
- package/dist/MastheadShell.d.ts +24 -5
- package/dist/MastheadShell.js +77 -29
- 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.js +1 -1
- package/dist/Pagination.js.map +1 -1
- package/dist/PasswordField.js +1 -1
- package/dist/PasswordField.js.map +1 -1
- package/dist/PhoneNumberField.d.ts +26 -0
- package/dist/PhoneNumberField.js +47 -3
- package/dist/PhoneNumberField.js.map +1 -1
- package/dist/RatingBar.js +1 -1
- package/dist/RatingBar.js.map +1 -1
- package/dist/Review.js +1 -1
- package/dist/Review.js.map +1 -1
- 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 +15 -1
- package/dist/Search.js +31 -6
- package/dist/Search.js.map +1 -1
- package/dist/SearchableListBase.d.ts +5 -0
- package/dist/SearchableListBase.js +11 -4
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SecondaryNavigation.d.ts +2 -0
- package/dist/SecondaryNavigation.js +19 -12
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.d.ts +8 -0
- package/dist/SecondaryNavigationItem.js +20 -1
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SecondaryNavigationItemBase.js +1 -1
- package/dist/SecondaryNavigationItemBase.js.map +1 -1
- package/dist/SecondaryNavigationSubItem.js +1 -1
- package/dist/SecondaryNavigationSubItem.js.map +1 -1
- package/dist/SelectBox.d.ts +33 -9
- package/dist/SelectBox.js +119 -60
- package/dist/SelectBox.js.map +1 -1
- package/dist/StatusBadge.js +1 -1
- package/dist/StatusBadge.js.map +1 -1
- package/dist/StepInput.js +1 -1
- package/dist/StepInput.js.map +1 -1
- package/dist/Switch.d.ts +19 -0
- package/dist/Switch.js +19 -0
- package/dist/Switch.js.map +1 -1
- package/dist/Tab.d.ts +1 -1
- package/dist/Tab.js +2 -2
- package/dist/Tab.js.map +1 -1
- package/dist/TabNavigation.d.ts +1 -1
- package/dist/TabNavigation.js +2 -2
- package/dist/TabNavigation.js.map +1 -1
- package/dist/Table.js +1 -1
- package/dist/Table.js.map +1 -1
- package/dist/Tag.d.ts +9 -1
- package/dist/Tag.js +20 -3
- 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 +13 -0
- package/dist/TextArea.js +16 -1
- package/dist/TextArea.js.map +1 -1
- package/dist/TextField.d.ts +23 -13
- package/dist/TextField.js +17 -4
- package/dist/TextField.js.map +1 -1
- package/dist/Tooltip.d.ts +1 -1
- package/dist/Tooltip.js +1 -1
- package/dist/Tooltip.js.map +1 -1
- package/dist/TruncatedText.js +1 -1
- package/dist/TruncatedText.js.map +1 -1
- package/dist/assets/{bundle.esm-7d53f4f2.js → bundle.esm-8623b7b1.js} +190 -188
- 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/Button.css +1 -1
- package/dist/css/themes/CountrySelector.css +1 -1
- package/dist/css/themes/Dropdown.css +1 -1
- package/dist/css/themes/FilterMenu.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/PhoneNumberField.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- 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/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 +881 -404
- package/dist/custom-elements.json +787 -350
- package/dist/data/CountryListISO3166.js +1 -1
- 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 +3 -1
- package/dist/generated/i18n/i18n-defaults.js +6 -4
- package/dist/generated/i18n/i18n-defaults.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 +9 -9
- package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
- package/dist/generated/templates/HeroBannerTemplate.lit.js +7 -8
- 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 +13 -11
- 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/PhoneNumberFieldTemplate.lit.js +5 -2
- package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
- 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/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/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/TabNavigationTemplate.lit.js +3 -1
- 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 +11 -7
- 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 +1 -1
- package/dist/generated/templates/TextFieldTemplate.lit.js.map +1 -1
- package/dist/generated/themes/Button.css.js +1 -1
- package/dist/generated/themes/Button.css.js.map +1 -1
- package/dist/generated/themes/CountrySelector.css.js +1 -1
- package/dist/generated/themes/CountrySelector.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/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/PhoneNumberField.css.js +1 -1
- package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/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/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 +7 -3
- package/dist/i18n/messagebundle_en.properties +5 -3
- package/dist/vscode.html-custom-data.json +156 -81
- package/dist/web-types.json +394 -144
- package/package.json +8 -8
- package/src/Accordion.ts +2 -2
- package/src/AccordionItem.ts +2 -2
- package/src/Avatar.ts +1 -1
- package/src/Breadcrumbs.ts +1 -1
- package/src/Carousel.ts +1 -1
- package/src/Checkbox.ts +1 -1
- package/src/CountrySelector.hbs +19 -15
- package/src/CountrySelector.ts +50 -13
- package/src/DatePicker.hbs +7 -8
- package/src/DatePicker.ts +15 -11
- package/src/Dropdown.hbs +3 -0
- package/src/Dropdown.ts +12 -4
- package/src/FilterMenu.hbs +58 -59
- package/src/FilterMenu.ts +101 -42
- package/src/Footer.hbs +9 -0
- package/src/Footer.ts +11 -2
- package/src/HeroBanner.hbs +4 -1
- package/src/InputGroup.ts +1 -1
- package/src/Link.ts +1 -1
- package/src/List.ts +44 -24
- package/src/ListGroupHeader.ts +2 -2
- package/src/ListItem.hbs +4 -2
- package/src/ListItem.ts +9 -11
- package/src/ListItemBase.ts +1 -1
- package/src/ListSelectAll.hbs +1 -1
- package/src/ListSelectAll.ts +2 -2
- package/src/MastheadItem.hbs +5 -3
- package/src/MastheadItem.ts +39 -17
- 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 +163 -23
- package/src/MastheadProfileMenu.hbs +6 -2
- package/src/MastheadProfileMenu.ts +67 -21
- package/src/MastheadShell.hbs +33 -20
- package/src/MastheadShell.ts +101 -32
- package/src/MediaPlayer.hbs +1 -3
- package/src/MediaPlayer.ts +122 -26
- package/src/MessageStrip.ts +1 -3
- package/src/Pagination.ts +1 -1
- package/src/PasswordField.ts +1 -1
- package/src/PhoneNumberField.hbs +18 -3
- package/src/PhoneNumberField.ts +68 -3
- package/src/RatingBar.ts +1 -1
- package/src/Review.ts +1 -1
- package/src/ReviewItem.hbs +20 -0
- package/src/ReviewItem.ts +227 -0
- package/src/Search.ts +42 -5
- package/src/SearchableListBase.ts +15 -7
- package/src/SecondaryNavigation.hbs +11 -7
- package/src/SecondaryNavigation.ts +22 -13
- package/src/SecondaryNavigationItem.ts +30 -1
- package/src/SecondaryNavigationItemBase.ts +1 -1
- package/src/SecondaryNavigationSubItem.ts +1 -1
- package/src/SelectBox.hbs +9 -7
- package/src/SelectBox.ts +153 -72
- package/src/StatusBadge.ts +1 -1
- package/src/StepInput.ts +1 -1
- package/src/Switch.ts +21 -0
- package/src/Tab.ts +2 -2
- package/src/TabHeader.hbs +3 -1
- package/src/TabInOverflow.hbs +16 -4
- package/src/TabNavigation.hbs +15 -7
- package/src/TabNavigation.ts +2 -2
- package/src/Table.ts +1 -1
- package/src/Tag.hbs +28 -12
- package/src/Tag.ts +25 -4
- package/src/TagGroup.hbs +48 -0
- package/src/TagGroup.ts +222 -0
- package/src/TextArea.hbs +36 -33
- package/src/TextArea.ts +26 -1
- package/src/TextField.hbs +8 -6
- package/src/TextField.ts +51 -20
- package/src/Tooltip.ts +1 -1
- package/src/TruncatedText.ts +1 -1
- package/src/data/CountryListISO3166.ts +1 -1
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- 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 +9 -9
- package/src/generated/templates/HeroBannerTemplate.lit.ts +7 -8
- 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 +13 -11
- package/src/generated/templates/MediaPlayerTemplate.lit.ts +2 -2
- package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +5 -2
- package/src/generated/templates/ReviewItemTemplate.lit.ts +13 -0
- package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +7 -6
- package/src/generated/templates/SelectBoxTemplate.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/TabNavigationTemplate.lit.ts +3 -1
- package/src/generated/templates/TagGroupTemplate.lit.ts +13 -0
- package/src/generated/templates/TagTemplate.lit.ts +11 -7
- package/src/generated/templates/TextAreaTemplate.lit.ts +1 -1
- package/src/generated/templates/TextFieldTemplate.lit.ts +1 -1
- package/src/generated/themes/Button.css.ts +1 -1
- package/src/generated/themes/CountrySelector.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/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/PhoneNumberField.css.ts +1 -1
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- 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/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 +7 -3
- package/src/i18n/messagebundle_en.properties +5 -3
- package/src/themes/Button.css +10 -0
- package/src/themes/CountrySelector.css +60 -35
- package/src/themes/Dropdown.css +10 -0
- package/src/themes/FilterMenu.css +65 -15
- package/src/themes/ListItem.css +4 -0
- package/src/themes/MastheadItem.css +18 -4
- package/src/themes/MastheadMobileMenu.css +4 -0
- package/src/themes/MastheadShell.css +88 -9
- package/src/themes/PhoneNumberField.css +36 -21
- package/src/themes/ReviewItem.css +121 -0
- package/src/themes/Search.css +13 -0
- package/src/themes/SecondaryNavigation.css +13 -14
- package/src/themes/SecondaryNavigationItem.css +11 -3
- package/src/themes/SecondaryNavigationSubItem.css +5 -5
- package/src/themes/SelectBox.css +42 -0
- package/src/themes/Tag.css +20 -0
- package/src/themes/TagGroup.css +90 -0
- package/src/themes/TextArea.css +13 -0
- package/src/themes/TextField.css +25 -8
- package/src/themes/Toast.css +4 -0
- package/dist/assets/messagebundle_en-6dcc9ab4.js +0 -1
- package/dist/assets/parameters-bundle.css-de55cf62.js +0 -2
- package/dist/assets/video.es-17aecf95.js +0 -219
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<div class="{{reviewItemClasses}}">
|
|
2
|
+
<div class="udex-review-item__rating-container">
|
|
3
|
+
<udex-rating-indicator value="{{validatedRating}}" max="{{_maxRating}}" readonly></udex-rating-indicator>
|
|
4
|
+
{{#if date}}
|
|
5
|
+
<slot slot="date" name="date" class="udex-review-item__date"></slot>
|
|
6
|
+
{{/if}}
|
|
7
|
+
</div>
|
|
8
|
+
<div class="udex-review-item__text-container">
|
|
9
|
+
<div class="udex-review-item__title">{{reviewTitle}}</div>
|
|
10
|
+
<div class="udex-review-item__text-wrapper">
|
|
11
|
+
<p class="udex-review-item__text" id="udex-review-item__text">{{_completeText}}</p>
|
|
12
|
+
{{#if _showTextExpander}}
|
|
13
|
+
<udex-button id="reviewExpander" class="udex-review-item__text-expander" design="Invisible" size="Small" @click="{{_toggleText}}">{{buttonText}}</udex-button>
|
|
14
|
+
{{/if}}
|
|
15
|
+
</div>
|
|
16
|
+
{{#if author}}
|
|
17
|
+
<slot slot="author" name="author" class="udex-review-item__author"></slot>
|
|
18
|
+
{{/if}}
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
+
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
3
|
+
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
4
|
+
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
5
|
+
|
|
6
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
7
|
+
import I18nBundle, { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
8
|
+
import ResizeHandler, { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
9
|
+
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
|
|
10
|
+
import UDExRatingIndicator from "./RatingIndicator.js";
|
|
11
|
+
import UDExButton from "./Button.js";
|
|
12
|
+
import ReviewItemTemplate from "./generated/templates/ReviewItemTemplate.lit.js";
|
|
13
|
+
|
|
14
|
+
// Styles
|
|
15
|
+
import ReviewItemCss from "./generated/themes/ReviewItem.css.js";
|
|
16
|
+
import { READ_LESS, READ_MORE } from "./generated/i18n/i18n-defaults.js";
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @class
|
|
20
|
+
*
|
|
21
|
+
* <h3 class="comment-api-title">Overview</h3>
|
|
22
|
+
*
|
|
23
|
+
*
|
|
24
|
+
* <h3>Usage</h3>
|
|
25
|
+
*
|
|
26
|
+
* For the <code>udex-review-item</code>
|
|
27
|
+
* <h3>ES6 Module Import</h3>
|
|
28
|
+
*
|
|
29
|
+
* <code>import "@udex/web-components/dist/ReviewItem.js";</code>
|
|
30
|
+
*
|
|
31
|
+
* @constructor
|
|
32
|
+
* @extends UI5Element
|
|
33
|
+
* @public
|
|
34
|
+
*/
|
|
35
|
+
@customElement({
|
|
36
|
+
tag: "udex-review-item",
|
|
37
|
+
renderer: litRender,
|
|
38
|
+
styles: ReviewItemCss,
|
|
39
|
+
template: ReviewItemTemplate,
|
|
40
|
+
dependencies: [UDExRatingIndicator, UDExButton],
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
class UDExReviewItem extends UI5Element {
|
|
44
|
+
/**
|
|
45
|
+
* Defines the position of the rating in review.
|
|
46
|
+
* @default false
|
|
47
|
+
* @public
|
|
48
|
+
*/
|
|
49
|
+
@property({ type: Boolean })
|
|
50
|
+
showRatingTop!: boolean;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Defines the rating in the review.
|
|
54
|
+
*
|
|
55
|
+
* @default 0
|
|
56
|
+
* @public
|
|
57
|
+
*/
|
|
58
|
+
@property({ type: Number, defaultValue: 0, validator: Integer })
|
|
59
|
+
rating!: number;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Defines the title of the review.
|
|
63
|
+
*
|
|
64
|
+
* @default ""
|
|
65
|
+
* @public
|
|
66
|
+
*/
|
|
67
|
+
@property({ type: String })
|
|
68
|
+
reviewTitle!: string;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Defines the text of the review.
|
|
72
|
+
* @default ""
|
|
73
|
+
* @public
|
|
74
|
+
*/
|
|
75
|
+
@property({ type: String })
|
|
76
|
+
text!: string;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Defines whether button for showing truncated text is shown.
|
|
80
|
+
* @default 2
|
|
81
|
+
* @private
|
|
82
|
+
*/
|
|
83
|
+
@property({ type: Number, defaultValue: 2, validator: Integer })
|
|
84
|
+
_textLineLimit!: number;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Defines whether the text is expanded.
|
|
88
|
+
* @default false
|
|
89
|
+
* @private
|
|
90
|
+
*/
|
|
91
|
+
@property({ type: Boolean })
|
|
92
|
+
_textExpanded!: boolean;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Defines whether button for showing truncated text is shown.
|
|
96
|
+
* @default false
|
|
97
|
+
* @private
|
|
98
|
+
*/
|
|
99
|
+
@property({ type: Boolean })
|
|
100
|
+
_showTextExpander!: boolean;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Defines the text, consisting of visible and invisible parts of the original text.
|
|
104
|
+
* @default ""
|
|
105
|
+
* @private
|
|
106
|
+
*/
|
|
107
|
+
@property({ type: String })
|
|
108
|
+
_completeText!: string;
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Defines the author's name and company.
|
|
112
|
+
*
|
|
113
|
+
* @default ""
|
|
114
|
+
* @slot
|
|
115
|
+
*/
|
|
116
|
+
@slot()
|
|
117
|
+
author!: Array<HTMLElement>;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Defines the date of the review.
|
|
121
|
+
*
|
|
122
|
+
* @default ""
|
|
123
|
+
* @slot
|
|
124
|
+
*/
|
|
125
|
+
@slot()
|
|
126
|
+
date!: Array<HTMLElement>;
|
|
127
|
+
|
|
128
|
+
_toggleText() {
|
|
129
|
+
this._textExpanded = !this._textExpanded;
|
|
130
|
+
if (this._textExpanded) {
|
|
131
|
+
this._completeText = this.text;
|
|
132
|
+
this._textElement.classList.add("udex-review-item__text-expanded");
|
|
133
|
+
} else {
|
|
134
|
+
this._textElement.classList.remove("udex-review-item__text-expanded");
|
|
135
|
+
this._completeText = this._visibleText;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
_handleResizeBound: ResizeObserverCallback;
|
|
140
|
+
_textElement!: HTMLElement;
|
|
141
|
+
_visibleText!: string;
|
|
142
|
+
_maxHeight: number = 48;
|
|
143
|
+
_maxRating: number = 5;
|
|
144
|
+
_minRating: number = 0;
|
|
145
|
+
|
|
146
|
+
static i18nBundle: I18nBundle;
|
|
147
|
+
|
|
148
|
+
static async onDefine() {
|
|
149
|
+
UDExReviewItem.i18nBundle = await getI18nBundle("@udex/web-components");
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
constructor() {
|
|
153
|
+
super();
|
|
154
|
+
this._handleResizeBound = this._checkTextOverflow.bind(this);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
onEnterDOM(): void {
|
|
158
|
+
this._maxHeight = 48;
|
|
159
|
+
this._completeText = this.text;
|
|
160
|
+
ResizeHandler.register(this, this._handleResizeBound);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
onExitDOM(): void {
|
|
164
|
+
ResizeHandler.deregister(this, this._handleResizeBound);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
onAfterRendering(): void {
|
|
168
|
+
this._textElement = this.getTextElement();
|
|
169
|
+
this._checkTextOverflow();
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
_checkTextOverflow() {
|
|
173
|
+
const words = this.text.split(" ");
|
|
174
|
+
|
|
175
|
+
const canvas = document.createElement("canvas");
|
|
176
|
+
const context = canvas.getContext("2d")!;
|
|
177
|
+
context.font = `16px sans-serif`;
|
|
178
|
+
|
|
179
|
+
let currentLineWidth = 0;
|
|
180
|
+
let visibleText = "";
|
|
181
|
+
|
|
182
|
+
words.forEach(word => {
|
|
183
|
+
const wordWidth = context.measureText(`${word} `).width;
|
|
184
|
+
if (currentLineWidth + wordWidth <= 2 * this._textElement.offsetWidth) {
|
|
185
|
+
visibleText += `${word} `;
|
|
186
|
+
currentLineWidth += wordWidth;
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
this._visibleText = visibleText;
|
|
191
|
+
if (!this._textExpanded) {
|
|
192
|
+
this._completeText = visibleText;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
this._showTextExpander = (!this._textExpanded && this._completeText.length < this.text.length) || (this._textExpanded && visibleText.length < this.text.length);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
get buttonText(): string {
|
|
199
|
+
return this._textExpanded ? UDExReviewItem.i18nBundle.getText(READ_LESS) : UDExReviewItem.i18nBundle.getText(READ_MORE);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
get reviewItemClasses(): string {
|
|
203
|
+
const ratingTop = this.showRatingTop ? " udex-review-item__rating-top" : "";
|
|
204
|
+
return `udex-review-item${ratingTop}`;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
get validatedRating(): number {
|
|
208
|
+
if (this.rating > this._maxRating) {
|
|
209
|
+
console.warn("UDEx Review: The rating shouldn't be more than 5.");
|
|
210
|
+
return this._maxRating;
|
|
211
|
+
}
|
|
212
|
+
if (this.rating < this._minRating) {
|
|
213
|
+
console.warn("UDEx Review: The rating shouldn't be less than 0.");
|
|
214
|
+
return this._minRating;
|
|
215
|
+
}
|
|
216
|
+
return this.rating;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
getTextElement(): HTMLElement {
|
|
220
|
+
const textElement = this.shadowRoot?.getElementById("udex-review-item__text");
|
|
221
|
+
return textElement!;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
UDExReviewItem.define();
|
|
226
|
+
|
|
227
|
+
export default UDExReviewItem;
|
package/src/Search.ts
CHANGED
|
@@ -16,7 +16,9 @@ import {
|
|
|
16
16
|
isUp,
|
|
17
17
|
isDown,
|
|
18
18
|
isEscape,
|
|
19
|
+
isSpace,
|
|
19
20
|
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
21
|
+
import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
|
|
20
22
|
import List from "./List.js";
|
|
21
23
|
import ListItemBase from "./ListItemBase.js";
|
|
22
24
|
import "@ui5/webcomponents/dist/Icon.js";
|
|
@@ -97,7 +99,7 @@ export enum Mode {
|
|
|
97
99
|
* For the <code>udex-search</code>
|
|
98
100
|
* <h3>ES6 Module Import</h3>
|
|
99
101
|
*
|
|
100
|
-
* <code>import @udex/web-components/dist/Search.js";</code>
|
|
102
|
+
* <code>import "@udex/web-components/dist/Search.js";</code>
|
|
101
103
|
*
|
|
102
104
|
* @constructor
|
|
103
105
|
* @author SAP SE
|
|
@@ -481,13 +483,28 @@ class UDExSearch extends UI5Element {
|
|
|
481
483
|
@property({ type: Boolean, noAttribute: true })
|
|
482
484
|
_prefixDropdownExpanded!: boolean;
|
|
483
485
|
|
|
486
|
+
/**
|
|
487
|
+
* Defines the active (focus)
|
|
488
|
+
* @default false
|
|
489
|
+
* @private
|
|
490
|
+
*/
|
|
491
|
+
@property({ type: Boolean })
|
|
492
|
+
active!: boolean;
|
|
493
|
+
/**
|
|
494
|
+
* Defines is it the touch of the input field (only for mobile devices).
|
|
495
|
+
* @default false
|
|
496
|
+
* @private
|
|
497
|
+
*/
|
|
498
|
+
@property({ type: Boolean })
|
|
499
|
+
_isTouched!: boolean;
|
|
500
|
+
|
|
484
501
|
constructor() {
|
|
485
502
|
super();
|
|
486
503
|
this._handleResizeBound = this._handleResize.bind(this);
|
|
487
504
|
}
|
|
488
505
|
|
|
489
506
|
static async onDefine(): Promise<void> {
|
|
490
|
-
UDExSearch.i18nBundle = await getI18nBundle("udex-
|
|
507
|
+
UDExSearch.i18nBundle = await getI18nBundle("@udex/web-components");
|
|
491
508
|
}
|
|
492
509
|
|
|
493
510
|
onEnterDOM(): void {
|
|
@@ -742,6 +759,9 @@ class UDExSearch extends UI5Element {
|
|
|
742
759
|
}
|
|
743
760
|
|
|
744
761
|
handleInputClick(): void {
|
|
762
|
+
if (!isDesktop()) {
|
|
763
|
+
this._isTouched = true;
|
|
764
|
+
}
|
|
745
765
|
if (this.showPopoverWhenClickedIntoInput) {
|
|
746
766
|
this.onOpenPopover();
|
|
747
767
|
}
|
|
@@ -759,7 +779,7 @@ class UDExSearch extends UI5Element {
|
|
|
759
779
|
|
|
760
780
|
handleAriaExpanded() {
|
|
761
781
|
const value = this.open.toString();
|
|
762
|
-
this.
|
|
782
|
+
this.getSearchInput()?.setAttribute("aria-expanded", value);
|
|
763
783
|
}
|
|
764
784
|
|
|
765
785
|
onOpenPopover(): void {
|
|
@@ -882,6 +902,7 @@ class UDExSearch extends UI5Element {
|
|
|
882
902
|
}
|
|
883
903
|
|
|
884
904
|
handleBlur(): void {
|
|
905
|
+
this._isTouched = false;
|
|
885
906
|
if (this.value) {
|
|
886
907
|
this.labelActiveClass = this._labelActiveClassName;
|
|
887
908
|
} else {
|
|
@@ -977,6 +998,7 @@ class UDExSearch extends UI5Element {
|
|
|
977
998
|
}
|
|
978
999
|
|
|
979
1000
|
handleFocus(): void {
|
|
1001
|
+
this.active = true;
|
|
980
1002
|
this.isFocusedOnTextfield = true;
|
|
981
1003
|
this.focusClasses = this._focusActiveClassName;
|
|
982
1004
|
this.labelActiveClass = (this.value || !this.labelAnimationDisabled) ? this._labelActiveClassName : "";
|
|
@@ -984,24 +1006,39 @@ class UDExSearch extends UI5Element {
|
|
|
984
1006
|
}
|
|
985
1007
|
|
|
986
1008
|
handleFocusout(): void {
|
|
1009
|
+
this.active = false;
|
|
987
1010
|
this.isFocusedOnTextfield = false;
|
|
988
1011
|
this.focusClasses = "";
|
|
989
1012
|
}
|
|
990
1013
|
|
|
991
1014
|
onReset(e: MouseEvent): void {
|
|
992
1015
|
e.stopPropagation();
|
|
1016
|
+
this.handleReset();
|
|
1017
|
+
}
|
|
1018
|
+
|
|
1019
|
+
handleReset(): void {
|
|
993
1020
|
this.value = "";
|
|
994
1021
|
this.showResetButton = false;
|
|
995
1022
|
this.onClosePopover();
|
|
996
|
-
this.handleBlur();
|
|
997
1023
|
this.fireEvent("handle-value-reset");
|
|
998
1024
|
this.Suggestion?.resetFocusState();
|
|
1025
|
+
this.focus();
|
|
999
1026
|
}
|
|
1000
1027
|
|
|
1001
1028
|
handleKeyDownReset(e: KeyboardEvent) {
|
|
1002
1029
|
if (isTabPrevious(e) && this.open) {
|
|
1003
1030
|
this.Suggestion?.handlePrevTabReset(e);
|
|
1004
1031
|
}
|
|
1032
|
+
if (isEnter(e) || isSpace(e)) {
|
|
1033
|
+
e.preventDefault();
|
|
1034
|
+
e.stopPropagation();
|
|
1035
|
+
this.handleReset();
|
|
1036
|
+
this.getSearchInput()?.focus();
|
|
1037
|
+
}
|
|
1038
|
+
}
|
|
1039
|
+
|
|
1040
|
+
private getSearchInput(): HTMLInputElement {
|
|
1041
|
+
return this.shadowRoot?.querySelector("[id='search-input']") as HTMLInputElement;
|
|
1005
1042
|
}
|
|
1006
1043
|
|
|
1007
1044
|
onVoice(e: MouseEvent): void {
|
|
@@ -1025,7 +1062,7 @@ class UDExSearch extends UI5Element {
|
|
|
1025
1062
|
onSpeechStart(): void {
|
|
1026
1063
|
this.speechRecognition.onstart = () => {
|
|
1027
1064
|
this.voiceActiveClass = this._voiceActiveClassName;
|
|
1028
|
-
|
|
1065
|
+
this.getSearchInput()?.focus();
|
|
1029
1066
|
};
|
|
1030
1067
|
}
|
|
1031
1068
|
|
|
@@ -241,9 +241,7 @@ class UDExSearchableListBase extends UI5Element {
|
|
|
241
241
|
}
|
|
242
242
|
|
|
243
243
|
onResetSearch() {
|
|
244
|
-
|
|
245
|
-
search.value = "";
|
|
246
|
-
this._filteredItems = this.filterItems(this.getProcessedItems(), "");
|
|
244
|
+
this.resetSearch();
|
|
247
245
|
this.fireEvent("reset-search");
|
|
248
246
|
}
|
|
249
247
|
|
|
@@ -253,6 +251,16 @@ class UDExSearchableListBase extends UI5Element {
|
|
|
253
251
|
});
|
|
254
252
|
}
|
|
255
253
|
|
|
254
|
+
/**
|
|
255
|
+
* Reset the search value.
|
|
256
|
+
* @public
|
|
257
|
+
*/
|
|
258
|
+
resetSearch() {
|
|
259
|
+
const search = this.getSearch();
|
|
260
|
+
search.value = "";
|
|
261
|
+
this._filteredItems = this.filterItems(this.getProcessedItems(), "");
|
|
262
|
+
}
|
|
263
|
+
|
|
256
264
|
filterItems(items: Array<ProcessedItem>, str: string): Array<ProcessedItem> {
|
|
257
265
|
return items.filter(preparedItem => {
|
|
258
266
|
const { isGroup, item } = preparedItem;
|
|
@@ -285,7 +293,7 @@ class UDExSearchableListBase extends UI5Element {
|
|
|
285
293
|
return text.replace(new RegExp(`(${str})`, "i"), "<b>$&</b>");
|
|
286
294
|
}
|
|
287
295
|
|
|
288
|
-
isIncludes(string: string, value: string):boolean {
|
|
296
|
+
isIncludes(string: string, value: string): boolean {
|
|
289
297
|
return string.toLowerCase().includes(value.toLowerCase());
|
|
290
298
|
}
|
|
291
299
|
|
|
@@ -407,11 +415,11 @@ class UDExSearchableListBase extends UI5Element {
|
|
|
407
415
|
return this.mode === ListMode.MultiSelect && isGrouping;
|
|
408
416
|
}
|
|
409
417
|
|
|
410
|
-
get additionalClassName() {
|
|
418
|
+
get additionalClassName(): string {
|
|
411
419
|
return `udex-searchable-list__header`;
|
|
412
420
|
}
|
|
413
421
|
|
|
414
|
-
get groupClassName() {
|
|
422
|
+
get groupClassName(): string {
|
|
415
423
|
const classHeader = `udex-searchable-list__header`;
|
|
416
424
|
return this.showSearch ? `${classHeader} udex-searchable-list__header_no-margin` : classHeader;
|
|
417
425
|
}
|
|
@@ -422,7 +430,7 @@ class UDExSearchableListBase extends UI5Element {
|
|
|
422
430
|
}
|
|
423
431
|
|
|
424
432
|
static async onDefine(): Promise<void> {
|
|
425
|
-
UDExSearchableListBase.i18nBundle = await getI18nBundle("
|
|
433
|
+
UDExSearchableListBase.i18nBundle = await getI18nBundle("@udex/web-components");
|
|
426
434
|
}
|
|
427
435
|
}
|
|
428
436
|
|
|
@@ -5,13 +5,15 @@
|
|
|
5
5
|
</div>
|
|
6
6
|
{{/if}}
|
|
7
7
|
<div class="udex-secondary-navigation__holder">
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
{{#if title.length}}
|
|
9
|
+
<div class="udex-secondary-navigation__heading">
|
|
10
|
+
{{#if titleHref.length}}
|
|
11
|
+
<a class="udex-secondary-navigation__title" href="{{titleHref}}">{{title}}</a>
|
|
12
|
+
{{else}}
|
|
13
|
+
<span class="udex-secondary-navigation__title">{{title}}</span>
|
|
14
|
+
{{/if}}
|
|
15
|
+
</div>
|
|
16
|
+
{{/if}}
|
|
15
17
|
<div class="udex-secondary-navigation__wrap">
|
|
16
18
|
<ul
|
|
17
19
|
role="menubar"
|
|
@@ -29,6 +31,7 @@
|
|
|
29
31
|
mobile-link-title="{{this.mobileLinkTitle}}"
|
|
30
32
|
target="{{this.target}}"
|
|
31
33
|
.subItems="{{this.items}}"
|
|
34
|
+
_nav-items-length="{{../visibleItems.length}}"
|
|
32
35
|
@ui5-sub-item-click="{{../handleSubItemClick}}"
|
|
33
36
|
@ui5-nav-item-click="{{../handleItemClick}}">
|
|
34
37
|
</udex-secondary-navigation-item>
|
|
@@ -39,6 +42,7 @@
|
|
|
39
42
|
role="none"
|
|
40
43
|
class="udex-secondary-navigation__list-item">
|
|
41
44
|
<udex-secondary-navigation-item
|
|
45
|
+
_nav-items-length="{{visibleItems.length}}"
|
|
42
46
|
index="{{visibleItems.length}}"
|
|
43
47
|
@ui5-sub-item-click="{{../handleSubItemClick}}"
|
|
44
48
|
@ui5-nav-item-click="{{../handleItemClick}}"
|
|
@@ -156,13 +156,13 @@ class UDExSecondaryNavigation extends UI5Element {
|
|
|
156
156
|
static i18nBundle: any;
|
|
157
157
|
|
|
158
158
|
static async onDefine(): Promise<void> {
|
|
159
|
-
UDExSecondaryNavigation.i18nBundle = await getI18nBundle("udex-
|
|
159
|
+
UDExSecondaryNavigation.i18nBundle = await getI18nBundle("@udex/web-components");
|
|
160
160
|
}
|
|
161
161
|
|
|
162
162
|
constructor() {
|
|
163
163
|
super();
|
|
164
164
|
this._showMoreButton = true;
|
|
165
|
-
this._boundReflowItems = this.
|
|
165
|
+
this._boundReflowItems = this._handleResize.bind(this);
|
|
166
166
|
}
|
|
167
167
|
|
|
168
168
|
onEnterDOM(): void {
|
|
@@ -177,6 +177,13 @@ class UDExSecondaryNavigation extends UI5Element {
|
|
|
177
177
|
ResizeHandler.deregister(this, this._boundReflowItems);
|
|
178
178
|
}
|
|
179
179
|
|
|
180
|
+
_handleResize() {
|
|
181
|
+
this.reflowItems();
|
|
182
|
+
if (this._clickedNavItem && this.isDesktopScreen) {
|
|
183
|
+
this._clickedNavItem.closeDropdown();
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
180
187
|
onInvalidation(changeInfo: ChangeInfo): void {
|
|
181
188
|
if (changeInfo.name === "navItems") {
|
|
182
189
|
this.reflowItems();
|
|
@@ -193,7 +200,7 @@ class UDExSecondaryNavigation extends UI5Element {
|
|
|
193
200
|
}
|
|
194
201
|
|
|
195
202
|
reflowItems(): void {
|
|
196
|
-
const availableWidth = this.rootHolder.offsetWidth - this.heading?.offsetWidth - (this.optionalButtons?.offsetWidth || 0);
|
|
203
|
+
const availableWidth = this.rootHolder.offsetWidth - (this.heading?.offsetWidth || 0) - (this.optionalButtons?.offsetWidth || 0);
|
|
197
204
|
const moreButtonWidth = this.getMoreButtonWidth();
|
|
198
205
|
const itemsGap = 20;
|
|
199
206
|
const widths = this.parsedItems.map(item => this.getItemWidth(item));
|
|
@@ -359,18 +366,20 @@ class UDExSecondaryNavigation extends UI5Element {
|
|
|
359
366
|
}
|
|
360
367
|
|
|
361
368
|
handleOutsideClick(): void {
|
|
362
|
-
document.addEventListener("
|
|
363
|
-
if (this.isMobileScreen && e.target !== this) {
|
|
364
|
-
this.closeMobileDropdown();
|
|
365
|
-
return;
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
if (this.isDesktopScreen) {
|
|
369
|
-
this.handleDesktopDropdown(e);
|
|
370
|
-
}
|
|
371
|
-
});
|
|
369
|
+
document.addEventListener("mousedown", this.outsideClickListener);
|
|
372
370
|
}
|
|
373
371
|
|
|
372
|
+
outsideClickListener = (e: MouseEvent): void => {
|
|
373
|
+
if (this.isMobileScreen && e.target !== this) {
|
|
374
|
+
this.closeMobileDropdown();
|
|
375
|
+
return;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
if (this.isDesktopScreen) {
|
|
379
|
+
this.handleDesktopDropdown(e);
|
|
380
|
+
}
|
|
381
|
+
};
|
|
382
|
+
|
|
374
383
|
closeMobileDropdown(): void {
|
|
375
384
|
this.mobileNav?.closeDropdown();
|
|
376
385
|
}
|
|
@@ -123,6 +123,14 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
|
|
|
123
123
|
@property({ type: Boolean })
|
|
124
124
|
isOpen!: boolean;
|
|
125
125
|
|
|
126
|
+
/**
|
|
127
|
+
* Defines the length of items in the secondary navigation.
|
|
128
|
+
*
|
|
129
|
+
* @private
|
|
130
|
+
*/
|
|
131
|
+
@property({ validator: Integer })
|
|
132
|
+
_navItemsLength!: number;
|
|
133
|
+
|
|
126
134
|
/**
|
|
127
135
|
* Defines processed items.
|
|
128
136
|
*
|
|
@@ -137,6 +145,10 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
|
|
|
137
145
|
_subTitle!: string | undefined;
|
|
138
146
|
|
|
139
147
|
onAfterRendering(): void {
|
|
148
|
+
if (this.isLastItem && this.isOpen && !this._isMobileView) {
|
|
149
|
+
this.setDropdownHorizontalAlign();
|
|
150
|
+
}
|
|
151
|
+
|
|
140
152
|
if (this._shouldFocusFirstSubItem && this.isOpen) {
|
|
141
153
|
this.onFirstSubItemFocus();
|
|
142
154
|
this._shouldFocusFirstSubItem = false;
|
|
@@ -306,6 +318,19 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
|
|
|
306
318
|
this._processedItems = this.subItems;
|
|
307
319
|
}
|
|
308
320
|
|
|
321
|
+
setDropdownHorizontalAlign(): void {
|
|
322
|
+
const dropdown = this.shadowRoot!.querySelector<HTMLElement>(".udex-secondary-navigation__dropdown");
|
|
323
|
+
const { right, left } = dropdown!.getBoundingClientRect();
|
|
324
|
+
|
|
325
|
+
if (right > window.innerWidth) {
|
|
326
|
+
dropdown?.setAttribute("data-horizontal-align", "right");
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
if (left < 0) {
|
|
330
|
+
dropdown?.setAttribute("data-horizontal-align", "left");
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
|
|
309
334
|
onFirstSubItemFocus(): void {
|
|
310
335
|
this.domNavItems[0].focus();
|
|
311
336
|
}
|
|
@@ -318,6 +343,10 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
|
|
|
318
343
|
this._shouldFocusFirstSubItem = true;
|
|
319
344
|
}
|
|
320
345
|
|
|
346
|
+
get isLastItem(): boolean {
|
|
347
|
+
return this._navItemsLength === this.index;
|
|
348
|
+
}
|
|
349
|
+
|
|
321
350
|
get domNavItems(): Array<UDExSecondaryNavigationSubItem> {
|
|
322
351
|
const domNavItems = this.shadowRoot?.querySelectorAll<UDExSecondaryNavigationSubItem>("udex-secondary-navigation-sub-item");
|
|
323
352
|
return domNavItems ? Array.from(domNavItems) : [];
|
|
@@ -338,7 +367,7 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
|
|
|
338
367
|
get subActiveItemTitle(): string | undefined {
|
|
339
368
|
if (this.subActiveItem) {
|
|
340
369
|
const { title, mobileLinkTitle } = this.subActiveItem;
|
|
341
|
-
return this._isMobileView ? mobileLinkTitle : title;
|
|
370
|
+
return this._isMobileView ? (mobileLinkTitle || title) : title;
|
|
342
371
|
}
|
|
343
372
|
}
|
|
344
373
|
|
|
@@ -142,7 +142,7 @@ class UDExSecondaryNavigationItemBase extends UI5Element {
|
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
get itemLabel(): string {
|
|
145
|
-
return this._isMobileView ? this.mobileLinkTitle : this.label;
|
|
145
|
+
return this._isMobileView ? (this.mobileLinkTitle || this.label) : this.label;
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
get isMobile(): boolean {
|
|
@@ -91,7 +91,7 @@ class UDExSecondaryNavigationSubItem extends UDExSecondaryNavigationItemBase {
|
|
|
91
91
|
static i18nBundle: any;
|
|
92
92
|
|
|
93
93
|
static async onDefine(): Promise<void> {
|
|
94
|
-
UDExSecondaryNavigationSubItem.i18nBundle = await getI18nBundle("udex-
|
|
94
|
+
UDExSecondaryNavigationSubItem.i18nBundle = await getI18nBundle("@udex/web-components");
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
onItemClick(): void {
|
package/src/SelectBox.hbs
CHANGED
|
@@ -66,6 +66,7 @@
|
|
|
66
66
|
{{/if}}
|
|
67
67
|
{{#if showTrigger}}
|
|
68
68
|
<udex-control-button
|
|
69
|
+
tabindex="{{triggerTabIndex}}"
|
|
69
70
|
class="udex-text-field__trigger"
|
|
70
71
|
role="combobox"
|
|
71
72
|
size="Large"
|
|
@@ -89,10 +90,11 @@
|
|
|
89
90
|
</udex-status-message>
|
|
90
91
|
{{/if}}
|
|
91
92
|
</div>
|
|
92
|
-
<
|
|
93
|
+
<ui5-popover
|
|
94
|
+
hide-arrow
|
|
93
95
|
id="udex-select-box__dropdown"
|
|
94
96
|
class="udex-select-box__dropdown"
|
|
95
|
-
?
|
|
97
|
+
?allow-target-overlap="{{allowTargetOverlap}}"
|
|
96
98
|
@keydown="{{handleKeyDownDropdown}}"
|
|
97
99
|
@ui5-select-all="{{handleSelectAll}}"
|
|
98
100
|
@ui5-item-press="{{handleItemPress}}"
|
|
@@ -100,11 +102,11 @@
|
|
|
100
102
|
@ui5-submit-search-value="{{handleSubmitSearch}}"
|
|
101
103
|
@ui5-handle-value-search="{{handleValueSearch}}"
|
|
102
104
|
@ui5-handle-value-reset="{{handleResetSearch}}"
|
|
103
|
-
@before-open="{{handleDropdownBeforeOpen}}"
|
|
104
|
-
@after-close="{{handleDropdownAfterClose}}"
|
|
105
|
+
@ui5-before-open="{{handleDropdownBeforeOpen}}"
|
|
106
|
+
@ui5-after-close="{{handleDropdownAfterClose}}"
|
|
105
107
|
@search-keydown="{{handleKeyDownSearch}}"
|
|
106
|
-
|
|
107
|
-
|
|
108
|
+
horizontal-align="Left"
|
|
109
|
+
placement-type="Bottom">
|
|
108
110
|
{{#if _showTagsDropdownContent}}
|
|
109
111
|
<div class="udex-truncatable-tag-content">
|
|
110
112
|
<span class="udex-truncatable-tag-content__label">{{truncatableTagLabel}}</span>
|
|
@@ -117,7 +119,7 @@
|
|
|
117
119
|
{{else}}
|
|
118
120
|
{{searchableList}}
|
|
119
121
|
{{/if}}
|
|
120
|
-
</
|
|
122
|
+
</ui5-popover>
|
|
121
123
|
{{#if displayonly}}
|
|
122
124
|
<udex-tooltip
|
|
123
125
|
placement="{{tooltipPlacement}}">
|