@sapudex/web-components 2.28.0 → 2.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cypress/specs/FilterMenu.cy.tsx +39 -1
- package/cypress/specs/List.cy.tsx +171 -0
- package/cypress/specs/PromoTile.cy.tsx +16 -2
- package/cypress/specs/ReviewItem.cy.tsx +48 -14
- package/cypress/specs/Tag.cy.tsx +6 -0
- package/cypress/support/component-imports.instrumented.ts +4 -0
- package/cypress/support/component-imports.src.ts +5 -1
- package/dist/Avatar.d.ts +1 -0
- package/dist/Avatar.js +9 -0
- package/dist/Avatar.js.map +1 -1
- package/dist/FilterMenu.d.ts +2 -0
- package/dist/FilterMenu.js +2 -0
- package/dist/FilterMenu.js.map +1 -1
- package/dist/ImageGridTickerTemplate.js +2 -1
- package/dist/ImageGridTickerTemplate.js.map +1 -1
- package/dist/List.d.ts +4 -2
- package/dist/List.js +42 -9
- package/dist/List.js.map +1 -1
- package/dist/ListGroupHeader.d.ts +4 -0
- package/dist/ListGroupHeader.js +26 -1
- package/dist/ListGroupHeader.js.map +1 -1
- package/dist/ListGroupHeaderBase.js +1 -1
- package/dist/ListGroupHeaderBase.js.map +1 -1
- package/dist/ListItem.js +1 -1
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItemBase.d.ts +40 -1
- package/dist/ListItemBase.js +70 -3
- package/dist/ListItemBase.js.map +1 -1
- package/dist/MastheadCountrySelector.d.ts +16 -0
- package/dist/MastheadCountrySelector.js +21 -6
- package/dist/MastheadCountrySelector.js.map +1 -1
- package/dist/MastheadItem.d.ts +9 -2
- package/dist/MastheadItem.js +19 -15
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadMenu.d.ts +2 -2
- package/dist/MastheadMenu.js +9 -9
- package/dist/MastheadMenu.js.map +1 -1
- package/dist/MessageStrip.d.ts +14 -0
- package/dist/MessageStrip.js +7 -1
- package/dist/MessageStrip.js.map +1 -1
- package/dist/MessageStripTemplate.js +1 -1
- package/dist/MessageStripTemplate.js.map +1 -1
- package/dist/Pagination.js +1 -1
- package/dist/Pagination.js.map +1 -1
- package/dist/PromoTile.d.ts +8 -1
- package/dist/PromoTile.js +9 -6
- package/dist/PromoTile.js.map +1 -1
- package/dist/PromoTileTemplate.js +5 -5
- package/dist/PromoTileTemplate.js.map +1 -1
- package/dist/ReviewItem.d.ts +8 -7
- package/dist/ReviewItem.js +35 -36
- package/dist/ReviewItem.js.map +1 -1
- package/dist/ReviewItemTemplate.js +3 -1
- package/dist/ReviewItemTemplate.js.map +1 -1
- package/dist/SearchableListBase.d.ts +3 -0
- package/dist/SearchableListBase.js +38 -2
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SelectBase.js +1 -1
- package/dist/SelectBase.js.map +1 -1
- package/dist/SelectBox.js +0 -1
- package/dist/SelectBox.js.map +1 -1
- package/dist/TabNavigation.d.ts +1 -1
- package/dist/TabNavigation.js +2 -7
- package/dist/TabNavigation.js.map +1 -1
- package/dist/Tag.d.ts +7 -1
- package/dist/Tag.js +4 -1
- package/dist/Tag.js.map +1 -1
- package/dist/TagTemplate.js +1 -1
- package/dist/TagTemplate.js.map +1 -1
- package/dist/TextField.d.ts +1 -1
- package/dist/TextField.js.map +1 -1
- package/dist/assets/{InputSuggestions-DTdaDbps.js → InputSuggestions-CaAXs3ok.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-DoV7tVwi.js → ListItemStandardExpandableTextTemplate-CPqUBd--.js} +1 -1
- package/dist/assets/{bundle.esm-BUg2IPOZ.js → bundle.esm-L-7H6J4f.js} +217 -217
- package/dist/assets/messagebundle_en-J-MHTtdL.js +1 -0
- package/dist/css/themes/Button.css +1 -1
- package/dist/css/themes/FilterMenu.css +1 -1
- package/dist/css/themes/ImageGridTicker.css +1 -1
- package/dist/css/themes/ListGroupHeader.css +1 -1
- package/dist/css/themes/ListItem.css +1 -1
- package/dist/css/themes/MastheadCountrySelector.css +1 -1
- package/dist/css/themes/MastheadItem.css +1 -1
- package/dist/css/themes/MastheadMenuItem.css +1 -1
- package/dist/css/themes/MastheadProfileMenu.css +1 -1
- package/dist/css/themes/Modal.css +1 -1
- package/dist/css/themes/PromoTile.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/ReviewItem.css +1 -1
- package/dist/css/themes/SearchableList.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/custom-elements-internal.json +1087 -17
- package/dist/custom-elements.json +820 -0
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +5 -1
- package/dist/generated/i18n/i18n-defaults.js +5 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.js +21 -10
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ListItemTemplate.lit.js +21 -19
- package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js +2 -2
- package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadItemTemplate.lit.js +33 -25
- package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +5 -5
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SearchableListBaseTemplate.lit.js +1 -1
- package/dist/generated/templates/SearchableListBaseTemplate.lit.js.map +1 -1
- package/dist/generated/themes/Button.css.d.ts +1 -1
- package/dist/generated/themes/Button.css.js +1 -1
- package/dist/generated/themes/Button.css.js.map +1 -1
- package/dist/generated/themes/FilterMenu.css.d.ts +1 -1
- package/dist/generated/themes/FilterMenu.css.js +1 -1
- package/dist/generated/themes/FilterMenu.css.js.map +1 -1
- package/dist/generated/themes/ImageGridTicker.css.d.ts +1 -1
- package/dist/generated/themes/ImageGridTicker.css.js +1 -1
- package/dist/generated/themes/ImageGridTicker.css.js.map +1 -1
- package/dist/generated/themes/ListGroupHeader.css.d.ts +1 -1
- package/dist/generated/themes/ListGroupHeader.css.js +1 -1
- package/dist/generated/themes/ListGroupHeader.css.js.map +1 -1
- package/dist/generated/themes/ListItem.css.d.ts +1 -1
- package/dist/generated/themes/ListItem.css.js +1 -1
- package/dist/generated/themes/ListItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadCountrySelector.css.d.ts +1 -1
- package/dist/generated/themes/MastheadCountrySelector.css.js +1 -1
- package/dist/generated/themes/MastheadCountrySelector.css.js.map +1 -1
- package/dist/generated/themes/MastheadItem.css.d.ts +1 -1
- package/dist/generated/themes/MastheadItem.css.js +1 -1
- package/dist/generated/themes/MastheadItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadMenuItem.css.d.ts +1 -1
- package/dist/generated/themes/MastheadMenuItem.css.js +1 -1
- package/dist/generated/themes/MastheadMenuItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.d.ts +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.js +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.js.map +1 -1
- package/dist/generated/themes/Modal.css.d.ts +1 -1
- package/dist/generated/themes/Modal.css.js +1 -1
- package/dist/generated/themes/Modal.css.js.map +1 -1
- package/dist/generated/themes/PromoTile.css.d.ts +1 -1
- package/dist/generated/themes/PromoTile.css.js +1 -1
- package/dist/generated/themes/PromoTile.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/ReviewItem.css.d.ts +1 -1
- package/dist/generated/themes/ReviewItem.css.js +1 -1
- package/dist/generated/themes/ReviewItem.css.js.map +1 -1
- package/dist/generated/themes/SearchableList.css.d.ts +1 -1
- package/dist/generated/themes/SearchableList.css.js +1 -1
- package/dist/generated/themes/SearchableList.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 +6 -0
- package/dist/messagebundle_en.properties +2 -0
- package/dist/types/SearchableListBase.d.ts +1 -0
- package/dist/types/SearchableListBase.js.map +1 -1
- package/dist/vscode.html-custom-data.json +153 -13
- package/dist/web-types.json +336 -12
- package/package.json +1 -1
- package/src/Avatar.ts +9 -0
- package/src/FilterMenu.ts +4 -0
- package/src/ImageGridTickerTemplate.tsx +3 -1
- package/src/List.ts +48 -11
- package/src/ListGroupHeader.hbs +130 -15
- package/src/ListGroupHeader.ts +31 -1
- package/src/ListGroupHeaderBase.ts +1 -1
- package/src/ListItem.hbs +15 -0
- package/src/ListItem.ts +1 -1
- package/src/ListItemBase.ts +107 -1
- package/src/MastheadCountrySelector.hbs +2 -1
- package/src/MastheadCountrySelector.ts +36 -6
- package/src/MastheadItem.hbs +31 -22
- package/src/MastheadItem.ts +20 -18
- package/src/MastheadMenu.ts +10 -9
- package/src/MastheadMobileMenu.hbs +5 -5
- package/src/MessageStrip.ts +19 -1
- package/src/MessageStripTemplate.tsx +1 -0
- package/src/Pagination.ts +1 -1
- package/src/PromoTile.ts +17 -10
- package/src/PromoTileTemplate.tsx +18 -14
- package/src/ReviewItem.ts +45 -35
- package/src/ReviewItemTemplate.tsx +16 -14
- package/src/SearchableListBase.hbs +3 -0
- package/src/SearchableListBase.ts +53 -2
- package/src/SelectBase.ts +1 -1
- package/src/SelectBox.ts +0 -1
- package/src/TabNavigation.ts +3 -10
- package/src/Tag.ts +10 -2
- package/src/TagTemplate.tsx +4 -0
- package/src/TextField.ts +1 -1
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/templates/ListGroupHeaderTemplate.lit.ts +21 -10
- package/src/generated/templates/ListItemTemplate.lit.ts +21 -19
- package/src/generated/templates/MastheadCountrySelectorTemplate.lit.ts +2 -2
- package/src/generated/templates/MastheadItemTemplate.lit.ts +33 -25
- package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +5 -5
- package/src/generated/templates/SearchableListBaseTemplate.lit.ts +1 -1
- package/src/generated/themes/Button.css.ts +1 -1
- package/src/generated/themes/FilterMenu.css.ts +1 -1
- package/src/generated/themes/ImageGridTicker.css.ts +1 -1
- package/src/generated/themes/ListGroupHeader.css.ts +1 -1
- package/src/generated/themes/ListItem.css.ts +1 -1
- package/src/generated/themes/MastheadCountrySelector.css.ts +1 -1
- package/src/generated/themes/MastheadItem.css.ts +1 -1
- package/src/generated/themes/MastheadMenuItem.css.ts +1 -1
- package/src/generated/themes/MastheadProfileMenu.css.ts +1 -1
- package/src/generated/themes/Modal.css.ts +1 -1
- package/src/generated/themes/PromoTile.css.ts +1 -1
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/ReviewItem.css.ts +1 -1
- package/src/generated/themes/SearchableList.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/i18n/messagebundle.properties +6 -0
- package/src/i18n/messagebundle_en.properties +2 -0
- package/src/themes/Button.css +9 -20
- package/src/themes/FilterMenu.css +2 -2
- package/src/themes/ImageGridTicker.css +2 -26
- package/src/themes/ListGroupHeader.css +103 -8
- package/src/themes/ListItem.css +68 -15
- package/src/themes/MastheadCountrySelector.css +6 -0
- package/src/themes/MastheadItem.css +31 -3
- package/src/themes/MastheadMenuItem.css +8 -2
- package/src/themes/MastheadProfileMenu.css +3 -9
- package/src/themes/Modal.css +2 -1
- package/src/themes/PromoTile.css +4 -0
- package/src/themes/ReviewItem.css +18 -1
- package/src/themes/SearchableList.css +1 -1
- package/src/types/SearchableListBase.ts +1 -0
- package/dist/assets/messagebundle_en-DfoXjU7o.js +0 -1
|
@@ -68,6 +68,30 @@ const filterMenuGroup = <><UDExFilterMenu
|
|
|
68
68
|
<a id="next-focus" href="#">Next focus</a>
|
|
69
69
|
</>
|
|
70
70
|
|
|
71
|
+
const filterMenuGroupCollapsible = <UDExFilterMenu
|
|
72
|
+
id="filter-menu-group-with-search"
|
|
73
|
+
disable-target-overlap="true"
|
|
74
|
+
badge-value="2"
|
|
75
|
+
mode={UDExListMode.MultiSelect}
|
|
76
|
+
filter-name="Filter Name">
|
|
77
|
+
<UDExFilterMenuGroupHeader collapsible collapsed label="Programming Languages" supporting-text="Digital Builders">
|
|
78
|
+
<UDExFilterMenuItem label="JavaScript" supporting-text="Frontend web development"></UDExFilterMenuItem>
|
|
79
|
+
<UDExFilterMenuItem label="Python" supporting-text="Used in data analysis"></UDExFilterMenuItem>
|
|
80
|
+
<UDExFilterMenuItem label="Java" supporting-text="Building large-scale applications"></UDExFilterMenuItem>
|
|
81
|
+
<UDExFilterMenuItem label="Swift" supporting-text="iOS app development"></UDExFilterMenuItem>
|
|
82
|
+
<UDExFilterMenuItem label="C#" supporting-text="Object-oriented language"></UDExFilterMenuItem>
|
|
83
|
+
<UDExFilterMenuItem label="Perl" supporting-text="General-purpose scripting language"></UDExFilterMenuItem>
|
|
84
|
+
<UDExFilterMenuItem label="Rust" supporting-text="Focused on safety and speed"></UDExFilterMenuItem>
|
|
85
|
+
<UDExFilterMenuItem label="PHP" supporting-text="Server-side scripting language"></UDExFilterMenuItem>
|
|
86
|
+
<UDExFilterMenuItem label="Go" supporting-text="Statically typed language"></UDExFilterMenuItem>
|
|
87
|
+
<UDExFilterMenuItem label="Kotlin" supporting-text="For Android development"></UDExFilterMenuItem>
|
|
88
|
+
<UDExFilterMenuItem label="TypeScript" supporting-text="Super set of JS with static typing"></UDExFilterMenuItem>
|
|
89
|
+
<UDExFilterMenuItem label="Ruby" supporting-text="Readable and easy-to-use"></UDExFilterMenuItem>
|
|
90
|
+
<UDExFilterMenuItem label="C++" supporting-text="Efficient and flexible language"></UDExFilterMenuItem>
|
|
91
|
+
<UDExFilterMenuItem label="R" supporting-text="Language for statistical computing"></UDExFilterMenuItem>
|
|
92
|
+
</UDExFilterMenuGroupHeader>
|
|
93
|
+
</UDExFilterMenu>
|
|
94
|
+
|
|
71
95
|
const filterMenuRadioGroup = <UDExFilterMenu
|
|
72
96
|
id="filter-menu-radio-group"
|
|
73
97
|
disable-target-overlap="true"
|
|
@@ -77,7 +101,7 @@ const filterMenuRadioGroup = <UDExFilterMenu
|
|
|
77
101
|
<UDExFilterMenuItem label="Python"></UDExFilterMenuItem>
|
|
78
102
|
<UDExFilterMenuItem label="Node.js"></UDExFilterMenuItem>
|
|
79
103
|
</UDExFilterMenuGroupHeader>
|
|
80
|
-
<UDExFilterMenuGroupHeader label="Programming Languages">
|
|
104
|
+
<UDExFilterMenuGroupHeader label="Programming Languages" collapsible>
|
|
81
105
|
<UDExFilterMenuItem label="JavaScript" supporting-text="Frontend web development"></UDExFilterMenuItem>
|
|
82
106
|
<UDExFilterMenuItem label="Python" supporting-text="Used in data analysis"></UDExFilterMenuItem>
|
|
83
107
|
<UDExFilterMenuItem label="Java" supporting-text="Building large-scale applications"></UDExFilterMenuItem>
|
|
@@ -338,6 +362,20 @@ describe("Filter Menu component", () => {
|
|
|
338
362
|
.find("udex-list-group-header")
|
|
339
363
|
.should("have.attr", "selected")
|
|
340
364
|
});
|
|
365
|
+
|
|
366
|
+
it('MultiSelect mode - expand collapsed items to show search result', () => {
|
|
367
|
+
cy.mount(filterMenuGroupCollapsible);
|
|
368
|
+
cy.get("[udex-filter-menu]").shadow().find(".udex-filter-menu__trigger").click();
|
|
369
|
+
|
|
370
|
+
cy.get("[udex-filter-menu]")
|
|
371
|
+
.shadow().find("[udex-search]")
|
|
372
|
+
.shadow().find(".udex-search__field")
|
|
373
|
+
.click().type("java");
|
|
374
|
+
|
|
375
|
+
cy.get("[udex-filter-menu]").shadow()
|
|
376
|
+
.find("udex-list-item").eq(0).shadow()
|
|
377
|
+
.find(".udex-list__item").should("not.have.attr", "collapsed");
|
|
378
|
+
})
|
|
341
379
|
});
|
|
342
380
|
|
|
343
381
|
describe("Filter Menu group", () => {
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { UDExList, UDExListGroupHeader, UDExListItem } from "../support/component-imports.js";
|
|
2
|
+
|
|
3
|
+
const collapsibleList = <UDExList id="list-group-header-collapsible" mode="MultiSelect">
|
|
4
|
+
<UDExListGroupHeader collapsible id="group-header-collapsible" supporting-text="Supporting text" label="Group Header">
|
|
5
|
+
<UDExListItem>List Item1</UDExListItem>
|
|
6
|
+
<UDExListItem>List Item2</UDExListItem>
|
|
7
|
+
</UDExListGroupHeader>
|
|
8
|
+
<UDExListGroupHeader collapsible collapsed id="group-header-collapsible-collapsed" supporting-text="Supporting text" label="Group Header">
|
|
9
|
+
<UDExListItem>List Item1</UDExListItem>
|
|
10
|
+
<UDExListItem>List Item2</UDExListItem>
|
|
11
|
+
</UDExListGroupHeader>
|
|
12
|
+
</UDExList>;
|
|
13
|
+
|
|
14
|
+
const collapsibleListSingleSelect = <UDExList id="list-group-header-collapsible" mode="SingleSelect">
|
|
15
|
+
<UDExListGroupHeader collapsible id="group-header-collapsible" supporting-text="Supporting text" label="Group Header">
|
|
16
|
+
<UDExListItem>List Item1</UDExListItem>
|
|
17
|
+
<UDExListItem>List Item2</UDExListItem>
|
|
18
|
+
</UDExListGroupHeader>
|
|
19
|
+
<UDExListGroupHeader collapsible collapsed id="group-header-collapsible-collapsed" supporting-text="Supporting text" label="Group Header">
|
|
20
|
+
<UDExListItem>List Item1</UDExListItem>
|
|
21
|
+
<UDExListItem>List Item2</UDExListItem>
|
|
22
|
+
</UDExListGroupHeader>
|
|
23
|
+
</UDExList>;
|
|
24
|
+
|
|
25
|
+
const collapsibleListSingleContent = <UDExList id="list-group-header-collapsible" mode="SingleContent">
|
|
26
|
+
<UDExListGroupHeader collapsible id="group-header-collapsible" supporting-text="Supporting text" label="Group Header">
|
|
27
|
+
<UDExListItem>List Item1</UDExListItem>
|
|
28
|
+
<UDExListItem>List Item2</UDExListItem>
|
|
29
|
+
</UDExListGroupHeader>
|
|
30
|
+
<UDExListGroupHeader collapsible collapsed id="group-header-collapsible-collapsed" supporting-text="Supporting text" label="Group Header">
|
|
31
|
+
<UDExListItem>List Item1</UDExListItem>
|
|
32
|
+
<UDExListItem>List Item2</UDExListItem>
|
|
33
|
+
</UDExListGroupHeader>
|
|
34
|
+
</UDExList>;
|
|
35
|
+
|
|
36
|
+
const collapsibleListRadioGroup = <UDExList id="list-group-header-collapsible" mode="RadioGroup">
|
|
37
|
+
<UDExListGroupHeader collapsible id="group-header-collapsible" supporting-text="Supporting text" label="Group Header">
|
|
38
|
+
<UDExListItem>List Item1</UDExListItem>
|
|
39
|
+
<UDExListItem>List Item2</UDExListItem>
|
|
40
|
+
</UDExListGroupHeader>
|
|
41
|
+
<UDExListGroupHeader collapsible collapsed id="group-header-collapsible-collapsed" supporting-text="Supporting text" label="Group Header">
|
|
42
|
+
<UDExListItem>List Item1</UDExListItem>
|
|
43
|
+
<UDExListItem>List Item2</UDExListItem>
|
|
44
|
+
</UDExListGroupHeader>
|
|
45
|
+
</UDExList>;
|
|
46
|
+
|
|
47
|
+
describe("List component - collapsible group header", () => {
|
|
48
|
+
it("MultiSelect - collapse and expand the group when pressing arrow keys on grouping header", () => {
|
|
49
|
+
cy.mount(collapsibleList);
|
|
50
|
+
cy.get("#group-header-collapsible").shadow().find(".udex-list__group-header").as("grouping-header");
|
|
51
|
+
cy.get("@grouping-header").shadow().find('.udex-list__item').realClick();
|
|
52
|
+
cy.get("@grouping-header").should("have.attr", "focused", "");
|
|
53
|
+
|
|
54
|
+
cy.get("@grouping-header").realPress("ArrowLeft")
|
|
55
|
+
.then(() => {
|
|
56
|
+
cy.get("@grouping-header").should("have.attr", "collapsed", "");
|
|
57
|
+
cy.get("#group-header-collapsible").find("udex-list-item").eq(0).should("have.attr", "collapsed", "");
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
cy.get("@grouping-header").realPress("ArrowRight")
|
|
61
|
+
.then(() => {
|
|
62
|
+
cy.get("@grouping-header").should("not.have.attr", "collapsed");
|
|
63
|
+
cy.get("#group-header-collapsible").find("udex-list-item").eq(0).should("not.have.attr", "collapsed", "");
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
it("MultiSelect - collapses the group when clicking on grouping header arrow icon", () => {
|
|
68
|
+
cy.mount(collapsibleList);
|
|
69
|
+
cy.get("#group-header-collapsible").shadow().find(".udex-list__group-header").as("grouping-header");
|
|
70
|
+
// First click to collapse
|
|
71
|
+
cy.get("@grouping-header").shadow().find('.udex-list__group-heading__icon').realClick();
|
|
72
|
+
cy.get("@grouping-header").should("have.attr", "collapsed", "");
|
|
73
|
+
cy.get("#group-header-collapsible").find("udex-list-item").eq(0).should("have.attr", "collapsed", "");
|
|
74
|
+
|
|
75
|
+
// Second click to expand
|
|
76
|
+
cy.get("@grouping-header").shadow().find('.udex-list__group-heading__icon').realClick();
|
|
77
|
+
cy.get("@grouping-header").should("not.have.attr", "collapsed", "");
|
|
78
|
+
cy.get("#group-header-collapsible").find("udex-list-item").eq(0).should("not.have.attr", "collapsed", "");
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
it("MultiSelect - focus on next grouping header on arrow down when previous grouping header is collapsed", () => {
|
|
82
|
+
cy.mount(collapsibleList);
|
|
83
|
+
cy.get("#group-header-collapsible-collapsed").shadow().find(".udex-list__group-header").as("grouping-header");
|
|
84
|
+
cy.get("@grouping-header").shadow().find('.udex-list__item').realClick();
|
|
85
|
+
cy.get("@grouping-header").should("have.attr", "focused", "");
|
|
86
|
+
|
|
87
|
+
cy.get("@grouping-header").realPress("ArrowDown")
|
|
88
|
+
.then(() => {
|
|
89
|
+
cy.get("#group-header-collapsible").shadow().find(".udex-list__group-header").should("have.attr", "focused", "");
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
it("SingleSelect - collapse and expand the group when pressing arrow keys on grouping header", () => {
|
|
94
|
+
cy.mount(collapsibleListSingleSelect);
|
|
95
|
+
cy.get("#group-header-collapsible").shadow().find(".udex-list__group-header-wrap").as("grouping-header");
|
|
96
|
+
cy.get("@grouping-header").realClick();
|
|
97
|
+
|
|
98
|
+
cy.get("@grouping-header").realPress("ArrowLeft")
|
|
99
|
+
.then(() => {
|
|
100
|
+
cy.get("#group-header-collapsible").should("have.attr", "collapsed", "");
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
it("SingleSelect - collapses the group when clicking on grouping header arrow icon", () => {
|
|
105
|
+
cy.mount(collapsibleListSingleSelect);
|
|
106
|
+
cy.get("#group-header-collapsible").shadow().find(".udex-list__group-header-wrap").as("grouping-header");
|
|
107
|
+
// First click to collapse
|
|
108
|
+
cy.get("@grouping-header").find('.udex-list__group-heading__icon').realClick();
|
|
109
|
+
cy.get("#group-header-collapsible").should("have.attr", "collapsed", "");
|
|
110
|
+
|
|
111
|
+
// Second click to expand
|
|
112
|
+
cy.get("@grouping-header").find('.udex-list__group-heading__icon').realClick();
|
|
113
|
+
cy.get("#group-header-collapsible").should("not.have.attr", "collapsed", "");
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
it("SingleContent - collapse and expand the group when pressing arrow keys on grouping header", () => {
|
|
117
|
+
cy.mount(collapsibleListSingleContent);
|
|
118
|
+
cy.get("#group-header-collapsible").shadow().find(".udex-list__group-header-wrap").as("grouping-header");
|
|
119
|
+
cy.get("@grouping-header").realClick();
|
|
120
|
+
|
|
121
|
+
cy.get("@grouping-header").realPress("ArrowLeft")
|
|
122
|
+
.then(() => {
|
|
123
|
+
cy.get("#group-header-collapsible").should("have.attr", "collapsed", "");
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
cy.get("@grouping-header").realPress("ArrowRight")
|
|
127
|
+
.then(() => {
|
|
128
|
+
cy.get("#group-header-collapsible").should("not.have.attr", "collapsed", "");
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
it("SingleContent - collapses the group when clicking on grouping header arrow icon", () => {
|
|
133
|
+
cy.mount(collapsibleListSingleContent);
|
|
134
|
+
cy.get("#group-header-collapsible").shadow().find(".udex-list__group-header-wrap").as("grouping-header");
|
|
135
|
+
// First click to collapse
|
|
136
|
+
cy.get("@grouping-header").find('.udex-list__group-heading__icon').realClick();
|
|
137
|
+
cy.get("#group-header-collapsible").should("have.attr", "collapsed", "");
|
|
138
|
+
|
|
139
|
+
// Second click to expand
|
|
140
|
+
cy.get("@grouping-header").find('.udex-list__group-heading__icon').realClick();
|
|
141
|
+
cy.get("#group-header-collapsible").should("not.have.attr", "collapsed", "");
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
it("RadioGroup - collapse and expand the group when pressing arrow keys on grouping header", () => {
|
|
145
|
+
cy.mount(collapsibleListRadioGroup);
|
|
146
|
+
cy.get("#group-header-collapsible").shadow().find(".udex-list__group-header-wrap").as("grouping-header");
|
|
147
|
+
cy.get("@grouping-header").realClick();
|
|
148
|
+
|
|
149
|
+
cy.get("@grouping-header").realPress("ArrowLeft")
|
|
150
|
+
.then(() => {
|
|
151
|
+
cy.get("#group-header-collapsible").should("have.attr", "collapsed", "");
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
cy.get("@grouping-header").realPress("ArrowRight")
|
|
155
|
+
.then(() => {
|
|
156
|
+
cy.get("#group-header-collapsible").should("not.have.attr", "collapsed", "");
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
it("RadioGroup - collapses the group when clicking on grouping header arrow icon", () => {
|
|
161
|
+
cy.mount(collapsibleListRadioGroup);
|
|
162
|
+
cy.get("#group-header-collapsible").shadow().find(".udex-list__group-header-wrap").as("grouping-header");
|
|
163
|
+
// First click to collapse
|
|
164
|
+
cy.get("@grouping-header").find('.udex-list__group-heading__icon').realClick();
|
|
165
|
+
cy.get("#group-header-collapsible").should("have.attr", "collapsed", "");
|
|
166
|
+
|
|
167
|
+
// Second click to expand
|
|
168
|
+
cy.get("@grouping-header").find('.udex-list__group-heading__icon').realClick();
|
|
169
|
+
cy.get("#group-header-collapsible").should("not.have.attr", "collapsed", "");
|
|
170
|
+
});
|
|
171
|
+
});
|
|
@@ -14,6 +14,14 @@ const iconPromoTile = <UDExPromoTile icon={iconName} image-label={imageLabel}>Te
|
|
|
14
14
|
const logoPromoTile = <UDExPromoTile logoUrl={logoUrl} image-label={imageLabel}>Text</UDExPromoTile>;
|
|
15
15
|
const buttonPromoTile = <UDExPromoTile button={buttonLabel} button-design={design}>Text</UDExPromoTile>;
|
|
16
16
|
const horizontalPromoTile = <UDExPromoTile orientation="Horizontal" button={buttonLabel}>Text</UDExPromoTile>;
|
|
17
|
+
const pictogramPromoTile = <UDExPromoTile button={buttonLabel}>
|
|
18
|
+
Text
|
|
19
|
+
<img
|
|
20
|
+
alt="John Ford avatar"
|
|
21
|
+
slot="pictogram"
|
|
22
|
+
src="https://cdn.udex.services.sap.com/dds/design-tokens/assets/logos/sap-logo.svg"
|
|
23
|
+
/>
|
|
24
|
+
</UDExPromoTile>;
|
|
17
25
|
const darkPromoTile = <UDExPromoTile color-scheme={colorScheme} button={buttonLabel}>Text</UDExPromoTile>;
|
|
18
26
|
|
|
19
27
|
describe("Promo Tile", () => {
|
|
@@ -22,6 +30,12 @@ describe("Promo Tile", () => {
|
|
|
22
30
|
cy.get("[udex-promo-tile]").shadow().find(".udex-promo-tile__container").should("be.visible");
|
|
23
31
|
});
|
|
24
32
|
|
|
33
|
+
it("renders promo tile with custom pictogram", () => {
|
|
34
|
+
cy.mount(pictogramPromoTile);
|
|
35
|
+
cy.get("[udex-promo-tile]").shadow().find("slot[name='pictogram']").should("exist");
|
|
36
|
+
cy.get("[udex-promo-tile]").find("img[slot='pictogram']").should("have.attr", "src", "https://cdn.udex.services.sap.com/dds/design-tokens/assets/logos/sap-logo.svg");
|
|
37
|
+
});
|
|
38
|
+
|
|
25
39
|
it("renders promo tile with default classes", () => {
|
|
26
40
|
cy.mount(promoTile)
|
|
27
41
|
cy.get("[udex-promo-tile]").shadow().find(".udex-promo-tile__container").should("have.class", "udex-promo-tile--vertical");
|
|
@@ -37,7 +51,7 @@ describe("Promo Tile", () => {
|
|
|
37
51
|
cy.mount(promoTile)
|
|
38
52
|
cy.get("[udex-promo-tile]").shadow().find(".udex-promo-tile__footer").should("not.exist");
|
|
39
53
|
});
|
|
40
|
-
|
|
54
|
+
|
|
41
55
|
it("renders promo tile in horizontal orientation", () => {
|
|
42
56
|
cy.mount(horizontalPromoTile)
|
|
43
57
|
cy.get("[udex-promo-tile]").shadow().find(".udex-promo-tile__container").should("have.class", "udex-promo-tile--horizontal");
|
|
@@ -121,4 +135,4 @@ describe("Promo Tile - Mobile tests", () => {
|
|
|
121
135
|
expect(tileStyles.flexDirection).eqls("column");
|
|
122
136
|
})
|
|
123
137
|
});
|
|
124
|
-
});
|
|
138
|
+
});
|
|
@@ -4,7 +4,9 @@ const defaultReviewItem = <UDExReviewItem
|
|
|
4
4
|
id="review-item"
|
|
5
5
|
rating={4}
|
|
6
6
|
reviewTitle="Review title"
|
|
7
|
-
text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris tincidunt mauris id aliquet consectetur. Nulla euismod ligula id ante feugiat ornare. Mauris enim velit, sodales eget lectus at, tristique condimentum sapien. Integer quam lacus, faucibus in lacus ut, ullamcorper dictum lacus. In ac lectus congue, blandit quam non, congue ante. Suspendisse sem mauris, tempor dignissim nisl facilisis, vulputate tincidunt turpis. In egestas nisl ut sollicitudin rutrum.
|
|
7
|
+
text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris tincidunt mauris id aliquet consectetur. Nulla euismod ligula id ante feugiat ornare. Mauris enim velit, sodales eget lectus at, tristique condimentum sapien. Integer quam lacus, faucibus in lacus ut, ullamcorper dictum lacus. In ac lectus congue, blandit quam non, congue ante. Suspendisse sem mauris, tempor dignissim nisl facilisis, vulputate tincidunt turpis. In egestas nisl ut sollicitudin rutrum.
|
|
8
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris tincidunt mauris id aliquet consectetur. Nulla euismod ligula id ante feugiat ornare. Mauris enim velit, sodales eget lectus at, tristique condimentum sapien. Integer quam lacus, faucibus in lacus ut, ullamcorper dictum lacus. In ac lectus congue, blandit quam non, congue ante. Suspendisse sem mauris, tempor dignissim nisl facilisis, vulputate tincidunt turpis. In egestas nisl ut sollicitudin rutrum.
|
|
9
|
+
">
|
|
8
10
|
<span slot="date">Jan 7, 2025</span>
|
|
9
11
|
<span slot="author">John Ford, Job Title, Company, Inc.</span>
|
|
10
12
|
</UDExReviewItem>
|
|
@@ -19,6 +21,33 @@ const reviewItemWithTopRating = <UDExReviewItem
|
|
|
19
21
|
<span slot="author">John Ford, Job Title, Company, Inc.</span>
|
|
20
22
|
</UDExReviewItem>
|
|
21
23
|
|
|
24
|
+
const reviewItemWithTCustomContent = <UDExReviewItem
|
|
25
|
+
id="review-item-content"
|
|
26
|
+
rating={4}
|
|
27
|
+
reviewTitle="Review title"
|
|
28
|
+
showRatingTop>
|
|
29
|
+
<div slot="content">
|
|
30
|
+
<div class="truncatable-content">
|
|
31
|
+
<h4>AI agents that truly understand your business</h4>
|
|
32
|
+
<p>Amplify the impact of all your teams with Joule's AI agents that use their unique understanding
|
|
33
|
+
of your business context to offer expertise to perform complex processes across your business.
|
|
34
|
+
Reliable insights and the right business context enable Joule to act as an AI agent orchestrator,
|
|
35
|
+
triggering more impactful actions throughout your teams' workflows. And with SAP's agent builder,
|
|
36
|
+
you can scale endlessly as teams create and deploy custom AI agents tailored to their business needs.</p>
|
|
37
|
+
<h4>AI agents that truly understand your business</h4>
|
|
38
|
+
<p>SAP Business Data Cloud brings together the world's most comprehensive and mission-critical
|
|
39
|
+
data with the leading data platform to deliver transformational insights across all lines of business.</p>
|
|
40
|
+
<h4>Connect processes and empower teams with modular Cloud ERP applications</h4>
|
|
41
|
+
<p>Seamlessly connect your entire business value chain, from order to cash, procure to pay,
|
|
42
|
+
design to operate, hire to retire, and record to report, all tailored for industry nuances.
|
|
43
|
+
Power end-to-end processes with the most comprehensive and integrated portfolio of applications
|
|
44
|
+
with embedded AI capabilities.</p>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
<span slot="date">Jan 7, 2025</span>
|
|
48
|
+
<span slot="author">John Ford, Job Title, Company, Inc.</span>
|
|
49
|
+
</UDExReviewItem>
|
|
50
|
+
|
|
22
51
|
|
|
23
52
|
describe("ReviewItem", () => {
|
|
24
53
|
it("renders correctly", () => {
|
|
@@ -27,47 +56,52 @@ describe("ReviewItem", () => {
|
|
|
27
56
|
});
|
|
28
57
|
|
|
29
58
|
it("shows review expander", () => {
|
|
30
|
-
cy.mount(defaultReviewItem)
|
|
59
|
+
cy.mount(defaultReviewItem);
|
|
31
60
|
cy.get("#review-item").shadow().find("#reviewExpander").should("be.visible")
|
|
32
61
|
});
|
|
33
62
|
|
|
34
63
|
it("review expander has correct text before clicking", () => {
|
|
35
|
-
cy.mount(defaultReviewItem)
|
|
36
|
-
const SUPPORTING_TEXT_TEST_VALUE = "
|
|
64
|
+
cy.mount(defaultReviewItem);
|
|
65
|
+
const SUPPORTING_TEXT_TEST_VALUE = "Show more";
|
|
37
66
|
cy.get("#review-item").shadow().find("#reviewExpander").should("have.text", SUPPORTING_TEXT_TEST_VALUE)
|
|
38
67
|
});
|
|
39
68
|
|
|
40
69
|
it("renders rating on top when specified", () => {
|
|
41
|
-
cy.mount(reviewItemWithTopRating)
|
|
70
|
+
cy.mount(reviewItemWithTopRating);
|
|
42
71
|
cy.get("#review-item-top").shadow().find(".udex-review-item__rating-top").should("be.visible")
|
|
43
72
|
});
|
|
44
73
|
|
|
74
|
+
it("renders custom content", () => {
|
|
75
|
+
cy.mount(reviewItemWithTCustomContent);
|
|
76
|
+
cy.get("#review-item-content").find(".truncatable-content").should("be.visible")
|
|
77
|
+
});
|
|
78
|
+
|
|
45
79
|
it("renders rating on top on mobile", () => {
|
|
46
|
-
cy.viewport(640, 640)
|
|
47
|
-
cy.mount(defaultReviewItem)
|
|
80
|
+
cy.viewport(640, 640);
|
|
81
|
+
cy.mount(defaultReviewItem);
|
|
48
82
|
cy.get("#review-item").shadow().find(".udex-review-item").then($container => {
|
|
49
|
-
const styles = window.getComputedStyle($container[0])
|
|
50
|
-
expect(styles.flexDirection).eqls("column")
|
|
83
|
+
const styles = window.getComputedStyle($container[0]);
|
|
84
|
+
expect(styles.flexDirection).eqls("column");
|
|
51
85
|
})
|
|
52
86
|
});
|
|
53
87
|
|
|
54
88
|
it("review expander has correct text after clicking on expander", () => {
|
|
55
|
-
cy.mount(defaultReviewItem)
|
|
56
|
-
const SUPPORTING_TEXT_TEST_VALUE = "
|
|
89
|
+
cy.mount(defaultReviewItem);
|
|
90
|
+
const SUPPORTING_TEXT_TEST_VALUE = "Show less";
|
|
57
91
|
cy.get("#review-item").shadow().find("#reviewExpander").click().should("have.text", SUPPORTING_TEXT_TEST_VALUE)
|
|
58
92
|
});
|
|
59
93
|
|
|
60
94
|
it("has maximum rating when the upper limit is exceeded", () => {
|
|
61
95
|
cy.mount(<UDExReviewItem rating={500} text="Lorem ipsum dolor sit amet, consectetur adipiscing elit"></UDExReviewItem>)
|
|
62
96
|
cy.get("[udex-review-item]").shadow().find("udex-rating-indicator").then($rating => {
|
|
63
|
-
expect($rating.attr("value")).eqls("5")
|
|
97
|
+
expect($rating.attr("value")).eqls("5");
|
|
64
98
|
})
|
|
65
99
|
});
|
|
66
100
|
|
|
67
101
|
it("has minimum rating when the lower limit is exceeded", () => {
|
|
68
102
|
cy.mount(<UDExReviewItem rating={-500} text="Lorem ipsum dolor sit amet, consectetur adipiscing elit"></UDExReviewItem>)
|
|
69
103
|
cy.get("[udex-review-item]").shadow().find("udex-rating-indicator").then($rating => {
|
|
70
|
-
expect($rating.attr("value")).eqls("0")
|
|
104
|
+
expect($rating.attr("value")).eqls("0");
|
|
71
105
|
})
|
|
72
106
|
});
|
|
73
|
-
})
|
|
107
|
+
})
|
package/cypress/specs/Tag.cy.tsx
CHANGED
|
@@ -13,6 +13,7 @@ const readonlyTag = <UDExTag id="tag-readonly" text="Tag text" icon="accept" rea
|
|
|
13
13
|
const nonselectableTag = <UDExTag id="tag-nonselectable" text="Non selectable" non-selectable></UDExTag>
|
|
14
14
|
const nonselectableIconTag = <UDExTag id="tag-nonselectable-icon" text="Non selectable" icon="decline" non-selectable></UDExTag>
|
|
15
15
|
const linkTag = <UDExTag id="tag-link" text="SAP home page" href="https://sap.com"></UDExTag>
|
|
16
|
+
const nonInteractiveTag = <UDExTag id="tag-nonselectable" text="Non selectable" icon="decline" non-interactive></UDExTag>
|
|
16
17
|
|
|
17
18
|
describe("Tag", () => {
|
|
18
19
|
it("is rendered", () => {
|
|
@@ -115,6 +116,11 @@ describe("Tag", () => {
|
|
|
115
116
|
cy.get("#tag-nonselectable-icon").shadow().find(".udex-tag__btn-icon").click()
|
|
116
117
|
});
|
|
117
118
|
|
|
119
|
+
it("icon is not focusable when non-interactive attribute is set", () => {
|
|
120
|
+
cy.mount(nonInteractiveTag)
|
|
121
|
+
cy.get("#tag-nonselectable").shadow().find(".udex-tag__icon").should("have.attr", "mode", "Decorative")
|
|
122
|
+
});
|
|
123
|
+
|
|
118
124
|
it("tests if tag with link is correctly rendered", () => {
|
|
119
125
|
cy.mount(linkTag)
|
|
120
126
|
cy.get("#tag-link").shadow().find("a").should("be.visible")
|
|
@@ -31,6 +31,8 @@ import UDExInputGroup from "../../instrumented/InputGroup.js";
|
|
|
31
31
|
import UDExLink from "../../instrumented/Link.js";
|
|
32
32
|
import UDExLinkList from "../../instrumented/LinkList.js";
|
|
33
33
|
import UDExLinkListItem from "../../instrumented/LinkListItem.js";
|
|
34
|
+
import UDExList from "../../instrumented/List.js";
|
|
35
|
+
import UDExListGroupHeader from "../../instrumented/ListGroupHeader.js";
|
|
34
36
|
import UDExListItem from "../../instrumented/ListItem.js";
|
|
35
37
|
import UDExMastheadProfileMenu from "../../instrumented/MastheadProfileMenu.js";
|
|
36
38
|
import UDExMessageStrip from "../../instrumented/MessageStrip.js";
|
|
@@ -104,7 +106,9 @@ export {
|
|
|
104
106
|
UDExLink,
|
|
105
107
|
UDExLinkList,
|
|
106
108
|
UDExLinkListItem,
|
|
109
|
+
UDExList,
|
|
107
110
|
UDExListItem,
|
|
111
|
+
UDExListGroupHeader,
|
|
108
112
|
UDExMastheadProfileMenu,
|
|
109
113
|
UDExMessageStrip,
|
|
110
114
|
UDExPasswordField,
|
|
@@ -31,7 +31,9 @@ import UDExInputGroup from "../../src/InputGroup.js";
|
|
|
31
31
|
import UDExLink from "../../src/Link.js";
|
|
32
32
|
import UDExLinkList from "../../src/LinkList.js";
|
|
33
33
|
import UDExLinkListItem from "../../src/LinkListItem.js";
|
|
34
|
-
import
|
|
34
|
+
import UDExList from "../../instrumented/List.js";
|
|
35
|
+
import UDExListGroupHeader from "../../instrumented/ListGroupHeader.js";
|
|
36
|
+
import UDExListItem from "../../instrumented/ListItem.js";
|
|
35
37
|
import UDExMastheadProfileMenu from "../../src/MastheadProfileMenu.js";
|
|
36
38
|
import UDExMessageStrip from "../../src/MessageStrip.js";
|
|
37
39
|
import UDExPasswordField from "../../src/PasswordField.js";
|
|
@@ -106,7 +108,9 @@ export {
|
|
|
106
108
|
UDExLink,
|
|
107
109
|
UDExLinkList,
|
|
108
110
|
UDExLinkListItem,
|
|
111
|
+
UDExList,
|
|
109
112
|
UDExListItem,
|
|
113
|
+
UDExListGroupHeader,
|
|
110
114
|
UDExMastheadProfileMenu,
|
|
111
115
|
UDExMessageStrip,
|
|
112
116
|
UDExPasswordField,
|
package/dist/Avatar.d.ts
CHANGED
package/dist/Avatar.js
CHANGED
|
@@ -128,7 +128,9 @@ let UDExAvatar = UDExAvatar_1 = class UDExAvatar extends UI5Element {
|
|
|
128
128
|
e.stopPropagation();
|
|
129
129
|
if (this.interactive) {
|
|
130
130
|
this.fireDecoratorEvent("click");
|
|
131
|
+
return;
|
|
131
132
|
}
|
|
133
|
+
this.fireDecoratorEvent("click-default");
|
|
132
134
|
}
|
|
133
135
|
/**
|
|
134
136
|
* Returns the effective avatar size.
|
|
@@ -224,6 +226,13 @@ UDExAvatar = UDExAvatar_1 = __decorate([
|
|
|
224
226
|
*/
|
|
225
227
|
,
|
|
226
228
|
event("click", { bubbles: true })
|
|
229
|
+
/**
|
|
230
|
+
* Fires when the avatar is clicked.
|
|
231
|
+
*
|
|
232
|
+
* @public
|
|
233
|
+
*/
|
|
234
|
+
,
|
|
235
|
+
event("click-default", { bubbles: true })
|
|
227
236
|
], UDExAvatar);
|
|
228
237
|
UDExAvatar.define();
|
|
229
238
|
export default UDExAvatar;
|
package/dist/Avatar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../src/Avatar.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.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 { ATTENTION_BADGE, AVATAR_TEXT, DISABLED } from \"./generated/i18n/i18n-defaults.js\";\nimport type AvatarColorScheme from \"@ui5/webcomponents/dist/types/AvatarColorScheme.js\";\nimport translate from \"./utils/translate.js\";\n\n// Template\nimport AvatarTemplate from \"./AvatarTemplate.js\";\n\n// Styles\nimport AvatarCss from \"./generated/themes/Avatar.css.js\";\n\nexport enum UDExAvatarColorScheme {\n Mango = \"Mango\",\n Red = \"Red\",\n Raspberry = \"Raspberry\",\n Pink = \"Pink\",\n Indigo = \"Indigo\",\n Blue = \"Blue\",\n Teal = \"Teal\",\n Green = \"Green\",\n Grey = \"Grey\",\n Transparent = \"Transparent\",\n Neutral = \"Neutral\",\n}\n\nexport enum UDExAvatarShape {\n Circle = \"Circle\",\n Square = \"Square\",\n}\n\nexport enum UDExAvatarSize {\n XS = \"XS\",\n S = \"S\",\n M = \"M\",\n L = \"L\",\n XL = \"XL\",\n}\n\nconst UDExToUi5ColorSchemeMap = {\n Mango: \"Accent1\",\n Red: \"Accent2\",\n Raspberry: \"Accent3\",\n Pink: \"Accent4\",\n Indigo: \"Accent5\",\n Blue: \"Accent6\",\n Transparent: \"Accent6\",\n Neutral: \"Accent6\",\n Teal: \"Accent7\",\n Green: \"Accent8\",\n Grey: \"Accent10\",\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-avatar</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Avatar.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-avatar\",\n renderer: jsxRenderer,\n styles: AvatarCss,\n template: AvatarTemplate,\n})\n\n/**\n * Fires when the avatar is clicked.\n *\n * @public\n */\n@event(\"click\", { bubbles: true })\n\nclass UDExAvatar extends UI5Element {\n eventDetails!: {\n \"click\": void,\n };\n /**\n * Defines the displayed initials.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n initials: string = \"\";\n\n /**\n * Defines if the avatar is interactive (focusable and pressable).\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n interactive!: boolean;\n\n /**\n * Defines the text alternative of the component.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n accessibleName?: string;\n\n /**\n * Defines the design of the component.\n *\n * @default \"Blue\"\n * @public\n */\n @property()\n colorScheme: `${UDExAvatarColorScheme}` = UDExAvatarColorScheme.Blue;\n\n /**\n * Defines whether the component is disabled.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines the name of the fallback icon.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n fallbackIcon: string = \"\";\n\n /**\n * Defines the name of the UI5 Icon, that will be displayed.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n icon: string = \"\";\n\n /**\n * Defines the shape of the component.\n *\n * @default \"Circle\"\n * @public\n */\n @property()\n shape: `${UDExAvatarShape}` = UDExAvatarShape.Circle;\n\n /**\n * Defines predefined size of the component.\n *\n * @default \"S\"\n * @public\n */\n @property()\n size: `${UDExAvatarSize}` = UDExAvatarSize.S;\n\n /**\n * Defines the displaying attention badge.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n showAttentionBadge!: boolean;\n\n /**\n * Receives the desired <img> tag\n *\n * @slot image\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n image!: Array<HTMLElement>;\n\n /**\n * Defines the optional badge that will be used for visual affordance.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n badge!: Array<HTMLElement>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n onAfterRendering(): void {\n this.title = this.initials;\n }\n handleClick(e: Event) {\n e.stopPropagation();\n if (this.interactive) {\n this.fireDecoratorEvent(\"click\");\n }\n }\n\n /**\n * Returns the effective avatar size.\n * @default \"S\"\n * @private\n */\n get effectiveSize(): UDExAvatarSize {\n // we read the attribute, because the \"size\" property will always have a default value\n return this.getAttribute(\"size\") as UDExAvatarSize || this.size;\n }\n\n /**\n * Returns the effective background color.\n * @default \"Blue\"\n * @private\n */\n get effectiveBackgroundColor(): UDExAvatarColorScheme {\n // we read the attribute, because the \"background-color\" property will always have a default value\n return this.getAttribute(\"color-scheme\") as UDExAvatarColorScheme || this.colorScheme;\n }\n\n get getUDExAvatarColorScheme(): AvatarColorScheme {\n return UDExToUi5ColorSchemeMap[this.colorScheme] as AvatarColorScheme;\n }\n\n get imageSlot(): boolean {\n return !!this.image.length;\n }\n\n get badgeSlot(): boolean {\n return !!this.badge.length;\n }\n\n get udexAvatarClass(): string {\n let avatarClass = \"udex-avatar\";\n\n if (this.imageSlot) {\n avatarClass += \" udex-avatar--with-image\";\n }\n\n return avatarClass;\n }\n\n get avatarAccessibleName(): string {\n let accName = `${this.accessibleName ? this.accessibleName : `${translate(UDExAvatar, AVATAR_TEXT)} ${this.initials}`}`;\n accName += ` ${this.disabled ? translate(UDExAvatar, DISABLED) : \"\"}`;\n accName += ` ${this.showAttentionBadge ? translate(UDExAvatar, ATTENTION_BADGE) : \"\"}`;\n return accName;\n }\n}\n\nUDExAvatar.define();\n\nexport default UDExAvatar;\n"]}
|
|
1
|
+
{"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../src/Avatar.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.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 { ATTENTION_BADGE, AVATAR_TEXT, DISABLED } from \"./generated/i18n/i18n-defaults.js\";\nimport type AvatarColorScheme from \"@ui5/webcomponents/dist/types/AvatarColorScheme.js\";\nimport translate from \"./utils/translate.js\";\n\n// Template\nimport AvatarTemplate from \"./AvatarTemplate.js\";\n\n// Styles\nimport AvatarCss from \"./generated/themes/Avatar.css.js\";\n\nexport enum UDExAvatarColorScheme {\n Mango = \"Mango\",\n Red = \"Red\",\n Raspberry = \"Raspberry\",\n Pink = \"Pink\",\n Indigo = \"Indigo\",\n Blue = \"Blue\",\n Teal = \"Teal\",\n Green = \"Green\",\n Grey = \"Grey\",\n Transparent = \"Transparent\",\n Neutral = \"Neutral\",\n}\n\nexport enum UDExAvatarShape {\n Circle = \"Circle\",\n Square = \"Square\",\n}\n\nexport enum UDExAvatarSize {\n XS = \"XS\",\n S = \"S\",\n M = \"M\",\n L = \"L\",\n XL = \"XL\",\n}\n\nconst UDExToUi5ColorSchemeMap = {\n Mango: \"Accent1\",\n Red: \"Accent2\",\n Raspberry: \"Accent3\",\n Pink: \"Accent4\",\n Indigo: \"Accent5\",\n Blue: \"Accent6\",\n Transparent: \"Accent6\",\n Neutral: \"Accent6\",\n Teal: \"Accent7\",\n Green: \"Accent8\",\n Grey: \"Accent10\",\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-avatar</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Avatar.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-avatar\",\n renderer: jsxRenderer,\n styles: AvatarCss,\n template: AvatarTemplate,\n})\n\n/**\n * Fires when the avatar is clicked.\n *\n * @public\n */\n@event(\"click\", { bubbles: true })\n/**\n * Fires when the avatar is clicked.\n *\n * @public\n */\n@event(\"click-default\", { bubbles: true })\n\nclass UDExAvatar extends UI5Element {\n eventDetails!: {\n \"click\": void,\n \"click-default\": void,\n };\n /**\n * Defines the displayed initials.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n initials: string = \"\";\n\n /**\n * Defines if the avatar is interactive (focusable and pressable).\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n interactive!: boolean;\n\n /**\n * Defines the text alternative of the component.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n accessibleName?: string;\n\n /**\n * Defines the design of the component.\n *\n * @default \"Blue\"\n * @public\n */\n @property()\n colorScheme: `${UDExAvatarColorScheme}` = UDExAvatarColorScheme.Blue;\n\n /**\n * Defines whether the component is disabled.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines the name of the fallback icon.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n fallbackIcon: string = \"\";\n\n /**\n * Defines the name of the UI5 Icon, that will be displayed.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n icon: string = \"\";\n\n /**\n * Defines the shape of the component.\n *\n * @default \"Circle\"\n * @public\n */\n @property()\n shape: `${UDExAvatarShape}` = UDExAvatarShape.Circle;\n\n /**\n * Defines predefined size of the component.\n *\n * @default \"S\"\n * @public\n */\n @property()\n size: `${UDExAvatarSize}` = UDExAvatarSize.S;\n\n /**\n * Defines the displaying attention badge.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n showAttentionBadge!: boolean;\n\n /**\n * Receives the desired <img> tag\n *\n * @slot image\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n image!: Array<HTMLElement>;\n\n /**\n * Defines the optional badge that will be used for visual affordance.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n badge!: Array<HTMLElement>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n onAfterRendering(): void {\n this.title = this.initials;\n }\n handleClick(e: Event) {\n e.stopPropagation();\n if (this.interactive) {\n this.fireDecoratorEvent(\"click\");\n return;\n }\n this.fireDecoratorEvent(\"click-default\");\n }\n\n /**\n * Returns the effective avatar size.\n * @default \"S\"\n * @private\n */\n get effectiveSize(): UDExAvatarSize {\n // we read the attribute, because the \"size\" property will always have a default value\n return this.getAttribute(\"size\") as UDExAvatarSize || this.size;\n }\n\n /**\n * Returns the effective background color.\n * @default \"Blue\"\n * @private\n */\n get effectiveBackgroundColor(): UDExAvatarColorScheme {\n // we read the attribute, because the \"background-color\" property will always have a default value\n return this.getAttribute(\"color-scheme\") as UDExAvatarColorScheme || this.colorScheme;\n }\n\n get getUDExAvatarColorScheme(): AvatarColorScheme {\n return UDExToUi5ColorSchemeMap[this.colorScheme] as AvatarColorScheme;\n }\n\n get imageSlot(): boolean {\n return !!this.image.length;\n }\n\n get badgeSlot(): boolean {\n return !!this.badge.length;\n }\n\n get udexAvatarClass(): string {\n let avatarClass = \"udex-avatar\";\n\n if (this.imageSlot) {\n avatarClass += \" udex-avatar--with-image\";\n }\n\n return avatarClass;\n }\n\n get avatarAccessibleName(): string {\n let accName = `${this.accessibleName ? this.accessibleName : `${translate(UDExAvatar, AVATAR_TEXT)} ${this.initials}`}`;\n accName += ` ${this.disabled ? translate(UDExAvatar, DISABLED) : \"\"}`;\n accName += ` ${this.showAttentionBadge ? translate(UDExAvatar, ATTENTION_BADGE) : \"\"}`;\n return accName;\n }\n}\n\nUDExAvatar.define();\n\nexport default UDExAvatar;\n"]}
|
package/dist/FilterMenu.d.ts
CHANGED
package/dist/FilterMenu.js
CHANGED
|
@@ -270,6 +270,8 @@ let UDExFilterMenu = UDExFilterMenu_1 = class UDExFilterMenu extends UDExSearcha
|
|
|
270
270
|
id: item._id,
|
|
271
271
|
selected: item.selected,
|
|
272
272
|
indeterminate: item.indeterminate,
|
|
273
|
+
collapsed: item.collapsed,
|
|
274
|
+
_filtered: item._filtered,
|
|
273
275
|
};
|
|
274
276
|
const subItemsState = item.getItems().map(subItem => ({
|
|
275
277
|
id: subItem._id,
|