@sapudex/web-components 2.61.0 → 2.63.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cypress/specs/AccordionSpotlight.cy.tsx +43 -2
- package/cypress/specs/Carousel.cy.tsx +88 -0
- package/cypress/specs/CountrySelector.cy.tsx +233 -6
- package/cypress/specs/FilterMenu.cy.tsx +39 -45
- package/cypress/specs/List.cy.tsx +624 -10
- package/cypress/specs/ListItem.cy.tsx +50 -0
- package/cypress/specs/MastheadCountrySelector.cy.tsx +177 -0
- package/cypress/specs/SelectBox.cy.tsx +239 -131
- package/cypress/specs/SelectBoxAccessibility.cy.tsx +3109 -0
- package/cypress/specs/SideNavigation.cy.tsx +49 -0
- package/cypress/specs/SideNavigationMobile.cy.tsx +69 -0
- package/cypress/specs/TagGroup.cy.tsx +168 -0
- package/cypress/support/component-imports.instrumented.ts +4 -0
- package/cypress/support/component-imports.src.ts +4 -0
- package/dist/AccordionItemTemplate.js +1 -1
- package/dist/AccordionItemTemplate.js.map +1 -1
- package/dist/AccordionSpotlight.d.ts +7 -2
- package/dist/AccordionSpotlight.js +31 -6
- package/dist/AccordionSpotlight.js.map +1 -1
- package/dist/AccordionSpotlightItem.d.ts +3 -1
- package/dist/AccordionSpotlightItem.js +3 -1
- package/dist/AccordionSpotlightItem.js.map +1 -1
- package/dist/Carousel.d.ts +1 -0
- package/dist/Carousel.js +19 -3
- package/dist/Carousel.js.map +1 -1
- package/dist/CountrySelector.js +1 -3
- package/dist/CountrySelector.js.map +1 -1
- package/dist/List.d.ts +2 -0
- package/dist/List.js +22 -4
- package/dist/List.js.map +1 -1
- package/dist/ListGroupHeader.js +5 -1
- package/dist/ListGroupHeader.js.map +1 -1
- package/dist/ListGroupHeaderBase.d.ts +2 -0
- package/dist/ListGroupHeaderBase.js +15 -2
- package/dist/ListGroupHeaderBase.js.map +1 -1
- package/dist/ListGroupHeaderTemplate.js +14 -22
- package/dist/ListGroupHeaderTemplate.js.map +1 -1
- package/dist/ListItem.d.ts +1 -2
- package/dist/ListItem.js +14 -12
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItemBase.d.ts +5 -0
- package/dist/ListItemBase.js +11 -1
- package/dist/ListItemBase.js.map +1 -1
- package/dist/ListItemTemplate.js +1 -1
- package/dist/ListItemTemplate.js.map +1 -1
- package/dist/ListSelectAllTemplate.js +1 -1
- package/dist/ListSelectAllTemplate.js.map +1 -1
- package/dist/ListTemplate.js +2 -1
- package/dist/ListTemplate.js.map +1 -1
- package/dist/MastheadCountrySelector.d.ts +14 -0
- package/dist/MastheadCountrySelector.js +6 -0
- package/dist/MastheadCountrySelector.js.map +1 -1
- package/dist/MastheadCountrySelectorTemplate.js +1 -1
- package/dist/MastheadCountrySelectorTemplate.js.map +1 -1
- package/dist/MessageStrip.d.ts +1 -0
- package/dist/MessageStrip.js +6 -0
- package/dist/MessageStrip.js.map +1 -1
- package/dist/Search.d.ts +13 -3
- package/dist/Search.js +36 -11
- package/dist/Search.js.map +1 -1
- package/dist/SearchTemplate.js +1 -1
- package/dist/SearchTemplate.js.map +1 -1
- package/dist/SearchableListBase.d.ts +2 -0
- package/dist/SearchableListBase.js +13 -3
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SearchableListBaseTemplate.js +42 -33
- package/dist/SearchableListBaseTemplate.js.map +1 -1
- package/dist/SelectBase.d.ts +18 -33
- package/dist/SelectBase.js +124 -139
- package/dist/SelectBase.js.map +1 -1
- package/dist/SelectBox.d.ts +3 -0
- package/dist/SelectBox.js +19 -7
- package/dist/SelectBox.js.map +1 -1
- package/dist/SelectBoxTemplate.js +3 -3
- package/dist/SelectBoxTemplate.js.map +1 -1
- package/dist/SideNavigation.d.ts +9 -0
- package/dist/SideNavigation.js +9 -0
- package/dist/SideNavigation.js.map +1 -1
- package/dist/SideNavigationItem.js +2 -0
- package/dist/SideNavigationItem.js.map +1 -1
- package/dist/SideNavigationItemTemplate.d.ts +2 -0
- package/dist/SideNavigationItemTemplate.js +15 -0
- package/dist/SideNavigationItemTemplate.js.map +1 -0
- package/dist/SideNavigationMobile.d.ts +19 -0
- package/dist/SideNavigationMobile.js +33 -3
- package/dist/SideNavigationMobile.js.map +1 -1
- package/dist/SideNavigationMobileTemplate.js +1 -2
- package/dist/SideNavigationMobileTemplate.js.map +1 -1
- package/dist/SideNavigationSubItem.d.ts +4 -1
- package/dist/SideNavigationSubItem.js +22 -10
- package/dist/SideNavigationSubItem.js.map +1 -1
- package/dist/SideNavigationSubItemTemplate.js +1 -2
- package/dist/SideNavigationSubItemTemplate.js.map +1 -1
- package/dist/SideNavigationTemplate.d.ts +2 -0
- package/dist/SideNavigationTemplate.js +6 -0
- package/dist/SideNavigationTemplate.js.map +1 -0
- package/dist/TagGroup.d.ts +3 -0
- package/dist/TagGroup.js +31 -0
- package/dist/TagGroup.js.map +1 -1
- package/dist/TagGroupTemplate.js +1 -1
- package/dist/TagGroupTemplate.js.map +1 -1
- package/dist/assets/{InputSuggestions-1OnUn6pM.js → InputSuggestions-6S5UueXO.js} +2 -2
- package/dist/assets/{ListItemStandardExpandableTextTemplate-CoBAMp_v.js → ListItemStandardExpandableTextTemplate-OidrwM_d.js} +2 -2
- package/dist/assets/{bundle.esm-BqaVWFKf.js → bundle.esm-DaFsZANO.js} +237 -239
- package/dist/assets/messagebundle_ar-22dGHdkl.js +1 -0
- package/dist/assets/messagebundle_ar-DbxuUDUB.js +1 -0
- package/dist/assets/messagebundle_bg-CaaOz5e4.js +1 -0
- package/dist/assets/messagebundle_bg-QOUvq6-8.js +1 -0
- package/dist/assets/messagebundle_ca-D-8eSg1w.js +1 -0
- package/dist/assets/messagebundle_ca-jsUpFfNJ.js +1 -0
- package/dist/assets/messagebundle_cnr-BdSolJRo.js +1 -0
- package/dist/assets/messagebundle_cnr-rtr9Ox4O.js +1 -0
- package/dist/assets/messagebundle_cs-CbM7zJ23.js +1 -0
- package/dist/assets/messagebundle_cy-D5E7e9o1.js +1 -0
- package/dist/assets/messagebundle_cy-hajQLyoj.js +1 -0
- package/dist/assets/messagebundle_da-C3PD-hWQ.js +1 -0
- package/dist/assets/messagebundle_da-DFzvQYW2.js +1 -0
- package/dist/assets/messagebundle_de-C106E9io.js +1 -0
- package/dist/assets/messagebundle_de-C36z5lgV.js +1 -0
- package/dist/assets/messagebundle_el-BLHqa1_J.js +1 -0
- package/dist/assets/messagebundle_el-k8W9FVQI.js +1 -0
- package/dist/assets/messagebundle_en-ClXds397.js +1 -0
- package/dist/assets/messagebundle_en-DgPtAFO8.js +1 -0
- package/dist/assets/messagebundle_en_GB-DxulA9qE.js +1 -0
- package/dist/assets/messagebundle_en_GB-LxAIZigF.js +1 -0
- package/dist/assets/{messagebundle_en_US_sappsd-Se8GgI58.js → messagebundle_en_US_sappsd-TZz2y4pV.js} +1 -1
- package/dist/assets/messagebundle_en_US_sappsd-oE0A2op2.js +1 -0
- package/dist/assets/messagebundle_en_US_saprigi-C6FsbpF8.js +1 -0
- package/dist/assets/{messagebundle_en_US_saprigi-CbfvaHUL.js → messagebundle_en_US_saprigi-CkPhuOLS.js} +1 -1
- package/dist/assets/messagebundle_en_US_saptrc-CFSYKuS7.js +1 -0
- package/dist/assets/messagebundle_en_US_saptrc-CNZe1wPP.js +1 -0
- package/dist/assets/messagebundle_es-C3ijAvKG.js +1 -0
- package/dist/assets/messagebundle_es-wi4P-8Bo.js +1 -0
- package/dist/assets/messagebundle_es_MX-JEoOD2AD.js +1 -0
- package/dist/assets/messagebundle_es_MX-qDQ65ei9.js +1 -0
- package/dist/assets/messagebundle_et-C3wgDmm9.js +1 -0
- package/dist/assets/messagebundle_et-D4r4iubd.js +1 -0
- package/dist/assets/messagebundle_fi-BjyQcbRb.js +1 -0
- package/dist/assets/messagebundle_fi-CivJKH9k.js +1 -0
- package/dist/assets/messagebundle_fr-BxDSBfD5.js +1 -0
- package/dist/assets/messagebundle_fr-JN2VAe-b.js +1 -0
- package/dist/assets/messagebundle_fr_CA-FkrcsWH5.js +1 -0
- package/dist/assets/messagebundle_fr_CA-phd0XOeR.js +1 -0
- package/dist/assets/messagebundle_hi-B_pehoTp.js +1 -0
- package/dist/assets/messagebundle_hi-CVOoC3dA.js +1 -0
- package/dist/assets/messagebundle_hr-BYS-ya62.js +1 -0
- package/dist/assets/messagebundle_hr-DHuCJjK8.js +1 -0
- package/dist/assets/messagebundle_hu-Crn0Y1hl.js +1 -0
- package/dist/assets/messagebundle_hu-DJL3QHT4.js +1 -0
- package/dist/assets/messagebundle_id-BJEG-7Up.js +1 -0
- package/dist/assets/messagebundle_id-CgbG2IVb.js +1 -0
- package/dist/assets/messagebundle_it-B-E3gO1k.js +1 -0
- package/dist/assets/messagebundle_it-DHwy0JuE.js +1 -0
- package/dist/assets/messagebundle_iw-BFfL9nZy.js +1 -0
- package/dist/assets/messagebundle_iw-BgyHu_0a.js +1 -0
- package/dist/assets/messagebundle_ja-BDNEwBMO.js +1 -0
- package/dist/assets/messagebundle_ja-eyoqeb4r.js +1 -0
- package/dist/assets/messagebundle_kk-BA_1qhYv.js +1 -0
- package/dist/assets/messagebundle_kk-CTAXqbPN.js +1 -0
- package/dist/assets/messagebundle_ko-C1tsjQMn.js +1 -0
- package/dist/assets/messagebundle_ko-CkiNi7iV.js +1 -0
- package/dist/assets/messagebundle_lt-Dp0c8r7p.js +1 -0
- package/dist/assets/{messagebundle_lt-BGK5mpcm.js → messagebundle_lt-bNum-ekg.js} +1 -1
- package/dist/assets/messagebundle_lv-B9UWTGX9.js +1 -0
- package/dist/assets/messagebundle_lv-D02PBhtR.js +1 -0
- package/dist/assets/messagebundle_mk--Xt_Ciey.js +1 -0
- package/dist/assets/messagebundle_mk-D6s2Tr95.js +1 -0
- package/dist/assets/messagebundle_ms-BAqsvtp5.js +1 -0
- package/dist/assets/messagebundle_ms-BobJaFPp.js +1 -0
- package/dist/assets/messagebundle_nl-BJCykHj1.js +1 -0
- package/dist/assets/messagebundle_nl-Dj7LaMyb.js +1 -0
- package/dist/assets/messagebundle_no-CR_uQXUz.js +1 -0
- package/dist/assets/messagebundle_no-CnwJbEW8.js +1 -0
- package/dist/assets/messagebundle_pl-D6FQ-6EC.js +1 -0
- package/dist/assets/messagebundle_pl-eJC2NE6N.js +1 -0
- package/dist/assets/messagebundle_pt-CbdPbTKR.js +1 -0
- package/dist/assets/messagebundle_pt-n8LcOyWG.js +1 -0
- package/dist/assets/messagebundle_pt_PT-B17ziKL9.js +1 -0
- package/dist/assets/messagebundle_pt_PT-BVpS4lrC.js +1 -0
- package/dist/assets/messagebundle_ro-C0jrNva4.js +1 -0
- package/dist/assets/messagebundle_ro-ixITTbJt.js +1 -0
- package/dist/assets/messagebundle_ru-Bh6RMNe2.js +1 -0
- package/dist/assets/messagebundle_ru-Dbxms1Xm.js +1 -0
- package/dist/assets/messagebundle_sh-CMDXUWge.js +1 -0
- package/dist/assets/messagebundle_sh-Cb-sVI_0.js +1 -0
- package/dist/assets/messagebundle_sk-DZkkgRSd.js +1 -0
- package/dist/assets/{messagebundle_sk-CXOF1RuF.js → messagebundle_sk-Dqb_XwMg.js} +1 -1
- package/dist/assets/messagebundle_sl-DIl-2Lb1.js +1 -0
- package/dist/assets/messagebundle_sl-Dx6UWXni.js +1 -0
- package/dist/assets/messagebundle_sr-DstlyDjZ.js +1 -0
- package/dist/assets/messagebundle_sr-yQWBd9jR.js +1 -0
- package/dist/assets/messagebundle_sv-Dr2hDyEO.js +1 -0
- package/dist/assets/messagebundle_sv-iHKWgaRg.js +1 -0
- package/dist/assets/messagebundle_th-DbWfCb5y.js +1 -0
- package/dist/assets/messagebundle_th-yLU2SE6L.js +1 -0
- package/dist/assets/messagebundle_tr-CIoGg6uY.js +1 -0
- package/dist/assets/messagebundle_tr-lAQvvdUi.js +1 -0
- package/dist/assets/messagebundle_uk-DIBItAKu.js +1 -0
- package/dist/assets/messagebundle_uk-j_sqGY4D.js +1 -0
- package/dist/assets/messagebundle_vi-C40OW2eC.js +1 -0
- package/dist/assets/messagebundle_vi-xWTpoKPI.js +1 -0
- package/dist/assets/messagebundle_zh_CN-CmeOlVfl.js +1 -0
- package/dist/assets/messagebundle_zh_CN-U8Z0kuQb.js +1 -0
- package/dist/assets/messagebundle_zh_TW-B_1_vc8O.js +1 -0
- package/dist/assets/messagebundle_zh_TW-hwHN6ElU.js +1 -0
- package/dist/assets/{parameters-bundle.css-Cv89y49I.js → parameters-bundle.css-2ZsUlBNO.js} +299 -151
- package/dist/assets/parameters-bundle.css-31Bw5XOG.js +2 -0
- package/dist/assets/parameters-bundle.css-BJp4ZvSQ.js +2 -0
- package/dist/assets/{parameters-bundle.css-vNsSPPU5.js → parameters-bundle.css-BKlkVfkE.js} +742 -494
- package/dist/assets/parameters-bundle.css-BMOU75LU.js +2 -0
- package/dist/assets/parameters-bundle.css-BZF5sWSb.js +1 -0
- package/dist/assets/{parameters-bundle.css-DmEWEk0u.js → parameters-bundle.css-Bf1GOISM.js} +786 -513
- package/dist/assets/parameters-bundle.css-BpWLGMCI.js +2 -0
- package/dist/assets/parameters-bundle.css-BsoxE2UF.js +2 -0
- package/dist/assets/parameters-bundle.css-CAhrGUcA.js +2 -0
- package/dist/assets/{parameters-bundle.css-C3eDVARm.js → parameters-bundle.css-CDJt5bvS.js} +176 -89
- package/dist/assets/parameters-bundle.css-CIr3BQBD.js +2 -0
- package/dist/assets/parameters-bundle.css-CVUmNgQM.js +2 -0
- package/dist/assets/parameters-bundle.css-C_pu3Dce.js +2 -0
- package/dist/assets/parameters-bundle.css-ChtqHIDX.js +2 -0
- package/dist/assets/parameters-bundle.css-CvaMQVtq.js +1 -0
- package/dist/assets/parameters-bundle.css-Cwz89dEH.js +2 -0
- package/dist/assets/parameters-bundle.css-CyCovTbK.js +2 -0
- package/dist/assets/parameters-bundle.css-Cyf5K2-Q.js +2 -0
- package/dist/assets/parameters-bundle.css-DdDLbfHl.js +2 -0
- package/dist/assets/{parameters-bundle.css-C5V2Zp_F.js → parameters-bundle.css-Dfz9lgd6.js} +131 -95
- package/dist/assets/{parameters-bundle.css-K-MvKimD.js → parameters-bundle.css-DjW0INFD.js} +139 -88
- package/dist/assets/parameters-bundle.css-JyFiyY-_.js +2 -0
- package/dist/assets/parameters-bundle.css-tf-z7jv9.js +2 -0
- package/dist/css/themes/AccordionSpotlight.css +1 -1
- package/dist/css/themes/ListGroupHeader.css +1 -1
- package/dist/css/themes/MastheadShell.css +1 -1
- package/dist/css/themes/SideNavigation.css +1 -1
- package/dist/css/themes/SideNavigationItem.css +1 -1
- package/dist/css/themes/SideNavigationMobile.css +1 -1
- package/dist/css/themes/SideNavigationSubItem.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/css/themes/Table.css +1 -1
- package/dist/css/themes/sap_fiori_3/parameters-bundle.css +0 -1
- package/dist/css/themes/sap_glow/parameters-bundle.css +0 -1
- package/dist/css/themes/sap_horizon/parameters-bundle.css +0 -1
- package/dist/custom-elements-internal.json +1443 -7
- package/dist/custom-elements.json +1497 -28
- package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_glow/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
- package/dist/generated/i18n/i18n-defaults.js +2 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/themes/AccordionSpotlight.css.d.ts +1 -1
- package/dist/generated/themes/AccordionSpotlight.css.js +1 -1
- package/dist/generated/themes/AccordionSpotlight.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/MastheadShell.css.d.ts +1 -1
- package/dist/generated/themes/MastheadShell.css.js +1 -1
- package/dist/generated/themes/MastheadShell.css.js.map +1 -1
- package/dist/generated/themes/SideNavigation.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigation.css.js +1 -1
- package/dist/generated/themes/SideNavigation.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationItem.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationItem.css.js +1 -1
- package/dist/generated/themes/SideNavigationItem.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationMobile.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationMobile.css.js +1 -1
- package/dist/generated/themes/SideNavigationMobile.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationSubItem.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationSubItem.css.js +1 -1
- package/dist/generated/themes/SideNavigationSubItem.css.js.map +1 -1
- package/dist/generated/themes/Slider.css.d.ts +1 -1
- package/dist/generated/themes/Slider.css.js +1 -1
- package/dist/generated/themes/Slider.css.js.map +1 -1
- package/dist/generated/themes/Table.css.d.ts +1 -1
- package/dist/generated/themes/Table.css.js +1 -1
- package/dist/generated/themes/Table.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_glow/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_glow/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_glow/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
- package/dist/messagebundle.properties +3 -0
- package/dist/vscode.html-custom-data.json +16 -6
- package/dist/web-types.json +41 -11
- package/package.json +8 -8
- package/src/AccordionItemTemplate.tsx +1 -0
- package/src/AccordionSpotlight.ts +35 -6
- package/src/AccordionSpotlightItem.ts +3 -1
- package/src/Carousel.ts +22 -3
- package/src/CountrySelector.ts +1 -3
- package/src/List.ts +21 -4
- package/src/ListGroupHeader.ts +5 -1
- package/src/ListGroupHeaderBase.ts +16 -2
- package/src/ListGroupHeaderTemplate.tsx +29 -47
- package/src/ListItem.ts +14 -13
- package/src/ListItemBase.ts +14 -1
- package/src/ListItemTemplate.tsx +4 -4
- package/src/ListSelectAllTemplate.tsx +10 -8
- package/src/ListTemplate.tsx +14 -10
- package/src/MastheadCountrySelector.ts +18 -0
- package/src/MastheadCountrySelectorTemplate.tsx +2 -0
- package/src/MessageStrip.ts +7 -0
- package/src/Search.ts +48 -13
- package/src/SearchTemplate.tsx +3 -1
- package/src/SearchableListBase.ts +15 -3
- package/src/SearchableListBaseTemplate.tsx +54 -39
- package/src/SelectBase.ts +130 -144
- package/src/SelectBox.ts +21 -7
- package/src/SelectBoxTemplate.tsx +10 -9
- package/src/SideNavigation.ts +17 -0
- package/src/SideNavigationItem.ts +2 -0
- package/src/SideNavigationItemTemplate.tsx +97 -0
- package/src/SideNavigationMobile.ts +53 -2
- package/src/SideNavigationMobileTemplate.tsx +3 -5
- package/src/SideNavigationSubItem.ts +19 -6
- package/src/SideNavigationSubItemTemplate.tsx +10 -7
- package/src/SideNavigationTemplate.tsx +17 -0
- package/src/TagGroup.ts +32 -0
- package/src/TagGroupTemplate.tsx +1 -1
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/themes/AccordionSpotlight.css.ts +1 -1
- package/src/generated/themes/ListGroupHeader.css.ts +1 -1
- package/src/generated/themes/MastheadShell.css.ts +1 -1
- package/src/generated/themes/SideNavigation.css.ts +1 -1
- package/src/generated/themes/SideNavigationItem.css.ts +1 -1
- package/src/generated/themes/SideNavigationMobile.css.ts +1 -1
- package/src/generated/themes/SideNavigationSubItem.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/generated/themes/Table.css.ts +1 -1
- package/src/generated/themes/sap_fiori_3/parameters-bundle.css.ts +1 -1
- package/src/generated/themes/sap_glow/parameters-bundle.css.ts +1 -1
- package/src/generated/themes/sap_horizon/parameters-bundle.css.ts +1 -1
- package/src/i18n/messagebundle.properties +3 -0
- package/src/themes/AccordionSpotlight.css +9 -9
- package/src/themes/ListGroupHeader.css +2 -43
- package/src/themes/MastheadShell.css +13 -1
- package/src/themes/SideNavigation.css +43 -8
- package/src/themes/SideNavigationItem.css +56 -6
- package/src/themes/SideNavigationMobile.css +62 -15
- package/src/themes/SideNavigationSubItem.css +14 -109
- package/src/themes/Slider.css +25 -11
- package/src/themes/Table.css +6 -1
- package/dist/assets/messagebundle_ar-C3EXytoC.js +0 -1
- package/dist/assets/messagebundle_ar-DmZrrjEF.js +0 -1
- package/dist/assets/messagebundle_bg-BaZ97Q_b.js +0 -1
- package/dist/assets/messagebundle_bg-CgU7GPvK.js +0 -1
- package/dist/assets/messagebundle_ca-BwjVUbUA.js +0 -1
- package/dist/assets/messagebundle_ca-YiUGbO_8.js +0 -1
- package/dist/assets/messagebundle_cnr-CN2hPZIN.js +0 -1
- package/dist/assets/messagebundle_cnr-zdEdPJvc.js +0 -1
- package/dist/assets/messagebundle_cs-CGbnEjza.js +0 -1
- package/dist/assets/messagebundle_cy-BF0YH9Iz.js +0 -1
- package/dist/assets/messagebundle_cy-CUiGsjO6.js +0 -1
- package/dist/assets/messagebundle_da-CWKLQJiq.js +0 -1
- package/dist/assets/messagebundle_da-bTkr4pUc.js +0 -1
- package/dist/assets/messagebundle_de-BmnClk4G.js +0 -1
- package/dist/assets/messagebundle_de-vB6qhgvG.js +0 -1
- package/dist/assets/messagebundle_el-DKdItEgW.js +0 -1
- package/dist/assets/messagebundle_el-Gv1Ly8aj.js +0 -1
- package/dist/assets/messagebundle_en-DbKo-Dkl.js +0 -1
- package/dist/assets/messagebundle_en-DcV886MF.js +0 -1
- package/dist/assets/messagebundle_en_GB-Be93_Z4H.js +0 -1
- package/dist/assets/messagebundle_en_GB-CFh7e8hQ.js +0 -1
- package/dist/assets/messagebundle_en_US_sappsd-HCarC-Yr.js +0 -1
- package/dist/assets/messagebundle_en_US_saprigi-CCHFk7YZ.js +0 -1
- package/dist/assets/messagebundle_en_US_saptrc-B8AIRzlo.js +0 -1
- package/dist/assets/messagebundle_en_US_saptrc-yJ3PcdEm.js +0 -1
- package/dist/assets/messagebundle_es-BH-a8BxO.js +0 -1
- package/dist/assets/messagebundle_es-Dt93wbGV.js +0 -1
- package/dist/assets/messagebundle_es_MX-BedlYlF3.js +0 -1
- package/dist/assets/messagebundle_es_MX-COPqooo9.js +0 -1
- package/dist/assets/messagebundle_et-BsYgDw46.js +0 -1
- package/dist/assets/messagebundle_et-UwpqUE-p.js +0 -1
- package/dist/assets/messagebundle_fi-BN3UWEz0.js +0 -1
- package/dist/assets/messagebundle_fi-Cwf7Puui.js +0 -1
- package/dist/assets/messagebundle_fr-43w09LAE.js +0 -1
- package/dist/assets/messagebundle_fr-CVRaf9_H.js +0 -1
- package/dist/assets/messagebundle_fr_CA-BM04X6xU.js +0 -1
- package/dist/assets/messagebundle_fr_CA-CdnVYumi.js +0 -1
- package/dist/assets/messagebundle_hi-DfeonbAH.js +0 -1
- package/dist/assets/messagebundle_hi-JRJlP9Uh.js +0 -1
- package/dist/assets/messagebundle_hr-CKOnn34q.js +0 -1
- package/dist/assets/messagebundle_hr-CbyIBlH3.js +0 -1
- package/dist/assets/messagebundle_hu-DF1gQudE.js +0 -1
- package/dist/assets/messagebundle_hu-D_IQ9kTy.js +0 -1
- package/dist/assets/messagebundle_id-B0K1usj4.js +0 -1
- package/dist/assets/messagebundle_id-gDJYoaGq.js +0 -1
- package/dist/assets/messagebundle_it-B80_R2Ih.js +0 -1
- package/dist/assets/messagebundle_it-CVqU4g6t.js +0 -1
- package/dist/assets/messagebundle_iw-BoelOIS4.js +0 -1
- package/dist/assets/messagebundle_iw-iMDtLxaa.js +0 -1
- package/dist/assets/messagebundle_ja-BlRbv4vb.js +0 -1
- package/dist/assets/messagebundle_ja-BrDH-19-.js +0 -1
- package/dist/assets/messagebundle_kk-C7VPek1-.js +0 -1
- package/dist/assets/messagebundle_kk-DhAT_bim.js +0 -1
- package/dist/assets/messagebundle_ko-CIqP8x6n.js +0 -1
- package/dist/assets/messagebundle_ko-DgD6uyZ5.js +0 -1
- package/dist/assets/messagebundle_lt-BV0kKrY0.js +0 -1
- package/dist/assets/messagebundle_lv-5IcjoxWD.js +0 -1
- package/dist/assets/messagebundle_lv-DDBi7iKe.js +0 -1
- package/dist/assets/messagebundle_mk-BUrn04sZ.js +0 -1
- package/dist/assets/messagebundle_mk-P5veRdg2.js +0 -1
- package/dist/assets/messagebundle_ms-9VDLR5en.js +0 -1
- package/dist/assets/messagebundle_ms-CB8sQUg2.js +0 -1
- package/dist/assets/messagebundle_nl-BaAgPO7h.js +0 -1
- package/dist/assets/messagebundle_nl-f1Up3dB9.js +0 -1
- package/dist/assets/messagebundle_no-C-_ldp7o.js +0 -1
- package/dist/assets/messagebundle_no-DRSqWQ-C.js +0 -1
- package/dist/assets/messagebundle_pl-BQoPaokq.js +0 -1
- package/dist/assets/messagebundle_pl-DBO1atMe.js +0 -1
- package/dist/assets/messagebundle_pt-BNEglYxa.js +0 -1
- package/dist/assets/messagebundle_pt-DgAMHmW-.js +0 -1
- package/dist/assets/messagebundle_pt_PT-BtYzp9KB.js +0 -1
- package/dist/assets/messagebundle_pt_PT-D1Ef8kUU.js +0 -1
- package/dist/assets/messagebundle_ro-CuDPp2fe.js +0 -1
- package/dist/assets/messagebundle_ro-D591wJ6f.js +0 -1
- package/dist/assets/messagebundle_ru-D0NridWi.js +0 -1
- package/dist/assets/messagebundle_ru-I8YLCfrn.js +0 -1
- package/dist/assets/messagebundle_sh-BswdbSRi.js +0 -1
- package/dist/assets/messagebundle_sh-Dw2y_oct.js +0 -1
- package/dist/assets/messagebundle_sk-BG4S4ZVk.js +0 -1
- package/dist/assets/messagebundle_sl-CAnJO_8X.js +0 -1
- package/dist/assets/messagebundle_sl-kpVWxIp_.js +0 -1
- package/dist/assets/messagebundle_sr-BTWvO8VQ.js +0 -1
- package/dist/assets/messagebundle_sr-VJmRSdj4.js +0 -1
- package/dist/assets/messagebundle_sv-B-RCgnW_.js +0 -1
- package/dist/assets/messagebundle_sv-Bd4wCcDb.js +0 -1
- package/dist/assets/messagebundle_th-CMHmLdI3.js +0 -1
- package/dist/assets/messagebundle_th-CZ1imsCy.js +0 -1
- package/dist/assets/messagebundle_tr-BfWAYIdW.js +0 -1
- package/dist/assets/messagebundle_tr-D-BnBirv.js +0 -1
- package/dist/assets/messagebundle_uk-DhxIThVl.js +0 -1
- package/dist/assets/messagebundle_uk-HU8hI0yj.js +0 -1
- package/dist/assets/messagebundle_vi-BUTqUKd4.js +0 -1
- package/dist/assets/messagebundle_vi-D1El4_Wj.js +0 -1
- package/dist/assets/messagebundle_zh_CN-Dt0azUea.js +0 -1
- package/dist/assets/messagebundle_zh_CN-Ofgx2uXY.js +0 -1
- package/dist/assets/messagebundle_zh_TW-5lv7yYS1.js +0 -1
- package/dist/assets/messagebundle_zh_TW-LSErOAsd.js +0 -1
- package/dist/assets/parameters-bundle.css-B68EyCuR.js +0 -278
- package/dist/assets/parameters-bundle.css-BkJSEiFx.js +0 -278
- package/dist/assets/parameters-bundle.css-CI4HNvFw.js +0 -1
- package/dist/assets/parameters-bundle.css-COeynv6D.js +0 -277
- package/dist/assets/parameters-bundle.css-CRa5DITh.js +0 -1
- package/dist/assets/parameters-bundle.css-CnIzAMdG.js +0 -3
- package/dist/assets/parameters-bundle.css-CsV5qbZp.js +0 -3
- package/dist/assets/parameters-bundle.css-DCvHNL3s.js +0 -3
- package/dist/assets/parameters-bundle.css-DK40uKOQ.js +0 -3
- package/dist/assets/parameters-bundle.css-DMfTAqMv.js +0 -2
- package/dist/assets/parameters-bundle.css-DO35k9r0.js +0 -2
- package/dist/assets/parameters-bundle.css-Df7wtRW4.js +0 -2
- package/dist/assets/parameters-bundle.css-DvAfqdlT.js +0 -3
- package/dist/assets/parameters-bundle.css-KoXGNyLG.js +0 -3
- package/dist/assets/parameters-bundle.css-P_M_rm9z.js +0 -3
- package/dist/assets/parameters-bundle.css-UJIxXHL5.js +0 -2
- package/dist/assets/parameters-bundle.css-co26r5Nz.js +0 -3
- package/dist/assets/parameters-bundle.css-uT62L0va.js +0 -3
- package/dist/css/themes/SideNavigationMobileDropdown.css +0 -1
- package/dist/generated/themes/SideNavigationMobileDropdown.css.d.ts +0 -2
- package/dist/generated/themes/SideNavigationMobileDropdown.css.js +0 -8
- package/dist/generated/themes/SideNavigationMobileDropdown.css.js.map +0 -1
- package/src/generated/themes/SideNavigationMobileDropdown.css.ts +0 -9
- package/src/themes/SideNavigationMobileDropdown.css +0 -36
|
@@ -57,6 +57,7 @@ function SingleCollapsibleHeaderRow(this: UDExListGroupHeader) {
|
|
|
57
57
|
class="udex-list__header-title"
|
|
58
58
|
{...({ innerHTML: this.label } as object)}>
|
|
59
59
|
</span>
|
|
60
|
+
{this.supportingText && " "}
|
|
60
61
|
{this.supportingText && (
|
|
61
62
|
<span id="group-supporting-text" class={`udex-list__supporting-text ${this.sizeClass}`}>{this.supportingText}</span>
|
|
62
63
|
)}
|
|
@@ -79,48 +80,32 @@ function SingleCollapsibleHeaderRow(this: UDExListGroupHeader) {
|
|
|
79
80
|
}
|
|
80
81
|
|
|
81
82
|
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
83
|
// In aria-activedescendant mode (SelectBox) the HOST element is the treeitem and
|
|
89
84
|
// already carries aria-expanded + the accessible name. This inner div must then be
|
|
90
85
|
// presentational (singleCollapsibleHeaderRole) and must NOT duplicate those states,
|
|
91
86
|
// otherwise it is a second treeitem nested inside the host treeitem with no owning
|
|
92
|
-
// tree/group (axe/SiteImprove aria-required-parent). It
|
|
93
|
-
//
|
|
94
|
-
// focus back to the combobox input — the same focusable, role="presentation" shape
|
|
95
|
-
// the list-item [part=item] divs already use. The real-focus (FilterMenu) path keeps
|
|
87
|
+
// tree/group (axe/SiteImprove aria-required-parent). It has no tab stop in that
|
|
88
|
+
// mode: DOM focus stays on the combobox input. Real-focus (FilterMenu) keeps
|
|
96
89
|
// the treeitem semantics plus controls/labelling on this div.
|
|
97
90
|
const headerAriaAttrs = this._useHostAriaRole ? {} : {
|
|
98
91
|
"aria-expanded": this.expanded,
|
|
99
92
|
"aria-controls": this.ariaControlsId,
|
|
100
93
|
"aria-labelledby": this.collapsibleHeaderLabelledBy,
|
|
94
|
+
// Own the sibling group without including its visible options in this row's label.
|
|
95
|
+
"aria-owns": this.isTreeAccessibleRole ? this.ariaControlsId : undefined,
|
|
101
96
|
};
|
|
102
97
|
return (
|
|
103
98
|
<div
|
|
104
|
-
class={`udex-list__group-content
|
|
99
|
+
class={`udex-list__group-content udex-list__group-header-wrap ${this.sizeClass}`}
|
|
105
100
|
part="group-item"
|
|
106
101
|
id={`${this._id}_group-content__focusable`}
|
|
107
102
|
role={this.singleCollapsibleHeaderRole as AriaRole}
|
|
108
|
-
tabIndex={0}
|
|
103
|
+
tabIndex={this._useHostAriaRole ? undefined : 0}
|
|
104
|
+
onMouseDown={this.handleCollapseIconMouseDown}
|
|
109
105
|
onKeyDown={this.handleKeyDown}
|
|
110
106
|
{...headerAriaAttrs}
|
|
111
107
|
_tab-index={Number(this._effectiveTabIndex)}>
|
|
112
|
-
{
|
|
113
|
-
<>
|
|
114
|
-
<div class="udex-list__group-header-row">
|
|
115
|
-
{SingleCollapsibleHeaderRow.call(this)}
|
|
116
|
-
</div>
|
|
117
|
-
<div id={this.ariaControlsId} role={this.contentRegionRole as AriaRole} class="udex-list__group-list__content">
|
|
118
|
-
<slot></slot>
|
|
119
|
-
</div>
|
|
120
|
-
</>
|
|
121
|
-
) : (
|
|
122
|
-
SingleCollapsibleHeaderRow.call(this)
|
|
123
|
-
)}
|
|
108
|
+
{SingleCollapsibleHeaderRow.call(this)}
|
|
124
109
|
</div>
|
|
125
110
|
);
|
|
126
111
|
}
|
|
@@ -155,6 +140,7 @@ function MultiOrRadioGroupHeader(this: UDExListGroupHeader) {
|
|
|
155
140
|
size={this.size}
|
|
156
141
|
supportingText={this.supportingText}
|
|
157
142
|
accessible-role={this.nonCollapsibleHeaderAccessibleRole}
|
|
143
|
+
_useHostAriaRole={this._useHostAriaRole}
|
|
158
144
|
_additional-class-name={this._additionalClassName}
|
|
159
145
|
_tab-index={Number(this._effectiveTabIndex)}
|
|
160
146
|
_aria-pos-in-set={this._ariaPosInSet}
|
|
@@ -169,12 +155,13 @@ function MultiOrRadioGroupHeaderCollapsible(this: UDExListGroupHeader) {
|
|
|
169
155
|
if (this.isNonActiveHeader) {
|
|
170
156
|
return (
|
|
171
157
|
<header
|
|
172
|
-
role="button"
|
|
158
|
+
role={this._useHostAriaRole ? "presentation" : "button"}
|
|
173
159
|
id="group-heading"
|
|
174
160
|
class="udex-list__inactive-header udex-list__group-header-wrap"
|
|
175
|
-
tabIndex={Number(this._effectiveTabIndex)}
|
|
176
|
-
aria-expanded={this.expanded}
|
|
177
|
-
aria-controls={this.ariaControlsId}
|
|
161
|
+
tabIndex={this._useHostAriaRole ? undefined : Number(this._effectiveTabIndex)}
|
|
162
|
+
aria-expanded={this._useHostAriaRole ? undefined : this.expanded}
|
|
163
|
+
aria-controls={this._useHostAriaRole ? undefined : this.ariaControlsId}
|
|
164
|
+
onMouseDown={this.handleCollapseIconMouseDown}>
|
|
178
165
|
<div class="udex-list__inactive-header-content">
|
|
179
166
|
<span class="udex-list__header-title" {...({ innerHTML: this.label } as object)}></span>
|
|
180
167
|
{this.supportingText && (
|
|
@@ -196,13 +183,13 @@ function MultiOrRadioGroupHeaderCollapsible(this: UDExListGroupHeader) {
|
|
|
196
183
|
</header>
|
|
197
184
|
);
|
|
198
185
|
}
|
|
186
|
+
// Keep this host transparent: aria-expanded/aria-controls would override role="none"
|
|
187
|
+
// and interrupt the inner treeitem's required context. The inner row exposes expanded.
|
|
199
188
|
return (
|
|
200
189
|
<UDExListItem
|
|
201
190
|
id="group-heading"
|
|
202
191
|
part="group-item"
|
|
203
192
|
role="none"
|
|
204
|
-
aria-expanded={this.expanded}
|
|
205
|
-
aria-controls={this.ariaControlsId}
|
|
206
193
|
selected={this.selected}
|
|
207
194
|
indeterminate={this.indeterminate}
|
|
208
195
|
collapsible={this.collapsible}
|
|
@@ -217,6 +204,7 @@ function MultiOrRadioGroupHeaderCollapsible(this: UDExListGroupHeader) {
|
|
|
217
204
|
size={this.size}
|
|
218
205
|
supportingText={this.supportingText}
|
|
219
206
|
accessible-role={this.collapsibleHeaderAccessibleRole}
|
|
207
|
+
_useHostAriaRole={this._useHostAriaRole}
|
|
220
208
|
onAccordionIconClick={this.handleCollapseIconClick as EventListener}
|
|
221
209
|
_additional-class-name={this._additionalClassName}
|
|
222
210
|
_tab-index={Number(this._effectiveTabIndex)}
|
|
@@ -229,16 +217,12 @@ function MultiOrRadioGroupHeaderCollapsible(this: UDExListGroupHeader) {
|
|
|
229
217
|
}
|
|
230
218
|
|
|
231
219
|
export default function ListGroupHeaderTemplate(this: UDExListGroupHeader) {
|
|
232
|
-
// Single-select real-focus tree: SingleGroupHeaderCollapsible now emits the
|
|
233
|
-
// role="group" content region as a CHILD of the treeitem (conformant nesting),
|
|
234
|
-
// so the template body must not also emit it as a sibling.
|
|
235
|
-
const singleSelectNested = this.isTreeAccessibleRole && !this.useListItemHeader && !this._useHostAriaRole;
|
|
236
220
|
return (
|
|
237
221
|
<div
|
|
238
222
|
part="item"
|
|
239
223
|
class="udex-list__group"
|
|
240
224
|
role={this.groupWrapperRole as AriaRole}
|
|
241
|
-
aria-labelledby={(!this.isTreeAccessibleRole && !this.isPerGroupListbox) ? "group-heading" : undefined}>
|
|
225
|
+
aria-labelledby={(!this._useHostAriaRole && !this.isTreeAccessibleRole && !this.isPerGroupListbox) ? "group-heading" : undefined}>
|
|
242
226
|
{this.collapsible ? (
|
|
243
227
|
<div
|
|
244
228
|
class="udex-list__group-list"
|
|
@@ -248,17 +232,15 @@ export default function ListGroupHeaderTemplate(this: UDExListGroupHeader) {
|
|
|
248
232
|
? MultiOrRadioGroupHeaderCollapsible.call(this)
|
|
249
233
|
: SingleGroupHeaderCollapsible.call(this)
|
|
250
234
|
}
|
|
251
|
-
{
|
|
252
|
-
|
|
253
|
-
|
|
235
|
+
<div id={this.ariaControlsId} role={this.contentRegionRole as AriaRole} class="udex-list__group-list__content">
|
|
236
|
+
{this.isTreeAccessibleRole || this.isSingleContentList ? (
|
|
237
|
+
<slot></slot>
|
|
238
|
+
) : (
|
|
239
|
+
<div role="listbox" aria-label="group">
|
|
254
240
|
<slot></slot>
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
</div>
|
|
259
|
-
)}
|
|
260
|
-
</div>
|
|
261
|
-
)}
|
|
241
|
+
</div>
|
|
242
|
+
)}
|
|
243
|
+
</div>
|
|
262
244
|
</div>
|
|
263
245
|
) : (
|
|
264
246
|
<div
|
|
@@ -270,8 +252,8 @@ export default function ListGroupHeaderTemplate(this: UDExListGroupHeader) {
|
|
|
270
252
|
? MultiOrRadioGroupHeader.call(this)
|
|
271
253
|
: SingleGroupHeader.call(this)
|
|
272
254
|
}
|
|
273
|
-
{this.isTreeAccessibleRole ? (
|
|
274
|
-
<div role=
|
|
255
|
+
{this.isTreeAccessibleRole || this.isSingleContentList ? (
|
|
256
|
+
<div role={this.contentRegionRole as AriaRole}>
|
|
275
257
|
<slot></slot>
|
|
276
258
|
</div>
|
|
277
259
|
) : this.isPerGroupListbox ? (
|
package/src/ListItem.ts
CHANGED
|
@@ -21,7 +21,7 @@ import UDExRadioButton from "./RadioButton.js";
|
|
|
21
21
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
22
22
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
23
23
|
import {
|
|
24
|
-
INDETERMINATE, SELECTED, UNSELECTED,
|
|
24
|
+
INDETERMINATE, SELECTED, UNSELECTED,
|
|
25
25
|
} from "./generated/i18n/i18n-defaults.js";
|
|
26
26
|
import translate from "./utils/translate.js";
|
|
27
27
|
|
|
@@ -267,7 +267,10 @@ class UDExListItem extends UDExListItemBase {
|
|
|
267
267
|
document.removeEventListener("mouseup", this.deactivate);
|
|
268
268
|
}
|
|
269
269
|
|
|
270
|
-
handleMouseDown() {
|
|
270
|
+
handleMouseDown(e: MouseEvent) {
|
|
271
|
+
if (this._useHostAriaRole) {
|
|
272
|
+
e.preventDefault();
|
|
273
|
+
}
|
|
271
274
|
this.activate();
|
|
272
275
|
}
|
|
273
276
|
|
|
@@ -276,6 +279,10 @@ class UDExListItem extends UDExListItemBase {
|
|
|
276
279
|
}
|
|
277
280
|
|
|
278
281
|
handleKeyUp(e: KeyboardEvent) {
|
|
282
|
+
// Space activates a native button on keyup; the row must not cancel it.
|
|
283
|
+
if (this.firstIconElement === e.target || this.secondIconElement === e.target || (e.target as HTMLElement).classList.contains("udex-list__group-heading__icon")) {
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
279
286
|
e.preventDefault();
|
|
280
287
|
if (isSpace(e) || isEnter(e)) {
|
|
281
288
|
this.deactivate();
|
|
@@ -372,7 +379,8 @@ class UDExListItem extends UDExListItemBase {
|
|
|
372
379
|
if (this._useHostAriaRole) {
|
|
373
380
|
return "presentation";
|
|
374
381
|
}
|
|
375
|
-
|
|
382
|
+
// Removing the reflected attribute can reset the property to null.
|
|
383
|
+
if (this.accessibleRole) {
|
|
376
384
|
return this.accessibleRole;
|
|
377
385
|
}
|
|
378
386
|
// SingleContent is informational (not a selection widget) — listitem is semantically correct
|
|
@@ -380,11 +388,11 @@ class UDExListItem extends UDExListItemBase {
|
|
|
380
388
|
}
|
|
381
389
|
|
|
382
390
|
get effectiveRole(): string {
|
|
383
|
-
return this.accessibleRole
|
|
391
|
+
return this.accessibleRole || listItemRole;
|
|
384
392
|
}
|
|
385
393
|
|
|
386
394
|
get ariaCheckedValue(): "true" | "false" | "mixed" | undefined {
|
|
387
|
-
if (this.
|
|
395
|
+
if (this.roleItem !== "treeitem") {
|
|
388
396
|
return undefined;
|
|
389
397
|
}
|
|
390
398
|
// Only MultiSelect treeitems expose aria-checked; SingleSelect uses aria-selected.
|
|
@@ -424,7 +432,7 @@ class UDExListItem extends UDExListItemBase {
|
|
|
424
432
|
// actually expand/collapse. Non-collapsible group headers must NOT report an
|
|
425
433
|
// expanded/collapsed state (nothing to toggle); the tree hierarchy is conveyed
|
|
426
434
|
// structurally by the nested role="group", not by aria-expanded.
|
|
427
|
-
if (!this.collapsible) {
|
|
435
|
+
if (this._useHostAriaRole || !this.collapsible) {
|
|
428
436
|
return undefined;
|
|
429
437
|
}
|
|
430
438
|
return this.expanded ? "true" : "false";
|
|
@@ -460,13 +468,6 @@ class UDExListItem extends UDExListItemBase {
|
|
|
460
468
|
}
|
|
461
469
|
return `${this.selected ? translate(UDExListItem, SELECTED) : translate(UDExListItem, UNSELECTED)} `;
|
|
462
470
|
}
|
|
463
|
-
|
|
464
|
-
get ratingAriaLabel(): string {
|
|
465
|
-
const ratingText = this.ratingCount ? `${translate(UDExListItem, RATING_COUNT_TITLE)} ${this.ratingCount}` : "";
|
|
466
|
-
const totalText = this.totalCount ? `${translate(UDExListItem, TOTAL)} ${this.totalCount}` : "";
|
|
467
|
-
const ratingTitleText = translate(UDExListItem, RATING_INDICATOR_TEXT);
|
|
468
|
-
return [...[ratingText, totalText].filter(Boolean), `${ratingTitleText} ${this.rating} of ${this.ratingMax}`].join(", ");
|
|
469
|
-
}
|
|
470
471
|
}
|
|
471
472
|
|
|
472
473
|
UDExListItem.define();
|
package/src/ListItemBase.ts
CHANGED
|
@@ -8,7 +8,9 @@ import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.j
|
|
|
8
8
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
9
9
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
10
10
|
import translate from "./utils/translate.js";
|
|
11
|
-
import {
|
|
11
|
+
import {
|
|
12
|
+
COLLAPSE, EXPAND, RATING_COUNT_TITLE, RATING_INDICATOR_TEXT, TOTAL,
|
|
13
|
+
} from "./generated/i18n/i18n-defaults.js";
|
|
12
14
|
|
|
13
15
|
export type UDExListItemBaseEvents = {
|
|
14
16
|
"first-icon-click": UDExListItemBaseEventDetail,
|
|
@@ -407,6 +409,17 @@ class UDExListItemBase extends UI5Element {
|
|
|
407
409
|
get hasRating(): boolean {
|
|
408
410
|
return !!this.rating;
|
|
409
411
|
}
|
|
412
|
+
|
|
413
|
+
/**
|
|
414
|
+
* Shared rating description for rendered options and their source items.
|
|
415
|
+
* @private
|
|
416
|
+
*/
|
|
417
|
+
get ratingAriaLabel(): string {
|
|
418
|
+
const ratingText = this.ratingCount ? `${translate(UDExListItemBase, RATING_COUNT_TITLE)} ${this.ratingCount}` : "";
|
|
419
|
+
const totalText = this.totalCount ? `${translate(UDExListItemBase, TOTAL)} ${this.totalCount}` : "";
|
|
420
|
+
const ratingTitleText = translate(UDExListItemBase, RATING_INDICATOR_TEXT);
|
|
421
|
+
return [...[ratingText, totalText].filter(Boolean), `${ratingTitleText} ${this.rating} of ${this.ratingMax}`].join(", ");
|
|
422
|
+
}
|
|
410
423
|
}
|
|
411
424
|
|
|
412
425
|
export default UDExListItemBase;
|
package/src/ListItemTemplate.tsx
CHANGED
|
@@ -136,8 +136,8 @@ export default function ListItemTemplate(this: UDExListItem) {
|
|
|
136
136
|
{this.modeSelected && (
|
|
137
137
|
<div
|
|
138
138
|
part="item"
|
|
139
|
-
tabIndex={Number(this._effectiveTabIndex)}
|
|
140
|
-
aria-disabled={this._ariaDisabled}
|
|
139
|
+
tabIndex={this._useHostAriaRole ? undefined : Number(this._effectiveTabIndex)}
|
|
140
|
+
aria-disabled={this._useHostAriaRole ? undefined : this._ariaDisabled}
|
|
141
141
|
class={this.className}
|
|
142
142
|
role={this.roleItem as AriaRole}
|
|
143
143
|
aria-checked={this.ariaCheckedValue}
|
|
@@ -160,7 +160,7 @@ export default function ListItemTemplate(this: UDExListItem) {
|
|
|
160
160
|
part="checkbox"
|
|
161
161
|
tabindex={-1}
|
|
162
162
|
indeterminate={this.indeterminate}
|
|
163
|
-
accessible-name={`checkbox ${this.stateAccessibleName}`}
|
|
163
|
+
accessible-name={this._useHostAriaRole ? undefined : `checkbox ${this.stateAccessibleName}`}
|
|
164
164
|
checked={this.selected}
|
|
165
165
|
disabled={this.disabled}
|
|
166
166
|
aria-hidden="true"
|
|
@@ -183,7 +183,7 @@ export default function ListItemTemplate(this: UDExListItem) {
|
|
|
183
183
|
<div
|
|
184
184
|
part="item"
|
|
185
185
|
role={this.roleItem as AriaRole}
|
|
186
|
-
aria-selected={this.
|
|
186
|
+
aria-selected={this.ariaSelectedValue}
|
|
187
187
|
class={this.className}>
|
|
188
188
|
{ContentList.call(this)}
|
|
189
189
|
</div>
|
|
@@ -6,22 +6,24 @@ export default function ListSelectAllTemplate(this: UDExListSelectAll) {
|
|
|
6
6
|
<div
|
|
7
7
|
part="item"
|
|
8
8
|
class="udex-list__group"
|
|
9
|
-
role="group"
|
|
10
|
-
aria-labelledby="group-select-all">
|
|
9
|
+
role={this._useHostAriaRole ? "presentation" : "group"}
|
|
10
|
+
aria-labelledby={this._useHostAriaRole ? undefined : "group-select-all"}>
|
|
11
11
|
<div
|
|
12
|
-
role="listbox"
|
|
13
|
-
aria-label="select-all-group"
|
|
12
|
+
role={this._useHostAriaRole ? "presentation" : "listbox"}
|
|
13
|
+
aria-label={this._useHostAriaRole ? undefined : "select-all-group"}
|
|
14
14
|
class={this.groupListClassName}
|
|
15
15
|
onui5-item-press={this.handleSelectAllGroupItemsPress}>
|
|
16
16
|
<UDExListItem
|
|
17
|
-
role="group"
|
|
17
|
+
role={this._useHostAriaRole ? "none" : "group"}
|
|
18
18
|
part="group-item"
|
|
19
19
|
accessible-role="option"
|
|
20
|
+
_useHostAriaRole={this._useHostAriaRole}
|
|
21
|
+
label={this._useHostAriaRole ? this.selectAllLabel : undefined}
|
|
20
22
|
mode={this.multiselectMode}
|
|
21
23
|
onClick={this.handleSelectAllPress}
|
|
22
24
|
class={this.className}
|
|
23
25
|
selected={this.selected}
|
|
24
|
-
aria-current={this.selected}
|
|
26
|
+
aria-current={this._useHostAriaRole ? undefined : this.selected}
|
|
25
27
|
indeterminate={this.indeterminate}
|
|
26
28
|
controlled={this.controlled}
|
|
27
29
|
onKeyDown={this.handleKeyDownPress}
|
|
@@ -29,9 +31,9 @@ export default function ListSelectAllTemplate(this: UDExListSelectAll) {
|
|
|
29
31
|
_additional-class-name={this.additionalClassName}
|
|
30
32
|
supportingText={this.supportingText}
|
|
31
33
|
divider>
|
|
32
|
-
{this.selectAllLabel}
|
|
34
|
+
{!this._useHostAriaRole && this.selectAllLabel}
|
|
33
35
|
</UDExListItem>
|
|
34
|
-
<slot></slot>
|
|
36
|
+
{this._useHostAriaRole ? <div role="group"><slot></slot></div> : <slot></slot>}
|
|
35
37
|
</div>
|
|
36
38
|
</div>
|
|
37
39
|
);
|
package/src/ListTemplate.tsx
CHANGED
|
@@ -2,6 +2,8 @@ import type UDExList from "./List.js";
|
|
|
2
2
|
import type { AriaRole } from "@ui5/webcomponents-base/types.js";
|
|
3
3
|
|
|
4
4
|
export default function ListTemplate(this: UDExList) {
|
|
5
|
+
const hasHostAriaRole = this._hasHostAriaRole;
|
|
6
|
+
|
|
5
7
|
return (
|
|
6
8
|
<>
|
|
7
9
|
{this.modeSelected && (
|
|
@@ -13,16 +15,18 @@ export default function ListTemplate(this: UDExList) {
|
|
|
13
15
|
onui5-header-press={this.handleItemPress}>
|
|
14
16
|
<div class="udex-list__scroll-container">
|
|
15
17
|
{HeaderText.call(this)}
|
|
16
|
-
|
|
17
|
-
{this.
|
|
18
|
-
|
|
18
|
+
{!hasHostAriaRole && (
|
|
19
|
+
<span id={this.ariaLabelledBy} class="udex-list__hidden-text">
|
|
20
|
+
{this.ariaLabelModeText}
|
|
21
|
+
</span>
|
|
22
|
+
)}
|
|
19
23
|
<div
|
|
20
24
|
id="udex-list"
|
|
21
25
|
class="udex-list"
|
|
22
|
-
role={this.effectiveAccessibleRole as AriaRole}
|
|
23
|
-
aria-labelledby={this.ariaLabelledBy}
|
|
24
|
-
aria-multiselectable={this._listAriaMultiSelectable as "true" | undefined}
|
|
25
|
-
aria-busy={(this.ariaBusy ?? undefined) as "true" | "false" | undefined}>
|
|
26
|
+
role={(hasHostAriaRole ? "none" : this.effectiveAccessibleRole) as AriaRole}
|
|
27
|
+
aria-labelledby={hasHostAriaRole ? undefined : this.ariaLabelledBy}
|
|
28
|
+
aria-multiselectable={(hasHostAriaRole ? undefined : this._listAriaMultiSelectable) as "true" | undefined}
|
|
29
|
+
aria-busy={(hasHostAriaRole ? undefined : this.ariaBusy ?? undefined) as "true" | "false" | undefined}>
|
|
26
30
|
<slot></slot>
|
|
27
31
|
</div>
|
|
28
32
|
</div>
|
|
@@ -34,9 +38,9 @@ export default function ListTemplate(this: UDExList) {
|
|
|
34
38
|
<div
|
|
35
39
|
id="udex-list"
|
|
36
40
|
class="udex-list"
|
|
37
|
-
role={this.singleContentRole as AriaRole}
|
|
38
|
-
aria-label={this.singleContentAriaLabel}
|
|
39
|
-
aria-busy={(this.ariaBusy ?? undefined) as "true" | "false" | undefined}>
|
|
41
|
+
role={(hasHostAriaRole ? "none" : this.singleContentRole) as AriaRole}
|
|
42
|
+
aria-label={hasHostAriaRole ? undefined : this.singleContentAriaLabel}
|
|
43
|
+
aria-busy={(hasHostAriaRole ? undefined : this.ariaBusy ?? undefined) as "true" | "false" | undefined}>
|
|
40
44
|
<slot></slot>
|
|
41
45
|
</div>
|
|
42
46
|
</>
|
|
@@ -207,6 +207,24 @@ class UDExMastheadCountrySelector extends UI5Element {
|
|
|
207
207
|
@property()
|
|
208
208
|
languageVoice!: string;
|
|
209
209
|
|
|
210
|
+
/**
|
|
211
|
+
* Defines the accessible ARIA name of the search field.
|
|
212
|
+
*
|
|
213
|
+
* @default ""
|
|
214
|
+
* @public
|
|
215
|
+
*/
|
|
216
|
+
@property()
|
|
217
|
+
accessibleNameSearch!: string;
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Defines the accessible ARIA name of the search reset icon.
|
|
221
|
+
*
|
|
222
|
+
* @default ""
|
|
223
|
+
* @public
|
|
224
|
+
*/
|
|
225
|
+
@property()
|
|
226
|
+
accessibleNameSearchResetIcon!: string;
|
|
227
|
+
|
|
210
228
|
/**
|
|
211
229
|
* Defines the country list of the region is opened
|
|
212
230
|
*
|
|
@@ -35,6 +35,8 @@ function activeRegionView(this: UDExMastheadCountrySelector) {
|
|
|
35
35
|
onui5-submit-search-value={this.handleSearch}
|
|
36
36
|
language-voice={this.languageVoice}
|
|
37
37
|
label={this.searchLabel}
|
|
38
|
+
accessible-name={this.accessibleNameSearch}
|
|
39
|
+
accessible-name-reset-icon={this.accessibleNameSearchResetIcon}
|
|
38
40
|
mode={this.homeSearchMode}
|
|
39
41
|
show-voice-button={this.showSearchVoiceButton}
|
|
40
42
|
non-interactive-submit-button={true}
|
package/src/MessageStrip.ts
CHANGED
|
@@ -224,6 +224,13 @@ class UDExMessageStrip extends MessageStrip {
|
|
|
224
224
|
return this.isDecorativeDesign || this.isNotIconStatusType;
|
|
225
225
|
}
|
|
226
226
|
|
|
227
|
+
get _closableText(): string {
|
|
228
|
+
if (!MessageStrip.i18nBundle) {
|
|
229
|
+
return "";
|
|
230
|
+
}
|
|
231
|
+
return super._closableText;
|
|
232
|
+
}
|
|
233
|
+
|
|
227
234
|
get hiddenText(): string {
|
|
228
235
|
const statusText = this.isDecorativeDesign ? (this.textStatusTypeMapping()[this.design] ?? "") : this.textStatusTypeMapping()[this.design];
|
|
229
236
|
return `${statusText} ${this.hideCloseButton ? "" : this._closableText}`.trim();
|
package/src/Search.ts
CHANGED
|
@@ -333,7 +333,10 @@ class UDExSearch extends UI5Element {
|
|
|
333
333
|
labelPrefix!: string;
|
|
334
334
|
|
|
335
335
|
/**
|
|
336
|
-
*
|
|
336
|
+
* Enables the suggestion popover to open automatically as the user types.
|
|
337
|
+
* The popover opens when the input has 2 or more characters and closes when cleared.
|
|
338
|
+
* Use this property for automatic, input-driven popover management.
|
|
339
|
+
* For programmatic control from the host application, use <code>openSuggestionPopup</code> instead.
|
|
337
340
|
*
|
|
338
341
|
* @default false
|
|
339
342
|
* @public
|
|
@@ -371,7 +374,12 @@ class UDExSearch extends UI5Element {
|
|
|
371
374
|
showPopoverWhenClickedIntoInput!: boolean;
|
|
372
375
|
|
|
373
376
|
/**
|
|
374
|
-
*
|
|
377
|
+
* Programmatically controls the visibility of the suggestion popover.
|
|
378
|
+
* Set to <code>true</code> to open the popover; set to <code>false</code> to close it.
|
|
379
|
+
* Use this property when the host application needs to control the popover state manually,
|
|
380
|
+
* for example after receiving an asynchronous API response.
|
|
381
|
+
* The <code>suggestionList</code> property must be populated with data for suggestions to appear.
|
|
382
|
+
* Use either this property or <code>showSuggestedPopover</code> — avoid using both simultaneously.
|
|
375
383
|
*
|
|
376
384
|
* @default false
|
|
377
385
|
* @public
|
|
@@ -563,6 +571,9 @@ class UDExSearch extends UI5Element {
|
|
|
563
571
|
@property({ type: Boolean })
|
|
564
572
|
_isTouched!: boolean;
|
|
565
573
|
|
|
574
|
+
private _openSuggestionHandled = false;
|
|
575
|
+
private _intersectionObserver?: IntersectionObserver;
|
|
576
|
+
|
|
566
577
|
@i18n("@sapudex/web-components")
|
|
567
578
|
static i18nBundle: I18nBundle;
|
|
568
579
|
|
|
@@ -576,11 +587,22 @@ class UDExSearch extends UI5Element {
|
|
|
576
587
|
this.isNotMozillaFirefoxIOS = !this.isMozillaFirefox("FxiOS");
|
|
577
588
|
this.initSpeechRecognition();
|
|
578
589
|
ResizeHandler.register(this, this._handleResizeBound);
|
|
590
|
+
this._intersectionObserver = new IntersectionObserver(entries => {
|
|
591
|
+
entries.forEach(entry => {
|
|
592
|
+
if (entry.isIntersecting && this.openSuggestionPopup) {
|
|
593
|
+
this._openSuggestionHandled = false;
|
|
594
|
+
this.handleOpenSuggestionPopover();
|
|
595
|
+
}
|
|
596
|
+
});
|
|
597
|
+
});
|
|
598
|
+
this._intersectionObserver.observe(this);
|
|
579
599
|
}
|
|
580
600
|
|
|
581
601
|
onExitDOM(): void {
|
|
582
602
|
ResizeHandler.deregister(this, this._handleResizeBound);
|
|
583
603
|
this.removeEventListener("dropdown-trigger-event", () => { });
|
|
604
|
+
this._intersectionObserver?.disconnect();
|
|
605
|
+
this._intersectionObserver = undefined;
|
|
584
606
|
}
|
|
585
607
|
|
|
586
608
|
initSpeechRecognition(): void {
|
|
@@ -633,6 +655,7 @@ class UDExSearch extends UI5Element {
|
|
|
633
655
|
|
|
634
656
|
setPopoverState(changeInfo: ChangeInfo): void {
|
|
635
657
|
if (changeInfo.name === "openSuggestionPopup") {
|
|
658
|
+
this._openSuggestionHandled = false;
|
|
636
659
|
this.handlePopoverTrigger(changeInfo.newValue as boolean);
|
|
637
660
|
}
|
|
638
661
|
}
|
|
@@ -651,8 +674,8 @@ class UDExSearch extends UI5Element {
|
|
|
651
674
|
}
|
|
652
675
|
}
|
|
653
676
|
|
|
654
|
-
setSuggestedRecommendedLists(value: string): void {
|
|
655
|
-
if (this.showSuggestedPopover && value) {
|
|
677
|
+
setSuggestedRecommendedLists(value: string, handleClose = true): void {
|
|
678
|
+
if ((this.showSuggestedPopover || this.openSuggestionPopup) && value) {
|
|
656
679
|
const parsedData: SuggestionRecommendLists = JSON.parse(value);
|
|
657
680
|
const hasDataLabels = this.hasDataLabel(parsedData);
|
|
658
681
|
|
|
@@ -661,7 +684,7 @@ class UDExSearch extends UI5Element {
|
|
|
661
684
|
this.suggestedList = this.getListWithSuggestion(this.getSuggestedList(hasDataLabels, parsedData), "suggested");
|
|
662
685
|
this.recommendedList = this.getListWithSuggestion(this.getRecommendedList(hasDataLabels, parsedData), "recommended");
|
|
663
686
|
}
|
|
664
|
-
if (!this.shouldShowPopover(parsedData, hasDataLabels)) {
|
|
687
|
+
if (handleClose && !this.shouldShowPopover(parsedData, hasDataLabels)) {
|
|
665
688
|
this.onClosePopover();
|
|
666
689
|
this.resetSuggestedRecommendedLists();
|
|
667
690
|
}
|
|
@@ -864,7 +887,7 @@ class UDExSearch extends UI5Element {
|
|
|
864
887
|
}
|
|
865
888
|
|
|
866
889
|
onOpenPopover(): void {
|
|
867
|
-
if (this.showSuggestedPopover) {
|
|
890
|
+
if (this.showSuggestedPopover || this.openSuggestionPopup) {
|
|
868
891
|
if (!this.Suggestion) {
|
|
869
892
|
retryUntilSuccessful(() => this.Suggestion, this.retryDelay, this.maxRetryAttempts, this.unsuccessfulRetryMessage)
|
|
870
893
|
.then(() => {
|
|
@@ -884,8 +907,8 @@ class UDExSearch extends UI5Element {
|
|
|
884
907
|
}
|
|
885
908
|
|
|
886
909
|
onClosePopover(): void {
|
|
887
|
-
if (this.showSuggestedPopover) {
|
|
888
|
-
this.Suggestion
|
|
910
|
+
if (this.showSuggestedPopover || this.open) {
|
|
911
|
+
this.Suggestion?.close();
|
|
889
912
|
this.handleAriaExpanded();
|
|
890
913
|
this.open = false;
|
|
891
914
|
this.fireDecoratorEvent("suggestion-popover-closed");
|
|
@@ -897,15 +920,18 @@ class UDExSearch extends UI5Element {
|
|
|
897
920
|
}
|
|
898
921
|
|
|
899
922
|
get rootClasses(): string {
|
|
900
|
-
if (this.mode === Mode.HomeSearch && this.showSuggestedPopover && this.open) {
|
|
923
|
+
if (this.mode === Mode.HomeSearch && (this.showSuggestedPopover) && this.open) {
|
|
901
924
|
return this.isSuggestionPopoverTop ? "udex-search__root--show-popover-top" : "udex-search__root--show-popover";
|
|
902
925
|
}
|
|
903
926
|
return "";
|
|
904
927
|
}
|
|
905
928
|
|
|
906
929
|
onBeforeRendering(): void {
|
|
907
|
-
if (this.showSuggestedPopover) {
|
|
930
|
+
if (this.showSuggestedPopover || this.openSuggestionPopup) {
|
|
908
931
|
this.enableSuggestions();
|
|
932
|
+
if (this.suggestionList && !this.suggestedList?.length && !this.recommendedList?.length) {
|
|
933
|
+
this.setSuggestedRecommendedLists(this.suggestionList, false);
|
|
934
|
+
}
|
|
909
935
|
}
|
|
910
936
|
|
|
911
937
|
if (this.isHomeSearchWithPrefixMode && this.dropdownPrefix.length) {
|
|
@@ -976,7 +1002,7 @@ class UDExSearch extends UI5Element {
|
|
|
976
1002
|
}
|
|
977
1003
|
|
|
978
1004
|
onAfterRendering(): void {
|
|
979
|
-
if (this.showSuggestedPopover) {
|
|
1005
|
+
if (this.showSuggestedPopover || this.openSuggestionPopup) {
|
|
980
1006
|
const prefixPopover = this.getPrefixPopover();
|
|
981
1007
|
|
|
982
1008
|
if (this.Suggestion?.popover) {
|
|
@@ -998,9 +1024,18 @@ class UDExSearch extends UI5Element {
|
|
|
998
1024
|
}
|
|
999
1025
|
|
|
1000
1026
|
handleOpenSuggestionPopover() {
|
|
1001
|
-
if (this.openSuggestionPopup) {
|
|
1027
|
+
if (this.openSuggestionPopup && !this._openSuggestionHandled) {
|
|
1028
|
+
this._openSuggestionHandled = true;
|
|
1002
1029
|
this.Suggestion?._getSuggestionPopover();
|
|
1003
|
-
|
|
1030
|
+
// Defer to the next animation frame so the opener element has a resolved
|
|
1031
|
+
// layout before UI5 Popover calculates its position. Without this, opening
|
|
1032
|
+
// during onAfterRendering (which runs in a microtask, before layout) causes
|
|
1033
|
+
// the popover to anchor at 0,0 — appearing detached from the search input.
|
|
1034
|
+
requestAnimationFrame(() => {
|
|
1035
|
+
if (this.openSuggestionPopup) {
|
|
1036
|
+
this.handlePopoverTrigger(this.openSuggestionPopup);
|
|
1037
|
+
}
|
|
1038
|
+
});
|
|
1004
1039
|
}
|
|
1005
1040
|
}
|
|
1006
1041
|
|
package/src/SearchTemplate.tsx
CHANGED
|
@@ -49,12 +49,12 @@ export default function SearchTemplate(this: UDExSearch) {
|
|
|
49
49
|
size={UDExButtonSize.Small}
|
|
50
50
|
design={UDExButtonDesign.Default}
|
|
51
51
|
tooltip={this.tooltipInfo.tooltipResetButton}
|
|
52
|
+
accessible-name={this.accInfo.accessibleNameResetIcon}
|
|
52
53
|
onClick={this.onReset as any}
|
|
53
54
|
onKeyDown={this.handleKeyDownReset}
|
|
54
55
|
>
|
|
55
56
|
<UI5Icon
|
|
56
57
|
class="udex-search__button-icon"
|
|
57
|
-
accessible-name={this.accInfo.accessibleNameResetIcon}
|
|
58
58
|
accessible-role="presentation"
|
|
59
59
|
name={decline}
|
|
60
60
|
></UI5Icon>
|
|
@@ -111,6 +111,7 @@ export default function SearchTemplate(this: UDExSearch) {
|
|
|
111
111
|
design={UDExButtonDesign.Default}
|
|
112
112
|
icon={search}
|
|
113
113
|
size={UDExButtonSize.Small}
|
|
114
|
+
accessible-name={this.accInfo.accessibleNameSearchIcon}
|
|
114
115
|
tooltip={this.tooltipInfo.tooltipSubmitButton}
|
|
115
116
|
onClick={this.onSubmit as any}
|
|
116
117
|
></UDExButton>
|
|
@@ -127,6 +128,7 @@ export default function SearchTemplate(this: UDExSearch) {
|
|
|
127
128
|
icon={search}
|
|
128
129
|
tooltip={this.tooltipInfo.tooltipSubmitButton}
|
|
129
130
|
onClick={this.onSubmit as any}
|
|
131
|
+
accessible-name={this.accInfo.accessibleNameSearchIcon}
|
|
130
132
|
></UDExControlButton>
|
|
131
133
|
) : ""
|
|
132
134
|
}
|