@sapudex/web-components 2.12.1 → 2.13.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/EventRibbon.cy.tsx +1 -1
- package/cypress/specs/HeroBanner.cy.tsx +174 -0
- package/cypress/support/component-imports.instrumented.ts +2 -0
- package/cypress/support/component-imports.src.ts +2 -0
- package/dist/EventRibbonTemplate.js +2 -1
- package/dist/EventRibbonTemplate.js.map +1 -1
- package/dist/HeroBanner.d.ts +8 -0
- package/dist/HeroBanner.js +6 -0
- package/dist/HeroBanner.js.map +1 -1
- package/dist/PromoTile.d.ts +12 -22
- package/dist/PromoTile.js +6 -7
- package/dist/PromoTile.js.map +1 -1
- package/dist/Search.js +1 -1
- package/dist/Search.js.map +1 -1
- package/dist/assets/{InputSuggestions-CgAp8PwR.js → InputSuggestions-FI3fjOZ9.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-D5HEHY33.js → ListItemStandardExpandableTextTemplate-CkvW90wq.js} +1 -1
- package/dist/assets/{bundle.esm-CjcqU0ib.js → bundle.esm-BrqOd5tw.js} +129 -129
- package/dist/css/themes/EventRibbon.css +1 -1
- package/dist/css/themes/Link.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/custom-elements-internal.json +179 -151
- package/dist/custom-elements.json +160 -136
- package/dist/generated/templates/HeroBannerTemplate.lit.js +2 -1
- package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
- package/dist/generated/themes/EventRibbon.css.d.ts +1 -1
- package/dist/generated/themes/EventRibbon.css.js +1 -1
- package/dist/generated/themes/EventRibbon.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/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/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/types/PromoTile.d.ts +1 -1
- package/dist/types/PromoTile.js +57 -57
- package/dist/types/PromoTile.js.map +1 -1
- package/dist/vscode.html-custom-data.json +2 -2
- package/dist/web-types.json +26 -13
- package/package.json +1 -1
- package/src/EventRibbonTemplate.tsx +2 -1
- package/src/HeroBanner.hbs +3 -0
- package/src/HeroBanner.ts +14 -0
- package/src/PromoTile.ts +16 -26
- package/src/Search.ts +1 -1
- package/src/generated/templates/HeroBannerTemplate.lit.ts +2 -1
- package/src/generated/themes/EventRibbon.css.ts +1 -1
- package/src/generated/themes/Link.css.ts +1 -1
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/themes/EventRibbon.css +17 -6
- package/src/themes/Link.css +4 -2
- package/src/types/PromoTile.ts +1 -1
|
@@ -119,7 +119,7 @@ describe("EventRibbon", () => {
|
|
|
119
119
|
|
|
120
120
|
it("correctly renders custom logo image", () => {
|
|
121
121
|
cy.mount(customLogoEventRibbon)
|
|
122
|
-
cy.get("[udex-event-ribbon]").shadow().find(".udex-event-
|
|
122
|
+
cy.get("[udex-event-ribbon]").shadow().find(".udex-event-ribbon__custom-logo").should("have.attr", "src", "https://cdn.udex.services.sap.com/dds/design-tokens/assets/logos/sap-logo.svg");
|
|
123
123
|
});
|
|
124
124
|
|
|
125
125
|
it("correctly renders custom logo image alt text", () => {
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import {UDExHeroBanner, UDExButton, UDExBreadcrumbs, UDExBreadcrumbsItem} from "../support/component-imports.js";
|
|
2
|
+
import UDExButtonDesign from "../../src/types/ButtonDesign.js";
|
|
3
|
+
|
|
4
|
+
const primaryContentHeader = "Grow your business through enterprise";
|
|
5
|
+
const secondaryContentHeader = "Entertain an idea";
|
|
6
|
+
const backgroundVideoLabel = "Hero Banner background video label";
|
|
7
|
+
const backgroundImageLabel = "Hero Banner background image label";
|
|
8
|
+
const backgroundImageSrc = "./stories/hero-banner/bg1.png";
|
|
9
|
+
const backgroundVideoSrc = "./stories/hero-banner-bg-video.mp4";
|
|
10
|
+
const mediaContentImage = "./stories/hero-banner/bg6.jpg";
|
|
11
|
+
const linearGradient = "linear-gradient(to bottom, #1e5799 0%,#7db9e8 100%)";
|
|
12
|
+
const contentText = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis posuere in massa id fringilla. Nunc rutrum turpis purus, et dignissim arcu gravida ut. Morbi sed sem ac magna consectetur tincidunt dapibus sed ipsum.";
|
|
13
|
+
const backgroundColor = "#fbdab9";
|
|
14
|
+
|
|
15
|
+
const heroBanner = <>
|
|
16
|
+
<UDExHeroBanner
|
|
17
|
+
id="heroBannerDefault"
|
|
18
|
+
backgroundImage={backgroundImageSrc}
|
|
19
|
+
backgroundImageLabel={backgroundImageLabel}
|
|
20
|
+
backgroundColor={backgroundColor}>
|
|
21
|
+
<div slot="content">
|
|
22
|
+
<UDExBreadcrumbs show-items="5" slot="breadcrumbs">
|
|
23
|
+
<UDExBreadcrumbsItem href="https://www.sap.com" icon="home" target="_blank" accessibleName="Home page">SAP Home</UDExBreadcrumbsItem>
|
|
24
|
+
<UDExBreadcrumbsItem href="htttps://www.sap.com" target="_blank">Second level</UDExBreadcrumbsItem>
|
|
25
|
+
<UDExBreadcrumbsItem href="htttps://www.sap.com" target="_blank">Third level</UDExBreadcrumbsItem>
|
|
26
|
+
<UDExBreadcrumbsItem href="htttps://www.sap.com" target="_blank">Fourth level</UDExBreadcrumbsItem>
|
|
27
|
+
<UDExBreadcrumbsItem href="htttps://www.sap.com" target="_blank">Fifth level</UDExBreadcrumbsItem>
|
|
28
|
+
</UDExBreadcrumbs>
|
|
29
|
+
<h1>{primaryContentHeader}</h1>
|
|
30
|
+
<p>{contentText}</p>
|
|
31
|
+
<div>
|
|
32
|
+
<UDExButton design={UDExButtonDesign.Positive}>Request a demo</UDExButton>
|
|
33
|
+
<UDExButton design={UDExButtonDesign.Transparent}>Watch the video</UDExButton>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
<div slot="mediaContent">
|
|
37
|
+
<img src={mediaContentImage} alt="SAP support portal"/>
|
|
38
|
+
</div>
|
|
39
|
+
</UDExHeroBanner>
|
|
40
|
+
</>
|
|
41
|
+
|
|
42
|
+
const heroBannerWithGradient = <>
|
|
43
|
+
<UDExHeroBanner
|
|
44
|
+
id="heroBannerWithGradient"
|
|
45
|
+
backgroundImage={backgroundImageSrc}
|
|
46
|
+
backgroundImageLabel={backgroundVideoLabel}
|
|
47
|
+
backgroundGradient={linearGradient}>
|
|
48
|
+
<div slot="content">
|
|
49
|
+
<h1>{primaryContentHeader}</h1>
|
|
50
|
+
<p>{contentText}</p>
|
|
51
|
+
</div>
|
|
52
|
+
</UDExHeroBanner>
|
|
53
|
+
</>
|
|
54
|
+
|
|
55
|
+
const heroBannerWithAdditionalContent = <>
|
|
56
|
+
<UDExHeroBanner id="heroBannerWithAdditionalContent">
|
|
57
|
+
<div slot="content">
|
|
58
|
+
<h1>{primaryContentHeader}</h1>
|
|
59
|
+
<p>{contentText}</p>
|
|
60
|
+
<div>
|
|
61
|
+
<UDExButton design={UDExButtonDesign.Positive}>Request a demo</UDExButton>
|
|
62
|
+
<UDExButton design={UDExButtonDesign.Transparent}>Watch the video</UDExButton>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
|
|
66
|
+
<div slot="additionalContent">
|
|
67
|
+
<h1>{secondaryContentHeader}</h1>
|
|
68
|
+
<p>{contentText}</p>
|
|
69
|
+
</div>
|
|
70
|
+
</UDExHeroBanner>
|
|
71
|
+
</>
|
|
72
|
+
|
|
73
|
+
const heroBannerWithVideoBackground = <>
|
|
74
|
+
<UDExHeroBanner
|
|
75
|
+
id="heroBannerVideoBackground"
|
|
76
|
+
backgroundVideo={backgroundVideoSrc}
|
|
77
|
+
backgroundVideoLabel={backgroundVideoLabel}>
|
|
78
|
+
<div slot="content">
|
|
79
|
+
<h1>{primaryContentHeader}</h1>
|
|
80
|
+
<p>{contentText}</p>
|
|
81
|
+
<div>
|
|
82
|
+
<UDExButton design={UDExButtonDesign.Positive}>Request a demo</UDExButton>
|
|
83
|
+
<UDExButton design={UDExButtonDesign.Transparent}>Watch the video</UDExButton>
|
|
84
|
+
</div>
|
|
85
|
+
</div>
|
|
86
|
+
</UDExHeroBanner>
|
|
87
|
+
</>
|
|
88
|
+
|
|
89
|
+
describe("Hero Banner component", () => {
|
|
90
|
+
describe("Hero Banner default", async () => {
|
|
91
|
+
beforeEach(() => {
|
|
92
|
+
cy.mount(heroBanner);
|
|
93
|
+
cy.get("#heroBannerDefault").shadow().as("heroBannerDefault");
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
it("tests if web component is correctly rendered", () => {
|
|
97
|
+
cy.get("@heroBannerDefault").find(".udex-hero-banner").should("be.visible");
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
it("tests if component renders primary content", () => {
|
|
101
|
+
cy.get("#heroBannerDefault").find("div[slot=content] h1").should("have.text", primaryContentHeader);
|
|
102
|
+
cy.get("#heroBannerDefault").find("div[slot=content]").find("h1, p, udex-button").should("have.length", 4);
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
it("tests if component renders background image", () => {
|
|
106
|
+
cy.get("@heroBannerDefault").find("img.udex-hero-banner__background-image").should("be.visible");
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
it("tests if correct background image is used", () => {
|
|
110
|
+
cy.get("@heroBannerDefault").find(".udex-hero-banner__background-image").should("have.attr", "src", backgroundImageSrc);
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
it("tests if correct background image label is applied", () => {
|
|
114
|
+
cy.get("@heroBannerDefault").find(".udex-hero-banner__background-image").should("have.attr", "alt", backgroundImageLabel);
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
it("tests if correct background color is applied", () => {
|
|
118
|
+
cy.get("@heroBannerDefault").find(".udex-hero-banner").should("have.attr", "style", `background-color: ${backgroundColor}; `);
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
it("tests if correct breadcrumbs is applied", () => {
|
|
122
|
+
cy.get("#heroBannerDefault").find("udex-breadcrumbs").find("udex-breadcrumbs-item").should("have.length", 5);
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
it("tests if component renders media content", () => {
|
|
126
|
+
cy.get("#heroBannerDefault").find("div[slot=mediaContent] img").should("have.attr", "src", mediaContentImage);
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
describe("Hero Banner with background video", () => {
|
|
131
|
+
beforeEach(() => {
|
|
132
|
+
cy.viewport(1920, 1080);
|
|
133
|
+
cy.mount(heroBannerWithVideoBackground);
|
|
134
|
+
cy.get("#heroBannerVideoBackground").shadow().as("videoBackground");
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
it("tests if component renders background video", () => {
|
|
138
|
+
cy.get("@videoBackground").find("video.udex-hero-banner__background-video").should("be.visible");
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
it("tests if correct background video is used", () => {
|
|
142
|
+
cy.get("@videoBackground").find("video.udex-hero-banner__background-video source").should("have.attr", "src", backgroundVideoSrc);
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
it("tests if correct background video label is applied", () => {
|
|
146
|
+
cy.get("@videoBackground").find("video.udex-hero-banner__background-video").should("have.attr", "alt", backgroundVideoLabel);
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
describe("Hero Banner with gradient", () => {
|
|
151
|
+
it("tests if correct gradient background is applied", () => {
|
|
152
|
+
cy.mount(heroBannerWithGradient);
|
|
153
|
+
cy.get("#heroBannerWithGradient").shadow().find(".udex-hero-banner").should("have.attr", "style", `background-color: transparent; background-image:${linearGradient}`);
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
describe("Hero Banner with additional content", () => {
|
|
158
|
+
beforeEach(() => {
|
|
159
|
+
cy.mount(heroBannerWithAdditionalContent);
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
it("tests if component renders secondary content", () => {
|
|
163
|
+
cy.get("#heroBannerWithAdditionalContent").find("div[slot=additionalContent] h1").should("have.text", secondaryContentHeader);
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
it("tests if defaults for properties are correctly applied", () => {
|
|
167
|
+
cy.get("#heroBannerWithAdditionalContent").shadow().find(".udex-hero-banner").should("have.attr", "style", "background-color: transparent; ");
|
|
168
|
+
|
|
169
|
+
cy.get("#heroBannerWithAdditionalContent").shadow().find(".udex-hero-banner__background-image").should("not.exist");
|
|
170
|
+
|
|
171
|
+
cy.get("#heroBannerWithAdditionalContent").shadow().find(".udex-hero-banner__background-video-wrapper").should("not.exist");
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
});
|
|
@@ -56,6 +56,7 @@ import UDExPromoTile from "../../instrumented/PromoTile.js";
|
|
|
56
56
|
import UDExQuote from "../../instrumented/Quote.js";
|
|
57
57
|
import UDExMastheadProfileMenu from "../../instrumented/MastheadProfileMenu.js";
|
|
58
58
|
import UDExMessageStrip from "../../instrumented/MessageStrip.js";
|
|
59
|
+
import UDExHeroBanner from "../../instrumented/HeroBanner.js";
|
|
59
60
|
|
|
60
61
|
export {
|
|
61
62
|
UDExAccordion,
|
|
@@ -116,4 +117,5 @@ export {
|
|
|
116
117
|
UDExQuote,
|
|
117
118
|
UDExMastheadProfileMenu,
|
|
118
119
|
UDExMessageStrip,
|
|
120
|
+
UDExHeroBanner,
|
|
119
121
|
};
|
|
@@ -56,6 +56,7 @@ import UDExPromoTile from "../../src/PromoTile.js";
|
|
|
56
56
|
import UDExQuote from "../../src/Quote.js";
|
|
57
57
|
import UDExMastheadProfileMenu from "../../src/MastheadProfileMenu.js";
|
|
58
58
|
import UDExMessageStrip from "../../src/MessageStrip.js";
|
|
59
|
+
import UDExHeroBanner from "../../src/HeroBanner.js";
|
|
59
60
|
|
|
60
61
|
export {
|
|
61
62
|
UDExAccordion,
|
|
@@ -116,4 +117,5 @@ export {
|
|
|
116
117
|
UDExQuote,
|
|
117
118
|
UDExMastheadProfileMenu,
|
|
118
119
|
UDExMessageStrip,
|
|
120
|
+
UDExHeroBanner,
|
|
119
121
|
};
|
|
@@ -2,10 +2,11 @@ import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime"
|
|
|
2
2
|
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
3
3
|
export default function EventRibbonTemplate() {
|
|
4
4
|
const rootClass = "udex-event-ribbon";
|
|
5
|
+
const logoClass = this.customEventLogo?.length ? `${rootClass}__logo-img ${rootClass}__custom-logo` : `${rootClass}__logo-img`;
|
|
5
6
|
const { text, target, url } = this._eventLink;
|
|
6
7
|
return (_jsxs("a", { onKeyDown: this.handleKeyDown, role: "banner", "aria-label": this.eventText, class: {
|
|
7
8
|
[`${rootClass}__container`]: true,
|
|
8
9
|
[`${rootClass}__container-with-background-image`]: this.backgroundImage
|
|
9
|
-
}, target: target, href: url, title: text, children: [_jsx("div", { class: `${rootClass}__logo`, children: _jsx("img", { class: `${
|
|
10
|
+
}, target: target, href: url, title: text, children: [_jsx("div", { class: `${rootClass}__logo`, children: _jsx("img", { class: `${logoClass}`, src: this.eventLogoPath, alt: this.eventLogoAlt }) }), this.eventText && _jsx("p", { class: `${rootClass}__text`, children: this.eventText }), _jsxs("div", { class: `${rootClass}__link-container`, children: [this.eventLinkIcon && _jsx(Icon, { name: this.eventLinkIcon }), _jsx("span", { class: `${rootClass}__link-text`, children: text })] })] }));
|
|
10
11
|
}
|
|
11
12
|
//# sourceMappingURL=EventRibbonTemplate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventRibbonTemplate.js","sourceRoot":"","sources":["../src/EventRibbonTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,IAAI,MAAM,iCAAiC,CAAC;AAGnD,MAAM,CAAC,OAAO,UAAU,mBAAmB;IACzC,MAAM,SAAS,GAAG,mBAAmB,CAAC;IACtC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;IAC9C,OAAO,CACL,aACE,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,IAAI,EAAC,QAAQ,gBACD,IAAI,CAAC,SAAS,EAC1B,KAAK,EAAE;YACL,CAAC,GAAG,SAAS,aAAa,CAAC,EAAE,IAAI;YACjC,CAAC,GAAG,SAAS,mCAAmC,CAAC,EAAE,IAAI,CAAC,eAAe;SACxE,EACD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,EACT,KAAK,EAAE,IAAI,aACX,cAAK,KAAK,EAAE,GAAG,SAAS,QAAQ,YAC9B,cAAK,KAAK,EAAE,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"EventRibbonTemplate.js","sourceRoot":"","sources":["../src/EventRibbonTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,IAAI,MAAM,iCAAiC,CAAC;AAGnD,MAAM,CAAC,OAAO,UAAU,mBAAmB;IACzC,MAAM,SAAS,GAAG,mBAAmB,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,cAAc,SAAS,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,YAAY,CAAC;IAC/H,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;IAC9C,OAAO,CACL,aACE,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,IAAI,EAAC,QAAQ,gBACD,IAAI,CAAC,SAAS,EAC1B,KAAK,EAAE;YACL,CAAC,GAAG,SAAS,aAAa,CAAC,EAAE,IAAI;YACjC,CAAC,GAAG,SAAS,mCAAmC,CAAC,EAAE,IAAI,CAAC,eAAe;SACxE,EACD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,EACT,KAAK,EAAE,IAAI,aACX,cAAK,KAAK,EAAE,GAAG,SAAS,QAAQ,YAC9B,cAAK,KAAK,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,GAAG,GAC1E,EACL,IAAI,CAAC,SAAS,IAAI,YAAG,KAAK,EAAE,GAAG,SAAS,QAAQ,YAAG,IAAI,CAAC,SAAS,GAAK,EACvE,eAAK,KAAK,EAAE,GAAG,SAAS,kBAAkB,aACvC,IAAI,CAAC,aAAa,IAAI,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,CAAC,aAAa,GAAS,EAC9D,eAAM,KAAK,EAAE,GAAG,SAAS,aAAa,YAAG,IAAI,GAAQ,IACjD,IACJ,CACL,CAAC;AACJ,CAAC","sourcesContent":["import Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport type UDExEventRibbon from \"./EventRibbon.js\";\n\nexport default function EventRibbonTemplate(this: UDExEventRibbon) {\n const rootClass = \"udex-event-ribbon\";\n const logoClass = this.customEventLogo?.length ? `${rootClass}__logo-img ${rootClass}__custom-logo` : `${rootClass}__logo-img`;\n const { text, target, url } = this._eventLink;\n return (\n <a\n onKeyDown={this.handleKeyDown}\n role=\"banner\"\n aria-label={this.eventText}\n class={{\n [`${rootClass}__container`]: true,\n [`${rootClass}__container-with-background-image`]: this.backgroundImage\n }}\n target={target}\n href={url}\n title={text}>\n <div class={`${rootClass}__logo`}>\n <img class={`${logoClass}`} src={this.eventLogoPath} alt={this.eventLogoAlt}/>\n </div>\n {this.eventText && <p class={`${rootClass}__text`}>{this.eventText}</p>}\n <div class={`${rootClass}__link-container`}>\n {this.eventLinkIcon && <Icon name={this.eventLinkIcon}></Icon>}\n <span class={`${rootClass}__link-text`}>{text}</span>\n </div>\n </a>\n );\n}\n"]}
|
package/dist/HeroBanner.d.ts
CHANGED
|
@@ -73,6 +73,13 @@ declare class UDExHeroBanner extends UI5Element {
|
|
|
73
73
|
* @public
|
|
74
74
|
*/
|
|
75
75
|
content?: Array<HTMLElement>;
|
|
76
|
+
/**
|
|
77
|
+
* Slot for image or video content.
|
|
78
|
+
*
|
|
79
|
+
* @slot
|
|
80
|
+
* @public
|
|
81
|
+
*/
|
|
82
|
+
mediaContent?: Array<HTMLElement>;
|
|
76
83
|
/**
|
|
77
84
|
* Slot for any additional content.
|
|
78
85
|
*
|
|
@@ -96,6 +103,7 @@ declare class UDExHeroBanner extends UI5Element {
|
|
|
96
103
|
*/
|
|
97
104
|
get shouldVideoAutoplay(): boolean;
|
|
98
105
|
get heroBannerClasses(): string;
|
|
106
|
+
get hasMediaContent(): boolean;
|
|
99
107
|
get hasAdditionalContent(): boolean;
|
|
100
108
|
get hasCustomBackgroundPicture(): boolean;
|
|
101
109
|
get mediaButtonIconName(): "media-play" | "media-pause";
|
package/dist/HeroBanner.js
CHANGED
|
@@ -67,6 +67,9 @@ let UDExHeroBanner = class UDExHeroBanner extends UI5Element {
|
|
|
67
67
|
}
|
|
68
68
|
return heroBannerClasses.join(" ");
|
|
69
69
|
}
|
|
70
|
+
get hasMediaContent() {
|
|
71
|
+
return !!this.mediaContent?.length;
|
|
72
|
+
}
|
|
70
73
|
get hasAdditionalContent() {
|
|
71
74
|
return !!this.additionalContent?.length;
|
|
72
75
|
}
|
|
@@ -137,6 +140,9 @@ __decorate([
|
|
|
137
140
|
__decorate([
|
|
138
141
|
slot()
|
|
139
142
|
], UDExHeroBanner.prototype, "content", void 0);
|
|
143
|
+
__decorate([
|
|
144
|
+
slot()
|
|
145
|
+
], UDExHeroBanner.prototype, "mediaContent", void 0);
|
|
140
146
|
__decorate([
|
|
141
147
|
slot()
|
|
142
148
|
], UDExHeroBanner.prototype, "additionalContent", void 0);
|
package/dist/HeroBanner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeroBanner.js","sourceRoot":"","sources":["../src/HeroBanner.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,6CAA6C,CAAC;AACrD,OAAO,8CAA8C,CAAC;AAEtD,OAAO,kBAAkB,MAAM,iDAAiD,CAAC;AAEjF,SAAS;AACT,OAAO,aAAa,MAAM,sCAAsC,CAAC;AAEjE,MAAM,CAAN,IAAY,0BAGX;AAHD,WAAY,0BAA0B;IACpC,6CAAe,CAAA;IACf,2CAAa,CAAA;AACf,CAAC,EAHW,0BAA0B,KAA1B,0BAA0B,QAGrC;AAED;;;;;;;GAOG;AAQH,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,UAAU;IAAvC;;QASE;;;;WAIG;QAED,mCAA8B,GAAoC,0BAA0B,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"HeroBanner.js","sourceRoot":"","sources":["../src/HeroBanner.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,6CAA6C,CAAC;AACrD,OAAO,8CAA8C,CAAC;AAEtD,OAAO,kBAAkB,MAAM,iDAAiD,CAAC;AAEjF,SAAS;AACT,OAAO,aAAa,MAAM,sCAAsC,CAAC;AAEjE,MAAM,CAAN,IAAY,0BAGX;AAHD,WAAY,0BAA0B;IACpC,6CAAe,CAAA;IACf,2CAAa,CAAA;AACf,CAAC,EAHW,0BAA0B,KAA1B,0BAA0B,QAGrC;AAED;;;;;;;GAOG;AAQH,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,UAAU;IAAvC;;QASE;;;;WAIG;QAED,mCAA8B,GAAoC,0BAA0B,CAAC,KAAK,CAAC;QAuJrG,sBAAiB,GAAG,CAAC,OAAoB,EAA6B,EAAE;YACtE,OAAO,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC;QACnC,CAAC,CAAC;IAqBJ,CAAC;IApFC,IAAI,kBAAkB;QACpB,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,kBAAkB;QACpB,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,sBAAsB;QACxB,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC;IACrE,CAAC;IAED,IAAI,sBAAsB;QACxB,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,oBAAoB,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,CAAC;IAED;;OAEG;IACH,IAAI,mBAAmB;QACrB,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC,OAAO,CAAC;IACxE,CAAC;IAED,IAAI,iBAAiB;QACnB,MAAM,iBAAiB,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,iBAAiB,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC;IACrC,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC;IAC1C,CAAC;IAED,IAAI,0BAA0B;QAC5B,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC;IAC1C,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC;IAC7D,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,UAAU,EAAE,aAAa,CAAmB,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,0BAA0B,EAAE,CAAC;IACpC,CAAC;IAED,0BAA0B;QACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IACnE,CAAC;IAMD,cAAc,CAAC,KAAoB;QACjC,MAAM,MAAM,GAAgB,KAAK,CAAC,MAAM,CAAC;QACzC,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACrD,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,UAAU;QACR,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,sCAAsC,EAAE,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;YACnG,CAAC;YACD,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;gBACzC,IAAI,CAAC,0BAA0B,EAAE,CAAC;YACpC,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF,CAAA;AAtLG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uDACA;AAQzB;IADD,QAAQ,EAAE;sEAC0F;AAQnG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4DACK;AAQ9B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uDACA;AAQzB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4DACK;AAc9B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uDACA;AAWzB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0DACG;AAG5B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;uDACnB;AAS1B;IADD,IAAI,EAAE;+CACwB;AAS7B;IADD,IAAI,EAAE;oDAC6B;AASlC;IADD,IAAI,EAAE;yDACkC;AASvC;IADD,IAAI,EAAE;yDACkC;AAvGrC,cAAc;IAPnB,aAAa,CAAC;QACb,GAAG,EAAE,kBAAkB;QACvB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,aAAa;QACrB,QAAQ,EAAE,kBAAkB;QAC5B,YAAY,EAAE,CAAC,IAAI,CAAC;KACrB,CAAC;GACI,cAAc,CA6LnB;AACD,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 slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/media-play.js\";\nimport \"@ui5/webcomponents-icons/dist/media-pause.js\";\n\nimport HeroBannerTemplate from \"./generated/templates/HeroBannerTemplate.lit.js\";\n\n// Styles\nimport HeroBannerCss from \"./generated/themes/HeroBanner.css.js\";\n\nexport enum UDExImageLoadingStrategies {\n Eager = \"eager\",\n Lazy = \"lazy\",\n}\n\n/**\n * @class\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-hero-banner\n * @public\n */\n@customElement({\n tag: \"udex-hero-banner\",\n renderer: litRender,\n styles: HeroBannerCss,\n template: HeroBannerTemplate,\n dependencies: [Icon],\n})\nclass UDExHeroBanner extends UI5Element {\n /**\n * Allows control over the background image source.\n *\n * @public\n */\n @property({ type: String })\n backgroundImage?: string;\n\n /**\n * Allows control over the background image loading strategy.\n *\n * @public\n */\n @property()\n backgroundImageLoadingStrategy: `${UDExImageLoadingStrategies}` = UDExImageLoadingStrategies.Eager;\n\n /**\n * Used as the label for background image.\n *\n * @public\n */\n @property({ type: String })\n backgroundImageLabel?: string;\n\n /**\n * Allows control over the background video source.\n *\n * @public\n */\n @property({ type: String })\n backgroundVideo?: string;\n\n /**\n * Used as the label for background video.\n *\n * @public\n */\n @property({ type: String })\n backgroundVideoLabel?: string;\n\n /**\n * Allows control over the background color.\n * Value provided should be compatible with standard CSS rendering, e.g:\n * - HEX: \"#FFF\", \"#FFFFFF\", \"FFFFFFFF\"\n * - RGB/A: \"rgb(255, 255, 255)\", \"rgba(255, 255, 255, 1)\"\n * - HSL/A: \"hsl(0, 100%, 100%)\", \"hsla(0, 100%, 100%, 1\"\n * - Variables: \"var(--sapShell_Background)\", \"var(--udexColorNeutralWhite)\"\n * - Text values: \"white\", \"red\"\n *\n * @public\n */\n @property({ type: String })\n backgroundColor?: string;\n\n /**\n * Allows control over the background-image to set css gradient.\n * Value provided should be compatible with standard CSS linear-gradient rendering, e.g:\n * linear-gradient(to bottom, #1e5799 0%,#7db9e8 100%);\n * linear-gradient(to bottom, var(--udexColorBlue2) 0%,var(--udexColorBlue4) 100%);\n *\n * @public\n */\n @property({ type: String })\n backgroundGradient?: string;\n\n @property({ type: Boolean, noAttribute: true })\n _isVideoRunning?: boolean;\n\n /**\n * Slot for primary content.\n *\n * @slot\n * @public\n */\n @slot()\n content?: Array<HTMLElement>;\n\n /**\n * Slot for image or video content.\n *\n * @slot\n * @public\n */\n @slot()\n mediaContent?: Array<HTMLElement>;\n\n /**\n * Slot for any additional content.\n *\n * @slot\n * @public\n */\n @slot()\n additionalContent?: Array<HTMLElement>;\n\n /**\n * Slot background picture override.\n *\n * @slot\n * @public\n */\n @slot()\n backgroundPicture?: Array<HTMLElement>;\n\n get hasBackgroundImage(): boolean {\n return !!this.backgroundImage;\n }\n get hasBackgroundVideo(): boolean {\n return !!this.backgroundVideo;\n }\n get wrapperBackgroundColor(): string {\n return this.backgroundColor ? this.backgroundColor : \"transparent\";\n }\n\n get wrapperBackgroundImage(): string {\n return this.backgroundGradient ? `background-image:${this.backgroundGradient}` : \"\";\n }\n\n /**\n * Determines if the video should autoplay based on the user's global preference.\n */\n get shouldVideoAutoplay() {\n return !window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n }\n\n get heroBannerClasses(): string {\n const heroBannerClasses = [\"udex-hero-banner\"];\n if (this.hasBackgroundVideo) {\n heroBannerClasses.push(\"udex-hero-banner--video\");\n }\n return heroBannerClasses.join(\" \");\n }\n\n get hasMediaContent() {\n return !!this.mediaContent?.length;\n }\n\n get hasAdditionalContent() {\n return !!this.additionalContent?.length;\n }\n\n get hasCustomBackgroundPicture() {\n return !!this.backgroundPicture?.length;\n }\n\n get mediaButtonIconName() {\n return this._isVideoRunning ? \"media-pause\" : \"media-play\";\n }\n get _video() {\n return this.shadowRoot?.querySelector<HTMLVideoElement>(\"video\");\n }\n\n _toggleMediaButton(): void {\n if (this._video?.paused) {\n this._video?.play();\n } else {\n this._video?.pause();\n }\n this._calculateMediaButtonState();\n }\n\n _calculateMediaButtonState() {\n this._isVideoRunning = this._video ? !this._video.paused : false;\n }\n\n _isHTMLDivElement = (element: HTMLElement): element is HTMLDivElement => {\n return element.tagName === \"DIV\";\n };\n\n _handleKeydown(event: KeyboardEvent): void {\n const target = <HTMLElement>event.target;\n if (this._isHTMLDivElement(target) && isSpace(event)) {\n event.preventDefault();\n event.stopPropagation();\n this._toggleMediaButton();\n }\n }\n\n onEnterDOM() {\n if (this.backgroundVideo) {\n if (this.backgroundColor) {\n this.style.setProperty(\"--udexHeroBannerBackgroundVideoColor\", `${this.wrapperBackgroundColor}`);\n }\n this._video?.addEventListener(\"play\", () => {\n this._calculateMediaButtonState();\n });\n }\n }\n}\nUDExHeroBanner.define();\n\nexport default UDExHeroBanner;\n"]}
|
package/dist/PromoTile.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delega
|
|
|
3
3
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
4
4
|
import type UDExButton from "./Button.js";
|
|
5
5
|
import UDExButtonDesign from "./types/ButtonDesign.js";
|
|
6
|
-
import {
|
|
6
|
+
import { UDExPromoTileColorScheme, UDExPromoTileMode } from "./types/PromoTile.js";
|
|
7
7
|
export declare enum UDExOrientation {
|
|
8
8
|
Vertical = "Vertical",
|
|
9
9
|
Horizontal = "Horizontal"
|
|
@@ -40,80 +40,70 @@ declare class UDExPromoTile extends UI5Element {
|
|
|
40
40
|
/**
|
|
41
41
|
* Defines the orientation of the Promo Tile component.
|
|
42
42
|
*
|
|
43
|
-
* @
|
|
44
|
-
* @defaultvalue "Vertical"
|
|
43
|
+
* @default "Vertical"
|
|
45
44
|
* @public
|
|
46
45
|
*/
|
|
47
46
|
orientation: `${UDExOrientation}`;
|
|
48
47
|
/**
|
|
49
48
|
* Defines the UI5 icon name in the pictogram section.
|
|
50
49
|
*
|
|
51
|
-
* @
|
|
52
|
-
* @defaultvalue ""
|
|
50
|
+
* @default ""
|
|
53
51
|
* @public
|
|
54
52
|
*/
|
|
55
53
|
icon?: string;
|
|
56
54
|
/**
|
|
57
55
|
* Defines the image aria label and alt in the pictogram section.
|
|
58
56
|
*
|
|
59
|
-
* @
|
|
60
|
-
* @defaultvalue ""
|
|
57
|
+
* @default ""
|
|
61
58
|
* @public
|
|
62
59
|
*/
|
|
63
60
|
imageLabel?: string;
|
|
64
61
|
/**
|
|
65
62
|
* Defines the logo URL in the pictogram section.
|
|
66
63
|
*
|
|
67
|
-
* @
|
|
68
|
-
* @defaultvalue ""
|
|
64
|
+
* @default ""
|
|
69
65
|
* @public
|
|
70
66
|
*/
|
|
71
67
|
logoUrl?: string;
|
|
72
68
|
/**
|
|
73
69
|
* Defines the header text of the promo tile.
|
|
74
70
|
*
|
|
75
|
-
* @
|
|
76
|
-
* @defaultvalue ""
|
|
71
|
+
* @default ""
|
|
77
72
|
* @public
|
|
78
73
|
*/
|
|
79
74
|
header?: string;
|
|
80
75
|
/**
|
|
81
76
|
* Defines the eyebrow text of the promo tile.
|
|
82
77
|
*
|
|
83
|
-
* @
|
|
84
|
-
* @defaultvalue ""
|
|
78
|
+
* @default ""
|
|
85
79
|
* @public
|
|
86
80
|
*/
|
|
87
81
|
eyebrow?: string;
|
|
88
82
|
/**
|
|
89
83
|
* Defines the CTA button label
|
|
90
84
|
*
|
|
91
|
-
* @
|
|
92
|
-
* @defaultvalue ""
|
|
85
|
+
* @default ""
|
|
93
86
|
* @public
|
|
94
87
|
*/
|
|
95
88
|
button?: string;
|
|
96
89
|
/**
|
|
97
90
|
* Defines the CTA button design
|
|
98
91
|
*
|
|
99
|
-
* @
|
|
100
|
-
* @defaultvalue ""
|
|
92
|
+
* @default ""
|
|
101
93
|
* @public
|
|
102
94
|
*/
|
|
103
95
|
buttonDesign?: UDExButtonDesign;
|
|
104
96
|
/**
|
|
105
97
|
* Defines the color scheme of the Promo Tile.
|
|
106
98
|
*
|
|
107
|
-
* @
|
|
108
|
-
* @defaultvalue ""
|
|
99
|
+
* @default ""
|
|
109
100
|
* @public
|
|
110
101
|
*/
|
|
111
|
-
colorScheme?:
|
|
102
|
+
colorScheme?: UDExPromoTileColorScheme;
|
|
112
103
|
/**
|
|
113
104
|
* Defines the accessible name of the component.
|
|
114
105
|
*
|
|
115
|
-
* @
|
|
116
|
-
* @defaultvalue ""
|
|
106
|
+
* @default ""
|
|
117
107
|
* @public
|
|
118
108
|
*/
|
|
119
109
|
accessibleName?: string;
|
package/dist/PromoTile.js
CHANGED
|
@@ -19,7 +19,7 @@ import { PROMO_TILE, PROMO_TILE_ICON } from "./generated/i18n/i18n-defaults.js";
|
|
|
19
19
|
import { BreakpointUtils } from "./utils/Breakpoints.js";
|
|
20
20
|
import UDExButtonSize from "./types/ButtonSize.js";
|
|
21
21
|
import UDExButtonDesign from "./types/ButtonDesign.js";
|
|
22
|
-
import {
|
|
22
|
+
import { UDExPromoTileColorScheme, UDExPromoTileMode } from "./types/PromoTile.js";
|
|
23
23
|
// Styles
|
|
24
24
|
import PromoTileCss from "./generated/themes/PromoTile.css.js";
|
|
25
25
|
export var UDExOrientation;
|
|
@@ -51,8 +51,7 @@ let UDExPromoTile = UDExPromoTile_1 = class UDExPromoTile extends UI5Element {
|
|
|
51
51
|
/**
|
|
52
52
|
* Defines the orientation of the Promo Tile component.
|
|
53
53
|
*
|
|
54
|
-
* @
|
|
55
|
-
* @defaultvalue "Vertical"
|
|
54
|
+
* @default "Vertical"
|
|
56
55
|
* @public
|
|
57
56
|
*/
|
|
58
57
|
this.orientation = UDExOrientation.Vertical;
|
|
@@ -110,7 +109,7 @@ let UDExPromoTile = UDExPromoTile_1 = class UDExPromoTile extends UI5Element {
|
|
|
110
109
|
}
|
|
111
110
|
checkEyebrowColor(colorScheme) {
|
|
112
111
|
const number = this.getColorNumber(colorScheme);
|
|
113
|
-
let color =
|
|
112
|
+
let color = UDExPromoTileColorScheme.Blue8;
|
|
114
113
|
if (number === 7) {
|
|
115
114
|
color = "NeutralWhite";
|
|
116
115
|
}
|
|
@@ -146,7 +145,7 @@ __decorate([
|
|
|
146
145
|
slot({ type: HTMLElement, "default": true })
|
|
147
146
|
], UDExPromoTile.prototype, "content", void 0);
|
|
148
147
|
__decorate([
|
|
149
|
-
property(
|
|
148
|
+
property()
|
|
150
149
|
], UDExPromoTile.prototype, "orientation", void 0);
|
|
151
150
|
__decorate([
|
|
152
151
|
property({ type: String })
|
|
@@ -167,10 +166,10 @@ __decorate([
|
|
|
167
166
|
property({ type: String })
|
|
168
167
|
], UDExPromoTile.prototype, "button", void 0);
|
|
169
168
|
__decorate([
|
|
170
|
-
property(
|
|
169
|
+
property()
|
|
171
170
|
], UDExPromoTile.prototype, "buttonDesign", void 0);
|
|
172
171
|
__decorate([
|
|
173
|
-
property(
|
|
172
|
+
property()
|
|
174
173
|
], UDExPromoTile.prototype, "colorScheme", void 0);
|
|
175
174
|
__decorate([
|
|
176
175
|
property({ type: String })
|
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 { UDExPromoTileColorSheme, UDExPromoTileMode } from \"./types/PromoTile.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 orientation of the Promo Tile component.\n *\n * @type {string}\n * @defaultvalue \"Vertical\"\n * @public\n */\n @property({ type: String })\n orientation: `${UDExOrientation}` = UDExOrientation.Vertical;\n\n /**\n * Defines the UI5 icon name in the pictogram section.\n *\n * @type {string}\n * @defaultvalue \"\"\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 * @type {string}\n * @defaultvalue \"\"\n * @public\n */\n @property({ type: String })\n imageLabel?: string;\n\n /**\n * Defines the logo URL in the pictogram section.\n *\n * @type {string}\n * @defaultvalue \"\"\n * @public\n */\n @property({ type: String })\n logoUrl?: string;\n\n /**\n * Defines the header text of the promo tile.\n *\n * @type {string}\n * @defaultvalue \"\"\n * @public\n */\n @property({ type: String })\n header?: string;\n\n /**\n * Defines the eyebrow text of the promo tile.\n *\n * @type {string}\n * @defaultvalue \"\"\n * @public\n */\n @property({ type: String })\n eyebrow?: string;\n\n /**\n * Defines the CTA button label\n *\n * @type {string}\n * @defaultvalue \"\"\n * @public\n */\n @property({ type: String })\n button?: string;\n\n /**\n * Defines the CTA button design\n *\n * @type {string}\n * @defaultvalue \"\"\n * @public\n */\n @property({ type: String })\n buttonDesign?: UDExButtonDesign;\n\n /**\n * Defines the color scheme of the Promo Tile.\n *\n * @type {string}\n * @defaultvalue \"\"\n * @public\n */\n @property({ type: String })\n colorScheme?: UDExPromoTileColorSheme;\n\n /**\n * Defines the accessible name of the component.\n *\n * @type {string}\n * @defaultvalue \"\"\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>(\n \"[udex-button]\",\n )!;\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 = UDExPromoTileColorSheme.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 get isMobile(): boolean {\n return BreakpointUtils.isAtMost(\"S\");\n }\n\n get promoTileContainerText(): string {\n return this.accessibleName || this.header || UDExPromoTile.i18nBundle.getText(PROMO_TILE);\n }\n\n get _showPictogram(): boolean {\n return !!this.icon || !!this.logoUrl;\n }\n\n get _showLogo(): boolean {\n return !this.icon && !!this.logoUrl;\n }\n\n get _imageLabel(): string {\n return this.imageLabel || UDExPromoTile.i18nBundle.getText(PROMO_TILE_ICON);\n }\n\n handleCTAButtonClick(e: Event) {\n e.preventDefault();\n this.fireDecoratorEvent(\"button-click\");\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\";\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 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>(\n \"[udex-button]\",\n )!;\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 get isMobile(): boolean {\n return BreakpointUtils.isAtMost(\"S\");\n }\n\n get promoTileContainerText(): string {\n return this.accessibleName || this.header || UDExPromoTile.i18nBundle.getText(PROMO_TILE);\n }\n\n get _showPictogram(): boolean {\n return !!this.icon || !!this.logoUrl;\n }\n\n get _showLogo(): boolean {\n return !this.icon && !!this.logoUrl;\n }\n\n get _imageLabel(): string {\n return this.imageLabel || UDExPromoTile.i18nBundle.getText(PROMO_TILE_ICON);\n }\n\n handleCTAButtonClick(e: Event) {\n e.preventDefault();\n this.fireDecoratorEvent(\"button-click\");\n }\n}\n\nUDExPromoTile.define();\n\nexport default UDExPromoTile;\n"]}
|
package/dist/Search.js
CHANGED
|
@@ -487,7 +487,7 @@ let UDExSearch = UDExSearch_1 = class UDExSearch extends UI5Element {
|
|
|
487
487
|
this.Suggestion = new Suggestion(this);
|
|
488
488
|
}
|
|
489
489
|
else {
|
|
490
|
-
throw new Error("You have to import '@sapudex/
|
|
490
|
+
throw new Error("You have to import '@sapudex/web-components/dist/features/SearchSuggestionsPopover.js' module to use udex-search suggestions");
|
|
491
491
|
}
|
|
492
492
|
}
|
|
493
493
|
_createObserver(popover, ingoreOpenState = false) {
|