@sapudex/web-components 0.117.1 → 0.127.6
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 +3 -0
- package/config/wdio.conf.js +19 -8
- package/dist/AccordionItem.d.ts +2 -1
- package/dist/AccordionItem.js +3 -3
- package/dist/AccordionItem.js.map +1 -1
- package/dist/Avatar.d.ts +12 -0
- package/dist/Avatar.js +22 -1
- package/dist/Avatar.js.map +1 -1
- package/dist/AvatarGroup.d.ts +28 -0
- package/dist/AvatarGroup.js +126 -0
- package/dist/AvatarGroup.js.map +1 -0
- package/dist/Dropdown.d.ts +11 -1
- package/dist/Dropdown.js +15 -3
- package/dist/Dropdown.js.map +1 -1
- package/dist/FilterMenu.d.ts +7 -1
- package/dist/FilterMenu.js +4 -1
- package/dist/FilterMenu.js.map +1 -1
- package/dist/Footer.d.ts +27 -0
- package/dist/Footer.js +27 -36
- package/dist/Footer.js.map +1 -1
- package/dist/HeroBanner.js +3 -0
- package/dist/HeroBanner.js.map +1 -1
- package/dist/MastheadItem.d.ts +1 -0
- package/dist/MastheadItem.js +5 -11
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadShell.d.ts +8 -0
- package/dist/MastheadShell.js +10 -0
- package/dist/MastheadShell.js.map +1 -1
- package/dist/MessageStrip.js +1 -1
- package/dist/MessageStrip.js.map +1 -1
- package/dist/Pagination.d.ts +3 -0
- package/dist/Pagination.js +16 -4
- package/dist/Pagination.js.map +1 -1
- package/dist/PasswordField.d.ts +14 -4
- package/dist/PasswordField.js +24 -15
- package/dist/PasswordField.js.map +1 -1
- package/dist/PhoneNumberField.d.ts +6 -0
- package/dist/PhoneNumberField.js +6 -1
- package/dist/PhoneNumberField.js.map +1 -1
- package/dist/RatingBar.d.ts +53 -0
- package/dist/RatingBar.js +96 -0
- package/dist/RatingBar.js.map +1 -0
- package/dist/Review.d.ts +71 -0
- package/dist/Review.js +108 -0
- package/dist/Review.js.map +1 -0
- package/dist/Search.d.ts +49 -1
- package/dist/Search.js +32 -3
- package/dist/Search.js.map +1 -1
- package/dist/SearchableListBase.d.ts +1 -1
- package/dist/SearchableListBase.js +1 -1
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SecondaryNavigation.d.ts +8 -8
- package/dist/SecondaryNavigation.js +51 -39
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.d.ts +1 -1
- package/dist/SecondaryNavigationItem.js +15 -5
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SecondaryNavigationItemBase.d.ts +16 -2
- package/dist/SecondaryNavigationItemBase.js +27 -1
- package/dist/SecondaryNavigationItemBase.js.map +1 -1
- package/dist/SecondaryNavigationSubItem.d.ts +2 -1
- package/dist/SecondaryNavigationSubItem.js +5 -2
- package/dist/SecondaryNavigationSubItem.js.map +1 -1
- package/dist/SelectBox.js +2 -0
- package/dist/SelectBox.js.map +1 -1
- package/dist/StatusBadge.d.ts +5 -5
- package/dist/StatusBadge.js.map +1 -1
- package/dist/Switch.d.ts +1 -0
- package/dist/Switch.js +3 -0
- package/dist/Switch.js.map +1 -1
- package/dist/Tab.d.ts +8 -0
- package/dist/Tab.js +3 -0
- package/dist/Tab.js.map +1 -1
- package/dist/TabNavigation.d.ts +20 -20
- package/dist/TabNavigation.js +82 -101
- package/dist/TabNavigation.js.map +1 -1
- package/dist/Tag.d.ts +13 -6
- package/dist/Tag.js +34 -20
- package/dist/Tag.js.map +1 -1
- package/dist/TextArea.d.ts +1 -1
- package/dist/TextArea.js +3 -0
- package/dist/TextArea.js.map +1 -1
- package/dist/TextField.d.ts +9 -0
- package/dist/TextField.js +16 -0
- package/dist/TextField.js.map +1 -1
- package/dist/Tooltip.d.ts +2 -2
- package/dist/Tooltip.js +3 -3
- package/dist/Tooltip.js.map +1 -1
- package/dist/assets/bundle.esm-7d53f4f2.js +314 -0
- package/dist/assets/messagebundle_en-6dcc9ab4.js +1 -0
- package/dist/assets/parameters-bundle.css-de55cf62.js +2 -0
- package/dist/css/themes/AccordionItem.css +1 -1
- package/dist/css/themes/Avatar.css +1 -1
- package/dist/css/themes/Badge.css +1 -1
- package/dist/css/themes/Divider.css +1 -1
- package/dist/css/themes/Footer.css +1 -1
- package/dist/css/themes/HeroBanner.css +1 -1
- package/dist/css/themes/MastheadShell.css +1 -1
- package/dist/css/themes/Modal.css +1 -1
- package/dist/css/themes/Pagination.css +1 -1
- package/dist/css/themes/PhoneNumberField.css +1 -1
- package/dist/css/themes/RatingBar.css +1 -0
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/Review.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/SelectBox.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/css/themes/StepInput.css +1 -1
- package/dist/css/themes/TabNavigation.css +1 -1
- package/dist/css/themes/Tag.css +1 -1
- package/dist/css/themes/TextField.css +1 -1
- package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +1 -1
- package/dist/custom-elements-internal.json +670 -100
- package/dist/custom-elements.json +594 -67
- package/dist/data/CountryListISO3166.js +162 -162
- 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 +9 -1
- package/dist/generated/i18n/i18n-defaults.js +13 -5
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/AccordionItemTemplate.lit.js +1 -1
- package/dist/generated/templates/AccordionItemTemplate.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 +26 -28
- package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
- package/dist/generated/templates/HeroBannerTemplate.lit.js +9 -8
- package/dist/generated/templates/HeroBannerTemplate.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/MastheadShellTemplate.lit.js +2 -2
- package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
- package/dist/generated/templates/PaginationTemplate.lit.js +1 -1
- package/dist/generated/templates/PaginationTemplate.lit.js.map +1 -1
- package/dist/generated/templates/PasswordFieldTemplate.lit.js +1 -2
- package/dist/generated/templates/PasswordFieldTemplate.lit.js.map +1 -1
- package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +3 -3
- package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
- package/dist/generated/templates/RatingBarTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/RatingBarTemplate.lit.js +6 -0
- package/dist/generated/templates/RatingBarTemplate.lit.js.map +1 -0
- package/dist/generated/templates/ReviewTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/ReviewTemplate.lit.js +10 -0
- package/dist/generated/templates/ReviewTemplate.lit.js.map +1 -0
- package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +1 -1
- package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SearchTemplate.lit.js +7 -7
- package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +3 -3
- package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +5 -4
- package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +3 -3
- 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/SwitchTemplate.lit.js +2 -2
- package/dist/generated/templates/SwitchTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TabInOverflowTemplate.lit.js +2 -2
- package/dist/generated/templates/TabInOverflowTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TabNavigationTemplate.lit.js +2 -2
- package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TagTemplate.lit.js +9 -3
- 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 +2 -2
- package/dist/generated/templates/TextFieldTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TooltipTemplate.lit.js +1 -1
- package/dist/generated/templates/TooltipTemplate.lit.js.map +1 -1
- package/dist/generated/themes/AccordionItem.css.js +1 -1
- package/dist/generated/themes/AccordionItem.css.js.map +1 -1
- package/dist/generated/themes/Avatar.css.js +1 -1
- package/dist/generated/themes/Avatar.css.js.map +1 -1
- package/dist/generated/themes/Badge.css.js +1 -1
- package/dist/generated/themes/Badge.css.js.map +1 -1
- package/dist/generated/themes/Divider.css.js +1 -1
- package/dist/generated/themes/Divider.css.js.map +1 -1
- package/dist/generated/themes/Footer.css.js +1 -1
- package/dist/generated/themes/Footer.css.js.map +1 -1
- package/dist/generated/themes/HeroBanner.css.js +1 -1
- package/dist/generated/themes/HeroBanner.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/Modal.css.js +1 -1
- package/dist/generated/themes/Modal.css.js.map +1 -1
- package/dist/generated/themes/Pagination.css.js +1 -1
- package/dist/generated/themes/Pagination.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/RatingBar.css.js +9 -0
- package/dist/generated/themes/RatingBar.css.js.map +1 -0
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/Review.css.d.ts +3 -0
- package/dist/generated/themes/Review.css.js +9 -0
- package/dist/generated/themes/Review.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/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/StepInput.css.js +1 -1
- package/dist/generated/themes/StepInput.css.js.map +1 -1
- package/dist/generated/themes/TabNavigation.css.js +1 -1
- package/dist/generated/themes/TabNavigation.css.js.map +1 -1
- package/dist/generated/themes/Tag.css.js +1 -1
- package/dist/generated/themes/Tag.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/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 +28 -4
- package/dist/i18n/messagebundle_en.properties +12 -4
- package/dist/vscode.html-custom-data.json +112 -17
- package/dist/web-types.json +215 -33
- package/package.json +8 -8
- package/src/AccordionItem.hbs +1 -4
- package/src/AccordionItem.ts +5 -4
- package/src/Avatar.ts +24 -1
- package/src/AvatarGroup.ts +135 -0
- package/src/DatePicker.hbs +0 -1
- package/src/Dropdown.hbs +5 -2
- package/src/Dropdown.ts +24 -3
- package/src/FilterMenu.hbs +3 -0
- package/src/FilterMenu.ts +10 -2
- package/src/Footer.hbs +12 -37
- package/src/Footer.ts +64 -51
- package/src/HeroBanner.hbs +18 -14
- package/src/HeroBanner.ts +3 -0
- package/src/MastheadItem.hbs +3 -3
- package/src/MastheadItem.ts +10 -4
- package/src/MastheadShell.hbs +4 -0
- package/src/MastheadShell.ts +18 -0
- package/src/MessageStrip.ts +1 -1
- package/src/Pagination.hbs +4 -2
- package/src/Pagination.ts +19 -4
- package/src/PasswordField.hbs +6 -17
- package/src/PasswordField.ts +31 -23
- package/src/PhoneNumberField.hbs +8 -3
- package/src/PhoneNumberField.ts +11 -1
- package/src/RatingBar.hbs +11 -0
- package/src/RatingBar.ts +113 -0
- package/src/Review.hbs +44 -0
- package/src/Review.ts +140 -0
- package/src/Search.hbs +19 -14
- package/src/Search.ts +72 -2
- package/src/SearchSuggestions.hbs +1 -0
- package/src/SearchableListBase.ts +1 -1
- package/src/SecondaryNavigation.hbs +5 -1
- package/src/SecondaryNavigation.ts +67 -49
- package/src/SecondaryNavigationItem.hbs +3 -2
- package/src/SecondaryNavigationItem.ts +15 -5
- package/src/SecondaryNavigationItemBase.ts +41 -3
- package/src/SecondaryNavigationSubItem.hbs +13 -10
- package/src/SecondaryNavigationSubItem.ts +6 -2
- package/src/SelectBox.hbs +75 -76
- package/src/SelectBox.ts +2 -0
- package/src/StatusBadge.ts +2 -2
- package/src/Switch.hbs +3 -3
- package/src/Switch.ts +4 -0
- package/src/Tab.ts +10 -0
- package/src/TabInOverflow.hbs +3 -2
- package/src/TabNavigation.hbs +12 -10
- package/src/TabNavigation.ts +92 -116
- package/src/TabNavigationPopover.hbs +1 -0
- package/src/Tag.hbs +60 -26
- package/src/Tag.ts +54 -34
- package/src/TextArea.hbs +3 -4
- package/src/TextArea.ts +3 -0
- package/src/TextField.hbs +40 -36
- package/src/TextField.ts +24 -0
- package/src/Tooltip.hbs +2 -2
- package/src/Tooltip.ts +4 -4
- package/src/data/CountryListISO3166.ts +162 -162
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/templates/AccordionItemTemplate.lit.ts +1 -1
- 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 +26 -28
- package/src/generated/templates/HeroBannerTemplate.lit.ts +9 -8
- package/src/generated/templates/MastheadItemTemplate.lit.ts +3 -3
- package/src/generated/templates/MastheadShellTemplate.lit.ts +2 -2
- package/src/generated/templates/PaginationTemplate.lit.ts +1 -1
- package/src/generated/templates/PasswordFieldTemplate.lit.ts +1 -2
- package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +3 -3
- package/src/generated/templates/RatingBarTemplate.lit.ts +11 -0
- package/src/generated/templates/ReviewTemplate.lit.ts +15 -0
- package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +1 -1
- package/src/generated/templates/SearchTemplate.lit.ts +7 -7
- package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +3 -3
- package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +5 -4
- package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +3 -3
- package/src/generated/templates/SelectBoxTemplate.lit.ts +2 -2
- package/src/generated/templates/SwitchTemplate.lit.ts +2 -2
- package/src/generated/templates/TabInOverflowTemplate.lit.ts +2 -2
- package/src/generated/templates/TabNavigationPopoverTemplate.lit.ts +1 -1
- package/src/generated/templates/TabNavigationTemplate.lit.ts +2 -2
- package/src/generated/templates/TagTemplate.lit.ts +9 -3
- package/src/generated/templates/TextAreaTemplate.lit.ts +1 -1
- package/src/generated/templates/TextFieldTemplate.lit.ts +2 -2
- package/src/generated/templates/TooltipTemplate.lit.ts +1 -1
- package/src/generated/themes/AccordionItem.css.ts +1 -1
- package/src/generated/themes/Avatar.css.ts +1 -1
- package/src/generated/themes/Badge.css.ts +1 -1
- package/src/generated/themes/Divider.css.ts +1 -1
- package/src/generated/themes/Footer.css.ts +1 -1
- package/src/generated/themes/HeroBanner.css.ts +1 -1
- package/src/generated/themes/MastheadShell.css.ts +1 -1
- package/src/generated/themes/Modal.css.ts +1 -1
- package/src/generated/themes/Pagination.css.ts +1 -1
- package/src/generated/themes/PhoneNumberField.css.ts +1 -1
- package/src/generated/themes/RatingBar.css.ts +13 -0
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/Review.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/SelectBox.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/generated/themes/StepInput.css.ts +1 -1
- package/src/generated/themes/TabNavigation.css.ts +1 -1
- package/src/generated/themes/Tag.css.ts +1 -1
- package/src/generated/themes/TextField.css.ts +1 -1
- package/src/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +1 -1
- package/src/i18n/messagebundle.properties +28 -4
- package/src/i18n/messagebundle_en.properties +12 -4
- package/src/themes/AccordionItem.css +6 -4
- package/src/themes/Avatar.css +24 -7
- package/src/themes/Badge.css +1 -1
- package/src/themes/Divider.css +6 -2
- package/src/themes/Footer.css +93 -168
- package/src/themes/HeroBanner.css +52 -24
- package/src/themes/MastheadShell.css +25 -29
- package/src/themes/Modal.css +6 -0
- package/src/themes/Pagination.css +7 -0
- package/src/themes/PhoneNumberField.css +1 -0
- package/src/themes/RatingBar.css +52 -0
- package/src/themes/Review.css +196 -0
- package/src/themes/Search.css +37 -25
- package/src/themes/SecondaryNavigation.css +33 -4
- package/src/themes/SecondaryNavigationItem.css +3 -2
- package/src/themes/SelectBox.css +17 -24
- package/src/themes/StepInput.css +5 -2
- package/src/themes/TabNavigation.css +7 -1
- package/src/themes/Tag.css +180 -148
- package/src/themes/TextField.css +75 -55
- package/dist/assets/bundle.esm-f65ae7da.js +0 -315
- package/dist/assets/messagebundle_en-7249941b.js +0 -1
- package/dist/assets/parameters-bundle.css-76ef62fa.js +0 -2
- package/dist/css/themes/PasswordField.css +0 -1
- package/dist/generated/themes/PasswordField.css.js +0 -9
- package/dist/generated/themes/PasswordField.css.js.map +0 -1
- package/src/generated/themes/PasswordField.css.ts +0 -13
- package/src/themes/PasswordField.css +0 -29
- /package/dist/generated/themes/{PasswordField.css.d.ts → RatingBar.css.d.ts} +0 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import AvatarGroup, { IAvatarGroupItem } from "@ui5/webcomponents/dist/AvatarGroup.js";
|
|
2
|
+
import AvatarGroupType from "@ui5/webcomponents/dist/types/AvatarGroupType.js";
|
|
3
|
+
import ItemNavigation from "@ui5/webcomponents-base/dist/delegate/ItemNavigation.js";
|
|
4
|
+
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
5
|
+
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
6
|
+
|
|
7
|
+
// Styles
|
|
8
|
+
import UI5AvatarGroupCss from "@ui5/webcomponents/dist/generated/themes/AvatarGroup.css.js";
|
|
9
|
+
|
|
10
|
+
import UDExAvatar, { AvatarColorScheme, AvatarSize } from "./Avatar.js";
|
|
11
|
+
|
|
12
|
+
const avatarOffsets = {
|
|
13
|
+
[AvatarSize.XS]: {
|
|
14
|
+
[AvatarGroupType.Individual]: "0.0625rem",
|
|
15
|
+
[AvatarGroupType.Group]: "-0.75rem",
|
|
16
|
+
},
|
|
17
|
+
[AvatarSize.S]: {
|
|
18
|
+
[AvatarGroupType.Individual]: "0.125rem",
|
|
19
|
+
[AvatarGroupType.Group]: "-1.25rem",
|
|
20
|
+
},
|
|
21
|
+
[AvatarSize.M]: {
|
|
22
|
+
[AvatarGroupType.Individual]: "0.125rem",
|
|
23
|
+
[AvatarGroupType.Group]: "-1.625rem",
|
|
24
|
+
},
|
|
25
|
+
[AvatarSize.L]: {
|
|
26
|
+
[AvatarGroupType.Individual]: "0.125rem",
|
|
27
|
+
[AvatarGroupType.Group]: "-2rem",
|
|
28
|
+
},
|
|
29
|
+
[AvatarSize.XL]: {
|
|
30
|
+
[AvatarGroupType.Individual]: "0.25rem",
|
|
31
|
+
[AvatarGroupType.Group]: "-2.75rem",
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @class
|
|
37
|
+
*
|
|
38
|
+
* <h3 class="comment-api-title">Overview</h3>
|
|
39
|
+
*
|
|
40
|
+
*
|
|
41
|
+
* <h3>Usage</h3>
|
|
42
|
+
*
|
|
43
|
+
* For the <code>udex-avatar-group</code>
|
|
44
|
+
* <h3>ES6 Module Import</h3>
|
|
45
|
+
*
|
|
46
|
+
* <code>import "@udex/web-components/dist/AvatarGroup.js";</code>
|
|
47
|
+
*
|
|
48
|
+
* @constructor
|
|
49
|
+
* @author SAP SE
|
|
50
|
+
* @extends AvatarGroup
|
|
51
|
+
* @public
|
|
52
|
+
*/
|
|
53
|
+
@customElement({
|
|
54
|
+
tag: "udex-avatar-group",
|
|
55
|
+
renderer: litRender,
|
|
56
|
+
styles: [UI5AvatarGroupCss],
|
|
57
|
+
dependencies: [UDExAvatar],
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
class UDExAvatarGroup extends AvatarGroup {
|
|
61
|
+
constructor() {
|
|
62
|
+
super();
|
|
63
|
+
|
|
64
|
+
this._itemNavigation = new ItemNavigation(this, {
|
|
65
|
+
getItemsCallback: () => {
|
|
66
|
+
return this._isGroup
|
|
67
|
+
? []
|
|
68
|
+
: this.items.slice(0, this._hiddenStartIndex).map(
|
|
69
|
+
item => item.shadowRoot?.firstElementChild as IAvatarGroupItem,
|
|
70
|
+
);
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
onEnterDOM(): void {
|
|
75
|
+
super.onEnterDOM();
|
|
76
|
+
const container: HTMLElement = this.shadowRoot?.querySelector(".ui5-avatar-group-items") as HTMLElement;
|
|
77
|
+
container?.addEventListener("mouseenter", this._onHover.bind(this, true));
|
|
78
|
+
container?.addEventListener("mouseleave", this._onHover.bind(this, false));
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
onExitDOM(): void {
|
|
82
|
+
super.onExitDOM();
|
|
83
|
+
const container: HTMLElement = this.shadowRoot?.querySelector(".ui5-avatar-group-items") as HTMLElement;
|
|
84
|
+
container?.removeEventListener("mouseenter", this._onHover.bind(this, true));
|
|
85
|
+
container?.removeEventListener("mouseleave", this._onHover.bind(this, false));
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
_onHover(hover: boolean) {
|
|
89
|
+
if (this._isGroup) {
|
|
90
|
+
this.items.every(avatar => {
|
|
91
|
+
avatar.toggleAttribute("hover", hover);
|
|
92
|
+
return !avatar.hidden;
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
_onfocusin(e: FocusEvent) {
|
|
98
|
+
const targetItem = this._isGroup
|
|
99
|
+
? e.currentTarget
|
|
100
|
+
: (e.target as HTMLElement).shadowRoot?.firstElementChild;
|
|
101
|
+
this._itemNavigation.setCurrentItem(targetItem as IAvatarGroupItem);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
_prepareAvatars() {
|
|
105
|
+
this._colorIndex = 0;
|
|
106
|
+
const visibleColors = Object.values(AvatarColorScheme);
|
|
107
|
+
let avatarInitials = "";
|
|
108
|
+
|
|
109
|
+
this.items.forEach((avatar, index) => {
|
|
110
|
+
if (++this._colorIndex > visibleColors.length - 3) {
|
|
111
|
+
this._colorIndex = 1;
|
|
112
|
+
}
|
|
113
|
+
avatar.interactive = !this._isGroup;
|
|
114
|
+
avatar.toggleAttribute("ui5-avatar", true);
|
|
115
|
+
avatarInitials += this._isGroup && avatar.hasAttribute("initials") && !avatar.shadowRoot?.firstElementChild?.hasAttribute("_has-image")
|
|
116
|
+
? `${avatar.getAttribute("initials")} ` : "";
|
|
117
|
+
|
|
118
|
+
if (!avatar.getAttribute("color-scheme")) {
|
|
119
|
+
avatar.setAttribute("color-scheme", visibleColors[this._colorIndex]);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (index !== this._itemsCount - 1 || this._customOverflowButton) {
|
|
123
|
+
avatar.style.marginInlineEnd = avatarOffsets[avatar.effectiveSize][this.type];
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
if (avatarInitials) {
|
|
128
|
+
this.shadowRoot?.querySelector(".ui5-avatar-group-items")?.setAttribute("aria-label", `${avatarInitials}${this._ariaLabelText}`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
UDExAvatarGroup.define();
|
|
134
|
+
|
|
135
|
+
export default UDExAvatarGroup;
|
package/src/DatePicker.hbs
CHANGED
package/src/Dropdown.hbs
CHANGED
|
@@ -2,14 +2,17 @@
|
|
|
2
2
|
{{#if hasTriggerSlot}}
|
|
3
3
|
<div
|
|
4
4
|
class="udex-dropdown__opener"
|
|
5
|
+
role="{{triggerAccessibleRole}}"
|
|
6
|
+
aria-label="{{triggerAccessibleName}}"
|
|
7
|
+
aria-expanded="{{open}}"
|
|
5
8
|
aria-haspopup="true"
|
|
6
|
-
aria-controls="
|
|
9
|
+
aria-controls="{{this._id}}_udex-dropdown"
|
|
7
10
|
@click="{{onTriggerClick}}">
|
|
8
11
|
<slot slot="trigger" name="trigger"></slot>
|
|
9
12
|
</div>
|
|
10
13
|
{{/if}}
|
|
11
14
|
<ui5-popover
|
|
12
|
-
id="
|
|
15
|
+
id="{{this._id}}_udex-dropdown"
|
|
13
16
|
class="udex-dropdown__pane"
|
|
14
17
|
?allow-target-overlap="{{disableAllowTargetOverlap}}"
|
|
15
18
|
hide-arrow
|
package/src/Dropdown.ts
CHANGED
|
@@ -7,8 +7,11 @@ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
|
7
7
|
import event from "@ui5/webcomponents-base/dist/decorators/event.js";
|
|
8
8
|
import getEffectiveScrollbarStyle from "@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js";
|
|
9
9
|
import PopupAccessibleRole from "@ui5/webcomponents/dist/types/PopupAccessibleRole.js";
|
|
10
|
+
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
11
|
+
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
10
12
|
import DropdownTemplate from "./generated/templates/DropdownTemplate.lit.js";
|
|
11
13
|
import { PlacementType, HorizontalAlign } from "./types/Dropdown.js";
|
|
14
|
+
import { TRIGGER } from "./generated/i18n/i18n-defaults.js";
|
|
12
15
|
|
|
13
16
|
// Styles
|
|
14
17
|
import DropdownCss from "./generated/themes/Dropdown.css";
|
|
@@ -120,12 +123,20 @@ class UDExDropdown extends UI5Element {
|
|
|
120
123
|
|
|
121
124
|
/**
|
|
122
125
|
* Allows setting a custom role.
|
|
123
|
-
* @default "
|
|
126
|
+
* @default "None"
|
|
124
127
|
* @public
|
|
125
128
|
*/
|
|
126
|
-
@property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.
|
|
129
|
+
@property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.None })
|
|
127
130
|
accessibleRole!: `${PopupAccessibleRole}`;
|
|
128
131
|
|
|
132
|
+
/**
|
|
133
|
+
* Allows setting a custom role for dropdown trigger.
|
|
134
|
+
* @default "combobox"
|
|
135
|
+
* @public
|
|
136
|
+
*/
|
|
137
|
+
@property({ type: String, defaultValue: "combobox" })
|
|
138
|
+
triggerAccessibleRole!: string;
|
|
139
|
+
|
|
129
140
|
/**
|
|
130
141
|
* Defines the content of the Dropdown.
|
|
131
142
|
*
|
|
@@ -188,6 +199,12 @@ class UDExDropdown extends UI5Element {
|
|
|
188
199
|
@property({ type: String })
|
|
189
200
|
_direction?: string;
|
|
190
201
|
|
|
202
|
+
static i18nBundle: I18nBundle;
|
|
203
|
+
|
|
204
|
+
static async onDefine(): Promise<void> {
|
|
205
|
+
UDExDropdown.i18nBundle = await getI18nBundle("sap-ui-webcomponents-bundle");
|
|
206
|
+
}
|
|
207
|
+
|
|
191
208
|
onAfterRendering() {
|
|
192
209
|
this.handleDirection();
|
|
193
210
|
}
|
|
@@ -283,9 +300,13 @@ class UDExDropdown extends UI5Element {
|
|
|
283
300
|
return !!this.footer.length;
|
|
284
301
|
}
|
|
285
302
|
|
|
286
|
-
get disableAllowTargetOverlap() {
|
|
303
|
+
get disableAllowTargetOverlap(): boolean {
|
|
287
304
|
return this.disableTargetOverlap?.toString() !== "true";
|
|
288
305
|
}
|
|
306
|
+
|
|
307
|
+
get triggerAccessibleName(): string {
|
|
308
|
+
return UDExDropdown.i18nBundle.getText(TRIGGER);
|
|
309
|
+
}
|
|
289
310
|
}
|
|
290
311
|
|
|
291
312
|
UDExDropdown.define();
|
package/src/FilterMenu.hbs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<udex-dropdown
|
|
2
|
+
id="{{this._id}}_dropdown-menu"
|
|
2
3
|
class="udex-filter-menu"
|
|
3
4
|
?disable-target-overlap="{{disableTargetOverlap}}"
|
|
4
5
|
placement-type="{{placementType}}"
|
|
@@ -30,6 +31,8 @@
|
|
|
30
31
|
aria-label="{{accessibleName}}"
|
|
31
32
|
aria-expanded="{{_open}}"
|
|
32
33
|
aria-haspopup="true"
|
|
34
|
+
role="{{triggerAccessibleRole}}"
|
|
35
|
+
aria-controls="{{this._id}}_dropdown-menu"
|
|
33
36
|
?disabled="{{disabled}}"
|
|
34
37
|
class="udex-filter-menu__trigger"
|
|
35
38
|
slot="trigger"
|
package/src/FilterMenu.ts
CHANGED
|
@@ -269,12 +269,20 @@ class UDExFilterMenu extends UDExSearchableListBase {
|
|
|
269
269
|
|
|
270
270
|
/**
|
|
271
271
|
* Allows setting a custom role.
|
|
272
|
-
* @default "
|
|
272
|
+
* @default "None"
|
|
273
273
|
* @public
|
|
274
274
|
*/
|
|
275
|
-
@property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.
|
|
275
|
+
@property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.None })
|
|
276
276
|
accessibleRole!: `${PopupAccessibleRole}`;
|
|
277
277
|
|
|
278
|
+
/**
|
|
279
|
+
* Allows setting a custom role for dropdown trigger.
|
|
280
|
+
* @default "combobox"
|
|
281
|
+
* @public
|
|
282
|
+
*/
|
|
283
|
+
@property({ type: String, defaultValue: "combobox" })
|
|
284
|
+
triggerAccessibleRole!: string;
|
|
285
|
+
|
|
278
286
|
_dropdown!: UDExDropdown;
|
|
279
287
|
_search!: UDExSearch;
|
|
280
288
|
_hasFooterButtons!: boolean;
|
package/src/Footer.hbs
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
<footer class="udex-footer">
|
|
2
2
|
<div class="udex-footer__content">
|
|
3
3
|
<div class="udex-footer__contact-social">
|
|
4
|
-
<div class="udex-footer__contact-wrapper">
|
|
5
4
|
{{#if logoUrl}}
|
|
6
5
|
<div class="udex-footer__logo">
|
|
7
6
|
{{#if logoLink}}
|
|
8
|
-
<a href="{{parsedRef}}" @click="{{_onLogoClick}}">
|
|
7
|
+
<a href="{{parsedRef}}" @click="{{_onLogoClick}}" title="{{logoTitle}}" aria-label="{{logoAriaLabel}}">
|
|
9
8
|
<img id="udex-footer__logo-image" src="{{logoUrl}}" class="udex-footer__logo-image" alt="{{logoAlt}}"/>
|
|
10
9
|
</a>
|
|
11
10
|
{{else}}
|
|
@@ -16,7 +15,6 @@
|
|
|
16
15
|
{{#if isContactContainerVisible}}
|
|
17
16
|
<div class="udex-footer__contact">
|
|
18
17
|
{{#if contactNumbersArray.length}}
|
|
19
|
-
<div>
|
|
20
18
|
<div class="udex-footer__numbers">
|
|
21
19
|
<div class="udex-footer__icon-container">
|
|
22
20
|
<ui5-icon class="udex-footer__icon" name="headset"></ui5-icon>
|
|
@@ -43,10 +41,8 @@
|
|
|
43
41
|
{{/if}}
|
|
44
42
|
</div>
|
|
45
43
|
</div>
|
|
46
|
-
</div>
|
|
47
44
|
{{/if}}
|
|
48
45
|
{{#if contactUsLink}}
|
|
49
|
-
<div>
|
|
50
46
|
<div class="udex-footer__contact-us">
|
|
51
47
|
<div class="udex-footer__icon-container">
|
|
52
48
|
<ui5-icon class="udex-footer__icon" name="email"></ui5-icon>
|
|
@@ -59,45 +55,17 @@
|
|
|
59
55
|
@click="{{_onContactEmailClick}}"
|
|
60
56
|
>{{contactUsAccessibleName}}</a>
|
|
61
57
|
</div>
|
|
62
|
-
</div>
|
|
63
58
|
{{/if}}
|
|
64
59
|
{{#if chatWithUsLink}}
|
|
65
|
-
<div>
|
|
66
60
|
<div class="udex-footer__chat-with-us">
|
|
67
61
|
<div class="udex-footer__icon-container">
|
|
68
62
|
<ui5-icon class="udex-footer__icon" name="discussion-2"></ui5-icon>
|
|
69
63
|
</div>
|
|
70
64
|
<a href="{{chatWithUsLink}}" class="udex-footer__chat-with-us-link" @click="{{_onContactChatClick}}">{{chatWithUsAccessibleName}}</a>
|
|
71
65
|
</div>
|
|
72
|
-
</div>
|
|
73
66
|
{{/if}}
|
|
74
67
|
</div>
|
|
75
68
|
{{/if}}
|
|
76
|
-
</div>
|
|
77
|
-
|
|
78
|
-
{{#if socialLinksArray.length}}
|
|
79
|
-
<div class="udex-footer__social udex-footer__links-list--desktop">
|
|
80
|
-
<div class="udex-footer__social-container">
|
|
81
|
-
{{#each socialLinksArray}}
|
|
82
|
-
<div>
|
|
83
|
-
<a
|
|
84
|
-
href="{{this.url}}"
|
|
85
|
-
class="udex-footer__social-icon"
|
|
86
|
-
data-name="{{this.name}}"
|
|
87
|
-
@click="{{../_onSocialMediaLinkClick}}"
|
|
88
|
-
>
|
|
89
|
-
<img
|
|
90
|
-
alt="{{this.name}} {{../socialIconAccessibleName}}"
|
|
91
|
-
title="{{this.name}}"
|
|
92
|
-
src="{{this.iconUrl}}"
|
|
93
|
-
loading="lazy"
|
|
94
|
-
/>
|
|
95
|
-
</a>
|
|
96
|
-
</div>
|
|
97
|
-
{{/each}}
|
|
98
|
-
</div>
|
|
99
|
-
</div>
|
|
100
|
-
{{/if}}
|
|
101
69
|
</div>
|
|
102
70
|
|
|
103
71
|
{{#if isContactContainerVisible}}
|
|
@@ -113,26 +81,25 @@
|
|
|
113
81
|
<udex-divider class="udex-footer__divider"></udex-divider>
|
|
114
82
|
|
|
115
83
|
{{#if socialLinksArray.length}}
|
|
116
|
-
<div class="udex-footer__social udex-footer__links-list--mobile">
|
|
117
84
|
<div class="udex-footer__social-container">
|
|
118
85
|
{{#each socialLinksArray}}
|
|
119
|
-
<div>
|
|
120
86
|
<a
|
|
121
87
|
href="{{this.url}}"
|
|
122
88
|
class="udex-footer__social-icon"
|
|
123
89
|
data-name="{{this.name}}"
|
|
90
|
+
data-id="{{this.id}}"
|
|
124
91
|
@click="{{../_onSocialMediaLinkClick}}"
|
|
125
92
|
>
|
|
126
93
|
<img
|
|
94
|
+
data-name="{{this.name}}"
|
|
95
|
+
data-id="{{this.id}}"
|
|
127
96
|
alt="{{this.name}} {{../socialIconAccessibleName}}"
|
|
128
97
|
src="{{this.iconUrl}}"
|
|
129
98
|
loading="lazy"
|
|
130
99
|
/>
|
|
131
100
|
</a>
|
|
132
|
-
</div>
|
|
133
101
|
{{/each}}
|
|
134
102
|
</div>
|
|
135
|
-
</div>
|
|
136
103
|
{{/if}}
|
|
137
104
|
</div>
|
|
138
105
|
|
|
@@ -156,6 +123,7 @@
|
|
|
156
123
|
<a
|
|
157
124
|
aria-describedby="udex-footer__quick-links"
|
|
158
125
|
href="{{this.url}}"
|
|
126
|
+
data-id="{{this.id}}"
|
|
159
127
|
@click="{{../_onQuickLinksClick}}"
|
|
160
128
|
>{{this.title}}</a>
|
|
161
129
|
</li>
|
|
@@ -174,6 +142,7 @@
|
|
|
174
142
|
aria-describedby="udex-footer__footer__trending"
|
|
175
143
|
href="{{this.url}}"
|
|
176
144
|
@click="{{../_onTrendingClick}}"
|
|
145
|
+
data-id="{{this.id}}"
|
|
177
146
|
>{{this.title}}</a>
|
|
178
147
|
</li>
|
|
179
148
|
{{/each}}
|
|
@@ -190,6 +159,7 @@
|
|
|
190
159
|
<a
|
|
191
160
|
aria-describedby="udex-footer__about"
|
|
192
161
|
href="{{this.url}}"
|
|
162
|
+
data-id="{{this.id}}"
|
|
193
163
|
@click="{{../_onAboutSapClick}}"
|
|
194
164
|
>{{this.title}}</a>
|
|
195
165
|
</li>
|
|
@@ -207,6 +177,7 @@
|
|
|
207
177
|
<a
|
|
208
178
|
aria-describedby="udex-footer__site-information"
|
|
209
179
|
href="{{this.url}}"
|
|
180
|
+
data-id="{{this.id}}"
|
|
210
181
|
@click="{{../_onSiteInformationClick}}"
|
|
211
182
|
>{{this.title}}</a>
|
|
212
183
|
</li>
|
|
@@ -228,6 +199,7 @@
|
|
|
228
199
|
<li>
|
|
229
200
|
<a
|
|
230
201
|
aria-describedby="udex-footer__quick-links"
|
|
202
|
+
data-id="{{this.id}}"
|
|
231
203
|
href="{{this.url}}"
|
|
232
204
|
@click="{{../_onQuickLinksClick}}"
|
|
233
205
|
>{{this.title}}</a>
|
|
@@ -244,6 +216,7 @@
|
|
|
244
216
|
<li>
|
|
245
217
|
<a
|
|
246
218
|
aria-describedby="udex-footer__footer__trending"
|
|
219
|
+
data-id="{{this.id}}"
|
|
247
220
|
href="{{this.url}}"
|
|
248
221
|
@click="{{../_onTrendingClick}}"
|
|
249
222
|
>{{this.title}}</a>
|
|
@@ -260,6 +233,7 @@
|
|
|
260
233
|
<li>
|
|
261
234
|
<a
|
|
262
235
|
aria-describedby="udex-footer__about"
|
|
236
|
+
data-id="{{this.id}}"
|
|
263
237
|
href="{{this.url}}"
|
|
264
238
|
@click="{{../_onAboutSapClick}}"
|
|
265
239
|
>{{this.title}}</a>
|
|
@@ -276,6 +250,7 @@
|
|
|
276
250
|
<li>
|
|
277
251
|
<a
|
|
278
252
|
aria-describedby="udex-footer__site-information"
|
|
253
|
+
data-id="{{this.id}}"
|
|
279
254
|
href="{{this.url}}"
|
|
280
255
|
@click="{{../_onSiteInformationClick}}"
|
|
281
256
|
>{{this.title}}</a>
|
package/src/Footer.ts
CHANGED
|
@@ -51,6 +51,17 @@ export type FooterContactNumber = {
|
|
|
51
51
|
country: string;
|
|
52
52
|
};
|
|
53
53
|
|
|
54
|
+
export type FooterDetailedClickEvent = {
|
|
55
|
+
originalEvent: PointerEvent,
|
|
56
|
+
name: string;
|
|
57
|
+
id?: string;
|
|
58
|
+
sourceNode: HTMLElement;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export type FooterBaseEventEvent = {
|
|
62
|
+
originalEvent: PointerEvent,
|
|
63
|
+
}
|
|
64
|
+
|
|
54
65
|
export const FooterBaseEvent = {
|
|
55
66
|
detail: {
|
|
56
67
|
originalEvent: { type: PointerEvent },
|
|
@@ -61,6 +72,7 @@ export const FooterDetailedEvent = {
|
|
|
61
72
|
detail: {
|
|
62
73
|
originalEvent: { type: PointerEvent },
|
|
63
74
|
name: { type: String },
|
|
75
|
+
id: { type: String },
|
|
64
76
|
sourceNode: { type: HTMLElement },
|
|
65
77
|
},
|
|
66
78
|
};
|
|
@@ -96,71 +108,81 @@ export const FooterDetailedEvent = {
|
|
|
96
108
|
* @public
|
|
97
109
|
* @allowPreventDefault
|
|
98
110
|
*/
|
|
99
|
-
@event("logo-click", FooterBaseEvent)
|
|
111
|
+
@event<FooterBaseEventEvent>("logo-click", FooterBaseEvent)
|
|
100
112
|
/**
|
|
101
113
|
* Triggered on click interaction with "Back to Top" button
|
|
102
114
|
* @public
|
|
103
115
|
* @allowPreventDefault
|
|
104
116
|
*/
|
|
105
|
-
@event("back-to-top-click", FooterBaseEvent)
|
|
117
|
+
@event<FooterBaseEventEvent>("back-to-top-click", FooterBaseEvent)
|
|
106
118
|
|
|
107
119
|
/**
|
|
108
120
|
* Triggered on click interaction with phone number link in footer
|
|
109
121
|
* @public
|
|
110
122
|
* @allowPreventDefault
|
|
111
123
|
*/
|
|
112
|
-
@event("contact-phone-click", FooterBaseEvent)
|
|
124
|
+
@event<FooterBaseEventEvent>("contact-phone-click", FooterBaseEvent)
|
|
113
125
|
/**
|
|
114
126
|
* Triggered on click interaction with local country numbers list link
|
|
115
127
|
* @public
|
|
116
128
|
* @allowPreventDefault
|
|
117
129
|
*/
|
|
118
|
-
@event("contact-phone-local-numbers-click", FooterBaseEvent)
|
|
130
|
+
@event<FooterBaseEventEvent>("contact-phone-local-numbers-click", FooterBaseEvent)
|
|
119
131
|
/**
|
|
120
132
|
* Triggered on click interaction with "Contact us by email" link
|
|
121
133
|
* @public
|
|
122
134
|
* @allowPreventDefault
|
|
123
135
|
*/
|
|
124
|
-
@event("contact-email-click", FooterBaseEvent)
|
|
136
|
+
@event<FooterBaseEventEvent>("contact-email-click", FooterBaseEvent)
|
|
125
137
|
/**
|
|
126
138
|
* Triggered on click interaction with "Contact us by chat" link
|
|
127
139
|
* @public
|
|
128
140
|
* @allowPreventDefault
|
|
129
141
|
*/
|
|
130
|
-
@event("contact-chat-click", FooterBaseEvent)
|
|
142
|
+
@event<FooterBaseEventEvent>("contact-chat-click", FooterBaseEvent)
|
|
131
143
|
|
|
132
144
|
/**
|
|
133
145
|
* Triggered on click interaction with a link within "Quick Links" category
|
|
134
146
|
* @public
|
|
135
147
|
* @allowPreventDefault
|
|
136
148
|
*/
|
|
137
|
-
@event("quick-links-click", FooterDetailedEvent)
|
|
149
|
+
@event<FooterDetailedClickEvent>("quick-links-click", FooterDetailedEvent)
|
|
138
150
|
/**
|
|
139
151
|
* Triggered on click interaction with a link within "Trending" category
|
|
140
152
|
* @public
|
|
141
153
|
* @allowPreventDefault
|
|
142
154
|
*/
|
|
143
|
-
@event("trending-click", FooterDetailedEvent)
|
|
155
|
+
@event<FooterDetailedClickEvent>("trending-click", FooterDetailedEvent)
|
|
144
156
|
/**
|
|
145
157
|
* Triggered on click interaction with a link within "About SAP" category
|
|
146
158
|
* @public
|
|
147
159
|
* @allowPreventDefault
|
|
148
160
|
*/
|
|
149
|
-
@event("about-sap-click", FooterDetailedEvent)
|
|
161
|
+
@event<FooterDetailedClickEvent>("about-sap-click", FooterDetailedEvent)
|
|
150
162
|
/**
|
|
151
163
|
* Triggered on click interaction with a link within "Site Information" category
|
|
152
164
|
* @public
|
|
153
165
|
* @allowPreventDefault
|
|
154
166
|
*/
|
|
155
|
-
@event("site-information-click", FooterDetailedEvent)
|
|
167
|
+
@event<FooterDetailedClickEvent>("site-information-click", FooterDetailedEvent)
|
|
156
168
|
|
|
157
169
|
/**
|
|
158
170
|
* Triggered on click interaction with any of the social media links within footer
|
|
159
171
|
* @public
|
|
160
172
|
* @allowPreventDefault
|
|
161
173
|
*/
|
|
162
|
-
@event("social-media-link-click", FooterDetailedEvent)
|
|
174
|
+
@event<FooterDetailedClickEvent>("social-media-link-click", FooterDetailedEvent)
|
|
175
|
+
|
|
163
176
|
class UDExFooter extends UI5Element {
|
|
177
|
+
/**
|
|
178
|
+
* Defines the Logo default title
|
|
179
|
+
*
|
|
180
|
+
* @default ""
|
|
181
|
+
* @public
|
|
182
|
+
*/
|
|
183
|
+
@property({ type: String, defaultValue: "" })
|
|
184
|
+
logoTitle!: string;
|
|
185
|
+
|
|
164
186
|
/**
|
|
165
187
|
* Defines the Logo URL
|
|
166
188
|
*
|
|
@@ -269,6 +291,14 @@ class UDExFooter extends UI5Element {
|
|
|
269
291
|
@property({ type: String, defaultValue: "" })
|
|
270
292
|
logoAlt!: string;
|
|
271
293
|
|
|
294
|
+
/**
|
|
295
|
+
* Defines an aria label for the logo link
|
|
296
|
+
*
|
|
297
|
+
* @public
|
|
298
|
+
*/
|
|
299
|
+
@property({ type: String })
|
|
300
|
+
logoAriaLabel!: string;
|
|
301
|
+
|
|
272
302
|
/**
|
|
273
303
|
* Defines should render the mobile navigation.
|
|
274
304
|
*
|
|
@@ -295,7 +325,7 @@ class UDExFooter extends UI5Element {
|
|
|
295
325
|
ResizeHandler.deregister(this, this._handleResizeBound);
|
|
296
326
|
}
|
|
297
327
|
|
|
298
|
-
onEnterDOM() {
|
|
328
|
+
onEnterDOM(): void {
|
|
299
329
|
if (isDesktop()) {
|
|
300
330
|
this.setAttribute("desktop", "");
|
|
301
331
|
}
|
|
@@ -316,7 +346,7 @@ class UDExFooter extends UI5Element {
|
|
|
316
346
|
return string ? JSON.parse(string) as T[] : [];
|
|
317
347
|
}
|
|
318
348
|
|
|
319
|
-
get parsedRef() {
|
|
349
|
+
get parsedRef(): string | undefined {
|
|
320
350
|
return (this.logoLink && this.logoLink.length > 0) ? this.logoLink : undefined;
|
|
321
351
|
}
|
|
322
352
|
|
|
@@ -400,70 +430,53 @@ class UDExFooter extends UI5Element {
|
|
|
400
430
|
}
|
|
401
431
|
|
|
402
432
|
_onLogoClick(e: Event): void {
|
|
403
|
-
this.
|
|
433
|
+
this.fireFooterBaseEvent(e, "logo-click");
|
|
404
434
|
}
|
|
405
435
|
|
|
406
436
|
_onContactPhoneClick(e: Event): void {
|
|
407
|
-
this.
|
|
437
|
+
this.fireFooterBaseEvent(e, "contact-phone-click");
|
|
408
438
|
}
|
|
409
439
|
_onContactPhoneLocalNumbersClick(e: Event): void {
|
|
410
|
-
this.
|
|
440
|
+
this.fireFooterBaseEvent(e, "contact-phone-local-numbers-click");
|
|
411
441
|
}
|
|
412
442
|
_onContactEmailClick(e: Event): void {
|
|
413
|
-
this.
|
|
443
|
+
this.fireFooterBaseEvent(e, "contact-email-click");
|
|
414
444
|
}
|
|
415
445
|
_onContactChatClick(e: Event): void {
|
|
416
|
-
this.
|
|
446
|
+
this.fireFooterBaseEvent(e, "contact-chat-click");
|
|
417
447
|
}
|
|
418
448
|
|
|
419
449
|
_onQuickLinksClick(e: Event): void {
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
this.fireEvent("quick-links-click", {
|
|
423
|
-
name: sourceNode.innerText,
|
|
424
|
-
originalEvent: e,
|
|
425
|
-
sourceNode,
|
|
426
|
-
}, true);
|
|
450
|
+
this.fireFooterDetailedClickEvent(e, "quick-links-click");
|
|
427
451
|
}
|
|
428
452
|
|
|
429
453
|
_onTrendingClick(e: Event): void {
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
this.fireEvent("trending-click", {
|
|
433
|
-
name: sourceNode.innerText,
|
|
434
|
-
originalEvent: e,
|
|
435
|
-
sourceNode,
|
|
436
|
-
}, true);
|
|
454
|
+
this.fireFooterDetailedClickEvent(e, "trending-click");
|
|
437
455
|
}
|
|
438
456
|
|
|
439
457
|
_onAboutSapClick(e: Event): void {
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
this.fireEvent("about-sap-click", {
|
|
443
|
-
name: sourceNode.innerText,
|
|
444
|
-
originalEvent: e,
|
|
445
|
-
sourceNode,
|
|
446
|
-
}, true);
|
|
458
|
+
this.fireFooterDetailedClickEvent(e, "about-sap-click");
|
|
447
459
|
}
|
|
448
460
|
|
|
449
461
|
_onSiteInformationClick(e: Event): void {
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
this.fireEvent("site-information-click", {
|
|
453
|
-
name: sourceNode.innerText,
|
|
454
|
-
originalEvent: e,
|
|
455
|
-
sourceNode,
|
|
456
|
-
}, true);
|
|
462
|
+
this.fireFooterDetailedClickEvent(e, "site-information-click");
|
|
457
463
|
}
|
|
458
464
|
|
|
459
465
|
_onSocialMediaLinkClick(e: Event): void {
|
|
460
|
-
|
|
461
|
-
|
|
466
|
+
this.fireFooterDetailedClickEvent(e, "social-media-link-click");
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
fireFooterBaseEvent(e: Event, eventName: string): void {
|
|
470
|
+
this.fireEvent(eventName, { originalEvent: e }, true);
|
|
471
|
+
}
|
|
462
472
|
|
|
463
|
-
|
|
473
|
+
fireFooterDetailedClickEvent(e: Event, eventName: string): void {
|
|
474
|
+
const sourceNode = e.composedPath()[0] as HTMLElement;
|
|
475
|
+
const { innerText, dataset: { id, name } } = sourceNode;
|
|
464
476
|
|
|
465
|
-
this.fireEvent(
|
|
466
|
-
|
|
477
|
+
this.fireEvent(eventName, {
|
|
478
|
+
...(!!id?.length && { id }),
|
|
479
|
+
name: innerText.length ? innerText : name,
|
|
467
480
|
originalEvent: e,
|
|
468
481
|
sourceNode,
|
|
469
482
|
}, true);
|