@sapudex/web-components 2.5.0 → 2.7.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/cypress/specs/Accordion.cy.tsx +18 -10
- package/cypress/specs/Divider.cy.tsx +16 -0
- package/cypress/support/component-imports.instrumented.ts +2 -0
- package/cypress/support/component-imports.src.ts +4 -2
- package/dist/Accordion.d.ts +6 -5
- package/dist/Accordion.js +21 -20
- package/dist/Accordion.js.map +1 -1
- package/dist/AccordionItem.d.ts +1 -3
- package/dist/AccordionItem.js +17 -19
- package/dist/AccordionItem.js.map +1 -1
- package/dist/AccordionItemTemplate.d.ts +2 -0
- package/dist/AccordionItemTemplate.js +14 -0
- package/dist/AccordionItemTemplate.js.map +1 -0
- package/dist/AccordionTemplate.d.ts +2 -0
- package/dist/AccordionTemplate.js +11 -0
- package/dist/AccordionTemplate.js.map +1 -0
- package/dist/AssetsVariables.js +5 -1
- package/dist/AssetsVariables.js.map +1 -1
- package/dist/Avatar.d.ts +2 -1
- package/dist/Avatar.js +7 -9
- package/dist/Avatar.js.map +1 -1
- package/dist/AvatarTemplate.d.ts +2 -0
- package/dist/AvatarTemplate.js +6 -0
- package/dist/AvatarTemplate.js.map +1 -0
- package/dist/Badge.d.ts +1 -2
- package/dist/Badge.js +6 -9
- package/dist/Badge.js.map +1 -1
- package/dist/BadgeTemplate.d.ts +2 -0
- package/dist/BadgeTemplate.js +8 -0
- package/dist/BadgeTemplate.js.map +1 -0
- package/dist/Carousel.d.ts +16 -4
- package/dist/Carousel.js +21 -11
- package/dist/Carousel.js.map +1 -1
- package/dist/CarouselTemplate.d.ts +2 -0
- package/dist/CarouselTemplate.js +15 -0
- package/dist/CarouselTemplate.js.map +1 -0
- package/dist/ContactItemTemplate.js +2 -1
- package/dist/ContactItemTemplate.js.map +1 -1
- package/dist/CountrySelector.d.ts +1 -1
- package/dist/CountrySelector.js +6 -7
- package/dist/CountrySelector.js.map +1 -1
- package/dist/Divider.d.ts +10 -2
- package/dist/Divider.js +11 -4
- package/dist/Divider.js.map +1 -1
- package/dist/DividerTemplate.d.ts +2 -0
- package/dist/DividerTemplate.js +5 -0
- package/dist/DividerTemplate.js.map +1 -0
- package/dist/Dropdown.js +2 -1
- package/dist/Dropdown.js.map +1 -1
- package/dist/FilterMenu.d.ts +0 -7
- package/dist/FilterMenu.js +12 -12
- package/dist/FilterMenu.js.map +1 -1
- package/dist/List.js +1 -1
- package/dist/List.js.map +1 -1
- package/dist/MastheadCountrySelector.d.ts +8 -0
- package/dist/MastheadCountrySelector.js +28 -2
- package/dist/MastheadCountrySelector.js.map +1 -1
- package/dist/MastheadMenu.d.ts +1 -0
- package/dist/MastheadMenu.js +7 -3
- package/dist/MastheadMenu.js.map +1 -1
- package/dist/MastheadMobileMenu.d.ts +4 -0
- package/dist/MastheadMobileMenu.js +17 -3
- package/dist/MastheadMobileMenu.js.map +1 -1
- package/dist/MastheadProfileMenu.d.ts +8 -0
- package/dist/MastheadProfileMenu.js +26 -1
- package/dist/MastheadProfileMenu.js.map +1 -1
- package/dist/MastheadShell.d.ts +17 -0
- package/dist/MastheadShell.js +53 -15
- package/dist/MastheadShell.js.map +1 -1
- package/dist/Modal.js +2 -2
- package/dist/Modal.js.map +1 -1
- package/dist/Search.js +5 -4
- package/dist/Search.js.map +1 -1
- package/dist/SearchableListBase.d.ts +24 -2
- package/dist/SearchableListBase.js +50 -4
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SecondaryNavigation.js +1 -1
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.js +1 -2
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SegmentedButton.js +6 -4
- package/dist/SegmentedButton.js.map +1 -1
- package/dist/SelectBox.d.ts +0 -7
- package/dist/SelectBox.js +10 -13
- package/dist/SelectBox.js.map +1 -1
- package/dist/TabNavigation.d.ts +5 -0
- package/dist/TabNavigation.js +8 -0
- package/dist/TabNavigation.js.map +1 -1
- package/dist/Table.js +1 -1
- package/dist/Table.js.map +1 -1
- package/dist/TextArea.js +1 -1
- package/dist/TextArea.js.map +1 -1
- package/dist/assets/InputSuggestions-09hxh-NH.js +2 -0
- package/dist/assets/{ListItemStandardExpandableTextTemplate-ClcY2jB2.js → ListItemStandardExpandableTextTemplate-3ixkeBt3.js} +3 -3
- package/dist/assets/bundle-S1uYREqT.css +1 -0
- package/dist/assets/bundle.esm-e2aCupGE.js +475 -0
- package/dist/assets/messagebundle_en-CKeTZNW3.js +1 -0
- package/dist/assets/parameters-bundle.css-B168-DcZ.js +2 -0
- package/dist/assets/parameters-bundle.css-B4OkERQ9.js +2 -0
- package/dist/assets/parameters-bundle.css-D1Mp0DP7.js +2 -0
- package/dist/assets/parameters-bundle.css-DPQMdjrz.js +2 -0
- package/dist/assets/parameters-bundle.css-DW-8EaO7.js +2 -0
- package/dist/assets/parameters-bundle.css-DpI130zX.js +2 -0
- package/dist/assets/parameters-bundle.css-DsEtCihj.js +2 -0
- package/dist/assets/parameters-bundle.css-y5CBgtzD.js +2 -0
- package/dist/css/themes/CountrySelector.css +1 -1
- package/dist/css/themes/MastheadCountrySelector.css +1 -1
- package/dist/css/themes/MastheadItem.css +1 -1
- package/dist/css/themes/MastheadMenuItem.css +1 -1
- package/dist/css/themes/MastheadMobileMenu.css +1 -1
- package/dist/css/themes/MastheadShell.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/Search.css +1 -1
- package/dist/css/themes/SearchableList.css +1 -1
- package/dist/css/themes/SegmentedButtonItem.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/css/themes/TextArea.css +1 -1
- package/dist/custom-elements-internal.json +219 -41
- package/dist/custom-elements.json +211 -41
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
- package/dist/generated/i18n/i18n-defaults.js +2 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/json-imports/Themes-fetch.js +1 -1
- package/dist/generated/json-imports/Themes-fetch.js.map +1 -1
- package/dist/generated/json-imports/Themes-node.js +1 -1
- package/dist/generated/json-imports/Themes-node.js.map +1 -1
- package/dist/generated/json-imports/Themes.js +1 -1
- package/dist/generated/json-imports/Themes.js.map +1 -1
- package/dist/generated/json-imports/i18n-fetch.js +1 -1
- package/dist/generated/json-imports/i18n-fetch.js.map +1 -1
- package/dist/generated/json-imports/i18n-node.js +1 -1
- package/dist/generated/json-imports/i18n-node.js.map +1 -1
- package/dist/generated/json-imports/i18n.js +1 -1
- package/dist/generated/json-imports/i18n.js.map +1 -1
- package/dist/generated/templates/HeroBannerTemplate.lit.js +1 -1
- package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js +3 -3
- package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadMenuTemplate.lit.js +3 -3
- package/dist/generated/templates/MastheadMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +2 -2
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadShellTemplate.lit.js +1 -1
- package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SearchableListBaseTemplate.lit.js +2 -2
- package/dist/generated/templates/SearchableListBaseTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SelectBoxTemplate.lit.js +1 -1
- package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
- package/dist/generated/themes/Accordion.css.js +2 -2
- package/dist/generated/themes/Accordion.css.js.map +1 -1
- package/dist/generated/themes/AccordionItem.css.js +2 -2
- package/dist/generated/themes/AccordionItem.css.js.map +1 -1
- package/dist/generated/themes/Avatar.css.js +2 -2
- package/dist/generated/themes/Avatar.css.js.map +1 -1
- package/dist/generated/themes/Badge.css.js +2 -2
- package/dist/generated/themes/Badge.css.js.map +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js +2 -2
- package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
- package/dist/generated/themes/BreadcrumbsPopover.css.js +2 -2
- package/dist/generated/themes/BreadcrumbsPopover.css.js.map +1 -1
- package/dist/generated/themes/Button.css.js +2 -2
- package/dist/generated/themes/Button.css.js.map +1 -1
- package/dist/generated/themes/Carousel.css.js +2 -2
- package/dist/generated/themes/Carousel.css.js.map +1 -1
- package/dist/generated/themes/Checkbox.css.js +2 -2
- package/dist/generated/themes/Checkbox.css.js.map +1 -1
- package/dist/generated/themes/Contact.css.js +2 -2
- package/dist/generated/themes/Contact.css.js.map +1 -1
- package/dist/generated/themes/ContactItem.css.js +2 -2
- package/dist/generated/themes/ContactItem.css.js.map +1 -1
- package/dist/generated/themes/ControlButton.css.js +2 -2
- package/dist/generated/themes/ControlButton.css.js.map +1 -1
- package/dist/generated/themes/CountrySelector.css.d.ts +1 -1
- package/dist/generated/themes/CountrySelector.css.js +3 -3
- package/dist/generated/themes/CountrySelector.css.js.map +1 -1
- package/dist/generated/themes/DatePicker.css.js +2 -2
- package/dist/generated/themes/DatePicker.css.js.map +1 -1
- package/dist/generated/themes/DatePickerPopover.css.js +2 -2
- package/dist/generated/themes/DatePickerPopover.css.js.map +1 -1
- package/dist/generated/themes/Divider.css.js +2 -2
- package/dist/generated/themes/Divider.css.js.map +1 -1
- package/dist/generated/themes/Dropdown.css.js +2 -2
- package/dist/generated/themes/Dropdown.css.js.map +1 -1
- package/dist/generated/themes/EventRibbon.css.js +2 -2
- package/dist/generated/themes/EventRibbon.css.js.map +1 -1
- package/dist/generated/themes/FilterMenu.css.js +2 -2
- package/dist/generated/themes/FilterMenu.css.js.map +1 -1
- package/dist/generated/themes/Footer.css.js +2 -2
- package/dist/generated/themes/Footer.css.js.map +1 -1
- package/dist/generated/themes/HeroBanner.css.js +2 -2
- package/dist/generated/themes/HeroBanner.css.js.map +1 -1
- package/dist/generated/themes/InputGroup.css.js +2 -2
- package/dist/generated/themes/InputGroup.css.js.map +1 -1
- package/dist/generated/themes/Link.css.js +2 -2
- package/dist/generated/themes/Link.css.js.map +1 -1
- package/dist/generated/themes/List.css.js +2 -2
- package/dist/generated/themes/List.css.js.map +1 -1
- package/dist/generated/themes/ListGroupHeader.css.js +2 -2
- package/dist/generated/themes/ListGroupHeader.css.js.map +1 -1
- package/dist/generated/themes/ListItem.css.js +2 -2
- package/dist/generated/themes/ListItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadCountrySelector.css.d.ts +1 -1
- package/dist/generated/themes/MastheadCountrySelector.css.js +3 -3
- package/dist/generated/themes/MastheadCountrySelector.css.js.map +1 -1
- package/dist/generated/themes/MastheadItem.css.d.ts +1 -1
- package/dist/generated/themes/MastheadItem.css.js +3 -3
- package/dist/generated/themes/MastheadItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadMenu.css.js +2 -2
- package/dist/generated/themes/MastheadMenu.css.js.map +1 -1
- package/dist/generated/themes/MastheadMenuItem.css.d.ts +1 -1
- package/dist/generated/themes/MastheadMenuItem.css.js +3 -3
- package/dist/generated/themes/MastheadMenuItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadMobileMenu.css.d.ts +1 -1
- package/dist/generated/themes/MastheadMobileMenu.css.js +3 -3
- package/dist/generated/themes/MastheadMobileMenu.css.js.map +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.js +2 -2
- package/dist/generated/themes/MastheadProfileMenu.css.js.map +1 -1
- package/dist/generated/themes/MastheadShell.css.d.ts +1 -1
- package/dist/generated/themes/MastheadShell.css.js +3 -3
- package/dist/generated/themes/MastheadShell.css.js.map +1 -1
- package/dist/generated/themes/MediaPlayer.css.js +2 -2
- package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
- package/dist/generated/themes/MediaPlayerYoutube.css.js +2 -2
- package/dist/generated/themes/MediaPlayerYoutube.css.js.map +1 -1
- package/dist/generated/themes/MessageStrip.css.js +2 -2
- package/dist/generated/themes/MessageStrip.css.js.map +1 -1
- package/dist/generated/themes/Modal.css.js +2 -2
- package/dist/generated/themes/Modal.css.js.map +1 -1
- package/dist/generated/themes/Pagination.css.js +2 -2
- package/dist/generated/themes/Pagination.css.js.map +1 -1
- package/dist/generated/themes/PhoneNumberField.css.js +2 -2
- package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
- package/dist/generated/themes/ProgressBar.css.js +2 -2
- package/dist/generated/themes/ProgressBar.css.js.map +1 -1
- package/dist/generated/themes/Quote.css.js +2 -2
- package/dist/generated/themes/Quote.css.js.map +1 -1
- package/dist/generated/themes/RadioButton.css.js +2 -2
- package/dist/generated/themes/RadioButton.css.js.map +1 -1
- package/dist/generated/themes/RatingBar.css.js +2 -2
- package/dist/generated/themes/RatingBar.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +3 -3
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/Review.css.js +2 -2
- package/dist/generated/themes/Review.css.js.map +1 -1
- package/dist/generated/themes/ReviewItem.css.js +2 -2
- package/dist/generated/themes/ReviewItem.css.js.map +1 -1
- package/dist/generated/themes/Search.css.d.ts +1 -1
- package/dist/generated/themes/Search.css.js +3 -3
- package/dist/generated/themes/Search.css.js.map +1 -1
- package/dist/generated/themes/SearchSuggestions.css.js +2 -2
- package/dist/generated/themes/SearchSuggestions.css.js.map +1 -1
- package/dist/generated/themes/SearchableList.css.d.ts +1 -1
- package/dist/generated/themes/SearchableList.css.js +3 -3
- package/dist/generated/themes/SearchableList.css.js.map +1 -1
- package/dist/generated/themes/SecondaryNavigation.css.js +2 -2
- package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
- package/dist/generated/themes/SecondaryNavigationItem.css.js +2 -2
- package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
- package/dist/generated/themes/SecondaryNavigationSubItem.css.js +2 -2
- package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -1
- package/dist/generated/themes/SegmentedButton.css.js +2 -2
- package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.js +3 -3
- package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
- package/dist/generated/themes/SelectBox.css.js +2 -2
- package/dist/generated/themes/SelectBox.css.js.map +1 -1
- package/dist/generated/themes/SideNavigation.css.js +2 -2
- package/dist/generated/themes/SideNavigation.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationGroup.css.js +2 -2
- package/dist/generated/themes/SideNavigationGroup.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationItem.css.js +2 -2
- package/dist/generated/themes/SideNavigationItem.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationMobile.css.js +2 -2
- package/dist/generated/themes/SideNavigationMobile.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationMobileDropdown.css.js +2 -2
- package/dist/generated/themes/SideNavigationMobileDropdown.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationSubItem.css.js +2 -2
- package/dist/generated/themes/SideNavigationSubItem.css.js.map +1 -1
- package/dist/generated/themes/Slider.css.d.ts +1 -1
- package/dist/generated/themes/Slider.css.js +3 -3
- package/dist/generated/themes/Slider.css.js.map +1 -1
- package/dist/generated/themes/StatusBadge.css.js +2 -2
- package/dist/generated/themes/StatusBadge.css.js.map +1 -1
- package/dist/generated/themes/StatusMessage.css.js +2 -2
- package/dist/generated/themes/StatusMessage.css.js.map +1 -1
- package/dist/generated/themes/StepInput.css.js +2 -2
- package/dist/generated/themes/StepInput.css.js.map +1 -1
- package/dist/generated/themes/Switch.css.js +2 -2
- package/dist/generated/themes/Switch.css.js.map +1 -1
- package/dist/generated/themes/TabInOverflow.css.js +2 -2
- package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
- package/dist/generated/themes/TabNavigation.css.js +2 -2
- package/dist/generated/themes/TabNavigation.css.js.map +1 -1
- package/dist/generated/themes/Table.css.js +2 -2
- package/dist/generated/themes/Table.css.js.map +1 -1
- package/dist/generated/themes/TableCell.css.js +2 -2
- package/dist/generated/themes/TableCell.css.js.map +1 -1
- package/dist/generated/themes/TableCellBase.css.js +2 -2
- package/dist/generated/themes/TableCellBase.css.js.map +1 -1
- package/dist/generated/themes/TableGroupRow.css.js +2 -2
- package/dist/generated/themes/TableGroupRow.css.js.map +1 -1
- package/dist/generated/themes/TableHeaderCell.css.js +2 -2
- package/dist/generated/themes/TableHeaderCell.css.js.map +1 -1
- package/dist/generated/themes/TableRowBase.css.js +2 -2
- package/dist/generated/themes/TableRowBase.css.js.map +1 -1
- package/dist/generated/themes/Tag.css.js +2 -2
- package/dist/generated/themes/Tag.css.js.map +1 -1
- package/dist/generated/themes/TagGroup.css.js +2 -2
- package/dist/generated/themes/TagGroup.css.js.map +1 -1
- package/dist/generated/themes/TextArea.css.d.ts +1 -1
- package/dist/generated/themes/TextArea.css.js +3 -3
- package/dist/generated/themes/TextArea.css.js.map +1 -1
- package/dist/generated/themes/TextField.css.js +2 -2
- package/dist/generated/themes/TextField.css.js.map +1 -1
- package/dist/generated/themes/Tile.css.js +2 -2
- package/dist/generated/themes/Tile.css.js.map +1 -1
- package/dist/generated/themes/Toast.css.js +2 -2
- package/dist/generated/themes/Toast.css.js.map +1 -1
- package/dist/generated/themes/Tooltip.css.js +2 -2
- package/dist/generated/themes/Tooltip.css.js.map +1 -1
- package/dist/generated/themes/TruncatedText.css.js +2 -2
- package/dist/generated/themes/TruncatedText.css.js.map +1 -1
- package/dist/generated/themes/Upload.css.js +2 -2
- package/dist/generated/themes/Upload.css.js.map +1 -1
- package/dist/generated/themes/UploadItem.css.js +2 -2
- package/dist/generated/themes/UploadItem.css.js.map +1 -1
- package/dist/generated/themes/Wizard.css.js +2 -2
- package/dist/generated/themes/Wizard.css.js.map +1 -1
- package/dist/generated/themes/WizardTab.css.js +2 -2
- package/dist/generated/themes/WizardTab.css.js.map +1 -1
- package/dist/messagebundle.properties +3 -0
- package/dist/messagebundle_en.properties +1 -0
- package/dist/types/SearchableListBase.d.ts +5 -0
- package/dist/types/SearchableListBase.js +6 -0
- package/dist/types/SearchableListBase.js.map +1 -1
- package/dist/utils/getEffectiveScrollbarStyle.d.ts +4 -0
- package/dist/utils/getEffectiveScrollbarStyle.js +45 -0
- package/dist/utils/getEffectiveScrollbarStyle.js.map +1 -0
- package/dist/vscode.html-custom-data.json +40 -15
- package/dist/web-types.json +73 -27
- package/package.json +7 -7
- package/src/Accordion.ts +38 -31
- package/src/AccordionItem.ts +23 -27
- package/src/AccordionItemTemplate.tsx +54 -0
- package/src/AccordionTemplate.tsx +37 -0
- package/src/AssetsVariables.ts +5 -1
- package/src/Avatar.ts +9 -11
- package/src/AvatarTemplate.tsx +22 -0
- package/src/Badge.ts +8 -12
- package/src/BadgeTemplate.tsx +22 -0
- package/src/Carousel.ts +30 -24
- package/src/CarouselTemplate.tsx +56 -0
- package/src/ContactItemTemplate.tsx +2 -1
- package/src/CountrySelector.ts +9 -10
- package/src/Divider.ts +13 -5
- package/src/DividerTemplate.tsx +11 -0
- package/src/Dropdown.ts +2 -1
- package/src/FilterMenu.ts +15 -18
- package/src/HeroBanner.hbs +1 -0
- package/src/List.ts +1 -1
- package/src/MastheadCountrySelector.hbs +6 -10
- package/src/MastheadCountrySelector.ts +33 -0
- package/src/MastheadMenu.hbs +3 -3
- package/src/MastheadMenu.ts +10 -3
- package/src/MastheadMobileMenu.hbs +1 -3
- package/src/MastheadMobileMenu.ts +23 -3
- package/src/MastheadProfileMenu.ts +35 -1
- package/src/MastheadShell.hbs +29 -29
- package/src/MastheadShell.ts +65 -16
- package/src/Modal.ts +2 -2
- package/src/Search.hbs +1 -1
- package/src/Search.ts +5 -4
- package/src/SearchableListBase.hbs +7 -1
- package/src/SearchableListBase.ts +65 -9
- package/src/SecondaryNavigation.ts +1 -1
- package/src/SecondaryNavigationItem.ts +1 -2
- package/src/SegmentedButton.ts +7 -4
- package/src/SelectBox.hbs +1 -0
- package/src/SelectBox.ts +13 -19
- package/src/TabNavigation.ts +13 -0
- package/src/Table.ts +1 -1
- package/src/TextArea.ts +1 -1
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/json-imports/Themes-fetch.ts +1 -1
- package/src/generated/json-imports/Themes-node.ts +1 -1
- package/src/generated/json-imports/Themes.ts +1 -1
- package/src/generated/json-imports/i18n-fetch.ts +1 -1
- package/src/generated/json-imports/i18n-node.ts +1 -1
- package/src/generated/json-imports/i18n.ts +1 -1
- package/src/generated/templates/HeroBannerTemplate.lit.ts +1 -1
- package/src/generated/templates/MastheadCountrySelectorTemplate.lit.ts +3 -3
- package/src/generated/templates/MastheadMenuTemplate.lit.ts +3 -3
- package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +2 -2
- package/src/generated/templates/MastheadShellTemplate.lit.ts +1 -1
- package/src/generated/templates/SearchableListBaseTemplate.lit.ts +2 -2
- package/src/generated/templates/SelectBoxTemplate.lit.ts +1 -1
- package/src/generated/themes/Accordion.css.ts +2 -2
- package/src/generated/themes/AccordionItem.css.ts +2 -2
- package/src/generated/themes/Avatar.css.ts +2 -2
- package/src/generated/themes/Badge.css.ts +2 -2
- package/src/generated/themes/Breadcrumbs.css.ts +2 -2
- package/src/generated/themes/BreadcrumbsPopover.css.ts +2 -2
- package/src/generated/themes/Button.css.ts +2 -2
- package/src/generated/themes/Carousel.css.ts +2 -2
- package/src/generated/themes/Checkbox.css.ts +2 -2
- package/src/generated/themes/Contact.css.ts +2 -2
- package/src/generated/themes/ContactItem.css.ts +2 -2
- package/src/generated/themes/ControlButton.css.ts +2 -2
- package/src/generated/themes/CountrySelector.css.ts +3 -3
- package/src/generated/themes/DatePicker.css.ts +2 -2
- package/src/generated/themes/DatePickerPopover.css.ts +2 -2
- package/src/generated/themes/Divider.css.ts +2 -2
- package/src/generated/themes/Dropdown.css.ts +2 -2
- package/src/generated/themes/EventRibbon.css.ts +2 -2
- package/src/generated/themes/FilterMenu.css.ts +2 -2
- package/src/generated/themes/Footer.css.ts +2 -2
- package/src/generated/themes/HeroBanner.css.ts +2 -2
- package/src/generated/themes/InputGroup.css.ts +2 -2
- package/src/generated/themes/Link.css.ts +2 -2
- package/src/generated/themes/List.css.ts +2 -2
- package/src/generated/themes/ListGroupHeader.css.ts +2 -2
- package/src/generated/themes/ListItem.css.ts +2 -2
- package/src/generated/themes/MastheadCountrySelector.css.ts +3 -3
- package/src/generated/themes/MastheadItem.css.ts +3 -3
- package/src/generated/themes/MastheadMenu.css.ts +2 -2
- package/src/generated/themes/MastheadMenuItem.css.ts +3 -3
- package/src/generated/themes/MastheadMobileMenu.css.ts +3 -3
- package/src/generated/themes/MastheadProfileMenu.css.ts +2 -2
- package/src/generated/themes/MastheadShell.css.ts +3 -3
- package/src/generated/themes/MediaPlayer.css.ts +2 -2
- package/src/generated/themes/MediaPlayerYoutube.css.ts +2 -2
- package/src/generated/themes/MessageStrip.css.ts +2 -2
- package/src/generated/themes/Modal.css.ts +2 -2
- package/src/generated/themes/Pagination.css.ts +2 -2
- package/src/generated/themes/PhoneNumberField.css.ts +2 -2
- package/src/generated/themes/ProgressBar.css.ts +2 -2
- package/src/generated/themes/Quote.css.ts +2 -2
- package/src/generated/themes/RadioButton.css.ts +2 -2
- package/src/generated/themes/RatingBar.css.ts +2 -2
- package/src/generated/themes/RatingIndicator.css.ts +3 -3
- package/src/generated/themes/Review.css.ts +2 -2
- package/src/generated/themes/ReviewItem.css.ts +2 -2
- package/src/generated/themes/Search.css.ts +3 -3
- package/src/generated/themes/SearchSuggestions.css.ts +2 -2
- package/src/generated/themes/SearchableList.css.ts +3 -3
- package/src/generated/themes/SecondaryNavigation.css.ts +2 -2
- package/src/generated/themes/SecondaryNavigationItem.css.ts +2 -2
- package/src/generated/themes/SecondaryNavigationSubItem.css.ts +2 -2
- package/src/generated/themes/SegmentedButton.css.ts +2 -2
- package/src/generated/themes/SegmentedButtonItem.css.ts +3 -3
- package/src/generated/themes/SelectBox.css.ts +2 -2
- package/src/generated/themes/SideNavigation.css.ts +2 -2
- package/src/generated/themes/SideNavigationGroup.css.ts +2 -2
- package/src/generated/themes/SideNavigationItem.css.ts +2 -2
- package/src/generated/themes/SideNavigationMobile.css.ts +2 -2
- package/src/generated/themes/SideNavigationMobileDropdown.css.ts +2 -2
- package/src/generated/themes/SideNavigationSubItem.css.ts +2 -2
- package/src/generated/themes/Slider.css.ts +3 -3
- package/src/generated/themes/StatusBadge.css.ts +2 -2
- package/src/generated/themes/StatusMessage.css.ts +2 -2
- package/src/generated/themes/StepInput.css.ts +2 -2
- package/src/generated/themes/Switch.css.ts +2 -2
- package/src/generated/themes/TabInOverflow.css.ts +2 -2
- package/src/generated/themes/TabNavigation.css.ts +2 -2
- package/src/generated/themes/Table.css.ts +2 -2
- package/src/generated/themes/TableCell.css.ts +2 -2
- package/src/generated/themes/TableCellBase.css.ts +2 -2
- package/src/generated/themes/TableGroupRow.css.ts +2 -2
- package/src/generated/themes/TableHeaderCell.css.ts +2 -2
- package/src/generated/themes/TableRowBase.css.ts +2 -2
- package/src/generated/themes/Tag.css.ts +2 -2
- package/src/generated/themes/TagGroup.css.ts +2 -2
- package/src/generated/themes/TextArea.css.ts +3 -3
- package/src/generated/themes/TextField.css.ts +2 -2
- package/src/generated/themes/Tile.css.ts +2 -2
- package/src/generated/themes/Toast.css.ts +2 -2
- package/src/generated/themes/Tooltip.css.ts +2 -2
- package/src/generated/themes/TruncatedText.css.ts +2 -2
- package/src/generated/themes/Upload.css.ts +2 -2
- package/src/generated/themes/UploadItem.css.ts +2 -2
- package/src/generated/themes/Wizard.css.ts +2 -2
- package/src/generated/themes/WizardTab.css.ts +2 -2
- package/src/i18n/messagebundle.properties +3 -0
- package/src/i18n/messagebundle_en.properties +1 -0
- package/src/themes/CountrySelector.css +11 -0
- package/src/themes/List.css +1 -0
- package/src/themes/MastheadCountrySelector.css +11 -0
- package/src/themes/MastheadItem.css +5 -6
- package/src/themes/MastheadMenuItem.css +7 -0
- package/src/themes/MastheadMobileMenu.css +1 -0
- package/src/themes/MastheadShell.css +8 -4
- package/src/themes/Search.css +3 -1
- package/src/themes/SearchableList.css +15 -0
- package/src/themes/SegmentedButtonItem.css +2 -2
- package/src/themes/TextArea.css +0 -7
- package/src/types/SearchableListBase.ts +6 -0
- package/src/utils/getEffectiveScrollbarStyle.ts +48 -0
- package/dist/assets/InputSuggestions-RQHqFxZ9.js +0 -2
- package/dist/assets/bundle-C9ZlnwwH.css +0 -1
- package/dist/assets/bundle.esm-DGH8Pvav.js +0 -399
- package/dist/assets/messagebundle_en-DXEe5nWA.js +0 -1
- package/dist/assets/parameters-bundle.css-1GGBOW8m.js +0 -2
- package/dist/assets/parameters-bundle.css-A9eeRg2R.js +0 -2
- package/dist/assets/parameters-bundle.css-COBI_9-U.js +0 -2
- package/dist/assets/parameters-bundle.css-CgAoZ-Ir.js +0 -2
- package/dist/assets/parameters-bundle.css-DuFHHRNK.js +0 -2
- package/dist/assets/parameters-bundle.css-Pf68NO0T.js +0 -2
- package/dist/assets/parameters-bundle.css-aX_t_-9o.js +0 -2
- package/dist/assets/parameters-bundle.css-rNSryFKH.js +0 -2
- package/dist/generated/templates/AccordionItemTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/AccordionItemTemplate.lit.js +0 -8
- package/dist/generated/templates/AccordionItemTemplate.lit.js.map +0 -1
- package/dist/generated/templates/AccordionTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/AccordionTemplate.lit.js +0 -10
- package/dist/generated/templates/AccordionTemplate.lit.js.map +0 -1
- package/dist/generated/templates/AvatarTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/AvatarTemplate.lit.js +0 -9
- package/dist/generated/templates/AvatarTemplate.lit.js.map +0 -1
- package/dist/generated/templates/BadgeTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/BadgeTemplate.lit.js +0 -9
- package/dist/generated/templates/BadgeTemplate.lit.js.map +0 -1
- package/dist/generated/templates/CarouselTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/CarouselTemplate.lit.js +0 -10
- package/dist/generated/templates/CarouselTemplate.lit.js.map +0 -1
- package/dist/generated/templates/DividerTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/DividerTemplate.lit.js +0 -7
- package/dist/generated/templates/DividerTemplate.lit.js.map +0 -1
- package/src/Accordion.hbs +0 -25
- package/src/AccordionItem.hbs +0 -37
- package/src/Avatar.hbs +0 -19
- package/src/Badge.hbs +0 -16
- package/src/Carousel.hbs +0 -45
- package/src/Divider.hbs +0 -1
- package/src/generated/templates/AccordionItemTemplate.lit.ts +0 -12
- package/src/generated/templates/AccordionTemplate.lit.ts +0 -14
- package/src/generated/templates/AvatarTemplate.lit.ts +0 -13
- package/src/generated/templates/BadgeTemplate.lit.ts +0 -13
- package/src/generated/templates/CarouselTemplate.lit.ts +0 -14
- package/src/generated/templates/DividerTemplate.lit.ts +0 -11
|
@@ -4,6 +4,8 @@ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
|
4
4
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
5
5
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
6
6
|
import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
7
|
+
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
8
|
+
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
7
9
|
import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
|
|
8
10
|
import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
|
|
9
11
|
import {
|
|
@@ -15,6 +17,7 @@ import MastheadCountrySelectorTemplate from "./generated/templates/MastheadCount
|
|
|
15
17
|
import AnalyticsName from "./types/AnalyticsName.js";
|
|
16
18
|
import { BreakpointUtils } from "./utils/Breakpoints.js";
|
|
17
19
|
import type UDExMastheadShell from "./MastheadShell.js";
|
|
20
|
+
import { NO_MATCHES_FOUND, RESULT_RETURNED } from "./generated/i18n/i18n-defaults.js";
|
|
18
21
|
|
|
19
22
|
// Styles
|
|
20
23
|
import MastheadCountrySelectorCss from "./generated/themes/MastheadCountrySelector.css.js";
|
|
@@ -193,7 +196,12 @@ class UDExMastheadCountrySelector extends UI5Element {
|
|
|
193
196
|
_activeCountries!: Array<Country>;
|
|
194
197
|
_shouldFocusBackBtn!: boolean;
|
|
195
198
|
_shouldFocusRegionByIndex!: boolean;
|
|
199
|
+
_accSearchResultInfo?: string;
|
|
196
200
|
_activeRegionIndex!: number;
|
|
201
|
+
_mastheadShell!: UDExMastheadShell;
|
|
202
|
+
|
|
203
|
+
@i18n("@sapudex/web-components")
|
|
204
|
+
static i18nBundle: I18nBundle;
|
|
197
205
|
|
|
198
206
|
constructor() {
|
|
199
207
|
super();
|
|
@@ -201,6 +209,7 @@ class UDExMastheadCountrySelector extends UI5Element {
|
|
|
201
209
|
}
|
|
202
210
|
|
|
203
211
|
onAfterRendering(): void {
|
|
212
|
+
this._mastheadShell = this.mastheadShell;
|
|
204
213
|
this.handleFocusItem();
|
|
205
214
|
this.setTabIndexForItems();
|
|
206
215
|
this.handleDirection();
|
|
@@ -222,6 +231,13 @@ class UDExMastheadCountrySelector extends UI5Element {
|
|
|
222
231
|
this.fireEventRegionItemClick(e);
|
|
223
232
|
}
|
|
224
233
|
|
|
234
|
+
handleCountryClick(e: CustomEvent): void {
|
|
235
|
+
this.fireEventCountryItemClick(e);
|
|
236
|
+
if (this._mastheadShell && this.isMobile) {
|
|
237
|
+
this.closeMenu();
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
|
|
225
241
|
handleKeyDown(e: KeyboardEvent): void {
|
|
226
242
|
const item = e.target as UDExMastheadMenuItem;
|
|
227
243
|
|
|
@@ -291,6 +307,10 @@ class UDExMastheadCountrySelector extends UI5Element {
|
|
|
291
307
|
this.setActiveCountries(this._activeRegion.countries.filter(country => country.displayTitle.toLowerCase().includes(searchTerm)));
|
|
292
308
|
}
|
|
293
309
|
|
|
310
|
+
this._accSearchResultInfo = this._activeCountries.length
|
|
311
|
+
? `${this._activeCountries.length} ${this.resultReturnedText}`
|
|
312
|
+
: this.noMatchesFoundText;
|
|
313
|
+
|
|
294
314
|
this._shouldFocusBackBtn = false;
|
|
295
315
|
this.fireDecoratorEvent("country-selector-search", {
|
|
296
316
|
value: e.detail.value,
|
|
@@ -468,6 +488,19 @@ class UDExMastheadCountrySelector extends UI5Element {
|
|
|
468
488
|
});
|
|
469
489
|
}
|
|
470
490
|
|
|
491
|
+
closeMenu():void {
|
|
492
|
+
this._mastheadShell.closeMobileMenu();
|
|
493
|
+
this._mastheadShell.mobileBtn?.focus();
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
get noMatchesFoundText(): string {
|
|
497
|
+
return UDExMastheadCountrySelector.i18nBundle.getText(NO_MATCHES_FOUND);
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
get resultReturnedText(): string {
|
|
501
|
+
return UDExMastheadCountrySelector.i18nBundle.getText(RESULT_RETURNED);
|
|
502
|
+
}
|
|
503
|
+
|
|
471
504
|
get items(): Array<UDExMastheadMenuItem> {
|
|
472
505
|
const items = this.shadowRoot?.querySelectorAll<UDExMastheadMenuItem>(".udex-masthead-country-selector__item");
|
|
473
506
|
return items ? Array.from(items) : [];
|
package/src/MastheadMenu.hbs
CHANGED
|
@@ -42,7 +42,9 @@
|
|
|
42
42
|
category="{{this.category}}">
|
|
43
43
|
{{#each this.items}}
|
|
44
44
|
<li>
|
|
45
|
-
{{#if this.
|
|
45
|
+
{{#if this.isDivider}}
|
|
46
|
+
<udex-divider class="udex-masthead-menu__item-divider"></udex-divider>
|
|
47
|
+
{{else}}
|
|
46
48
|
<udex-masthead-menu-item
|
|
47
49
|
part="menu-item"
|
|
48
50
|
exportparts="menu-item"
|
|
@@ -53,8 +55,6 @@
|
|
|
53
55
|
label="{{this.title}}"
|
|
54
56
|
exportparts="badge">
|
|
55
57
|
</udex-masthead-menu-item>
|
|
56
|
-
{{else}}
|
|
57
|
-
<udex-divider class="udex-masthead-menu__item-divider"></udex-divider>
|
|
58
58
|
{{/if}}
|
|
59
59
|
</li>
|
|
60
60
|
{{/each}}
|
package/src/MastheadMenu.ts
CHANGED
|
@@ -24,6 +24,7 @@ export type Item = {
|
|
|
24
24
|
title: string;
|
|
25
25
|
url: string;
|
|
26
26
|
externalLink: boolean;
|
|
27
|
+
isDivider?: boolean;
|
|
27
28
|
};
|
|
28
29
|
|
|
29
30
|
export type SubMenuLinkItem = {
|
|
@@ -178,10 +179,16 @@ class UDExMastheadMenu extends UI5Element {
|
|
|
178
179
|
get itemsList(): Array<MenuItem> {
|
|
179
180
|
let id = 1;
|
|
180
181
|
const parsedItems: Array<MenuItem> = parseArrayFromString(this.subItems);
|
|
182
|
+
|
|
181
183
|
return parsedItems.map((mainItem: MenuItem) => {
|
|
182
|
-
mainItem.subMenuLinkItems = mainItem.subMenuLinkItems.map((
|
|
183
|
-
|
|
184
|
-
|
|
184
|
+
mainItem.subMenuLinkItems = mainItem.subMenuLinkItems.map((subMenu: SubMenuLinkItem) => {
|
|
185
|
+
subMenu.categoryId = `${id++}`;
|
|
186
|
+
subMenu.items = subMenu.items.map((item: Item) => ({
|
|
187
|
+
...item,
|
|
188
|
+
...(item.title === "-" && { isDivider: true }),
|
|
189
|
+
}));
|
|
190
|
+
|
|
191
|
+
return subMenu;
|
|
185
192
|
});
|
|
186
193
|
|
|
187
194
|
return mainItem;
|
|
@@ -102,8 +102,7 @@
|
|
|
102
102
|
first-level-btn
|
|
103
103
|
first-level
|
|
104
104
|
has-border
|
|
105
|
-
icon-end
|
|
106
|
-
first-level>
|
|
105
|
+
icon-end>
|
|
107
106
|
</udex-masthead-menu-item>
|
|
108
107
|
{{else}}
|
|
109
108
|
<udex-masthead-menu-item
|
|
@@ -139,7 +138,6 @@
|
|
|
139
138
|
<udex-masthead-menu-item
|
|
140
139
|
part="menu-item"
|
|
141
140
|
@click="{{../handleMenuCategoryClick}}"
|
|
142
|
-
url="{{this.url}}"
|
|
143
141
|
id="{{@index}}"
|
|
144
142
|
label="{{this.category}}"
|
|
145
143
|
aria-has-popup="true"
|
|
@@ -15,10 +15,14 @@ import UDExMastheadMenuItem, { UDExItemType } from "./MastheadMenuItem.js";
|
|
|
15
15
|
import { OVERVIEW } from "./generated/i18n/i18n-defaults.js";
|
|
16
16
|
import AnalyticsName from "./types/AnalyticsName.js";
|
|
17
17
|
import MastheadMobileMenuTemplate from "./generated/templates/MastheadMobileMenuTemplate.lit.js";
|
|
18
|
+
import type UDExMastheadShell from "./MastheadShell.js";
|
|
18
19
|
|
|
19
20
|
// Styles
|
|
20
21
|
import MastheadMobileMenuCss from "./generated/themes/MastheadMobileMenu.css.js";
|
|
21
22
|
|
|
23
|
+
const INDEX_OFFSET_WITH_OVERVIEW = 2;
|
|
24
|
+
const INDEX_OFFSET_WITHOUT_OVERVIEW = 1;
|
|
25
|
+
|
|
22
26
|
type UDExMastheadMobileMenuItemClickEventDetail = {
|
|
23
27
|
originalEvent: PointerEvent | KeyboardEvent,
|
|
24
28
|
item: UDExMastheadMenuItem,
|
|
@@ -130,8 +134,10 @@ class UDExMastheadMobileMenu extends UI5Element {
|
|
|
130
134
|
_shouldFocusExploreBtn!: boolean;
|
|
131
135
|
_focusedItemIndex!: number;
|
|
132
136
|
_navItem?: UDExMastheadMenuItem;
|
|
137
|
+
_mastheadShell!: UDExMastheadShell;
|
|
133
138
|
|
|
134
139
|
onAfterRendering() {
|
|
140
|
+
this._mastheadShell = this.mastheadShell;
|
|
135
141
|
this.handleMenuMode();
|
|
136
142
|
this.setTabIndexForItems();
|
|
137
143
|
this.handleFocusItem();
|
|
@@ -171,7 +177,7 @@ class UDExMastheadMobileMenu extends UI5Element {
|
|
|
171
177
|
handleBackToCategories(e: PointerEvent) {
|
|
172
178
|
e.stopPropagation();
|
|
173
179
|
this.showCategories();
|
|
174
|
-
this.setFocusItemByIndex(this._category.index
|
|
180
|
+
this.setFocusItemByIndex(this._category.index);
|
|
175
181
|
this.fireMobileItemEvent(e);
|
|
176
182
|
}
|
|
177
183
|
|
|
@@ -280,7 +286,7 @@ class UDExMastheadMobileMenu extends UI5Element {
|
|
|
280
286
|
|
|
281
287
|
if (target.hasAttribute("is-back-to-categories")) {
|
|
282
288
|
this.showCategories();
|
|
283
|
-
this.setFocusItemByIndex(this._category.index
|
|
289
|
+
this.setFocusItemByIndex(this._category.index);
|
|
284
290
|
this.fireMobileItemEvent(e);
|
|
285
291
|
}
|
|
286
292
|
|
|
@@ -400,8 +406,9 @@ class UDExMastheadMobileMenu extends UI5Element {
|
|
|
400
406
|
|
|
401
407
|
openCategoryItems(e: Event) {
|
|
402
408
|
const item = e.target as UDExMastheadMenuItem;
|
|
409
|
+
const indexOffset = this._clickedItem.href ? INDEX_OFFSET_WITH_OVERVIEW : INDEX_OFFSET_WITHOUT_OVERVIEW;
|
|
403
410
|
const index = Number(item.getAttribute("id"));
|
|
404
|
-
this._category = { ...this._categories[index], index };
|
|
411
|
+
this._category = { ...this._categories[index], index: index + indexOffset };
|
|
405
412
|
this._showCategories = false;
|
|
406
413
|
this._showCategoryItems = true;
|
|
407
414
|
}
|
|
@@ -432,6 +439,10 @@ class UDExMastheadMobileMenu extends UI5Element {
|
|
|
432
439
|
};
|
|
433
440
|
|
|
434
441
|
this.fireDecoratorEvent("item-click", eventDetail);
|
|
442
|
+
|
|
443
|
+
if (item.url && this._mastheadShell) {
|
|
444
|
+
this.closeMenu();
|
|
445
|
+
}
|
|
435
446
|
}
|
|
436
447
|
|
|
437
448
|
fireExploreSapMobileButton(e: PointerEvent | KeyboardEvent) {
|
|
@@ -526,6 +537,15 @@ class UDExMastheadMobileMenu extends UI5Element {
|
|
|
526
537
|
return analyticsPath;
|
|
527
538
|
}
|
|
528
539
|
|
|
540
|
+
closeMenu():void {
|
|
541
|
+
this._mastheadShell.closeMobileMenu();
|
|
542
|
+
this._mastheadShell.mobileBtn?.focus();
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
get mastheadShell(): UDExMastheadShell {
|
|
546
|
+
return document.querySelector<UDExMastheadShell>("[udex-masthead-shell]")!;
|
|
547
|
+
}
|
|
548
|
+
|
|
529
549
|
get exploreBtnMenu(): UDExMastheadMenuItem {
|
|
530
550
|
return this.shadowRoot!.querySelector<UDExMastheadMenuItem>(".udex-masthead-mobile-menu__explore-btn")!;
|
|
531
551
|
}
|
|
@@ -12,6 +12,7 @@ import MastheadProfileMenuTemplate from "./generated/templates/MastheadProfileMe
|
|
|
12
12
|
import type UDExMastheadMenuItem from "./MastheadMenuItem.js";
|
|
13
13
|
import parseArrayFromString from "./utils/parseArrayFromString.js";
|
|
14
14
|
import AnalyticsName from "./types/AnalyticsName.js";
|
|
15
|
+
import type UDExMastheadShell from "./MastheadShell.js";
|
|
15
16
|
|
|
16
17
|
// Styles
|
|
17
18
|
import MastheadProfileMenuCss from "./generated/themes/MastheadProfileMenu.css.js";
|
|
@@ -120,7 +121,27 @@ class UDExMastheadProfileMenu extends UI5Element {
|
|
|
120
121
|
@i18n("@sapudex/web-components")
|
|
121
122
|
static i18nBundle: I18nBundle;
|
|
122
123
|
|
|
124
|
+
_mastheadShell!: UDExMastheadShell;
|
|
125
|
+
|
|
126
|
+
onAfterRendering(): void {
|
|
127
|
+
this._mastheadShell = this.mastheadShell;
|
|
128
|
+
}
|
|
129
|
+
|
|
123
130
|
handleUserLogoutItemClick(e: PointerEvent): void {
|
|
131
|
+
this.fireLogoutItemClick(e);
|
|
132
|
+
if (this.shouldCloseMenu) {
|
|
133
|
+
this.closeMenu();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
handleProfileMenuItemClick(e: CustomEvent): void {
|
|
138
|
+
this.fireMenuItemClick(e);
|
|
139
|
+
if (this.shouldCloseMenu) {
|
|
140
|
+
this.closeMenu();
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
fireLogoutItemClick(e: PointerEvent): void {
|
|
124
145
|
const item = e.target as UDExMastheadMenuItem;
|
|
125
146
|
|
|
126
147
|
this.fireDecoratorEvent("logout", {
|
|
@@ -131,7 +152,7 @@ class UDExMastheadProfileMenu extends UI5Element {
|
|
|
131
152
|
});
|
|
132
153
|
}
|
|
133
154
|
|
|
134
|
-
|
|
155
|
+
fireMenuItemClick(e: CustomEvent): void {
|
|
135
156
|
const { item, originalEvent } = e.detail;
|
|
136
157
|
|
|
137
158
|
this.fireDecoratorEvent("profile-item-click", {
|
|
@@ -142,6 +163,15 @@ class UDExMastheadProfileMenu extends UI5Element {
|
|
|
142
163
|
});
|
|
143
164
|
}
|
|
144
165
|
|
|
166
|
+
closeMenu():void {
|
|
167
|
+
this._mastheadShell.closeMobileMenu();
|
|
168
|
+
this._mastheadShell.mobileBtn?.focus();
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
get shouldCloseMenu(): boolean {
|
|
172
|
+
return this._mastheadShell && this._mastheadShell.isMobileMenuMode;
|
|
173
|
+
}
|
|
174
|
+
|
|
145
175
|
get linksList(): string {
|
|
146
176
|
return this.links ? JSON.stringify([{
|
|
147
177
|
subMenuLinkItems: JSON.parse(this.links),
|
|
@@ -163,6 +193,10 @@ class UDExMastheadProfileMenu extends UI5Element {
|
|
|
163
193
|
get logoutText(): string {
|
|
164
194
|
return UDExMastheadProfileMenu.i18nBundle.getText(LOGOUT);
|
|
165
195
|
}
|
|
196
|
+
|
|
197
|
+
get mastheadShell(): UDExMastheadShell {
|
|
198
|
+
return document.querySelector<UDExMastheadShell>("[udex-masthead-shell]")!;
|
|
199
|
+
}
|
|
166
200
|
}
|
|
167
201
|
|
|
168
202
|
UDExMastheadProfileMenu.define();
|
package/src/MastheadShell.hbs
CHANGED
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
{{/if}}
|
|
53
53
|
{{/if}}
|
|
54
54
|
|
|
55
|
-
<div class="
|
|
55
|
+
<div class="{{rightMenuClass}}">
|
|
56
56
|
{{#if hasMobileMenuButtons}}
|
|
57
57
|
<udex-masthead-item
|
|
58
58
|
@ui5-item-click="{{handleOpenMobileMenu}}"
|
|
@@ -72,47 +72,47 @@
|
|
|
72
72
|
</div>
|
|
73
73
|
{{/if}}
|
|
74
74
|
{{#if hasSearch}}
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
<div class="udex-masthead-shell__search-icon udex-masthead-shell__item_icon">
|
|
76
|
+
<udex-masthead-item
|
|
77
77
|
class="udex-masthead-shell__search-btn"
|
|
78
78
|
icon="search"
|
|
79
79
|
part="search-button"
|
|
80
80
|
@click="{{handleSearchClick}}"
|
|
81
81
|
accessible-name="search">
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
</udex-masthead-item>
|
|
83
|
+
</div>
|
|
84
84
|
{{/if}}
|
|
85
85
|
{{#if hasCart}}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
86
|
+
<div
|
|
87
|
+
class="udex-masthead-shell__cart udex-masthead-shell__item_icon"
|
|
88
|
+
@ui5-item-click="{{setSelectedItem}}"
|
|
89
|
+
@click="{{handleCartClick}}">
|
|
90
|
+
<slot name="cart"></slot>
|
|
91
|
+
</div>
|
|
92
92
|
{{/if}}
|
|
93
93
|
{{#if hasSupport}}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
94
|
+
<div
|
|
95
|
+
class="udex-masthead-shell__support udex-masthead-shell__item_icon"
|
|
96
|
+
@ui5-item-click="{{setSelectedItem}}"
|
|
97
|
+
@click="{{handleSupportClick}}">
|
|
98
|
+
<slot name="support"></slot>
|
|
99
|
+
</div>
|
|
100
100
|
{{/if}}
|
|
101
101
|
{{#if hasProfile}}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
102
|
+
<div
|
|
103
|
+
class="udex-masthead-shell__profile udex-masthead-shell__item_icon"
|
|
104
|
+
@ui5-item-click="{{setSelectedItem}}"
|
|
105
|
+
@click="{{handleProfileClick}}">
|
|
106
|
+
<slot name="profile"></slot>
|
|
107
|
+
</div>
|
|
108
108
|
{{/if}}
|
|
109
109
|
{{#if hasCountrySelector}}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
110
|
+
<div
|
|
111
|
+
class="udex-masthead-shell__country-selector udex-masthead-shell__item_icon"
|
|
112
|
+
@ui5-item-click="{{setSelectedItem}}"
|
|
113
|
+
@click="{{handleCountrySelectorClick}}">
|
|
114
|
+
<slot name="countrySelector"></slot>
|
|
115
|
+
</div>
|
|
116
116
|
{{/if}}
|
|
117
117
|
{{#if hasMobileMenuButtons}}
|
|
118
118
|
<udex-masthead-item
|
package/src/MastheadShell.ts
CHANGED
|
@@ -46,6 +46,17 @@ type UDExMastheadShellAnalyticsNameEventDetail = {
|
|
|
46
46
|
analyticsName: AnalyticsName,
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
+
export enum UDExMastheadVariable {
|
|
50
|
+
mobileMenuHeight = "--udex-masthead-shell-mobile-menu-height",
|
|
51
|
+
itemButtonIconSize = "--udex-masthead-item-button-icon-size",
|
|
52
|
+
itemArrowIconSize = "--udex-masthead-item-arrow-icon-size",
|
|
53
|
+
rightMenuPadding = "--udex-masthead-right-menu-padding",
|
|
54
|
+
exploreMargin = "--udex-masthead-shell-explore-margin",
|
|
55
|
+
itemIconGap = "--udex-masthead-shell-item-icon-gap",
|
|
56
|
+
mastheadHeight = "--udex-masthead-shell-height",
|
|
57
|
+
itemGap = "--udex-masthead-shell-item-gap",
|
|
58
|
+
}
|
|
59
|
+
|
|
49
60
|
/**
|
|
50
61
|
* @class
|
|
51
62
|
*
|
|
@@ -453,6 +464,7 @@ class UDExMastheadShell extends UI5Element {
|
|
|
453
464
|
_handleResizeBound: ResizeObserverCallback;
|
|
454
465
|
_rootHolder!: HTMLElement | null | undefined;
|
|
455
466
|
_shouldHandleResize!: boolean;
|
|
467
|
+
_isVisible!: boolean;
|
|
456
468
|
|
|
457
469
|
constructor() {
|
|
458
470
|
super();
|
|
@@ -477,6 +489,8 @@ class UDExMastheadShell extends UI5Element {
|
|
|
477
489
|
if (this._closeBtnClicked) {
|
|
478
490
|
this.focusSearchBtn();
|
|
479
491
|
}
|
|
492
|
+
|
|
493
|
+
this.updateVisibility();
|
|
480
494
|
}
|
|
481
495
|
|
|
482
496
|
onEnterDOM(): void {
|
|
@@ -526,6 +540,8 @@ class UDExMastheadShell extends UI5Element {
|
|
|
526
540
|
} else {
|
|
527
541
|
this.removeMobileMode();
|
|
528
542
|
}
|
|
543
|
+
|
|
544
|
+
this._isVisible = true;
|
|
529
545
|
}
|
|
530
546
|
}
|
|
531
547
|
|
|
@@ -721,26 +737,40 @@ class UDExMastheadShell extends UI5Element {
|
|
|
721
737
|
const itemsIcon = [...this.shadowRoot!.querySelectorAll<HTMLDivElement>(".udex-masthead-shell__item_icon")];
|
|
722
738
|
const itemIconWidths = itemsIcon.length * this.getItemIconWidth();
|
|
723
739
|
const itemIconGaps = itemsIcon.length * this.getItemIconGap();
|
|
724
|
-
const
|
|
740
|
+
const exploreItem = this.exploreSAP[0];
|
|
741
|
+
const exploreItemIconWidth = exploreItem.hasArrowDown ? this.getItemArrowIconWidth() : 0;
|
|
742
|
+
const exploreSAPWidth = this.hasExploreSAP ? this.getItemWidth(exploreItem) : 0;
|
|
725
743
|
const rightMenuGaps = this.getRightMenuGap() + this.getExploreSapBtnGap() + itemIconGaps;
|
|
726
|
-
return exploreSAPWidth + itemIconWidths + rightMenuGaps;
|
|
744
|
+
return exploreSAPWidth + exploreItemIconWidth + itemIconWidths + rightMenuGaps;
|
|
727
745
|
}
|
|
728
746
|
|
|
729
|
-
|
|
747
|
+
getItemIconSize(cssVariableName: string): number {
|
|
730
748
|
const item = this.querySelector("[udex-masthead-item]");
|
|
731
749
|
|
|
732
|
-
if (!item) {
|
|
750
|
+
if (!item) {
|
|
751
|
+
return 0;
|
|
752
|
+
}
|
|
733
753
|
|
|
734
754
|
const style = window.getComputedStyle(item);
|
|
735
|
-
const
|
|
736
|
-
return parseInt(
|
|
755
|
+
const iconSizeVar = style.getPropertyValue(cssVariableName);
|
|
756
|
+
return parseInt(iconSizeVar);
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
getItemIconWidth(): number {
|
|
760
|
+
return this.getItemIconSize(UDExMastheadVariable.itemButtonIconSize);
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
getItemArrowIconWidth(): number {
|
|
764
|
+
return this.getItemIconSize(UDExMastheadVariable.itemArrowIconSize);
|
|
737
765
|
}
|
|
738
766
|
|
|
739
767
|
getMainMenuWidth(): number {
|
|
740
768
|
const mainItems = this.getSlottedNodes("menuItems");
|
|
741
|
-
const gapItemVar = this.getRootVar(
|
|
769
|
+
const gapItemVar = this.getRootVar(UDExMastheadVariable.itemGap);
|
|
742
770
|
return mainItems.reduce((accumulatedWidth, item, index) => {
|
|
743
|
-
|
|
771
|
+
const mainItem = item as UDExMastheadItem;
|
|
772
|
+
const arrowIconWidth = mainItem.hasArrowDown ? this.getItemArrowIconWidth() : 0;
|
|
773
|
+
return accumulatedWidth + this.getItemWidth(mainItem) + (index && parseInt(gapItemVar) + arrowIconWidth);
|
|
744
774
|
}, 0);
|
|
745
775
|
}
|
|
746
776
|
|
|
@@ -760,17 +790,17 @@ class UDExMastheadShell extends UI5Element {
|
|
|
760
790
|
}
|
|
761
791
|
|
|
762
792
|
getItemIconGap(): number {
|
|
763
|
-
const gapIconItemVar = this.getRootVar(
|
|
793
|
+
const gapIconItemVar = this.getRootVar(UDExMastheadVariable.itemIconGap);
|
|
764
794
|
return parseInt(gapIconItemVar);
|
|
765
795
|
}
|
|
766
796
|
|
|
767
797
|
getExploreSapBtnGap(): number {
|
|
768
|
-
const exploreSapBtnGapVar = this.getRootVar(
|
|
798
|
+
const exploreSapBtnGapVar = this.getRootVar(UDExMastheadVariable.exploreMargin);
|
|
769
799
|
return this.hasExploreSAP ? parseInt(exploreSapBtnGapVar) : 0;
|
|
770
800
|
}
|
|
771
801
|
|
|
772
802
|
getRightMenuGap(): number {
|
|
773
|
-
const rightMenuGapVar = this.getRootVar(
|
|
803
|
+
const rightMenuGapVar = this.getRootVar(UDExMastheadVariable.rightMenuPadding);
|
|
774
804
|
return parseInt(rightMenuGapVar);
|
|
775
805
|
}
|
|
776
806
|
|
|
@@ -803,9 +833,9 @@ class UDExMastheadShell extends UI5Element {
|
|
|
803
833
|
}
|
|
804
834
|
|
|
805
835
|
setMobileMenuHeight(): void {
|
|
806
|
-
const mastheadHeight = parseInt(window.getComputedStyle(this).getPropertyValue(
|
|
836
|
+
const mastheadHeight = parseInt(window.getComputedStyle(this).getPropertyValue(UDExMastheadVariable.mastheadHeight));
|
|
807
837
|
const mobileMenuHeight = `${window.innerHeight - mastheadHeight}px`;
|
|
808
|
-
this.style.setProperty(
|
|
838
|
+
this.style.setProperty(UDExMastheadVariable.mobileMenuHeight, mobileMenuHeight);
|
|
809
839
|
}
|
|
810
840
|
|
|
811
841
|
removeMobileMode(): void {
|
|
@@ -815,6 +845,10 @@ class UDExMastheadShell extends UI5Element {
|
|
|
815
845
|
});
|
|
816
846
|
}
|
|
817
847
|
|
|
848
|
+
updateVisibility(): void {
|
|
849
|
+
this.style.opacity = this.isVisible ? "1" : "0";
|
|
850
|
+
}
|
|
851
|
+
|
|
818
852
|
fireMastheadEvent(eventName: keyof this["eventDetails"], e?: PointerEvent): void {
|
|
819
853
|
const eventDetails = {
|
|
820
854
|
analyticsName: AnalyticsName.Header,
|
|
@@ -997,17 +1031,32 @@ class UDExMastheadShell extends UI5Element {
|
|
|
997
1031
|
return this.showSearchByDefault || this._isSearchOpened;
|
|
998
1032
|
}
|
|
999
1033
|
|
|
1034
|
+
get isVisible(): boolean {
|
|
1035
|
+
return this.isMobileMenuMode || !this.menuItems.length || this._isVisible;
|
|
1036
|
+
}
|
|
1037
|
+
|
|
1000
1038
|
get shouldHandleMobileView(): boolean {
|
|
1001
|
-
return !this.isAtMostBreakpointSizeM &&
|
|
1039
|
+
return !this.isAtMostBreakpointSizeM && this.isMainMenuVisible;
|
|
1002
1040
|
}
|
|
1003
1041
|
|
|
1004
1042
|
get mainNavigationAriaLabel(): string {
|
|
1005
1043
|
return UDExMastheadShell.i18nBundle.getText(MAIN_LINKS);
|
|
1006
1044
|
}
|
|
1007
1045
|
|
|
1046
|
+
get isSimpleExploreMode(): boolean {
|
|
1047
|
+
return !this.hasSearch && !this.hasProfile && !this.hasCart && !this.hasSupport && !this.hasCountrySelector;
|
|
1048
|
+
}
|
|
1049
|
+
|
|
1050
|
+
get rightMenuClass(): string {
|
|
1051
|
+
const root = "udex-masthead-shell__right-menu";
|
|
1052
|
+
const simpleExploreClass = this.isSimpleExploreMode ? `${root}_simple-explore` : "";
|
|
1053
|
+
return `${root} ${simpleExploreClass}`.trim();
|
|
1054
|
+
}
|
|
1055
|
+
|
|
1008
1056
|
get mainClass(): string {
|
|
1009
|
-
const
|
|
1010
|
-
|
|
1057
|
+
const root = "udex-masthead-shell";
|
|
1058
|
+
const coBrandWithoutNavClass = (!!this.coBrandImage && !this.menuItems.length) ? `${root}_co-brand-without-nav` : "";
|
|
1059
|
+
return `${root} ${coBrandWithoutNavClass}`.trim();
|
|
1011
1060
|
}
|
|
1012
1061
|
}
|
|
1013
1062
|
|
package/src/Modal.ts
CHANGED
|
@@ -5,10 +5,10 @@ import Dialog from "@ui5/webcomponents/dist/Dialog.js";
|
|
|
5
5
|
import Popup from "@ui5/webcomponents/dist/Popup.js";
|
|
6
6
|
|
|
7
7
|
// Styles
|
|
8
|
-
import getEffectiveScrollbarStyle from "@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js";
|
|
9
8
|
import PopupsCommonCss from "@ui5/webcomponents/dist/generated/themes/PopupsCommon.css.js";
|
|
10
9
|
import dialogCSS from "@ui5/webcomponents/dist/generated/themes/Dialog.css.js";
|
|
11
10
|
import ModalCss from "./generated/themes/Modal.css.js";
|
|
11
|
+
import getEffectiveScrollbarStyle from "./utils/getEffectiveScrollbarStyle.js";
|
|
12
12
|
|
|
13
13
|
export enum UDExModalType {
|
|
14
14
|
default = "default",
|
|
@@ -32,10 +32,10 @@ export enum UDExModalType {
|
|
|
32
32
|
renderer: jsxRenderer,
|
|
33
33
|
styles: [
|
|
34
34
|
Popup.styles,
|
|
35
|
-
getEffectiveScrollbarStyle(),
|
|
36
35
|
PopupsCommonCss,
|
|
37
36
|
dialogCSS,
|
|
38
37
|
ModalCss,
|
|
38
|
+
getEffectiveScrollbarStyle(),
|
|
39
39
|
],
|
|
40
40
|
})
|
|
41
41
|
class UDExModal extends Dialog {
|
package/src/Search.hbs
CHANGED
package/src/Search.ts
CHANGED
|
@@ -19,7 +19,6 @@ import {
|
|
|
19
19
|
isSpace,
|
|
20
20
|
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
21
21
|
import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
|
|
22
|
-
import Button from "@ui5/webcomponents/dist/Button.js";
|
|
23
22
|
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
24
23
|
import List from "./List.js";
|
|
25
24
|
import ControlButton from "./ControlButton.js";
|
|
@@ -45,13 +44,15 @@ import {
|
|
|
45
44
|
OF,
|
|
46
45
|
} from "./generated/i18n/i18n-defaults.js";
|
|
47
46
|
import type SearchInputSuggestion from "./features/SearchSuggestionsPopover.js";
|
|
47
|
+
import retryUntilSuccessful from "./utils/retryUntilSuccessful.js";
|
|
48
|
+
import UDExButton from "./Button.js";
|
|
48
49
|
|
|
49
50
|
import SearchTemplate from "./generated/templates/SearchTemplate.lit.js";
|
|
50
51
|
|
|
51
52
|
// Styles
|
|
52
53
|
import SearchCss from "./generated/themes/Search.css.js";
|
|
53
54
|
import SearchSuggestionsCss from "./generated/themes/SearchSuggestions.css.js";
|
|
54
|
-
import
|
|
55
|
+
import getEffectiveScrollbarStyle from "./utils/getEffectiveScrollbarStyle.js";
|
|
55
56
|
|
|
56
57
|
const SearchIcon: string = "sap-icon://search";
|
|
57
58
|
|
|
@@ -129,11 +130,11 @@ export type UDExSearchKeydownEventDetail = {
|
|
|
129
130
|
@customElement({
|
|
130
131
|
tag: "udex-search",
|
|
131
132
|
renderer: litRender,
|
|
132
|
-
styles: [SearchCss, SearchSuggestionsCss],
|
|
133
|
+
styles: [SearchCss, SearchSuggestionsCss, getEffectiveScrollbarStyle()],
|
|
133
134
|
template: SearchTemplate,
|
|
134
135
|
get dependencies() {
|
|
135
136
|
const Suggestion = getFeature<typeof SearchInputSuggestion>("SearchInputSuggestion");
|
|
136
|
-
return ([ControlButton,
|
|
137
|
+
return ([ControlButton, UDExButton, Icon, List, Popover] as Array<typeof UI5Element>).concat(Suggestion ? [...Suggestion.dependencies] : []);
|
|
137
138
|
},
|
|
138
139
|
})
|
|
139
140
|
|
|
@@ -8,13 +8,19 @@
|
|
|
8
8
|
non-interactive-submit-button
|
|
9
9
|
show-submit-button>
|
|
10
10
|
</udex-search>
|
|
11
|
+
<span
|
|
12
|
+
aria-live="polite"
|
|
13
|
+
aria-atomic="true"
|
|
14
|
+
class="hidden">
|
|
15
|
+
{{_accSearchResultInfo}}
|
|
16
|
+
</span>
|
|
11
17
|
{{/if}}
|
|
12
18
|
{{#if isListEmpty}}
|
|
13
19
|
<div class="udex-no-result"><span>{{getNoResultText}}‎</span></div>
|
|
14
20
|
{{else if busy}}
|
|
15
21
|
<ui5-busy-indicator
|
|
16
22
|
class="udex-busy-indicator"
|
|
17
|
-
size="
|
|
23
|
+
size="M"
|
|
18
24
|
delay="{{busyDelay}}"
|
|
19
25
|
active>
|
|
20
26
|
</ui5-busy-indicator>
|