@sapudex/web-components 2.56.0 → 2.58.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/README.md +258 -0
- package/cypress/specs/FilterMenu.cy.tsx +209 -19
- package/cypress/specs/List.cy.tsx +67 -4
- package/cypress/specs/ListItem.cy.tsx +35 -9
- package/cypress/specs/SelectBox.cy.tsx +100 -0
- package/cypress/specs/TabNavigation.cy.tsx +297 -21
- package/cypress/specs/TagGroup.cy.tsx +35 -0
- package/dist/Carousel.d.ts +9 -3
- package/dist/Carousel.js +35 -6
- package/dist/Carousel.js.map +1 -1
- package/dist/CarouselTemplate.js +3 -3
- package/dist/CarouselTemplate.js.map +1 -1
- package/dist/List.d.ts +15 -1
- package/dist/List.js +23 -2
- package/dist/List.js.map +1 -1
- package/dist/ListGroupHeaderBase.d.ts +13 -0
- package/dist/ListGroupHeaderBase.js +43 -2
- package/dist/ListGroupHeaderBase.js.map +1 -1
- package/dist/ListGroupHeaderTemplate.js +26 -7
- package/dist/ListGroupHeaderTemplate.js.map +1 -1
- package/dist/ListItem.d.ts +0 -3
- package/dist/ListItem.js +18 -12
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItemBase.d.ts +17 -0
- package/dist/ListItemBase.js +15 -0
- package/dist/ListItemBase.js.map +1 -1
- package/dist/ListItemTemplate.js +2 -2
- package/dist/ListItemTemplate.js.map +1 -1
- package/dist/MastheadCountrySelector.js +5 -5
- package/dist/MastheadCountrySelector.js.map +1 -1
- package/dist/MastheadCountrySelectorTemplate.d.ts +2 -0
- package/dist/MastheadCountrySelectorTemplate.js +15 -0
- package/dist/MastheadCountrySelectorTemplate.js.map +1 -0
- package/dist/MastheadItem.d.ts +0 -3
- package/dist/MastheadItem.js +3 -6
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadItemTemplate.d.ts +2 -0
- package/dist/MastheadItemTemplate.js +41 -0
- package/dist/MastheadItemTemplate.js.map +1 -0
- package/dist/MastheadMenu.d.ts +1 -0
- package/dist/MastheadMenu.js +4 -6
- package/dist/MastheadMenu.js.map +1 -1
- package/dist/MastheadMenuItem.d.ts +0 -3
- package/dist/MastheadMenuItem.js +3 -6
- package/dist/MastheadMenuItem.js.map +1 -1
- package/dist/MastheadMenuItemTemplate.d.ts +2 -0
- package/dist/MastheadMenuItemTemplate.js +36 -0
- package/dist/MastheadMenuItemTemplate.js.map +1 -0
- package/dist/MastheadMenuTemplate.d.ts +2 -0
- package/dist/MastheadMenuTemplate.js +13 -0
- package/dist/MastheadMenuTemplate.js.map +1 -0
- package/dist/MastheadMobileMenu.js +3 -3
- package/dist/MastheadMobileMenu.js.map +1 -1
- package/dist/MastheadMobileMenuTemplate.d.ts +2 -0
- package/dist/MastheadMobileMenuTemplate.js +33 -0
- package/dist/MastheadMobileMenuTemplate.js.map +1 -0
- package/dist/MastheadProfileMenu.d.ts +2 -4
- package/dist/MastheadProfileMenu.js +5 -20
- package/dist/MastheadProfileMenu.js.map +1 -1
- package/dist/MastheadProfileMenuTemplate.d.ts +2 -0
- package/dist/MastheadProfileMenuTemplate.js +24 -0
- package/dist/MastheadProfileMenuTemplate.js.map +1 -0
- package/dist/MastheadShell.js +3 -5
- package/dist/MastheadShell.js.map +1 -1
- package/dist/MastheadShellTemplate.d.ts +2 -0
- package/dist/MastheadShellTemplate.js +20 -0
- package/dist/MastheadShellTemplate.js.map +1 -0
- package/dist/SearchableListBase.d.ts +10 -0
- package/dist/SearchableListBase.js +34 -1
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SearchableListBaseTemplate.js +35 -4
- package/dist/SearchableListBaseTemplate.js.map +1 -1
- package/dist/SecondaryNavigation.d.ts +1 -0
- package/dist/SecondaryNavigation.js +20 -6
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SelectBase.js +8 -3
- package/dist/SelectBase.js.map +1 -1
- package/dist/Tab.d.ts +0 -7
- package/dist/Tab.js +4 -19
- package/dist/Tab.js.map +1 -1
- package/dist/TabHeaderTemplate.d.ts +2 -0
- package/dist/TabHeaderTemplate.js +15 -0
- package/dist/TabHeaderTemplate.js.map +1 -0
- package/dist/TabInOverflowTemplate.d.ts +2 -0
- package/dist/TabInOverflowTemplate.js +7 -0
- package/dist/TabInOverflowTemplate.js.map +1 -0
- package/dist/TabNavigation.d.ts +6 -6
- package/dist/TabNavigation.js +56 -42
- package/dist/TabNavigation.js.map +1 -1
- package/dist/TabNavigationPopoverTemplate.d.ts +2 -0
- package/dist/TabNavigationPopoverTemplate.js +9 -0
- package/dist/TabNavigationPopoverTemplate.js.map +1 -0
- package/dist/TabNavigationTemplate.d.ts +2 -0
- package/dist/TabNavigationTemplate.js +10 -0
- package/dist/TabNavigationTemplate.js.map +1 -0
- package/dist/TabTemplate.d.ts +2 -0
- package/dist/TabTemplate.js +5 -0
- package/dist/TabTemplate.js.map +1 -0
- package/dist/Tag.d.ts +1 -0
- package/dist/Tag.js +6 -0
- package/dist/Tag.js.map +1 -1
- package/dist/TagGroup.js +4 -2
- package/dist/TagGroup.js.map +1 -1
- package/dist/assets/{InputSuggestions-ChhTxYh4.js → InputSuggestions-CMYjJsHw.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-Bh1HxZfH.js → ListItemStandardExpandableTextTemplate-D2i8wWuR.js} +1 -1
- package/dist/assets/{bundle.esm-DCX_ohoZ.js → bundle.esm-BjN47C_y.js} +242 -242
- package/dist/assets/messagebundle_ar-BvIvqOKJ.js +1 -0
- package/dist/assets/messagebundle_bg-CbE9TJP3.js +1 -0
- package/dist/assets/messagebundle_cs-D7sDCnrw.js +1 -0
- package/dist/assets/messagebundle_da-BKcG2gb3.js +1 -0
- package/dist/assets/messagebundle_de-CqojOAqG.js +1 -0
- package/dist/assets/messagebundle_el-DLfp0_Vm.js +1 -0
- package/dist/assets/messagebundle_en-B7YJOdQz.js +1 -0
- package/dist/assets/messagebundle_es-dcaagZn0.js +1 -0
- package/dist/assets/messagebundle_et-XYXhCdvm.js +1 -0
- package/dist/assets/messagebundle_fi-Dffg0zEq.js +1 -0
- package/dist/assets/messagebundle_fr-CW8ENL86.js +1 -0
- package/dist/assets/messagebundle_hr-onMgZwRd.js +1 -0
- package/dist/assets/messagebundle_hu-BPDuHAe0.js +1 -0
- package/dist/assets/messagebundle_it-BcfXVW1A.js +1 -0
- package/dist/assets/messagebundle_ja-EWp-Nkd9.js +1 -0
- package/dist/assets/messagebundle_ko-BKQ27UJW.js +1 -0
- package/dist/assets/messagebundle_lt-A-f2EeMY.js +1 -0
- package/dist/assets/messagebundle_lv-CHVU_rnx.js +1 -0
- package/dist/assets/messagebundle_nl-gmf1np1i.js +1 -0
- package/dist/assets/messagebundle_no-CazfcIRA.js +1 -0
- package/dist/assets/messagebundle_pl-iv_zMkL4.js +1 -0
- package/dist/assets/messagebundle_pt-usY49ESJ.js +1 -0
- package/dist/assets/messagebundle_pt_PT-DTLEUiTC.js +1 -0
- package/dist/assets/messagebundle_ro-BHeGIHaV.js +1 -0
- package/dist/assets/messagebundle_ru-DJB1z_R0.js +1 -0
- package/dist/assets/messagebundle_sk-DlNIpzr3.js +1 -0
- package/dist/assets/messagebundle_sl-Day075Cf.js +1 -0
- package/dist/assets/messagebundle_sr-iI_TwIHf.js +1 -0
- package/dist/assets/messagebundle_sv-BPj73b5X.js +1 -0
- package/dist/assets/messagebundle_tr-DpdBqQtI.js +1 -0
- package/dist/assets/messagebundle_uk-CT4EqEBF.js +1 -0
- package/dist/assets/messagebundle_zh_CN-B_42cWcu.js +1 -0
- package/dist/assets/messagebundle_zh_TW-D25iNCcy.js +1 -0
- package/dist/css/themes/Button.css +1 -1
- package/dist/css/themes/Carousel.css +1 -1
- package/dist/css/themes/ListGroupHeader.css +1 -1
- package/dist/css/themes/PromoTile.css +1 -1
- package/dist/css/themes/Switch.css +1 -1
- package/dist/css/themes/TabInOverflow.css +1 -1
- package/dist/css/themes/TabNavigation.css +1 -1
- package/dist/css/themes/Tooltip.css +1 -1
- package/dist/custom-elements-internal.json +12 -12
- package/dist/custom-elements.json +12 -12
- package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +3 -9
- package/dist/generated/i18n/i18n-defaults.js +3 -9
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/themes/Button.css.d.ts +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/Carousel.css.d.ts +1 -1
- package/dist/generated/themes/Carousel.css.js +1 -1
- package/dist/generated/themes/Carousel.css.js.map +1 -1
- package/dist/generated/themes/ListGroupHeader.css.d.ts +1 -1
- package/dist/generated/themes/ListGroupHeader.css.js +1 -1
- package/dist/generated/themes/ListGroupHeader.css.js.map +1 -1
- package/dist/generated/themes/PromoTile.css.d.ts +1 -1
- package/dist/generated/themes/PromoTile.css.js +1 -1
- package/dist/generated/themes/PromoTile.css.js.map +1 -1
- package/dist/generated/themes/Switch.css.d.ts +1 -1
- package/dist/generated/themes/Switch.css.js +1 -1
- package/dist/generated/themes/Switch.css.js.map +1 -1
- package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
- package/dist/generated/themes/TabInOverflow.css.js +1 -1
- package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
- package/dist/generated/themes/TabNavigation.css.d.ts +1 -1
- package/dist/generated/themes/TabNavigation.css.js +1 -1
- package/dist/generated/themes/TabNavigation.css.js.map +1 -1
- package/dist/generated/themes/Tooltip.css.d.ts +1 -1
- package/dist/generated/themes/Tooltip.css.js +1 -1
- package/dist/generated/themes/Tooltip.css.js.map +1 -1
- package/dist/messagebundle.properties +4 -10
- package/dist/messagebundle_ar.properties +0 -6
- package/dist/messagebundle_bg.properties +0 -8
- package/dist/messagebundle_cs.properties +0 -8
- package/dist/messagebundle_da.properties +0 -8
- package/dist/messagebundle_de.properties +0 -8
- package/dist/messagebundle_el.properties +0 -8
- package/dist/messagebundle_en.properties +2 -8
- package/dist/messagebundle_es.properties +0 -8
- package/dist/messagebundle_et.properties +0 -8
- package/dist/messagebundle_fi.properties +0 -8
- package/dist/messagebundle_fr.properties +0 -8
- package/dist/messagebundle_hr.properties +0 -8
- package/dist/messagebundle_hu.properties +0 -8
- package/dist/messagebundle_it.properties +0 -8
- package/dist/messagebundle_ja.properties +0 -8
- package/dist/messagebundle_ko.properties +0 -8
- package/dist/messagebundle_lt.properties +0 -8
- package/dist/messagebundle_lv.properties +0 -8
- package/dist/messagebundle_nl.properties +0 -8
- package/dist/messagebundle_no.properties +0 -8
- package/dist/messagebundle_pl.properties +0 -8
- package/dist/messagebundle_pt.properties +0 -8
- package/dist/messagebundle_pt_PT.properties +0 -8
- package/dist/messagebundle_ro.properties +0 -8
- package/dist/messagebundle_ru.properties +0 -8
- package/dist/messagebundle_sk.properties +0 -8
- package/dist/messagebundle_sl.properties +0 -7
- package/dist/messagebundle_sr.properties +0 -8
- package/dist/messagebundle_sv.properties +0 -8
- package/dist/messagebundle_tr.properties +0 -8
- package/dist/messagebundle_uk.properties +0 -8
- package/dist/messagebundle_zh_CN.properties +0 -8
- package/dist/messagebundle_zh_TW.properties +0 -8
- package/dist/vscode.html-custom-data.json +10 -2
- package/dist/web-types.json +6 -6
- package/package.json +1 -1
- package/src/Carousel.ts +51 -8
- package/src/CarouselTemplate.tsx +7 -7
- package/src/List.ts +24 -2
- package/src/ListGroupHeaderBase.ts +44 -2
- package/src/ListGroupHeaderTemplate.tsx +74 -23
- package/src/ListItem.ts +18 -15
- package/src/ListItemBase.ts +30 -0
- package/src/ListItemTemplate.tsx +4 -4
- package/src/MastheadCountrySelector.ts +5 -5
- package/src/MastheadCountrySelectorTemplate.tsx +98 -0
- package/src/MastheadItem.ts +3 -6
- package/src/MastheadItemTemplate.tsx +178 -0
- package/src/MastheadMenu.ts +5 -6
- package/src/MastheadMenuItem.ts +3 -7
- package/src/MastheadMenuItemTemplate.tsx +123 -0
- package/src/MastheadMenuTemplate.tsx +142 -0
- package/src/MastheadMobileMenu.ts +3 -3
- package/src/MastheadMobileMenuTemplate.tsx +274 -0
- package/src/MastheadProfileMenu.ts +10 -23
- package/src/MastheadProfileMenuTemplate.tsx +143 -0
- package/src/MastheadShell.ts +3 -5
- package/src/MastheadShellTemplate.tsx +228 -0
- package/src/SearchableListBase.ts +37 -1
- package/src/SearchableListBaseTemplate.tsx +38 -2
- package/src/SecondaryNavigation.ts +21 -6
- package/src/SelectBase.ts +8 -3
- package/src/Tab.ts +4 -24
- package/src/TabHeaderTemplate.tsx +153 -0
- package/src/TabInOverflowTemplate.tsx +68 -0
- package/src/TabNavigation.ts +64 -46
- package/src/TabNavigationPopoverTemplate.tsx +27 -0
- package/src/TabNavigationTemplate.tsx +98 -0
- package/src/TabTemplate.tsx +7 -0
- package/src/Tag.ts +7 -0
- package/src/TagGroup.ts +4 -2
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/themes/Button.css.ts +1 -1
- package/src/generated/themes/Carousel.css.ts +1 -1
- package/src/generated/themes/ListGroupHeader.css.ts +1 -1
- package/src/generated/themes/PromoTile.css.ts +1 -1
- package/src/generated/themes/Switch.css.ts +1 -1
- package/src/generated/themes/TabInOverflow.css.ts +1 -1
- package/src/generated/themes/TabNavigation.css.ts +1 -1
- package/src/generated/themes/Tooltip.css.ts +1 -1
- package/src/i18n/messagebundle.properties +4 -10
- package/src/i18n/messagebundle_ar.properties +0 -6
- package/src/i18n/messagebundle_bg.properties +0 -8
- package/src/i18n/messagebundle_cs.properties +0 -8
- package/src/i18n/messagebundle_da.properties +0 -8
- package/src/i18n/messagebundle_de.properties +0 -8
- package/src/i18n/messagebundle_el.properties +0 -8
- package/src/i18n/messagebundle_en.properties +2 -8
- package/src/i18n/messagebundle_es.properties +0 -8
- package/src/i18n/messagebundle_et.properties +0 -8
- package/src/i18n/messagebundle_fi.properties +0 -8
- package/src/i18n/messagebundle_fr.properties +0 -8
- package/src/i18n/messagebundle_hr.properties +0 -8
- package/src/i18n/messagebundle_hu.properties +0 -8
- package/src/i18n/messagebundle_it.properties +0 -8
- package/src/i18n/messagebundle_ja.properties +0 -8
- package/src/i18n/messagebundle_ko.properties +0 -8
- package/src/i18n/messagebundle_lt.properties +0 -8
- package/src/i18n/messagebundle_lv.properties +0 -8
- package/src/i18n/messagebundle_nl.properties +0 -8
- package/src/i18n/messagebundle_no.properties +0 -8
- package/src/i18n/messagebundle_pl.properties +0 -8
- package/src/i18n/messagebundle_pt.properties +0 -8
- package/src/i18n/messagebundle_pt_PT.properties +0 -8
- package/src/i18n/messagebundle_ro.properties +0 -8
- package/src/i18n/messagebundle_ru.properties +0 -8
- package/src/i18n/messagebundle_sk.properties +0 -8
- package/src/i18n/messagebundle_sl.properties +0 -7
- package/src/i18n/messagebundle_sr.properties +0 -8
- package/src/i18n/messagebundle_sv.properties +0 -8
- package/src/i18n/messagebundle_tr.properties +0 -8
- package/src/i18n/messagebundle_uk.properties +0 -8
- package/src/i18n/messagebundle_zh_CN.properties +0 -8
- package/src/i18n/messagebundle_zh_TW.properties +0 -8
- package/src/themes/Button.css +2 -1
- package/src/themes/Carousel.css +17 -10
- package/src/themes/ListGroupHeader.css +50 -7
- package/src/themes/PromoTile.css +1 -0
- package/src/themes/Switch.css +2 -2
- package/src/themes/TabInOverflow.css +9 -4
- package/src/themes/TabNavigation.css +1 -0
- package/src/themes/Tooltip.css +5 -4
- package/dist/assets/messagebundle_ar-BUZ_gTvQ.js +0 -1
- package/dist/assets/messagebundle_bg-4ainC3nj.js +0 -1
- package/dist/assets/messagebundle_cs-CFtmLavu.js +0 -1
- package/dist/assets/messagebundle_da-BHL-qTPd.js +0 -1
- package/dist/assets/messagebundle_de-SMiMT-ST.js +0 -1
- package/dist/assets/messagebundle_el-ChAszJ4A.js +0 -1
- package/dist/assets/messagebundle_en-B0P3kkb6.js +0 -1
- package/dist/assets/messagebundle_es-LGmRBKqB.js +0 -1
- package/dist/assets/messagebundle_et-yYsmBPXN.js +0 -1
- package/dist/assets/messagebundle_fi-DeMNrHC9.js +0 -1
- package/dist/assets/messagebundle_fr-qEm5Eykz.js +0 -1
- package/dist/assets/messagebundle_hr-NBdiYo-T.js +0 -1
- package/dist/assets/messagebundle_hu-CBV3ISbF.js +0 -1
- package/dist/assets/messagebundle_it-BML2SC0W.js +0 -1
- package/dist/assets/messagebundle_ja-zyFfZHcj.js +0 -1
- package/dist/assets/messagebundle_ko-BCPaSqNp.js +0 -1
- package/dist/assets/messagebundle_lt-DB4b6FVx.js +0 -1
- package/dist/assets/messagebundle_lv-tAOia5tU.js +0 -1
- package/dist/assets/messagebundle_nl-BKUpVV-D.js +0 -1
- package/dist/assets/messagebundle_no-BZQfeWxT.js +0 -1
- package/dist/assets/messagebundle_pl-CsXeN1y6.js +0 -1
- package/dist/assets/messagebundle_pt-D9rap3lj.js +0 -1
- package/dist/assets/messagebundle_pt_PT-CQ5YAsmx.js +0 -1
- package/dist/assets/messagebundle_ro-BTNJ9YdP.js +0 -1
- package/dist/assets/messagebundle_ru-BTDmH8CB.js +0 -1
- package/dist/assets/messagebundle_sk-Lb4jvtpc.js +0 -1
- package/dist/assets/messagebundle_sl-BZi2bKSy.js +0 -1
- package/dist/assets/messagebundle_sr-B9TYgxO1.js +0 -1
- package/dist/assets/messagebundle_sv-DWlY9RTQ.js +0 -1
- package/dist/assets/messagebundle_tr-DOeCmUdx.js +0 -1
- package/dist/assets/messagebundle_uk-CCv57GhV.js +0 -1
- package/dist/assets/messagebundle_zh_CN-CHwH3F3-.js +0 -1
- package/dist/assets/messagebundle_zh_TW-FO0BCkub.js +0 -1
- package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js +0 -13
- package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js.map +0 -1
- package/dist/generated/templates/MastheadItemTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/MastheadItemTemplate.lit.js +0 -43
- package/dist/generated/templates/MastheadItemTemplate.lit.js.map +0 -1
- package/dist/generated/templates/MastheadMenuItemTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/MastheadMenuItemTemplate.lit.js +0 -21
- package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +0 -1
- package/dist/generated/templates/MastheadMenuTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/MastheadMenuTemplate.lit.js +0 -25
- package/dist/generated/templates/MastheadMenuTemplate.lit.js.map +0 -1
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +0 -37
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +0 -1
- package/dist/generated/templates/MastheadProfileMenuTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js +0 -18
- package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js.map +0 -1
- package/dist/generated/templates/MastheadShellTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/MastheadShellTemplate.lit.js +0 -28
- package/dist/generated/templates/MastheadShellTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TabHeaderTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TabHeaderTemplate.lit.js +0 -52
- package/dist/generated/templates/TabHeaderTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TabInOverflowTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TabInOverflowTemplate.lit.js +0 -15
- package/dist/generated/templates/TabInOverflowTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TabNavigationPopoverTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js +0 -8
- package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TabNavigationTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TabNavigationTemplate.lit.js +0 -16
- package/dist/generated/templates/TabNavigationTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TabTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TabTemplate.lit.js +0 -7
- package/dist/generated/templates/TabTemplate.lit.js.map +0 -1
- package/src/MastheadCountrySelector.hbs +0 -76
- package/src/MastheadItem.hbs +0 -136
- package/src/MastheadMenu.hbs +0 -131
- package/src/MastheadMenuItem.hbs +0 -102
- package/src/MastheadMobileMenu.hbs +0 -253
- package/src/MastheadProfileMenu.hbs +0 -121
- package/src/MastheadShell.hbs +0 -223
- package/src/Tab.hbs +0 -1
- package/src/TabHeader.hbs +0 -141
- package/src/TabInOverflow.hbs +0 -59
- package/src/TabNavigation.hbs +0 -86
- package/src/TabNavigationPopover.hbs +0 -18
- package/src/generated/templates/MastheadCountrySelectorTemplate.lit.ts +0 -17
- package/src/generated/templates/MastheadItemTemplate.lit.ts +0 -47
- package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +0 -25
- package/src/generated/templates/MastheadMenuTemplate.lit.ts +0 -29
- package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +0 -41
- package/src/generated/templates/MastheadProfileMenuTemplate.lit.ts +0 -22
- package/src/generated/templates/MastheadShellTemplate.lit.ts +0 -32
- package/src/generated/templates/TabHeaderTemplate.lit.ts +0 -56
- package/src/generated/templates/TabInOverflowTemplate.lit.ts +0 -19
- package/src/generated/templates/TabNavigationPopoverTemplate.lit.ts +0 -12
- package/src/generated/templates/TabNavigationTemplate.lit.ts +0 -20
- package/src/generated/templates/TabTemplate.lit.ts +0 -11
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import type UDExMastheadMenu from "./MastheadMenu.js";
|
|
2
|
+
import type { SubMenuLinkItem } from "./MastheadMenu.js";
|
|
3
|
+
import UDExMastheadMenuItem from "./MastheadMenuItem.js";
|
|
4
|
+
import UDExDivider from "./Divider.js";
|
|
5
|
+
|
|
6
|
+
export default function MastheadMenuTemplate(this: UDExMastheadMenu) {
|
|
7
|
+
return (
|
|
8
|
+
<div
|
|
9
|
+
class={`udex-masthead-menu ${this.oneRowClass}`}
|
|
10
|
+
part="menu"
|
|
11
|
+
onKeyDown={this.handleKeyDown}>
|
|
12
|
+
{this.menuTitle && (
|
|
13
|
+
<div class="udex-masthead-menu__title">{this.menuTitle}</div>
|
|
14
|
+
)}
|
|
15
|
+
{this.itemsList.map((mainItem, index) => (
|
|
16
|
+
<div class="udex-masthead-menu__row" key={index}>
|
|
17
|
+
{mainItem.subMenuLinkItems.map(subMenu => (
|
|
18
|
+
<div class="udex-masthead-menu__column" part="column" key={subMenu.categoryId}>
|
|
19
|
+
{subMenu.category && header.call(this, subMenu)}
|
|
20
|
+
{list.call(this, subMenu)}
|
|
21
|
+
</div>
|
|
22
|
+
))}
|
|
23
|
+
</div>
|
|
24
|
+
))}
|
|
25
|
+
</div>
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function header(this: UDExMastheadMenu, subMenu: SubMenuLinkItem) {
|
|
30
|
+
return (
|
|
31
|
+
<div class="udex-masthead-menu__header">
|
|
32
|
+
{subMenu.url ? (
|
|
33
|
+
this._isMobileMode ? (
|
|
34
|
+
<>
|
|
35
|
+
<UDExMastheadMenuItem
|
|
36
|
+
id={`category-${subMenu.categoryId}`}
|
|
37
|
+
type="Heading"
|
|
38
|
+
part="menu-item"
|
|
39
|
+
exportparts="menu-item"
|
|
40
|
+
label={subMenu.category}
|
|
41
|
+
has-border={true}>
|
|
42
|
+
</UDExMastheadMenuItem>
|
|
43
|
+
<UDExMastheadMenuItem
|
|
44
|
+
part="menu-item"
|
|
45
|
+
accessible-role="link"
|
|
46
|
+
exportparts="menu-item"
|
|
47
|
+
label={this.overviewHeaderLinkText}
|
|
48
|
+
url={subMenu.url}
|
|
49
|
+
has-border={true}>
|
|
50
|
+
</UDExMastheadMenuItem>
|
|
51
|
+
</>
|
|
52
|
+
) : (
|
|
53
|
+
<UDExMastheadMenuItem
|
|
54
|
+
id={`category-${subMenu.categoryId}`}
|
|
55
|
+
type="Heading"
|
|
56
|
+
part="menu-item"
|
|
57
|
+
exportparts="menu-item"
|
|
58
|
+
accessible-role="link"
|
|
59
|
+
onClick={this.handleMenuItemClick as any}
|
|
60
|
+
url={subMenu.url}
|
|
61
|
+
label={subMenu.category}
|
|
62
|
+
icon-end={true}
|
|
63
|
+
has-border={true}>
|
|
64
|
+
</UDExMastheadMenuItem>
|
|
65
|
+
)
|
|
66
|
+
) : (
|
|
67
|
+
<UDExMastheadMenuItem
|
|
68
|
+
id={`category-${subMenu.categoryId}`}
|
|
69
|
+
type="Heading"
|
|
70
|
+
part="menu-item"
|
|
71
|
+
exportparts="menu-item"
|
|
72
|
+
label={subMenu.category}
|
|
73
|
+
has-border={true}>
|
|
74
|
+
</UDExMastheadMenuItem>
|
|
75
|
+
)}
|
|
76
|
+
</div>
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
function list(this: UDExMastheadMenu, subMenu: SubMenuLinkItem) {
|
|
81
|
+
return (
|
|
82
|
+
<ul
|
|
83
|
+
class="udex-masthead-menu__list"
|
|
84
|
+
aria-labelledby={`category-${subMenu.categoryId}`}
|
|
85
|
+
{...{ category: subMenu.category }}>
|
|
86
|
+
{subMenu.items.map((item, index) => (
|
|
87
|
+
<li key={index}>
|
|
88
|
+
{item.isDivider ? (
|
|
89
|
+
<UDExDivider class="udex-masthead-menu__item-divider"></UDExDivider>
|
|
90
|
+
) : item.subItems ? (
|
|
91
|
+
<>
|
|
92
|
+
{item.url ? (
|
|
93
|
+
<UDExMastheadMenuItem
|
|
94
|
+
part="menu-item"
|
|
95
|
+
accessible-role="link"
|
|
96
|
+
exportparts="menu-item"
|
|
97
|
+
onClick={this.handleMenuItemClick as any}
|
|
98
|
+
url={item.url}
|
|
99
|
+
label={item.title}
|
|
100
|
+
class="udex-masthead-menu__sub-category">
|
|
101
|
+
</UDExMastheadMenuItem>
|
|
102
|
+
) : (
|
|
103
|
+
<span class="udex-masthead-menu__sub-category">{item.title}</span>
|
|
104
|
+
)}
|
|
105
|
+
<ul class="udex-masthead-menu__sub-list" aria-label={item.title}>
|
|
106
|
+
{item.subItems.map((subItem, subIndex) => (
|
|
107
|
+
<li key={subIndex}>
|
|
108
|
+
{subItem.isDivider ? (
|
|
109
|
+
<UDExDivider class="udex-masthead-menu__item-divider"></UDExDivider>
|
|
110
|
+
) : (
|
|
111
|
+
<UDExMastheadMenuItem
|
|
112
|
+
part="menu-item"
|
|
113
|
+
accessible-role="link"
|
|
114
|
+
exportparts="badge"
|
|
115
|
+
onClick={this.handleMenuItemClick as any}
|
|
116
|
+
badge={subItem.badge}
|
|
117
|
+
external-link={subItem.externalLink}
|
|
118
|
+
url={subItem.url}
|
|
119
|
+
label={subItem.title}>
|
|
120
|
+
</UDExMastheadMenuItem>
|
|
121
|
+
)}
|
|
122
|
+
</li>
|
|
123
|
+
))}
|
|
124
|
+
</ul>
|
|
125
|
+
</>
|
|
126
|
+
) : (
|
|
127
|
+
<UDExMastheadMenuItem
|
|
128
|
+
part="menu-item"
|
|
129
|
+
accessible-role="link"
|
|
130
|
+
exportparts="badge"
|
|
131
|
+
onClick={this.handleMenuItemClick as any}
|
|
132
|
+
badge={item.badge}
|
|
133
|
+
external-link={item.externalLink}
|
|
134
|
+
url={item.url}
|
|
135
|
+
label={item.title}>
|
|
136
|
+
</UDExMastheadMenuItem>
|
|
137
|
+
)}
|
|
138
|
+
</li>
|
|
139
|
+
))}
|
|
140
|
+
</ul>
|
|
141
|
+
);
|
|
142
|
+
}
|
|
@@ -2,7 +2,7 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
|
2
2
|
import type { DefaultSlot, Slot } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
3
3
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
4
4
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
5
|
-
import
|
|
5
|
+
import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
|
|
6
6
|
import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
7
7
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
8
8
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
@@ -16,7 +16,7 @@ import type UDExSearch from "./Search.js";
|
|
|
16
16
|
import UDExMastheadMenuItem, { UDExItemType } from "./MastheadMenuItem.js";
|
|
17
17
|
import { OVERVIEW } from "./generated/i18n/i18n-defaults.js";
|
|
18
18
|
import AnalyticsName from "./types/AnalyticsName.js";
|
|
19
|
-
import MastheadMobileMenuTemplate from "./
|
|
19
|
+
import MastheadMobileMenuTemplate from "./MastheadMobileMenuTemplate.js";
|
|
20
20
|
import type UDExMastheadShell from "./MastheadShell.js";
|
|
21
21
|
import translate from "./utils/translate.js";
|
|
22
22
|
|
|
@@ -62,7 +62,7 @@ type UDExMastheadMobileMenuExploreClickEventDetail = {
|
|
|
62
62
|
*/
|
|
63
63
|
@customElement({
|
|
64
64
|
tag: "udex-masthead-mobile-menu",
|
|
65
|
-
renderer:
|
|
65
|
+
renderer: jsxRenderer,
|
|
66
66
|
styles: MastheadMobileMenuCss,
|
|
67
67
|
template: MastheadMobileMenuTemplate,
|
|
68
68
|
dependencies: [UDExMastheadMenuItem],
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import UDExMastheadMenuItem from "./MastheadMenuItem.js";
|
|
2
|
+
import type UDExMastheadMobileMenu from "./MastheadMobileMenu.js";
|
|
3
|
+
import type { CategoryItem, SubMenuLinkItem } from "./MastheadItem.js";
|
|
4
|
+
|
|
5
|
+
export default function MastheadMobileMenuTemplate(this: UDExMastheadMobileMenu) {
|
|
6
|
+
return (
|
|
7
|
+
<nav class="udex-masthead-mobile-menu">
|
|
8
|
+
<div class="udex-masthead-mobile-menu__nav-holder">
|
|
9
|
+
{this.hasSearchSlot && (
|
|
10
|
+
<div class="udex-masthead-mobile-menu__list-search">
|
|
11
|
+
<slot name="search"></slot>
|
|
12
|
+
</div>
|
|
13
|
+
)}
|
|
14
|
+
<ul class="udex-masthead-mobile-menu__list" role="menu" onKeyDown={this.handlePressKey}>
|
|
15
|
+
{this.showNavigation && navItems.call(this)}
|
|
16
|
+
{this._showCategories && (
|
|
17
|
+
<>
|
|
18
|
+
<li class="udex-masthead-mobile-menu__list-item" role="none">
|
|
19
|
+
{this._hideExploreSapBtn ? (
|
|
20
|
+
<UDExMastheadMenuItem
|
|
21
|
+
class="udex-masthead-mobile-menu__back-item"
|
|
22
|
+
part="menu-item"
|
|
23
|
+
type="Button"
|
|
24
|
+
onClick={this.handleExploreBackToMenuItems as any}
|
|
25
|
+
label={this._clickedItem.innerText}
|
|
26
|
+
has-border={true}
|
|
27
|
+
icon-start={true}
|
|
28
|
+
{...{ "is-back": "", "is-explore-back": "" }}>
|
|
29
|
+
</UDExMastheadMenuItem>
|
|
30
|
+
) : this.isNotMultipleMode ? (
|
|
31
|
+
<UDExMastheadMenuItem
|
|
32
|
+
class="udex-masthead-mobile-menu__heading"
|
|
33
|
+
part="menu-item"
|
|
34
|
+
type="Heading"
|
|
35
|
+
label={this._clickedItem.innerText}
|
|
36
|
+
has-border={true}>
|
|
37
|
+
</UDExMastheadMenuItem>
|
|
38
|
+
) : (
|
|
39
|
+
<UDExMastheadMenuItem
|
|
40
|
+
class="udex-masthead-mobile-menu__back-item"
|
|
41
|
+
part="menu-item"
|
|
42
|
+
aria-haspopup="true"
|
|
43
|
+
type="Button"
|
|
44
|
+
onClick={this.handleBackToMenuItems as any}
|
|
45
|
+
label={this._clickedItem.innerText}
|
|
46
|
+
has-border={true}
|
|
47
|
+
icon-start={true}
|
|
48
|
+
{...{ "is-back": "", "is-back-to-nav": "" }}>
|
|
49
|
+
</UDExMastheadMenuItem>
|
|
50
|
+
)}
|
|
51
|
+
</li>
|
|
52
|
+
{categories.call(this)}
|
|
53
|
+
</>
|
|
54
|
+
)}
|
|
55
|
+
{this._showCategoryItems && (
|
|
56
|
+
<>
|
|
57
|
+
<li class="udex-masthead-mobile-menu__list-item" role="none">
|
|
58
|
+
<UDExMastheadMenuItem
|
|
59
|
+
class="udex-masthead-mobile-menu__back-item"
|
|
60
|
+
part="menu-item"
|
|
61
|
+
type="Button"
|
|
62
|
+
aria-haspopup="true"
|
|
63
|
+
onClick={this.handleBackToCategories as any}
|
|
64
|
+
label={this._category.category}
|
|
65
|
+
has-border={true}
|
|
66
|
+
icon-start={true}
|
|
67
|
+
{...{ "is-back": "", "is-back-to-categories": "" }}>
|
|
68
|
+
</UDExMastheadMenuItem>
|
|
69
|
+
</li>
|
|
70
|
+
{categoryItems.call(this)}
|
|
71
|
+
</>
|
|
72
|
+
)}
|
|
73
|
+
</ul>
|
|
74
|
+
</div>
|
|
75
|
+
{this.showExploreBtn && (
|
|
76
|
+
<UDExMastheadMenuItem
|
|
77
|
+
class="udex-masthead-mobile-menu__explore-btn"
|
|
78
|
+
part="menu-item"
|
|
79
|
+
type="Button"
|
|
80
|
+
aria-haspopup="true"
|
|
81
|
+
id={this.exploreItem._id}
|
|
82
|
+
onClick={this.handleExploreSapClick as any}
|
|
83
|
+
icon-end={true}
|
|
84
|
+
label={this.exploreItem.innerText}
|
|
85
|
+
{...{
|
|
86
|
+
"accessible-role-text": "button",
|
|
87
|
+
"first-level-btn": "",
|
|
88
|
+
"first-level": "",
|
|
89
|
+
"is-explore": "",
|
|
90
|
+
}}>
|
|
91
|
+
</UDExMastheadMenuItem>
|
|
92
|
+
)}
|
|
93
|
+
</nav>
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function navItems(this: UDExMastheadMobileMenu) {
|
|
98
|
+
return this.items.map((item, index) => (
|
|
99
|
+
<li class="udex-masthead-mobile-menu__list-item" role="none" key={index}>
|
|
100
|
+
{item.subItems ? (
|
|
101
|
+
<UDExMastheadMenuItem
|
|
102
|
+
part="menu-item"
|
|
103
|
+
type="Button"
|
|
104
|
+
aria-haspopup="true"
|
|
105
|
+
onClick={this.handleMenuItemClick as any}
|
|
106
|
+
label={item.innerText}
|
|
107
|
+
id={item._id}
|
|
108
|
+
has-border={true}
|
|
109
|
+
icon-end={true}
|
|
110
|
+
{...{ "first-level-btn": "", "first-level": "" }}>
|
|
111
|
+
</UDExMastheadMenuItem>
|
|
112
|
+
) : (
|
|
113
|
+
<UDExMastheadMenuItem
|
|
114
|
+
part="menu-item"
|
|
115
|
+
onClick={this.handleMobileItemEvent as any}
|
|
116
|
+
url={item.href}
|
|
117
|
+
label={item.innerText}
|
|
118
|
+
target={item.target}
|
|
119
|
+
has-border={true}
|
|
120
|
+
{...{ "first-level": "" }}>
|
|
121
|
+
</UDExMastheadMenuItem>
|
|
122
|
+
)}
|
|
123
|
+
</li>
|
|
124
|
+
));
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
function categories(this: UDExMastheadMobileMenu) {
|
|
128
|
+
return (
|
|
129
|
+
<>
|
|
130
|
+
{this._clickedItem.href && (
|
|
131
|
+
<li class="udex-masthead-mobile-menu__list-item" role="none">
|
|
132
|
+
<UDExMastheadMenuItem
|
|
133
|
+
part="menu-item"
|
|
134
|
+
url={this._clickedItem.href}
|
|
135
|
+
label={this.overviewLinkText}
|
|
136
|
+
onClick={this.handleMobileItemEvent as any}
|
|
137
|
+
has-border={true}
|
|
138
|
+
{...{ "second-level": "" }}>
|
|
139
|
+
</UDExMastheadMenuItem>
|
|
140
|
+
</li>
|
|
141
|
+
)}
|
|
142
|
+
{this._categories.map((category, index) => categoryEntry.call(this, category, index))}
|
|
143
|
+
</>
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
function categoryEntry(this: UDExMastheadMobileMenu, category: SubMenuLinkItem, index: number) {
|
|
148
|
+
if (category.items.length) {
|
|
149
|
+
if (category.category) {
|
|
150
|
+
return (
|
|
151
|
+
<li class="udex-masthead-mobile-menu__list-item" role="none" key={index}>
|
|
152
|
+
<UDExMastheadMenuItem
|
|
153
|
+
part="menu-item"
|
|
154
|
+
onClick={this.handleMenuCategoryClick as any}
|
|
155
|
+
id={`${index}`}
|
|
156
|
+
label={category.category}
|
|
157
|
+
aria-haspopup="true"
|
|
158
|
+
type="Button"
|
|
159
|
+
has-border={true}
|
|
160
|
+
icon-end={true}
|
|
161
|
+
{...{ "second-level-btn": "", "second-level": "" }}>
|
|
162
|
+
</UDExMastheadMenuItem>
|
|
163
|
+
</li>
|
|
164
|
+
);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
return category.items.map((item, itemIndex) => (
|
|
168
|
+
<li class="udex-masthead-mobile-menu__list-item" role="none" key={`${index}-${itemIndex}`}>
|
|
169
|
+
<UDExMastheadMenuItem
|
|
170
|
+
part="menu-item"
|
|
171
|
+
onClick={this.handleMobileItemEvent as any}
|
|
172
|
+
url={item.url}
|
|
173
|
+
label={item.title}
|
|
174
|
+
has-border={true}
|
|
175
|
+
{...{ "second-level": "" }}>
|
|
176
|
+
</UDExMastheadMenuItem>
|
|
177
|
+
</li>
|
|
178
|
+
));
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
return (
|
|
182
|
+
<li class="udex-masthead-mobile-menu__list-item" role="none" key={index}>
|
|
183
|
+
{category.url ? (
|
|
184
|
+
<UDExMastheadMenuItem
|
|
185
|
+
id={`${index}`}
|
|
186
|
+
onClick={this.handleMobileItemEvent as any}
|
|
187
|
+
label={category.category}
|
|
188
|
+
url={category.url}
|
|
189
|
+
part="menu-item"
|
|
190
|
+
type="Link"
|
|
191
|
+
has-border={true}
|
|
192
|
+
{...{ "second-level": "" }}>
|
|
193
|
+
</UDExMastheadMenuItem>
|
|
194
|
+
) : (
|
|
195
|
+
<UDExMastheadMenuItem
|
|
196
|
+
id={`${index}`}
|
|
197
|
+
onClick={this.handleMobileItemEvent as any}
|
|
198
|
+
label={category.category}
|
|
199
|
+
part="menu-item"
|
|
200
|
+
type="Button"
|
|
201
|
+
has-border={true}
|
|
202
|
+
{...{ "second-level": "" }}>
|
|
203
|
+
</UDExMastheadMenuItem>
|
|
204
|
+
)}
|
|
205
|
+
</li>
|
|
206
|
+
);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
function categoryItems(this: UDExMastheadMobileMenu) {
|
|
210
|
+
return (
|
|
211
|
+
<>
|
|
212
|
+
{this._category.url && (
|
|
213
|
+
<li class="udex-masthead-mobile-menu__list-item" role="none">
|
|
214
|
+
<UDExMastheadMenuItem
|
|
215
|
+
part="menu-item"
|
|
216
|
+
onClick={this.handleMobileCategoryItemEvent as any}
|
|
217
|
+
url={this._category.url}
|
|
218
|
+
label={this.overviewLinkText}
|
|
219
|
+
has-border={true}
|
|
220
|
+
{...{ "third-level": "" }}>
|
|
221
|
+
</UDExMastheadMenuItem>
|
|
222
|
+
</li>
|
|
223
|
+
)}
|
|
224
|
+
{this._category.items.map((item, index) => categoryItemEntry.call(this, item, index))}
|
|
225
|
+
</>
|
|
226
|
+
);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
function categoryItemEntry(this: UDExMastheadMobileMenu, item: CategoryItem, index: number) {
|
|
230
|
+
if (item.subItems) {
|
|
231
|
+
return (
|
|
232
|
+
<li class="udex-masthead-mobile-menu__list-item" role="none" key={index}>
|
|
233
|
+
{item.url ? (
|
|
234
|
+
<UDExMastheadMenuItem
|
|
235
|
+
class="udex-masthead-mobile-menu__sub-category"
|
|
236
|
+
part="menu-item"
|
|
237
|
+
onClick={this.handleMobileCategoryItemEvent as any}
|
|
238
|
+
label={item.title}
|
|
239
|
+
url={item.url}
|
|
240
|
+
{...{ "third-level": "" }}>
|
|
241
|
+
</UDExMastheadMenuItem>
|
|
242
|
+
) : (
|
|
243
|
+
<span class="udex-masthead-mobile-menu__sub-category">{item.title}</span>
|
|
244
|
+
)}
|
|
245
|
+
<ul class="udex-masthead-mobile-menu__sub-list" aria-label={item.title}>
|
|
246
|
+
{item.subItems.map((subItem, subIndex) => (subItem.url ? (
|
|
247
|
+
<li class="udex-masthead-mobile-menu__list-item" role="none" key={`${index}-${subIndex}`}>
|
|
248
|
+
<UDExMastheadMenuItem
|
|
249
|
+
part="menu-item"
|
|
250
|
+
onClick={this.handleMobileCategoryItemEvent as any}
|
|
251
|
+
label={subItem.title}
|
|
252
|
+
url={subItem.url}
|
|
253
|
+
{...{ "third-level": "" }}>
|
|
254
|
+
</UDExMastheadMenuItem>
|
|
255
|
+
</li>
|
|
256
|
+
) : undefined))}
|
|
257
|
+
</ul>
|
|
258
|
+
</li>
|
|
259
|
+
);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
return item.url ? (
|
|
263
|
+
<li class="udex-masthead-mobile-menu__list-item" role="none" key={index}>
|
|
264
|
+
<UDExMastheadMenuItem
|
|
265
|
+
part="menu-item"
|
|
266
|
+
onClick={this.handleMobileCategoryItemEvent as any}
|
|
267
|
+
label={item.title}
|
|
268
|
+
url={item.url}
|
|
269
|
+
has-border={true}
|
|
270
|
+
{...{ "third-level": "" }}>
|
|
271
|
+
</UDExMastheadMenuItem>
|
|
272
|
+
</li>
|
|
273
|
+
) : undefined;
|
|
274
|
+
}
|
|
@@ -4,7 +4,7 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
|
|
|
4
4
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
5
5
|
import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
6
6
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
7
|
-
import
|
|
7
|
+
import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
|
|
8
8
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
9
9
|
import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
|
|
10
10
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
@@ -12,24 +12,19 @@ import {
|
|
|
12
12
|
LOGOUT, SWITCH_ACCOUNT, BACK, OTHER_IDENTITIES, ADD_OR_REMOVE_ACCOUNT,
|
|
13
13
|
} from "./generated/i18n/i18n-defaults.js";
|
|
14
14
|
import { isEscape } from "@ui5/webcomponents-base/Keys.js";
|
|
15
|
-
import
|
|
16
|
-
import UDExButton from "./Button.js";
|
|
17
|
-
import UDExList from "./List.js";
|
|
18
|
-
import UDExLink from "./Link.js";
|
|
19
|
-
import UDExListItem from "./ListItem.js";
|
|
20
|
-
import UDExMastheadMenuItem from "./MastheadMenuItem.js";
|
|
21
|
-
import MastheadProfileMenuTemplate from "./generated/templates/MastheadProfileMenuTemplate.lit.js";
|
|
15
|
+
import MastheadProfileMenuTemplate from "./MastheadProfileMenuTemplate.js";
|
|
22
16
|
import parseArrayFromString from "./utils/parseArrayFromString.js";
|
|
17
|
+
import translate from "./utils/translate.js";
|
|
23
18
|
import AnalyticsName from "./types/AnalyticsName.js";
|
|
24
|
-
import
|
|
25
|
-
import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
|
|
26
|
-
import "@ui5/webcomponents-icons/dist/action.js";
|
|
27
|
-
import type { LinkClickEventDetail } from "@ui5/webcomponents/dist/Link.js";
|
|
19
|
+
import UDExMastheadMenu from "./MastheadMenu.js";
|
|
28
20
|
import UDExStatusBadgeValueState from "./types/StatusBadgeValueState.js";
|
|
29
|
-
import type { ResizeObserverCallback } from "@ui5/webcomponents-base/delegate/ResizeHandler.js";
|
|
30
21
|
import ResizeHandler from "@ui5/webcomponents-base/delegate/ResizeHandler.js";
|
|
31
22
|
import { BreakpointUtils } from "./utils/Breakpoints.js";
|
|
32
|
-
import
|
|
23
|
+
import type UDExMastheadShell from "./MastheadShell.js";
|
|
24
|
+
import type { LinkClickEventDetail } from "@ui5/webcomponents/dist/Link.js";
|
|
25
|
+
import type { ResizeObserverCallback } from "@ui5/webcomponents-base/delegate/ResizeHandler.js";
|
|
26
|
+
import type UDExButton from "./Button.js";
|
|
27
|
+
import type UDExMastheadMenuItem from "./MastheadMenuItem.js";
|
|
33
28
|
|
|
34
29
|
// Styles
|
|
35
30
|
import MastheadProfileMenuCss from "./generated/themes/MastheadProfileMenu.css.js";
|
|
@@ -91,17 +86,9 @@ type UDExMastheadProfileMenuAddOrRemoveClickEventDetail = {
|
|
|
91
86
|
*/
|
|
92
87
|
@customElement({
|
|
93
88
|
tag: "udex-masthead-profile-menu",
|
|
94
|
-
renderer:
|
|
89
|
+
renderer: jsxRenderer,
|
|
95
90
|
styles: [UDExMastheadMenu.styles, MastheadProfileMenuCss],
|
|
96
91
|
template: MastheadProfileMenuTemplate,
|
|
97
|
-
dependencies: [
|
|
98
|
-
UDExMastheadMenuItem,
|
|
99
|
-
UDExMastheadMenu,
|
|
100
|
-
UDExListItem,
|
|
101
|
-
UDExButton,
|
|
102
|
-
UDExList,
|
|
103
|
-
UDExLink,
|
|
104
|
-
],
|
|
105
92
|
})
|
|
106
93
|
|
|
107
94
|
/**
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import actionIcon from "@ui5/webcomponents-icons/dist/action.js";
|
|
2
|
+
import slimArrowRightIcon from "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
|
|
3
|
+
import UI5LinkDesign from "@ui5/webcomponents/types/LinkDesign.js";
|
|
4
|
+
import UDExAvatar, { UDExAvatarSize } from "./Avatar.js";
|
|
5
|
+
import UDExButton from "./Button.js";
|
|
6
|
+
import UDExLink from "./Link.js";
|
|
7
|
+
import UDExList from "./List.js";
|
|
8
|
+
import UDExListItem from "./ListItem.js";
|
|
9
|
+
import UDExMastheadMenu from "./MastheadMenu.js";
|
|
10
|
+
import UDExMastheadMenuItem from "./MastheadMenuItem.js";
|
|
11
|
+
import UDExButtonSize from "./types/ButtonSize.js";
|
|
12
|
+
import UDExButtonDesign from "./types/ButtonDesign.js";
|
|
13
|
+
import { UDExListMode } from "./types/List.js";
|
|
14
|
+
import type UDExMastheadProfileMenu from "./MastheadProfileMenu.js";
|
|
15
|
+
|
|
16
|
+
export default function MastheadProfileMenuTemplate(this: UDExMastheadProfileMenu) {
|
|
17
|
+
return (
|
|
18
|
+
<div onKeyDown={this.handleKeydown} class={this.rootClass}>
|
|
19
|
+
{this._openIdentities ? accountIdentities.call(this) : accountProfile.call(this)}
|
|
20
|
+
</div>
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function accountProfile(this: UDExMastheadProfileMenu) {
|
|
25
|
+
return (
|
|
26
|
+
<>
|
|
27
|
+
{this.hasUserData && (
|
|
28
|
+
<div class="udex-masthead-profile-menu__header">
|
|
29
|
+
<UDExAvatar
|
|
30
|
+
aria-hidden="true"
|
|
31
|
+
size={UDExAvatarSize.L}
|
|
32
|
+
initials={this.userData.avatarInitials}
|
|
33
|
+
fallback-icon={this.userData.fallbackIcon}>
|
|
34
|
+
{this.userData.avatarUrl && (
|
|
35
|
+
<img src={this.userData.avatarUrl} alt="avatar" />
|
|
36
|
+
)}
|
|
37
|
+
</UDExAvatar>
|
|
38
|
+
<div>
|
|
39
|
+
<p class="udex-profile-menu__account-name">{this.userData.name}</p>
|
|
40
|
+
<p class="udex-profile-menu__account-email">{this.userData.email}</p>
|
|
41
|
+
{this.hasIdentities && (
|
|
42
|
+
<UDExButton
|
|
43
|
+
onClick={this.handleSwitcherClick}
|
|
44
|
+
class="udex-masthead-profile-menu__btn-switcher"
|
|
45
|
+
size={UDExButtonSize.Large}
|
|
46
|
+
end-icon={slimArrowRightIcon}
|
|
47
|
+
design={UDExButtonDesign.Invisible}>
|
|
48
|
+
{this.switcherAccountText}
|
|
49
|
+
</UDExButton>
|
|
50
|
+
)}
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
53
|
+
)}
|
|
54
|
+
{this.messageAvailable && (
|
|
55
|
+
<div class="udex-masthead-profile-menu__message">
|
|
56
|
+
<slot name="message"></slot>
|
|
57
|
+
</div>
|
|
58
|
+
)}
|
|
59
|
+
<div class="udex-masthead-profile-menu__content">
|
|
60
|
+
<div
|
|
61
|
+
class="udex-masthead-profile-menu__links"
|
|
62
|
+
onScroll={this.handleProfileMenuShadowVisible}>
|
|
63
|
+
<UDExMastheadMenu
|
|
64
|
+
exportparts="badge, menu-item"
|
|
65
|
+
part="menu"
|
|
66
|
+
sub-items={this.linksList}
|
|
67
|
+
onui5-menu-item-click={this.handleProfileMenuItemClick}
|
|
68
|
+
{...{ "_scroll-into-view": "Center" }}>
|
|
69
|
+
</UDExMastheadMenu>
|
|
70
|
+
</div>
|
|
71
|
+
</div>
|
|
72
|
+
{this.hasActionButton && (
|
|
73
|
+
<div class="udex-masthead-profile-menu__actions">
|
|
74
|
+
{this.hasLogoutButton ? (
|
|
75
|
+
<div class="udex-masthead-profile-menu__btn">
|
|
76
|
+
<slot name="logoutButton"></slot>
|
|
77
|
+
</div>
|
|
78
|
+
) : (
|
|
79
|
+
<UDExLink
|
|
80
|
+
accessible-role="Link"
|
|
81
|
+
onClick={this.handleUserLogoutClick as any}
|
|
82
|
+
end-icon={actionIcon}
|
|
83
|
+
design={UI5LinkDesign.Default}
|
|
84
|
+
href={this.logoutUrl}>
|
|
85
|
+
{this.logoutText}
|
|
86
|
+
</UDExLink>
|
|
87
|
+
)}
|
|
88
|
+
</div>
|
|
89
|
+
)}
|
|
90
|
+
</>
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function accountIdentities(this: UDExMastheadProfileMenu) {
|
|
95
|
+
return (
|
|
96
|
+
<>
|
|
97
|
+
<div class="udex-masthead-profile-menu__header-wrap back-btn">
|
|
98
|
+
<UDExMastheadMenuItem
|
|
99
|
+
type="Button"
|
|
100
|
+
class="udex-masthead-profile-menu__btn-back"
|
|
101
|
+
onClick={this.handleSwitcherClick}
|
|
102
|
+
label={this.btnBackText}
|
|
103
|
+
icon-start={true}>
|
|
104
|
+
</UDExMastheadMenuItem>
|
|
105
|
+
<span class="udex-masthead-profile-menu__switcher-title">{this.switcherAccountText}</span>
|
|
106
|
+
</div>
|
|
107
|
+
<span class="udex-masthead-profile-menu__identities-list-title">{this.listTitleText}</span>
|
|
108
|
+
<div class="udex-masthead-profile-menu__identities-list-wrap">
|
|
109
|
+
{this.identitiesList.length > 0 && (
|
|
110
|
+
<UDExList
|
|
111
|
+
class="udex-masthead-profile-menu__identities-list"
|
|
112
|
+
mode={UDExListMode.SingleSelect}
|
|
113
|
+
accessible-name={this.listTitleText}
|
|
114
|
+
onScroll={this.handleIdentitiesListShadowVisible}
|
|
115
|
+
controlled={true}
|
|
116
|
+
{...{ "_scroll-into-view": "Center" }}>
|
|
117
|
+
{this.identitiesList.map((identity, index) => (
|
|
118
|
+
<UDExListItem
|
|
119
|
+
key={index}
|
|
120
|
+
id={identity.idsUser}
|
|
121
|
+
class="udex-masthead-profile-menu__identities-list-item"
|
|
122
|
+
onui5-item-press={this.fireEventIdentityItemClick}
|
|
123
|
+
image-badge-state={identity.statusBadge}
|
|
124
|
+
image={identity.avatarUrl}
|
|
125
|
+
image-alt={identity.name}
|
|
126
|
+
{...{ "supporting-text": identity.supportingText }}>
|
|
127
|
+
{identity.email}
|
|
128
|
+
</UDExListItem>
|
|
129
|
+
))}
|
|
130
|
+
</UDExList>
|
|
131
|
+
)}
|
|
132
|
+
</div>
|
|
133
|
+
<UDExButton
|
|
134
|
+
onClick={this.fireEventAddOrRemoveAccountClick as any}
|
|
135
|
+
class="udex-masthead-profile-menu__add-remove-btn"
|
|
136
|
+
design={UDExButtonDesign.Primary}
|
|
137
|
+
end-icon={actionIcon}
|
|
138
|
+
size={UDExButtonSize.Large}>
|
|
139
|
+
{this.addOrRemoveAccountText}
|
|
140
|
+
</UDExButton>
|
|
141
|
+
</>
|
|
142
|
+
);
|
|
143
|
+
}
|
package/src/MastheadShell.ts
CHANGED
|
@@ -5,7 +5,7 @@ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
|
5
5
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
6
6
|
import type { DefaultSlot, Slot, ChangeInfo } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
7
7
|
import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
8
|
-
import
|
|
8
|
+
import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
|
|
9
9
|
import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
10
10
|
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
11
11
|
import {
|
|
@@ -20,14 +20,13 @@ import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
|
20
20
|
import { MAIN_LINKS, SEARCH } from "./generated/i18n/i18n-defaults.js";
|
|
21
21
|
import UDExMastheadItem, { UDExMastheadDropdownItemAction } from "./MastheadItem.js";
|
|
22
22
|
import UDExMastheadMenu from "./MastheadMenu.js";
|
|
23
|
-
import UDExControlButton from "./ControlButton.js";
|
|
24
23
|
import type UDExSearch from "./Search.js";
|
|
25
24
|
import UDExMastheadMobileMenu from "./MastheadMobileMenu.js";
|
|
26
25
|
import type UDExMastheadProfileMenu from "./MastheadProfileMenu.js";
|
|
27
26
|
import type UDExMastheadCountrySelector from "./MastheadCountrySelector.js";
|
|
28
27
|
import { BreakpointUtils } from "./utils/Breakpoints.js";
|
|
29
28
|
import AnalyticsName from "./types/AnalyticsName.js";
|
|
30
|
-
import MastheadShellTemplate from "./
|
|
29
|
+
import MastheadShellTemplate from "./MastheadShellTemplate.js";
|
|
31
30
|
import translate from "./utils/translate.js";
|
|
32
31
|
import ensureSearchBackdropStyles from "./utils/searchBackdrop.js";
|
|
33
32
|
|
|
@@ -82,12 +81,11 @@ type UDExMastheadShellAnalyticsNameEventDetail = {
|
|
|
82
81
|
@customElement({
|
|
83
82
|
tag: "udex-masthead-shell",
|
|
84
83
|
languageAware: true,
|
|
85
|
-
renderer:
|
|
84
|
+
renderer: jsxRenderer,
|
|
86
85
|
styles: MastheadShellCss,
|
|
87
86
|
template: MastheadShellTemplate,
|
|
88
87
|
dependencies: [
|
|
89
88
|
UDExMastheadMobileMenu,
|
|
90
|
-
UDExControlButton,
|
|
91
89
|
UDExMastheadItem,
|
|
92
90
|
UDExMastheadMenu,
|
|
93
91
|
UI5Icon,
|