@sapudex/web-components 2.4.2 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cypress/specs/Accordion.cy.tsx +18 -10
- package/cypress/specs/Divider.cy.tsx +16 -0
- package/cypress/support/component-imports.instrumented.ts +2 -0
- package/cypress/support/component-imports.src.ts +4 -2
- package/dist/Accordion.d.ts +6 -5
- package/dist/Accordion.js +21 -20
- package/dist/Accordion.js.map +1 -1
- package/dist/AccordionItem.d.ts +1 -3
- package/dist/AccordionItem.js +17 -19
- package/dist/AccordionItem.js.map +1 -1
- package/dist/AccordionItemTemplate.d.ts +2 -0
- package/dist/AccordionItemTemplate.js +14 -0
- package/dist/AccordionItemTemplate.js.map +1 -0
- package/dist/AccordionTemplate.d.ts +2 -0
- package/dist/AccordionTemplate.js +11 -0
- package/dist/AccordionTemplate.js.map +1 -0
- package/dist/AssetsVariables.js +5 -1
- package/dist/AssetsVariables.js.map +1 -1
- package/dist/Avatar.d.ts +2 -1
- package/dist/Avatar.js +7 -9
- package/dist/Avatar.js.map +1 -1
- package/dist/AvatarTemplate.d.ts +2 -0
- package/dist/AvatarTemplate.js +6 -0
- package/dist/AvatarTemplate.js.map +1 -0
- package/dist/Badge.d.ts +1 -2
- package/dist/Badge.js +6 -9
- package/dist/Badge.js.map +1 -1
- package/dist/BadgeTemplate.d.ts +2 -0
- package/dist/BadgeTemplate.js +8 -0
- package/dist/BadgeTemplate.js.map +1 -0
- package/dist/Carousel.d.ts +16 -4
- package/dist/Carousel.js +21 -11
- package/dist/Carousel.js.map +1 -1
- package/dist/CarouselTemplate.d.ts +2 -0
- package/dist/CarouselTemplate.js +15 -0
- package/dist/CarouselTemplate.js.map +1 -0
- package/dist/ContactItemTemplate.js +2 -1
- package/dist/ContactItemTemplate.js.map +1 -1
- package/dist/CountrySelector.d.ts +1 -1
- package/dist/CountrySelector.js +6 -7
- package/dist/CountrySelector.js.map +1 -1
- package/dist/Divider.d.ts +10 -2
- package/dist/Divider.js +11 -4
- package/dist/Divider.js.map +1 -1
- package/dist/DividerTemplate.d.ts +2 -0
- package/dist/DividerTemplate.js +5 -0
- package/dist/DividerTemplate.js.map +1 -0
- package/dist/Dropdown.js +2 -1
- package/dist/Dropdown.js.map +1 -1
- package/dist/FilterMenu.d.ts +0 -7
- package/dist/FilterMenu.js +12 -12
- package/dist/FilterMenu.js.map +1 -1
- package/dist/List.js +1 -1
- package/dist/List.js.map +1 -1
- package/dist/MastheadCountrySelector.d.ts +5 -0
- package/dist/MastheadCountrySelector.js +17 -2
- package/dist/MastheadCountrySelector.js.map +1 -1
- package/dist/MastheadItem.d.ts +3 -0
- package/dist/MastheadItem.js +17 -1
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadMenu.d.ts +3 -1
- package/dist/MastheadMenu.js +23 -14
- package/dist/MastheadMenu.js.map +1 -1
- package/dist/MastheadMobileMenu.d.ts +4 -0
- package/dist/MastheadMobileMenu.js +50 -9
- package/dist/MastheadMobileMenu.js.map +1 -1
- package/dist/MastheadShell.d.ts +78 -16
- package/dist/MastheadShell.js +99 -81
- package/dist/MastheadShell.js.map +1 -1
- package/dist/Modal.js +2 -2
- package/dist/Modal.js.map +1 -1
- package/dist/Search.js +5 -4
- package/dist/Search.js.map +1 -1
- package/dist/SearchableListBase.d.ts +24 -2
- package/dist/SearchableListBase.js +54 -4
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SecondaryNavigation.js +1 -1
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.js +1 -2
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SegmentedButton.js +6 -4
- package/dist/SegmentedButton.js.map +1 -1
- package/dist/SelectBox.d.ts +0 -7
- package/dist/SelectBox.js +10 -13
- package/dist/SelectBox.js.map +1 -1
- package/dist/TabNavigation.d.ts +5 -0
- package/dist/TabNavigation.js +8 -0
- package/dist/TabNavigation.js.map +1 -1
- package/dist/Table.js +1 -1
- package/dist/Table.js.map +1 -1
- package/dist/TagGroup.js +3 -2
- package/dist/TagGroup.js.map +1 -1
- package/dist/TextArea.js +1 -1
- package/dist/TextArea.js.map +1 -1
- package/dist/assets/InputSuggestions-D_DpCFML.js +2 -0
- package/dist/assets/{ListItemStandardExpandableTextTemplate-87ypSvqu.js → ListItemStandardExpandableTextTemplate-Cd1WOyFc.js} +3 -3
- package/dist/assets/bundle-S1uYREqT.css +1 -0
- package/dist/assets/bundle.esm-B9JnRRJp.js +475 -0
- package/dist/assets/messagebundle_ar-C39XMRa3.js +1 -0
- package/dist/assets/messagebundle_bg-CFuqxDUo.js +1 -0
- package/dist/assets/messagebundle_cs-HZFdxP5k.js +1 -0
- package/dist/assets/messagebundle_da-Cb19y_UU.js +1 -0
- package/dist/assets/messagebundle_de-BPtfcnG8.js +1 -0
- package/dist/assets/messagebundle_el-BfR2BVvB.js +1 -0
- package/dist/assets/messagebundle_en-CKeTZNW3.js +1 -0
- package/dist/assets/messagebundle_es-DEz3xznF.js +1 -0
- package/dist/assets/messagebundle_et-BHSda64J.js +1 -0
- package/dist/assets/messagebundle_fi-DTkxmWJb.js +1 -0
- package/dist/assets/messagebundle_fr-BEq1Nxlj.js +1 -0
- package/dist/assets/messagebundle_hr-BzWPMYA7.js +1 -0
- package/dist/assets/messagebundle_hu-DQvndOA8.js +1 -0
- package/dist/assets/messagebundle_it-Bx7wA4HY.js +1 -0
- package/dist/assets/messagebundle_iw-L2hZONxh.js +1 -0
- package/dist/assets/messagebundle_ko-D4ckbm7i.js +1 -0
- package/dist/assets/messagebundle_lt-BriAnQM8.js +1 -0
- package/dist/assets/messagebundle_lv-Di1Ng3Tk.js +1 -0
- package/dist/assets/messagebundle_nl-Bhq20VT1.js +1 -0
- package/dist/assets/messagebundle_no-bTeyeWYl.js +1 -0
- package/dist/assets/messagebundle_pl-BnBUJpAL.js +1 -0
- package/dist/assets/messagebundle_pt-Cd_ey78V.js +1 -0
- package/dist/assets/messagebundle_ro-Cy-zHe5i.js +1 -0
- package/dist/assets/messagebundle_ru-CiDd56L1.js +1 -0
- package/dist/assets/messagebundle_sk-DJS6mahY.js +1 -0
- package/dist/assets/messagebundle_sl-BUi3OLzP.js +1 -0
- package/dist/assets/messagebundle_sr-BtodsTa0.js +1 -0
- package/dist/assets/messagebundle_sv-CVVuFZcm.js +1 -0
- package/dist/assets/messagebundle_tr-CqVlQ8yY.js +1 -0
- package/dist/assets/messagebundle_uk-aDyDoabO.js +1 -0
- package/dist/assets/messagebundle_zh_CN-CTb6-Dhs.js +1 -0
- package/dist/assets/messagebundle_zh_TW-DtT5REQh.js +1 -0
- package/dist/assets/parameters-bundle.css-B168-DcZ.js +2 -0
- package/dist/assets/parameters-bundle.css-B4OkERQ9.js +2 -0
- package/dist/assets/parameters-bundle.css-D1Mp0DP7.js +2 -0
- package/dist/assets/parameters-bundle.css-DPQMdjrz.js +2 -0
- package/dist/assets/parameters-bundle.css-DW-8EaO7.js +2 -0
- package/dist/assets/parameters-bundle.css-DpI130zX.js +2 -0
- package/dist/assets/parameters-bundle.css-DsEtCihj.js +2 -0
- package/dist/assets/parameters-bundle.css-y5CBgtzD.js +2 -0
- package/dist/css/themes/CountrySelector.css +1 -1
- package/dist/css/themes/MastheadCountrySelector.css +1 -1
- package/dist/css/themes/MastheadItem.css +1 -1
- package/dist/css/themes/MastheadMenuItem.css +1 -1
- package/dist/css/themes/MastheadMobileMenu.css +1 -1
- package/dist/css/themes/MastheadShell.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/Search.css +1 -1
- package/dist/css/themes/SearchableList.css +1 -1
- package/dist/css/themes/SegmentedButtonItem.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/css/themes/TextArea.css +1 -1
- package/dist/custom-elements-internal.json +391 -88
- package/dist/custom-elements.json +379 -88
- package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
- package/dist/generated/i18n/i18n-defaults.js +2 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/json-imports/Themes-fetch.js +1 -1
- package/dist/generated/json-imports/Themes-fetch.js.map +1 -1
- package/dist/generated/json-imports/Themes-node.js +1 -1
- package/dist/generated/json-imports/Themes-node.js.map +1 -1
- package/dist/generated/json-imports/Themes.js +1 -1
- package/dist/generated/json-imports/Themes.js.map +1 -1
- package/dist/generated/json-imports/i18n-fetch.js +1 -1
- package/dist/generated/json-imports/i18n-fetch.js.map +1 -1
- package/dist/generated/json-imports/i18n-node.js +1 -1
- package/dist/generated/json-imports/i18n-node.js.map +1 -1
- package/dist/generated/json-imports/i18n.js +1 -1
- package/dist/generated/json-imports/i18n.js.map +1 -1
- package/dist/generated/templates/HeroBannerTemplate.lit.js +1 -1
- package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js +3 -3
- package/dist/generated/templates/MastheadCountrySelectorTemplate.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/MastheadMobileMenuTemplate.lit.js +11 -11
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadShellTemplate.lit.js +17 -14
- package/dist/generated/templates/MastheadShellTemplate.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/themes/Accordion.css.js +2 -2
- package/dist/generated/themes/Accordion.css.js.map +1 -1
- package/dist/generated/themes/AccordionItem.css.js +2 -2
- package/dist/generated/themes/AccordionItem.css.js.map +1 -1
- package/dist/generated/themes/Avatar.css.js +2 -2
- package/dist/generated/themes/Avatar.css.js.map +1 -1
- package/dist/generated/themes/Badge.css.js +2 -2
- package/dist/generated/themes/Badge.css.js.map +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js +2 -2
- package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
- package/dist/generated/themes/BreadcrumbsPopover.css.js +2 -2
- package/dist/generated/themes/BreadcrumbsPopover.css.js.map +1 -1
- package/dist/generated/themes/Button.css.js +2 -2
- package/dist/generated/themes/Button.css.js.map +1 -1
- package/dist/generated/themes/Carousel.css.js +2 -2
- package/dist/generated/themes/Carousel.css.js.map +1 -1
- package/dist/generated/themes/Checkbox.css.js +2 -2
- package/dist/generated/themes/Checkbox.css.js.map +1 -1
- package/dist/generated/themes/Contact.css.js +2 -2
- package/dist/generated/themes/Contact.css.js.map +1 -1
- package/dist/generated/themes/ContactItem.css.js +2 -2
- package/dist/generated/themes/ContactItem.css.js.map +1 -1
- package/dist/generated/themes/ControlButton.css.js +2 -2
- package/dist/generated/themes/ControlButton.css.js.map +1 -1
- package/dist/generated/themes/CountrySelector.css.d.ts +1 -1
- package/dist/generated/themes/CountrySelector.css.js +3 -3
- package/dist/generated/themes/CountrySelector.css.js.map +1 -1
- package/dist/generated/themes/DatePicker.css.js +2 -2
- package/dist/generated/themes/DatePicker.css.js.map +1 -1
- package/dist/generated/themes/DatePickerPopover.css.js +2 -2
- package/dist/generated/themes/DatePickerPopover.css.js.map +1 -1
- package/dist/generated/themes/Divider.css.js +2 -2
- package/dist/generated/themes/Divider.css.js.map +1 -1
- package/dist/generated/themes/Dropdown.css.js +2 -2
- package/dist/generated/themes/Dropdown.css.js.map +1 -1
- package/dist/generated/themes/EventRibbon.css.js +2 -2
- package/dist/generated/themes/EventRibbon.css.js.map +1 -1
- package/dist/generated/themes/FilterMenu.css.js +2 -2
- package/dist/generated/themes/FilterMenu.css.js.map +1 -1
- package/dist/generated/themes/Footer.css.js +2 -2
- package/dist/generated/themes/Footer.css.js.map +1 -1
- package/dist/generated/themes/HeroBanner.css.js +2 -2
- package/dist/generated/themes/HeroBanner.css.js.map +1 -1
- package/dist/generated/themes/InputGroup.css.js +2 -2
- package/dist/generated/themes/InputGroup.css.js.map +1 -1
- package/dist/generated/themes/Link.css.js +2 -2
- package/dist/generated/themes/Link.css.js.map +1 -1
- package/dist/generated/themes/List.css.js +2 -2
- package/dist/generated/themes/List.css.js.map +1 -1
- package/dist/generated/themes/ListGroupHeader.css.js +2 -2
- package/dist/generated/themes/ListGroupHeader.css.js.map +1 -1
- package/dist/generated/themes/ListItem.css.js +2 -2
- package/dist/generated/themes/ListItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadCountrySelector.css.d.ts +1 -1
- package/dist/generated/themes/MastheadCountrySelector.css.js +3 -3
- package/dist/generated/themes/MastheadCountrySelector.css.js.map +1 -1
- package/dist/generated/themes/MastheadItem.css.d.ts +1 -1
- package/dist/generated/themes/MastheadItem.css.js +3 -3
- package/dist/generated/themes/MastheadItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadMenu.css.js +2 -2
- package/dist/generated/themes/MastheadMenu.css.js.map +1 -1
- package/dist/generated/themes/MastheadMenuItem.css.d.ts +1 -1
- package/dist/generated/themes/MastheadMenuItem.css.js +3 -3
- package/dist/generated/themes/MastheadMenuItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadMobileMenu.css.d.ts +1 -1
- package/dist/generated/themes/MastheadMobileMenu.css.js +3 -3
- package/dist/generated/themes/MastheadMobileMenu.css.js.map +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.js +2 -2
- package/dist/generated/themes/MastheadProfileMenu.css.js.map +1 -1
- package/dist/generated/themes/MastheadShell.css.d.ts +1 -1
- package/dist/generated/themes/MastheadShell.css.js +3 -3
- package/dist/generated/themes/MastheadShell.css.js.map +1 -1
- package/dist/generated/themes/MediaPlayer.css.js +2 -2
- package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
- package/dist/generated/themes/MediaPlayerYoutube.css.js +2 -2
- package/dist/generated/themes/MediaPlayerYoutube.css.js.map +1 -1
- package/dist/generated/themes/MessageStrip.css.js +2 -2
- package/dist/generated/themes/MessageStrip.css.js.map +1 -1
- package/dist/generated/themes/Modal.css.js +2 -2
- package/dist/generated/themes/Modal.css.js.map +1 -1
- package/dist/generated/themes/Pagination.css.js +2 -2
- package/dist/generated/themes/Pagination.css.js.map +1 -1
- package/dist/generated/themes/PhoneNumberField.css.js +2 -2
- package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
- package/dist/generated/themes/ProgressBar.css.js +2 -2
- package/dist/generated/themes/ProgressBar.css.js.map +1 -1
- package/dist/generated/themes/Quote.css.js +2 -2
- package/dist/generated/themes/Quote.css.js.map +1 -1
- package/dist/generated/themes/RadioButton.css.js +2 -2
- package/dist/generated/themes/RadioButton.css.js.map +1 -1
- package/dist/generated/themes/RatingBar.css.js +2 -2
- package/dist/generated/themes/RatingBar.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +3 -3
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/Review.css.js +2 -2
- package/dist/generated/themes/Review.css.js.map +1 -1
- package/dist/generated/themes/ReviewItem.css.js +2 -2
- package/dist/generated/themes/ReviewItem.css.js.map +1 -1
- package/dist/generated/themes/Search.css.d.ts +1 -1
- package/dist/generated/themes/Search.css.js +3 -3
- package/dist/generated/themes/Search.css.js.map +1 -1
- package/dist/generated/themes/SearchSuggestions.css.js +2 -2
- package/dist/generated/themes/SearchSuggestions.css.js.map +1 -1
- package/dist/generated/themes/SearchableList.css.d.ts +1 -1
- package/dist/generated/themes/SearchableList.css.js +3 -3
- package/dist/generated/themes/SearchableList.css.js.map +1 -1
- package/dist/generated/themes/SecondaryNavigation.css.js +2 -2
- package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
- package/dist/generated/themes/SecondaryNavigationItem.css.js +2 -2
- package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
- package/dist/generated/themes/SecondaryNavigationSubItem.css.js +2 -2
- package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -1
- package/dist/generated/themes/SegmentedButton.css.js +2 -2
- package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.js +3 -3
- package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
- package/dist/generated/themes/SelectBox.css.js +2 -2
- package/dist/generated/themes/SelectBox.css.js.map +1 -1
- package/dist/generated/themes/SideNavigation.css.js +2 -2
- package/dist/generated/themes/SideNavigation.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationGroup.css.js +2 -2
- package/dist/generated/themes/SideNavigationGroup.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationItem.css.js +2 -2
- package/dist/generated/themes/SideNavigationItem.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationMobile.css.js +2 -2
- package/dist/generated/themes/SideNavigationMobile.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationMobileDropdown.css.js +2 -2
- package/dist/generated/themes/SideNavigationMobileDropdown.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationSubItem.css.js +2 -2
- package/dist/generated/themes/SideNavigationSubItem.css.js.map +1 -1
- package/dist/generated/themes/Slider.css.d.ts +1 -1
- package/dist/generated/themes/Slider.css.js +3 -3
- package/dist/generated/themes/Slider.css.js.map +1 -1
- package/dist/generated/themes/StatusBadge.css.js +2 -2
- package/dist/generated/themes/StatusBadge.css.js.map +1 -1
- package/dist/generated/themes/StatusMessage.css.js +2 -2
- package/dist/generated/themes/StatusMessage.css.js.map +1 -1
- package/dist/generated/themes/StepInput.css.js +2 -2
- package/dist/generated/themes/StepInput.css.js.map +1 -1
- package/dist/generated/themes/Switch.css.js +2 -2
- package/dist/generated/themes/Switch.css.js.map +1 -1
- package/dist/generated/themes/TabInOverflow.css.js +2 -2
- package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
- package/dist/generated/themes/TabNavigation.css.js +2 -2
- package/dist/generated/themes/TabNavigation.css.js.map +1 -1
- package/dist/generated/themes/Table.css.js +2 -2
- package/dist/generated/themes/Table.css.js.map +1 -1
- package/dist/generated/themes/TableCell.css.js +2 -2
- package/dist/generated/themes/TableCell.css.js.map +1 -1
- package/dist/generated/themes/TableCellBase.css.js +2 -2
- package/dist/generated/themes/TableCellBase.css.js.map +1 -1
- package/dist/generated/themes/TableGroupRow.css.js +2 -2
- package/dist/generated/themes/TableGroupRow.css.js.map +1 -1
- package/dist/generated/themes/TableHeaderCell.css.js +2 -2
- package/dist/generated/themes/TableHeaderCell.css.js.map +1 -1
- package/dist/generated/themes/TableRowBase.css.js +2 -2
- package/dist/generated/themes/TableRowBase.css.js.map +1 -1
- package/dist/generated/themes/Tag.css.js +2 -2
- package/dist/generated/themes/Tag.css.js.map +1 -1
- package/dist/generated/themes/TagGroup.css.js +2 -2
- package/dist/generated/themes/TagGroup.css.js.map +1 -1
- package/dist/generated/themes/TextArea.css.d.ts +1 -1
- package/dist/generated/themes/TextArea.css.js +3 -3
- package/dist/generated/themes/TextArea.css.js.map +1 -1
- package/dist/generated/themes/TextField.css.js +2 -2
- package/dist/generated/themes/TextField.css.js.map +1 -1
- package/dist/generated/themes/Tile.css.js +2 -2
- package/dist/generated/themes/Tile.css.js.map +1 -1
- package/dist/generated/themes/Toast.css.js +2 -2
- package/dist/generated/themes/Toast.css.js.map +1 -1
- package/dist/generated/themes/Tooltip.css.js +2 -2
- package/dist/generated/themes/Tooltip.css.js.map +1 -1
- package/dist/generated/themes/TruncatedText.css.js +2 -2
- package/dist/generated/themes/TruncatedText.css.js.map +1 -1
- package/dist/generated/themes/Upload.css.js +2 -2
- package/dist/generated/themes/Upload.css.js.map +1 -1
- package/dist/generated/themes/UploadItem.css.js +2 -2
- package/dist/generated/themes/UploadItem.css.js.map +1 -1
- package/dist/generated/themes/Wizard.css.js +2 -2
- package/dist/generated/themes/Wizard.css.js.map +1 -1
- package/dist/generated/themes/WizardTab.css.js +2 -2
- package/dist/generated/themes/WizardTab.css.js.map +1 -1
- package/dist/messagebundle.properties +3 -0
- package/dist/messagebundle_ar.properties +3 -0
- package/dist/messagebundle_bg.properties +3 -0
- package/dist/messagebundle_cs.properties +3 -0
- package/dist/messagebundle_da.properties +3 -0
- package/dist/messagebundle_de.properties +3 -0
- package/dist/messagebundle_el.properties +3 -0
- package/dist/messagebundle_en.properties +1 -0
- package/dist/messagebundle_es.properties +3 -0
- package/dist/messagebundle_et.properties +3 -0
- package/dist/messagebundle_fi.properties +3 -0
- package/dist/messagebundle_fr.properties +3 -0
- package/dist/messagebundle_hr.properties +3 -0
- package/dist/messagebundle_hu.properties +3 -0
- package/dist/messagebundle_it.properties +3 -0
- package/dist/messagebundle_iw.properties +3 -1
- package/dist/messagebundle_ko.properties +3 -0
- package/dist/messagebundle_lt.properties +3 -0
- package/dist/messagebundle_lv.properties +3 -0
- package/dist/messagebundle_nl.properties +3 -0
- package/dist/messagebundle_no.properties +3 -0
- package/dist/messagebundle_pl.properties +3 -0
- package/dist/messagebundle_pt.properties +3 -0
- package/dist/messagebundle_pt_BR.properties +3 -0
- package/dist/messagebundle_ro.properties +3 -0
- package/dist/messagebundle_ru.properties +3 -0
- package/dist/messagebundle_sk.properties +3 -0
- package/dist/messagebundle_sl.properties +3 -0
- package/dist/messagebundle_sr.properties +3 -1
- package/dist/messagebundle_sv.properties +3 -0
- package/dist/messagebundle_tr.properties +3 -0
- package/dist/messagebundle_uk.properties +3 -0
- package/dist/messagebundle_zh_CN.properties +3 -1
- package/dist/messagebundle_zh_TW.properties +3 -0
- package/dist/types/SearchableListBase.d.ts +5 -0
- package/dist/types/SearchableListBase.js +6 -0
- package/dist/types/SearchableListBase.js.map +1 -1
- package/dist/utils/getEffectiveScrollbarStyle.d.ts +4 -0
- package/dist/utils/getEffectiveScrollbarStyle.js +45 -0
- package/dist/utils/getEffectiveScrollbarStyle.js.map +1 -0
- package/dist/vscode.html-custom-data.json +71 -16
- package/dist/web-types.json +158 -44
- package/package.json +7 -7
- package/src/Accordion.ts +38 -31
- package/src/AccordionItem.ts +23 -27
- package/src/AccordionItemTemplate.tsx +54 -0
- package/src/AccordionTemplate.tsx +37 -0
- package/src/AssetsVariables.ts +5 -1
- package/src/Avatar.ts +9 -11
- package/src/AvatarTemplate.tsx +22 -0
- package/src/Badge.ts +8 -12
- package/src/BadgeTemplate.tsx +22 -0
- package/src/Carousel.ts +30 -24
- package/src/CarouselTemplate.tsx +56 -0
- package/src/ContactItemTemplate.tsx +2 -1
- package/src/CountrySelector.ts +9 -10
- package/src/Divider.ts +13 -5
- package/src/DividerTemplate.tsx +11 -0
- package/src/Dropdown.ts +2 -1
- package/src/FilterMenu.ts +15 -18
- package/src/HeroBanner.hbs +1 -0
- package/src/List.ts +1 -1
- package/src/MastheadCountrySelector.hbs +5 -9
- package/src/MastheadCountrySelector.ts +19 -0
- package/src/MastheadItem.ts +21 -2
- package/src/MastheadMenu.hbs +3 -3
- package/src/MastheadMenu.ts +32 -15
- package/src/MastheadMobileMenu.hbs +13 -2
- package/src/MastheadMobileMenu.ts +57 -10
- package/src/MastheadShell.hbs +64 -30
- package/src/MastheadShell.ts +168 -43
- package/src/Modal.ts +2 -2
- package/src/Search.hbs +1 -1
- package/src/Search.ts +5 -4
- package/src/SearchableListBase.hbs +7 -1
- package/src/SearchableListBase.ts +69 -9
- package/src/SecondaryNavigation.ts +1 -1
- package/src/SecondaryNavigationItem.ts +1 -2
- package/src/SegmentedButton.ts +7 -4
- package/src/SelectBox.ts +13 -19
- package/src/TabNavigation.ts +13 -0
- package/src/Table.ts +1 -1
- package/src/TagGroup.ts +3 -2
- package/src/TextArea.ts +1 -1
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/json-imports/Themes-fetch.ts +1 -1
- package/src/generated/json-imports/Themes-node.ts +1 -1
- package/src/generated/json-imports/Themes.ts +1 -1
- package/src/generated/json-imports/i18n-fetch.ts +1 -1
- package/src/generated/json-imports/i18n-node.ts +1 -1
- package/src/generated/json-imports/i18n.ts +1 -1
- package/src/generated/templates/HeroBannerTemplate.lit.ts +1 -1
- package/src/generated/templates/MastheadCountrySelectorTemplate.lit.ts +3 -3
- package/src/generated/templates/MastheadMenuTemplate.lit.ts +3 -3
- package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +11 -11
- package/src/generated/templates/MastheadShellTemplate.lit.ts +17 -14
- package/src/generated/templates/SearchableListBaseTemplate.lit.ts +2 -2
- package/src/generated/themes/Accordion.css.ts +2 -2
- package/src/generated/themes/AccordionItem.css.ts +2 -2
- package/src/generated/themes/Avatar.css.ts +2 -2
- package/src/generated/themes/Badge.css.ts +2 -2
- package/src/generated/themes/Breadcrumbs.css.ts +2 -2
- package/src/generated/themes/BreadcrumbsPopover.css.ts +2 -2
- package/src/generated/themes/Button.css.ts +2 -2
- package/src/generated/themes/Carousel.css.ts +2 -2
- package/src/generated/themes/Checkbox.css.ts +2 -2
- package/src/generated/themes/Contact.css.ts +2 -2
- package/src/generated/themes/ContactItem.css.ts +2 -2
- package/src/generated/themes/ControlButton.css.ts +2 -2
- package/src/generated/themes/CountrySelector.css.ts +3 -3
- package/src/generated/themes/DatePicker.css.ts +2 -2
- package/src/generated/themes/DatePickerPopover.css.ts +2 -2
- package/src/generated/themes/Divider.css.ts +2 -2
- package/src/generated/themes/Dropdown.css.ts +2 -2
- package/src/generated/themes/EventRibbon.css.ts +2 -2
- package/src/generated/themes/FilterMenu.css.ts +2 -2
- package/src/generated/themes/Footer.css.ts +2 -2
- package/src/generated/themes/HeroBanner.css.ts +2 -2
- package/src/generated/themes/InputGroup.css.ts +2 -2
- package/src/generated/themes/Link.css.ts +2 -2
- package/src/generated/themes/List.css.ts +2 -2
- package/src/generated/themes/ListGroupHeader.css.ts +2 -2
- package/src/generated/themes/ListItem.css.ts +2 -2
- package/src/generated/themes/MastheadCountrySelector.css.ts +3 -3
- package/src/generated/themes/MastheadItem.css.ts +3 -3
- package/src/generated/themes/MastheadMenu.css.ts +2 -2
- package/src/generated/themes/MastheadMenuItem.css.ts +3 -3
- package/src/generated/themes/MastheadMobileMenu.css.ts +3 -3
- package/src/generated/themes/MastheadProfileMenu.css.ts +2 -2
- package/src/generated/themes/MastheadShell.css.ts +3 -3
- package/src/generated/themes/MediaPlayer.css.ts +2 -2
- package/src/generated/themes/MediaPlayerYoutube.css.ts +2 -2
- package/src/generated/themes/MessageStrip.css.ts +2 -2
- package/src/generated/themes/Modal.css.ts +2 -2
- package/src/generated/themes/Pagination.css.ts +2 -2
- package/src/generated/themes/PhoneNumberField.css.ts +2 -2
- package/src/generated/themes/ProgressBar.css.ts +2 -2
- package/src/generated/themes/Quote.css.ts +2 -2
- package/src/generated/themes/RadioButton.css.ts +2 -2
- package/src/generated/themes/RatingBar.css.ts +2 -2
- package/src/generated/themes/RatingIndicator.css.ts +3 -3
- package/src/generated/themes/Review.css.ts +2 -2
- package/src/generated/themes/ReviewItem.css.ts +2 -2
- package/src/generated/themes/Search.css.ts +3 -3
- package/src/generated/themes/SearchSuggestions.css.ts +2 -2
- package/src/generated/themes/SearchableList.css.ts +3 -3
- package/src/generated/themes/SecondaryNavigation.css.ts +2 -2
- package/src/generated/themes/SecondaryNavigationItem.css.ts +2 -2
- package/src/generated/themes/SecondaryNavigationSubItem.css.ts +2 -2
- package/src/generated/themes/SegmentedButton.css.ts +2 -2
- package/src/generated/themes/SegmentedButtonItem.css.ts +3 -3
- package/src/generated/themes/SelectBox.css.ts +2 -2
- package/src/generated/themes/SideNavigation.css.ts +2 -2
- package/src/generated/themes/SideNavigationGroup.css.ts +2 -2
- package/src/generated/themes/SideNavigationItem.css.ts +2 -2
- package/src/generated/themes/SideNavigationMobile.css.ts +2 -2
- package/src/generated/themes/SideNavigationMobileDropdown.css.ts +2 -2
- package/src/generated/themes/SideNavigationSubItem.css.ts +2 -2
- package/src/generated/themes/Slider.css.ts +3 -3
- package/src/generated/themes/StatusBadge.css.ts +2 -2
- package/src/generated/themes/StatusMessage.css.ts +2 -2
- package/src/generated/themes/StepInput.css.ts +2 -2
- package/src/generated/themes/Switch.css.ts +2 -2
- package/src/generated/themes/TabInOverflow.css.ts +2 -2
- package/src/generated/themes/TabNavigation.css.ts +2 -2
- package/src/generated/themes/Table.css.ts +2 -2
- package/src/generated/themes/TableCell.css.ts +2 -2
- package/src/generated/themes/TableCellBase.css.ts +2 -2
- package/src/generated/themes/TableGroupRow.css.ts +2 -2
- package/src/generated/themes/TableHeaderCell.css.ts +2 -2
- package/src/generated/themes/TableRowBase.css.ts +2 -2
- package/src/generated/themes/Tag.css.ts +2 -2
- package/src/generated/themes/TagGroup.css.ts +2 -2
- package/src/generated/themes/TextArea.css.ts +3 -3
- package/src/generated/themes/TextField.css.ts +2 -2
- package/src/generated/themes/Tile.css.ts +2 -2
- package/src/generated/themes/Toast.css.ts +2 -2
- package/src/generated/themes/Tooltip.css.ts +2 -2
- package/src/generated/themes/TruncatedText.css.ts +2 -2
- package/src/generated/themes/Upload.css.ts +2 -2
- package/src/generated/themes/UploadItem.css.ts +2 -2
- package/src/generated/themes/Wizard.css.ts +2 -2
- package/src/generated/themes/WizardTab.css.ts +2 -2
- package/src/i18n/messagebundle.properties +3 -0
- package/src/i18n/messagebundle_ar.properties +3 -0
- package/src/i18n/messagebundle_bg.properties +3 -0
- package/src/i18n/messagebundle_cs.properties +3 -0
- package/src/i18n/messagebundle_da.properties +3 -0
- package/src/i18n/messagebundle_de.properties +3 -0
- package/src/i18n/messagebundle_el.properties +3 -0
- package/src/i18n/messagebundle_en.properties +1 -0
- package/src/i18n/messagebundle_es.properties +3 -0
- package/src/i18n/messagebundle_et.properties +3 -0
- package/src/i18n/messagebundle_fi.properties +3 -0
- package/src/i18n/messagebundle_fr.properties +3 -0
- package/src/i18n/messagebundle_hr.properties +3 -0
- package/src/i18n/messagebundle_hu.properties +3 -0
- package/src/i18n/messagebundle_it.properties +3 -0
- package/src/i18n/messagebundle_iw.properties +3 -1
- package/src/i18n/messagebundle_ko.properties +3 -0
- package/src/i18n/messagebundle_lt.properties +3 -0
- package/src/i18n/messagebundle_lv.properties +3 -0
- package/src/i18n/messagebundle_nl.properties +3 -0
- package/src/i18n/messagebundle_no.properties +3 -0
- package/src/i18n/messagebundle_pl.properties +3 -0
- package/src/i18n/messagebundle_pt.properties +3 -0
- package/src/i18n/messagebundle_pt_BR.properties +3 -0
- package/src/i18n/messagebundle_ro.properties +3 -0
- package/src/i18n/messagebundle_ru.properties +3 -0
- package/src/i18n/messagebundle_sk.properties +3 -0
- package/src/i18n/messagebundle_sl.properties +3 -0
- package/src/i18n/messagebundle_sr.properties +3 -1
- package/src/i18n/messagebundle_sv.properties +3 -0
- package/src/i18n/messagebundle_tr.properties +3 -0
- package/src/i18n/messagebundle_uk.properties +3 -0
- package/src/i18n/messagebundle_zh_CN.properties +3 -1
- package/src/i18n/messagebundle_zh_TW.properties +3 -0
- package/src/themes/CountrySelector.css +11 -0
- package/src/themes/List.css +1 -0
- package/src/themes/MastheadCountrySelector.css +11 -0
- package/src/themes/MastheadItem.css +6 -2
- package/src/themes/MastheadMenuItem.css +5 -0
- package/src/themes/MastheadMobileMenu.css +1 -0
- package/src/themes/MastheadShell.css +42 -8
- package/src/themes/Search.css +3 -1
- package/src/themes/SearchableList.css +15 -0
- package/src/themes/SegmentedButtonItem.css +2 -2
- package/src/themes/TextArea.css +0 -7
- package/src/types/SearchableListBase.ts +6 -0
- package/src/utils/getEffectiveScrollbarStyle.ts +48 -0
- package/dist/assets/InputSuggestions-BaPMxFm1.js +0 -2
- package/dist/assets/bundle-C9ZlnwwH.css +0 -1
- package/dist/assets/bundle.esm-CoBHnkfj.js +0 -399
- package/dist/assets/messagebundle_ar-9zPDAqTU.js +0 -1
- package/dist/assets/messagebundle_bg-DWxB0fCn.js +0 -1
- package/dist/assets/messagebundle_cs-C_ZNAcZs.js +0 -1
- package/dist/assets/messagebundle_da-CRRThnbQ.js +0 -1
- package/dist/assets/messagebundle_de-CEztl_Bk.js +0 -1
- package/dist/assets/messagebundle_el-dli9W3Ld.js +0 -1
- package/dist/assets/messagebundle_en-DXEe5nWA.js +0 -1
- package/dist/assets/messagebundle_es-BKJxfGUS.js +0 -1
- package/dist/assets/messagebundle_et-CEgPnb-F.js +0 -1
- package/dist/assets/messagebundle_fi-CB9L6Ted.js +0 -1
- package/dist/assets/messagebundle_fr-DV0xFXy7.js +0 -1
- package/dist/assets/messagebundle_hr-CxG6YfU9.js +0 -1
- package/dist/assets/messagebundle_hu-BD5GvMh2.js +0 -1
- package/dist/assets/messagebundle_it-CcnIcv1Q.js +0 -1
- package/dist/assets/messagebundle_iw-njoSdOP-.js +0 -1
- package/dist/assets/messagebundle_ko-BsIdyV2m.js +0 -1
- package/dist/assets/messagebundle_lt-Cx5dKaVi.js +0 -1
- package/dist/assets/messagebundle_lv-CjYkt6X6.js +0 -1
- package/dist/assets/messagebundle_nl-BxcksDMG.js +0 -1
- package/dist/assets/messagebundle_no-6rWbHkD4.js +0 -1
- package/dist/assets/messagebundle_pl-CdoiDA_-.js +0 -1
- package/dist/assets/messagebundle_pt-DtbX15Ym.js +0 -1
- package/dist/assets/messagebundle_ro-C5ojQbzO.js +0 -1
- package/dist/assets/messagebundle_ru-BcLhFIo9.js +0 -1
- package/dist/assets/messagebundle_sk-B4D9Y2b-.js +0 -1
- package/dist/assets/messagebundle_sl-D43o0FSO.js +0 -1
- package/dist/assets/messagebundle_sr-Co2xNpod.js +0 -1
- package/dist/assets/messagebundle_sv-4hT4lgLu.js +0 -1
- package/dist/assets/messagebundle_tr-DxFj6Icf.js +0 -1
- package/dist/assets/messagebundle_uk-Sdu5cmOP.js +0 -1
- package/dist/assets/messagebundle_zh_CN-CuN02AOJ.js +0 -1
- package/dist/assets/messagebundle_zh_TW-CRXaxYip.js +0 -1
- package/dist/assets/parameters-bundle.css-1GGBOW8m.js +0 -2
- package/dist/assets/parameters-bundle.css-A9eeRg2R.js +0 -2
- package/dist/assets/parameters-bundle.css-COBI_9-U.js +0 -2
- package/dist/assets/parameters-bundle.css-CgAoZ-Ir.js +0 -2
- package/dist/assets/parameters-bundle.css-DuFHHRNK.js +0 -2
- package/dist/assets/parameters-bundle.css-Pf68NO0T.js +0 -2
- package/dist/assets/parameters-bundle.css-aX_t_-9o.js +0 -2
- package/dist/assets/parameters-bundle.css-rNSryFKH.js +0 -2
- package/dist/generated/templates/AccordionItemTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/AccordionItemTemplate.lit.js +0 -8
- package/dist/generated/templates/AccordionItemTemplate.lit.js.map +0 -1
- package/dist/generated/templates/AccordionTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/AccordionTemplate.lit.js +0 -10
- package/dist/generated/templates/AccordionTemplate.lit.js.map +0 -1
- package/dist/generated/templates/AvatarTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/AvatarTemplate.lit.js +0 -9
- package/dist/generated/templates/AvatarTemplate.lit.js.map +0 -1
- package/dist/generated/templates/BadgeTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/BadgeTemplate.lit.js +0 -9
- package/dist/generated/templates/BadgeTemplate.lit.js.map +0 -1
- package/dist/generated/templates/CarouselTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/CarouselTemplate.lit.js +0 -10
- package/dist/generated/templates/CarouselTemplate.lit.js.map +0 -1
- package/dist/generated/templates/DividerTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/DividerTemplate.lit.js +0 -7
- package/dist/generated/templates/DividerTemplate.lit.js.map +0 -1
- package/src/Accordion.hbs +0 -25
- package/src/AccordionItem.hbs +0 -37
- package/src/Avatar.hbs +0 -19
- package/src/Badge.hbs +0 -16
- package/src/Carousel.hbs +0 -45
- package/src/Divider.hbs +0 -1
- package/src/generated/templates/AccordionItemTemplate.lit.ts +0 -12
- package/src/generated/templates/AccordionTemplate.lit.ts +0 -14
- package/src/generated/templates/AvatarTemplate.lit.ts +0 -13
- package/src/generated/templates/BadgeTemplate.lit.ts +0 -13
- package/src/generated/templates/CarouselTemplate.lit.ts +0 -14
- package/src/generated/templates/DividerTemplate.lit.ts +0 -11
package/dist/Search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Search.js","sourceRoot":"","sources":["../src/Search.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ChangeInfo } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport {\n isEnter,\n isTabNext,\n isTabPrevious,\n isUp,\n isDown,\n isEscape,\n isSpace,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport Button from \"@ui5/webcomponents/dist/Button.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport List from \"./List.js\";\nimport ControlButton from \"./ControlButton.js\";\nimport type ListItemBase from \"./ListItemBase.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/search.js\";\nimport \"@ui5/webcomponents-icons/dist/microphone.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport debounce from \"./utils/debounce.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n SUGGESTED_TEXT,\n RECOMMENDED_TEXT,\n AVAILABLE_VALUES,\n NO_MATCHES_FOUND,\n ACCESSIBLE_NAME_RESET_ICON,\n ACCESSIBLE_NAME_SEARCH_ICON,\n TOOLTIP_RESET_BUTTON,\n TOOLTIP_VOICE_BUTTON,\n TOOLTIP_SUBMIT_BUTTON,\n LISTENING,\n OF,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport type SearchInputSuggestion from \"./features/SearchSuggestionsPopover.js\";\n\nimport SearchTemplate from \"./generated/templates/SearchTemplate.lit.js\";\n\n// Styles\nimport SearchCss from \"./generated/themes/Search.css.js\";\nimport SearchSuggestionsCss from \"./generated/themes/SearchSuggestions.css.js\";\nimport retryUntilSuccessful from \"./utils/retryUntilSuccessful.js\";\n\nconst SearchIcon: string = \"sap-icon://search\";\n\nconst SuggestionsPopoverId: string = \"suggestions-popover\";\n\ntype ListItem = {\n label: string;\n icon: string;\n}\n\ntype DataList = Array<ListItem | string>;\n\nexport type SuggestionData = {\n label: string,\n list: DataList\n}\n\nexport type RecommendData = {\n label: string,\n list: DataList\n}\n\ntype SuggestionRecommendLists = {\n suggested: SuggestionData | DataList,\n recommended: RecommendData | DataList\n}\n\nexport type SuggestionList = {\n handleSelectItem: () => void,\n text: string,\n icon: string,\n title: string,\n hasCustomIcon: boolean,\n id: string\n suggestionDescription: string;\n}\n\nexport enum Mode {\n Standard = \"Standard\",\n HomeSearch = \"Home Search\"\n}\n\nexport type PopoverPlacement = \"Bottom\" | \"Top\";\n\ntype UDExSearchBaseEventDetail = {\n value: string,\n}\n\ntype UDExSearchPrefixItemClickEventDetail = {\n item: ListItemBase,\n}\n\nexport type UDExSearchKeydownEventDetail = {\n e: KeyboardEvent;\n}\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-search</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Search.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-search\n * @public\n */\n@customElement({\n tag: \"udex-search\",\n renderer: litRender,\n styles: [SearchCss, SearchSuggestionsCss],\n template: SearchTemplate,\n get dependencies() {\n const Suggestion = getFeature<typeof SearchInputSuggestion>(\"SearchInputSuggestion\");\n return ([ControlButton, Button, Icon, List, Popover] as Array<typeof UI5Element>).concat(Suggestion ? [...Suggestion.dependencies] : []);\n },\n})\n\n/**\n * Fired event when the user submitted the value.\n *\n * @public\n */\n@event(\"submit-search-value\", { bubbles: true })\n/**\n * Fired event when the user typed to search field.\n *\n * @public\n */\n@event(\"handle-value-search\", { bubbles: true })\n/**\n * Fired event when the user clicks on the reset button.\n *\n * @public\n */\n@event(\"handle-value-reset\", { bubbles: true })\n/**\n * Fired event when the user clicks on the item inside the popover.\n *\n * @public\n */\n@event(\"dropdown-item-click\", { bubbles: true })\n/**\n * Fired event when the user clicks on the intem inside the prefix dropdown.\n *\n * @public\n */\n@event(\"prefix-item-click\")\n/**\n * Fired event when the user clicks on the intem inside the prefix dropdown.\n *\n * @public\n */\n@event(\"search-keydown\", { bubbles: true })\nclass UDExSearch extends UI5Element {\n eventDetails!: {\n \"submit-search-value\": UDExSearchBaseEventDetail,\n \"handle-value-search\": UDExSearchBaseEventDetail,\n \"handle-value-reset\": void,\n \"search-keydown\": UDExSearchKeydownEventDetail,\n \"dropdown-item-click\": UDExSearchBaseEventDetail,\n \"prefix-item-click\": UDExSearchPrefixItemClickEventDetail,\n\n };\n _labelActiveClassName = \"udex-search__label--active\";\n _labelAnimationClassName = \"udex-search__label--animation-enabled\";\n _voiceActiveClassName = \"udex-search__voice-button--active\";\n _focusActiveClassName = \"udex-search__container--focus\";\n _handleResizeBound: ResizeObserverCallback;\n suggestedList!: Array<SuggestionList>;\n recommendedList!: Array<SuggestionList>;\n speechRecognition!: any;\n isNotMozillaFirefox!: boolean;\n isNotMozillaFirefoxIOS!: boolean;\n isFocusedOnTextfield!: boolean;\n Suggestion?: SearchInputSuggestion;\n /**\n * Defines the value of the component.\n *\n * @default \"\"\n * @formEvents input\n * @formProperty\n * @public\n */\n @property({ type: String })\n value: string = \"\";\n\n /**\n * Defines label text for the input field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n label!: string;\n\n /**\n * Defines if the label animation is disabled for the search field.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n labelAnimationDisabled!: boolean;\n\n /**\n * Defines display the reset button for the search field.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n showResetButton!: boolean;\n\n /**\n * Defines where the SuggestionPopover is currently placed.\n *\n * @default \"Bottom\"\n * @private\n */\n @property({ type: String, noAttribute: true })\n _popoverPlacement: PopoverPlacement = \"Bottom\";\n\n /**\n * Defines display the submit button for the search field.\n *\n * @default true\n * @public\n */\n @property({ type: Boolean })\n showSubmitButton!: boolean;\n\n /**\n * Defines non-interactive the submit button for the search field.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n nonInteractiveSubmitButton!: boolean;\n\n /**\n * Defines display the voice button for the search field.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n showVoiceButton!: boolean;\n\n /**\n * Defines suggestions and recommended lists for the component.\n * <br><br>\n * <b>Note:</b> Structure of the property:\n * { suggested: [\"string\", string, ...], recommended: [\"string\", \"string\", ...] }\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n suggestionList!: string;\n /**\n * Width of the search component\n * @private\n */\n @property({ type: Number })\n _searchWidth?: number;\n\n /**\n * Define the label of the prefix for the dropdown.\n *\n * @private\n */\n @property({ type: String })\n labelPrefix!: string;\n\n /**\n * Defines display the suggestion popover in the component.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n showSuggestedPopover!: boolean;\n\n /**\n * Defines the language of voice search.\n *\n * @default \"en-US\"\n * @public\n */\n @property({ type: String })\n languageVoice: string = \"en-US\";\n\n /**\n * Defines the mode of component.\n * <br><br>\n * <b>Note:</b> accepts a string \"Standard\" or \"Home Search\".\n *\n * @default \"Standard\"\n * @public\n */\n @property({ type: String })\n mode: Mode = Mode.Standard;\n\n /**\n * Defines open suggestion popover when clicked on the input field.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n showPopoverWhenClickedIntoInput!: boolean;\n\n /**\n * Defines open suggestion popover.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n openSuggestionPopup!: boolean;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Defines the accessible ARIA name of the reset icon.\n *\n * @default \"Clear\"\n * @public\n */\n @property({ type: String })\n accessibleNameResetIcon!: string;\n\n /**\n * Defines the accessible ARIA name of the search icon (applied just when \"nonInteractiveSubmitButton\" is active).\n *\n * @default \"Search\"\n * @public\n */\n @property({ type: String })\n accessibleNameSearchIcon!: string;\n\n /**\n * Defines the tooltip of the clear button.\n *\n * @default \"Clear\"\n * @public\n */\n @property({ type: String })\n tooltipResetButton!: string;\n\n /**\n * Defines the tooltip of the voice button.\n *\n * @default \"Voice\"\n * @public\n */\n @property({ type: String })\n tooltipVoiceButton!: string;\n\n /**\n * Defines the tooltip of the submit button.\n *\n * @default \"Search\"\n * @public\n */\n @property({ type: String })\n tooltipSubmitButton!: string;\n\n /**\n * Defines the text if the suggestion list doesn't return results.\n *\n * @default \"No matches found.\"\n * @public\n */\n @property({ type: String })\n noResultText: string = \"No matches found.\";\n\n /**\n * Defines the inner stored class of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true })\n labelActiveClass: string = \"\";\n\n /**\n * Defines the inner stored animation class of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true })\n labelAnimationClass: string = \"\";\n\n /**\n * Defines the voice active class of the button.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true })\n voiceActiveClass: string = \"\";\n\n /**\n * Defines the inner stored value of the classes of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true })\n labelClasses: string = \"\";\n\n /**\n * Defines the class of focus on the input field.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true })\n focusClasses: string = \"\";\n\n /**\n * Defines the suggestion popover is opened\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n open!: boolean;\n\n /**\n * The label of the suggestion section.\n * @private\n */\n @property({ type: String })\n _suggestionLabel?: string;\n\n /**\n * The label of the recommend section.\n * @private\n */\n @property({ type: String })\n _recommendLabel?: string;\n\n /**\n * The console warning shown after all unsuccessful attempts of opening SearchSuggestionsPopover component.\n * @default \"UdexSearchSuggestionsPopover couldn`t be opened\"\n */\n @property({ type: String })\n unsuccessfulRetryMessage: string = \"UdexSearchSuggestionsPopover couldn`t be opened\";\n\n /**\n * The delay before retrying to open the SerchSuggestionsPopover component.\n * @default 200\n */\n @property({ type: Number })\n retryDelay: number = 200;\n\n /**\n * The maximum number of attempts for opening the SearchSuggestionsPopover component.\n * @default 5\n */\n @property({ type: Number })\n maxRetryAttempts: number = 5;\n\n /**\n * Defines the prefix dropdown of the Search component.\n *\n * @slot dropdownPrefix\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n dropdownPrefix!: Array<List>;\n\n /**\n * Defines the open button icon\n *\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n _prefixDropdownExpanded: boolean = false;\n\n /**\n * Defines the active (focus)\n * @default false\n * @private\n */\n @property({ type: Boolean })\n active!: boolean;\n /**\n * Defines is it the touch of the input field (only for mobile devices).\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _isTouched!: boolean;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onEnterDOM(): void {\n this.isNotMozillaFirefox = !this.isMozillaFirefox(\"Firefox\");\n this.isNotMozillaFirefoxIOS = !this.isMozillaFirefox(\"FxiOS\");\n this.initSpeechRecognition();\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n this.removeEventListener(\"dropdown-trigger-event\", () => { });\n }\n\n initSpeechRecognition(): void {\n try {\n if (this.isNotMozillaFirefox || this.isNotMozillaFirefoxIOS) {\n const SpeechRecognition = (window as any).SpeechRecognition || (window as any).webkitSpeechRecognition || (window as any).mozSpeechRecognition || (window as any).msSpeechRecognition;\n this.speechRecognition = new SpeechRecognition();\n this.speechRecognition.continuous = true;\n this.speechRecognition.lang = this.languageVoice;\n this.speechRecognition.interimResults = false;\n this.speechRecognition.maxAlternatives = 5;\n }\n } catch (error: any) {\n console.warn(\"The voice button does not work in this browser\");\n throw (error);\n }\n }\n\n private isMozillaFirefox(keyWord: string) {\n const userAgent = navigator.userAgent;\n const firefoxAgent = userAgent.split(\" \").find(item => item.indexOf(keyWord) > -1);\n\n if (firefoxAgent) {\n const splitAgent = firefoxAgent.split(\"/\");\n const firefoxVersion = splitAgent[splitAgent.length - 1];\n return Number(firefoxVersion) >= 125;\n }\n return false;\n }\n\n onInvalidation(changeInfo: ChangeInfo): void {\n this.setNewValue(changeInfo);\n this.setPopoverState(changeInfo);\n this.setNewSuggestionList(changeInfo);\n }\n\n setNewValue(changeInfo: ChangeInfo): void {\n if (changeInfo.name === \"value\") {\n this.value = changeInfo.newValue as string;\n this.setSuggestedRecommendedLists(this.suggestionList);\n this.toggleLabelActiveClass();\n }\n }\n\n private toggleLabelActiveClass() {\n if (this.labelActiveClass && !this.labelAnimationDisabled && !this.isFocusedOnTextfield) {\n this.handleBlur();\n }\n }\n\n setPopoverState(changeInfo: ChangeInfo): void {\n if (changeInfo.name === \"openSuggestionPopup\") {\n this.handlePopoverTrigger(changeInfo.newValue as boolean);\n }\n }\n\n handlePopoverTrigger(isOpenPopover: boolean): void {\n if (isOpenPopover) {\n this.onOpenPopover();\n } else {\n this.onClosePopover();\n }\n }\n\n setNewSuggestionList(changeInfo: ChangeInfo): void {\n if (changeInfo.name === \"suggestionList\" && !!changeInfo.newValue) {\n this.setSuggestedRecommendedLists(changeInfo.newValue as string);\n }\n }\n\n setSuggestedRecommendedLists(value: string): void {\n if (this.showSuggestedPopover && value) {\n const parsedData: SuggestionRecommendLists = JSON.parse(value);\n const hasDataLabels = this.hasDataLabel(parsedData);\n\n if (this.shouldShowPopover(parsedData, hasDataLabels)) {\n this.setDropdownLabels(hasDataLabels, parsedData);\n this.suggestedList = this.getListWithSuggestion(this.getSuggestedList(hasDataLabels, parsedData), \"suggested\");\n this.recommendedList = this.getListWithSuggestion(this.getRecommendedList(hasDataLabels, parsedData), \"recommended\");\n }\n if (!this.shouldShowPopover(parsedData, hasDataLabels)) {\n this.onClosePopover();\n this.resetSuggestedRecommendedLists();\n }\n }\n }\n\n private hasDataLabel(parsedData: SuggestionRecommendLists) {\n return Object.values(parsedData).some(item => Object.prototype.hasOwnProperty.call(item, \"label\"));\n }\n\n private resetSuggestedRecommendedLists() {\n this.suggestedList = [];\n this.recommendedList = [];\n }\n\n private setDropdownLabels(hasDataLabels: boolean, parsedData: SuggestionRecommendLists) {\n this._suggestionLabel = this.getSuggestionLabel(hasDataLabels, parsedData);\n this._recommendLabel = this.getRecommendLabel(hasDataLabels, parsedData);\n }\n\n private getRecommendLabel(hasDataLabels: boolean, parsedData: SuggestionRecommendLists): string {\n return hasDataLabels\n ? (parsedData.recommended as RecommendData).label || \"\"\n : UDExSearch.i18nBundle.getText(RECOMMENDED_TEXT);\n }\n\n private getSuggestionLabel(hasDataLabels: boolean, parsedData: SuggestionRecommendLists): string {\n return hasDataLabels\n ? (parsedData.suggested as SuggestionData).label || \"\"\n : UDExSearch.i18nBundle.getText(SUGGESTED_TEXT);\n }\n\n private getRecommendedList(hasDataLabels: boolean, parsedData: SuggestionRecommendLists) {\n return hasDataLabels\n ? (parsedData.recommended as RecommendData).list\n : parsedData.recommended as DataList;\n }\n\n private getSuggestedList(hasDataLabels: boolean, parsedData: SuggestionRecommendLists) {\n return hasDataLabels\n ? (parsedData.suggested as SuggestionData).list\n : parsedData.suggested as DataList;\n }\n\n private shouldShowPopover(parsedData: SuggestionRecommendLists, hasDataLabels: boolean) {\n const hasSuggestedListContent = this.hasSuggestedContent(hasDataLabels, parsedData);\n const hasRecommendedContent = this.hasRecommendedContent(hasDataLabels, parsedData);\n return this.showPopoverWhenClickedIntoInput || (hasSuggestedListContent || hasRecommendedContent);\n }\n\n private hasSuggestedContent(hasDataLabels: boolean, parsedData: SuggestionRecommendLists) {\n return hasDataLabels\n ? Object.prototype.hasOwnProperty.call(parsedData.suggested, \"list\") && (parsedData.suggested as SuggestionData).list.length\n : (parsedData.suggested as DataList).length;\n }\n\n private hasRecommendedContent(hasDataLabels: boolean, parsedData: SuggestionRecommendLists) {\n return hasDataLabels\n ? Object.prototype.hasOwnProperty.call(parsedData.recommended, \"list\") && (parsedData.recommended as RecommendData).list.length\n : (parsedData.recommended as DataList).length;\n }\n\n getListWithSuggestion(suggestedList: DataList, idName: string): Array<SuggestionList> {\n return suggestedList?.map((item, index) => {\n const itemWithCustomIcon = typeof item === \"object\";\n const label = itemWithCustomIcon ? item.label : item;\n return {\n handleSelectItem: this.handleSelectItem(label),\n text: this.getTextWithSuggestion(label),\n title: label,\n icon: itemWithCustomIcon ? item.icon : SearchIcon,\n hasCustomIcon: itemWithCustomIcon,\n id: `${idName}-${index}`,\n suggestionDescription: `${label}, ${idName} ${index + 1} ${UDExSearch.i18nBundle.getText(OF)} ${suggestedList.length}`,\n };\n });\n }\n\n escapeRegExp(input: string): string {\n const specialChars = /[-[\\]/{}()*+?.\\\\^$|]/g;\n return input.replace(specialChars, \"\\\\$&\");\n }\n\n getTextWithSuggestion(text: string): string {\n const escapedValue = this.escapeRegExp(this.value);\n const search = new RegExp(escapedValue, \"i\");\n return text.replace(search, \"<b>$&</b>\");\n }\n\n handleSelectItem = (itemValue: string) => () => {\n this.value = itemValue;\n this.fireDropdownItemClick(itemValue);\n this.handleSubmitValue();\n };\n\n fireDropdownItemClick(value: string) {\n this.fireDecoratorEvent(\"dropdown-item-click\", { value });\n }\n\n handleDropdownClick() {\n const dropdown = this.getPrefixPopover();\n\n if (dropdown.open) {\n this.onClosePrefixPopover();\n } else {\n this.onOpenPrefixPopover();\n }\n }\n\n getPrefixWrapper() {\n return this.shadowRoot!.querySelector(\".udex-search__prefix\") as HTMLElement;\n }\n\n getPrefixPopover(): Popover {\n return this.shadowRoot!.querySelector<Popover>(\"#udex-search-prefix\")!;\n }\n\n getPrefixButton() {\n return this.shadowRoot!.querySelector(\".udex-search__prefix-button\") as HTMLElement;\n }\n\n onOpenPrefixPopover() {\n if (this.dropdownPrefix.length) {\n const wrapper = this.getPrefixWrapper();\n const dropdown = this.getPrefixPopover();\n const button = this.getPrefixButton();\n\n this._prefixDropdownExpanded = true;\n dropdown.opener = this.getPrefixButton();\n dropdown.open = true;\n dropdown.style.width = `${button.offsetWidth + 1}px`;\n dropdown.classList.add(this.prefixPopoverClasses);\n button.classList.add(\"udex-search__prefix-button--active\");\n wrapper.classList.add(this.prefixWrapperClasses);\n this.dropdownPrefix[0].addEventListener(\"item-press\", this.handleItemClick);\n }\n }\n\n handleItemClick = (e: Event) => {\n const selectedItemPrefix = (e as CustomEvent).detail.item as ListItemBase;\n this.labelPrefix = selectedItemPrefix.innerText;\n this.fireDecoratorEvent(\"prefix-item-click\", { item: selectedItemPrefix });\n this.onClosePrefixPopover();\n };\n\n onClosePrefixPopover() {\n const dropdown = this.getPrefixPopover();\n this.dropdownPrefix[0].removeEventListener(\"item-press\", this.handleItemClick);\n dropdown.open = false;\n this.handleAfterClosePrefixPopover();\n }\n\n handleAfterClosePrefixPopover() {\n this._prefixDropdownExpanded = false;\n const wrapper = this.getPrefixWrapper();\n const button = this.getPrefixButton();\n wrapper.classList.remove(\"udex-search__prefix--show-popover\", \"udex-search__prefix--show-popover-top\");\n button.classList.remove(\"udex-search__prefix-button--active\");\n }\n\n handleInputClick(): void {\n if (!isDesktop()) {\n this._isTouched = true;\n }\n if (this.showPopoverWhenClickedIntoInput) {\n this.onOpenPopover();\n }\n }\n\n onSubmit(e: MouseEvent): void {\n e.stopPropagation();\n this.handleSubmitValue();\n }\n\n handleSubmitValue(): void {\n this.onClosePopover();\n this.fireDecoratorEvent(\"submit-search-value\", { value: this.value });\n }\n\n handleAriaExpanded() {\n const value = this.open.toString();\n this.getSearchInput()?.setAttribute(\"aria-expanded\", value);\n }\n\n onOpenPopover(): void {\n if (this.showSuggestedPopover) {\n if (!this.Suggestion) {\n retryUntilSuccessful(() => this.Suggestion, this.retryDelay, this.maxRetryAttempts, this.unsuccessfulRetryMessage)\n .then(() => {\n this.Suggestion!.open();\n })\n .catch(error => {\n console.warn(error.message);\n });\n } else {\n this.open = true;\n this.Suggestion.open();\n }\n this.handleAriaExpanded();\n }\n }\n\n onClosePopover(): void {\n if (this.showSuggestedPopover) {\n this.Suggestion!.close();\n this.handleAriaExpanded();\n this.open = false;\n }\n }\n\n handleKeyPressSuggestionList(e: KeyboardEvent): void {\n this.Suggestion?.handleKeyPress(e);\n }\n\n get rootClasses(): string {\n if (this.mode === Mode.HomeSearch && this.showSuggestedPopover && this.open) {\n return this.isSuggestionPopoverTop ? \"udex-search__root--show-popover-top\" : \"udex-search__root--show-popover\";\n }\n return \"\";\n }\n\n onBeforeRendering(): void {\n if (this.showSuggestedPopover) {\n this.enableSuggestions();\n }\n\n if (this.isHomeSearchWithPrefixMode && this.dropdownPrefix.length) {\n const dropdownItems = Array.from(this.dropdownPrefix[0].children) as Array<ListItemBase>;\n const selectedItemIndex = dropdownItems.findIndex(listItem => listItem.selected);\n const selectedItemPrefix = selectedItemIndex >= 0 ? dropdownItems[selectedItemIndex] : dropdownItems[0];\n\n this.labelPrefix = selectedItemPrefix.innerText;\n }\n\n this.showResetButton = !!this.value.length;\n\n if (this.value && this.labelActiveClass === \"\") {\n this.labelActiveClass = this._labelActiveClassName;\n }\n\n if (this.mode === Mode.HomeSearch) {\n this.labelAnimationDisabled = true;\n }\n\n if (!this.labelAnimationDisabled) {\n this.labelAnimationClass = this._labelAnimationClassName;\n }\n\n this.labelClasses = `udex-search__label ${this.labelActiveClass} ${this.labelAnimationClass}`;\n\n if (this.isVoiceButton) {\n this.labelClasses += \" udex-search__label-with-voice-icon\";\n }\n\n if (this.isShowSubmitButton) {\n this.labelClasses += \" udex-search__label-with-search-icon\";\n }\n }\n\n enableSuggestions() {\n if (this.Suggestion) {\n return;\n }\n\n const Suggestion = getFeature<typeof SearchInputSuggestion>(\"SearchInputSuggestion\");\n\n if (Suggestion) {\n this.Suggestion = new Suggestion(this);\n } else {\n throw new Error(\"You have to import '@sapudex/webcomponents/dist/features/SearchSuggestionsPopover.js' module to use udex-search suggestions\");\n }\n }\n\n private _createObserver(popover: Popover, ingoreOpenState: boolean = false): MutationObserver {\n return new MutationObserver(mutationList => {\n mutationList.forEach(mutation => {\n const newValue = popover?.actualPlacement;\n const oldValue = mutation.oldValue;\n\n if (mutation.attributeName === \"actual-placement\" && newValue !== oldValue) {\n this._popoverPlacement = newValue as PopoverPlacement;\n }\n\n if (mutation.attributeName === \"open\" && newValue !== oldValue && !ingoreOpenState) {\n this.open = popover?.open || false;\n }\n });\n });\n }\n\n onAfterRendering(): void {\n if (this.showSuggestedPopover) {\n const prefixPopover = this.getPrefixPopover();\n\n if (this.Suggestion?.popover) {\n const suggestionObserver = this._createObserver(this.Suggestion.popover);\n const popoverNode = this.Suggestion?.popover as Node;\n suggestionObserver.observe(popoverNode, { attributes: true, attributeOldValue: true });\n this.Suggestion.initLists();\n }\n\n if (prefixPopover) {\n const prefixObserver = this._createObserver(prefixPopover, true);\n const popoverNode = prefixPopover as Node;\n prefixObserver.observe(popoverNode, { attributes: true, attributeOldValue: true });\n }\n\n this.handleOutsideClick();\n this.handleOpenSuggestionPopover();\n this.setSearchWidth();\n }\n }\n\n handleOpenSuggestionPopover() {\n if (this.openSuggestionPopup) {\n this.Suggestion?._getSuggestionPopover();\n this.handlePopoverTrigger(this.openSuggestionPopup);\n }\n }\n\n handleOutsideClick(): void {\n document.addEventListener(\"mousedown\", (e: MouseEvent) => {\n const popover = (e.target as HTMLElement).shadowRoot?.querySelector(\"[ui5-popover]\");\n if (e.target !== this && popover !== this.Suggestion?.popover) {\n this.handleBlur();\n this.onClosePopover();\n if (this.isShowSearchHomePrefix) {\n this.handleAfterClosePrefixPopover();\n }\n }\n });\n }\n\n handleBlur(): void {\n this._isTouched = false;\n if (this.value) {\n this.labelActiveClass = this._labelActiveClassName;\n } else {\n this.labelActiveClass = \"\";\n }\n }\n\n handleSearchChange(e: InputEvent): void {\n this.value = (e.target as HTMLInputElement)?.value;\n this.showResetButton = !!this.value.length;\n this.handleDebounce();\n }\n\n handleDebounce = debounce(() => {\n this.fireDecoratorEvent(\"handle-value-search\", { value: this.value });\n if (this.showSuggestedPopover && this.value.length >= 2) {\n this.onOpenPopover();\n }\n if (!this.showPopoverWhenClickedIntoInput && this.showSuggestedPopover && this.value.length < 2) {\n this.onClosePopover();\n }\n });\n\n handleKeyDown = (e: KeyboardEvent) => {\n e.stopPropagation();\n this.handleEnterKey(e);\n this.handleTabKey(e);\n this.handleEscapeKey(e);\n this.fireDecoratorEvent(\"search-keydown\", { e });\n };\n\n handleEnterKey(e: KeyboardEvent) {\n if (isEnter(e)) {\n if (!this.open) {\n e.preventDefault();\n } else {\n this.Suggestion?.onEnter(e);\n }\n this.handleSubmitValue();\n }\n }\n\n handleTabKey(e: KeyboardEvent) {\n if (isTabNext(e) && this.open) {\n this.Suggestion?.onTab(e);\n }\n }\n\n handleEscapeKey(e: KeyboardEvent) {\n if (isEscape(e)) {\n if (this.open) {\n this.Suggestion?.onEscape(e);\n }\n }\n }\n\n handleKeyDownPopover(e: KeyboardEvent) {\n if (this.open) {\n this.handleTabKeyList(e);\n this.handlePrevTabKeyList(e);\n this.handleDownKeyList(e);\n this.handleUpKeyList(e);\n this.handleEscapeKey(e);\n }\n }\n\n handleTabKeyList(e: KeyboardEvent) {\n if (isTabNext(e)) {\n this.Suggestion?.onKeyTabList(e);\n }\n }\n\n handlePrevTabKeyList(e: KeyboardEvent) {\n if (isTabPrevious(e)) {\n this.Suggestion?.onPrevKeyTabList(e);\n }\n }\n\n handleDownKeyList(e: KeyboardEvent) {\n if (isDown(e)) {\n this.Suggestion?.onKeyDown(e);\n }\n }\n\n handleUpKeyList(e: KeyboardEvent) {\n if (isUp(e)) {\n this.Suggestion?.onKeyUp(e);\n }\n }\n\n handleFocus(): void {\n this.active = true;\n this.isFocusedOnTextfield = true;\n this.focusClasses = this._focusActiveClassName;\n this.labelActiveClass = (this.value || !this.labelAnimationDisabled) ? this._labelActiveClassName : \"\";\n this.labelAnimationClass = !this.labelAnimationDisabled ? this._labelAnimationClassName : \"\";\n }\n\n handleFocusout(): void {\n this.active = false;\n this.isFocusedOnTextfield = false;\n this.focusClasses = \"\";\n }\n\n onReset(e: MouseEvent): void {\n e.stopPropagation();\n this.handleReset();\n }\n\n handleReset(): void {\n this.value = \"\";\n this.showResetButton = false;\n this.onClosePopover();\n this.fireDecoratorEvent(\"handle-value-reset\");\n this.Suggestion?.resetFocusState();\n this.getSearchInput()?.focus();\n }\n\n handleKeyDownReset(e: KeyboardEvent) {\n if (isTabPrevious(e) && this.open) {\n this.Suggestion?.handlePrevTabReset(e);\n }\n if (isEnter(e) || isSpace(e)) {\n e.preventDefault();\n e.stopPropagation();\n this.handleReset();\n }\n }\n\n private getSearchInput(): HTMLInputElement {\n return this.shadowRoot?.querySelector(\"[id='search-input']\") as HTMLInputElement;\n }\n\n onVoice(e: MouseEvent): void {\n e.stopPropagation();\n if (this.speechRecognition) {\n this.onSpeechLaunch();\n this.onSpeechStart();\n this.onSpeechResult();\n this.onSpeechEnd();\n }\n }\n\n onSpeechLaunch(): void {\n if (!this.voiceActiveClass) {\n this.speechRecognition.start();\n } else {\n this.speechRecognition.stop();\n }\n }\n\n get effectivePlaceholder() {\n return !this.voiceActiveClass ? this.label : `${UDExSearch.i18nBundle.getText(LISTENING)}...`;\n }\n\n onSpeechStart(): void {\n this.speechRecognition.onstart = () => {\n this.voiceActiveClass = this._voiceActiveClassName;\n this.getSearchInput()?.focus();\n };\n }\n\n onSpeechResult(): void {\n this.speechRecognition.onresult = (e: any) => {\n const last = e.results.length - 1;\n this.value = e.results[last][0].transcript;\n this.speechRecognition.stop();\n };\n }\n\n onSpeechEnd(): void {\n this.speechRecognition.onend = () => {\n this.voiceActiveClass = \"\";\n this.handleSubmitValue();\n this.onShowResetButton();\n };\n }\n\n onShowResetButton(): void {\n if (this.value) {\n this.showResetButton = true;\n }\n }\n\n _handleResize() {\n this.setSearchWidth();\n }\n\n private setSearchWidth() {\n const searchContainer = (this.shadowRoot?.querySelector(\".udex-search__container\") as HTMLElement);\n\n if (searchContainer.offsetWidth !== this._searchWidth) {\n this._searchWidth = searchContainer.offsetWidth;\n }\n }\n\n get popoverStyles() {\n return {\n \"width\": this._searchWidth ? `${this._searchWidth}px` : \"\",\n };\n }\n\n get prefixPopoverStyles() {\n return {\n \"width\": this.getPrefixButton() ? `${this.getPrefixButton().offsetWidth + 1}px` : \"\",\n };\n }\n\n get isShowResetButton(): boolean {\n return this.showResetButton && !!this.value.length && this.mode === Mode.Standard;\n }\n\n get isShowHomeResetButton(): boolean {\n return this.showResetButton && !!this.value.length && this.mode === Mode.HomeSearch;\n }\n\n get noResultMessage(): string {\n return this.noResultText || UDExSearch.i18nBundle.getText(NO_MATCHES_FOUND);\n }\n\n get showNoResultMessage(): boolean {\n return !this.suggestedList?.length && !this.recommendedList?.length;\n }\n\n get isShowSuggestedList(): boolean {\n return !!this.suggestedList?.length;\n }\n\n get isShowRecommendedList(): boolean {\n return !!this.recommendedList?.length;\n }\n\n get hasPopoverContent(): boolean {\n return !!(this.suggestedList?.length || this.recommendedList?.length);\n }\n\n get getAriaHasPopup(): string {\n return this.showSuggestedPopover ? \"dialog\" : \"false\";\n }\n\n get getSuggestionsPopoverId(): string {\n return SuggestionsPopoverId;\n }\n\n get isShowSubmitButton(): boolean {\n return this.showSubmitButton;\n }\n\n get suggestedHeading(): string | undefined {\n return this._suggestionLabel;\n }\n\n get recommendedHeading(): string | undefined {\n return this._recommendLabel;\n }\n\n get isSuggestionPopoverTop(): boolean {\n const suggestionPopover = this.Suggestion?.popover;\n return suggestionPopover! && suggestionPopover.open && this._popoverPlacement === \"Top\";\n }\n\n get isPrefixSuggestionPopoverTop(): boolean {\n const prefixSuggestionPopover = this.getPrefixPopover();\n return prefixSuggestionPopover && prefixSuggestionPopover.open && this._popoverPlacement === \"Top\";\n }\n\n get isShowSearchHomePrefix(): boolean {\n return this.isHomeSearchWithPrefixMode && !!this.dropdownPrefix.length;\n }\n\n get isHomeSearchMode(): boolean {\n return this.mode === Mode.HomeSearch;\n }\n\n get isHomeSearchWithPrefixMode(): boolean {\n return this.mode === Mode.HomeSearch && !!this.dropdownPrefix.length;\n }\n\n get searchClasses(): string {\n return `${this.classWithPrefix} ${this.rootClasses} udex-search-mode-${this.mode.toLowerCase().replace(\" \", \"-\")}`.trim();\n }\n\n get prefixWrapperClasses(): string {\n const prefixPopover = this.getPrefixPopover();\n if (prefixPopover && prefixPopover.open) {\n return this._popoverPlacement === \"Top\" ? \"udex-search__prefix--show-popover-top\" : \"udex-search__prefix--show-popover\";\n }\n return \"\";\n }\n\n get prefixPopoverClasses(): string {\n return this.isPrefixSuggestionPopoverTop ? \"udex-search__prefix-popover-top\" : \"udex-search__prefix-popover\";\n }\n\n get classWithPrefix(): string {\n return this.isHomeSearchWithPrefixMode ? \"udex-search-prefix\" : \"\";\n }\n\n get homeSearchPopoverClass(): string {\n if (this.isHomeSearchMode || this.isHomeSearchWithPrefixMode) {\n return this.isSuggestionPopoverTop ? \"udex-search-suggestions__root-top--home\" : \"udex-search-suggestions__root--home\";\n }\n return \"\";\n }\n\n get homeSearchWithPrefixPopoverClass(): string {\n return this.isHomeSearchWithPrefixMode ? \"udex-search-suggestions__root--prefix\" : \"\";\n }\n\n get searchButtonActiveClass(): string {\n return this.isHomeSearchMode && this.open ? \"udex-search__submit-button--active\" : \"\";\n }\n\n get isNotEmptyClass(): string {\n return this.value.length > 2 || this.focusClasses.length ? \" udex-search__container--has-value\" : \"\";\n }\n\n get isVoiceButton(): boolean {\n return this.showVoiceButton && this.isNotMozillaFirefox && this.isNotMozillaFirefoxIOS && this.mode === Mode.HomeSearch;\n }\n\n get accInfo() {\n return {\n \"ariaLabel\": this.accessibleName || undefined,\n \"accessibleNameResetIcon\": this.accessibleNameResetIcon || UDExSearch.i18nBundle.getText(ACCESSIBLE_NAME_RESET_ICON),\n \"accessibleNameSearchIcon\": this.accessibleNameSearchIcon || UDExSearch.i18nBundle.getText(ACCESSIBLE_NAME_SEARCH_ICON),\n };\n }\n\n get suggestionsDescription(): string {\n return !this.showNoResultMessage ? `${this.suggestedList.length} ${this._suggestionLabel}, ${this.recommendedList.length} ${this._recommendLabel}` : `${this.noResultMessage}`;\n }\n\n get tooltipInfo() {\n return {\n \"tooltipResetButton\": this.tooltipResetButton || UDExSearch.i18nBundle.getText(TOOLTIP_RESET_BUTTON),\n \"tooltipVoiceButton\": this.tooltipVoiceButton || UDExSearch.i18nBundle.getText(TOOLTIP_VOICE_BUTTON),\n \"tooltipSubmitButton\": this.tooltipSubmitButton || UDExSearch.i18nBundle.getText(TOOLTIP_SUBMIT_BUTTON),\n };\n }\n\n get suggestionsAccessibleName(): string {\n return UDExSearch.i18nBundle.getText(AVAILABLE_VALUES);\n }\n\n get showNonInteractiveButton(): boolean {\n return this.showSubmitButton && this.nonInteractiveSubmitButton;\n }\n\n get showSubmitStandardButton(): boolean {\n return this.showSubmitButton && !this.nonInteractiveSubmitButton && this.mode === Mode.Standard;\n }\n\n get showSubmitHomeButton(): boolean {\n return this.showSubmitButton && !this.nonInteractiveSubmitButton && this.mode === Mode.HomeSearch;\n }\n}\n\nUDExSearch.define();\n\nexport default UDExSearch;\n"]}
|
|
1
|
+
{"version":3,"file":"Search.js","sourceRoot":"","sources":["../src/Search.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ChangeInfo } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport {\n isEnter,\n isTabNext,\n isTabPrevious,\n isUp,\n isDown,\n isEscape,\n isSpace,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport List from \"./List.js\";\nimport ControlButton from \"./ControlButton.js\";\nimport type ListItemBase from \"./ListItemBase.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/search.js\";\nimport \"@ui5/webcomponents-icons/dist/microphone.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport debounce from \"./utils/debounce.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n SUGGESTED_TEXT,\n RECOMMENDED_TEXT,\n AVAILABLE_VALUES,\n NO_MATCHES_FOUND,\n ACCESSIBLE_NAME_RESET_ICON,\n ACCESSIBLE_NAME_SEARCH_ICON,\n TOOLTIP_RESET_BUTTON,\n TOOLTIP_VOICE_BUTTON,\n TOOLTIP_SUBMIT_BUTTON,\n LISTENING,\n OF,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport type SearchInputSuggestion from \"./features/SearchSuggestionsPopover.js\";\nimport retryUntilSuccessful from \"./utils/retryUntilSuccessful.js\";\nimport UDExButton from \"./Button.js\";\n\nimport SearchTemplate from \"./generated/templates/SearchTemplate.lit.js\";\n\n// Styles\nimport SearchCss from \"./generated/themes/Search.css.js\";\nimport SearchSuggestionsCss from \"./generated/themes/SearchSuggestions.css.js\";\nimport getEffectiveScrollbarStyle from \"./utils/getEffectiveScrollbarStyle.js\";\n\nconst SearchIcon: string = \"sap-icon://search\";\n\nconst SuggestionsPopoverId: string = \"suggestions-popover\";\n\ntype ListItem = {\n label: string;\n icon: string;\n}\n\ntype DataList = Array<ListItem | string>;\n\nexport type SuggestionData = {\n label: string,\n list: DataList\n}\n\nexport type RecommendData = {\n label: string,\n list: DataList\n}\n\ntype SuggestionRecommendLists = {\n suggested: SuggestionData | DataList,\n recommended: RecommendData | DataList\n}\n\nexport type SuggestionList = {\n handleSelectItem: () => void,\n text: string,\n icon: string,\n title: string,\n hasCustomIcon: boolean,\n id: string\n suggestionDescription: string;\n}\n\nexport enum Mode {\n Standard = \"Standard\",\n HomeSearch = \"Home Search\"\n}\n\nexport type PopoverPlacement = \"Bottom\" | \"Top\";\n\ntype UDExSearchBaseEventDetail = {\n value: string,\n}\n\ntype UDExSearchPrefixItemClickEventDetail = {\n item: ListItemBase,\n}\n\nexport type UDExSearchKeydownEventDetail = {\n e: KeyboardEvent;\n}\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-search</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Search.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-search\n * @public\n */\n@customElement({\n tag: \"udex-search\",\n renderer: litRender,\n styles: [SearchCss, SearchSuggestionsCss, getEffectiveScrollbarStyle()],\n template: SearchTemplate,\n get dependencies() {\n const Suggestion = getFeature<typeof SearchInputSuggestion>(\"SearchInputSuggestion\");\n return ([ControlButton, UDExButton, Icon, List, Popover] as Array<typeof UI5Element>).concat(Suggestion ? [...Suggestion.dependencies] : []);\n },\n})\n\n/**\n * Fired event when the user submitted the value.\n *\n * @public\n */\n@event(\"submit-search-value\", { bubbles: true })\n/**\n * Fired event when the user typed to search field.\n *\n * @public\n */\n@event(\"handle-value-search\", { bubbles: true })\n/**\n * Fired event when the user clicks on the reset button.\n *\n * @public\n */\n@event(\"handle-value-reset\", { bubbles: true })\n/**\n * Fired event when the user clicks on the item inside the popover.\n *\n * @public\n */\n@event(\"dropdown-item-click\", { bubbles: true })\n/**\n * Fired event when the user clicks on the intem inside the prefix dropdown.\n *\n * @public\n */\n@event(\"prefix-item-click\")\n/**\n * Fired event when the user clicks on the intem inside the prefix dropdown.\n *\n * @public\n */\n@event(\"search-keydown\", { bubbles: true })\nclass UDExSearch extends UI5Element {\n eventDetails!: {\n \"submit-search-value\": UDExSearchBaseEventDetail,\n \"handle-value-search\": UDExSearchBaseEventDetail,\n \"handle-value-reset\": void,\n \"search-keydown\": UDExSearchKeydownEventDetail,\n \"dropdown-item-click\": UDExSearchBaseEventDetail,\n \"prefix-item-click\": UDExSearchPrefixItemClickEventDetail,\n\n };\n _labelActiveClassName = \"udex-search__label--active\";\n _labelAnimationClassName = \"udex-search__label--animation-enabled\";\n _voiceActiveClassName = \"udex-search__voice-button--active\";\n _focusActiveClassName = \"udex-search__container--focus\";\n _handleResizeBound: ResizeObserverCallback;\n suggestedList!: Array<SuggestionList>;\n recommendedList!: Array<SuggestionList>;\n speechRecognition!: any;\n isNotMozillaFirefox!: boolean;\n isNotMozillaFirefoxIOS!: boolean;\n isFocusedOnTextfield!: boolean;\n Suggestion?: SearchInputSuggestion;\n /**\n * Defines the value of the component.\n *\n * @default \"\"\n * @formEvents input\n * @formProperty\n * @public\n */\n @property({ type: String })\n value: string = \"\";\n\n /**\n * Defines label text for the input field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n label!: string;\n\n /**\n * Defines if the label animation is disabled for the search field.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n labelAnimationDisabled!: boolean;\n\n /**\n * Defines display the reset button for the search field.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n showResetButton!: boolean;\n\n /**\n * Defines where the SuggestionPopover is currently placed.\n *\n * @default \"Bottom\"\n * @private\n */\n @property({ type: String, noAttribute: true })\n _popoverPlacement: PopoverPlacement = \"Bottom\";\n\n /**\n * Defines display the submit button for the search field.\n *\n * @default true\n * @public\n */\n @property({ type: Boolean })\n showSubmitButton!: boolean;\n\n /**\n * Defines non-interactive the submit button for the search field.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n nonInteractiveSubmitButton!: boolean;\n\n /**\n * Defines display the voice button for the search field.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n showVoiceButton!: boolean;\n\n /**\n * Defines suggestions and recommended lists for the component.\n * <br><br>\n * <b>Note:</b> Structure of the property:\n * { suggested: [\"string\", string, ...], recommended: [\"string\", \"string\", ...] }\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n suggestionList!: string;\n /**\n * Width of the search component\n * @private\n */\n @property({ type: Number })\n _searchWidth?: number;\n\n /**\n * Define the label of the prefix for the dropdown.\n *\n * @private\n */\n @property({ type: String })\n labelPrefix!: string;\n\n /**\n * Defines display the suggestion popover in the component.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n showSuggestedPopover!: boolean;\n\n /**\n * Defines the language of voice search.\n *\n * @default \"en-US\"\n * @public\n */\n @property({ type: String })\n languageVoice: string = \"en-US\";\n\n /**\n * Defines the mode of component.\n * <br><br>\n * <b>Note:</b> accepts a string \"Standard\" or \"Home Search\".\n *\n * @default \"Standard\"\n * @public\n */\n @property({ type: String })\n mode: Mode = Mode.Standard;\n\n /**\n * Defines open suggestion popover when clicked on the input field.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n showPopoverWhenClickedIntoInput!: boolean;\n\n /**\n * Defines open suggestion popover.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n openSuggestionPopup!: boolean;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Defines the accessible ARIA name of the reset icon.\n *\n * @default \"Clear\"\n * @public\n */\n @property({ type: String })\n accessibleNameResetIcon!: string;\n\n /**\n * Defines the accessible ARIA name of the search icon (applied just when \"nonInteractiveSubmitButton\" is active).\n *\n * @default \"Search\"\n * @public\n */\n @property({ type: String })\n accessibleNameSearchIcon!: string;\n\n /**\n * Defines the tooltip of the clear button.\n *\n * @default \"Clear\"\n * @public\n */\n @property({ type: String })\n tooltipResetButton!: string;\n\n /**\n * Defines the tooltip of the voice button.\n *\n * @default \"Voice\"\n * @public\n */\n @property({ type: String })\n tooltipVoiceButton!: string;\n\n /**\n * Defines the tooltip of the submit button.\n *\n * @default \"Search\"\n * @public\n */\n @property({ type: String })\n tooltipSubmitButton!: string;\n\n /**\n * Defines the text if the suggestion list doesn't return results.\n *\n * @default \"No matches found.\"\n * @public\n */\n @property({ type: String })\n noResultText: string = \"No matches found.\";\n\n /**\n * Defines the inner stored class of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true })\n labelActiveClass: string = \"\";\n\n /**\n * Defines the inner stored animation class of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true })\n labelAnimationClass: string = \"\";\n\n /**\n * Defines the voice active class of the button.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true })\n voiceActiveClass: string = \"\";\n\n /**\n * Defines the inner stored value of the classes of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true })\n labelClasses: string = \"\";\n\n /**\n * Defines the class of focus on the input field.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true })\n focusClasses: string = \"\";\n\n /**\n * Defines the suggestion popover is opened\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n open!: boolean;\n\n /**\n * The label of the suggestion section.\n * @private\n */\n @property({ type: String })\n _suggestionLabel?: string;\n\n /**\n * The label of the recommend section.\n * @private\n */\n @property({ type: String })\n _recommendLabel?: string;\n\n /**\n * The console warning shown after all unsuccessful attempts of opening SearchSuggestionsPopover component.\n * @default \"UdexSearchSuggestionsPopover couldn`t be opened\"\n */\n @property({ type: String })\n unsuccessfulRetryMessage: string = \"UdexSearchSuggestionsPopover couldn`t be opened\";\n\n /**\n * The delay before retrying to open the SerchSuggestionsPopover component.\n * @default 200\n */\n @property({ type: Number })\n retryDelay: number = 200;\n\n /**\n * The maximum number of attempts for opening the SearchSuggestionsPopover component.\n * @default 5\n */\n @property({ type: Number })\n maxRetryAttempts: number = 5;\n\n /**\n * Defines the prefix dropdown of the Search component.\n *\n * @slot dropdownPrefix\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n dropdownPrefix!: Array<List>;\n\n /**\n * Defines the open button icon\n *\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n _prefixDropdownExpanded: boolean = false;\n\n /**\n * Defines the active (focus)\n * @default false\n * @private\n */\n @property({ type: Boolean })\n active!: boolean;\n /**\n * Defines is it the touch of the input field (only for mobile devices).\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _isTouched!: boolean;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onEnterDOM(): void {\n this.isNotMozillaFirefox = !this.isMozillaFirefox(\"Firefox\");\n this.isNotMozillaFirefoxIOS = !this.isMozillaFirefox(\"FxiOS\");\n this.initSpeechRecognition();\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n this.removeEventListener(\"dropdown-trigger-event\", () => { });\n }\n\n initSpeechRecognition(): void {\n try {\n if (this.isNotMozillaFirefox || this.isNotMozillaFirefoxIOS) {\n const SpeechRecognition = (window as any).SpeechRecognition || (window as any).webkitSpeechRecognition || (window as any).mozSpeechRecognition || (window as any).msSpeechRecognition;\n this.speechRecognition = new SpeechRecognition();\n this.speechRecognition.continuous = true;\n this.speechRecognition.lang = this.languageVoice;\n this.speechRecognition.interimResults = false;\n this.speechRecognition.maxAlternatives = 5;\n }\n } catch (error: any) {\n console.warn(\"The voice button does not work in this browser\");\n throw (error);\n }\n }\n\n private isMozillaFirefox(keyWord: string) {\n const userAgent = navigator.userAgent;\n const firefoxAgent = userAgent.split(\" \").find(item => item.indexOf(keyWord) > -1);\n\n if (firefoxAgent) {\n const splitAgent = firefoxAgent.split(\"/\");\n const firefoxVersion = splitAgent[splitAgent.length - 1];\n return Number(firefoxVersion) >= 125;\n }\n return false;\n }\n\n onInvalidation(changeInfo: ChangeInfo): void {\n this.setNewValue(changeInfo);\n this.setPopoverState(changeInfo);\n this.setNewSuggestionList(changeInfo);\n }\n\n setNewValue(changeInfo: ChangeInfo): void {\n if (changeInfo.name === \"value\") {\n this.value = changeInfo.newValue as string;\n this.setSuggestedRecommendedLists(this.suggestionList);\n this.toggleLabelActiveClass();\n }\n }\n\n private toggleLabelActiveClass() {\n if (this.labelActiveClass && !this.labelAnimationDisabled && !this.isFocusedOnTextfield) {\n this.handleBlur();\n }\n }\n\n setPopoverState(changeInfo: ChangeInfo): void {\n if (changeInfo.name === \"openSuggestionPopup\") {\n this.handlePopoverTrigger(changeInfo.newValue as boolean);\n }\n }\n\n handlePopoverTrigger(isOpenPopover: boolean): void {\n if (isOpenPopover) {\n this.onOpenPopover();\n } else {\n this.onClosePopover();\n }\n }\n\n setNewSuggestionList(changeInfo: ChangeInfo): void {\n if (changeInfo.name === \"suggestionList\" && !!changeInfo.newValue) {\n this.setSuggestedRecommendedLists(changeInfo.newValue as string);\n }\n }\n\n setSuggestedRecommendedLists(value: string): void {\n if (this.showSuggestedPopover && value) {\n const parsedData: SuggestionRecommendLists = JSON.parse(value);\n const hasDataLabels = this.hasDataLabel(parsedData);\n\n if (this.shouldShowPopover(parsedData, hasDataLabels)) {\n this.setDropdownLabels(hasDataLabels, parsedData);\n this.suggestedList = this.getListWithSuggestion(this.getSuggestedList(hasDataLabels, parsedData), \"suggested\");\n this.recommendedList = this.getListWithSuggestion(this.getRecommendedList(hasDataLabels, parsedData), \"recommended\");\n }\n if (!this.shouldShowPopover(parsedData, hasDataLabels)) {\n this.onClosePopover();\n this.resetSuggestedRecommendedLists();\n }\n }\n }\n\n private hasDataLabel(parsedData: SuggestionRecommendLists) {\n return Object.values(parsedData).some(item => Object.prototype.hasOwnProperty.call(item, \"label\"));\n }\n\n private resetSuggestedRecommendedLists() {\n this.suggestedList = [];\n this.recommendedList = [];\n }\n\n private setDropdownLabels(hasDataLabels: boolean, parsedData: SuggestionRecommendLists) {\n this._suggestionLabel = this.getSuggestionLabel(hasDataLabels, parsedData);\n this._recommendLabel = this.getRecommendLabel(hasDataLabels, parsedData);\n }\n\n private getRecommendLabel(hasDataLabels: boolean, parsedData: SuggestionRecommendLists): string {\n return hasDataLabels\n ? (parsedData.recommended as RecommendData).label || \"\"\n : UDExSearch.i18nBundle.getText(RECOMMENDED_TEXT);\n }\n\n private getSuggestionLabel(hasDataLabels: boolean, parsedData: SuggestionRecommendLists): string {\n return hasDataLabels\n ? (parsedData.suggested as SuggestionData).label || \"\"\n : UDExSearch.i18nBundle.getText(SUGGESTED_TEXT);\n }\n\n private getRecommendedList(hasDataLabels: boolean, parsedData: SuggestionRecommendLists) {\n return hasDataLabels\n ? (parsedData.recommended as RecommendData).list\n : parsedData.recommended as DataList;\n }\n\n private getSuggestedList(hasDataLabels: boolean, parsedData: SuggestionRecommendLists) {\n return hasDataLabels\n ? (parsedData.suggested as SuggestionData).list\n : parsedData.suggested as DataList;\n }\n\n private shouldShowPopover(parsedData: SuggestionRecommendLists, hasDataLabels: boolean) {\n const hasSuggestedListContent = this.hasSuggestedContent(hasDataLabels, parsedData);\n const hasRecommendedContent = this.hasRecommendedContent(hasDataLabels, parsedData);\n return this.showPopoverWhenClickedIntoInput || (hasSuggestedListContent || hasRecommendedContent);\n }\n\n private hasSuggestedContent(hasDataLabels: boolean, parsedData: SuggestionRecommendLists) {\n return hasDataLabels\n ? Object.prototype.hasOwnProperty.call(parsedData.suggested, \"list\") && (parsedData.suggested as SuggestionData).list.length\n : (parsedData.suggested as DataList).length;\n }\n\n private hasRecommendedContent(hasDataLabels: boolean, parsedData: SuggestionRecommendLists) {\n return hasDataLabels\n ? Object.prototype.hasOwnProperty.call(parsedData.recommended, \"list\") && (parsedData.recommended as RecommendData).list.length\n : (parsedData.recommended as DataList).length;\n }\n\n getListWithSuggestion(suggestedList: DataList, idName: string): Array<SuggestionList> {\n return suggestedList?.map((item, index) => {\n const itemWithCustomIcon = typeof item === \"object\";\n const label = itemWithCustomIcon ? item.label : item;\n return {\n handleSelectItem: this.handleSelectItem(label),\n text: this.getTextWithSuggestion(label),\n title: label,\n icon: itemWithCustomIcon ? item.icon : SearchIcon,\n hasCustomIcon: itemWithCustomIcon,\n id: `${idName}-${index}`,\n suggestionDescription: `${label}, ${idName} ${index + 1} ${UDExSearch.i18nBundle.getText(OF)} ${suggestedList.length}`,\n };\n });\n }\n\n escapeRegExp(input: string): string {\n const specialChars = /[-[\\]/{}()*+?.\\\\^$|]/g;\n return input.replace(specialChars, \"\\\\$&\");\n }\n\n getTextWithSuggestion(text: string): string {\n const escapedValue = this.escapeRegExp(this.value);\n const search = new RegExp(escapedValue, \"i\");\n return text.replace(search, \"<b>$&</b>\");\n }\n\n handleSelectItem = (itemValue: string) => () => {\n this.value = itemValue;\n this.fireDropdownItemClick(itemValue);\n this.handleSubmitValue();\n };\n\n fireDropdownItemClick(value: string) {\n this.fireDecoratorEvent(\"dropdown-item-click\", { value });\n }\n\n handleDropdownClick() {\n const dropdown = this.getPrefixPopover();\n\n if (dropdown.open) {\n this.onClosePrefixPopover();\n } else {\n this.onOpenPrefixPopover();\n }\n }\n\n getPrefixWrapper() {\n return this.shadowRoot!.querySelector(\".udex-search__prefix\") as HTMLElement;\n }\n\n getPrefixPopover(): Popover {\n return this.shadowRoot!.querySelector<Popover>(\"#udex-search-prefix\")!;\n }\n\n getPrefixButton() {\n return this.shadowRoot!.querySelector(\".udex-search__prefix-button\") as HTMLElement;\n }\n\n onOpenPrefixPopover() {\n if (this.dropdownPrefix.length) {\n const wrapper = this.getPrefixWrapper();\n const dropdown = this.getPrefixPopover();\n const button = this.getPrefixButton();\n\n this._prefixDropdownExpanded = true;\n dropdown.opener = this.getPrefixButton();\n dropdown.open = true;\n dropdown.style.width = `${button.offsetWidth + 1}px`;\n dropdown.classList.add(this.prefixPopoverClasses);\n button.classList.add(\"udex-search__prefix-button--active\");\n wrapper.classList.add(this.prefixWrapperClasses);\n this.dropdownPrefix[0].addEventListener(\"item-press\", this.handleItemClick);\n }\n }\n\n handleItemClick = (e: Event) => {\n const selectedItemPrefix = (e as CustomEvent).detail.item as ListItemBase;\n this.labelPrefix = selectedItemPrefix.innerText;\n this.fireDecoratorEvent(\"prefix-item-click\", { item: selectedItemPrefix });\n this.onClosePrefixPopover();\n };\n\n onClosePrefixPopover() {\n const dropdown = this.getPrefixPopover();\n this.dropdownPrefix[0].removeEventListener(\"item-press\", this.handleItemClick);\n dropdown.open = false;\n this.handleAfterClosePrefixPopover();\n }\n\n handleAfterClosePrefixPopover() {\n this._prefixDropdownExpanded = false;\n const wrapper = this.getPrefixWrapper();\n const button = this.getPrefixButton();\n wrapper.classList.remove(\"udex-search__prefix--show-popover\", \"udex-search__prefix--show-popover-top\");\n button.classList.remove(\"udex-search__prefix-button--active\");\n }\n\n handleInputClick(): void {\n if (!isDesktop()) {\n this._isTouched = true;\n }\n if (this.showPopoverWhenClickedIntoInput) {\n this.onOpenPopover();\n }\n }\n\n onSubmit(e: MouseEvent): void {\n e.stopPropagation();\n this.handleSubmitValue();\n }\n\n handleSubmitValue(): void {\n this.onClosePopover();\n this.fireDecoratorEvent(\"submit-search-value\", { value: this.value });\n }\n\n handleAriaExpanded() {\n const value = this.open.toString();\n this.getSearchInput()?.setAttribute(\"aria-expanded\", value);\n }\n\n onOpenPopover(): void {\n if (this.showSuggestedPopover) {\n if (!this.Suggestion) {\n retryUntilSuccessful(() => this.Suggestion, this.retryDelay, this.maxRetryAttempts, this.unsuccessfulRetryMessage)\n .then(() => {\n this.Suggestion!.open();\n })\n .catch(error => {\n console.warn(error.message);\n });\n } else {\n this.open = true;\n this.Suggestion.open();\n }\n this.handleAriaExpanded();\n }\n }\n\n onClosePopover(): void {\n if (this.showSuggestedPopover) {\n this.Suggestion!.close();\n this.handleAriaExpanded();\n this.open = false;\n }\n }\n\n handleKeyPressSuggestionList(e: KeyboardEvent): void {\n this.Suggestion?.handleKeyPress(e);\n }\n\n get rootClasses(): string {\n if (this.mode === Mode.HomeSearch && this.showSuggestedPopover && this.open) {\n return this.isSuggestionPopoverTop ? \"udex-search__root--show-popover-top\" : \"udex-search__root--show-popover\";\n }\n return \"\";\n }\n\n onBeforeRendering(): void {\n if (this.showSuggestedPopover) {\n this.enableSuggestions();\n }\n\n if (this.isHomeSearchWithPrefixMode && this.dropdownPrefix.length) {\n const dropdownItems = Array.from(this.dropdownPrefix[0].children) as Array<ListItemBase>;\n const selectedItemIndex = dropdownItems.findIndex(listItem => listItem.selected);\n const selectedItemPrefix = selectedItemIndex >= 0 ? dropdownItems[selectedItemIndex] : dropdownItems[0];\n\n this.labelPrefix = selectedItemPrefix.innerText;\n }\n\n this.showResetButton = !!this.value.length;\n\n if (this.value && this.labelActiveClass === \"\") {\n this.labelActiveClass = this._labelActiveClassName;\n }\n\n if (this.mode === Mode.HomeSearch) {\n this.labelAnimationDisabled = true;\n }\n\n if (!this.labelAnimationDisabled) {\n this.labelAnimationClass = this._labelAnimationClassName;\n }\n\n this.labelClasses = `udex-search__label ${this.labelActiveClass} ${this.labelAnimationClass}`;\n\n if (this.isVoiceButton) {\n this.labelClasses += \" udex-search__label-with-voice-icon\";\n }\n\n if (this.isShowSubmitButton) {\n this.labelClasses += \" udex-search__label-with-search-icon\";\n }\n }\n\n enableSuggestions() {\n if (this.Suggestion) {\n return;\n }\n\n const Suggestion = getFeature<typeof SearchInputSuggestion>(\"SearchInputSuggestion\");\n\n if (Suggestion) {\n this.Suggestion = new Suggestion(this);\n } else {\n throw new Error(\"You have to import '@sapudex/webcomponents/dist/features/SearchSuggestionsPopover.js' module to use udex-search suggestions\");\n }\n }\n\n private _createObserver(popover: Popover, ingoreOpenState: boolean = false): MutationObserver {\n return new MutationObserver(mutationList => {\n mutationList.forEach(mutation => {\n const newValue = popover?.actualPlacement;\n const oldValue = mutation.oldValue;\n\n if (mutation.attributeName === \"actual-placement\" && newValue !== oldValue) {\n this._popoverPlacement = newValue as PopoverPlacement;\n }\n\n if (mutation.attributeName === \"open\" && newValue !== oldValue && !ingoreOpenState) {\n this.open = popover?.open || false;\n }\n });\n });\n }\n\n onAfterRendering(): void {\n if (this.showSuggestedPopover) {\n const prefixPopover = this.getPrefixPopover();\n\n if (this.Suggestion?.popover) {\n const suggestionObserver = this._createObserver(this.Suggestion.popover);\n const popoverNode = this.Suggestion?.popover as Node;\n suggestionObserver.observe(popoverNode, { attributes: true, attributeOldValue: true });\n this.Suggestion.initLists();\n }\n\n if (prefixPopover) {\n const prefixObserver = this._createObserver(prefixPopover, true);\n const popoverNode = prefixPopover as Node;\n prefixObserver.observe(popoverNode, { attributes: true, attributeOldValue: true });\n }\n\n this.handleOutsideClick();\n this.handleOpenSuggestionPopover();\n this.setSearchWidth();\n }\n }\n\n handleOpenSuggestionPopover() {\n if (this.openSuggestionPopup) {\n this.Suggestion?._getSuggestionPopover();\n this.handlePopoverTrigger(this.openSuggestionPopup);\n }\n }\n\n handleOutsideClick(): void {\n document.addEventListener(\"mousedown\", (e: MouseEvent) => {\n const popover = (e.target as HTMLElement).shadowRoot?.querySelector(\"[ui5-popover]\");\n if (e.target !== this && popover !== this.Suggestion?.popover) {\n this.handleBlur();\n this.onClosePopover();\n if (this.isShowSearchHomePrefix) {\n this.handleAfterClosePrefixPopover();\n }\n }\n });\n }\n\n handleBlur(): void {\n this._isTouched = false;\n if (this.value) {\n this.labelActiveClass = this._labelActiveClassName;\n } else {\n this.labelActiveClass = \"\";\n }\n }\n\n handleSearchChange(e: InputEvent): void {\n this.value = (e.target as HTMLInputElement)?.value;\n this.showResetButton = !!this.value.length;\n this.handleDebounce();\n }\n\n handleDebounce = debounce(() => {\n this.fireDecoratorEvent(\"handle-value-search\", { value: this.value });\n if (this.showSuggestedPopover && this.value.length >= 2) {\n this.onOpenPopover();\n }\n if (!this.showPopoverWhenClickedIntoInput && this.showSuggestedPopover && this.value.length < 2) {\n this.onClosePopover();\n }\n });\n\n handleKeyDown = (e: KeyboardEvent) => {\n e.stopPropagation();\n this.handleEnterKey(e);\n this.handleTabKey(e);\n this.handleEscapeKey(e);\n this.fireDecoratorEvent(\"search-keydown\", { e });\n };\n\n handleEnterKey(e: KeyboardEvent) {\n if (isEnter(e)) {\n if (!this.open) {\n e.preventDefault();\n } else {\n this.Suggestion?.onEnter(e);\n }\n this.handleSubmitValue();\n }\n }\n\n handleTabKey(e: KeyboardEvent) {\n if (isTabNext(e) && this.open) {\n this.Suggestion?.onTab(e);\n }\n }\n\n handleEscapeKey(e: KeyboardEvent) {\n if (isEscape(e)) {\n if (this.open) {\n this.Suggestion?.onEscape(e);\n }\n }\n }\n\n handleKeyDownPopover(e: KeyboardEvent) {\n if (this.open) {\n this.handleTabKeyList(e);\n this.handlePrevTabKeyList(e);\n this.handleDownKeyList(e);\n this.handleUpKeyList(e);\n this.handleEscapeKey(e);\n }\n }\n\n handleTabKeyList(e: KeyboardEvent) {\n if (isTabNext(e)) {\n this.Suggestion?.onKeyTabList(e);\n }\n }\n\n handlePrevTabKeyList(e: KeyboardEvent) {\n if (isTabPrevious(e)) {\n this.Suggestion?.onPrevKeyTabList(e);\n }\n }\n\n handleDownKeyList(e: KeyboardEvent) {\n if (isDown(e)) {\n this.Suggestion?.onKeyDown(e);\n }\n }\n\n handleUpKeyList(e: KeyboardEvent) {\n if (isUp(e)) {\n this.Suggestion?.onKeyUp(e);\n }\n }\n\n handleFocus(): void {\n this.active = true;\n this.isFocusedOnTextfield = true;\n this.focusClasses = this._focusActiveClassName;\n this.labelActiveClass = (this.value || !this.labelAnimationDisabled) ? this._labelActiveClassName : \"\";\n this.labelAnimationClass = !this.labelAnimationDisabled ? this._labelAnimationClassName : \"\";\n }\n\n handleFocusout(): void {\n this.active = false;\n this.isFocusedOnTextfield = false;\n this.focusClasses = \"\";\n }\n\n onReset(e: MouseEvent): void {\n e.stopPropagation();\n this.handleReset();\n }\n\n handleReset(): void {\n this.value = \"\";\n this.showResetButton = false;\n this.onClosePopover();\n this.fireDecoratorEvent(\"handle-value-reset\");\n this.Suggestion?.resetFocusState();\n this.getSearchInput()?.focus();\n }\n\n handleKeyDownReset(e: KeyboardEvent) {\n if (isTabPrevious(e) && this.open) {\n this.Suggestion?.handlePrevTabReset(e);\n }\n if (isEnter(e) || isSpace(e)) {\n e.preventDefault();\n e.stopPropagation();\n this.handleReset();\n }\n }\n\n private getSearchInput(): HTMLInputElement {\n return this.shadowRoot?.querySelector(\"[id='search-input']\") as HTMLInputElement;\n }\n\n onVoice(e: MouseEvent): void {\n e.stopPropagation();\n if (this.speechRecognition) {\n this.onSpeechLaunch();\n this.onSpeechStart();\n this.onSpeechResult();\n this.onSpeechEnd();\n }\n }\n\n onSpeechLaunch(): void {\n if (!this.voiceActiveClass) {\n this.speechRecognition.start();\n } else {\n this.speechRecognition.stop();\n }\n }\n\n get effectivePlaceholder() {\n return !this.voiceActiveClass ? this.label : `${UDExSearch.i18nBundle.getText(LISTENING)}...`;\n }\n\n onSpeechStart(): void {\n this.speechRecognition.onstart = () => {\n this.voiceActiveClass = this._voiceActiveClassName;\n this.getSearchInput()?.focus();\n };\n }\n\n onSpeechResult(): void {\n this.speechRecognition.onresult = (e: any) => {\n const last = e.results.length - 1;\n this.value = e.results[last][0].transcript;\n this.speechRecognition.stop();\n };\n }\n\n onSpeechEnd(): void {\n this.speechRecognition.onend = () => {\n this.voiceActiveClass = \"\";\n this.handleSubmitValue();\n this.onShowResetButton();\n };\n }\n\n onShowResetButton(): void {\n if (this.value) {\n this.showResetButton = true;\n }\n }\n\n _handleResize() {\n this.setSearchWidth();\n }\n\n private setSearchWidth() {\n const searchContainer = (this.shadowRoot?.querySelector(\".udex-search__container\") as HTMLElement);\n\n if (searchContainer.offsetWidth !== this._searchWidth) {\n this._searchWidth = searchContainer.offsetWidth;\n }\n }\n\n get popoverStyles() {\n return {\n \"width\": this._searchWidth ? `${this._searchWidth}px` : \"\",\n };\n }\n\n get prefixPopoverStyles() {\n return {\n \"width\": this.getPrefixButton() ? `${this.getPrefixButton().offsetWidth + 1}px` : \"\",\n };\n }\n\n get isShowResetButton(): boolean {\n return this.showResetButton && !!this.value.length && this.mode === Mode.Standard;\n }\n\n get isShowHomeResetButton(): boolean {\n return this.showResetButton && !!this.value.length && this.mode === Mode.HomeSearch;\n }\n\n get noResultMessage(): string {\n return this.noResultText || UDExSearch.i18nBundle.getText(NO_MATCHES_FOUND);\n }\n\n get showNoResultMessage(): boolean {\n return !this.suggestedList?.length && !this.recommendedList?.length;\n }\n\n get isShowSuggestedList(): boolean {\n return !!this.suggestedList?.length;\n }\n\n get isShowRecommendedList(): boolean {\n return !!this.recommendedList?.length;\n }\n\n get hasPopoverContent(): boolean {\n return !!(this.suggestedList?.length || this.recommendedList?.length);\n }\n\n get getAriaHasPopup(): string {\n return this.showSuggestedPopover ? \"dialog\" : \"false\";\n }\n\n get getSuggestionsPopoverId(): string {\n return SuggestionsPopoverId;\n }\n\n get isShowSubmitButton(): boolean {\n return this.showSubmitButton;\n }\n\n get suggestedHeading(): string | undefined {\n return this._suggestionLabel;\n }\n\n get recommendedHeading(): string | undefined {\n return this._recommendLabel;\n }\n\n get isSuggestionPopoverTop(): boolean {\n const suggestionPopover = this.Suggestion?.popover;\n return suggestionPopover! && suggestionPopover.open && this._popoverPlacement === \"Top\";\n }\n\n get isPrefixSuggestionPopoverTop(): boolean {\n const prefixSuggestionPopover = this.getPrefixPopover();\n return prefixSuggestionPopover && prefixSuggestionPopover.open && this._popoverPlacement === \"Top\";\n }\n\n get isShowSearchHomePrefix(): boolean {\n return this.isHomeSearchWithPrefixMode && !!this.dropdownPrefix.length;\n }\n\n get isHomeSearchMode(): boolean {\n return this.mode === Mode.HomeSearch;\n }\n\n get isHomeSearchWithPrefixMode(): boolean {\n return this.mode === Mode.HomeSearch && !!this.dropdownPrefix.length;\n }\n\n get searchClasses(): string {\n return `${this.classWithPrefix} ${this.rootClasses} udex-search-mode-${this.mode.toLowerCase().replace(\" \", \"-\")}`.trim();\n }\n\n get prefixWrapperClasses(): string {\n const prefixPopover = this.getPrefixPopover();\n if (prefixPopover && prefixPopover.open) {\n return this._popoverPlacement === \"Top\" ? \"udex-search__prefix--show-popover-top\" : \"udex-search__prefix--show-popover\";\n }\n return \"\";\n }\n\n get prefixPopoverClasses(): string {\n return this.isPrefixSuggestionPopoverTop ? \"udex-search__prefix-popover-top\" : \"udex-search__prefix-popover\";\n }\n\n get classWithPrefix(): string {\n return this.isHomeSearchWithPrefixMode ? \"udex-search-prefix\" : \"\";\n }\n\n get homeSearchPopoverClass(): string {\n if (this.isHomeSearchMode || this.isHomeSearchWithPrefixMode) {\n return this.isSuggestionPopoverTop ? \"udex-search-suggestions__root-top--home\" : \"udex-search-suggestions__root--home\";\n }\n return \"\";\n }\n\n get homeSearchWithPrefixPopoverClass(): string {\n return this.isHomeSearchWithPrefixMode ? \"udex-search-suggestions__root--prefix\" : \"\";\n }\n\n get searchButtonActiveClass(): string {\n return this.isHomeSearchMode && this.open ? \"udex-search__submit-button--active\" : \"\";\n }\n\n get isNotEmptyClass(): string {\n return this.value.length > 2 || this.focusClasses.length ? \" udex-search__container--has-value\" : \"\";\n }\n\n get isVoiceButton(): boolean {\n return this.showVoiceButton && this.isNotMozillaFirefox && this.isNotMozillaFirefoxIOS && this.mode === Mode.HomeSearch;\n }\n\n get accInfo() {\n return {\n \"ariaLabel\": this.accessibleName || undefined,\n \"accessibleNameResetIcon\": this.accessibleNameResetIcon || UDExSearch.i18nBundle.getText(ACCESSIBLE_NAME_RESET_ICON),\n \"accessibleNameSearchIcon\": this.accessibleNameSearchIcon || UDExSearch.i18nBundle.getText(ACCESSIBLE_NAME_SEARCH_ICON),\n };\n }\n\n get suggestionsDescription(): string {\n return !this.showNoResultMessage ? `${this.suggestedList.length} ${this._suggestionLabel}, ${this.recommendedList.length} ${this._recommendLabel}` : `${this.noResultMessage}`;\n }\n\n get tooltipInfo() {\n return {\n \"tooltipResetButton\": this.tooltipResetButton || UDExSearch.i18nBundle.getText(TOOLTIP_RESET_BUTTON),\n \"tooltipVoiceButton\": this.tooltipVoiceButton || UDExSearch.i18nBundle.getText(TOOLTIP_VOICE_BUTTON),\n \"tooltipSubmitButton\": this.tooltipSubmitButton || UDExSearch.i18nBundle.getText(TOOLTIP_SUBMIT_BUTTON),\n };\n }\n\n get suggestionsAccessibleName(): string {\n return UDExSearch.i18nBundle.getText(AVAILABLE_VALUES);\n }\n\n get showNonInteractiveButton(): boolean {\n return this.showSubmitButton && this.nonInteractiveSubmitButton;\n }\n\n get showSubmitStandardButton(): boolean {\n return this.showSubmitButton && !this.nonInteractiveSubmitButton && this.mode === Mode.Standard;\n }\n\n get showSubmitHomeButton(): boolean {\n return this.showSubmitButton && !this.nonInteractiveSubmitButton && this.mode === Mode.HomeSearch;\n }\n}\n\nUDExSearch.define();\n\nexport default UDExSearch;\n"]}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
2
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
3
|
-
import type
|
|
3
|
+
import type Popover from "@ui5/webcomponents/dist/Popover.js";
|
|
4
|
+
import type UDExSearch from "./Search.js";
|
|
4
5
|
import type UDExListItemBase from "./ListItemBase.js";
|
|
5
6
|
import type UDExListGroupHeaderBase from "./ListGroupHeaderBase.js";
|
|
6
7
|
import { UDExListMode } from "./types/List.js";
|
|
7
8
|
import type UDExFilterMenuItem from "./FilterMenuItem.js";
|
|
8
9
|
import type { UDExProcessedItem } from "./types/SearchableListBase.js";
|
|
10
|
+
import { UDExPopoverPart } from "./types/SearchableListBase.js";
|
|
9
11
|
export type UDExItemFromList = UDExListItemBase | UDExListGroupHeaderBase | null | undefined;
|
|
10
12
|
type UDExSearchableListBaseChangeSearchEventDetail = {
|
|
11
13
|
value: string;
|
|
@@ -42,6 +44,18 @@ export type UDExSearchableListBaseEvents = {
|
|
|
42
44
|
*/
|
|
43
45
|
declare class UDExSearchableListBase extends UI5Element {
|
|
44
46
|
eventDetails: UDExSearchableListBaseEvents;
|
|
47
|
+
/**
|
|
48
|
+
* Allows control over the height.
|
|
49
|
+
* @public
|
|
50
|
+
*/
|
|
51
|
+
height?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Defines if page scrolling should be prevented within the list of items.
|
|
54
|
+
*
|
|
55
|
+
* @default false
|
|
56
|
+
* @public
|
|
57
|
+
*/
|
|
58
|
+
preventPageScroll: boolean;
|
|
45
59
|
/**
|
|
46
60
|
* Defines if the component would display a loading indicator.
|
|
47
61
|
*
|
|
@@ -115,6 +129,7 @@ declare class UDExSearchableListBase extends UI5Element {
|
|
|
115
129
|
_filteredItems: Array<UDExProcessedItem>;
|
|
116
130
|
static i18nBundle: I18nBundle;
|
|
117
131
|
_shouldFilterItems?: boolean;
|
|
132
|
+
_accSearchResultInfo?: string;
|
|
118
133
|
constructor();
|
|
119
134
|
onBeforeRendering(): void;
|
|
120
135
|
onItemPress(e: CustomEvent): void;
|
|
@@ -146,13 +161,20 @@ declare class UDExSearchableListBase extends UI5Element {
|
|
|
146
161
|
fireSelectionChange(itemId: string): void;
|
|
147
162
|
handlePreviousItemFocus(e: KeyboardEvent): void;
|
|
148
163
|
handleNextListItemFocus(e: KeyboardEvent): void;
|
|
164
|
+
getFlattenItemsArray(array: Array<UDExProcessedItem>): (UDExProcessedItem | UDExListItemBase)[];
|
|
149
165
|
getCurrentIndex(item: Element): number;
|
|
150
|
-
getSearch():
|
|
166
|
+
getSearch(): UDExSearch;
|
|
167
|
+
getPopover(): Popover;
|
|
151
168
|
getDomListItems(): Element[];
|
|
152
169
|
setItemsModeAndControl(items: Array<UDExFilterMenuItem>): void;
|
|
153
170
|
getDataTokenId(e: CustomEvent): string;
|
|
154
171
|
getProcessedItems(): Array<UDExProcessedItem>;
|
|
172
|
+
getPopoverPart(part: UDExPopoverPart): HTMLElement;
|
|
173
|
+
_managePopupListeners(part: UDExPopoverPart, action: "addEventListener" | "removeEventListener"): void;
|
|
174
|
+
_setContentHeight(): void;
|
|
155
175
|
get getNoResultText(): string;
|
|
176
|
+
get noMatchesFoundText(): string;
|
|
177
|
+
get resultReturnedText(): string;
|
|
156
178
|
get isListEmpty(): boolean;
|
|
157
179
|
get selectedItems(): Array<UDExListItemBase>;
|
|
158
180
|
get modeMultiSelect(): boolean;
|
|
@@ -10,11 +10,11 @@ import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
|
10
10
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
11
11
|
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
12
12
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
13
|
-
import { isDown, isUp
|
|
13
|
+
import { isDown, isUp } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
14
14
|
import { cleanLabel } from "./utils/listItemLabelUtils.js";
|
|
15
15
|
import { UDExListMode } from "./types/List.js";
|
|
16
|
-
import { SHOW_SEARCH_AFTER_COUNT } from "./types/SearchableListBase.js";
|
|
17
|
-
import { NO_MATCHES_FOUND } from "./generated/i18n/i18n-defaults.js";
|
|
16
|
+
import { SHOW_SEARCH_AFTER_COUNT, UDExPopoverPart } from "./types/SearchableListBase.js";
|
|
17
|
+
import { NO_MATCHES_FOUND, RESULT_RETURNED } from "./generated/i18n/i18n-defaults.js";
|
|
18
18
|
/**
|
|
19
19
|
* @class
|
|
20
20
|
*
|
|
@@ -34,6 +34,13 @@ import { NO_MATCHES_FOUND } from "./generated/i18n/i18n-defaults.js";
|
|
|
34
34
|
let UDExSearchableListBase = UDExSearchableListBase_1 = class UDExSearchableListBase extends UI5Element {
|
|
35
35
|
constructor() {
|
|
36
36
|
super();
|
|
37
|
+
/**
|
|
38
|
+
* Defines if page scrolling should be prevented within the list of items.
|
|
39
|
+
*
|
|
40
|
+
* @default false
|
|
41
|
+
* @public
|
|
42
|
+
*/
|
|
43
|
+
this.preventPageScroll = false;
|
|
37
44
|
/**
|
|
38
45
|
* Defines the delay in milliseconds, after which the busy indicator will show up for this component.
|
|
39
46
|
*
|
|
@@ -134,6 +141,8 @@ let UDExSearchableListBase = UDExSearchableListBase_1 = class UDExSearchableList
|
|
|
134
141
|
const searchValue = e.detail.value;
|
|
135
142
|
this._shouldFilterItems = true;
|
|
136
143
|
this._filteredItems = this.filterItems(this.getProcessedItems(), searchValue);
|
|
144
|
+
const items = this.getFlattenItemsArray(this._filteredItems);
|
|
145
|
+
this._accSearchResultInfo = items.length ? `${items.length} ${this.resultReturnedText}` : this.noMatchesFoundText;
|
|
137
146
|
this.fireDecoratorEvent("change-search", { value: searchValue });
|
|
138
147
|
}
|
|
139
148
|
onReset() {
|
|
@@ -171,6 +180,10 @@ let UDExSearchableListBase = UDExSearchableListBase_1 = class UDExSearchableList
|
|
|
171
180
|
return groupItems.filter(groupItem => this.checkAndUpdateLabel(groupItem, str));
|
|
172
181
|
}
|
|
173
182
|
checkAndUpdateLabel(item, str) {
|
|
183
|
+
if (!item.label) {
|
|
184
|
+
console.warn("A label property is required for the item");
|
|
185
|
+
return false;
|
|
186
|
+
}
|
|
174
187
|
const cleanedLabel = cleanLabel(item.label);
|
|
175
188
|
if (this.isIncludes(cleanedLabel, str)) {
|
|
176
189
|
item.label = this.addSearchTermTag(cleanedLabel, str);
|
|
@@ -269,12 +282,26 @@ let UDExSearchableListBase = UDExSearchableListBase_1 = class UDExSearchableList
|
|
|
269
282
|
listItems[nextSelectIndex].focus();
|
|
270
283
|
}
|
|
271
284
|
}
|
|
285
|
+
getFlattenItemsArray(array) {
|
|
286
|
+
return array.flatMap(item => {
|
|
287
|
+
if (item.isGroup) {
|
|
288
|
+
return [
|
|
289
|
+
item,
|
|
290
|
+
...item.groupItems.filter(groupItem => !groupItem.disabled),
|
|
291
|
+
];
|
|
292
|
+
}
|
|
293
|
+
return item.item.disabled ? [] : [item.item];
|
|
294
|
+
});
|
|
295
|
+
}
|
|
272
296
|
getCurrentIndex(item) {
|
|
273
297
|
return this.getDomListItems().indexOf(item);
|
|
274
298
|
}
|
|
275
299
|
getSearch() {
|
|
276
300
|
return this.shadowRoot.querySelector("[udex-search]");
|
|
277
301
|
}
|
|
302
|
+
getPopover() {
|
|
303
|
+
return this.shadowRoot.querySelector("[ui5-popover]");
|
|
304
|
+
}
|
|
278
305
|
getDomListItems() {
|
|
279
306
|
const elementList = this.shadowRoot.querySelector("[udex-list]");
|
|
280
307
|
return elementList ? Array.from(elementList.querySelectorAll("[udex-list-item]")) : [];
|
|
@@ -303,9 +330,26 @@ let UDExSearchableListBase = UDExSearchableListBase_1 = class UDExSearchableList
|
|
|
303
330
|
};
|
|
304
331
|
});
|
|
305
332
|
}
|
|
333
|
+
getPopoverPart(part) {
|
|
334
|
+
return this.getPopover().shadowRoot.querySelector(`[part=${part}]`);
|
|
335
|
+
}
|
|
336
|
+
_managePopupListeners(part, action) {
|
|
337
|
+
const element = this.getPopoverPart(part);
|
|
338
|
+
element?.[action]("wheel", ((e) => e.preventDefault()));
|
|
339
|
+
}
|
|
340
|
+
_setContentHeight() {
|
|
341
|
+
const content = this.getPopoverPart(UDExPopoverPart.Content);
|
|
342
|
+
content.style.maxHeight = this.height || "";
|
|
343
|
+
}
|
|
306
344
|
get getNoResultText() {
|
|
307
345
|
const hasTextProperty = this.noResultText !== undefined && this.noResultText.length > 0;
|
|
308
|
-
return hasTextProperty ? this.noResultText :
|
|
346
|
+
return hasTextProperty ? this.noResultText : this.noMatchesFoundText;
|
|
347
|
+
}
|
|
348
|
+
get noMatchesFoundText() {
|
|
349
|
+
return UDExSearchableListBase_1.i18nBundle.getText(NO_MATCHES_FOUND);
|
|
350
|
+
}
|
|
351
|
+
get resultReturnedText() {
|
|
352
|
+
return UDExSearchableListBase_1.i18nBundle.getText(RESULT_RETURNED);
|
|
309
353
|
}
|
|
310
354
|
get isListEmpty() {
|
|
311
355
|
return this._filteredItems.length === 0;
|
|
@@ -358,6 +402,12 @@ let UDExSearchableListBase = UDExSearchableListBase_1 = class UDExSearchableList
|
|
|
358
402
|
return "none";
|
|
359
403
|
}
|
|
360
404
|
};
|
|
405
|
+
__decorate([
|
|
406
|
+
property({ type: String })
|
|
407
|
+
], UDExSearchableListBase.prototype, "height", void 0);
|
|
408
|
+
__decorate([
|
|
409
|
+
property({ type: Boolean })
|
|
410
|
+
], UDExSearchableListBase.prototype, "preventPageScroll", void 0);
|
|
361
411
|
__decorate([
|
|
362
412
|
property({ type: Boolean })
|
|
363
413
|
], UDExSearchableListBase.prototype, "busy", void 0);
|