@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.
Files changed (96) hide show
  1. package/bundle.esm.js +2 -0
  2. package/cypress/specs/EventRibbon.cy.tsx +25 -6
  3. package/cypress/specs/LinkList.cy.tsx +49 -0
  4. package/cypress/specs/LinkListItem.cy.tsx +102 -0
  5. package/cypress/support/component-imports.instrumented.ts +4 -0
  6. package/cypress/support/component-imports.src.ts +4 -0
  7. package/dist/EventRibbon.d.ts +15 -1
  8. package/dist/EventRibbon.js +11 -3
  9. package/dist/EventRibbon.js.map +1 -1
  10. package/dist/EventRibbonTemplate.js +5 -1
  11. package/dist/EventRibbonTemplate.js.map +1 -1
  12. package/dist/LinkList.d.ts +58 -0
  13. package/dist/LinkList.js +89 -0
  14. package/dist/LinkList.js.map +1 -0
  15. package/dist/LinkListItem.d.ts +78 -0
  16. package/dist/LinkListItem.js +97 -0
  17. package/dist/LinkListItem.js.map +1 -0
  18. package/dist/LinkListItemTemplate.d.ts +2 -0
  19. package/dist/LinkListItemTemplate.js +17 -0
  20. package/dist/LinkListItemTemplate.js.map +1 -0
  21. package/dist/LinkListTemplate.d.ts +2 -0
  22. package/dist/LinkListTemplate.js +5 -0
  23. package/dist/LinkListTemplate.js.map +1 -0
  24. package/dist/Tile.d.ts +2 -2
  25. package/dist/Tile.js +3 -3
  26. package/dist/Tile.js.map +1 -1
  27. package/dist/TileTemplate.d.ts +2 -0
  28. package/dist/TileTemplate.js +7 -0
  29. package/dist/TileTemplate.js.map +1 -0
  30. package/dist/assets/{InputSuggestions-D0OZo5eY.js → InputSuggestions-BmjyLzkP.js} +1 -1
  31. package/dist/assets/{ListItemStandardExpandableTextTemplate-BOc_KoW1.js → ListItemStandardExpandableTextTemplate-CDt3iORy.js} +1 -1
  32. package/dist/assets/{bundle.esm-BLn1Dq6A.js → bundle.esm-Dz11sAJe.js} +205 -203
  33. package/dist/css/themes/EventRibbon.css +1 -1
  34. package/dist/css/themes/LinkList.css +1 -0
  35. package/dist/css/themes/LinkListItem.css +1 -0
  36. package/dist/css/themes/ListGroupHeader.css +1 -1
  37. package/dist/css/themes/ListItem.css +1 -1
  38. package/dist/css/themes/ProgressBar.css +1 -1
  39. package/dist/css/themes/RatingIndicator.css +1 -1
  40. package/dist/css/themes/Slider.css +1 -1
  41. package/dist/custom-elements-internal.json +345 -2
  42. package/dist/custom-elements.json +327 -2
  43. package/dist/generated/themes/EventRibbon.css.d.ts +1 -1
  44. package/dist/generated/themes/EventRibbon.css.js +1 -1
  45. package/dist/generated/themes/EventRibbon.css.js.map +1 -1
  46. package/dist/generated/themes/LinkList.css.d.ts +2 -0
  47. package/dist/generated/themes/LinkList.css.js +8 -0
  48. package/dist/generated/themes/LinkList.css.js.map +1 -0
  49. package/dist/generated/themes/LinkListItem.css.d.ts +2 -0
  50. package/dist/generated/themes/LinkListItem.css.js +8 -0
  51. package/dist/generated/themes/LinkListItem.css.js.map +1 -0
  52. package/dist/generated/themes/ListGroupHeader.css.d.ts +1 -1
  53. package/dist/generated/themes/ListGroupHeader.css.js +1 -1
  54. package/dist/generated/themes/ListGroupHeader.css.js.map +1 -1
  55. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  56. package/dist/generated/themes/ListItem.css.js +1 -1
  57. package/dist/generated/themes/ListItem.css.js.map +1 -1
  58. package/dist/generated/themes/ProgressBar.css.d.ts +1 -1
  59. package/dist/generated/themes/ProgressBar.css.js +1 -1
  60. package/dist/generated/themes/ProgressBar.css.js.map +1 -1
  61. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  62. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  63. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  64. package/dist/generated/themes/Slider.css.d.ts +1 -1
  65. package/dist/generated/themes/Slider.css.js +1 -1
  66. package/dist/generated/themes/Slider.css.js.map +1 -1
  67. package/dist/vscode.html-custom-data.json +83 -1
  68. package/dist/web-types.json +163 -3
  69. package/package.json +1 -1
  70. package/src/EventRibbon.ts +24 -5
  71. package/src/EventRibbonTemplate.tsx +17 -6
  72. package/src/LinkList.ts +93 -0
  73. package/src/LinkListItem.ts +126 -0
  74. package/src/LinkListItemTemplate.tsx +52 -0
  75. package/src/LinkListTemplate.tsx +13 -0
  76. package/src/Tile.ts +5 -5
  77. package/src/TileTemplate.tsx +31 -0
  78. package/src/generated/themes/EventRibbon.css.ts +1 -1
  79. package/src/generated/themes/LinkList.css.ts +9 -0
  80. package/src/generated/themes/LinkListItem.css.ts +9 -0
  81. package/src/generated/themes/ListGroupHeader.css.ts +1 -1
  82. package/src/generated/themes/ListItem.css.ts +1 -1
  83. package/src/generated/themes/ProgressBar.css.ts +1 -1
  84. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  85. package/src/generated/themes/Slider.css.ts +1 -1
  86. package/src/themes/EventRibbon.css +34 -28
  87. package/src/themes/LinkList.css +53 -0
  88. package/src/themes/LinkListItem.css +84 -0
  89. package/src/themes/ListGroupHeader.css +1 -1
  90. package/src/themes/ListItem.css +2 -2
  91. package/src/themes/ProgressBar.css +2 -1
  92. package/dist/generated/templates/TileTemplate.lit.d.ts +0 -3
  93. package/dist/generated/templates/TileTemplate.lit.js +0 -9
  94. package/dist/generated/templates/TileTemplate.lit.js.map +0 -1
  95. package/src/Tile.hbs +0 -21
  96. 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="Blue1">
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="Blue3">
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="Blue3">
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="Raspberry2">
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="Blue1"
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,
@@ -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 text of the event logo.
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
@@ -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
- this.style.setProperty("--udex-event-ribbon-background-image", `url("${this.backgroundImage}")`);
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);
@@ -1 +1 @@
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 text of the event logo.\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\n this.style.setProperty(\"--udex-event-ribbon-background-image\", `url(\"${this.backgroundImage}\")`);\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 eventLogoText[this.eventLogo];\n }\n\n get eventLogoPath(): string {\n return `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
+ {"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: { "udex-event-ribbon__container": true, "udex-event-ribbon__container-with-background-image": this.backgroundImage }, target: target, href: url, title: text, children: [_jsx("div", { class: "udex-event-ribbon__logo", children: _jsx("img", { src: this.eventLogoPath, alt: this.eventLogoAlt }) }), this.eventText && _jsx("p", { class: "udex-event-ribbon__text", children: this.eventText }), _jsxs("div", { class: "udex-event-ribbon__link-container", children: [this.eventLinkIcon && _jsx(Icon, { name: this.eventLinkIcon }), _jsx("span", { children: text })] })] }));
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,aAAG,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAC,QAAQ,gBAAa,IAAI,CAAC,SAAS,EAAE,KAAK,EAAG,EAAE,8BAA8B,EAAE,IAAI,EAAE,oDAAoD,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,aAC9O,cAAK,KAAK,EAAC,yBAAyB,YAClC,cAAK,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,GAAG,GACnD,EACL,IAAI,CAAC,SAAS,IAAI,YAAG,KAAK,EAAC,yBAAyB,YAAE,IAAI,CAAC,SAAS,GAAK,EAC1E,eAAK,KAAK,EAAC,mCAAmC,aAC3C,IAAI,CAAC,aAAa,IAAI,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,CAAC,aAAa,GAAS,EAC9D,yBAAO,IAAI,GAAQ,IACf,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 { text, target, url } = this._eventLink;\n return (\n <a onKeyDown={this.handleKeyDown} role=\"banner\" aria-label={this.eventText} class= {{ \"udex-event-ribbon__container\": true, \"udex-event-ribbon__container-with-background-image\": this.backgroundImage }} target={target} href={url} title={text}>\n <div class=\"udex-event-ribbon__logo\">\n <img src={this.eventLogoPath} alt={this.eventLogoAlt}/>\n </div>\n {this.eventText && <p class=\"udex-event-ribbon__text\">{this.eventText}</p>}\n <div class=\"udex-event-ribbon__link-container\">\n {this.eventLinkIcon && <Icon name={this.eventLinkIcon}></Icon>}\n <span>{text}</span>\n </div>\n </a>\n );\n}\n"]}
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;
@@ -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;