@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
package/dist/Tab.js
CHANGED
|
@@ -9,19 +9,16 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
|
9
9
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
10
10
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
11
11
|
import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
12
|
-
import
|
|
13
|
-
import executeTemplate from "@ui5/webcomponents-base/dist/renderer/executeTemplate.js";
|
|
12
|
+
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
14
13
|
import TabNavigation from "./TabNavigation.js";
|
|
15
14
|
import UDExBadge from "./Badge.js";
|
|
16
15
|
import { UDExTarget } from "./types/common.js";
|
|
17
|
-
import TabTemplate from "./
|
|
18
|
-
import TabHeaderTemplate from "./generated/templates/TabHeaderTemplate.lit.js";
|
|
19
|
-
import TabInOverflowTemplate from "./generated/templates/TabInOverflowTemplate.lit.js";
|
|
16
|
+
import TabTemplate from "./TabTemplate.js";
|
|
20
17
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
21
18
|
import { ATTENTION_BADGE } from "./generated/i18n/i18n-defaults.js";
|
|
19
|
+
import translate from "./utils/translate.js";
|
|
22
20
|
// Styles
|
|
23
21
|
import TabInOverflowCss from "./generated/themes/TabInOverflow.css.js";
|
|
24
|
-
import translate from "./utils/translate.js";
|
|
25
22
|
/**
|
|
26
23
|
* @class
|
|
27
24
|
*
|
|
@@ -177,18 +174,6 @@ let UDExTab = UDExTab_1 = class UDExTab extends UI5Element {
|
|
|
177
174
|
}
|
|
178
175
|
return "";
|
|
179
176
|
}
|
|
180
|
-
get tabNavigation() {
|
|
181
|
-
return executeTemplate(UDExTab_1.headerTemplate, this);
|
|
182
|
-
}
|
|
183
|
-
get tabInOverflow() {
|
|
184
|
-
return executeTemplate(UDExTab_1.overflowTemplate, this);
|
|
185
|
-
}
|
|
186
|
-
static get headerTemplate() {
|
|
187
|
-
return TabHeaderTemplate;
|
|
188
|
-
}
|
|
189
|
-
static get overflowTemplate() {
|
|
190
|
-
return TabInOverflowTemplate;
|
|
191
|
-
}
|
|
192
177
|
};
|
|
193
178
|
__decorate([
|
|
194
179
|
property({ type: String })
|
|
@@ -259,7 +244,7 @@ __decorate([
|
|
|
259
244
|
UDExTab = UDExTab_1 = __decorate([
|
|
260
245
|
customElement({
|
|
261
246
|
tag: "udex-tab",
|
|
262
|
-
renderer:
|
|
247
|
+
renderer: jsxRenderer,
|
|
263
248
|
template: TabTemplate,
|
|
264
249
|
dependencies: [UDExBadge],
|
|
265
250
|
})
|
package/dist/Tab.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tab.js","sourceRoot":"","sources":["../src/Tab.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot, Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport TabNavigation from \"./TabNavigation.js\";\nimport UDExBadge from \"./Badge.js\";\nimport { UDExTarget } from \"./types/common.js\";\nimport TabTemplate from \"./generated/templates/TabTemplate.lit.js\";\nimport TabHeaderTemplate from \"./generated/templates/TabHeaderTemplate.lit.js\";\nimport TabInOverflowTemplate from \"./generated/templates/TabInOverflowTemplate.lit.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { ATTENTION_BADGE } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport TabInOverflowCss from \"./generated/themes/TabInOverflow.css.js\";\nimport translate from \"./utils/translate.js\";\n\nexport interface ITab extends UI5Element {\n getTabInHeaderDomRef: () => ITab | null;\n disabled?: boolean;\n icon?: string;\n selected?: boolean;\n numberBadge?: string;\n text?: string;\n bodyText?: string;\n itemCountText?: string;\n showAttentionBadge?: boolean;\n accessibleName?: string;\n href?: string;\n content?: Array<Node>;\n link?: Array<HTMLElement>;\n hasIcon: boolean;\n isMobile: boolean;\n isOnSelectedTab: boolean;\n hasNotIcon: boolean;\n hasNotHref: boolean;\n hasLinkSlot: boolean;\n selectedClass: string;\n tabNavigation: any;\n _individualSlot: string;\n _effectiveSlotName: string;\n _slotName: string;\n _selected?: boolean;\n _tabIndex: string;\n _isMobile: boolean;\n _isVertical: boolean;\n _isProcessTab: boolean;\n _iconWithoutBackground: boolean;\n _posinset?: number;\n _setsize?: number;\n _contentId?: string;\n getElementInHeader?: () => ITab | null;\n _realTab?: UDExTab;\n _width?: string;\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-tab</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Tab.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-tab\n * @public\n */\n@customElement({\n tag: \"udex-tab\",\n renderer: litRender,\n template: TabTemplate,\n dependencies: [UDExBadge],\n})\n\nclass UDExTab extends UI5Element implements ITab {\n /**\n * Defines the Badge at the end of the Tab item.\n *\n * @public\n */\n @property({ type: String })\n numberBadge?: string;\n\n /**\n * Defines the text of tab.\n *\n * @public\n */\n @property({ type: String })\n text!: string;\n\n /**\n * Defines the body text (supplementary description) of the tab.\n * Optional text to provide additional context or explanation.\n *\n * @public\n */\n @property({ type: String })\n bodyText?: string;\n\n /**\n * Accessible name for tab.\n *\n * @public\n */\n @property({ type: String })\n accessibleName!: string;\n\n /**\n * Defines the selected tab.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n selected!: boolean;\n\n /**\n * Defines the displaying attention badge.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n showAttentionBadge!: boolean;\n\n /**\n * Defines the icon in the tab.\n *\n * @public\n */\n @property({ type: String })\n icon!: string;\n\n /**\n * Defines if the tab is disabled. A disabled tab is not clickable or focusable,\n * but remains reachable by screen readers via aria-disabled.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines the href of the tab.\n *\n * @public\n */\n @property({ type: String })\n href!: string;\n\n /**\n * Define the target of the tab\n *\n * @public\n */\n @property()\n target: `${UDExTarget}` = UDExTarget._self;\n\n /**\n * Defines the tab.\n *\n * @private\n */\n @property({ type: Object })\n _realTab!: UDExTab;\n\n /**\n * Defines the selected tab for private use.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean })\n _selected!: boolean;\n\n /**\n * Defines the tabindex of the tab.\n *\n * @private\n * @default false\n */\n @property({ type: String })\n _tabIndex!: string;\n\n /**\n * Defines if the viewport is mobile size.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean, noAttribute: true })\n _isMobile: boolean = false;\n\n /**\n * Defines if the tab navigation is in vertical orientation.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean, noAttribute: true })\n _isVertical: boolean = false;\n\n /**\n * Defines the width of the tab.\n *\n * @private\n */\n @property({ type: String, noAttribute: true })\n _width?: string;\n\n /**\n * Defines the item count text displayed above the tab label in Process Tab variant.\n * Only rendered when the tab navigation uses the Process Tab variant.\n *\n * @public\n */\n @property({ type: String })\n itemCountText?: string;\n\n /**\n * Defines the background color of the component.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean })\n _iconWithoutBackground!: boolean;\n\n /**\n * Defines if the tab navigation is in process-tab variant.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean, noAttribute: true })\n _isProcessTab: boolean = false;\n\n /**\n * Defines the content of the tab.\n *\n * @slot content\n * @public\n */\n @slot({ type: Node, \"default\": true })\n content!: DefaultSlot<Node>;\n\n /**\n * Defines the link(s) to be displayed in the tab header (vertical orientation only).\n * Use this slot to add one or more udex-link elements to the tab button.\n *\n * @slot link\n * @public\n */\n @slot({ type: HTMLElement })\n link!: Slot<HTMLElement>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n getElementInHeader?: () => ITab | null;\n _individualSlot!: string;\n\n getTabInHeaderDomRef(): ITab | null {\n if (this.getElementInHeader) {\n return this.getElementInHeader();\n }\n\n return null;\n }\n\n get ariaDisabled(): string | null {\n return this.disabled ? \"true\" : null;\n }\n\n get hasItemCountText(): boolean {\n return this._isProcessTab && !!this.itemCountText;\n }\n\n get effectiveItemCountText(): string {\n return this.itemCountText || \"0\";\n }\n\n get processTabClass(): string {\n return this._isProcessTab ? \" udex-tab-navigation__button-tab--process\" : \"\";\n }\n\n get isOnSelectedTab(): boolean {\n return this._realTab === this;\n }\n\n get _effectiveSlotName(): string {\n return this.isOnSelectedTab ? this._individualSlot : `disabled-${this._individualSlot}`;\n }\n\n get hasIcon(): boolean {\n return !!this.icon;\n }\n\n get classWithIcon(): string {\n return this.hasIcon ? \"udex-tab-navigation__button-text--icon\" : \"\";\n }\n\n get buttonClassWithIcon(): string {\n return this.hasIcon ? \" udex-tab-navigation__button-tab--icon\" : \"\";\n }\n\n get isMobile(): boolean {\n return this._isMobile;\n }\n\n get isMobileVertical(): boolean {\n return this._isMobile && this._isVertical;\n }\n\n get hasNotIcon(): boolean {\n return !this.icon && this.showAttentionBadge;\n }\n\n get hasNotHref(): boolean {\n return !this.href;\n }\n\n get hasBodyText(): boolean {\n return !!this.bodyText;\n }\n\n /**\n * Returns true if aria-describedby should point to bodyText.\n * Only applies to selected tabs with bodyText in vertical orientation.\n */\n get ariaDescribedByBodyText(): boolean {\n return this.effectiveSelected && this.hasBodyText && this._isVertical;\n }\n\n get hasBodyTextOrLink(): boolean {\n return this._isVertical && (this.hasBodyText || this.hasLinkSlot);\n }\n\n get hasLinkSlot(): boolean {\n return this.link && this.link.length > 0;\n }\n\n /**\n * Returns the HTML content of the link slot elements.\n * This is used to render the links in the TabHeader template.\n */\n get linkSlotHtml(): string {\n if (!this.link || this.link.length === 0) {\n return \"\";\n }\n return this.link.map(l => l.outerHTML).join(\"\");\n }\n\n get effectiveSelected(): boolean {\n return this.selected || this._selected;\n }\n\n get selectedClass(): string {\n return this.effectiveSelected ? \"udex-tab-navigation__button-tab--active\" : \"\";\n }\n\n get classWithIconWithoutBackground(): string {\n return this.hasIcon && !this._iconWithoutBackground ? \" udex-tab-navigation__button-tab--icon-tab\" : \"\";\n }\n\n get _slotName(): string {\n return this.isOnSelectedTab ? this._individualSlot : `disabled-${this._individualSlot}`;\n }\n\n get ariaLabelledBy(): string {\n const labels = [];\n\n if (this.text) {\n labels.push(`${this.__id!}-text`);\n }\n\n if (this.icon) {\n labels.push(`${this.__id!}-icon`);\n }\n\n return labels.join(\" \");\n }\n\n get accessibleNameText(): string {\n return this.accessibleName || (this.showAttentionBadge ? `, ${translate(UDExTab, ATTENTION_BADGE)}` : \"\");\n }\n\n get linkTabIndex(): string {\n return this.href && this.effectiveSelected ? \"1\" : \"-1\";\n }\n\n get widthStyle(): string {\n if (this._width && this._width !== \"auto\") {\n return `width: ${this._width};`;\n }\n return \"\";\n }\n\n get tabNavigation() {\n return executeTemplate(UDExTab.headerTemplate, this);\n }\n\n get tabInOverflow() {\n return executeTemplate(UDExTab.overflowTemplate, this);\n }\n\n static get headerTemplate() {\n return TabHeaderTemplate;\n }\n\n static get overflowTemplate() {\n return TabInOverflowTemplate;\n }\n}\n\nUDExTab.define();\n\nTabNavigation.registerStaticAreaTabStyles(TabInOverflowCss);\n\nexport default UDExTab;\n"]}
|
|
1
|
+
{"version":3,"file":"Tab.js","sourceRoot":"","sources":["../src/Tab.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot, Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport TabNavigation from \"./TabNavigation.js\";\nimport UDExBadge from \"./Badge.js\";\nimport { UDExTarget } from \"./types/common.js\";\nimport TabTemplate from \"./TabTemplate.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { ATTENTION_BADGE } from \"./generated/i18n/i18n-defaults.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport TabInOverflowCss from \"./generated/themes/TabInOverflow.css.js\";\n\nexport interface ITab extends UI5Element {\n getTabInHeaderDomRef: () => ITab | null;\n disabled?: boolean;\n icon?: string;\n selected?: boolean;\n numberBadge?: string;\n text?: string;\n bodyText?: string;\n itemCountText?: string;\n showAttentionBadge?: boolean;\n accessibleName?: string;\n href?: string;\n content?: Array<Node>;\n link?: Array<HTMLElement>;\n hasIcon: boolean;\n isMobile: boolean;\n isOnSelectedTab: boolean;\n hasNotIcon: boolean;\n hasNotHref: boolean;\n hasLinkSlot: boolean;\n selectedClass: string;\n _individualSlot: string;\n _effectiveSlotName: string;\n _slotName: string;\n _selected?: boolean;\n _tabIndex: string;\n _isMobile: boolean;\n _isVertical: boolean;\n _isProcessTab: boolean;\n _iconWithoutBackground: boolean;\n _posinset?: number;\n _setsize?: number;\n _contentId?: string;\n getElementInHeader?: () => ITab | null;\n _realTab?: UDExTab;\n _width?: string;\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-tab</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Tab.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-tab\n * @public\n */\n@customElement({\n tag: \"udex-tab\",\n renderer: jsxRenderer,\n template: TabTemplate,\n dependencies: [UDExBadge],\n})\n\nclass UDExTab extends UI5Element implements ITab {\n /**\n * Defines the Badge at the end of the Tab item.\n *\n * @public\n */\n @property({ type: String })\n numberBadge?: string;\n\n /**\n * Defines the text of tab.\n *\n * @public\n */\n @property({ type: String })\n text!: string;\n\n /**\n * Defines the body text (supplementary description) of the tab.\n * Optional text to provide additional context or explanation.\n *\n * @public\n */\n @property({ type: String })\n bodyText?: string;\n\n /**\n * Accessible name for tab.\n *\n * @public\n */\n @property({ type: String })\n accessibleName!: string;\n\n /**\n * Defines the selected tab.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n selected!: boolean;\n\n /**\n * Defines the displaying attention badge.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n showAttentionBadge!: boolean;\n\n /**\n * Defines the icon in the tab.\n *\n * @public\n */\n @property({ type: String })\n icon!: string;\n\n /**\n * Defines if the tab is disabled. A disabled tab is not clickable or focusable,\n * but remains reachable by screen readers via aria-disabled.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines the href of the tab.\n *\n * @public\n */\n @property({ type: String })\n href!: string;\n\n /**\n * Define the target of the tab\n *\n * @public\n */\n @property()\n target: `${UDExTarget}` = UDExTarget._self;\n\n /**\n * Defines the tab.\n *\n * @private\n */\n @property({ type: Object })\n _realTab!: UDExTab;\n\n /**\n * Defines the selected tab for private use.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean })\n _selected!: boolean;\n\n /**\n * Defines the tabindex of the tab.\n *\n * @private\n * @default false\n */\n @property({ type: String })\n _tabIndex!: string;\n\n /**\n * Defines if the viewport is mobile size.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean, noAttribute: true })\n _isMobile: boolean = false;\n\n /**\n * Defines if the tab navigation is in vertical orientation.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean, noAttribute: true })\n _isVertical: boolean = false;\n\n /**\n * Defines the width of the tab.\n *\n * @private\n */\n @property({ type: String, noAttribute: true })\n _width?: string;\n\n /**\n * Defines the item count text displayed above the tab label in Process Tab variant.\n * Only rendered when the tab navigation uses the Process Tab variant.\n *\n * @public\n */\n @property({ type: String })\n itemCountText?: string;\n\n /**\n * Defines the background color of the component.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean })\n _iconWithoutBackground!: boolean;\n\n /**\n * Defines if the tab navigation is in process-tab variant.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean, noAttribute: true })\n _isProcessTab: boolean = false;\n\n /**\n * Defines the content of the tab.\n *\n * @slot content\n * @public\n */\n @slot({ type: Node, \"default\": true })\n content!: DefaultSlot<Node>;\n\n /**\n * Defines the link(s) to be displayed in the tab header (vertical orientation only).\n * Use this slot to add one or more udex-link elements to the tab button.\n *\n * @slot link\n * @public\n */\n @slot({ type: HTMLElement })\n link!: Slot<HTMLElement>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n getElementInHeader?: () => ITab | null;\n _individualSlot!: string;\n\n getTabInHeaderDomRef(): ITab | null {\n if (this.getElementInHeader) {\n return this.getElementInHeader();\n }\n\n return null;\n }\n\n get ariaDisabled(): string | null {\n return this.disabled ? \"true\" : null;\n }\n\n get hasItemCountText(): boolean {\n return this._isProcessTab && !!this.itemCountText;\n }\n\n get effectiveItemCountText(): string {\n return this.itemCountText || \"0\";\n }\n\n get processTabClass(): string {\n return this._isProcessTab ? \" udex-tab-navigation__button-tab--process\" : \"\";\n }\n\n get isOnSelectedTab(): boolean {\n return this._realTab === this;\n }\n\n get _effectiveSlotName(): string {\n return this.isOnSelectedTab ? this._individualSlot : `disabled-${this._individualSlot}`;\n }\n\n get hasIcon(): boolean {\n return !!this.icon;\n }\n\n get classWithIcon(): string {\n return this.hasIcon ? \"udex-tab-navigation__button-text--icon\" : \"\";\n }\n\n get buttonClassWithIcon(): string {\n return this.hasIcon ? \" udex-tab-navigation__button-tab--icon\" : \"\";\n }\n\n get isMobile(): boolean {\n return this._isMobile;\n }\n\n get isMobileVertical(): boolean {\n return this._isMobile && this._isVertical;\n }\n\n get hasNotIcon(): boolean {\n return !this.icon && this.showAttentionBadge;\n }\n\n get hasNotHref(): boolean {\n return !this.href;\n }\n\n get hasBodyText(): boolean {\n return !!this.bodyText;\n }\n\n /**\n * Returns true if aria-describedby should point to bodyText.\n * Only applies to selected tabs with bodyText in vertical orientation.\n */\n get ariaDescribedByBodyText(): boolean {\n return this.effectiveSelected && this.hasBodyText && this._isVertical;\n }\n\n get hasBodyTextOrLink(): boolean {\n return this._isVertical && (this.hasBodyText || this.hasLinkSlot);\n }\n\n get hasLinkSlot(): boolean {\n return this.link && this.link.length > 0;\n }\n\n /**\n * Returns the HTML content of the link slot elements.\n * This is used to render the links in the TabHeader template.\n */\n get linkSlotHtml(): string {\n if (!this.link || this.link.length === 0) {\n return \"\";\n }\n return this.link.map(l => l.outerHTML).join(\"\");\n }\n\n get effectiveSelected(): boolean {\n return this.selected || this._selected;\n }\n\n get selectedClass(): string {\n return this.effectiveSelected ? \"udex-tab-navigation__button-tab--active\" : \"\";\n }\n\n get classWithIconWithoutBackground(): string {\n return this.hasIcon && !this._iconWithoutBackground ? \" udex-tab-navigation__button-tab--icon-tab\" : \"\";\n }\n\n get _slotName(): string {\n return this.isOnSelectedTab ? this._individualSlot : `disabled-${this._individualSlot}`;\n }\n\n get ariaLabelledBy(): string {\n const labels = [];\n\n if (this.text) {\n labels.push(`${this.__id!}-text`);\n }\n\n if (this.icon) {\n labels.push(`${this.__id!}-icon`);\n }\n\n return labels.join(\" \");\n }\n\n get accessibleNameText(): string {\n return this.accessibleName || (this.showAttentionBadge ? `, ${translate(UDExTab, ATTENTION_BADGE)}` : \"\");\n }\n\n get linkTabIndex(): string {\n return this.href && this.effectiveSelected ? \"1\" : \"-1\";\n }\n\n get widthStyle(): string {\n if (this._width && this._width !== \"auto\") {\n return `width: ${this._width};`;\n }\n return \"\";\n }\n}\n\nUDExTab.define();\n\nTabNavigation.registerStaticAreaTabStyles(TabInOverflowCss);\n\nexport default UDExTab;\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ui5/webcomponents-base/jsx-runtime";
|
|
2
|
+
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
3
|
+
import UDExBadge from "./Badge.js";
|
|
4
|
+
import { UDExNumberBadgeDesign, UDExSizeBadgeDesign, UDExTypeBadgeDesign } from "./types/BadgeDesign.js";
|
|
5
|
+
export default function TabHeaderTemplate() {
|
|
6
|
+
const tab = this;
|
|
7
|
+
if (this.hasBodyTextOrLink) {
|
|
8
|
+
return (_jsxs("div", { class: "udex-tab-navigation__tab-wrapper", role: "presentation", style: this.widthStyle || undefined, children: [this.hasNotHref ? (_jsxs("button", { id: this._id, type: "button", role: "tab", class: `udex-tab-navigation__button-tab ${this.selectedClass} ${this.classWithIconWithoutBackground} ${this.buttonClassWithIcon} ${this.processTabClass}`, tabindex: Number(this._tabIndex), "aria-posinset": tab._posinset, "aria-setsize": tab._setsize, "aria-controls": tab._contentId, "aria-selected": this.effectiveSelected, "aria-disabled": this.ariaDisabled ? "true" : undefined, children: [tabContent.call(this), this.ariaDescribedByBodyText && (_jsx("span", { class: "visually-hidden", children: this.bodyText }))] })) : (_jsxs("a", { id: this._id, role: "tab", class: `udex-tab-navigation__button-tab ${this.selectedClass} ${this.classWithIconWithoutBackground} ${this.buttonClassWithIcon} ${this.processTabClass}`, href: this.href, target: this.target, tabindex: Number(this.linkTabIndex), "aria-posinset": tab._posinset, "aria-setsize": tab._setsize, "aria-disabled": this.ariaDisabled ? "true" : undefined, children: [tabContent.call(this), this.ariaDescribedByBodyText && (_jsx("span", { class: "visually-hidden", children: this.bodyText }))] })), this.hasBodyText && (_jsx("p", { class: "udex-tab-navigation__button-body-text", children: this.bodyText })), this.hasLinkSlot && (_jsx("div", { class: "udex-tab-navigation__button-links", ...{ innerHTML: this.linkSlotHtml } }))] }));
|
|
9
|
+
}
|
|
10
|
+
return this.hasNotHref ? (_jsx("button", { id: this._id, type: "button", role: "tab", class: `udex-tab-navigation__button-tab ${this.selectedClass} ${this.classWithIconWithoutBackground} ${this.buttonClassWithIcon} ${this.processTabClass}`, tabindex: Number(this._tabIndex), "aria-describedby": `udex-tab-navigation__${this._id}__accessible-name`, "aria-posinset": tab._posinset, "aria-setsize": tab._setsize, "aria-controls": tab._contentId, "aria-selected": this.effectiveSelected, "aria-disabled": this.ariaDisabled ? "true" : undefined, style: this.widthStyle || undefined, children: tabContent.call(this) })) : (_jsx("a", { id: this._id, role: "tab", class: `udex-tab-navigation__button-tab ${this.selectedClass} ${this.classWithIconWithoutBackground} ${this.buttonClassWithIcon} ${this.processTabClass}`, tabindex: Number(this.linkTabIndex), "aria-posinset": tab._posinset, "aria-setsize": tab._setsize, href: this.href, target: this.target, "aria-disabled": this.ariaDisabled ? "true" : undefined, style: this.widthStyle || undefined, children: tabContent.call(this) }));
|
|
11
|
+
}
|
|
12
|
+
function tabContent() {
|
|
13
|
+
return (_jsxs(_Fragment, { children: [this.hasIcon && (_jsxs("span", { class: "udex-tab-navigation__button-icon-outer", role: "presentation", "aria-hidden": "true", children: [_jsx(Icon, { class: "udex-tab-navigation__button-icon", name: this.icon }), this.showAttentionBadge && (_jsx("span", { class: "udex-tab-navigation__button-badge" }))] })), this._isProcessTab ? (_jsxs("span", { class: "udex-tab-navigation__button-text-block", children: [_jsx("span", { class: "udex-tab-navigation__button-item-count", children: this.effectiveItemCountText }), _jsxs("p", { class: `udex-tab-navigation__button-text ${this.classWithIcon}`, children: [this.text, this.numberBadge && (_jsx(UDExBadge, { class: "udex-tab-navigation__badge", type: UDExTypeBadgeDesign.Number, "number-design": UDExNumberBadgeDesign.Blue, size: UDExSizeBadgeDesign.Medium, children: this.numberBadge })), this.hasNotIcon && (_jsx("span", { class: "udex-tab-navigation__button-badge" }))] })] })) : (_jsxs("p", { class: `udex-tab-navigation__button-text ${this.classWithIcon}`, children: [this.text, this.numberBadge && (_jsx(UDExBadge, { class: "udex-tab-navigation__badge", type: UDExTypeBadgeDesign.Number, "number-design": UDExNumberBadgeDesign.Blue, size: UDExSizeBadgeDesign.Medium, children: this.numberBadge })), this.hasNotIcon && (_jsx("span", { class: "udex-tab-navigation__button-badge" }))] })), _jsx("span", { class: "visually-hidden", id: `udex-tab-navigation__${this._id}__accessible-name`, children: this.accessibleNameText })] }));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=TabHeaderTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TabHeaderTemplate.js","sourceRoot":"","sources":["../src/TabHeaderTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type UDExTab from \"./Tab.js\";\nimport type { ITab } from \"./Tab.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UDExBadge from \"./Badge.js\";\nimport { UDExNumberBadgeDesign, UDExSizeBadgeDesign, UDExTypeBadgeDesign } from \"./types/BadgeDesign.js\";\n\nexport default function TabHeaderTemplate(this: UDExTab) {\n const tab = this as unknown as ITab;\n\n if (this.hasBodyTextOrLink) {\n return (\n <div\n class=\"udex-tab-navigation__tab-wrapper\"\n role=\"presentation\"\n style={this.widthStyle || undefined}>\n {this.hasNotHref ? (\n <button\n id={this._id}\n type=\"button\"\n role=\"tab\"\n class={`udex-tab-navigation__button-tab ${this.selectedClass} ${this.classWithIconWithoutBackground} ${this.buttonClassWithIcon} ${this.processTabClass}`}\n tabindex={Number(this._tabIndex)}\n aria-posinset={tab._posinset}\n aria-setsize={tab._setsize}\n aria-controls={tab._contentId}\n aria-selected={this.effectiveSelected}\n aria-disabled={this.ariaDisabled ? \"true\" : undefined}>\n {tabContent.call(this)}\n {this.ariaDescribedByBodyText && (\n <span class=\"visually-hidden\">{this.bodyText}</span>\n )}\n </button>\n ) : (\n <a\n id={this._id}\n role=\"tab\"\n class={`udex-tab-navigation__button-tab ${this.selectedClass} ${this.classWithIconWithoutBackground} ${this.buttonClassWithIcon} ${this.processTabClass}`}\n href={this.href}\n target={this.target}\n tabindex={Number(this.linkTabIndex)}\n aria-posinset={tab._posinset}\n aria-setsize={tab._setsize}\n aria-disabled={this.ariaDisabled ? \"true\" : undefined}>\n {tabContent.call(this)}\n {this.ariaDescribedByBodyText && (\n <span class=\"visually-hidden\">{this.bodyText}</span>\n )}\n </a>\n )}\n {this.hasBodyText && (\n <p class=\"udex-tab-navigation__button-body-text\">{this.bodyText}</p>\n )}\n {this.hasLinkSlot && (\n <div class=\"udex-tab-navigation__button-links\" {...({ innerHTML: this.linkSlotHtml } as object)}></div>\n )}\n </div>\n );\n }\n\n return this.hasNotHref ? (\n <button\n id={this._id}\n type=\"button\"\n role=\"tab\"\n class={`udex-tab-navigation__button-tab ${this.selectedClass} ${this.classWithIconWithoutBackground} ${this.buttonClassWithIcon} ${this.processTabClass}`}\n tabindex={Number(this._tabIndex)}\n aria-describedby={`udex-tab-navigation__${this._id}__accessible-name`}\n aria-posinset={tab._posinset}\n aria-setsize={tab._setsize}\n aria-controls={tab._contentId}\n aria-selected={this.effectiveSelected}\n aria-disabled={this.ariaDisabled ? \"true\" : undefined}\n style={this.widthStyle || undefined}>\n {tabContent.call(this)}\n </button>\n ) : (\n <a\n id={this._id}\n role=\"tab\"\n class={`udex-tab-navigation__button-tab ${this.selectedClass} ${this.classWithIconWithoutBackground} ${this.buttonClassWithIcon} ${this.processTabClass}`}\n tabindex={Number(this.linkTabIndex)}\n aria-posinset={tab._posinset}\n aria-setsize={tab._setsize}\n href={this.href}\n target={this.target}\n aria-disabled={this.ariaDisabled ? \"true\" : undefined}\n style={this.widthStyle || undefined}>\n {tabContent.call(this)}\n </a>\n );\n}\n\nfunction tabContent(this: UDExTab) {\n return (\n <>\n {this.hasIcon && (\n <span\n class=\"udex-tab-navigation__button-icon-outer\"\n role=\"presentation\"\n aria-hidden=\"true\">\n <Icon\n class=\"udex-tab-navigation__button-icon\"\n name={this.icon}>\n </Icon>\n {this.showAttentionBadge && (\n <span class=\"udex-tab-navigation__button-badge\"></span>\n )}\n </span>\n )}\n {this._isProcessTab ? (\n <span class=\"udex-tab-navigation__button-text-block\">\n <span class=\"udex-tab-navigation__button-item-count\">{this.effectiveItemCountText}</span>\n <p class={`udex-tab-navigation__button-text ${this.classWithIcon}`}>\n {this.text}\n {this.numberBadge && (\n <UDExBadge\n class=\"udex-tab-navigation__badge\"\n type={UDExTypeBadgeDesign.Number}\n number-design={UDExNumberBadgeDesign.Blue}\n size={UDExSizeBadgeDesign.Medium}>\n {this.numberBadge}\n </UDExBadge>\n )}\n {this.hasNotIcon && (\n <span class=\"udex-tab-navigation__button-badge\"></span>\n )}\n </p>\n </span>\n ) : (\n <p class={`udex-tab-navigation__button-text ${this.classWithIcon}`}>\n {this.text}\n {this.numberBadge && (\n <UDExBadge\n class=\"udex-tab-navigation__badge\"\n type={UDExTypeBadgeDesign.Number}\n number-design={UDExNumberBadgeDesign.Blue}\n size={UDExSizeBadgeDesign.Medium}>\n {this.numberBadge}\n </UDExBadge>\n )}\n {this.hasNotIcon && (\n <span class=\"udex-tab-navigation__button-badge\"></span>\n )}\n </p>\n )}\n <span\n class=\"visually-hidden\"\n id={`udex-tab-navigation__${this._id}__accessible-name`}>\n {this.accessibleNameText}\n </span>\n </>\n );\n}\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
|
|
2
|
+
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
3
|
+
export default function TabInOverflowTemplate() {
|
|
4
|
+
const tab = this;
|
|
5
|
+
return this.hasNotHref ? (_jsxs("button", { id: this._id, class: "udex-tab-overflow__button", role: "tab", "aria-selected": this.effectiveSelected, "aria-disabled": this.ariaDisabled ? "true" : undefined, disabled: !!this.ariaDisabled, tabindex: Number(tab._tabIndex), children: [this.hasIcon && (_jsxs("span", { class: "udex-tab-overflow__button-icon", role: "presentation", "aria-hidden": "true", children: [_jsx(Icon, { name: this.icon }), this.showAttentionBadge && (_jsx("span", { class: "udex-tab-overflow__button-badge" }))] })), this.text, this.hasNotIcon && (_jsx("span", { class: "udex-tab-overflow__button-badge", role: "presentation", "aria-hidden": "true" }))] })) : (_jsxs("a", { id: this._id, href: this.ariaDisabled ? undefined : this.href, target: this.target, class: "udex-tab-overflow__button", role: "tab", "aria-selected": this.effectiveSelected, "aria-disabled": this.ariaDisabled ? "true" : undefined, tabindex: Number(tab._tabIndex), children: [this.hasIcon && (_jsxs("span", { class: "udex-tab-overflow__button-icon", role: "presentation", "aria-hidden": "true", children: [_jsx(Icon, { name: this.icon }), this.showAttentionBadge && (_jsx("span", { class: "udex-tab-overflow__button-badge" }))] })), this.text, this.hasNotIcon && (_jsx("span", { class: "udex-tab-overflow__button-badge", role: "presentation", "aria-hidden": "true" }))] }));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=TabInOverflowTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TabInOverflowTemplate.js","sourceRoot":"","sources":["../src/TabInOverflowTemplate.tsx"],"names":[],"mappings":";AAEA,OAAO,IAAI,MAAM,iCAAiC,CAAC;AAEnD,MAAM,CAAC,OAAO,UAAU,qBAAqB;IAC3C,MAAM,GAAG,GAAG,IAAuB,CAAC;IAEpC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CACvB,kBACE,EAAE,EAAE,IAAI,CAAC,GAAG,EACZ,KAAK,EAAC,2BAA2B,EACjC,IAAI,EAAC,KAAK,mBACK,IAAI,CAAC,iBAAiB,mBACtB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACrD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAC7B,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,aAC9B,IAAI,CAAC,OAAO,IAAI,CACf,gBACE,KAAK,EAAC,gCAAgC,EACtC,IAAI,EAAC,cAAc,iBACP,MAAM,aAClB,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAS,EAC7B,IAAI,CAAC,kBAAkB,IAAI,CAC1B,eAAM,KAAK,EAAC,iCAAiC,GAAQ,CACtD,IACI,CACR,EACA,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,UAAU,IAAI,CAClB,eACE,KAAK,EAAC,iCAAiC,EACvC,IAAI,EAAC,cAAc,iBACP,MAAM,GACb,CACR,IACM,CACV,CAAC,CAAC,CAAC,CACF,aACE,EAAE,EAAE,IAAI,CAAC,GAAG,EACZ,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAC/C,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,KAAK,EAAC,2BAA2B,EACjC,IAAI,EAAC,KAAK,mBACK,IAAI,CAAC,iBAAiB,mBACtB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACrD,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,aAC9B,IAAI,CAAC,OAAO,IAAI,CACf,gBACE,KAAK,EAAC,gCAAgC,EACtC,IAAI,EAAC,cAAc,iBACP,MAAM,aAClB,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAS,EAC7B,IAAI,CAAC,kBAAkB,IAAI,CAC1B,eAAM,KAAK,EAAC,iCAAiC,GAAQ,CACtD,IACI,CACR,EACA,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,UAAU,IAAI,CAClB,eACE,KAAK,EAAC,iCAAiC,EACvC,IAAI,EAAC,cAAc,iBACP,MAAM,GACb,CACR,IACC,CACL,CAAC;AACJ,CAAC","sourcesContent":["import type UDExTab from \"./Tab.js\";\nimport type { ITab } from \"./Tab.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\n\nexport default function TabInOverflowTemplate(this: UDExTab) {\n const tab = this as unknown as ITab;\n\n return this.hasNotHref ? (\n <button\n id={this._id}\n class=\"udex-tab-overflow__button\"\n role=\"tab\"\n aria-selected={this.effectiveSelected}\n aria-disabled={this.ariaDisabled ? \"true\" : undefined}\n disabled={!!this.ariaDisabled}\n tabindex={Number(tab._tabIndex)}>\n {this.hasIcon && (\n <span\n class=\"udex-tab-overflow__button-icon\"\n role=\"presentation\"\n aria-hidden=\"true\">\n <Icon name={this.icon}></Icon>\n {this.showAttentionBadge && (\n <span class=\"udex-tab-overflow__button-badge\"></span>\n )}\n </span>\n )}\n {this.text}\n {this.hasNotIcon && (\n <span\n class=\"udex-tab-overflow__button-badge\"\n role=\"presentation\"\n aria-hidden=\"true\">\n </span>\n )}\n </button>\n ) : (\n <a\n id={this._id}\n href={this.ariaDisabled ? undefined : this.href}\n target={this.target}\n class=\"udex-tab-overflow__button\"\n role=\"tab\"\n aria-selected={this.effectiveSelected}\n aria-disabled={this.ariaDisabled ? \"true\" : undefined}\n tabindex={Number(tab._tabIndex)}>\n {this.hasIcon && (\n <span\n class=\"udex-tab-overflow__button-icon\"\n role=\"presentation\"\n aria-hidden=\"true\">\n <Icon name={this.icon}></Icon>\n {this.showAttentionBadge && (\n <span class=\"udex-tab-overflow__button-badge\"></span>\n )}\n </span>\n )}\n {this.text}\n {this.hasNotIcon && (\n <span\n class=\"udex-tab-overflow__button-badge\"\n role=\"presentation\"\n aria-hidden=\"true\">\n </span>\n )}\n </a>\n );\n}\n"]}
|
package/dist/TabNavigation.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
|
9
9
|
import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
|
|
10
10
|
import "@ui5/webcomponents-icons/dist/play.js";
|
|
11
11
|
import "@ui5/webcomponents-icons/dist/pause.js";
|
|
12
|
-
import
|
|
12
|
+
import UDExButtonSize from "./types/ButtonSize.js";
|
|
13
13
|
export declare enum UDExSizeMoreButton {
|
|
14
14
|
Small = "Small",
|
|
15
15
|
Medium = "Medium"
|
|
@@ -64,9 +64,9 @@ declare class UDExTabNavigation extends UI5Element {
|
|
|
64
64
|
* Defines the size of the "More" button.
|
|
65
65
|
*
|
|
66
66
|
* @public
|
|
67
|
-
* @default "
|
|
67
|
+
* @default "Medium"
|
|
68
68
|
*/
|
|
69
|
-
sizeMoreButton: `${
|
|
69
|
+
sizeMoreButton: `${UDExButtonSize}`;
|
|
70
70
|
/**
|
|
71
71
|
* Defines the mode of the component.
|
|
72
72
|
*
|
|
@@ -182,6 +182,7 @@ declare class UDExTabNavigation extends UI5Element {
|
|
|
182
182
|
_maxTitleLength: number;
|
|
183
183
|
_maxTitleLengthInSecondLines: number;
|
|
184
184
|
_autoPlayTimer?: number;
|
|
185
|
+
_focusSelectedTabAfterRender: boolean;
|
|
185
186
|
constructor();
|
|
186
187
|
onAfterRendering(): void;
|
|
187
188
|
onEnterDOM(): void;
|
|
@@ -248,13 +249,14 @@ declare class UDExTabNavigation extends UI5Element {
|
|
|
248
249
|
handleFocusMoreButton(e: KeyboardEvent): void;
|
|
249
250
|
handleHomeKeyMoreButton(e: KeyboardEvent): void;
|
|
250
251
|
handleEnterKeyMoreButton(e: KeyboardEvent): void;
|
|
251
|
-
handleDownMoreButton(e: KeyboardEvent): void;
|
|
252
252
|
onFocusFirstItemPopover(): void;
|
|
253
253
|
handleFocusPopover(e: KeyboardEvent): void;
|
|
254
254
|
handleTab(e: KeyboardEvent): void;
|
|
255
255
|
handleUp(e: KeyboardEvent): void;
|
|
256
256
|
onPreviousItemInPopover(target: HTMLElement): void;
|
|
257
257
|
onNextItemInPopover(target: HTMLElement): void;
|
|
258
|
+
private isPopoverItemDisabled;
|
|
259
|
+
private findNextEnabledPopoverItem;
|
|
258
260
|
resetTabIndexItem(item: HTMLElement): void;
|
|
259
261
|
getItemsFromPopover(): Array<HTMLElement>;
|
|
260
262
|
getPopoverTabIndexById(popoverItems: Array<HTMLElement>, id: string): number;
|
|
@@ -270,8 +272,6 @@ declare class UDExTabNavigation extends UI5Element {
|
|
|
270
272
|
get isDesktop(): boolean;
|
|
271
273
|
get moreButtonText(): string;
|
|
272
274
|
static registerStaticAreaTabStyles(styles: StyleData): void;
|
|
273
|
-
static get tabNavigationPopoverTemplate(): typeof TabNavigationPopoverTemplate;
|
|
274
|
-
get tabNavigationPopover(): object;
|
|
275
275
|
applyTabWidthToVerticalTabs(): void;
|
|
276
276
|
updateMobileState(): void;
|
|
277
277
|
_startAutoPlay(): void;
|
package/dist/TabNavigation.js
CHANGED
|
@@ -10,10 +10,9 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
|
|
|
10
10
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
11
11
|
import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
12
12
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
13
|
-
import
|
|
13
|
+
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
14
14
|
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
15
15
|
import Popover from "@ui5/webcomponents/dist/Popover.js";
|
|
16
|
-
import executeTemplate from "@ui5/webcomponents-base/dist/renderer/executeTemplate.js";
|
|
17
16
|
import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
|
|
18
17
|
import { isUp, isDown, isRight, isLeft, isEnter, isSpace, isEscape, isHome, isEnd, isTabNext, isTabPrevious, } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
19
18
|
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
@@ -25,13 +24,13 @@ import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
|
|
|
25
24
|
import "@ui5/webcomponents-icons/dist/play.js";
|
|
26
25
|
import "@ui5/webcomponents-icons/dist/pause.js";
|
|
27
26
|
import UDExButton from "./Button.js";
|
|
27
|
+
import UDExButtonSize from "./types/ButtonSize.js";
|
|
28
|
+
import translate from "./utils/translate.js";
|
|
28
29
|
// Templates
|
|
29
|
-
import TabNavigationTemplate from "./
|
|
30
|
-
import TabNavigationPopoverTemplate from "./generated/templates/TabNavigationPopoverTemplate.lit.js";
|
|
30
|
+
import TabNavigationTemplate from "./TabNavigationTemplate.js";
|
|
31
31
|
// Styles
|
|
32
32
|
import TabNavigationCss from "./generated/themes/TabNavigation.css.js";
|
|
33
33
|
import TabInOverflowCss from "./generated/themes/TabInOverflow.css.js";
|
|
34
|
-
import translate from "./utils/translate.js";
|
|
35
34
|
const staticAreaTabStyles = [];
|
|
36
35
|
export var UDExSizeMoreButton;
|
|
37
36
|
(function (UDExSizeMoreButton) {
|
|
@@ -83,9 +82,9 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
83
82
|
* Defines the size of the "More" button.
|
|
84
83
|
*
|
|
85
84
|
* @public
|
|
86
|
-
* @default "
|
|
85
|
+
* @default "Medium"
|
|
87
86
|
*/
|
|
88
|
-
this.sizeMoreButton =
|
|
87
|
+
this.sizeMoreButton = UDExButtonSize.Medium;
|
|
89
88
|
/**
|
|
90
89
|
* Defines the mode of the component.
|
|
91
90
|
*
|
|
@@ -154,6 +153,7 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
154
153
|
this._isExpanded = false;
|
|
155
154
|
this._maxTitleLength = 25;
|
|
156
155
|
this._maxTitleLengthInSecondLines = this._maxTitleLength * 2;
|
|
156
|
+
this._focusSelectedTabAfterRender = false;
|
|
157
157
|
this._handleResizeBound = this._handleResize.bind(this);
|
|
158
158
|
this._handleWindowResizeBound = this._handleWindowResize.bind(this);
|
|
159
159
|
}
|
|
@@ -168,6 +168,10 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
168
168
|
}
|
|
169
169
|
this.initOutsideClick();
|
|
170
170
|
this.applyTabWidthToVerticalTabs();
|
|
171
|
+
if (this._focusSelectedTabAfterRender) {
|
|
172
|
+
this._focusSelectedTabAfterRender = false;
|
|
173
|
+
this._selectedTab?.getTabInHeaderDomRef()?.focus();
|
|
174
|
+
}
|
|
171
175
|
}
|
|
172
176
|
onEnterDOM() {
|
|
173
177
|
ResizeHandler.register(this.getHeader(), this._handleResizeBound);
|
|
@@ -465,9 +469,6 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
465
469
|
.filter(tab => !tab.disabled)
|
|
466
470
|
.map(tab => tab.getTabInHeaderDomRef())
|
|
467
471
|
.filter(tab => !tab.hasAttribute("hidden"));
|
|
468
|
-
if (!this.getMoreButton().hasAttribute("hidden")) {
|
|
469
|
-
this._visibleTabs.push(this.getMoreButton());
|
|
470
|
-
}
|
|
471
472
|
}
|
|
472
473
|
applyTabIndex() {
|
|
473
474
|
if (!this.shadowRoot.contains(document.activeElement)) {
|
|
@@ -482,15 +483,27 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
482
483
|
});
|
|
483
484
|
}
|
|
484
485
|
handleOverflowItemClick(e) {
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
486
|
+
const target = e.target;
|
|
487
|
+
const { localName } = target;
|
|
488
|
+
if (localName !== "button" && localName !== "a") {
|
|
489
|
+
this.handleClosePopover();
|
|
490
|
+
return;
|
|
491
|
+
}
|
|
492
|
+
const targetId = target.id;
|
|
493
|
+
const [targetTab] = this.items.filter(item => item.__id === targetId);
|
|
494
|
+
if (targetTab?.disabled) {
|
|
495
|
+
e.preventDefault();
|
|
496
|
+
e.stopPropagation();
|
|
497
|
+
return;
|
|
498
|
+
}
|
|
499
|
+
if (localName === "button") {
|
|
500
|
+
e.preventDefault();
|
|
501
|
+
this.onItemSelect(targetId);
|
|
492
502
|
}
|
|
493
503
|
this.handleClosePopover();
|
|
504
|
+
if (localName === "button") {
|
|
505
|
+
this._focusSelectedTabAfterRender = true;
|
|
506
|
+
}
|
|
494
507
|
}
|
|
495
508
|
onItemSelect(selectedId) {
|
|
496
509
|
const [selectedTab] = this.items.filter(item => item.__id === selectedId);
|
|
@@ -626,7 +639,6 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
626
639
|
}
|
|
627
640
|
}
|
|
628
641
|
handleFocusMoreButton(e) {
|
|
629
|
-
this.handleDownMoreButton(e);
|
|
630
642
|
this.handleHomeKeyMoreButton(e);
|
|
631
643
|
this.handleEnterKeyMoreButton(e);
|
|
632
644
|
}
|
|
@@ -645,19 +657,12 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
645
657
|
this.handleOpenPopover();
|
|
646
658
|
}
|
|
647
659
|
}
|
|
648
|
-
handleDownMoreButton(e) {
|
|
649
|
-
if (isDown(e) || isEnter(e)) {
|
|
650
|
-
this._popover = this.getResponsePopover();
|
|
651
|
-
this.handleOpenPopover();
|
|
652
|
-
this.updateOverflowItems();
|
|
653
|
-
}
|
|
654
|
-
}
|
|
655
660
|
onFocusFirstItemPopover() {
|
|
656
661
|
if (this._popover?.open) {
|
|
657
662
|
const popoverItems = this.getItemsFromPopover();
|
|
658
|
-
const
|
|
659
|
-
|
|
660
|
-
|
|
663
|
+
const firstActiveItem = popoverItems.find(item => !this.isPopoverItemDisabled(item)) ?? popoverItems[0];
|
|
664
|
+
firstActiveItem.setAttribute("tabindex", "0");
|
|
665
|
+
firstActiveItem.focus();
|
|
661
666
|
}
|
|
662
667
|
}
|
|
663
668
|
handleFocusPopover(e) {
|
|
@@ -683,8 +688,7 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
683
688
|
onPreviousItemInPopover(target) {
|
|
684
689
|
const popoverItems = this.getItemsFromPopover();
|
|
685
690
|
const currentSelectedTabIndex = this.getPopoverTabIndexById(popoverItems, target.id);
|
|
686
|
-
const
|
|
687
|
-
const prevItem = popoverItems[previousSelectIndex];
|
|
691
|
+
const prevItem = this.findNextEnabledPopoverItem(popoverItems, currentSelectedTabIndex, -1);
|
|
688
692
|
this.resetTabIndexItem(popoverItems[currentSelectedTabIndex]);
|
|
689
693
|
prevItem.setAttribute("tabIndex", "0");
|
|
690
694
|
prevItem.focus();
|
|
@@ -692,12 +696,25 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
692
696
|
onNextItemInPopover(target) {
|
|
693
697
|
const popoverItems = this.getItemsFromPopover();
|
|
694
698
|
const currentSelectedTabIndex = this.getPopoverTabIndexById(popoverItems, target.id);
|
|
695
|
-
const
|
|
696
|
-
const nextItem = popoverItems[nextSelectIndex];
|
|
699
|
+
const nextItem = this.findNextEnabledPopoverItem(popoverItems, currentSelectedTabIndex, 1);
|
|
697
700
|
this.resetTabIndexItem(popoverItems[currentSelectedTabIndex]);
|
|
698
701
|
nextItem.setAttribute("tabIndex", "0");
|
|
699
702
|
nextItem.focus();
|
|
700
703
|
}
|
|
704
|
+
isPopoverItemDisabled(item) {
|
|
705
|
+
return item.getAttribute("aria-disabled") === "true";
|
|
706
|
+
}
|
|
707
|
+
findNextEnabledPopoverItem(items, currentIndex, direction) {
|
|
708
|
+
const len = items.length;
|
|
709
|
+
let index = (currentIndex + direction + len) % len;
|
|
710
|
+
while (index !== currentIndex) {
|
|
711
|
+
if (!this.isPopoverItemDisabled(items[index])) {
|
|
712
|
+
return items[index];
|
|
713
|
+
}
|
|
714
|
+
index = (index + direction + len) % len;
|
|
715
|
+
}
|
|
716
|
+
return items[currentIndex];
|
|
717
|
+
}
|
|
701
718
|
resetTabIndexItem(item) {
|
|
702
719
|
item.setAttribute("tabIndex", "-1");
|
|
703
720
|
}
|
|
@@ -722,6 +739,7 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
722
739
|
if (!targetTab?.disabled) {
|
|
723
740
|
this.onItemSelect(targetId);
|
|
724
741
|
this.handleClosePopover();
|
|
742
|
+
this._focusSelectedTabAfterRender = true;
|
|
725
743
|
}
|
|
726
744
|
}
|
|
727
745
|
}
|
|
@@ -729,14 +747,15 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
729
747
|
if (isEscape(e)) {
|
|
730
748
|
e.preventDefault();
|
|
731
749
|
this.handleClosePopover();
|
|
732
|
-
this.
|
|
750
|
+
this.getMoreButton().focus();
|
|
733
751
|
}
|
|
734
752
|
}
|
|
735
753
|
handleHome(e) {
|
|
736
754
|
if (isHome(e)) {
|
|
737
755
|
e.preventDefault();
|
|
738
756
|
const popoverItems = this.getItemsFromPopover();
|
|
739
|
-
popoverItems[0]
|
|
757
|
+
const firstActiveItem = popoverItems.find(item => !this.isPopoverItemDisabled(item)) ?? popoverItems[0];
|
|
758
|
+
firstActiveItem.focus();
|
|
740
759
|
}
|
|
741
760
|
}
|
|
742
761
|
handleEnd(e) {
|
|
@@ -744,7 +763,8 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
744
763
|
e.preventDefault();
|
|
745
764
|
e.stopPropagation();
|
|
746
765
|
const popoverItems = this.getItemsFromPopover();
|
|
747
|
-
popoverItems[popoverItems.length - 1]
|
|
766
|
+
const lastActiveItem = [...popoverItems].reverse().find(item => !this.isPopoverItemDisabled(item)) ?? popoverItems[popoverItems.length - 1];
|
|
767
|
+
lastActiveItem.focus();
|
|
748
768
|
}
|
|
749
769
|
}
|
|
750
770
|
getResponsePopover() {
|
|
@@ -768,12 +788,6 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
768
788
|
static registerStaticAreaTabStyles(styles) {
|
|
769
789
|
staticAreaTabStyles.push(styles);
|
|
770
790
|
}
|
|
771
|
-
static get tabNavigationPopoverTemplate() {
|
|
772
|
-
return TabNavigationPopoverTemplate;
|
|
773
|
-
}
|
|
774
|
-
get tabNavigationPopover() {
|
|
775
|
-
return executeTemplate(UDExTabNavigation_1.tabNavigationPopoverTemplate, this);
|
|
776
|
-
}
|
|
777
791
|
applyTabWidthToVerticalTabs() {
|
|
778
792
|
if (this.isVertical && this.tabWidth && this.tabWidth !== "auto") {
|
|
779
793
|
this.style.setProperty("--udex-tab-header-width", this.tabWidth);
|
|
@@ -894,7 +908,7 @@ __decorate([
|
|
|
894
908
|
UDExTabNavigation = UDExTabNavigation_1 = __decorate([
|
|
895
909
|
customElement({
|
|
896
910
|
tag: "udex-tab-navigation",
|
|
897
|
-
renderer:
|
|
911
|
+
renderer: jsxRenderer,
|
|
898
912
|
styles: [TabNavigationCss, TabInOverflowCss],
|
|
899
913
|
template: TabNavigationTemplate,
|
|
900
914
|
dependencies: [Popover, Icon, UDExButton],
|