@sapudex/web-components 2.29.0 → 2.31.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/FilterMenu.cy.tsx +39 -1
- package/cypress/specs/List.cy.tsx +171 -0
- package/cypress/specs/ListItem.cy.tsx +22 -26
- package/cypress/specs/PromoTile.cy.tsx +10 -0
- package/cypress/specs/ReviewItem.cy.tsx +48 -14
- package/cypress/specs/SecondaryNavigationDesktop.cy.tsx +12 -12
- package/cypress/specs/SelectBox.cy.tsx +76 -0
- package/cypress/support/component-imports.instrumented.ts +4 -0
- package/cypress/support/component-imports.src.ts +5 -1
- package/dist/Avatar.d.ts +1 -0
- package/dist/Avatar.js +9 -0
- package/dist/Avatar.js.map +1 -1
- package/dist/Breadcrumbs.d.ts +0 -4
- package/dist/Breadcrumbs.js +7 -16
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/BreadcrumbsTemplate.js +1 -1
- package/dist/BreadcrumbsTemplate.js.map +1 -1
- package/dist/FilterMenu.d.ts +2 -0
- package/dist/FilterMenu.js +2 -0
- package/dist/FilterMenu.js.map +1 -1
- package/dist/ImageGridTickerTemplate.js +2 -1
- package/dist/ImageGridTickerTemplate.js.map +1 -1
- package/dist/List.d.ts +4 -2
- package/dist/List.js +45 -12
- package/dist/List.js.map +1 -1
- package/dist/ListGroupHeader.d.ts +4 -0
- package/dist/ListGroupHeader.js +26 -1
- package/dist/ListGroupHeader.js.map +1 -1
- package/dist/ListGroupHeaderBase.js +1 -1
- package/dist/ListGroupHeaderBase.js.map +1 -1
- package/dist/ListItem.js +1 -1
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItemBase.d.ts +40 -3
- package/dist/ListItemBase.js +70 -9
- package/dist/ListItemBase.js.map +1 -1
- package/dist/MastheadCountrySelector.d.ts +3 -15
- package/dist/MastheadCountrySelector.js +28 -72
- package/dist/MastheadCountrySelector.js.map +1 -1
- package/dist/MastheadItem.d.ts +10 -2
- package/dist/MastheadItem.js +26 -15
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadMenu.d.ts +2 -2
- package/dist/MastheadMenu.js +9 -9
- package/dist/MastheadMenu.js.map +1 -1
- package/dist/MastheadMenuItem.d.ts +7 -0
- package/dist/MastheadMenuItem.js +3 -0
- package/dist/MastheadMenuItem.js.map +1 -1
- package/dist/MastheadMobileMenu.d.ts +2 -12
- package/dist/MastheadMobileMenu.js +31 -116
- package/dist/MastheadMobileMenu.js.map +1 -1
- package/dist/MastheadProfileMenu.js +1 -1
- package/dist/MastheadProfileMenu.js.map +1 -1
- package/dist/MastheadShell.d.ts +1 -6
- package/dist/MastheadShell.js +7 -44
- package/dist/MastheadShell.js.map +1 -1
- package/dist/Pagination.d.ts +14 -1
- package/dist/Pagination.js +40 -7
- package/dist/Pagination.js.map +1 -1
- package/dist/PromoTile.d.ts +8 -0
- package/dist/PromoTile.js +4 -0
- package/dist/PromoTile.js.map +1 -1
- package/dist/PromoTileTemplate.js +3 -1
- package/dist/PromoTileTemplate.js.map +1 -1
- package/dist/ReviewItem.d.ts +8 -7
- package/dist/ReviewItem.js +35 -36
- package/dist/ReviewItem.js.map +1 -1
- package/dist/ReviewItemTemplate.js +3 -1
- package/dist/ReviewItemTemplate.js.map +1 -1
- package/dist/SearchableListBase.d.ts +3 -0
- package/dist/SearchableListBase.js +37 -1
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SecondaryNavigationItem.js +7 -1
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SelectBase.js +28 -7
- package/dist/SelectBase.js.map +1 -1
- package/dist/SelectBox.js +0 -1
- package/dist/SelectBox.js.map +1 -1
- package/dist/TextField.d.ts +1 -1
- package/dist/TextField.js.map +1 -1
- package/dist/assets/{InputSuggestions-GMbG8xQ2.js → InputSuggestions-i2kFpCfC.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-IyZB_qzJ.js → ListItemStandardExpandableTextTemplate-C1ceDaxu.js} +1 -1
- package/dist/assets/{bundle.esm-Dg7j0PXg.js → bundle.esm-DQ3cxywT.js} +216 -216
- package/dist/assets/messagebundle_en-DWAgV5VH.js +1 -0
- package/dist/css/themes/BreadcrumbsPopover.css +1 -1
- package/dist/css/themes/Dropdown.css +1 -1
- package/dist/css/themes/FilterMenu.css +1 -1
- package/dist/css/themes/ImageGridTicker.css +1 -1
- package/dist/css/themes/Link.css +1 -1
- package/dist/css/themes/ListGroupHeader.css +1 -1
- package/dist/css/themes/ListItem.css +1 -1
- package/dist/css/themes/MastheadCountrySelector.css +1 -1
- package/dist/css/themes/MastheadItem.css +1 -1
- package/dist/css/themes/MastheadProfileMenu.css +1 -1
- package/dist/css/themes/MastheadShell.css +1 -1
- package/dist/css/themes/Modal.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/ReviewItem.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/Slider.css +1 -1
- package/dist/custom-elements-internal.json +986 -19
- package/dist/custom-elements.json +734 -13
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +6 -1
- package/dist/generated/i18n/i18n-defaults.js +6 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.js +17 -10
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ListItemTemplate.lit.js +32 -34
- package/dist/generated/templates/ListItemTemplate.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/MastheadItemTemplate.lit.js +33 -25
- 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/MastheadMobileMenuTemplate.lit.js +5 -5
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadShellTemplate.lit.js +9 -10
- package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SearchableListBaseTemplate.lit.js +1 -1
- package/dist/generated/templates/SearchableListBaseTemplate.lit.js.map +1 -1
- package/dist/generated/themes/BreadcrumbsPopover.css.d.ts +1 -1
- package/dist/generated/themes/BreadcrumbsPopover.css.js +1 -1
- package/dist/generated/themes/BreadcrumbsPopover.css.js.map +1 -1
- package/dist/generated/themes/Dropdown.css.d.ts +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.d.ts +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/ImageGridTicker.css.d.ts +1 -1
- package/dist/generated/themes/ImageGridTicker.css.js +1 -1
- package/dist/generated/themes/ImageGridTicker.css.js.map +1 -1
- package/dist/generated/themes/Link.css.d.ts +1 -1
- package/dist/generated/themes/Link.css.js +1 -1
- package/dist/generated/themes/Link.css.js.map +1 -1
- package/dist/generated/themes/ListGroupHeader.css.d.ts +1 -1
- package/dist/generated/themes/ListGroupHeader.css.js +1 -1
- package/dist/generated/themes/ListGroupHeader.css.js.map +1 -1
- package/dist/generated/themes/ListItem.css.d.ts +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/MastheadCountrySelector.css.d.ts +1 -1
- package/dist/generated/themes/MastheadCountrySelector.css.js +1 -1
- 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 +1 -1
- package/dist/generated/themes/MastheadItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.d.ts +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.js +1 -1
- 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 +1 -1
- package/dist/generated/themes/MastheadShell.css.js.map +1 -1
- package/dist/generated/themes/Modal.css.d.ts +1 -1
- package/dist/generated/themes/Modal.css.js +1 -1
- package/dist/generated/themes/Modal.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.d.ts +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 +1 -1
- package/dist/generated/themes/ReviewItem.css.js +1 -1
- package/dist/generated/themes/ReviewItem.css.js.map +1 -1
- package/dist/generated/themes/SecondaryNavigation.css.d.ts +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.d.ts +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.d.ts +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/Slider.css.d.ts +1 -1
- package/dist/generated/themes/Slider.css.js +1 -1
- package/dist/generated/themes/Slider.css.js.map +1 -1
- package/dist/messagebundle.properties +9 -0
- package/dist/messagebundle_en.properties +3 -0
- package/dist/types/List.d.ts +0 -2
- package/dist/types/List.js +0 -2
- package/dist/types/List.js.map +1 -1
- package/dist/types/SearchableListBase.d.ts +1 -0
- package/dist/types/SearchableListBase.js.map +1 -1
- package/dist/vscode.html-custom-data.json +144 -85
- package/dist/web-types.json +303 -83
- package/package.json +2 -1
- package/src/Avatar.ts +9 -0
- package/src/Breadcrumbs.ts +8 -20
- package/src/BreadcrumbsTemplate.tsx +1 -1
- package/src/FilterMenu.ts +4 -0
- package/src/ImageGridTickerTemplate.tsx +3 -1
- package/src/List.ts +51 -14
- package/src/ListGroupHeader.hbs +128 -17
- package/src/ListGroupHeader.ts +31 -1
- package/src/ListGroupHeaderBase.ts +1 -1
- package/src/ListItem.hbs +15 -2
- package/src/ListItem.ts +1 -1
- package/src/ListItemBase.ts +105 -7
- package/src/MastheadCountrySelector.hbs +6 -3
- package/src/MastheadCountrySelector.ts +31 -85
- package/src/MastheadItem.hbs +31 -23
- package/src/MastheadItem.ts +28 -18
- package/src/MastheadMenu.ts +10 -9
- package/src/MastheadMenuItem.hbs +1 -0
- package/src/MastheadMenuItem.ts +9 -0
- package/src/MastheadMobileMenu.hbs +5 -6
- package/src/MastheadMobileMenu.ts +34 -130
- package/src/MastheadProfileMenu.ts +1 -1
- package/src/MastheadShell.hbs +9 -11
- package/src/MastheadShell.ts +8 -50
- package/src/Pagination.ts +52 -8
- package/src/PromoTile.ts +10 -0
- package/src/PromoTileTemplate.tsx +4 -1
- package/src/ReviewItem.ts +45 -35
- package/src/ReviewItemTemplate.tsx +16 -14
- package/src/SearchableListBase.hbs +3 -0
- package/src/SearchableListBase.ts +52 -1
- package/src/SecondaryNavigationItem.ts +1 -2
- package/src/SelectBase.ts +33 -7
- package/src/SelectBox.ts +0 -1
- package/src/TextField.ts +1 -1
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/templates/ListGroupHeaderTemplate.lit.ts +17 -10
- package/src/generated/templates/ListItemTemplate.lit.ts +32 -34
- package/src/generated/templates/MastheadCountrySelectorTemplate.lit.ts +3 -3
- package/src/generated/templates/MastheadItemTemplate.lit.ts +33 -25
- package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +1 -1
- package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +5 -5
- package/src/generated/templates/MastheadShellTemplate.lit.ts +9 -10
- package/src/generated/templates/SearchableListBaseTemplate.lit.ts +1 -1
- package/src/generated/themes/BreadcrumbsPopover.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/ImageGridTicker.css.ts +1 -1
- package/src/generated/themes/Link.css.ts +1 -1
- package/src/generated/themes/ListGroupHeader.css.ts +1 -1
- package/src/generated/themes/ListItem.css.ts +1 -1
- package/src/generated/themes/MastheadCountrySelector.css.ts +1 -1
- package/src/generated/themes/MastheadItem.css.ts +1 -1
- package/src/generated/themes/MastheadProfileMenu.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/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/ReviewItem.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/Slider.css.ts +1 -1
- package/src/i18n/messagebundle.properties +9 -0
- package/src/i18n/messagebundle_en.properties +3 -0
- package/src/themes/BreadcrumbsPopover.css +2 -0
- package/src/themes/Dropdown.css +5 -1
- package/src/themes/FilterMenu.css +2 -2
- package/src/themes/ImageGridTicker.css +2 -26
- package/src/themes/Link.css +2 -3
- package/src/themes/ListGroupHeader.css +102 -15
- package/src/themes/ListItem.css +67 -15
- package/src/themes/MastheadCountrySelector.css +3 -1
- package/src/themes/MastheadItem.css +88 -3
- package/src/themes/MastheadProfileMenu.css +1 -9
- package/src/themes/MastheadShell.css +0 -2
- package/src/themes/Modal.css +2 -1
- package/src/themes/ReviewItem.css +18 -1
- package/src/themes/SecondaryNavigation.css +6 -3
- package/src/themes/SecondaryNavigationItem.css +11 -10
- package/src/themes/SecondaryNavigationSubItem.css +3 -2
- package/src/types/List.ts +0 -2
- package/src/types/SearchableListBase.ts +1 -0
- package/dist/assets/messagebundle_en-DfoXjU7o.js +0 -1
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
class="udex-masthead-mobile-menu__back-item"
|
|
39
39
|
@click="{{handleBackToMenuItems}}"
|
|
40
40
|
label="{{_clickedItem.innerText}}"
|
|
41
|
-
aria-
|
|
41
|
+
aria-haspopup="true"
|
|
42
42
|
type="Button"
|
|
43
43
|
is-back
|
|
44
44
|
has-border
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
@click="{{handleBackToCategories}}"
|
|
59
59
|
label="{{_category.category}}"
|
|
60
60
|
type="Button"
|
|
61
|
-
aria-
|
|
61
|
+
aria-haspopup="true"
|
|
62
62
|
has-border
|
|
63
63
|
icon-start
|
|
64
64
|
is-back
|
|
@@ -75,9 +75,8 @@
|
|
|
75
75
|
class="udex-masthead-mobile-menu__explore-btn"
|
|
76
76
|
id="{{exploreItem._id}}"
|
|
77
77
|
@click="{{handleExploreSapClick}}"
|
|
78
|
-
@keydown="{{handleLeftRightKeys}}"
|
|
79
78
|
accessible-role-text="button"
|
|
80
|
-
aria-
|
|
79
|
+
aria-haspopup="true"
|
|
81
80
|
type="Button"
|
|
82
81
|
first-level-btn
|
|
83
82
|
first-level
|
|
@@ -96,7 +95,7 @@
|
|
|
96
95
|
part="menu-item"
|
|
97
96
|
@click="{{../handleMenuItemClick}}"
|
|
98
97
|
label="{{this.innerText}}"
|
|
99
|
-
aria-
|
|
98
|
+
aria-haspopup="true"
|
|
100
99
|
id="{{this._id}}"
|
|
101
100
|
type="Button"
|
|
102
101
|
first-level-btn
|
|
@@ -141,7 +140,7 @@
|
|
|
141
140
|
@click="{{../handleMenuCategoryClick}}"
|
|
142
141
|
id="{{@index}}"
|
|
143
142
|
label="{{this.category}}"
|
|
144
|
-
aria-
|
|
143
|
+
aria-haspopup="true"
|
|
145
144
|
type="Button"
|
|
146
145
|
second-level-btn
|
|
147
146
|
second-level
|
|
@@ -7,7 +7,7 @@ import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
|
7
7
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
8
8
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
9
9
|
import {
|
|
10
|
-
|
|
10
|
+
isHome, isEnd, isTabNext, isTabPrevious,
|
|
11
11
|
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
12
12
|
import type { MenuItem, SubMenuLinkItem } from "./MastheadItem.js";
|
|
13
13
|
import type UDExMastheadItem from "./MastheadItem.js";
|
|
@@ -134,9 +134,6 @@ class UDExMastheadMobileMenu extends UI5Element {
|
|
|
134
134
|
@property({ type: Boolean })
|
|
135
135
|
_showCategoryItems!: boolean;
|
|
136
136
|
|
|
137
|
-
@property({ type: String })
|
|
138
|
-
_direction?: string;
|
|
139
|
-
|
|
140
137
|
@i18n("@sapudex/web-components")
|
|
141
138
|
static i18nBundle: I18nBundle;
|
|
142
139
|
|
|
@@ -202,63 +199,51 @@ class UDExMastheadMobileMenu extends UI5Element {
|
|
|
202
199
|
}
|
|
203
200
|
|
|
204
201
|
handlePressKey(e: KeyboardEvent) {
|
|
205
|
-
|
|
206
|
-
this.
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
this.handleEndKey(e);
|
|
210
|
-
}
|
|
202
|
+
const currentItem = e.target as UDExMastheadMenuItem;
|
|
203
|
+
const items = this.navigationItems;
|
|
204
|
+
const isFirstItem = currentItem === items[0];
|
|
205
|
+
const isLastItem = currentItem === items[items.length - 1];
|
|
211
206
|
|
|
212
|
-
|
|
213
|
-
this.handleRightArrow(e);
|
|
214
|
-
this.handleLeftArrow(e);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
handleRightArrow(e: KeyboardEvent) {
|
|
218
|
-
if (isRight(e)) {
|
|
207
|
+
if (isTabNext(e) && !isLastItem) {
|
|
219
208
|
e.preventDefault();
|
|
220
|
-
this.
|
|
221
|
-
if (this.isRtlDirection) {
|
|
222
|
-
this.moveToBackWithKeyboard(e);
|
|
223
|
-
} else {
|
|
224
|
-
this.moveToNextLevelWithKeyboard(e);
|
|
225
|
-
}
|
|
209
|
+
this.focusNextItem(currentItem);
|
|
226
210
|
}
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
handleLeftArrow(e: KeyboardEvent) {
|
|
230
|
-
if (isLeft(e)) {
|
|
211
|
+
if (isTabPrevious(e) && !isFirstItem) {
|
|
231
212
|
e.preventDefault();
|
|
232
|
-
this.
|
|
233
|
-
if (this.isRtlDirection) {
|
|
234
|
-
this.moveToNextLevelWithKeyboard(e);
|
|
235
|
-
} else {
|
|
236
|
-
this.moveToBackWithKeyboard(e);
|
|
237
|
-
}
|
|
213
|
+
this.focusPreviousItem(currentItem);
|
|
238
214
|
}
|
|
215
|
+
this.handleHomeKey(e);
|
|
216
|
+
this.handleEndKey(e);
|
|
239
217
|
}
|
|
240
218
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
}
|
|
219
|
+
focusNextItem(currentItem: UDExMastheadMenuItem): void {
|
|
220
|
+
const currentIndex = this.getCurrentIndex(currentItem);
|
|
221
|
+
const nextIndex = currentIndex + 1;
|
|
222
|
+
const currentListItem = this.getListItemByIndex(currentIndex);
|
|
223
|
+
let nextItem = this.getListItemByIndex(nextIndex);
|
|
247
224
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
e.preventDefault();
|
|
251
|
-
this.focusNextItem(e);
|
|
225
|
+
if (nextItem.type === UDExItemType.Heading) {
|
|
226
|
+
nextItem = this.getListItemByIndex(nextIndex + 1);
|
|
252
227
|
}
|
|
228
|
+
|
|
229
|
+
currentListItem._tabIndex = "-1";
|
|
230
|
+
nextItem._tabIndex = "0";
|
|
231
|
+
nextItem.focus();
|
|
253
232
|
}
|
|
254
233
|
|
|
255
|
-
|
|
256
|
-
const
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
234
|
+
focusPreviousItem(currentItem: UDExMastheadMenuItem): void {
|
|
235
|
+
const currentIndex = this.getCurrentIndex(currentItem);
|
|
236
|
+
const previousIndex = currentIndex - 1;
|
|
237
|
+
const currentListItem = this.getListItemByIndex(currentIndex);
|
|
238
|
+
let prevItem = this.getListItemByIndex(previousIndex);
|
|
239
|
+
|
|
240
|
+
if (prevItem.type === UDExItemType.Heading) {
|
|
241
|
+
prevItem = this.getListItemByIndex(this.navigationItems.length - 1);
|
|
261
242
|
}
|
|
243
|
+
|
|
244
|
+
currentListItem._tabIndex = "-1";
|
|
245
|
+
prevItem._tabIndex = "0";
|
|
246
|
+
prevItem.focus();
|
|
262
247
|
}
|
|
263
248
|
|
|
264
249
|
handleMobileItemEvent(e: PointerEvent) {
|
|
@@ -291,51 +276,6 @@ class UDExMastheadMobileMenu extends UI5Element {
|
|
|
291
276
|
}
|
|
292
277
|
}
|
|
293
278
|
|
|
294
|
-
moveToBackWithKeyboard(e: KeyboardEvent) {
|
|
295
|
-
const target = e.target as UDExMastheadMenuItem;
|
|
296
|
-
if (target.hasAttribute("is-back-to-nav")) {
|
|
297
|
-
this.showFirstLevelMenu();
|
|
298
|
-
this.setFocusItemByIndex(this.items.indexOf(this._clickedItem));
|
|
299
|
-
this.fireMobileItemEvent(e);
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
if (target.hasAttribute("is-back-to-categories")) {
|
|
303
|
-
this.showCategories();
|
|
304
|
-
this.setFocusItemByIndex(this._category.index);
|
|
305
|
-
this.fireMobileItemEvent(e);
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
if (target.hasAttribute("is-explore-back")) {
|
|
309
|
-
this.showFirstLevelMenu();
|
|
310
|
-
this.setFocusExploreBtn();
|
|
311
|
-
this._focusedItemIndex = 0;
|
|
312
|
-
this.fireMobileItemEvent(e);
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
moveToNextLevelWithKeyboard(e: KeyboardEvent) {
|
|
317
|
-
const target = e.target as UDExMastheadItem;
|
|
318
|
-
const item = this.getClickedItem(e.target as UDExMastheadItem);
|
|
319
|
-
|
|
320
|
-
if (target.hasAttribute("is-explore")) {
|
|
321
|
-
this._hideExploreSapBtn = true;
|
|
322
|
-
this._showCategoryItems = false;
|
|
323
|
-
this.fireMobileItemEvent(e);
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
if (target.hasAttribute("first-level-btn")) {
|
|
327
|
-
this.openCategories(item);
|
|
328
|
-
this.fireMobileItemEvent(e);
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
if (target.hasAttribute("second-level-btn")) {
|
|
332
|
-
this.openCategoryItems(e);
|
|
333
|
-
this.fireMobileItemEvent(e);
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
this.setFocusItemByIndex(0);
|
|
337
|
-
}
|
|
338
|
-
|
|
339
279
|
focusItemByIndex(index: number): void {
|
|
340
280
|
this.getListItemByIndex(index)?.focus();
|
|
341
281
|
this._shouldFocusItemByIndex = false;
|
|
@@ -346,38 +286,6 @@ class UDExMastheadMobileMenu extends UI5Element {
|
|
|
346
286
|
this._shouldFocusExploreBtn = false;
|
|
347
287
|
}
|
|
348
288
|
|
|
349
|
-
focusPreviousItem(e: KeyboardEvent): void {
|
|
350
|
-
const currentIndex = this.getCurrentIndex(e.target as UDExMastheadMenuItem);
|
|
351
|
-
const lastIndex = this.navigationItems.length - 1;
|
|
352
|
-
const previousIndex = currentIndex - 1 < 0 ? lastIndex : currentIndex - 1;
|
|
353
|
-
const currentItem = this.getListItemByIndex(currentIndex);
|
|
354
|
-
let prevItem = this.getListItemByIndex(previousIndex);
|
|
355
|
-
|
|
356
|
-
if (prevItem.type === UDExItemType.Heading) {
|
|
357
|
-
prevItem = this.getListItemByIndex(lastIndex);
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
currentItem._tabIndex = "-1";
|
|
361
|
-
prevItem._tabIndex = "0";
|
|
362
|
-
prevItem.focus();
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
focusNextItem(e: KeyboardEvent): void {
|
|
366
|
-
const currentIndex = this.getCurrentIndex(e.target as UDExMastheadMenuItem);
|
|
367
|
-
const navLength = this.navigationItems.length;
|
|
368
|
-
const nextIndex = currentIndex + 1 > navLength - 1 ? 0 : currentIndex + 1;
|
|
369
|
-
const currentItem = this.getListItemByIndex(currentIndex);
|
|
370
|
-
let nextItem = this.getListItemByIndex(nextIndex);
|
|
371
|
-
|
|
372
|
-
if (nextItem.type === UDExItemType.Heading) {
|
|
373
|
-
nextItem = this.getListItemByIndex(nextIndex + 1);
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
currentItem._tabIndex = "-1";
|
|
377
|
-
nextItem._tabIndex = "0";
|
|
378
|
-
nextItem.focus();
|
|
379
|
-
}
|
|
380
|
-
|
|
381
289
|
handleEndKey(e: KeyboardEvent): void {
|
|
382
290
|
if (isEnd(e)) {
|
|
383
291
|
e.preventDefault();
|
|
@@ -572,10 +480,6 @@ class UDExMastheadMobileMenu extends UI5Element {
|
|
|
572
480
|
return this.shadowRoot!.querySelector<UDExMastheadMenuItem>(".udex-masthead-mobile-menu__explore-btn")!;
|
|
573
481
|
}
|
|
574
482
|
|
|
575
|
-
get isRtlDirection(): boolean {
|
|
576
|
-
return this._direction === "rtl";
|
|
577
|
-
}
|
|
578
|
-
|
|
579
483
|
get navigationItems(): Array<UDExMastheadMenuItem> {
|
|
580
484
|
return Array.from(this.shadowRoot!.querySelectorAll<UDExMastheadMenuItem>("ul [udex-masthead-menu-item]"));
|
|
581
485
|
}
|
|
@@ -418,7 +418,7 @@ class UDExMastheadProfileMenu extends UI5Element {
|
|
|
418
418
|
}
|
|
419
419
|
|
|
420
420
|
toggleScrollableClass(el: HTMLElement, className: string, scrollBottom: number): void {
|
|
421
|
-
if (scrollBottom
|
|
421
|
+
if (scrollBottom <= 1) {
|
|
422
422
|
el.classList.remove(`${className}_scrollable`);
|
|
423
423
|
} else {
|
|
424
424
|
el.classList.add(`${className}_scrollable`);
|
package/src/MastheadShell.hbs
CHANGED
|
@@ -53,17 +53,6 @@
|
|
|
53
53
|
{{/if}}
|
|
54
54
|
|
|
55
55
|
<div class="{{rightMenuClass}}">
|
|
56
|
-
{{#if hasMobileMenuButtons}}
|
|
57
|
-
<udex-masthead-item
|
|
58
|
-
@ui5-item-click="{{handleOpenMobileMenu}}"
|
|
59
|
-
class="udex-masthead-shell__menu-btn"
|
|
60
|
-
accessible-role="button"
|
|
61
|
-
icon="menu2"
|
|
62
|
-
part="menu-open-btn"
|
|
63
|
-
accessible-name="menu">
|
|
64
|
-
<slot slot="dropdown" name="mobileMenu"></slot>
|
|
65
|
-
</udex-masthead-item>
|
|
66
|
-
{{/if}}
|
|
67
56
|
{{#if hasExploreSAP}}
|
|
68
57
|
<div
|
|
69
58
|
class="udex-masthead-shell__explore"
|
|
@@ -124,6 +113,15 @@
|
|
|
124
113
|
</div>
|
|
125
114
|
{{/if}}
|
|
126
115
|
{{#if hasMobileMenuButtons}}
|
|
116
|
+
<udex-masthead-item
|
|
117
|
+
@ui5-item-click="{{handleOpenMobileMenu}}"
|
|
118
|
+
class="udex-masthead-shell__menu-btn"
|
|
119
|
+
accessible-role="button"
|
|
120
|
+
icon="menu2"
|
|
121
|
+
part="menu-open-btn"
|
|
122
|
+
accessible-name="menu">
|
|
123
|
+
<slot slot="dropdown" name="mobileMenu"></slot>
|
|
124
|
+
</udex-masthead-item>
|
|
127
125
|
<udex-masthead-item
|
|
128
126
|
@keydown="{{handleEnterAndSpaceOnCloseBtn}}"
|
|
129
127
|
@ui5-item-click="{{closeMobileMenu}}"
|
package/src/MastheadShell.ts
CHANGED
|
@@ -9,7 +9,7 @@ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
|
9
9
|
import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
10
10
|
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
11
11
|
import {
|
|
12
|
-
|
|
12
|
+
isSpace, isEnter, isEscape,
|
|
13
13
|
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
14
14
|
import "@ui5/webcomponents-icons/dist/decline.js";
|
|
15
15
|
import "@ui5/webcomponents-icons/dist/menu2.js";
|
|
@@ -617,9 +617,16 @@ class UDExMastheadShell extends UI5Element {
|
|
|
617
617
|
this.setProfileMobileMode();
|
|
618
618
|
}
|
|
619
619
|
|
|
620
|
+
this.recalculateOpenDropdownPosition();
|
|
620
621
|
this._shouldHandleResize = true;
|
|
621
622
|
}
|
|
622
623
|
|
|
624
|
+
recalculateOpenDropdownPosition(): void {
|
|
625
|
+
this.getSelectedItems()
|
|
626
|
+
.filter(item => item.hasDropdownSlot && !item.isMobile && !item.isExploreBtn)
|
|
627
|
+
.forEach(item => item.recalculateDropdownPosition());
|
|
628
|
+
}
|
|
629
|
+
|
|
623
630
|
handleMobileMode(): void {
|
|
624
631
|
const rootHolder = this.getDomRef();
|
|
625
632
|
if (rootHolder) {
|
|
@@ -641,8 +648,6 @@ class UDExMastheadShell extends UI5Element {
|
|
|
641
648
|
|
|
642
649
|
handleKeyDown(e: KeyboardEvent): void {
|
|
643
650
|
e.stopPropagation();
|
|
644
|
-
this.handleLeftArrow(e);
|
|
645
|
-
this.handleRightArrow(e);
|
|
646
651
|
}
|
|
647
652
|
|
|
648
653
|
handleSearchKeyDown(e: CustomEvent): void {
|
|
@@ -658,30 +663,6 @@ class UDExMastheadShell extends UI5Element {
|
|
|
658
663
|
}
|
|
659
664
|
}
|
|
660
665
|
|
|
661
|
-
handleLeftArrow(e: KeyboardEvent): void {
|
|
662
|
-
if (isLeft(e)) {
|
|
663
|
-
const currentItem = e.target as UDExMastheadItem;
|
|
664
|
-
if (this.isNavigationItem(currentItem)) {
|
|
665
|
-
if (currentItem.selected) {
|
|
666
|
-
currentItem.closeDropdown();
|
|
667
|
-
}
|
|
668
|
-
this.focusPreviousMenuItem(currentItem);
|
|
669
|
-
}
|
|
670
|
-
}
|
|
671
|
-
}
|
|
672
|
-
|
|
673
|
-
handleRightArrow(e: KeyboardEvent): void {
|
|
674
|
-
if (isRight(e)) {
|
|
675
|
-
const currentItem = e.target as UDExMastheadItem;
|
|
676
|
-
if (this.isNavigationItem(currentItem)) {
|
|
677
|
-
if (currentItem.selected) {
|
|
678
|
-
currentItem.closeDropdown();
|
|
679
|
-
}
|
|
680
|
-
this.focusNextMenuItem(currentItem);
|
|
681
|
-
}
|
|
682
|
-
}
|
|
683
|
-
}
|
|
684
|
-
|
|
685
666
|
handleLogoClick(e: PointerEvent): void {
|
|
686
667
|
this.fireMastheadEvent("logo-click", e);
|
|
687
668
|
}
|
|
@@ -765,21 +746,6 @@ class UDExMastheadShell extends UI5Element {
|
|
|
765
746
|
input?.focus();
|
|
766
747
|
}
|
|
767
748
|
|
|
768
|
-
focusPreviousMenuItem(item: UDExMastheadItem): void {
|
|
769
|
-
const menuItems = this.menuItems;
|
|
770
|
-
const lastItemIndex = menuItems.length - 1;
|
|
771
|
-
const currentSelectedIndex = this.getCurrentIndex(item);
|
|
772
|
-
const previousSelectIndex = currentSelectedIndex - 1 < 0 ? lastItemIndex : currentSelectedIndex - 1;
|
|
773
|
-
menuItems[previousSelectIndex].focus();
|
|
774
|
-
}
|
|
775
|
-
|
|
776
|
-
focusNextMenuItem(item: UDExMastheadItem): void {
|
|
777
|
-
const menuItems = this.menuItems;
|
|
778
|
-
const currentSelectedIndex = this.getCurrentIndex(item);
|
|
779
|
-
const nextSelectIndex = currentSelectedIndex + 1 > menuItems.length - 1 ? 0 : currentSelectedIndex + 1;
|
|
780
|
-
menuItems[nextSelectIndex].focus();
|
|
781
|
-
}
|
|
782
|
-
|
|
783
749
|
resetSelectedItems(clickedId?: string): void {
|
|
784
750
|
this.getSelectedItems().forEach(item => {
|
|
785
751
|
if (item._id !== clickedId && item.selected) {
|
|
@@ -811,10 +777,6 @@ class UDExMastheadShell extends UI5Element {
|
|
|
811
777
|
}
|
|
812
778
|
}
|
|
813
779
|
|
|
814
|
-
getCurrentIndex(item: UDExMastheadItem): number {
|
|
815
|
-
return this.menuItems.indexOf(item);
|
|
816
|
-
}
|
|
817
|
-
|
|
818
780
|
getSelectedItems(): Array<UDExMastheadItem> {
|
|
819
781
|
const buttonsArray: Array<UDExMastheadItem> = [
|
|
820
782
|
...this.menuItems,
|
|
@@ -920,10 +882,6 @@ class UDExMastheadShell extends UI5Element {
|
|
|
920
882
|
return window.getComputedStyle(this.getDomRef()!).getPropertyValue(`${variableName}`);
|
|
921
883
|
}
|
|
922
884
|
|
|
923
|
-
isNavigationItem(item: UDExMastheadItem): boolean {
|
|
924
|
-
return this.menuItems.some(menuItem => menuItem === item);
|
|
925
|
-
}
|
|
926
|
-
|
|
927
885
|
setOverflowBody() {
|
|
928
886
|
const { body: { style } } = document;
|
|
929
887
|
this._shouldHandleResize = false;
|
package/src/Pagination.ts
CHANGED
|
@@ -40,7 +40,8 @@ export enum UDExPaginationType {
|
|
|
40
40
|
|
|
41
41
|
export enum UDExDisplayType {
|
|
42
42
|
desktop = "desktop",
|
|
43
|
-
mobile = "mobile"
|
|
43
|
+
mobile = "mobile",
|
|
44
|
+
auto = "auto"
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
type UDExPaginationChangeEventDetail = {
|
|
@@ -121,6 +122,14 @@ class UDExPagination extends UI5Element {
|
|
|
121
122
|
@property({ type: String })
|
|
122
123
|
_direction?: string;
|
|
123
124
|
|
|
125
|
+
/**
|
|
126
|
+
* Tracks the resolved display mode for auto display.
|
|
127
|
+
*
|
|
128
|
+
* @private
|
|
129
|
+
*/
|
|
130
|
+
@property({ noAttribute: true })
|
|
131
|
+
_effectiveDisplay?: `${UDExDisplayType}`;
|
|
132
|
+
|
|
124
133
|
/**
|
|
125
134
|
* Defines if the previous button is in pseudo-disabled.
|
|
126
135
|
*
|
|
@@ -140,6 +149,8 @@ class UDExPagination extends UI5Element {
|
|
|
140
149
|
@i18n("@sapudex/web-components")
|
|
141
150
|
static i18nBundle: I18nBundle;
|
|
142
151
|
|
|
152
|
+
static readonly AUTO_DISPLAY_BREAKPOINT = 980;
|
|
153
|
+
|
|
143
154
|
_pages: Page[];
|
|
144
155
|
_visiblePages: Page[];
|
|
145
156
|
|
|
@@ -150,6 +161,7 @@ class UDExPagination extends UI5Element {
|
|
|
150
161
|
_firstPageIndex!: number;
|
|
151
162
|
_lastPageIndex!: number;
|
|
152
163
|
_pageFocusedManually!: boolean;
|
|
164
|
+
_resizeHandler!: () => void;
|
|
153
165
|
|
|
154
166
|
constructor() {
|
|
155
167
|
super();
|
|
@@ -160,12 +172,44 @@ class UDExPagination extends UI5Element {
|
|
|
160
172
|
this._mobileDisplayNumber = 5;
|
|
161
173
|
this._desktopDisplayNumber = 10;
|
|
162
174
|
this._pageFocusedManually = false;
|
|
175
|
+
this._resizeHandler = this._handleResize.bind(this);
|
|
163
176
|
}
|
|
164
177
|
|
|
165
178
|
onEnterDOM() {
|
|
166
179
|
if (isDesktop()) {
|
|
167
180
|
this.setAttribute("desktop", "");
|
|
168
181
|
}
|
|
182
|
+
if (this.display === UDExDisplayType.auto) {
|
|
183
|
+
this._effectiveDisplay = this._displayType;
|
|
184
|
+
window.addEventListener("resize", this._resizeHandler);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
onExitDOM() {
|
|
189
|
+
window.removeEventListener("resize", this._resizeHandler);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
_handleResize(): void {
|
|
193
|
+
if (this.display === UDExDisplayType.auto) {
|
|
194
|
+
const newDisplay = this._displayType;
|
|
195
|
+
if (this._effectiveDisplay !== newDisplay) {
|
|
196
|
+
this._effectiveDisplay = newDisplay;
|
|
197
|
+
this._pages = [];
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
get _displayType(): `${UDExDisplayType}` {
|
|
203
|
+
return window.innerWidth > UDExPagination.AUTO_DISPLAY_BREAKPOINT
|
|
204
|
+
? UDExDisplayType.desktop
|
|
205
|
+
: UDExDisplayType.mobile;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
get effectiveDisplay(): `${UDExDisplayType}` {
|
|
209
|
+
if (this.display === UDExDisplayType.auto) {
|
|
210
|
+
return this._effectiveDisplay ?? (this._displayType);
|
|
211
|
+
}
|
|
212
|
+
return this.display;
|
|
169
213
|
}
|
|
170
214
|
|
|
171
215
|
onBeforeRendering(): void {
|
|
@@ -182,13 +226,13 @@ class UDExPagination extends UI5Element {
|
|
|
182
226
|
|
|
183
227
|
get typeFull(): boolean {
|
|
184
228
|
return (
|
|
185
|
-
this.type === UDExPaginationType.full || this.
|
|
229
|
+
this.type === UDExPaginationType.full || this.effectiveDisplay === UDExDisplayType.mobile
|
|
186
230
|
);
|
|
187
231
|
}
|
|
188
232
|
|
|
189
233
|
get typeShort(): boolean {
|
|
190
234
|
return (
|
|
191
|
-
this.type === UDExPaginationType.short && this.
|
|
235
|
+
this.type === UDExPaginationType.short && this.effectiveDisplay !== UDExDisplayType.mobile
|
|
192
236
|
);
|
|
193
237
|
}
|
|
194
238
|
|
|
@@ -265,19 +309,19 @@ class UDExPagination extends UI5Element {
|
|
|
265
309
|
if (this._direction === "rtl") {
|
|
266
310
|
classes = `${classes} udex-pagination--${this._direction}`;
|
|
267
311
|
}
|
|
268
|
-
if (!this.
|
|
312
|
+
if (!this.effectiveDisplay) {
|
|
269
313
|
return classes;
|
|
270
314
|
}
|
|
271
|
-
return `${classes} udex-pagination--${this.
|
|
315
|
+
return `${classes} udex-pagination--${this.effectiveDisplay} udex-pagination--${this.type}`;
|
|
272
316
|
}
|
|
273
317
|
|
|
274
318
|
get displayNumber(): number {
|
|
275
|
-
const lastIndex = this.
|
|
319
|
+
const lastIndex = this.effectiveDisplay === UDExDisplayType.mobile ? this._mobileDisplayNumber : this._desktopDisplayNumber;
|
|
276
320
|
return lastIndex;
|
|
277
321
|
}
|
|
278
322
|
|
|
279
323
|
get pageOffset(): number {
|
|
280
|
-
if (this.
|
|
324
|
+
if (this.effectiveDisplay === UDExDisplayType.mobile) {
|
|
281
325
|
return Math.floor(this._mobileDisplayNumber / 2);
|
|
282
326
|
}
|
|
283
327
|
return this._desktopDisplayNumber / 2 - 1;
|
|
@@ -364,7 +408,7 @@ class UDExPagination extends UI5Element {
|
|
|
364
408
|
return;
|
|
365
409
|
}
|
|
366
410
|
|
|
367
|
-
if (!this._pages.length || this._visiblePages.length
|
|
411
|
+
if (!this._pages.length || this._visiblePages.length !== this.displayNumber) {
|
|
368
412
|
this._firstPageIndex = 0;
|
|
369
413
|
this._lastPageIndex = pages > this.displayNumber ? this.displayNumber : pages;
|
|
370
414
|
this._pageFocusedManually = false;
|
package/src/PromoTile.ts
CHANGED
|
@@ -81,6 +81,15 @@ class UDExPromoTile extends UI5Element {
|
|
|
81
81
|
@slot({ type: HTMLElement })
|
|
82
82
|
pictogram?: Array<HTMLElement>;
|
|
83
83
|
|
|
84
|
+
/**
|
|
85
|
+
* Allows control over setting the CSS gradient.
|
|
86
|
+
*
|
|
87
|
+
* @default undefined
|
|
88
|
+
* @public
|
|
89
|
+
*/
|
|
90
|
+
@property({ type: String })
|
|
91
|
+
backgroundGradient?: string;
|
|
92
|
+
|
|
84
93
|
/**
|
|
85
94
|
* Defines the orientation of the Promo Tile component.
|
|
86
95
|
*
|
|
@@ -179,6 +188,7 @@ class UDExPromoTile extends UI5Element {
|
|
|
179
188
|
_colorMode: UDExPromoTileMode = UDExPromoTileMode.light;
|
|
180
189
|
_lightModeColors: Array<number> = [1, 2];
|
|
181
190
|
_darkModeColors: Array<number> = [7, 8, 9, 10];
|
|
191
|
+
_defaultBackgroundColor = "#FFF";
|
|
182
192
|
|
|
183
193
|
constructor() {
|
|
184
194
|
super();
|
|
@@ -12,7 +12,10 @@ export default function PromoTileTemplate(this: UDExPromoTile) {
|
|
|
12
12
|
<div
|
|
13
13
|
role="region"
|
|
14
14
|
class={`${rootClass}__container ${rootClass}--${this.orientation?.toLowerCase()} ${rootClass}--${this._colorMode}`}
|
|
15
|
-
aria-label={this.promoTileContainerText}
|
|
15
|
+
aria-label={this.promoTileContainerText}
|
|
16
|
+
style={this.backgroundGradient
|
|
17
|
+
? { backgroundImage: this.backgroundGradient, backgroundColor: this._defaultBackgroundColor }
|
|
18
|
+
: undefined}>
|
|
16
19
|
{this._showPictogram &&
|
|
17
20
|
<div
|
|
18
21
|
part="image"
|