@sapudex/web-components 2.42.0 → 2.44.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/Checkbox.cy.tsx +1 -1
- package/cypress/specs/FilterMenu.cy.tsx +277 -0
- package/cypress/specs/Search.cy.tsx +20 -0
- package/cypress/specs/SelectBox.cy.tsx +531 -1
- package/cypress/specs/TagGroup.cy.tsx +11 -0
- package/cypress/specs/Toast.cy.tsx +6 -9
- package/dist/FilterMenu.d.ts +4 -0
- package/dist/FilterMenu.js +19 -0
- package/dist/FilterMenu.js.map +1 -1
- package/dist/ListItemBase.js +2 -2
- package/dist/ListItemBase.js.map +1 -1
- package/dist/MastheadCountrySelector.d.ts +5 -7
- package/dist/MastheadCountrySelector.js +17 -64
- package/dist/MastheadCountrySelector.js.map +1 -1
- package/dist/Search.d.ts +6 -0
- package/dist/Search.js +3 -0
- package/dist/Search.js.map +1 -1
- package/dist/SearchTemplate.js +1 -1
- package/dist/SearchTemplate.js.map +1 -1
- package/dist/SearchableListBase.d.ts +21 -2
- package/dist/SearchableListBase.js +75 -7
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SearchableListBaseTemplate.js +3 -3
- package/dist/SearchableListBaseTemplate.js.map +1 -1
- package/dist/SelectBase.d.ts +3 -1
- package/dist/SelectBase.js +20 -15
- package/dist/SelectBase.js.map +1 -1
- package/dist/SelectBox.d.ts +1 -1
- package/dist/SelectBox.js +17 -13
- package/dist/SelectBox.js.map +1 -1
- package/dist/SelectBoxItem.d.ts +53 -0
- package/dist/SelectBoxItem.js +40 -1
- package/dist/SelectBoxItem.js.map +1 -1
- package/dist/SelectBoxTemplate.js +1 -1
- package/dist/SelectBoxTemplate.js.map +1 -1
- package/dist/Tag.d.ts +1 -0
- package/dist/Tag.js +6 -0
- package/dist/Tag.js.map +1 -1
- package/dist/TagGroup.d.ts +8 -0
- package/dist/TagGroup.js +3 -0
- package/dist/TagGroup.js.map +1 -1
- package/dist/TagGroupTemplate.js +1 -1
- package/dist/TagGroupTemplate.js.map +1 -1
- package/dist/TagTemplate.js +1 -1
- package/dist/TagTemplate.js.map +1 -1
- package/dist/assets/{InputSuggestions-DVRXb_CJ.js → InputSuggestions-B3D8lxAS.js} +2 -2
- package/dist/assets/ListItemStandardExpandableTextTemplate-Is8_hDTt.js +3 -0
- package/dist/assets/{bundle.esm-CjF11YUZ.js → bundle.esm-6rH7NAG7.js} +305 -304
- package/dist/assets/messagebundle_ar-BUmieu9B.js +1 -0
- package/dist/assets/messagebundle_ar-DcH18L3h.js +1 -0
- package/dist/assets/messagebundle_ar-Ic4ckTUt.js +1 -0
- package/dist/assets/messagebundle_bg-BOgOglXh.js +1 -0
- package/dist/assets/messagebundle_bg-CADHX0Gg.js +1 -0
- package/dist/assets/messagebundle_bg-dZrlFeKZ.js +1 -0
- package/dist/assets/messagebundle_ca-2bFyG5Ty.js +1 -0
- package/dist/assets/messagebundle_ca-B2inwHsb.js +1 -0
- package/dist/assets/messagebundle_ca-hDpK1GqB.js +1 -0
- package/dist/assets/messagebundle_cnr-CSmWG9_V.js +1 -0
- package/dist/assets/messagebundle_cnr-DZsc1R1r.js +1 -0
- package/dist/assets/messagebundle_cnr-luAWCJP0.js +1 -0
- package/dist/assets/messagebundle_cs-BL77wptv.js +1 -0
- package/dist/assets/messagebundle_cs-BZXuIszN.js +1 -0
- package/dist/assets/messagebundle_cs-Dso9kSig.js +1 -0
- package/dist/assets/messagebundle_cy-B66O9oBx.js +1 -0
- package/dist/assets/messagebundle_cy-BSiMgZtA.js +1 -0
- package/dist/assets/messagebundle_cy-ZlqQuGUz.js +1 -0
- package/dist/assets/messagebundle_da-C1CzvcXW.js +1 -0
- package/dist/assets/messagebundle_da-CAPY9nnT.js +1 -0
- package/dist/assets/messagebundle_da-DTOADw3Y.js +1 -0
- package/dist/assets/messagebundle_de-CSl05u5u.js +1 -0
- package/dist/assets/messagebundle_de-DHBsUEIt.js +1 -0
- package/dist/assets/messagebundle_de-DWsuh-jj.js +1 -0
- package/dist/assets/messagebundle_el-ByL7ikpl.js +1 -0
- package/dist/assets/messagebundle_el-CwjQKEGb.js +1 -0
- package/dist/assets/messagebundle_el-rU4RAHJr.js +1 -0
- package/dist/assets/messagebundle_en-4Wpx2jqf.js +1 -0
- package/dist/assets/messagebundle_en-Bi068VCa.js +1 -0
- package/dist/assets/messagebundle_en-C3jnlBnZ.js +1 -0
- package/dist/assets/messagebundle_en_GB-BEZ3LbT5.js +1 -0
- package/dist/assets/messagebundle_en_GB-DKEddq_J.js +1 -0
- package/dist/assets/messagebundle_en_GB-DgUUCHvU.js +1 -0
- package/dist/assets/messagebundle_en_US_sappsd-BN4GAQFk.js +1 -0
- package/dist/assets/messagebundle_en_US_sappsd-Bc-vQnEr.js +1 -0
- package/dist/assets/messagebundle_en_US_sappsd-CEGC_XRQ.js +1 -0
- package/dist/assets/messagebundle_en_US_saprigi--hAUIdWq.js +1 -0
- package/dist/assets/messagebundle_en_US_saprigi-C7t8yAP4.js +1 -0
- package/dist/assets/messagebundle_en_US_saprigi-C_gnMw05.js +1 -0
- package/dist/assets/messagebundle_en_US_saptrc-CIbQNg_d.js +1 -0
- package/dist/assets/messagebundle_en_US_saptrc-DY0WM5Yp.js +1 -0
- package/dist/assets/messagebundle_en_US_saptrc-aeJaPF-Z.js +1 -0
- package/dist/assets/messagebundle_es-BHY_U2xi.js +1 -0
- package/dist/assets/messagebundle_es-CjAQjgPh.js +1 -0
- package/dist/assets/messagebundle_es-vhzI0nML.js +1 -0
- package/dist/assets/messagebundle_es_MX-BsU5E2lt.js +1 -0
- package/dist/assets/messagebundle_es_MX-DjJ15Ns4.js +1 -0
- package/dist/assets/messagebundle_es_MX-DmINMi1e.js +1 -0
- package/dist/assets/messagebundle_et-CGVYNV2t.js +1 -0
- package/dist/assets/messagebundle_et-CpVk1Xin.js +1 -0
- package/dist/assets/messagebundle_et-DLssZHh4.js +1 -0
- package/dist/assets/messagebundle_fi-DTWy4DwI.js +1 -0
- package/dist/assets/messagebundle_fi-DmGIB0sc.js +1 -0
- package/dist/assets/messagebundle_fi-YfxQ0aOR.js +1 -0
- package/dist/assets/messagebundle_fr-BFMaF4AX.js +1 -0
- package/dist/assets/messagebundle_fr-BZ-VJ002.js +1 -0
- package/dist/assets/messagebundle_fr-CQZYkI8Y.js +1 -0
- package/dist/assets/messagebundle_fr_CA-B5jFryz1.js +1 -0
- package/dist/assets/messagebundle_fr_CA-BPZVCoKy.js +1 -0
- package/dist/assets/messagebundle_fr_CA-hZ2LGeU2.js +1 -0
- package/dist/assets/messagebundle_hi-92qX3F1U.js +1 -0
- package/dist/assets/messagebundle_hi-B-Bg9gCp.js +1 -0
- package/dist/assets/messagebundle_hi-DFXk6QGw.js +1 -0
- package/dist/assets/messagebundle_hr-CUaLQBjG.js +1 -0
- package/dist/assets/messagebundle_hr-DZwNzpwV.js +1 -0
- package/dist/assets/messagebundle_hr-selqadPV.js +1 -0
- package/dist/assets/messagebundle_hu-BtupF5BC.js +1 -0
- package/dist/assets/messagebundle_hu-CJuQbTfi.js +1 -0
- package/dist/assets/messagebundle_hu-D_rF_cCp.js +1 -0
- package/dist/assets/messagebundle_id-8SuSwuaC.js +1 -0
- package/dist/assets/messagebundle_id-Bvmpblmf.js +1 -0
- package/dist/assets/messagebundle_id-P3JSHcmu.js +1 -0
- package/dist/assets/messagebundle_it-BINon06x.js +1 -0
- package/dist/assets/messagebundle_it-CXnIcrL4.js +1 -0
- package/dist/assets/messagebundle_it-CkVp56-y.js +1 -0
- package/dist/assets/messagebundle_iw-BzixLMjm.js +1 -0
- package/dist/assets/messagebundle_iw-C2PtOYbW.js +1 -0
- package/dist/assets/messagebundle_iw-Cb6M5XGj.js +1 -0
- package/dist/assets/messagebundle_ja-DKtRR53-.js +1 -0
- package/dist/assets/messagebundle_ja-DQ5MCYLw.js +1 -0
- package/dist/assets/messagebundle_ja-J8eqPj7N.js +1 -0
- package/dist/assets/messagebundle_kk-B-ayCgR1.js +1 -0
- package/dist/assets/messagebundle_kk-BIeQLfxu.js +1 -0
- package/dist/assets/messagebundle_kk-DIOzUeHN.js +1 -0
- package/dist/assets/messagebundle_ko-B9_Ss1b5.js +1 -0
- package/dist/assets/messagebundle_ko-BLMVyKh5.js +1 -0
- package/dist/assets/messagebundle_ko-iA71apTw.js +1 -0
- package/dist/assets/messagebundle_lt-CbB2wq2X.js +1 -0
- package/dist/assets/messagebundle_lt-DFh-jl0O.js +1 -0
- package/dist/assets/messagebundle_lt-RzsUvi_1.js +1 -0
- package/dist/assets/messagebundle_lv-6quK3a4e.js +1 -0
- package/dist/assets/messagebundle_lv-BQO-79MM.js +1 -0
- package/dist/assets/messagebundle_lv-C3DWg_wu.js +1 -0
- package/dist/assets/messagebundle_mk-2lJhEAgI.js +1 -0
- package/dist/assets/messagebundle_mk-Cv-rDpUc.js +1 -0
- package/dist/assets/messagebundle_mk-o-SATTof.js +1 -0
- package/dist/assets/messagebundle_ms-3Zupz0mA.js +1 -0
- package/dist/assets/messagebundle_ms-BOQc8ZIR.js +1 -0
- package/dist/assets/messagebundle_ms-DnacCQys.js +1 -0
- package/dist/assets/messagebundle_nl-BVNQuB_K.js +1 -0
- package/dist/assets/messagebundle_nl-C2lsDY4p.js +1 -0
- package/dist/assets/messagebundle_nl-DTnHMKsv.js +1 -0
- package/dist/assets/messagebundle_no-BQMw-opH.js +1 -0
- package/dist/assets/messagebundle_no-CsErf2Px.js +1 -0
- package/dist/assets/messagebundle_no-OUP0Fraw.js +1 -0
- package/dist/assets/messagebundle_pl-BQW6qi8p.js +1 -0
- package/dist/assets/messagebundle_pl-Cc6OWGyn.js +1 -0
- package/dist/assets/messagebundle_pl-PZiQh0Xy.js +1 -0
- package/dist/assets/messagebundle_pt-BlqCbnEN.js +1 -0
- package/dist/assets/messagebundle_pt-DEVzhHU_.js +1 -0
- package/dist/assets/messagebundle_pt-DKJk4Ohl.js +1 -0
- package/dist/assets/messagebundle_pt_PT-BV1ec-3v.js +1 -0
- package/dist/assets/messagebundle_pt_PT-CL5hgi4Q.js +1 -0
- package/dist/assets/messagebundle_pt_PT-DekHH4S1.js +1 -0
- package/dist/assets/messagebundle_ro-D3lrScIy.js +1 -0
- package/dist/assets/messagebundle_ro-fp3znc96.js +1 -0
- package/dist/assets/messagebundle_ro-mHJ-r7ez.js +1 -0
- package/dist/assets/messagebundle_ru-BD3A7Zsx.js +1 -0
- package/dist/assets/messagebundle_ru-BTDmH8CB.js +1 -0
- package/dist/assets/messagebundle_ru-CJECAckd.js +1 -0
- package/dist/assets/messagebundle_ru-D7z2G7DP.js +1 -0
- package/dist/assets/messagebundle_sh-BoaW1EWP.js +1 -0
- package/dist/assets/messagebundle_sh-C4BjzhRr.js +1 -0
- package/dist/assets/messagebundle_sh-DXM15u1O.js +1 -0
- package/dist/assets/messagebundle_sk-Bjnhb-_D.js +1 -0
- package/dist/assets/messagebundle_sk-BxDvjXxb.js +1 -0
- package/dist/assets/messagebundle_sk-Clc7AaEc.js +1 -0
- package/dist/assets/messagebundle_sk-Lb4jvtpc.js +1 -0
- package/dist/assets/messagebundle_sl-BZi2bKSy.js +1 -0
- package/dist/assets/messagebundle_sl-Bi9mgI6m.js +1 -0
- package/dist/assets/messagebundle_sl-Bn5tocYe.js +1 -0
- package/dist/assets/messagebundle_sl-DJj-8V96.js +1 -0
- package/dist/assets/messagebundle_sr-B9TYgxO1.js +1 -0
- package/dist/assets/messagebundle_sr-Dsio4Srd.js +1 -0
- package/dist/assets/messagebundle_sr-SCdbG5fp.js +1 -0
- package/dist/assets/messagebundle_sr-w0tnyPzk.js +1 -0
- package/dist/assets/messagebundle_sv-B-KDauoz.js +1 -0
- package/dist/assets/messagebundle_sv-DCsGSCfn.js +1 -0
- package/dist/assets/messagebundle_sv-DQ0kE9XJ.js +1 -0
- package/dist/assets/messagebundle_sv-DWlY9RTQ.js +1 -0
- package/dist/assets/messagebundle_th-BmHTcbhR.js +1 -0
- package/dist/assets/messagebundle_th-D8qcTN_b.js +1 -0
- package/dist/assets/messagebundle_th-rPoqCsGu.js +1 -0
- package/dist/assets/messagebundle_tr-CyN3jcUR.js +1 -0
- package/dist/assets/messagebundle_tr-DIqpdL9d.js +1 -0
- package/dist/assets/{messagebundle_tr-CKXLfeIL.js → messagebundle_tr-Dw7toCgs.js} +1 -1
- package/dist/assets/messagebundle_uk-C7_nVJ9T.js +1 -0
- package/dist/assets/messagebundle_uk-CycQpntH.js +1 -0
- package/dist/assets/messagebundle_uk-L4kmWPZY.js +1 -0
- package/dist/assets/messagebundle_vi-CKYiMebw.js +1 -0
- package/dist/assets/messagebundle_vi-D1-iiI56.js +1 -0
- package/dist/assets/messagebundle_vi-wJJaYHj7.js +1 -0
- package/dist/assets/messagebundle_zh_CN-CIR_auXr.js +1 -0
- package/dist/assets/messagebundle_zh_CN-D3UfRQq7.js +1 -0
- package/dist/assets/messagebundle_zh_CN-Dv1_J1hu.js +1 -0
- package/dist/assets/messagebundle_zh_TW-CG9O1F7p.js +1 -0
- package/dist/assets/messagebundle_zh_TW-CQChC5zV.js +1 -0
- package/dist/assets/{messagebundle_zh_TW-Bok4mzbM.js → messagebundle_zh_TW-qc8ADbuf.js} +1 -1
- package/dist/assets/{parameters-bundle.css-B89Fdm1T.js → parameters-bundle.css-1rRun2sT.js} +8 -0
- package/dist/assets/parameters-bundle.css-BA_cQYjH.js +2 -0
- package/dist/assets/parameters-bundle.css-BBLk8nbD.js +3 -0
- package/dist/assets/{parameters-bundle.css-BRUthQQI.js → parameters-bundle.css-BBdTemt8.js} +15 -15
- package/dist/assets/parameters-bundle.css-BCB-2TTY.js +2 -0
- package/dist/assets/parameters-bundle.css-BQB0pxRT.js +2 -0
- package/dist/assets/parameters-bundle.css-BVXLOlqR.js +2 -0
- package/dist/assets/parameters-bundle.css-B_rCq3Nc.js +3 -0
- package/dist/assets/{parameters-bundle.css-BWPCcnui.js → parameters-bundle.css-BiSP-Gf0.js} +10 -2
- package/dist/assets/parameters-bundle.css-C90ijvPq.js +2 -0
- package/dist/assets/{parameters-bundle.css-CXAGQb2_.js → parameters-bundle.css-CKNWL0nG.js} +10 -2
- package/dist/assets/parameters-bundle.css-CTIq7sCI.js +2 -0
- package/dist/assets/parameters-bundle.css-CTw0R0y7.js +2 -0
- package/dist/assets/parameters-bundle.css-CV2FCAf_.js +3 -0
- package/dist/assets/parameters-bundle.css-CWfGvXBZ.js +2 -0
- package/dist/assets/parameters-bundle.css-CX7V5RGm.js +3 -0
- package/dist/assets/parameters-bundle.css-D9AHurfl.js +2 -0
- package/dist/assets/parameters-bundle.css-DENVM9pb.js +3 -0
- package/dist/assets/parameters-bundle.css-DHLZEUsz.js +3 -0
- package/dist/assets/{parameters-bundle.css-CaKlToMx.js → parameters-bundle.css-DH_wndOj.js} +6 -6
- package/dist/assets/parameters-bundle.css-DUAp19rB.js +3 -0
- package/dist/assets/{parameters-bundle.css-Bbpzo3n0.js → parameters-bundle.css-DUGC7SPT.js} +8 -0
- package/dist/assets/parameters-bundle.css-DXuX1n-u.js +2 -0
- package/dist/assets/{parameters-bundle.css-DICk53PA.js → parameters-bundle.css-Dd5ajhZR.js} +10 -2
- package/dist/assets/parameters-bundle.css-Dp55UvXM.js +3 -0
- package/dist/assets/parameters-bundle.css-DpJfefgg.js +3 -0
- package/dist/assets/{parameters-bundle.css-DD29SCx8.js → parameters-bundle.css-DuHP0Q5Y.js} +13 -12
- package/dist/assets/parameters-bundle.css-YNYQDxyY.js +2 -0
- package/dist/assets/parameters-bundle.css-tevTlrPX.js +2 -0
- package/dist/assets/{parameters-bundle.css-DPvcwVIm.js → parameters-bundle.css-yvuwi247.js} +5 -5
- package/dist/css/themes/List.css +1 -1
- package/dist/css/themes/ListGroupHeader.css +1 -1
- package/dist/css/themes/ListItem.css +1 -1
- package/dist/css/themes/RadioButton.css +1 -1
- package/dist/css/themes/SearchableList.css +1 -1
- package/dist/css/themes/TextField.css +1 -1
- package/dist/custom-elements-internal.json +488 -0
- package/dist/custom-elements.json +494 -4
- package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.js +5 -5
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js +1 -1
- package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js.map +1 -1
- package/dist/generated/themes/List.css.d.ts +1 -1
- package/dist/generated/themes/List.css.js +1 -1
- package/dist/generated/themes/List.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/ListItem.css.d.ts +1 -1
- package/dist/generated/themes/ListItem.css.js +1 -1
- package/dist/generated/themes/ListItem.css.js.map +1 -1
- package/dist/generated/themes/RadioButton.css.d.ts +1 -1
- package/dist/generated/themes/RadioButton.css.js +1 -1
- package/dist/generated/themes/RadioButton.css.js.map +1 -1
- package/dist/generated/themes/SearchableList.css.d.ts +1 -1
- package/dist/generated/themes/SearchableList.css.js +1 -1
- package/dist/generated/themes/SearchableList.css.js.map +1 -1
- package/dist/generated/themes/TextField.css.d.ts +1 -1
- package/dist/generated/themes/TextField.css.js +1 -1
- package/dist/generated/themes/TextField.css.js.map +1 -1
- package/dist/messagebundle_ru.properties +128 -0
- package/dist/messagebundle_sk.properties +125 -0
- package/dist/messagebundle_sl.properties +126 -1
- package/dist/messagebundle_sr.properties +128 -0
- package/dist/messagebundle_sv.properties +126 -0
- package/dist/vscode.html-custom-data.json +122 -0
- package/dist/web-types.json +187 -1
- package/package.json +8 -8
- package/src/FilterMenu.ts +23 -0
- package/src/ListGroupHeader.hbs +4 -4
- package/src/ListItemBase.ts +2 -2
- package/src/MastheadCountrySelector.hbs +1 -1
- package/src/MastheadCountrySelector.ts +20 -80
- package/src/Search.ts +9 -0
- package/src/SearchTemplate.tsx +1 -0
- package/src/SearchableListBase.ts +76 -8
- package/src/SearchableListBaseTemplate.tsx +13 -1
- package/src/SelectBase.ts +23 -16
- package/src/SelectBox.ts +19 -14
- package/src/SelectBoxItem.ts +70 -1
- package/src/SelectBoxTemplate.tsx +1 -1
- package/src/Tag.ts +8 -0
- package/src/TagGroup.ts +10 -0
- package/src/TagGroupTemplate.tsx +1 -0
- package/src/TagTemplate.tsx +1 -0
- package/src/generated/templates/ListGroupHeaderTemplate.lit.ts +4 -4
- package/src/generated/templates/MastheadCountrySelectorTemplate.lit.ts +1 -1
- package/src/generated/themes/List.css.ts +1 -1
- package/src/generated/themes/ListGroupHeader.css.ts +1 -1
- package/src/generated/themes/ListItem.css.ts +1 -1
- package/src/generated/themes/RadioButton.css.ts +1 -1
- package/src/generated/themes/SearchableList.css.ts +1 -1
- package/src/generated/themes/TextField.css.ts +1 -1
- package/src/i18n/messagebundle_ru.properties +128 -0
- package/src/i18n/messagebundle_sk.properties +125 -0
- package/src/i18n/messagebundle_sl.properties +126 -1
- package/src/i18n/messagebundle_sr.properties +128 -0
- package/src/i18n/messagebundle_sv.properties +126 -0
- package/src/themes/List.css +1 -2
- package/src/themes/ListGroupHeader.css +10 -12
- package/src/themes/ListItem.css +4 -0
- package/src/themes/RadioButton.css +9 -6
- package/src/themes/SearchableList.css +0 -1
- package/src/themes/TextField.css +2 -1
- package/dist/assets/ListItemStandardExpandableTextTemplate-DhmGlKzk.js +0 -3
- package/dist/assets/messagebundle_ar-B_vGELqE.js +0 -1
- package/dist/assets/messagebundle_ar-ql9y8H7i.js +0 -1
- package/dist/assets/messagebundle_bg-DahjEq9-.js +0 -1
- package/dist/assets/messagebundle_bg-DirTSiBs.js +0 -1
- package/dist/assets/messagebundle_ca-CLoGjgOQ.js +0 -1
- package/dist/assets/messagebundle_ca-Dt0eXv4b.js +0 -1
- package/dist/assets/messagebundle_cnr-CIT4FdxK.js +0 -1
- package/dist/assets/messagebundle_cnr-DcKjQBC2.js +0 -1
- package/dist/assets/messagebundle_cs-D6Ept3aZ.js +0 -1
- package/dist/assets/messagebundle_cs-JybtcHQz.js +0 -1
- package/dist/assets/messagebundle_cy-CBJcBetc.js +0 -1
- package/dist/assets/messagebundle_cy-D6EaO2mc.js +0 -1
- package/dist/assets/messagebundle_da-DP_Ld_m4.js +0 -1
- package/dist/assets/messagebundle_da-DXFv9LbY.js +0 -1
- package/dist/assets/messagebundle_de-C6CVo61I.js +0 -1
- package/dist/assets/messagebundle_de-De1WNx1Z.js +0 -1
- package/dist/assets/messagebundle_el-DjFg6Pxj.js +0 -1
- package/dist/assets/messagebundle_el-x7EAub0z.js +0 -1
- package/dist/assets/messagebundle_en-52Fg7l8z.js +0 -1
- package/dist/assets/messagebundle_en-CAn74huH.js +0 -1
- package/dist/assets/messagebundle_en_GB-BNvEFdpW.js +0 -1
- package/dist/assets/messagebundle_en_GB-mPq0tjYl.js +0 -1
- package/dist/assets/messagebundle_en_US_sappsd-BJo2KiPa.js +0 -1
- package/dist/assets/messagebundle_en_US_sappsd-DynRbkUr.js +0 -1
- package/dist/assets/messagebundle_en_US_saprigi-BQWYyoHW.js +0 -1
- package/dist/assets/messagebundle_en_US_saprigi-D92s1ZRa.js +0 -1
- package/dist/assets/messagebundle_en_US_saptrc-B2DXKZNZ.js +0 -1
- package/dist/assets/messagebundle_en_US_saptrc-hfAEC4kd.js +0 -1
- package/dist/assets/messagebundle_es-BwPFGD9Z.js +0 -1
- package/dist/assets/messagebundle_es-jLk5s13n.js +0 -1
- package/dist/assets/messagebundle_es_MX-C4GAmGhU.js +0 -1
- package/dist/assets/messagebundle_es_MX-D8t2Deqr.js +0 -1
- package/dist/assets/messagebundle_et-BTaXAVVc.js +0 -1
- package/dist/assets/messagebundle_et-Bjo0Et5r.js +0 -1
- package/dist/assets/messagebundle_fi-ChYfzxXr.js +0 -1
- package/dist/assets/messagebundle_fi-CntiBCQA.js +0 -1
- package/dist/assets/messagebundle_fr-BdRWqZJC.js +0 -1
- package/dist/assets/messagebundle_fr-CaZExNBp.js +0 -1
- package/dist/assets/messagebundle_fr_CA-BKRP61J_.js +0 -1
- package/dist/assets/messagebundle_fr_CA-DAzfdGd5.js +0 -1
- package/dist/assets/messagebundle_hi-BcOtK4GQ.js +0 -1
- package/dist/assets/messagebundle_hi-C7UcqZdw.js +0 -1
- package/dist/assets/messagebundle_hr-BLF-FOD0.js +0 -1
- package/dist/assets/messagebundle_hr-Dk6M01RL.js +0 -1
- package/dist/assets/messagebundle_hu-DpIoRnup.js +0 -1
- package/dist/assets/messagebundle_hu-VbDHbZG7.js +0 -1
- package/dist/assets/messagebundle_id-DIBxH6fi.js +0 -1
- package/dist/assets/messagebundle_id-lZaxXrdJ.js +0 -1
- package/dist/assets/messagebundle_it-BhsMY7So.js +0 -1
- package/dist/assets/messagebundle_it-DG7xbfea.js +0 -1
- package/dist/assets/messagebundle_iw-Cc803Nmd.js +0 -1
- package/dist/assets/messagebundle_iw-O_evnbhY.js +0 -1
- package/dist/assets/messagebundle_ja-BQJaLzhD.js +0 -1
- package/dist/assets/messagebundle_ja-DA6u0p66.js +0 -1
- package/dist/assets/messagebundle_kk-D5CooIqJ.js +0 -1
- package/dist/assets/messagebundle_kk-DNvxdh_N.js +0 -1
- package/dist/assets/messagebundle_ko-D8xqECx2.js +0 -1
- package/dist/assets/messagebundle_ko-wbi_wfM_.js +0 -1
- package/dist/assets/messagebundle_lt-DpI4T_Fm.js +0 -1
- package/dist/assets/messagebundle_lt-ln5fzwxi.js +0 -1
- package/dist/assets/messagebundle_lv-CYWgsGbN.js +0 -1
- package/dist/assets/messagebundle_lv-l0vb-OwI.js +0 -1
- package/dist/assets/messagebundle_mk-DIl_j3HQ.js +0 -1
- package/dist/assets/messagebundle_mk-t_B9kLHP.js +0 -1
- package/dist/assets/messagebundle_ms-BFy7Zha3.js +0 -1
- package/dist/assets/messagebundle_ms-DZQm3zbR.js +0 -1
- package/dist/assets/messagebundle_nl-C1aSfvr4.js +0 -1
- package/dist/assets/messagebundle_nl-TRrPBmQF.js +0 -1
- package/dist/assets/messagebundle_no-CLhgj0EG.js +0 -1
- package/dist/assets/messagebundle_no-aR0S5fgl.js +0 -1
- package/dist/assets/messagebundle_pl-BSUgMNBu.js +0 -1
- package/dist/assets/messagebundle_pl-CET5Ib58.js +0 -1
- package/dist/assets/messagebundle_pt-BbXdBcA1.js +0 -1
- package/dist/assets/messagebundle_pt-DkZyB3LQ.js +0 -1
- package/dist/assets/messagebundle_pt_PT-C_oLd5Iw.js +0 -1
- package/dist/assets/messagebundle_pt_PT-DCKLQCBx.js +0 -1
- package/dist/assets/messagebundle_ro-CsDFuVns.js +0 -1
- package/dist/assets/messagebundle_ro-D2wg4wzH.js +0 -1
- package/dist/assets/messagebundle_ru-BT7zyn7i.js +0 -1
- package/dist/assets/messagebundle_ru-C2C4gC1g.js +0 -1
- package/dist/assets/messagebundle_ru-DE3o7RU0.js +0 -1
- package/dist/assets/messagebundle_sh-B7wYluE7.js +0 -1
- package/dist/assets/messagebundle_sh-DKD7IPLY.js +0 -1
- package/dist/assets/messagebundle_sk-BqNiKvir.js +0 -1
- package/dist/assets/messagebundle_sk-CQANpP_i.js +0 -1
- package/dist/assets/messagebundle_sk-gmWb_4Wo.js +0 -1
- package/dist/assets/messagebundle_sl-B4p3OqyZ.js +0 -1
- package/dist/assets/messagebundle_sl-D-C5Ql-U.js +0 -1
- package/dist/assets/messagebundle_sl-Dg8gsTrL.js +0 -1
- package/dist/assets/messagebundle_sr-BrfbPkvb.js +0 -1
- package/dist/assets/messagebundle_sr-CiPp4mnW.js +0 -1
- package/dist/assets/messagebundle_sr-D8Lxl5cz.js +0 -1
- package/dist/assets/messagebundle_sv-DCluCru8.js +0 -1
- package/dist/assets/messagebundle_sv-DZNyuq7Z.js +0 -1
- package/dist/assets/messagebundle_sv-Ip_fKK1p.js +0 -1
- package/dist/assets/messagebundle_th-DwzFsAOp.js +0 -1
- package/dist/assets/messagebundle_th-HY1lYjoi.js +0 -1
- package/dist/assets/messagebundle_tr-B-M7HjSs.js +0 -1
- package/dist/assets/messagebundle_uk-Bh3hLYnV.js +0 -1
- package/dist/assets/messagebundle_uk-gYNrr26j.js +0 -1
- package/dist/assets/messagebundle_vi-CmDSDhxv.js +0 -1
- package/dist/assets/messagebundle_vi-yAL9JrWb.js +0 -1
- package/dist/assets/messagebundle_zh_CN-DOWro3p4.js +0 -1
- package/dist/assets/messagebundle_zh_CN-DRPasXpL.js +0 -1
- package/dist/assets/messagebundle_zh_TW-DCsIDAoN.js +0 -1
- package/dist/assets/parameters-bundle.css-B-LoL5pn.js +0 -2
- package/dist/assets/parameters-bundle.css-B44zldkY.js +0 -2
- package/dist/assets/parameters-bundle.css-B9cNNkge.js +0 -2
- package/dist/assets/parameters-bundle.css-BM3cv0NX.js +0 -3
- package/dist/assets/parameters-bundle.css-BaYJ1Sh3.js +0 -3
- package/dist/assets/parameters-bundle.css-BnDd81m-.js +0 -2
- package/dist/assets/parameters-bundle.css-Bpp5SPIo.js +0 -2
- package/dist/assets/parameters-bundle.css-BxF9_xcQ.js +0 -3
- package/dist/assets/parameters-bundle.css-CIS8Sge3.js +0 -2
- package/dist/assets/parameters-bundle.css-CkZZXcub.js +0 -3
- package/dist/assets/parameters-bundle.css-CqlwqyiK.js +0 -3
- package/dist/assets/parameters-bundle.css-D5iBjAlb.js +0 -2
- package/dist/assets/parameters-bundle.css-DFLKYdpf.js +0 -3
- package/dist/assets/parameters-bundle.css-Df8B8yQY.js +0 -2
- package/dist/assets/parameters-bundle.css-DfFxBNVP.js +0 -3
- package/dist/assets/parameters-bundle.css-DgrQXZRd.js +0 -2
- package/dist/assets/parameters-bundle.css-Dt5cIEI8.js +0 -2
- package/dist/assets/parameters-bundle.css-Wj-Qo16j.js +0 -3
- package/dist/assets/parameters-bundle.css-X9m6S2In.js +0 -2
- package/dist/assets/parameters-bundle.css-defUEOJD.js +0 -2
- package/dist/assets/parameters-bundle.css-oytHmScC.js +0 -3
|
@@ -8,9 +8,6 @@ import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
|
8
8
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
9
9
|
import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
|
|
10
10
|
import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
|
|
11
|
-
import {
|
|
12
|
-
isEnd, isHome, isTabNext, isTabPrevious,
|
|
13
|
-
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
14
11
|
import UDExMastheadMenuItem from "./MastheadMenuItem.js";
|
|
15
12
|
import UDExSearch, { Mode as UDExSearchMode } from "./Search.js";
|
|
16
13
|
import MastheadCountrySelectorTemplate from "./generated/templates/MastheadCountrySelectorTemplate.lit.js";
|
|
@@ -238,6 +235,7 @@ class UDExMastheadCountrySelector extends UI5Element {
|
|
|
238
235
|
_mastheadShell!: UDExMastheadShell;
|
|
239
236
|
_countriesListHolderClassName = "udex-masthead-country-selector__list-wrap";
|
|
240
237
|
_itemClassName = "udex-masthead-country-selector__item";
|
|
238
|
+
_boundHandleActiveRegionClose!: () => void;
|
|
241
239
|
|
|
242
240
|
@i18n("@sapudex/web-components")
|
|
243
241
|
static i18nBundle: I18nBundle;
|
|
@@ -245,12 +243,23 @@ class UDExMastheadCountrySelector extends UI5Element {
|
|
|
245
243
|
constructor() {
|
|
246
244
|
super();
|
|
247
245
|
this._activeCountries = [];
|
|
246
|
+
this._boundHandleActiveRegionClose = this.handleActiveRegionClose.bind(this);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
onEnterDOM(): void {
|
|
250
|
+
if (isDesktop()) {
|
|
251
|
+
this.setAttribute("desktop", "");
|
|
252
|
+
}
|
|
253
|
+
this.closest("[udex-masthead-item]")?.addEventListener("dropdown-closed", this._boundHandleActiveRegionClose);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
onExitDOM(): void {
|
|
257
|
+
this.closest("[udex-masthead-item]")?.removeEventListener("dropdown-closed", this._boundHandleActiveRegionClose);
|
|
248
258
|
}
|
|
249
259
|
|
|
250
260
|
onAfterRendering(): void {
|
|
251
261
|
this._mastheadShell = this.mastheadShell;
|
|
252
262
|
this.handleFocusItem();
|
|
253
|
-
this.setTabIndexForItems();
|
|
254
263
|
this.handleOutsideClick();
|
|
255
264
|
|
|
256
265
|
if (this.isSingleMode) {
|
|
@@ -262,9 +271,11 @@ class UDExMastheadCountrySelector extends UI5Element {
|
|
|
262
271
|
}
|
|
263
272
|
}
|
|
264
273
|
|
|
265
|
-
|
|
266
|
-
if (
|
|
267
|
-
this.
|
|
274
|
+
handleActiveRegionClose(): void {
|
|
275
|
+
if (!this.isSingleMode) {
|
|
276
|
+
this.handleSearchReset();
|
|
277
|
+
this._isActiveRegionOpen = false;
|
|
278
|
+
this.setActiveRegion(null);
|
|
268
279
|
}
|
|
269
280
|
}
|
|
270
281
|
|
|
@@ -280,26 +291,6 @@ class UDExMastheadCountrySelector extends UI5Element {
|
|
|
280
291
|
}
|
|
281
292
|
}
|
|
282
293
|
|
|
283
|
-
handleKeyDown(e: KeyboardEvent): void {
|
|
284
|
-
const item = e.target as UDExMastheadMenuItem;
|
|
285
|
-
|
|
286
|
-
if (item.hasAttribute("is-nav-item")) {
|
|
287
|
-
const isFirstItem = item === this.items[0];
|
|
288
|
-
const isLastItem = item === this.items[this.items.length - 1];
|
|
289
|
-
|
|
290
|
-
if (isTabNext(e) && !isLastItem) {
|
|
291
|
-
e.preventDefault();
|
|
292
|
-
this.focusNextItem(item);
|
|
293
|
-
}
|
|
294
|
-
if (isTabPrevious(e) && !isFirstItem) {
|
|
295
|
-
e.preventDefault();
|
|
296
|
-
this.focusPreviousItem(item);
|
|
297
|
-
}
|
|
298
|
-
this.handleHomeKey(e);
|
|
299
|
-
this.handleEndKey(e);
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
|
|
303
294
|
handleSearch(e: CustomEvent): void {
|
|
304
295
|
const searchTerm = e.detail.value.toLowerCase().trim() as string;
|
|
305
296
|
|
|
@@ -348,9 +339,7 @@ class UDExMastheadCountrySelector extends UI5Element {
|
|
|
348
339
|
handleOutsideClick(): void {
|
|
349
340
|
document.addEventListener("mousedown", (e: Event): void => {
|
|
350
341
|
if (e.target !== this && !this.isMobile) {
|
|
351
|
-
this.
|
|
352
|
-
this._isActiveRegionOpen = false;
|
|
353
|
-
this.setActiveRegion(null);
|
|
342
|
+
this.handleActiveRegionClose();
|
|
354
343
|
}
|
|
355
344
|
});
|
|
356
345
|
}
|
|
@@ -392,50 +381,12 @@ class UDExMastheadCountrySelector extends UI5Element {
|
|
|
392
381
|
prevItem.focus({ preventScroll: true });
|
|
393
382
|
}
|
|
394
383
|
|
|
395
|
-
|
|
396
|
-
const currentIndex = (e.target as UDExMastheadMenuItem).index;
|
|
397
|
-
const lastItemIndex = this.items.length - 1;
|
|
398
|
-
const lastItem = this.items[lastItemIndex];
|
|
399
|
-
|
|
400
|
-
this.items[currentIndex]._tabIndex = "-1";
|
|
401
|
-
lastItem._tabIndex = "0";
|
|
402
|
-
lastItem.scrollIntoView({ block: "end" });
|
|
403
|
-
lastItem.focus({ preventScroll: true });
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
focusFirstItem(e: KeyboardEvent): void {
|
|
407
|
-
const currentIndex = (e.target as UDExMastheadMenuItem).index;
|
|
384
|
+
focusFirstItem(): void {
|
|
408
385
|
const firstItem = this.items[0];
|
|
409
|
-
|
|
410
|
-
this.items[currentIndex]._tabIndex = "-1";
|
|
411
386
|
firstItem._tabIndex = "0";
|
|
412
387
|
firstItem.focus();
|
|
413
388
|
}
|
|
414
389
|
|
|
415
|
-
handleEndKey(e: KeyboardEvent): void {
|
|
416
|
-
if (isEnd(e)) {
|
|
417
|
-
e.preventDefault();
|
|
418
|
-
|
|
419
|
-
if (this.isScrollableCountriesList) {
|
|
420
|
-
this.removeScrollableClassInCountryList();
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
this.focusLastItem(e);
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
handleHomeKey(e: KeyboardEvent): void {
|
|
428
|
-
if (isHome(e)) {
|
|
429
|
-
e.preventDefault();
|
|
430
|
-
|
|
431
|
-
if (this.isScrollableCountriesList) {
|
|
432
|
-
this.addScrollableClassToCountryList();
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
this.focusFirstItem(e);
|
|
436
|
-
}
|
|
437
|
-
}
|
|
438
|
-
|
|
439
390
|
handleSingleRegionMode(): void {
|
|
440
391
|
this.setActiveRegion(this.regionsData[0]);
|
|
441
392
|
this.setActiveCountries([...this.regionsData[0].countries]);
|
|
@@ -490,17 +441,6 @@ class UDExMastheadCountrySelector extends UI5Element {
|
|
|
490
441
|
this._activeCountries = countries;
|
|
491
442
|
}
|
|
492
443
|
|
|
493
|
-
setTabIndexForItems(): void {
|
|
494
|
-
this.items.forEach((item, index) => {
|
|
495
|
-
if (this._activeRegionIndex > 0 && this._shouldFocusRegionByIndex) {
|
|
496
|
-
item._tabIndex = index === this._activeRegionIndex ? "0" : "-1";
|
|
497
|
-
return;
|
|
498
|
-
}
|
|
499
|
-
|
|
500
|
-
item._tabIndex = index === 0 ? "0" : "-1";
|
|
501
|
-
});
|
|
502
|
-
}
|
|
503
|
-
|
|
504
444
|
closeMenu():void {
|
|
505
445
|
this._mastheadShell.closeMobileMenu();
|
|
506
446
|
this._mastheadShell.mobileBtn?.focus();
|
package/src/Search.ts
CHANGED
|
@@ -295,6 +295,15 @@ class UDExSearch extends UI5Element {
|
|
|
295
295
|
*/
|
|
296
296
|
@property({ type: String })
|
|
297
297
|
suggestionList!: string;
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* Sets the maximum number of characters available in the input field.
|
|
301
|
+
*
|
|
302
|
+
* @public
|
|
303
|
+
*/
|
|
304
|
+
@property({ type: Number })
|
|
305
|
+
maxlength?: number;
|
|
306
|
+
|
|
298
307
|
/**
|
|
299
308
|
* Width of the search component
|
|
300
309
|
* @private
|
package/src/SearchTemplate.tsx
CHANGED
|
@@ -189,6 +189,7 @@ function renderSearchInput(this: UDExSearch, placeholder: boolean = false) {
|
|
|
189
189
|
aria-label={this.accInfo.ariaLabel}
|
|
190
190
|
aria-describedby="search-description"
|
|
191
191
|
{...(placeholder ? { placeholder: this.effectivePlaceholder } : {})}
|
|
192
|
+
maxlength={this.maxlength}
|
|
192
193
|
value={this.value}
|
|
193
194
|
onInput={this.handleSearchChange}
|
|
194
195
|
onKeyDown={this.handleKeyDown}
|
|
@@ -5,7 +5,7 @@ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
|
5
5
|
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
6
6
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
7
7
|
import { cleanLabel } from "./utils/listItemLabelUtils.js";
|
|
8
|
-
import { UDExListMode } from "./types/List.js";
|
|
8
|
+
import { UDExListMode, UDExListStyleType } from "./types/List.js";
|
|
9
9
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
10
10
|
import type Popover from "@ui5/webcomponents/dist/Popover.js";
|
|
11
11
|
import type { UDExProcessedItem } from "./types/SearchableListBase.js";
|
|
@@ -217,6 +217,24 @@ class UDExSearchableListBase extends UI5Element {
|
|
|
217
217
|
@property()
|
|
218
218
|
mode: `${UDExListMode}` = UDExListMode.SingleSelect;
|
|
219
219
|
|
|
220
|
+
/**
|
|
221
|
+
* Defines the list style type of the dropdown items.
|
|
222
|
+
*
|
|
223
|
+
* @default "None"
|
|
224
|
+
* @public
|
|
225
|
+
*/
|
|
226
|
+
@property()
|
|
227
|
+
type: `${UDExListStyleType}` = UDExListStyleType.None;
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* Defines the name of the UI5 Icon displayed for each item. Use when type is Icon.
|
|
231
|
+
*
|
|
232
|
+
* @default ""
|
|
233
|
+
* @public
|
|
234
|
+
*/
|
|
235
|
+
@property({ type: String })
|
|
236
|
+
itemIcon: string = "";
|
|
237
|
+
|
|
220
238
|
/**
|
|
221
239
|
* Slot for items.
|
|
222
240
|
*
|
|
@@ -382,13 +400,20 @@ class UDExSearchableListBase extends UI5Element {
|
|
|
382
400
|
const { isGroup, item } = preparedItem;
|
|
383
401
|
|
|
384
402
|
if (isGroup) {
|
|
385
|
-
|
|
403
|
+
const groupHeaderMatches = this.checkAndUpdateLabel(item, str);
|
|
404
|
+
const filteredChildren = this.filterItemsForLabel(preparedItem.groupItems, str);
|
|
386
405
|
|
|
387
|
-
if (
|
|
406
|
+
if (groupHeaderMatches) {
|
|
407
|
+
preparedItem.groupItems.forEach(child => this.checkAndUpdateLabel(child, str));
|
|
408
|
+
} else {
|
|
409
|
+
preparedItem.groupItems = filteredChildren;
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
if (hasSearchQuery && (groupHeaderMatches || preparedItem.groupItems.length > 0)) {
|
|
388
413
|
item.collapsed = false;
|
|
389
414
|
}
|
|
390
415
|
|
|
391
|
-
return preparedItem.groupItems.length > 0;
|
|
416
|
+
return !hasSearchQuery || groupHeaderMatches || preparedItem.groupItems.length > 0;
|
|
392
417
|
}
|
|
393
418
|
|
|
394
419
|
return this.checkAndUpdateLabel(item, str);
|
|
@@ -413,6 +438,8 @@ class UDExSearchableListBase extends UI5Element {
|
|
|
413
438
|
item.label = this.addSearchTermTag(cleanedLabel, str);
|
|
414
439
|
return true;
|
|
415
440
|
}
|
|
441
|
+
|
|
442
|
+
item.label = cleanedLabel;
|
|
416
443
|
return false;
|
|
417
444
|
}
|
|
418
445
|
|
|
@@ -522,6 +549,43 @@ class UDExSearchableListBase extends UI5Element {
|
|
|
522
549
|
this._fireIconClickEvent("second-icon-click", e);
|
|
523
550
|
}
|
|
524
551
|
|
|
552
|
+
_dropdownScrollToTop() {
|
|
553
|
+
this.getPopoverPart(UDExPopoverPart.Content)?.scrollTo({ top: 0 });
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
_dropdownScrollToSelectedItem() {
|
|
557
|
+
const content = this.getPopoverPart(UDExPopoverPart.Content);
|
|
558
|
+
const activeItem = this.activeItem;
|
|
559
|
+
if (!content || !activeItem) { return; }
|
|
560
|
+
const itemRect = activeItem.getBoundingClientRect();
|
|
561
|
+
const contentRect = content.getBoundingClientRect();
|
|
562
|
+
content.scrollTop += itemRect.top - contentRect.top + itemRect.height / 2 - content.clientHeight / 2;
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
_handleDropdownScroll() {
|
|
566
|
+
if (this.modeMultiSelect) {
|
|
567
|
+
this._dropdownScrollToTop();
|
|
568
|
+
}
|
|
569
|
+
if (this.modeSingleSelect) {
|
|
570
|
+
this._dropdownScrollToSelectedItem();
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
focusFirstItem(): void {
|
|
575
|
+
const list = this.getList();
|
|
576
|
+
const items = list.getKeyboardNavigationItems();
|
|
577
|
+
if (!items.length) { return; }
|
|
578
|
+
const firstIndex = (items[0]?.nonInteractive && !items[0]?.collapsible) ? 1 : 0;
|
|
579
|
+
const firstItem = items[firstIndex];
|
|
580
|
+
list.setTabIndexByIndex(items, firstIndex);
|
|
581
|
+
|
|
582
|
+
if (firstItem.isGroup) {
|
|
583
|
+
list.focusHeader(firstItem);
|
|
584
|
+
} else {
|
|
585
|
+
firstItem.focus();
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
|
|
525
589
|
private _fireIconClickEvent(eventName: "first-icon-click" | "second-icon-click", e: CustomEvent): void {
|
|
526
590
|
const item = e.detail.item as UDExListItemBase;
|
|
527
591
|
const id = this.getDataTokenId(item);
|
|
@@ -568,10 +632,6 @@ class UDExSearchableListBase extends UI5Element {
|
|
|
568
632
|
return item.getAttribute("data-token-id") as string;
|
|
569
633
|
}
|
|
570
634
|
|
|
571
|
-
get _validItems(): Array<UDExListItemBase | UDExListGroupHeaderBase> {
|
|
572
|
-
return this.items.filter(item => !(item instanceof HTMLElement) || "isGroup" in item);
|
|
573
|
-
}
|
|
574
|
-
|
|
575
635
|
getProcessedItems(): Array<UDExProcessedItem> {
|
|
576
636
|
return this._validItems.map(item => {
|
|
577
637
|
const isGroup = item.isGroup;
|
|
@@ -609,6 +669,14 @@ class UDExSearchableListBase extends UI5Element {
|
|
|
609
669
|
});
|
|
610
670
|
}
|
|
611
671
|
|
|
672
|
+
get activeItem(): UDExListItem | undefined {
|
|
673
|
+
return this.getDomListItems().find(({ selected }) => selected);
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
get _validItems(): Array<UDExListItemBase | UDExListGroupHeaderBase> {
|
|
677
|
+
return this.items.filter(item => !(item instanceof HTMLElement) || "isGroup" in item);
|
|
678
|
+
}
|
|
679
|
+
|
|
612
680
|
get getNoResultText(): string {
|
|
613
681
|
const hasTextProperty = this.noResultText !== undefined && this.noResultText.length > 0;
|
|
614
682
|
return hasTextProperty ? this.noResultText : this.noMatchesFoundText;
|
|
@@ -51,7 +51,9 @@ export default function SearchableListBaseTemplate(this: UDExSearchableListBase)
|
|
|
51
51
|
accessible-role={this.accessibleRoleForList}
|
|
52
52
|
class="udex-filter-menu__list"
|
|
53
53
|
controlled={this.isControlled}
|
|
54
|
-
mode={this.mode}
|
|
54
|
+
mode={this.mode}
|
|
55
|
+
type={this.type}
|
|
56
|
+
item-icon={this.itemIcon}>
|
|
55
57
|
{this._filteredItems.map((processedItem, index) => (
|
|
56
58
|
processedItem.isGroup
|
|
57
59
|
? renderGroup.call(this, processedItem, index)
|
|
@@ -99,6 +101,7 @@ function renderGroupHeader(this: UDExSearchableListBase, processedItem: UDExProc
|
|
|
99
101
|
<UDExListGroupHeader
|
|
100
102
|
key={index}
|
|
101
103
|
role="group"
|
|
104
|
+
{...(index === 0 ? { "_no-border": "" } : {})}
|
|
102
105
|
_additional-class-name="udex-searchable-list__header"
|
|
103
106
|
class={this.groupClassName}
|
|
104
107
|
non-interactive={header.nonInteractive}
|
|
@@ -149,6 +152,15 @@ function renderListItem(
|
|
|
149
152
|
rating-count={item.ratingCount}
|
|
150
153
|
rating-max={item.ratingMax}
|
|
151
154
|
label={item.label}
|
|
155
|
+
image={item.image}
|
|
156
|
+
image-alt={item.imageAlt}
|
|
157
|
+
image-badge-state={item.imageBadgeState}
|
|
158
|
+
image-shape={item.imageShape}
|
|
159
|
+
image-size={item.imageSize}
|
|
160
|
+
flag={item.flag}
|
|
161
|
+
flag-position={item.flagPosition}
|
|
162
|
+
size={item.size}
|
|
163
|
+
type={item.type}
|
|
152
164
|
{...(accessibleRole ? { "accessible-role": accessibleRole } : {})}
|
|
153
165
|
{...((item as any).innerHTML ? { dangerouslySetInnerHTML: { __html: (item as any).innerHTML } } : {})}>
|
|
154
166
|
</UDExListItem>
|
package/src/SelectBase.ts
CHANGED
|
@@ -452,6 +452,9 @@ class UDExSelectBase extends UDExSearchableListBase {
|
|
|
452
452
|
return;
|
|
453
453
|
}
|
|
454
454
|
|
|
455
|
+
const firstIndex = (items[0]?.nonInteractive && !items[0]?.collapsible) ? 1 : 0;
|
|
456
|
+
const firstItem = items[firstIndex];
|
|
457
|
+
|
|
455
458
|
if (isEscAndPopoverOpened) {
|
|
456
459
|
return this.closeDropdown();
|
|
457
460
|
}
|
|
@@ -459,7 +462,8 @@ class UDExSelectBase extends UDExSearchableListBase {
|
|
|
459
462
|
if (isDownAndPopoverClosed) {
|
|
460
463
|
e.preventDefault();
|
|
461
464
|
this.openDropdown();
|
|
462
|
-
this.focusFirstItem(
|
|
465
|
+
this.focusFirstItem();
|
|
466
|
+
this._selectedOption = firstItem.label;
|
|
463
467
|
if (this.showImageFlags) {
|
|
464
468
|
this.handleImagePosition(items, 0);
|
|
465
469
|
}
|
|
@@ -471,20 +475,8 @@ class UDExSelectBase extends UDExSearchableListBase {
|
|
|
471
475
|
if (this.showImageFlags) {
|
|
472
476
|
this.handleImagePosition(items, 0);
|
|
473
477
|
}
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
}
|
|
477
|
-
|
|
478
|
-
focusFirstItem(items: UDExListItemBase[]): void {
|
|
479
|
-
const firstIndex = (items[0]?.nonInteractive && !items[0]?.collapsible) ? 1 : 0;
|
|
480
|
-
const firstItem = items[firstIndex];
|
|
481
|
-
this._list.setTabIndexByIndex(items, firstIndex);
|
|
482
|
-
this._selectedOption = firstItem.label;
|
|
483
|
-
|
|
484
|
-
if (firstItem.isGroup) {
|
|
485
|
-
this._list.focusHeader(firstItem);
|
|
486
|
-
} else {
|
|
487
|
-
firstItem.focus();
|
|
478
|
+
this._selectedOption = firstItem.label;
|
|
479
|
+
return this.focusFirstItem();
|
|
488
480
|
}
|
|
489
481
|
}
|
|
490
482
|
|
|
@@ -509,14 +501,29 @@ class UDExSelectBase extends UDExSearchableListBase {
|
|
|
509
501
|
}
|
|
510
502
|
|
|
511
503
|
handleDropdownBeforeClose() {
|
|
512
|
-
this.
|
|
504
|
+
this._handleDropdownScroll();
|
|
505
|
+
this.fireEventDropdownBeforeOClose();
|
|
513
506
|
}
|
|
514
507
|
|
|
515
508
|
dropdownBeforeOpen() {
|
|
516
509
|
if (this.height) {
|
|
517
510
|
this._setContentHeight();
|
|
518
511
|
}
|
|
512
|
+
this.fireEventDropdownBeforeOpen();
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
handleDropdownOpen() {
|
|
516
|
+
if (!this.activeItem) {
|
|
517
|
+
this._dropdownScrollToTop();
|
|
518
|
+
}
|
|
519
|
+
this.fireEventDropdownOpen();
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
fireEventDropdownBeforeOClose() {
|
|
523
|
+
this.fireDecoratorEvent("before-close");
|
|
524
|
+
}
|
|
519
525
|
|
|
526
|
+
fireEventDropdownBeforeOpen() {
|
|
520
527
|
this.fireDecoratorEvent("before-open");
|
|
521
528
|
}
|
|
522
529
|
|
package/src/SelectBox.ts
CHANGED
|
@@ -34,6 +34,7 @@ import SelectBoxTemplate from "./SelectBoxTemplate.js";
|
|
|
34
34
|
import SearchableListBaseTemplate from "./SearchableListBaseTemplate.js";
|
|
35
35
|
import getEffectiveScrollbarStyle from "./utils/getEffectiveScrollbarStyle.js";
|
|
36
36
|
import type { UDExSelectBaseEvents } from "./SelectBase.js";
|
|
37
|
+
import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js";
|
|
37
38
|
|
|
38
39
|
// Styles
|
|
39
40
|
import TextFieldCss from "./generated/themes/TextField.css.js";
|
|
@@ -248,12 +249,15 @@ class UDExSelectBox extends UDExSelectBase {
|
|
|
248
249
|
this.fireEventDropdownClose();
|
|
249
250
|
}
|
|
250
251
|
|
|
251
|
-
handleRemoveTag(e: CustomEvent | null, tag?: UI5Element) {
|
|
252
|
+
async handleRemoveTag(e: CustomEvent | null, tag?: UI5Element) {
|
|
252
253
|
tag = tag ?? (e?.detail.tag as UI5Element);
|
|
253
254
|
const tagId: string = tag.getAttribute("data-id")!;
|
|
254
|
-
this.tokenizer.deleteToken(tag as Token
|
|
255
|
+
this.tokenizer.deleteToken(tag as Token);
|
|
255
256
|
this.handleDropdownItemPress(tagId);
|
|
256
257
|
this.fireDecoratorEventRemove(tagId);
|
|
258
|
+
await renderFinished();
|
|
259
|
+
this._focused = true;
|
|
260
|
+
this._search.focus();
|
|
257
261
|
}
|
|
258
262
|
|
|
259
263
|
handleRemoveTruncatableTag() {
|
|
@@ -265,7 +269,15 @@ class UDExSelectBox extends UDExSelectBase {
|
|
|
265
269
|
|
|
266
270
|
handleTagClick(e: CustomEvent) {
|
|
267
271
|
const tag = e.detail.tag as UDExTag;
|
|
268
|
-
|
|
272
|
+
|
|
273
|
+
if (!tag.isTruncatable) {
|
|
274
|
+
this._showTagsDropdownContent = false;
|
|
275
|
+
tag.selected = false;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
if (tag.isTruncatable && !this._open) {
|
|
279
|
+
this.toggleTruncatedPopover(tag);
|
|
280
|
+
}
|
|
269
281
|
}
|
|
270
282
|
|
|
271
283
|
handleUnselectTruncatableTag() {
|
|
@@ -384,17 +396,10 @@ class UDExSelectBox extends UDExSelectBase {
|
|
|
384
396
|
}
|
|
385
397
|
|
|
386
398
|
toggleTruncatedPopover(tag: UDExTag) {
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
if (tag.isTruncatable && !this._open) {
|
|
393
|
-
this._truncatableTag = tag;
|
|
394
|
-
this._truncatableTag.selected = true;
|
|
395
|
-
this._showTagsDropdownContent = true;
|
|
396
|
-
this.openDropdown();
|
|
397
|
-
}
|
|
399
|
+
this._truncatableTag = tag;
|
|
400
|
+
this._truncatableTag.selected = true;
|
|
401
|
+
this._showTagsDropdownContent = true;
|
|
402
|
+
this.openDropdown();
|
|
398
403
|
}
|
|
399
404
|
|
|
400
405
|
configureTokenizer() {
|
package/src/SelectBoxItem.ts
CHANGED
|
@@ -6,6 +6,8 @@ import property from "@ui5/webcomponents-base/decorators/property.js";
|
|
|
6
6
|
import { UDExAdditionalTextState } from "./types/List.js";
|
|
7
7
|
import UDExButton from "./Button.js";
|
|
8
8
|
import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
9
|
+
import type UDExStatusBadgeValueState from "./types/StatusBadgeValueState.js";
|
|
10
|
+
import UDExAvatar, { UDExAvatarShape, UDExAvatarSize } from "./Avatar.js";
|
|
9
11
|
|
|
10
12
|
/**
|
|
11
13
|
* @class
|
|
@@ -29,10 +31,18 @@ import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
|
29
31
|
@customElement({
|
|
30
32
|
tag: "udex-select-box-item",
|
|
31
33
|
renderer: litRender,
|
|
32
|
-
dependencies: [UDExButton],
|
|
34
|
+
dependencies: [UDExButton, UDExAvatar],
|
|
33
35
|
})
|
|
34
36
|
|
|
35
37
|
class UDExSelectBoxItem extends UDExListItemBase {
|
|
38
|
+
/**
|
|
39
|
+
* Defines the name of the UI5 Icon displayed for each item when type is Icon.
|
|
40
|
+
*
|
|
41
|
+
* @public
|
|
42
|
+
*/
|
|
43
|
+
@property({ type: String })
|
|
44
|
+
itemIcon?: string;
|
|
45
|
+
|
|
36
46
|
/**
|
|
37
47
|
* Defines the additionalText, displayed at the end of the list item.
|
|
38
48
|
*
|
|
@@ -50,6 +60,65 @@ class UDExSelectBoxItem extends UDExListItemBase {
|
|
|
50
60
|
@property()
|
|
51
61
|
additionalTextState: `${UDExAdditionalTextState}` = UDExAdditionalTextState.None;
|
|
52
62
|
|
|
63
|
+
/**
|
|
64
|
+
* Defines the image, displayed at the start of the item.
|
|
65
|
+
*
|
|
66
|
+
* @public
|
|
67
|
+
*/
|
|
68
|
+
@property({ type: Boolean })
|
|
69
|
+
flag?: boolean;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Defines the position for flag image.
|
|
73
|
+
*
|
|
74
|
+
* @public
|
|
75
|
+
*/
|
|
76
|
+
@property({ type: String })
|
|
77
|
+
flagPosition?: string;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Allows control over the image source.
|
|
81
|
+
*
|
|
82
|
+
* @public
|
|
83
|
+
*/
|
|
84
|
+
@property({ type: String })
|
|
85
|
+
image?: string;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Allows control over the alternative text of the image.
|
|
89
|
+
*
|
|
90
|
+
* @public
|
|
91
|
+
*/
|
|
92
|
+
@property({ type: String })
|
|
93
|
+
imageAlt?: string;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Defines the image badge state of the component.
|
|
97
|
+
*
|
|
98
|
+
* @default ""
|
|
99
|
+
* @public
|
|
100
|
+
*/
|
|
101
|
+
@property()
|
|
102
|
+
imageBadgeState?: `${UDExStatusBadgeValueState}`;
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Defines the shape of the image.
|
|
106
|
+
*
|
|
107
|
+
* @default "Circle"
|
|
108
|
+
* @public
|
|
109
|
+
*/
|
|
110
|
+
@property()
|
|
111
|
+
imageShape: `${UDExAvatarShape}` = UDExAvatarShape.Circle;
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Allows control over the size of the image.
|
|
115
|
+
*
|
|
116
|
+
* @default "S"
|
|
117
|
+
* @public
|
|
118
|
+
*/
|
|
119
|
+
@property()
|
|
120
|
+
imageSize: `${UDExAvatarSize}` = UDExAvatarSize.S;
|
|
121
|
+
|
|
53
122
|
/**
|
|
54
123
|
* Slot for first icon.
|
|
55
124
|
*
|
|
@@ -83,7 +83,7 @@ export default function SelectBoxTemplate(this: UDExSelectBox) {
|
|
|
83
83
|
onHeaderPress: this.handleHeaderPress,
|
|
84
84
|
} as any)}
|
|
85
85
|
onBeforeOpen={this.handleDropdownBeforeOpen}
|
|
86
|
-
onOpen={this.
|
|
86
|
+
onOpen={this.handleDropdownOpen}
|
|
87
87
|
onBeforeClose={this.handleDropdownBeforeClose}
|
|
88
88
|
onClose={this.handleDropdownClose}
|
|
89
89
|
class="udex-select-box__dropdown"
|
package/src/Tag.ts
CHANGED
|
@@ -265,6 +265,14 @@ class UDExTag extends UI5Element {
|
|
|
265
265
|
}
|
|
266
266
|
}
|
|
267
267
|
|
|
268
|
+
_onIconMouseDown(e: MouseEvent): void {
|
|
269
|
+
const target = e.currentTarget as HTMLElement;
|
|
270
|
+
|
|
271
|
+
if (target === this.shadowRoot?.querySelector("[ui5-icon]")) {
|
|
272
|
+
this.toBeDeleted = true;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
|
|
268
276
|
_handleResize() {
|
|
269
277
|
if (this.isTruncatable) {
|
|
270
278
|
this.title = this.text;
|
package/src/TagGroup.ts
CHANGED
|
@@ -143,6 +143,16 @@ class UDExTagGroup extends UI5Element {
|
|
|
143
143
|
@property()
|
|
144
144
|
tooltipPlacement: `${Placement}` = Placement.Bottom;
|
|
145
145
|
|
|
146
|
+
/**
|
|
147
|
+
* Defines the accessible name for the "Show More" tooltip, announced by screen readers
|
|
148
|
+
* when the tooltip containing hidden tags is opened.
|
|
149
|
+
*
|
|
150
|
+
* @default undefined
|
|
151
|
+
* @public
|
|
152
|
+
*/
|
|
153
|
+
@property()
|
|
154
|
+
tooltipAccessibleName?: string;
|
|
155
|
+
|
|
146
156
|
/**
|
|
147
157
|
* Determines whether there are hidden tags in the component.
|
|
148
158
|
*
|
package/src/TagGroupTemplate.tsx
CHANGED
|
@@ -29,6 +29,7 @@ export default function TagTemplate(this: UDExTagGroup) {
|
|
|
29
29
|
<UDExTooltip
|
|
30
30
|
id={`${this._id}-tag-group-tooltip`}
|
|
31
31
|
placement={this.tooltipPlacement}
|
|
32
|
+
accessible-name={this.tooltipAccessibleName}
|
|
32
33
|
onKeyDown={this.handleShowMoreButtonKeydown}>
|
|
33
34
|
<div
|
|
34
35
|
role="group"
|
package/src/TagTemplate.tsx
CHANGED
|
@@ -76,6 +76,7 @@ function tagIcon(this: UDExTag, rootClass: string, iconType: string, isIconClick
|
|
|
76
76
|
<UI5Icon
|
|
77
77
|
class={`${rootClass}__icon ${rootClass}__icon--${iconType}`}
|
|
78
78
|
name={this.icon}
|
|
79
|
+
onMouseDown={this._onIconMouseDown}
|
|
79
80
|
{...(isIconClickable ? { onClick: this.iconClickHandler } : {})}>
|
|
80
81
|
</UI5Icon>
|
|
81
82
|
</>
|