@sapudex/web-components 0.143.0 → 0.172.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/.eslintignore +1 -0
- package/bundle.esm.js +9 -0
- package/dist/Badge.d.ts +21 -14
- package/dist/Badge.js +20 -26
- package/dist/Badge.js.map +1 -1
- package/dist/Breadcrumbs.d.ts +23 -21
- package/dist/Breadcrumbs.js +58 -40
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/BreadcrumbsItem.js +0 -1
- package/dist/BreadcrumbsItem.js.map +1 -1
- package/dist/Checkbox.js +0 -1
- package/dist/Checkbox.js.map +1 -1
- package/dist/CountrySelector.d.ts +9 -3
- package/dist/CountrySelector.js +48 -19
- package/dist/CountrySelector.js.map +1 -1
- package/dist/DatePicker.d.ts +2 -2
- package/dist/DatePicker.js.map +1 -1
- package/dist/Dropdown.js +0 -3
- package/dist/Dropdown.js.map +1 -1
- package/dist/Footer.d.ts +53 -10
- package/dist/Footer.js +41 -11
- package/dist/Footer.js.map +1 -1
- package/dist/Link.d.ts +2 -5
- package/dist/Link.js +4 -8
- package/dist/Link.js.map +1 -1
- package/dist/List.d.ts +16 -1
- package/dist/List.js +154 -100
- package/dist/List.js.map +1 -1
- package/dist/ListItem.d.ts +1 -0
- package/dist/ListItem.js +3 -0
- package/dist/ListItem.js.map +1 -1
- package/dist/MastheadItem.d.ts +12 -2
- package/dist/MastheadItem.js +34 -7
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadMenu.d.ts +1 -0
- package/dist/MastheadMenu.js +13 -4
- package/dist/MastheadMenu.js.map +1 -1
- package/dist/MastheadMenuItem.d.ts +10 -0
- package/dist/MastheadMenuItem.js +24 -3
- package/dist/MastheadMenuItem.js.map +1 -1
- package/dist/MastheadMobileMenu.js +2 -2
- package/dist/MastheadMobileMenu.js.map +1 -1
- package/dist/MastheadProfileMenu.js +2 -2
- package/dist/MastheadProfileMenu.js.map +1 -1
- package/dist/MastheadShell.d.ts +4 -0
- package/dist/MastheadShell.js +21 -5
- package/dist/MastheadShell.js.map +1 -1
- package/dist/Pagination.d.ts +13 -3
- package/dist/Pagination.js +90 -57
- package/dist/Pagination.js.map +1 -1
- package/dist/PhoneNumberField.d.ts +3 -0
- package/dist/PhoneNumberField.js +9 -4
- package/dist/PhoneNumberField.js.map +1 -1
- package/dist/RangeSlider.js +0 -1
- package/dist/RangeSlider.js.map +1 -1
- package/dist/Search.d.ts +5 -4
- package/dist/Search.js +13 -13
- package/dist/Search.js.map +1 -1
- package/dist/SearchableListBase.d.ts +7 -1
- package/dist/SearchableListBase.js +47 -4
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SecondaryNavigation.d.ts +2 -2
- package/dist/SecondaryNavigation.js +20 -10
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.d.ts +6 -3
- package/dist/SecondaryNavigationItem.js +50 -26
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SecondaryNavigationSubItem.d.ts +1 -0
- package/dist/SecondaryNavigationSubItem.js +3 -0
- package/dist/SecondaryNavigationSubItem.js.map +1 -1
- package/dist/SegmentedButton.d.ts +2 -2
- package/dist/SegmentedButton.js.map +1 -1
- package/dist/SelectBox.d.ts +6 -9
- package/dist/SelectBox.js +50 -55
- package/dist/SelectBox.js.map +1 -1
- package/dist/SideNavigationGroup.js +0 -1
- package/dist/SideNavigationGroup.js.map +1 -1
- package/dist/SideNavigationItem.js +0 -1
- package/dist/SideNavigationItem.js.map +1 -1
- package/dist/SideNavigationSubItem.js +0 -1
- package/dist/SideNavigationSubItem.js.map +1 -1
- package/dist/Slider.js +0 -1
- package/dist/Slider.js.map +1 -1
- package/dist/TabNavigation.js +2 -2
- package/dist/TabNavigation.js.map +1 -1
- package/dist/Tag.d.ts +1 -4
- package/dist/Tag.js +1 -5
- package/dist/Tag.js.map +1 -1
- package/dist/Tile.d.ts +1 -1
- package/dist/Tile.js +1 -1
- package/dist/Tile.js.map +1 -1
- package/dist/Toast.d.ts +0 -1
- package/dist/Toast.js +4 -3
- package/dist/Toast.js.map +1 -1
- package/dist/Wizard.js +1 -1
- package/dist/Wizard.js.map +1 -1
- package/dist/WizardTab.js +0 -1
- package/dist/WizardTab.js.map +1 -1
- package/dist/assets/{bundle.esm-8623b7b1.js → bundle.esm-981c5cbb.js} +187 -191
- package/dist/assets/messagebundle_ar-bb470511.js +1 -0
- package/dist/assets/messagebundle_bg-a533dfab.js +1 -0
- package/dist/assets/messagebundle_cs-c70a7f36.js +1 -0
- package/dist/assets/messagebundle_da-e292cac5.js +1 -0
- package/dist/assets/messagebundle_de-5c108de6.js +1 -0
- package/dist/assets/messagebundle_el-44746e0b.js +1 -0
- package/dist/assets/messagebundle_en-4997b226.js +1 -0
- package/dist/assets/messagebundle_es-c0c1060f.js +1 -0
- package/dist/assets/messagebundle_et-a5f15d3b.js +1 -0
- package/dist/assets/messagebundle_fi-f4b8eb82.js +1 -0
- package/dist/assets/messagebundle_fr-af18ac46.js +1 -0
- package/dist/assets/messagebundle_hr-d893e46d.js +1 -0
- package/dist/assets/messagebundle_hu-230c58c9.js +1 -0
- package/dist/assets/messagebundle_it-5bf1436c.js +1 -0
- package/dist/assets/messagebundle_iw-dd60afc4.js +1 -0
- package/dist/assets/messagebundle_ko-c450bda3.js +1 -0
- package/dist/assets/messagebundle_lt-87ab0529.js +1 -0
- package/dist/assets/messagebundle_lv-fc413852.js +1 -0
- package/dist/assets/messagebundle_nl-34d7e236.js +1 -0
- package/dist/assets/messagebundle_no-f22648fb.js +1 -0
- package/dist/assets/messagebundle_pl-10303f09.js +1 -0
- package/dist/assets/messagebundle_pt-b7a40c67.js +1 -0
- package/dist/assets/messagebundle_ro-94628623.js +1 -0
- package/dist/assets/messagebundle_ru-1f6595ba.js +1 -0
- package/dist/assets/messagebundle_sk-89eabac1.js +1 -0
- package/dist/assets/messagebundle_sl-d56532f1.js +1 -0
- package/dist/assets/messagebundle_sr-cf7f3b32.js +1 -0
- package/dist/assets/messagebundle_sv-3a3b20d3.js +1 -0
- package/dist/assets/messagebundle_tr-33b16d09.js +1 -0
- package/dist/assets/messagebundle_uk-82e1f2c1.js +1 -0
- package/dist/assets/messagebundle_zh_CN-15ca05aa.js +1 -0
- package/dist/assets/messagebundle_zh_TW-ad6445e7.js +1 -0
- package/dist/assets/{parameters-bundle.css-c897ae23.js → parameters-bundle.css-07457fce.js} +2 -2
- package/dist/css/themes/Badge.css +1 -1
- package/dist/css/themes/BreadcrumbsPopover.css +1 -1
- package/dist/css/themes/Button.css +1 -1
- package/dist/css/themes/DatePickerPopover.css +1 -1
- package/dist/css/themes/FilterMenu.css +1 -1
- package/dist/css/themes/Footer.css +1 -1
- package/dist/css/themes/MastheadItem.css +1 -1
- package/dist/css/themes/MastheadMenu.css +1 -1
- package/dist/css/themes/MastheadMenuItem.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/RatingIndicator.css +1 -1
- package/dist/css/themes/SelectBox.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/css/themes/TableCell.css +1 -1
- package/dist/css/themes/TableCellBase.css +1 -1
- package/dist/css/themes/Tag.css +1 -1
- package/dist/css/themes/TagGroup.css +1 -1
- package/dist/css/themes/TextArea.css +1 -1
- package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +1 -1
- package/dist/custom-elements-internal.json +232 -31
- package/dist/custom-elements.json +224 -30
- package/dist/features/SearchSuggestionsPopover.d.ts +16 -0
- package/dist/features/SearchSuggestionsPopover.js +49 -0
- package/dist/features/SearchSuggestionsPopover.js.map +1 -1
- package/dist/generated/assets/i18n/messagebundle_ar.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_bg.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_cs.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_da.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_el.json +1 -0
- 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 -0
- package/dist/generated/assets/i18n/messagebundle_fi.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hr.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_hu.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_it.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_iw.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_ko.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_lt.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_lv.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_nl.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_no.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_pl.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_pt.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_ro.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_ru.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_sk.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_sl.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_sr.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_sv.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_tr.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_uk.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -0
- package/dist/generated/assets/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +7 -1
- package/dist/generated/i18n/i18n-defaults.js +7 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/json-imports/i18n-static.js +86 -2
- package/dist/generated/json-imports/i18n-static.js.map +1 -1
- package/dist/generated/json-imports/i18n.js +58 -2
- package/dist/generated/json-imports/i18n.js.map +1 -1
- package/dist/generated/templates/BadgeTemplate.lit.js +4 -4
- package/dist/generated/templates/BadgeTemplate.lit.js.map +1 -1
- package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +3 -3
- package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/CountrySelectorTemplate.lit.js +2 -2
- package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
- package/dist/generated/templates/FooterTemplate.lit.js +12 -11
- package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ListItemTemplate.lit.js +2 -2
- package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ListTemplate.lit.js +3 -3
- package/dist/generated/templates/ListTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadItemTemplate.lit.js +17 -16
- package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadMenuItemTemplate.lit.js +15 -14
- package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadMenuTemplate.lit.js +3 -3
- package/dist/generated/templates/MastheadMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js +1 -1
- package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadShellTemplate.lit.js +10 -9
- package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
- package/dist/generated/templates/PaginationTemplate.lit.js +3 -3
- package/dist/generated/templates/PaginationTemplate.lit.js.map +1 -1
- package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +1 -1
- package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +1 -1
- package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SearchableListBaseTemplate.lit.js +2 -2
- package/dist/generated/templates/SearchableListBaseTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +3 -3
- package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +3 -3
- package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +1 -1
- package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SelectBoxTemplate.lit.js +3 -5
- package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
- package/dist/generated/templates/StepInputTemplate.lit.js +1 -1
- package/dist/generated/templates/StepInputTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TagGroupTemplate.lit.js +2 -2
- package/dist/generated/templates/TagGroupTemplate.lit.js.map +1 -1
- package/dist/generated/templates/WizardTemplate.lit.js +1 -1
- package/dist/generated/templates/WizardTemplate.lit.js.map +1 -1
- package/dist/generated/themes/Badge.css.js +1 -1
- package/dist/generated/themes/Badge.css.js.map +1 -1
- package/dist/generated/themes/BreadcrumbsPopover.css.js +1 -1
- package/dist/generated/themes/BreadcrumbsPopover.css.js.map +1 -1
- package/dist/generated/themes/Button.css.js +1 -1
- package/dist/generated/themes/Button.css.js.map +1 -1
- package/dist/generated/themes/DatePickerPopover.css.js +1 -1
- package/dist/generated/themes/DatePickerPopover.css.js.map +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/Footer.css.js +1 -1
- package/dist/generated/themes/Footer.css.js.map +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/MastheadMenu.css.js +1 -1
- package/dist/generated/themes/MastheadMenu.css.js.map +1 -1
- package/dist/generated/themes/MastheadMenuItem.css.js +1 -1
- package/dist/generated/themes/MastheadMenuItem.css.js.map +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.js +1 -1
- package/dist/generated/themes/MediaPlayer.css.js.map +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/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/SelectBox.css.js +1 -1
- package/dist/generated/themes/SelectBox.css.js.map +1 -1
- package/dist/generated/themes/Slider.css.js +1 -1
- package/dist/generated/themes/Slider.css.js.map +1 -1
- package/dist/generated/themes/TableCell.css.js +1 -1
- package/dist/generated/themes/TableCell.css.js.map +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/Tag.css.js +1 -1
- package/dist/generated/themes/Tag.css.js.map +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.js +1 -1
- package/dist/generated/themes/TextArea.css.js.map +1 -1
- package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js.map +1 -1
- package/dist/i18n/messagebundle.properties +10 -0
- package/dist/i18n/messagebundle_ar.properties +1 -0
- package/dist/i18n/messagebundle_bg.properties +1 -0
- package/dist/i18n/messagebundle_cs.properties +1 -0
- package/dist/i18n/messagebundle_da.properties +1 -0
- package/dist/i18n/messagebundle_de.properties +1 -0
- package/dist/i18n/messagebundle_el.properties +1 -0
- package/dist/i18n/messagebundle_en.properties +4 -0
- package/dist/i18n/messagebundle_es.properties +1 -0
- package/dist/i18n/messagebundle_et.properties +1 -0
- package/dist/i18n/messagebundle_fi.properties +1 -0
- package/dist/i18n/messagebundle_fr.properties +1 -0
- package/dist/i18n/messagebundle_hr.properties +1 -0
- package/dist/i18n/messagebundle_hu.properties +1 -0
- package/dist/i18n/messagebundle_it.properties +1 -0
- package/dist/i18n/messagebundle_iw.properties +2 -0
- package/dist/i18n/messagebundle_ko.properties +1 -0
- package/dist/i18n/messagebundle_lt.properties +1 -0
- package/dist/i18n/messagebundle_lv.properties +1 -0
- package/dist/i18n/messagebundle_nl.properties +1 -0
- package/dist/i18n/messagebundle_no.properties +1 -0
- package/dist/i18n/messagebundle_pl.properties +1 -0
- package/dist/i18n/messagebundle_pt.properties +1 -0
- package/dist/i18n/messagebundle_pt_BR.properties +1 -0
- package/dist/i18n/messagebundle_ro.properties +1 -0
- package/dist/i18n/messagebundle_ru.properties +1 -0
- package/dist/i18n/messagebundle_sk.properties +1 -0
- package/dist/i18n/messagebundle_sl.properties +1 -0
- package/dist/i18n/messagebundle_sr.properties +2 -0
- package/dist/i18n/messagebundle_sv.properties +1 -0
- package/dist/i18n/messagebundle_tr.properties +1 -0
- package/dist/i18n/messagebundle_uk.properties +1 -0
- package/dist/i18n/messagebundle_zh_CN.properties +4 -0
- package/dist/i18n/messagebundle_zh_TW.properties +1 -0
- package/dist/types/BadgeDesign.d.ts +15 -0
- package/dist/types/BadgeDesign.js +18 -0
- package/dist/types/BadgeDesign.js.map +1 -0
- package/dist/types/IconPlacement.d.ts +5 -0
- package/dist/types/IconPlacement.js +7 -0
- package/dist/types/IconPlacement.js.map +1 -0
- package/dist/types/List.d.ts +8 -0
- package/dist/types/List.js.map +1 -1
- package/dist/utils/isLetterKeyPressed.d.ts +2 -0
- package/dist/utils/isLetterKeyPressed.js +5 -0
- package/dist/utils/isLetterKeyPressed.js.map +1 -0
- package/dist/utils/listItemLabelStartsWithKeyFocus.d.ts +3 -0
- package/dist/utils/listItemLabelStartsWithKeyFocus.js +55 -0
- package/dist/utils/listItemLabelStartsWithKeyFocus.js.map +1 -0
- package/dist/utils/listItemLabelUtils.d.ts +7 -0
- package/dist/utils/listItemLabelUtils.js +36 -0
- package/dist/utils/listItemLabelUtils.js.map +1 -0
- package/dist/vscode.html-custom-data.json +63 -26
- package/dist/web-types.json +113 -38
- package/package.json +1 -1
- package/src/Badge.hbs +16 -5
- package/src/Badge.ts +36 -19
- package/src/Breadcrumbs.ts +92 -66
- package/src/BreadcrumbsItem.ts +0 -1
- package/src/BreadcrumbsPopover.hbs +11 -9
- package/src/Checkbox.ts +0 -1
- package/src/CountrySelector.hbs +2 -2
- package/src/CountrySelector.ts +66 -23
- package/src/DatePicker.ts +2 -2
- package/src/Dropdown.ts +0 -2
- package/src/Footer.hbs +52 -28
- package/src/Footer.ts +81 -22
- package/src/Link.ts +5 -9
- package/src/List.hbs +2 -2
- package/src/List.ts +182 -112
- package/src/ListItem.hbs +2 -2
- package/src/ListItem.ts +4 -0
- package/src/MastheadItem.hbs +14 -4
- package/src/MastheadItem.ts +42 -9
- package/src/MastheadMenu.hbs +4 -4
- package/src/MastheadMenu.ts +20 -8
- package/src/MastheadMenuItem.hbs +10 -2
- package/src/MastheadMenuItem.ts +28 -1
- package/src/MastheadMobileMenu.ts +2 -2
- package/src/MastheadProfileMenu.hbs +1 -0
- package/src/MastheadProfileMenu.ts +3 -2
- package/src/MastheadShell.hbs +25 -19
- package/src/MastheadShell.ts +25 -5
- package/src/Pagination.hbs +3 -2
- package/src/Pagination.ts +110 -60
- package/src/PhoneNumberField.hbs +3 -3
- package/src/PhoneNumberField.ts +16 -8
- package/src/RangeSlider.ts +0 -1
- package/src/Search.hbs +10 -10
- package/src/Search.ts +18 -18
- package/src/SearchSuggestions.hbs +1 -0
- package/src/SearchableListBase.hbs +3 -1
- package/src/SearchableListBase.ts +57 -6
- package/src/SecondaryNavigation.hbs +1 -0
- package/src/SecondaryNavigation.ts +23 -16
- package/src/SecondaryNavigationItem.hbs +10 -7
- package/src/SecondaryNavigationItem.ts +58 -28
- package/src/SecondaryNavigationSubItem.hbs +3 -0
- package/src/SecondaryNavigationSubItem.ts +3 -0
- package/src/SegmentedButton.ts +2 -2
- package/src/SelectBox.hbs +11 -24
- package/src/SelectBox.ts +51 -60
- package/src/SideNavigationGroup.ts +0 -1
- package/src/SideNavigationItem.ts +0 -1
- package/src/SideNavigationSubItem.ts +0 -1
- package/src/Slider.ts +0 -1
- package/src/StepInput.hbs +16 -16
- package/src/TabNavigation.ts +2 -2
- package/src/Tag.ts +1 -5
- package/src/TagGroup.hbs +1 -1
- package/src/Tile.ts +2 -2
- package/src/Toast.ts +4 -3
- package/src/Wizard.hbs +1 -0
- package/src/Wizard.ts +1 -1
- package/src/WizardTab.ts +0 -1
- package/src/features/SearchSuggestionsPopover.ts +67 -1
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/json-imports/i18n-static.ts +86 -2
- package/src/generated/json-imports/i18n.ts +59 -3
- package/src/generated/templates/BadgeTemplate.lit.ts +3 -3
- package/src/generated/templates/BreadcrumbsPopoverTemplate.lit.ts +3 -3
- package/src/generated/templates/CountrySelectorTemplate.lit.ts +2 -2
- package/src/generated/templates/FooterTemplate.lit.ts +12 -11
- package/src/generated/templates/ListItemTemplate.lit.ts +2 -2
- package/src/generated/templates/ListTemplate.lit.ts +3 -3
- package/src/generated/templates/MastheadItemTemplate.lit.ts +17 -16
- package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +15 -14
- package/src/generated/templates/MastheadMenuTemplate.lit.ts +3 -3
- package/src/generated/templates/MastheadProfileMenuTemplate.lit.ts +1 -1
- package/src/generated/templates/MastheadShellTemplate.lit.ts +10 -9
- package/src/generated/templates/PaginationTemplate.lit.ts +3 -3
- package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +1 -1
- package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +1 -1
- package/src/generated/templates/SearchableListBaseTemplate.lit.ts +2 -2
- package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +3 -3
- package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +3 -3
- package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +1 -1
- package/src/generated/templates/SelectBoxTemplate.lit.ts +3 -5
- package/src/generated/templates/StepInputTemplate.lit.ts +1 -1
- package/src/generated/templates/TagGroupTemplate.lit.ts +2 -2
- package/src/generated/templates/WizardTemplate.lit.ts +1 -1
- package/src/generated/themes/Badge.css.ts +1 -1
- package/src/generated/themes/BreadcrumbsPopover.css.ts +1 -1
- package/src/generated/themes/Button.css.ts +1 -1
- package/src/generated/themes/DatePickerPopover.css.ts +1 -1
- package/src/generated/themes/FilterMenu.css.ts +1 -1
- package/src/generated/themes/Footer.css.ts +1 -1
- package/src/generated/themes/MastheadItem.css.ts +1 -1
- package/src/generated/themes/MastheadMenu.css.ts +1 -1
- package/src/generated/themes/MastheadMenuItem.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/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/SelectBox.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/generated/themes/TableCell.css.ts +1 -1
- package/src/generated/themes/TableCellBase.css.ts +1 -1
- package/src/generated/themes/Tag.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/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +1 -1
- package/src/i18n/messagebundle.properties +10 -0
- package/src/i18n/messagebundle_ar.properties +1 -0
- package/src/i18n/messagebundle_bg.properties +1 -0
- package/src/i18n/messagebundle_cs.properties +1 -0
- package/src/i18n/messagebundle_da.properties +1 -0
- package/src/i18n/messagebundle_de.properties +1 -0
- package/src/i18n/messagebundle_el.properties +1 -0
- package/src/i18n/messagebundle_en.properties +4 -0
- package/src/i18n/messagebundle_es.properties +1 -0
- package/src/i18n/messagebundle_et.properties +1 -0
- package/src/i18n/messagebundle_fi.properties +1 -0
- package/src/i18n/messagebundle_fr.properties +1 -0
- package/src/i18n/messagebundle_hr.properties +1 -0
- package/src/i18n/messagebundle_hu.properties +1 -0
- package/src/i18n/messagebundle_it.properties +1 -0
- package/src/i18n/messagebundle_iw.properties +2 -0
- package/src/i18n/messagebundle_ko.properties +1 -0
- package/src/i18n/messagebundle_lt.properties +1 -0
- package/src/i18n/messagebundle_lv.properties +1 -0
- package/src/i18n/messagebundle_nl.properties +1 -0
- package/src/i18n/messagebundle_no.properties +1 -0
- package/src/i18n/messagebundle_pl.properties +1 -0
- package/src/i18n/messagebundle_pt.properties +1 -0
- package/src/i18n/messagebundle_pt_BR.properties +1 -0
- package/src/i18n/messagebundle_ro.properties +1 -0
- package/src/i18n/messagebundle_ru.properties +1 -0
- package/src/i18n/messagebundle_sk.properties +1 -0
- package/src/i18n/messagebundle_sl.properties +1 -0
- package/src/i18n/messagebundle_sr.properties +2 -0
- package/src/i18n/messagebundle_sv.properties +1 -0
- package/src/i18n/messagebundle_tr.properties +1 -0
- package/src/i18n/messagebundle_uk.properties +1 -0
- package/src/i18n/messagebundle_zh_CN.properties +4 -0
- package/src/i18n/messagebundle_zh_TW.properties +1 -0
- package/src/themes/Badge.css +48 -52
- package/src/themes/BreadcrumbsPopover.css +1 -0
- package/src/themes/Button.css +1 -1
- package/src/themes/DatePickerPopover.css +9 -0
- package/src/themes/FilterMenu.css +6 -6
- package/src/themes/Footer.css +22 -3
- package/src/themes/MastheadItem.css +4 -0
- package/src/themes/MastheadMenu.css +1 -1
- package/src/themes/MastheadMenuItem.css +4 -0
- package/src/themes/MastheadShell.css +5 -0
- package/src/themes/MediaPlayer.css +2 -1
- package/src/themes/Modal.css +1 -0
- package/src/themes/SelectBox.css +4 -88
- package/src/themes/TableCell.css +0 -2
- package/src/themes/TableCellBase.css +1 -0
- package/src/themes/Tag.css +8 -3
- package/src/themes/TagGroup.css +8 -0
- package/src/themes/TextArea.css +1 -1
- package/src/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +0 -5
- package/src/types/BadgeDesign.ts +17 -0
- package/src/types/IconPlacement.ts +6 -0
- package/src/types/List.ts +9 -0
- package/src/utils/isLetterKeyPressed.ts +5 -0
- package/src/utils/listItemLabelStartsWithKeyFocus.ts +74 -0
- package/src/utils/listItemLabelUtils.ts +50 -0
- package/dist/assets/messagebundle_de-8158912e.js +0 -1
- package/dist/assets/messagebundle_en-c677773a.js +0 -1
- package/dist/assets/messagebundle_es-8dab6565.js +0 -1
- package/dist/assets/messagebundle_fr-669aca6d.js +0 -1
|
@@ -8,18 +8,14 @@ import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
|
|
|
8
8
|
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
9
9
|
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
|
|
10
10
|
import {
|
|
11
|
-
isLeft,
|
|
12
|
-
isRight,
|
|
13
|
-
isEscape,
|
|
11
|
+
isEscape, isLeft, isRight, isDown,
|
|
14
12
|
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
15
13
|
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
16
14
|
import UDExSecondaryNavigationItem from "./SecondaryNavigationItem.js";
|
|
17
15
|
import UDExSecondaryNavigationSubItem from "./SecondaryNavigationSubItem.js";
|
|
18
16
|
import UDExSecondaryNavigationItemBase, { NavItem } from "./SecondaryNavigationItemBase.js";
|
|
19
17
|
import { MORE } from "./generated/i18n/i18n-defaults.js";
|
|
20
|
-
|
|
21
18
|
import SecondaryNavigationTemplate from "./generated/templates/SecondaryNavigationTemplate.lit.js";
|
|
22
|
-
|
|
23
19
|
// Styles
|
|
24
20
|
import SecondaryNavigationCss from "./generated/themes/SecondaryNavigation.css.js";
|
|
25
21
|
|
|
@@ -229,30 +225,41 @@ class UDExSecondaryNavigation extends UI5Element {
|
|
|
229
225
|
|
|
230
226
|
handleKeyDown(e: KeyboardEvent): void {
|
|
231
227
|
e.stopPropagation();
|
|
228
|
+
const item = e.target as UDExSecondaryNavigationItem;
|
|
229
|
+
|
|
232
230
|
if (isLeft(e)) {
|
|
233
|
-
this.focusPrevNavItem(e);
|
|
231
|
+
return this.focusPrevNavItem(e);
|
|
234
232
|
}
|
|
235
233
|
if (isRight(e)) {
|
|
236
|
-
this.focusNextNavItem(e);
|
|
234
|
+
return this.focusNextNavItem(e);
|
|
235
|
+
}
|
|
236
|
+
if (isEscape(e) && item.hasNestedItems) {
|
|
237
|
+
return item.closeDropdown();
|
|
237
238
|
}
|
|
238
|
-
if (
|
|
239
|
-
|
|
239
|
+
if (isDown(e) && item.hasNestedItems) {
|
|
240
|
+
item.openDropdown();
|
|
240
241
|
}
|
|
241
242
|
}
|
|
242
243
|
|
|
243
244
|
focusPrevNavItem(e: KeyboardEvent): void {
|
|
244
245
|
const item = e.target as UDExSecondaryNavigationItem;
|
|
245
246
|
const currentSelectedIndex = this.getCurrentIndex(item);
|
|
246
|
-
const
|
|
247
|
-
|
|
248
|
-
|
|
247
|
+
const previousSelectIndex = currentSelectedIndex - 1;
|
|
248
|
+
if (currentSelectedIndex > 0) {
|
|
249
|
+
e.preventDefault();
|
|
250
|
+
this.domNavItems[previousSelectIndex]?.focus();
|
|
251
|
+
}
|
|
249
252
|
}
|
|
250
253
|
|
|
251
254
|
focusNextNavItem(e: KeyboardEvent): void {
|
|
252
255
|
const item = e.target as UDExSecondaryNavigationItem;
|
|
253
256
|
const currentSelectedIndex = this.getCurrentIndex(item);
|
|
254
|
-
const
|
|
255
|
-
|
|
257
|
+
const lastItemIndex = this.domNavItems.length - 1;
|
|
258
|
+
const nextSelectIndex = currentSelectedIndex + 1;
|
|
259
|
+
if (nextSelectIndex < lastItemIndex) {
|
|
260
|
+
e.preventDefault();
|
|
261
|
+
this.domNavItems[nextSelectIndex].focus();
|
|
262
|
+
}
|
|
256
263
|
}
|
|
257
264
|
|
|
258
265
|
getItemWidth(item: NavItem): number {
|
|
@@ -369,7 +376,7 @@ class UDExSecondaryNavigation extends UI5Element {
|
|
|
369
376
|
document.addEventListener("mousedown", this.outsideClickListener);
|
|
370
377
|
}
|
|
371
378
|
|
|
372
|
-
outsideClickListener = (e:
|
|
379
|
+
outsideClickListener = (e: Event): void => {
|
|
373
380
|
if (this.isMobileScreen && e.target !== this) {
|
|
374
381
|
this.closeMobileDropdown();
|
|
375
382
|
return;
|
|
@@ -384,7 +391,7 @@ class UDExSecondaryNavigation extends UI5Element {
|
|
|
384
391
|
this.mobileNav?.closeDropdown();
|
|
385
392
|
}
|
|
386
393
|
|
|
387
|
-
handleDesktopDropdown(e:
|
|
394
|
+
handleDesktopDropdown(e: Event): void {
|
|
388
395
|
const isClickedNavItem = e.composedPath().includes(this._clickedNavItem);
|
|
389
396
|
if (!isClickedNavItem && this._clickedNavItem) {
|
|
390
397
|
this._clickedNavItem.closeDropdown();
|
|
@@ -6,19 +6,20 @@
|
|
|
6
6
|
href="{{path}}"
|
|
7
7
|
target="{{target}}"
|
|
8
8
|
@keydown="{{handleItemLinkKeyDown}}"
|
|
9
|
-
@click="{{
|
|
9
|
+
@click="{{fireNavItemClickEvent}}">
|
|
10
10
|
{{itemLabel}}
|
|
11
11
|
</a>
|
|
12
12
|
{{else}}
|
|
13
13
|
<button
|
|
14
14
|
class="udex-secondary-navigation__item"
|
|
15
15
|
role="{{itemRole}}"
|
|
16
|
+
tabindex="0"
|
|
16
17
|
?active="{{isActive}}"
|
|
17
18
|
aria-haspopup="{{hasNestedItems}}"
|
|
18
19
|
aria-expanded="{{isOpen}}"
|
|
19
20
|
aria-label="{{ariaLabel}}"
|
|
20
|
-
@keydown="{{
|
|
21
|
-
@click="{{
|
|
21
|
+
@keydown="{{handleItemEnterOrSpaceKeys}}"
|
|
22
|
+
@click="{{openDropdown}}">
|
|
22
23
|
<span class="udex-secondary-navigation__item-text-wrap">
|
|
23
24
|
{{itemLabel}}
|
|
24
25
|
{{#if _subTitle}}
|
|
@@ -37,10 +38,10 @@
|
|
|
37
38
|
</button>
|
|
38
39
|
{{#if isOpen}}
|
|
39
40
|
<div
|
|
40
|
-
class="udex-secondary-navigation__dropdown"
|
|
41
|
-
@keydown="{{handleSubItemKeyDown}}">
|
|
41
|
+
class="udex-secondary-navigation__dropdown">
|
|
42
42
|
<ul role="menu"
|
|
43
|
-
class="udex-secondary-navigation__dropdown-list"
|
|
43
|
+
class="udex-secondary-navigation__dropdown-list"
|
|
44
|
+
@keydown="{{handleSubItemKeyDown}}">
|
|
44
45
|
{{#each _processedItems}}
|
|
45
46
|
<li role="none">
|
|
46
47
|
<udex-secondary-navigation-sub-item
|
|
@@ -58,7 +59,9 @@
|
|
|
58
59
|
</li>
|
|
59
60
|
{{/each}}
|
|
60
61
|
</ul>
|
|
61
|
-
<
|
|
62
|
+
<div @keydown="{{handleButtonsEscKey}}">
|
|
63
|
+
<slot></slot>
|
|
64
|
+
</div>
|
|
62
65
|
</div>
|
|
63
66
|
{{/if}}
|
|
64
67
|
{{/if}}
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
isSpace,
|
|
15
15
|
isEnter,
|
|
16
16
|
isHome,
|
|
17
|
-
isEnd,
|
|
17
|
+
isEnd, isTabNext, isTabPrevious,
|
|
18
18
|
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
19
19
|
import UDExSecondaryNavigationSubItem from "./SecondaryNavigationSubItem.js";
|
|
20
20
|
import UDExSecondaryNavigationItemBase, { NavItem } from "./SecondaryNavigationItemBase.js";
|
|
@@ -159,18 +159,6 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
|
|
|
159
159
|
this._subTitle = this.subActiveItemTitle || this._subTitle;
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
-
onItemClick(): void {
|
|
163
|
-
if (this.hasNestedItems) {
|
|
164
|
-
this.setDropdownItems();
|
|
165
|
-
this.toggleDropdown();
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
this.fireEvent("nav-item-click", {
|
|
169
|
-
item: this,
|
|
170
|
-
index: this.index,
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
|
|
174
162
|
onSubItemClick(e: Event): void {
|
|
175
163
|
const { index } = e.target as UDExSecondaryNavigationSubItem;
|
|
176
164
|
const clickedItem = this._processedItems[index];
|
|
@@ -178,6 +166,7 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
|
|
|
178
166
|
if (clickedItem.items) {
|
|
179
167
|
this.setDropdownHistory();
|
|
180
168
|
this.setNestedItems(clickedItem);
|
|
169
|
+
this.onShouldFocusFirstSubItem();
|
|
181
170
|
}
|
|
182
171
|
|
|
183
172
|
this.fireEvent("sub-item-click", {
|
|
@@ -190,8 +179,14 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
|
|
|
190
179
|
this.setPrevNestedItems();
|
|
191
180
|
}
|
|
192
181
|
|
|
193
|
-
|
|
194
|
-
this.
|
|
182
|
+
openDropdown(): void {
|
|
183
|
+
if (this.hasNestedItems) {
|
|
184
|
+
this.setDropdownItems();
|
|
185
|
+
this.isOpen = !this.isOpen;
|
|
186
|
+
this.onShouldFocusFirstSubItem();
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
this.fireNavItemClickEvent();
|
|
195
190
|
}
|
|
196
191
|
|
|
197
192
|
closeDropdown(): void {
|
|
@@ -200,12 +195,11 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
|
|
|
200
195
|
|
|
201
196
|
handleItemLinkKeyDown(e: KeyboardEvent): void {
|
|
202
197
|
if (isEnter(e) || isSpace(e)) {
|
|
203
|
-
|
|
204
|
-
this.onItemClick();
|
|
198
|
+
this.openDropdown();
|
|
205
199
|
}
|
|
206
200
|
}
|
|
207
201
|
|
|
208
|
-
|
|
202
|
+
handleItemEnterOrSpaceKeys(e: KeyboardEvent): void {
|
|
209
203
|
if (isEnter(e) || isSpace(e)) {
|
|
210
204
|
this.onShouldFocusFirstSubItem();
|
|
211
205
|
}
|
|
@@ -242,23 +236,41 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
|
|
|
242
236
|
e.preventDefault();
|
|
243
237
|
this.handleEnterAndSpace(e);
|
|
244
238
|
}
|
|
239
|
+
if (isTabPrevious(e) && this._isMobileView) {
|
|
240
|
+
this.closeDropdown();
|
|
241
|
+
}
|
|
242
|
+
if ((isTabPrevious(e) || isTabNext(e)) && !this._isMobileView) {
|
|
243
|
+
this.closeDropdown();
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
handleButtonsEscKey(e: KeyboardEvent): void {
|
|
248
|
+
if (isEscape(e) && this._isMobileView) {
|
|
249
|
+
this.handleEscapeKey();
|
|
250
|
+
}
|
|
245
251
|
}
|
|
246
252
|
|
|
247
253
|
handleUpArrow(e: KeyboardEvent): void {
|
|
248
254
|
const { index } = e.target as UDExSecondaryNavigationSubItem;
|
|
249
255
|
const lastIndex = this.domNavItems.length - 1;
|
|
250
|
-
const
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
256
|
+
const previousSelectIndex = index - 1 < 0 ? lastIndex : index - 1;
|
|
257
|
+
const previousItem = this.domNavItems[previousSelectIndex];
|
|
258
|
+
const currentItem = this.domNavItems[index];
|
|
259
|
+
|
|
260
|
+
this.unsetTabIndex(currentItem);
|
|
261
|
+
this.setTabIndex(previousItem);
|
|
262
|
+
previousItem.focus();
|
|
254
263
|
}
|
|
255
264
|
|
|
256
265
|
handleDownArrow(e: KeyboardEvent): void {
|
|
257
266
|
const { index } = e.target as UDExSecondaryNavigationSubItem;
|
|
258
267
|
const nextIndex = index + 1 > this.domNavItems.length - 1 ? 0 : index + 1;
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
268
|
+
const nextItem = this.domNavItems[nextIndex];
|
|
269
|
+
const currentItem = this.domNavItems[index];
|
|
270
|
+
|
|
271
|
+
this.unsetTabIndex(currentItem);
|
|
272
|
+
this.setTabIndex(nextItem);
|
|
273
|
+
nextItem.focus();
|
|
262
274
|
}
|
|
263
275
|
|
|
264
276
|
handleLeftArrow(e: KeyboardEvent): void {
|
|
@@ -270,10 +282,10 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
|
|
|
270
282
|
}
|
|
271
283
|
|
|
272
284
|
handleRightArrow(e: KeyboardEvent): void {
|
|
273
|
-
const { hasItems, isBack } = e.target as UDExSecondaryNavigationSubItem;
|
|
285
|
+
const { hasItems, isBack, index } = e.target as UDExSecondaryNavigationSubItem;
|
|
274
286
|
if (hasItems && !isBack) {
|
|
275
287
|
this.onSubItemClick(e);
|
|
276
|
-
this.
|
|
288
|
+
this.unsetTabIndex(this.domNavItems[index]);
|
|
277
289
|
}
|
|
278
290
|
}
|
|
279
291
|
|
|
@@ -300,6 +312,13 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
|
|
|
300
312
|
this.focus();
|
|
301
313
|
}
|
|
302
314
|
|
|
315
|
+
fireNavItemClickEvent(): void {
|
|
316
|
+
this.fireEvent("nav-item-click", {
|
|
317
|
+
item: this,
|
|
318
|
+
index: this.index,
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
|
|
303
322
|
setDropdownHistory(): void {
|
|
304
323
|
this._dropdownHistory.push(this._processedItems);
|
|
305
324
|
}
|
|
@@ -331,8 +350,19 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
|
|
|
331
350
|
}
|
|
332
351
|
}
|
|
333
352
|
|
|
353
|
+
setTabIndex(item: UDExSecondaryNavigationSubItem): void {
|
|
354
|
+
item._tabIndex = "0";
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
unsetTabIndex(item: UDExSecondaryNavigationSubItem): void {
|
|
358
|
+
item._tabIndex = "-1";
|
|
359
|
+
}
|
|
360
|
+
|
|
334
361
|
onFirstSubItemFocus(): void {
|
|
335
|
-
this.domNavItems[0]
|
|
362
|
+
const firstSubItem = this.domNavItems[0];
|
|
363
|
+
|
|
364
|
+
firstSubItem.focus();
|
|
365
|
+
this.setTabIndex(firstSubItem);
|
|
336
366
|
}
|
|
337
367
|
|
|
338
368
|
onLastSubItemFocus(): void {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
{{#if isBack}}
|
|
2
2
|
<button
|
|
3
|
+
tabindex="{{_tabIndex}}"
|
|
3
4
|
@click="{{onBackItemClick}}"
|
|
4
5
|
role="menuitem"
|
|
5
6
|
aria-label="{{backButtonAriaLabel}}"
|
|
@@ -15,6 +16,7 @@
|
|
|
15
16
|
{{else}}
|
|
16
17
|
{{#if isButton}}
|
|
17
18
|
<button
|
|
19
|
+
tabindex="{{_tabIndex}}"
|
|
18
20
|
@click="{{onItemClick}}"
|
|
19
21
|
role="menuitem"
|
|
20
22
|
aria-haspopup="{{hasItems}}"
|
|
@@ -32,6 +34,7 @@
|
|
|
32
34
|
</button>
|
|
33
35
|
{{else}}
|
|
34
36
|
<a
|
|
37
|
+
tabindex="{{_tabIndex}}"
|
|
35
38
|
@click="{{onItemClick}}"
|
|
36
39
|
role="menuitem"
|
|
37
40
|
href="{{path}}"
|
|
@@ -88,6 +88,9 @@ class UDExSecondaryNavigationSubItem extends UDExSecondaryNavigationItemBase {
|
|
|
88
88
|
@property({ type: Object, multiple: true })
|
|
89
89
|
nestedItems!: Array<NavItem>;
|
|
90
90
|
|
|
91
|
+
@property({ type: String, defaultValue: "-1" })
|
|
92
|
+
_tabIndex!: string;
|
|
93
|
+
|
|
91
94
|
static i18nBundle: any;
|
|
92
95
|
|
|
93
96
|
static async onDefine(): Promise<void> {
|
package/src/SegmentedButton.ts
CHANGED
|
@@ -72,7 +72,7 @@ class UDExSegmentedButton extends SegmentedButton {
|
|
|
72
72
|
this.style.setProperty(getScopedVarName("--udex-segmented-button-items-count"), `${items.length}`);
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
_onmousedown(e:
|
|
75
|
+
_onmousedown(e: Event) {
|
|
76
76
|
const eventTarget = e.target as SegmentedButtonItem;
|
|
77
77
|
const isTargetSegmentedButtonItem = eventTarget.hasAttribute("udex-segmented-button-item");
|
|
78
78
|
|
|
@@ -83,7 +83,7 @@ class UDExSegmentedButton extends SegmentedButton {
|
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
_selectItem(e:
|
|
86
|
+
_selectItem(e: Event | KeyboardEvent) {
|
|
87
87
|
// Method to be update with @ui5/webcomponents v.2.0 , due to ToggleButton dependency change (pressed -> selected)
|
|
88
88
|
const target = e.target as SegmentedButtonItem;
|
|
89
89
|
const isTargetSegmentedButtonItem = target.hasAttribute("udex-segmented-button-item");
|
package/src/SelectBox.hbs
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<div
|
|
5
5
|
@click="{{getHandleSingleSelectOpen}}"
|
|
6
6
|
class="udex-text-field__input"
|
|
7
|
-
@ui5-
|
|
7
|
+
@ui5-tag-icon-click="{{handleRemoveTag}}"
|
|
8
8
|
@keydown="{{handleKeyDownTrigger}}"
|
|
9
9
|
?open="{{_open}}"
|
|
10
10
|
tabindex="{{effectiveTabIndex}}"
|
|
@@ -38,31 +38,26 @@
|
|
|
38
38
|
</div>
|
|
39
39
|
{{/if}}
|
|
40
40
|
{{#if showMultiSelectedOptions}}
|
|
41
|
-
<
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
@keydown="{{handleKeydownTokenizer}}"
|
|
46
|
-
prevent-popover-open
|
|
47
|
-
class="{{tokenizerClass}}"
|
|
41
|
+
<udex-tag-group
|
|
42
|
+
class="udex-tag-group"
|
|
43
|
+
?displayonly="{{displayonly}}"
|
|
44
|
+
?readonly="{{readonly}}"
|
|
48
45
|
?disabled="{{disabled}}"
|
|
49
|
-
|
|
46
|
+
tooltip-placement="{{tooltipPlacement}}"
|
|
47
|
+
@ui5-tag-click="{{handleTagPress}}"
|
|
48
|
+
@ui5-show-more-tags="{{getHandlerShowMoreItems}}"
|
|
49
|
+
@ui5-tag-keydown="{{handleKeyDownTag}}"
|
|
50
50
|
?expanded="{{tokenizerExpanded}}">
|
|
51
51
|
{{#each selectedItems}}
|
|
52
52
|
{{#unless this.isGroup}}
|
|
53
53
|
<udex-tag
|
|
54
|
-
accessible-role="option"
|
|
55
|
-
class="udex-text-field__token"
|
|
56
|
-
@keydown="{{../handleKeyDownTag}}"
|
|
57
|
-
?read-only="{{../isReadOrDisplayOnly}}"
|
|
58
|
-
data-id="{{this._id}}"
|
|
59
|
-
part="token-{{@index}}"
|
|
60
54
|
text="{{this.label}}"
|
|
55
|
+
id="{{this._id}}"
|
|
61
56
|
icon="decline">
|
|
62
57
|
</udex-tag>
|
|
63
58
|
{{/unless}}
|
|
64
59
|
{{/each}}
|
|
65
|
-
</
|
|
60
|
+
</udex-tag-group>
|
|
66
61
|
{{/if}}
|
|
67
62
|
{{#if showTrigger}}
|
|
68
63
|
<udex-control-button
|
|
@@ -120,12 +115,4 @@
|
|
|
120
115
|
{{searchableList}}
|
|
121
116
|
{{/if}}
|
|
122
117
|
</ui5-popover>
|
|
123
|
-
{{#if displayonly}}
|
|
124
|
-
<udex-tooltip
|
|
125
|
-
placement="{{tooltipPlacement}}">
|
|
126
|
-
{{#each overflowsTags}}
|
|
127
|
-
<ul class="udex-select-box__overflow-tags"><li>{{this.text}}</li></ul>
|
|
128
|
-
{{/each}}
|
|
129
|
-
</udex-tooltip>
|
|
130
|
-
{{/if}}
|
|
131
118
|
</div>
|
package/src/SelectBox.ts
CHANGED
|
@@ -32,7 +32,7 @@ import UDExSelectBoxGroupHeader from "./SelectBoxGroupHeader.js";
|
|
|
32
32
|
import UDExSearchableListBase from "./SearchableListBase.js";
|
|
33
33
|
import UDExSearch from "./Search.js";
|
|
34
34
|
import UDExTag from "./Tag.js";
|
|
35
|
-
import
|
|
35
|
+
import { PlacementType } from "./Tooltip.js";
|
|
36
36
|
import UDExButton from "./Button.js";
|
|
37
37
|
import ValueState from "./types/common.js";
|
|
38
38
|
|
|
@@ -46,6 +46,7 @@ import TextFieldCss from "./generated/themes/TextField.css.js";
|
|
|
46
46
|
import SearchableListCss from "./generated/themes/SearchableList.css.js";
|
|
47
47
|
import UDExStatusMessage from "./StatusMessage.js";
|
|
48
48
|
import UDExControlButton from "./ControlButton.js";
|
|
49
|
+
import UDExTagGroup from "./TagGroup.js";
|
|
49
50
|
|
|
50
51
|
/**
|
|
51
52
|
* @class
|
|
@@ -77,7 +78,6 @@ import UDExControlButton from "./ControlButton.js";
|
|
|
77
78
|
UDExListSelectAll,
|
|
78
79
|
UDExSelectBoxItem,
|
|
79
80
|
UDExList,
|
|
80
|
-
UDExTooltip,
|
|
81
81
|
UDExSearch,
|
|
82
82
|
UDExButton,
|
|
83
83
|
Tokenizer,
|
|
@@ -87,6 +87,7 @@ import UDExControlButton from "./ControlButton.js";
|
|
|
87
87
|
UDExStatusMessage,
|
|
88
88
|
UDExControlButton,
|
|
89
89
|
ResponsivePopover,
|
|
90
|
+
UDExTagGroup,
|
|
90
91
|
],
|
|
91
92
|
})
|
|
92
93
|
|
|
@@ -273,13 +274,16 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
273
274
|
}
|
|
274
275
|
|
|
275
276
|
onAfterRendering() {
|
|
276
|
-
this._tokenizer = this.
|
|
277
|
+
this._tokenizer = this.getTagGroup()?._tokenizer;
|
|
277
278
|
this._popover = this.getPopover();
|
|
278
279
|
this._search = this.getSearch();
|
|
279
280
|
this._trigger = this.getTrigger();
|
|
280
281
|
this._tags = this.getTags();
|
|
281
282
|
this.handleDirection();
|
|
282
283
|
if (this._tokenizer?.tokens.length > 0) {
|
|
284
|
+
if (!this.displayonly) {
|
|
285
|
+
this._tokenizer.shadowRoot!.querySelector(".ui5-tokenizer-more-text")?.setAttribute("tabindex", "-1");
|
|
286
|
+
}
|
|
283
287
|
this.handleOutsideClick();
|
|
284
288
|
this.resetTagsTabIndexes();
|
|
285
289
|
}
|
|
@@ -333,7 +337,7 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
333
337
|
}
|
|
334
338
|
|
|
335
339
|
handleFocusIn() {
|
|
336
|
-
if (this.
|
|
340
|
+
if (this.isDisabled) {
|
|
337
341
|
return;
|
|
338
342
|
}
|
|
339
343
|
this._focused = true;
|
|
@@ -364,17 +368,10 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
364
368
|
this._showTagsDropdownContent = false;
|
|
365
369
|
this.openDropdown();
|
|
366
370
|
this.handleUnselectTruncatableTag();
|
|
367
|
-
this.fireEvent("show-more");
|
|
368
371
|
}
|
|
369
372
|
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
const moreBtn = this._tokenizer.shadowRoot!.querySelector<HTMLElement>(".ui5-tokenizer-more-text")!;
|
|
373
|
-
tooltip.onOpen(moreBtn);
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
handleRemoveTag(e: Event) {
|
|
377
|
-
const tag = e.target as UI5Element;
|
|
373
|
+
handleRemoveTag(e: CustomEvent | null, tag?: UI5Element) {
|
|
374
|
+
tag = tag ?? (e?.detail.tag as UI5Element);
|
|
378
375
|
const tagId: string = tag.getAttribute("data-id")!;
|
|
379
376
|
this.handleDropdownItemPress(tagId);
|
|
380
377
|
this.fireEventRemove(tagId);
|
|
@@ -388,7 +385,7 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
388
385
|
}
|
|
389
386
|
|
|
390
387
|
handleTagPress(e: CustomEvent) {
|
|
391
|
-
const tag = e.
|
|
388
|
+
const tag = e.detail.tag as UDExTag;
|
|
392
389
|
tag.selected = false;
|
|
393
390
|
this.toggleTruncatedPopover(tag);
|
|
394
391
|
}
|
|
@@ -399,60 +396,57 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
399
396
|
}
|
|
400
397
|
}
|
|
401
398
|
|
|
402
|
-
|
|
403
|
-
|
|
399
|
+
handleKeyDownTrigger(e: KeyboardEvent) {
|
|
400
|
+
if (!this.isDisabled && (isSpace(e) || isEnter(e))) {
|
|
401
|
+
e.preventDefault();
|
|
402
|
+
e.stopPropagation();
|
|
403
|
+
this._showTagsDropdownContent = false;
|
|
404
|
+
this._openedByTrigger = true;
|
|
405
|
+
this.openDropdown();
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
handleKeyDownTag(e: CustomEvent) {
|
|
410
|
+
if (this.isDisabled) { return; }
|
|
411
|
+
const originalEvent: KeyboardEvent = e.detail.originalEvent;
|
|
412
|
+
const tag = originalEvent.target as UDExTag;
|
|
404
413
|
this.getTagContent(this._tags[0]).tabIndex = this._inactiveTabIndex;
|
|
405
414
|
|
|
406
|
-
const
|
|
407
|
-
const activeIndex = this._tokenizer.tokens?.indexOf(target);
|
|
415
|
+
const activeIndex = this._tokenizer.tokens?.indexOf(originalEvent.target as Token);
|
|
408
416
|
const tagsCount = this._tokenizer._tokensCount;
|
|
409
|
-
|
|
410
|
-
this._tokenizer.expanded = shouldNavigateTags;
|
|
417
|
+
this._tokenizer.expanded = (isLeft(originalEvent) || isRight(originalEvent) || isBackSpace(originalEvent) || isDelete(originalEvent)) && tagsCount > 0;
|
|
411
418
|
|
|
412
|
-
if (isLeft(
|
|
419
|
+
if (isLeft(originalEvent) && activeIndex !== 0) {
|
|
413
420
|
this.focusTag(activeIndex - 1);
|
|
414
421
|
this.scrollToTag(activeIndex - 1);
|
|
415
422
|
}
|
|
416
423
|
|
|
417
|
-
if (isRight(
|
|
424
|
+
if (isRight(originalEvent) && tagsCount !== activeIndex + 1) {
|
|
418
425
|
this.focusTag(activeIndex + 1);
|
|
419
426
|
this.scrollToTag(activeIndex + 1);
|
|
420
427
|
}
|
|
421
428
|
|
|
422
|
-
if ((isDown(
|
|
429
|
+
if ((isDown(originalEvent) || isUp(originalEvent))) {
|
|
423
430
|
this._openedByTrigger = false;
|
|
424
431
|
this.openDropdown();
|
|
425
432
|
}
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
handleKeyDownTrigger(e: KeyboardEvent) {
|
|
429
|
-
if (isSpace(e) || isEnter(e)) {
|
|
430
|
-
e.preventDefault();
|
|
431
|
-
e.stopPropagation();
|
|
432
|
-
this._showTagsDropdownContent = false;
|
|
433
|
-
this._openedByTrigger = true;
|
|
434
|
-
this.openDropdown();
|
|
435
|
-
}
|
|
436
|
-
}
|
|
437
433
|
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
e.preventDefault();
|
|
442
|
-
e.stopPropagation();
|
|
434
|
+
if (isSpace(originalEvent) || isShift(originalEvent) || isEnter(originalEvent)) {
|
|
435
|
+
originalEvent.preventDefault();
|
|
436
|
+
originalEvent.stopPropagation();
|
|
443
437
|
}
|
|
444
438
|
|
|
445
|
-
if (tag.isTruncatable && this.validTruncatableKey(
|
|
439
|
+
if (tag.isTruncatable && this.validTruncatableKey(originalEvent)) {
|
|
446
440
|
this.toggleTruncatedPopover(tag);
|
|
447
441
|
} else {
|
|
448
442
|
this._showTagsDropdownContent = false;
|
|
449
443
|
}
|
|
450
444
|
|
|
451
|
-
if (isDelete(
|
|
452
|
-
this.handleRemoveTag(
|
|
453
|
-
|
|
445
|
+
if (isDelete(originalEvent) || isBackSpace(originalEvent)) {
|
|
446
|
+
this.handleRemoveTag(null, tag);
|
|
447
|
+
|
|
454
448
|
const tags = this._tokenizer.tokens;
|
|
455
|
-
const deletedTagIndex = tags.indexOf(target);
|
|
449
|
+
const deletedTagIndex = tags.indexOf(originalEvent.target as Token);
|
|
456
450
|
let nextTokenIndex = deletedTagIndex + 1;
|
|
457
451
|
if (this._tokenizer.tokens.length !== 1) {
|
|
458
452
|
if (deletedTagIndex === tags.length - 1) {
|
|
@@ -488,7 +482,7 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
488
482
|
}
|
|
489
483
|
|
|
490
484
|
handleOutsideClick(): void {
|
|
491
|
-
document.addEventListener("click", (e:
|
|
485
|
+
document.addEventListener("click", (e: Event) => {
|
|
492
486
|
if (this._tokenizer?.tokens.length > 0 && e.target !== this) {
|
|
493
487
|
this._tokenizer.expanded = false;
|
|
494
488
|
}
|
|
@@ -574,8 +568,12 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
574
568
|
return !this.isDisabled && this.modeSingleSelect ? this.handleOpenSingleSelect() : undefined;
|
|
575
569
|
}
|
|
576
570
|
|
|
577
|
-
getHandlerShowMoreItems() {
|
|
578
|
-
|
|
571
|
+
getHandlerShowMoreItems(e: CustomEvent) {
|
|
572
|
+
if (!this.displayonly) {
|
|
573
|
+
e.preventDefault();
|
|
574
|
+
this.showMoreItems();
|
|
575
|
+
}
|
|
576
|
+
this.fireEvent("show-more");
|
|
579
577
|
}
|
|
580
578
|
|
|
581
579
|
getPopover(): ResponsivePopover {
|
|
@@ -590,12 +588,15 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
590
588
|
return this.shadowRoot!.querySelector(".udex-text-field__input")!;
|
|
591
589
|
}
|
|
592
590
|
|
|
593
|
-
|
|
594
|
-
return this.shadowRoot!.querySelector<
|
|
591
|
+
getTagGroup(): UDExTagGroup {
|
|
592
|
+
return this.shadowRoot!.querySelector<UDExTagGroup>("udex-tag-group")!;
|
|
595
593
|
}
|
|
596
594
|
|
|
597
595
|
getTags(): Array<UDExTag> {
|
|
598
|
-
|
|
596
|
+
if (this.getTagGroup()) {
|
|
597
|
+
return Array.from(this.getTagGroup().shadowRoot!.querySelectorAll<UDExTag>("udex-tag"));
|
|
598
|
+
}
|
|
599
|
+
return [];
|
|
599
600
|
}
|
|
600
601
|
|
|
601
602
|
getTagContent(tag: UDExTag): HTMLElement {
|
|
@@ -630,10 +631,6 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
630
631
|
return this.readonly || this.displayonly || this.disabled;
|
|
631
632
|
}
|
|
632
633
|
|
|
633
|
-
get overflowsTags() {
|
|
634
|
-
return this._tokenizer?.tokens?.filter(tag => tag.overflows) || [];
|
|
635
|
-
}
|
|
636
|
-
|
|
637
634
|
get truncatableTagLabel(): string {
|
|
638
635
|
return this._truncatableTag.text.replace(/<\/?b>/gi, "");
|
|
639
636
|
}
|
|
@@ -656,12 +653,6 @@ class UDExSelectBox extends UDExSearchableListBase {
|
|
|
656
653
|
return this.readonly || this.displayonly;
|
|
657
654
|
}
|
|
658
655
|
|
|
659
|
-
get tokenizerClass(): string {
|
|
660
|
-
return `udex-text-field__tokenizer
|
|
661
|
-
${this.displayonly ? "udex-text-field__tokenize_displayonly" : ""}
|
|
662
|
-
${this.readonly ? "udex-text-field__tokenize_readonly" : ""}`;
|
|
663
|
-
}
|
|
664
|
-
|
|
665
656
|
get tokenizerExpanded() {
|
|
666
657
|
if (this._showTagsDropdownContent && this._truncatableTag) {
|
|
667
658
|
return false;
|
|
@@ -26,7 +26,6 @@ import SideNavigationGroupCss from "./generated/themes/SideNavigationGroup.css.j
|
|
|
26
26
|
tag: "udex-side-navigation-group",
|
|
27
27
|
renderer: litRender,
|
|
28
28
|
styles: [SideNavigationGroup.styles, SideNavigationGroupCss],
|
|
29
|
-
dependencies: [],
|
|
30
29
|
})
|
|
31
30
|
|
|
32
31
|
class UDExSideNavigationGroup extends SideNavigationGroup {}
|