@sapudex/web-components 0.147.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 +2 -2
- package/dist/CountrySelector.js +20 -12
- 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 +12 -12
- 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.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-6e8e301d.js → bundle.esm-981c5cbb.js} +187 -189
- 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/css/themes/Badge.css +1 -1
- package/dist/css/themes/BreadcrumbsPopover.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/Slider.css +1 -1
- package/dist/css/themes/TableCell.css +1 -1
- package/dist/css/themes/TableCellBase.css +1 -1
- package/dist/css/themes/TextArea.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/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 +1 -1
- 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/StepInputTemplate.lit.js +1 -1
- package/dist/generated/templates/StepInputTemplate.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/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/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/TextArea.css.js +1 -1
- package/dist/generated/themes/TextArea.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 +0 -1
- package/src/CountrySelector.ts +30 -16
- 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 +17 -17
- 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.ts +1 -1
- 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/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 +1 -1
- 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/StepInputTemplate.lit.ts +1 -1
- 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/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/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/TextArea.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/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/TableCell.css +0 -2
- package/src/themes/TableCellBase.css +1 -0
- package/src/themes/TextArea.css +1 -1
- 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
package/src/Pagination.ts
CHANGED
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
LAST_PAGE,
|
|
17
17
|
PREVIOUS_PAGE,
|
|
18
18
|
NEXT_PAGE,
|
|
19
|
+
CURRENT_PAGE,
|
|
19
20
|
} from "./generated/i18n/i18n-defaults.js";
|
|
20
21
|
import Button from "./Button.js";
|
|
21
22
|
import "@ui5/webcomponents/dist/Icon.js";
|
|
@@ -128,18 +129,26 @@ class UDExPagination extends UI5Element {
|
|
|
128
129
|
_direction?: string;
|
|
129
130
|
|
|
130
131
|
_pages: Page[];
|
|
132
|
+
_visiblePages: Page[];
|
|
131
133
|
|
|
132
134
|
_previousPageElement?: HTMLElement;
|
|
133
135
|
|
|
134
136
|
_mobileDisplayNumber: number;
|
|
137
|
+
_desktopDisplayNumber: number;
|
|
138
|
+
_firstPageIndex!: number;
|
|
139
|
+
_lastPageIndex!: number;
|
|
140
|
+
_pageFocusedManually!: boolean;
|
|
135
141
|
|
|
136
142
|
static i18nBundle: I18nBundle;
|
|
137
143
|
|
|
138
144
|
constructor() {
|
|
139
145
|
super();
|
|
140
146
|
this._pages = [];
|
|
147
|
+
this._visiblePages = [];
|
|
141
148
|
this.currentPageIndex = 0;
|
|
142
149
|
this._mobileDisplayNumber = 5;
|
|
150
|
+
this._desktopDisplayNumber = 10;
|
|
151
|
+
this._pageFocusedManually = false;
|
|
143
152
|
}
|
|
144
153
|
|
|
145
154
|
onEnterDOM() {
|
|
@@ -148,6 +157,10 @@ class UDExPagination extends UI5Element {
|
|
|
148
157
|
}
|
|
149
158
|
}
|
|
150
159
|
|
|
160
|
+
onBeforeRendering(): void {
|
|
161
|
+
this.setupPages(this.pages);
|
|
162
|
+
}
|
|
163
|
+
|
|
151
164
|
get nextButtonDisbled(): boolean {
|
|
152
165
|
return this.currentPageIndex + 1 === this.pages;
|
|
153
166
|
}
|
|
@@ -189,6 +202,13 @@ class UDExPagination extends UI5Element {
|
|
|
189
202
|
return ` ${UDExPagination.i18nBundle.getText(OF)} `;
|
|
190
203
|
}
|
|
191
204
|
|
|
205
|
+
get paginationAccessibleName(): string {
|
|
206
|
+
if (this.typeShort) {
|
|
207
|
+
return this.paginationShortAccessibleName;
|
|
208
|
+
}
|
|
209
|
+
return `${UDExPagination.i18nBundle.getText(CURRENT_PAGE)} ${this.currentPageIndex + 1}`;
|
|
210
|
+
}
|
|
211
|
+
|
|
192
212
|
get pageAccessibleName(): string {
|
|
193
213
|
return UDExPagination.i18nBundle.getText(PAGINATION_PAGE);
|
|
194
214
|
}
|
|
@@ -213,7 +233,7 @@ class UDExPagination extends UI5Element {
|
|
|
213
233
|
|
|
214
234
|
get previousPageAccessibleName(): string {
|
|
215
235
|
if (this.currentPageIndex === 0) { return UDExPagination.i18nBundle.getText(PREVIOUS_PAGE); }
|
|
216
|
-
return `${UDExPagination.i18nBundle.getText(PREVIOUS_PAGE)}. ${this.activatePageAccessibleText} ${this.currentPageIndex}`;
|
|
236
|
+
return `${UDExPagination.i18nBundle.getText(CURRENT_PAGE)} ${this.currentPageIndex + 1}. ${UDExPagination.i18nBundle.getText(PREVIOUS_PAGE)}. ${this.activatePageAccessibleText} ${this.currentPageIndex}`;
|
|
217
237
|
}
|
|
218
238
|
|
|
219
239
|
get previousBtnTooltip(): string {
|
|
@@ -222,7 +242,7 @@ class UDExPagination extends UI5Element {
|
|
|
222
242
|
|
|
223
243
|
get nextPageAccessibleName(): string {
|
|
224
244
|
if (this.pages && this.currentPageIndex === (this.pages - 1)) { return UDExPagination.i18nBundle.getText(NEXT_PAGE); }
|
|
225
|
-
return `${UDExPagination.i18nBundle.getText(NEXT_PAGE)}. ${this.activatePageAccessibleText} ${this.currentPageIndex + 2}`;
|
|
245
|
+
return `${UDExPagination.i18nBundle.getText(CURRENT_PAGE)} ${this.currentPageIndex + 1}. ${UDExPagination.i18nBundle.getText(NEXT_PAGE)}. ${this.activatePageAccessibleText} ${this.currentPageIndex + 2}`;
|
|
226
246
|
}
|
|
227
247
|
|
|
228
248
|
get nextBtnTooltip(): string {
|
|
@@ -230,7 +250,7 @@ class UDExPagination extends UI5Element {
|
|
|
230
250
|
}
|
|
231
251
|
|
|
232
252
|
get pagination(): Page[] {
|
|
233
|
-
return this.
|
|
253
|
+
return this._visiblePages;
|
|
234
254
|
}
|
|
235
255
|
|
|
236
256
|
get paginationClass(): string {
|
|
@@ -244,6 +264,18 @@ class UDExPagination extends UI5Element {
|
|
|
244
264
|
return `${classes} udex-pagination--${this.display} udex-pagination--${this.type}`;
|
|
245
265
|
}
|
|
246
266
|
|
|
267
|
+
get displayNumber(): number {
|
|
268
|
+
const lastIndex = this.display === DisplayType.mobile ? this._mobileDisplayNumber : this._desktopDisplayNumber;
|
|
269
|
+
return lastIndex;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
get pageOffset(): number {
|
|
273
|
+
if (this.display === DisplayType.mobile) {
|
|
274
|
+
return Math.floor(this._mobileDisplayNumber / 2);
|
|
275
|
+
}
|
|
276
|
+
return this._desktopDisplayNumber / 2 - 1;
|
|
277
|
+
}
|
|
278
|
+
|
|
247
279
|
static async onDefine() {
|
|
248
280
|
UDExPagination.i18nBundle = await getI18nBundle("@udex/web-components");
|
|
249
281
|
}
|
|
@@ -256,9 +288,8 @@ class UDExPagination extends UI5Element {
|
|
|
256
288
|
return;
|
|
257
289
|
}
|
|
258
290
|
|
|
259
|
-
element.setAttribute("aria-current", "page");
|
|
260
291
|
this.currentPageIndex = pageIndex;
|
|
261
|
-
this.
|
|
292
|
+
this._pageFocusedManually = true;
|
|
262
293
|
this._previousPageElement = element;
|
|
263
294
|
}
|
|
264
295
|
|
|
@@ -268,7 +299,11 @@ class UDExPagination extends UI5Element {
|
|
|
268
299
|
if (this.pages && currentPage >= this.pages - 1) {
|
|
269
300
|
return;
|
|
270
301
|
}
|
|
302
|
+
|
|
271
303
|
this.currentPageIndex = currentPage + 1;
|
|
304
|
+
this._pageFocusedManually = false;
|
|
305
|
+
this._pages = this.setupPagesData();
|
|
306
|
+
|
|
272
307
|
this.emitChangeEvent();
|
|
273
308
|
}
|
|
274
309
|
|
|
@@ -279,6 +314,9 @@ class UDExPagination extends UI5Element {
|
|
|
279
314
|
return;
|
|
280
315
|
}
|
|
281
316
|
this.currentPageIndex -= 1;
|
|
317
|
+
this._pageFocusedManually = false;
|
|
318
|
+
this._pages = this.setupPagesData();
|
|
319
|
+
|
|
282
320
|
this.emitChangeEvent();
|
|
283
321
|
}
|
|
284
322
|
|
|
@@ -288,6 +326,10 @@ class UDExPagination extends UI5Element {
|
|
|
288
326
|
if (currentPage === 0) {
|
|
289
327
|
return;
|
|
290
328
|
}
|
|
329
|
+
|
|
330
|
+
this._firstPageIndex = 0;
|
|
331
|
+
this._lastPageIndex = this.displayNumber;
|
|
332
|
+
|
|
291
333
|
this.currentPageIndex = 0;
|
|
292
334
|
this.emitChangeEvent();
|
|
293
335
|
}
|
|
@@ -298,76 +340,79 @@ class UDExPagination extends UI5Element {
|
|
|
298
340
|
if (!this.pages || currentPage >= this.pages - 1) {
|
|
299
341
|
return;
|
|
300
342
|
}
|
|
301
|
-
|
|
343
|
+
|
|
344
|
+
this._firstPageIndex = this.pages - this.displayNumber;
|
|
345
|
+
this._lastPageIndex = this.pages;
|
|
346
|
+
|
|
347
|
+
this.currentPageIndex = this._lastPageIndex - 1;
|
|
302
348
|
this.emitChangeEvent();
|
|
303
349
|
}
|
|
304
350
|
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
if (pages <= this._mobileDisplayNumber) {
|
|
312
|
-
startIndex = 0;
|
|
313
|
-
endIndex = pages;
|
|
314
|
-
} else {
|
|
315
|
-
const displayStartNumber = this.currentPageIndex < offset ? 0 : this.currentPageIndex - offset;
|
|
351
|
+
setupPages(pages?: number) {
|
|
352
|
+
if (!pages) {
|
|
353
|
+
this._visiblePages = [];
|
|
354
|
+
return;
|
|
355
|
+
}
|
|
316
356
|
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
357
|
+
if (!this._pages.length) {
|
|
358
|
+
this._firstPageIndex = 0;
|
|
359
|
+
this._lastPageIndex = pages > this.displayNumber ? this.displayNumber : pages;
|
|
360
|
+
}
|
|
320
361
|
|
|
321
|
-
|
|
322
|
-
? this._mobileDisplayNumber
|
|
323
|
-
: this.currentPageIndex + this._mobileDisplayNumber - offset;
|
|
362
|
+
this._pages = this.setupPagesData();
|
|
324
363
|
|
|
325
|
-
|
|
364
|
+
if (this.currentPageIndex > this._lastPageIndex || this._lastPageIndex - this.currentPageIndex <= this.pageOffset) {
|
|
365
|
+
this._visiblePages = this.shiftVisiblePages();
|
|
326
366
|
}
|
|
327
367
|
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
const accessibleName = isCurrent ? `
|
|
331
|
-
${this.pageAccessibleName} ${index + 1} ${UDExPagination.i18nBundle.getText(OF)} ${this.pages}, ${UDExPagination.i18nBundle.getText(SELECTED)}` : `
|
|
332
|
-
${this.pageAccessibleName} ${index + 1} ${UDExPagination.i18nBundle.getText(OF)} ${this.pages}`;
|
|
333
|
-
pagesCollection.push({
|
|
334
|
-
index,
|
|
335
|
-
value: index + 1,
|
|
336
|
-
active: isCurrent,
|
|
337
|
-
accessibleName,
|
|
338
|
-
});
|
|
368
|
+
if (this.currentPageIndex < this._firstPageIndex || this.currentPageIndex - this._firstPageIndex <= this.pageOffset) {
|
|
369
|
+
this._visiblePages = this.shiftVisiblePages(true);
|
|
339
370
|
}
|
|
371
|
+
}
|
|
340
372
|
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
}
|
|
373
|
+
setupPagesData(): Page[] {
|
|
374
|
+
const updatedPages = [];
|
|
375
|
+
if (this.pages) {
|
|
376
|
+
this._previousPageElement?.removeAttribute("aria-current");
|
|
377
|
+
for (let index = 0; index < this.pages; index++) {
|
|
378
|
+
const isCurrent = index === this.currentPageIndex;
|
|
379
|
+
const ariaCurrent = "page";
|
|
380
|
+
const accessibleName = this.getPageAccessibleName(index);
|
|
381
|
+
updatedPages.push({
|
|
382
|
+
index,
|
|
383
|
+
value: index + 1,
|
|
384
|
+
active: isCurrent,
|
|
385
|
+
accessibleName,
|
|
386
|
+
...(isCurrent && { ariaCurrent }),
|
|
387
|
+
});
|
|
388
|
+
}
|
|
357
389
|
}
|
|
358
|
-
|
|
359
|
-
return pagesCollection;
|
|
390
|
+
return updatedPages;
|
|
360
391
|
}
|
|
361
392
|
|
|
362
|
-
|
|
363
|
-
if (
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
393
|
+
shiftVisiblePages(shiftBackwards: boolean = false): Page[] {
|
|
394
|
+
if (shiftBackwards) {
|
|
395
|
+
while (this.currentPageIndex - this._firstPageIndex < this.pageOffset && this._firstPageIndex > 0) {
|
|
396
|
+
this._firstPageIndex--;
|
|
397
|
+
this._lastPageIndex--;
|
|
398
|
+
}
|
|
399
|
+
} else {
|
|
400
|
+
while (this._lastPageIndex - this.currentPageIndex - 1 < this.pageOffset && this._lastPageIndex < this.pages!) {
|
|
401
|
+
this._firstPageIndex++;
|
|
402
|
+
this._lastPageIndex++;
|
|
403
|
+
}
|
|
368
404
|
}
|
|
405
|
+
return this._pages.slice(this._firstPageIndex, this._lastPageIndex);
|
|
406
|
+
}
|
|
369
407
|
|
|
370
|
-
|
|
408
|
+
getPageAccessibleName(index: number): string {
|
|
409
|
+
const isCurrent = index === this.currentPageIndex;
|
|
410
|
+
|
|
411
|
+
const accessibleName = isCurrent ? `
|
|
412
|
+
${this.pageAccessibleName} ${index + 1} ${UDExPagination.i18nBundle.getText(OF)} ${this.pages}, ${UDExPagination.i18nBundle.getText(SELECTED)}` : `
|
|
413
|
+
${this.pageAccessibleName} ${index + 1} ${UDExPagination.i18nBundle.getText(OF)} ${this.pages}`;
|
|
414
|
+
|
|
415
|
+
return accessibleName;
|
|
371
416
|
}
|
|
372
417
|
|
|
373
418
|
onPageClick(e: Event) {
|
|
@@ -387,6 +432,11 @@ class UDExPagination extends UI5Element {
|
|
|
387
432
|
}
|
|
388
433
|
|
|
389
434
|
onAfterRendering() {
|
|
435
|
+
if (this._pageFocusedManually) {
|
|
436
|
+
const activePageItem = this.shadowRoot?.querySelector<HTMLElement>(".udex-pagination__page[active]");
|
|
437
|
+
activePageItem?.focus();
|
|
438
|
+
}
|
|
439
|
+
|
|
390
440
|
if (this.type === PaginationType.full) {
|
|
391
441
|
return;
|
|
392
442
|
}
|
package/src/PhoneNumberField.hbs
CHANGED
|
@@ -65,10 +65,10 @@
|
|
|
65
65
|
{{selectedCountryName}} {{selectedPhonePrefix}}
|
|
66
66
|
</div>
|
|
67
67
|
<div class="udex-phone-number-field__button-content">
|
|
68
|
-
<
|
|
68
|
+
<img
|
|
69
69
|
class="udex-phone-number-field__flag"
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
aria-label={{selectedCountryName}}
|
|
71
|
+
style="{{selectedFlagBackgroundPosition}}">
|
|
72
72
|
</div>
|
|
73
73
|
</udex-button>
|
|
74
74
|
{{/unless}}
|
package/src/PhoneNumberField.ts
CHANGED
|
@@ -287,6 +287,7 @@ class UDExPhoneNumberField extends UI5Element {
|
|
|
287
287
|
|
|
288
288
|
static i18nBundle: I18nBundle;
|
|
289
289
|
_dropdown!: UDExDropdown;
|
|
290
|
+
_dropdownList!: UDExList;
|
|
290
291
|
_handleResizeBound: ResizeObserverCallback;
|
|
291
292
|
|
|
292
293
|
static async onDefine() {
|
|
@@ -318,6 +319,10 @@ class UDExPhoneNumberField extends UI5Element {
|
|
|
318
319
|
|
|
319
320
|
onAfterRendering() {
|
|
320
321
|
this._dropdown = this.getDropdown();
|
|
322
|
+
this._dropdownList = this.getDropdownList();
|
|
323
|
+
if (this.countryIso) {
|
|
324
|
+
this._dropdownList.focusSelectedItem();
|
|
325
|
+
}
|
|
321
326
|
}
|
|
322
327
|
|
|
323
328
|
onClick(): void {
|
|
@@ -409,7 +414,6 @@ class UDExPhoneNumberField extends UI5Element {
|
|
|
409
414
|
if (isIncorrectNumberEntered) {
|
|
410
415
|
this.value = "";
|
|
411
416
|
}
|
|
412
|
-
|
|
413
417
|
this.fireEvent("change");
|
|
414
418
|
}
|
|
415
419
|
|
|
@@ -417,11 +421,8 @@ class UDExPhoneNumberField extends UI5Element {
|
|
|
417
421
|
const dropdown = this.getDropdown();
|
|
418
422
|
|
|
419
423
|
dropdown.onClose();
|
|
420
|
-
|
|
421
424
|
this.selectedIso = e.detail.item.id;
|
|
422
|
-
this.
|
|
423
|
-
this.phoneFormat = this.value + this.selectedPlaceholder;
|
|
424
|
-
this.maxlength = this.phoneFormat.length;
|
|
425
|
+
this.applyPhoneMask();
|
|
425
426
|
this.getInputField().focus();
|
|
426
427
|
}
|
|
427
428
|
|
|
@@ -429,6 +430,7 @@ class UDExPhoneNumberField extends UI5Element {
|
|
|
429
430
|
this.buttonIcon = OpenButtonIcon.iconUp;
|
|
430
431
|
this._dropdownExpanded = true;
|
|
431
432
|
}
|
|
433
|
+
|
|
432
434
|
handleDropdownClose() {
|
|
433
435
|
this.buttonIcon = OpenButtonIcon.iconDown;
|
|
434
436
|
this._dropdownExpanded = false;
|
|
@@ -490,13 +492,19 @@ class UDExPhoneNumberField extends UI5Element {
|
|
|
490
492
|
? this.selectedPhonePrefix + this.selectedPlaceholder : initialPlaceholder;
|
|
491
493
|
}
|
|
492
494
|
|
|
493
|
-
|
|
495
|
+
getDropdownList(): UDExList {
|
|
496
|
+
return this.shadowRoot!.querySelector<UDExList>(
|
|
497
|
+
"[udex-list]",
|
|
498
|
+
)!;
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
getDropdown(): UDExDropdown {
|
|
494
502
|
return this.shadowRoot!.querySelector<UDExDropdown>(
|
|
495
503
|
"[udex-dropdown]",
|
|
496
504
|
)!;
|
|
497
505
|
}
|
|
498
506
|
|
|
499
|
-
getButton() {
|
|
507
|
+
getButton(): UDExButton {
|
|
500
508
|
return this.shadowRoot!.querySelector<UDExButton>(
|
|
501
509
|
"[udex-button]",
|
|
502
510
|
)!;
|
|
@@ -528,7 +536,7 @@ class UDExPhoneNumberField extends UI5Element {
|
|
|
528
536
|
|
|
529
537
|
get selectedCountryName(): string {
|
|
530
538
|
if (!this.countryIso) {
|
|
531
|
-
return "";
|
|
539
|
+
return "None";
|
|
532
540
|
}
|
|
533
541
|
|
|
534
542
|
return this.updatedCountriesList.filter(country => country.iso === this.countryIso)[0]?.countryName
|
package/src/RangeSlider.ts
CHANGED
|
@@ -29,7 +29,6 @@ import SliderCss from "./generated/themes/Slider.css.js";
|
|
|
29
29
|
tag: "udex-range-slider",
|
|
30
30
|
renderer: litRender,
|
|
31
31
|
styles: [SliderBase.styles, rangeSliderCss, SliderCss],
|
|
32
|
-
dependencies: [],
|
|
33
32
|
})
|
|
34
33
|
class UDExRangeSlider extends RangeSlider {
|
|
35
34
|
onEnterDOM(): void {
|
package/src/Search.hbs
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
<div class="udex-search__root {{classWithPrefix}}">
|
|
2
2
|
{{#if isShowSearchHomePrefix}}
|
|
3
3
|
<div class="udex-search__prefix">
|
|
4
|
-
<button
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
<button
|
|
5
|
+
type="button"
|
|
6
|
+
role="combobox"
|
|
7
|
+
aria-expanded="{{_prefixDropdownExpanded}}"
|
|
8
|
+
aria-haspopup="true"
|
|
9
|
+
aria-controls="udex-search-prefix"
|
|
10
|
+
class="udex-search__prefix-button"
|
|
11
|
+
@click="{{handleDropdownClick}}">
|
|
11
12
|
<span class="udex-search__prefix-label">{{labelPrefix}}</span>
|
|
12
13
|
<ui5-icon class="udex-search__prefix-icon" name="slim-arrow-down"></ui5-icon>
|
|
13
14
|
</button>
|
|
@@ -16,7 +17,7 @@
|
|
|
16
17
|
class="udex-search__prefix-popover"
|
|
17
18
|
hide-arrow
|
|
18
19
|
placement-type="Bottom"
|
|
19
|
-
|
|
20
|
+
horizontal-align="Left"
|
|
20
21
|
style="{{prefixPopoverStyles}}"
|
|
21
22
|
@after-close="{{handleAfterClosePrefixPopover}}">
|
|
22
23
|
<slot></slot>
|
|
@@ -75,8 +76,7 @@
|
|
|
75
76
|
design="Default"
|
|
76
77
|
tooltip="{{tooltipInfo.tooltipResetButton}}"
|
|
77
78
|
@click="{{onReset}}"
|
|
78
|
-
@keydown="{{handleKeyDownReset}}"
|
|
79
|
-
>
|
|
79
|
+
@keydown="{{handleKeyDownReset}}">
|
|
80
80
|
<ui5-icon
|
|
81
81
|
class="udex-search__button-icon"
|
|
82
82
|
accessible-name="{{accInfo.accessibleNameResetIcon}}"
|
package/src/Search.ts
CHANGED
|
@@ -728,22 +728,20 @@ class UDExSearch extends UI5Element {
|
|
|
728
728
|
dropdown.style.width = `${button.offsetWidth + 1}px`;
|
|
729
729
|
button.classList.add("udex-search__prefix-button--active");
|
|
730
730
|
wrapper.classList.add("udex-search__prefix--show-popover");
|
|
731
|
-
this.handleItemClick
|
|
731
|
+
this.dropdownPrefix[0].addEventListener("item-press", this.handleItemClick);
|
|
732
732
|
}
|
|
733
733
|
}
|
|
734
734
|
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
});
|
|
742
|
-
}
|
|
735
|
+
handleItemClick = (e: Event) => {
|
|
736
|
+
const selectedItemPrefix = (e as CustomEvent).detail.item as ListItemBase;
|
|
737
|
+
this.labelPrefix = selectedItemPrefix.innerText;
|
|
738
|
+
this.fireEvent("prefix-item-click", { item: selectedItemPrefix });
|
|
739
|
+
this.onClosePrefixPopover();
|
|
740
|
+
};
|
|
743
741
|
|
|
744
742
|
onClosePrefixPopover() {
|
|
745
743
|
const dropdown = this.getPrefixPopover();
|
|
746
|
-
|
|
744
|
+
this.dropdownPrefix[0].removeEventListener("item-press", this.handleItemClick);
|
|
747
745
|
dropdown.close();
|
|
748
746
|
this._prefixDropdownExpanded = false;
|
|
749
747
|
this.handleAfterClosePrefixPopover();
|
|
@@ -755,7 +753,6 @@ class UDExSearch extends UI5Element {
|
|
|
755
753
|
|
|
756
754
|
wrapper.classList.remove("udex-search__prefix--show-popover");
|
|
757
755
|
button.classList.remove("udex-search__prefix-button--active");
|
|
758
|
-
this.dropdownPrefix[0].removeEventListener("item-press", () => {});
|
|
759
756
|
}
|
|
760
757
|
|
|
761
758
|
handleInputClick(): void {
|
|
@@ -767,7 +764,7 @@ class UDExSearch extends UI5Element {
|
|
|
767
764
|
}
|
|
768
765
|
}
|
|
769
766
|
|
|
770
|
-
onSubmit(e:
|
|
767
|
+
onSubmit(e: Event): void {
|
|
771
768
|
e.stopPropagation();
|
|
772
769
|
this.handleSubmitValue();
|
|
773
770
|
}
|
|
@@ -810,6 +807,10 @@ class UDExSearch extends UI5Element {
|
|
|
810
807
|
}
|
|
811
808
|
}
|
|
812
809
|
|
|
810
|
+
handleKeyPressSuggestionList(e: KeyboardEvent): void {
|
|
811
|
+
this.Suggestion?.handleKeyPress(e);
|
|
812
|
+
}
|
|
813
|
+
|
|
813
814
|
handleClassToRoot() {
|
|
814
815
|
const hasAdditionRootClass = !this.shadowRoot?.querySelector(".udex-search__root")?.classList.contains("udex-search__root--show-popover");
|
|
815
816
|
|
|
@@ -891,7 +892,7 @@ class UDExSearch extends UI5Element {
|
|
|
891
892
|
}
|
|
892
893
|
|
|
893
894
|
handleOutsideClick(): void {
|
|
894
|
-
document.addEventListener("mousedown", (e:
|
|
895
|
+
document.addEventListener("mousedown", (e: Event) => {
|
|
895
896
|
const popover = (e.target as HTMLElement).shadowRoot?.querySelector("[ui5-popover]");
|
|
896
897
|
|
|
897
898
|
if (e.target !== this && popover !== this.Suggestion?.popover) {
|
|
@@ -1011,7 +1012,7 @@ class UDExSearch extends UI5Element {
|
|
|
1011
1012
|
this.focusClasses = "";
|
|
1012
1013
|
}
|
|
1013
1014
|
|
|
1014
|
-
onReset(e:
|
|
1015
|
+
onReset(e: Event): void {
|
|
1015
1016
|
e.stopPropagation();
|
|
1016
1017
|
this.handleReset();
|
|
1017
1018
|
}
|
|
@@ -1022,7 +1023,7 @@ class UDExSearch extends UI5Element {
|
|
|
1022
1023
|
this.onClosePopover();
|
|
1023
1024
|
this.fireEvent("handle-value-reset");
|
|
1024
1025
|
this.Suggestion?.resetFocusState();
|
|
1025
|
-
this.focus();
|
|
1026
|
+
this.getSearchInput()?.focus();
|
|
1026
1027
|
}
|
|
1027
1028
|
|
|
1028
1029
|
handleKeyDownReset(e: KeyboardEvent) {
|
|
@@ -1033,7 +1034,6 @@ class UDExSearch extends UI5Element {
|
|
|
1033
1034
|
e.preventDefault();
|
|
1034
1035
|
e.stopPropagation();
|
|
1035
1036
|
this.handleReset();
|
|
1036
|
-
this.getSearchInput()?.focus();
|
|
1037
1037
|
}
|
|
1038
1038
|
}
|
|
1039
1039
|
|
|
@@ -1041,7 +1041,7 @@ class UDExSearch extends UI5Element {
|
|
|
1041
1041
|
return this.shadowRoot?.querySelector("[id='search-input']") as HTMLInputElement;
|
|
1042
1042
|
}
|
|
1043
1043
|
|
|
1044
|
-
onVoice(e:
|
|
1044
|
+
onVoice(e: Event): void {
|
|
1045
1045
|
e.stopPropagation();
|
|
1046
1046
|
if (this.speechRecognition) {
|
|
1047
1047
|
this.onSpeechLaunch();
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
id="{{getSuggestionsPopoverId}}"
|
|
9
9
|
aria-orientation="vertical"
|
|
10
10
|
accessible-role="Dialog"
|
|
11
|
+
@keydown="{{handleKeyPressSuggestionList}}"
|
|
11
12
|
accessible-name="{{suggestionsAccessibleName}}">
|
|
12
13
|
{{#if showNoResultMessage}}
|
|
13
14
|
<span class="udex-search-suggestions__message">{{noResultMessage}}</span>
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
{{else}}
|
|
15
15
|
<udex-list
|
|
16
16
|
id="udex-list"
|
|
17
|
+
role="{{roleForGroupList}}"
|
|
18
|
+
accessible-role="{{accessibleRoleForList}}"
|
|
17
19
|
class="udex-filter-menu__list"
|
|
18
20
|
?controlled="{{isControlled}}"
|
|
19
21
|
mode="{{mode}}">
|
|
@@ -45,7 +47,7 @@
|
|
|
45
47
|
</udex-list-select-all>
|
|
46
48
|
{{else}}
|
|
47
49
|
<udex-list-group-header
|
|
48
|
-
role="
|
|
50
|
+
role="group"
|
|
49
51
|
_additional-class-name="udex-searchable-list__header"
|
|
50
52
|
class="{{../groupClassName}}"
|
|
51
53
|
?non-interactive="{{this.item.nonInteractive}}"
|
|
@@ -2,8 +2,12 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
|
2
2
|
import event from "@ui5/webcomponents-base/dist/decorators/event.js";
|
|
3
3
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
4
4
|
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
5
|
-
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
6
5
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
6
|
+
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
7
|
+
import {
|
|
8
|
+
isDown, isUp,
|
|
9
|
+
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
10
|
+
import { cleanLabel } from "./utils/listItemLabelUtils.js";
|
|
7
11
|
import Search from "./Search.js";
|
|
8
12
|
import UDExListItemBase from "./ListItemBase.js";
|
|
9
13
|
import UDExListGroupHeaderBase from "./ListGroupHeaderBase.js";
|
|
@@ -277,7 +281,7 @@ class UDExSearchableListBase extends UI5Element {
|
|
|
277
281
|
}
|
|
278
282
|
|
|
279
283
|
checkAndUpdateLabel(item: UDExListItemBase | UDExListGroupHeaderBase, str: string): boolean {
|
|
280
|
-
const cleanedLabel =
|
|
284
|
+
const cleanedLabel = cleanLabel(item.label);
|
|
281
285
|
if (this.isIncludes(cleanedLabel, str)) {
|
|
282
286
|
item.label = this.addSearchTermTag(cleanedLabel, str);
|
|
283
287
|
return true;
|
|
@@ -285,10 +289,6 @@ class UDExSearchableListBase extends UI5Element {
|
|
|
285
289
|
return false;
|
|
286
290
|
}
|
|
287
291
|
|
|
288
|
-
cleanLabel(str: string): string {
|
|
289
|
-
return str.replace(/<\/?b[^>]*>/g, "");
|
|
290
|
-
}
|
|
291
|
-
|
|
292
292
|
addSearchTermTag(text: string, str: string): string {
|
|
293
293
|
return text.replace(new RegExp(`(${str})`, "i"), "<b>$&</b>");
|
|
294
294
|
}
|
|
@@ -314,6 +314,15 @@ class UDExSearchableListBase extends UI5Element {
|
|
|
314
314
|
}
|
|
315
315
|
}
|
|
316
316
|
|
|
317
|
+
handleKeyDown(e: KeyboardEvent) {
|
|
318
|
+
if (isUp(e)) {
|
|
319
|
+
this.handlePreviousItemFocus(e);
|
|
320
|
+
}
|
|
321
|
+
if (isDown(e)) {
|
|
322
|
+
this.handleNextListItemFocus(e);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
|
|
317
326
|
getSlottedItems(items: Array<UDExListItemBase | UDExListGroupHeaderBase>): Array<UDExListItemBase | UDExListGroupHeaderBase> {
|
|
318
327
|
const arr: Array<UDExListItemBase | UDExListGroupHeaderBase> = [];
|
|
319
328
|
items.forEach(item => {
|
|
@@ -354,10 +363,44 @@ class UDExSearchableListBase extends UI5Element {
|
|
|
354
363
|
});
|
|
355
364
|
}
|
|
356
365
|
|
|
366
|
+
// moves focus to next list item
|
|
367
|
+
handlePreviousItemFocus(e: KeyboardEvent) {
|
|
368
|
+
const item = e.target as HTMLElement;
|
|
369
|
+
const listItems = this.getDomListItems();
|
|
370
|
+
const currentSelectIndex = this.getCurrentIndex(item);
|
|
371
|
+
const previousSelectIndex = currentSelectIndex - 1;
|
|
372
|
+
if (currentSelectIndex > 0) {
|
|
373
|
+
e.preventDefault();
|
|
374
|
+
(listItems[previousSelectIndex] as HTMLElement).focus();
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
// moves focus to previous list item
|
|
379
|
+
handleNextListItemFocus(e: KeyboardEvent) {
|
|
380
|
+
const item = e.target as HTMLElement;
|
|
381
|
+
const listItems = this.getDomListItems();
|
|
382
|
+
const lastItemIndex = listItems.length - 1;
|
|
383
|
+
const currentSelectIndex = this.getCurrentIndex(item);
|
|
384
|
+
const nextSelectIndex = currentSelectIndex + 1;
|
|
385
|
+
if (nextSelectIndex <= lastItemIndex) {
|
|
386
|
+
e.preventDefault();
|
|
387
|
+
(listItems[nextSelectIndex] as HTMLElement).focus();
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
getCurrentIndex(item: Element): number {
|
|
392
|
+
return this.getDomListItems().indexOf(item);
|
|
393
|
+
}
|
|
394
|
+
|
|
357
395
|
getSearch(): Search {
|
|
358
396
|
return this.shadowRoot!.querySelector<Search>("udex-search")!;
|
|
359
397
|
}
|
|
360
398
|
|
|
399
|
+
getDomListItems(): Element[] {
|
|
400
|
+
const elementList = this.shadowRoot!.querySelector("udex-list") as HTMLElement;
|
|
401
|
+
return elementList ? Array.from(elementList.querySelectorAll("udex-list-item")) : [];
|
|
402
|
+
}
|
|
403
|
+
|
|
361
404
|
setItemsModeAndControl(items: Array<UDExFilterMenuItem>) {
|
|
362
405
|
items.forEach(item => {
|
|
363
406
|
item.mode = this.mode;
|
|
@@ -429,6 +472,14 @@ class UDExSearchableListBase extends UI5Element {
|
|
|
429
472
|
return items.length > SHOW_SEARCH_AFTER_COUNT && !this.modeRadioGroup;
|
|
430
473
|
}
|
|
431
474
|
|
|
475
|
+
get roleForGroupList(): string {
|
|
476
|
+
return this._filteredItems.some(element => element.isGroup) ? "group" : "none";
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
get accessibleRoleForList(): string {
|
|
480
|
+
return this._filteredItems.some(element => element.isGroup) ? "group" : "list";
|
|
481
|
+
}
|
|
482
|
+
|
|
432
483
|
static async onDefine(): Promise<void> {
|
|
433
484
|
UDExSearchableListBase.i18nBundle = await getI18nBundle("@udex/web-components");
|
|
434
485
|
}
|