@sapudex/web-components 2.30.0 → 2.32.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/Breadcrumbs.cy.tsx +26 -0
- package/cypress/specs/ListItem.cy.tsx +22 -26
- package/cypress/specs/MediaPlayer.cy.tsx +209 -0
- package/cypress/specs/PromoTile.cy.tsx +10 -0
- package/cypress/specs/SecondaryNavigationDesktop.cy.tsx +74 -21
- package/cypress/specs/SecondaryNavigationMobile.cy.tsx +58 -1
- package/cypress/specs/SelectBox.cy.tsx +76 -0
- package/cypress/specs/TabNavigation.cy.tsx +603 -39
- package/cypress/support/component-imports.instrumented.ts +2 -0
- package/cypress/support/component-imports.src.ts +2 -0
- package/dist/Breadcrumbs.d.ts +5 -4
- package/dist/Breadcrumbs.js +15 -17
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/BreadcrumbsTemplate.js +1 -1
- package/dist/BreadcrumbsTemplate.js.map +1 -1
- package/dist/List.js +3 -3
- package/dist/List.js.map +1 -1
- package/dist/ListItemBase.d.ts +0 -2
- package/dist/ListItemBase.js +0 -6
- 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 +1 -0
- package/dist/MastheadItem.js +12 -4
- package/dist/MastheadItem.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/MediaPlayer.d.ts +15 -0
- package/dist/MediaPlayer.js +28 -0
- package/dist/MediaPlayer.js.map +1 -1
- package/dist/Pagination.d.ts +14 -1
- package/dist/Pagination.js +39 -6
- 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/SecondaryNavigation.d.ts +12 -2
- package/dist/SecondaryNavigation.js +59 -8
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.d.ts +0 -1
- package/dist/SecondaryNavigationItem.js +7 -5
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SecondaryNavigationSubItem.js +1 -1
- package/dist/SecondaryNavigationSubItem.js.map +1 -1
- package/dist/SelectBase.js +28 -7
- package/dist/SelectBase.js.map +1 -1
- package/dist/Tab.d.ts +1 -1
- package/dist/Tab.js +3 -3
- package/dist/Tab.js.map +1 -1
- package/dist/TabNavigation.d.ts +64 -0
- package/dist/TabNavigation.js +124 -1
- package/dist/TabNavigation.js.map +1 -1
- package/dist/assets/{InputSuggestions-CaAXs3ok.js → InputSuggestions-CHLLTki3.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-CPqUBd--.js → ListItemStandardExpandableTextTemplate-vM1eIFe4.js} +1 -1
- package/dist/assets/{bundle.esm-L-7H6J4f.js → bundle.esm-fUZ1I3qm.js} +218 -218
- package/dist/assets/messagebundle_en-iNqRB1VZ.js +1 -0
- package/dist/css/themes/BreadcrumbsPopover.css +1 -1
- package/dist/css/themes/Dropdown.css +1 -1
- package/dist/css/themes/Link.css +1 -1
- package/dist/css/themes/ListGroupHeader.css +1 -1
- package/dist/css/themes/MastheadCountrySelector.css +1 -1
- package/dist/css/themes/MastheadItem.css +1 -1
- package/dist/css/themes/MastheadShell.css +1 -1
- package/dist/css/themes/RatingIndicator.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/css/themes/TabNavigation.css +1 -1
- package/dist/custom-elements-internal.json +407 -167
- package/dist/custom-elements.json +320 -152
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
- package/dist/generated/i18n/i18n-defaults.js +3 -2
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.js +12 -16
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ListItemTemplate.lit.js +32 -36
- 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/MastheadMenuItemTemplate.lit.js +1 -1
- package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +1 -1
- 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/SecondaryNavigationTemplate.lit.js +1 -1
- package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TabNavigationTemplate.lit.js +10 -8
- package/dist/generated/templates/TabNavigationTemplate.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/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/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/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/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/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/generated/themes/TabNavigation.css.d.ts +1 -1
- package/dist/generated/themes/TabNavigation.css.js +1 -1
- package/dist/generated/themes/TabNavigation.css.js.map +1 -1
- package/dist/messagebundle.properties +4 -1
- package/dist/messagebundle_en.properties +2 -1
- 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/vscode.html-custom-data.json +45 -76
- package/dist/web-types.json +96 -76
- package/package.json +2 -1
- package/src/Breadcrumbs.ts +17 -21
- package/src/BreadcrumbsTemplate.tsx +1 -1
- package/src/List.ts +3 -3
- package/src/ListGroupHeader.hbs +7 -11
- package/src/ListItem.hbs +0 -2
- package/src/ListItemBase.ts +0 -8
- package/src/MastheadCountrySelector.hbs +5 -2
- package/src/MastheadCountrySelector.ts +31 -85
- package/src/MastheadItem.ts +13 -4
- package/src/MastheadMenuItem.hbs +1 -0
- package/src/MastheadMenuItem.ts +9 -0
- package/src/MastheadMobileMenu.hbs +0 -1
- 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/MediaPlayer.ts +35 -0
- package/src/Pagination.ts +51 -7
- package/src/PromoTile.ts +10 -0
- package/src/PromoTileTemplate.tsx +4 -1
- package/src/SecondaryNavigation.hbs +1 -0
- package/src/SecondaryNavigation.ts +77 -9
- package/src/SecondaryNavigationItem.ts +1 -8
- package/src/SecondaryNavigationSubItem.ts +1 -1
- package/src/SelectBase.ts +33 -7
- package/src/Tab.ts +4 -4
- package/src/TabNavigation.hbs +15 -0
- package/src/TabNavigation.ts +134 -1
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/templates/ListGroupHeaderTemplate.lit.ts +12 -16
- package/src/generated/templates/ListItemTemplate.lit.ts +32 -36
- package/src/generated/templates/MastheadCountrySelectorTemplate.lit.ts +3 -3
- package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +1 -1
- package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +1 -1
- package/src/generated/templates/MastheadShellTemplate.lit.ts +9 -10
- package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +1 -1
- package/src/generated/templates/TabNavigationTemplate.lit.ts +10 -8
- package/src/generated/themes/BreadcrumbsPopover.css.ts +1 -1
- package/src/generated/themes/Dropdown.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/MastheadCountrySelector.css.ts +1 -1
- package/src/generated/themes/MastheadItem.css.ts +1 -1
- package/src/generated/themes/MastheadShell.css.ts +1 -1
- package/src/generated/themes/RatingIndicator.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/generated/themes/TabNavigation.css.ts +1 -1
- package/src/i18n/messagebundle.properties +4 -1
- package/src/i18n/messagebundle_en.properties +2 -1
- package/src/themes/BreadcrumbsPopover.css +4 -2
- package/src/themes/Dropdown.css +5 -1
- package/src/themes/Link.css +2 -3
- package/src/themes/ListGroupHeader.css +3 -11
- package/src/themes/MastheadCountrySelector.css +2 -2
- package/src/themes/MastheadItem.css +57 -0
- package/src/themes/MastheadShell.css +0 -2
- package/src/themes/SecondaryNavigation.css +6 -3
- package/src/themes/SecondaryNavigationItem.css +11 -10
- package/src/themes/SecondaryNavigationSubItem.css +3 -2
- package/src/themes/TabNavigation.css +27 -16
- package/src/types/List.ts +0 -2
- package/dist/assets/messagebundle_en-J-MHTtdL.js +0 -1
package/dist/Pagination.d.ts
CHANGED
|
@@ -13,7 +13,8 @@ export declare enum UDExPaginationType {
|
|
|
13
13
|
}
|
|
14
14
|
export declare enum UDExDisplayType {
|
|
15
15
|
desktop = "desktop",
|
|
16
|
-
mobile = "mobile"
|
|
16
|
+
mobile = "mobile",
|
|
17
|
+
auto = "auto"
|
|
17
18
|
}
|
|
18
19
|
type UDExPaginationChangeEventDetail = {
|
|
19
20
|
currentPage: number;
|
|
@@ -67,6 +68,12 @@ declare class UDExPagination extends UI5Element {
|
|
|
67
68
|
* @private
|
|
68
69
|
*/
|
|
69
70
|
_direction?: string;
|
|
71
|
+
/**
|
|
72
|
+
* Tracks the resolved display mode for auto display.
|
|
73
|
+
*
|
|
74
|
+
* @private
|
|
75
|
+
*/
|
|
76
|
+
_effectiveDisplay?: `${UDExDisplayType}`;
|
|
70
77
|
/**
|
|
71
78
|
* Defines if the previous button is in pseudo-disabled.
|
|
72
79
|
*
|
|
@@ -80,6 +87,7 @@ declare class UDExPagination extends UI5Element {
|
|
|
80
87
|
*/
|
|
81
88
|
_prevButtonPseudoDisabled: boolean;
|
|
82
89
|
static i18nBundle: I18nBundle;
|
|
90
|
+
static readonly AUTO_DISPLAY_BREAKPOINT = 980;
|
|
83
91
|
_pages: Page[];
|
|
84
92
|
_visiblePages: Page[];
|
|
85
93
|
_previousPageElement?: HTMLElement;
|
|
@@ -88,8 +96,13 @@ declare class UDExPagination extends UI5Element {
|
|
|
88
96
|
_firstPageIndex: number;
|
|
89
97
|
_lastPageIndex: number;
|
|
90
98
|
_pageFocusedManually: boolean;
|
|
99
|
+
_resizeHandler: () => void;
|
|
91
100
|
constructor();
|
|
92
101
|
onEnterDOM(): void;
|
|
102
|
+
onExitDOM(): void;
|
|
103
|
+
_handleResize(): void;
|
|
104
|
+
get _displayType(): `${UDExDisplayType}`;
|
|
105
|
+
get effectiveDisplay(): `${UDExDisplayType}`;
|
|
93
106
|
onBeforeRendering(): void;
|
|
94
107
|
get nextButtonDisabled(): boolean;
|
|
95
108
|
get prevButtonDisabled(): boolean;
|
package/dist/Pagination.js
CHANGED
|
@@ -28,6 +28,7 @@ export var UDExDisplayType;
|
|
|
28
28
|
(function (UDExDisplayType) {
|
|
29
29
|
UDExDisplayType["desktop"] = "desktop";
|
|
30
30
|
UDExDisplayType["mobile"] = "mobile";
|
|
31
|
+
UDExDisplayType["auto"] = "auto";
|
|
31
32
|
})(UDExDisplayType || (UDExDisplayType = {}));
|
|
32
33
|
/**
|
|
33
34
|
* @class
|
|
@@ -78,11 +79,39 @@ let UDExPagination = UDExPagination_1 = class UDExPagination extends UI5Element
|
|
|
78
79
|
this._mobileDisplayNumber = 5;
|
|
79
80
|
this._desktopDisplayNumber = 10;
|
|
80
81
|
this._pageFocusedManually = false;
|
|
82
|
+
this._resizeHandler = this._handleResize.bind(this);
|
|
81
83
|
}
|
|
82
84
|
onEnterDOM() {
|
|
83
85
|
if (isDesktop()) {
|
|
84
86
|
this.setAttribute("desktop", "");
|
|
85
87
|
}
|
|
88
|
+
if (this.display === UDExDisplayType.auto) {
|
|
89
|
+
this._effectiveDisplay = this._displayType;
|
|
90
|
+
window.addEventListener("resize", this._resizeHandler);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
onExitDOM() {
|
|
94
|
+
window.removeEventListener("resize", this._resizeHandler);
|
|
95
|
+
}
|
|
96
|
+
_handleResize() {
|
|
97
|
+
if (this.display === UDExDisplayType.auto) {
|
|
98
|
+
const newDisplay = this._displayType;
|
|
99
|
+
if (this._effectiveDisplay !== newDisplay) {
|
|
100
|
+
this._effectiveDisplay = newDisplay;
|
|
101
|
+
this._pages = [];
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
get _displayType() {
|
|
106
|
+
return window.innerWidth > UDExPagination_1.AUTO_DISPLAY_BREAKPOINT
|
|
107
|
+
? UDExDisplayType.desktop
|
|
108
|
+
: UDExDisplayType.mobile;
|
|
109
|
+
}
|
|
110
|
+
get effectiveDisplay() {
|
|
111
|
+
if (this.display === UDExDisplayType.auto) {
|
|
112
|
+
return this._effectiveDisplay ?? (this._displayType);
|
|
113
|
+
}
|
|
114
|
+
return this.display;
|
|
86
115
|
}
|
|
87
116
|
onBeforeRendering() {
|
|
88
117
|
this.setupPages(this.pages);
|
|
@@ -94,10 +123,10 @@ let UDExPagination = UDExPagination_1 = class UDExPagination extends UI5Element
|
|
|
94
123
|
return this.currentPageIndex === 0;
|
|
95
124
|
}
|
|
96
125
|
get typeFull() {
|
|
97
|
-
return (this.type === UDExPaginationType.full || this.
|
|
126
|
+
return (this.type === UDExPaginationType.full || this.effectiveDisplay === UDExDisplayType.mobile);
|
|
98
127
|
}
|
|
99
128
|
get typeShort() {
|
|
100
|
-
return (this.type === UDExPaginationType.short && this.
|
|
129
|
+
return (this.type === UDExPaginationType.short && this.effectiveDisplay !== UDExDisplayType.mobile);
|
|
101
130
|
}
|
|
102
131
|
get shortTextStart() {
|
|
103
132
|
if (!this.pages) {
|
|
@@ -160,17 +189,17 @@ let UDExPagination = UDExPagination_1 = class UDExPagination extends UI5Element
|
|
|
160
189
|
if (this._direction === "rtl") {
|
|
161
190
|
classes = `${classes} udex-pagination--${this._direction}`;
|
|
162
191
|
}
|
|
163
|
-
if (!this.
|
|
192
|
+
if (!this.effectiveDisplay) {
|
|
164
193
|
return classes;
|
|
165
194
|
}
|
|
166
|
-
return `${classes} udex-pagination--${this.
|
|
195
|
+
return `${classes} udex-pagination--${this.effectiveDisplay} udex-pagination--${this.type}`;
|
|
167
196
|
}
|
|
168
197
|
get displayNumber() {
|
|
169
|
-
const lastIndex = this.
|
|
198
|
+
const lastIndex = this.effectiveDisplay === UDExDisplayType.mobile ? this._mobileDisplayNumber : this._desktopDisplayNumber;
|
|
170
199
|
return lastIndex;
|
|
171
200
|
}
|
|
172
201
|
get pageOffset() {
|
|
173
|
-
if (this.
|
|
202
|
+
if (this.effectiveDisplay === UDExDisplayType.mobile) {
|
|
174
203
|
return Math.floor(this._mobileDisplayNumber / 2);
|
|
175
204
|
}
|
|
176
205
|
return this._desktopDisplayNumber / 2 - 1;
|
|
@@ -339,6 +368,7 @@ let UDExPagination = UDExPagination_1 = class UDExPagination extends UI5Element
|
|
|
339
368
|
}
|
|
340
369
|
}
|
|
341
370
|
};
|
|
371
|
+
UDExPagination.AUTO_DISPLAY_BREAKPOINT = 980;
|
|
342
372
|
__decorate([
|
|
343
373
|
property({ type: Number })
|
|
344
374
|
], UDExPagination.prototype, "pages", void 0);
|
|
@@ -354,6 +384,9 @@ __decorate([
|
|
|
354
384
|
__decorate([
|
|
355
385
|
property({ type: String })
|
|
356
386
|
], UDExPagination.prototype, "_direction", void 0);
|
|
387
|
+
__decorate([
|
|
388
|
+
property({ noAttribute: true })
|
|
389
|
+
], UDExPagination.prototype, "_effectiveDisplay", void 0);
|
|
357
390
|
__decorate([
|
|
358
391
|
property({ type: Boolean })
|
|
359
392
|
], UDExPagination.prototype, "_nextButtonPseudoDisabled", void 0);
|
package/dist/Pagination.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination.js","sourceRoot":"","sources":["../src/Pagination.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,WAAW,MAAM,iDAAiD,CAAC;AAC1E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EACL,EAAE,EACF,eAAe,EACf,QAAQ,EACR,aAAa,EACb,aAAa,EACb,SAAS,EACT,YAAY,EACZ,QAAQ,GACT,MAAM,mCAAmC,CAAC;AAC3C,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,WAAW;AACX,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAEzD,SAAS;AACT,OAAO,aAAa,MAAM,sCAAsC,CAAC;AAUjE,MAAM,CAAN,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,mCAAa,CAAA;IACb,qCAAe,CAAA;AACjB,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,QAG7B;AAED,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,sCAAmB,CAAA;IACnB,oCAAiB,CAAA;AACnB,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAMD;;;;;;;;;;;GAWG;AAgBH,IAAM,cAAc,sBAApB,MAAM,cAAe,SAAQ,UAAU;IA6ErC;QACE,KAAK,EAAE,CAAC;QA1EV;;;;;WAKG;QAED,UAAK,GAAW,CAAC,CAAC;QAEpB;;;;;WAKG;QAED,SAAI,GAA4B,kBAAkB,CAAC,IAAI,CAAC;QAE1D;;;;;WAKG;QAED,YAAO,GAAyB,eAAe,CAAC,OAAO,CAAC;QAE1D;;;;WAIG;QAED,qBAAgB,GAAW,CAAC,CAAC;QA0C7B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;IACpC,CAAC;IAED,UAAU;QACR,IAAI,SAAS,EAAE,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,gBAAgB,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,gBAAgB,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,eAAe,CAAC,MAAM,CACjF,CAAC;IACJ,CAAC;IAED,IAAI,SAAS;QACX,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,eAAe,CAAC,MAAM,CAClF,CAAC;IACJ,CAAC;IAED,IAAI,cAAc;QAChB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,GAAG,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;IACxC,CAAC;IAED,IAAI,YAAY;QACd,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,kBAAkB;QACpB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,IAAI,SAAS,CAAC,gBAAc,EAAE,EAAE,CAAC,GAAG,CAAC;IAC9C,CAAC;IAED,IAAI,wBAAwB;QAC1B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,6BAA6B,CAAC;QAC5C,CAAC;QACD,OAAO,GAAG,SAAS,CAAC,gBAAc,EAAE,YAAY,CAAC,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;IACnF,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,SAAS,CAAC,gBAAc,EAAE,eAAe,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,6BAA6B;QAC/B,OAAO,GAAG,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;IAC7G,CAAC;IAED,IAAI,0BAA0B;QAC5B,OAAO,SAAS,CAAC,gBAAc,EAAE,aAAa,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,0BAA0B;QAC5B,IAAI,IAAI,CAAC,yBAAyB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC9D,MAAM,qBAAqB,GAAG,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,gBAAc,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7G,OAAO,GAAG,SAAS,CAAC,gBAAc,EAAE,aAAa,CAAC,IAAI,qBAAqB,EAAE,CAAC;QAChF,CAAC;QACD,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,IAAI,SAAS,CAAC,gBAAc,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC,0BAA0B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC3M,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,gBAAc,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvF,CAAC;IAED,IAAI,sBAAsB;QACxB,IAAI,IAAI,CAAC,yBAAyB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC9D,MAAM,qBAAqB,GAAG,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,gBAAc,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7G,OAAO,GAAG,SAAS,CAAC,gBAAc,EAAE,SAAS,CAAC,IAAI,qBAAqB,EAAE,CAAC;QAC5E,CAAC;QACD,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,IAAI,SAAS,CAAC,gBAAc,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,0BAA0B,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;IAC3M,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,gBAAc,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,eAAe;QACjB,IAAI,OAAO,GAAG,iBAAiB,CAAC;QAChC,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAC9B,OAAO,GAAG,GAAG,OAAO,qBAAqB,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,OAAO,qBAAqB,IAAI,CAAC,OAAO,qBAAqB,IAAI,CAAC,IAAI,EAAE,CAAC;IACrF,CAAC;IAED,IAAI,aAAa;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,KAAK,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC;QACnH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,UAAU;QACZ,IAAI,IAAI,CAAC,OAAO,KAAK,eAAe,CAAC,MAAM,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,CAAC,qBAAqB,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,SAAS,CAAC,OAAoB;QAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;YAClD,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YACpD,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAClC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC;IACtC,CAAC;IAED,WAAW,CAAC,CAAQ;QAClB,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,KAAK,IAAI,WAAW,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YAChD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,WAAW,GAAG,CAAC,CAAC;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC9D,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,yBAAyB,GAAG,UAAU,CAAC;QAE5C,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,2BAA2B;QAC7B,OAAO,CAAC,IAAI,CAAC,yBAAyB,IAAI,IAAI,CAAC,kBAAkB,CAAC;IACpE,CAAC;IAED,IAAI,2BAA2B;QAC7B,OAAO,CAAC,IAAI,CAAC,yBAAyB,IAAI,IAAI,CAAC,kBAAkB,CAAC;IACpE,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;IACzC,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;IACzC,CAAC;IAED,WAAW,CAAC,CAAQ;QAClB,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,KAAK,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,yBAAyB,GAAG,WAAW,CAAC;QAE7C,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,UAAU,CAAC,KAAa;QACtB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;YAC5E,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;YAC9E,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAEpC,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAChD,CAAC;IAED,cAAc;QACZ,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,oBAAoB,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;YAC3D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;gBAChD,MAAM,SAAS,GAAG,KAAK,KAAK,IAAI,CAAC,gBAAgB,CAAC;gBAClD,MAAM,WAAW,GAAG,MAAM,CAAC;gBAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBACzD,YAAY,CAAC,IAAI,CAAC;oBAChB,KAAK;oBACL,KAAK,EAAE,KAAK,GAAG,CAAC;oBAChB,MAAM,EAAE,SAAS;oBACjB,cAAc;oBACd,GAAG,CAAC,SAAS,IAAI,EAAE,WAAW,EAAE,CAAC;iBAClC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,iBAAiB,CAAC,iBAA0B,KAAK;QAC/C,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;gBAClG,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC7G,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACtE,CAAC;IAED,qBAAqB,CAAC,KAAa;QACjC,MAAM,SAAS,GAAG,KAAK,KAAK,IAAI,CAAC,gBAAgB,CAAC;QAElD,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC;MACjC,IAAI,CAAC,kBAAkB,IAAI,KAAK,GAAG,CAAC,IAAI,SAAS,CAAC,gBAAc,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,gBAAc,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;MAChI,IAAI,CAAC,kBAAkB,IAAI,KAAK,GAAG,CAAC,IAAI,SAAS,CAAC,gBAAc,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAExF,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,WAAW,CAAC,CAAQ;QAClB,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC,CAAE,MAAM,CAAC,UAA0B,CAAC,CAAC,CAAC,MAAM,CAAC;QACzF,IAAI,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;YAC5C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,eAAe;QACb,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,eAAe;QACb,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAc,sCAAsC,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;QACpI,cAAc,EAAE,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,gBAAgB;QACd,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,4BAA4B,IAAI,CAAC,gBAAgB,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAChI,WAAW,EAAE,UAAU,EAAE,aAAa,CAAc,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;IACzE,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC,IAAI,EAAE,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,MAAM,sBAAsB,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAC3D,+BAA+B,CAChC,CAAC;QAEF,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,MAAM,eAAe,GAAW,MAAM;aACnC,gBAAgB,CAAC,sBAAsB,CAAC;aACxC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACjC,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC;QACpC,CAAC;IACH,CAAC;CACF,CAAA;AAvYG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6CACP;AASlB;IADD,QAAQ,EAAE;4CAC+C;AASxD;IADD,QAAQ,EAAE;+CAC+C;AAQxD;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wDACI;AAQ7B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kDACL;AAQpB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iEACU;AAQpC;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iEACU;AAG/B;IADN,IAAI,CAAC,yBAAyB,CAAC;wCACF;AAhE1B,cAAc;IAfnB,aAAa,CAAC;QACb,GAAG,EAAE,iBAAiB;QACtB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,aAAa;QACrB,QAAQ,EAAE,kBAAkB;QAC5B,YAAY,EAAE,CAAC,MAAM,CAAC;KACvB,CAAC;IACF;;;;;;OAMG;;IACF,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;GAC7B,cAAc,CAkZnB;AAED,cAAc,CAAC,MAAM,EAAE,CAAC;AAExB,eAAe,cAAc,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n OF,\n PAGINATION_PAGE,\n SELECTED,\n ACTIVATE_PAGE,\n PREVIOUS_PAGE,\n NEXT_PAGE,\n CURRENT_PAGE,\n DISABLED,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport Button from \"./Button.js\";\nimport translate from \"./utils/translate.js\";\n\n// Template\nimport PaginationTemplate from \"./PaginationTemplate.js\";\n\n// Styles\nimport PaginationCss from \"./generated/themes/Pagination.css.js\";\n\nexport interface Page {\n index: number;\n value: number;\n active: boolean;\n accessibleName: string;\n ariaCurrent?: string\n}\n\nexport enum UDExPaginationType {\n full = \"full\",\n short = \"short\",\n}\n\nexport enum UDExDisplayType {\n desktop = \"desktop\",\n mobile = \"mobile\"\n}\n\ntype UDExPaginationChangeEventDetail = {\n currentPage: number,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>udex-pagination</code> component is a pagination component used to navigate thought the pages.\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-pagination\n * @public\n */\n@customElement({\n tag: \"udex-pagination\",\n renderer: jsxRenderer,\n styles: PaginationCss,\n template: PaginationTemplate,\n dependencies: [Button],\n})\n/**\n * Fires when pagination item was clicked.\n *\n * @allowPreventDefault\n * @param {number} currentPage The current page number.\n * @public\n */\n@event(\"change\", { bubbles: true })\nclass UDExPagination extends UI5Element {\n eventDetails!: {\n \"change\": UDExPaginationChangeEventDetail,\n };\n /**\n * Defines number of pages.\n *\n * @public\n * @default 0\n */\n @property({ type: Number })\n pages: number = 0;\n\n /**\n * Defines type of pagination.\n *\n * @public\n * @default \"full\"\n */\n @property()\n type: `${UDExPaginationType}` = UDExPaginationType.full;\n\n /**\n * Define display purpose.\n *\n * @public\n * @default \"desktop\"\n */\n @property()\n display: `${UDExDisplayType}` = UDExDisplayType.desktop;\n\n /**\n * Current index of pagination page.\n * @public\n * @default 0\n */\n @property({ type: Number })\n currentPageIndex: number = 0;\n\n /**\n * Defines direction of the input.\n *\n * @private\n */\n @property({ type: String })\n _direction?: string;\n\n /**\n * Defines if the previous button is in pseudo-disabled.\n *\n * @private\n */\n @property({ type: Boolean })\n _nextButtonPseudoDisabled!: boolean;\n\n /**\n * Defines if the previous button is in pseudo-disabled.\n *\n * @private\n */\n @property({ type: Boolean })\n _prevButtonPseudoDisabled!: boolean;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _pages: Page[];\n _visiblePages: Page[];\n\n _previousPageElement?: HTMLElement;\n\n _mobileDisplayNumber: number;\n _desktopDisplayNumber: number;\n _firstPageIndex!: number;\n _lastPageIndex!: number;\n _pageFocusedManually!: boolean;\n\n constructor() {\n super();\n this.pages = 0;\n this._pages = [];\n this._visiblePages = [];\n this.currentPageIndex = 0;\n this._mobileDisplayNumber = 5;\n this._desktopDisplayNumber = 10;\n this._pageFocusedManually = false;\n }\n\n onEnterDOM() {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onBeforeRendering(): void {\n this.setupPages(this.pages);\n }\n\n get nextButtonDisabled(): boolean {\n return this.currentPageIndex + 1 === this.pages;\n }\n\n get prevButtonDisabled(): boolean {\n return this.currentPageIndex === 0;\n }\n\n get typeFull(): boolean {\n return (\n this.type === UDExPaginationType.full || this.display === UDExDisplayType.mobile\n );\n }\n\n get typeShort(): boolean {\n return (\n this.type === UDExPaginationType.short && this.display !== UDExDisplayType.mobile\n );\n }\n\n get shortTextStart(): string {\n if (!this.pages) {\n return \"\";\n }\n return `${this.currentPageIndex + 1}`;\n }\n\n get shortTextEnd(): string {\n if (!this.pages) {\n return \"\";\n }\n return `${this.pages}`;\n }\n\n get shortTextSeparator(): string {\n if (!this.pages) {\n return \"\";\n }\n return ` ${translate(UDExPagination, OF)} `;\n }\n\n get paginationAccessibleName(): string {\n if (this.typeShort) {\n return this.paginationShortAccessibleName;\n }\n return `${translate(UDExPagination, CURRENT_PAGE)} ${this.currentPageIndex + 1}`;\n }\n\n get pageAccessibleName(): string {\n return translate(UDExPagination, PAGINATION_PAGE);\n }\n\n get paginationShortAccessibleName(): string {\n return `${this.pageAccessibleName} ${this.shortTextStart} ${this.shortTextSeparator} ${this.shortTextEnd}`;\n }\n\n get activatePageAccessibleText() {\n return translate(UDExPagination, ACTIVATE_PAGE);\n }\n\n get previousPageAccessibleName(): string {\n if (this._prevButtonPseudoDisabled || this.prevButtonDisabled) {\n const effectiveDisabledText = this._prevButtonPseudoDisabled ? `${translate(UDExPagination, DISABLED)}` : \"\";\n return `${translate(UDExPagination, PREVIOUS_PAGE)} ${effectiveDisabledText}`;\n }\n return `${this.typeShort && this.nextButtonDisabled ? this.paginationShortAccessibleName : \"\"} ${translate(UDExPagination, PREVIOUS_PAGE)}. ${this.activatePageAccessibleText} ${this.currentPageIndex}`;\n }\n\n get previousBtnTooltip(): string {\n return !this.prevButtonDisabled ? `${translate(UDExPagination, PREVIOUS_PAGE)}` : \"\";\n }\n\n get nextPageAccessibleName(): string {\n if (this._nextButtonPseudoDisabled || this.nextButtonDisabled) {\n const effectiveDisabledText = this._nextButtonPseudoDisabled ? `${translate(UDExPagination, DISABLED)}` : \"\";\n return `${translate(UDExPagination, NEXT_PAGE)} ${effectiveDisabledText}`;\n }\n return `${this.typeShort && this.prevButtonDisabled ? this.paginationShortAccessibleName : \"\"} ${translate(UDExPagination, NEXT_PAGE)}. ${this.activatePageAccessibleText} ${this.currentPageIndex + 2}`;\n }\n\n get nextBtnTooltip(): string {\n return !this.nextButtonDisabled ? `${translate(UDExPagination, NEXT_PAGE)}` : \"\";\n }\n\n get pagination(): Page[] {\n return this._visiblePages;\n }\n\n get paginationClass(): string {\n let classes = \"udex-pagination\";\n if (this._direction === \"rtl\") {\n classes = `${classes} udex-pagination--${this._direction}`;\n }\n if (!this.display) {\n return classes;\n }\n return `${classes} udex-pagination--${this.display} udex-pagination--${this.type}`;\n }\n\n get displayNumber(): number {\n const lastIndex = this.display === UDExDisplayType.mobile ? this._mobileDisplayNumber : this._desktopDisplayNumber;\n return lastIndex;\n }\n\n get pageOffset(): number {\n if (this.display === UDExDisplayType.mobile) {\n return Math.floor(this._mobileDisplayNumber / 2);\n }\n return this._desktopDisplayNumber / 2 - 1;\n }\n\n setActive(element: HTMLElement): void {\n const pageIndex = element.getAttribute(\"data-index\")\n ? parseInt(element.getAttribute(\"data-index\") || \"\")\n : null;\n if (pageIndex === null) {\n return;\n }\n\n this.currentPageIndex = pageIndex;\n this._pageFocusedManually = true;\n this._previousPageElement = element;\n }\n\n setNextPage(e: Event): void {\n e.preventDefault();\n const currentPage = this.currentPageIndex ?? 1;\n if (this.pages && currentPage >= this.pages - 1) {\n return;\n }\n\n this.currentPageIndex = currentPage + 1;\n const isLastPage = this.currentPageIndex === (this.pages - 1);\n this._pageFocusedManually = false;\n this._nextButtonPseudoDisabled = isLastPage;\n\n if (isLastPage) {\n if (this.typeShort) {\n this.focusActiveArrow();\n } else {\n this.focusActivePage();\n }\n }\n\n this.emitChangeEvent();\n }\n\n get effectiveNextButtonDisabled(): boolean {\n return !this._nextButtonPseudoDisabled && this.nextButtonDisabled;\n }\n\n get effectivePrevButtonDisabled(): boolean {\n return !this._prevButtonPseudoDisabled && this.prevButtonDisabled;\n }\n\n handlePrevFocusOut(): void {\n this._prevButtonPseudoDisabled = false;\n }\n\n handleNextFocusOut(): void {\n this._nextButtonPseudoDisabled = false;\n }\n\n setPrevPage(e: Event): void {\n e.preventDefault();\n const currentPage = this.currentPageIndex ?? 1;\n if (this.pages && currentPage <= 0) {\n return;\n }\n\n this.currentPageIndex -= 1;\n const isFirstPage = this.currentPageIndex === 0;\n this._pageFocusedManually = false;\n this._prevButtonPseudoDisabled = isFirstPage;\n\n if (isFirstPage) {\n if (this.typeShort) {\n this.focusActiveArrow();\n } else {\n this.focusActivePage();\n }\n }\n\n this.emitChangeEvent();\n }\n\n setupPages(pages: number) {\n if (!pages) {\n this._visiblePages = [];\n return;\n }\n\n if (!this._pages.length || this._visiblePages.length !== this.displayNumber) {\n this._firstPageIndex = 0;\n this._lastPageIndex = pages > this.displayNumber ? this.displayNumber : pages;\n this._pageFocusedManually = false;\n }\n\n this._pages = this.setupPagesData();\n\n if (this.currentPageIndex < this._firstPageIndex || this.currentPageIndex - this._firstPageIndex <= this.pageOffset) {\n this._visiblePages = this.shiftVisiblePages(true);\n return;\n }\n\n this._visiblePages = this.shiftVisiblePages();\n }\n\n setupPagesData(): Page[] {\n const updatedPages = [];\n if (this.pages) {\n this._previousPageElement?.removeAttribute(\"aria-current\");\n for (let index = 0; index < this.pages; index++) {\n const isCurrent = index === this.currentPageIndex;\n const ariaCurrent = \"page\";\n const accessibleName = this.getPageAccessibleName(index);\n updatedPages.push({\n index,\n value: index + 1,\n active: isCurrent,\n accessibleName,\n ...(isCurrent && { ariaCurrent }),\n });\n }\n }\n return updatedPages;\n }\n\n shiftVisiblePages(shiftBackwards: boolean = false): Page[] {\n if (shiftBackwards) {\n while (this.currentPageIndex - this._firstPageIndex < this.pageOffset && this._firstPageIndex > 0) {\n this._firstPageIndex--;\n this._lastPageIndex--;\n }\n } else {\n while (this._lastPageIndex - this.currentPageIndex - 1 < this.pageOffset && this._lastPageIndex < this.pages) {\n this._firstPageIndex++;\n this._lastPageIndex++;\n }\n }\n return this._pages.slice(this._firstPageIndex, this._lastPageIndex);\n }\n\n getPageAccessibleName(index: number): string {\n const isCurrent = index === this.currentPageIndex;\n\n const accessibleName = isCurrent ? `\n ${this.pageAccessibleName} ${index + 1} ${translate(UDExPagination, OF)} ${this.pages}, ${translate(UDExPagination, SELECTED)}` : `\n ${this.pageAccessibleName} ${index + 1} ${translate(UDExPagination, OF)} ${this.pages}`;\n\n return accessibleName;\n }\n\n onPageClick(e: Event) {\n e.preventDefault();\n const target = e.target as HTMLElement;\n const element = target !== e.currentTarget ? (target.parentNode as HTMLElement) : target;\n if (element.getAttribute(\"active\") !== null) {\n return;\n }\n this.setActive(element);\n this.emitChangeEvent();\n }\n\n emitChangeEvent() {\n this.fireDecoratorEvent(\"change\", { currentPage: this.currentPageIndex + 1 });\n }\n\n focusActivePage() {\n const activePageItem = this.shadowRoot?.querySelector<HTMLElement>(`.udex-pagination__page[data-index=\"${this.currentPageIndex}\"]`);\n activePageItem?.focus();\n }\n\n focusActiveArrow() {\n const activeArrow = this.shadowRoot?.querySelector(`.udex-pagination__arrow--${this.currentPageIndex === 0 ? \"next\" : \"prev\"}`);\n activeArrow?.shadowRoot?.querySelector<HTMLElement>(\"button\")?.focus();\n }\n\n onAfterRendering() {\n if (this._pageFocusedManually) {\n this.focusActivePage();\n }\n\n if (this.type === UDExPaginationType.full) {\n return;\n }\n\n const shortPaginationElement = this.shadowRoot?.querySelector<HTMLElement>(\n \".udex-pagination__item--short\",\n );\n\n if (!shortPaginationElement) {\n return;\n }\n\n const directionStyles: string = window\n .getComputedStyle(shortPaginationElement)\n .getPropertyValue(\"direction\");\n if (!directionStyles) {\n this._direction = \"ltr\";\n } else {\n this._direction = directionStyles;\n }\n }\n}\n\nUDExPagination.define();\n\nexport default UDExPagination;\nexport type { UDExPaginationChangeEventDetail };\n"]}
|
|
1
|
+
{"version":3,"file":"Pagination.js","sourceRoot":"","sources":["../src/Pagination.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n OF,\n PAGINATION_PAGE,\n SELECTED,\n ACTIVATE_PAGE,\n PREVIOUS_PAGE,\n NEXT_PAGE,\n CURRENT_PAGE,\n DISABLED,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport Button from \"./Button.js\";\nimport translate from \"./utils/translate.js\";\n\n// Template\nimport PaginationTemplate from \"./PaginationTemplate.js\";\n\n// Styles\nimport PaginationCss from \"./generated/themes/Pagination.css.js\";\n\nexport interface Page {\n index: number;\n value: number;\n active: boolean;\n accessibleName: string;\n ariaCurrent?: string\n}\n\nexport enum UDExPaginationType {\n full = \"full\",\n short = \"short\",\n}\n\nexport enum UDExDisplayType {\n desktop = \"desktop\",\n mobile = \"mobile\",\n auto = \"auto\"\n}\n\ntype UDExPaginationChangeEventDetail = {\n currentPage: number,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>udex-pagination</code> component is a pagination component used to navigate thought the pages.\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-pagination\n * @public\n */\n@customElement({\n tag: \"udex-pagination\",\n renderer: jsxRenderer,\n styles: PaginationCss,\n template: PaginationTemplate,\n dependencies: [Button],\n})\n/**\n * Fires when pagination item was clicked.\n *\n * @allowPreventDefault\n * @param {number} currentPage The current page number.\n * @public\n */\n@event(\"change\", { bubbles: true })\nclass UDExPagination extends UI5Element {\n eventDetails!: {\n \"change\": UDExPaginationChangeEventDetail,\n };\n /**\n * Defines number of pages.\n *\n * @public\n * @default 0\n */\n @property({ type: Number })\n pages: number = 0;\n\n /**\n * Defines type of pagination.\n *\n * @public\n * @default \"full\"\n */\n @property()\n type: `${UDExPaginationType}` = UDExPaginationType.full;\n\n /**\n * Define display purpose.\n *\n * @public\n * @default \"desktop\"\n */\n @property()\n display: `${UDExDisplayType}` = UDExDisplayType.desktop;\n\n /**\n * Current index of pagination page.\n * @public\n * @default 0\n */\n @property({ type: Number })\n currentPageIndex: number = 0;\n\n /**\n * Defines direction of the input.\n *\n * @private\n */\n @property({ type: String })\n _direction?: string;\n\n /**\n * Tracks the resolved display mode for auto display.\n *\n * @private\n */\n @property({ noAttribute: true })\n _effectiveDisplay?: `${UDExDisplayType}`;\n\n /**\n * Defines if the previous button is in pseudo-disabled.\n *\n * @private\n */\n @property({ type: Boolean })\n _nextButtonPseudoDisabled!: boolean;\n\n /**\n * Defines if the previous button is in pseudo-disabled.\n *\n * @private\n */\n @property({ type: Boolean })\n _prevButtonPseudoDisabled!: boolean;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n static readonly AUTO_DISPLAY_BREAKPOINT = 980;\n\n _pages: Page[];\n _visiblePages: Page[];\n\n _previousPageElement?: HTMLElement;\n\n _mobileDisplayNumber: number;\n _desktopDisplayNumber: number;\n _firstPageIndex!: number;\n _lastPageIndex!: number;\n _pageFocusedManually!: boolean;\n _resizeHandler!: () => void;\n\n constructor() {\n super();\n this.pages = 0;\n this._pages = [];\n this._visiblePages = [];\n this.currentPageIndex = 0;\n this._mobileDisplayNumber = 5;\n this._desktopDisplayNumber = 10;\n this._pageFocusedManually = false;\n this._resizeHandler = this._handleResize.bind(this);\n }\n\n onEnterDOM() {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n if (this.display === UDExDisplayType.auto) {\n this._effectiveDisplay = this._displayType;\n window.addEventListener(\"resize\", this._resizeHandler);\n }\n }\n\n onExitDOM() {\n window.removeEventListener(\"resize\", this._resizeHandler);\n }\n\n _handleResize(): void {\n if (this.display === UDExDisplayType.auto) {\n const newDisplay = this._displayType;\n if (this._effectiveDisplay !== newDisplay) {\n this._effectiveDisplay = newDisplay;\n this._pages = [];\n }\n }\n }\n\n get _displayType(): `${UDExDisplayType}` {\n return window.innerWidth > UDExPagination.AUTO_DISPLAY_BREAKPOINT\n ? UDExDisplayType.desktop\n : UDExDisplayType.mobile;\n }\n\n get effectiveDisplay(): `${UDExDisplayType}` {\n if (this.display === UDExDisplayType.auto) {\n return this._effectiveDisplay ?? (this._displayType);\n }\n return this.display;\n }\n\n onBeforeRendering(): void {\n this.setupPages(this.pages);\n }\n\n get nextButtonDisabled(): boolean {\n return this.currentPageIndex + 1 === this.pages;\n }\n\n get prevButtonDisabled(): boolean {\n return this.currentPageIndex === 0;\n }\n\n get typeFull(): boolean {\n return (\n this.type === UDExPaginationType.full || this.effectiveDisplay === UDExDisplayType.mobile\n );\n }\n\n get typeShort(): boolean {\n return (\n this.type === UDExPaginationType.short && this.effectiveDisplay !== UDExDisplayType.mobile\n );\n }\n\n get shortTextStart(): string {\n if (!this.pages) {\n return \"\";\n }\n return `${this.currentPageIndex + 1}`;\n }\n\n get shortTextEnd(): string {\n if (!this.pages) {\n return \"\";\n }\n return `${this.pages}`;\n }\n\n get shortTextSeparator(): string {\n if (!this.pages) {\n return \"\";\n }\n return ` ${translate(UDExPagination, OF)} `;\n }\n\n get paginationAccessibleName(): string {\n if (this.typeShort) {\n return this.paginationShortAccessibleName;\n }\n return `${translate(UDExPagination, CURRENT_PAGE)} ${this.currentPageIndex + 1}`;\n }\n\n get pageAccessibleName(): string {\n return translate(UDExPagination, PAGINATION_PAGE);\n }\n\n get paginationShortAccessibleName(): string {\n return `${this.pageAccessibleName} ${this.shortTextStart} ${this.shortTextSeparator} ${this.shortTextEnd}`;\n }\n\n get activatePageAccessibleText() {\n return translate(UDExPagination, ACTIVATE_PAGE);\n }\n\n get previousPageAccessibleName(): string {\n if (this._prevButtonPseudoDisabled || this.prevButtonDisabled) {\n const effectiveDisabledText = this._prevButtonPseudoDisabled ? `${translate(UDExPagination, DISABLED)}` : \"\";\n return `${translate(UDExPagination, PREVIOUS_PAGE)} ${effectiveDisabledText}`;\n }\n return `${this.typeShort && this.nextButtonDisabled ? this.paginationShortAccessibleName : \"\"} ${translate(UDExPagination, PREVIOUS_PAGE)}. ${this.activatePageAccessibleText} ${this.currentPageIndex}`;\n }\n\n get previousBtnTooltip(): string {\n return !this.prevButtonDisabled ? `${translate(UDExPagination, PREVIOUS_PAGE)}` : \"\";\n }\n\n get nextPageAccessibleName(): string {\n if (this._nextButtonPseudoDisabled || this.nextButtonDisabled) {\n const effectiveDisabledText = this._nextButtonPseudoDisabled ? `${translate(UDExPagination, DISABLED)}` : \"\";\n return `${translate(UDExPagination, NEXT_PAGE)} ${effectiveDisabledText}`;\n }\n return `${this.typeShort && this.prevButtonDisabled ? this.paginationShortAccessibleName : \"\"} ${translate(UDExPagination, NEXT_PAGE)}. ${this.activatePageAccessibleText} ${this.currentPageIndex + 2}`;\n }\n\n get nextBtnTooltip(): string {\n return !this.nextButtonDisabled ? `${translate(UDExPagination, NEXT_PAGE)}` : \"\";\n }\n\n get pagination(): Page[] {\n return this._visiblePages;\n }\n\n get paginationClass(): string {\n let classes = \"udex-pagination\";\n if (this._direction === \"rtl\") {\n classes = `${classes} udex-pagination--${this._direction}`;\n }\n if (!this.effectiveDisplay) {\n return classes;\n }\n return `${classes} udex-pagination--${this.effectiveDisplay} udex-pagination--${this.type}`;\n }\n\n get displayNumber(): number {\n const lastIndex = this.effectiveDisplay === UDExDisplayType.mobile ? this._mobileDisplayNumber : this._desktopDisplayNumber;\n return lastIndex;\n }\n\n get pageOffset(): number {\n if (this.effectiveDisplay === UDExDisplayType.mobile) {\n return Math.floor(this._mobileDisplayNumber / 2);\n }\n return this._desktopDisplayNumber / 2 - 1;\n }\n\n setActive(element: HTMLElement): void {\n const pageIndex = element.getAttribute(\"data-index\")\n ? parseInt(element.getAttribute(\"data-index\") || \"\")\n : null;\n if (pageIndex === null) {\n return;\n }\n\n this.currentPageIndex = pageIndex;\n this._pageFocusedManually = true;\n this._previousPageElement = element;\n }\n\n setNextPage(e: Event): void {\n e.preventDefault();\n const currentPage = this.currentPageIndex ?? 1;\n if (this.pages && currentPage >= this.pages - 1) {\n return;\n }\n\n this.currentPageIndex = currentPage + 1;\n const isLastPage = this.currentPageIndex === (this.pages - 1);\n this._pageFocusedManually = false;\n this._nextButtonPseudoDisabled = isLastPage;\n\n if (isLastPage) {\n if (this.typeShort) {\n this.focusActiveArrow();\n } else {\n this.focusActivePage();\n }\n }\n\n this.emitChangeEvent();\n }\n\n get effectiveNextButtonDisabled(): boolean {\n return !this._nextButtonPseudoDisabled && this.nextButtonDisabled;\n }\n\n get effectivePrevButtonDisabled(): boolean {\n return !this._prevButtonPseudoDisabled && this.prevButtonDisabled;\n }\n\n handlePrevFocusOut(): void {\n this._prevButtonPseudoDisabled = false;\n }\n\n handleNextFocusOut(): void {\n this._nextButtonPseudoDisabled = false;\n }\n\n setPrevPage(e: Event): void {\n e.preventDefault();\n const currentPage = this.currentPageIndex ?? 1;\n if (this.pages && currentPage <= 0) {\n return;\n }\n\n this.currentPageIndex -= 1;\n const isFirstPage = this.currentPageIndex === 0;\n this._pageFocusedManually = false;\n this._prevButtonPseudoDisabled = isFirstPage;\n\n if (isFirstPage) {\n if (this.typeShort) {\n this.focusActiveArrow();\n } else {\n this.focusActivePage();\n }\n }\n\n this.emitChangeEvent();\n }\n\n setupPages(pages: number) {\n if (!pages) {\n this._visiblePages = [];\n return;\n }\n\n if (!this._pages.length || this._visiblePages.length !== this.displayNumber) {\n this._firstPageIndex = 0;\n this._lastPageIndex = pages > this.displayNumber ? this.displayNumber : pages;\n this._pageFocusedManually = false;\n }\n\n this._pages = this.setupPagesData();\n\n if (this.currentPageIndex < this._firstPageIndex || this.currentPageIndex - this._firstPageIndex <= this.pageOffset) {\n this._visiblePages = this.shiftVisiblePages(true);\n return;\n }\n\n this._visiblePages = this.shiftVisiblePages();\n }\n\n setupPagesData(): Page[] {\n const updatedPages = [];\n if (this.pages) {\n this._previousPageElement?.removeAttribute(\"aria-current\");\n for (let index = 0; index < this.pages; index++) {\n const isCurrent = index === this.currentPageIndex;\n const ariaCurrent = \"page\";\n const accessibleName = this.getPageAccessibleName(index);\n updatedPages.push({\n index,\n value: index + 1,\n active: isCurrent,\n accessibleName,\n ...(isCurrent && { ariaCurrent }),\n });\n }\n }\n return updatedPages;\n }\n\n shiftVisiblePages(shiftBackwards: boolean = false): Page[] {\n if (shiftBackwards) {\n while (this.currentPageIndex - this._firstPageIndex < this.pageOffset && this._firstPageIndex > 0) {\n this._firstPageIndex--;\n this._lastPageIndex--;\n }\n } else {\n while (this._lastPageIndex - this.currentPageIndex - 1 < this.pageOffset && this._lastPageIndex < this.pages) {\n this._firstPageIndex++;\n this._lastPageIndex++;\n }\n }\n return this._pages.slice(this._firstPageIndex, this._lastPageIndex);\n }\n\n getPageAccessibleName(index: number): string {\n const isCurrent = index === this.currentPageIndex;\n\n const accessibleName = isCurrent ? `\n ${this.pageAccessibleName} ${index + 1} ${translate(UDExPagination, OF)} ${this.pages}, ${translate(UDExPagination, SELECTED)}` : `\n ${this.pageAccessibleName} ${index + 1} ${translate(UDExPagination, OF)} ${this.pages}`;\n\n return accessibleName;\n }\n\n onPageClick(e: Event) {\n e.preventDefault();\n const target = e.target as HTMLElement;\n const element = target !== e.currentTarget ? (target.parentNode as HTMLElement) : target;\n if (element.getAttribute(\"active\") !== null) {\n return;\n }\n this.setActive(element);\n this.emitChangeEvent();\n }\n\n emitChangeEvent() {\n this.fireDecoratorEvent(\"change\", { currentPage: this.currentPageIndex + 1 });\n }\n\n focusActivePage() {\n const activePageItem = this.shadowRoot?.querySelector<HTMLElement>(`.udex-pagination__page[data-index=\"${this.currentPageIndex}\"]`);\n activePageItem?.focus();\n }\n\n focusActiveArrow() {\n const activeArrow = this.shadowRoot?.querySelector(`.udex-pagination__arrow--${this.currentPageIndex === 0 ? \"next\" : \"prev\"}`);\n activeArrow?.shadowRoot?.querySelector<HTMLElement>(\"button\")?.focus();\n }\n\n onAfterRendering() {\n if (this._pageFocusedManually) {\n this.focusActivePage();\n }\n\n if (this.type === UDExPaginationType.full) {\n return;\n }\n\n const shortPaginationElement = this.shadowRoot?.querySelector<HTMLElement>(\n \".udex-pagination__item--short\",\n );\n\n if (!shortPaginationElement) {\n return;\n }\n\n const directionStyles: string = window\n .getComputedStyle(shortPaginationElement)\n .getPropertyValue(\"direction\");\n if (!directionStyles) {\n this._direction = \"ltr\";\n } else {\n this._direction = directionStyles;\n }\n }\n}\n\nUDExPagination.define();\n\nexport default UDExPagination;\nexport type { UDExPaginationChangeEventDetail };\n"]}
|
package/dist/PromoTile.d.ts
CHANGED
|
@@ -44,6 +44,13 @@ declare class UDExPromoTile extends UI5Element {
|
|
|
44
44
|
* @public
|
|
45
45
|
*/
|
|
46
46
|
pictogram?: Array<HTMLElement>;
|
|
47
|
+
/**
|
|
48
|
+
* Allows control over setting the CSS gradient.
|
|
49
|
+
*
|
|
50
|
+
* @default undefined
|
|
51
|
+
* @public
|
|
52
|
+
*/
|
|
53
|
+
backgroundGradient?: string;
|
|
47
54
|
/**
|
|
48
55
|
* Defines the orientation of the Promo Tile component.
|
|
49
56
|
*
|
|
@@ -120,6 +127,7 @@ declare class UDExPromoTile extends UI5Element {
|
|
|
120
127
|
_colorMode: UDExPromoTileMode;
|
|
121
128
|
_lightModeColors: Array<number>;
|
|
122
129
|
_darkModeColors: Array<number>;
|
|
130
|
+
_defaultBackgroundColor: string;
|
|
123
131
|
constructor();
|
|
124
132
|
onEnterDOM(): void;
|
|
125
133
|
onExitDOM(): void;
|
package/dist/PromoTile.js
CHANGED
|
@@ -59,6 +59,7 @@ let UDExPromoTile = UDExPromoTile_1 = class UDExPromoTile extends UI5Element {
|
|
|
59
59
|
this._colorMode = UDExPromoTileMode.light;
|
|
60
60
|
this._lightModeColors = [1, 2];
|
|
61
61
|
this._darkModeColors = [7, 8, 9, 10];
|
|
62
|
+
this._defaultBackgroundColor = "#FFF";
|
|
62
63
|
this._handleResizeBound = this._handleResize.bind(this);
|
|
63
64
|
}
|
|
64
65
|
onEnterDOM() {
|
|
@@ -148,6 +149,9 @@ __decorate([
|
|
|
148
149
|
__decorate([
|
|
149
150
|
slot({ type: HTMLElement })
|
|
150
151
|
], UDExPromoTile.prototype, "pictogram", void 0);
|
|
152
|
+
__decorate([
|
|
153
|
+
property({ type: String })
|
|
154
|
+
], UDExPromoTile.prototype, "backgroundGradient", void 0);
|
|
151
155
|
__decorate([
|
|
152
156
|
property()
|
|
153
157
|
], UDExPromoTile.prototype, "orientation", void 0);
|
package/dist/PromoTile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PromoTile.js","sourceRoot":"","sources":["../src/PromoTile.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport PromoTileTemplate from \"./PromoTileTemplate.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { PROMO_TILE, PROMO_TILE_ICON } from \"./generated/i18n/i18n-defaults.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\nimport type UDExButton from \"./Button.js\";\nimport UDExButtonSize from \"./types/ButtonSize.js\";\nimport UDExButtonDesign from \"./types/ButtonDesign.js\";\nimport { UDExPromoTileColorScheme, UDExPromoTileMode } from \"./types/PromoTile.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport PromoTileCss from \"./generated/themes/PromoTile.css.js\";\n\nexport enum UDExOrientation {\n Vertical = \"Vertical\",\n Horizontal = \"Horizontal\",\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-promo-tile</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/PromoTile.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-promo-tile\n * @public\n */\n@customElement({\n tag: \"udex-promo-tile\",\n renderer: jsxRenderer,\n styles: PromoTileCss,\n template: PromoTileTemplate,\n})\n\n/**\n * Triggered when the user clicks on the CTA button\n *\n * @public\n */\n@event(\"button-click\", { cancelable: true, bubbles: true })\n\nclass UDExPromoTile extends UI5Element {\n eventDetails!: {\n \"button-click\": void,\n };\n\n /**\n * Defines the text content of the Promo Tile.\n *\n * @slot content\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n content!: Array<HTMLElement>;\n\n /**\n * Defines the custom pictogram of the Promo Tile.\n *\n * @slot pictogram\n * @public\n */\n @slot({ type: HTMLElement })\n pictogram?: Array<HTMLElement>;\n\n /**\n * Defines the orientation of the Promo Tile component.\n *\n * @default \"Vertical\"\n * @public\n */\n @property()\n orientation: `${UDExOrientation}` = UDExOrientation.Vertical;\n\n /**\n * Defines the UI5 icon name in the pictogram section.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n icon?: string;\n\n /**\n * Defines the image aria label and alt in the pictogram section.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n imageLabel?: string;\n\n /**\n * Defines the logo URL in the pictogram section.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n logoUrl?: string;\n\n /**\n * Defines the header text of the promo tile.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n header?: string;\n\n /**\n * Defines the eyebrow text of the promo tile.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n eyebrow?: string;\n\n /**\n * Defines the CTA button label\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n button?: string;\n\n /**\n * Defines the CTA button design\n *\n * @default \"\"\n * @public\n */\n @property()\n buttonDesign?: UDExButtonDesign;\n\n /**\n * Defines the color scheme of the Promo Tile.\n *\n * @default \"\"\n * @public\n */\n @property()\n colorScheme?: UDExPromoTileColorScheme;\n\n /**\n * Defines the accessible name of the component.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n accessibleName?: string;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _handleResizeBound: ResizeObserverCallback;\n _button: UDExButton | undefined;\n _colorMode: UDExPromoTileMode = UDExPromoTileMode.light;\n _lightModeColors: Array<number> = [1, 2];\n _darkModeColors: Array<number> = [7, 8, 9, 10];\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onAfterRendering() {\n this._button = this.getButton();\n this.applyColorScheme();\n }\n\n _handleResize(): void {\n if (this._button) {\n this._button.size = this.isMobile ? UDExButtonSize.Medium : UDExButtonSize.Large;\n }\n }\n\n getButton(): UDExButton | undefined {\n return this.shadowRoot!.querySelector<UDExButton>(\"[udex-button]\")!;\n }\n\n applyColorScheme(): void {\n if (!this.colorScheme) {\n return;\n }\n\n this._colorMode = this.checkColorMode(this.colorScheme);\n const eyebrowColor = this.checkEyebrowColor(this.colorScheme);\n\n if (this._colorMode === UDExPromoTileMode.dark) {\n if (this._button) {\n this._button.design = this.buttonDesign || UDExButtonDesign.Secondary;\n }\n this.style.setProperty(\"--udex-promo-tile-icon-fill-color\", `var(--udexCoreTextLight)`);\n }\n this.style.setProperty(\"--udex-promo-tile-background\", `var(--udexColor${this.colorScheme})`);\n this.style.setProperty(\"--udex-promo-tile-eyebrow-color\", `var(--udexColor${eyebrowColor})`);\n }\n\n getColorNumber(colorScheme: string): number {\n const match = colorScheme.match(/\\d+/);\n return match ? parseInt(match[0]) : 0;\n }\n\n checkColorMode(colorScheme: string): UDExPromoTileMode {\n const number = this.getColorNumber(colorScheme);\n\n if (number && this._darkModeColors.includes(number)) {\n return UDExPromoTileMode.dark;\n }\n return UDExPromoTileMode.light;\n }\n\n checkEyebrowColor(colorScheme: string): string {\n const number = this.getColorNumber(colorScheme);\n let color: string = UDExPromoTileColorScheme.Blue8;\n\n if (number === 7) {\n color = \"NeutralWhite\";\n } else if (this._darkModeColors.includes(number)) {\n color = colorScheme.replace(`${number}`, `${number - 7}`);\n } else if (this._lightModeColors.includes(number)) {\n color = colorScheme.replace(`${number}`, `${number + 7}`);\n }\n return color;\n }\n\n handleCTAButtonClick(e: Event) {\n e.preventDefault();\n this.fireDecoratorEvent(\"button-click\");\n }\n\n get isMobile(): boolean {\n return BreakpointUtils.isAtMost(\"S\");\n }\n\n get promoTileContainerText(): string {\n return this.accessibleName || this.header || translate(UDExPromoTile, PROMO_TILE);\n }\n\n get _showPictogram(): boolean {\n return !!this.icon || !!this.logoUrl || !!this.pictogram?.length;\n }\n\n get _showLogo(): boolean {\n return !this.icon && !!this.logoUrl;\n }\n\n get _imageLabel(): string {\n return this.imageLabel || translate(UDExPromoTile, PROMO_TILE_ICON);\n }\n}\n\nUDExPromoTile.define();\n\nexport default UDExPromoTile;\n"]}
|
|
1
|
+
{"version":3,"file":"PromoTile.js","sourceRoot":"","sources":["../src/PromoTile.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport PromoTileTemplate from \"./PromoTileTemplate.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { PROMO_TILE, PROMO_TILE_ICON } from \"./generated/i18n/i18n-defaults.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\nimport type UDExButton from \"./Button.js\";\nimport UDExButtonSize from \"./types/ButtonSize.js\";\nimport UDExButtonDesign from \"./types/ButtonDesign.js\";\nimport { UDExPromoTileColorScheme, UDExPromoTileMode } from \"./types/PromoTile.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport PromoTileCss from \"./generated/themes/PromoTile.css.js\";\n\nexport enum UDExOrientation {\n Vertical = \"Vertical\",\n Horizontal = \"Horizontal\",\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-promo-tile</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/PromoTile.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-promo-tile\n * @public\n */\n@customElement({\n tag: \"udex-promo-tile\",\n renderer: jsxRenderer,\n styles: PromoTileCss,\n template: PromoTileTemplate,\n})\n\n/**\n * Triggered when the user clicks on the CTA button\n *\n * @public\n */\n@event(\"button-click\", { cancelable: true, bubbles: true })\n\nclass UDExPromoTile extends UI5Element {\n eventDetails!: {\n \"button-click\": void,\n };\n\n /**\n * Defines the text content of the Promo Tile.\n *\n * @slot content\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n content!: Array<HTMLElement>;\n\n /**\n * Defines the custom pictogram of the Promo Tile.\n *\n * @slot pictogram\n * @public\n */\n @slot({ type: HTMLElement })\n pictogram?: Array<HTMLElement>;\n\n /**\n * Allows control over setting the CSS gradient.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n backgroundGradient?: string;\n\n /**\n * Defines the orientation of the Promo Tile component.\n *\n * @default \"Vertical\"\n * @public\n */\n @property()\n orientation: `${UDExOrientation}` = UDExOrientation.Vertical;\n\n /**\n * Defines the UI5 icon name in the pictogram section.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n icon?: string;\n\n /**\n * Defines the image aria label and alt in the pictogram section.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n imageLabel?: string;\n\n /**\n * Defines the logo URL in the pictogram section.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n logoUrl?: string;\n\n /**\n * Defines the header text of the promo tile.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n header?: string;\n\n /**\n * Defines the eyebrow text of the promo tile.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n eyebrow?: string;\n\n /**\n * Defines the CTA button label\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n button?: string;\n\n /**\n * Defines the CTA button design\n *\n * @default \"\"\n * @public\n */\n @property()\n buttonDesign?: UDExButtonDesign;\n\n /**\n * Defines the color scheme of the Promo Tile.\n *\n * @default \"\"\n * @public\n */\n @property()\n colorScheme?: UDExPromoTileColorScheme;\n\n /**\n * Defines the accessible name of the component.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n accessibleName?: string;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _handleResizeBound: ResizeObserverCallback;\n _button: UDExButton | undefined;\n _colorMode: UDExPromoTileMode = UDExPromoTileMode.light;\n _lightModeColors: Array<number> = [1, 2];\n _darkModeColors: Array<number> = [7, 8, 9, 10];\n _defaultBackgroundColor = \"#FFF\";\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onAfterRendering() {\n this._button = this.getButton();\n this.applyColorScheme();\n }\n\n _handleResize(): void {\n if (this._button) {\n this._button.size = this.isMobile ? UDExButtonSize.Medium : UDExButtonSize.Large;\n }\n }\n\n getButton(): UDExButton | undefined {\n return this.shadowRoot!.querySelector<UDExButton>(\"[udex-button]\")!;\n }\n\n applyColorScheme(): void {\n if (!this.colorScheme) {\n return;\n }\n\n this._colorMode = this.checkColorMode(this.colorScheme);\n const eyebrowColor = this.checkEyebrowColor(this.colorScheme);\n\n if (this._colorMode === UDExPromoTileMode.dark) {\n if (this._button) {\n this._button.design = this.buttonDesign || UDExButtonDesign.Secondary;\n }\n this.style.setProperty(\"--udex-promo-tile-icon-fill-color\", `var(--udexCoreTextLight)`);\n }\n this.style.setProperty(\"--udex-promo-tile-background\", `var(--udexColor${this.colorScheme})`);\n this.style.setProperty(\"--udex-promo-tile-eyebrow-color\", `var(--udexColor${eyebrowColor})`);\n }\n\n getColorNumber(colorScheme: string): number {\n const match = colorScheme.match(/\\d+/);\n return match ? parseInt(match[0]) : 0;\n }\n\n checkColorMode(colorScheme: string): UDExPromoTileMode {\n const number = this.getColorNumber(colorScheme);\n\n if (number && this._darkModeColors.includes(number)) {\n return UDExPromoTileMode.dark;\n }\n return UDExPromoTileMode.light;\n }\n\n checkEyebrowColor(colorScheme: string): string {\n const number = this.getColorNumber(colorScheme);\n let color: string = UDExPromoTileColorScheme.Blue8;\n\n if (number === 7) {\n color = \"NeutralWhite\";\n } else if (this._darkModeColors.includes(number)) {\n color = colorScheme.replace(`${number}`, `${number - 7}`);\n } else if (this._lightModeColors.includes(number)) {\n color = colorScheme.replace(`${number}`, `${number + 7}`);\n }\n return color;\n }\n\n handleCTAButtonClick(e: Event) {\n e.preventDefault();\n this.fireDecoratorEvent(\"button-click\");\n }\n\n get isMobile(): boolean {\n return BreakpointUtils.isAtMost(\"S\");\n }\n\n get promoTileContainerText(): string {\n return this.accessibleName || this.header || translate(UDExPromoTile, PROMO_TILE);\n }\n\n get _showPictogram(): boolean {\n return !!this.icon || !!this.logoUrl || !!this.pictogram?.length;\n }\n\n get _showLogo(): boolean {\n return !this.icon && !!this.logoUrl;\n }\n\n get _imageLabel(): string {\n return this.imageLabel || translate(UDExPromoTile, PROMO_TILE_ICON);\n }\n}\n\nUDExPromoTile.define();\n\nexport default UDExPromoTile;\n"]}
|
|
@@ -6,7 +6,9 @@ import UDExButtonSize from "./types/ButtonSize.js";
|
|
|
6
6
|
import UDExButtonAccessibleRole from "./types/ButtonAccessibleRole.js";
|
|
7
7
|
export default function PromoTileTemplate() {
|
|
8
8
|
const rootClass = "udex-promo-tile";
|
|
9
|
-
return (_jsxs("div", { role: "region", class: `${rootClass}__container ${rootClass}--${this.orientation?.toLowerCase()} ${rootClass}--${this._colorMode}`, "aria-label": this.promoTileContainerText,
|
|
9
|
+
return (_jsxs("div", { role: "region", class: `${rootClass}__container ${rootClass}--${this.orientation?.toLowerCase()} ${rootClass}--${this._colorMode}`, "aria-label": this.promoTileContainerText, style: this.backgroundGradient
|
|
10
|
+
? { backgroundImage: this.backgroundGradient, backgroundColor: this._defaultBackgroundColor }
|
|
11
|
+
: undefined, children: [this._showPictogram &&
|
|
10
12
|
_jsx("div", { part: "image", class: {
|
|
11
13
|
"udex-promo-tile__pictogram": true,
|
|
12
14
|
"udex-promo-tile__pictogram--logo": this.logoUrl && !this.pictogram?.length
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PromoTileTemplate.js","sourceRoot":"","sources":["../src/PromoTileTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,OAAO,MAAM,iCAAiC,CAAC;AACtD,OAAO,QAAQ,MAAM,2CAA2C,CAAC;AACjE,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,wBAAwB,MAAM,iCAAiC,CAAC;AAEvE,MAAM,CAAC,OAAO,UAAU,iBAAiB;IACvC,MAAM,SAAS,GAAG,iBAAiB,CAAC;IAEpC,OAAO,CACL,eACE,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,GAAG,SAAS,eAAe,SAAS,KAAK,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE,gBACtG,IAAI,CAAC,sBAAsB,
|
|
1
|
+
{"version":3,"file":"PromoTileTemplate.js","sourceRoot":"","sources":["../src/PromoTileTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,OAAO,MAAM,iCAAiC,CAAC;AACtD,OAAO,QAAQ,MAAM,2CAA2C,CAAC;AACjE,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,wBAAwB,MAAM,iCAAiC,CAAC;AAEvE,MAAM,CAAC,OAAO,UAAU,iBAAiB;IACvC,MAAM,SAAS,GAAG,iBAAiB,CAAC;IAEpC,OAAO,CACL,eACE,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,GAAG,SAAS,eAAe,SAAS,KAAK,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE,gBACtG,IAAI,CAAC,sBAAsB,EACvC,KAAK,EAAE,IAAI,CAAC,kBAAkB;YAC5B,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,kBAAkB,EAAE,eAAe,EAAE,IAAI,CAAC,uBAAuB,EAAE;YAC7F,CAAC,CAAC,SAAS,aACZ,IAAI,CAAC,cAAc;gBAClB,cACE,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE;wBACL,4BAA4B,EAAE,IAAI;wBAClC,kCAAkC,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM;qBAC5E,EACD,KAAK,EAAE,IAAI,CAAC,WAAW,YACvB,gBAAM,IAAI,EAAC,WAAW,EAAC,IAAI,EAAC,WAAW,aACpC,IAAI,CAAC,IAAI;gCACR,KAAC,OAAO,IACN,KAAK,EAAE,GAAG,SAAS,QAAQ,EAC3B,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,EAC9B,IAAI,EAAE,QAAQ,CAAC,UAAU,EACzB,cAAc,EAAE,IAAI,CAAC,WAAW,GACxB,EAEX,IAAI,CAAC,SAAS;gCACb,cACE,GAAG,EAAE,IAAI,CAAC,OAAO,EACjB,KAAK,EAAE,GAAG,SAAS,QAAQ,gBACf,IAAI,CAAC,WAAW,EAC5B,GAAG,EAAE,IAAI,CAAC,WAAW,GAAI,IAExB,GACH,EAER,eAAK,IAAI,EAAC,SAAS,EAAC,KAAK,EAAE,GAAG,SAAS,WAAW,aAChD,eAAK,KAAK,EAAE,GAAG,SAAS,QAAQ,aAC7B,IAAI,CAAC,OAAO;gCACX,cAAK,KAAK,EAAE,GAAG,SAAS,sBAAsB,YAAG,IAAI,CAAC,OAAO,GAAO,EAErE,IAAI,CAAC,MAAM;gCACV,cAAK,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAE,GAAG,SAAS,UAAU,YAAG,IAAI,CAAC,MAAM,GAAO,EAEvE,gBAAa,IACT,EACL,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,IACjD,IACF,CACP,CAAC;AACJ,CAAC;AACD,SAAS,aAAa,CAAsB,SAAiB;IAC3D,OAAO,CACL,4BACE,cAAK,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAE,GAAG,SAAS,UAAU,YAC9C,KAAC,UAAU,IAAC,KAAK,EAAE,GAAG,SAAS,OAAO,EACpC,IAAI,EAAE,cAAc,CAAC,KAAK,EAC1B,MAAM,EAAE,IAAI,CAAC,YAAY,EACzB,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAClC,cAAc,EAAE,wBAAwB,CAAC,MAAM,YAC9C,IAAI,CAAC,MAAM,GACD,GACT,GACL,CACJ,CAAC;AACJ,CAAC","sourcesContent":["import type UDExPromoTile from \"./PromoTile.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport IconMode from \"@ui5/webcomponents/dist/types/IconMode.js\";\nimport UDExButton from \"./Button.js\";\nimport UDExButtonSize from \"./types/ButtonSize.js\";\nimport UDExButtonAccessibleRole from \"./types/ButtonAccessibleRole.js\";\n\nexport default function PromoTileTemplate(this: UDExPromoTile) {\n const rootClass = \"udex-promo-tile\";\n\n return (\n <div\n role=\"region\"\n class={`${rootClass}__container ${rootClass}--${this.orientation?.toLowerCase()} ${rootClass}--${this._colorMode}`}\n aria-label={this.promoTileContainerText}\n style={this.backgroundGradient\n ? { backgroundImage: this.backgroundGradient, backgroundColor: this._defaultBackgroundColor }\n : undefined}>\n {this._showPictogram &&\n <div\n part=\"image\"\n class={{\n \"udex-promo-tile__pictogram\": true,\n \"udex-promo-tile__pictogram--logo\": this.logoUrl && !this.pictogram?.length\n }}\n title={this._imageLabel}>\n <slot slot=\"pictogram\" name=\"pictogram\">\n {this.icon &&\n <UI5Icon\n class={`${rootClass}__icon`}\n name={this.icon?.toLowerCase()}\n mode={IconMode.Decorative}\n accessibleName={this._imageLabel}>\n </UI5Icon>\n }\n {this._showLogo &&\n <img\n src={this.logoUrl}\n class={`${rootClass}__icon`}\n aria-label={this._imageLabel}\n alt={this._imageLabel} />\n }\n </slot>\n </div>\n }\n <div part=\"content\" class={`${rootClass}__content`}>\n <div class={`${rootClass}__text`}>\n {this.eyebrow &&\n <div class={`${rootClass}__eyebrow eyebrow--l`}>{this.eyebrow}</div>\n }\n {this.header &&\n <div part=\"header\" class={`${rootClass}__header`}>{this.header}</div>\n }\n <slot></slot>\n </div>\n {!!this.button && footerSection.call(this, rootClass)}\n </div>\n </div>\n );\n}\nfunction footerSection(this: UDExPromoTile, rootClass: string) {\n return (\n <>\n <div part=\"footer\" class={`${rootClass}__footer`}>\n <UDExButton class={`${rootClass}__btn`}\n size={UDExButtonSize.Large}\n design={this.buttonDesign}\n onClick={this.handleCTAButtonClick}\n accessibleRole={UDExButtonAccessibleRole.Button}>\n {this.button}\n </UDExButton>\n </div>\n </>\n );\n}\n"]}
|
|
@@ -10,8 +10,10 @@ type UDExSecondaryNavigationClickEventDetail = {
|
|
|
10
10
|
originalEvent: Event;
|
|
11
11
|
clickedItem: NavItem;
|
|
12
12
|
clickedIndex: number;
|
|
13
|
+
isMore?: boolean;
|
|
13
14
|
isMobile?: boolean;
|
|
14
15
|
analyticsName: AnalyticsName;
|
|
16
|
+
analyticsPath: Array<string>;
|
|
15
17
|
sourceNode: HTMLElement;
|
|
16
18
|
};
|
|
17
19
|
type UDExSecondaryNavigationHeadingClickEventDetail = {
|
|
@@ -19,6 +21,11 @@ type UDExSecondaryNavigationHeadingClickEventDetail = {
|
|
|
19
21
|
analyticsName: AnalyticsName;
|
|
20
22
|
sourceNode: HTMLElement;
|
|
21
23
|
};
|
|
24
|
+
type UDExSecondaryNavigationMobileMenuOpenerClickEventDetail = {
|
|
25
|
+
originalEvent: Event;
|
|
26
|
+
analyticsName: AnalyticsName;
|
|
27
|
+
sourceNode: HTMLElement;
|
|
28
|
+
};
|
|
22
29
|
/**
|
|
23
30
|
* @class
|
|
24
31
|
*
|
|
@@ -40,6 +47,7 @@ declare class UDExSecondaryNavigation extends UI5Element {
|
|
|
40
47
|
eventDetails: {
|
|
41
48
|
"item-click": UDExSecondaryNavigationClickEventDetail;
|
|
42
49
|
"heading-click": UDExSecondaryNavigationHeadingClickEventDetail;
|
|
50
|
+
"mobile-menu-opener-click": UDExSecondaryNavigationMobileMenuOpenerClickEventDetail;
|
|
43
51
|
};
|
|
44
52
|
/**
|
|
45
53
|
* Defines an aria label for the mobile menu opener
|
|
@@ -118,8 +126,10 @@ declare class UDExSecondaryNavigation extends UI5Element {
|
|
|
118
126
|
handleItemClick(e: CustomEvent<UDExSecondaryNavigationItemClickEventDetail>): void;
|
|
119
127
|
handleSubItemClick(e: CustomEvent<UDExSecondaryNavigationItemSubItemClickEventDetail>): void;
|
|
120
128
|
handleHeadingClick(e: CustomEvent<UDExSecondaryNavigationHeadingClickEventDetail>): void;
|
|
121
|
-
fireEventItemClick(e: PointerEvent | KeyboardEvent, clickedIndex: number, { items, target, path, title, active, mobileLinkTitle, }: NavItem): boolean;
|
|
129
|
+
fireEventItemClick(e: PointerEvent | KeyboardEvent, clickedIndex: number, { items, target, path, title, active, mobileLinkTitle, }: NavItem, analyticsPath?: Array<string>, isMore?: boolean): boolean;
|
|
130
|
+
getAnalyticsPath(clickedTitle: string, clickedPath?: string): Array<string>;
|
|
122
131
|
setActiveItem(navItems: Array<NavItem>, clickedItem: UDExSecondaryNavigationItemBase): void;
|
|
132
|
+
handleMobileMenuOpenerClick(e: CustomEvent): void;
|
|
123
133
|
handleOutsideClick(): void;
|
|
124
134
|
outsideClickListener: (e: MouseEvent) => void;
|
|
125
135
|
closeMobileDropdown(): void;
|
|
@@ -144,4 +154,4 @@ declare class UDExSecondaryNavigation extends UI5Element {
|
|
|
144
154
|
get isMobileScreen(): boolean;
|
|
145
155
|
}
|
|
146
156
|
export default UDExSecondaryNavigation;
|
|
147
|
-
export type { UDExSecondaryNavigationClickEventDetail, UDExSecondaryNavigationHeadingClickEventDetail };
|
|
157
|
+
export type { UDExSecondaryNavigationClickEventDetail, UDExSecondaryNavigationHeadingClickEventDetail, UDExSecondaryNavigationMobileMenuOpenerClickEventDetail, };
|
|
@@ -130,7 +130,7 @@ let UDExSecondaryNavigation = UDExSecondaryNavigation_1 = class UDExSecondaryNav
|
|
|
130
130
|
steps.push((steps.at(-1) || 0) + itemWidth + (index && itemsGap));
|
|
131
131
|
});
|
|
132
132
|
if ((steps.at(-1) || 0) <= availableWidth) {
|
|
133
|
-
this._visibleItems
|
|
133
|
+
this._visibleItems = [...this.parsedItems];
|
|
134
134
|
this._showMoreButton = false;
|
|
135
135
|
this.refreshRendering();
|
|
136
136
|
return;
|
|
@@ -138,8 +138,8 @@ let UDExSecondaryNavigation = UDExSecondaryNavigation_1 = class UDExSecondaryNav
|
|
|
138
138
|
if (this.parsedItems) {
|
|
139
139
|
// @ts-ignore
|
|
140
140
|
const lastVisibleIndex = steps.findLastIndex((size) => size < (availableWidth - moreButtonWidth - itemsGap));
|
|
141
|
-
this._visibleItems
|
|
142
|
-
this._overflowItems
|
|
141
|
+
this._visibleItems = this.parsedItems.slice(0, lastVisibleIndex + 1);
|
|
142
|
+
this._overflowItems = this.parsedItems.slice(lastVisibleIndex + 1);
|
|
143
143
|
this._showMoreButton = true;
|
|
144
144
|
this.refreshRendering();
|
|
145
145
|
}
|
|
@@ -213,7 +213,7 @@ let UDExSecondaryNavigation = UDExSecondaryNavigation_1 = class UDExSecondaryNav
|
|
|
213
213
|
active,
|
|
214
214
|
mobileLinkTitle,
|
|
215
215
|
items: subItems,
|
|
216
|
-
});
|
|
216
|
+
}, this.getAnalyticsPath(title, path), title === this.moreButtonText);
|
|
217
217
|
if (prevented) {
|
|
218
218
|
e.preventDefault();
|
|
219
219
|
return;
|
|
@@ -230,7 +230,9 @@ let UDExSecondaryNavigation = UDExSecondaryNavigation_1 = class UDExSecondaryNav
|
|
|
230
230
|
const { originalEvent: actualOriginalEvent, index } = e.detail;
|
|
231
231
|
const item = e.detail.item;
|
|
232
232
|
const { items } = item;
|
|
233
|
-
const
|
|
233
|
+
const analyticsPath = this.getAnalyticsPath(item.title, item.path);
|
|
234
|
+
const isMore = this._clickedNavItem?.title === this.moreButtonText;
|
|
235
|
+
const prevented = !this.fireEventItemClick(actualOriginalEvent, index, item, analyticsPath, isMore);
|
|
234
236
|
if (prevented) {
|
|
235
237
|
e.preventDefault();
|
|
236
238
|
return;
|
|
@@ -250,10 +252,12 @@ let UDExSecondaryNavigation = UDExSecondaryNavigation_1 = class UDExSecondaryNav
|
|
|
250
252
|
originalEvent: e,
|
|
251
253
|
});
|
|
252
254
|
}
|
|
253
|
-
fireEventItemClick(e, clickedIndex, { items, target, path, title, active, mobileLinkTitle, }) {
|
|
255
|
+
fireEventItemClick(e, clickedIndex, { items, target, path, title, active, mobileLinkTitle, }, analyticsPath = [], isMore = false) {
|
|
254
256
|
return this.fireDecoratorEvent("item-click", {
|
|
255
257
|
...(this.isMobileScreen && { isMobile: true }),
|
|
258
|
+
...(isMore && { isMore: true }),
|
|
256
259
|
analyticsName: AnalyticsName.HeaderSub,
|
|
260
|
+
analyticsPath,
|
|
257
261
|
sourceNode: e?.currentTarget,
|
|
258
262
|
originalEvent: e,
|
|
259
263
|
clickedItem: {
|
|
@@ -267,22 +271,57 @@ let UDExSecondaryNavigation = UDExSecondaryNavigation_1 = class UDExSecondaryNav
|
|
|
267
271
|
clickedIndex,
|
|
268
272
|
});
|
|
269
273
|
}
|
|
274
|
+
getAnalyticsPath(clickedTitle, clickedPath) {
|
|
275
|
+
const getLabel = (item) => (this.isMobileScreen ? (item.mobileLinkTitle || item.title) : item.title);
|
|
276
|
+
const findPath = (items, parentPath) => items.reduce((found, item) => {
|
|
277
|
+
if (found !== null) {
|
|
278
|
+
return found;
|
|
279
|
+
}
|
|
280
|
+
if (item.title === clickedTitle && (!clickedPath || item.path === clickedPath)) {
|
|
281
|
+
return [...parentPath, getLabel(item)];
|
|
282
|
+
}
|
|
283
|
+
if (item.items?.length) {
|
|
284
|
+
return findPath(item.items, [...parentPath, getLabel(item)]);
|
|
285
|
+
}
|
|
286
|
+
return null;
|
|
287
|
+
}, null);
|
|
288
|
+
return findPath(this.parsedItems, []) || [];
|
|
289
|
+
}
|
|
270
290
|
setActiveItem(navItems, clickedItem) {
|
|
271
291
|
const updateNav = (items, { title, path }) => {
|
|
292
|
+
let hasActiveDescendant = false;
|
|
272
293
|
items.forEach(item => {
|
|
273
294
|
if (item.title === title && (item.path === path || !item.path)) {
|
|
274
295
|
item.active = true;
|
|
296
|
+
hasActiveDescendant = true;
|
|
275
297
|
return;
|
|
276
298
|
}
|
|
277
|
-
delete item.active;
|
|
278
299
|
if (item.items) {
|
|
279
|
-
updateNav(item.items, clickedItem);
|
|
300
|
+
const childIsActive = updateNav(item.items, clickedItem);
|
|
301
|
+
if (childIsActive) {
|
|
302
|
+
item.active = true;
|
|
303
|
+
hasActiveDescendant = true;
|
|
304
|
+
}
|
|
305
|
+
else {
|
|
306
|
+
delete item.active;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
else {
|
|
310
|
+
delete item.active;
|
|
280
311
|
}
|
|
281
312
|
});
|
|
313
|
+
return hasActiveDescendant;
|
|
282
314
|
};
|
|
283
315
|
updateNav(navItems, clickedItem);
|
|
284
316
|
this.navItems = JSON.stringify(navItems);
|
|
285
317
|
}
|
|
318
|
+
handleMobileMenuOpenerClick(e) {
|
|
319
|
+
this.fireDecoratorEvent("mobile-menu-opener-click", {
|
|
320
|
+
analyticsName: AnalyticsName.HeaderSub,
|
|
321
|
+
sourceNode: e.target,
|
|
322
|
+
originalEvent: e,
|
|
323
|
+
});
|
|
324
|
+
}
|
|
286
325
|
handleOutsideClick() {
|
|
287
326
|
document.addEventListener("mousedown", this.outsideClickListener);
|
|
288
327
|
}
|
|
@@ -433,6 +472,18 @@ UDExSecondaryNavigation = UDExSecondaryNavigation_1 = __decorate([
|
|
|
433
472
|
*/
|
|
434
473
|
,
|
|
435
474
|
event("heading-click", { cancelable: true, bubbles: true })
|
|
475
|
+
/**
|
|
476
|
+
* The event is triggered on user interaction with the mobile menu opener
|
|
477
|
+
*
|
|
478
|
+
* @allowPreventDefault
|
|
479
|
+
* @public
|
|
480
|
+
* @param {Event} originalEvent The original event object
|
|
481
|
+
* @param {AnalyticsName} analyticsName The analytics name for the mobile menu opener
|
|
482
|
+
* @param {HTMLElement} sourceNode The source node of the mobile menu opener
|
|
483
|
+
*
|
|
484
|
+
*/
|
|
485
|
+
,
|
|
486
|
+
event("mobile-menu-opener-click", { cancelable: true, bubbles: true })
|
|
436
487
|
], UDExSecondaryNavigation);
|
|
437
488
|
UDExSecondaryNavigation.define();
|
|
438
489
|
export default UDExSecondaryNavigation;
|