@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
|
@@ -5,14 +5,11 @@ OVERVIEW=概览
|
|
|
5
5
|
LOGOUT=退出
|
|
6
6
|
MAIN_LINKS=主要链接
|
|
7
7
|
BACK_TO_TOP=返回顶部
|
|
8
|
-
COUNT=计数
|
|
9
8
|
OF=/
|
|
10
9
|
PAGINATION_PAGE=页码
|
|
11
10
|
SELECTED=已选定
|
|
12
11
|
UNSELECTED=未选择
|
|
13
12
|
INDETERMINATE=不确定
|
|
14
|
-
EDIT_BUTTON=编辑
|
|
15
|
-
DELETE_BUTTON=删除
|
|
16
13
|
BACK_TO_REGION_LIST=返回到地区列表
|
|
17
14
|
BUTTON_ARIA_TYPE_PRIMARY=一级
|
|
18
15
|
BUTTON_ARIA_TYPE_SECONDARY=二级
|
|
@@ -26,8 +23,6 @@ BUTTON_ARIA_TRANSPARENT=透明
|
|
|
26
23
|
BUTTON_ARIA_ATTENTION=注意
|
|
27
24
|
DATEPICKER_DATE_DESCRIPTION=数据输入
|
|
28
25
|
TOGGLED=切换
|
|
29
|
-
FIRST_PAGE=第一页
|
|
30
|
-
LAST_PAGE=最后一页
|
|
31
26
|
PREVIOUS_PAGE=上一页
|
|
32
27
|
NEXT_PAGE=下一页
|
|
33
28
|
CURRENT_PAGE=当前页面
|
|
@@ -70,7 +65,6 @@ TEXTAREA_CHARACTERS_LEFT=剩余 {0} 个字符
|
|
|
70
65
|
VALUE_STATE_TYPE_ERROR=字段状态"错误"
|
|
71
66
|
VALUE_STATE_TYPE_WARNING=字段状态"警告"
|
|
72
67
|
VALUE_STATE_TYPE_SUCCESS=字段状态"成功"
|
|
73
|
-
VALUE_STATE_TYPE_STANDARD=字段状态"标准"
|
|
74
68
|
CAROUSEL_PREVIOUS_ARROW_TEXT=上一页
|
|
75
69
|
CAROUSEL_NEXT_ARROW_TEXT=下一页
|
|
76
70
|
NO_MATCHES_FOUND=没有找到匹配项。
|
|
@@ -101,8 +95,6 @@ ABOUT_SAP=关于 SAP
|
|
|
101
95
|
SITE_INFORMATION=网站信息
|
|
102
96
|
AVATAR_TEXT=头像
|
|
103
97
|
CALENDAR_ICON=打开日历图标
|
|
104
|
-
LIST_ITEM_EDIT_ICON=编辑列表项记录
|
|
105
|
-
LIST_ITEM_DELETE_ICON=删除列表项记录
|
|
106
98
|
BACK_BUTTON_LABEL=返回按钮
|
|
107
99
|
STATUS_BADGE_TEXT=状态标记
|
|
108
100
|
STATUS_BADGE_EDIT_TITLE=点击编辑个人资料
|
|
@@ -3,14 +3,11 @@ OVERVIEW=概覽
|
|
|
3
3
|
LOGOUT=登出
|
|
4
4
|
MAIN_LINKS=主要連結
|
|
5
5
|
BACK_TO_TOP=返回頂部
|
|
6
|
-
COUNT=數量
|
|
7
6
|
OF=/
|
|
8
7
|
PAGINATION_PAGE=頁面
|
|
9
8
|
SELECTED=已選取
|
|
10
9
|
UNSELECTED=未選取
|
|
11
10
|
INDETERMINATE=不確定
|
|
12
|
-
EDIT_BUTTON=編輯
|
|
13
|
-
DELETE_BUTTON=刪除
|
|
14
11
|
BACK_TO_REGION_LIST=返回地區清單
|
|
15
12
|
BUTTON_ARIA_TYPE_PRIMARY=主要
|
|
16
13
|
BUTTON_ARIA_TYPE_SECONDARY=次要
|
|
@@ -24,8 +21,6 @@ BUTTON_ARIA_TRANSPARENT=透明化
|
|
|
24
21
|
BUTTON_ARIA_ATTENTION=注意
|
|
25
22
|
DATEPICKER_DATE_DESCRIPTION=資料輸入
|
|
26
23
|
TOGGLED=已切換
|
|
27
|
-
FIRST_PAGE=第一頁
|
|
28
|
-
LAST_PAGE=最後一頁
|
|
29
24
|
PREVIOUS_PAGE=上一頁
|
|
30
25
|
NEXT_PAGE=下一頁
|
|
31
26
|
CURRENT_PAGE=目前頁面
|
|
@@ -68,7 +63,6 @@ TEXTAREA_CHARACTERS_LEFT=剩餘 {0} 個字元
|
|
|
68
63
|
VALUE_STATE_TYPE_ERROR=欄位狀態錯誤
|
|
69
64
|
VALUE_STATE_TYPE_WARNING=欄位狀態警告
|
|
70
65
|
VALUE_STATE_TYPE_SUCCESS=欄位狀態成功
|
|
71
|
-
VALUE_STATE_TYPE_STANDARD=欄位狀態標準
|
|
72
66
|
CAROUSEL_PREVIOUS_ARROW_TEXT=上一頁
|
|
73
67
|
CAROUSEL_NEXT_ARROW_TEXT=下一頁
|
|
74
68
|
NO_MATCHES_FOUND=找不到符合項目。
|
|
@@ -99,8 +93,6 @@ ABOUT_SAP=關於 SAP
|
|
|
99
93
|
SITE_INFORMATION=網站資訊
|
|
100
94
|
AVATAR_TEXT=頭像
|
|
101
95
|
CALENDAR_ICON=開啟行事曆圖示
|
|
102
|
-
LIST_ITEM_EDIT_ICON=編輯清單項目輸入項
|
|
103
|
-
LIST_ITEM_DELETE_ICON=刪除清單項目輸入項
|
|
104
96
|
BACK_BUTTON_LABEL=返回按鈕
|
|
105
97
|
STATUS_BADGE_TEXT=狀態徽章
|
|
106
98
|
STATUS_BADGE_EDIT_TITLE=按一下以編輯個人資料
|
|
@@ -383,7 +383,11 @@
|
|
|
383
383
|
{
|
|
384
384
|
"name": "page-indicator-type",
|
|
385
385
|
"description": "Defines the style of the page indicator.\nAvailable options are:\n\n- `Default` - The page indicator will be visualized as dots if there are fewer than 9 pages. If there are more pages, the page indicator will switch to displaying the current page and the total number of pages. (e.g. X of Y)\n- `Numeric` - The page indicator will display the current page and the total number of pages. (e.g. X of Y)",
|
|
386
|
-
"values": [
|
|
386
|
+
"values": [
|
|
387
|
+
{ "name": "Default" },
|
|
388
|
+
{ "name": "None" },
|
|
389
|
+
{ "name": "Numeric" }
|
|
390
|
+
]
|
|
387
391
|
}
|
|
388
392
|
],
|
|
389
393
|
"references": []
|
|
@@ -4637,7 +4641,11 @@
|
|
|
4637
4641
|
{
|
|
4638
4642
|
"name": "size-more-button",
|
|
4639
4643
|
"description": "Defines the size of the \"More\" button.",
|
|
4640
|
-
"values": [
|
|
4644
|
+
"values": [
|
|
4645
|
+
{ "name": "Medium" },
|
|
4646
|
+
{ "name": "Small" },
|
|
4647
|
+
{ "name": "Large" }
|
|
4648
|
+
]
|
|
4641
4649
|
},
|
|
4642
4650
|
{
|
|
4643
4651
|
"name": "vertical-alignment",
|
package/dist/web-types.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
|
|
3
3
|
"name": "@sapudex/web-components",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.58.0",
|
|
5
5
|
"description-markup": "markdown",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
@@ -789,7 +789,7 @@
|
|
|
789
789
|
"name": "page-indicator-type",
|
|
790
790
|
"description": "Defines the style of the page indicator.\nAvailable options are:\n\n- `Default` - The page indicator will be visualized as dots if there are fewer than 9 pages. If there are more pages, the page indicator will switch to displaying the current page and the total number of pages. (e.g. X of Y)\n- `Numeric` - The page indicator will display the current page and the total number of pages. (e.g. X of Y)",
|
|
791
791
|
"value": {
|
|
792
|
-
"type": "\"Default\" | \"Numeric\"",
|
|
792
|
+
"type": "\"Default\" | \"None\" | \"Numeric\"",
|
|
793
793
|
"default": "\"Default\""
|
|
794
794
|
}
|
|
795
795
|
}
|
|
@@ -845,7 +845,7 @@
|
|
|
845
845
|
{
|
|
846
846
|
"name": "page-indicator-type",
|
|
847
847
|
"description": "Defines the style of the page indicator.\nAvailable options are:\n\n- `Default` - The page indicator will be visualized as dots if there are fewer than 9 pages. If there are more pages, the page indicator will switch to displaying the current page and the total number of pages. (e.g. X of Y)\n- `Numeric` - The page indicator will display the current page and the total number of pages. (e.g. X of Y)",
|
|
848
|
-
"value": { "type": "\"Default\" | \"Numeric\"" }
|
|
848
|
+
"value": { "type": "\"Default\" | \"None\" | \"Numeric\"" }
|
|
849
849
|
}
|
|
850
850
|
],
|
|
851
851
|
"events": [
|
|
@@ -9846,8 +9846,8 @@
|
|
|
9846
9846
|
"name": "size-more-button",
|
|
9847
9847
|
"description": "Defines the size of the \"More\" button.",
|
|
9848
9848
|
"value": {
|
|
9849
|
-
"type": "\"Medium\" | \"Small\"",
|
|
9850
|
-
"default": "\"
|
|
9849
|
+
"type": "\"Medium\" | \"Small\" | \"Large\"",
|
|
9850
|
+
"default": "\"Medium\""
|
|
9851
9851
|
}
|
|
9852
9852
|
},
|
|
9853
9853
|
{
|
|
@@ -9916,7 +9916,7 @@
|
|
|
9916
9916
|
{
|
|
9917
9917
|
"name": "size-more-button",
|
|
9918
9918
|
"description": "Defines the size of the \"More\" button.",
|
|
9919
|
-
"value": { "type": "\"Medium\" | \"Small\"" }
|
|
9919
|
+
"value": { "type": "\"Medium\" | \"Small\" | \"Large\"" }
|
|
9920
9920
|
},
|
|
9921
9921
|
{
|
|
9922
9922
|
"name": "vertical-alignment",
|
package/package.json
CHANGED
package/src/Carousel.ts
CHANGED
|
@@ -21,6 +21,7 @@ import {
|
|
|
21
21
|
import redirectAttributes from "./utils/redirectAttributes.js";
|
|
22
22
|
import type UI5Carousel from "@ui5/webcomponents/dist/Carousel.js";
|
|
23
23
|
import type { CarouselNavigateEventDetail } from "@ui5/webcomponents/dist/Carousel.js";
|
|
24
|
+
import type CarouselPageIndicatorType from "@ui5/webcomponents/dist/types/CarouselPageIndicatorType.js";
|
|
24
25
|
import type { UI5CustomEvent } from "@ui5/webcomponents-base";
|
|
25
26
|
import translate from "./utils/translate.js";
|
|
26
27
|
|
|
@@ -28,13 +29,18 @@ import CarouselTemplate from "./CarouselTemplate.js";
|
|
|
28
29
|
|
|
29
30
|
// Styles
|
|
30
31
|
import CarouselCss from "./generated/themes/Carousel.css.js";
|
|
31
|
-
import type CarouselPageIndicatorType from "@ui5/webcomponents/dist/types/CarouselPageIndicatorType.js";
|
|
32
32
|
|
|
33
33
|
export enum UDExCarouselNavigationPosition {
|
|
34
34
|
top = "top",
|
|
35
35
|
bottom = "bottom",
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
+
export enum UDExCarouselPageIndicatorType {
|
|
39
|
+
Default = "Default",
|
|
40
|
+
Numeric = "Numeric",
|
|
41
|
+
None = "None"
|
|
42
|
+
}
|
|
43
|
+
|
|
38
44
|
export enum UDExCarouselButtonDesign {
|
|
39
45
|
Secondary = "Secondary",
|
|
40
46
|
Tertiary = "Tertiary",
|
|
@@ -167,7 +173,7 @@ class UDExCarousel extends UI5Element {
|
|
|
167
173
|
* @public
|
|
168
174
|
*/
|
|
169
175
|
@property()
|
|
170
|
-
pageIndicatorType: `${
|
|
176
|
+
pageIndicatorType: `${UDExCarouselPageIndicatorType}` = "Default";
|
|
171
177
|
|
|
172
178
|
/**
|
|
173
179
|
* Defines the prev button is disabled
|
|
@@ -347,7 +353,7 @@ class UDExCarousel extends UI5Element {
|
|
|
347
353
|
return;
|
|
348
354
|
}
|
|
349
355
|
|
|
350
|
-
this._carousel.
|
|
356
|
+
this._carousel.navigateArrowLeft();
|
|
351
357
|
this._calculateDisabledButtonsState();
|
|
352
358
|
}
|
|
353
359
|
|
|
@@ -356,7 +362,7 @@ class UDExCarousel extends UI5Element {
|
|
|
356
362
|
return;
|
|
357
363
|
}
|
|
358
364
|
|
|
359
|
-
this._carousel.
|
|
365
|
+
this._carousel.navigateArrowRight();
|
|
360
366
|
this._calculateDisabledButtonsState();
|
|
361
367
|
}
|
|
362
368
|
|
|
@@ -381,9 +387,18 @@ class UDExCarousel extends UI5Element {
|
|
|
381
387
|
}
|
|
382
388
|
|
|
383
389
|
get carouselClass(): string {
|
|
384
|
-
|
|
390
|
+
let classes = "udex-carousel";
|
|
385
391
|
|
|
386
|
-
|
|
392
|
+
classes += ` udex-carousel__navigation--${this.navigationPlacement}`;
|
|
393
|
+
|
|
394
|
+
if (
|
|
395
|
+
this.navigationPlacement === UDExCarouselNavigationPosition.bottom
|
|
396
|
+
&& this.pageIndicatorType === UDExCarouselPageIndicatorType.None
|
|
397
|
+
) {
|
|
398
|
+
classes += " udex-carousel__navigation--bottom-buttons-only";
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
return classes;
|
|
387
402
|
}
|
|
388
403
|
|
|
389
404
|
get navigationWrapperClass(): string {
|
|
@@ -407,6 +422,13 @@ class UDExCarousel extends UI5Element {
|
|
|
407
422
|
}
|
|
408
423
|
|
|
409
424
|
get buttonDesign(): UDExCarouselButtonDesign {
|
|
425
|
+
if (
|
|
426
|
+
this.navigationPlacement === UDExCarouselNavigationPosition.bottom
|
|
427
|
+
&& this.pageIndicatorType === UDExCarouselPageIndicatorType.None
|
|
428
|
+
) {
|
|
429
|
+
return UDExCarouselButtonDesign.Secondary;
|
|
430
|
+
}
|
|
431
|
+
|
|
410
432
|
return this.navigationPlacement === UDExCarouselNavigationPosition.top
|
|
411
433
|
? UDExCarouselButtonDesign.Secondary
|
|
412
434
|
: UDExCarouselButtonDesign.Tertiary;
|
|
@@ -420,6 +442,13 @@ class UDExCarousel extends UI5Element {
|
|
|
420
442
|
}
|
|
421
443
|
|
|
422
444
|
get _hidePageIndicator(): boolean {
|
|
445
|
+
if (
|
|
446
|
+
this.navigationPlacement === UDExCarouselNavigationPosition.bottom
|
|
447
|
+
&& this.pageIndicatorType === UDExCarouselPageIndicatorType.None
|
|
448
|
+
) {
|
|
449
|
+
return true;
|
|
450
|
+
}
|
|
451
|
+
|
|
423
452
|
return this.navigationPlacement === UDExCarouselNavigationPosition.top;
|
|
424
453
|
}
|
|
425
454
|
|
|
@@ -427,8 +456,14 @@ class UDExCarousel extends UI5Element {
|
|
|
427
456
|
return this.shadowRoot!.querySelector<UI5Carousel>("[ui5-carousel]");
|
|
428
457
|
}
|
|
429
458
|
|
|
430
|
-
get
|
|
431
|
-
|
|
459
|
+
get _isBottomDotNavigation(): boolean {
|
|
460
|
+
if (
|
|
461
|
+
this.navigationPlacement === UDExCarouselNavigationPosition.bottom
|
|
462
|
+
&& this.pageIndicatorType !== UDExCarouselPageIndicatorType.None
|
|
463
|
+
) {
|
|
464
|
+
return true;
|
|
465
|
+
}
|
|
466
|
+
return false;
|
|
432
467
|
}
|
|
433
468
|
|
|
434
469
|
get autoplayToggleButtonTooltipText(): string {
|
|
@@ -436,6 +471,14 @@ class UDExCarousel extends UI5Element {
|
|
|
436
471
|
? translate(UDExCarousel, CAROUSEL_AUTOPLAY_TOGGLE_START)
|
|
437
472
|
: translate(UDExCarousel, CAROUSEL_AUTOPLAY_TOGGLE_STOP);
|
|
438
473
|
}
|
|
474
|
+
|
|
475
|
+
get sanitizedPageIndicatorType(): `${CarouselPageIndicatorType}` {
|
|
476
|
+
if (this.pageIndicatorType === UDExCarouselPageIndicatorType.None) {
|
|
477
|
+
return UDExCarouselPageIndicatorType.Default;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
return this.pageIndicatorType;
|
|
481
|
+
}
|
|
439
482
|
}
|
|
440
483
|
|
|
441
484
|
UDExCarousel.define();
|
package/src/CarouselTemplate.tsx
CHANGED
|
@@ -17,7 +17,7 @@ export default function CarouselTemplate(this: Carousel) {
|
|
|
17
17
|
|
|
18
18
|
<UI5Carousel
|
|
19
19
|
itemsPerPage={this.itemsPerPage}
|
|
20
|
-
pageIndicatorType={this.
|
|
20
|
+
pageIndicatorType={this.sanitizedPageIndicatorType}
|
|
21
21
|
id="carousel"
|
|
22
22
|
hideNavigationArrows
|
|
23
23
|
arrowsPlacement={CarouselArrowsPlacement.Navigation}
|
|
@@ -70,11 +70,11 @@ function navigation(this: Carousel) {
|
|
|
70
70
|
design={this.buttonDesign}
|
|
71
71
|
tooltip={this.previousPageText}
|
|
72
72
|
onClick={this._prevButtonClick}
|
|
73
|
-
part="prev-button"
|
|
74
|
-
|
|
73
|
+
part="prev-button"
|
|
74
|
+
></UDExButton>
|
|
75
75
|
|
|
76
76
|
{
|
|
77
|
-
this.
|
|
77
|
+
this._isBottomDotNavigation &&
|
|
78
78
|
<div className="udex-carousel__navigation-page-indicator-spacer" />
|
|
79
79
|
}
|
|
80
80
|
|
|
@@ -87,12 +87,12 @@ function navigation(this: Carousel) {
|
|
|
87
87
|
design={this.buttonDesign}
|
|
88
88
|
tooltip={this.nextPageText}
|
|
89
89
|
onClick={this._nextButtonClick}
|
|
90
|
-
part="next-button"
|
|
91
|
-
|
|
90
|
+
part="next-button"
|
|
91
|
+
></UDExButton>
|
|
92
92
|
</div>
|
|
93
93
|
|
|
94
94
|
{
|
|
95
|
-
this.autoplay && this.
|
|
95
|
+
this.autoplay && this._isBottomDotNavigation &&
|
|
96
96
|
<div className="udex-carousel__navigation-spacer"></div>
|
|
97
97
|
}
|
|
98
98
|
</div>
|
package/src/List.ts
CHANGED
|
@@ -215,6 +215,7 @@ class UDExList extends UI5Element {
|
|
|
215
215
|
if (target.isGroup && target.hasAttribute("collapsible") && target.collapsed) {
|
|
216
216
|
target.collapsed = false;
|
|
217
217
|
this.setCollapsedItems(false, target);
|
|
218
|
+
this.fireAccordionToggle(target);
|
|
218
219
|
}
|
|
219
220
|
}
|
|
220
221
|
|
|
@@ -223,9 +224,25 @@ class UDExList extends UI5Element {
|
|
|
223
224
|
if (target.isGroup && target.hasAttribute("collapsible") && !target.collapsed) {
|
|
224
225
|
target.collapsed = true;
|
|
225
226
|
this.setCollapsedItems(true, target);
|
|
227
|
+
this.fireAccordionToggle(target);
|
|
226
228
|
}
|
|
227
229
|
}
|
|
228
230
|
|
|
231
|
+
/**
|
|
232
|
+
* Arrow-key expand/collapse toggles `collapsed` directly here (multi-select
|
|
233
|
+
* headers deliver Left/Right to the List, not to the header's own key handler),
|
|
234
|
+
* so the `accordion-icon-click` event that drives the collapse/expand live-region
|
|
235
|
+
* announcement is never fired on this path. Re-emit it from the header so
|
|
236
|
+
* SearchableListBase announces the new state to screen readers, matching the
|
|
237
|
+
* chevron/pointer and single-select paths.
|
|
238
|
+
*/
|
|
239
|
+
fireAccordionToggle(target: UDExListItemBase): void {
|
|
240
|
+
target.dispatchEvent(new CustomEvent("accordion-icon-click", {
|
|
241
|
+
bubbles: true,
|
|
242
|
+
detail: { collapsed: target.collapsed },
|
|
243
|
+
}));
|
|
244
|
+
}
|
|
245
|
+
|
|
229
246
|
handleUpArrow(e: KeyboardEvent): void {
|
|
230
247
|
e.preventDefault();
|
|
231
248
|
const items = this.getKeyboardNavigationItems();
|
|
@@ -606,9 +623,14 @@ class UDExList extends UI5Element {
|
|
|
606
623
|
return this.accessibleRole !== "listbox" ? this.accessibleRole : "list";
|
|
607
624
|
}
|
|
608
625
|
|
|
609
|
-
/**
|
|
626
|
+
/**
|
|
627
|
+
* aria-multiselectable is exposed for every MultiSelect list — the flat listbox
|
|
628
|
+
* and the collapsible tree alike. It is required so the screen reader announces
|
|
629
|
+
* each option's selected / not-selected state (from aria-selected) instead of
|
|
630
|
+
* treating the container as single-select and announcing only the active option.
|
|
631
|
+
*/
|
|
610
632
|
get _listAriaMultiSelectable(): string | undefined {
|
|
611
|
-
return
|
|
633
|
+
return this.modeMultiSelect ? "true" : undefined;
|
|
612
634
|
}
|
|
613
635
|
}
|
|
614
636
|
|
|
@@ -46,6 +46,19 @@ class UDExListGroupHeaderBase extends UDExListItemBase {
|
|
|
46
46
|
@property({ type: Boolean })
|
|
47
47
|
_treeMode: boolean = false;
|
|
48
48
|
|
|
49
|
+
/**
|
|
50
|
+
* Marks the group as a self-contained role="listbox" (FilterMenu real-focus
|
|
51
|
+
* SingleSelect, non-collapsible groups). When true, this group's options are
|
|
52
|
+
* wrapped in their own listbox so JAWS counts them natively per group. Set by
|
|
53
|
+
* the parent (SearchableListBase.isPerGroupListbox) only when the whole list is
|
|
54
|
+
* grouped; the outer #udex-list drops its listbox role in that case.
|
|
55
|
+
*
|
|
56
|
+
* @default false
|
|
57
|
+
* @private
|
|
58
|
+
*/
|
|
59
|
+
@property({ type: Boolean })
|
|
60
|
+
_groupAsListbox: boolean = false;
|
|
61
|
+
|
|
49
62
|
/**
|
|
50
63
|
* Slot for group header list items.
|
|
51
64
|
*
|
|
@@ -210,10 +223,29 @@ class UDExListGroupHeaderBase extends UDExListItemBase {
|
|
|
210
223
|
return this._treeMode;
|
|
211
224
|
}
|
|
212
225
|
|
|
226
|
+
// FilterMenu real-focus SingleSelect non-collapsible group: its options are
|
|
227
|
+
// rendered inside their own role="listbox" so JAWS counts them natively per
|
|
228
|
+
// group ("1 of 4"). JAWS ignores role="group" boundaries and author
|
|
229
|
+
// aria-posinset within a single listbox, but counts reliably within a flat
|
|
230
|
+
// listbox. Excludes SelectBox (_useHostAriaRole) and tree mode.
|
|
231
|
+
get isPerGroupListbox(): boolean {
|
|
232
|
+
return this._groupAsListbox && !this._useHostAriaRole && !this._treeMode;
|
|
233
|
+
}
|
|
234
|
+
|
|
213
235
|
get singleCollapsibleHeaderRole(): string {
|
|
214
236
|
return this._treeMode ? "treeitem" : "button";
|
|
215
237
|
}
|
|
216
238
|
|
|
239
|
+
// Pins the collapsible header's accessible name to its heading (+ supporting text)
|
|
240
|
+
// so the decorative expand/collapse chevron button — a child of the header — does
|
|
241
|
+
// not fold its "Expand"/"Collapse" label into the header's name. The chevron is a
|
|
242
|
+
// mouse affordance only (tabindex=-1); its state is already conveyed by
|
|
243
|
+
// aria-expanded, so excluding its name avoids announcing "Collapse" alongside the
|
|
244
|
+
// spoken "expanded"/"collapsed" state.
|
|
245
|
+
get collapsibleHeaderLabelledBy(): string {
|
|
246
|
+
return this.supportingText ? "group-heading group-supporting-text" : "group-heading";
|
|
247
|
+
}
|
|
248
|
+
|
|
217
249
|
get collapsibleHeaderAccessibleRole(): string {
|
|
218
250
|
return this._treeMode ? "treeitem" : "button";
|
|
219
251
|
}
|
|
@@ -222,7 +254,13 @@ class UDExListGroupHeaderBase extends UDExListItemBase {
|
|
|
222
254
|
if (this._useHostAriaRole) {
|
|
223
255
|
return "presentation";
|
|
224
256
|
}
|
|
225
|
-
|
|
257
|
+
// Tree mode keeps the treeitem/group nesting; per-group-listbox mode moves the
|
|
258
|
+
// single labelled role="listbox" onto the inner options wrapper — the outer div
|
|
259
|
+
// is transparent so screen readers don't announce a redundant "group" around it.
|
|
260
|
+
if (this._treeMode || this.isPerGroupListbox) {
|
|
261
|
+
return "none";
|
|
262
|
+
}
|
|
263
|
+
return "group";
|
|
226
264
|
}
|
|
227
265
|
|
|
228
266
|
get contentRegionRole(): string {
|
|
@@ -230,7 +268,11 @@ class UDExListGroupHeaderBase extends UDExListItemBase {
|
|
|
230
268
|
}
|
|
231
269
|
|
|
232
270
|
get nonCollapsibleContainerRole(): string {
|
|
233
|
-
|
|
271
|
+
// The single role="group" for non-collapsible headers lives on the outer
|
|
272
|
+
// div.udex-list__group wrapper (groupWrapperRole = "group" in non-tree mode,
|
|
273
|
+
// labelled by aria-labelledby="group-heading"). This container div must be
|
|
274
|
+
// transparent so that extra "group group" announcements are avoided.
|
|
275
|
+
return "none";
|
|
234
276
|
}
|
|
235
277
|
|
|
236
278
|
get nonCollapsibleHeaderAccessibleRole(): string | undefined {
|
|
@@ -35,18 +35,11 @@ function SingleGroupHeader(this: UDExListGroupHeader) {
|
|
|
35
35
|
);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
// The visible header row of the single-select collapsible group: number/icon,
|
|
39
|
+
// heading + supporting text, and the expand/collapse chevron.
|
|
40
|
+
function SingleCollapsibleHeaderRow(this: UDExListGroupHeader) {
|
|
39
41
|
return (
|
|
40
|
-
|
|
41
|
-
class={`udex-list__group-content udex-list__group-header-wrap ${this.sizeClass}`}
|
|
42
|
-
part="group-item"
|
|
43
|
-
id={`${this._id}_group-content__focusable`}
|
|
44
|
-
role={this.singleCollapsibleHeaderRole as AriaRole}
|
|
45
|
-
tabIndex={0}
|
|
46
|
-
onKeyDown={this.handleKeyDown}
|
|
47
|
-
aria-expanded={this.expanded}
|
|
48
|
-
aria-controls={this.ariaControlsId}
|
|
49
|
-
_tab-index={Number(this._effectiveTabIndex)}>
|
|
42
|
+
<>
|
|
50
43
|
{this.typeNumber && <span class="udex-list__number">{this.numberOfItem}.</span>}
|
|
51
44
|
{this.typeCircle && <span class="udex-list__circle">•</span>}
|
|
52
45
|
{this.typeIcon && (
|
|
@@ -65,7 +58,7 @@ function SingleGroupHeaderCollapsible(this: UDExListGroupHeader) {
|
|
|
65
58
|
{...({ innerHTML: this.label } as object)}>
|
|
66
59
|
</span>
|
|
67
60
|
{this.supportingText && (
|
|
68
|
-
<span class={`udex-list__supporting-text ${this.sizeClass}`}>{this.supportingText}</span>
|
|
61
|
+
<span id="group-supporting-text" class={`udex-list__supporting-text ${this.sizeClass}`}>{this.supportingText}</span>
|
|
69
62
|
)}
|
|
70
63
|
</div>
|
|
71
64
|
<div class="udex-list__group-heading__icon-wrapper">
|
|
@@ -74,12 +67,48 @@ function SingleGroupHeaderCollapsible(this: UDExListGroupHeader) {
|
|
|
74
67
|
design="Tertiary"
|
|
75
68
|
class="udex-list__group-heading__icon"
|
|
76
69
|
onClick={this.handleCollapseIconClick as unknown as EventListener}
|
|
70
|
+
onMouseDown={this.handleCollapseIconMouseDown}
|
|
77
71
|
tabindex={-1}
|
|
78
72
|
accessible-name={this.expandButtonAccessibleName}
|
|
79
73
|
icon={slimArrowRight}
|
|
80
74
|
{...({ "mode": "Interactive" } as object)}
|
|
81
75
|
/>
|
|
82
76
|
</div>
|
|
77
|
+
</>
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function SingleGroupHeaderCollapsible(this: UDExListGroupHeader) {
|
|
82
|
+
// Conformant WAI-ARIA tree (FilterMenu real focus): nest the child role="group"
|
|
83
|
+
// INSIDE this treeitem so screen readers count children per group natively — no
|
|
84
|
+
// explicit aria-posinset/aria-setsize (which JAWS distrusts). Excludes SelectBox
|
|
85
|
+
// (aria-activedescendant, _useHostAriaRole) and non-tree modes, which keep the flat
|
|
86
|
+
// structure with the content region emitted as a sibling by the template body.
|
|
87
|
+
const nested = this.isTreeAccessibleRole && !this._useHostAriaRole;
|
|
88
|
+
return (
|
|
89
|
+
<div
|
|
90
|
+
class={`udex-list__group-content ${nested ? "udex-list__group-content--nested " : ""}udex-list__group-header-wrap ${this.sizeClass}`}
|
|
91
|
+
part="group-item"
|
|
92
|
+
id={`${this._id}_group-content__focusable`}
|
|
93
|
+
role={this.singleCollapsibleHeaderRole as AriaRole}
|
|
94
|
+
tabIndex={0}
|
|
95
|
+
onKeyDown={this.handleKeyDown}
|
|
96
|
+
aria-expanded={this.expanded}
|
|
97
|
+
aria-controls={this.ariaControlsId}
|
|
98
|
+
aria-labelledby={this.collapsibleHeaderLabelledBy}
|
|
99
|
+
_tab-index={Number(this._effectiveTabIndex)}>
|
|
100
|
+
{nested ? (
|
|
101
|
+
<>
|
|
102
|
+
<div class="udex-list__group-header-row">
|
|
103
|
+
{SingleCollapsibleHeaderRow.call(this)}
|
|
104
|
+
</div>
|
|
105
|
+
<div id={this.ariaControlsId} role={this.contentRegionRole as AriaRole} class="udex-list__group-list__content">
|
|
106
|
+
<slot></slot>
|
|
107
|
+
</div>
|
|
108
|
+
</>
|
|
109
|
+
) : (
|
|
110
|
+
SingleCollapsibleHeaderRow.call(this)
|
|
111
|
+
)}
|
|
83
112
|
</div>
|
|
84
113
|
);
|
|
85
114
|
}
|
|
@@ -116,6 +145,8 @@ function MultiOrRadioGroupHeader(this: UDExListGroupHeader) {
|
|
|
116
145
|
accessible-role={this.nonCollapsibleHeaderAccessibleRole}
|
|
117
146
|
_additional-class-name={this._additionalClassName}
|
|
118
147
|
_tab-index={Number(this._effectiveTabIndex)}
|
|
148
|
+
_aria-pos-in-set={this._ariaPosInSet}
|
|
149
|
+
_aria-set-size={this._ariaSetSize}
|
|
119
150
|
_icon={this._icon}
|
|
120
151
|
_filtered={this._filtered}
|
|
121
152
|
/>
|
|
@@ -177,6 +208,8 @@ function MultiOrRadioGroupHeaderCollapsible(this: UDExListGroupHeader) {
|
|
|
177
208
|
onAccordionIconClick={this.handleCollapseIconClick as EventListener}
|
|
178
209
|
_additional-class-name={this._additionalClassName}
|
|
179
210
|
_tab-index={Number(this._effectiveTabIndex)}
|
|
211
|
+
_aria-pos-in-set={this._ariaPosInSet}
|
|
212
|
+
_aria-set-size={this._ariaSetSize}
|
|
180
213
|
_icon={this._icon}
|
|
181
214
|
_filtered={this._filtered}
|
|
182
215
|
/>
|
|
@@ -184,12 +217,16 @@ function MultiOrRadioGroupHeaderCollapsible(this: UDExListGroupHeader) {
|
|
|
184
217
|
}
|
|
185
218
|
|
|
186
219
|
export default function ListGroupHeaderTemplate(this: UDExListGroupHeader) {
|
|
220
|
+
// Single-select real-focus tree: SingleGroupHeaderCollapsible now emits the
|
|
221
|
+
// role="group" content region as a CHILD of the treeitem (conformant nesting),
|
|
222
|
+
// so the template body must not also emit it as a sibling.
|
|
223
|
+
const singleSelectNested = this.isTreeAccessibleRole && !this.useListItemHeader && !this._useHostAriaRole;
|
|
187
224
|
return (
|
|
188
225
|
<div
|
|
189
226
|
part="item"
|
|
190
227
|
class="udex-list__group"
|
|
191
228
|
role={this.groupWrapperRole as AriaRole}
|
|
192
|
-
aria-labelledby={!this.isTreeAccessibleRole ? "group-heading" : undefined}>
|
|
229
|
+
aria-labelledby={(!this.isTreeAccessibleRole && !this.isPerGroupListbox) ? "group-heading" : undefined}>
|
|
193
230
|
{this.collapsible ? (
|
|
194
231
|
<div
|
|
195
232
|
class="udex-list__group-list"
|
|
@@ -199,28 +236,42 @@ export default function ListGroupHeaderTemplate(this: UDExListGroupHeader) {
|
|
|
199
236
|
? MultiOrRadioGroupHeaderCollapsible.call(this)
|
|
200
237
|
: SingleGroupHeaderCollapsible.call(this)
|
|
201
238
|
}
|
|
202
|
-
|
|
203
|
-
{this.
|
|
204
|
-
|
|
205
|
-
) : (
|
|
206
|
-
<div role="listbox" aria-label="group">
|
|
239
|
+
{!singleSelectNested && (
|
|
240
|
+
<div id={this.ariaControlsId} role={this.contentRegionRole as AriaRole} class="udex-list__group-list__content">
|
|
241
|
+
{this.isTreeAccessibleRole ? (
|
|
207
242
|
<slot></slot>
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
243
|
+
) : (
|
|
244
|
+
<div role="listbox" aria-label="group">
|
|
245
|
+
<slot></slot>
|
|
246
|
+
</div>
|
|
247
|
+
)}
|
|
248
|
+
</div>
|
|
249
|
+
)}
|
|
211
250
|
</div>
|
|
212
251
|
) : (
|
|
213
252
|
<div
|
|
214
253
|
role={this.nonCollapsibleContainerRole as AriaRole}
|
|
215
254
|
class="udex-list__group-list"
|
|
216
|
-
aria-label="group"
|
|
217
255
|
onui5-item-press={this.getHandleGroupItemsClick}
|
|
218
256
|
{...({ name: "group" } as object)}>
|
|
219
257
|
{this.modeMultiSelectOrRadioGroup
|
|
220
258
|
? MultiOrRadioGroupHeader.call(this)
|
|
221
259
|
: SingleGroupHeader.call(this)
|
|
222
260
|
}
|
|
223
|
-
|
|
261
|
+
{this.isTreeAccessibleRole ? (
|
|
262
|
+
<div role="group">
|
|
263
|
+
<slot></slot>
|
|
264
|
+
</div>
|
|
265
|
+
) : this.isPerGroupListbox ? (
|
|
266
|
+
// Each group is its own labelled listbox: JAWS counts the options natively
|
|
267
|
+
// per group ("Python, 1 of 4"). The outer #udex-list is presentational
|
|
268
|
+
// (SearchableListBase.isPerGroupListbox) so this is not a nested listbox.
|
|
269
|
+
<div role="listbox" aria-labelledby="group-heading">
|
|
270
|
+
<slot></slot>
|
|
271
|
+
</div>
|
|
272
|
+
) : (
|
|
273
|
+
<slot></slot>
|
|
274
|
+
)}
|
|
224
275
|
</div>
|
|
225
276
|
)}
|
|
226
277
|
</div>
|