@sapudex/web-components 2.7.2 → 2.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle.esm.js +2 -0
- package/cypress/specs/EventRibbon.cy.tsx +25 -6
- package/cypress/specs/LinkList.cy.tsx +49 -0
- package/cypress/specs/LinkListItem.cy.tsx +102 -0
- package/cypress/support/component-imports.instrumented.ts +4 -0
- package/cypress/support/component-imports.src.ts +4 -0
- package/dist/EventRibbon.d.ts +15 -1
- package/dist/EventRibbon.js +11 -3
- package/dist/EventRibbon.js.map +1 -1
- package/dist/EventRibbonTemplate.js +5 -1
- package/dist/EventRibbonTemplate.js.map +1 -1
- package/dist/LinkList.d.ts +58 -0
- package/dist/LinkList.js +89 -0
- package/dist/LinkList.js.map +1 -0
- package/dist/LinkListItem.d.ts +78 -0
- package/dist/LinkListItem.js +97 -0
- package/dist/LinkListItem.js.map +1 -0
- package/dist/LinkListItemTemplate.d.ts +2 -0
- package/dist/LinkListItemTemplate.js +17 -0
- package/dist/LinkListItemTemplate.js.map +1 -0
- package/dist/LinkListTemplate.d.ts +2 -0
- package/dist/LinkListTemplate.js +5 -0
- package/dist/LinkListTemplate.js.map +1 -0
- package/dist/Tile.d.ts +2 -2
- package/dist/Tile.js +3 -3
- package/dist/Tile.js.map +1 -1
- package/dist/TileTemplate.d.ts +2 -0
- package/dist/TileTemplate.js +7 -0
- package/dist/TileTemplate.js.map +1 -0
- package/dist/assets/{InputSuggestions-D0OZo5eY.js → InputSuggestions-BmjyLzkP.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-BOc_KoW1.js → ListItemStandardExpandableTextTemplate-CDt3iORy.js} +1 -1
- package/dist/assets/{bundle.esm-BLn1Dq6A.js → bundle.esm-Dz11sAJe.js} +205 -203
- package/dist/css/themes/EventRibbon.css +1 -1
- package/dist/css/themes/LinkList.css +1 -0
- package/dist/css/themes/LinkListItem.css +1 -0
- package/dist/css/themes/ListGroupHeader.css +1 -1
- package/dist/css/themes/ListItem.css +1 -1
- package/dist/css/themes/ProgressBar.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 +345 -2
- package/dist/custom-elements.json +327 -2
- 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/LinkList.css.d.ts +2 -0
- package/dist/generated/themes/LinkList.css.js +8 -0
- package/dist/generated/themes/LinkList.css.js.map +1 -0
- package/dist/generated/themes/LinkListItem.css.d.ts +2 -0
- package/dist/generated/themes/LinkListItem.css.js +8 -0
- package/dist/generated/themes/LinkListItem.css.js.map +1 -0
- package/dist/generated/themes/ListGroupHeader.css.d.ts +1 -1
- package/dist/generated/themes/ListGroupHeader.css.js +1 -1
- package/dist/generated/themes/ListGroupHeader.css.js.map +1 -1
- package/dist/generated/themes/ListItem.css.d.ts +1 -1
- package/dist/generated/themes/ListItem.css.js +1 -1
- package/dist/generated/themes/ListItem.css.js.map +1 -1
- package/dist/generated/themes/ProgressBar.css.d.ts +1 -1
- package/dist/generated/themes/ProgressBar.css.js +1 -1
- package/dist/generated/themes/ProgressBar.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/vscode.html-custom-data.json +83 -1
- package/dist/web-types.json +163 -3
- package/package.json +1 -1
- package/src/EventRibbon.ts +24 -5
- package/src/EventRibbonTemplate.tsx +17 -6
- package/src/LinkList.ts +93 -0
- package/src/LinkListItem.ts +126 -0
- package/src/LinkListItemTemplate.tsx +52 -0
- package/src/LinkListTemplate.tsx +13 -0
- package/src/Tile.ts +5 -5
- package/src/TileTemplate.tsx +31 -0
- package/src/generated/themes/EventRibbon.css.ts +1 -1
- package/src/generated/themes/LinkList.css.ts +9 -0
- package/src/generated/themes/LinkListItem.css.ts +9 -0
- package/src/generated/themes/ListGroupHeader.css.ts +1 -1
- package/src/generated/themes/ListItem.css.ts +1 -1
- package/src/generated/themes/ProgressBar.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 +34 -28
- package/src/themes/LinkList.css +53 -0
- package/src/themes/LinkListItem.css +84 -0
- package/src/themes/ListGroupHeader.css +1 -1
- package/src/themes/ListItem.css +2 -2
- package/src/themes/ProgressBar.css +2 -1
- package/dist/generated/templates/TileTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TileTemplate.lit.js +0 -9
- package/dist/generated/templates/TileTemplate.lit.js.map +0 -1
- package/src/Tile.hbs +0 -21
- package/src/generated/templates/TileTemplate.lit.ts +0 -13
package/bundle.esm.js
CHANGED
|
@@ -48,6 +48,8 @@ import "./dist/Footer.js";
|
|
|
48
48
|
import "./dist/HeroBanner.js";
|
|
49
49
|
import "./dist/InputGroup.js";
|
|
50
50
|
import "./dist/Link.js";
|
|
51
|
+
import "./dist/LinkList.js";
|
|
52
|
+
import "./dist/LinkListItem.js";
|
|
51
53
|
import "./dist/List.js";
|
|
52
54
|
import "./dist/ListGroupHeader.js";
|
|
53
55
|
import "./dist/ListGroupHeaderBase.js";
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { UDExEventRibbon } from "../support/component-imports.js";
|
|
2
2
|
import { eventLink } from "../fixtures/event-ribbon-links.js";
|
|
3
|
+
import { UDExEventRibbonColorSheme } from "../../src/types/EventRibbon.js";
|
|
3
4
|
|
|
4
5
|
const defaultEventRibbon = <UDExEventRibbon
|
|
5
6
|
eventText="Get your free all-access pass to a network of latest innovations and insights"
|
|
6
7
|
eventLogo="now"
|
|
7
8
|
eventLink={JSON.stringify(eventLink)}
|
|
8
|
-
backgroundColorScheme=
|
|
9
|
+
backgroundColorScheme={UDExEventRibbonColorSheme.Blue1}>
|
|
9
10
|
</UDExEventRibbon>
|
|
10
11
|
|
|
11
12
|
const linkIconEventRibbon = <UDExEventRibbon
|
|
@@ -13,7 +14,7 @@ const linkIconEventRibbon = <UDExEventRibbon
|
|
|
13
14
|
eventText="Get your free all-access pass to a network of latest innovations and insights"
|
|
14
15
|
eventLogo="now"
|
|
15
16
|
eventLink={JSON.stringify(eventLink)}
|
|
16
|
-
backgroundColorScheme=
|
|
17
|
+
backgroundColorScheme={UDExEventRibbonColorSheme.Blue3}>
|
|
17
18
|
</UDExEventRibbon>
|
|
18
19
|
|
|
19
20
|
const linkIconMediaEventRibbon = <UDExEventRibbon
|
|
@@ -21,7 +22,7 @@ const linkIconMediaEventRibbon = <UDExEventRibbon
|
|
|
21
22
|
eventText="Get your free all-access pass to a network of latest innovations and insights"
|
|
22
23
|
eventLogo="now"
|
|
23
24
|
eventLink={JSON.stringify(eventLink)}
|
|
24
|
-
backgroundColorScheme=
|
|
25
|
+
backgroundColorScheme={UDExEventRibbonColorSheme.Blue3}>
|
|
25
26
|
</UDExEventRibbon>
|
|
26
27
|
|
|
27
28
|
const darkEventRibbon = <UDExEventRibbon
|
|
@@ -29,17 +30,25 @@ const darkEventRibbon = <UDExEventRibbon
|
|
|
29
30
|
eventText="Get your free all-access pass to a network of latest innovations and insights"
|
|
30
31
|
eventLogo="now"
|
|
31
32
|
eventLink={JSON.stringify(eventLink)}
|
|
32
|
-
backgroundColorScheme=
|
|
33
|
+
backgroundColorScheme={UDExEventRibbonColorSheme.Raspberry2}>
|
|
33
34
|
</UDExEventRibbon>
|
|
34
35
|
|
|
35
36
|
const imageEventRibbon = <UDExEventRibbon
|
|
36
37
|
eventText="Get your free all-access pass to a network of latest innovations and insights"
|
|
37
38
|
eventLogo="now"
|
|
38
39
|
eventLink={JSON.stringify(eventLink)}
|
|
39
|
-
backgroundColorScheme=
|
|
40
|
+
backgroundColorScheme={UDExEventRibbonColorSheme.Blue1}
|
|
40
41
|
backgroundImage="https://cdn.udex.services.sap.com/dds/design-tokens/assets/logos/sap-logo.svg">
|
|
41
42
|
</UDExEventRibbon>
|
|
42
43
|
|
|
44
|
+
const customLogoEventRibbon = <UDExEventRibbon
|
|
45
|
+
eventText="Get your free all-access pass to a network of latest innovations and insights"
|
|
46
|
+
customEventLogo="https://cdn.udex.services.sap.com/dds/design-tokens/assets/logos/sap-logo.svg"
|
|
47
|
+
customEventLogoAltText="SAP Logo"
|
|
48
|
+
eventLink={JSON.stringify(eventLink)}
|
|
49
|
+
backgroundColorScheme={UDExEventRibbonColorSheme.Blue1}>
|
|
50
|
+
</UDExEventRibbon>
|
|
51
|
+
|
|
43
52
|
describe("EventRibbon", () => {
|
|
44
53
|
it("is correctly rendered", () => {
|
|
45
54
|
cy.mount(defaultEventRibbon)
|
|
@@ -107,4 +116,14 @@ describe("EventRibbon", () => {
|
|
|
107
116
|
cy.get("[udex-event-ribbon]").shadow().find(".udex-event-ribbon__container").should("have.attr", "href", "#");
|
|
108
117
|
cy.get("[udex-event-ribbon]").shadow().find(".udex-event-ribbon__container").should("have.attr", "title", "Learn more");
|
|
109
118
|
});
|
|
110
|
-
|
|
119
|
+
|
|
120
|
+
it("correctly renders custom logo image", () => {
|
|
121
|
+
cy.mount(customLogoEventRibbon)
|
|
122
|
+
cy.get("[udex-event-ribbon]").shadow().find(".udex-event-ribbon__logo-img").should("have.attr", "src", "https://cdn.udex.services.sap.com/dds/design-tokens/assets/logos/sap-logo.svg");
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
it("correctly renders custom logo image alt text", () => {
|
|
126
|
+
cy.mount(customLogoEventRibbon)
|
|
127
|
+
cy.get("[udex-event-ribbon]").shadow().find(".udex-event-ribbon__logo-img").should("have.attr", "alt", "SAP Logo");
|
|
128
|
+
});
|
|
129
|
+
})
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { UDExLinkList, UDExLinkListItem } from "../support/component-imports.js";
|
|
2
|
+
|
|
3
|
+
const linkList = <UDExLinkList
|
|
4
|
+
id="udex-link-list"
|
|
5
|
+
accessibleName="link list accessible name"
|
|
6
|
+
accessibleRole="link list role">
|
|
7
|
+
<UDExLinkListItem
|
|
8
|
+
icon="sap-icon://physical-activity"
|
|
9
|
+
href="www.sap.com"
|
|
10
|
+
label="CRM and customer experience"
|
|
11
|
+
target="_self">
|
|
12
|
+
</UDExLinkListItem>
|
|
13
|
+
<UDExLinkListItem
|
|
14
|
+
icon="sap-icon://ai"
|
|
15
|
+
href="https://www.sap.com/products/artificial-intelligence/blogs-resources.html"
|
|
16
|
+
label="AI"
|
|
17
|
+
target="_self"
|
|
18
|
+
accessible-role="listitem">
|
|
19
|
+
</UDExLinkListItem>
|
|
20
|
+
<UDExLinkListItem
|
|
21
|
+
icon="sap-icon://business-by-design"
|
|
22
|
+
href="https://www.sap.com/topics/business-transformation"
|
|
23
|
+
label="Business transformation"
|
|
24
|
+
target="_self">
|
|
25
|
+
</UDExLinkListItem>
|
|
26
|
+
</UDExLinkList>
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
describe("Link List component", () => {
|
|
30
|
+
beforeEach(() => {
|
|
31
|
+
cy.mount(linkList)
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
it("is correctly rendered", () => {
|
|
35
|
+
cy.get("[udex-link-list]").shadow().find(".udex-link-list").should("be.visible");
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it("renders right amount of items", () => {
|
|
39
|
+
cy.get("[udex-link-list]").find("udex-link-list-item").should("have.length", 3);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it("renders", () => {
|
|
43
|
+
cy.get("[udex-link-list]").shadow().find(".udex-link-list").should("have.attr", "role", "link list role")
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it("renders", () => {
|
|
47
|
+
cy.get("[udex-link-list]").shadow().find(".udex-link-list").should("have.attr", "aria-label", "link list accessible name")
|
|
48
|
+
});
|
|
49
|
+
});
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { UDExLinkListItem } from "../support/component-imports.js";
|
|
2
|
+
|
|
3
|
+
const linkBased = <UDExLinkListItem
|
|
4
|
+
id="linkBased"
|
|
5
|
+
href="www.sap.com"
|
|
6
|
+
label="CRM and customer experience"
|
|
7
|
+
target="_blank"
|
|
8
|
+
accessibleName="item accessible name">
|
|
9
|
+
</UDExLinkListItem>
|
|
10
|
+
|
|
11
|
+
const tileBased = <UDExLinkListItem
|
|
12
|
+
id="tileBased"
|
|
13
|
+
icon="sap-icon://physical-activity"
|
|
14
|
+
href="www.sap.com"
|
|
15
|
+
label="Supply chain management"
|
|
16
|
+
target="_blank"
|
|
17
|
+
type="TileS"
|
|
18
|
+
accessibleName="item accessible name">
|
|
19
|
+
</UDExLinkListItem>
|
|
20
|
+
|
|
21
|
+
describe("Link item component", () => {
|
|
22
|
+
beforeEach(() => {
|
|
23
|
+
cy.mount(linkBased)
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
it("link is correctly rendered", () => {
|
|
27
|
+
cy.get("#linkBased").shadow().find("[udex-link]").should("be.visible");
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it("label is set correctly", () => {
|
|
31
|
+
cy.get("#linkBased").shadow().find("[udex-link]").should("have.text", "CRM and customer experience");
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it("icon does not exist for link-based item", () => {
|
|
35
|
+
cy.get("#linkBased").shadow().find("[ui5-icon]").should("not.exist");
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it("href attribute is set correctly", () => {
|
|
39
|
+
cy.get("#linkBased").shadow().find("[udex-link]").should("have.attr", "href", "www.sap.com");
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it("accessibleName attribute is set correctly", () => {
|
|
43
|
+
cy.get("#linkBased").shadow().find("[udex-link]").should("have.attr", "accessible-name", "item accessible name");
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it("target attribute is set correctly", () => {
|
|
47
|
+
cy.get("#linkBased").shadow().find("[udex-link]").should("have.attr", "target", "_blank");
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
it("click item emits \"item-click\" event", () => {
|
|
51
|
+
const stub = cy.stub();
|
|
52
|
+
cy.get("#linkBased").then($el => {
|
|
53
|
+
$el.get(0).addEventListener("item-click", stub);
|
|
54
|
+
});
|
|
55
|
+
cy.get("#linkBased").shadow().find("[udex-link]").click()
|
|
56
|
+
.then(() => {
|
|
57
|
+
expect(stub).to.have.been.called;
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it("tests the \"item-click\" event is prevented when prevent default is called", () => {
|
|
62
|
+
cy.get("#linkBased").shadow().find("[udex-link]")
|
|
63
|
+
.then($link => {
|
|
64
|
+
$link.get(0).addEventListener("item-click", event => {
|
|
65
|
+
event.preventDefault();
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
cy.get("#linkBased").shadow().find("[udex-link]").click();
|
|
70
|
+
cy.url().should("not.include", "www.sap.com");
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
describe("Tile item component", () => {
|
|
75
|
+
beforeEach(() => {
|
|
76
|
+
cy.mount(tileBased)
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
it("tile is correctly rendered", () => {
|
|
80
|
+
cy.get("#tileBased").shadow().find("[udex-tile]").should("be.visible");
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
it("label is set correctly", () => {
|
|
84
|
+
cy.get("#tileBased").shadow().find("[udex-tile]").should("have.text", "Supply chain management");
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
it("icon is set correctly", () => {
|
|
88
|
+
cy.get("#tileBased").shadow().find("[ui5-icon]").should("exist");
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
it("href attribute is set correctly", () => {
|
|
92
|
+
cy.get("#tileBased").shadow().find("[udex-tile]").should("have.attr", "href", "www.sap.com");
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
it("accessibleName attribute is set correctly", () => {
|
|
96
|
+
cy.get("#tileBased").shadow().find("[udex-tile]").should("have.attr", "accessible-name", "item accessible name");
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
it("target attribute is set correctly", () => {
|
|
100
|
+
cy.get("#tileBased").shadow().find("[udex-tile]").should("have.attr", "target", "_blank");
|
|
101
|
+
});
|
|
102
|
+
});
|
|
@@ -37,6 +37,8 @@ import UDExTableRow from "../../instrumented/TableRow.js";
|
|
|
37
37
|
import UDExTableGroupRow from "../../instrumented/TableGroupRow.js";
|
|
38
38
|
import UDExTableCell from "../../instrumented/TableCell.js";
|
|
39
39
|
import UDExLink from "../../instrumented/Link.js";
|
|
40
|
+
import UDExLinkList from "../../instrumented/LinkList.js";
|
|
41
|
+
import UDExLinkListItem from "../../instrumented/LinkListItem.js";
|
|
40
42
|
import UDExRatingIndicator from "../../instrumented/RatingIndicator.js";
|
|
41
43
|
import UDExSelectBoxSelectAll from "../../instrumented/SelectBoxSelectAll.js";
|
|
42
44
|
import UDExSelectBoxGroupHeader from "../../instrumented/SelectBoxGroupHeader.js";
|
|
@@ -61,6 +63,8 @@ export {
|
|
|
61
63
|
UDExEventRibbon,
|
|
62
64
|
UDExFooter,
|
|
63
65
|
UDExLink,
|
|
66
|
+
UDExLinkList,
|
|
67
|
+
UDExLinkListItem,
|
|
64
68
|
UDExListItem,
|
|
65
69
|
UDExPhoneNumberField,
|
|
66
70
|
UDExRatingBar,
|
|
@@ -37,6 +37,8 @@ import UDExTableRow from "../../src/TableRow.js";
|
|
|
37
37
|
import UDExTableGroupRow from "../../src/TableGroupRow.js";
|
|
38
38
|
import UDExTableCell from "../../src/TableCell.js";
|
|
39
39
|
import UDExLink from "../../src/Link.js";
|
|
40
|
+
import UDExLinkList from "../../src/LinkList.js";
|
|
41
|
+
import UDExLinkListItem from "../../src/LinkListItem.js";
|
|
40
42
|
import UDExRatingIndicator from "../../src/RatingIndicator.js";
|
|
41
43
|
import UDExSelectBoxSelectAll from "../../src/SelectBoxSelectAll.js";
|
|
42
44
|
import UDExSelectBoxGroupHeader from "../../src/SelectBoxGroupHeader.js";
|
|
@@ -61,6 +63,8 @@ export {
|
|
|
61
63
|
UDExEventRibbon,
|
|
62
64
|
UDExFooter,
|
|
63
65
|
UDExLink,
|
|
66
|
+
UDExLinkList,
|
|
67
|
+
UDExLinkListItem,
|
|
64
68
|
UDExListItem,
|
|
65
69
|
UDExPhoneNumberField,
|
|
66
70
|
UDExRatingBar,
|
package/dist/EventRibbon.d.ts
CHANGED
|
@@ -22,7 +22,21 @@ import "@ui5/webcomponents-icons/media-play.js";
|
|
|
22
22
|
*/
|
|
23
23
|
declare class UDExEventRibbon extends UI5Element {
|
|
24
24
|
/**
|
|
25
|
-
* Defines the
|
|
25
|
+
* Defines the custom event logo image.
|
|
26
|
+
*
|
|
27
|
+
* @default ""
|
|
28
|
+
* @public
|
|
29
|
+
*/
|
|
30
|
+
customEventLogo?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Defines the alt text of the custom event logo image.
|
|
33
|
+
*
|
|
34
|
+
* @default ""
|
|
35
|
+
* @public
|
|
36
|
+
*/
|
|
37
|
+
customEventLogoAltText?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Defines the event logo image.
|
|
26
40
|
*
|
|
27
41
|
* @default ""
|
|
28
42
|
* @public
|
package/dist/EventRibbon.js
CHANGED
|
@@ -62,7 +62,9 @@ let UDExEventRibbon = class UDExEventRibbon extends UI5Element {
|
|
|
62
62
|
const backgroundColorHover = `var(--udex-event-ribbon-${this.mode}-${backgroundColorLowercase}-hover-background-color)`;
|
|
63
63
|
this.style.setProperty("--udex-event-ribbon-background-color", backgroundColor);
|
|
64
64
|
this.style.setProperty("--udex-event-ribbon-hover-background-color", backgroundColorHover);
|
|
65
|
-
|
|
65
|
+
if (this.backgroundImage) {
|
|
66
|
+
this.style.setProperty("--udex-event-ribbon-background-image", `url("${this.backgroundImage}")`);
|
|
67
|
+
}
|
|
66
68
|
}
|
|
67
69
|
handleKeyDown(e) {
|
|
68
70
|
if (isSpace(e) || isEnter(e)) {
|
|
@@ -71,12 +73,18 @@ let UDExEventRibbon = class UDExEventRibbon extends UI5Element {
|
|
|
71
73
|
}
|
|
72
74
|
}
|
|
73
75
|
get eventLogoAlt() {
|
|
74
|
-
return eventLogoText[this.eventLogo];
|
|
76
|
+
return this.customEventLogoAltText || eventLogoText[this.eventLogo];
|
|
75
77
|
}
|
|
76
78
|
get eventLogoPath() {
|
|
77
|
-
return `https://cdn.udex.services.sap.com/dds/design-tokens/assets/logos/event-ribbon-logo-${this.eventLogo}.svg`;
|
|
79
|
+
return this.customEventLogo || `https://cdn.udex.services.sap.com/dds/design-tokens/assets/logos/event-ribbon-logo-${this.eventLogo}.svg`;
|
|
78
80
|
}
|
|
79
81
|
};
|
|
82
|
+
__decorate([
|
|
83
|
+
property({ type: String })
|
|
84
|
+
], UDExEventRibbon.prototype, "customEventLogo", void 0);
|
|
85
|
+
__decorate([
|
|
86
|
+
property({ type: String })
|
|
87
|
+
], UDExEventRibbon.prototype, "customEventLogoAltText", void 0);
|
|
80
88
|
__decorate([
|
|
81
89
|
property({ type: String })
|
|
82
90
|
], UDExEventRibbon.prototype, "eventLogo", void 0);
|
package/dist/EventRibbon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventRibbon.js","sourceRoot":"","sources":["../src/EventRibbon.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAI/E,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,0CAA0C,CAAC;AAClD,OAAO,wCAAwC,CAAC;AAChD,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAE3D,SAAS;AACT,OAAO,cAAc,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAExE;;;;;;;;;;;;;;;;GAgBG;AAQH,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,UAAU;IAAxC;;
|
|
1
|
+
{"version":3,"file":"EventRibbon.js","sourceRoot":"","sources":["../src/EventRibbon.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 jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type {\n UDExEventRibbonColorSheme, UDExEventRibbonLink, UDExEventRibbonIcon, UDExEventRibbonLogo,\n} from \"./types/EventRibbon.js\";\nimport { eventLogoText, UDExEventRibbonMode } from \"./types/EventRibbon.js\";\nimport \"@ui5/webcomponents-icons/add-calendar.js\";\nimport \"@ui5/webcomponents-icons/media-play.js\";\nimport EventRibbonTemplate from \"./EventRibbonTemplate.js\";\n\n// Styles\nimport EventRibbonCss from \"./generated/themes/EventRibbon.css.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\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-event-ribbon</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/EventRibbon.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-event-ribbon\",\n renderer: jsxRenderer,\n styles: EventRibbonCss,\n template: EventRibbonTemplate,\n})\n\nclass UDExEventRibbon extends UI5Element {\n /**\n * Defines the custom event logo image.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n customEventLogo?: string;\n\n /**\n * Defines the alt text of the custom event logo image.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n customEventLogoAltText?: string;\n\n /**\n * Defines the event logo image.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n eventLogo!: `${UDExEventRibbonLogo}`;\n\n /**\n * Defines the link details of the event ribbon.\n *\n * @default \"{}\"\n * @public\n */\n @property({ type: String })\n eventLink: string = \"{}\";\n\n /**\n * Defines the icon displayed next to the link.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n eventLinkIcon!: `${UDExEventRibbonIcon}`;\n\n /**\n * Defines the text displayed in event ribbon.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n eventText!: string;\n\n /**\n * Defines whether event-ribbon uses dark or light theme.\n *\n * @default \"light\"\n * @public\n */\n @property({ type: String })\n mode: `${UDExEventRibbonMode}` = UDExEventRibbonMode.light;\n\n /**\n * Defines the solid background color.\n *\n * @default \"Blue\"\n * @public\n */\n @property({ type: String })\n backgroundColorScheme!: UDExEventRibbonColorSheme;\n\n /**\n * Allows control over the background image source.\n *\n * @public\n */\n @property({ type: String })\n backgroundImage?: string;\n\n _eventLink!: UDExEventRibbonLink;\n\n onBeforeRendering(): void {\n this._eventLink = JSON.parse(this.eventLink);\n }\n\n onAfterRendering(): void {\n this.applyColorScheme();\n }\n\n applyColorScheme(): void {\n const backgroundColorLowercase = this.backgroundColorScheme.toLowerCase();\n const backgroundColor: string = `var(--udex-event-ribbon-${this.mode}-${backgroundColorLowercase}-default-background-color)`;\n const backgroundColorHover: string = `var(--udex-event-ribbon-${this.mode}-${backgroundColorLowercase}-hover-background-color)`;\n\n this.style.setProperty(\"--udex-event-ribbon-background-color\", backgroundColor);\n this.style.setProperty(\"--udex-event-ribbon-hover-background-color\", backgroundColorHover);\n if (this.backgroundImage) {\n this.style.setProperty(\"--udex-event-ribbon-background-image\", `url(\"${this.backgroundImage}\")`);\n }\n }\n\n handleKeyDown(e: KeyboardEvent): void {\n if (isSpace(e) || isEnter(e)) {\n e.preventDefault();\n this.shadowRoot!.querySelector(\"a\")?.click();\n }\n }\n\n get eventLogoAlt(): string {\n return this.customEventLogoAltText || eventLogoText[this.eventLogo];\n }\n\n get eventLogoPath(): string {\n return this.customEventLogo || `https://cdn.udex.services.sap.com/dds/design-tokens/assets/logos/event-ribbon-logo-${this.eventLogo}.svg`;\n }\n}\n\nUDExEventRibbon.define();\n\nexport default UDExEventRibbon;\n"]}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
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
|
+
const rootClass = "udex-event-ribbon";
|
|
4
5
|
const { text, target, url } = this._eventLink;
|
|
5
|
-
return (_jsxs("a", { onKeyDown: this.handleKeyDown, role: "banner", "aria-label": this.eventText, class: {
|
|
6
|
+
return (_jsxs("a", { onKeyDown: this.handleKeyDown, role: "banner", "aria-label": this.eventText, class: {
|
|
7
|
+
[`${rootClass}__container`]: true,
|
|
8
|
+
[`${rootClass}__container-with-background-image`]: this.backgroundImage
|
|
9
|
+
}, target: target, href: url, title: text, children: [_jsx("div", { class: `${rootClass}__logo`, children: _jsx("img", { class: `${rootClass}__logo-img`, 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 })] })] }));
|
|
6
10
|
}
|
|
7
11
|
//# 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,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;IAC9C,OAAO,CACL,
|
|
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,YAAY,EAAE,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,GAAG,GACpF,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 { 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={`${rootClass}__logo-img`} 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"]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
+
import type UDExLinkListItem from "./LinkListItem.js";
|
|
3
|
+
export declare enum UDExLinkListType {
|
|
4
|
+
Link = "Link",
|
|
5
|
+
TileS = "TileS",
|
|
6
|
+
TileL = "TileL"
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* @class
|
|
10
|
+
*
|
|
11
|
+
* <h3 class="comment-api-title">Overview</h3>
|
|
12
|
+
*
|
|
13
|
+
*
|
|
14
|
+
* <h3>Usage</h3>
|
|
15
|
+
*
|
|
16
|
+
* For the <code>udex-link-list</code>
|
|
17
|
+
* <h3>ES6 Module Import</h3>
|
|
18
|
+
*
|
|
19
|
+
* <code>import "@sapudex/web-components/dist/LinkList.js";</code>
|
|
20
|
+
*
|
|
21
|
+
* @constructor
|
|
22
|
+
* @extends UI5Element
|
|
23
|
+
* @tagname udex-link-list
|
|
24
|
+
* @public
|
|
25
|
+
*/
|
|
26
|
+
declare class UDExLinkList extends UI5Element {
|
|
27
|
+
/**
|
|
28
|
+
* Defines the accessible ARIA name of the component.
|
|
29
|
+
*
|
|
30
|
+
* @default undefined
|
|
31
|
+
* @public
|
|
32
|
+
*/
|
|
33
|
+
accessibleName?: string;
|
|
34
|
+
/**
|
|
35
|
+
* Defines the role of the item.
|
|
36
|
+
* @public
|
|
37
|
+
* @default "list"
|
|
38
|
+
*
|
|
39
|
+
*/
|
|
40
|
+
accessibleRole: string;
|
|
41
|
+
/**
|
|
42
|
+
* Slot for list items.
|
|
43
|
+
*
|
|
44
|
+
* @slot items
|
|
45
|
+
* @public
|
|
46
|
+
*/
|
|
47
|
+
items: Array<UDExLinkListItem>;
|
|
48
|
+
/**
|
|
49
|
+
* Defines the type of the item.
|
|
50
|
+
*
|
|
51
|
+
* @default "link-based"
|
|
52
|
+
* @public
|
|
53
|
+
*/
|
|
54
|
+
type: `${UDExLinkListType}`;
|
|
55
|
+
onBeforeRendering(): void;
|
|
56
|
+
prepareListItems(): void;
|
|
57
|
+
}
|
|
58
|
+
export default UDExLinkList;
|
package/dist/LinkList.js
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
8
|
+
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
9
|
+
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
10
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
11
|
+
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
12
|
+
import LinkListTemplate from "./LinkListTemplate.js";
|
|
13
|
+
// Styles
|
|
14
|
+
import LinkListCss from "./generated/themes/LinkList.css.js";
|
|
15
|
+
export var UDExLinkListType;
|
|
16
|
+
(function (UDExLinkListType) {
|
|
17
|
+
UDExLinkListType["Link"] = "Link";
|
|
18
|
+
UDExLinkListType["TileS"] = "TileS";
|
|
19
|
+
UDExLinkListType["TileL"] = "TileL";
|
|
20
|
+
})(UDExLinkListType || (UDExLinkListType = {}));
|
|
21
|
+
/**
|
|
22
|
+
* @class
|
|
23
|
+
*
|
|
24
|
+
* <h3 class="comment-api-title">Overview</h3>
|
|
25
|
+
*
|
|
26
|
+
*
|
|
27
|
+
* <h3>Usage</h3>
|
|
28
|
+
*
|
|
29
|
+
* For the <code>udex-link-list</code>
|
|
30
|
+
* <h3>ES6 Module Import</h3>
|
|
31
|
+
*
|
|
32
|
+
* <code>import "@sapudex/web-components/dist/LinkList.js";</code>
|
|
33
|
+
*
|
|
34
|
+
* @constructor
|
|
35
|
+
* @extends UI5Element
|
|
36
|
+
* @tagname udex-link-list
|
|
37
|
+
* @public
|
|
38
|
+
*/
|
|
39
|
+
let UDExLinkList = class UDExLinkList extends UI5Element {
|
|
40
|
+
constructor() {
|
|
41
|
+
super(...arguments);
|
|
42
|
+
/**
|
|
43
|
+
* Defines the role of the item.
|
|
44
|
+
* @public
|
|
45
|
+
* @default "list"
|
|
46
|
+
*
|
|
47
|
+
*/
|
|
48
|
+
this.accessibleRole = "list";
|
|
49
|
+
/**
|
|
50
|
+
* Defines the type of the item.
|
|
51
|
+
*
|
|
52
|
+
* @default "link-based"
|
|
53
|
+
* @public
|
|
54
|
+
*/
|
|
55
|
+
this.type = UDExLinkListType.Link;
|
|
56
|
+
}
|
|
57
|
+
onBeforeRendering() {
|
|
58
|
+
this.prepareListItems();
|
|
59
|
+
}
|
|
60
|
+
prepareListItems() {
|
|
61
|
+
this.items.forEach(item => {
|
|
62
|
+
item.type = this.type;
|
|
63
|
+
item._accessibleRole = "listitem";
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
__decorate([
|
|
68
|
+
property()
|
|
69
|
+
], UDExLinkList.prototype, "accessibleName", void 0);
|
|
70
|
+
__decorate([
|
|
71
|
+
property()
|
|
72
|
+
], UDExLinkList.prototype, "accessibleRole", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
slot({ type: HTMLElement, "default": true })
|
|
75
|
+
], UDExLinkList.prototype, "items", void 0);
|
|
76
|
+
__decorate([
|
|
77
|
+
property()
|
|
78
|
+
], UDExLinkList.prototype, "type", void 0);
|
|
79
|
+
UDExLinkList = __decorate([
|
|
80
|
+
customElement({
|
|
81
|
+
tag: "udex-link-list",
|
|
82
|
+
renderer: jsxRenderer,
|
|
83
|
+
styles: LinkListCss,
|
|
84
|
+
template: LinkListTemplate,
|
|
85
|
+
})
|
|
86
|
+
], UDExLinkList);
|
|
87
|
+
UDExLinkList.define();
|
|
88
|
+
export default UDExLinkList;
|
|
89
|
+
//# sourceMappingURL=LinkList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkList.js","sourceRoot":"","sources":["../src/LinkList.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,WAAW,MAAM,sDAAsD,CAAC;AAE/E,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD,SAAS;AACT,OAAO,WAAW,MAAM,oCAAoC,CAAC;AAE7D,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,iCAAa,CAAA;IACb,mCAAe,CAAA;IACf,mCAAe,CAAA;AACjB,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AACD;;;;;;;;;;;;;;;;;GAiBG;AAQH,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,UAAU;IAArC;;QAUE;;;;;WAKG;QAED,mBAAc,GAAG,MAAM,CAAC;QAW1B;;;;;WAKG;QAED,SAAI,GAA0B,gBAAgB,CAAC,IAAI,CAAC;IAYxD,CAAC;IAVC,iBAAiB;QACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAvCG;IADD,QAAQ,EAAE;oDACe;AASxB;IADD,QAAQ,EAAE;oDACe;AASxB;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;2CACX;AAShC;IADD,QAAQ,EAAE;0CAC2C;AAnClD,YAAY;IAPjB,aAAa,CAAC;QACb,GAAG,EAAE,gBAAgB;QACrB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,WAAW;QACnB,QAAQ,EAAE,gBAAgB;KAC3B,CAAC;GAEI,YAAY,CA+CjB;AAED,YAAY,CAAC,MAAM,EAAE,CAAC;AAEtB,eAAe,YAAY,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 jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type UDExLinkListItem from \"./LinkListItem.js\";\nimport LinkListTemplate from \"./LinkListTemplate.js\";\n\n// Styles\nimport LinkListCss from \"./generated/themes/LinkList.css.js\";\n\nexport enum UDExLinkListType {\n Link = \"Link\",\n TileS = \"TileS\",\n TileL = \"TileL\",\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-link-list</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/LinkList.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-link-list\n * @public\n */\n@customElement({\n tag: \"udex-link-list\",\n renderer: jsxRenderer,\n styles: LinkListCss,\n template: LinkListTemplate,\n})\n\nclass UDExLinkList extends UI5Element {\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default undefined\n * @public\n */\n @property()\n accessibleName?: string;\n\n /**\n * Defines the role of the item.\n * @public\n * @default \"list\"\n *\n */\n @property()\n accessibleRole = \"list\";\n\n /**\n * Slot for list items.\n *\n * @slot items\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n items!: Array<UDExLinkListItem>;\n\n /**\n * Defines the type of the item.\n *\n * @default \"link-based\"\n * @public\n */\n @property()\n type: `${UDExLinkListType}` = UDExLinkListType.Link;\n\n onBeforeRendering(): void {\n this.prepareListItems();\n }\n\n prepareListItems(): void {\n this.items.forEach(item => {\n item.type = this.type;\n item._accessibleRole = \"listitem\";\n });\n }\n}\n\nUDExLinkList.define();\n\nexport default UDExLinkList;\n"]}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
+
import { UDExLinkListType } from "./LinkList.js";
|
|
3
|
+
import { UDExTarget } from "./types/common.js";
|
|
4
|
+
type UDExListLinkItemClickEventDetail = {
|
|
5
|
+
originalEvent: Event;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* @class
|
|
9
|
+
*
|
|
10
|
+
* <h3 class="comment-api-title">Overview</h3>
|
|
11
|
+
*
|
|
12
|
+
*
|
|
13
|
+
* <h3>Usage</h3>
|
|
14
|
+
*
|
|
15
|
+
* For the <code>udex-link-list-item</code>
|
|
16
|
+
* <h3>ES6 Module Import</h3>
|
|
17
|
+
*
|
|
18
|
+
* <code>import "@sapudex/web-components/dist/LinkListItem.js";</code>
|
|
19
|
+
*
|
|
20
|
+
* @constructor
|
|
21
|
+
* @extends UI5Element
|
|
22
|
+
* @tagname udex-link-list-item
|
|
23
|
+
* @public
|
|
24
|
+
*/
|
|
25
|
+
declare class UDExLinkListItem extends UI5Element {
|
|
26
|
+
eventDetails: {
|
|
27
|
+
"item-click": UDExListLinkItemClickEventDetail;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Defines the href for the item.
|
|
31
|
+
* @default undefined
|
|
32
|
+
* @public
|
|
33
|
+
*/
|
|
34
|
+
href?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Defines target for the item
|
|
37
|
+
* @default "_self"
|
|
38
|
+
* @public
|
|
39
|
+
*/
|
|
40
|
+
target: `${UDExTarget}`;
|
|
41
|
+
/**
|
|
42
|
+
* Defines the icon, displayed as graphical element within the component before the item's label.
|
|
43
|
+
*
|
|
44
|
+
* @default undefined
|
|
45
|
+
* @public
|
|
46
|
+
*/
|
|
47
|
+
icon?: string;
|
|
48
|
+
/**
|
|
49
|
+
* Defines the type of the item.
|
|
50
|
+
* @default "link"
|
|
51
|
+
* @public
|
|
52
|
+
*/
|
|
53
|
+
type: `${UDExLinkListType}`;
|
|
54
|
+
/**
|
|
55
|
+
* Defines the accessible aria-label of the component.
|
|
56
|
+
*
|
|
57
|
+
* @default undefined
|
|
58
|
+
* @public
|
|
59
|
+
*/
|
|
60
|
+
accessibleName?: string;
|
|
61
|
+
/**
|
|
62
|
+
* Defines the role of the item.
|
|
63
|
+
* @private
|
|
64
|
+
* @default "listitem"
|
|
65
|
+
*
|
|
66
|
+
*/
|
|
67
|
+
_accessibleRole?: string;
|
|
68
|
+
/**
|
|
69
|
+
* Defines the label of the item.
|
|
70
|
+
*
|
|
71
|
+
* @default undefined
|
|
72
|
+
* @public
|
|
73
|
+
*/
|
|
74
|
+
label?: string;
|
|
75
|
+
fireItemClickEvent(e: CustomEvent): void;
|
|
76
|
+
get isLink(): boolean;
|
|
77
|
+
}
|
|
78
|
+
export default UDExLinkListItem;
|