@sapudex/web-components 2.58.0 → 2.60.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/SelectBox.cy.tsx +355 -249
- package/cypress/specs/TabNavigation.cy.tsx +54 -0
- package/cypress/specs/TagGroup.cy.tsx +1 -1
- package/dist/ListGroupHeaderBase.js +9 -0
- package/dist/ListGroupHeaderBase.js.map +1 -1
- package/dist/ListGroupHeaderTemplate.js +15 -1
- package/dist/ListGroupHeaderTemplate.js.map +1 -1
- package/dist/MastheadCountrySelectorTemplate.js +1 -1
- package/dist/MastheadCountrySelectorTemplate.js.map +1 -1
- package/dist/RatingIndicatorTemplate.js +1 -1
- package/dist/RatingIndicatorTemplate.js.map +1 -1
- package/dist/SecondaryNavigation.js +3 -3
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.d.ts +0 -1
- package/dist/SecondaryNavigationItem.js +4 -6
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SecondaryNavigationItemBase.js +2 -2
- package/dist/SecondaryNavigationItemBase.js.map +1 -1
- package/dist/SecondaryNavigationItemTemplate.d.ts +2 -0
- package/dist/SecondaryNavigationItemTemplate.js +12 -0
- package/dist/SecondaryNavigationItemTemplate.js.map +1 -0
- package/dist/SecondaryNavigationSubItem.d.ts +0 -2
- package/dist/SecondaryNavigationSubItem.js +3 -7
- package/dist/SecondaryNavigationSubItem.js.map +1 -1
- package/dist/SecondaryNavigationSubItemTemplate.d.ts +2 -0
- package/dist/SecondaryNavigationSubItemTemplate.js +16 -0
- package/dist/SecondaryNavigationSubItemTemplate.js.map +1 -0
- package/dist/SecondaryNavigationTemplate.d.ts +2 -0
- package/dist/SecondaryNavigationTemplate.js +7 -0
- package/dist/SecondaryNavigationTemplate.js.map +1 -0
- package/dist/SelectBase.d.ts +7 -2
- package/dist/SelectBase.js +26 -38
- package/dist/SelectBase.js.map +1 -1
- package/dist/SideNavigationMobile.d.ts +2 -3
- package/dist/SideNavigationMobile.js +22 -16
- package/dist/SideNavigationMobile.js.map +1 -1
- package/dist/SideNavigationMobileTemplate.d.ts +2 -0
- package/dist/SideNavigationMobileTemplate.js +11 -0
- package/dist/SideNavigationMobileTemplate.js.map +1 -0
- package/dist/TabNavigation.d.ts +12 -0
- package/dist/TabNavigation.js +17 -0
- package/dist/TabNavigation.js.map +1 -1
- package/dist/TabNavigationTemplate.js +1 -1
- package/dist/TabNavigationTemplate.js.map +1 -1
- package/dist/TagGroup.d.ts +2 -2
- package/dist/TagGroup.js +14 -3
- package/dist/TagGroup.js.map +1 -1
- package/dist/assets/InputSuggestions-DyNcKgip.js +2 -0
- package/dist/assets/{ListItemStandardExpandableTextTemplate-D2i8wWuR.js → ListItemStandardExpandableTextTemplate-qdKPzaOQ.js} +1 -1
- package/dist/assets/{ar-6UKwJun6.js → ar-CMU2PGtw.js} +1 -1
- package/dist/assets/{ar_EG-BTSal4jr.js → ar_EG-Bi2CIb24.js} +1 -1
- package/dist/assets/{ar_SA-Ck13AOrQ.js → ar_SA-BXTzBfWR.js} +1 -1
- package/dist/assets/{bg-fF9FXKHH.js → bg-B6_PMtzW.js} +1 -1
- package/dist/assets/{bundle.esm-BjN47C_y.js → bundle.esm-sUYwSJOp.js} +244 -262
- package/dist/assets/{ca-ZuvXTynI.js → ca-DFP6ILMq.js} +1 -1
- package/dist/assets/{cnr-CiidS6E_.js → cnr-Grlu3JuX.js} +1 -1
- package/dist/assets/{cs-CKH0PBiM.js → cs-lgNqqL4u.js} +1 -1
- package/dist/assets/{da-DLJy-V4w.js → da-ZKggtzGq.js} +1 -1
- package/dist/assets/{de-0N92OkSB.js → de-DL1zgfsi.js} +1 -1
- package/dist/assets/{de_AT-D8g7Tth2.js → de_AT-CmarUHhe.js} +1 -1
- package/dist/assets/{de_CH-DYTcKEqU.js → de_CH-CFp86jVo.js} +1 -1
- package/dist/assets/{el-OYZuNIHv.js → el-FdvefiDT.js} +1 -1
- package/dist/assets/{el_CY-D79vuMAa.js → el_CY-BJPkkKi8.js} +1 -1
- package/dist/assets/{en-CllNN7YY.js → en-B1Q_JFFb.js} +1 -1
- package/dist/assets/{en_AU-Ddrviu44.js → en_AU-Bm6lcfFm.js} +1 -1
- package/dist/assets/{en_GB-B9eSErHy.js → en_GB-CCipb5dG.js} +1 -1
- package/dist/assets/{en_HK-FdAjB4tQ.js → en_HK-Bu8Js72H.js} +1 -1
- package/dist/assets/{en_IE-zdmtzUDu.js → en_IE-BZXJHeYM.js} +1 -1
- package/dist/assets/{en_IN-DJJRjMIF.js → en_IN-Dh3537uv.js} +1 -1
- package/dist/assets/{en_NZ-BY--qj4s.js → en_NZ-Bx3mG4fb.js} +1 -1
- package/dist/assets/{en_PG-RcJi2hvJ.js → en_PG-CyRO9VGd.js} +1 -1
- package/dist/assets/{en_SG-BUtJMBS2.js → en_SG-BEsuw651.js} +1 -1
- package/dist/assets/{en_ZA-D-uqJ4Za.js → en_ZA-i0tdkruX.js} +1 -1
- package/dist/assets/{es-DgitLRHt.js → es-BKtAFDBk.js} +1 -1
- package/dist/assets/{es_AR-7a81KXAl.js → es_AR-Cgh6Q2W_.js} +1 -1
- package/dist/assets/{es_BO-CdNGyTgv.js → es_BO-CaK9OOQC.js} +1 -1
- package/dist/assets/{es_CL-DuHBIVFo.js → es_CL-u6fJ6PPk.js} +1 -1
- package/dist/assets/{es_CO-C0CJWwB-.js → es_CO-DAO-13dw.js} +1 -1
- package/dist/assets/{es_MX-DtPgyxGD.js → es_MX-D1KhXUy4.js} +1 -1
- package/dist/assets/{es_PE-DGF7Yjrt.js → es_PE-DEUen4VG.js} +1 -1
- package/dist/assets/{es_UY-fD9lVhfR.js → es_UY-CPBMwHSz.js} +1 -1
- package/dist/assets/{es_VE-BX3pigg8.js → es_VE-CNZouG2K.js} +1 -1
- package/dist/assets/{et-BMj4rjsT.js → et-DNQPssPo.js} +1 -1
- package/dist/assets/{fa-CQhbGi8S.js → fa-4zj1zCg1.js} +1 -1
- package/dist/assets/{fi-DBKA9_K5.js → fi-C6HFNTL6.js} +1 -1
- package/dist/assets/{fr-CMQtkd4R.js → fr-BydrHZkq.js} +1 -1
- package/dist/assets/{fr_BE-Bl0FruWm.js → fr_BE-C8hcZNOL.js} +1 -1
- package/dist/assets/{fr_CA-DFlIL_d4.js → fr_CA-Cw2zy44G.js} +1 -1
- package/dist/assets/{fr_CH-C8lyCDBe.js → fr_CH-BbCQFx3s.js} +1 -1
- package/dist/assets/{fr_LU-CG5r3b1-.js → fr_LU-BpH6nMiI.js} +1 -1
- package/dist/assets/{he-D3P1Q9GQ.js → he-CfKmVVrF.js} +1 -1
- package/dist/assets/{hi-B3yky8gy.js → hi-D1WBUmI6.js} +1 -1
- package/dist/assets/{hr-cQ9G2h7E.js → hr-pnk2hlkB.js} +1 -1
- package/dist/assets/{hu-D0ywysYs.js → hu-CCzBj3iT.js} +1 -1
- package/dist/assets/{id-B-yAWgiT.js → id-BeGrqJpK.js} +1 -1
- package/dist/assets/{it-DLzjbv-9.js → it-B6Mz1czr.js} +1 -1
- package/dist/assets/{it_CH-DKz1oDNC.js → it_CH-CwPXoj3N.js} +1 -1
- package/dist/assets/{ja-C8zg_Zor.js → ja-BILluLT2.js} +1 -1
- package/dist/assets/{kk-DZZOQ4wh.js → kk-YSUtf5Jy.js} +1 -1
- package/dist/assets/{ko-BEJWYeL9.js → ko-DUlXl0QQ.js} +1 -1
- package/dist/assets/{lt-Cji-Zk_r.js → lt-Dn5sAAtt.js} +1 -1
- package/dist/assets/{lv-rjxWTRTn.js → lv-D_k8IElJ.js} +1 -1
- package/dist/assets/messagebundle_ar-C3EXytoC.js +1 -0
- package/dist/assets/messagebundle_ar-DmZrrjEF.js +1 -0
- package/dist/assets/messagebundle_bg-BaZ97Q_b.js +1 -0
- package/dist/assets/messagebundle_bg-CgU7GPvK.js +1 -0
- package/dist/assets/messagebundle_ca-BwjVUbUA.js +1 -0
- package/dist/assets/messagebundle_ca-YiUGbO_8.js +1 -0
- package/dist/assets/messagebundle_cnr-CN2hPZIN.js +1 -0
- package/dist/assets/messagebundle_cnr-zdEdPJvc.js +1 -0
- package/dist/assets/messagebundle_cs-CGbnEjza.js +1 -0
- package/dist/assets/messagebundle_cs-DmRWH--o.js +1 -0
- package/dist/assets/messagebundle_cy-BF0YH9Iz.js +1 -0
- package/dist/assets/messagebundle_cy-CUiGsjO6.js +1 -0
- package/dist/assets/messagebundle_da-CWKLQJiq.js +1 -0
- package/dist/assets/messagebundle_da-bTkr4pUc.js +1 -0
- package/dist/assets/messagebundle_de-BmnClk4G.js +1 -0
- package/dist/assets/messagebundle_de-vB6qhgvG.js +1 -0
- package/dist/assets/messagebundle_el-DKdItEgW.js +1 -0
- package/dist/assets/messagebundle_el-Gv1Ly8aj.js +1 -0
- package/dist/assets/messagebundle_en-DbKo-Dkl.js +1 -0
- package/dist/assets/messagebundle_en-DcV886MF.js +1 -0
- package/dist/assets/messagebundle_en_GB-Be93_Z4H.js +1 -0
- package/dist/assets/messagebundle_en_GB-CFh7e8hQ.js +1 -0
- package/dist/assets/messagebundle_en_US_sappsd-HCarC-Yr.js +1 -0
- package/dist/assets/messagebundle_en_US_sappsd-Se8GgI58.js +1 -0
- package/dist/assets/messagebundle_en_US_saprigi-CCHFk7YZ.js +1 -0
- package/dist/assets/messagebundle_en_US_saprigi-CbfvaHUL.js +1 -0
- package/dist/assets/messagebundle_en_US_saptrc-B8AIRzlo.js +1 -0
- package/dist/assets/messagebundle_en_US_saptrc-yJ3PcdEm.js +1 -0
- package/dist/assets/messagebundle_es-BH-a8BxO.js +1 -0
- package/dist/assets/messagebundle_es-Dt93wbGV.js +1 -0
- package/dist/assets/messagebundle_es_MX-BedlYlF3.js +1 -0
- package/dist/assets/messagebundle_es_MX-COPqooo9.js +1 -0
- package/dist/assets/messagebundle_et-BsYgDw46.js +1 -0
- package/dist/assets/messagebundle_et-UwpqUE-p.js +1 -0
- package/dist/assets/messagebundle_fi-BN3UWEz0.js +1 -0
- package/dist/assets/messagebundle_fi-Cwf7Puui.js +1 -0
- package/dist/assets/messagebundle_fr-43w09LAE.js +1 -0
- package/dist/assets/messagebundle_fr-CVRaf9_H.js +1 -0
- package/dist/assets/messagebundle_fr_CA-BM04X6xU.js +1 -0
- package/dist/assets/messagebundle_fr_CA-CdnVYumi.js +1 -0
- package/dist/assets/messagebundle_hi-DfeonbAH.js +1 -0
- package/dist/assets/messagebundle_hi-JRJlP9Uh.js +1 -0
- package/dist/assets/messagebundle_hr-CKOnn34q.js +1 -0
- package/dist/assets/messagebundle_hr-CbyIBlH3.js +1 -0
- package/dist/assets/messagebundle_hu-DF1gQudE.js +1 -0
- package/dist/assets/messagebundle_hu-D_IQ9kTy.js +1 -0
- package/dist/assets/messagebundle_id-B0K1usj4.js +1 -0
- package/dist/assets/messagebundle_id-gDJYoaGq.js +1 -0
- package/dist/assets/messagebundle_it-B80_R2Ih.js +1 -0
- package/dist/assets/messagebundle_it-CVqU4g6t.js +1 -0
- package/dist/assets/messagebundle_iw-BoelOIS4.js +1 -0
- package/dist/assets/messagebundle_iw-iMDtLxaa.js +1 -0
- package/dist/assets/messagebundle_ja-BlRbv4vb.js +1 -0
- package/dist/assets/messagebundle_ja-BrDH-19-.js +1 -0
- package/dist/assets/messagebundle_kk-C7VPek1-.js +1 -0
- package/dist/assets/messagebundle_kk-DhAT_bim.js +1 -0
- package/dist/assets/messagebundle_ko-CIqP8x6n.js +1 -0
- package/dist/assets/messagebundle_ko-DgD6uyZ5.js +1 -0
- package/dist/assets/messagebundle_lt-BGK5mpcm.js +1 -0
- package/dist/assets/messagebundle_lt-BV0kKrY0.js +1 -0
- package/dist/assets/messagebundle_lv-5IcjoxWD.js +1 -0
- package/dist/assets/messagebundle_lv-DDBi7iKe.js +1 -0
- package/dist/assets/messagebundle_mk-BUrn04sZ.js +1 -0
- package/dist/assets/messagebundle_mk-P5veRdg2.js +1 -0
- package/dist/assets/messagebundle_ms-9VDLR5en.js +1 -0
- package/dist/assets/messagebundle_ms-CB8sQUg2.js +1 -0
- package/dist/assets/messagebundle_nl-BaAgPO7h.js +1 -0
- package/dist/assets/messagebundle_nl-f1Up3dB9.js +1 -0
- package/dist/assets/messagebundle_no-C-_ldp7o.js +1 -0
- package/dist/assets/messagebundle_no-DRSqWQ-C.js +1 -0
- package/dist/assets/messagebundle_pl-BQoPaokq.js +1 -0
- package/dist/assets/messagebundle_pl-DBO1atMe.js +1 -0
- package/dist/assets/messagebundle_pt-BNEglYxa.js +1 -0
- package/dist/assets/messagebundle_pt-DgAMHmW-.js +1 -0
- package/dist/assets/messagebundle_pt_PT-BtYzp9KB.js +1 -0
- package/dist/assets/messagebundle_pt_PT-D1Ef8kUU.js +1 -0
- package/dist/assets/messagebundle_ro-CuDPp2fe.js +1 -0
- package/dist/assets/messagebundle_ro-D591wJ6f.js +1 -0
- package/dist/assets/messagebundle_ru-D0NridWi.js +1 -0
- package/dist/assets/messagebundle_ru-I8YLCfrn.js +1 -0
- package/dist/assets/messagebundle_sh-BswdbSRi.js +1 -0
- package/dist/assets/messagebundle_sh-Dw2y_oct.js +1 -0
- package/dist/assets/messagebundle_sk-BG4S4ZVk.js +1 -0
- package/dist/assets/messagebundle_sk-CXOF1RuF.js +1 -0
- package/dist/assets/messagebundle_sl-CAnJO_8X.js +1 -0
- package/dist/assets/messagebundle_sl-kpVWxIp_.js +1 -0
- package/dist/assets/messagebundle_sr-BTWvO8VQ.js +1 -0
- package/dist/assets/messagebundle_sr-VJmRSdj4.js +1 -0
- package/dist/assets/messagebundle_sv-B-RCgnW_.js +1 -0
- package/dist/assets/messagebundle_sv-Bd4wCcDb.js +1 -0
- package/dist/assets/messagebundle_th-CMHmLdI3.js +1 -0
- package/dist/assets/messagebundle_th-CZ1imsCy.js +1 -0
- package/dist/assets/messagebundle_tr-BfWAYIdW.js +1 -0
- package/dist/assets/messagebundle_tr-D-BnBirv.js +1 -0
- package/dist/assets/messagebundle_uk-DhxIThVl.js +1 -0
- package/dist/assets/messagebundle_uk-HU8hI0yj.js +1 -0
- package/dist/assets/messagebundle_vi-BUTqUKd4.js +1 -0
- package/dist/assets/messagebundle_vi-D1El4_Wj.js +1 -0
- package/dist/assets/messagebundle_zh_CN-Dt0azUea.js +1 -0
- package/dist/assets/messagebundle_zh_CN-Ofgx2uXY.js +1 -0
- package/dist/assets/messagebundle_zh_TW-5lv7yYS1.js +1 -0
- package/dist/assets/messagebundle_zh_TW-LSErOAsd.js +1 -0
- package/dist/assets/{mk-9_dtu4u_.js → mk-DTLhuyCG.js} +1 -1
- package/dist/assets/{ms-9b0nct8m.js → ms-BrLiVOVI.js} +1 -1
- package/dist/assets/{nb-CbGeVRux.js → nb-BeQEL0TR.js} +1 -1
- package/dist/assets/{nl-C0vlsmuT.js → nl-CGAh49hZ.js} +1 -1
- package/dist/assets/{nl_BE-Cteh34au.js → nl_BE-CxJbQu5q.js} +1 -1
- package/dist/assets/{parameters-bundle.css-D7WciSOr.js → parameters-bundle.css-B68EyCuR.js} +2 -0
- package/dist/assets/{parameters-bundle.css-CT-eTeTy.js → parameters-bundle.css-BkJSEiFx.js} +2 -0
- package/dist/assets/{parameters-bundle.css-BXQ-0CBp.js → parameters-bundle.css-C5V2Zp_F.js} +2 -0
- package/dist/assets/{parameters-bundle.css-XYDTPt-n.js → parameters-bundle.css-COeynv6D.js} +3 -1
- package/dist/assets/parameters-bundle.css-CnIzAMdG.js +3 -0
- package/dist/assets/parameters-bundle.css-CsV5qbZp.js +3 -0
- package/dist/assets/{parameters-bundle.css-C7KCPeJ8.js → parameters-bundle.css-DCvHNL3s.js} +1 -1
- package/dist/assets/{parameters-bundle.css-CQFZmxYm.js → parameters-bundle.css-DK40uKOQ.js} +1 -1
- package/dist/assets/parameters-bundle.css-DMfTAqMv.js +2 -0
- package/dist/assets/parameters-bundle.css-DO35k9r0.js +2 -0
- package/dist/assets/parameters-bundle.css-Df7wtRW4.js +2 -0
- package/dist/assets/{parameters-bundle.css-CxjtOlRD.js → parameters-bundle.css-DmEWEk0u.js} +36 -28
- package/dist/assets/{parameters-bundle.css-CSUOmZKr.js → parameters-bundle.css-DvAfqdlT.js} +1 -1
- package/dist/assets/{parameters-bundle.css-DPz62M1p.js → parameters-bundle.css-K-MvKimD.js} +3 -1
- package/dist/assets/parameters-bundle.css-KoXGNyLG.js +3 -0
- package/dist/assets/{parameters-bundle.css-CLLnzh9T.js → parameters-bundle.css-P_M_rm9z.js} +1 -1
- package/dist/assets/parameters-bundle.css-UJIxXHL5.js +2 -0
- package/dist/assets/{parameters-bundle.css-V2I5eOdH.js → parameters-bundle.css-co26r5Nz.js} +1 -1
- package/dist/assets/parameters-bundle.css-uT62L0va.js +3 -0
- package/dist/assets/{parameters-bundle.css-Cmk27zY9.js → parameters-bundle.css-vNsSPPU5.js} +38 -31
- package/dist/assets/{pl-CDjXMBDR.js → pl-DaZJCEN3.js} +1 -1
- package/dist/assets/{pt-BXklB5_T.js → pt-RxoGfR56.js} +1 -1
- package/dist/assets/{pt_PT-DEzSdlMb.js → pt_PT-CuC22O4H.js} +1 -1
- package/dist/assets/{ro-bFLE5ZuX.js → ro-kcCACdbI.js} +1 -1
- package/dist/assets/{ru-DuGdFJZn.js → ru-BQzoU2Gq.js} +1 -1
- package/dist/assets/{ru_UA-DujiLlPN.js → ru_UA-BtdbuqWW.js} +1 -1
- package/dist/assets/{sk-GkzEgQor.js → sk-D4C2H17S.js} +1 -1
- package/dist/assets/{sl-BhuoMxwQ.js → sl-7ESgddjQ.js} +1 -1
- package/dist/assets/{sr-Bb668mIq.js → sr-m2FCxV00.js} +1 -1
- package/dist/assets/{sr_Latn-C61cXg9o.js → sr_Latn-Dh8ru1_a.js} +1 -1
- package/dist/assets/{sv-yft9g0aL.js → sv-DkcDHqsr.js} +1 -1
- package/dist/assets/{th-BiAki51N.js → th-sJeg9F0h.js} +1 -1
- package/dist/assets/{tr-DDt0vBOs.js → tr-C2e7ABy0.js} +1 -1
- package/dist/assets/{uk-A-zqF2vZ.js → uk-Cdp63d6T.js} +1 -1
- package/dist/assets/{vi-Bleu1lwm.js → vi-DuFuMCO2.js} +1 -1
- package/dist/assets/{zh_CN-kJCGkFOs.js → zh_CN-BOAGYFIg.js} +1 -1
- package/dist/assets/{zh_HK-BJMkT2Ze.js → zh_HK-Bmft66uR.js} +1 -1
- package/dist/assets/{zh_SG-Lz9Li7LQ.js → zh_SG-ChcB0A9F.js} +1 -1
- package/dist/assets/{zh_TW-P8-QBSyv.js → zh_TW-C8FI5AC8.js} +1 -1
- package/dist/css/themes/AccordionSpotlight.css +1 -1
- package/dist/css/themes/Checkbox.css +1 -1
- package/dist/css/themes/FeedItem.css +1 -1
- package/dist/css/themes/Footer.css +1 -1
- package/dist/css/themes/ListGroupHeader.css +1 -1
- package/dist/css/themes/Pagination.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/SecondaryNavigation.css +1 -1
- package/dist/css/themes/SecondaryNavigationItem.css +1 -1
- package/dist/css/themes/SecondaryNavigationSubItem.css +1 -1
- package/dist/css/themes/WizardTab.css +1 -1
- package/dist/custom-elements-internal.json +19 -0
- package/dist/custom-elements.json +52 -0
- 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/Checkbox.css.d.ts +1 -1
- package/dist/generated/themes/Checkbox.css.js +1 -1
- package/dist/generated/themes/Checkbox.css.js.map +1 -1
- package/dist/generated/themes/FeedItem.css.d.ts +1 -1
- package/dist/generated/themes/FeedItem.css.js +1 -1
- package/dist/generated/themes/FeedItem.css.js.map +1 -1
- package/dist/generated/themes/Footer.css.d.ts +1 -1
- package/dist/generated/themes/Footer.css.js +1 -1
- package/dist/generated/themes/Footer.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/Pagination.css.d.ts +1 -1
- package/dist/generated/themes/Pagination.css.js +1 -1
- package/dist/generated/themes/Pagination.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/SecondaryNavigation.css.d.ts +1 -1
- package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
- package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
- package/dist/generated/themes/SecondaryNavigationItem.css.d.ts +1 -1
- package/dist/generated/themes/SecondaryNavigationItem.css.js +1 -1
- package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
- package/dist/generated/themes/SecondaryNavigationSubItem.css.d.ts +1 -1
- package/dist/generated/themes/SecondaryNavigationSubItem.css.js +1 -1
- package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -1
- package/dist/generated/themes/WizardTab.css.d.ts +1 -1
- package/dist/generated/themes/WizardTab.css.js +1 -1
- package/dist/generated/themes/WizardTab.css.js.map +1 -1
- package/dist/utils/Breakpoints.d.ts +20 -1
- package/dist/utils/Breakpoints.js +38 -8
- package/dist/utils/Breakpoints.js.map +1 -1
- package/dist/vscode.html-custom-data.json +115 -456
- package/dist/web-types.json +11 -1
- package/package.json +8 -8
- package/src/ListGroupHeaderBase.ts +9 -0
- package/src/ListGroupHeaderTemplate.tsx +15 -3
- package/src/MastheadCountrySelectorTemplate.tsx +3 -2
- package/src/RatingIndicatorTemplate.tsx +0 -1
- package/src/SecondaryNavigation.ts +3 -3
- package/src/SecondaryNavigationItem.ts +4 -6
- package/src/SecondaryNavigationItemBase.ts +2 -2
- package/src/SecondaryNavigationItemTemplate.tsx +80 -0
- package/src/SecondaryNavigationSubItem.ts +3 -7
- package/src/SecondaryNavigationSubItemTemplate.tsx +63 -0
- package/src/SecondaryNavigationTemplate.tsx +90 -0
- package/src/SelectBase.ts +29 -46
- package/src/SideNavigationMobile.ts +24 -17
- package/src/SideNavigationMobileTemplate.tsx +59 -0
- package/src/TabNavigation.ts +17 -0
- package/src/TabNavigationTemplate.tsx +1 -1
- package/src/TagGroup.ts +16 -5
- package/src/generated/themes/AccordionSpotlight.css.ts +1 -1
- package/src/generated/themes/Checkbox.css.ts +1 -1
- package/src/generated/themes/FeedItem.css.ts +1 -1
- package/src/generated/themes/Footer.css.ts +1 -1
- package/src/generated/themes/ListGroupHeader.css.ts +1 -1
- package/src/generated/themes/Pagination.css.ts +1 -1
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
- package/src/generated/themes/SecondaryNavigationItem.css.ts +1 -1
- package/src/generated/themes/SecondaryNavigationSubItem.css.ts +1 -1
- package/src/generated/themes/WizardTab.css.ts +1 -1
- package/src/themes/AccordionSpotlight.css +1 -1
- package/src/themes/Checkbox.css +5 -1
- package/src/themes/FeedItem.css +2 -1
- package/src/themes/Footer.css +4 -4
- package/src/themes/ListGroupHeader.css +6 -4
- package/src/themes/Pagination.css +14 -5
- package/src/themes/RatingIndicator.css +6 -1
- package/src/themes/SecondaryNavigation.css +3 -3
- package/src/themes/SecondaryNavigationItem.css +2 -2
- package/src/themes/SecondaryNavigationSubItem.css +2 -2
- package/src/themes/WizardTab.css +6 -1
- package/src/utils/Breakpoints.ts +39 -8
- package/dist/assets/InputSuggestions-CMYjJsHw.js +0 -2
- package/dist/assets/messagebundle_ar-BRkfjlVF.js +0 -1
- package/dist/assets/messagebundle_ar-D5A573iZ.js +0 -1
- package/dist/assets/messagebundle_bg-ByA8yRlQ.js +0 -1
- package/dist/assets/messagebundle_bg-CIVFOczQ.js +0 -1
- package/dist/assets/messagebundle_ca-BR3XuU9o.js +0 -1
- package/dist/assets/messagebundle_ca-CnMQ87v0.js +0 -1
- package/dist/assets/messagebundle_cnr-C6YhRiS7.js +0 -1
- package/dist/assets/messagebundle_cnr-CKZii51E.js +0 -1
- package/dist/assets/messagebundle_cs-DcOu8IOK.js +0 -1
- package/dist/assets/messagebundle_cs-I7yYpbsI.js +0 -1
- package/dist/assets/messagebundle_cy-BxrFUGJ9.js +0 -1
- package/dist/assets/messagebundle_cy-iXD_sJ-H.js +0 -1
- package/dist/assets/messagebundle_da-BVQHPgwf.js +0 -1
- package/dist/assets/messagebundle_da-CMGObFa5.js +0 -1
- package/dist/assets/messagebundle_de-CSl05u5u.js +0 -1
- package/dist/assets/messagebundle_de-Ca8NttFO.js +0 -1
- package/dist/assets/messagebundle_el-Cqfj_U5v.js +0 -1
- package/dist/assets/messagebundle_el-D9Zgq5tn.js +0 -1
- package/dist/assets/messagebundle_en-D0JTZvAf.js +0 -1
- package/dist/assets/messagebundle_en-DWqF0cay.js +0 -1
- package/dist/assets/messagebundle_en_GB-CGB_FKp4.js +0 -1
- package/dist/assets/messagebundle_en_GB-Cl7ekzz2.js +0 -1
- package/dist/assets/messagebundle_en_US_sappsd-7UdOh8vN.js +0 -1
- package/dist/assets/messagebundle_en_US_sappsd-B8rqsyFQ.js +0 -1
- package/dist/assets/messagebundle_en_US_saprigi-9VCo5QY0.js +0 -1
- package/dist/assets/messagebundle_en_US_saprigi-DfLzOCPY.js +0 -1
- package/dist/assets/messagebundle_en_US_saptrc-DZqYka05.js +0 -1
- package/dist/assets/messagebundle_en_US_saptrc-Wh_IysAB.js +0 -1
- package/dist/assets/messagebundle_es-DKn8EzzP.js +0 -1
- package/dist/assets/messagebundle_es-lf5AJZNW.js +0 -1
- package/dist/assets/messagebundle_es_MX-DyYZGjON.js +0 -1
- package/dist/assets/messagebundle_es_MX-yBTcvu7u.js +0 -1
- package/dist/assets/messagebundle_et-Dz8Ohhcp.js +0 -1
- package/dist/assets/messagebundle_et-rMWbS-Nu.js +0 -1
- package/dist/assets/messagebundle_fi-Bfbyhuuz.js +0 -1
- package/dist/assets/messagebundle_fi-DnXm7LPH.js +0 -1
- package/dist/assets/messagebundle_fr-BvbeCfZ-.js +0 -1
- package/dist/assets/messagebundle_fr-KQhoZEew.js +0 -1
- package/dist/assets/messagebundle_fr_CA-CE2lzYx5.js +0 -1
- package/dist/assets/messagebundle_fr_CA-CIhDzHAJ.js +0 -1
- package/dist/assets/messagebundle_hi-BRQ9tZ6F.js +0 -1
- package/dist/assets/messagebundle_hi-DPwH9vag.js +0 -1
- package/dist/assets/messagebundle_hr-BSKQ6zHT.js +0 -1
- package/dist/assets/messagebundle_hr-D3gQg5JN.js +0 -1
- package/dist/assets/messagebundle_hu-CAA4oM1C.js +0 -1
- package/dist/assets/messagebundle_hu-CZNs1K9T.js +0 -1
- package/dist/assets/messagebundle_id-9H0uJyXB.js +0 -1
- package/dist/assets/messagebundle_id-m6iosVVP.js +0 -1
- package/dist/assets/messagebundle_it-BWzxa-Mi.js +0 -1
- package/dist/assets/messagebundle_it-Cm_0HF21.js +0 -1
- package/dist/assets/messagebundle_iw-DpB2YXTa.js +0 -1
- package/dist/assets/messagebundle_iw-NfqePNtD.js +0 -1
- package/dist/assets/messagebundle_ja-BCSZcI8t.js +0 -1
- package/dist/assets/messagebundle_ja-C-qqwzFf.js +0 -1
- package/dist/assets/messagebundle_kk--PGqyTVS.js +0 -1
- package/dist/assets/messagebundle_kk-DAlCQkFU.js +0 -1
- package/dist/assets/messagebundle_ko-D8mIkPe1.js +0 -1
- package/dist/assets/messagebundle_ko-qoWc4ZGG.js +0 -1
- package/dist/assets/messagebundle_lt-BIEH02V4.js +0 -1
- package/dist/assets/messagebundle_lt-ruMxSuY-.js +0 -1
- package/dist/assets/messagebundle_lv-C2om7wu0.js +0 -1
- package/dist/assets/messagebundle_lv-Dfrbh1ci.js +0 -1
- package/dist/assets/messagebundle_mk-DHvZle6t.js +0 -1
- package/dist/assets/messagebundle_mk-l_Kubx1p.js +0 -1
- package/dist/assets/messagebundle_ms-CKCmj1p_.js +0 -1
- package/dist/assets/messagebundle_ms-IhSEK5ij.js +0 -1
- package/dist/assets/messagebundle_nl-BiIb6e5c.js +0 -1
- package/dist/assets/messagebundle_nl-DquG38Cj.js +0 -1
- package/dist/assets/messagebundle_no-CX23v_jg.js +0 -1
- package/dist/assets/messagebundle_no-DFdvykvP.js +0 -1
- package/dist/assets/messagebundle_pl-BAeue3mo.js +0 -1
- package/dist/assets/messagebundle_pl-iHE_prgN.js +0 -1
- package/dist/assets/messagebundle_pt-BpQnTLvl.js +0 -1
- package/dist/assets/messagebundle_pt-C_bG3Erm.js +0 -1
- package/dist/assets/messagebundle_pt_PT-CR7qXFK-.js +0 -1
- package/dist/assets/messagebundle_pt_PT-DyseXKQQ.js +0 -1
- package/dist/assets/messagebundle_ro-CHU1E6hv.js +0 -1
- package/dist/assets/messagebundle_ro-C_amsd63.js +0 -1
- package/dist/assets/messagebundle_ru-Cab4H6Ud.js +0 -1
- package/dist/assets/messagebundle_ru-D6JMraBp.js +0 -1
- package/dist/assets/messagebundle_sh-DusYn00L.js +0 -1
- package/dist/assets/messagebundle_sh-hThvw_lF.js +0 -1
- package/dist/assets/messagebundle_sk-BqiUMEcX.js +0 -1
- package/dist/assets/messagebundle_sk-CZHfFNQ_.js +0 -1
- package/dist/assets/messagebundle_sl-B79d3kfY.js +0 -1
- package/dist/assets/messagebundle_sl-SfAn6n6j.js +0 -1
- package/dist/assets/messagebundle_sr-4iz7n4Te.js +0 -1
- package/dist/assets/messagebundle_sr-DxELdG62.js +0 -1
- package/dist/assets/messagebundle_sv-CPOHCrxs.js +0 -1
- package/dist/assets/messagebundle_sv-i6GuWK0l.js +0 -1
- package/dist/assets/messagebundle_th-D-kPI3tt.js +0 -1
- package/dist/assets/messagebundle_th-D64J-JvN.js +0 -1
- package/dist/assets/messagebundle_tr-CuE9DqZT.js +0 -1
- package/dist/assets/messagebundle_tr-gTuGftNt.js +0 -1
- package/dist/assets/messagebundle_uk-C6JSX-jF.js +0 -1
- package/dist/assets/messagebundle_uk-IKxyo-LT.js +0 -1
- package/dist/assets/messagebundle_vi-BRdRT5L6.js +0 -1
- package/dist/assets/messagebundle_vi-rZGL12-x.js +0 -1
- package/dist/assets/messagebundle_zh_CN-L55Y4Dfs.js +0 -1
- package/dist/assets/messagebundle_zh_CN-ZalS15WG.js +0 -1
- package/dist/assets/messagebundle_zh_TW-BcMzZCW2.js +0 -1
- package/dist/assets/messagebundle_zh_TW-sRVDBYOx.js +0 -1
- package/dist/assets/parameters-bundle.css-8pAQYERs.js +0 -3
- package/dist/assets/parameters-bundle.css-B_KvbSAR.js +0 -2
- package/dist/assets/parameters-bundle.css-Ciey0vhA.js +0 -2
- package/dist/assets/parameters-bundle.css-D7Hj83QD.js +0 -2
- package/dist/assets/parameters-bundle.css-DJgsxqD8.js +0 -2
- package/dist/assets/parameters-bundle.css-DMVuljH3.js +0 -3
- package/dist/assets/parameters-bundle.css-DkHyiuRq.js +0 -3
- package/dist/assets/parameters-bundle.css-Dvgwa73x.js +0 -3
- package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +0 -13
- package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +0 -1
- package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +0 -12
- package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +0 -1
- package/dist/generated/templates/SecondaryNavigationTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +0 -15
- package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +0 -1
- package/dist/generated/templates/SideNavigationMobileTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/SideNavigationMobileTemplate.lit.js +0 -10
- package/dist/generated/templates/SideNavigationMobileTemplate.lit.js.map +0 -1
- package/src/SecondaryNavigation.hbs +0 -87
- package/src/SecondaryNavigationItem.hbs +0 -68
- package/src/SecondaryNavigationSubItem.hbs +0 -47
- package/src/SideNavigationMobile.hbs +0 -41
- package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +0 -17
- package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +0 -16
- package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +0 -19
- package/src/generated/templates/SideNavigationMobileTemplate.lit.ts +0 -14
|
@@ -682,6 +682,60 @@ describe("Tab Navigation component", () => {
|
|
|
682
682
|
.should("exist");
|
|
683
683
|
});
|
|
684
684
|
|
|
685
|
+
it("does not set a dangling aria-labelledby on the tab list", () => {
|
|
686
|
+
cy.get("[udex-tab-navigation]")
|
|
687
|
+
.shadow()
|
|
688
|
+
.find("[role='tablist']")
|
|
689
|
+
.should("not.have.attr", "aria-labelledby");
|
|
690
|
+
});
|
|
691
|
+
|
|
692
|
+
it("has no aria-label on the tab list when accessibleName is not set", () => {
|
|
693
|
+
cy.get("[udex-tab-navigation]")
|
|
694
|
+
.shadow()
|
|
695
|
+
.find("[role='tablist']")
|
|
696
|
+
.should("not.have.attr", "aria-label");
|
|
697
|
+
});
|
|
698
|
+
|
|
699
|
+
it("exposes accessibleName as aria-label on the tab list", () => {
|
|
700
|
+
cy.mount(
|
|
701
|
+
<UDExTabNavigation accessibleName="Profile navigation">
|
|
702
|
+
<UDExTab text="Privacy" selected>
|
|
703
|
+
<div>Privacy content</div>
|
|
704
|
+
</UDExTab>
|
|
705
|
+
<UDExTab text="Security">
|
|
706
|
+
<div>Security content</div>
|
|
707
|
+
</UDExTab>
|
|
708
|
+
</UDExTabNavigation>
|
|
709
|
+
);
|
|
710
|
+
|
|
711
|
+
cy.get("[udex-tab-navigation]")
|
|
712
|
+
.shadow()
|
|
713
|
+
.find("[role='tablist']")
|
|
714
|
+
.should("have.attr", "aria-label", "Profile navigation");
|
|
715
|
+
});
|
|
716
|
+
|
|
717
|
+
it("removes the aria-label when accessibleName is cleared", () => {
|
|
718
|
+
cy.mount(
|
|
719
|
+
<UDExTabNavigation accessibleName="Profile navigation">
|
|
720
|
+
<UDExTab text="Privacy" selected>
|
|
721
|
+
<div>Privacy content</div>
|
|
722
|
+
</UDExTab>
|
|
723
|
+
<UDExTab text="Security">
|
|
724
|
+
<div>Security content</div>
|
|
725
|
+
</UDExTab>
|
|
726
|
+
</UDExTabNavigation>
|
|
727
|
+
);
|
|
728
|
+
|
|
729
|
+
cy.get("[udex-tab-navigation]").then($el => {
|
|
730
|
+
($el[0] as UDExTabNavigation).accessibleName = "";
|
|
731
|
+
});
|
|
732
|
+
|
|
733
|
+
cy.get("[udex-tab-navigation]")
|
|
734
|
+
.shadow()
|
|
735
|
+
.find("[role='tablist']")
|
|
736
|
+
.should("not.have.attr", "aria-label");
|
|
737
|
+
});
|
|
738
|
+
|
|
685
739
|
it("has correct tabindex on selected tab", () => {
|
|
686
740
|
cy.get("[udex-tab-navigation]")
|
|
687
741
|
.shadow()
|
|
@@ -67,7 +67,7 @@ describe("TagGroup", () => {
|
|
|
67
67
|
const nMore = cy.get("[udex-tag-group]").shadow().find(".udex-tag-group__tokenizer").shadow().find(".ui5-tokenizer-more-text")
|
|
68
68
|
nMore.click()
|
|
69
69
|
cy.get("[udex-tag-group]").shadow().find(".udex-tag-group-tooltip__content").then($tooltip => {
|
|
70
|
-
expect($tooltip.find(".udex-tag-group__tag")).lengthOf(
|
|
70
|
+
expect($tooltip.find(".udex-tag-group__tag")).lengthOf(10)
|
|
71
71
|
})
|
|
72
72
|
});
|
|
73
73
|
|
|
@@ -179,6 +179,15 @@ let UDExListGroupHeaderBase = class UDExListGroupHeaderBase extends UDExListItem
|
|
|
179
179
|
return this._groupAsListbox && !this._useHostAriaRole && !this._treeMode;
|
|
180
180
|
}
|
|
181
181
|
get singleCollapsibleHeaderRole() {
|
|
182
|
+
// In aria-activedescendant mode (SelectBox/CountrySelector) the HOST element
|
|
183
|
+
// carries the treeitem role + state (set via SearchableListBaseTemplate's
|
|
184
|
+
// hostAriaAttrs). The inner focusable div must then be presentational, otherwise
|
|
185
|
+
// it is a second treeitem nested inside the host treeitem with no owning
|
|
186
|
+
// tree/group — the "role not inside the required context" axe/SiteImprove error.
|
|
187
|
+
// Mirrors UDExListItem.roleItem, which is presentational under _useHostAriaRole.
|
|
188
|
+
if (this._useHostAriaRole) {
|
|
189
|
+
return "presentation";
|
|
190
|
+
}
|
|
182
191
|
return this._treeMode ? "treeitem" : "button";
|
|
183
192
|
}
|
|
184
193
|
// Pins the collapsible header's accessible name to its heading (+ supporting text)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListGroupHeaderBase.js","sourceRoot":"","sources":["../src/ListGroupHeaderBase.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AAErF,OAAO,IAAI,MAAM,wDAAwD,CAAC;AAC1E,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,WAAW,MAAM,iDAAiD,CAAC;AAC1E,OAAO,gBAAgB,MAAM,mBAAmB,CAAC;AAEjD,MAAM,oBAAoB,GAAW,yBAAyB,CAAC;AAE/D;;;;;;;;;;GAUG;AAMH,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,gBAAgB;IAAtD;;QAaE;;;;;;WAMG;QAED,cAAS,GAAY,KAAK,CAAC;QAE7B;;;;;;;;;WASG;QAED,oBAAe,GAAY,KAAK,CAAC;IAsOrC,CAAC;IA3NC,yBAAyB;QACvB,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAErD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,MAAM,uBAAuB,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACrD,MAAM,yBAAyB,GAAG,IAAI,CAAC,aAAa,CAAC;QAErD,IAAI,uBAAuB,EAAE,CAAC;YAC5B,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACjC,CAAC;aAAM,IAAI,yBAAyB,EAAE,CAAC;YACrC,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,uBAAuB;QACrB,MAAM,2BAA2B,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEvE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,2BAA2B,EAAE,CAAC;YAChC,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,6BAA6B;QAC3B,MAAM,2BAA2B,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEvE,IAAI,2BAA2B,EAAE,CAAC;YAChC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,qBAAqB;QACnB,MAAM,8BAA8B,GAAG,IAAI,CAAC,8BAA8B,EAAE,CAAC;QAE7E,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEvB,IAAI,8BAA8B,EAAE,CAAC;YACnC,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3C,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAE/C,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IAED,2BAA2B;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,WAAW,CAAC,KAAc;QACxB,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACxB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED,2BAA2B;QACzB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED,8BAA8B;QAC5B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED,2BAA2B;QACzB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;IAChF,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,eAAe,CAAmB,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,2BAA2B;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC;IACpD,CAAC;IAED;;;;;OAKG;IACH,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,2BAA2B,CAAC;IAC1C,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,4EAA4E;IAC5E,4EAA4E;IAC5E,oEAAoE;IACpE,2EAA2E;IAC3E,gEAAgE;IAChE,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC3E,CAAC;IAED,IAAI,2BAA2B;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;IAChD,CAAC;IAED,mFAAmF;IACnF,kFAAkF;IAClF,kFAAkF;IAClF,wEAAwE;IACxE,kFAAkF;IAClF,uCAAuC;IACvC,IAAI,2BAA2B;QAC7B,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,eAAe,CAAC;IACvF,CAAC;IAED,IAAI,+BAA+B;QACjC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;IAChD,CAAC;IAED,IAAI,gBAAgB;QAClB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,OAAO,cAAc,CAAC;QACxB,CAAC;QACD,+EAA+E;QAC/E,gFAAgF;QAChF,iFAAiF;QACjF,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7C,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC7C,CAAC;IAED,IAAI,2BAA2B;QAC7B,yEAAyE;QACzE,6EAA6E;QAC7E,2EAA2E;QAC3E,qEAAqE;QACrE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,kCAAkC;QACpC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACjD,CAAC;IAED,IAAI,SAAS;QACX,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,oBAAoB,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,OAAO,GAAG,oBAAoB,IAAI,IAAI,CAAC,oBAAoB,IAAI,mBAAmB,IAAI,oBAAoB,OAAO,CAAC;IACpH,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAmB,kBAAkB,CAAE,CAAC;IAC/E,CAAC;CACF,CAAA;AAhQG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+DACD;AAGzB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qEACK;AAU9B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0DACC;AAa3B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gEACO;AASjC;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;sDACV;AA3CpC,uBAAuB;IAL5B,aAAa,CAAC;QACb,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,WAAW;KACtB,CAAC;GAEI,uBAAuB,CAwQ5B;AAED,eAAe,uBAAuB,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport UDExListItemBase from \"./ListItemBase.js\";\n\nconst listGroupHeaderClass: string = \"udex-list__group-header\";\n\n/**\n * @class\n *\n * A class to serve as a foundation\n * for the <code>UDExListGroupHeader</code> and <code>UDExFilterMenuGroupHeader</code> classes.\n *\n * @constructor\n * @author SAP SE\n * @extends UDExListItemBase\n * @public\n */\n@customElement({\n languageAware: true,\n renderer: jsxRenderer,\n})\n\nclass UDExListGroupHeaderBase extends UDExListItemBase {\n /**\n * Defines non-interactive the group header.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n nonInteractive!: boolean;\n\n @property({ type: String })\n _additionalClassName!: string;\n\n /**\n * Marks the group header as part of a tree structure. When true, the header\n * renders as a treeitem and its children container as a group.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _treeMode: boolean = false;\n\n /**\n * Marks the group as a self-contained role=\"listbox\" (FilterMenu real-focus\n * SingleSelect, non-collapsible groups). When true, this group's options are\n * wrapped in their own listbox so JAWS counts them natively per group. Set by\n * the parent (SearchableListBase.isPerGroupListbox) only when the whole list is\n * grouped; the outer #udex-list drops its listbox role in that case.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _groupAsListbox: boolean = false;\n\n /**\n * Slot for group header list items.\n *\n * @slot items\n * @public\n */\n @slot({ type: UDExListItemBase, \"default\": true })\n items!: DefaultSlot<UDExListItemBase>;\n\n handleSelectionGroupState() {\n const isAnyEnabledOption = this.isAnyEnabledOption();\n\n if (!isAnyEnabledOption) {\n return;\n }\n\n const isAllSelectedGroupState = this.isAllSelected();\n const isIndeterminateGroupState = this.indeterminate;\n\n if (isAllSelectedGroupState) {\n this.processGroupDeselectAll();\n } else if (isIndeterminateGroupState) {\n this.toggleIndeterminateGroupState();\n } else {\n this.processGroupSelectAll();\n }\n }\n\n processGroupDeselectAll() {\n const isAnySelectedOptionDisabled = this.isAnySelectedOptionDisabled();\n\n this.setAllItems(false);\n\n if (isAnySelectedOptionDisabled) {\n this.activateHeaderIndeterminate();\n } else {\n this.deactivateHeader();\n }\n }\n\n toggleIndeterminateGroupState() {\n const isEachEnabledOptionSelected = this.isEachEnabledOptionSelected();\n\n if (isEachEnabledOptionSelected) {\n this.processGroupDeselectAll();\n } else {\n this.processGroupSelectAll();\n }\n }\n\n processGroupSelectAll() {\n const isAnyNotSelectedOptionDisabled = this.isAnyNotSelectedOptionDisabled();\n\n this.setAllItems(true);\n\n if (isAnyNotSelectedOptionDisabled) {\n this.activateHeaderIndeterminate();\n } else {\n this.activateHeader();\n }\n }\n\n handleHeaderState() {\n const isAllSelected = this.isAllSelected();\n const isAllDeselected = this.isAllDeselected();\n\n if (isAllDeselected) {\n this.deactivateHeader();\n return;\n }\n\n if (isAllSelected) {\n this.activateHeader();\n return;\n }\n\n this.activateHeaderIndeterminate();\n }\n\n activateHeaderIndeterminate() {\n this.selected = true;\n this.indeterminate = true;\n }\n\n activateHeader() {\n this.indeterminate = false;\n this.selected = true;\n }\n\n deactivateHeader() {\n this.selected = false;\n this.indeterminate = false;\n }\n\n setAllItems(value: boolean) {\n this.getItems().forEach(item => {\n if (!item.disabled) {\n item.selected = value;\n }\n });\n }\n\n isAllSelected(): boolean {\n return this.getItems().every(({ selected }) => selected);\n }\n\n isAllDeselected(): boolean {\n return this.getItems().every(({ selected }) => !selected);\n }\n\n isEachEnabledOptionSelected(): boolean {\n return this.getItems().every(item => item.disabled || item.selected);\n }\n\n isAnyNotSelectedOptionDisabled(): boolean {\n return this.getItems().some(item => !item.selected && item.disabled);\n }\n\n isAnySelected(): boolean {\n return this.getItems().some(item => item.selected);\n }\n\n isAnySelectedOptionDisabled(): boolean {\n return this.getItems().some(({ disabled, selected }) => disabled && selected);\n }\n\n isAnyEnabledOption(): boolean {\n return this.getItems().some(({ disabled }) => !disabled);\n }\n\n getItems(): Array<UDExListItemBase> {\n return this.getSlottedNodes<UDExListItemBase>(\"items\");\n }\n\n get isGroup(): boolean {\n return true;\n }\n\n get isSelectAllHeader(): boolean {\n return false;\n }\n\n get isFilterMenuSelectAllHeader(): boolean {\n return false;\n }\n\n get isNonActiveHeader(): boolean {\n return this.nonInteractive || this.modeRadioGroup;\n }\n\n /**\n * Decides which collapsible-header partial to render.\n * Uses the udex-list-item-based partial for MultiSelect/RadioGroup only.\n * SingleSelect collapsible headers use the plain div partial — the list-item\n * partial fires its own Enter/Space/click selection handlers that must not run.\n */\n get useListItemHeader(): boolean {\n return this.modeMultiSelectOrRadioGroup;\n }\n\n get isTreeAccessibleRole(): boolean {\n return this._treeMode;\n }\n\n // FilterMenu real-focus SingleSelect non-collapsible group: its options are\n // rendered inside their own role=\"listbox\" so JAWS counts them natively per\n // group (\"1 of 4\"). JAWS ignores role=\"group\" boundaries and author\n // aria-posinset within a single listbox, but counts reliably within a flat\n // listbox. Excludes SelectBox (_useHostAriaRole) and tree mode.\n get isPerGroupListbox(): boolean {\n return this._groupAsListbox && !this._useHostAriaRole && !this._treeMode;\n }\n\n get singleCollapsibleHeaderRole(): string {\n return this._treeMode ? \"treeitem\" : \"button\";\n }\n\n // Pins the collapsible header's accessible name to its heading (+ supporting text)\n // so the decorative expand/collapse chevron button — a child of the header — does\n // not fold its \"Expand\"/\"Collapse\" label into the header's name. The chevron is a\n // mouse affordance only (tabindex=-1); its state is already conveyed by\n // aria-expanded, so excluding its name avoids announcing \"Collapse\" alongside the\n // spoken \"expanded\"/\"collapsed\" state.\n get collapsibleHeaderLabelledBy(): string {\n return this.supportingText ? \"group-heading group-supporting-text\" : \"group-heading\";\n }\n\n get collapsibleHeaderAccessibleRole(): string {\n return this._treeMode ? \"treeitem\" : \"button\";\n }\n\n get groupWrapperRole(): string {\n if (this._useHostAriaRole) {\n return \"presentation\";\n }\n // Tree mode keeps the treeitem/group nesting; per-group-listbox mode moves the\n // single labelled role=\"listbox\" onto the inner options wrapper — the outer div\n // is transparent so screen readers don't announce a redundant \"group\" around it.\n if (this._treeMode || this.isPerGroupListbox) {\n return \"none\";\n }\n return \"group\";\n }\n\n get contentRegionRole(): string {\n return this._treeMode ? \"group\" : \"region\";\n }\n\n get nonCollapsibleContainerRole(): string {\n // The single role=\"group\" for non-collapsible headers lives on the outer\n // div.udex-list__group wrapper (groupWrapperRole = \"group\" in non-tree mode,\n // labelled by aria-labelledby=\"group-heading\"). This container div must be\n // transparent so that extra \"group group\" announcements are avoided.\n return \"none\";\n }\n\n get nonCollapsibleHeaderAccessibleRole(): string | undefined {\n return this._treeMode ? \"treeitem\" : undefined;\n }\n\n get className(): string {\n const controlledClassName = this.controlled ? `${listGroupHeaderClass}_controlled` : \"\";\n return `${listGroupHeaderClass} ${this._additionalClassName} ${controlledClassName} ${listGroupHeaderClass}-wrap`;\n }\n\n get listItem(): UDExListItemBase {\n return this.shadowRoot!.querySelector<UDExListItemBase>(\"[udex-list-item]\")!;\n }\n}\n\nexport default UDExListGroupHeaderBase;\n"]}
|
|
1
|
+
{"version":3,"file":"ListGroupHeaderBase.js","sourceRoot":"","sources":["../src/ListGroupHeaderBase.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AAErF,OAAO,IAAI,MAAM,wDAAwD,CAAC;AAC1E,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,WAAW,MAAM,iDAAiD,CAAC;AAC1E,OAAO,gBAAgB,MAAM,mBAAmB,CAAC;AAEjD,MAAM,oBAAoB,GAAW,yBAAyB,CAAC;AAE/D;;;;;;;;;;GAUG;AAMH,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,gBAAgB;IAAtD;;QAaE;;;;;;WAMG;QAED,cAAS,GAAY,KAAK,CAAC;QAE7B;;;;;;;;;WASG;QAED,oBAAe,GAAY,KAAK,CAAC;IA+OrC,CAAC;IApOC,yBAAyB;QACvB,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAErD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,MAAM,uBAAuB,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACrD,MAAM,yBAAyB,GAAG,IAAI,CAAC,aAAa,CAAC;QAErD,IAAI,uBAAuB,EAAE,CAAC;YAC5B,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACjC,CAAC;aAAM,IAAI,yBAAyB,EAAE,CAAC;YACrC,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,uBAAuB;QACrB,MAAM,2BAA2B,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEvE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,2BAA2B,EAAE,CAAC;YAChC,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,6BAA6B;QAC3B,MAAM,2BAA2B,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEvE,IAAI,2BAA2B,EAAE,CAAC;YAChC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,qBAAqB;QACnB,MAAM,8BAA8B,GAAG,IAAI,CAAC,8BAA8B,EAAE,CAAC;QAE7E,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEvB,IAAI,8BAA8B,EAAE,CAAC;YACnC,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3C,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAE/C,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IAED,2BAA2B;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,WAAW,CAAC,KAAc;QACxB,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACxB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED,2BAA2B;QACzB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED,8BAA8B;QAC5B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED,2BAA2B;QACzB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;IAChF,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,eAAe,CAAmB,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,2BAA2B;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC;IACpD,CAAC;IAED;;;;;OAKG;IACH,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,2BAA2B,CAAC;IAC1C,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,4EAA4E;IAC5E,4EAA4E;IAC5E,oEAAoE;IACpE,2EAA2E;IAC3E,gEAAgE;IAChE,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC3E,CAAC;IAED,IAAI,2BAA2B;QAC7B,6EAA6E;QAC7E,0EAA0E;QAC1E,iFAAiF;QACjF,yEAAyE;QACzE,iFAAiF;QACjF,iFAAiF;QACjF,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,OAAO,cAAc,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;IAChD,CAAC;IAED,mFAAmF;IACnF,kFAAkF;IAClF,kFAAkF;IAClF,wEAAwE;IACxE,kFAAkF;IAClF,uCAAuC;IACvC,IAAI,2BAA2B;QAC7B,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,eAAe,CAAC;IACvF,CAAC;IAED,IAAI,+BAA+B;QACjC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;IAChD,CAAC;IAED,IAAI,gBAAgB;QAClB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,OAAO,cAAc,CAAC;QACxB,CAAC;QACD,+EAA+E;QAC/E,gFAAgF;QAChF,iFAAiF;QACjF,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7C,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC7C,CAAC;IAED,IAAI,2BAA2B;QAC7B,yEAAyE;QACzE,6EAA6E;QAC7E,2EAA2E;QAC3E,qEAAqE;QACrE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,kCAAkC;QACpC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACjD,CAAC;IAED,IAAI,SAAS;QACX,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,oBAAoB,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,OAAO,GAAG,oBAAoB,IAAI,IAAI,CAAC,oBAAoB,IAAI,mBAAmB,IAAI,oBAAoB,OAAO,CAAC;IACpH,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAmB,kBAAkB,CAAE,CAAC;IAC/E,CAAC;CACF,CAAA;AAzQG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+DACD;AAGzB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qEACK;AAU9B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0DACC;AAa3B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gEACO;AASjC;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;sDACV;AA3CpC,uBAAuB;IAL5B,aAAa,CAAC;QACb,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,WAAW;KACtB,CAAC;GAEI,uBAAuB,CAiR5B;AAED,eAAe,uBAAuB,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport UDExListItemBase from \"./ListItemBase.js\";\n\nconst listGroupHeaderClass: string = \"udex-list__group-header\";\n\n/**\n * @class\n *\n * A class to serve as a foundation\n * for the <code>UDExListGroupHeader</code> and <code>UDExFilterMenuGroupHeader</code> classes.\n *\n * @constructor\n * @author SAP SE\n * @extends UDExListItemBase\n * @public\n */\n@customElement({\n languageAware: true,\n renderer: jsxRenderer,\n})\n\nclass UDExListGroupHeaderBase extends UDExListItemBase {\n /**\n * Defines non-interactive the group header.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n nonInteractive!: boolean;\n\n @property({ type: String })\n _additionalClassName!: string;\n\n /**\n * Marks the group header as part of a tree structure. When true, the header\n * renders as a treeitem and its children container as a group.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _treeMode: boolean = false;\n\n /**\n * Marks the group as a self-contained role=\"listbox\" (FilterMenu real-focus\n * SingleSelect, non-collapsible groups). When true, this group's options are\n * wrapped in their own listbox so JAWS counts them natively per group. Set by\n * the parent (SearchableListBase.isPerGroupListbox) only when the whole list is\n * grouped; the outer #udex-list drops its listbox role in that case.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _groupAsListbox: boolean = false;\n\n /**\n * Slot for group header list items.\n *\n * @slot items\n * @public\n */\n @slot({ type: UDExListItemBase, \"default\": true })\n items!: DefaultSlot<UDExListItemBase>;\n\n handleSelectionGroupState() {\n const isAnyEnabledOption = this.isAnyEnabledOption();\n\n if (!isAnyEnabledOption) {\n return;\n }\n\n const isAllSelectedGroupState = this.isAllSelected();\n const isIndeterminateGroupState = this.indeterminate;\n\n if (isAllSelectedGroupState) {\n this.processGroupDeselectAll();\n } else if (isIndeterminateGroupState) {\n this.toggleIndeterminateGroupState();\n } else {\n this.processGroupSelectAll();\n }\n }\n\n processGroupDeselectAll() {\n const isAnySelectedOptionDisabled = this.isAnySelectedOptionDisabled();\n\n this.setAllItems(false);\n\n if (isAnySelectedOptionDisabled) {\n this.activateHeaderIndeterminate();\n } else {\n this.deactivateHeader();\n }\n }\n\n toggleIndeterminateGroupState() {\n const isEachEnabledOptionSelected = this.isEachEnabledOptionSelected();\n\n if (isEachEnabledOptionSelected) {\n this.processGroupDeselectAll();\n } else {\n this.processGroupSelectAll();\n }\n }\n\n processGroupSelectAll() {\n const isAnyNotSelectedOptionDisabled = this.isAnyNotSelectedOptionDisabled();\n\n this.setAllItems(true);\n\n if (isAnyNotSelectedOptionDisabled) {\n this.activateHeaderIndeterminate();\n } else {\n this.activateHeader();\n }\n }\n\n handleHeaderState() {\n const isAllSelected = this.isAllSelected();\n const isAllDeselected = this.isAllDeselected();\n\n if (isAllDeselected) {\n this.deactivateHeader();\n return;\n }\n\n if (isAllSelected) {\n this.activateHeader();\n return;\n }\n\n this.activateHeaderIndeterminate();\n }\n\n activateHeaderIndeterminate() {\n this.selected = true;\n this.indeterminate = true;\n }\n\n activateHeader() {\n this.indeterminate = false;\n this.selected = true;\n }\n\n deactivateHeader() {\n this.selected = false;\n this.indeterminate = false;\n }\n\n setAllItems(value: boolean) {\n this.getItems().forEach(item => {\n if (!item.disabled) {\n item.selected = value;\n }\n });\n }\n\n isAllSelected(): boolean {\n return this.getItems().every(({ selected }) => selected);\n }\n\n isAllDeselected(): boolean {\n return this.getItems().every(({ selected }) => !selected);\n }\n\n isEachEnabledOptionSelected(): boolean {\n return this.getItems().every(item => item.disabled || item.selected);\n }\n\n isAnyNotSelectedOptionDisabled(): boolean {\n return this.getItems().some(item => !item.selected && item.disabled);\n }\n\n isAnySelected(): boolean {\n return this.getItems().some(item => item.selected);\n }\n\n isAnySelectedOptionDisabled(): boolean {\n return this.getItems().some(({ disabled, selected }) => disabled && selected);\n }\n\n isAnyEnabledOption(): boolean {\n return this.getItems().some(({ disabled }) => !disabled);\n }\n\n getItems(): Array<UDExListItemBase> {\n return this.getSlottedNodes<UDExListItemBase>(\"items\");\n }\n\n get isGroup(): boolean {\n return true;\n }\n\n get isSelectAllHeader(): boolean {\n return false;\n }\n\n get isFilterMenuSelectAllHeader(): boolean {\n return false;\n }\n\n get isNonActiveHeader(): boolean {\n return this.nonInteractive || this.modeRadioGroup;\n }\n\n /**\n * Decides which collapsible-header partial to render.\n * Uses the udex-list-item-based partial for MultiSelect/RadioGroup only.\n * SingleSelect collapsible headers use the plain div partial — the list-item\n * partial fires its own Enter/Space/click selection handlers that must not run.\n */\n get useListItemHeader(): boolean {\n return this.modeMultiSelectOrRadioGroup;\n }\n\n get isTreeAccessibleRole(): boolean {\n return this._treeMode;\n }\n\n // FilterMenu real-focus SingleSelect non-collapsible group: its options are\n // rendered inside their own role=\"listbox\" so JAWS counts them natively per\n // group (\"1 of 4\"). JAWS ignores role=\"group\" boundaries and author\n // aria-posinset within a single listbox, but counts reliably within a flat\n // listbox. Excludes SelectBox (_useHostAriaRole) and tree mode.\n get isPerGroupListbox(): boolean {\n return this._groupAsListbox && !this._useHostAriaRole && !this._treeMode;\n }\n\n get singleCollapsibleHeaderRole(): string {\n // In aria-activedescendant mode (SelectBox/CountrySelector) the HOST element\n // carries the treeitem role + state (set via SearchableListBaseTemplate's\n // hostAriaAttrs). The inner focusable div must then be presentational, otherwise\n // it is a second treeitem nested inside the host treeitem with no owning\n // tree/group — the \"role not inside the required context\" axe/SiteImprove error.\n // Mirrors UDExListItem.roleItem, which is presentational under _useHostAriaRole.\n if (this._useHostAriaRole) {\n return \"presentation\";\n }\n return this._treeMode ? \"treeitem\" : \"button\";\n }\n\n // Pins the collapsible header's accessible name to its heading (+ supporting text)\n // so the decorative expand/collapse chevron button — a child of the header — does\n // not fold its \"Expand\"/\"Collapse\" label into the header's name. The chevron is a\n // mouse affordance only (tabindex=-1); its state is already conveyed by\n // aria-expanded, so excluding its name avoids announcing \"Collapse\" alongside the\n // spoken \"expanded\"/\"collapsed\" state.\n get collapsibleHeaderLabelledBy(): string {\n return this.supportingText ? \"group-heading group-supporting-text\" : \"group-heading\";\n }\n\n get collapsibleHeaderAccessibleRole(): string {\n return this._treeMode ? \"treeitem\" : \"button\";\n }\n\n get groupWrapperRole(): string {\n if (this._useHostAriaRole) {\n return \"presentation\";\n }\n // Tree mode keeps the treeitem/group nesting; per-group-listbox mode moves the\n // single labelled role=\"listbox\" onto the inner options wrapper — the outer div\n // is transparent so screen readers don't announce a redundant \"group\" around it.\n if (this._treeMode || this.isPerGroupListbox) {\n return \"none\";\n }\n return \"group\";\n }\n\n get contentRegionRole(): string {\n return this._treeMode ? \"group\" : \"region\";\n }\n\n get nonCollapsibleContainerRole(): string {\n // The single role=\"group\" for non-collapsible headers lives on the outer\n // div.udex-list__group wrapper (groupWrapperRole = \"group\" in non-tree mode,\n // labelled by aria-labelledby=\"group-heading\"). This container div must be\n // transparent so that extra \"group group\" announcements are avoided.\n return \"none\";\n }\n\n get nonCollapsibleHeaderAccessibleRole(): string | undefined {\n return this._treeMode ? \"treeitem\" : undefined;\n }\n\n get className(): string {\n const controlledClassName = this.controlled ? `${listGroupHeaderClass}_controlled` : \"\";\n return `${listGroupHeaderClass} ${this._additionalClassName} ${controlledClassName} ${listGroupHeaderClass}-wrap`;\n }\n\n get listItem(): UDExListItemBase {\n return this.shadowRoot!.querySelector<UDExListItemBase>(\"[udex-list-item]\")!;\n }\n}\n\nexport default UDExListGroupHeaderBase;\n"]}
|
|
@@ -20,7 +20,21 @@ function SingleGroupHeaderCollapsible() {
|
|
|
20
20
|
// (aria-activedescendant, _useHostAriaRole) and non-tree modes, which keep the flat
|
|
21
21
|
// structure with the content region emitted as a sibling by the template body.
|
|
22
22
|
const nested = this.isTreeAccessibleRole && !this._useHostAriaRole;
|
|
23
|
-
|
|
23
|
+
// In aria-activedescendant mode (SelectBox) the HOST element is the treeitem and
|
|
24
|
+
// already carries aria-expanded + the accessible name. This inner div must then be
|
|
25
|
+
// presentational (singleCollapsibleHeaderRole) and must NOT duplicate those states,
|
|
26
|
+
// otherwise it is a second treeitem nested inside the host treeitem with no owning
|
|
27
|
+
// tree/group (axe/SiteImprove aria-required-parent). It stays focusable, though:
|
|
28
|
+
// clicking the collapsible-header body relies on it receiving DOM focus to redirect
|
|
29
|
+
// focus back to the combobox input — the same focusable, role="presentation" shape
|
|
30
|
+
// the list-item [part=item] divs already use. The real-focus (FilterMenu) path keeps
|
|
31
|
+
// the treeitem semantics plus controls/labelling on this div.
|
|
32
|
+
const headerAriaAttrs = this._useHostAriaRole ? {} : {
|
|
33
|
+
"aria-expanded": this.expanded,
|
|
34
|
+
"aria-controls": this.ariaControlsId,
|
|
35
|
+
"aria-labelledby": this.collapsibleHeaderLabelledBy,
|
|
36
|
+
};
|
|
37
|
+
return (_jsx("div", { class: `udex-list__group-content ${nested ? "udex-list__group-content--nested " : ""}udex-list__group-header-wrap ${this.sizeClass}`, part: "group-item", id: `${this._id}_group-content__focusable`, role: this.singleCollapsibleHeaderRole, tabIndex: 0, onKeyDown: this.handleKeyDown, ...headerAriaAttrs, "_tab-index": Number(this._effectiveTabIndex), children: nested ? (_jsxs(_Fragment, { children: [_jsx("div", { class: "udex-list__group-header-row", children: SingleCollapsibleHeaderRow.call(this) }), _jsx("div", { id: this.ariaControlsId, role: this.contentRegionRole, class: "udex-list__group-list__content", children: _jsx("slot", {}) })] })) : (SingleCollapsibleHeaderRow.call(this)) }));
|
|
24
38
|
}
|
|
25
39
|
function MultiOrRadioGroupHeader() {
|
|
26
40
|
if (this.isNonActiveHeader) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListGroupHeaderTemplate.js","sourceRoot":"","sources":["../src/ListGroupHeaderTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { AriaRole } from \"@ui5/webcomponents-base/dist/types.js\";\nimport type UDExListGroupHeader from \"./ListGroupHeader.js\";\nimport UDExListItem from \"./ListItem.js\";\nimport UDExButton from \"./Button.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UDExButtonSize from \"./types/ButtonSize.js\";\nimport UDExButtonDesign from \"./types/ButtonDesign.js\";\nimport slimArrowRight from \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\n\nfunction SingleGroupHeader(this: UDExListGroupHeader) {\n return (\n <div class={`udex-list__group-content udex-list__group-header-wrap ${this.sizeClass}`} part=\"group-item\">\n {this.typeNumber && <span class=\"udex-list__number\">{this.numberOfItem}.</span>}\n {this.typeCircle && <span class=\"udex-list__circle\">•</span>}\n {this.typeIcon && (\n <Icon\n class=\"udex-list__icon\"\n accessible-role=\"presentation\"\n aria-hidden=\"true\"\n part=\"icon\"\n name={this._icon}\n />\n )}\n <div class=\"udex-list__header\">\n <span\n id=\"group-heading\"\n class=\"udex-list__header-title\"\n {...({ innerHTML: this.label } as object)}>\n </span>\n {this.supportingText && (\n <span class={`udex-list__supporting-text ${this.sizeClass}`}>{this.supportingText}</span>\n )}\n </div>\n </div>\n );\n}\n\n// The visible header row of the single-select collapsible group: number/icon,\n// heading + supporting text, and the expand/collapse chevron.\nfunction SingleCollapsibleHeaderRow(this: UDExListGroupHeader) {\n return (\n <>\n {this.typeNumber && <span class=\"udex-list__number\">{this.numberOfItem}.</span>}\n {this.typeCircle && <span class=\"udex-list__circle\">•</span>}\n {this.typeIcon && (\n <Icon\n name={this._icon}\n class=\"udex-list__icon\"\n accessible-role=\"presentation\"\n aria-hidden=\"true\"\n part=\"icon\"\n />\n )}\n <div class=\"udex-list__header\">\n <span\n id=\"group-heading\"\n class=\"udex-list__header-title\"\n {...({ innerHTML: this.label } as object)}>\n </span>\n {this.supportingText && (\n <span id=\"group-supporting-text\" class={`udex-list__supporting-text ${this.sizeClass}`}>{this.supportingText}</span>\n )}\n </div>\n <div class=\"udex-list__group-heading__icon-wrapper\">\n <UDExButton\n size=\"Small\"\n design=\"Tertiary\"\n class=\"udex-list__group-heading__icon\"\n onClick={this.handleCollapseIconClick as unknown as EventListener}\n onMouseDown={this.handleCollapseIconMouseDown}\n tabindex={-1}\n accessible-name={this.expandButtonAccessibleName}\n icon={slimArrowRight}\n {...({ \"mode\": \"Interactive\" } as object)}\n />\n </div>\n </>\n );\n}\n\nfunction SingleGroupHeaderCollapsible(this: UDExListGroupHeader) {\n // Conformant WAI-ARIA tree (FilterMenu real focus): nest the child role=\"group\"\n // INSIDE this treeitem so screen readers count children per group natively — no\n // explicit aria-posinset/aria-setsize (which JAWS distrusts). Excludes SelectBox\n // (aria-activedescendant, _useHostAriaRole) and non-tree modes, which keep the flat\n // structure with the content region emitted as a sibling by the template body.\n const nested = this.isTreeAccessibleRole && !this._useHostAriaRole;\n return (\n <div\n class={`udex-list__group-content ${nested ? \"udex-list__group-content--nested \" : \"\"}udex-list__group-header-wrap ${this.sizeClass}`}\n part=\"group-item\"\n id={`${this._id}_group-content__focusable`}\n role={this.singleCollapsibleHeaderRole as AriaRole}\n tabIndex={0}\n onKeyDown={this.handleKeyDown}\n aria-expanded={this.expanded}\n aria-controls={this.ariaControlsId}\n aria-labelledby={this.collapsibleHeaderLabelledBy}\n _tab-index={Number(this._effectiveTabIndex)}>\n {nested ? (\n <>\n <div class=\"udex-list__group-header-row\">\n {SingleCollapsibleHeaderRow.call(this)}\n </div>\n <div id={this.ariaControlsId} role={this.contentRegionRole as AriaRole} class=\"udex-list__group-list__content\">\n <slot></slot>\n </div>\n </>\n ) : (\n SingleCollapsibleHeaderRow.call(this)\n )}\n </div>\n );\n}\n\nfunction MultiOrRadioGroupHeader(this: UDExListGroupHeader) {\n if (this.isNonActiveHeader) {\n return (\n <header id=\"group-heading\" class=\"udex-list__inactive-header udex-list__group-header-wrap\">\n <div class=\"udex-list__inactive-header-content\">\n <span class=\"udex-list__header-title\" {...({ innerHTML: this.label } as object)}></span>\n {this.supportingText && (\n <span class=\"udex-list__supporting-text\">{this.supportingText}</span>\n )}\n </div>\n </header>\n );\n }\n return (\n <UDExListItem\n id=\"group-heading\"\n part=\"group-item\"\n role=\"none\"\n selected={this.selected}\n indeterminate={this.indeterminate}\n class={this.className}\n mode={this.mode}\n controlled={this.controlled}\n onClick={this.handleHeaderPress}\n onKeyDown={this.handleKeyDownPress}\n type={this.type}\n label={this.label}\n size={this.size}\n supportingText={this.supportingText}\n accessible-role={this.nonCollapsibleHeaderAccessibleRole}\n _additional-class-name={this._additionalClassName}\n _tab-index={Number(this._effectiveTabIndex)}\n _aria-pos-in-set={this._ariaPosInSet}\n _aria-set-size={this._ariaSetSize}\n _icon={this._icon}\n _filtered={this._filtered}\n />\n );\n}\n\nfunction MultiOrRadioGroupHeaderCollapsible(this: UDExListGroupHeader) {\n if (this.isNonActiveHeader) {\n return (\n <header\n role=\"button\"\n id=\"group-heading\"\n class=\"udex-list__inactive-header udex-list__group-header-wrap\"\n tabIndex={Number(this._effectiveTabIndex)}\n aria-expanded={this.expanded}\n aria-controls={this.ariaControlsId}>\n <div class=\"udex-list__inactive-header-content\">\n <span class=\"udex-list__header-title\" {...({ innerHTML: this.label } as object)}></span>\n {this.supportingText && (\n <span class=\"udex-list__supporting-text\">{this.supportingText}</span>\n )}\n </div>\n <div class=\"udex-list__group-heading__icon-wrapper\">\n <UDExButton\n class=\"udex-list__group-heading__icon\"\n size={UDExButtonSize.Small}\n design={UDExButtonDesign.Tertiary}\n tabindex={-1}\n icon={slimArrowRight}\n onClick={this.handleCollapseIconClick as EventListener}\n accessible-name={this.expandButtonAccessibleName}\n {...({ \"mode\": \"Interactive\" } as object)}\n />\n </div>\n </header>\n );\n }\n return (\n <UDExListItem\n id=\"group-heading\"\n part=\"group-item\"\n role=\"none\"\n aria-expanded={this.expanded}\n aria-controls={this.ariaControlsId}\n selected={this.selected}\n indeterminate={this.indeterminate}\n collapsible={this.collapsible}\n collapsed={this.collapsed}\n class={this.className}\n mode={this.mode}\n controlled={this.controlled}\n onClick={this.handleHeaderPress}\n onKeyDown={this.handleKeyDownPress}\n type={this.type}\n label={this.label}\n size={this.size}\n supportingText={this.supportingText}\n accessible-role={this.collapsibleHeaderAccessibleRole}\n onAccordionIconClick={this.handleCollapseIconClick as EventListener}\n _additional-class-name={this._additionalClassName}\n _tab-index={Number(this._effectiveTabIndex)}\n _aria-pos-in-set={this._ariaPosInSet}\n _aria-set-size={this._ariaSetSize}\n _icon={this._icon}\n _filtered={this._filtered}\n />\n );\n}\n\nexport default function ListGroupHeaderTemplate(this: UDExListGroupHeader) {\n // Single-select real-focus tree: SingleGroupHeaderCollapsible now emits the\n // role=\"group\" content region as a CHILD of the treeitem (conformant nesting),\n // so the template body must not also emit it as a sibling.\n const singleSelectNested = this.isTreeAccessibleRole && !this.useListItemHeader && !this._useHostAriaRole;\n return (\n <div\n part=\"item\"\n class=\"udex-list__group\"\n role={this.groupWrapperRole as AriaRole}\n aria-labelledby={(!this.isTreeAccessibleRole && !this.isPerGroupListbox) ? \"group-heading\" : undefined}>\n {this.collapsible ? (\n <div\n class=\"udex-list__group-list\"\n onui5-item-press={this.getHandleGroupItemsClick}\n {...({ name: \"group\" } as object)}>\n {this.useListItemHeader\n ? MultiOrRadioGroupHeaderCollapsible.call(this)\n : SingleGroupHeaderCollapsible.call(this)\n }\n {!singleSelectNested && (\n <div id={this.ariaControlsId} role={this.contentRegionRole as AriaRole} class=\"udex-list__group-list__content\">\n {this.isTreeAccessibleRole ? (\n <slot></slot>\n ) : (\n <div role=\"listbox\" aria-label=\"group\">\n <slot></slot>\n </div>\n )}\n </div>\n )}\n </div>\n ) : (\n <div\n role={this.nonCollapsibleContainerRole as AriaRole}\n class=\"udex-list__group-list\"\n onui5-item-press={this.getHandleGroupItemsClick}\n {...({ name: \"group\" } as object)}>\n {this.modeMultiSelectOrRadioGroup\n ? MultiOrRadioGroupHeader.call(this)\n : SingleGroupHeader.call(this)\n }\n {this.isTreeAccessibleRole ? (\n <div role=\"group\">\n <slot></slot>\n </div>\n ) : this.isPerGroupListbox ? (\n // Each group is its own labelled listbox: JAWS counts the options natively\n // per group (\"Python, 1 of 4\"). The outer #udex-list is presentational\n // (SearchableListBase.isPerGroupListbox) so this is not a nested listbox.\n <div role=\"listbox\" aria-labelledby=\"group-heading\">\n <slot></slot>\n </div>\n ) : (\n <slot></slot>\n )}\n </div>\n )}\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ListGroupHeaderTemplate.js","sourceRoot":"","sources":["../src/ListGroupHeaderTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { AriaRole } from \"@ui5/webcomponents-base/dist/types.js\";\nimport type UDExListGroupHeader from \"./ListGroupHeader.js\";\nimport UDExListItem from \"./ListItem.js\";\nimport UDExButton from \"./Button.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UDExButtonSize from \"./types/ButtonSize.js\";\nimport UDExButtonDesign from \"./types/ButtonDesign.js\";\nimport slimArrowRight from \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\n\nfunction SingleGroupHeader(this: UDExListGroupHeader) {\n return (\n <div class={`udex-list__group-content udex-list__group-header-wrap ${this.sizeClass}`} part=\"group-item\">\n {this.typeNumber && <span class=\"udex-list__number\">{this.numberOfItem}.</span>}\n {this.typeCircle && <span class=\"udex-list__circle\">•</span>}\n {this.typeIcon && (\n <Icon\n class=\"udex-list__icon\"\n accessible-role=\"presentation\"\n aria-hidden=\"true\"\n part=\"icon\"\n name={this._icon}\n />\n )}\n <div class=\"udex-list__header\">\n <span\n id=\"group-heading\"\n class=\"udex-list__header-title\"\n {...({ innerHTML: this.label } as object)}>\n </span>\n {this.supportingText && (\n <span class={`udex-list__supporting-text ${this.sizeClass}`}>{this.supportingText}</span>\n )}\n </div>\n </div>\n );\n}\n\n// The visible header row of the single-select collapsible group: number/icon,\n// heading + supporting text, and the expand/collapse chevron.\nfunction SingleCollapsibleHeaderRow(this: UDExListGroupHeader) {\n return (\n <>\n {this.typeNumber && <span class=\"udex-list__number\">{this.numberOfItem}.</span>}\n {this.typeCircle && <span class=\"udex-list__circle\">•</span>}\n {this.typeIcon && (\n <Icon\n name={this._icon}\n class=\"udex-list__icon\"\n accessible-role=\"presentation\"\n aria-hidden=\"true\"\n part=\"icon\"\n />\n )}\n <div class=\"udex-list__header\">\n <span\n id=\"group-heading\"\n class=\"udex-list__header-title\"\n {...({ innerHTML: this.label } as object)}>\n </span>\n {this.supportingText && (\n <span id=\"group-supporting-text\" class={`udex-list__supporting-text ${this.sizeClass}`}>{this.supportingText}</span>\n )}\n </div>\n <div class=\"udex-list__group-heading__icon-wrapper\">\n <UDExButton\n size=\"Small\"\n design=\"Tertiary\"\n class=\"udex-list__group-heading__icon\"\n onClick={this.handleCollapseIconClick as unknown as EventListener}\n onMouseDown={this.handleCollapseIconMouseDown}\n tabindex={-1}\n accessible-name={this.expandButtonAccessibleName}\n icon={slimArrowRight}\n {...({ \"mode\": \"Interactive\" } as object)}\n />\n </div>\n </>\n );\n}\n\nfunction SingleGroupHeaderCollapsible(this: UDExListGroupHeader) {\n // Conformant WAI-ARIA tree (FilterMenu real focus): nest the child role=\"group\"\n // INSIDE this treeitem so screen readers count children per group natively — no\n // explicit aria-posinset/aria-setsize (which JAWS distrusts). Excludes SelectBox\n // (aria-activedescendant, _useHostAriaRole) and non-tree modes, which keep the flat\n // structure with the content region emitted as a sibling by the template body.\n const nested = this.isTreeAccessibleRole && !this._useHostAriaRole;\n // In aria-activedescendant mode (SelectBox) the HOST element is the treeitem and\n // already carries aria-expanded + the accessible name. This inner div must then be\n // presentational (singleCollapsibleHeaderRole) and must NOT duplicate those states,\n // otherwise it is a second treeitem nested inside the host treeitem with no owning\n // tree/group (axe/SiteImprove aria-required-parent). It stays focusable, though:\n // clicking the collapsible-header body relies on it receiving DOM focus to redirect\n // focus back to the combobox input — the same focusable, role=\"presentation\" shape\n // the list-item [part=item] divs already use. The real-focus (FilterMenu) path keeps\n // the treeitem semantics plus controls/labelling on this div.\n const headerAriaAttrs = this._useHostAriaRole ? {} : {\n \"aria-expanded\": this.expanded,\n \"aria-controls\": this.ariaControlsId,\n \"aria-labelledby\": this.collapsibleHeaderLabelledBy,\n };\n return (\n <div\n class={`udex-list__group-content ${nested ? \"udex-list__group-content--nested \" : \"\"}udex-list__group-header-wrap ${this.sizeClass}`}\n part=\"group-item\"\n id={`${this._id}_group-content__focusable`}\n role={this.singleCollapsibleHeaderRole as AriaRole}\n tabIndex={0}\n onKeyDown={this.handleKeyDown}\n {...headerAriaAttrs}\n _tab-index={Number(this._effectiveTabIndex)}>\n {nested ? (\n <>\n <div class=\"udex-list__group-header-row\">\n {SingleCollapsibleHeaderRow.call(this)}\n </div>\n <div id={this.ariaControlsId} role={this.contentRegionRole as AriaRole} class=\"udex-list__group-list__content\">\n <slot></slot>\n </div>\n </>\n ) : (\n SingleCollapsibleHeaderRow.call(this)\n )}\n </div>\n );\n}\n\nfunction MultiOrRadioGroupHeader(this: UDExListGroupHeader) {\n if (this.isNonActiveHeader) {\n return (\n <header id=\"group-heading\" class=\"udex-list__inactive-header udex-list__group-header-wrap\">\n <div class=\"udex-list__inactive-header-content\">\n <span class=\"udex-list__header-title\" {...({ innerHTML: this.label } as object)}></span>\n {this.supportingText && (\n <span class=\"udex-list__supporting-text\">{this.supportingText}</span>\n )}\n </div>\n </header>\n );\n }\n return (\n <UDExListItem\n id=\"group-heading\"\n part=\"group-item\"\n role=\"none\"\n selected={this.selected}\n indeterminate={this.indeterminate}\n class={this.className}\n mode={this.mode}\n controlled={this.controlled}\n onClick={this.handleHeaderPress}\n onKeyDown={this.handleKeyDownPress}\n type={this.type}\n label={this.label}\n size={this.size}\n supportingText={this.supportingText}\n accessible-role={this.nonCollapsibleHeaderAccessibleRole}\n _additional-class-name={this._additionalClassName}\n _tab-index={Number(this._effectiveTabIndex)}\n _aria-pos-in-set={this._ariaPosInSet}\n _aria-set-size={this._ariaSetSize}\n _icon={this._icon}\n _filtered={this._filtered}\n />\n );\n}\n\nfunction MultiOrRadioGroupHeaderCollapsible(this: UDExListGroupHeader) {\n if (this.isNonActiveHeader) {\n return (\n <header\n role=\"button\"\n id=\"group-heading\"\n class=\"udex-list__inactive-header udex-list__group-header-wrap\"\n tabIndex={Number(this._effectiveTabIndex)}\n aria-expanded={this.expanded}\n aria-controls={this.ariaControlsId}>\n <div class=\"udex-list__inactive-header-content\">\n <span class=\"udex-list__header-title\" {...({ innerHTML: this.label } as object)}></span>\n {this.supportingText && (\n <span class=\"udex-list__supporting-text\">{this.supportingText}</span>\n )}\n </div>\n <div class=\"udex-list__group-heading__icon-wrapper\">\n <UDExButton\n class=\"udex-list__group-heading__icon\"\n size={UDExButtonSize.Small}\n design={UDExButtonDesign.Tertiary}\n tabindex={-1}\n icon={slimArrowRight}\n onClick={this.handleCollapseIconClick as EventListener}\n accessible-name={this.expandButtonAccessibleName}\n {...({ \"mode\": \"Interactive\" } as object)}\n />\n </div>\n </header>\n );\n }\n return (\n <UDExListItem\n id=\"group-heading\"\n part=\"group-item\"\n role=\"none\"\n aria-expanded={this.expanded}\n aria-controls={this.ariaControlsId}\n selected={this.selected}\n indeterminate={this.indeterminate}\n collapsible={this.collapsible}\n collapsed={this.collapsed}\n class={this.className}\n mode={this.mode}\n controlled={this.controlled}\n onClick={this.handleHeaderPress}\n onKeyDown={this.handleKeyDownPress}\n type={this.type}\n label={this.label}\n size={this.size}\n supportingText={this.supportingText}\n accessible-role={this.collapsibleHeaderAccessibleRole}\n onAccordionIconClick={this.handleCollapseIconClick as EventListener}\n _additional-class-name={this._additionalClassName}\n _tab-index={Number(this._effectiveTabIndex)}\n _aria-pos-in-set={this._ariaPosInSet}\n _aria-set-size={this._ariaSetSize}\n _icon={this._icon}\n _filtered={this._filtered}\n />\n );\n}\n\nexport default function ListGroupHeaderTemplate(this: UDExListGroupHeader) {\n // Single-select real-focus tree: SingleGroupHeaderCollapsible now emits the\n // role=\"group\" content region as a CHILD of the treeitem (conformant nesting),\n // so the template body must not also emit it as a sibling.\n const singleSelectNested = this.isTreeAccessibleRole && !this.useListItemHeader && !this._useHostAriaRole;\n return (\n <div\n part=\"item\"\n class=\"udex-list__group\"\n role={this.groupWrapperRole as AriaRole}\n aria-labelledby={(!this.isTreeAccessibleRole && !this.isPerGroupListbox) ? \"group-heading\" : undefined}>\n {this.collapsible ? (\n <div\n class=\"udex-list__group-list\"\n onui5-item-press={this.getHandleGroupItemsClick}\n {...({ name: \"group\" } as object)}>\n {this.useListItemHeader\n ? MultiOrRadioGroupHeaderCollapsible.call(this)\n : SingleGroupHeaderCollapsible.call(this)\n }\n {!singleSelectNested && (\n <div id={this.ariaControlsId} role={this.contentRegionRole as AriaRole} class=\"udex-list__group-list__content\">\n {this.isTreeAccessibleRole ? (\n <slot></slot>\n ) : (\n <div role=\"listbox\" aria-label=\"group\">\n <slot></slot>\n </div>\n )}\n </div>\n )}\n </div>\n ) : (\n <div\n role={this.nonCollapsibleContainerRole as AriaRole}\n class=\"udex-list__group-list\"\n onui5-item-press={this.getHandleGroupItemsClick}\n {...({ name: \"group\" } as object)}>\n {this.modeMultiSelectOrRadioGroup\n ? MultiOrRadioGroupHeader.call(this)\n : SingleGroupHeader.call(this)\n }\n {this.isTreeAccessibleRole ? (\n <div role=\"group\">\n <slot></slot>\n </div>\n ) : this.isPerGroupListbox ? (\n // Each group is its own labelled listbox: JAWS counts the options natively\n // per group (\"Python, 1 of 4\"). The outer #udex-list is presentational\n // (SearchableListBase.isPerGroupListbox) so this is not a nested listbox.\n <div role=\"listbox\" aria-labelledby=\"group-heading\">\n <slot></slot>\n </div>\n ) : (\n <slot></slot>\n )}\n </div>\n )}\n </div>\n );\n}\n"]}
|
|
@@ -5,7 +5,7 @@ export default function MastheadCountrySelectorTemplate() {
|
|
|
5
5
|
return (_jsx("div", { class: "udex-masthead-country-selector", children: this._isActiveRegionOpen ? activeRegionView.call(this) : regionsView.call(this) }));
|
|
6
6
|
}
|
|
7
7
|
function activeRegionView() {
|
|
8
|
-
return (_jsxs(_Fragment, { children: [_jsx("span", { class: "udex-masthead-country-selector__title", children: this.countryTitle }), !this.isSingleMode && (_jsx(UDExMastheadMenuItem, { class: "udex-masthead-country-selector__region-back-item", "accessible-role": "button", onClick: this.backToRegions, label: this._activeRegion?.title, type: "Button", part: "menu-item", "icon-start": true, "_accessible-name": this.backToRegionListAccessibleName, "is-back": "" })), !this.hideSearch && (_jsxs(_Fragment, { children: [_jsx(UDExSearch, { class: "udex-masthead-country-selector__search", "onui5-handle-value-search": this.handleSearch, "onui5-handle-value-reset": this.handleSearchReset, "onui5-submit-search-value": this.handleSearch, "language-voice": this.languageVoice, label: this.searchLabel, mode: this.homeSearchMode, "show-voice-button": this.showSearchVoiceButton, "non-interactive-submit-button": true, "show-submit-button": true }), _jsx("span", { "aria-live": "polite", "aria-atomic": "true", class: "hidden", children: this._accSearchResultInfo })] })), _jsx("div", { class: "udex-masthead-country-selector__list-container", children: _jsx("div", { class: "udex-masthead-country-selector__list-wrap", onScroll: this.handleCountryListShadowVisible, children: _jsx("ul", { class: "udex-masthead-country-selector__list udex-masthead-country-selector__list_countries",
|
|
8
|
+
return (_jsxs(_Fragment, { children: [_jsx("span", { class: "udex-masthead-country-selector__title", children: this.countryTitle }), !this.isSingleMode && (_jsx(UDExMastheadMenuItem, { class: "udex-masthead-country-selector__region-back-item", "accessible-role": "button", onClick: this.backToRegions, label: this._activeRegion?.title, type: "Button", part: "menu-item", "icon-start": true, "_accessible-name": this.backToRegionListAccessibleName, "is-back": "" })), !this.hideSearch && (_jsxs(_Fragment, { children: [_jsx(UDExSearch, { class: "udex-masthead-country-selector__search", "onui5-handle-value-search": this.handleSearch, "onui5-handle-value-reset": this.handleSearchReset, "onui5-submit-search-value": this.handleSearch, "language-voice": this.languageVoice, label: this.searchLabel, mode: this.homeSearchMode, "show-voice-button": this.showSearchVoiceButton, "non-interactive-submit-button": true, "show-submit-button": true }), _jsx("span", { "aria-live": "polite", "aria-atomic": "true", class: "hidden", children: this._accSearchResultInfo })] })), _jsx("div", { class: "udex-masthead-country-selector__list-container", children: _jsx("div", { class: "udex-masthead-country-selector__list-wrap", onScroll: this.handleCountryListShadowVisible, children: _jsx("ul", { class: "udex-masthead-country-selector__list udex-masthead-country-selector__list_countries", children: this._activeCountries.map((country, index) => (_jsx("li", { children: _jsx(UDExMastheadMenuItem, { class: "udex-masthead-country-selector__item udex-masthead-country-selector__item_countries", onClick: this.handleCountryClick, "accessible-role": "link", url: country.url, label: country.displayTitle, index: index, part: "menu-item", "_country-code": country.countryCode,
|
|
9
9
|
"is-nav-item": "",
|
|
10
10
|
...(country.active ? { "_is-active-country": "" } : {}) }) }, index))) }) }) })] }));
|
|
11
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MastheadCountrySelectorTemplate.js","sourceRoot":"","sources":["../src/MastheadCountrySelectorTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,oBAAoB,MAAM,uBAAuB,CAAC;AACzD,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,OAAO,UAAU,+BAA+B;IACrD,OAAO,CACL,cAAK,KAAK,EAAC,gCAAgC,YACxC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAC5E,CACP,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,CACL,8BACE,eAAM,KAAK,EAAC,uCAAuC,YAAE,IAAI,CAAC,YAAY,GAAQ,EAC7E,CAAC,IAAI,CAAC,YAAY,IAAI,CACrB,KAAC,oBAAoB,IACnB,KAAK,EAAC,kDAAkD,qBACxC,QAAQ,EACxB,OAAO,EAAE,IAAI,CAAC,aAAa,EAC3B,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,EAChC,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,WAAW,gBACJ,IAAI,EACV,kBAAkB,EAAE,IAAI,CAAC,8BAA8B,EAAE,SAAS,EAAE,EAAE,GACvD,CACxB,EACA,CAAC,IAAI,CAAC,UAAU,IAAI,CACnB,8BACE,KAAC,UAAU,IACT,KAAK,EAAC,wCAAwC,+BACnB,IAAI,CAAC,YAAY,8BAClB,IAAI,CAAC,iBAAiB,+BACrB,IAAI,CAAC,YAAY,oBAC5B,IAAI,CAAC,aAAa,EAClC,KAAK,EAAE,IAAI,CAAC,WAAW,EACvB,IAAI,EAAE,IAAI,CAAC,cAAc,uBACN,IAAI,CAAC,qBAAqB,mCACd,IAAI,wBACf,IAAI,GACb,EACb,4BAAgB,QAAQ,iBAAa,MAAM,EAAC,KAAK,EAAC,QAAQ,YAAE,IAAI,CAAC,oBAAoB,GAAQ,IAC5F,CACJ,EACD,cAAK,KAAK,EAAC,gDAAgD,YACzD,cAAK,KAAK,EAAC,2CAA2C,EAAC,QAAQ,EAAE,IAAI,CAAC,8BAA8B,YAClG,aAAI,KAAK,EAAC,qFAAqF,
|
|
1
|
+
{"version":3,"file":"MastheadCountrySelectorTemplate.js","sourceRoot":"","sources":["../src/MastheadCountrySelectorTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type UDExMastheadCountrySelector from \"./MastheadCountrySelector.js\";\nimport UDExMastheadMenuItem from \"./MastheadMenuItem.js\";\nimport UDExSearch from \"./Search.js\";\n\nexport default function MastheadCountrySelectorTemplate(this: UDExMastheadCountrySelector) {\n return (\n <div class=\"udex-masthead-country-selector\">\n {this._isActiveRegionOpen ? activeRegionView.call(this) : regionsView.call(this)}\n </div>\n );\n}\n\nfunction activeRegionView(this: UDExMastheadCountrySelector) {\n return (\n <>\n <span class=\"udex-masthead-country-selector__title\">{this.countryTitle}</span>\n {!this.isSingleMode && (\n <UDExMastheadMenuItem\n class=\"udex-masthead-country-selector__region-back-item\"\n accessible-role=\"button\"\n onClick={this.backToRegions}\n label={this._activeRegion?.title}\n type=\"Button\"\n part=\"menu-item\"\n icon-start={true}\n {...{ \"_accessible-name\": this.backToRegionListAccessibleName, \"is-back\": \"\" }}>\n </UDExMastheadMenuItem>\n )}\n {!this.hideSearch && (\n <>\n <UDExSearch\n class=\"udex-masthead-country-selector__search\"\n onui5-handle-value-search={this.handleSearch}\n onui5-handle-value-reset={this.handleSearchReset}\n onui5-submit-search-value={this.handleSearch}\n language-voice={this.languageVoice}\n label={this.searchLabel}\n mode={this.homeSearchMode}\n show-voice-button={this.showSearchVoiceButton}\n non-interactive-submit-button={true}\n show-submit-button={true}>\n </UDExSearch>\n <span aria-live=\"polite\" aria-atomic=\"true\" class=\"hidden\">{this._accSearchResultInfo}</span>\n </>\n )}\n <div class=\"udex-masthead-country-selector__list-container\">\n <div class=\"udex-masthead-country-selector__list-wrap\" onScroll={this.handleCountryListShadowVisible}>\n <ul class=\"udex-masthead-country-selector__list udex-masthead-country-selector__list_countries\">\n {this._activeCountries.map((country, index) => (\n <li key={index}>\n <UDExMastheadMenuItem\n class=\"udex-masthead-country-selector__item udex-masthead-country-selector__item_countries\"\n onClick={this.handleCountryClick as any}\n accessible-role=\"link\"\n url={country.url}\n label={country.displayTitle}\n index={index}\n part=\"menu-item\"\n {...{\n \"_country-code\": country.countryCode,\n \"is-nav-item\": \"\",\n ...(country.active ? { \"_is-active-country\": \"\" } : {}),\n }}>\n </UDExMastheadMenuItem>\n </li>\n ))}\n </ul>\n </div>\n </div>\n </>\n );\n}\n\nfunction regionsView(this: UDExMastheadCountrySelector) {\n return (\n <>\n <span class=\"udex-masthead-country-selector__title\">{this.regionTitle}</span>\n <ul class=\"udex-masthead-country-selector__list\">\n {this.regionsData.map((region, index) => (\n <li key={index}>\n <UDExMastheadMenuItem\n onClick={this.handleRegionClick as any}\n index={index}\n accessible-role=\"button\"\n class=\"udex-masthead-country-selector__item udex-masthead-country-selector__item_region\"\n aria-haspopup=\"true\"\n type=\"Button\"\n part=\"menu-item\"\n has-border={true}\n icon-end={true}\n label={region.title}\n {...{ \"is-nav-item\": \"\" }}>\n </UDExMastheadMenuItem>\n </li>\n ))}\n </ul>\n </>\n );\n}\n"]}
|
|
@@ -3,7 +3,7 @@ import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
|
3
3
|
export default function RatingIndicatorTemplate() {
|
|
4
4
|
const rootClass = "udex-rating-indicator";
|
|
5
5
|
const ui5Class = "ui5-rating-indicator";
|
|
6
|
-
return (_jsxs("div", { class: `${rootClass} ${rootClass}--${this.display.toLowerCase()} ${ui5Class}-root`, role: this.readonly ? "img" : "slider", "aria-roledescription": this._ariaRoleDescription, "aria-valuemin": 0, "aria-valuenow": this.value, "aria-valuemax": this.max, "aria-valuetext": `${this.value} of ${this.max}`, "aria-orientation": "horizontal", "aria-disabled": this._ariaDisabled, "aria-readonly": this.ariaReadonly, "aria-description": this._ariaDescription, tabindex: this.effectiveTabIndex, onFocusIn: this._onfocusin,
|
|
6
|
+
return (_jsxs("div", { class: `${rootClass} ${rootClass}--${this.display.toLowerCase()} ${ui5Class}-root`, role: this.readonly ? "img" : "slider", "aria-roledescription": this._ariaRoleDescription, "aria-valuemin": 0, "aria-valuenow": this.value, "aria-valuemax": this.max, "aria-valuetext": `${this.value} of ${this.max}`, "aria-orientation": "horizontal", "aria-disabled": this._ariaDisabled, "aria-readonly": this.ariaReadonly, "aria-description": this._ariaDescription, tabindex: this.effectiveTabIndex, onFocusIn: this._onfocusin, onClick: this._onclick, onKeyDown: this._onkeydown, title: this.ratingTooltip, "aria-label": this.readonly ? this._readonlyAriaLabel : this._ariaLabel, children: [_jsx("ul", { class: `${rootClass}__list ${ui5Class}-list`, "aria-hidden": "true", children: this._stars.map(star => (_jsx("li", { "data-ui5-value": star.index, class: {
|
|
7
7
|
"udex-rating-indicator__item ui5-rating-indicator-item": true,
|
|
8
8
|
"udex-rating-indicator__item-sel ui5-rating-indicator-item-sel": star.selected,
|
|
9
9
|
"udex-rating-indicator__item-unsel ui5-rating-indicator-item-unsel": !star.selected && !star.halfStar,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RatingIndicatorTemplate.js","sourceRoot":"","sources":["../src/RatingIndicatorTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,OAAO,MAAM,iCAAiC,CAAC;AAQtD,MAAM,CAAC,OAAO,UAAU,uBAAuB;IAC7C,MAAM,SAAS,GAAG,uBAAuB,CAAC;IAC1C,MAAM,QAAQ,GAAG,sBAAsB,CAAC;IAExC,OAAO,CACL,eAAK,KAAK,EAAE,GAAG,SAAS,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,QAAQ,OAAO,EACrF,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,0BAChB,IAAI,CAAC,oBAAoB,mBAChC,CAAC,mBACD,IAAI,CAAC,KAAK,mBACV,IAAI,CAAC,GAAG,oBACP,GAAG,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,GAAG,EAAE,sBAC7B,YAAY,mBACd,IAAI,CAAC,aAAa,mBAClB,IAAI,CAAC,YAAY,sBACd,IAAI,CAAC,gBAAgB,EACvC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAChC,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,
|
|
1
|
+
{"version":3,"file":"RatingIndicatorTemplate.js","sourceRoot":"","sources":["../src/RatingIndicatorTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,OAAO,MAAM,iCAAiC,CAAC;AAQtD,MAAM,CAAC,OAAO,UAAU,uBAAuB;IAC7C,MAAM,SAAS,GAAG,uBAAuB,CAAC;IAC1C,MAAM,QAAQ,GAAG,sBAAsB,CAAC;IAExC,OAAO,CACL,eAAK,KAAK,EAAE,GAAG,SAAS,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,QAAQ,OAAO,EACrF,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,0BAChB,IAAI,CAAC,oBAAoB,mBAChC,CAAC,mBACD,IAAI,CAAC,KAAK,mBACV,IAAI,CAAC,GAAG,oBACP,GAAG,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,GAAG,EAAE,sBAC7B,YAAY,mBACd,IAAI,CAAC,aAAa,mBAClB,IAAI,CAAC,YAAY,sBACd,IAAI,CAAC,gBAAgB,EACvC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAChC,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,KAAK,EAAE,IAAI,CAAC,aAAa,gBACb,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,aACrE,aAAI,KAAK,EAAE,GAAG,SAAS,UAAU,QAAQ,OAAO,iBAClC,MAAM,YACjB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CACvB,+BAAoB,IAAI,CAAC,KAAK,EAC5B,KAAK,EAAE;wBACL,uDAAuD,EAAE,IAAI;wBAC7D,+DAA+D,EAAE,IAAI,CAAC,QAAQ;wBAC9E,mEAAmE,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;wBACrG,mGAAmG,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;qBACrI,YACA,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,GAC9C,CACN,CAAC,GACC,EACJ,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAC9C,eAAK,KAAK,EAAE,GAAG,SAAS,SAAS,aAC9B,IAAI,CAAC,cAAc,IAAI,8BAAG,IAAI,CAAC,WAAW,SAAK,EAC/C,IAAI,CAAC,aAAa,IAAI,mCAAQ,IAAI,CAAC,UAAU,SAAS,IACnD,CACP,IACG,CACP,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAA4B,IAAU,EAAE,QAAgB,EAAE,SAAiB;IAC5F,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,CACL,KAAC,OAAO,sBAAiB,IAAI,CAAC,KAAK,EAAE,IAAI,EAAC,UAAU,GAAE,CACvD,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,CACL,8BACE,KAAC,OAAO,sBAAiB,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,GAAG,EACvF,cAAK,KAAK,EAAE,GAAG,SAAS,uBAAuB,QAAQ,oBAAoB,YACzE,KAAC,OAAO,sBAAiB,IAAI,CAAC,KAAK,EAAE,IAAI,EAAC,UAAU,EAAC,KAAK,EAAE,GAAG,SAAS,eAAe,QAAQ,YAAY,GAAY,GACnH,IACL,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,CACL,KAAC,OAAO,sBAAiB,IAAI,CAAC,KAAK,EAAE,IAAI,EAAC,UAAU,GAAE,CACvD,CAAC;IACJ,CAAC;IACD,OAAO,CACL,KAAC,OAAO,sBAAiB,IAAI,CAAC,KAAK,EAAE,IAAI,EAAC,YAAY,GAAE,CACzD,CAAC;AACJ,CAAC","sourcesContent":["import type UDExRatingIndicator from \"./RatingIndicator.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\n\ntype Star = {\n selected: boolean;\n index: number;\n halfStar: boolean;\n};\n\nexport default function RatingIndicatorTemplate(this: UDExRatingIndicator) {\n const rootClass = \"udex-rating-indicator\";\n const ui5Class = \"ui5-rating-indicator\";\n\n return (\n <div class={`${rootClass} ${rootClass}--${this.display.toLowerCase()} ${ui5Class}-root`}\n role={this.readonly ? \"img\" : \"slider\"}\n aria-roledescription={this._ariaRoleDescription}\n aria-valuemin={0}\n aria-valuenow={this.value}\n aria-valuemax={this.max}\n aria-valuetext={`${this.value} of ${this.max}`}\n aria-orientation=\"horizontal\"\n aria-disabled={this._ariaDisabled}\n aria-readonly={this.ariaReadonly}\n aria-description={this._ariaDescription}\n tabindex={this.effectiveTabIndex}\n onFocusIn={this._onfocusin}\n onClick={this._onclick}\n onKeyDown={this._onkeydown}\n title={this.ratingTooltip}\n aria-label={this.readonly ? this._readonlyAriaLabel : this._ariaLabel}>\n <ul class={`${rootClass}__list ${ui5Class}-list`}\n aria-hidden=\"true\">\n {this._stars.map(star => (\n <li data-ui5-value={star.index}\n class={{\n \"udex-rating-indicator__item ui5-rating-indicator-item\": true,\n \"udex-rating-indicator__item-sel ui5-rating-indicator-item-sel\": star.selected,\n \"udex-rating-indicator__item-unsel ui5-rating-indicator-item-unsel\": !star.selected && !star.halfStar,\n \"udex-rating-indicator__item-half ui5-rating-indicator-item-half udex-rating-indicator__item-unsel\": star.halfStar && !star.selected,\n }}>\n {starRender.call(this, star, ui5Class, rootClass)}\n </li>\n ))}\n </ul>\n {(this.hasRatingCount || this.hasTotalCount) && (\n <div class={`${rootClass}__total`}>\n {this.hasRatingCount && <>{this.ratingCount} </>}\n {this.hasTotalCount && <>({this.totalCount})</>}\n </div>\n )}\n </div>\n );\n}\n\nfunction starRender(this: UDExRatingIndicator, star: Star, ui5Class: string, rootClass: string) {\n if (star.selected) {\n return (\n <UI5Icon data-ui5-value={star.index} name=\"favorite\"/>\n );\n }\n if (star.halfStar) {\n return (\n <>\n <UI5Icon data-ui5-value={star.index} name={this.readonly ? \"favorite\" : \"unfavorite\"}/>\n <div class={`${rootClass}__half-icon-wrapper ${ui5Class}-half-icon-wrapper`}>\n <UI5Icon data-ui5-value={star.index} name=\"favorite\" class={`${rootClass}__half-icon ${ui5Class}-half-icon`}></UI5Icon>\n </div>\n </>\n );\n }\n if (this.readonly) {\n return (\n <UI5Icon data-ui5-value={star.index} name=\"favorite\"/>\n );\n }\n return (\n <UI5Icon data-ui5-value={star.index} name=\"unfavorite\"/>\n );\n}\n"]}
|
|
@@ -10,14 +10,14 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
|
|
|
10
10
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
11
11
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
12
12
|
import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
13
|
-
import
|
|
13
|
+
import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
|
|
14
14
|
import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
|
|
15
15
|
import { isEscape } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
16
16
|
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
17
17
|
import UDExSecondaryNavigationItem from "./SecondaryNavigationItem.js";
|
|
18
18
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
19
19
|
import { MORE } from "./generated/i18n/i18n-defaults.js";
|
|
20
|
-
import SecondaryNavigationTemplate from "./
|
|
20
|
+
import SecondaryNavigationTemplate from "./SecondaryNavigationTemplate.js";
|
|
21
21
|
import { BreakpointUtils } from "./utils/Breakpoints.js";
|
|
22
22
|
import parseArrayFromString from "./utils/parseArrayFromString.js";
|
|
23
23
|
import AnalyticsName from "./types/AnalyticsName.js";
|
|
@@ -421,7 +421,7 @@ __decorate([
|
|
|
421
421
|
UDExSecondaryNavigation = UDExSecondaryNavigation_1 = __decorate([
|
|
422
422
|
customElement({
|
|
423
423
|
tag: "udex-secondary-navigation",
|
|
424
|
-
renderer:
|
|
424
|
+
renderer: jsxRenderer,
|
|
425
425
|
styles: [SecondaryNavigationCss],
|
|
426
426
|
template: SecondaryNavigationTemplate,
|
|
427
427
|
dependencies: [UDExSecondaryNavigationItem],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecondaryNavigation.js","sourceRoot":"","sources":["../src/SecondaryNavigation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ChangeInfo, Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { UDExSecondaryNavigationItemClickEventDetail, UDExSecondaryNavigationItemSubItemClickEventDetail } from \"./SecondaryNavigationItem.js\";\nimport UDExSecondaryNavigationItem from \"./SecondaryNavigationItem.js\";\nimport type UDExSecondaryNavigationSubItem from \"./SecondaryNavigationSubItem.js\";\nimport type { NavItem } from \"./SecondaryNavigationItemBase.js\";\nimport type UDExSecondaryNavigationItemBase from \"./SecondaryNavigationItemBase.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { MORE } from \"./generated/i18n/i18n-defaults.js\";\nimport SecondaryNavigationTemplate from \"./generated/templates/SecondaryNavigationTemplate.lit.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\nimport parseArrayFromString from \"./utils/parseArrayFromString.js\";\nimport AnalyticsName from \"./types/AnalyticsName.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport SecondaryNavigationCss from \"./generated/themes/SecondaryNavigation.css.js\";\n\nconst canvasContentFont: string = \"14px '72 Brand Variable'\";\nconst rootClass = \"udex-secondary-navigation__root\";\nconst ITEM_ICON_WIDTH = 20;\n\ntype UDExSecondaryNavigationClickEventDetail = {\n originalEvent: Event,\n clickedItem: NavItem;\n clickedIndex: number;\n isMore?: boolean,\n isMobile?: boolean,\n analyticsName: AnalyticsName,\n analyticsPath: Array<string>,\n sourceNode: HTMLElement,\n};\n\ntype UDExSecondaryNavigationHeadingClickEventDetail = {\n originalEvent: Event,\n analyticsName: AnalyticsName,\n sourceNode: HTMLElement,\n};\n\ntype UDExSecondaryNavigationMobileMenuOpenerClickEventDetail = {\n originalEvent: Event,\n analyticsName: AnalyticsName,\n sourceNode: HTMLElement,\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-secondary-navigation</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/SecondaryNavigation.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-secondary-navigation\",\n renderer: litRender,\n styles: [SecondaryNavigationCss],\n template: SecondaryNavigationTemplate,\n dependencies: [UDExSecondaryNavigationItem],\n})\n\n/**\n * Fires when item is clicked\n *\n * @allowPreventDefault\n * @public\n * @param {Event} originalEvent The original event object\n * @param {NavItem} clickedItem The clicked item\n * @param {number} clickedIndex The index of the clicked item\n * @param {boolean} isMobile Indicates whether the click happened on mobile\n * @param {AnalyticsName} analyticsName The analytics name for the clicked item\n * @param {HTMLElement} sourceNode The source node of the clicked item\n *\n */\n@event(\"item-click\", { cancelable: true, bubbles: true })\n\n/**\n * The event is triggered on user interaction with a secondary navigation heading\n *\n * @allowPreventDefault\n * @public\n * @param {Event} originalEvent The original event object\n * @param {AnalyticsName} analyticsName The analytics name for the heading\n * @param {HTMLElement} sourceNode The source node of the heading\n *\n */\n@event(\"heading-click\", { cancelable: true, bubbles: true })\n\n/**\n * The event is triggered on user interaction with the mobile menu opener\n *\n * @allowPreventDefault\n * @public\n * @param {Event} originalEvent The original event object\n * @param {AnalyticsName} analyticsName The analytics name for the mobile menu opener\n * @param {HTMLElement} sourceNode The source node of the mobile menu opener\n *\n */\n@event(\"mobile-menu-opener-click\", { cancelable: true, bubbles: true })\n\nclass UDExSecondaryNavigation extends UI5Element {\n eventDetails!: {\n \"item-click\": UDExSecondaryNavigationClickEventDetail,\n \"heading-click\": UDExSecondaryNavigationHeadingClickEventDetail,\n \"mobile-menu-opener-click\": UDExSecondaryNavigationMobileMenuOpenerClickEventDetail,\n };\n /**\n * Defines an aria label for the mobile menu opener\n *\n * @public\n */\n @property({ type: String })\n mobileMenuOpenerAriaLabel!: string;\n\n /**\n * List of the nav items\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String })\n navItems: string = \"[]\";\n\n /**\n * Slot for breadcrumbs.\n *\n * @slot breadcrumbs\n * @public\n */\n @slot({ type: HTMLElement })\n breadcrumbs!: Slot<HTMLElement>;\n\n /**\n * Slot for action buttons.\n *\n * @slot buttons\n * @public\n */\n @slot({ type: HTMLElement })\n buttons!: Slot<HTMLElement>;\n\n /**\n * Defines the heading of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n heading: string = \"\";\n\n /**\n * Defines the href of the heading.\n *\n * @default \"\"\n * @public\n */\n @property()\n headingHref: string = \"\";\n /**\n * Defines the height of the dropdown opened on mobile screen.\n *\n * @public\n */\n @property({ type: String })\n maxDropdownHeight!: string;\n\n @property({ type: Boolean, noAttribute: true })\n _selectedMore!: boolean;\n\n @property({ type: Object, noAttribute: true })\n _overflowItems: Array<NavItem> = [];\n\n @property({ type: Object, noAttribute: true })\n _visibleItems: Array<NavItem> = [];\n\n @property({ type: Boolean, noAttribute: true })\n _requestRender = false;\n\n @property({ type: Boolean, noAttribute: true })\n _mobileBtnExpanded = false;\n\n _navItems!: Array<NavItem>;\n _showMoreButton: boolean = true;\n _rootHolder!: HTMLElement | null | undefined;\n _clickedNavItem!: UDExSecondaryNavigationItem;\n _boundReflowItems: () => void;\n _prevSlottedButtons: HTMLElement | null = null;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n constructor() {\n super();\n this._boundReflowItems = this._handleResize.bind(this);\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n\n ResizeHandler.register(this, this._boundReflowItems);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._boundReflowItems);\n if (this._prevSlottedButtons) {\n ResizeHandler.deregister(this._prevSlottedButtons, this._boundReflowItems);\n }\n }\n\n onInvalidation(changeInfo: ChangeInfo): void {\n if (changeInfo.name === \"navItems\") {\n this.reflowItems();\n }\n }\n\n onAfterRendering(): void {\n this._rootHolder = this.rootHolder;\n if (!this._overflowItems.length) {\n this._showMoreButton = true;\n }\n this.handleOutsideClick();\n this.syncButtonsResizeHandler();\n }\n\n syncButtonsResizeHandler(): void {\n const buttonsEl = this.optionalButtons || null;\n if (buttonsEl !== this._prevSlottedButtons) {\n if (this._prevSlottedButtons) {\n ResizeHandler.deregister(this._prevSlottedButtons, this._boundReflowItems);\n }\n if (buttonsEl) {\n ResizeHandler.register(buttonsEl, this._boundReflowItems);\n } else {\n this.reflowItems();\n }\n this._prevSlottedButtons = buttonsEl;\n }\n }\n\n refreshRendering(): void {\n this._requestRender = !this._requestRender;\n }\n\n _handleResize() {\n this.reflowItems();\n if (this._clickedNavItem && this.isDesktopScreen) {\n this._clickedNavItem.closeDropdown();\n }\n }\n\n reflowItems(): void {\n const headingWidth = this.headingHolder\n ? this.headingHolder.offsetWidth + (parseFloat(getComputedStyle(this.headingHolder).marginInlineEnd) || 0)\n : 0;\n const availableWidth = this.rootHolder.offsetWidth - headingWidth - (this.optionalButtons?.offsetWidth || 0);\n const moreButtonWidth = this.getMoreButtonWidth();\n const itemsGap = 20;\n const widths = this.parsedItems.map(item => this.getItemWidth(item));\n const steps: Array<number> = [];\n\n widths?.forEach((itemWidth, index) => {\n steps.push((steps.at(-1) || 0) + itemWidth + (index && itemsGap));\n });\n\n if ((steps.at(-1) || 0) <= availableWidth) {\n this._visibleItems = [...this.parsedItems];\n this._showMoreButton = false;\n this.refreshRendering();\n return;\n }\n\n if (this.parsedItems) {\n // @ts-ignore\n const lastVisibleIndex: number = steps.findLastIndex((size: number) => size < (availableWidth - moreButtonWidth - itemsGap));\n this._visibleItems = this.parsedItems.slice(0, lastVisibleIndex + 1);\n this._overflowItems = this.parsedItems.slice(lastVisibleIndex + 1);\n this._showMoreButton = true;\n this.refreshRendering();\n }\n }\n\n handleKeyDown(e: KeyboardEvent): void {\n e.stopPropagation();\n const item = e.target as UDExSecondaryNavigationItem;\n\n if (isEscape(e) && item.hasNestedItems) {\n return item.closeDropdown();\n }\n }\n\n getItemWidth(item: NavItem): number {\n const context = this.getCanvasContext();\n context.font = this.getCanvasFont();\n const iconWidth = item.items?.length ? ITEM_ICON_WIDTH : 0;\n\n return Math.ceil(context.measureText(item.title).width) + iconWidth;\n }\n\n getMoreButtonWidth(): number {\n const context = this.getCanvasContext();\n context.font = this.getCanvasFont();\n\n return Math.ceil(context.measureText(this.moreButtonText).width) + ITEM_ICON_WIDTH;\n }\n\n getCanvasFont(): string {\n const navItem = this.domNavItems[0];\n const btn = navItem?.shadowRoot?.querySelector<HTMLElement>(\".udex-secondary-navigation__item\");\n if (btn) {\n const cs = getComputedStyle(btn);\n return `${cs.fontWeight} ${cs.fontSize} ${cs.fontFamily}`;\n }\n return canvasContentFont;\n }\n\n getCanvasContext(): CanvasRenderingContext2D {\n const canvas = document.createElement(\"canvas\");\n return canvas.getContext(\"2d\")!;\n }\n\n handleItemClick(e: CustomEvent<UDExSecondaryNavigationItemClickEventDetail>): void {\n const { index, item, originalEvent: actualOriginalEvent } = e.detail;\n const clickedItem = item as UDExSecondaryNavigationItem;\n const {\n path, target, title, active, subItems, _id, mobileLinkTitle,\n } = clickedItem;\n\n const prevented = !this.fireEventItemClick(actualOriginalEvent, index, {\n path,\n target,\n title,\n active,\n mobileLinkTitle,\n items: subItems,\n }, this.getAnalyticsPath(title, path), title === this.moreButtonText);\n\n if (prevented) {\n e.preventDefault();\n return;\n }\n\n this._clickedNavItem = clickedItem;\n this.closePrevDropdown(_id);\n\n if (!subItems.length) {\n this.setActiveItem(this.parsedItems, clickedItem);\n }\n }\n\n handleSubItemClick(e: CustomEvent<UDExSecondaryNavigationItemSubItemClickEventDetail>): void {\n const { originalEvent: actualOriginalEvent, index } = e.detail;\n const item = e.detail.item as UDExSecondaryNavigationSubItem;\n const { items } = item as NavItem;\n const analyticsPath = this.getAnalyticsPath(item.title, item.path);\n const isMore = this._clickedNavItem?.title === this.moreButtonText;\n const prevented = !this.fireEventItemClick(actualOriginalEvent, index, item, analyticsPath, isMore);\n\n if (prevented) {\n e.preventDefault();\n return;\n }\n\n if (this.isMobileScreen && !items) {\n this.mobileNav.closeDropdown();\n }\n\n if (!items) {\n this.setActiveItem(this.parsedItems, item);\n this._clickedNavItem?.closeDropdown();\n }\n }\n\n handleHeadingClick(e: CustomEvent<UDExSecondaryNavigationHeadingClickEventDetail>): void {\n this.fireDecoratorEvent(\"heading-click\", {\n analyticsName: AnalyticsName.HeaderSub,\n sourceNode: e.target as HTMLElement,\n originalEvent: e,\n });\n }\n\n fireEventItemClick(\n e: PointerEvent | KeyboardEvent,\n clickedIndex: number,\n {\n items, target, path, title, active, mobileLinkTitle,\n }: NavItem,\n analyticsPath: Array<string> = [],\n isMore: boolean = false,\n ): boolean {\n return this.fireDecoratorEvent(\"item-click\", {\n ...(this.isMobileScreen && { isMobile: true }),\n ...(isMore && { isMore: true }),\n analyticsName: AnalyticsName.HeaderSub,\n analyticsPath,\n sourceNode: e?.currentTarget as HTMLElement,\n originalEvent: e,\n clickedItem: {\n mobileLinkTitle: mobileLinkTitle || \"\",\n path: path || \"\",\n active: active || false,\n items: items || [],\n target,\n title,\n },\n clickedIndex,\n });\n }\n\n getAnalyticsPath(clickedTitle: string, clickedPath?: string): Array<string> {\n const getLabel = (item: NavItem) => (this.isMobileScreen ? (item.mobileLinkTitle || item.title) : item.title);\n const findPath = (items: Array<NavItem>, parentPath: Array<string>): Array<string> | null => items.reduce<Array<string> | null>((found, item) => {\n if (found !== null) {\n return found;\n }\n if (item.title === clickedTitle && (!clickedPath || item.path === clickedPath)) {\n return [...parentPath, getLabel(item)];\n }\n if (item.items?.length) {\n return findPath(item.items, [...parentPath, getLabel(item)]);\n }\n return null;\n }, null);\n return findPath(this.parsedItems, []) || [];\n }\n\n setActiveItem(navItems: Array<NavItem>, clickedItem: UDExSecondaryNavigationItemBase): void {\n const updateNav = (items: Array<NavItem>, { title, path }: UDExSecondaryNavigationItemBase): boolean => {\n let hasActiveDescendant = false;\n\n items.forEach(item => {\n if (item.title === title && (item.path === path || !item.path)) {\n item.active = true;\n hasActiveDescendant = true;\n return;\n }\n\n if (item.items) {\n const childIsActive = updateNav(item.items, clickedItem);\n if (childIsActive) {\n item.active = true;\n hasActiveDescendant = true;\n } else {\n delete item.active;\n }\n } else {\n delete item.active;\n }\n });\n\n return hasActiveDescendant;\n };\n\n updateNav(navItems, clickedItem);\n this.navItems = JSON.stringify(navItems);\n }\n\n handleMobileMenuOpenerClick(e: CustomEvent): void {\n this.fireDecoratorEvent(\"mobile-menu-opener-click\", {\n analyticsName: AnalyticsName.HeaderSub,\n sourceNode: e.target as HTMLElement,\n originalEvent: e,\n });\n }\n\n handleOutsideClick(): void {\n document.addEventListener(\"click\", this.outsideClickListener);\n }\n\n outsideClickListener = (e: MouseEvent): void => {\n if (this.isMobileScreen && !e.composedPath().includes(this)) {\n this.closeMobileDropdown();\n return;\n }\n\n if (this.isDesktopScreen) {\n this.handleDesktopDropdown(e);\n }\n };\n\n handleMobileButtonsClick(): void {\n this.closeMobileDropdown();\n }\n\n closeMobileDropdown(): void {\n this.mobileNav?.closeDropdown();\n }\n\n handleDesktopDropdown(e: MouseEvent): void {\n const isClickedNavItem = e.composedPath().includes(this._clickedNavItem);\n if (!isClickedNavItem && this._clickedNavItem) {\n this._clickedNavItem.closeDropdown();\n }\n }\n\n closePrevDropdown(clickedItemId: string): void {\n this.domNavItems.forEach(item => {\n if (item.isOpen && item._id !== clickedItemId) {\n item.closeDropdown();\n }\n });\n }\n\n get domNavItems(): Array<UDExSecondaryNavigationItem> {\n const items = this.shadowRoot?.querySelectorAll<UDExSecondaryNavigationItem>(\"[udex-secondary-navigation-item]\");\n return items ? Array.from(items) : [];\n }\n\n get rootHolder(): HTMLElement {\n return (this.shadowRoot ? this.shadowRoot.querySelector<HTMLElement>(\".udex-secondary-navigation__root\") : undefined)!;\n }\n\n get headingHolder(): HTMLElement {\n return (this.shadowRoot ? this.shadowRoot.querySelector<HTMLElement>(\".udex-secondary-navigation__heading\") : undefined)!;\n }\n\n get mobileNav(): UDExSecondaryNavigationItem {\n return (this.shadowRoot ? this.shadowRoot.querySelector<UDExSecondaryNavigationItem>(\".udex-secondary-navigation__mobile-nav\") : undefined)!;\n }\n\n get optionalButtons(): HTMLElement | null | undefined {\n return this.shadowRoot?.querySelector<HTMLElement>(\".udex-secondary-navigation__buttons\");\n }\n\n get moreButtonText(): string {\n return translate(UDExSecondaryNavigation, MORE);\n }\n\n get parsedItems(): Array<NavItem> {\n return parseArrayFromString<NavItem>(this.navItems);\n }\n\n get visibleItems(): Array<NavItem> {\n return this.isDesktopScreen ? this._visibleItems : this.parsedItems;\n }\n\n get hasBreadcrumbsSlot(): boolean {\n return !!this.getSlottedNodes(\"breadcrumbs\").length && this.isDesktopScreen;\n }\n\n get rootClass(): string {\n return `${rootClass} ${this.hasBreadcrumbsSlot ? \"\" : `${rootClass}_centered`}`.trim();\n }\n\n get hasDesktopButtonsSlot(): boolean {\n return this.hasButtons && this.isDesktopScreen;\n }\n\n get hasMobileButtonsSlot(): boolean {\n return this.hasButtons && this.isMobileScreen;\n }\n\n get hasButtons(): boolean {\n return !!this.getSlottedNodes(\"buttons\").length;\n }\n\n get isDesktopScreen(): boolean {\n return BreakpointUtils.isAtLeast(\"M\");\n }\n\n get isMobileScreen(): boolean {\n return BreakpointUtils.isAtMost(\"S\");\n }\n}\n\nUDExSecondaryNavigation.define();\n\nexport default UDExSecondaryNavigation;\nexport type {\n UDExSecondaryNavigationClickEventDetail,\n UDExSecondaryNavigationHeadingClickEventDetail,\n UDExSecondaryNavigationMobileMenuOpenerClickEventDetail,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"SecondaryNavigation.js","sourceRoot":"","sources":["../src/SecondaryNavigation.ts"],"names":[],"mappings":";;;;;;;AACA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,IAAI,MAAM,wDAAwD,CAAC;AAC1E,OAAO,WAAW,MAAM,iDAAiD,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAChE,OAAO,aAAa,MAAM,wDAAwD,CAAC;AAEnF,OAAO,2BAA2B,MAAM,8BAA8B,CAAC;AAIvE,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AACzD,OAAO,2BAA2B,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,oBAAoB,MAAM,iCAAiC,CAAC;AACnE,OAAO,aAAa,MAAM,0BAA0B,CAAC;AACrD,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,SAAS;AACT,OAAO,sBAAsB,MAAM,+CAA+C,CAAC;AAEnF,MAAM,iBAAiB,GAAW,0BAA0B,CAAC;AAC7D,MAAM,SAAS,GAAG,iCAAiC,CAAC;AACpD,MAAM,eAAe,GAAG,EAAE,CAAC;AAyB3B;;;;;;;;;;;;;;;;GAgBG;AAgDH,IAAM,uBAAuB,+BAA7B,MAAM,uBAAwB,SAAQ,UAAU;IA2F9C;QACE,KAAK,EAAE,CAAC;QA9EV;;;;;WAKG;QAED,aAAQ,GAAW,IAAI,CAAC;QAoB1B;;;;;WAKG;QAED,YAAO,GAAW,EAAE,CAAC;QAEvB;;;;;WAKG;QAED,gBAAW,GAAW,EAAE,CAAC;QAazB,mBAAc,GAAmB,EAAE,CAAC;QAGpC,kBAAa,GAAmB,EAAE,CAAC;QAGnC,mBAAc,GAAG,KAAK,CAAC;QAGvB,uBAAkB,GAAG,KAAK,CAAC;QAG7B,oBAAe,GAAY,IAAI,CAAC;QAIhC,wBAAmB,GAAuB,IAAI,CAAC;QA4R/C,yBAAoB,GAAG,CAAC,CAAa,EAAQ,EAAE;YAC7C,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5D,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC;QACH,CAAC,CAAC;QA9RA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,UAAU;QACR,IAAI,SAAS,EAAE,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;QAED,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACvD,CAAC;IAED,SAAS;QACP,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvD,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,cAAc,CAAC,UAAsB;QACnC,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAClC,CAAC;IAED,wBAAwB;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC;QAC/C,IAAI,SAAS,KAAK,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC7B,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC7E,CAAC;YACD,IAAI,SAAS,EAAE,CAAC;gBACd,aAAa,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC;YACD,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACvC,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;IAC7C,CAAC;IAED,aAAa;QACX,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACjD,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IAED,WAAW;QACT,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa;YACrC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC1G,CAAC,CAAC,CAAC,CAAC;QACN,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,YAAY,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;QAC7G,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QACrE,MAAM,KAAK,GAAkB,EAAE,CAAC;QAEhC,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;YACnC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,EAAE,CAAC;YAC1C,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3C,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,aAAa;YACb,MAAM,gBAAgB,GAAW,KAAK,CAAC,aAAa,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,cAAc,GAAG,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC;YAC7H,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,GAAG,CAAC,CAAC,CAAC;YACrE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,aAAa,CAAC,CAAgB;QAC5B,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,CAAC,CAAC,MAAqC,CAAC;QAErD,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,YAAY,CAAC,IAAa;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3D,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IACtE,CAAC;IAED,kBAAkB;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAEpC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC;IACrF,CAAC;IAED,aAAa;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,OAAO,EAAE,UAAU,EAAE,aAAa,CAAc,kCAAkC,CAAC,CAAC;QAChG,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACjC,OAAO,GAAG,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;QAC5D,CAAC;QACD,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,gBAAgB;QACd,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC;IAClC,CAAC;IAED,eAAe,CAAC,CAA2D;QACzE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;QACrE,MAAM,WAAW,GAAG,IAAmC,CAAC;QACxD,MAAM,EACJ,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,GAC5D,GAAG,WAAW,CAAC;QAEhB,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,KAAK,EAAE;YACrE,IAAI;YACJ,MAAM;YACN,KAAK;YACL,MAAM;YACN,eAAe;YACf,KAAK,EAAE,QAAQ;SAChB,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC;QAEtE,IAAI,SAAS,EAAE,CAAC;YACd,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC;QACnC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAE5B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,CAAkE;QACnF,MAAM,EAAE,aAAa,EAAE,mBAAmB,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;QAC/D,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAsC,CAAC;QAC7D,MAAM,EAAE,KAAK,EAAE,GAAG,IAAe,CAAC;QAClC,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC;QACnE,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QAEpG,IAAI,SAAS,EAAE,CAAC;YACd,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,eAAe,EAAE,aAAa,EAAE,CAAC;QACxC,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,CAA8D;QAC/E,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE;YACvC,aAAa,EAAE,aAAa,CAAC,SAAS;YACtC,UAAU,EAAE,CAAC,CAAC,MAAqB;YACnC,aAAa,EAAE,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB,CAChB,CAA+B,EAC/B,YAAoB,EACpB,EACE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,GAC3C,EACV,gBAA+B,EAAE,EACjC,SAAkB,KAAK;QAEvB,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;YAC3C,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC9C,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAC/B,aAAa,EAAE,aAAa,CAAC,SAAS;YACtC,aAAa;YACb,UAAU,EAAE,CAAC,EAAE,aAA4B;YAC3C,aAAa,EAAE,CAAC;YAChB,WAAW,EAAE;gBACX,eAAe,EAAE,eAAe,IAAI,EAAE;gBACtC,IAAI,EAAE,IAAI,IAAI,EAAE;gBAChB,MAAM,EAAE,MAAM,IAAI,KAAK;gBACvB,KAAK,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM;gBACN,KAAK;aACN;YACD,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,YAAoB,EAAE,WAAoB;QACzD,MAAM,QAAQ,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9G,MAAM,QAAQ,GAAG,CAAC,KAAqB,EAAE,UAAyB,EAAwB,EAAE,CAAC,KAAK,CAAC,MAAM,CAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAC9I,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,KAAK,YAAY,IAAI,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,EAAE,CAAC;gBAC/E,OAAO,CAAC,GAAG,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;gBACvB,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,OAAO,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED,aAAa,CAAC,QAAwB,EAAE,WAA4C;QAClF,MAAM,SAAS,GAAG,CAAC,KAAqB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAmC,EAAW,EAAE;YACrG,IAAI,mBAAmB,GAAG,KAAK,CAAC;YAEhC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACnB,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;oBACnB,mBAAmB,GAAG,IAAI,CAAC;oBAC3B,OAAO;gBACT,CAAC;gBAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;oBACzD,IAAI,aAAa,EAAE,CAAC;wBAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;wBACnB,mBAAmB,GAAG,IAAI,CAAC;oBAC7B,CAAC;yBAAM,CAAC;wBACN,OAAO,IAAI,CAAC,MAAM,CAAC;oBACrB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,IAAI,CAAC,MAAM,CAAC;gBACrB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,OAAO,mBAAmB,CAAC;QAC7B,CAAC,CAAC;QAEF,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,2BAA2B,CAAC,CAAc;QACxC,IAAI,CAAC,kBAAkB,CAAC,0BAA0B,EAAE;YAClD,aAAa,EAAE,aAAa,CAAC,SAAS;YACtC,UAAU,EAAE,CAAC,CAAC,MAAqB;YACnC,aAAa,EAAE,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;QAChB,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAChE,CAAC;IAaD,wBAAwB;QACtB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC;IAClC,CAAC;IAED,qBAAqB,CAAC,CAAa;QACjC,MAAM,gBAAgB,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACzE,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC9C,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IAED,iBAAiB,CAAC,aAAqB;QACrC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC9B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,aAAa,EAAE,CAAC;gBAC9C,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,WAAW;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAA8B,kCAAkC,CAAC,CAAC;QACjH,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAc,kCAAkC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAE,CAAC;IACzH,CAAC;IAED,IAAI,aAAa;QACf,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAc,qCAAqC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAE,CAAC;IAC5H,CAAC;IAED,IAAI,SAAS;QACX,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAA8B,wCAAwC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAE,CAAC;IAC/I,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,UAAU,EAAE,aAAa,CAAc,qCAAqC,CAAC,CAAC;IAC5F,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,SAAS,CAAC,yBAAuB,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,WAAW;QACb,OAAO,oBAAoB,CAAU,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IACtE,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC;IAC9E,CAAC;IAED,IAAI,SAAS;QACX,OAAO,GAAG,SAAS,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IACzF,CAAC;IAED,IAAI,qBAAqB;QACvB,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC;IACjD,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,CAAC;IAChD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IAClD,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;CACF,CAAA;AApcG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0EACU;AASnC;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yDACD;AASxB;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;4DACM;AAShC;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;wDACE;AAS5B;IADD,QAAQ,EAAE;wDACY;AASrB;IADD,QAAQ,EAAE;4DACgB;AAOzB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kEACE;AAG3B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;8DACrB;AAGxB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;+DACR;AAGpC;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;8DACT;AAGnC;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;+DACtB;AAGvB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;mEAClB;AAUtB;IADN,IAAI,CAAC,yBAAyB,CAAC;iDACF;AAzF1B,uBAAuB;IA/C5B,aAAa,CAAC;QACb,GAAG,EAAE,2BAA2B;QAChC,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,CAAC,sBAAsB,CAAC;QAChC,QAAQ,EAAE,2BAA2B;QACrC,YAAY,EAAE,CAAC,2BAA2B,CAAC;KAC5C,CAAC;IAEF;;;;;;;;;;;;OAYG;;IACF,KAAK,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEzD;;;;;;;;;OASG;;IACF,KAAK,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE5D;;;;;;;;;OASG;;IACF,KAAK,CAAC,0BAA0B,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;GAEjE,uBAAuB,CAgd5B;AAED,uBAAuB,CAAC,MAAM,EAAE,CAAC;AAEjC,eAAe,uBAAuB,CAAC","sourcesContent":["import type { ChangeInfo, Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { UDExSecondaryNavigationItemClickEventDetail, UDExSecondaryNavigationItemSubItemClickEventDetail } from \"./SecondaryNavigationItem.js\";\nimport UDExSecondaryNavigationItem from \"./SecondaryNavigationItem.js\";\nimport type UDExSecondaryNavigationSubItem from \"./SecondaryNavigationSubItem.js\";\nimport type { NavItem } from \"./SecondaryNavigationItemBase.js\";\nimport type UDExSecondaryNavigationItemBase from \"./SecondaryNavigationItemBase.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { MORE } from \"./generated/i18n/i18n-defaults.js\";\nimport SecondaryNavigationTemplate from \"./SecondaryNavigationTemplate.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\nimport parseArrayFromString from \"./utils/parseArrayFromString.js\";\nimport AnalyticsName from \"./types/AnalyticsName.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport SecondaryNavigationCss from \"./generated/themes/SecondaryNavigation.css.js\";\n\nconst canvasContentFont: string = \"14px '72 Brand Variable'\";\nconst rootClass = \"udex-secondary-navigation__root\";\nconst ITEM_ICON_WIDTH = 20;\n\ntype UDExSecondaryNavigationClickEventDetail = {\n originalEvent: Event,\n clickedItem: NavItem;\n clickedIndex: number;\n isMore?: boolean,\n isMobile?: boolean,\n analyticsName: AnalyticsName,\n analyticsPath: Array<string>,\n sourceNode: HTMLElement,\n};\n\ntype UDExSecondaryNavigationHeadingClickEventDetail = {\n originalEvent: Event,\n analyticsName: AnalyticsName,\n sourceNode: HTMLElement,\n};\n\ntype UDExSecondaryNavigationMobileMenuOpenerClickEventDetail = {\n originalEvent: Event,\n analyticsName: AnalyticsName,\n sourceNode: HTMLElement,\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-secondary-navigation</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/SecondaryNavigation.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-secondary-navigation\",\n renderer: jsxRenderer,\n styles: [SecondaryNavigationCss],\n template: SecondaryNavigationTemplate,\n dependencies: [UDExSecondaryNavigationItem],\n})\n\n/**\n * Fires when item is clicked\n *\n * @allowPreventDefault\n * @public\n * @param {Event} originalEvent The original event object\n * @param {NavItem} clickedItem The clicked item\n * @param {number} clickedIndex The index of the clicked item\n * @param {boolean} isMobile Indicates whether the click happened on mobile\n * @param {AnalyticsName} analyticsName The analytics name for the clicked item\n * @param {HTMLElement} sourceNode The source node of the clicked item\n *\n */\n@event(\"item-click\", { cancelable: true, bubbles: true })\n\n/**\n * The event is triggered on user interaction with a secondary navigation heading\n *\n * @allowPreventDefault\n * @public\n * @param {Event} originalEvent The original event object\n * @param {AnalyticsName} analyticsName The analytics name for the heading\n * @param {HTMLElement} sourceNode The source node of the heading\n *\n */\n@event(\"heading-click\", { cancelable: true, bubbles: true })\n\n/**\n * The event is triggered on user interaction with the mobile menu opener\n *\n * @allowPreventDefault\n * @public\n * @param {Event} originalEvent The original event object\n * @param {AnalyticsName} analyticsName The analytics name for the mobile menu opener\n * @param {HTMLElement} sourceNode The source node of the mobile menu opener\n *\n */\n@event(\"mobile-menu-opener-click\", { cancelable: true, bubbles: true })\n\nclass UDExSecondaryNavigation extends UI5Element {\n eventDetails!: {\n \"item-click\": UDExSecondaryNavigationClickEventDetail,\n \"heading-click\": UDExSecondaryNavigationHeadingClickEventDetail,\n \"mobile-menu-opener-click\": UDExSecondaryNavigationMobileMenuOpenerClickEventDetail,\n };\n /**\n * Defines an aria label for the mobile menu opener\n *\n * @public\n */\n @property({ type: String })\n mobileMenuOpenerAriaLabel!: string;\n\n /**\n * List of the nav items\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String })\n navItems: string = \"[]\";\n\n /**\n * Slot for breadcrumbs.\n *\n * @slot breadcrumbs\n * @public\n */\n @slot({ type: HTMLElement })\n breadcrumbs!: Slot<HTMLElement>;\n\n /**\n * Slot for action buttons.\n *\n * @slot buttons\n * @public\n */\n @slot({ type: HTMLElement })\n buttons!: Slot<HTMLElement>;\n\n /**\n * Defines the heading of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n heading: string = \"\";\n\n /**\n * Defines the href of the heading.\n *\n * @default \"\"\n * @public\n */\n @property()\n headingHref: string = \"\";\n /**\n * Defines the height of the dropdown opened on mobile screen.\n *\n * @public\n */\n @property({ type: String })\n maxDropdownHeight!: string;\n\n @property({ type: Boolean, noAttribute: true })\n _selectedMore!: boolean;\n\n @property({ type: Object, noAttribute: true })\n _overflowItems: Array<NavItem> = [];\n\n @property({ type: Object, noAttribute: true })\n _visibleItems: Array<NavItem> = [];\n\n @property({ type: Boolean, noAttribute: true })\n _requestRender = false;\n\n @property({ type: Boolean, noAttribute: true })\n _mobileBtnExpanded = false;\n\n _navItems!: Array<NavItem>;\n _showMoreButton: boolean = true;\n _rootHolder!: HTMLElement | null | undefined;\n _clickedNavItem!: UDExSecondaryNavigationItem;\n _boundReflowItems: () => void;\n _prevSlottedButtons: HTMLElement | null = null;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n constructor() {\n super();\n this._boundReflowItems = this._handleResize.bind(this);\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n\n ResizeHandler.register(this, this._boundReflowItems);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._boundReflowItems);\n if (this._prevSlottedButtons) {\n ResizeHandler.deregister(this._prevSlottedButtons, this._boundReflowItems);\n }\n }\n\n onInvalidation(changeInfo: ChangeInfo): void {\n if (changeInfo.name === \"navItems\") {\n this.reflowItems();\n }\n }\n\n onAfterRendering(): void {\n this._rootHolder = this.rootHolder;\n if (!this._overflowItems.length) {\n this._showMoreButton = true;\n }\n this.handleOutsideClick();\n this.syncButtonsResizeHandler();\n }\n\n syncButtonsResizeHandler(): void {\n const buttonsEl = this.optionalButtons || null;\n if (buttonsEl !== this._prevSlottedButtons) {\n if (this._prevSlottedButtons) {\n ResizeHandler.deregister(this._prevSlottedButtons, this._boundReflowItems);\n }\n if (buttonsEl) {\n ResizeHandler.register(buttonsEl, this._boundReflowItems);\n } else {\n this.reflowItems();\n }\n this._prevSlottedButtons = buttonsEl;\n }\n }\n\n refreshRendering(): void {\n this._requestRender = !this._requestRender;\n }\n\n _handleResize() {\n this.reflowItems();\n if (this._clickedNavItem && this.isDesktopScreen) {\n this._clickedNavItem.closeDropdown();\n }\n }\n\n reflowItems(): void {\n const headingWidth = this.headingHolder\n ? this.headingHolder.offsetWidth + (parseFloat(getComputedStyle(this.headingHolder).marginInlineEnd) || 0)\n : 0;\n const availableWidth = this.rootHolder.offsetWidth - headingWidth - (this.optionalButtons?.offsetWidth || 0);\n const moreButtonWidth = this.getMoreButtonWidth();\n const itemsGap = 20;\n const widths = this.parsedItems.map(item => this.getItemWidth(item));\n const steps: Array<number> = [];\n\n widths?.forEach((itemWidth, index) => {\n steps.push((steps.at(-1) || 0) + itemWidth + (index && itemsGap));\n });\n\n if ((steps.at(-1) || 0) <= availableWidth) {\n this._visibleItems = [...this.parsedItems];\n this._showMoreButton = false;\n this.refreshRendering();\n return;\n }\n\n if (this.parsedItems) {\n // @ts-ignore\n const lastVisibleIndex: number = steps.findLastIndex((size: number) => size < (availableWidth - moreButtonWidth - itemsGap));\n this._visibleItems = this.parsedItems.slice(0, lastVisibleIndex + 1);\n this._overflowItems = this.parsedItems.slice(lastVisibleIndex + 1);\n this._showMoreButton = true;\n this.refreshRendering();\n }\n }\n\n handleKeyDown(e: KeyboardEvent): void {\n e.stopPropagation();\n const item = e.target as UDExSecondaryNavigationItem;\n\n if (isEscape(e) && item.hasNestedItems) {\n return item.closeDropdown();\n }\n }\n\n getItemWidth(item: NavItem): number {\n const context = this.getCanvasContext();\n context.font = this.getCanvasFont();\n const iconWidth = item.items?.length ? ITEM_ICON_WIDTH : 0;\n\n return Math.ceil(context.measureText(item.title).width) + iconWidth;\n }\n\n getMoreButtonWidth(): number {\n const context = this.getCanvasContext();\n context.font = this.getCanvasFont();\n\n return Math.ceil(context.measureText(this.moreButtonText).width) + ITEM_ICON_WIDTH;\n }\n\n getCanvasFont(): string {\n const navItem = this.domNavItems[0];\n const btn = navItem?.shadowRoot?.querySelector<HTMLElement>(\".udex-secondary-navigation__item\");\n if (btn) {\n const cs = getComputedStyle(btn);\n return `${cs.fontWeight} ${cs.fontSize} ${cs.fontFamily}`;\n }\n return canvasContentFont;\n }\n\n getCanvasContext(): CanvasRenderingContext2D {\n const canvas = document.createElement(\"canvas\");\n return canvas.getContext(\"2d\")!;\n }\n\n handleItemClick(e: CustomEvent<UDExSecondaryNavigationItemClickEventDetail>): void {\n const { index, item, originalEvent: actualOriginalEvent } = e.detail;\n const clickedItem = item as UDExSecondaryNavigationItem;\n const {\n path, target, title, active, subItems, _id, mobileLinkTitle,\n } = clickedItem;\n\n const prevented = !this.fireEventItemClick(actualOriginalEvent, index, {\n path,\n target,\n title,\n active,\n mobileLinkTitle,\n items: subItems,\n }, this.getAnalyticsPath(title, path), title === this.moreButtonText);\n\n if (prevented) {\n e.preventDefault();\n return;\n }\n\n this._clickedNavItem = clickedItem;\n this.closePrevDropdown(_id);\n\n if (!subItems.length) {\n this.setActiveItem(this.parsedItems, clickedItem);\n }\n }\n\n handleSubItemClick(e: CustomEvent<UDExSecondaryNavigationItemSubItemClickEventDetail>): void {\n const { originalEvent: actualOriginalEvent, index } = e.detail;\n const item = e.detail.item as UDExSecondaryNavigationSubItem;\n const { items } = item as NavItem;\n const analyticsPath = this.getAnalyticsPath(item.title, item.path);\n const isMore = this._clickedNavItem?.title === this.moreButtonText;\n const prevented = !this.fireEventItemClick(actualOriginalEvent, index, item, analyticsPath, isMore);\n\n if (prevented) {\n e.preventDefault();\n return;\n }\n\n if (this.isMobileScreen && !items) {\n this.mobileNav.closeDropdown();\n }\n\n if (!items) {\n this.setActiveItem(this.parsedItems, item);\n this._clickedNavItem?.closeDropdown();\n }\n }\n\n handleHeadingClick(e: CustomEvent<UDExSecondaryNavigationHeadingClickEventDetail>): void {\n this.fireDecoratorEvent(\"heading-click\", {\n analyticsName: AnalyticsName.HeaderSub,\n sourceNode: e.target as HTMLElement,\n originalEvent: e,\n });\n }\n\n fireEventItemClick(\n e: PointerEvent | KeyboardEvent,\n clickedIndex: number,\n {\n items, target, path, title, active, mobileLinkTitle,\n }: NavItem,\n analyticsPath: Array<string> = [],\n isMore: boolean = false,\n ): boolean {\n return this.fireDecoratorEvent(\"item-click\", {\n ...(this.isMobileScreen && { isMobile: true }),\n ...(isMore && { isMore: true }),\n analyticsName: AnalyticsName.HeaderSub,\n analyticsPath,\n sourceNode: e?.currentTarget as HTMLElement,\n originalEvent: e,\n clickedItem: {\n mobileLinkTitle: mobileLinkTitle || \"\",\n path: path || \"\",\n active: active || false,\n items: items || [],\n target,\n title,\n },\n clickedIndex,\n });\n }\n\n getAnalyticsPath(clickedTitle: string, clickedPath?: string): Array<string> {\n const getLabel = (item: NavItem) => (this.isMobileScreen ? (item.mobileLinkTitle || item.title) : item.title);\n const findPath = (items: Array<NavItem>, parentPath: Array<string>): Array<string> | null => items.reduce<Array<string> | null>((found, item) => {\n if (found !== null) {\n return found;\n }\n if (item.title === clickedTitle && (!clickedPath || item.path === clickedPath)) {\n return [...parentPath, getLabel(item)];\n }\n if (item.items?.length) {\n return findPath(item.items, [...parentPath, getLabel(item)]);\n }\n return null;\n }, null);\n return findPath(this.parsedItems, []) || [];\n }\n\n setActiveItem(navItems: Array<NavItem>, clickedItem: UDExSecondaryNavigationItemBase): void {\n const updateNav = (items: Array<NavItem>, { title, path }: UDExSecondaryNavigationItemBase): boolean => {\n let hasActiveDescendant = false;\n\n items.forEach(item => {\n if (item.title === title && (item.path === path || !item.path)) {\n item.active = true;\n hasActiveDescendant = true;\n return;\n }\n\n if (item.items) {\n const childIsActive = updateNav(item.items, clickedItem);\n if (childIsActive) {\n item.active = true;\n hasActiveDescendant = true;\n } else {\n delete item.active;\n }\n } else {\n delete item.active;\n }\n });\n\n return hasActiveDescendant;\n };\n\n updateNav(navItems, clickedItem);\n this.navItems = JSON.stringify(navItems);\n }\n\n handleMobileMenuOpenerClick(e: CustomEvent): void {\n this.fireDecoratorEvent(\"mobile-menu-opener-click\", {\n analyticsName: AnalyticsName.HeaderSub,\n sourceNode: e.target as HTMLElement,\n originalEvent: e,\n });\n }\n\n handleOutsideClick(): void {\n document.addEventListener(\"click\", this.outsideClickListener);\n }\n\n outsideClickListener = (e: MouseEvent): void => {\n if (this.isMobileScreen && !e.composedPath().includes(this)) {\n this.closeMobileDropdown();\n return;\n }\n\n if (this.isDesktopScreen) {\n this.handleDesktopDropdown(e);\n }\n };\n\n handleMobileButtonsClick(): void {\n this.closeMobileDropdown();\n }\n\n closeMobileDropdown(): void {\n this.mobileNav?.closeDropdown();\n }\n\n handleDesktopDropdown(e: MouseEvent): void {\n const isClickedNavItem = e.composedPath().includes(this._clickedNavItem);\n if (!isClickedNavItem && this._clickedNavItem) {\n this._clickedNavItem.closeDropdown();\n }\n }\n\n closePrevDropdown(clickedItemId: string): void {\n this.domNavItems.forEach(item => {\n if (item.isOpen && item._id !== clickedItemId) {\n item.closeDropdown();\n }\n });\n }\n\n get domNavItems(): Array<UDExSecondaryNavigationItem> {\n const items = this.shadowRoot?.querySelectorAll<UDExSecondaryNavigationItem>(\"[udex-secondary-navigation-item]\");\n return items ? Array.from(items) : [];\n }\n\n get rootHolder(): HTMLElement {\n return (this.shadowRoot ? this.shadowRoot.querySelector<HTMLElement>(\".udex-secondary-navigation__root\") : undefined)!;\n }\n\n get headingHolder(): HTMLElement {\n return (this.shadowRoot ? this.shadowRoot.querySelector<HTMLElement>(\".udex-secondary-navigation__heading\") : undefined)!;\n }\n\n get mobileNav(): UDExSecondaryNavigationItem {\n return (this.shadowRoot ? this.shadowRoot.querySelector<UDExSecondaryNavigationItem>(\".udex-secondary-navigation__mobile-nav\") : undefined)!;\n }\n\n get optionalButtons(): HTMLElement | null | undefined {\n return this.shadowRoot?.querySelector<HTMLElement>(\".udex-secondary-navigation__buttons\");\n }\n\n get moreButtonText(): string {\n return translate(UDExSecondaryNavigation, MORE);\n }\n\n get parsedItems(): Array<NavItem> {\n return parseArrayFromString<NavItem>(this.navItems);\n }\n\n get visibleItems(): Array<NavItem> {\n return this.isDesktopScreen ? this._visibleItems : this.parsedItems;\n }\n\n get hasBreadcrumbsSlot(): boolean {\n return !!this.getSlottedNodes(\"breadcrumbs\").length && this.isDesktopScreen;\n }\n\n get rootClass(): string {\n return `${rootClass} ${this.hasBreadcrumbsSlot ? \"\" : `${rootClass}_centered`}`.trim();\n }\n\n get hasDesktopButtonsSlot(): boolean {\n return this.hasButtons && this.isDesktopScreen;\n }\n\n get hasMobileButtonsSlot(): boolean {\n return this.hasButtons && this.isMobileScreen;\n }\n\n get hasButtons(): boolean {\n return !!this.getSlottedNodes(\"buttons\").length;\n }\n\n get isDesktopScreen(): boolean {\n return BreakpointUtils.isAtLeast(\"M\");\n }\n\n get isMobileScreen(): boolean {\n return BreakpointUtils.isAtMost(\"S\");\n }\n}\n\nUDExSecondaryNavigation.define();\n\nexport default UDExSecondaryNavigation;\nexport type {\n UDExSecondaryNavigationClickEventDetail,\n UDExSecondaryNavigationHeadingClickEventDetail,\n UDExSecondaryNavigationMobileMenuOpenerClickEventDetail,\n};\n"]}
|
|
@@ -3,7 +3,6 @@ import type { RelativeValue } from "./utils/parseRelativeUnits.js";
|
|
|
3
3
|
import UDExSecondaryNavigationSubItem from "./SecondaryNavigationSubItem.js";
|
|
4
4
|
import type { NavItem } from "./SecondaryNavigationItemBase.js";
|
|
5
5
|
import UDExSecondaryNavigationItemBase from "./SecondaryNavigationItemBase.js";
|
|
6
|
-
import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
|
|
7
6
|
type UDExSecondaryNavigationItemClickEventDetail = {
|
|
8
7
|
item: HTMLElement;
|
|
9
8
|
index: number;
|