@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
package/dist/MastheadItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MastheadItem.js","sourceRoot":"","sources":["../src/MastheadItem.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/search.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport UDExMastheadMenu from \"./MastheadMenu.js\";\nimport UDExAvatar from \"./Avatar.js\";\nimport MastheadShell from \"./MastheadShell.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\n\nimport MastheadItemTemplate from \"./generated/templates/MastheadItemTemplate.lit.js\";\n\n// Styles\nimport MastheadItemCss from \"./generated/themes/MastheadItem.css.js\";\n\nconst breakpointSizeM: number = 1279;\n\nexport interface IMastheadItem {\n text?: string;\n selected?: boolean;\n icon?: string;\n avatar?: Array<HTMLElement>;\n href?: string;\n}\n\nexport type CategoryItem = {\n title: string;\n url: string;\n externalLink: boolean;\n};\n\nexport type SubMenuLinkItem = {\n category: string;\n url?: string;\n items: CategoryItem[];\n};\n\nexport type MenuItem = {\n subMenuLinkItems: SubMenuLinkItem[];\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-masthead-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/MastheadItem.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-item\",\n renderer: litRender,\n styles: MastheadItemCss,\n template: MastheadItemTemplate,\n dependencies: [\n UDExMastheadMenu,\n UI5Icon,\n ],\n})\n\n/**\n * Fires when item is clicked\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"click\")\nclass UDExMastheadItem extends UI5Element implements IMastheadItem {\n /**\n * Defines sub items for item\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n subItems!: string;\n\n /**\n * Defines a title for sub menu items\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n menuTitle!: string;\n\n /**\n * Defines the text of item.\n *\n * @public\n * @default \"\"\n */\n @property({ type: String, defaultValue: \"\" })\n text!: string;\n\n /**\n * Defines the selected item.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n selected!: boolean;\n\n /**\n * Defines the icon in the item.\n *\n * @public\n * @default \"\"\n */\n @property({ type: String, defaultValue: \"\" })\n icon!: string;\n\n /**\n * Defines the href of the item.\n *\n * @public\n */\n @property({ type: String })\n href!: string;\n\n /**\n * Define the target of the item\n * <b>Note:</b> Standard hyperlink behavior is supported.\n * @public\n */\n @property({ type: String })\n target!: string;\n\n /**\n * Controls the ARIA name of the item\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n accessibleName!: string;\n\n /**\n * Controls the ARIA role of the item\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n accessibleRole!: string;\n\n /**\n * Defines an alt text for item icon\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n iconAlt?: string;\n\n /**\n * Hide active border for item\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n hideActiveBorder?: boolean;\n\n /**\n * Defines direction of the text.\n *\n * @private\n */\n @property({ type: String })\n _direction?: string;\n\n /**\n * Slot for the dropdown\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n dropdown?: Array<HTMLElement>;\n\n /**\n * Slot for any content\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n content?: Array<HTMLElement>;\n\n _profileAvatar!: UDExAvatar;\n\n onEnterDOM() {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onAfterRendering() {\n this._profileAvatar = this.profileAvatar;\n this.handleDirection();\n if (this.selected && this.hasDropdownSlot && !this.isMobile && !this.isExploreBtn) {\n this.setDropdownInsetStart();\n }\n }\n\n onClick(e: Event): void {\n e.stopPropagation();\n this.fireEvent(\"click\", { item: this });\n this.selected = this.isMobile ? true : !this.selected;\n }\n\n handleKeyDown(e: KeyboardEvent): void {\n if (isEscape(e) && this.hasDropdownSlot) {\n if (this.isMobile) {\n this.handleKeyEscapeMobile();\n } else {\n this.handleKeyEscape();\n }\n }\n }\n\n handleKeyEscape() {\n this.selected = false;\n if (this.isProfileBtn) {\n this._profileAvatar.focus();\n } else {\n this.focus();\n }\n }\n\n handleKeyEscapeMobile() {\n const mastheadShell: MastheadShell | null = document.querySelector(\"udex-masthead-shell\");\n const mobileMenu = mastheadShell?.mastheadMobileMenu;\n mastheadShell?.removeActiveMobileClass();\n mastheadShell?.mobileBtn?.focus();\n this.selected = false;\n\n if (mobileMenu) {\n mobileMenu.showFirstLevelMenu();\n }\n }\n\n setDropdownInsetStart(): void {\n const dropdown = this.getDomElement(\".udex-masthead-item__dropdown\");\n if (dropdown) {\n const rect = dropdown.getBoundingClientRect();\n const dropdownHolder = this.getDomElement(\".udex-masthead-item__dropdown-holder\");\n const marginInlineStart = this.calculateMarginInlineStart(rect);\n\n if (marginInlineStart !== null && dropdownHolder) {\n dropdownHolder.style.marginInlineStart = `${marginInlineStart - 3}px`;\n }\n }\n }\n\n calculateMarginInlineStart(rect: DOMRect): number | null {\n const { left, right } = rect;\n\n if (this.isLtrDirection && left < 0) {\n return left * -1 + 15;\n }\n\n if (this.isRtlDirection && left < 0) {\n return left - 15;\n }\n\n if (this.isRtlDirection && right > window.innerWidth) {\n return right - window.innerWidth + 15;\n }\n\n if (this.isLtrDirection && right > window.innerWidth) {\n return window.innerWidth - right - 15;\n }\n\n return null;\n }\n\n handleDirection(): void {\n const directionStyles = window\n .getComputedStyle(this)\n .getPropertyValue(\"direction\");\n if (!directionStyles) {\n this._direction = \"ltr\";\n } else {\n this._direction = directionStyles;\n }\n }\n\n getDomElement(selector: string): HTMLElement | undefined | null {\n return this.shadowRoot?.querySelector(`${selector}`);\n }\n\n parseArrayFromString<T>(string: string): T[] {\n return string ? JSON.parse(string) as T[] : [];\n }\n\n getSubItems(): Array<MenuItem> {\n return this.parseArrayFromString(this.subItems);\n }\n\n get additionalClass(): string {\n const iconClass = this.icon ? \"udex-masthead-item__button--icon\" : \"\";\n const profileClass = this.isProfileBtn ? \"udex-masthead-item__button--profile\" : \"\";\n const exploreClass = this.isExploreBtn ? \"udex-masthead-item__button--explore\" : \"\";\n return `udex-masthead-item ${iconClass} ${profileClass} ${exploreClass}`;\n }\n\n get profileAvatar(): UDExAvatar {\n return this.querySelector(\"udex-avatar\")!;\n }\n\n get isRtlDirection(): boolean {\n return this._direction === \"rtl\";\n }\n\n get isLtrDirection(): boolean {\n return this._direction === \"ltr\";\n }\n\n get hasHref(): boolean {\n return !!this.href.length;\n }\n\n get accessibleRoleName(): string {\n return this.accessibleRole ? this.accessibleRole : \"button\";\n }\n\n get selectedClass(): string {\n return this.selected ? \" udex-masthead-item__button--active\" : \"\";\n }\n\n get ariaLabelledBy(): string {\n const labels = [];\n\n if (this.text) {\n labels.push(`${this.__id}-text`);\n }\n\n if (this.icon) {\n labels.push(`${this.__id}-icon`);\n }\n\n return labels.join(\" \");\n }\n\n get showDropdown(): boolean {\n return this.hasDropdownSlot && this.selected;\n }\n\n get hasDropdownSlot(): boolean {\n return !!this.getSlottedNodes(\"dropdown\").length;\n }\n\n get hasArrowDown(): boolean {\n return this.hasDropdownSlot && !this.isProfileBtn && !this.icon.length;\n }\n\n get isProfileBtn(): boolean {\n return this.getAttribute(\"slot\") === \"profile\";\n }\n\n get isExploreBtn(): boolean {\n return this.getAttribute(\"slot\") === \"exploreSAP\";\n }\n\n get accessibleLabel(): string {\n return this.accessibleName || this.innerText;\n }\n\n get isMenuItem(): boolean {\n return true;\n }\n\n get isMobile(): boolean {\n return window.innerWidth < breakpointSizeM;\n }\n}\n\nUDExMastheadItem.define();\n\nexport default UDExMastheadItem;\n"]}
|
|
1
|
+
{"version":3,"file":"MastheadItem.js","sourceRoot":"","sources":["../src/MastheadItem.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/search.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { PROFILE } from \"./generated/i18n/i18n-defaults.js\";\nimport UDExMastheadMenu from \"./MastheadMenu.js\";\nimport UDExAvatar from \"./Avatar.js\";\nimport MastheadShell from \"./MastheadShell.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\n\nimport MastheadItemTemplate from \"./generated/templates/MastheadItemTemplate.lit.js\";\n\n// Styles\nimport MastheadItemCss from \"./generated/themes/MastheadItem.css.js\";\n\nconst breakpointSizeM: number = 1279;\n\nexport interface IMastheadItem {\n text?: string;\n selected?: boolean;\n icon?: string;\n avatar?: Array<HTMLElement>;\n href?: string;\n}\n\nexport type CategoryItem = {\n title: string;\n url: string;\n externalLink: boolean;\n};\n\nexport type SubMenuLinkItem = {\n category: string;\n url?: string;\n items: CategoryItem[];\n index: number;\n};\n\nexport type MenuItem = {\n subMenuLinkItems: SubMenuLinkItem[];\n};\n\nexport type ItemClickEventDetail = {\n originalEvent: Event,\n item: UDExMastheadItem,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-masthead-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/MastheadItem.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-item\",\n renderer: litRender,\n styles: MastheadItemCss,\n template: MastheadItemTemplate,\n dependencies: [\n UDExMastheadMenu,\n UI5Icon,\n ],\n})\n\n/**\n * Fires when item is clicked\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"item-click\", {\n detail: {\n item: {\n type: HTMLElement,\n },\n originalEvent: {\n type: PointerEvent,\n },\n },\n})\n\nclass UDExMastheadItem extends UI5Element implements IMastheadItem {\n /**\n * Defines sub items for item\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n subItems!: string;\n\n /**\n * Defines a title for sub menu items\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n menuTitle!: string;\n\n /**\n * Defines the text of item.\n *\n * @public\n * @default \"\"\n */\n @property({ type: String, defaultValue: \"\" })\n text!: string;\n\n /**\n * Defines the selected item.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n selected!: boolean;\n\n /**\n * Defines the icon in the item.\n *\n * @public\n * @default \"\"\n */\n @property({ type: String, defaultValue: \"\" })\n icon!: string;\n\n /**\n * Defines the href of the item.\n *\n * @public\n */\n @property({ type: String })\n href!: string;\n\n /**\n * Define the target of the item\n * <b>Note:</b> Standard hyperlink behavior is supported.\n * @public\n */\n @property({ type: String })\n target!: string;\n\n /**\n * Controls the ARIA name of the item\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n accessibleName!: string;\n\n /**\n * Controls the ARIA role of the item\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n accessibleRole!: string;\n\n /**\n * Defines an alt text for item icon\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n iconAlt?: string;\n\n /**\n * Hide active border for item\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n hideActiveBorder?: boolean;\n\n /**\n * Defines direction of the text.\n *\n * @private\n */\n @property({ type: String })\n _direction?: string;\n\n /**\n * Slot for the dropdown\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n dropdown?: Array<HTMLElement>;\n\n /**\n * Slot for any content\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n content?: Array<HTMLElement>;\n\n _profileAvatar!: UDExAvatar;\n static i18nBundle: I18nBundle;\n\n static async onDefine(): Promise<void> {\n UDExMastheadItem.i18nBundle = await getI18nBundle(\"@udex/web-components\");\n }\n\n onEnterDOM() {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onAfterRendering() {\n this._profileAvatar = this.profileAvatar;\n this.handleDirection();\n if (this.selected && this.hasDropdownSlot && !this.isMobile && !this.isExploreBtn) {\n this.setDropdownInsetStart();\n }\n }\n\n handleKeyDown(e: KeyboardEvent): void {\n if (isEscape(e) && this.hasDropdownSlot) {\n if (this.isMobile) {\n this.handleKeyEscapeMobile();\n } else {\n this.handleKeyEscape();\n }\n }\n }\n\n handleKeyEscape() {\n this.selected = false;\n if (this.isProfileBtn) {\n this._profileAvatar.focus();\n } else {\n this.focus();\n }\n }\n\n handleKeyEscapeMobile(): void {\n const mastheadShell: MastheadShell = document.querySelector<MastheadShell>(\"udex-masthead-shell\")!;\n\n mastheadShell.closeMobileMenu();\n mastheadShell.mobileBtn?.focus();\n }\n\n handleNavigationItemClick(e: Event): void {\n this.selected = this.isMobile ? true : !this.selected;\n\n this.fireEvent<ItemClickEventDetail>(\"item-click\", {\n item: this,\n originalEvent: e,\n });\n }\n\n setDropdownInsetStart(): void {\n const dropdown = this.getDomElement(\".udex-masthead-item__dropdown\");\n if (dropdown) {\n const rect = dropdown.getBoundingClientRect();\n const dropdownHolder = this.getDomElement(\".udex-masthead-item__dropdown-holder\");\n const marginInlineStart = this.calculateMarginInlineStart(rect);\n\n if (marginInlineStart !== null && dropdownHolder) {\n dropdownHolder.style.marginInlineStart = `${marginInlineStart - 3}px`;\n }\n }\n }\n\n calculateMarginInlineStart(rect: DOMRect): number | null {\n const { left, right } = rect;\n\n if (this.isLtrDirection && left < 0) {\n return left * -1 + 15;\n }\n\n if (this.isRtlDirection && left < 0) {\n return left - 15;\n }\n\n if (this.isRtlDirection && right > window.innerWidth) {\n return right - window.innerWidth + 15;\n }\n\n if (this.isLtrDirection && right > window.innerWidth) {\n return window.innerWidth - right - 15;\n }\n\n return null;\n }\n\n handleDirection(): void {\n const directionStyles = window\n .getComputedStyle(this)\n .getPropertyValue(\"direction\");\n if (!directionStyles) {\n this._direction = \"ltr\";\n } else {\n this._direction = directionStyles;\n }\n }\n\n getDomElement(selector: string): HTMLElement | undefined | null {\n return this.shadowRoot?.querySelector(`${selector}`);\n }\n\n parseArrayFromString<T>(string: string): T[] {\n return string ? JSON.parse(string) as T[] : [];\n }\n\n getSubItems(): Array<MenuItem> {\n return this.parseArrayFromString(this.subItems);\n }\n\n get additionalClass(): string {\n const iconClass = this.icon ? \"udex-masthead-item__button--icon\" : \"\";\n const profileClass = this.isProfileBtn ? \"udex-masthead-item__button--profile\" : \"\";\n const exploreClass = this.isExploreBtn ? \"udex-masthead-item__button--explore\" : \"\";\n return `udex-masthead-item ${iconClass} ${profileClass} ${exploreClass}`;\n }\n\n get profileAvatar(): UDExAvatar {\n return this.querySelector(\"udex-avatar\")!;\n }\n\n get isRtlDirection(): boolean {\n return this._direction === \"rtl\";\n }\n\n get isLtrDirection(): boolean {\n return this._direction === \"ltr\";\n }\n\n get hasHref(): boolean {\n return !!this.href.length;\n }\n\n get accessibleRoleName(): string {\n return this.accessibleRole ? this.accessibleRole : \"button\";\n }\n\n get selectedClass(): string {\n return this.selected ? \" udex-masthead-item__button--active\" : \"\";\n }\n\n get ariaLabelledBy(): string {\n const labels = [];\n\n if (this.text) {\n labels.push(`${this.__id}-text`);\n }\n\n if (this.icon) {\n labels.push(`${this.__id}-icon`);\n }\n\n return labels.join(\" \");\n }\n\n get showDropdown(): boolean {\n return this.hasDropdownSlot && this.selected;\n }\n\n get hasDropdownSlot(): boolean {\n return !!this.getSlottedNodes(\"dropdown\").length;\n }\n\n get hasArrowDown(): boolean {\n return this.hasDropdownSlot && !this.isProfileBtn && !this.icon.length;\n }\n\n get isProfileBtn(): boolean {\n return this.getAttribute(\"slot\") === \"profile\";\n }\n\n get isExploreBtn(): boolean {\n return this.getAttribute(\"slot\") === \"exploreSAP\";\n }\n\n get accessibleLabel(): string {\n return this.accessibleName || this.innerText || (this.isProfileBtn ? UDExMastheadItem.i18nBundle.getText(PROFILE) : \"\");\n }\n\n get isMenuItem(): boolean {\n return true;\n }\n\n get isMobile(): boolean {\n return window.innerWidth < breakpointSizeM;\n }\n}\n\nUDExMastheadItem.define();\n\nexport default UDExMastheadItem;\n"]}
|
package/dist/MastheadMenu.d.ts
CHANGED
|
@@ -15,6 +15,10 @@ export type SubMenuLinkItem = {
|
|
|
15
15
|
export type MenuItem = {
|
|
16
16
|
subMenuLinkItems: SubMenuLinkItem[];
|
|
17
17
|
};
|
|
18
|
+
export type MenuItemClickEventDetail = {
|
|
19
|
+
originalEvent: Event;
|
|
20
|
+
item: UDExMastheadMenuItem;
|
|
21
|
+
};
|
|
18
22
|
/**
|
|
19
23
|
* @class
|
|
20
24
|
*
|
|
@@ -50,6 +54,7 @@ declare class UDExMastheadMenu extends UI5Element {
|
|
|
50
54
|
handleKeyDown(e: KeyboardEvent): void;
|
|
51
55
|
handleUpArrow(e: KeyboardEvent): void;
|
|
52
56
|
handleDownArrow(e: KeyboardEvent): void;
|
|
57
|
+
handleMenuItemClick(e: Event): void;
|
|
53
58
|
focusPreviousItem(item: UDExMastheadMenuItem): void;
|
|
54
59
|
focusNextItem(item: UDExMastheadMenuItem): void;
|
|
55
60
|
getCurrentIndex(item: UDExMastheadMenuItem): number;
|
package/dist/MastheadMenu.js
CHANGED
|
@@ -9,6 +9,7 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
|
|
|
9
9
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
10
10
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
11
11
|
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
12
|
+
import event from "@ui5/webcomponents-base/dist/decorators/event.js";
|
|
12
13
|
import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
|
|
13
14
|
import "@ui5/webcomponents-icons/dist/action.js";
|
|
14
15
|
import { isUp, isDown } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
@@ -53,6 +54,12 @@ let UDExMastheadMenu = class UDExMastheadMenu extends UI5Element {
|
|
|
53
54
|
this.focusNextItem(currentItem);
|
|
54
55
|
}
|
|
55
56
|
}
|
|
57
|
+
handleMenuItemClick(e) {
|
|
58
|
+
this.fireEvent("menu-item-click", {
|
|
59
|
+
item: e.target,
|
|
60
|
+
originalEvent: e,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
56
63
|
focusPreviousItem(item) {
|
|
57
64
|
const currentSelectedIndex = this.getCurrentIndex(item);
|
|
58
65
|
const lastItemIndex = this.links.length - 1;
|
|
@@ -96,6 +103,23 @@ UDExMastheadMenu = __decorate([
|
|
|
96
103
|
template: MastheadMenuTemplate,
|
|
97
104
|
dependencies: [Icon, UDExBadge, UDExMastheadMenuItem],
|
|
98
105
|
})
|
|
106
|
+
/**
|
|
107
|
+
* Fires when menu item is clicked
|
|
108
|
+
*
|
|
109
|
+
* @allowPreventDefault
|
|
110
|
+
* @public
|
|
111
|
+
*/
|
|
112
|
+
,
|
|
113
|
+
event("menu-item-click", {
|
|
114
|
+
detail: {
|
|
115
|
+
item: {
|
|
116
|
+
type: HTMLElement,
|
|
117
|
+
},
|
|
118
|
+
originalEvent: {
|
|
119
|
+
type: PointerEvent,
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
})
|
|
99
123
|
], UDExMastheadMenu);
|
|
100
124
|
UDExMastheadMenu.define();
|
|
101
125
|
export default UDExMastheadMenu;
|
package/dist/MastheadMenu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MastheadMenu.js","sourceRoot":"","sources":["../src/MastheadMenu.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,mDAAmD,CAAC;AAC3D,OAAO,yCAAyC,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,oBAAoB,MAAM,uBAAuB,CAAC;AACzD,OAAO,oBAAoB,MAAM,mDAAmD,CAAC;AAErF,SAAS;AACT,OAAO,eAAe,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"MastheadMenu.js","sourceRoot":"","sources":["../src/MastheadMenu.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport \"@ui5/webcomponents-icons/dist/action.js\";\nimport { isUp, isDown } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport UDExBadge from \"./Badge.js\";\nimport UDExMastheadMenuItem from \"./MastheadMenuItem.js\";\nimport MastheadMenuTemplate from \"./generated/templates/MastheadMenuTemplate.lit.js\";\n\n// Styles\nimport MastheadMenuCss from \"./generated/themes/MastheadMenu.css.js\";\n\nexport type Item = {\n title: string;\n url: string;\n externalLink: boolean;\n};\n\nexport type SubMenuLinkItem = {\n category: string;\n url: string;\n items: Item[];\n};\n\nexport type MenuItem = {\n subMenuLinkItems: SubMenuLinkItem[];\n};\n\nexport type MenuItemClickEventDetail = {\n originalEvent: Event,\n item: UDExMastheadMenuItem,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-masthead-menu</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/MastheadMenu.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-menu\",\n renderer: litRender,\n styles: MastheadMenuCss,\n template: MastheadMenuTemplate,\n dependencies: [Icon, UDExBadge, UDExMastheadMenuItem],\n})\n\n/**\n * Fires when menu item is clicked\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"menu-item-click\", {\n detail: {\n item: {\n type: HTMLElement,\n },\n originalEvent: {\n type: PointerEvent,\n },\n },\n})\n\nclass UDExMastheadMenu extends UI5Element {\n /**\n * Defines a menu heading\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n menuTitle!: string;\n\n /**\n * List of the menu items\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n subItems!: string;\n\n handleKeyDown(e: KeyboardEvent) {\n this.handleUpArrow(e);\n this.handleDownArrow(e);\n }\n\n handleUpArrow(e: KeyboardEvent) {\n if (isUp(e)) {\n e.preventDefault();\n const currentItem = e.target as UDExMastheadMenuItem;\n this.focusPreviousItem(currentItem);\n }\n }\n\n handleDownArrow(e: KeyboardEvent) {\n if (isDown(e)) {\n e.preventDefault();\n const currentItem = e.target as UDExMastheadMenuItem;\n this.focusNextItem(currentItem);\n }\n }\n\n handleMenuItemClick(e: Event) {\n this.fireEvent<MenuItemClickEventDetail>(\"menu-item-click\", {\n item: e.target as UDExMastheadMenuItem,\n originalEvent: e,\n });\n }\n\n focusPreviousItem(item: UDExMastheadMenuItem): void {\n const currentSelectedIndex = this.getCurrentIndex(item);\n const lastItemIndex = this.links.length - 1;\n const previousSelectIndex = currentSelectedIndex - 1 < 0 ? lastItemIndex : currentSelectedIndex - 1;\n this.links[previousSelectIndex].focus();\n }\n\n focusNextItem(item: UDExMastheadMenuItem): void {\n const currentSelectedIndex = this.getCurrentIndex(item);\n const nextSelectIndex = currentSelectedIndex + 1 > this.links.length - 1 ? 0 : currentSelectedIndex + 1;\n this.links[nextSelectIndex].focus();\n }\n\n getCurrentIndex(item: UDExMastheadMenuItem): number {\n return this.links.indexOf(item);\n }\n\n parseArrayFromString<T>(string: string): T[] {\n return string ? JSON.parse(string) as T[] : [];\n }\n\n get links(): Array<UDExMastheadMenuItem> {\n const menuItems: Array<UDExMastheadMenuItem> = Array.from(this.shadowRoot!.querySelectorAll(\"udex-masthead-menu-item\"));\n return menuItems.filter(({ url }) => url && url.length > 0);\n }\n\n get itemsList(): Array<MenuItem> {\n return this.parseArrayFromString(this.subItems);\n }\n\n get oneRowClass(): string {\n const hasOneColumn = this.itemsList.length === 1 && this.itemsList[0].subMenuLinkItems.length === 1;\n return hasOneColumn ? \"udex-masthead-menu_with-one-column\" : \"\";\n }\n}\n\nUDExMastheadMenu.define();\n\nexport default UDExMastheadMenu;\n"]}
|
|
@@ -14,14 +14,14 @@ export declare enum ItemType {
|
|
|
14
14
|
*
|
|
15
15
|
* <h3>Usage</h3>
|
|
16
16
|
*
|
|
17
|
-
* For the <code>masthead-menu-item</code>
|
|
17
|
+
* For the <code>udex-masthead-menu-item</code>
|
|
18
18
|
* <h3>ES6 Module Import</h3>
|
|
19
19
|
*
|
|
20
20
|
* <code>import "@udex/web-components/dist/MastheadMenuItem.js";</code>
|
|
21
21
|
*
|
|
22
22
|
* @constructor
|
|
23
23
|
* @extends UI5Element
|
|
24
|
-
* @
|
|
24
|
+
* @private
|
|
25
25
|
*/
|
|
26
26
|
declare class UDExMastheadMenuItem extends UI5Element {
|
|
27
27
|
/**
|
|
@@ -92,7 +92,6 @@ declare class UDExMastheadMenuItem extends UI5Element {
|
|
|
92
92
|
*/
|
|
93
93
|
iconEnd?: boolean;
|
|
94
94
|
onEnterDOM(): void;
|
|
95
|
-
handleClick(): void;
|
|
96
95
|
get rootClass(): string;
|
|
97
96
|
get labelClass(): string;
|
|
98
97
|
get isHeadingType(): boolean;
|
package/dist/MastheadMenuItem.js
CHANGED
|
@@ -6,7 +6,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
8
8
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
9
|
-
import event from "@ui5/webcomponents-base/dist/decorators/event.js";
|
|
10
9
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
11
10
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
12
11
|
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
@@ -30,14 +29,14 @@ export var ItemType;
|
|
|
30
29
|
*
|
|
31
30
|
* <h3>Usage</h3>
|
|
32
31
|
*
|
|
33
|
-
* For the <code>masthead-menu-item</code>
|
|
32
|
+
* For the <code>udex-masthead-menu-item</code>
|
|
34
33
|
* <h3>ES6 Module Import</h3>
|
|
35
34
|
*
|
|
36
35
|
* <code>import "@udex/web-components/dist/MastheadMenuItem.js";</code>
|
|
37
36
|
*
|
|
38
37
|
* @constructor
|
|
39
38
|
* @extends UI5Element
|
|
40
|
-
* @
|
|
39
|
+
* @private
|
|
41
40
|
*/
|
|
42
41
|
let UDExMastheadMenuItem = class UDExMastheadMenuItem extends UI5Element {
|
|
43
42
|
onEnterDOM() {
|
|
@@ -45,9 +44,6 @@ let UDExMastheadMenuItem = class UDExMastheadMenuItem extends UI5Element {
|
|
|
45
44
|
this.setAttribute("desktop", "");
|
|
46
45
|
}
|
|
47
46
|
}
|
|
48
|
-
handleClick() {
|
|
49
|
-
this.fireEvent("click", { item: this });
|
|
50
|
-
}
|
|
51
47
|
get rootClass() {
|
|
52
48
|
const badgeClass = this.badge ? "udex-masthead-menu-item_badge" : "";
|
|
53
49
|
const rootClass = this.isHeadingType ? "udex-masthead-menu-item_is-header" : "udex-masthead-menu-item_is-list";
|
|
@@ -112,17 +108,6 @@ UDExMastheadMenuItem = __decorate([
|
|
|
112
108
|
template: MastheadMenuItemTemplate,
|
|
113
109
|
dependencies: [Icon],
|
|
114
110
|
})
|
|
115
|
-
/**
|
|
116
|
-
* Fires when item button is clicked
|
|
117
|
-
*
|
|
118
|
-
* @public
|
|
119
|
-
*/
|
|
120
|
-
,
|
|
121
|
-
event("click", {
|
|
122
|
-
detail: {
|
|
123
|
-
item: { type: HTMLElement },
|
|
124
|
-
},
|
|
125
|
-
})
|
|
126
111
|
], UDExMastheadMenuItem);
|
|
127
112
|
UDExMastheadMenuItem.define();
|
|
128
113
|
export default UDExMastheadMenuItem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MastheadMenuItem.js","sourceRoot":"","sources":["../src/MastheadMenuItem.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,
|
|
1
|
+
{"version":3,"file":"MastheadMenuItem.js","sourceRoot":"","sources":["../src/MastheadMenuItem.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-left.js\";\n\nimport MastheadMenuItemTemplate from \"./generated/templates/MastheadMenuItemTemplate.lit.js\";\n\n// Styles\nimport MastheadMenuItemCss from \"./generated/themes/MastheadMenuItem.css.js\";\n\nexport enum ItemType {\n Heading = \"Heading\",\n Button = \"Button\",\n Link = \"Link\"\n}\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-masthead-menu-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/MastheadMenuItem.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @private\n */\n@customElement({\n tag: \"udex-masthead-menu-item\",\n renderer: litRender,\n styles: MastheadMenuItemCss,\n template: MastheadMenuItemTemplate,\n dependencies: [Icon],\n})\n\nclass UDExMastheadMenuItem extends UI5Element {\n /**\n * Defines the type of the item.\n *\n * @default \"Link\"\n * @public\n */\n @property({ type: ItemType, defaultValue: ItemType.Link })\n type!: `${ItemType}`;\n\n /**\n * Controls the ARIA role of the item\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n accessibleRole!: string;\n\n /**\n * Defines the label of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n label!: string;\n\n /**\n * Defines the url of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n url?: string;\n\n /**\n * Defines the badge of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n badge?: string;\n\n /**\n * Defines the externalLink of the component.\n *\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n externalLink?: boolean;\n\n /**\n * Defines the border for component.\n *\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n hasBorder?: boolean;\n\n /**\n * Defines the start position of icon arrow.\n *\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n iconStart?: boolean;\n\n /**\n * Defines the end position of icon arrow.\n *\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n iconEnd?: boolean;\n\n onEnterDOM() {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n get rootClass(): string {\n const badgeClass = this.badge ? \"udex-masthead-menu-item_badge\" : \"\";\n const rootClass = this.isHeadingType ? \"udex-masthead-menu-item_is-header\" : \"udex-masthead-menu-item_is-list\";\n return `${rootClass} ${badgeClass}`;\n }\n\n get labelClass(): string {\n const root = \"udex-masthead-menu-item__label\";\n return this.externalLink ? `${root} udex-masthead-menu-item__label_with-icon` : `${root}`;\n }\n\n get isHeadingType(): boolean {\n return this.type === ItemType.Heading;\n }\n\n get isButtonType(): boolean {\n return this.type === ItemType.Button;\n }\n\n get isActive(): boolean {\n return (this.type === ItemType.Link || !!this.url) && !this.isButtonType;\n }\n\n get target(): string {\n return this.externalLink ? \"_blank\" : \"_self\";\n }\n\n get lastWordOfLabel(): string | undefined {\n return this.label.split(\" \").pop();\n }\n\n get leadingWordsOfLabel(): string {\n const leadingWords = this.label.split(\" \").slice(0, -1).join(\" \");\n return `${leadingWords} `;\n }\n}\n\nUDExMastheadMenuItem.define();\n\nexport default UDExMastheadMenuItem;\n"]}
|
|
@@ -2,6 +2,10 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
|
2
2
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
3
3
|
import UDExMastheadItem, { MenuItem, SubMenuLinkItem } from "./MastheadItem.js";
|
|
4
4
|
import UDExMastheadMenuItem from "./MastheadMenuItem.js";
|
|
5
|
+
export type MobileItemClickEventDetail = {
|
|
6
|
+
originalEvent: Event;
|
|
7
|
+
item: UDExMastheadMenuItem;
|
|
8
|
+
};
|
|
5
9
|
/**
|
|
6
10
|
* @class
|
|
7
11
|
*
|
|
@@ -47,34 +51,46 @@ declare class UDExMastheadMobileMenu extends UI5Element {
|
|
|
47
51
|
_clickedItem: UDExMastheadItem;
|
|
48
52
|
_categories: Array<SubMenuLinkItem>;
|
|
49
53
|
_category: SubMenuLinkItem;
|
|
54
|
+
_shouldFocusItemByIndex: boolean;
|
|
55
|
+
_shouldFocusExploreBtn: boolean;
|
|
56
|
+
_focusedItemIndex: number;
|
|
50
57
|
static i18nBundle: I18nBundle;
|
|
51
58
|
static onDefine(): Promise<void>;
|
|
52
59
|
onAfterRendering(): void;
|
|
53
60
|
handleMenuItemClick(e: Event): void;
|
|
54
61
|
handleMenuCategoryClick(e: Event): void;
|
|
55
62
|
handleExploreSapClick(e: Event): void;
|
|
56
|
-
handleBackToMenuItems(): void;
|
|
57
|
-
handleBackToCategories(): void;
|
|
63
|
+
handleBackToMenuItems(e: Event): void;
|
|
64
|
+
handleBackToCategories(e: Event): void;
|
|
65
|
+
handleExploreBackToMenuItems(e: Event): void;
|
|
58
66
|
handleKeyDown(e: KeyboardEvent): void;
|
|
59
67
|
handleRightArrow(e: KeyboardEvent): void;
|
|
60
68
|
handleLeftArrow(e: KeyboardEvent): void;
|
|
61
69
|
handleUpArrow(e: KeyboardEvent): void;
|
|
62
70
|
handleDownArrow(e: KeyboardEvent): void;
|
|
63
71
|
handleDirection(): void;
|
|
72
|
+
handleMobileItemEvent(e: Event): void;
|
|
73
|
+
handleMenuMode(): void;
|
|
74
|
+
handleFocusItem(): void;
|
|
64
75
|
moveToBackWithKeyboard(e: KeyboardEvent): void;
|
|
65
76
|
moveToNextLevelWithKeyboard(e: KeyboardEvent): void;
|
|
66
|
-
|
|
77
|
+
focusItemByIndex(index: number): void;
|
|
78
|
+
focusExploreBtn(): void;
|
|
67
79
|
focusPreviousItem(e: KeyboardEvent): void;
|
|
68
80
|
focusNextItem(e: KeyboardEvent): void;
|
|
69
|
-
|
|
81
|
+
openExploreSapMenu(e: Event): void;
|
|
82
|
+
openCategories(item: UDExMastheadItem): void;
|
|
70
83
|
openCategoryItems(e: Event): void;
|
|
71
84
|
showFirstLevelMenu(): void;
|
|
72
85
|
showCategories(): void;
|
|
73
|
-
|
|
86
|
+
fireMobileItemEvent(e: Event): void;
|
|
87
|
+
setFocusItemByIndex(index: number): void;
|
|
88
|
+
setFocusExploreBtn(): void;
|
|
74
89
|
getItemByList(el: UDExMastheadItem): UDExMastheadItem;
|
|
75
90
|
getCategories(items: Array<MenuItem>): Array<SubMenuLinkItem>;
|
|
76
91
|
getCurrentIndex(item: HTMLElement): number;
|
|
77
92
|
getListItemByIndex(index: number): HTMLElement | null;
|
|
93
|
+
get exploreBtnMenu(): UDExMastheadMenuItem;
|
|
78
94
|
get isRtlDirection(): boolean;
|
|
79
95
|
get navigationItems(): Array<HTMLElement>;
|
|
80
96
|
get showNavigation(): boolean;
|
|
@@ -83,5 +99,9 @@ declare class UDExMastheadMobileMenu extends UI5Element {
|
|
|
83
99
|
get showExploreBtn(): boolean;
|
|
84
100
|
get hasExploreBtnSlot(): boolean;
|
|
85
101
|
get hasSearchSlot(): boolean;
|
|
102
|
+
get isCategoriesOpen(): boolean;
|
|
103
|
+
get isSingleMenuMode(): boolean;
|
|
104
|
+
get isNoMenuItemsMode(): boolean;
|
|
105
|
+
get isNotMultipleMode(): boolean;
|
|
86
106
|
}
|
|
87
107
|
export default UDExMastheadMobileMenu;
|
|
@@ -10,6 +10,7 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
|
|
|
10
10
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
11
11
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
12
12
|
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
13
|
+
import event from "@ui5/webcomponents-base/dist/decorators/event.js";
|
|
13
14
|
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
14
15
|
import { isUp, isDown, isRight, isLeft, isEnter, } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
15
16
|
import UDExMastheadMenuItem from "./MastheadMenuItem.js";
|
|
@@ -36,32 +37,50 @@ import MastheadMobileMenuCss from "./generated/themes/MastheadMobileMenu.css.js"
|
|
|
36
37
|
*/
|
|
37
38
|
let UDExMastheadMobileMenu = UDExMastheadMobileMenu_1 = class UDExMastheadMobileMenu extends UI5Element {
|
|
38
39
|
static async onDefine() {
|
|
39
|
-
UDExMastheadMobileMenu_1.i18nBundle = await getI18nBundle("
|
|
40
|
+
UDExMastheadMobileMenu_1.i18nBundle = await getI18nBundle("@udex/web-components");
|
|
40
41
|
}
|
|
41
42
|
onAfterRendering() {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
43
|
+
this.handleMenuMode();
|
|
44
|
+
this.handleFocusItem();
|
|
45
45
|
}
|
|
46
46
|
handleMenuItemClick(e) {
|
|
47
47
|
e.preventDefault();
|
|
48
|
-
|
|
48
|
+
e.stopPropagation();
|
|
49
|
+
const item = this.getItemByList(e.target);
|
|
50
|
+
this.openCategories(item);
|
|
51
|
+
this.setFocusItemByIndex(0);
|
|
52
|
+
this.fireMobileItemEvent(e);
|
|
49
53
|
}
|
|
50
54
|
handleMenuCategoryClick(e) {
|
|
51
55
|
e.preventDefault();
|
|
56
|
+
e.stopPropagation();
|
|
52
57
|
this.openCategoryItems(e);
|
|
58
|
+
this.setFocusItemByIndex(0);
|
|
59
|
+
this.fireMobileItemEvent(e);
|
|
53
60
|
}
|
|
54
61
|
handleExploreSapClick(e) {
|
|
55
62
|
e.preventDefault();
|
|
56
|
-
this.
|
|
57
|
-
this.
|
|
58
|
-
this.
|
|
63
|
+
this.openExploreSapMenu(e);
|
|
64
|
+
this.setFocusItemByIndex(0);
|
|
65
|
+
this.fireEvent("explorer-menu-click");
|
|
59
66
|
}
|
|
60
|
-
handleBackToMenuItems() {
|
|
67
|
+
handleBackToMenuItems(e) {
|
|
68
|
+
e.stopPropagation();
|
|
61
69
|
this.showFirstLevelMenu();
|
|
70
|
+
this.setFocusItemByIndex(this.items.indexOf(this._clickedItem));
|
|
71
|
+
this.fireMobileItemEvent(e);
|
|
62
72
|
}
|
|
63
|
-
handleBackToCategories() {
|
|
73
|
+
handleBackToCategories(e) {
|
|
74
|
+
e.stopPropagation();
|
|
64
75
|
this.showCategories();
|
|
76
|
+
this.setFocusItemByIndex(this._category.index + 1);
|
|
77
|
+
this.fireMobileItemEvent(e);
|
|
78
|
+
}
|
|
79
|
+
handleExploreBackToMenuItems(e) {
|
|
80
|
+
e.stopPropagation();
|
|
81
|
+
this.showFirstLevelMenu();
|
|
82
|
+
this.setFocusExploreBtn();
|
|
83
|
+
this.fireMobileItemEvent(e);
|
|
65
84
|
}
|
|
66
85
|
handleKeyDown(e) {
|
|
67
86
|
this.handleUpArrow(e);
|
|
@@ -114,30 +133,71 @@ let UDExMastheadMobileMenu = UDExMastheadMobileMenu_1 = class UDExMastheadMobile
|
|
|
114
133
|
this._direction = directionStyles;
|
|
115
134
|
}
|
|
116
135
|
}
|
|
136
|
+
handleMobileItemEvent(e) {
|
|
137
|
+
e.stopPropagation();
|
|
138
|
+
this.fireMobileItemEvent(e);
|
|
139
|
+
}
|
|
140
|
+
handleMenuMode() {
|
|
141
|
+
if (this.isCategoriesOpen) {
|
|
142
|
+
if (this.isNoMenuItemsMode) {
|
|
143
|
+
this.openCategories(this.exploreItem);
|
|
144
|
+
}
|
|
145
|
+
if (this.isSingleMenuMode) {
|
|
146
|
+
this.openCategories(this.items[0]);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
handleFocusItem() {
|
|
151
|
+
if (this._shouldFocusItemByIndex) {
|
|
152
|
+
this.focusItemByIndex(this._focusedItemIndex);
|
|
153
|
+
}
|
|
154
|
+
if (this._shouldFocusExploreBtn) {
|
|
155
|
+
this.focusExploreBtn();
|
|
156
|
+
}
|
|
157
|
+
}
|
|
117
158
|
moveToBackWithKeyboard(e) {
|
|
118
159
|
const target = e.target;
|
|
119
|
-
if (target.hasAttribute("back-to-nav")) {
|
|
160
|
+
if (target.hasAttribute("is-back-to-nav")) {
|
|
120
161
|
this.showFirstLevelMenu();
|
|
162
|
+
this.setFocusItemByIndex(this.items.indexOf(this._clickedItem));
|
|
163
|
+
this.fireMobileItemEvent(e);
|
|
121
164
|
}
|
|
122
|
-
if (target.hasAttribute("back-to-categories")) {
|
|
165
|
+
if (target.hasAttribute("is-back-to-categories")) {
|
|
123
166
|
this.showCategories();
|
|
167
|
+
this.setFocusItemByIndex(this._category.index + 1);
|
|
168
|
+
this.fireMobileItemEvent(e);
|
|
169
|
+
}
|
|
170
|
+
if (target.hasAttribute("is-explore-back")) {
|
|
171
|
+
this.showFirstLevelMenu();
|
|
172
|
+
this.setFocusExploreBtn();
|
|
173
|
+
this.fireMobileItemEvent(e);
|
|
124
174
|
}
|
|
125
175
|
}
|
|
126
176
|
moveToNextLevelWithKeyboard(e) {
|
|
127
177
|
const target = e.target;
|
|
178
|
+
const item = this.getItemByList(e.target);
|
|
128
179
|
if (target.hasAttribute("is-explore")) {
|
|
129
180
|
this._hideExploreSapBtn = true;
|
|
130
181
|
this._showCategoryItems = false;
|
|
182
|
+
this.fireMobileItemEvent(e);
|
|
131
183
|
}
|
|
132
184
|
if (target.hasAttribute("first-level")) {
|
|
133
|
-
this.openCategories(
|
|
185
|
+
this.openCategories(item);
|
|
186
|
+
this.fireMobileItemEvent(e);
|
|
134
187
|
}
|
|
135
188
|
if (target.hasAttribute("second-level")) {
|
|
136
189
|
this.openCategoryItems(e);
|
|
190
|
+
this.fireMobileItemEvent(e);
|
|
137
191
|
}
|
|
192
|
+
this.setFocusItemByIndex(0);
|
|
193
|
+
}
|
|
194
|
+
focusItemByIndex(index) {
|
|
195
|
+
this.getListItemByIndex(index)?.focus();
|
|
196
|
+
this._shouldFocusItemByIndex = false;
|
|
138
197
|
}
|
|
139
|
-
|
|
140
|
-
this.
|
|
198
|
+
focusExploreBtn() {
|
|
199
|
+
this.exploreBtnMenu.focus();
|
|
200
|
+
this._shouldFocusExploreBtn = false;
|
|
141
201
|
}
|
|
142
202
|
focusPreviousItem(e) {
|
|
143
203
|
const target = e.target;
|
|
@@ -156,16 +216,21 @@ let UDExMastheadMobileMenu = UDExMastheadMobileMenu_1 = class UDExMastheadMobile
|
|
|
156
216
|
const listItem = this.getListItemByIndex(nextSelectIndex);
|
|
157
217
|
listItem?.focus();
|
|
158
218
|
}
|
|
159
|
-
|
|
219
|
+
openExploreSapMenu(e) {
|
|
160
220
|
const item = this.getItemByList(e.target);
|
|
221
|
+
this._hideExploreSapBtn = true;
|
|
222
|
+
this._showCategoryItems = false;
|
|
223
|
+
this.openCategories(item);
|
|
224
|
+
}
|
|
225
|
+
openCategories(item) {
|
|
161
226
|
this._clickedItem = item;
|
|
162
227
|
this._categories = this.getCategories(item.getSubItems());
|
|
163
|
-
this.setCategoryByItem(item);
|
|
164
228
|
this._showCategories = true;
|
|
165
229
|
}
|
|
166
230
|
openCategoryItems(e) {
|
|
167
231
|
const item = e.target;
|
|
168
|
-
|
|
232
|
+
const index = Number(item.getAttribute("id"));
|
|
233
|
+
this._category = { ...this._categories[index], index };
|
|
169
234
|
this._showCategories = false;
|
|
170
235
|
this._showCategoryItems = true;
|
|
171
236
|
}
|
|
@@ -178,9 +243,18 @@ let UDExMastheadMobileMenu = UDExMastheadMobileMenu_1 = class UDExMastheadMobile
|
|
|
178
243
|
this._showCategories = true;
|
|
179
244
|
this._showCategoryItems = false;
|
|
180
245
|
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
246
|
+
fireMobileItemEvent(e) {
|
|
247
|
+
this.fireEvent("item-click", {
|
|
248
|
+
item: e.target,
|
|
249
|
+
originalEvent: e,
|
|
250
|
+
}, true, false);
|
|
251
|
+
}
|
|
252
|
+
setFocusItemByIndex(index) {
|
|
253
|
+
this._shouldFocusItemByIndex = true;
|
|
254
|
+
this._focusedItemIndex = index;
|
|
255
|
+
}
|
|
256
|
+
setFocusExploreBtn() {
|
|
257
|
+
this._shouldFocusExploreBtn = true;
|
|
184
258
|
}
|
|
185
259
|
getItemByList(el) {
|
|
186
260
|
const items = [
|
|
@@ -204,6 +278,9 @@ let UDExMastheadMobileMenu = UDExMastheadMobileMenu_1 = class UDExMastheadMobile
|
|
|
204
278
|
getListItemByIndex(index) {
|
|
205
279
|
return this.navigationItems[index]?.querySelector("udex-masthead-menu-item");
|
|
206
280
|
}
|
|
281
|
+
get exploreBtnMenu() {
|
|
282
|
+
return this.shadowRoot.querySelector(".udex-masthead-mobile-menu__explore-btn");
|
|
283
|
+
}
|
|
207
284
|
get isRtlDirection() {
|
|
208
285
|
return this._direction === "rtl";
|
|
209
286
|
}
|
|
@@ -220,7 +297,7 @@ let UDExMastheadMobileMenu = UDExMastheadMobileMenu_1 = class UDExMastheadMobile
|
|
|
220
297
|
return this.getSlottedNodes("exploreSapMobileButton")[0];
|
|
221
298
|
}
|
|
222
299
|
get showExploreBtn() {
|
|
223
|
-
return this.hasExploreBtnSlot && !this._hideExploreSapBtn;
|
|
300
|
+
return this.hasExploreBtnSlot && !this._hideExploreSapBtn && !!this.items.length;
|
|
224
301
|
}
|
|
225
302
|
get hasExploreBtnSlot() {
|
|
226
303
|
return !!this.getSlottedNodes("exploreSapMobileButton").length;
|
|
@@ -228,6 +305,18 @@ let UDExMastheadMobileMenu = UDExMastheadMobileMenu_1 = class UDExMastheadMobile
|
|
|
228
305
|
get hasSearchSlot() {
|
|
229
306
|
return !!this.search.length;
|
|
230
307
|
}
|
|
308
|
+
get isCategoriesOpen() {
|
|
309
|
+
return !this._showCategoryItems;
|
|
310
|
+
}
|
|
311
|
+
get isSingleMenuMode() {
|
|
312
|
+
return this.items.length === 1 && this.isCategoriesOpen;
|
|
313
|
+
}
|
|
314
|
+
get isNoMenuItemsMode() {
|
|
315
|
+
return this.items.length === 0 && this.isCategoriesOpen;
|
|
316
|
+
}
|
|
317
|
+
get isNotMultipleMode() {
|
|
318
|
+
return this.isSingleMenuMode || this.isNoMenuItemsMode;
|
|
319
|
+
}
|
|
231
320
|
};
|
|
232
321
|
__decorate([
|
|
233
322
|
slot({ type: Node })
|
|
@@ -258,6 +347,31 @@ UDExMastheadMobileMenu = UDExMastheadMobileMenu_1 = __decorate([
|
|
|
258
347
|
template: MastheadMobileMenuTemplate,
|
|
259
348
|
dependencies: [UDExMastheadMenuItem],
|
|
260
349
|
})
|
|
350
|
+
/**
|
|
351
|
+
* Fires when item is clicked
|
|
352
|
+
*
|
|
353
|
+
* @allowPreventDefault
|
|
354
|
+
* @public
|
|
355
|
+
*/
|
|
356
|
+
,
|
|
357
|
+
event("item-click", {
|
|
358
|
+
detail: {
|
|
359
|
+
item: {
|
|
360
|
+
type: HTMLElement,
|
|
361
|
+
},
|
|
362
|
+
originalEvent: {
|
|
363
|
+
type: PointerEvent,
|
|
364
|
+
},
|
|
365
|
+
},
|
|
366
|
+
})
|
|
367
|
+
/**
|
|
368
|
+
* Fires when explorer menu button is clicked
|
|
369
|
+
*
|
|
370
|
+
* @allowPreventDefault
|
|
371
|
+
* @public
|
|
372
|
+
*/
|
|
373
|
+
,
|
|
374
|
+
event("explorer-menu-click")
|
|
261
375
|
], UDExMastheadMobileMenu);
|
|
262
376
|
UDExMastheadMobileMenu.define();
|
|
263
377
|
export default UDExMastheadMobileMenu;
|