@sapudex/web-components 2.55.0 → 2.57.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +258 -0
- package/cypress/specs/HeroBanner.cy.tsx +35 -1
- package/cypress/specs/List.cy.tsx +63 -1
- package/cypress/specs/ListItem.cy.tsx +44 -0
- package/cypress/specs/MastheadShell.cy.tsx +39 -0
- package/cypress/specs/PhoneNumberField.cy.tsx +29 -1
- package/cypress/specs/SelectBox.cy.tsx +99 -0
- package/cypress/specs/TagGroup.cy.tsx +35 -0
- package/dist/Carousel.d.ts +9 -3
- package/dist/Carousel.js +35 -6
- package/dist/Carousel.js.map +1 -1
- package/dist/CarouselTemplate.js +3 -3
- package/dist/CarouselTemplate.js.map +1 -1
- package/dist/CountrySelectorTemplate.js +1 -1
- package/dist/CountrySelectorTemplate.js.map +1 -1
- package/dist/FilterMenu.js +5 -1
- package/dist/FilterMenu.js.map +1 -1
- package/dist/HeroBanner.d.ts +12 -0
- package/dist/HeroBanner.js +54 -0
- package/dist/HeroBanner.js.map +1 -1
- package/dist/List.d.ts +5 -0
- package/dist/List.js +7 -0
- package/dist/List.js.map +1 -1
- package/dist/ListItem.js +5 -1
- package/dist/ListItem.js.map +1 -1
- package/dist/ListTemplate.js +1 -1
- package/dist/ListTemplate.js.map +1 -1
- package/dist/MastheadShell.d.ts +7 -0
- package/dist/MastheadShell.js +38 -0
- package/dist/MastheadShell.js.map +1 -1
- package/dist/PhoneNumberField.d.ts +3 -3
- package/dist/PhoneNumberField.js +18 -21
- package/dist/PhoneNumberField.js.map +1 -1
- package/dist/PhoneNumberFieldTemplate.d.ts +2 -0
- package/dist/PhoneNumberFieldTemplate.js +12 -0
- package/dist/PhoneNumberFieldTemplate.js.map +1 -0
- package/dist/Search.d.ts +2 -0
- package/dist/Search.js +21 -0
- package/dist/Search.js.map +1 -1
- package/dist/SearchableListBase.d.ts +4 -0
- package/dist/SearchableListBase.js +66 -6
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SearchableListBaseTemplate.js +1 -1
- package/dist/SearchableListBaseTemplate.js.map +1 -1
- package/dist/SelectBase.js +14 -22
- package/dist/SelectBase.js.map +1 -1
- package/dist/SelectBoxTemplate.js +1 -1
- package/dist/SelectBoxTemplate.js.map +1 -1
- package/dist/StatusMessage.d.ts +2 -2
- package/dist/StatusMessage.js +1 -1
- package/dist/StatusMessage.js.map +1 -1
- package/dist/TabNavigation.d.ts +3 -2
- package/dist/TabNavigation.js +3 -2
- package/dist/TabNavigation.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.js +4 -2
- package/dist/TagGroup.js.map +1 -1
- package/dist/TextAreaTemplate.js +1 -1
- package/dist/TextAreaTemplate.js.map +1 -1
- package/dist/TextFieldTemplate.js +1 -1
- package/dist/TextFieldTemplate.js.map +1 -1
- package/dist/Upload.js +6 -9
- package/dist/Upload.js.map +1 -1
- package/dist/UploadItem.d.ts +2 -2
- package/dist/UploadItem.js +6 -9
- package/dist/UploadItem.js.map +1 -1
- package/dist/UploadItemTemplate.d.ts +2 -0
- package/dist/UploadItemTemplate.js +14 -0
- package/dist/UploadItemTemplate.js.map +1 -0
- package/dist/UploadTemplate.d.ts +2 -0
- package/dist/UploadTemplate.js +11 -0
- package/dist/UploadTemplate.js.map +1 -0
- package/dist/assets/{InputSuggestions-DPiJnNLn.js → InputSuggestions-C8grDr_8.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-B-v72jL6.js → ListItemStandardExpandableTextTemplate-BQtSr7yg.js} +1 -1
- package/dist/assets/{bundle-C7Yft7IG.css → bundle-CdO3MnjQ.css} +1 -1
- package/dist/assets/{bundle.esm-DPppjwN7.js → bundle.esm-GvPkDyXP.js} +251 -239
- package/dist/assets/messagebundle_ar-BvIvqOKJ.js +1 -0
- package/dist/assets/messagebundle_bg-CbE9TJP3.js +1 -0
- package/dist/assets/messagebundle_cs-D7sDCnrw.js +1 -0
- package/dist/assets/messagebundle_da-BKcG2gb3.js +1 -0
- package/dist/assets/messagebundle_de-CqojOAqG.js +1 -0
- package/dist/assets/messagebundle_el-DLfp0_Vm.js +1 -0
- package/dist/assets/messagebundle_en-DBpf5Il2.js +1 -0
- package/dist/assets/messagebundle_es-dcaagZn0.js +1 -0
- package/dist/assets/messagebundle_et-XYXhCdvm.js +1 -0
- package/dist/assets/messagebundle_fi-Dffg0zEq.js +1 -0
- package/dist/assets/messagebundle_fr-CW8ENL86.js +1 -0
- package/dist/assets/messagebundle_hr-onMgZwRd.js +1 -0
- package/dist/assets/messagebundle_hu-BPDuHAe0.js +1 -0
- package/dist/assets/messagebundle_it-BcfXVW1A.js +1 -0
- package/dist/assets/messagebundle_ja-EWp-Nkd9.js +1 -0
- package/dist/assets/messagebundle_ko-BKQ27UJW.js +1 -0
- package/dist/assets/messagebundle_lt-A-f2EeMY.js +1 -0
- package/dist/assets/messagebundle_lv-CHVU_rnx.js +1 -0
- package/dist/assets/messagebundle_nl-gmf1np1i.js +1 -0
- package/dist/assets/messagebundle_no-CazfcIRA.js +1 -0
- package/dist/assets/messagebundle_pl-iv_zMkL4.js +1 -0
- package/dist/assets/messagebundle_pt-usY49ESJ.js +1 -0
- package/dist/assets/messagebundle_pt_PT-DTLEUiTC.js +1 -0
- package/dist/assets/messagebundle_ro-BHeGIHaV.js +1 -0
- package/dist/assets/messagebundle_ru-DJB1z_R0.js +1 -0
- package/dist/assets/messagebundle_sk-DlNIpzr3.js +1 -0
- package/dist/assets/messagebundle_sl-Day075Cf.js +1 -0
- package/dist/assets/messagebundle_sr-iI_TwIHf.js +1 -0
- package/dist/assets/messagebundle_sv-BPj73b5X.js +1 -0
- package/dist/assets/messagebundle_tr-DpdBqQtI.js +1 -0
- package/dist/assets/messagebundle_uk-CT4EqEBF.js +1 -0
- package/dist/assets/messagebundle_zh_CN-B_42cWcu.js +1 -0
- package/dist/assets/messagebundle_zh_TW-D25iNCcy.js +1 -0
- package/dist/css/themes/AccordionItem.css +1 -1
- package/dist/css/themes/AccordionSpotlight.css +1 -1
- package/dist/css/themes/Avatar.css +1 -1
- package/dist/css/themes/Carousel.css +1 -1
- package/dist/css/themes/CountrySelector.css +1 -1
- package/dist/css/themes/EventRibbon.css +1 -1
- package/dist/css/themes/FilterMenu.css +1 -1
- package/dist/css/themes/HeroBanner.css +1 -1
- package/dist/css/themes/ImageGridTicker.css +1 -1
- package/dist/css/themes/ListItem.css +1 -1
- package/dist/css/themes/MastheadCountrySelector.css +1 -1
- package/dist/css/themes/MastheadItem.css +1 -1
- package/dist/css/themes/MastheadProfileMenu.css +1 -1
- package/dist/css/themes/MastheadShell.css +1 -1
- package/dist/css/themes/MediaPlayer.css +1 -1
- package/dist/css/themes/Modal.css +1 -1
- package/dist/css/themes/PhoneNumberField.css +1 -1
- package/dist/css/themes/Search.css +1 -1
- package/dist/css/themes/SecondaryNavigationItem.css +1 -1
- package/dist/css/themes/SelectBase.css +1 -1
- package/dist/css/themes/StepInput.css +1 -1
- package/dist/css/themes/Switch.css +1 -1
- package/dist/css/themes/TabInOverflow.css +1 -1
- package/dist/css/themes/TabNavigation.css +1 -1
- package/dist/css/themes/TableCellBase.css +1 -1
- package/dist/css/themes/TagGroup.css +1 -1
- package/dist/css/themes/TextArea.css +1 -1
- package/dist/css/themes/TextField.css +1 -1
- package/dist/css/themes/Tooltip.css +1 -1
- package/dist/css/themes/Wizard.css +1 -1
- package/dist/custom-elements-internal.json +1119 -98
- package/dist/custom-elements.json +745 -128
- package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +1 -9
- package/dist/generated/i18n/i18n-defaults.js +1 -9
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/TabNavigationTemplate.lit.js +2 -2
- package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
- package/dist/generated/themes/AccordionItem.css.d.ts +1 -1
- package/dist/generated/themes/AccordionItem.css.js +1 -1
- package/dist/generated/themes/AccordionItem.css.js.map +1 -1
- package/dist/generated/themes/AccordionSpotlight.css.d.ts +1 -1
- package/dist/generated/themes/AccordionSpotlight.css.js +1 -1
- package/dist/generated/themes/AccordionSpotlight.css.js.map +1 -1
- package/dist/generated/themes/Avatar.css.d.ts +1 -1
- package/dist/generated/themes/Avatar.css.js +1 -1
- package/dist/generated/themes/Avatar.css.js.map +1 -1
- package/dist/generated/themes/Carousel.css.d.ts +1 -1
- package/dist/generated/themes/Carousel.css.js +1 -1
- package/dist/generated/themes/Carousel.css.js.map +1 -1
- package/dist/generated/themes/CountrySelector.css.d.ts +1 -1
- package/dist/generated/themes/CountrySelector.css.js +1 -1
- package/dist/generated/themes/CountrySelector.css.js.map +1 -1
- package/dist/generated/themes/EventRibbon.css.d.ts +1 -1
- package/dist/generated/themes/EventRibbon.css.js +1 -1
- package/dist/generated/themes/EventRibbon.css.js.map +1 -1
- package/dist/generated/themes/FilterMenu.css.d.ts +1 -1
- package/dist/generated/themes/FilterMenu.css.js +1 -1
- package/dist/generated/themes/FilterMenu.css.js.map +1 -1
- package/dist/generated/themes/HeroBanner.css.d.ts +1 -1
- package/dist/generated/themes/HeroBanner.css.js +1 -1
- package/dist/generated/themes/HeroBanner.css.js.map +1 -1
- package/dist/generated/themes/ImageGridTicker.css.d.ts +1 -1
- package/dist/generated/themes/ImageGridTicker.css.js +1 -1
- package/dist/generated/themes/ImageGridTicker.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/MastheadCountrySelector.css.d.ts +1 -1
- package/dist/generated/themes/MastheadCountrySelector.css.js +1 -1
- package/dist/generated/themes/MastheadCountrySelector.css.js.map +1 -1
- package/dist/generated/themes/MastheadItem.css.d.ts +1 -1
- package/dist/generated/themes/MastheadItem.css.js +1 -1
- package/dist/generated/themes/MastheadItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.d.ts +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.js +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.js.map +1 -1
- package/dist/generated/themes/MastheadShell.css.d.ts +1 -1
- package/dist/generated/themes/MastheadShell.css.js +1 -1
- package/dist/generated/themes/MastheadShell.css.js.map +1 -1
- package/dist/generated/themes/MediaPlayer.css.d.ts +1 -1
- package/dist/generated/themes/MediaPlayer.css.js +1 -1
- package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
- package/dist/generated/themes/Modal.css.d.ts +1 -1
- package/dist/generated/themes/Modal.css.js +1 -1
- package/dist/generated/themes/Modal.css.js.map +1 -1
- package/dist/generated/themes/PhoneNumberField.css.d.ts +1 -1
- package/dist/generated/themes/PhoneNumberField.css.js +1 -1
- package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
- package/dist/generated/themes/Search.css.d.ts +1 -1
- package/dist/generated/themes/Search.css.js +1 -1
- package/dist/generated/themes/Search.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/SelectBase.css.d.ts +1 -1
- package/dist/generated/themes/SelectBase.css.js +1 -1
- package/dist/generated/themes/SelectBase.css.js.map +1 -1
- package/dist/generated/themes/StepInput.css.d.ts +1 -1
- package/dist/generated/themes/StepInput.css.js +1 -1
- package/dist/generated/themes/StepInput.css.js.map +1 -1
- package/dist/generated/themes/Switch.css.d.ts +1 -1
- package/dist/generated/themes/Switch.css.js +1 -1
- package/dist/generated/themes/Switch.css.js.map +1 -1
- package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
- package/dist/generated/themes/TabInOverflow.css.js +1 -1
- package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
- package/dist/generated/themes/TabNavigation.css.d.ts +1 -1
- package/dist/generated/themes/TabNavigation.css.js +1 -1
- package/dist/generated/themes/TabNavigation.css.js.map +1 -1
- package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
- package/dist/generated/themes/TableCellBase.css.js +1 -1
- package/dist/generated/themes/TableCellBase.css.js.map +1 -1
- package/dist/generated/themes/TagGroup.css.d.ts +1 -1
- package/dist/generated/themes/TagGroup.css.js +1 -1
- package/dist/generated/themes/TagGroup.css.js.map +1 -1
- package/dist/generated/themes/TextArea.css.d.ts +1 -1
- package/dist/generated/themes/TextArea.css.js +1 -1
- package/dist/generated/themes/TextArea.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/generated/themes/Tooltip.css.d.ts +1 -1
- package/dist/generated/themes/Tooltip.css.js +1 -1
- package/dist/generated/themes/Tooltip.css.js.map +1 -1
- package/dist/generated/themes/Wizard.css.d.ts +1 -1
- package/dist/generated/themes/Wizard.css.js +1 -1
- package/dist/generated/themes/Wizard.css.js.map +1 -1
- package/dist/messagebundle.properties +0 -10
- package/dist/messagebundle_ar.properties +0 -6
- package/dist/messagebundle_bg.properties +0 -8
- package/dist/messagebundle_cs.properties +0 -8
- package/dist/messagebundle_da.properties +0 -8
- package/dist/messagebundle_de.properties +0 -8
- package/dist/messagebundle_el.properties +0 -8
- package/dist/messagebundle_en.properties +0 -8
- package/dist/messagebundle_es.properties +0 -8
- package/dist/messagebundle_et.properties +0 -8
- package/dist/messagebundle_fi.properties +0 -8
- package/dist/messagebundle_fr.properties +0 -8
- package/dist/messagebundle_hr.properties +0 -8
- package/dist/messagebundle_hu.properties +0 -8
- package/dist/messagebundle_it.properties +0 -8
- package/dist/messagebundle_ja.properties +0 -8
- package/dist/messagebundle_ko.properties +0 -8
- package/dist/messagebundle_lt.properties +0 -8
- package/dist/messagebundle_lv.properties +0 -8
- package/dist/messagebundle_nl.properties +0 -8
- package/dist/messagebundle_no.properties +0 -8
- package/dist/messagebundle_pl.properties +0 -8
- package/dist/messagebundle_pt.properties +0 -8
- package/dist/messagebundle_pt_PT.properties +0 -8
- package/dist/messagebundle_ro.properties +0 -8
- package/dist/messagebundle_ru.properties +0 -8
- package/dist/messagebundle_sk.properties +0 -8
- package/dist/messagebundle_sl.properties +0 -7
- package/dist/messagebundle_sr.properties +0 -8
- package/dist/messagebundle_sv.properties +0 -8
- package/dist/messagebundle_tr.properties +0 -8
- package/dist/messagebundle_uk.properties +8 -8
- package/dist/messagebundle_zh_CN.properties +0 -8
- package/dist/messagebundle_zh_TW.properties +0 -8
- package/dist/utils/searchBackdrop.d.ts +1 -0
- package/dist/utils/searchBackdrop.js +23 -0
- package/dist/utils/searchBackdrop.js.map +1 -0
- package/dist/vscode.html-custom-data.json +175 -4
- package/dist/web-types.json +368 -11
- package/package.json +1 -1
- package/src/Carousel.ts +51 -8
- package/src/CarouselTemplate.tsx +7 -7
- package/src/CountrySelectorTemplate.tsx +2 -2
- package/src/FilterMenu.ts +5 -1
- package/src/HeroBanner.ts +66 -0
- package/src/List.ts +8 -0
- package/src/ListItem.ts +5 -1
- package/src/ListTemplate.tsx +1 -1
- package/src/MastheadShell.ts +44 -0
- package/src/PhoneNumberField.ts +23 -22
- package/src/PhoneNumberFieldTemplate.tsx +128 -0
- package/src/Search.ts +21 -1
- package/src/SearchableListBase.ts +62 -7
- package/src/SearchableListBaseTemplate.tsx +1 -0
- package/src/SelectBase.ts +14 -21
- package/src/SelectBoxTemplate.tsx +1 -1
- package/src/StatusMessage.ts +4 -3
- package/src/TabNavigation.hbs +2 -0
- package/src/TabNavigation.ts +3 -2
- package/src/Tag.ts +7 -0
- package/src/TagGroup.ts +4 -2
- package/src/TextAreaTemplate.tsx +1 -1
- package/src/TextFieldTemplate.tsx +1 -1
- package/src/Upload.ts +7 -10
- package/src/UploadItem.ts +7 -9
- package/src/UploadItemTemplate.tsx +62 -0
- package/src/UploadTemplate.tsx +53 -0
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/templates/TabNavigationTemplate.lit.ts +2 -2
- package/src/generated/themes/AccordionItem.css.ts +1 -1
- package/src/generated/themes/AccordionSpotlight.css.ts +1 -1
- package/src/generated/themes/Avatar.css.ts +1 -1
- package/src/generated/themes/Carousel.css.ts +1 -1
- package/src/generated/themes/CountrySelector.css.ts +1 -1
- package/src/generated/themes/EventRibbon.css.ts +1 -1
- package/src/generated/themes/FilterMenu.css.ts +1 -1
- package/src/generated/themes/HeroBanner.css.ts +1 -1
- package/src/generated/themes/ImageGridTicker.css.ts +1 -1
- package/src/generated/themes/ListItem.css.ts +1 -1
- package/src/generated/themes/MastheadCountrySelector.css.ts +1 -1
- package/src/generated/themes/MastheadItem.css.ts +1 -1
- package/src/generated/themes/MastheadProfileMenu.css.ts +1 -1
- package/src/generated/themes/MastheadShell.css.ts +1 -1
- package/src/generated/themes/MediaPlayer.css.ts +1 -1
- package/src/generated/themes/Modal.css.ts +1 -1
- package/src/generated/themes/PhoneNumberField.css.ts +1 -1
- package/src/generated/themes/Search.css.ts +1 -1
- package/src/generated/themes/SecondaryNavigationItem.css.ts +1 -1
- package/src/generated/themes/SelectBase.css.ts +1 -1
- package/src/generated/themes/StepInput.css.ts +1 -1
- package/src/generated/themes/Switch.css.ts +1 -1
- package/src/generated/themes/TabInOverflow.css.ts +1 -1
- package/src/generated/themes/TabNavigation.css.ts +1 -1
- package/src/generated/themes/TableCellBase.css.ts +1 -1
- package/src/generated/themes/TagGroup.css.ts +1 -1
- package/src/generated/themes/TextArea.css.ts +1 -1
- package/src/generated/themes/TextField.css.ts +1 -1
- package/src/generated/themes/Tooltip.css.ts +1 -1
- package/src/generated/themes/Wizard.css.ts +1 -1
- package/src/i18n/messagebundle.properties +0 -10
- package/src/i18n/messagebundle_ar.properties +0 -6
- package/src/i18n/messagebundle_bg.properties +0 -8
- package/src/i18n/messagebundle_cs.properties +0 -8
- package/src/i18n/messagebundle_da.properties +0 -8
- package/src/i18n/messagebundle_de.properties +0 -8
- package/src/i18n/messagebundle_el.properties +0 -8
- package/src/i18n/messagebundle_en.properties +0 -8
- package/src/i18n/messagebundle_es.properties +0 -8
- package/src/i18n/messagebundle_et.properties +0 -8
- package/src/i18n/messagebundle_fi.properties +0 -8
- package/src/i18n/messagebundle_fr.properties +0 -8
- package/src/i18n/messagebundle_hr.properties +0 -8
- package/src/i18n/messagebundle_hu.properties +0 -8
- package/src/i18n/messagebundle_it.properties +0 -8
- package/src/i18n/messagebundle_ja.properties +0 -8
- package/src/i18n/messagebundle_ko.properties +0 -8
- package/src/i18n/messagebundle_lt.properties +0 -8
- package/src/i18n/messagebundle_lv.properties +0 -8
- package/src/i18n/messagebundle_nl.properties +0 -8
- package/src/i18n/messagebundle_no.properties +0 -8
- package/src/i18n/messagebundle_pl.properties +0 -8
- package/src/i18n/messagebundle_pt.properties +0 -8
- package/src/i18n/messagebundle_pt_PT.properties +0 -8
- package/src/i18n/messagebundle_ro.properties +0 -8
- package/src/i18n/messagebundle_ru.properties +0 -8
- package/src/i18n/messagebundle_sk.properties +0 -8
- package/src/i18n/messagebundle_sl.properties +0 -7
- package/src/i18n/messagebundle_sr.properties +0 -8
- package/src/i18n/messagebundle_sv.properties +0 -8
- package/src/i18n/messagebundle_tr.properties +0 -8
- package/src/i18n/messagebundle_uk.properties +8 -8
- package/src/i18n/messagebundle_zh_CN.properties +0 -8
- package/src/i18n/messagebundle_zh_TW.properties +0 -8
- package/src/themes/AccordionItem.css +1 -1
- package/src/themes/AccordionSpotlight.css +1 -1
- package/src/themes/Avatar.css +1 -1
- package/src/themes/Carousel.css +17 -10
- package/src/themes/CountrySelector.css +12 -2
- package/src/themes/EventRibbon.css +1 -1
- package/src/themes/FilterMenu.css +3 -2
- package/src/themes/HeroBanner.css +1 -1
- package/src/themes/ImageGridTicker.css +1 -1
- package/src/themes/ListItem.css +10 -2
- package/src/themes/MastheadCountrySelector.css +1 -1
- package/src/themes/MastheadItem.css +1 -1
- package/src/themes/MastheadProfileMenu.css +1 -1
- package/src/themes/MastheadShell.css +1 -1
- package/src/themes/MediaPlayer.css +10 -10
- package/src/themes/Modal.css +5 -3
- package/src/themes/PhoneNumberField.css +16 -6
- package/src/themes/Search.css +9 -9
- package/src/themes/SecondaryNavigationItem.css +1 -1
- package/src/themes/SelectBase.css +2 -2
- package/src/themes/StepInput.css +1 -1
- package/src/themes/Switch.css +2 -2
- package/src/themes/TabInOverflow.css +2 -2
- package/src/themes/TabNavigation.css +8 -7
- package/src/themes/TableCellBase.css +1 -1
- package/src/themes/TagGroup.css +1 -1
- package/src/themes/TextArea.css +1 -1
- package/src/themes/TextField.css +1 -1
- package/src/themes/Tooltip.css +5 -4
- package/src/themes/Wizard.css +1 -1
- package/src/utils/searchBackdrop.ts +23 -0
- package/dist/assets/messagebundle_ar-BUZ_gTvQ.js +0 -1
- package/dist/assets/messagebundle_bg-4ainC3nj.js +0 -1
- package/dist/assets/messagebundle_cs-CFtmLavu.js +0 -1
- package/dist/assets/messagebundle_da-BHL-qTPd.js +0 -1
- package/dist/assets/messagebundle_de-SMiMT-ST.js +0 -1
- package/dist/assets/messagebundle_el-ChAszJ4A.js +0 -1
- package/dist/assets/messagebundle_en-B0P3kkb6.js +0 -1
- package/dist/assets/messagebundle_es-LGmRBKqB.js +0 -1
- package/dist/assets/messagebundle_et-yYsmBPXN.js +0 -1
- package/dist/assets/messagebundle_fi-DeMNrHC9.js +0 -1
- package/dist/assets/messagebundle_fr-qEm5Eykz.js +0 -1
- package/dist/assets/messagebundle_hr-NBdiYo-T.js +0 -1
- package/dist/assets/messagebundle_hu-CBV3ISbF.js +0 -1
- package/dist/assets/messagebundle_it-BML2SC0W.js +0 -1
- package/dist/assets/messagebundle_ja-zyFfZHcj.js +0 -1
- package/dist/assets/messagebundle_ko-BCPaSqNp.js +0 -1
- package/dist/assets/messagebundle_lt-DB4b6FVx.js +0 -1
- package/dist/assets/messagebundle_lv-tAOia5tU.js +0 -1
- package/dist/assets/messagebundle_nl-BKUpVV-D.js +0 -1
- package/dist/assets/messagebundle_no-BZQfeWxT.js +0 -1
- package/dist/assets/messagebundle_pl-CsXeN1y6.js +0 -1
- package/dist/assets/messagebundle_pt-D9rap3lj.js +0 -1
- package/dist/assets/messagebundle_pt_PT-CQ5YAsmx.js +0 -1
- package/dist/assets/messagebundle_ro-BTNJ9YdP.js +0 -1
- package/dist/assets/messagebundle_ru-BTDmH8CB.js +0 -1
- package/dist/assets/messagebundle_sk-Lb4jvtpc.js +0 -1
- package/dist/assets/messagebundle_sl-BZi2bKSy.js +0 -1
- package/dist/assets/messagebundle_sr-B9TYgxO1.js +0 -1
- package/dist/assets/messagebundle_sv-DWlY9RTQ.js +0 -1
- package/dist/assets/messagebundle_tr-DOeCmUdx.js +0 -1
- package/dist/assets/messagebundle_uk-GmdhsMsP.js +0 -1
- package/dist/assets/messagebundle_zh_CN-CHwH3F3-.js +0 -1
- package/dist/assets/messagebundle_zh_TW-FO0BCkub.js +0 -1
- package/dist/generated/templates/PhoneNumberFieldTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +0 -16
- package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +0 -1
- package/dist/generated/templates/UploadItemTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/UploadItemTemplate.lit.js +0 -12
- package/dist/generated/templates/UploadItemTemplate.lit.js.map +0 -1
- package/dist/generated/templates/UploadTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/UploadTemplate.lit.js +0 -10
- package/dist/generated/templates/UploadTemplate.lit.js.map +0 -1
- package/src/PhoneNumberField.hbs +0 -119
- package/src/Upload.hbs +0 -21
- package/src/UploadItem.hbs +0 -32
- package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +0 -20
- package/src/generated/templates/UploadItemTemplate.lit.ts +0 -16
- package/src/generated/templates/UploadTemplate.lit.ts +0 -14
package/dist/SelectBase.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectBase.js","sourceRoot":"","sources":["../src/SelectBase.ts"],"names":[],"mappings":"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","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport type { ChangeInfo, Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport {\n isEscape, isDown, isUp, isHome, isEnd, isTabNext, isTabPrevious, isLeft, isRight, isEnter, isSpace,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getAllAccessibleNameRefTexts } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport { cleanLabel } from \"./utils/listItemLabelUtils.js\";\nimport type { UDExListItemBase } from \"./List.js\";\nimport type Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport type UDExList from \"./List.js\";\nimport type UDExSearch from \"./Search.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport {\n COUNTRY_SELECT, STARS, SELECTED, UNSELECTED, INDETERMINATE, DISABLED,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport SearchableListBaseTemplate from \"./SearchableListBaseTemplate.js\";\nimport CountrySelectorTemplate from \"./CountrySelectorTemplate.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/delegate/ResizeHandler.js\";\nimport UDExSearchableListBase from \"./SearchableListBase.js\";\nimport UDExValueState from \"./types/common.js\";\nimport type { UDExSearchableListBaseEvents } from \"./SearchableListBase.js\";\nimport Tokenizer, { getTokensCountText } from \"@ui5/webcomponents/dist/Tokenizer.js\";\nimport isLetterKey from \"./utils/isLetterKeyPressed.js\";\nimport translate from \"./utils/translate.js\";\nimport type { AriaAutoComplete, AriaHasPopup } from \"@ui5/webcomponents-base/dist/types.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\n\ntype UDExSelectBaseEvents = {\n \"open\": void,\n \"close\": void,\n \"before-close\": void,\n \"before-open\": void,\n} & UDExSearchableListBaseEvents;\n\n/**\n * @class\n *\n * A class to serve as a foundation\n * for the <code>UDExCountrySelector</code> and <code>UDExSelectBox</code> classes.\n *\n * @constructor\n * @extends UDExSearchableListBase\n * @public\n */\n\nclass UDExSelectBase extends UDExSearchableListBase {\n eventDetails!: UDExSelectBaseEvents;\n\n /**\n * Defines whether the component is required.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Defines whether the component is in disabled state.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines label text for field container.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n label!: string;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default undefined\n * @public\n */\n @property()\n accessibleName?: string;\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default undefined\n * @public\n */\n @property()\n accessibleNameRef?: string;\n\n /**\n * Defines whether the component is read-only.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Defines the value state of the trigger container.\n *\n * @default \"Standard\"\n * @public\n */\n @property()\n valueState: `${UDExValueState}` = UDExValueState.Standard;\n\n /**\n * Defines supporting text under the trigger container.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n supportingText?: string;\n\n /**\n * @private\n */\n @property({ type: String, noAttribute: true })\n _direction?: string;\n\n /**\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _focused!: boolean;\n\n /**\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _open: boolean = false;\n\n /**\n * Defines selected option for Single Select Mode.\n *\n * @default undefined\n * @private\n */\n @property()\n _selectedOption!: string;\n\n /**\n * Defines if the component should reset.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n _requestRender = false;\n\n /**\n * True while keyboard list navigation is active (aria-activedescendant set).\n * Used in CSS to suppress the input focus ring and show the active item ring.\n *\n * @private\n */\n @property({ type: Boolean })\n _navigating: boolean = false;\n\n /**\n * Text read by screen readers when the active item changes.\n * Announced via an aria-live=\"assertive\" region in the template.\n * This works regardless of shadow DOM / popover teleportation because\n * the live region lives inside SelectBox's own shadow root.\n *\n * @private\n */\n @property({ type: String, noAttribute: true })\n _liveRegionText: string = \"\";\n\n /**\n * Defines the footer content for the component dropdown.\n * Place any content (e.g. an action button) here. Clicking footer content does not close the dropdown —\n * use the <code>close</code> method if needed.\n *\n * @public\n */\n @slot({ type: HTMLElement })\n footer!: Slot<HTMLElement>;\n\n _paneWidthVariableName = \"--udex-dropdown-pane-width\";\n _labelBaseClass = \"udex-text-field__label\";\n _dropdownClass = \"udex-select-box__dropdown\";\n _listBoxRole: AriaHasPopup = \"listbox\";\n _rootClass = \"udex-select-box__root\";\n _stickyClass = \"udex-list__sticky\";\n _ariaAutoComplete: AriaAutoComplete = \"list\";\n _trigger!: HTMLElement;\n _search!: UDExSearch | HTMLInputElement;\n _popover!: Popover;\n _list!: UDExList;\n _inputValue: string = \"\";\n _lastSelectedItemId: string = \"\";\n _handleResizeBound: ResizeObserverCallback;\n _handleListKeyDownBound: (e: KeyboardEvent) => void;\n _listKeyDownListenerAdded: boolean = false;\n _activeDescendantItem: UDExListItemBase | null = null;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n this._handleListKeyDownBound = this._handleListKeyDownCapture.bind(this);\n }\n\n onEnterDOM() {\n ResizeHandler.register(this, this._handleResizeBound);\n if (this.modeSingleSelect && this.hasSelectedItems) {\n this.setSelectOption();\n }\n }\n\n onExitDOM() {\n ResizeHandler.deregister(this, this._handleResizeBound);\n if (this._list && this._listKeyDownListenerAdded) {\n this._list.removeEventListener(\"keydown\", this._handleListKeyDownBound, { capture: true });\n this._listKeyDownListenerAdded = false;\n }\n }\n\n onInvalidation({ name }: ChangeInfo): void {\n if (name === \"default\" && this.modeSingleSelect && !this._inputValue) {\n this.setSelectOption();\n }\n }\n\n onAfterRendering() {\n super.onAfterRendering();\n this._popover = this.getPopover();\n this._search = this.getSearch();\n this._list = this.getList();\n this._trigger = this.trigger;\n this.handleDirection();\n\n if (this._list) {\n this._list._scrollIntoView = \"Nearest\";\n // Set a stable HTML id on the udex-list host so aria-controls can reference it.\n if (!this._list.id) {\n this._list.id = `${this._id}-list`;\n }\n }\n\n if (this._requestRender) {\n this._requestRender = false;\n }\n\n if (!this._listKeyDownListenerAdded && this._list) {\n this._list.addEventListener(\"keydown\", this._handleListKeyDownBound, { capture: true });\n this._listKeyDownListenerAdded = true;\n }\n }\n\n _handleResize() {\n this.updatePopoverWidth();\n }\n\n /**\n * Given a candidate index, skips over a non-interactive non-collapsible header if needed.\n * Returns the effective target index.\n */\n _skipNonInteractive(items: UDExListItemBase[], raw: number, lastIndex: number, direction: \"down\" | \"up\"): number {\n if (!items[raw]?.nonInteractive || items[raw].collapsible) {\n return raw;\n }\n if (direction === \"down\") {\n return raw + 1 > lastIndex ? 0 : raw + 1;\n }\n return raw === 0 ? lastIndex : raw - 1;\n }\n\n /**\n * Sets or clears the aria-activedescendant on the combobox input and updates\n * the aria-live region so JAWS/VoiceOver announce the item name and position.\n * The live region is the primary announcement mechanism because aria-activedescendant\n * across a UI5 Popover (which teleports content to document.body) is unreliable —\n * screen readers cannot follow the ID reference across shadow root boundaries.\n */\n _setActiveDescendant(item: UDExListItemBase | null, scroll = true): void {\n this._activeDescendantItem = item;\n\n // Query the SelectBox's OWN shadow DOM for all elements bearing the class —\n // this reaches the rendered udex-list-group-header / udex-list-item elements\n // regardless of whether they are the current or a previously stale instance.\n this.shadowRoot?.querySelectorAll<HTMLElement>(\"._udex-active-descendant\")\n .forEach(el => {\n el.classList.remove(\"_udex-active-descendant\");\n el.removeAttribute(\"_active-descendant\");\n });\n\n if (!item) {\n (this._search as HTMLElement).removeAttribute(\"aria-activedescendant\");\n this._liveRegionText = \"\";\n return;\n }\n\n item.classList.add(\"_udex-active-descendant\");\n item.setAttribute(\"_active-descendant\", \"\");\n (this._search as HTMLElement).setAttribute(\"aria-activedescendant\", item._id);\n\n // Update the live region with tree-aware position and state so JAWS/VoiceOver\n // announce the active item regardless of whether the popover is teleported to document.body.\n if (this._list) {\n const label = cleanLabel(item.label ?? \"\");\n const supporting = item.supportingText ? cleanLabel(item.supportingText) : \"\";\n const stateParts = this._itemStateLabels(item);\n const posText = this._treePositionText(item);\n this._liveRegionText = [label, supporting, posText, ...stateParts].filter(Boolean).join(\", \");\n }\n\n if (scroll && this._list?._scrollIntoView) {\n // Only scroll if the item is not already fully visible in the dropdown.\n const popoverContent = this._popover?.shadowRoot?.querySelector<HTMLElement>(\"[part=content]\");\n if (popoverContent) {\n const itemRect = item.getBoundingClientRect();\n const containerRect = popoverContent.getBoundingClientRect();\n const isVisible = itemRect.top >= containerRect.top && itemRect.bottom <= containerRect.bottom;\n if (!isVisible) {\n this._list.scrollToItem(item);\n }\n } else {\n this._list.scrollToItem(item);\n }\n }\n }\n\n /**\n * Activates the first navigable item as the aria-activedescendant without moving DOM focus.\n */\n _activateFirstItem(): void {\n const items = this._list?.getKeyboardNavigationItems();\n if (!items?.length) { return; }\n const firstIndex = (items[0]?.nonInteractive && !items[0]?.collapsible) ? 1 : 0;\n this._list.setTabIndexByIndex(items, firstIndex);\n this._setActiveDescendant(items[firstIndex], false);\n }\n\n /**\n * Navigates to the item at the given index, updating aria-activedescendant and _selectedOption.\n */\n _navigateToIndex(items: UDExListItemBase[], nextIndex: number): void {\n const currentIndex = this._activeDescendantItem\n ? this._list.getCurrentIndex(items, this._activeDescendantItem)\n : -1;\n if (currentIndex >= 0) {\n this._list.unsetTabIndexByIndex(items, currentIndex);\n }\n this._list.setTabIndexByIndex(items, nextIndex);\n this._selectedOption = items[nextIndex].label;\n if (this.showImageFlags) {\n this.handleImagePosition(items, nextIndex);\n }\n this._setActiveDescendant(items[nextIndex]);\n }\n\n handleKeyDownDropdown(e: KeyboardEvent) {\n const items = this._list?.getKeyboardNavigationItems();\n\n if (isLetterKey(e.key)) {\n this.handleLetterKeyPress(e);\n return;\n }\n\n if (this.hasFooter) {\n const isInFooter = (e.target as HTMLElement).closest?.(\"[slot=\\\"footer\\\"]\");\n if (isInFooter) {\n if (isEscape(e)) {\n this.handleEscKeyPress(e);\n return;\n }\n if (isTabNext(e)) {\n e.preventDefault();\n this.closeDropdown();\n this._moveFocusAfterComponent();\n return;\n }\n if (isTabPrevious(e)) {\n e.preventDefault();\n this._focusLastListItem();\n return;\n }\n return;\n }\n\n if (isTabNext(e)) {\n e.preventDefault();\n (this._firstFocusableIn(this.footer[0]) ?? this.footer[0])?.focus();\n return;\n }\n }\n\n if (isTabPrevious(e)) {\n e.preventDefault();\n this._search.focus();\n return;\n }\n\n if (isTabNext(e)) {\n e.preventDefault();\n this.closeDropdown();\n this._moveFocusAfterComponent();\n return;\n }\n\n if (isEscape(e)) {\n this.handleEscKeyPress(e);\n return;\n }\n\n if (!items) {\n return;\n }\n\n if (isRight(e) || isLeft(e)) {\n e.preventDefault();\n // Resolve the collapsible group header from the active descendant (not e.target,\n // since DOM focus stays on the input and e.target is the input element).\n const activeHeader = this._activeDescendantItem\n ? this._resolveCollapsibleGroupHeader(this._activeDescendantItem as unknown as HTMLElement)\n : null;\n if (activeHeader && this._handleGroupHeaderCollapse(activeHeader as unknown as HTMLElement, isLeft(e))) {\n return;\n }\n // Fall through to icon-row navigation when focus is on an icon button\n if (isRight(e)) {\n this._handleArrowRightInRow(e.target as HTMLElement);\n } else {\n this._handleArrowLeftInRow(e.target as HTMLElement);\n }\n return;\n }\n\n if (isDown(e) || isUp(e)) {\n e.preventDefault();\n const lastIndex = items.length - 1;\n const currentItem = this._activeDescendantItem;\n const currentIndex = currentItem ? this._list.getCurrentIndex(items, currentItem) : -1;\n\n let nextIndex: number;\n if (isDown(e)) {\n const raw = currentIndex + 1 > lastIndex ? 0 : currentIndex + 1;\n nextIndex = this._skipNonInteractive(items, raw, lastIndex, \"down\");\n } else {\n const raw = currentIndex - 1 < 0 ? lastIndex : currentIndex - 1;\n nextIndex = this._skipNonInteractive(items, raw, lastIndex, \"up\");\n }\n this._navigateToIndex(items, nextIndex);\n return;\n }\n\n if (isHome(e)) {\n e.preventDefault();\n this.handleHomeKeyPress(items);\n return;\n }\n\n if (isEnd(e)) {\n e.preventDefault();\n this.handleEndKeyPress(items, items.length - 1);\n }\n\n // Icon-button slot: Up/Down while an icon button is focused (handled by capture listener).\n // _handleListKeyDownCapture fires first via capture; nothing else needed here.\n }\n\n handleEndKeyPress(items: UDExListItemBase[], lastItemIndex: number) {\n this._navigateToIndex(items, lastItemIndex);\n }\n\n handleHomeKeyPress(items: UDExListItemBase[]) {\n const firstIndex = (items[0]?.nonInteractive && !items[0]?.collapsible) ? 1 : 0;\n this._navigateToIndex(items, firstIndex);\n }\n\n handleDownKeyPress(items: UDExListItemBase[], currentSelectedIndex: number, lastItemIndex: number) {\n const nextIndex = currentSelectedIndex + 1;\n const nextSelectIndex = nextIndex > lastItemIndex ? 0 : nextIndex;\n const isNonInteractive = items[nextSelectIndex].nonInteractive && !items[nextSelectIndex].collapsible;\n\n if (isNonInteractive) {\n const skipIndex = nextSelectIndex + 1 > lastItemIndex ? 0 : nextSelectIndex + 1;\n this._selectedOption = items[skipIndex].label;\n if (this.showImageFlags) {\n this.handleImagePosition(items, skipIndex);\n }\n return;\n }\n\n this._selectedOption = items[nextSelectIndex].label;\n\n if (this.showImageFlags) {\n this.handleImagePosition(items, nextSelectIndex);\n }\n }\n\n handleUpKeyPress(items: UDExListItemBase[], currentSelectedIndex: number, lastItemIndex: number) {\n const prevIndex = currentSelectedIndex - 1;\n const previousSelectIndex = prevIndex < 0 ? lastItemIndex : prevIndex;\n const isNonInteractive = items[previousSelectIndex].nonInteractive && !items[previousSelectIndex].collapsible;\n\n if (isNonInteractive) {\n const skipIndex = previousSelectIndex === 0 ? lastItemIndex : previousSelectIndex - 1;\n this._selectedOption = items[skipIndex].label;\n if (this.showImageFlags) {\n this.handleImagePosition(items, skipIndex);\n }\n return;\n }\n\n this._selectedOption = items[previousSelectIndex].label;\n\n if (this.showImageFlags) {\n this.handleImagePosition(items, previousSelectIndex);\n }\n }\n\n handleLetterKeyPress(e: KeyboardEvent) {\n e.stopPropagation();\n e.preventDefault();\n this._selectedOption = \"\";\n this._inputValue = e.key;\n this._search.value = e.key;\n this._search.focus();\n this.onSearch(this._search.value);\n }\n\n handleEscKeyPress(e: KeyboardEvent) {\n e.preventDefault();\n e.stopPropagation();\n this._setActiveDescendant(null);\n this.closeDropdown();\n this._search.focus();\n this._selectedOption = \"\";\n }\n\n handleItemSelection(e:CustomEvent) {\n this.onItemPress(e);\n const item = e.detail.item as UDExListItemBase;\n this._lastSelectedItemId = this.getDataTokenId(item);\n this.resetSearchState();\n\n if (this.modeSingleSelect) {\n // SingleSelect closes the dropdown — clear active descendant.\n this._setActiveDescendant(null);\n this._search.focus();\n this.closeDropdown();\n return;\n }\n\n // MultiSelect: ensure active descendant tracks the interacted item so there\n // is only one ring. Find the rendered item in the navigation list by matching\n // data-token-id (the source item's _id set by the template) since e.detail.item\n // is the source element, not the rendered udex-list-item.\n const tokenId = this.getDataTokenId(item);\n const navItems = this._list?.getKeyboardNavigationItems();\n const renderedItem = navItems?.find(\n i => (i.getAttribute(\"data-token-id\") ?? i._id) === tokenId,\n );\n if (renderedItem && renderedItem !== this._activeDescendantItem) {\n this._setActiveDescendant(renderedItem);\n }\n\n // Return DOM focus to the input so the clicked item loses its :focus ring.\n // Without this, the browser keeps focus on the item (from the click) and a\n // second ring appears when arrow keys move _activeDescendantItem elsewhere.\n (this._search as HTMLElement).focus();\n\n // Re-announce with the updated checked/unchecked state. The rendered item's\n // `selected` prop is updated on the next render cycle (template re-render),\n // so we wait for it before re-reading state labels.\n renderFinished().then(() => this._announceCurrentOrFirst()).catch(() => {});\n }\n\n onKeyDownSearch(e: KeyboardEvent) {\n const items = this._list?.getKeyboardNavigationItems();\n const hasItems = items && items.length > 0;\n const popoverOpened = this._popover.open;\n if (!isEscape(e) || popoverOpened) {\n e.stopPropagation();\n }\n const isEscAndPopoverOpened = isEscape(e) && popoverOpened;\n const isDownAndPopoverClosed = isDown(e) && !popoverOpened;\n const isDownAndPopoverOpened = isDown(e) && popoverOpened;\n const isUpAndPopoverOpened = isUp(e) && popoverOpened;\n\n // Tab while popup is open: move focus to the first footer element if one exists,\n // otherwise close the dropdown and move past the component.\n if (popoverOpened && isTabNext(e)) {\n e.preventDefault();\n if (this.hasFooter) {\n this._setActiveDescendant(null);\n (this._firstFocusableIn(this.footer[0]) ?? this.footer[0])?.focus();\n } else {\n this.closeDropdown();\n this._moveFocusAfterComponent();\n }\n return;\n }\n\n // Shift+Tab while popup is open: close the dropdown.\n // DOM focus stays on the search input throughout (our aria-activedescendant model\n // never moves focus away from the input), so no explicit re-focus is needed.\n if (popoverOpened && isTabPrevious(e)) {\n e.preventDefault();\n this._setActiveDescendant(null);\n this.closeDropdown();\n return;\n }\n\n if (!hasItems) {\n return;\n }\n\n const firstIndex = (items[0]?.nonInteractive && !items[0]?.collapsible) ? 1 : 0;\n\n if (isEscAndPopoverOpened) {\n return this.closeDropdown();\n }\n\n if (isDownAndPopoverClosed) {\n e.preventDefault();\n this.openDropdown();\n this._activateFirstItem();\n if (this.showImageFlags) {\n this.handleImagePosition(items, firstIndex);\n }\n return;\n }\n\n if (isDownAndPopoverOpened) {\n e.preventDefault();\n if (this._activeDescendantItem) {\n const lastIndex = items.length - 1;\n const currentIndex = this._list.getCurrentIndex(items, this._activeDescendantItem);\n const raw = currentIndex + 1 > lastIndex ? 0 : currentIndex + 1;\n const nextIndex = this._skipNonInteractive(items, raw, lastIndex, \"down\");\n this._navigateToIndex(items, nextIndex);\n } else {\n this._activateFirstItem();\n // Also update _selectedOption so the input reflects the active item.\n const activeIdx = (items[0]?.nonInteractive && !items[0]?.collapsible) ? 1 : 0;\n this._selectedOption = items[activeIdx].label;\n if (this.showImageFlags) {\n this.handleImagePosition(items, activeIdx);\n }\n }\n return;\n }\n\n if (isUpAndPopoverOpened) {\n e.preventDefault();\n if (this._activeDescendantItem) {\n const lastIndex = items.length - 1;\n const currentIndex = this._list.getCurrentIndex(items, this._activeDescendantItem);\n const raw = currentIndex - 1 < 0 ? lastIndex : currentIndex - 1;\n const nextIndex = this._skipNonInteractive(items, raw, lastIndex, \"up\");\n this._navigateToIndex(items, nextIndex);\n } else {\n this._navigateToIndex(items, items.length - 1);\n }\n return;\n }\n\n if (popoverOpened && isHome(e)) {\n e.preventDefault();\n const homeIndex = (items[0]?.nonInteractive && !items[0]?.collapsible) ? 1 : 0;\n this._navigateToIndex(items, homeIndex);\n return;\n }\n\n if (popoverOpened && isEnd(e)) {\n e.preventDefault();\n this._navigateToIndex(items, items.length - 1);\n return;\n }\n\n // Enter/Space: select the active descendant item (or toggle for MultiSelect).\n if (popoverOpened && this._activeDescendantItem && (isEnter(e) || isSpace(e))) {\n e.preventDefault();\n const activeItem = this._activeDescendantItem;\n if (activeItem.isGroup) {\n // Group header: fire header-press (same event the click handler fires) so\n // handleHeaderPress → onHeaderPress → handleGroupHeaderSelection runs.\n activeItem.fireDecoratorEvent(\"header-press\", { item: activeItem });\n } else {\n // Leaf item: fire item-press so the list handles selection consistently.\n // Do NOT toggle .selected directly — handleItemClick (called via onItemPress)\n // handles the toggle, and double-toggling would be a no-op.\n activeItem.fireDecoratorEvent(\"item-press\", {\n selected: activeItem.selected,\n item: activeItem,\n });\n }\n return;\n }\n\n // Left/Right: collapse/expand the active group header when popup is open.\n if (popoverOpened && (isLeft(e) || isRight(e))) {\n e.preventDefault();\n const activeHeader = this._activeDescendantItem\n ? this._resolveCollapsibleGroupHeader(this._activeDescendantItem as unknown as HTMLElement)\n : null;\n if (activeHeader) {\n this._handleGroupHeaderCollapse(activeHeader as unknown as HTMLElement, isLeft(e));\n return;\n }\n // Fall through to icon-row navigation when the active item has icon slots.\n if (this._activeDescendantItem) {\n if (isRight(e)) {\n this._handleArrowRightInRow(this._activeDescendantItem as unknown as HTMLElement);\n } else {\n this._handleArrowLeftInRow(this._activeDescendantItem as unknown as HTMLElement);\n }\n }\n return;\n }\n\n // Sync _selectedOption display for the first item (used when popover just opened via click).\n if (!this._activeDescendantItem && hasItems) {\n this._selectedOption = items[firstIndex].label;\n }\n }\n\n handleSearchChange(e: InputEvent) {\n const inputValue = (e.target as HTMLInputElement)?.value || \"\";\n this._inputValue = inputValue;\n\n if (inputValue) {\n this._selectedOption = \"\";\n }\n\n this.onSearch(inputValue);\n\n if (!this._popover.open) {\n this.openDropdown();\n }\n }\n\n override onSearch(value: string): void {\n super.onSearch(value);\n // Route search result count into the shared live region so SelectBox\n // only needs one aria-live span (no separate polite span in the template).\n if (this._accSearchResultInfo) {\n this._liveRegionText = this._accSearchResultInfo;\n }\n }\n\n handleDirection() {\n const directionStyles = window.getComputedStyle(this).getPropertyValue(\"direction\");\n this._direction = directionStyles || \"ltr\";\n }\n\n handleDropdownBeforeClose() {\n this._handleDropdownScroll();\n this.fireEventDropdownBeforeOClose();\n }\n\n dropdownBeforeOpen() {\n if (this.height) {\n this._setContentHeight();\n }\n this.fireEventDropdownBeforeOpen();\n }\n\n handleDropdownOpen() {\n // Scroll to the previously selected/active item if there is one,\n // otherwise scroll to top. Do NOT pre-activate any item — that is done\n // by the first ArrowDown so that ArrowDown[1]=item[0], ArrowDown[2]=item[1].\n if (this.activeItem) {\n const items = this._list?.getKeyboardNavigationItems();\n const active = items?.find(i => !i.isGroup && (i as any).selected);\n if (active && this._list?._scrollIntoView) {\n this._list.scrollToItem(active);\n } else {\n this._dropdownScrollToTop();\n }\n } else {\n this._dropdownScrollToTop();\n }\n\n // Announce the visually focused item (fake focus outline on first item).\n // Using polite politeness — it waits for the AT to finish announcing\n // \"expanded\" before reading the item, so no timeout is needed.\n // Clear first so the mutation fires even if the text is unchanged from\n // the previous open, then populate after render completes.\n this._liveRegionText = \"\";\n renderFinished().then(() => this._announceCurrentOrFirst()).catch(() => {});\n\n this.fireEventDropdownOpen();\n }\n\n /**\n * Announces the currently active descendant item (if set), or the first\n * navigable item as a fallback. Used on open and after state changes.\n */\n _announceCurrentOrFirst(): void {\n const items = this._list?.getKeyboardNavigationItems();\n if (!items?.length) { return; }\n const item = this._activeDescendantItem ?? items.find(i => !i.nonInteractive || i.collapsible) ?? items[0];\n if (!item) { return; }\n const label = cleanLabel(item.label ?? \"\");\n const stateParts = this._itemStateLabels(item);\n const posText = this._treePositionText(item);\n this._liveRegionText = [label, posText, ...stateParts].filter(Boolean).join(\", \");\n }\n\n /**\n * Returns the positional announcement text for an item, tree-aware when the\n * list has groups. Matches the JAWS reading pattern of FilterMenu:\n * group header → \"level 0, X of Y\" (Y = total navigable groups)\n * group child → \"level 1, X of Y\" (Y = siblings in that group)\n * flat item → \"X of Y\" (Y = total items, no level prefix)\n */\n _treePositionText(item: UDExListItemBase): string {\n if (!this.isTreeStructure) {\n const items = this._list?.getKeyboardNavigationItems() ?? [];\n const pos = items.indexOf(item);\n return pos >= 0 ? `${pos + 1} of ${items.length}` : \"\";\n }\n\n if (item.isGroup) {\n // Position among navigable group headers.\n const groups = (this._list?.getKeyboardNavigationItems() ?? []).filter(i => i.isGroup);\n const pos = groups.indexOf(item);\n return pos >= 0 ? `level 0, ${pos + 1} of ${groups.length}` : \"level 0\";\n }\n\n // Child item — find parent group and count siblings visible in navigation.\n const parentGroup = item.parentElement as UDExListItemBase | null;\n if (parentGroup?.isGroup) {\n const navItems = this._list?.getKeyboardNavigationItems() ?? [];\n const siblings = navItems.filter(i => !i.isGroup && i.parentElement === parentGroup);\n const pos = siblings.indexOf(item);\n return pos >= 0 ? `level 1, ${pos + 1} of ${siblings.length}` : \"level 1\";\n }\n\n // Fallback: flat position.\n const all = this._list?.getKeyboardNavigationItems() ?? [];\n const pos = all.indexOf(item);\n return pos >= 0 ? `${pos + 1} of ${all.length}` : \"\";\n }\n\n fireEventDropdownBeforeOClose() {\n this.fireDecoratorEvent(\"before-close\");\n }\n\n fireEventDropdownBeforeOpen() {\n this.fireDecoratorEvent(\"before-open\");\n }\n\n fireEventDropdownOpen() {\n this.fireDecoratorEvent(\"open\");\n }\n\n fireEventDropdownClose() {\n this.fireDecoratorEvent(\"close\");\n }\n\n handleButtonClick() {\n if (!this.isDisabled) {\n this._search.focus();\n\n if (this._popover.open) {\n this.closeDropdown();\n } else {\n this.openDropdown();\n }\n }\n }\n\n handleInputClick() {\n if (!this.isDisabled) {\n this._search.focus();\n this.openDropdown();\n }\n }\n\n openDropdown() {\n this._popover.opener = this._trigger;\n this._popover.open = true;\n this._open = true;\n this._navigating = true;\n this._focused = false;\n }\n\n closeDropdown() {\n if (this._popover.open) {\n this._open = false;\n this._popover.open = false;\n this._navigating = false;\n }\n }\n\n inputFocusIn() {\n if (!this.isDisabled) {\n this._focused = true;\n }\n }\n\n resetSearchState() {\n this._inputValue = \"\";\n setTimeout(() => this.resetSearch(), 0);\n\n if (this.modeSingleSelect) {\n this.setSelectOption();\n }\n }\n\n setSelectOption() {\n if (!this.selectedItems[0]) {\n this._selectedOption = \"\";\n return;\n }\n\n const label = this.selectedItems[0].label;\n const ratingLabel = this.selectedItems[0].ratingCount !== undefined\n ? `${this.selectedItems[0].ratingCount} ${translate(UDExSearchableListBase, STARS)}`\n : \"\";\n this._selectedOption = label || ratingLabel;\n }\n\n updatePopoverWidth() {\n this._popover.style.setProperty(this._paneWidthVariableName, `${this._trigger.offsetWidth}px`);\n }\n\n handleImagePosition(items: UDExListItemBase[], index: number) {\n const image = items[index].querySelector<HTMLElement>(\".udex-text-field__image\");\n const imagePlaceholder = this.shadowRoot!.querySelector<HTMLElement>(\".udex-text-field__input > .udex-text-field__image\");\n\n if (imagePlaceholder) {\n imagePlaceholder.style.backgroundPosition = image?.style?.backgroundPosition || \"\";\n }\n }\n\n get hasFooter(): boolean {\n return this.footer.length > 0;\n }\n\n _getIconButtonSlot(el: HTMLElement): string | null {\n const iconSlot = el.getAttribute?.(\"slot\");\n return (iconSlot === \"firstIcon\" || iconSlot === \"secondIcon\") ? iconSlot : null;\n }\n\n /**\n * Collapses (Left) or expands (Right) a collapsible group header when the arrow key\n * is pressed while focus is on that header. Mirrors List.handleArrowLeft/Right, but is\n * needed here because SelectBox intercepts Left/Right at the popover level (for icon-row\n * navigation) before the event would reach the List's own handler.\n *\n * Returns true when a collapse/expand was handled, so the caller skips icon-row handling.\n */\n _handleGroupHeaderCollapse(target: HTMLElement, collapse: boolean): boolean {\n const header = this._resolveCollapsibleGroupHeader(target);\n if (!header) { return false; }\n\n // Left only collapses an expanded group; Right only expands a collapsed one.\n if (collapse && !header.collapsed) {\n header.collapsed = true;\n this._list.setCollapsedItems(true, header);\n renderFinished().then(() => this._announceCurrentOrFirst()).catch(() => {});\n return true;\n }\n if (!collapse && header.collapsed) {\n header.collapsed = false;\n this._list.setCollapsedItems(false, header);\n renderFinished().then(() => this._announceCurrentOrFirst()).catch(() => {});\n return true;\n }\n // Target is a collapsible header but already in the requested state — still consume\n // the key so it does not fall through to icon-row navigation.\n return header.isGroup;\n }\n\n /**\n * Resolves the collapsible group-header host from a keydown target, walking up through\n * shadow host boundaries (the focused element can be the header's inner wrapper/list-item).\n */\n _resolveCollapsibleGroupHeader(target: HTMLElement): UDExListItemBase | null {\n let node: Node | null = target;\n while (node) {\n const el = node as UDExListItemBase;\n if (el.isGroup && typeof el.hasAttribute === \"function\" && el.hasAttribute(\"collapsible\")) {\n return el;\n }\n const root = node.getRootNode() as ShadowRoot | Document;\n node = (root as ShadowRoot).host ?? null;\n }\n return null;\n }\n\n _handleArrowRightInRow(target: HTMLElement): void {\n const iconSlot = this._getIconButtonSlot(target);\n if (!iconSlot) {\n const firstIcon = target.querySelector<HTMLElement>(\"[slot=\\\"firstIcon\\\"]\");\n if (firstIcon) {\n // Entering icon row: clear the active descendant ring so the list item\n // doesn't show two simultaneous outlines alongside the icon's :focus ring.\n this._setActiveDescendant(null);\n firstIcon.focus();\n }\n return;\n }\n if (iconSlot === \"firstIcon\") {\n const parentItem = target.parentElement;\n if (parentItem) {\n const secondIcon = parentItem.querySelector<HTMLElement>(\"[slot=\\\"secondIcon\\\"]\");\n secondIcon?.focus();\n }\n }\n }\n\n _handleArrowLeftInRow(target: HTMLElement): void {\n const iconSlot = this._getIconButtonSlot(target);\n if (!iconSlot) { return; }\n const parentItem = target.parentElement;\n if (!parentItem) { return; }\n if (iconSlot === \"secondIcon\") {\n const firstIcon = parentItem.querySelector<HTMLElement>(\"[slot=\\\"firstIcon\\\"]\");\n firstIcon?.focus();\n } else if (iconSlot === \"firstIcon\") {\n // Return to the list item: restore the active descendant ring and return\n // DOM focus to the input so the icon's :focus ring is cleared.\n const navItems = this._list?.getKeyboardNavigationItems();\n const tokenId = this.getDataTokenId(parentItem as UDExListItemBase);\n const renderedItem = navItems?.find(i => (i.getAttribute(\"data-token-id\") ?? i._id) === tokenId);\n if (renderedItem) {\n this._setActiveDescendant(renderedItem);\n } else {\n this._list.focusItem(parentItem as UDExListItemBase);\n }\n (this._search as HTMLElement).focus();\n }\n }\n\n _handleListKeyDownCapture(e: KeyboardEvent): void {\n const target = e.target as HTMLElement;\n if (!this._getIconButtonSlot(target)) { return; }\n if (!isDown(e) && !isUp(e)) { return; }\n\n const items = this._list?.getKeyboardNavigationItems();\n if (!items?.length) { return; }\n\n e.stopImmediatePropagation();\n e.preventDefault();\n\n const parentItem = target.parentElement as UDExListItemBase | null;\n if (!parentItem) { return; }\n\n const currentIndex = this._list.getCurrentIndex(items, parentItem);\n if (currentIndex < 0) { return; }\n\n const lastItemIndex = items.length - 1;\n let targetIndex: number;\n\n if (isDown(e)) {\n const nextIndex = currentIndex + 1 > lastItemIndex ? 0 : currentIndex + 1;\n const isNonInteractive = items[nextIndex].nonInteractive && !items[nextIndex].collapsible;\n const wrappedNext = nextIndex + 1 > lastItemIndex ? 0 : nextIndex + 1;\n targetIndex = isNonInteractive ? wrappedNext : nextIndex;\n } else {\n const prevIndex = currentIndex - 1 < 0 ? lastItemIndex : currentIndex - 1;\n const isNonInteractive = items[prevIndex].nonInteractive && !items[prevIndex].collapsible;\n const wrappedPrev = prevIndex === 0 ? lastItemIndex : prevIndex - 1;\n targetIndex = isNonInteractive ? wrappedPrev : prevIndex;\n }\n\n this._list.unsetTabIndexByIndex(items, currentIndex);\n this._list.setTabIndexByIndex(items, targetIndex);\n this._setActiveDescendant(items[targetIndex]);\n this._selectedOption = items[targetIndex].label;\n }\n\n _focusLastListItem() {\n const items = this._list?.getKeyboardNavigationItems();\n if (!items || items.length === 0) {\n (this._search as HTMLElement).focus();\n return;\n }\n const lastIndex = items.length - 1;\n this._list.setTabIndexByIndex(items, lastIndex);\n this._selectedOption = items[lastIndex].label;\n this._setActiveDescendant(items[lastIndex]);\n // Return DOM focus to the search input (aria-activedescendant model).\n (this._search as HTMLElement).focus();\n }\n\n _firstFocusableIn(el: Element | undefined): HTMLElement | null {\n if (!(el instanceof HTMLElement)) { return null; }\n if (el.tabIndex >= 0 && !el.hidden && !(el as HTMLElement & { disabled?: boolean }).disabled && (!!el.offsetParent || el.matches(\"body\"))) {\n return el;\n }\n return Array.from(el.children).reduce<HTMLElement | null>(\n (found, child) => found ?? this._firstFocusableIn(child), null,\n );\n }\n\n _moveFocusAfterComponent() {\n const findAndFocus = (from: Element) => {\n let node: Element | null = from;\n while (node && node !== document.documentElement) {\n let sibling = node.nextElementSibling;\n while (sibling) {\n const focusable = this._firstFocusableIn(sibling);\n if (focusable) {\n focusable.focus();\n return;\n }\n sibling = sibling.nextElementSibling;\n }\n node = node.parentElement;\n }\n };\n\n findAndFocus(this);\n }\n\n /**\n * Builds the state portion of the live region announcement for a navigation item.\n * Returns an array of state strings (e.g. [\"collapsed\", \"Checked\"]) to be joined\n * with the label and position. Handles:\n * - collapsible group headers: expanded / collapsed\n * - MultiSelect: Checked / Unchecked / Indeterminate\n * - SingleSelect (tree): Selected / Unselected\n * - disabled: Disabled\n */\n _itemStateLabels(item: UDExListItemBase): string[] {\n const parts: string[] = [];\n\n if (item.collapsible) {\n // Use plain English — matches what AT announce for aria-expanded.\n parts.push(item.expanded ? \"expanded\" : \"collapsed\");\n }\n\n if (item.disabled) {\n parts.push(translate(UDExSearchableListBase, DISABLED));\n } else if (item.modeMultiSelect || (item.isGroup && this.modeMultiSelect)) {\n if (item.indeterminate) {\n parts.push(translate(UDExSearchableListBase, INDETERMINATE));\n } else {\n parts.push(translate(UDExSearchableListBase, item.selected ? SELECTED : UNSELECTED));\n }\n } else if (this.isTreeStructure && item.selected) {\n // SingleSelect tree: only announce \"Selected\" when the item is actually selected.\n parts.push(translate(UDExSearchableListBase, SELECTED));\n }\n\n return parts;\n }\n\n get ariaDescribedbyText(): string {\n if (this.modeSingleSelect) {\n return this._navigating ? \"\" : this._selectedOption;\n }\n const tags = this.selectedItems.filter(item => !item.isGroup);\n // Tokenizer.i18nBundle may not be loaded yet on direct page load.\n // Return empty string until the bundle is available; the component re-renders\n // once i18n is ready and will pick up the correct text.\n if (!Tokenizer.i18nBundle) {\n return \"\";\n }\n return getTokensCountText(tags.length);\n }\n\n get trigger(): HTMLElement {\n return this.shadowRoot!.querySelector(\".udex-text-field__wrap\")!;\n }\n\n get isDisabled(): boolean {\n return this.readonly || this.displayonly || this.disabled;\n }\n\n get labelClass(): string {\n const baseClass = this._labelBaseClass;\n const isActive = [\n this._inputValue,\n this._focused,\n this._open,\n this._selectedOption,\n this.hasSelectedItems,\n ].some(Boolean);\n return isActive ? `${baseClass} ${baseClass}_active` : baseClass;\n }\n\n get isReadOrDisplayOnly(): boolean {\n return this.readonly || this.displayonly;\n }\n\n get hasSelectedItems(): boolean {\n return this.selectedItems.length > 0;\n }\n\n get additionalClassName(): string {\n return this._stickyClass;\n }\n\n get accInfo(): { ariaLabel: string } {\n return {\n \"ariaLabel\": getAllAccessibleNameRefTexts(this) || this.accessibleName || this.label || translate(UDExSelectBase, COUNTRY_SELECT),\n };\n }\n\n get popoverId(): string {\n return `${this._id}_${this._dropdownClass}`;\n }\n\n get listboxRole(): AriaHasPopup {\n return this.isTreeStructure ? \"tree\" : this._listBoxRole;\n }\n\n get listAriaControlsId(): string {\n return this._list?.id || this.popoverId;\n }\n\n override get _activeDescendantMode(): boolean {\n return true;\n }\n\n override get isTreeStructure(): boolean {\n return this._filteredItems.some(e => e.isGroup);\n }\n\n get hideDropdownSearch(): boolean {\n return true;\n }\n\n get showImageFlags(): boolean {\n return false;\n }\n\n get searchableList() {\n this.defaultAccessibleRole = this._listBoxRole;\n return executeTemplate(UDExSelectBase.searchableListBaseTemplate, this);\n }\n\n get countryFlag() {\n return executeTemplate(UDExSelectBase.countryFlagTemplate, this);\n }\n\n static get countryFlagTemplate() {\n return CountrySelectorTemplate;\n }\n\n static get searchableListBaseTemplate() {\n return SearchableListBaseTemplate;\n }\n}\n\nexport default UDExSelectBase;\nexport type { UDExSelectBaseEvents };\n"]}
|
|
1
|
+
{"version":3,"file":"SelectBase.js","sourceRoot":"","sources":["../src/SelectBase.ts"],"names":[],"mappings":"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","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport type { ChangeInfo, Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport {\n isEscape, isDown, isUp, isHome, isEnd, isTabNext, isTabPrevious, isLeft, isRight, isEnter, isSpace,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getAllAccessibleNameRefTexts } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport { cleanLabel } from \"./utils/listItemLabelUtils.js\";\nimport type { UDExListItemBase } from \"./List.js\";\nimport type Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport type UDExList from \"./List.js\";\nimport type UDExSearch from \"./Search.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport {\n COUNTRY_SELECT, STARS, SELECTED, UNSELECTED, INDETERMINATE, DISABLED,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport SearchableListBaseTemplate from \"./SearchableListBaseTemplate.js\";\nimport CountrySelectorTemplate from \"./CountrySelectorTemplate.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/delegate/ResizeHandler.js\";\nimport UDExSearchableListBase from \"./SearchableListBase.js\";\nimport UDExValueState from \"./types/common.js\";\nimport type { UDExSearchableListBaseEvents } from \"./SearchableListBase.js\";\nimport Tokenizer, { getTokensCountText } from \"@ui5/webcomponents/dist/Tokenizer.js\";\nimport isLetterKey from \"./utils/isLetterKeyPressed.js\";\nimport translate from \"./utils/translate.js\";\nimport type { AriaAutoComplete, AriaHasPopup } from \"@ui5/webcomponents-base/dist/types.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\n\ntype UDExSelectBaseEvents = {\n \"open\": void,\n \"close\": void,\n \"before-close\": void,\n \"before-open\": void,\n} & UDExSearchableListBaseEvents;\n\n/**\n * @class\n *\n * A class to serve as a foundation\n * for the <code>UDExCountrySelector</code> and <code>UDExSelectBox</code> classes.\n *\n * @constructor\n * @extends UDExSearchableListBase\n * @public\n */\n\nclass UDExSelectBase extends UDExSearchableListBase {\n eventDetails!: UDExSelectBaseEvents;\n\n /**\n * Defines whether the component is required.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Defines whether the component is in disabled state.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines label text for field container.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n label!: string;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default undefined\n * @public\n */\n @property()\n accessibleName?: string;\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default undefined\n * @public\n */\n @property()\n accessibleNameRef?: string;\n\n /**\n * Defines whether the component is read-only.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Defines the value state of the trigger container.\n *\n * @default \"Standard\"\n * @public\n */\n @property()\n valueState: `${UDExValueState}` = UDExValueState.Standard;\n\n /**\n * Defines supporting text under the trigger container.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n supportingText?: string;\n\n /**\n * @private\n */\n @property({ type: String, noAttribute: true })\n _direction?: string;\n\n /**\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _focused!: boolean;\n\n /**\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _open: boolean = false;\n\n /**\n * Defines selected option for Single Select Mode.\n *\n * @default undefined\n * @private\n */\n @property()\n _selectedOption!: string;\n\n /**\n * Defines if the component should reset.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n _requestRender = false;\n\n /**\n * True while keyboard list navigation is active (aria-activedescendant set).\n * Used in CSS to suppress the input focus ring and show the active item ring.\n *\n * @private\n */\n @property({ type: Boolean })\n _navigating: boolean = false;\n\n /**\n * Text read by screen readers when the active item changes.\n * Announced via an aria-live=\"assertive\" region in the template.\n * This works regardless of shadow DOM / popover teleportation because\n * the live region lives inside SelectBox's own shadow root.\n *\n * @private\n */\n @property({ type: String, noAttribute: true })\n _liveRegionText: string = \"\";\n\n /**\n * Defines the footer content for the component dropdown.\n * Place any content (e.g. an action button) here. Clicking footer content does not close the dropdown —\n * use the <code>close</code> method if needed.\n *\n * @public\n */\n @slot({ type: HTMLElement })\n footer!: Slot<HTMLElement>;\n\n _paneWidthVariableName = \"--udex-dropdown-pane-width\";\n _labelBaseClass = \"udex-text-field__label\";\n _dropdownClass = \"udex-select-box__dropdown\";\n _listBoxRole: AriaHasPopup = \"listbox\";\n _rootClass = \"udex-select-box__root\";\n _stickyClass = \"udex-list__sticky\";\n _ariaAutoComplete: AriaAutoComplete = \"list\";\n _trigger!: HTMLElement;\n _search!: UDExSearch | HTMLInputElement;\n _popover!: Popover;\n _list!: UDExList;\n _inputValue: string = \"\";\n _lastSelectedItemId: string = \"\";\n _handleResizeBound: ResizeObserverCallback;\n _handleListKeyDownBound: (e: KeyboardEvent) => void;\n _listKeyDownListenerAdded: boolean = false;\n _activeDescendantItem: UDExListItemBase | null = null;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n this._handleListKeyDownBound = this._handleListKeyDownCapture.bind(this);\n }\n\n onEnterDOM() {\n ResizeHandler.register(this, this._handleResizeBound);\n if (this.modeSingleSelect && this.hasSelectedItems) {\n this.setSelectOption();\n }\n }\n\n onExitDOM() {\n ResizeHandler.deregister(this, this._handleResizeBound);\n if (this._list && this._listKeyDownListenerAdded) {\n this._list.removeEventListener(\"keydown\", this._handleListKeyDownBound, { capture: true });\n this._listKeyDownListenerAdded = false;\n }\n }\n\n onInvalidation({ name }: ChangeInfo): void {\n if (name === \"default\" && this.modeSingleSelect && !this._inputValue) {\n this.setSelectOption();\n }\n }\n\n onAfterRendering() {\n super.onAfterRendering();\n this._popover = this.getPopover();\n this._search = this.getSearch();\n this._list = this.getList();\n this._trigger = this.trigger;\n this.handleDirection();\n\n if (this._list) {\n this._list._scrollIntoView = \"Nearest\";\n // Set a stable HTML id on the udex-list host so aria-controls can reference it.\n if (!this._list.id) {\n this._list.id = `${this._id}-list`;\n }\n }\n\n if (this._requestRender) {\n this._requestRender = false;\n }\n\n if (!this._listKeyDownListenerAdded && this._list) {\n this._list.addEventListener(\"keydown\", this._handleListKeyDownBound, { capture: true });\n this._listKeyDownListenerAdded = true;\n }\n }\n\n _handleResize() {\n this.updatePopoverWidth();\n }\n\n /**\n * Given a candidate index, skips over a non-interactive non-collapsible header if needed.\n * Returns the effective target index.\n */\n _skipNonInteractive(items: UDExListItemBase[], raw: number, lastIndex: number, direction: \"down\" | \"up\"): number {\n if (!items[raw]?.nonInteractive || items[raw].collapsible) {\n return raw;\n }\n if (direction === \"down\") {\n return raw + 1 > lastIndex ? 0 : raw + 1;\n }\n return raw === 0 ? lastIndex : raw - 1;\n }\n\n /**\n * Sets or clears the aria-activedescendant on the combobox input and updates\n * the aria-live region so JAWS/VoiceOver announce the item name and position.\n * The live region is the primary announcement mechanism because aria-activedescendant\n * across a UI5 Popover (which teleports content to document.body) is unreliable —\n * screen readers cannot follow the ID reference across shadow root boundaries.\n */\n _setActiveDescendant(item: UDExListItemBase | null, scroll = true): void {\n this._activeDescendantItem = item;\n\n // Query the SelectBox's OWN shadow DOM for all elements bearing the class —\n // this reaches the rendered udex-list-group-header / udex-list-item elements\n // regardless of whether they are the current or a previously stale instance.\n this.shadowRoot?.querySelectorAll<HTMLElement>(\"._udex-active-descendant\")\n .forEach(el => {\n el.classList.remove(\"_udex-active-descendant\");\n el.removeAttribute(\"_active-descendant\");\n });\n\n if (!item) {\n (this._search as HTMLElement).removeAttribute(\"aria-activedescendant\");\n this._liveRegionText = \"\";\n return;\n }\n\n item.classList.add(\"_udex-active-descendant\");\n item.setAttribute(\"_active-descendant\", \"\");\n (this._search as HTMLElement).setAttribute(\"aria-activedescendant\", item._id);\n\n // Update the live region with tree-aware position and state so JAWS/VoiceOver\n // announce the active item regardless of whether the popover is teleported to document.body.\n if (this._list) {\n const label = cleanLabel(item.label ?? \"\");\n const supporting = item.supportingText ? cleanLabel(item.supportingText) : \"\";\n const stateParts = this._itemStateLabels(item);\n const posText = this._treePositionText(item);\n this._liveRegionText = [label, supporting, posText, ...stateParts].filter(Boolean).join(\", \");\n }\n\n if (scroll && this._list?._scrollIntoView) {\n // Only scroll if the item is not already fully visible in the dropdown.\n const popoverContent = this._popover?.shadowRoot?.querySelector<HTMLElement>(\"[part=content]\");\n if (popoverContent) {\n const itemRect = item.getBoundingClientRect();\n const containerRect = popoverContent.getBoundingClientRect();\n const isVisible = itemRect.top >= containerRect.top && itemRect.bottom <= containerRect.bottom;\n if (!isVisible) {\n this._list.scrollToItem(item);\n }\n } else {\n this._list.scrollToItem(item);\n }\n }\n }\n\n /**\n * Activates the first navigable item as the aria-activedescendant without moving DOM focus.\n */\n _activateFirstItem(): void {\n const items = this._list?.getKeyboardNavigationItems();\n if (!items?.length) { return; }\n const firstIndex = (items[0]?.nonInteractive && !items[0]?.collapsible) ? 1 : 0;\n this._list.setTabIndexByIndex(items, firstIndex);\n this._setActiveDescendant(items[firstIndex], false);\n }\n\n /**\n * Navigates to the item at the given index, updating aria-activedescendant and _selectedOption.\n */\n _navigateToIndex(items: UDExListItemBase[], nextIndex: number): void {\n const currentIndex = this._activeDescendantItem\n ? this._list.getCurrentIndex(items, this._activeDescendantItem)\n : -1;\n if (currentIndex >= 0) {\n this._list.unsetTabIndexByIndex(items, currentIndex);\n }\n this._list.setTabIndexByIndex(items, nextIndex);\n this._selectedOption = items[nextIndex].label;\n if (this.showImageFlags) {\n this.handleImagePosition(items, nextIndex);\n }\n this._setActiveDescendant(items[nextIndex]);\n }\n\n handleKeyDownDropdown(e: KeyboardEvent) {\n const items = this._list?.getKeyboardNavigationItems();\n\n if (isLetterKey(e.key)) {\n this.handleLetterKeyPress(e);\n return;\n }\n\n if (this.hasFooter) {\n const isInFooter = (e.target as HTMLElement).closest?.(\"[slot=\\\"footer\\\"]\");\n if (isInFooter) {\n if (isEscape(e)) {\n this.handleEscKeyPress(e);\n return;\n }\n if (isTabNext(e)) {\n e.preventDefault();\n this.closeDropdown();\n this._moveFocusAfterComponent();\n return;\n }\n if (isTabPrevious(e)) {\n e.preventDefault();\n this._focusLastListItem();\n return;\n }\n return;\n }\n\n if (isTabNext(e)) {\n e.preventDefault();\n (this._firstFocusableIn(this.footer[0]) ?? this.footer[0])?.focus();\n return;\n }\n }\n\n if (isTabPrevious(e)) {\n e.preventDefault();\n this._search.focus();\n return;\n }\n\n if (isTabNext(e)) {\n e.preventDefault();\n this.closeDropdown();\n this._moveFocusAfterComponent();\n return;\n }\n\n if (isEscape(e)) {\n this.handleEscKeyPress(e);\n return;\n }\n\n if (!items) {\n return;\n }\n\n if (isRight(e) || isLeft(e)) {\n e.preventDefault();\n // Resolve the collapsible group header from the active descendant (not e.target,\n // since DOM focus stays on the input and e.target is the input element).\n const activeHeader = this._activeDescendantItem\n ? this._resolveCollapsibleGroupHeader(this._activeDescendantItem as unknown as HTMLElement)\n : null;\n if (activeHeader && this._handleGroupHeaderCollapse(activeHeader as unknown as HTMLElement, isLeft(e))) {\n return;\n }\n // Fall through to icon-row navigation when focus is on an icon button\n if (isRight(e)) {\n this._handleArrowRightInRow(e.target as HTMLElement);\n } else {\n this._handleArrowLeftInRow(e.target as HTMLElement);\n }\n return;\n }\n\n if (isDown(e) || isUp(e)) {\n e.preventDefault();\n const lastIndex = items.length - 1;\n const currentItem = this._activeDescendantItem;\n const currentIndex = currentItem ? this._list.getCurrentIndex(items, currentItem) : -1;\n\n let nextIndex: number;\n if (isDown(e)) {\n const raw = currentIndex + 1 > lastIndex ? 0 : currentIndex + 1;\n nextIndex = this._skipNonInteractive(items, raw, lastIndex, \"down\");\n } else {\n const raw = currentIndex - 1 < 0 ? lastIndex : currentIndex - 1;\n nextIndex = this._skipNonInteractive(items, raw, lastIndex, \"up\");\n }\n this._navigateToIndex(items, nextIndex);\n return;\n }\n\n if (isHome(e)) {\n e.preventDefault();\n this.handleHomeKeyPress(items);\n return;\n }\n\n if (isEnd(e)) {\n e.preventDefault();\n this.handleEndKeyPress(items, items.length - 1);\n }\n\n // Icon-button slot: Up/Down while an icon button is focused (handled by capture listener).\n // _handleListKeyDownCapture fires first via capture; nothing else needed here.\n }\n\n handleEndKeyPress(items: UDExListItemBase[], lastItemIndex: number) {\n this._navigateToIndex(items, lastItemIndex);\n }\n\n handleHomeKeyPress(items: UDExListItemBase[]) {\n const firstIndex = (items[0]?.nonInteractive && !items[0]?.collapsible) ? 1 : 0;\n this._navigateToIndex(items, firstIndex);\n }\n\n handleDownKeyPress(items: UDExListItemBase[], currentSelectedIndex: number, lastItemIndex: number) {\n const nextIndex = currentSelectedIndex + 1;\n const nextSelectIndex = nextIndex > lastItemIndex ? 0 : nextIndex;\n const isNonInteractive = items[nextSelectIndex].nonInteractive && !items[nextSelectIndex].collapsible;\n\n if (isNonInteractive) {\n const skipIndex = nextSelectIndex + 1 > lastItemIndex ? 0 : nextSelectIndex + 1;\n this._selectedOption = items[skipIndex].label;\n if (this.showImageFlags) {\n this.handleImagePosition(items, skipIndex);\n }\n return;\n }\n\n this._selectedOption = items[nextSelectIndex].label;\n\n if (this.showImageFlags) {\n this.handleImagePosition(items, nextSelectIndex);\n }\n }\n\n handleUpKeyPress(items: UDExListItemBase[], currentSelectedIndex: number, lastItemIndex: number) {\n const prevIndex = currentSelectedIndex - 1;\n const previousSelectIndex = prevIndex < 0 ? lastItemIndex : prevIndex;\n const isNonInteractive = items[previousSelectIndex].nonInteractive && !items[previousSelectIndex].collapsible;\n\n if (isNonInteractive) {\n const skipIndex = previousSelectIndex === 0 ? lastItemIndex : previousSelectIndex - 1;\n this._selectedOption = items[skipIndex].label;\n if (this.showImageFlags) {\n this.handleImagePosition(items, skipIndex);\n }\n return;\n }\n\n this._selectedOption = items[previousSelectIndex].label;\n\n if (this.showImageFlags) {\n this.handleImagePosition(items, previousSelectIndex);\n }\n }\n\n handleLetterKeyPress(e: KeyboardEvent) {\n e.stopPropagation();\n e.preventDefault();\n this._selectedOption = \"\";\n this._inputValue = e.key;\n this._search.value = e.key;\n this._search.focus();\n this.onSearch(this._search.value);\n }\n\n handleEscKeyPress(e: KeyboardEvent) {\n e.preventDefault();\n e.stopPropagation();\n this._setActiveDescendant(null);\n this.closeDropdown();\n this._search.focus();\n this._selectedOption = \"\";\n }\n\n handleItemSelection(e:CustomEvent) {\n this.onItemPress(e);\n const item = e.detail.item as UDExListItemBase;\n this._lastSelectedItemId = this.getDataTokenId(item);\n this.resetSearchState();\n\n if (this.modeSingleSelect) {\n // SingleSelect closes the dropdown — clear active descendant.\n this._setActiveDescendant(null);\n this._search.focus();\n this.closeDropdown();\n return;\n }\n\n // MultiSelect: ensure active descendant tracks the interacted item so there\n // is only one ring. Find the rendered item in the navigation list by matching\n // data-token-id (the source item's _id set by the template) since e.detail.item\n // is the source element, not the rendered udex-list-item.\n const tokenId = this.getDataTokenId(item);\n const navItems = this._list?.getKeyboardNavigationItems();\n const renderedItem = navItems?.find(\n i => (i.getAttribute(\"data-token-id\") ?? i._id) === tokenId,\n );\n if (renderedItem && renderedItem !== this._activeDescendantItem) {\n this._setActiveDescendant(renderedItem);\n }\n\n // Return DOM focus to the input so the clicked item loses its :focus ring.\n // Without this, the browser keeps focus on the item (from the click) and a\n // second ring appears when arrow keys move _activeDescendantItem elsewhere.\n (this._search as HTMLElement).focus();\n\n // Re-announce with the updated checked/unchecked state. The rendered item's\n // `selected` prop is updated on the next render cycle (template re-render),\n // so we wait for it before re-reading state labels.\n renderFinished().then(() => this._announceCurrentOrFirst()).catch(() => {});\n }\n\n onKeyDownSearch(e: KeyboardEvent) {\n const items = this._list?.getKeyboardNavigationItems();\n const hasItems = items && items.length > 0;\n const popoverOpened = this._popover.open;\n if (!isEscape(e) || popoverOpened) {\n e.stopPropagation();\n }\n const isEscAndPopoverOpened = isEscape(e) && popoverOpened;\n const isDownAndPopoverClosed = isDown(e) && !popoverOpened;\n const isDownAndPopoverOpened = isDown(e) && popoverOpened;\n const isUpAndPopoverOpened = isUp(e) && popoverOpened;\n\n // Tab while popup is open: move focus to the first footer element if one exists,\n // otherwise close the dropdown and move past the component.\n if (popoverOpened && isTabNext(e)) {\n e.preventDefault();\n if (this.hasFooter) {\n this._setActiveDescendant(null);\n (this._firstFocusableIn(this.footer[0]) ?? this.footer[0])?.focus();\n } else {\n this.closeDropdown();\n this._moveFocusAfterComponent();\n }\n return;\n }\n\n // Shift+Tab while popup is open: close the dropdown.\n // DOM focus stays on the search input throughout (our aria-activedescendant model\n // never moves focus away from the input), so no explicit re-focus is needed.\n if (popoverOpened && isTabPrevious(e)) {\n e.preventDefault();\n this._setActiveDescendant(null);\n this.closeDropdown();\n return;\n }\n\n if (!hasItems) {\n return;\n }\n\n const firstIndex = (items[0]?.nonInteractive && !items[0]?.collapsible) ? 1 : 0;\n\n if (isEscAndPopoverOpened) {\n return this.closeDropdown();\n }\n\n if (isDownAndPopoverClosed) {\n e.preventDefault();\n this.openDropdown();\n this._activateFirstItem();\n if (this.showImageFlags) {\n this.handleImagePosition(items, firstIndex);\n }\n return;\n }\n\n if (isDownAndPopoverOpened) {\n e.preventDefault();\n if (this._activeDescendantItem) {\n const lastIndex = items.length - 1;\n const currentIndex = this._list.getCurrentIndex(items, this._activeDescendantItem);\n const raw = currentIndex + 1 > lastIndex ? 0 : currentIndex + 1;\n const nextIndex = this._skipNonInteractive(items, raw, lastIndex, \"down\");\n this._navigateToIndex(items, nextIndex);\n } else {\n this._activateFirstItem();\n // Also update _selectedOption so the input reflects the active item.\n const activeIdx = (items[0]?.nonInteractive && !items[0]?.collapsible) ? 1 : 0;\n this._selectedOption = items[activeIdx].label;\n if (this.showImageFlags) {\n this.handleImagePosition(items, activeIdx);\n }\n }\n return;\n }\n\n if (isUpAndPopoverOpened) {\n e.preventDefault();\n if (this._activeDescendantItem) {\n const lastIndex = items.length - 1;\n const currentIndex = this._list.getCurrentIndex(items, this._activeDescendantItem);\n const raw = currentIndex - 1 < 0 ? lastIndex : currentIndex - 1;\n const nextIndex = this._skipNonInteractive(items, raw, lastIndex, \"up\");\n this._navigateToIndex(items, nextIndex);\n } else {\n this._navigateToIndex(items, items.length - 1);\n }\n return;\n }\n\n if (popoverOpened && isHome(e)) {\n e.preventDefault();\n const homeIndex = (items[0]?.nonInteractive && !items[0]?.collapsible) ? 1 : 0;\n this._navigateToIndex(items, homeIndex);\n return;\n }\n\n if (popoverOpened && isEnd(e)) {\n e.preventDefault();\n this._navigateToIndex(items, items.length - 1);\n return;\n }\n\n // Enter/Space: select the active descendant item (or toggle for MultiSelect).\n if (popoverOpened && this._activeDescendantItem && (isEnter(e) || isSpace(e))) {\n e.preventDefault();\n const activeItem = this._activeDescendantItem;\n if (activeItem.isGroup) {\n // Group header: fire header-press (same event the click handler fires) so\n // handleHeaderPress → onHeaderPress → handleGroupHeaderSelection runs.\n activeItem.fireDecoratorEvent(\"header-press\", { item: activeItem });\n } else {\n // Leaf item: fire item-press so the list handles selection consistently.\n // Do NOT toggle .selected directly — handleItemClick (called via onItemPress)\n // handles the toggle, and double-toggling would be a no-op.\n activeItem.fireDecoratorEvent(\"item-press\", {\n selected: activeItem.selected,\n item: activeItem,\n });\n }\n return;\n }\n\n // Left/Right: collapse/expand the active group header when popup is open.\n if (popoverOpened && (isLeft(e) || isRight(e))) {\n e.preventDefault();\n const activeHeader = this._activeDescendantItem\n ? this._resolveCollapsibleGroupHeader(this._activeDescendantItem as unknown as HTMLElement)\n : null;\n if (activeHeader) {\n this._handleGroupHeaderCollapse(activeHeader as unknown as HTMLElement, isLeft(e));\n return;\n }\n // Fall through to icon-row navigation when the active item has icon slots.\n if (this._activeDescendantItem) {\n if (isRight(e)) {\n this._handleArrowRightInRow(this._activeDescendantItem as unknown as HTMLElement);\n } else {\n this._handleArrowLeftInRow(this._activeDescendantItem as unknown as HTMLElement);\n }\n }\n return;\n }\n\n // Sync _selectedOption display for the first item (used when popover just opened via click).\n if (!this._activeDescendantItem && hasItems) {\n this._selectedOption = items[firstIndex].label;\n }\n }\n\n handleSearchChange(e: InputEvent) {\n const inputValue = (e.target as HTMLInputElement)?.value || \"\";\n this._inputValue = inputValue;\n\n if (inputValue) {\n this._selectedOption = \"\";\n }\n\n this.onSearch(inputValue);\n\n if (!this._popover.open) {\n this.openDropdown();\n }\n }\n\n override onSearch(value: string): void {\n super.onSearch(value);\n // Route search result count into the shared live region so SelectBox\n // only needs one aria-live span (no separate polite span in the template).\n if (this._accSearchResultInfo) {\n this._liveRegionText = this._accSearchResultInfo;\n }\n }\n\n handleDirection() {\n const directionStyles = window.getComputedStyle(this).getPropertyValue(\"direction\");\n this._direction = directionStyles || \"ltr\";\n }\n\n handleDropdownBeforeClose() {\n this._handleDropdownScroll();\n this.fireEventDropdownBeforeOClose();\n }\n\n dropdownBeforeOpen() {\n if (this.height) {\n this._setContentHeight();\n }\n this.fireEventDropdownBeforeOpen();\n }\n\n handleDropdownOpen() {\n // Clear first so the live-region mutation fires even if text is unchanged.\n this._liveRegionText = \"\";\n // Defer scroll and announcement until rendering settles.\n // Calling _handleDropdownScroll synchronously causes getBoundingClientRect\n // to read mid-transition positions (e.g. the max-height animation on\n // collapsible group headers), producing an incorrect scroll offset.\n // The expand step modifies reactive properties that trigger a new render,\n // so a second renderFinished is needed before measuring scroll positions.\n renderFinished().then(() => {\n this._expandCollapsedGroupsWithSelection();\n return renderFinished();\n }).then(() => {\n this._handleDropdownScroll();\n this._announceCurrentOrFirst();\n }).catch(() => {});\n\n this.fireEventDropdownOpen();\n }\n\n /**\n * Announces the currently active descendant item (if set), or the first\n * navigable item as a fallback. Used on open and after state changes.\n */\n _announceCurrentOrFirst(): void {\n const items = this._list?.getKeyboardNavigationItems();\n if (!items?.length) { return; }\n const item = this._activeDescendantItem ?? items.find(i => !i.nonInteractive || i.collapsible) ?? items[0];\n if (!item) { return; }\n const label = cleanLabel(item.label ?? \"\");\n const stateParts = this._itemStateLabels(item);\n const posText = this._treePositionText(item);\n this._liveRegionText = [label, posText, ...stateParts].filter(Boolean).join(\", \");\n }\n\n /**\n * Returns the positional announcement text for an item, tree-aware when the\n * list has groups. Matches the JAWS reading pattern of FilterMenu:\n * group header → \"level 0, X of Y\" (Y = total navigable groups)\n * group child → \"level 1, X of Y\" (Y = siblings in that group)\n * flat item → \"X of Y\" (Y = total items, no level prefix)\n */\n _treePositionText(item: UDExListItemBase): string {\n if (!this.isTreeStructure) {\n const items = this._list?.getKeyboardNavigationItems() ?? [];\n const pos = items.indexOf(item);\n return pos >= 0 ? `${pos + 1} of ${items.length}` : \"\";\n }\n\n if (item.isGroup) {\n // Position among navigable group headers.\n const groups = (this._list?.getKeyboardNavigationItems() ?? []).filter(i => i.isGroup);\n const pos = groups.indexOf(item);\n return pos >= 0 ? `level 0, ${pos + 1} of ${groups.length}` : \"level 0\";\n }\n\n // Child item — find parent group and count siblings visible in navigation.\n const parentGroup = item.parentElement as UDExListItemBase | null;\n if (parentGroup?.isGroup) {\n const navItems = this._list?.getKeyboardNavigationItems() ?? [];\n const siblings = navItems.filter(i => !i.isGroup && i.parentElement === parentGroup);\n const pos = siblings.indexOf(item);\n return pos >= 0 ? `level 1, ${pos + 1} of ${siblings.length}` : \"level 1\";\n }\n\n // Fallback: flat position.\n const all = this._list?.getKeyboardNavigationItems() ?? [];\n const pos = all.indexOf(item);\n return pos >= 0 ? `${pos + 1} of ${all.length}` : \"\";\n }\n\n fireEventDropdownBeforeOClose() {\n this.fireDecoratorEvent(\"before-close\");\n }\n\n fireEventDropdownBeforeOpen() {\n this.fireDecoratorEvent(\"before-open\");\n }\n\n fireEventDropdownOpen() {\n this.fireDecoratorEvent(\"open\");\n }\n\n fireEventDropdownClose() {\n this.fireDecoratorEvent(\"close\");\n }\n\n handleButtonClick() {\n if (!this.isDisabled) {\n this._search.focus();\n\n if (this._popover.open) {\n this.closeDropdown();\n } else {\n this.openDropdown();\n }\n }\n }\n\n handleInputClick() {\n if (!this.isDisabled) {\n this._search.focus();\n this.openDropdown();\n }\n }\n\n openDropdown() {\n this._popover.opener = this._trigger;\n this._popover.open = true;\n this._open = true;\n this._navigating = true;\n this._focused = false;\n }\n\n closeDropdown() {\n if (this._popover.open) {\n this._open = false;\n this._popover.open = false;\n this._navigating = false;\n }\n }\n\n inputFocusIn() {\n if (!this.isDisabled) {\n this._focused = true;\n }\n }\n\n resetSearchState() {\n this._inputValue = \"\";\n setTimeout(() => this.resetSearch(), 0);\n\n if (this.modeSingleSelect) {\n this.setSelectOption();\n }\n }\n\n setSelectOption() {\n if (!this.selectedItems[0]) {\n this._selectedOption = \"\";\n return;\n }\n\n const label = this.selectedItems[0].label;\n const ratingLabel = this.selectedItems[0].ratingCount !== undefined\n ? `${this.selectedItems[0].ratingCount} ${translate(UDExSearchableListBase, STARS)}`\n : \"\";\n this._selectedOption = label || ratingLabel;\n }\n\n updatePopoverWidth() {\n this._popover.style.setProperty(this._paneWidthVariableName, `${this._trigger.offsetWidth}px`);\n }\n\n handleImagePosition(items: UDExListItemBase[], index: number) {\n const image = items[index].querySelector<HTMLElement>(\".udex-text-field__image\");\n const imagePlaceholder = this.shadowRoot!.querySelector<HTMLElement>(\".udex-text-field__input > .udex-text-field__image\");\n\n if (imagePlaceholder) {\n imagePlaceholder.style.backgroundPosition = image?.style?.backgroundPosition || \"\";\n }\n }\n\n get hasFooter(): boolean {\n return this.footer.length > 0;\n }\n\n _getIconButtonSlot(el: HTMLElement): string | null {\n const iconSlot = el.getAttribute?.(\"slot\");\n return (iconSlot === \"firstIcon\" || iconSlot === \"secondIcon\") ? iconSlot : null;\n }\n\n /**\n * Collapses (Left) or expands (Right) a collapsible group header when the arrow key\n * is pressed while focus is on that header. Mirrors List.handleArrowLeft/Right, but is\n * needed here because SelectBox intercepts Left/Right at the popover level (for icon-row\n * navigation) before the event would reach the List's own handler.\n *\n * Returns true when a collapse/expand was handled, so the caller skips icon-row handling.\n */\n _handleGroupHeaderCollapse(target: HTMLElement, collapse: boolean): boolean {\n const header = this._resolveCollapsibleGroupHeader(target);\n if (!header) { return false; }\n\n // Left only collapses an expanded group; Right only expands a collapsed one.\n if (collapse && !header.collapsed) {\n header.collapsed = true;\n this._list.setCollapsedItems(true, header);\n renderFinished().then(() => this._announceCurrentOrFirst()).catch(() => {});\n return true;\n }\n if (!collapse && header.collapsed) {\n header.collapsed = false;\n this._list.setCollapsedItems(false, header);\n renderFinished().then(() => this._announceCurrentOrFirst()).catch(() => {});\n return true;\n }\n // Target is a collapsible header but already in the requested state — still consume\n // the key so it does not fall through to icon-row navigation.\n return header.isGroup;\n }\n\n /**\n * Resolves the collapsible group-header host from a keydown target, walking up through\n * shadow host boundaries (the focused element can be the header's inner wrapper/list-item).\n */\n _resolveCollapsibleGroupHeader(target: HTMLElement): UDExListItemBase | null {\n let node: Node | null = target;\n while (node) {\n const el = node as UDExListItemBase;\n if (el.isGroup && typeof el.hasAttribute === \"function\" && el.hasAttribute(\"collapsible\")) {\n return el;\n }\n const root = node.getRootNode() as ShadowRoot | Document;\n node = (root as ShadowRoot).host ?? null;\n }\n return null;\n }\n\n _handleArrowRightInRow(target: HTMLElement): void {\n const iconSlot = this._getIconButtonSlot(target);\n if (!iconSlot) {\n const firstIcon = target.querySelector<HTMLElement>(\"[slot=\\\"firstIcon\\\"]\");\n if (firstIcon) {\n // Entering icon row: clear the active descendant ring so the list item\n // doesn't show two simultaneous outlines alongside the icon's :focus ring.\n this._setActiveDescendant(null);\n firstIcon.focus();\n }\n return;\n }\n if (iconSlot === \"firstIcon\") {\n const parentItem = target.parentElement;\n if (parentItem) {\n const secondIcon = parentItem.querySelector<HTMLElement>(\"[slot=\\\"secondIcon\\\"]\");\n secondIcon?.focus();\n }\n }\n }\n\n _handleArrowLeftInRow(target: HTMLElement): void {\n const iconSlot = this._getIconButtonSlot(target);\n if (!iconSlot) { return; }\n const parentItem = target.parentElement;\n if (!parentItem) { return; }\n if (iconSlot === \"secondIcon\") {\n const firstIcon = parentItem.querySelector<HTMLElement>(\"[slot=\\\"firstIcon\\\"]\");\n firstIcon?.focus();\n } else if (iconSlot === \"firstIcon\") {\n // Return to the list item: restore the active descendant ring and return\n // DOM focus to the input so the icon's :focus ring is cleared.\n const navItems = this._list?.getKeyboardNavigationItems();\n const tokenId = this.getDataTokenId(parentItem as UDExListItemBase);\n const renderedItem = navItems?.find(i => (i.getAttribute(\"data-token-id\") ?? i._id) === tokenId);\n if (renderedItem) {\n this._setActiveDescendant(renderedItem);\n } else {\n this._list.focusItem(parentItem as UDExListItemBase);\n }\n (this._search as HTMLElement).focus();\n }\n }\n\n _handleListKeyDownCapture(e: KeyboardEvent): void {\n const target = e.target as HTMLElement;\n if (!this._getIconButtonSlot(target)) { return; }\n if (!isDown(e) && !isUp(e)) { return; }\n\n const items = this._list?.getKeyboardNavigationItems();\n if (!items?.length) { return; }\n\n e.stopImmediatePropagation();\n e.preventDefault();\n\n const parentItem = target.parentElement as UDExListItemBase | null;\n if (!parentItem) { return; }\n\n const currentIndex = this._list.getCurrentIndex(items, parentItem);\n if (currentIndex < 0) { return; }\n\n const lastItemIndex = items.length - 1;\n let targetIndex: number;\n\n if (isDown(e)) {\n const nextIndex = currentIndex + 1 > lastItemIndex ? 0 : currentIndex + 1;\n const isNonInteractive = items[nextIndex].nonInteractive && !items[nextIndex].collapsible;\n const wrappedNext = nextIndex + 1 > lastItemIndex ? 0 : nextIndex + 1;\n targetIndex = isNonInteractive ? wrappedNext : nextIndex;\n } else {\n const prevIndex = currentIndex - 1 < 0 ? lastItemIndex : currentIndex - 1;\n const isNonInteractive = items[prevIndex].nonInteractive && !items[prevIndex].collapsible;\n const wrappedPrev = prevIndex === 0 ? lastItemIndex : prevIndex - 1;\n targetIndex = isNonInteractive ? wrappedPrev : prevIndex;\n }\n\n this._list.unsetTabIndexByIndex(items, currentIndex);\n this._list.setTabIndexByIndex(items, targetIndex);\n this._setActiveDescendant(items[targetIndex]);\n this._selectedOption = items[targetIndex].label;\n }\n\n _focusLastListItem() {\n const items = this._list?.getKeyboardNavigationItems();\n if (!items || items.length === 0) {\n (this._search as HTMLElement).focus();\n return;\n }\n const lastIndex = items.length - 1;\n this._list.setTabIndexByIndex(items, lastIndex);\n this._selectedOption = items[lastIndex].label;\n this._setActiveDescendant(items[lastIndex]);\n // Return DOM focus to the search input (aria-activedescendant model).\n (this._search as HTMLElement).focus();\n }\n\n _firstFocusableIn(el: Element | undefined): HTMLElement | null {\n if (!(el instanceof HTMLElement)) { return null; }\n if (el.tabIndex >= 0 && !el.hidden && !(el as HTMLElement & { disabled?: boolean }).disabled && (!!el.offsetParent || el.matches(\"body\"))) {\n return el;\n }\n return Array.from(el.children).reduce<HTMLElement | null>(\n (found, child) => found ?? this._firstFocusableIn(child), null,\n );\n }\n\n _moveFocusAfterComponent() {\n const findAndFocus = (from: Element) => {\n let node: Element | null = from;\n while (node && node !== document.documentElement) {\n let sibling = node.nextElementSibling;\n while (sibling) {\n const focusable = this._firstFocusableIn(sibling);\n if (focusable) {\n focusable.focus();\n return;\n }\n sibling = sibling.nextElementSibling;\n }\n node = node.parentElement;\n }\n };\n\n findAndFocus(this);\n }\n\n /**\n * Builds the state portion of the live region announcement for a navigation item.\n * Returns an array of state strings (e.g. [\"collapsed\", \"Checked\"]) to be joined\n * with the label and position. Handles:\n * - collapsible group headers: expanded / collapsed\n * - MultiSelect: Checked / Unchecked / Indeterminate\n * - SingleSelect (tree): Selected / Unselected\n * - disabled: Disabled\n */\n _itemStateLabels(item: UDExListItemBase): string[] {\n const parts: string[] = [];\n\n if (item.collapsible) {\n // Use plain English — matches what AT announce for aria-expanded.\n parts.push(item.expanded ? \"expanded\" : \"collapsed\");\n }\n\n if (item.disabled) {\n parts.push(translate(UDExSearchableListBase, DISABLED));\n } else if (item.modeMultiSelect || (item.isGroup && this.modeMultiSelect)) {\n if (item.indeterminate) {\n parts.push(translate(UDExSearchableListBase, INDETERMINATE));\n } else {\n parts.push(translate(UDExSearchableListBase, item.selected ? SELECTED : UNSELECTED));\n }\n } else if (this.isTreeStructure && item.selected) {\n // SingleSelect tree: only announce \"Selected\" when the item is actually selected.\n parts.push(translate(UDExSearchableListBase, SELECTED));\n }\n\n return parts;\n }\n\n get ariaDescribedbyText(): string {\n if (this.modeSingleSelect) {\n return this._navigating ? \"\" : this._selectedOption;\n }\n const tags = this.selectedItems.filter(item => !item.isGroup);\n // Tokenizer.i18nBundle may not be loaded yet on direct page load.\n // Return empty string until the bundle is available; the component re-renders\n // once i18n is ready and will pick up the correct text.\n if (!Tokenizer.i18nBundle) {\n return \"\";\n }\n return getTokensCountText(tags.length);\n }\n\n get trigger(): HTMLElement {\n return this.shadowRoot!.querySelector(\".udex-text-field__wrap\")!;\n }\n\n get isDisabled(): boolean {\n return this.readonly || this.displayonly || this.disabled;\n }\n\n get labelClass(): string {\n const baseClass = this._labelBaseClass;\n const isActive = [\n this._inputValue,\n this._focused,\n this._open,\n this._selectedOption,\n this.hasSelectedItems,\n ].some(Boolean);\n return isActive ? `${baseClass} ${baseClass}_active` : baseClass;\n }\n\n get isReadOrDisplayOnly(): boolean {\n return this.readonly || this.displayonly;\n }\n\n get hasSelectedItems(): boolean {\n return this.selectedItems.length > 0;\n }\n\n get additionalClassName(): string {\n return this._stickyClass;\n }\n\n get accInfo(): { ariaLabel: string } {\n return {\n \"ariaLabel\": getAllAccessibleNameRefTexts(this) || this.accessibleName || this.label || translate(UDExSelectBase, COUNTRY_SELECT),\n };\n }\n\n get popoverId(): string {\n return `${this._id}_${this._dropdownClass}`;\n }\n\n get listboxRole(): AriaHasPopup {\n return this.isTreeStructure ? \"tree\" : this._listBoxRole;\n }\n\n get listAriaControlsId(): string {\n return this._list?.id || this.popoverId;\n }\n\n override get _activeDescendantMode(): boolean {\n return true;\n }\n\n override get isTreeStructure(): boolean {\n return this._filteredItems.some(e => e.isGroup);\n }\n\n get hideDropdownSearch(): boolean {\n return true;\n }\n\n get showImageFlags(): boolean {\n return false;\n }\n\n get searchableList() {\n this.defaultAccessibleRole = this._listBoxRole;\n return executeTemplate(UDExSelectBase.searchableListBaseTemplate, this);\n }\n\n get countryFlag() {\n return executeTemplate(UDExSelectBase.countryFlagTemplate, this);\n }\n\n static get countryFlagTemplate() {\n return CountrySelectorTemplate;\n }\n\n static get searchableListBaseTemplate() {\n return SearchableListBaseTemplate;\n }\n}\n\nexport default UDExSelectBase;\nexport type { UDExSelectBaseEvents };\n"]}
|
|
@@ -15,7 +15,7 @@ export default function SelectBoxTemplate() {
|
|
|
15
15
|
onHeaderPress: this.handleHeaderPress,
|
|
16
16
|
}, onBeforeOpen: this.handleDropdownBeforeOpen, onOpen: this.handleDropdownOpen, onBeforeClose: this.handleDropdownBeforeClose, onClose: this.handleDropdownClose, class: "udex-select-box__dropdown", "horizontal-align": UI5PopoverHAlign.Start, placement: UI5PopoverPlacement.Bottom, "prevent-focus-restore": true, "prevent-initial-focus": true, "hide-arrow": true, children: [this._showTagsDropdownContent
|
|
17
17
|
? renderTruncatableTagContent.call(this)
|
|
18
|
-
: this.searchableList, this.hasFooter && _jsx("slot", { name: "footer", slot: "footer" })] }), _jsx("span", { "aria-live": "polite", "aria-atomic": "true", class: "hidden", children: this._liveRegionText })] })] }), this.supportingText && (_jsx(UDExStatusMessage, { disabled: this.disabled
|
|
18
|
+
: this.searchableList, this.hasFooter && _jsx("slot", { name: "footer", slot: "footer" })] }), _jsx("span", { "aria-live": "polite", "aria-atomic": "true", class: "hidden", children: this._liveRegionText })] })] }), this.supportingText && (_jsx(UDExStatusMessage, { disabled: this.disabled, "supporting-text": this.supportingText, "value-state": this.valueState }))] }) }));
|
|
19
19
|
}
|
|
20
20
|
function renderTagGroup() {
|
|
21
21
|
return (_jsx(UDExTagGroup, { class: "udex-tag-group", displayonly: this.displayonly, readonly: this.readonly, disabled: this.disabled, onFocusOut: this.resetTagsTabIndexes, "tooltip-placement": this.tooltipPlacement, onTagIconClick: this.handleRemoveTag, onTagClick: this.handleTagClick, onShowMoreTags: this.handlerShowMoreItems, onTagKeydown: this.handleKeyDownTag, "tokenizer-expanded": this.tokenizerExpanded, "_skip-more-button-focus": true, children: this.selectedItems
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectBoxTemplate.js","sourceRoot":"","sources":["../src/SelectBoxTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type UDExSelectBox from \"./SelectBox.js\";\nimport UDExTagGroup from \"./TagGroup.js\";\nimport UDExTag from \"./Tag.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UI5Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport UI5PopoverPlacement from \"@ui5/webcomponents/dist/types/PopoverPlacement.js\";\nimport UI5PopoverHAlign from \"@ui5/webcomponents/dist/types/PopoverHorizontalAlign.js\";\nimport { cleanLabel } from \"./utils/listItemLabelUtils.js\";\nimport PopupAccessibleRole from \"@ui5/webcomponents/dist/types/PopupAccessibleRole.js\";\n\nexport default function SelectBoxTemplate(this: UDExSelectBox) {\n return (\n <div class={this._rootClass}>\n <div class=\"udex-text-field__container\">\n <div class=\"udex-text-field__wrap\" {...(this.displayonly ? { displayonly: \"\" } : {})}>\n {this.showMultiSelectedOptions && renderTagGroup.call(this)}\n <div\n class=\"udex-text-field__input\"\n onFocusIn={this.handleInputFocusIn}\n onFocusOut={this.handleInputFocusOut}\n {...(this.readonly ? { readonly: \"\" } : {})}\n {...(this.isDisabled ? { disabled: \"\" } : {})}\n {...(this._open ? { open: \"\" } : {})}>\n {this.label && (\n <>\n <label for=\"search-input\" class={this.labelClass}>\n {this.label}{this.required && \" * \"}\n </label>\n <span class=\"hidden\" id={`${this._id}-aria-describedby`}>{this.ariaDescribedbyText}</span>\n </>\n )}\n {this.showImageFlags && this.countryFlag}\n <div class=\"udex-text-field__holder\">\n <input\n role=\"combobox\"\n type=\"text\"\n id=\"search-input\"\n name=\"search\"\n class=\"udex-text-field__search\"\n value={this._inputValue}\n onInput={this.handleSearchChange}\n onClick={this.handleInputClick}\n onKeyDown={this.handleKeyDownSearch}\n disabled={this.isDisabled}\n readonly={this.isReadOrDisplayOnly}\n aria-label={this.accInfo.ariaLabel}\n aria-readonly={this.isReadOrDisplayOnly}\n aria-disabled={this.disabled}\n aria-required={this.required}\n aria-haspopup={this.listboxRole}\n aria-controls={this.listAriaControlsId}\n aria-expanded={this._open}\n aria-activedescendant={this._activeDescendantItem ? this._activeDescendantItem._id : undefined}\n aria-autocomplete={this._ariaAutoComplete}\n aria-describedby={`${this._id}-aria-describedby`}\n autocomplete=\"off\"\n />\n {this._selectedOption && (\n <div class=\"udex-text-field__text-holder\">\n <span\n class=\"udex-text-field__single-label\"\n aria-hidden=\"true\"\n dangerouslySetInnerHTML={{ __html: this._selectedOption }}>\n </span>\n </div>\n )}\n </div>\n {!this.displayonly && (\n <button\n onClick={this.handleButtonClick}\n disabled={this.isDisabled}\n aria-label={this.accInfo.ariaLabel}\n class=\"udex-text-field__trigger\"\n tabindex={-1}>\n <UI5Icon mode=\"Decorative\" name=\"navigation-down-arrow\"></UI5Icon>\n </button>\n )}\n <UI5Popover\n id={this.popoverId}\n accessibleRole={PopupAccessibleRole.None}\n allow-target-overlap={this.allowTargetOverlap}\n onKeyDown={this.handleKeyDownDropdown}\n {...({\n onSelectAll: this.handleSelectAll,\n onItemPress: this.handleItemPress,\n onHeaderPress: this.handleHeaderPress,\n } as any)}\n onBeforeOpen={this.handleDropdownBeforeOpen}\n onOpen={this.handleDropdownOpen}\n onBeforeClose={this.handleDropdownBeforeClose}\n onClose={this.handleDropdownClose}\n class=\"udex-select-box__dropdown\"\n horizontal-align={UI5PopoverHAlign.Start}\n placement={UI5PopoverPlacement.Bottom}\n prevent-focus-restore\n prevent-initial-focus\n hide-arrow>\n {this._showTagsDropdownContent\n ? renderTruncatableTagContent.call(this)\n : this.searchableList}\n {this.hasFooter && <slot name=\"footer\" slot=\"footer\" />}\n </UI5Popover>\n <span aria-live=\"polite\" aria-atomic=\"true\" class=\"hidden\">{this._liveRegionText}</span>\n </div>\n </div>\n {this.supportingText && (\n <UDExStatusMessage\n disabled={this.disabled ? \"true\" : undefined}\n supporting-text={this.supportingText}\n value-state={this.valueState}>\n </UDExStatusMessage>\n )}\n </div>\n </div>\n );\n}\n\nfunction renderTagGroup(this: UDExSelectBox) {\n return (\n <UDExTagGroup\n class=\"udex-tag-group\"\n displayonly={this.displayonly}\n readonly={this.readonly}\n disabled={this.disabled}\n onFocusOut={this.resetTagsTabIndexes}\n tooltip-placement={this.tooltipPlacement}\n onTagIconClick={this.handleRemoveTag}\n onTagClick={this.handleTagClick}\n onShowMoreTags={this.handlerShowMoreItems}\n onTagKeydown={this.handleKeyDownTag}\n tokenizer-expanded={this.tokenizerExpanded}\n _skip-more-button-focus>\n {this.selectedItems\n .filter(item => !item.isGroup)\n .map((item, index) => (\n item.label ? (\n <UDExTag\n key={index}\n text={cleanLabel(item.label)}\n id={item._id}\n icon=\"decline\">\n </UDExTag>\n ) : (\n <UDExTag\n key={index}\n text={`${item.rating} ${this.startsText}`}\n id={item._id}\n icon=\"decline\">\n </UDExTag>\n )\n ))\n }\n </UDExTagGroup>\n );\n}\n\nfunction renderTruncatableTagContent(this: UDExSelectBox) {\n return (\n <div class=\"udex-truncatable-tag-content\">\n <span class=\"udex-truncatable-tag-content__label\">{this.truncatableTagLabel}</span>\n <UI5Icon\n onClick={this.handleRemoveTruncatableTag}\n class=\"udex-truncatable-tag-content__icon\"\n mode=\"Decorative\"\n name=\"decline\">\n </UI5Icon>\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SelectBoxTemplate.js","sourceRoot":"","sources":["../src/SelectBoxTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type UDExSelectBox from \"./SelectBox.js\";\nimport UDExTagGroup from \"./TagGroup.js\";\nimport UDExTag from \"./Tag.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UI5Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport UI5PopoverPlacement from \"@ui5/webcomponents/dist/types/PopoverPlacement.js\";\nimport UI5PopoverHAlign from \"@ui5/webcomponents/dist/types/PopoverHorizontalAlign.js\";\nimport { cleanLabel } from \"./utils/listItemLabelUtils.js\";\nimport PopupAccessibleRole from \"@ui5/webcomponents/dist/types/PopupAccessibleRole.js\";\n\nexport default function SelectBoxTemplate(this: UDExSelectBox) {\n return (\n <div class={this._rootClass}>\n <div class=\"udex-text-field__container\">\n <div class=\"udex-text-field__wrap\" {...(this.displayonly ? { displayonly: \"\" } : {})}>\n {this.showMultiSelectedOptions && renderTagGroup.call(this)}\n <div\n class=\"udex-text-field__input\"\n onFocusIn={this.handleInputFocusIn}\n onFocusOut={this.handleInputFocusOut}\n {...(this.readonly ? { readonly: \"\" } : {})}\n {...(this.isDisabled ? { disabled: \"\" } : {})}\n {...(this._open ? { open: \"\" } : {})}>\n {this.label && (\n <>\n <label for=\"search-input\" class={this.labelClass}>\n {this.label}{this.required && \" * \"}\n </label>\n <span class=\"hidden\" id={`${this._id}-aria-describedby`}>{this.ariaDescribedbyText}</span>\n </>\n )}\n {this.showImageFlags && this.countryFlag}\n <div class=\"udex-text-field__holder\">\n <input\n role=\"combobox\"\n type=\"text\"\n id=\"search-input\"\n name=\"search\"\n class=\"udex-text-field__search\"\n value={this._inputValue}\n onInput={this.handleSearchChange}\n onClick={this.handleInputClick}\n onKeyDown={this.handleKeyDownSearch}\n disabled={this.isDisabled}\n readonly={this.isReadOrDisplayOnly}\n aria-label={this.accInfo.ariaLabel}\n aria-readonly={this.isReadOrDisplayOnly}\n aria-disabled={this.disabled}\n aria-required={this.required}\n aria-haspopup={this.listboxRole}\n aria-controls={this.listAriaControlsId}\n aria-expanded={this._open}\n aria-activedescendant={this._activeDescendantItem ? this._activeDescendantItem._id : undefined}\n aria-autocomplete={this._ariaAutoComplete}\n aria-describedby={`${this._id}-aria-describedby`}\n autocomplete=\"off\"\n />\n {this._selectedOption && (\n <div class=\"udex-text-field__text-holder\">\n <span\n class=\"udex-text-field__single-label\"\n aria-hidden=\"true\"\n dangerouslySetInnerHTML={{ __html: this._selectedOption }}>\n </span>\n </div>\n )}\n </div>\n {!this.displayonly && (\n <button\n onClick={this.handleButtonClick}\n disabled={this.isDisabled}\n aria-label={this.accInfo.ariaLabel}\n class=\"udex-text-field__trigger\"\n tabindex={-1}>\n <UI5Icon mode=\"Decorative\" name=\"navigation-down-arrow\"></UI5Icon>\n </button>\n )}\n <UI5Popover\n id={this.popoverId}\n accessibleRole={PopupAccessibleRole.None}\n allow-target-overlap={this.allowTargetOverlap}\n onKeyDown={this.handleKeyDownDropdown}\n {...({\n onSelectAll: this.handleSelectAll,\n onItemPress: this.handleItemPress,\n onHeaderPress: this.handleHeaderPress,\n } as any)}\n onBeforeOpen={this.handleDropdownBeforeOpen}\n onOpen={this.handleDropdownOpen}\n onBeforeClose={this.handleDropdownBeforeClose}\n onClose={this.handleDropdownClose}\n class=\"udex-select-box__dropdown\"\n horizontal-align={UI5PopoverHAlign.Start}\n placement={UI5PopoverPlacement.Bottom}\n prevent-focus-restore\n prevent-initial-focus\n hide-arrow>\n {this._showTagsDropdownContent\n ? renderTruncatableTagContent.call(this)\n : this.searchableList}\n {this.hasFooter && <slot name=\"footer\" slot=\"footer\" />}\n </UI5Popover>\n <span aria-live=\"polite\" aria-atomic=\"true\" class=\"hidden\">{this._liveRegionText}</span>\n </div>\n </div>\n {this.supportingText && (\n <UDExStatusMessage\n disabled={this.disabled}\n supporting-text={this.supportingText}\n value-state={this.valueState}>\n </UDExStatusMessage>\n )}\n </div>\n </div>\n );\n}\n\nfunction renderTagGroup(this: UDExSelectBox) {\n return (\n <UDExTagGroup\n class=\"udex-tag-group\"\n displayonly={this.displayonly}\n readonly={this.readonly}\n disabled={this.disabled}\n onFocusOut={this.resetTagsTabIndexes}\n tooltip-placement={this.tooltipPlacement}\n onTagIconClick={this.handleRemoveTag}\n onTagClick={this.handleTagClick}\n onShowMoreTags={this.handlerShowMoreItems}\n onTagKeydown={this.handleKeyDownTag}\n tokenizer-expanded={this.tokenizerExpanded}\n _skip-more-button-focus>\n {this.selectedItems\n .filter(item => !item.isGroup)\n .map((item, index) => (\n item.label ? (\n <UDExTag\n key={index}\n text={cleanLabel(item.label)}\n id={item._id}\n icon=\"decline\">\n </UDExTag>\n ) : (\n <UDExTag\n key={index}\n text={`${item.rating} ${this.startsText}`}\n id={item._id}\n icon=\"decline\">\n </UDExTag>\n )\n ))\n }\n </UDExTagGroup>\n );\n}\n\nfunction renderTruncatableTagContent(this: UDExSelectBox) {\n return (\n <div class=\"udex-truncatable-tag-content\">\n <span class=\"udex-truncatable-tag-content__label\">{this.truncatableTagLabel}</span>\n <UI5Icon\n onClick={this.handleRemoveTruncatableTag}\n class=\"udex-truncatable-tag-content__icon\"\n mode=\"Decorative\"\n name=\"decline\">\n </UI5Icon>\n </div>\n );\n}\n"]}
|
package/dist/StatusMessage.d.ts
CHANGED
|
@@ -44,10 +44,10 @@ declare class UDExStatusMessage extends UI5Element {
|
|
|
44
44
|
/**
|
|
45
45
|
* Defines if component should have disabled styles.
|
|
46
46
|
*
|
|
47
|
-
* @default
|
|
47
|
+
* @default false
|
|
48
48
|
* @public
|
|
49
49
|
*/
|
|
50
|
-
disabled:
|
|
50
|
+
disabled: boolean;
|
|
51
51
|
/**
|
|
52
52
|
* Defines the value state of the component.
|
|
53
53
|
*
|
package/dist/StatusMessage.js
CHANGED
|
@@ -80,7 +80,7 @@ __decorate([
|
|
|
80
80
|
property({ type: String })
|
|
81
81
|
], UDExStatusMessage.prototype, "supportingTextAlignment", void 0);
|
|
82
82
|
__decorate([
|
|
83
|
-
property({ type:
|
|
83
|
+
property({ type: Boolean })
|
|
84
84
|
], UDExStatusMessage.prototype, "disabled", void 0);
|
|
85
85
|
__decorate([
|
|
86
86
|
property()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusMessage.js","sourceRoot":"","sources":["../src/StatusMessage.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,WAAW,MAAM,iDAAiD,CAAC;AAC1E,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAC/C,OAAO,yCAAyC,CAAC;AACjD,OAAO,wCAAwC,CAAC;AAChD,OAAO,wCAAwC,CAAC;AAEhD,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAE/D,SAAS;AACT,OAAO,gBAAgB,MAAM,yCAAyC,CAAC;AAIvE,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,iCAAkB,CAAA;IAClB,8BAAe,CAAA;IACf,gCAAiB,CAAA;AACnB,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAED;;;;;;;;;;;;;;;;GAgBG;AAQH,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,UAAU;IAA1C;;QAUE;;;;;WAKG;QAED,4BAAuB,GAAqB,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"StatusMessage.js","sourceRoot":"","sources":["../src/StatusMessage.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,WAAW,MAAM,iDAAiD,CAAC;AAC1E,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAC/C,OAAO,yCAAyC,CAAC;AACjD,OAAO,wCAAwC,CAAC;AAChD,OAAO,wCAAwC,CAAC;AAEhD,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAE/D,SAAS;AACT,OAAO,gBAAgB,MAAM,yCAAyC,CAAC;AAIvE,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,iCAAkB,CAAA;IAClB,8BAAe,CAAA;IACf,gCAAiB,CAAA;AACnB,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAED;;;;;;;;;;;;;;;;GAgBG;AAQH,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,UAAU;IAA1C;;QAUE;;;;;WAKG;QAED,4BAAuB,GAAqB,MAAM,CAAC;QAWrD;;;;;WAKG;QAED,eAAU,GAAwB,cAAc,CAAC,QAAQ,CAAC;IAkB9D,CAAC;IAhBC,IAAI,aAAa;QACf,IAAI,IAAI,CAAC,UAAU,KAAK,cAAc,CAAC,QAAQ,EAAE,CAAC;YAChD,OAAO,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,QAAQ;QACV,IAAI,IAAI,CAAC,UAAU,KAAK,cAAc,CAAC,KAAK,EAAE,CAAC;YAC7C,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,cAAc,CAAC,QAAQ,EAAE,CAAC;YAChD,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF,CAAA;AA7CG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yDACD;AASxB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kEAC0B;AASnD;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;mDACP;AASnB;IADD,QAAQ,EAAE;qDACiD;AAnCxD,iBAAiB;IAPtB,aAAa,CAAC;QACb,GAAG,EAAE,qBAAqB;QAC1B,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,gBAAgB;QACxB,QAAQ,EAAE,qBAAqB;QAC/B,YAAY,EAAE,CAAC,IAAI,CAAC;KACrB,CAAC;GACI,iBAAiB,CAqDtB;AAED,iBAAiB,CAAC,MAAM,EAAE,CAAC;AAE3B,eAAe,iBAAiB,CAAC","sourcesContent":["import 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 jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UDExValueState from \"./types/common.js\";\nimport \"@ui5/webcomponents-icons/dist/accept.js\";\nimport \"@ui5/webcomponents-icons/dist/error.js\";\nimport \"@ui5/webcomponents-icons/dist/alert.js\";\n\nimport StatusMessageTemplate from \"./StatusMessageTemplate.js\";\n\n// Styles\nimport StatusMessageCss from \"./generated/themes/StatusMessage.css.js\";\n\ntype AriaLiveRole = \"alert\" | \"status\";\n\nexport enum IconMapping {\n Success = \"accept\",\n Error = \"error\",\n Warning = \"alert\",\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-status-message</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/StatusMessage.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-status-message\",\n renderer: jsxRenderer,\n styles: StatusMessageCss,\n template: StatusMessageTemplate,\n dependencies: [Icon],\n})\nclass UDExStatusMessage extends UI5Element {\n /**\n * Defines supporting text under the input field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n supportingText!: string;\n\n /**\n * Defines supporting text alignment. It aligns only Standard state text.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n supportingTextAlignment: \"Left\" | \"Right\" = \"Left\";\n\n /**\n * Defines if component should have disabled styles.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines the value state of the component.\n *\n * @default \"Standard\"\n * @public\n */\n @property()\n valueState: `${UDExValueState}` = UDExValueState.Standard;\n\n get iconFieldName(): string {\n if (this.valueState !== UDExValueState.Standard) {\n return IconMapping[this.valueState];\n }\n return \"\";\n }\n\n get ariaRole(): AriaLiveRole | undefined {\n if (this.valueState === UDExValueState.Error) {\n return \"alert\";\n }\n if (this.valueState !== UDExValueState.Standard) {\n return \"status\";\n }\n return undefined;\n }\n}\n\nUDExStatusMessage.define();\n\nexport default UDExStatusMessage;\n"]}
|
package/dist/TabNavigation.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
|
9
9
|
import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
|
|
10
10
|
import "@ui5/webcomponents-icons/dist/play.js";
|
|
11
11
|
import "@ui5/webcomponents-icons/dist/pause.js";
|
|
12
|
+
import UDExButtonSize from "./types/ButtonSize.js";
|
|
12
13
|
import TabNavigationPopoverTemplate from "./generated/templates/TabNavigationPopoverTemplate.lit.js";
|
|
13
14
|
export declare enum UDExSizeMoreButton {
|
|
14
15
|
Small = "Small",
|
|
@@ -64,9 +65,9 @@ declare class UDExTabNavigation extends UI5Element {
|
|
|
64
65
|
* Defines the size of the "More" button.
|
|
65
66
|
*
|
|
66
67
|
* @public
|
|
67
|
-
* @default "
|
|
68
|
+
* @default "Medium"
|
|
68
69
|
*/
|
|
69
|
-
sizeMoreButton: `${
|
|
70
|
+
sizeMoreButton: `${UDExButtonSize}`;
|
|
70
71
|
/**
|
|
71
72
|
* Defines the mode of the component.
|
|
72
73
|
*
|
package/dist/TabNavigation.js
CHANGED
|
@@ -25,6 +25,7 @@ import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
|
|
|
25
25
|
import "@ui5/webcomponents-icons/dist/play.js";
|
|
26
26
|
import "@ui5/webcomponents-icons/dist/pause.js";
|
|
27
27
|
import UDExButton from "./Button.js";
|
|
28
|
+
import UDExButtonSize from "./types/ButtonSize.js";
|
|
28
29
|
// Templates
|
|
29
30
|
import TabNavigationTemplate from "./generated/templates/TabNavigationTemplate.lit.js";
|
|
30
31
|
import TabNavigationPopoverTemplate from "./generated/templates/TabNavigationPopoverTemplate.lit.js";
|
|
@@ -83,9 +84,9 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
83
84
|
* Defines the size of the "More" button.
|
|
84
85
|
*
|
|
85
86
|
* @public
|
|
86
|
-
* @default "
|
|
87
|
+
* @default "Medium"
|
|
87
88
|
*/
|
|
88
|
-
this.sizeMoreButton =
|
|
89
|
+
this.sizeMoreButton = UDExButtonSize.Medium;
|
|
89
90
|
/**
|
|
90
91
|
* Defines the mode of the component.
|
|
91
92
|
*
|