@sapudex/web-components 0.127.6 → 0.143.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/bundle.esm.js +2 -0
- package/dist/Accordion.d.ts +1 -1
- package/dist/Accordion.js +2 -2
- package/dist/Accordion.js.map +1 -1
- package/dist/AccordionItem.d.ts +1 -1
- package/dist/AccordionItem.js +2 -2
- package/dist/AccordionItem.js.map +1 -1
- package/dist/Avatar.js +1 -1
- package/dist/Avatar.js.map +1 -1
- package/dist/Breadcrumbs.js +1 -1
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/Carousel.js +1 -1
- package/dist/Carousel.js.map +1 -1
- package/dist/Checkbox.d.ts +1 -1
- package/dist/Checkbox.js +1 -1
- package/dist/Checkbox.js.map +1 -1
- package/dist/CountrySelector.d.ts +24 -6
- package/dist/CountrySelector.js +32 -10
- package/dist/CountrySelector.js.map +1 -1
- package/dist/DatePicker.d.ts +1 -0
- package/dist/DatePicker.js +5 -2
- package/dist/DatePicker.js.map +1 -1
- package/dist/Dropdown.d.ts +2 -1
- package/dist/Dropdown.js +16 -4
- package/dist/Dropdown.js.map +1 -1
- package/dist/FilterMenu.d.ts +21 -6
- package/dist/FilterMenu.js +66 -21
- package/dist/FilterMenu.js.map +1 -1
- package/dist/Footer.d.ts +9 -1
- package/dist/Footer.js +9 -2
- package/dist/Footer.js.map +1 -1
- package/dist/InputGroup.js +1 -1
- package/dist/InputGroup.js.map +1 -1
- package/dist/Link.d.ts +1 -1
- package/dist/Link.js +1 -1
- package/dist/Link.js.map +1 -1
- package/dist/List.d.ts +1 -1
- package/dist/List.js +18 -2
- package/dist/List.js.map +1 -1
- package/dist/ListGroupHeader.d.ts +2 -2
- package/dist/ListGroupHeader.js +2 -2
- package/dist/ListGroupHeader.js.map +1 -1
- package/dist/ListItem.d.ts +3 -3
- package/dist/ListItem.js +7 -8
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItemBase.d.ts +2 -2
- package/dist/ListItemBase.js.map +1 -1
- package/dist/ListSelectAll.d.ts +1 -1
- package/dist/ListSelectAll.js +2 -2
- package/dist/ListSelectAll.js.map +1 -1
- package/dist/MastheadItem.d.ts +9 -1
- package/dist/MastheadItem.js +28 -16
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadMenu.d.ts +5 -0
- package/dist/MastheadMenu.js +24 -0
- package/dist/MastheadMenu.js.map +1 -1
- package/dist/MastheadMenuItem.d.ts +2 -3
- package/dist/MastheadMenuItem.js +2 -17
- package/dist/MastheadMenuItem.js.map +1 -1
- package/dist/MastheadMobileMenu.d.ts +25 -5
- package/dist/MastheadMobileMenu.js +136 -22
- package/dist/MastheadMobileMenu.js.map +1 -1
- package/dist/MastheadProfileMenu.d.ts +13 -4
- package/dist/MastheadProfileMenu.js +41 -10
- package/dist/MastheadProfileMenu.js.map +1 -1
- package/dist/MastheadShell.d.ts +24 -5
- package/dist/MastheadShell.js +77 -29
- package/dist/MastheadShell.js.map +1 -1
- package/dist/MediaPlayer.d.ts +3 -3
- package/dist/MediaPlayer.js +115 -25
- package/dist/MediaPlayer.js.map +1 -1
- package/dist/MessageStrip.js +1 -1
- package/dist/MessageStrip.js.map +1 -1
- package/dist/Pagination.js +1 -1
- package/dist/Pagination.js.map +1 -1
- package/dist/PasswordField.js +1 -1
- package/dist/PasswordField.js.map +1 -1
- package/dist/PhoneNumberField.d.ts +26 -0
- package/dist/PhoneNumberField.js +47 -3
- package/dist/PhoneNumberField.js.map +1 -1
- package/dist/RatingBar.js +1 -1
- package/dist/RatingBar.js.map +1 -1
- package/dist/Review.js +1 -1
- package/dist/Review.js.map +1 -1
- package/dist/ReviewItem.d.ts +105 -0
- package/dist/ReviewItem.js +157 -0
- package/dist/ReviewItem.js.map +1 -0
- package/dist/Search.d.ts +15 -1
- package/dist/Search.js +31 -6
- package/dist/Search.js.map +1 -1
- package/dist/SearchableListBase.d.ts +5 -0
- package/dist/SearchableListBase.js +11 -4
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SecondaryNavigation.d.ts +2 -0
- package/dist/SecondaryNavigation.js +19 -12
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.d.ts +8 -0
- package/dist/SecondaryNavigationItem.js +20 -1
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SecondaryNavigationItemBase.js +1 -1
- package/dist/SecondaryNavigationItemBase.js.map +1 -1
- package/dist/SecondaryNavigationSubItem.js +1 -1
- package/dist/SecondaryNavigationSubItem.js.map +1 -1
- package/dist/SelectBox.d.ts +33 -9
- package/dist/SelectBox.js +119 -60
- package/dist/SelectBox.js.map +1 -1
- package/dist/StatusBadge.js +1 -1
- package/dist/StatusBadge.js.map +1 -1
- package/dist/StepInput.js +1 -1
- package/dist/StepInput.js.map +1 -1
- package/dist/Switch.d.ts +19 -0
- package/dist/Switch.js +19 -0
- package/dist/Switch.js.map +1 -1
- package/dist/Tab.d.ts +1 -1
- package/dist/Tab.js +2 -2
- package/dist/Tab.js.map +1 -1
- package/dist/TabNavigation.d.ts +1 -1
- package/dist/TabNavigation.js +2 -2
- package/dist/TabNavigation.js.map +1 -1
- package/dist/Table.js +1 -1
- package/dist/Table.js.map +1 -1
- package/dist/Tag.d.ts +9 -1
- package/dist/Tag.js +20 -3
- package/dist/Tag.js.map +1 -1
- package/dist/TagGroup.d.ts +94 -0
- package/dist/TagGroup.js +174 -0
- package/dist/TagGroup.js.map +1 -0
- package/dist/TextArea.d.ts +13 -0
- package/dist/TextArea.js +16 -1
- package/dist/TextArea.js.map +1 -1
- package/dist/TextField.d.ts +23 -13
- package/dist/TextField.js +17 -4
- package/dist/TextField.js.map +1 -1
- package/dist/Tooltip.d.ts +1 -1
- package/dist/Tooltip.js +1 -1
- package/dist/Tooltip.js.map +1 -1
- package/dist/TruncatedText.js +1 -1
- package/dist/TruncatedText.js.map +1 -1
- package/dist/assets/{bundle.esm-7d53f4f2.js → bundle.esm-8623b7b1.js} +190 -188
- package/dist/assets/messagebundle_en-c677773a.js +1 -0
- package/dist/assets/parameters-bundle.css-c897ae23.js +2 -0
- package/dist/assets/video.es-60bfb78c.js +228 -0
- package/dist/css/themes/Button.css +1 -1
- package/dist/css/themes/CountrySelector.css +1 -1
- package/dist/css/themes/Dropdown.css +1 -1
- package/dist/css/themes/FilterMenu.css +1 -1
- package/dist/css/themes/ListItem.css +1 -1
- package/dist/css/themes/MastheadItem.css +1 -1
- package/dist/css/themes/MastheadMobileMenu.css +1 -1
- package/dist/css/themes/MastheadShell.css +1 -1
- package/dist/css/themes/PhoneNumberField.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/ReviewItem.css +1 -0
- package/dist/css/themes/Search.css +1 -1
- package/dist/css/themes/SecondaryNavigation.css +1 -1
- package/dist/css/themes/SecondaryNavigationItem.css +1 -1
- package/dist/css/themes/SecondaryNavigationSubItem.css +1 -1
- package/dist/css/themes/SelectBox.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/css/themes/Tag.css +1 -1
- package/dist/css/themes/TagGroup.css +1 -0
- package/dist/css/themes/TextArea.css +1 -1
- package/dist/css/themes/TextField.css +1 -1
- package/dist/css/themes/Toast.css +1 -1
- package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +1 -1
- package/dist/custom-elements-internal.json +881 -404
- package/dist/custom-elements.json +787 -350
- package/dist/data/CountryListISO3166.js +1 -1
- package/dist/data/CountryListISO3166.js.map +1 -1
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/assets/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +3 -1
- package/dist/generated/i18n/i18n-defaults.js +6 -4
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/CountrySelectorTemplate.lit.js +3 -3
- package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
- package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
- package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
- package/dist/generated/templates/DropdownTemplate.lit.js +2 -2
- package/dist/generated/templates/DropdownTemplate.lit.js.map +1 -1
- package/dist/generated/templates/FilterMenuTemplate.lit.js +1 -1
- package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/FooterTemplate.lit.js +9 -9
- package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
- package/dist/generated/templates/HeroBannerTemplate.lit.js +7 -8
- package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ListItemTemplate.lit.js +6 -6
- package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ListSelectAllTemplate.lit.js +1 -1
- package/dist/generated/templates/ListSelectAllTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadItemTemplate.lit.js +3 -3
- package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadMenuItemTemplate.lit.js +1 -1
- package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadMenuTemplate.lit.js +2 -2
- package/dist/generated/templates/MastheadMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +16 -12
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js +2 -2
- package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadShellTemplate.lit.js +13 -11
- package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MediaPlayerTemplate.lit.js +2 -2
- package/dist/generated/templates/MediaPlayerTemplate.lit.js.map +1 -1
- package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +5 -2
- package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ReviewItemTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/ReviewItemTemplate.lit.js +8 -0
- package/dist/generated/templates/ReviewItemTemplate.lit.js.map +1 -0
- package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +7 -6
- package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SelectBoxTemplate.lit.js +2 -2
- package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TabHeaderTemplate.lit.js +2 -2
- package/dist/generated/templates/TabHeaderTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TabInOverflowTemplate.lit.js +6 -6
- package/dist/generated/templates/TabInOverflowTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TabNavigationTemplate.lit.js +3 -1
- package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TagGroupTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/TagGroupTemplate.lit.js +8 -0
- package/dist/generated/templates/TagGroupTemplate.lit.js.map +1 -0
- package/dist/generated/templates/TagTemplate.lit.js +11 -7
- package/dist/generated/templates/TagTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TextAreaTemplate.lit.js +1 -1
- package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TextFieldTemplate.lit.js +1 -1
- package/dist/generated/templates/TextFieldTemplate.lit.js.map +1 -1
- package/dist/generated/themes/Button.css.js +1 -1
- package/dist/generated/themes/Button.css.js.map +1 -1
- package/dist/generated/themes/CountrySelector.css.js +1 -1
- package/dist/generated/themes/CountrySelector.css.js.map +1 -1
- package/dist/generated/themes/Dropdown.css.js +1 -1
- package/dist/generated/themes/Dropdown.css.js.map +1 -1
- package/dist/generated/themes/FilterMenu.css.js +1 -1
- package/dist/generated/themes/FilterMenu.css.js.map +1 -1
- package/dist/generated/themes/ListItem.css.js +1 -1
- package/dist/generated/themes/ListItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadItem.css.js +1 -1
- package/dist/generated/themes/MastheadItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadMobileMenu.css.js +1 -1
- package/dist/generated/themes/MastheadMobileMenu.css.js.map +1 -1
- package/dist/generated/themes/MastheadShell.css.js +1 -1
- package/dist/generated/themes/MastheadShell.css.js.map +1 -1
- package/dist/generated/themes/PhoneNumberField.css.js +1 -1
- package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/ReviewItem.css.d.ts +3 -0
- package/dist/generated/themes/ReviewItem.css.js +9 -0
- package/dist/generated/themes/ReviewItem.css.js.map +1 -0
- package/dist/generated/themes/Search.css.js +1 -1
- package/dist/generated/themes/Search.css.js.map +1 -1
- package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
- package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
- package/dist/generated/themes/SecondaryNavigationItem.css.js +1 -1
- package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
- package/dist/generated/themes/SecondaryNavigationSubItem.css.js +1 -1
- package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -1
- package/dist/generated/themes/SelectBox.css.js +1 -1
- package/dist/generated/themes/SelectBox.css.js.map +1 -1
- package/dist/generated/themes/Slider.css.js +1 -1
- package/dist/generated/themes/Slider.css.js.map +1 -1
- package/dist/generated/themes/Tag.css.js +1 -1
- package/dist/generated/themes/Tag.css.js.map +1 -1
- package/dist/generated/themes/TagGroup.css.d.ts +3 -0
- package/dist/generated/themes/TagGroup.css.js +9 -0
- package/dist/generated/themes/TagGroup.css.js.map +1 -0
- package/dist/generated/themes/TextArea.css.js +1 -1
- package/dist/generated/themes/TextArea.css.js.map +1 -1
- package/dist/generated/themes/TextField.css.js +1 -1
- package/dist/generated/themes/TextField.css.js.map +1 -1
- package/dist/generated/themes/Toast.css.js +1 -1
- package/dist/generated/themes/Toast.css.js.map +1 -1
- package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js.map +1 -1
- package/dist/i18n/messagebundle.properties +7 -3
- package/dist/i18n/messagebundle_en.properties +5 -3
- package/dist/vscode.html-custom-data.json +156 -81
- package/dist/web-types.json +394 -144
- package/package.json +8 -8
- package/src/Accordion.ts +2 -2
- package/src/AccordionItem.ts +2 -2
- package/src/Avatar.ts +1 -1
- package/src/Breadcrumbs.ts +1 -1
- package/src/Carousel.ts +1 -1
- package/src/Checkbox.ts +1 -1
- package/src/CountrySelector.hbs +19 -15
- package/src/CountrySelector.ts +50 -13
- package/src/DatePicker.hbs +7 -8
- package/src/DatePicker.ts +15 -11
- package/src/Dropdown.hbs +3 -0
- package/src/Dropdown.ts +12 -4
- package/src/FilterMenu.hbs +58 -59
- package/src/FilterMenu.ts +101 -42
- package/src/Footer.hbs +9 -0
- package/src/Footer.ts +11 -2
- package/src/HeroBanner.hbs +4 -1
- package/src/InputGroup.ts +1 -1
- package/src/Link.ts +1 -1
- package/src/List.ts +44 -24
- package/src/ListGroupHeader.ts +2 -2
- package/src/ListItem.hbs +4 -2
- package/src/ListItem.ts +9 -11
- package/src/ListItemBase.ts +1 -1
- package/src/ListSelectAll.hbs +1 -1
- package/src/ListSelectAll.ts +2 -2
- package/src/MastheadItem.hbs +5 -3
- package/src/MastheadItem.ts +39 -17
- package/src/MastheadMenu.hbs +4 -2
- package/src/MastheadMenu.ts +30 -0
- package/src/MastheadMenuItem.hbs +0 -2
- package/src/MastheadMenuItem.ts +2 -16
- package/src/MastheadMobileMenu.hbs +36 -10
- package/src/MastheadMobileMenu.ts +163 -23
- package/src/MastheadProfileMenu.hbs +6 -2
- package/src/MastheadProfileMenu.ts +67 -21
- package/src/MastheadShell.hbs +33 -20
- package/src/MastheadShell.ts +101 -32
- package/src/MediaPlayer.hbs +1 -3
- package/src/MediaPlayer.ts +122 -26
- package/src/MessageStrip.ts +1 -3
- package/src/Pagination.ts +1 -1
- package/src/PasswordField.ts +1 -1
- package/src/PhoneNumberField.hbs +18 -3
- package/src/PhoneNumberField.ts +68 -3
- package/src/RatingBar.ts +1 -1
- package/src/Review.ts +1 -1
- package/src/ReviewItem.hbs +20 -0
- package/src/ReviewItem.ts +227 -0
- package/src/Search.ts +42 -5
- package/src/SearchableListBase.ts +15 -7
- package/src/SecondaryNavigation.hbs +11 -7
- package/src/SecondaryNavigation.ts +22 -13
- package/src/SecondaryNavigationItem.ts +30 -1
- package/src/SecondaryNavigationItemBase.ts +1 -1
- package/src/SecondaryNavigationSubItem.ts +1 -1
- package/src/SelectBox.hbs +9 -7
- package/src/SelectBox.ts +153 -72
- package/src/StatusBadge.ts +1 -1
- package/src/StepInput.ts +1 -1
- package/src/Switch.ts +21 -0
- package/src/Tab.ts +2 -2
- package/src/TabHeader.hbs +3 -1
- package/src/TabInOverflow.hbs +16 -4
- package/src/TabNavigation.hbs +15 -7
- package/src/TabNavigation.ts +2 -2
- package/src/Table.ts +1 -1
- package/src/Tag.hbs +28 -12
- package/src/Tag.ts +25 -4
- package/src/TagGroup.hbs +48 -0
- package/src/TagGroup.ts +222 -0
- package/src/TextArea.hbs +36 -33
- package/src/TextArea.ts +26 -1
- package/src/TextField.hbs +8 -6
- package/src/TextField.ts +51 -20
- package/src/Tooltip.ts +1 -1
- package/src/TruncatedText.ts +1 -1
- package/src/data/CountryListISO3166.ts +1 -1
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/templates/CountrySelectorTemplate.lit.ts +3 -3
- package/src/generated/templates/DatePickerTemplate.lit.ts +1 -1
- package/src/generated/templates/DropdownTemplate.lit.ts +2 -2
- package/src/generated/templates/FilterMenuTemplate.lit.ts +1 -1
- package/src/generated/templates/FooterTemplate.lit.ts +9 -9
- package/src/generated/templates/HeroBannerTemplate.lit.ts +7 -8
- package/src/generated/templates/ListItemTemplate.lit.ts +6 -6
- package/src/generated/templates/ListSelectAllTemplate.lit.ts +1 -1
- package/src/generated/templates/MastheadItemTemplate.lit.ts +3 -3
- package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +1 -1
- package/src/generated/templates/MastheadMenuTemplate.lit.ts +2 -2
- package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +16 -12
- package/src/generated/templates/MastheadProfileMenuTemplate.lit.ts +2 -2
- package/src/generated/templates/MastheadShellTemplate.lit.ts +13 -11
- package/src/generated/templates/MediaPlayerTemplate.lit.ts +2 -2
- package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +5 -2
- package/src/generated/templates/ReviewItemTemplate.lit.ts +13 -0
- package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +7 -6
- package/src/generated/templates/SelectBoxTemplate.lit.ts +2 -2
- package/src/generated/templates/TabHeaderTemplate.lit.ts +2 -2
- package/src/generated/templates/TabInOverflowTemplate.lit.ts +6 -6
- package/src/generated/templates/TabNavigationTemplate.lit.ts +3 -1
- package/src/generated/templates/TagGroupTemplate.lit.ts +13 -0
- package/src/generated/templates/TagTemplate.lit.ts +11 -7
- package/src/generated/templates/TextAreaTemplate.lit.ts +1 -1
- package/src/generated/templates/TextFieldTemplate.lit.ts +1 -1
- package/src/generated/themes/Button.css.ts +1 -1
- package/src/generated/themes/CountrySelector.css.ts +1 -1
- package/src/generated/themes/Dropdown.css.ts +1 -1
- package/src/generated/themes/FilterMenu.css.ts +1 -1
- package/src/generated/themes/ListItem.css.ts +1 -1
- package/src/generated/themes/MastheadItem.css.ts +1 -1
- package/src/generated/themes/MastheadMobileMenu.css.ts +1 -1
- package/src/generated/themes/MastheadShell.css.ts +1 -1
- package/src/generated/themes/PhoneNumberField.css.ts +1 -1
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/ReviewItem.css.ts +13 -0
- package/src/generated/themes/Search.css.ts +1 -1
- package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
- package/src/generated/themes/SecondaryNavigationItem.css.ts +1 -1
- package/src/generated/themes/SecondaryNavigationSubItem.css.ts +1 -1
- package/src/generated/themes/SelectBox.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/generated/themes/Tag.css.ts +1 -1
- package/src/generated/themes/TagGroup.css.ts +13 -0
- package/src/generated/themes/TextArea.css.ts +1 -1
- package/src/generated/themes/TextField.css.ts +1 -1
- package/src/generated/themes/Toast.css.ts +1 -1
- package/src/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +1 -1
- package/src/i18n/messagebundle.properties +7 -3
- package/src/i18n/messagebundle_en.properties +5 -3
- package/src/themes/Button.css +10 -0
- package/src/themes/CountrySelector.css +60 -35
- package/src/themes/Dropdown.css +10 -0
- package/src/themes/FilterMenu.css +65 -15
- package/src/themes/ListItem.css +4 -0
- package/src/themes/MastheadItem.css +18 -4
- package/src/themes/MastheadMobileMenu.css +4 -0
- package/src/themes/MastheadShell.css +88 -9
- package/src/themes/PhoneNumberField.css +36 -21
- package/src/themes/ReviewItem.css +121 -0
- package/src/themes/Search.css +13 -0
- package/src/themes/SecondaryNavigation.css +13 -14
- package/src/themes/SecondaryNavigationItem.css +11 -3
- package/src/themes/SecondaryNavigationSubItem.css +5 -5
- package/src/themes/SelectBox.css +42 -0
- package/src/themes/Tag.css +20 -0
- package/src/themes/TagGroup.css +90 -0
- package/src/themes/TextArea.css +13 -0
- package/src/themes/TextField.css +25 -8
- package/src/themes/Toast.css +4 -0
- package/dist/assets/messagebundle_en-6dcc9ab4.js +0 -1
- package/dist/assets/parameters-bundle.css-de55cf62.js +0 -2
- package/dist/assets/video.es-17aecf95.js +0 -219
package/src/Tag.ts
CHANGED
|
@@ -40,7 +40,7 @@ export enum TagSize {
|
|
|
40
40
|
* For the <code>udex-tag</code>
|
|
41
41
|
* <h3>ES6 Module Import</h3>
|
|
42
42
|
*
|
|
43
|
-
* <code>import @udex/web-components/dist/Tag.js";</code>
|
|
43
|
+
* <code>import "@udex/web-components/dist/Tag.js";</code>
|
|
44
44
|
*
|
|
45
45
|
* @constructor
|
|
46
46
|
* @author SAP SE
|
|
@@ -71,6 +71,12 @@ export enum TagSize {
|
|
|
71
71
|
* @public
|
|
72
72
|
*/
|
|
73
73
|
@event("iconClick")
|
|
74
|
+
/**
|
|
75
|
+
* Emitted when tag link was clicked
|
|
76
|
+
*
|
|
77
|
+
* @public
|
|
78
|
+
*/
|
|
79
|
+
@event("tagLinkClick")
|
|
74
80
|
class UDExTag extends UI5Element {
|
|
75
81
|
/**
|
|
76
82
|
* Defines the text of the tag
|
|
@@ -80,7 +86,14 @@ class UDExTag extends UI5Element {
|
|
|
80
86
|
*/
|
|
81
87
|
@property()
|
|
82
88
|
text!: string;
|
|
83
|
-
|
|
89
|
+
/**
|
|
90
|
+
* Defines the href for behavior of the tag as a link
|
|
91
|
+
*
|
|
92
|
+
* @default ""
|
|
93
|
+
* @public
|
|
94
|
+
*/
|
|
95
|
+
@property()
|
|
96
|
+
href!: string;
|
|
84
97
|
/**
|
|
85
98
|
* Defines the design type of tag
|
|
86
99
|
*
|
|
@@ -199,6 +212,9 @@ class UDExTag extends UI5Element {
|
|
|
199
212
|
if (isDesktop()) {
|
|
200
213
|
this.setAttribute("desktop", "");
|
|
201
214
|
}
|
|
215
|
+
if (this.accessibleRole !== "button") {
|
|
216
|
+
this.shadowRoot?.firstElementChild?.removeAttribute("aria-pressed");
|
|
217
|
+
}
|
|
202
218
|
}
|
|
203
219
|
|
|
204
220
|
setSelected(): void {
|
|
@@ -234,10 +250,11 @@ class UDExTag extends UI5Element {
|
|
|
234
250
|
get tagClasses(): string {
|
|
235
251
|
const hasIconClass = this.hasIcon ? "udex-tag--has-icon" : "";
|
|
236
252
|
const readOnlyClass = this.readOnly ? "udex-tag--readonly" : "";
|
|
237
|
-
const nonSelectableClass = this.nonSelectable ? "udex-tag--nonselectable" : "";
|
|
253
|
+
const nonSelectableClass = this.nonSelectable && !this.href ? "udex-tag--nonselectable" : "";
|
|
254
|
+
const linkTagClass = this.href ? "udex-tag--link" : "";
|
|
238
255
|
const selectableClass = this.selected ? "udex-tag--selected" : "";
|
|
239
256
|
const designClass = `udex-tag-${this.design?.toLowerCase()}`;
|
|
240
|
-
return `udex-tag udex-tag--${this.size.toLocaleLowerCase()} ${designClass} ${hasIconClass} ${readOnlyClass} ${nonSelectableClass} ${selectableClass}`.trim();
|
|
257
|
+
return `udex-tag udex-tag--${this.size.toLocaleLowerCase()} ${designClass} ${hasIconClass} ${readOnlyClass} ${nonSelectableClass} ${linkTagClass} ${selectableClass}`.trim();
|
|
241
258
|
}
|
|
242
259
|
|
|
243
260
|
get startIcon(): boolean {
|
|
@@ -278,6 +295,10 @@ class UDExTag extends UI5Element {
|
|
|
278
295
|
get iconAccessibleName(): string {
|
|
279
296
|
return this.accessibleName || this.text;
|
|
280
297
|
}
|
|
298
|
+
|
|
299
|
+
tagLinkClickHandler(e: Event): void {
|
|
300
|
+
this.fireEvent("tagLinkClick", { originalEvent: e }, true);
|
|
301
|
+
}
|
|
281
302
|
}
|
|
282
303
|
|
|
283
304
|
UDExTag.define();
|
package/src/TagGroup.hbs
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<div id="{{_id}}-tag-group" @ui5-selectionChange="{{tagClickHandler}}" role="group">
|
|
2
|
+
<ui5-tokenizer
|
|
3
|
+
part="tokenizer"
|
|
4
|
+
show-more
|
|
5
|
+
prevent-popover-open
|
|
6
|
+
?disabled="{{disabled}}"
|
|
7
|
+
id="{{_id}}-tag-group-tokenizer"
|
|
8
|
+
class="udex-tag-group__tokenizer"
|
|
9
|
+
@ui5-show-more-items-press="{{showMoreItems}}"
|
|
10
|
+
?expanded="{{tokenizerExpanded}}">
|
|
11
|
+
{{#each items}}
|
|
12
|
+
{{>TAG}}
|
|
13
|
+
{{/each}}
|
|
14
|
+
</ui5-tokenizer>
|
|
15
|
+
{{#if _isHiddenTags}}
|
|
16
|
+
<udex-tooltip @keydown="{{handleShowMoreButtonKeydown}}" id="{{_id}}-tag-group-tooltip" placement="{{tooltipPlacement}}">
|
|
17
|
+
<div role="group" class="udex-tag-group-tooltip__content">
|
|
18
|
+
{{#each hiddenTags}}
|
|
19
|
+
{{>TAG}}
|
|
20
|
+
{{/each}}
|
|
21
|
+
</div>
|
|
22
|
+
</udex-tooltip>
|
|
23
|
+
{{/if}}
|
|
24
|
+
</div>
|
|
25
|
+
|
|
26
|
+
{{#*inline "TAG"}}
|
|
27
|
+
<udex-tag
|
|
28
|
+
role="{{../tagRole}}"
|
|
29
|
+
accessible-role="option"
|
|
30
|
+
class="udex-tag-group__tag"
|
|
31
|
+
data-id="{{this.id}}"
|
|
32
|
+
part="token-{{@index}}"
|
|
33
|
+
?read-only="{{../isReadOrDisplayOnly}}"
|
|
34
|
+
tabindex="{{../tagTabIndex}}"
|
|
35
|
+
id="{{_id}}-tag-group-tag"
|
|
36
|
+
text="{{this.text}}"
|
|
37
|
+
icon="{{this.icon}}"
|
|
38
|
+
href="{{this.href}}"
|
|
39
|
+
design="{{this.design}}"
|
|
40
|
+
size="{{this.size}}"
|
|
41
|
+
icon-placement="{{this.iconPlacement}}"
|
|
42
|
+
accessible-name="{{this.accessibleName}}"
|
|
43
|
+
?non-selectable="{{this.nonSelectable}}"
|
|
44
|
+
?data-overflows="{{this.overflows}}"
|
|
45
|
+
@keydown="{{../handleTagKeyDown}}"
|
|
46
|
+
@iconClick="{{../tagIconClickHandler}}">
|
|
47
|
+
></udex-tag>
|
|
48
|
+
{{/inline}}
|
package/src/TagGroup.ts
ADDED
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
+
import Tokenizer from "@ui5/webcomponents/dist/Tokenizer.js";
|
|
3
|
+
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
4
|
+
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
5
|
+
import { isEnter, isSpace, isEscape } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
6
|
+
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
7
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
8
|
+
import event from "@ui5/webcomponents-base/dist/decorators/event.js";
|
|
9
|
+
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
10
|
+
import Token from "@ui5/webcomponents/dist/Token.js";
|
|
11
|
+
import UDExTag from "./Tag.js";
|
|
12
|
+
import UDExTooltip from "./Tooltip.js";
|
|
13
|
+
|
|
14
|
+
import TagGroupTemplate from "./generated/templates/TagGroupTemplate.lit.js";
|
|
15
|
+
|
|
16
|
+
// Styles
|
|
17
|
+
import TagGroupCss from "./generated/themes/TagGroup.css";
|
|
18
|
+
|
|
19
|
+
export enum PlacementType {
|
|
20
|
+
Left = "Left",
|
|
21
|
+
Right = "Right",
|
|
22
|
+
Top = "Top",
|
|
23
|
+
Bottom = "Bottom",
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @class
|
|
28
|
+
*
|
|
29
|
+
* <h3 class="comment-api-title">Overview</h3>
|
|
30
|
+
*
|
|
31
|
+
*
|
|
32
|
+
* <h3>Usage</h3>
|
|
33
|
+
*
|
|
34
|
+
* For the <code>udex-tag-group</code>
|
|
35
|
+
* <h3>ES6 Module Import</h3>
|
|
36
|
+
*
|
|
37
|
+
* <code>import "@udex/web-components/dist/TagGroup.js";</code>
|
|
38
|
+
*
|
|
39
|
+
* @constructor
|
|
40
|
+
* @extends UI5Element
|
|
41
|
+
* @public
|
|
42
|
+
*/
|
|
43
|
+
@customElement({
|
|
44
|
+
tag: "udex-tag-group",
|
|
45
|
+
renderer: litRender,
|
|
46
|
+
styles: TagGroupCss,
|
|
47
|
+
template: TagGroupTemplate,
|
|
48
|
+
dependencies: [UDExTag, UDExTooltip, Tokenizer, Token],
|
|
49
|
+
})
|
|
50
|
+
/**
|
|
51
|
+
* Emitted when tag was clicked
|
|
52
|
+
*
|
|
53
|
+
* @public
|
|
54
|
+
*/
|
|
55
|
+
@event("tag-click")
|
|
56
|
+
/**
|
|
57
|
+
* Emitted when icon in tag was clicked
|
|
58
|
+
*
|
|
59
|
+
* @public
|
|
60
|
+
*/
|
|
61
|
+
@event("tag-icon-click")
|
|
62
|
+
/**
|
|
63
|
+
* Emitted when the tooltip was opened, can be canceled
|
|
64
|
+
*
|
|
65
|
+
* @public
|
|
66
|
+
*/
|
|
67
|
+
@event("show-more-tags")
|
|
68
|
+
/**
|
|
69
|
+
* Emitted when a keydown event occurs on a tag, can be canceled
|
|
70
|
+
* Emitted custom event with keycode and tag details
|
|
71
|
+
*
|
|
72
|
+
* @public
|
|
73
|
+
*/
|
|
74
|
+
@event("tag-keydown")
|
|
75
|
+
class UDExTagGroup extends UI5Element {
|
|
76
|
+
/**
|
|
77
|
+
* Defines whether the UI5Tokenizer is expanded.
|
|
78
|
+
*
|
|
79
|
+
* @default false
|
|
80
|
+
* @public
|
|
81
|
+
*/
|
|
82
|
+
@property({ type: Boolean })
|
|
83
|
+
tokenizerExpanded!: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Defines whether the component is in disabled state.
|
|
86
|
+
*
|
|
87
|
+
* @default false
|
|
88
|
+
* @public
|
|
89
|
+
*/
|
|
90
|
+
@property({ type: Boolean })
|
|
91
|
+
disabled!: boolean;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Defines whether the component is readonly.
|
|
95
|
+
*
|
|
96
|
+
* @default false
|
|
97
|
+
* @public
|
|
98
|
+
*/
|
|
99
|
+
@property({ type: Boolean })
|
|
100
|
+
readonly!: boolean;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Defines whether the component is displayonly.
|
|
104
|
+
*
|
|
105
|
+
* @default false
|
|
106
|
+
* @public
|
|
107
|
+
*/
|
|
108
|
+
@property({ type: Boolean })
|
|
109
|
+
displayonly!: boolean;
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Defines the tags.
|
|
113
|
+
*
|
|
114
|
+
* @public
|
|
115
|
+
*/
|
|
116
|
+
@slot({ type: HTMLElement, "default": true })
|
|
117
|
+
items!: Array<UDExTag>;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Determines on which side of the component the Tooltip is displayed.
|
|
121
|
+
*
|
|
122
|
+
* @default "Bottom"
|
|
123
|
+
* @public
|
|
124
|
+
*/
|
|
125
|
+
@property({ type: PlacementType, defaultValue: PlacementType.Bottom })
|
|
126
|
+
tooltipPlacement!: `${PlacementType}`;
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* @private
|
|
130
|
+
*/
|
|
131
|
+
@property({ type: Boolean })
|
|
132
|
+
_isHiddenTags!: boolean;
|
|
133
|
+
|
|
134
|
+
_tokenizer!: Tokenizer;
|
|
135
|
+
_nMoreBtn!: HTMLElement | null;
|
|
136
|
+
_resizeHandler: () => void;
|
|
137
|
+
|
|
138
|
+
constructor() {
|
|
139
|
+
super();
|
|
140
|
+
this._resizeHandler = this._onResize.bind(this);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
get hiddenTags(): Token[] {
|
|
144
|
+
return this._tokenizer?.overflownTokens || [];
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
get isReadOrDisplayOnly(): boolean {
|
|
148
|
+
return this.readonly || this.displayonly;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
get tagTabIndex(): string {
|
|
152
|
+
return this.disabled ? "-1" : "";
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
get tokenizer(): Tokenizer {
|
|
156
|
+
return this.shadowRoot!.querySelector<Tokenizer>(`#${this._id}-tag-group-tokenizer`)!;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
get tagRole(): string {
|
|
160
|
+
return this.displayonly || this.readonly ? "option" : "";
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
onAfterRendering(): void {
|
|
164
|
+
this._tokenizer = this.tokenizer;
|
|
165
|
+
this._nMoreBtn = this._tokenizer.shadowRoot?.querySelector(`.ui5-tokenizer-more-text`) || null;
|
|
166
|
+
if (!this.readonly && !this.disabled && this._nMoreBtn && !this._nMoreBtn.hasAttribute("tabindex")) {
|
|
167
|
+
this._nMoreBtn.setAttribute("tabindex", "0");
|
|
168
|
+
this._nMoreBtn.addEventListener("keydown", this._nMoreKeyDownHandler.bind(this));
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
_nMoreKeyDownHandler(e: Event) {
|
|
173
|
+
if (isSpace(e as KeyboardEvent) || isEnter(e as KeyboardEvent)) {
|
|
174
|
+
this.showMoreItems();
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
onEnterDOM(): void {
|
|
179
|
+
ResizeHandler.register(this, this._resizeHandler);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
onExitDOM(): void {
|
|
183
|
+
ResizeHandler.deregister(this, this._resizeHandler);
|
|
184
|
+
this._nMoreBtn?.removeEventListener("keydown", this._nMoreKeyDownHandler.bind(this));
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
_onResize(): void {
|
|
188
|
+
this._isHiddenTags = false;
|
|
189
|
+
this._isHiddenTags = this._tokenizer?._nMoreCount > 0;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
tagClickHandler(e: CustomEvent): void {
|
|
193
|
+
this.fireEvent("tag-click", { tag: e.target as HTMLElement });
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
tagIconClickHandler(e: CustomEvent): void {
|
|
197
|
+
this.fireEvent("tag-icon-click", { tag: e.target as HTMLElement });
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
handleShowMoreButtonKeydown(e: KeyboardEvent): void {
|
|
201
|
+
if (isEscape(e)) {
|
|
202
|
+
this._nMoreBtn?.focus();
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
handleTagKeyDown(e: KeyboardEvent): void {
|
|
207
|
+
this.fireEvent("tag-keydown", { originalEvent: e }, true);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
showMoreItems(): void {
|
|
211
|
+
if (this.fireEvent("show-more-tags", {}, true)) {
|
|
212
|
+
const tooltip = this.shadowRoot!.querySelector<UDExTooltip>(`#${this._id}-tag-group-tooltip`)!;
|
|
213
|
+
if (this._nMoreBtn) {
|
|
214
|
+
tooltip?.onOpen(this._nMoreBtn);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
UDExTagGroup.define();
|
|
221
|
+
|
|
222
|
+
export default UDExTagGroup;
|
package/src/TextArea.hbs
CHANGED
|
@@ -1,38 +1,41 @@
|
|
|
1
1
|
<div class="udex-textarea">
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
2
|
+
<div class="udex-textarea__wrapper">
|
|
3
|
+
{{#if label}}
|
|
4
|
+
<label
|
|
5
|
+
class="{{labelClasses}}"
|
|
6
|
+
for="textarea"
|
|
7
|
+
part="label"
|
|
8
|
+
>
|
|
9
|
+
{{label}}
|
|
10
|
+
{{#if required}}
|
|
11
|
+
*
|
|
12
|
+
{{/if}}
|
|
13
|
+
</label>
|
|
11
14
|
{{/if}}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
</
|
|
15
|
+
<textarea
|
|
16
|
+
id="textarea"
|
|
17
|
+
class="udex-textarea__field"
|
|
18
|
+
part="textarea"
|
|
19
|
+
.value="{{value}}"
|
|
20
|
+
maxlength="{{maxlength}}"
|
|
21
|
+
rows="{{rows}}"
|
|
22
|
+
?disabled="{{disabled}}"
|
|
23
|
+
?readonly="{{isInputReadonly}}"
|
|
24
|
+
?required="{{required}}"
|
|
25
|
+
?aria-label="{{accessibleName}}"
|
|
26
|
+
?aria-describedby="{{ariaDescribedBy}}"
|
|
27
|
+
?aria-labelledby="{{accessibleNameRef}}"
|
|
28
|
+
aria-required="{{required}}"
|
|
29
|
+
aria-readonly="{{isInputReadonly}}"
|
|
30
|
+
aria-invalid="{{ariaInvalid}}"
|
|
31
|
+
@input="{{handleInput}}"
|
|
32
|
+
@focus="{{handleFocus}}"
|
|
33
|
+
@click="{{handleClick}}"
|
|
34
|
+
@blur="{{handleBlur}}"
|
|
35
|
+
@change="{{handleChange}}"
|
|
36
|
+
>
|
|
37
|
+
</textarea>
|
|
38
|
+
</div>
|
|
36
39
|
{{#if _supportingText}}
|
|
37
40
|
<udex-status-message
|
|
38
41
|
supporting-text-alignment="Right"
|
package/src/TextArea.ts
CHANGED
|
@@ -6,6 +6,7 @@ import getEffectiveScrollbarStyle from "@ui5/webcomponents-base/dist/util/getEff
|
|
|
6
6
|
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
|
|
7
7
|
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
8
8
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
9
|
+
import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
|
|
9
10
|
import {
|
|
10
11
|
READ_ONLY, TEXTAREA_CHARACTERS_LEFT, VALUE_STATE_TYPE_ERROR, VALUE_STATE_TYPE_STANDARD, VALUE_STATE_TYPE_SUCCESS, VALUE_STATE_TYPE_WARNING,
|
|
11
12
|
} from "./generated/i18n/i18n-defaults.js";
|
|
@@ -214,10 +215,25 @@ class UDExTextArea extends UI5Element {
|
|
|
214
215
|
@property({ defaultValue: "" })
|
|
215
216
|
accessibleNameRef!: string;
|
|
216
217
|
|
|
218
|
+
/**
|
|
219
|
+
* Defines the active (focus)
|
|
220
|
+
* @default false
|
|
221
|
+
* @private
|
|
222
|
+
*/
|
|
223
|
+
@property({ type: Boolean })
|
|
224
|
+
active!: boolean;
|
|
225
|
+
/**
|
|
226
|
+
* Defines is it the touch of the textarea (only for mobile devices).
|
|
227
|
+
* @default false
|
|
228
|
+
* @private
|
|
229
|
+
*/
|
|
230
|
+
@property({ type: Boolean })
|
|
231
|
+
_isTouched!: boolean;
|
|
232
|
+
|
|
217
233
|
static i18nBundle: I18nBundle;
|
|
218
234
|
|
|
219
235
|
static async onDefine() {
|
|
220
|
-
UDExTextArea.i18nBundle = await getI18nBundle("
|
|
236
|
+
UDExTextArea.i18nBundle = await getI18nBundle("@udex/web-components");
|
|
221
237
|
}
|
|
222
238
|
|
|
223
239
|
getInputDomRef() {
|
|
@@ -317,16 +333,25 @@ class UDExTextArea extends UI5Element {
|
|
|
317
333
|
|
|
318
334
|
handleFocus = () => {
|
|
319
335
|
if (!this.disabled && !this.readonly && !this.displayonly) {
|
|
336
|
+
this.active = true;
|
|
320
337
|
this.labelActiveClass = this._labelActiveClassName;
|
|
321
338
|
}
|
|
322
339
|
};
|
|
323
340
|
|
|
341
|
+
handleClick(): void {
|
|
342
|
+
if (!isDesktop()) {
|
|
343
|
+
this._isTouched = true;
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
|
|
324
347
|
handleBlur = () => {
|
|
348
|
+
this._isTouched = false;
|
|
325
349
|
if (this.value) {
|
|
326
350
|
this.labelActiveClass = this._labelActiveClassName;
|
|
327
351
|
} else {
|
|
328
352
|
this.labelActiveClass = "";
|
|
329
353
|
}
|
|
354
|
+
this.active = false;
|
|
330
355
|
};
|
|
331
356
|
|
|
332
357
|
get ariaInvalid() {
|
package/src/TextField.hbs
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
@input="{{handleInput}}"
|
|
17
17
|
@focus="{{handleFocus}}"
|
|
18
18
|
@blur="{{handleBlur}}"
|
|
19
|
+
@click="{{handleClick}}"
|
|
19
20
|
@keydown="{{handleKeyDown}}"
|
|
20
21
|
maxlength="{{maxlength}}"
|
|
21
22
|
?disabled="{{disabled}}"
|
|
@@ -25,9 +26,10 @@
|
|
|
25
26
|
aria-readonly="{{isInputReadonly}}"
|
|
26
27
|
?aria-disabled="{{readonlyNotDisabled}}"
|
|
27
28
|
aria-invalid="{{accInfo.ariaInvalid}}"
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
aria-describedby="{{accInfo.ariaDescribedBy}}"
|
|
30
|
+
aria-haspopup="{{accInfo.ariaHasPopup}}"
|
|
31
|
+
aria-label="{{accInfo.ariaLabel}}"
|
|
32
|
+
aria-labelledby="{{accInfo.ariaLabelledBy}}"
|
|
31
33
|
part="textfield-input"
|
|
32
34
|
min="{{min}}"
|
|
33
35
|
max="{{max}}"
|
|
@@ -52,9 +54,9 @@
|
|
|
52
54
|
|
|
53
55
|
{{#if supportingText}}
|
|
54
56
|
<udex-status-message
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
57
|
+
?disabled="{{disabled}}"
|
|
58
|
+
supporting-text="{{supportingText}}"
|
|
59
|
+
value-state="{{valueState}}">
|
|
58
60
|
</udex-status-message>
|
|
59
61
|
{{/if}}
|
|
60
62
|
|
package/src/TextField.ts
CHANGED
|
@@ -8,6 +8,7 @@ import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
|
8
8
|
import Float from "@ui5/webcomponents-base/dist/types/Float.js";
|
|
9
9
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
10
10
|
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
11
|
+
import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
|
|
11
12
|
import {
|
|
12
13
|
VALUE_STATE_SUCCESS,
|
|
13
14
|
VALUE_STATE_INFORMATION,
|
|
@@ -17,13 +18,21 @@ import {
|
|
|
17
18
|
} from "./generated/i18n/i18n-defaults.js";
|
|
18
19
|
import UDExControlButton from "./ControlButton.js";
|
|
19
20
|
import ValueState from "./types/common.js";
|
|
21
|
+
import UDExStatusMessage from "./StatusMessage.js";
|
|
20
22
|
|
|
21
23
|
// Template
|
|
22
24
|
import TextFieldTemplate from "./generated/templates/TextFieldTemplate.lit";
|
|
23
25
|
|
|
24
26
|
// Styles
|
|
25
27
|
import TextFieldCss from "./generated/themes/TextField.css.js";
|
|
26
|
-
|
|
28
|
+
|
|
29
|
+
type AccInfo = {
|
|
30
|
+
ariaInvalid?: string;
|
|
31
|
+
ariaDescribedBy?: string;
|
|
32
|
+
ariaLabelledBy?: string;
|
|
33
|
+
ariaLabel?: string;
|
|
34
|
+
ariaHasPopup?: string,
|
|
35
|
+
}
|
|
27
36
|
|
|
28
37
|
/**
|
|
29
38
|
* @class
|
|
@@ -176,8 +185,8 @@ class UDExTextField extends UI5Element {
|
|
|
176
185
|
* @default "Standard"
|
|
177
186
|
* @public
|
|
178
187
|
*/
|
|
179
|
-
@property({ type: ValueState, defaultValue:
|
|
180
|
-
valueState!:
|
|
188
|
+
@property({ type: ValueState, defaultValue: ValueState.Standard })
|
|
189
|
+
valueState!: `${ValueState}`;
|
|
181
190
|
|
|
182
191
|
/**
|
|
183
192
|
* Defines supporting text under the input field.
|
|
@@ -287,13 +296,28 @@ class UDExTextField extends UI5Element {
|
|
|
287
296
|
@property()
|
|
288
297
|
ariaDescribedBy?: string;
|
|
289
298
|
|
|
299
|
+
/**
|
|
300
|
+
* Defines the aria-has-popup attribute of the input.
|
|
301
|
+
* @private
|
|
302
|
+
*/
|
|
303
|
+
@property({ type: String })
|
|
304
|
+
_ariaHasPopup?: string;
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* Defines is it the touch of the input field (only for mobile devices).
|
|
308
|
+
* @default false
|
|
309
|
+
* @private
|
|
310
|
+
*/
|
|
311
|
+
@property({ type: Boolean })
|
|
312
|
+
_isTouched!: boolean;
|
|
313
|
+
|
|
290
314
|
static i18nBundle: I18nBundle;
|
|
291
315
|
|
|
292
|
-
static async onDefine() {
|
|
293
|
-
UDExTextField.i18nBundle = await getI18nBundle("
|
|
316
|
+
static async onDefine(): Promise<void> {
|
|
317
|
+
UDExTextField.i18nBundle = await getI18nBundle("@udex/web-components");
|
|
294
318
|
}
|
|
295
319
|
|
|
296
|
-
get valueStateTypeMappings() {
|
|
320
|
+
get valueStateTypeMappings(): Record<string, string> {
|
|
297
321
|
return {
|
|
298
322
|
"Success": UDExTextField.i18nBundle.getText(VALUE_STATE_SUCCESS),
|
|
299
323
|
"Standard": UDExTextField.i18nBundle.getText(VALUE_STATE_INFORMATION),
|
|
@@ -302,15 +326,15 @@ class UDExTextField extends UI5Element {
|
|
|
302
326
|
};
|
|
303
327
|
}
|
|
304
328
|
|
|
305
|
-
get hasValueState() {
|
|
329
|
+
get hasValueState(): boolean {
|
|
306
330
|
return this.valueState !== ValueState.Standard;
|
|
307
331
|
}
|
|
308
332
|
|
|
309
|
-
get valueStateText() {
|
|
333
|
+
get valueStateText(): string | undefined {
|
|
310
334
|
return this.valueState !== ValueState.Standard ? this.valueStateTypeMappings[this.valueState] : undefined;
|
|
311
335
|
}
|
|
312
336
|
|
|
313
|
-
get readOnlyStateText() {
|
|
337
|
+
get readOnlyStateText(): string {
|
|
314
338
|
return UDExTextField.i18nBundle.getText(READ_ONLY);
|
|
315
339
|
}
|
|
316
340
|
|
|
@@ -318,44 +342,50 @@ class UDExTextField extends UI5Element {
|
|
|
318
342
|
return `${this.supportingTextId} ${this.valueStateTextId} ${this.readOnlyStateTextId}`.trim();
|
|
319
343
|
}
|
|
320
344
|
|
|
321
|
-
get supportingTextId():string {
|
|
345
|
+
get supportingTextId(): string {
|
|
322
346
|
return this.supportingText ? `${this._id}-supportingTextDesc` : "";
|
|
323
347
|
}
|
|
324
348
|
|
|
325
|
-
get valueStateTextId():string {
|
|
349
|
+
get valueStateTextId(): string {
|
|
326
350
|
return this.hasValueState ? `${this._id}-valueStateDesc` : "";
|
|
327
351
|
}
|
|
328
352
|
|
|
329
|
-
get readOnlyStateTextId():string {
|
|
353
|
+
get readOnlyStateTextId(): string {
|
|
330
354
|
return this.readonly ? `${this._id}-stateReadOnlyDesc` : "";
|
|
331
355
|
}
|
|
332
356
|
|
|
333
|
-
get accInfo() {
|
|
357
|
+
get accInfo(): AccInfo {
|
|
334
358
|
return {
|
|
335
359
|
"ariaInvalid": this.valueState === ValueState.Error ? "true" : undefined,
|
|
336
360
|
"ariaDescribedBy": this.ariaDescribedBy ? this.ariaDescribedBy : this.ariaDescribedById || undefined,
|
|
337
361
|
"ariaLabelledBy": this.accessibleNameRef,
|
|
338
362
|
"ariaLabel": this.accessibleName || undefined,
|
|
363
|
+
"ariaHasPopup": this._ariaHasPopup || undefined,
|
|
339
364
|
};
|
|
340
365
|
}
|
|
341
366
|
|
|
342
|
-
handleChange = () => {
|
|
367
|
+
handleChange = (): void => {
|
|
343
368
|
this.fireEvent("change");
|
|
344
369
|
};
|
|
345
370
|
|
|
346
371
|
handleInput = (inputEvent: InputEvent) => {
|
|
347
372
|
this.value = (inputEvent.target as HTMLInputElement)?.value;
|
|
348
|
-
this.fireEvent("input");
|
|
349
373
|
};
|
|
350
374
|
|
|
351
|
-
|
|
375
|
+
handleClick = (): void => {
|
|
376
|
+
if (!isDesktop()) {
|
|
377
|
+
this._isTouched = true;
|
|
378
|
+
}
|
|
379
|
+
};
|
|
380
|
+
|
|
381
|
+
handleFocus = (): void => {
|
|
352
382
|
if (!this.disabled && !this.readonly && !this.displayonly) {
|
|
353
383
|
this.labelActiveClass = this._labelActiveClassName;
|
|
354
384
|
this.active = true;
|
|
355
385
|
}
|
|
356
386
|
};
|
|
357
387
|
|
|
358
|
-
handleBlur = () => {
|
|
388
|
+
handleBlur = (): void => {
|
|
359
389
|
this.active = false;
|
|
360
390
|
|
|
361
391
|
if (this.value) {
|
|
@@ -363,9 +393,10 @@ class UDExTextField extends UI5Element {
|
|
|
363
393
|
} else {
|
|
364
394
|
this.labelActiveClass = "";
|
|
365
395
|
}
|
|
396
|
+
this._isTouched = false;
|
|
366
397
|
};
|
|
367
398
|
|
|
368
|
-
handleKeyDown = (keyboardEvent: KeyboardEvent) => {
|
|
399
|
+
handleKeyDown = (keyboardEvent: KeyboardEvent): void => {
|
|
369
400
|
keyboardEvent.stopPropagation();
|
|
370
401
|
this.fireEvent("click-trigger", keyboardEvent);
|
|
371
402
|
};
|
|
@@ -374,7 +405,7 @@ class UDExTextField extends UI5Element {
|
|
|
374
405
|
this.fireEvent("click-icon");
|
|
375
406
|
}
|
|
376
407
|
|
|
377
|
-
onBeforeRendering() {
|
|
408
|
+
onBeforeRendering(): void {
|
|
378
409
|
if ((this.value || this.active) && this.labelActiveClass === "") {
|
|
379
410
|
this.labelActiveClass = this._labelActiveClassName;
|
|
380
411
|
} else if (!this.active && !this.value && this.labelActiveClass.length) {
|
|
@@ -398,7 +429,7 @@ class UDExTextField extends UI5Element {
|
|
|
398
429
|
}
|
|
399
430
|
}
|
|
400
431
|
|
|
401
|
-
get readonlyNotDisabled() {
|
|
432
|
+
get readonlyNotDisabled(): boolean {
|
|
402
433
|
return this.isInputReadonly && !this.disabled;
|
|
403
434
|
}
|
|
404
435
|
}
|