@sapudex/web-components 2.20.1 → 2.22.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 +4 -0
- package/cypress/specs/Feed.cy.tsx +72 -0
- package/cypress/specs/FeedItem.cy.tsx +82 -0
- package/cypress/specs/Footer.cy.tsx +45 -1
- package/cypress/specs/ImageGridCloud.cy.tsx +78 -0
- package/cypress/specs/ImageGridCloudItem.cy.tsx +29 -0
- package/cypress/support/component-imports.instrumented.ts +8 -0
- package/cypress/support/component-imports.src.ts +8 -0
- package/dist/Accordion.js +1 -0
- package/dist/Accordion.js.map +1 -1
- package/dist/AccordionItem.js +2 -0
- package/dist/AccordionItem.js.map +1 -1
- package/dist/AssetsVariables.js +5 -0
- package/dist/AssetsVariables.js.map +1 -1
- package/dist/Breadcrumbs.js +5 -0
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/ContactItem.js +2 -0
- package/dist/ContactItem.js.map +1 -1
- package/dist/CountrySelector.js +1 -0
- package/dist/CountrySelector.js.map +1 -1
- package/dist/DatePicker.js +2 -1
- package/dist/DatePicker.js.map +1 -1
- package/dist/Feed.d.ts +88 -0
- package/dist/Feed.js +103 -0
- package/dist/Feed.js.map +1 -0
- package/dist/FeedItem.d.ts +114 -0
- package/dist/FeedItem.js +131 -0
- package/dist/FeedItem.js.map +1 -0
- package/dist/FeedItemTemplate.d.ts +2 -0
- package/dist/FeedItemTemplate.js +16 -0
- package/dist/FeedItemTemplate.js.map +1 -0
- package/dist/FeedTemplate.d.ts +2 -0
- package/dist/FeedTemplate.js +19 -0
- package/dist/FeedTemplate.js.map +1 -0
- package/dist/FilterMenu.js +2 -0
- package/dist/FilterMenu.js.map +1 -1
- package/dist/Footer.d.ts +14 -2
- package/dist/Footer.js +37 -4
- package/dist/Footer.js.map +1 -1
- package/dist/FooterTemplate.js +3 -3
- package/dist/FooterTemplate.js.map +1 -1
- package/dist/ImageGridCloud.d.ts +76 -0
- package/dist/ImageGridCloud.js +153 -0
- package/dist/ImageGridCloud.js.map +1 -0
- package/dist/ImageGridCloudItem.d.ts +35 -0
- package/dist/ImageGridCloudItem.js +49 -0
- package/dist/ImageGridCloudItem.js.map +1 -0
- package/dist/ImageGridCloudItemTemplate.d.ts +2 -0
- package/dist/ImageGridCloudItemTemplate.js +5 -0
- package/dist/ImageGridCloudItemTemplate.js.map +1 -0
- package/dist/ImageGridCloudTemplate.d.ts +2 -0
- package/dist/ImageGridCloudTemplate.js +6 -0
- package/dist/ImageGridCloudTemplate.js.map +1 -0
- package/dist/ImageGridTicker.d.ts +2 -2
- package/dist/ImageGridTicker.js +1 -8
- package/dist/ImageGridTicker.js.map +1 -1
- package/dist/LinkListItem.js +1 -0
- package/dist/LinkListItem.js.map +1 -1
- package/dist/List.js +3 -0
- package/dist/List.js.map +1 -1
- package/dist/ListGroupHeader.js +1 -0
- package/dist/ListGroupHeader.js.map +1 -1
- package/dist/ListItem.js +2 -0
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItemBase.js +4 -0
- package/dist/ListItemBase.js.map +1 -1
- package/dist/ListSelectAll.js +1 -0
- package/dist/ListSelectAll.js.map +1 -1
- package/dist/MastheadCountrySelector.js +15 -0
- package/dist/MastheadCountrySelector.js.map +1 -1
- package/dist/MastheadItem.js +10 -0
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadMenu.js +6 -0
- package/dist/MastheadMenu.js.map +1 -1
- package/dist/MastheadMobileMenu.js +11 -0
- package/dist/MastheadMobileMenu.js.map +1 -1
- package/dist/MastheadProfileMenu.js +11 -0
- package/dist/MastheadProfileMenu.js.map +1 -1
- package/dist/MastheadShell.js +41 -0
- package/dist/MastheadShell.js.map +1 -1
- package/dist/MediaPlayer.js +1 -0
- package/dist/MediaPlayer.js.map +1 -1
- package/dist/MediaPlayerVimeo.d.ts +3 -3
- package/dist/MediaPlayerVimeo.js +1 -0
- package/dist/MediaPlayerVimeo.js.map +1 -1
- package/dist/MediaPlayerYoutube.js +3 -0
- package/dist/MediaPlayerYoutube.js.map +1 -1
- package/dist/Pagination.js +1 -1
- package/dist/Pagination.js.map +1 -1
- package/dist/Search.d.ts +2 -1
- package/dist/Search.js +18 -3
- package/dist/Search.js.map +1 -1
- package/dist/SearchTemplate.d.ts +2 -0
- package/dist/SearchTemplate.js +48 -0
- package/dist/SearchTemplate.js.map +1 -0
- package/dist/SearchableListBase.d.ts +3 -0
- package/dist/SearchableListBase.js +10 -0
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SecondaryNavigation.js +19 -0
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.js +6 -0
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SecondaryNavigationSubItem.js +3 -0
- package/dist/SecondaryNavigationSubItem.js.map +1 -1
- package/dist/SelectBox.js +1 -0
- package/dist/SelectBox.js.map +1 -1
- package/dist/SocialMediaButton.js +2 -0
- package/dist/SocialMediaButton.js.map +1 -1
- package/dist/StepInput.js +2 -0
- package/dist/StepInput.js.map +1 -1
- package/dist/TabNavigation.js +3 -0
- package/dist/TabNavigation.js.map +1 -1
- package/dist/Tag.js +1 -0
- package/dist/Tag.js.map +1 -1
- package/dist/TagGroup.js +3 -0
- package/dist/TagGroup.js.map +1 -1
- package/dist/TextField.js +1 -0
- package/dist/TextField.js.map +1 -1
- package/dist/Tile.js +1 -0
- package/dist/Tile.js.map +1 -1
- package/dist/Upload.js +5 -0
- package/dist/Upload.js.map +1 -1
- package/dist/assets/{InputSuggestions-yR1p8cXL.js → InputSuggestions-By00xQan.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-BovnAV24.js → ListItemStandardExpandableTextTemplate-BGtoxRbA.js} +1 -1
- package/dist/assets/{bundle.esm-C7AybWk0.js → bundle.esm-9yDdQqR5.js} +223 -214
- package/dist/assets/messagebundle_en-D_yCmNrd.js +1 -0
- package/dist/css/themes/Feed.css +1 -0
- package/dist/css/themes/FeedItem.css +1 -0
- package/dist/css/themes/Footer.css +1 -1
- package/dist/css/themes/ImageGridCloud.css +1 -0
- package/dist/css/themes/ImageGridCloudItem.css +1 -0
- package/dist/css/themes/MediaPlayer.css +1 -1
- package/dist/css/themes/Pagination.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 +4455 -456
- package/dist/custom-elements.json +1411 -288
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
- package/dist/generated/i18n/i18n-defaults.js +2 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/themes/Feed.css.d.ts +2 -0
- package/dist/generated/themes/Feed.css.js +8 -0
- package/dist/generated/themes/Feed.css.js.map +1 -0
- package/dist/generated/themes/FeedItem.css.d.ts +2 -0
- package/dist/generated/themes/FeedItem.css.js +8 -0
- package/dist/generated/themes/FeedItem.css.js.map +1 -0
- package/dist/generated/themes/Footer.css.d.ts +1 -1
- package/dist/generated/themes/Footer.css.js +1 -1
- package/dist/generated/themes/Footer.css.js.map +1 -1
- package/dist/generated/themes/ImageGridCloud.css.d.ts +2 -0
- package/dist/generated/themes/ImageGridCloud.css.js +8 -0
- package/dist/generated/themes/ImageGridCloud.css.js.map +1 -0
- package/dist/generated/themes/ImageGridCloudItem.css.d.ts +2 -0
- package/dist/generated/themes/ImageGridCloudItem.css.js +8 -0
- package/dist/generated/themes/ImageGridCloudItem.css.js.map +1 -0
- package/dist/generated/themes/MediaPlayer.css.d.ts +1 -1
- package/dist/generated/themes/MediaPlayer.css.js +1 -1
- package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
- package/dist/generated/themes/Pagination.css.d.ts +1 -1
- package/dist/generated/themes/Pagination.css.js +1 -1
- package/dist/generated/themes/Pagination.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/messagebundle.properties +3 -0
- package/dist/messagebundle_en.properties +1 -0
- package/dist/vscode.html-custom-data.json +130 -1
- package/dist/web-types.json +305 -4
- package/package.json +1 -1
- package/src/Accordion.ts +1 -0
- package/src/AccordionItem.ts +2 -0
- package/src/AssetsVariables.ts +5 -0
- package/src/Breadcrumbs.ts +5 -0
- package/src/ContactItem.ts +2 -0
- package/src/CountrySelector.ts +1 -0
- package/src/DatePicker.ts +2 -1
- package/src/Feed.ts +144 -0
- package/src/FeedItem.ts +198 -0
- package/src/FeedItemTemplate.tsx +60 -0
- package/src/FeedTemplate.tsx +66 -0
- package/src/FilterMenu.ts +2 -0
- package/src/Footer.ts +47 -4
- package/src/FooterTemplate.tsx +29 -39
- package/src/ImageGridCloud.ts +188 -0
- package/src/ImageGridCloudItem.ts +57 -0
- package/src/ImageGridCloudItemTemplate.tsx +11 -0
- package/src/ImageGridCloudTemplate.tsx +16 -0
- package/src/ImageGridTicker.ts +3 -3
- package/src/LinkListItem.ts +1 -0
- package/src/List.ts +3 -0
- package/src/ListGroupHeader.ts +1 -0
- package/src/ListItem.ts +2 -0
- package/src/ListItemBase.ts +4 -0
- package/src/ListSelectAll.ts +1 -0
- package/src/MastheadCountrySelector.ts +15 -0
- package/src/MastheadItem.ts +10 -0
- package/src/MastheadMenu.ts +6 -0
- package/src/MastheadMobileMenu.ts +11 -0
- package/src/MastheadProfileMenu.ts +11 -0
- package/src/MastheadShell.ts +41 -0
- package/src/MediaPlayer.ts +1 -0
- package/src/MediaPlayerVimeo.ts +4 -3
- package/src/MediaPlayerYoutube.ts +3 -0
- package/src/Pagination.ts +1 -1
- package/src/Search.ts +20 -4
- package/src/SearchTemplate.tsx +353 -0
- package/src/SearchableListBase.ts +10 -0
- package/src/SecondaryNavigation.ts +19 -0
- package/src/SecondaryNavigationItem.ts +6 -0
- package/src/SecondaryNavigationSubItem.ts +3 -0
- package/src/SelectBox.ts +1 -0
- package/src/SocialMediaButton.ts +2 -0
- package/src/StepInput.ts +2 -0
- package/src/TabNavigation.ts +3 -0
- package/src/Tag.ts +1 -0
- package/src/TagGroup.ts +3 -0
- package/src/TextField.ts +1 -0
- package/src/Tile.ts +1 -0
- package/src/Upload.ts +5 -0
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/themes/Feed.css.ts +9 -0
- package/src/generated/themes/FeedItem.css.ts +9 -0
- package/src/generated/themes/Footer.css.ts +1 -1
- package/src/generated/themes/ImageGridCloud.css.ts +9 -0
- package/src/generated/themes/ImageGridCloudItem.css.ts +9 -0
- package/src/generated/themes/MediaPlayer.css.ts +1 -1
- package/src/generated/themes/Pagination.css.ts +1 -1
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/i18n/messagebundle.properties +3 -0
- package/src/i18n/messagebundle_en.properties +1 -0
- package/src/themes/Feed.css +51 -0
- package/src/themes/FeedItem.css +60 -0
- package/src/themes/Footer.css +9 -5
- package/src/themes/ImageGridCloud.css +55 -0
- package/src/themes/ImageGridCloudItem.css +10 -0
- package/src/themes/MediaPlayer.css +1 -1
- package/src/themes/Pagination.css +1 -1
- package/dist/assets/messagebundle_en-BhTYnZbC.js +0 -1
- package/dist/generated/templates/SearchSuggestionsTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +0 -17
- package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +0 -1
- package/dist/generated/templates/SearchTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/SearchTemplate.lit.js +0 -28
- package/dist/generated/templates/SearchTemplate.lit.js.map +0 -1
- package/src/Search.hbs +0 -155
- package/src/SearchSuggestions.hbs +0 -91
- package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +0 -21
- package/src/generated/templates/SearchTemplate.lit.ts +0 -32
package/bundle.esm.js
CHANGED
|
@@ -45,8 +45,12 @@ import "./dist/FilterMenu.js";
|
|
|
45
45
|
import "./dist/FilterMenuGroupHeader.js";
|
|
46
46
|
import "./dist/FilterMenuItem.js";
|
|
47
47
|
import "./dist/FilterMenuSelectAll.js";
|
|
48
|
+
import "./dist/Feed.js";
|
|
49
|
+
import "./dist/FeedItem.js";
|
|
48
50
|
import "./dist/Footer.js";
|
|
49
51
|
import "./dist/HeroBanner.js";
|
|
52
|
+
import "./dist/ImageGridCloud.js";
|
|
53
|
+
import "./dist/ImageGridCloudItem.js";
|
|
50
54
|
import "./dist/ImageGridTicker.js";
|
|
51
55
|
import "./dist/ImageGridTickerItem.js";
|
|
52
56
|
import "./dist/InputGroup.js";
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { UDExFeed } from "../support/component-imports.js";
|
|
2
|
+
|
|
3
|
+
const iconName = "add";
|
|
4
|
+
const imageLabel = "image label";
|
|
5
|
+
const imageUrl = "test.com";
|
|
6
|
+
const header = "Feed header";
|
|
7
|
+
const button = "Feed button";
|
|
8
|
+
const buttonDesign = "Tertiary";
|
|
9
|
+
const accessibleName = "Feed label";
|
|
10
|
+
|
|
11
|
+
const feed = <UDExFeed icon={iconName} image-label={imageLabel} header={header} button={button} button-design={buttonDesign} accessible-name={accessibleName}></UDExFeed>
|
|
12
|
+
const feedWithImage = <UDExFeed image-url={imageUrl} image-label={imageLabel}></UDExFeed>
|
|
13
|
+
|
|
14
|
+
describe("Feed", () => {
|
|
15
|
+
it("renders simple feed", () => {
|
|
16
|
+
cy.mount(feed)
|
|
17
|
+
cy.get("[udex-feed]").shadow().find(".udex-feed__container").should("be.visible");
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it("renders feed with icon", () => {
|
|
21
|
+
cy.mount(feed)
|
|
22
|
+
cy.get("[udex-feed]").shadow().find(".udex-feed__pictogram").should("have.attr", "title", imageLabel);
|
|
23
|
+
cy.get("[udex-feed]").shadow().find("[ui5-icon]").should("have.attr", "name", iconName);
|
|
24
|
+
cy.get("[udex-feed]").shadow().find("[ui5-icon]").should("have.attr", "accessible-name", imageLabel);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it("renders feed with image", () => {
|
|
28
|
+
cy.mount(feedWithImage)
|
|
29
|
+
cy.get("[udex-feed]").shadow().find(".udex-feed__icon").should("have.attr", "src", imageUrl);
|
|
30
|
+
cy.get("[udex-feed]").shadow().find(".udex-feed__icon").should("have.attr", "aria-label", imageLabel);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it("renders feed with header", () => {
|
|
34
|
+
cy.mount(feed)
|
|
35
|
+
cy.get("[udex-feed]").shadow().find(".udex-feed__header").should("have.text", header);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it("renders feed with label", () => {
|
|
39
|
+
cy.mount(feed)
|
|
40
|
+
cy.get("[udex-feed]").shadow().find(".udex-feed__container").should("have.attr", "aria-label", accessibleName);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
describe("Feed - button", () => {
|
|
45
|
+
beforeEach(() => {
|
|
46
|
+
cy.mount(feed)
|
|
47
|
+
})
|
|
48
|
+
|
|
49
|
+
it("renders feed with button", () => {
|
|
50
|
+
cy.get("[udex-feed]").shadow().find(".udex-feed__footer").should("be.visible");
|
|
51
|
+
cy.get("[udex-feed]").shadow().find("[udex-button]").shadow().find("button").should("have.attr", "aria-label", button);
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
it("renders feed with default desktop size", () => {
|
|
55
|
+
cy.get("[udex-feed]").shadow().find("[udex-button]").should("have.attr", "size", "Large");
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it("renders feed with button Tertiary design", () => {
|
|
59
|
+
cy.get("[udex-feed]").shadow().find("[udex-button]").should("have.attr", "design", buttonDesign);
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
it("button click emits \"button-click\" event", () => {
|
|
63
|
+
const stub = cy.stub();
|
|
64
|
+
cy.get("[udex-feed]").then($tiles => {
|
|
65
|
+
$tiles.get(0).addEventListener("button-click", stub);
|
|
66
|
+
});
|
|
67
|
+
cy.get("[udex-feed]").shadow().find("[udex-button]").click()
|
|
68
|
+
.then(() => {
|
|
69
|
+
expect(stub).to.have.been.called;
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
});
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { UDExFeedItem, UDExAvatar } from "../support/component-imports.js";
|
|
2
|
+
import { UDExTarget } from "../../src/types/common.js";
|
|
3
|
+
|
|
4
|
+
const text = "Feed link text";
|
|
5
|
+
const href = "href";
|
|
6
|
+
const target = UDExTarget._self;
|
|
7
|
+
const details = "Additional details";
|
|
8
|
+
const date = new Date().toString();
|
|
9
|
+
const location = "New York, US";
|
|
10
|
+
const icon = "appointment-2";
|
|
11
|
+
const iconAccessibleName = "icon label";
|
|
12
|
+
const accessibleName = "Feed label";
|
|
13
|
+
const avatarInitials = "AB";
|
|
14
|
+
|
|
15
|
+
const textFeedItem = <UDExFeedItem text={text} href={href} target={target} details={details} accessible-name={accessibleName}></UDExFeedItem>
|
|
16
|
+
const blogFeedItem = <UDExFeedItem text={text} href={href}><UDExAvatar slot="avatar" initials={avatarInitials}></UDExAvatar></UDExFeedItem>
|
|
17
|
+
const eventFeedItem = <UDExFeedItem text={text} href={href} date={date} location={location}></UDExFeedItem>
|
|
18
|
+
const iconFeedItem = <UDExFeedItem text={text} href={href} icon={icon} icon-accessible-name={iconAccessibleName}></UDExFeedItem>
|
|
19
|
+
|
|
20
|
+
describe("Feed item", () => {
|
|
21
|
+
it("renders feed item", () => {
|
|
22
|
+
cy.mount(textFeedItem)
|
|
23
|
+
cy.get("[udex-feed-item]").shadow().find(".udex-feed-item").should("be.visible");
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it("renders feed item with details", () => {
|
|
27
|
+
cy.mount(textFeedItem)
|
|
28
|
+
cy.get("[udex-feed-item]").shadow().find(".udex-feed-item__content").should("be.visible");
|
|
29
|
+
cy.get("[udex-feed-item]").shadow().find(".udex-feed-item__details").should("have.text", details);
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
it("renders feed item with link", () => {
|
|
33
|
+
cy.mount(textFeedItem)
|
|
34
|
+
cy.get("[udex-feed-item]").shadow().find(".udex-feed-item__content").should("be.visible");
|
|
35
|
+
cy.get("[udex-feed-item]").shadow().find("[udex-link]").should("have.attr", "href", href);
|
|
36
|
+
cy.get("[udex-feed-item]").shadow().find("[udex-link]").should("have.attr", "target", target);
|
|
37
|
+
cy.get("[udex-feed-item]").shadow().find("[udex-link]").should("have.attr", "accessible-name", accessibleName);
|
|
38
|
+
cy.get("[udex-feed-item]").shadow().find("[udex-link]").should("have.text", text);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it("renders feed item with avatar", () => {
|
|
42
|
+
cy.mount(blogFeedItem)
|
|
43
|
+
cy.get("[udex-feed-item]").find("[udex-avatar]").should("have.attr", "initials", avatarInitials);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it("renders feed item with date", () => {
|
|
47
|
+
cy.mount(eventFeedItem)
|
|
48
|
+
const dateElements = date.toLocaleString().split(" ");
|
|
49
|
+
cy.get("[udex-feed-item]").shadow().find(".udex-feed-item__date").should("have.attr", "aria-label", date);
|
|
50
|
+
cy.get("[udex-feed-item]").shadow().find(".udex-feed-item__day").should("have.text", dateElements[2]);
|
|
51
|
+
cy.get("[udex-feed-item]").shadow().find(".udex-feed-item__month").should("have.text", dateElements[1]);
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
it("renders feed item with location", () => {
|
|
55
|
+
cy.mount(eventFeedItem)
|
|
56
|
+
cy.get("[udex-feed-item]").shadow().find(".udex-feed-item__content").should("be.visible");
|
|
57
|
+
cy.get("[udex-feed-item]").shadow().find(".udex-feed-item__location").should("have.text", location);
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
it("renders feed item with icon", () => {
|
|
61
|
+
cy.mount(iconFeedItem)
|
|
62
|
+
cy.get("[udex-feed-item]").shadow().find("[ui5-icon]").should("have.attr", "name", icon);
|
|
63
|
+
cy.get("[udex-feed-item]").shadow().find("[ui5-icon]").should("have.attr", "accessible-name", iconAccessibleName);
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
describe("Feed item - link", () => {
|
|
68
|
+
beforeEach(() => {
|
|
69
|
+
cy.mount(textFeedItem)
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
it("click item emits \"item-click\" event", () => {
|
|
73
|
+
const stub = cy.stub();
|
|
74
|
+
cy.get("[udex-feed-item]").then($el => {
|
|
75
|
+
$el.get(0).addEventListener("item-click", stub);
|
|
76
|
+
});
|
|
77
|
+
cy.get("[udex-feed-item]").shadow().find("[udex-link]").click()
|
|
78
|
+
.then(() => {
|
|
79
|
+
expect(stub).to.have.been.called;
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
});
|
|
@@ -7,6 +7,9 @@ const chineseLogoUrl = "./stories/footer/chinese-logo.svg";
|
|
|
7
7
|
const chineseLogoLink = "https://www.sap.cn/index.html";
|
|
8
8
|
const taglineUrl = "./stories/footer/tagline.svg";
|
|
9
9
|
const chineseTaglineUrl = "./stories/footer/chinese-tagline.svg";
|
|
10
|
+
const chineseSecurityNetworkNumber = "Custom number";
|
|
11
|
+
const chineseIcpNumber = "Custom ICP";
|
|
12
|
+
const chineseIcpNumberLink = "https://custom-url.com";
|
|
10
13
|
const url = 'http://test.com';
|
|
11
14
|
|
|
12
15
|
const defaultFooter = <UDExFooter
|
|
@@ -32,6 +35,29 @@ const defaultFooter = <UDExFooter
|
|
|
32
35
|
<UDExSocialMediaButton slot="customSocialLinks" url={url}></UDExSocialMediaButton>
|
|
33
36
|
</UDExFooter>
|
|
34
37
|
|
|
38
|
+
const customChineseFooter = <UDExFooter
|
|
39
|
+
id="footer"
|
|
40
|
+
logoLink="#test"
|
|
41
|
+
logoTitle="SAP Title"
|
|
42
|
+
logoAriaLabel="SAP Homepage"
|
|
43
|
+
logoUrl='https://cdn.udex.services.sap.com/dds/design-tokens/assets/logos/sap-logo.svg'
|
|
44
|
+
contactNumbersList='[{"country":"France","number":"400-619-0727"},{"country":"United State","number":"1-800-872-1727"}]'
|
|
45
|
+
localCountryNumbersLink='#'
|
|
46
|
+
chatWithUsLink='#'
|
|
47
|
+
quickLinks={JSON.stringify(quickLinks)}
|
|
48
|
+
trendingLinks = {JSON.stringify(trendingLinks)}
|
|
49
|
+
aboutLinks = {JSON.stringify(aboutLinks)}
|
|
50
|
+
siteInformationLinks = {JSON.stringify(siteInformationLinks)}
|
|
51
|
+
socialLinks = {JSON.stringify(socialLinks)}
|
|
52
|
+
contactUsLink='#'
|
|
53
|
+
tagline-alt={taglineAlt}
|
|
54
|
+
tagline-url={taglineUrl}
|
|
55
|
+
chinese-security-network-number={chineseSecurityNetworkNumber}
|
|
56
|
+
chinese-icp-number={chineseIcpNumber}
|
|
57
|
+
chinese-icp-number-link={chineseIcpNumberLink}>
|
|
58
|
+
<UDExSocialMediaButton slot="customSocialLinks" url={url}></UDExSocialMediaButton>
|
|
59
|
+
</UDExFooter>
|
|
60
|
+
|
|
35
61
|
describe("Footer", () => {
|
|
36
62
|
beforeEach(() => {
|
|
37
63
|
cy.mount(defaultFooter)
|
|
@@ -342,8 +368,12 @@ describe("Footer", () => {
|
|
|
342
368
|
})
|
|
343
369
|
});
|
|
344
370
|
|
|
345
|
-
|
|
371
|
+
});
|
|
372
|
+
|
|
373
|
+
describe("Footer chinese", () => {
|
|
374
|
+
describe("default", () => {
|
|
346
375
|
beforeEach(() => {
|
|
376
|
+
cy.mount(defaultFooter);
|
|
347
377
|
cy.viewport(1920, 1080);
|
|
348
378
|
setLanguage("zh_cn");
|
|
349
379
|
cy.get("#footer").shadow().as("footer");
|
|
@@ -366,4 +396,18 @@ describe("Footer", () => {
|
|
|
366
396
|
cy.get("@footer").find(".udex-footer__tagline-image-chinese").should("have.attr", "src", chineseTaglineUrl);
|
|
367
397
|
});
|
|
368
398
|
});
|
|
399
|
+
|
|
400
|
+
describe("custom", () => {
|
|
401
|
+
beforeEach(() => {
|
|
402
|
+
cy.mount(customChineseFooter);
|
|
403
|
+
cy.viewport(1920, 1080);
|
|
404
|
+
setLanguage("zh_cn");
|
|
405
|
+
cy.get("#footer").shadow().as("footer");
|
|
406
|
+
});
|
|
407
|
+
|
|
408
|
+
it("renders custom chinese icp details", () => {
|
|
409
|
+
cy.get("@footer").find(".udex-footer__copyright-chinese-text").should("have.text", `${chineseIcpNumber} ${chineseSecurityNetworkNumber}`)
|
|
410
|
+
cy.get("@footer").find(".udex-footer__copyright-chinese-link").should("have.attr", "href", chineseIcpNumberLink)
|
|
411
|
+
});
|
|
412
|
+
});
|
|
369
413
|
});
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { UDExImageGridCloud, UDExImageGridCloudItem } from "../support/component-imports.js";
|
|
2
|
+
|
|
3
|
+
const imageGridCloud = <UDExImageGridCloud id="image-grid-cloud">
|
|
4
|
+
<UDExImageGridCloudItem src="./stories/image-grid/chiesi-customer-logo.svg" alt="chiesi logo"></UDExImageGridCloudItem>
|
|
5
|
+
<UDExImageGridCloudItem src="./stories/image-grid/embecta-customer-logo.png" alt="embecta logo"></UDExImageGridCloudItem>
|
|
6
|
+
<UDExImageGridCloudItem src="./stories/image-grid/mj-quinn-customer-logo.svg" alt="mj quinn logo"></UDExImageGridCloudItem>
|
|
7
|
+
<UDExImageGridCloudItem src="./stories/image-grid/mk-group-logo.png" alt="mk group logo"></UDExImageGridCloudItem>
|
|
8
|
+
<UDExImageGridCloudItem src="./stories/image-grid/natura-and-co-customer-logo.svg" alt="natura and co logo"></UDExImageGridCloudItem>
|
|
9
|
+
<UDExImageGridCloudItem src="./stories/image-grid/banco-galicia-customer-logo.png" alt="galicia logo"></UDExImageGridCloudItem>
|
|
10
|
+
<UDExImageGridCloudItem src="./stories/image-grid/celsa-uk-customer-logo.svg" alt="celsa logo"></UDExImageGridCloudItem>
|
|
11
|
+
<UDExImageGridCloudItem src="./stories/image-grid/kind-customer-logo.svg" alt="kind logo"></UDExImageGridCloudItem>
|
|
12
|
+
<UDExImageGridCloudItem src="./stories/image-grid/resonac-customer-logo.png" alt="resonac logo"></UDExImageGridCloudItem>
|
|
13
|
+
<UDExImageGridCloudItem src="./stories/image-grid/lion-customer-logo.png" alt="lion logo"></UDExImageGridCloudItem>
|
|
14
|
+
<UDExImageGridCloudItem src="./stories/image-grid/bank-islam-customer-logo.svg" alt="bank islam logo"></UDExImageGridCloudItem>
|
|
15
|
+
<UDExImageGridCloudItem src="./stories/image-grid/puretech-scientific-customer-logo.svg" alt="puretech scientific logo"></UDExImageGridCloudItem>
|
|
16
|
+
</UDExImageGridCloud>
|
|
17
|
+
|
|
18
|
+
describe("Image Grid Cloud", () => {
|
|
19
|
+
beforeEach(() => {
|
|
20
|
+
cy.mount(imageGridCloud);
|
|
21
|
+
cy.get("[udex-image-grid-cloud]").shadow().as("image-grid-cloud");
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it("is correctly rendered", () => {
|
|
25
|
+
cy.get("@image-grid-cloud")
|
|
26
|
+
.find("#udex-image-grid-cloud")
|
|
27
|
+
.should("be.visible");
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it("renders the correct number of items", () => {
|
|
31
|
+
cy.get("@image-grid-cloud")
|
|
32
|
+
.find("[udex-image-grid-cloud-item]")
|
|
33
|
+
.should("have.length", 12);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it("renders items in grayscale when enabled", () => {
|
|
37
|
+
cy.get("[udex-image-grid-cloud]")
|
|
38
|
+
.invoke("attr", "grayscale", "true");
|
|
39
|
+
|
|
40
|
+
cy.get("@image-grid-cloud")
|
|
41
|
+
.find("[udex-image-grid-cloud-item]")
|
|
42
|
+
.first()
|
|
43
|
+
.should("have.css", "filter", "grayscale(1)");
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it("renders default Large size of items", () => {
|
|
47
|
+
cy.get("@image-grid-cloud")
|
|
48
|
+
.find("[udex-image-grid-cloud-item]")
|
|
49
|
+
.first()
|
|
50
|
+
.should("have.css", "width", "180px")
|
|
51
|
+
.should("have.css", "height", "90px");
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
it("renders Small size of items", () => {
|
|
55
|
+
cy.get("[udex-image-grid-cloud]")
|
|
56
|
+
.invoke("attr", "size", "Small");
|
|
57
|
+
|
|
58
|
+
cy.get("@image-grid-cloud")
|
|
59
|
+
.find("[udex-image-grid-cloud-item]")
|
|
60
|
+
.first()
|
|
61
|
+
.should("have.css", "width", "140px")
|
|
62
|
+
.should("have.css", "height", "70px");
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
it("renders rows with the correct number of items", () => {
|
|
66
|
+
cy.viewport(1600, 800);
|
|
67
|
+
|
|
68
|
+
cy.get("@image-grid-cloud")
|
|
69
|
+
.find("#udex-image-grid-cloud")
|
|
70
|
+
.children()
|
|
71
|
+
.then((items) => {
|
|
72
|
+
const containerWidth = 1600;
|
|
73
|
+
const itemWidth = 208; // item width + gap + borders
|
|
74
|
+
const expectedItemsPerRow = Math.floor(containerWidth / itemWidth);
|
|
75
|
+
expect(items.length).to.be.greaterThan(expectedItemsPerRow - 1);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
});
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { UDExImageGridCloudItem } from "../support/component-imports.js";
|
|
2
|
+
|
|
3
|
+
const itemSrc = "./stories/image-grid/chiesi-customer-logo.svg";
|
|
4
|
+
const itemAlt = "chiesi logo";
|
|
5
|
+
|
|
6
|
+
const imageGridCloudItem = <UDExImageGridCloudItem
|
|
7
|
+
src={itemSrc}
|
|
8
|
+
alt={itemAlt}>
|
|
9
|
+
</UDExImageGridCloudItem>
|
|
10
|
+
|
|
11
|
+
describe("Image Grid Cloud Item", () => {
|
|
12
|
+
beforeEach(() => {
|
|
13
|
+
cy.mount(imageGridCloudItem);
|
|
14
|
+
cy.get("[udex-image-grid-cloud-item]").shadow().as("image-grid-cloud-item");
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
it("is correctly rendered", () => {
|
|
18
|
+
cy.get("@image-grid-cloud-item")
|
|
19
|
+
.find(".udex-image-grid-cloud-item-img")
|
|
20
|
+
.should("be.visible");
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
it("renders an image element with correct attributes", () => {
|
|
24
|
+
cy.get("@image-grid-cloud-item")
|
|
25
|
+
.find(".udex-image-grid-cloud-item-img")
|
|
26
|
+
.should("have.attr", "src", itemSrc)
|
|
27
|
+
.and("have.attr", "alt", itemAlt);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
@@ -13,12 +13,16 @@ import UDExContactItem from "../../instrumented/ContactItem.js";
|
|
|
13
13
|
import UDExCountrySelector from "../../instrumented/CountrySelector.js";
|
|
14
14
|
import UDExDivider from "../../instrumented/Divider.js";
|
|
15
15
|
import UDExEventRibbon from "../../instrumented/EventRibbon.js";
|
|
16
|
+
import UDExFeed from "../../instrumented/Feed.js";
|
|
17
|
+
import UDExFeedItem from "../../instrumented/FeedItem.js";
|
|
16
18
|
import UDExFilterMenu from "../../instrumented/FilterMenu.js";
|
|
17
19
|
import UDExFilterMenuGroupHeader from "../../instrumented/FilterMenuGroupHeader.js";
|
|
18
20
|
import UDExFilterMenuItem from "../../instrumented/FilterMenuItem.js";
|
|
19
21
|
import UDExFilterMenuSelectAll from "../../instrumented/FilterMenuSelectAll.js";
|
|
20
22
|
import UDExFooter from "../../instrumented/Footer.js";
|
|
21
23
|
import UDExHeroBanner from "../../instrumented/HeroBanner.js";
|
|
24
|
+
import UDExImageGridCloud from "../../instrumented/ImageGridCloud.js";
|
|
25
|
+
import UDExImageGridCloudItem from "../../instrumented/ImageGridCloudItem.js";
|
|
22
26
|
import UDExImageGridTicker from "../../instrumented/ImageGridTicker.js";
|
|
23
27
|
import UDExImageGridTickerItem from "../../instrumented/ImageGridTickerItem.js";
|
|
24
28
|
import UDExInputGroup from "../../instrumented/InputGroup.js";
|
|
@@ -80,12 +84,16 @@ export {
|
|
|
80
84
|
UDExCountrySelector,
|
|
81
85
|
UDExDivider,
|
|
82
86
|
UDExEventRibbon,
|
|
87
|
+
UDExFeed,
|
|
88
|
+
UDExFeedItem,
|
|
83
89
|
UDExFilterMenu,
|
|
84
90
|
UDExFilterMenuGroupHeader,
|
|
85
91
|
UDExFilterMenuItem,
|
|
86
92
|
UDExFilterMenuSelectAll,
|
|
87
93
|
UDExFooter,
|
|
88
94
|
UDExHeroBanner,
|
|
95
|
+
UDExImageGridCloud,
|
|
96
|
+
UDExImageGridCloudItem,
|
|
89
97
|
UDExImageGridTicker,
|
|
90
98
|
UDExImageGridTickerItem,
|
|
91
99
|
UDExInputGroup,
|
|
@@ -13,12 +13,16 @@ import UDExContactItem from "../../src/ContactItem.js";
|
|
|
13
13
|
import UDExCountrySelector from "../../src/CountrySelector.js";
|
|
14
14
|
import UDExDivider from "../../src/Divider.js";
|
|
15
15
|
import UDExEventRibbon from "../../src/EventRibbon.js";
|
|
16
|
+
import UDExFeed from "../../src/Feed.js";
|
|
17
|
+
import UDExFeedItem from "../../src/FeedItem.js";
|
|
16
18
|
import UDExFilterMenu from "../../src/FilterMenu.js";
|
|
17
19
|
import UDExFilterMenuGroupHeader from "../../src/FilterMenuGroupHeader.js";
|
|
18
20
|
import UDExFilterMenuItem from "../../src/FilterMenuItem.js";
|
|
19
21
|
import UDExFilterMenuSelectAll from "../../src/FilterMenuSelectAll.js";
|
|
20
22
|
import UDExFooter from "../../src/Footer.js";
|
|
21
23
|
import UDExHeroBanner from "../../src/HeroBanner.js";
|
|
24
|
+
import UDExImageGridCloud from "../../src/ImageGridCloud.js";
|
|
25
|
+
import UDExImageGridCloudItem from "../../src/ImageGridCloudItem.js";
|
|
22
26
|
import UDExImageGridTicker from "../../src/ImageGridTicker.js";
|
|
23
27
|
import UDExImageGridTickerItem from "../../src/ImageGridTickerItem.js";
|
|
24
28
|
import UDExInputGroup from "../../src/InputGroup.js";
|
|
@@ -80,12 +84,16 @@ export {
|
|
|
80
84
|
UDExCountrySelector,
|
|
81
85
|
UDExDivider,
|
|
82
86
|
UDExEventRibbon,
|
|
87
|
+
UDExFeed,
|
|
88
|
+
UDExFeedItem,
|
|
83
89
|
UDExFilterMenu,
|
|
84
90
|
UDExFilterMenuGroupHeader,
|
|
85
91
|
UDExFilterMenuItem,
|
|
86
92
|
UDExFilterMenuSelectAll,
|
|
87
93
|
UDExFooter,
|
|
88
94
|
UDExHeroBanner,
|
|
95
|
+
UDExImageGridCloud,
|
|
96
|
+
UDExImageGridCloudItem,
|
|
89
97
|
UDExImageGridTicker,
|
|
90
98
|
UDExImageGridTickerItem,
|
|
91
99
|
UDExInputGroup,
|
package/dist/Accordion.js
CHANGED
|
@@ -189,6 +189,7 @@ UDExAccordion = UDExAccordion_1 = __decorate([
|
|
|
189
189
|
* Triggered when the user clicks on the Expand/Collapse All button..
|
|
190
190
|
*
|
|
191
191
|
* @public
|
|
192
|
+
* @param {boolean} isOpen Indicates whether all items are expanded or collapsed
|
|
192
193
|
*/
|
|
193
194
|
,
|
|
194
195
|
event("toggle-items", { bubbles: true })
|
package/dist/Accordion.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Accordion.js","sourceRoot":"","sources":["../src/Accordion.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 i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport \"@ui5/webcomponents-icons/dist/feeder-arrow.js\";\nimport {\n isEnter, isSpace, isEnd, isHome, isTabPrevious, isTabNext, isDown, isUp,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport AccordionTemplate from \"./AccordionTemplate.js\";\nimport type UDExAccordionItem from \"./AccordionItem.js\";\nimport { COLLAPSE_ALL, EXPAND_ALL } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport AccordionCss from \"./generated/themes/Accordion.css.js\";\n\nexport enum UDExAccordionHeadlineLevel {\n H1 = \"H1\",\n H2 = \"H2\",\n H3 = \"H3\",\n H4 = \"H4\",\n H5 = \"H5\",\n H6 = \"H6\"\n}\n\ntype UDExAccordionToggleItemsEventDetail = {\n isOpen: boolean\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-accordion</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Accordion.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-accordion\n * @public\n */\n@customElement({\n tag: \"udex-accordion\",\n renderer: jsxRenderer,\n styles: AccordionCss,\n template: AccordionTemplate,\n})\n\n/**\n * Triggered when the user clicks on the Expand/Collapse All button..\n *\n * @public\n */\n@event(\"toggle-items\", { bubbles: true })\n\nclass UDExAccordion extends UI5Element {\n eventDetails!: {\n \"toggle-items\": UDExAccordionToggleItemsEventDetail,\n };\n\n /**\n * Used internally to store expand/collapse button state.\n *\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n _allExpanded!: boolean;\n\n /**\n * Defines if expandAll button should be displayed.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n hideExpandButton!: boolean;\n\n /**\n * Defines direction of the accordion component.\n *\n * @private\n */\n @property({ type: String })\n _direction?: string;\n\n /**\n * Defines the headline text of the accordion component.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n headline!: string;\n\n /**\n * Defines the semantic level of the headline.\n *\n * @default UDExAccordionHeadlineLevel.h3\n * @public\n */\n @property()\n headlineLevel: UDExAccordionHeadlineLevel = UDExAccordionHeadlineLevel.H3;\n\n /**\n * Slot for accordion items.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true, individualSlots: true })\n _items!: Array<UDExAccordionItem>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _activeItemIndex: number;\n\n constructor() {\n super();\n this._allExpanded = false;\n this._activeItemIndex = -1;\n }\n\n onEnterDOM() {\n this.updateAllExpandedStatus();\n }\n\n toggleAllHandler(e: Event) {\n e.preventDefault();\n this._allExpanded = !this._allExpanded;\n this.toggleOpenItems(this._allExpanded);\n this.fireDecoratorEvent(\"toggle-items\", { isOpen: this._allExpanded });\n }\n\n toggleOpenItems(isOpen: boolean) {\n this._items.forEach(item => {\n item.expanded = isOpen;\n });\n }\n\n toggleKeyAllHandler(e: KeyboardEvent) {\n if (isEnter(e) || isSpace(e)) {\n this.toggleAllHandler(e);\n }\n }\n\n keydownHandler(e: KeyboardEvent) {\n if (isDown(e) || isUp(e)) {\n return;\n }\n\n this.handleTabKey(e);\n }\n\n handleTabKey(e: KeyboardEvent) {\n const activeItem = this._items[this._activeItemIndex];\n const previousItem = this._items[this._activeItemIndex - 1];\n const isLastItem = this._activeItemIndex === this._items.length - 1;\n const isFirstItem = this._activeItemIndex === 0;\n const lastItem = this._items[this._items.length - 1];\n\n const updateTabIndex = (elements: NodeListOf<Element>, value: string) => {\n elements.forEach(element => element.setAttribute(\"tabindex\", value));\n };\n\n const getInteractiveElements = (item: HTMLElement) => {\n const selectors = [\"button\", \"a[href]\", \"input\", \"select\", \"textarea\", \"[tabindex]\"];\n return item.querySelectorAll(selectors.join(\",\"));\n };\n\n const handleTabNavigation = (keyboardEvent: KeyboardEvent) => {\n if (isLastItem && isTabNext(keyboardEvent) && !lastItem.expanded) {\n updateTabIndex(getInteractiveElements(activeItem), \"-1\");\n return true;\n }\n\n if ((activeItem?.expanded && isTabNext(e))\n || (previousItem?.expanded && isTabPrevious(e))\n || (isFirstItem && isTabPrevious(e))) {\n return true;\n }\n\n if (isEnter(e) && isLastItem) {\n updateTabIndex(getInteractiveElements(activeItem), \"0\");\n }\n\n return false;\n };\n\n const focusOnItem = (itemIndex: number) => {\n const item = this._items[itemIndex];\n this._activeItemIndex = itemIndex;\n (item?.shadowRoot?.querySelector(\".udex-accordion-item__header\") as HTMLElement)?.focus();\n };\n\n if (handleTabNavigation(e)) {\n return;\n }\n\n e.preventDefault();\n const len = this._items.length;\n\n if (isHome(e)) {\n focusOnItem(0);\n }\n\n if (isEnd(e)) {\n focusOnItem(len - 1);\n }\n\n if (isTabPrevious(e)) {\n focusOnItem(this._activeItemIndex > 0 ? this._activeItemIndex - 1 : len - 1);\n }\n\n if (isTabNext(e)) {\n focusOnItem(this._activeItemIndex < len - 1 ? this._activeItemIndex + 1 : 0);\n }\n }\n\n itemFocusHandler(e: CustomEvent) {\n const target = e.target as UDExAccordionItem;\n if (target) {\n this._activeItemIndex = this._items?.indexOf(target) ?? -1;\n }\n }\n\n updateAllExpandedStatus() {\n this._allExpanded = this._items.every(item => item.expanded);\n }\n\n get toggleAllText(): string {\n return this._allExpanded\n ? UDExAccordion.i18nBundle.getText(COLLAPSE_ALL)\n : UDExAccordion.i18nBundle.getText(EXPAND_ALL);\n }\n\n get items(): {item: UDExAccordionItem}[] {\n return this._items.map(el => {\n return {\n item: el,\n };\n });\n }\n}\n\nUDExAccordion.define();\n\nexport default UDExAccordion;\nexport type { UDExAccordionToggleItemsEventDetail };\n"]}
|
|
1
|
+
{"version":3,"file":"Accordion.js","sourceRoot":"","sources":["../src/Accordion.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 i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport \"@ui5/webcomponents-icons/dist/feeder-arrow.js\";\nimport {\n isEnter, isSpace, isEnd, isHome, isTabPrevious, isTabNext, isDown, isUp,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport AccordionTemplate from \"./AccordionTemplate.js\";\nimport type UDExAccordionItem from \"./AccordionItem.js\";\nimport { COLLAPSE_ALL, EXPAND_ALL } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport AccordionCss from \"./generated/themes/Accordion.css.js\";\n\nexport enum UDExAccordionHeadlineLevel {\n H1 = \"H1\",\n H2 = \"H2\",\n H3 = \"H3\",\n H4 = \"H4\",\n H5 = \"H5\",\n H6 = \"H6\"\n}\n\ntype UDExAccordionToggleItemsEventDetail = {\n isOpen: boolean\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-accordion</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Accordion.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-accordion\n * @public\n */\n@customElement({\n tag: \"udex-accordion\",\n renderer: jsxRenderer,\n styles: AccordionCss,\n template: AccordionTemplate,\n})\n\n/**\n * Triggered when the user clicks on the Expand/Collapse All button..\n *\n * @public\n * @param {boolean} isOpen Indicates whether all items are expanded or collapsed\n */\n@event(\"toggle-items\", { bubbles: true })\n\nclass UDExAccordion extends UI5Element {\n eventDetails!: {\n \"toggle-items\": UDExAccordionToggleItemsEventDetail,\n };\n\n /**\n * Used internally to store expand/collapse button state.\n *\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n _allExpanded!: boolean;\n\n /**\n * Defines if expandAll button should be displayed.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n hideExpandButton!: boolean;\n\n /**\n * Defines direction of the accordion component.\n *\n * @private\n */\n @property({ type: String })\n _direction?: string;\n\n /**\n * Defines the headline text of the accordion component.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n headline!: string;\n\n /**\n * Defines the semantic level of the headline.\n *\n * @default UDExAccordionHeadlineLevel.h3\n * @public\n */\n @property()\n headlineLevel: UDExAccordionHeadlineLevel = UDExAccordionHeadlineLevel.H3;\n\n /**\n * Slot for accordion items.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true, individualSlots: true })\n _items!: Array<UDExAccordionItem>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _activeItemIndex: number;\n\n constructor() {\n super();\n this._allExpanded = false;\n this._activeItemIndex = -1;\n }\n\n onEnterDOM() {\n this.updateAllExpandedStatus();\n }\n\n toggleAllHandler(e: Event) {\n e.preventDefault();\n this._allExpanded = !this._allExpanded;\n this.toggleOpenItems(this._allExpanded);\n this.fireDecoratorEvent(\"toggle-items\", { isOpen: this._allExpanded });\n }\n\n toggleOpenItems(isOpen: boolean) {\n this._items.forEach(item => {\n item.expanded = isOpen;\n });\n }\n\n toggleKeyAllHandler(e: KeyboardEvent) {\n if (isEnter(e) || isSpace(e)) {\n this.toggleAllHandler(e);\n }\n }\n\n keydownHandler(e: KeyboardEvent) {\n if (isDown(e) || isUp(e)) {\n return;\n }\n\n this.handleTabKey(e);\n }\n\n handleTabKey(e: KeyboardEvent) {\n const activeItem = this._items[this._activeItemIndex];\n const previousItem = this._items[this._activeItemIndex - 1];\n const isLastItem = this._activeItemIndex === this._items.length - 1;\n const isFirstItem = this._activeItemIndex === 0;\n const lastItem = this._items[this._items.length - 1];\n\n const updateTabIndex = (elements: NodeListOf<Element>, value: string) => {\n elements.forEach(element => element.setAttribute(\"tabindex\", value));\n };\n\n const getInteractiveElements = (item: HTMLElement) => {\n const selectors = [\"button\", \"a[href]\", \"input\", \"select\", \"textarea\", \"[tabindex]\"];\n return item.querySelectorAll(selectors.join(\",\"));\n };\n\n const handleTabNavigation = (keyboardEvent: KeyboardEvent) => {\n if (isLastItem && isTabNext(keyboardEvent) && !lastItem.expanded) {\n updateTabIndex(getInteractiveElements(activeItem), \"-1\");\n return true;\n }\n\n if ((activeItem?.expanded && isTabNext(e))\n || (previousItem?.expanded && isTabPrevious(e))\n || (isFirstItem && isTabPrevious(e))) {\n return true;\n }\n\n if (isEnter(e) && isLastItem) {\n updateTabIndex(getInteractiveElements(activeItem), \"0\");\n }\n\n return false;\n };\n\n const focusOnItem = (itemIndex: number) => {\n const item = this._items[itemIndex];\n this._activeItemIndex = itemIndex;\n (item?.shadowRoot?.querySelector(\".udex-accordion-item__header\") as HTMLElement)?.focus();\n };\n\n if (handleTabNavigation(e)) {\n return;\n }\n\n e.preventDefault();\n const len = this._items.length;\n\n if (isHome(e)) {\n focusOnItem(0);\n }\n\n if (isEnd(e)) {\n focusOnItem(len - 1);\n }\n\n if (isTabPrevious(e)) {\n focusOnItem(this._activeItemIndex > 0 ? this._activeItemIndex - 1 : len - 1);\n }\n\n if (isTabNext(e)) {\n focusOnItem(this._activeItemIndex < len - 1 ? this._activeItemIndex + 1 : 0);\n }\n }\n\n itemFocusHandler(e: CustomEvent) {\n const target = e.target as UDExAccordionItem;\n if (target) {\n this._activeItemIndex = this._items?.indexOf(target) ?? -1;\n }\n }\n\n updateAllExpandedStatus() {\n this._allExpanded = this._items.every(item => item.expanded);\n }\n\n get toggleAllText(): string {\n return this._allExpanded\n ? UDExAccordion.i18nBundle.getText(COLLAPSE_ALL)\n : UDExAccordion.i18nBundle.getText(EXPAND_ALL);\n }\n\n get items(): {item: UDExAccordionItem}[] {\n return this._items.map(el => {\n return {\n item: el,\n };\n });\n }\n}\n\nUDExAccordion.define();\n\nexport default UDExAccordion;\nexport type { UDExAccordionToggleItemsEventDetail };\n"]}
|
package/dist/AccordionItem.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccordionItem.js","sourceRoot":"","sources":["../src/AccordionItem.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,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,WAAW,MAAM,iDAAiD,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,aAAa,MAAM,wDAAwD,CAAC;AACnF,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,SAAS;AACT,OAAO,gBAAgB,MAAM,yCAAyC,CAAC;AAEvE,MAAM,CAAN,IAAY,0BAGX;AAHD,WAAY,0BAA0B;IACpC,mDAAqB,CAAA;IACrB,6CAAe,CAAA;AACjB,CAAC,EAHW,0BAA0B,KAA1B,0BAA0B,QAGrC;AAOD;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"AccordionItem.js","sourceRoot":"","sources":["../src/AccordionItem.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 jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport AccordionItemTemplate from \"./AccordionItemTemplate.js\";\nimport { UDExNumberBadgeDesign } from \"./types/BadgeDesign.js\";\n\n// Styles\nimport AccordionItemCss from \"./generated/themes/AccordionItem.css.js\";\n\nexport enum UDExAccordionItemTitleSize {\n Standard = \"Standard\",\n Large = \"Large\"\n}\n\ntype UDExAccordionItemClickEventDetail = {\n name: string | undefined;\n expanded: boolean;\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-accordion-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/AccordionItem.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-accordion-item\n * @public\n */\n@customElement({\n tag: \"udex-accordion-item\",\n renderer: jsxRenderer,\n styles: AccordionItemCss,\n template: AccordionItemTemplate,\n})\n\n/**\n * Triggered when the user focuses on an accordion item.\n * @public\n */\n@event(\"accordion-item-focus\", { bubbles: true })\n\n/**\n * Triggered when the user clicks on an accordion item.\n * @public\n * @param { string } name\n * @param { boolean } expanded\n */\n@event(\"accordion-item-click\", { bubbles: true })\n\nclass UDExAccordionItem extends UI5Element {\n eventDetails!: {\n \"accordion-item-focus\": void,\n \"accordion-item-click\": UDExAccordionItemClickEventDetail,\n };\n /**\n * Defines the Badge at the end of the label item.\n *\n * @default \"\"\n * @public\n */\n @property()\n numberBadge!: string;\n\n /**\n * Defines the design of the number badge.\n *\n * @default \"Blue\"\n * @public\n */\n @property()\n numberBadgeDesign: `${UDExNumberBadgeDesign}` = UDExNumberBadgeDesign.Blue;\n\n /**\n * Defines the label of the accordion item component.\n *\n * @default \"\"\n * @public\n */\n @property()\n label!: string;\n\n /**\n * Defines the size of label.\n *\n * @default UDExAccordionItemTitleSize.Standard\n * @public\n */\n @property()\n labelSize: UDExAccordionItemTitleSize = UDExAccordionItemTitleSize.Standard;\n\n /**\n * Defines icon name to be display with title.\n *\n * @default \"\"\n * @public\n */\n @property()\n labelIcon!: string;\n\n /**\n * Defines if the accordion item is expanded by default\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n expanded = false;\n\n /**\n * Used internally to understand the component's open or closed state.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n isOpen = false;\n\n /**\n * Defines direction of the accordion item.\n *\n * @public\n */\n @property({ type: String })\n _direction?: string;\n\n /**\n * Slot for accordion item content.\n *\n * @slot\n * @public\n */\n @slot({ type: Node, \"default\": true })\n content!: Array<Node>;\n\n _resizeHandler: () => void;\n contentElement: HTMLElement | null | undefined;\n\n constructor() {\n super();\n this._resizeHandler = this._onResize.bind(this);\n this.contentElement = null;\n }\n\n onAfterRendering() {\n this.handleDirection();\n this.contentElement = this.shadowRoot?.querySelector(\".udex-accordion-item__content-inner\");\n this.setContentHeight();\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n if (this.contentElement) {\n ResizeHandler.register(this.contentElement, this._resizeHandler);\n }\n }\n\n onExitDOM(): void {\n if (this.contentElement) {\n ResizeHandler.deregister(this.contentElement, this._resizeHandler);\n }\n }\n\n setContentHeight() {\n this.style.setProperty(\"--udex-accordion-item-content-max-height\", `${this.contentElement?.scrollHeight}px`);\n }\n\n _onResize(): void {\n this.setContentHeight();\n }\n\n contentKeydown(e: KeyboardEvent) {\n e.stopPropagation();\n }\n\n itemClickHandler(e: Event) {\n e.preventDefault();\n this.expanded = !this.expanded;\n this.setContentHeight();\n this.fireDecoratorEvent(\"accordion-item-click\", { name: this.label, expanded: this.expanded });\n }\n\n focusHandler() {\n this.fireDecoratorEvent(\"accordion-item-focus\");\n }\n\n keydownHandler(e: KeyboardEvent) {\n if (isEnter(e) || isSpace(e)) {\n this.itemClickHandler(e);\n }\n }\n\n handleDirection() {\n const directionStyles: string = window\n .getComputedStyle(this)\n .getPropertyValue(\"direction\");\n\n if (!directionStyles) {\n this._direction = \"ltr\";\n } else {\n this._direction = directionStyles;\n }\n }\n}\n\nUDExAccordionItem.define();\n\nexport default UDExAccordionItem;\nexport type { UDExAccordionItemClickEventDetail };\n"]}
|
package/dist/AssetsVariables.js
CHANGED
|
@@ -57,6 +57,11 @@ const variablesOverwrite = `
|
|
|
57
57
|
${getScopedVarName("--_ui5_input_focus_outline_color")}: var(--sapContent_FocusColor);
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
[udex-feed],
|
|
61
|
+
[udex-promo-tile] {
|
|
62
|
+
${getScopedVarName("--_ui5_icon_transform_scale")}: none;
|
|
63
|
+
}
|
|
64
|
+
|
|
60
65
|
.sapUiSizeCompact,
|
|
61
66
|
.ui5-content-density-compact,
|
|
62
67
|
[data-ui5-compact-size] {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetsVariables.js","sourceRoot":"","sources":["../src/AssetsVariables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qDAAqD,CAAC;AACvF,OAAO,0BAA0B,MAAM,uCAAuC,CAAC;AAE/E,MAAM,kBAAkB,GAAG;IACvB,0BAA0B,EAAE;;;;IAI5B,gBAAgB,CAAC,mCAAmC,CAAC;;;IAGrD,gBAAgB,CAAC,2BAA2B,CAAC;;;IAG7C,gBAAgB,CAAC,0BAA0B,CAAC;;;IAG5C,gBAAgB,CAAC,sCAAsC,CAAC;IACxD,gBAAgB,CAAC,kCAAkC,CAAC;;;IAGpD,gBAAgB,CAAC,uBAAuB,CAAC;IACzC,gBAAgB,CAAC,wBAAwB,CAAC;IAC1C,gBAAgB,CAAC,oCAAoC,CAAC;IACtD,gBAAgB,CAAC,oCAAoC,CAAC;IACtD,gBAAgB,CAAC,+BAA+B,CAAC;IACjD,gBAAgB,CAAC,2CAA2C,CAAC;IAC7D,gBAAgB,CAAC,8BAA8B,CAAC;IAChD,gBAAgB,CAAC,+BAA+B,CAAC;IACjD,gBAAgB,CAAC,iCAAiC,CAAC;IACnD,gBAAgB,CAAC,iCAAiC,CAAC;IACnD,gBAAgB,CAAC,gCAAgC,CAAC;IAClD,gBAAgB,CAAC,gCAAgC,CAAC;IAClD,gBAAgB,CAAC,+BAA+B,CAAC;IACjD,gBAAgB,CAAC,4CAA4C,CAAC;IAC9D,gBAAgB,CAAC,gCAAgC,CAAC;IAClD,gBAAgB,CAAC,wCAAwC,CAAC;IAC1D,gBAAgB,CAAC,uCAAuC,CAAC;IACzD,gBAAgB,CAAC,6CAA6C,CAAC;IAC/D,gBAAgB,CAAC,oDAAoD,CAAC;IACtE,gBAAgB,CAAC,gDAAgD,CAAC;IAClE,gBAAgB,CAAC,gCAAgC,CAAC;IAClD,gBAAgB,CAAC,oCAAoC,CAAC;IACtD,gBAAgB,CAAC,oCAAoC,CAAC;;;;MAIpD,gBAAgB,CAAC,uBAAuB,CAAC;;;;MAIzC,gBAAgB,CAAC,4CAA4C,CAAC;;;;MAI9D,gBAAgB,CAAC,2BAA2B,CAAC;MAC7C,gBAAgB,CAAC,kCAAkC,CAAC;MACpD,gBAAgB,CAAC,kCAAkC,CAAC;;;;;;;
|
|
1
|
+
{"version":3,"file":"AssetsVariables.js","sourceRoot":"","sources":["../src/AssetsVariables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qDAAqD,CAAC;AACvF,OAAO,0BAA0B,MAAM,uCAAuC,CAAC;AAE/E,MAAM,kBAAkB,GAAG;IACvB,0BAA0B,EAAE;;;;IAI5B,gBAAgB,CAAC,mCAAmC,CAAC;;;IAGrD,gBAAgB,CAAC,2BAA2B,CAAC;;;IAG7C,gBAAgB,CAAC,0BAA0B,CAAC;;;IAG5C,gBAAgB,CAAC,sCAAsC,CAAC;IACxD,gBAAgB,CAAC,kCAAkC,CAAC;;;IAGpD,gBAAgB,CAAC,uBAAuB,CAAC;IACzC,gBAAgB,CAAC,wBAAwB,CAAC;IAC1C,gBAAgB,CAAC,oCAAoC,CAAC;IACtD,gBAAgB,CAAC,oCAAoC,CAAC;IACtD,gBAAgB,CAAC,+BAA+B,CAAC;IACjD,gBAAgB,CAAC,2CAA2C,CAAC;IAC7D,gBAAgB,CAAC,8BAA8B,CAAC;IAChD,gBAAgB,CAAC,+BAA+B,CAAC;IACjD,gBAAgB,CAAC,iCAAiC,CAAC;IACnD,gBAAgB,CAAC,iCAAiC,CAAC;IACnD,gBAAgB,CAAC,gCAAgC,CAAC;IAClD,gBAAgB,CAAC,gCAAgC,CAAC;IAClD,gBAAgB,CAAC,+BAA+B,CAAC;IACjD,gBAAgB,CAAC,4CAA4C,CAAC;IAC9D,gBAAgB,CAAC,gCAAgC,CAAC;IAClD,gBAAgB,CAAC,wCAAwC,CAAC;IAC1D,gBAAgB,CAAC,uCAAuC,CAAC;IACzD,gBAAgB,CAAC,6CAA6C,CAAC;IAC/D,gBAAgB,CAAC,oDAAoD,CAAC;IACtE,gBAAgB,CAAC,gDAAgD,CAAC;IAClE,gBAAgB,CAAC,gCAAgC,CAAC;IAClD,gBAAgB,CAAC,oCAAoC,CAAC;IACtD,gBAAgB,CAAC,oCAAoC,CAAC;;;;MAIpD,gBAAgB,CAAC,uBAAuB,CAAC;;;;MAIzC,gBAAgB,CAAC,4CAA4C,CAAC;;;;MAI9D,gBAAgB,CAAC,2BAA2B,CAAC;MAC7C,gBAAgB,CAAC,kCAAkC,CAAC;MACpD,gBAAgB,CAAC,kCAAkC,CAAC;;;;;MAKpD,gBAAgB,CAAC,6BAA6B,CAAC;;;;;;;MAO/C,gBAAgB,CAAC,uBAAuB,CAAC;MACzC,gBAAgB,CAAC,wBAAwB,CAAC;MAC1C,gBAAgB,CAAC,oCAAoC,CAAC;MACtD,gBAAgB,CAAC,oCAAoC,CAAC;MACtD,gBAAgB,CAAC,+BAA+B,CAAC;MACjD,gBAAgB,CAAC,2CAA2C,CAAC;MAC7D,gBAAgB,CAAC,8BAA8B,CAAC;MAChD,gBAAgB,CAAC,+BAA+B,CAAC;MACjD,gBAAgB,CAAC,iCAAiC,CAAC;MACnD,gBAAgB,CAAC,uCAAuC,CAAC;MACzD,gBAAgB,CAAC,iCAAiC,CAAC;MACnD,gBAAgB,CAAC,gCAAgC,CAAC;MAClD,gBAAgB,CAAC,gCAAgC,CAAC;MAClD,gBAAgB,CAAC,+BAA+B,CAAC;MACjD,gBAAgB,CAAC,oCAAoC,CAAC;MACtD,gBAAgB,CAAC,oCAAoC,CAAC;;CAE3D,CAAC;AAEF,eAAe,kBAAkB,CAAC","sourcesContent":["import { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\nimport getEffectiveScrollbarStyle from \"./utils/getEffectiveScrollbarStyle.js\";\n\nconst variablesOverwrite = `\n ${getEffectiveScrollbarStyle()}\n \n :root {\n /* Browser Scrollbar */\n ${getScopedVarName(\"--browser_scrollbar_border_radius\")}: var(--udexRadiusM, 8px);\n\n /* Tooltip */\n ${getScopedVarName(\"--_ui5_popover_box_shadow\")}: 0px 0px 0px 1px var(--udexColorGrey4);\n\n /* Tokenizer */\n ${getScopedVarName(\"--_ui5_tokenizer_padding\")}: var(--udexSpacer12, 12px);\n\n /* Carousel */\n ${getScopedVarName(\"--ui5_carousel_active_dot_background\")}: var(--udexColorBlue8, #0057D2);\n ${getScopedVarName(\"--ui5_carousel_active_dot_border\")}: 1px solid var(--udexColorBlue8, #0057D2);\n\n /* Calendar & Date Picker */\n ${getScopedVarName(\"--_ui5_calendar_width\")}: 371px;\n ${getScopedVarName(\"--_ui5_calendar_height\")}: auto;\n ${getScopedVarName(\"--_ui5_calendar_top_bottom_padding\")}: var(--udexSpacer8, 8px);\n ${getScopedVarName(\"--_ui5_calendar_left_right_padding\")}: var(--udexSpacer8, 8px);\n ${getScopedVarName(\"--_ui5_calendar_header_height\")}: 42px;\n ${getScopedVarName(\"--_ui5_calendar_header_arrow_button_width\")}: 42px;\n ${getScopedVarName(\"--_ui5_day_picker_item_width\")}: 42px;\n ${getScopedVarName(\"--_ui5_day_picker_item_height\")}: 42px;\n ${getScopedVarName(\"--_ui5_daypicker_weekname_color\")}: var(--udexColorGrey6, #5B738B);\n ${getScopedVarName(\"--_ui5_month_picker_item_height\")}: 36px;\n ${getScopedVarName(\"--_ui5_monthpicker_item_margin\")}: -8px 0 var(--udexSpacer16, 16px) 0;\n ${getScopedVarName(\"--_ui5_year_picker_item_height\")}: 36px;\n ${getScopedVarName(\"--_ui5_yearpicker_item_margin\")}: -8px 0 var(--udexSpacer16, 16px) 0;\n ${getScopedVarName(\"--_ui5_daypicker_daynames_container_height\")}: 42px;\n ${getScopedVarName(\"--_ui5_daypicker_dayname_color\")}: var(--udexColorGrey6, #5B738B);\n ${getScopedVarName(\"--_ui5_daypicker_item_now_border_color\")}: var(--udexColorPink8, #A100C2);\n ${getScopedVarName(\"--_ui5_daypicker_item_weeekend_filter\")}: none;\n ${getScopedVarName(\"--_ui5_daypicker_item_select_between_border\")}: 1px solid var(--udexColorBlue9, #0040B0);\n ${getScopedVarName(\"--_ui5_calendar_header_middle_button_focus_outline\")}: 1px solid var(--udexColorBlue9, #0040B0);\n ${getScopedVarName(\"--_ui5_calendar_header_arrow_button_box_shadow\")}: none;\n ${getScopedVarName(\"--_ui5_calendar_header_padding\")}: 0;\n ${getScopedVarName(\"--_ui5_calendar_left_right_padding\")}: 0;\n ${getScopedVarName(\"--_ui5_calendar_top_bottom_padding\")}: 0;\n \n /* Avatar */\n [udex-avatar].dark {\n ${getScopedVarName(\"--_ui5_avatar_outline\")}: var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--udexColorNeutralWhite, #FFFFFF);\n }\n\n [udex-search] {\n ${getScopedVarName(\"--_ui5_button_pressed_focused_border_color\")}: transparent;\n }\n \n [udex-upload] {\n ${getScopedVarName(\"--_ui5_input_focus_offset\")}: 2px;\n ${getScopedVarName(\"--_ui5_input_focus_border_radius\")}: 0.375rem;\n ${getScopedVarName(\"--_ui5_input_focus_outline_color\")}: var(--sapContent_FocusColor);\n }\n\n [udex-feed],\n [udex-promo-tile] {\n ${getScopedVarName(\"--_ui5_icon_transform_scale\")}: none;\n }\n\n .sapUiSizeCompact,\n .ui5-content-density-compact,\n [data-ui5-compact-size] {\n /* Calendar & Date Picker */\n ${getScopedVarName(\"--_ui5_calendar_width\")}: 371px;\n ${getScopedVarName(\"--_ui5_calendar_height\")}: auto;\n ${getScopedVarName(\"--_ui5_calendar_top_bottom_padding\")}: var(--udexSpacer8, 8px);\n ${getScopedVarName(\"--_ui5_calendar_left_right_padding\")}: var(--udexSpacer8, 8px);\n ${getScopedVarName(\"--_ui5_calendar_header_height\")}: 42px;\n ${getScopedVarName(\"--_ui5_calendar_header_arrow_button_width\")}: 42px;\n ${getScopedVarName(\"--_ui5_day_picker_item_width\")}: 42px;\n ${getScopedVarName(\"--_ui5_day_picker_item_height\")}: 42px;\n ${getScopedVarName(\"--_ui5_daypicker_weekname_color\")}: var(--udexColorGrey6, #5B738B);\n ${getScopedVarName(\"--_ui5_daypicker_item_weeekend_filter\")}: none;\n ${getScopedVarName(\"--_ui5_month_picker_item_height\")}: 36px;\n ${getScopedVarName(\"--_ui5_monthpicker_item_margin\")}: -8px 0 var(--udexSpacer16, 16px) 0;\n ${getScopedVarName(\"--_ui5_year_picker_item_height\")}: 36px;\n ${getScopedVarName(\"--_ui5_yearpicker_item_margin\")}: -8px 0 var(--udexSpacer16, 16px) 0;\n ${getScopedVarName(\"--_ui5_calendar_left_right_padding\")}: 0;\n ${getScopedVarName(\"--_ui5_calendar_top_bottom_padding\")}: 0;\n }\n`;\n\nexport default variablesOverwrite;\n"]}
|
package/dist/Breadcrumbs.js
CHANGED
|
@@ -234,6 +234,11 @@ UDExBreadcrumbs = UDExBreadcrumbs_1 = __decorate([
|
|
|
234
234
|
})
|
|
235
235
|
/**
|
|
236
236
|
* @public
|
|
237
|
+
* @param { UDExBreadcrumbsItem } item The clicked breadcrumb item
|
|
238
|
+
* @param { boolean } altKey
|
|
239
|
+
* @param { boolean } ctrlKey
|
|
240
|
+
* @param { boolean } metaKey
|
|
241
|
+
* @param { boolean } shiftKey
|
|
237
242
|
*/
|
|
238
243
|
,
|
|
239
244
|
event("item-click", { cancelable: true, bubbles: true })
|