@sapudex/web-components 2.53.0 → 2.55.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/Breadcrumbs.cy.tsx +3 -1
- package/cypress/specs/FilterMenu.cy.tsx +68 -2
- package/cypress/specs/Footer.cy.tsx +59 -0
- package/cypress/specs/MediaPlayer.cy.tsx +58 -0
- package/cypress/specs/SecondaryNavigationDesktop.cy.tsx +2 -2
- package/cypress/specs/SelectBox.cy.tsx +117 -0
- package/dist/Accordion.js +1 -1
- package/dist/Accordion.js.map +1 -1
- package/dist/AccordionItem.js +1 -1
- package/dist/AccordionItem.js.map +1 -1
- package/dist/Avatar.d.ts +2 -2
- package/dist/Avatar.js +1 -1
- package/dist/Avatar.js.map +1 -1
- package/dist/Badge.js +1 -1
- package/dist/Badge.js.map +1 -1
- package/dist/Breadcrumbs.js +1 -1
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/BreadcrumbsTemplate.js +1 -1
- package/dist/BreadcrumbsTemplate.js.map +1 -1
- package/dist/Carousel.js +1 -1
- package/dist/Carousel.js.map +1 -1
- package/dist/Contact.js +1 -1
- package/dist/Contact.js.map +1 -1
- package/dist/ContactItem.js +1 -1
- package/dist/ContactItem.js.map +1 -1
- package/dist/Feed.d.ts +2 -1
- package/dist/Feed.js +1 -1
- package/dist/Feed.js.map +1 -1
- package/dist/FeedItem.d.ts +2 -1
- package/dist/FeedItem.js +1 -1
- package/dist/FeedItem.js.map +1 -1
- package/dist/FilterMenu.d.ts +1 -1
- package/dist/FilterMenu.js +6 -6
- package/dist/FilterMenu.js.map +1 -1
- package/dist/FilterMenuGroupHeader.js +1 -1
- package/dist/FilterMenuGroupHeader.js.map +1 -1
- package/dist/Footer.d.ts +22 -2
- package/dist/Footer.js +41 -4
- package/dist/Footer.js.map +1 -1
- package/dist/FooterTemplate.js +7 -2
- package/dist/FooterTemplate.js.map +1 -1
- package/dist/ImageGridCloud.js +1 -1
- package/dist/ImageGridCloud.js.map +1 -1
- package/dist/ImageGridTable.js +1 -1
- package/dist/ImageGridTable.js.map +1 -1
- package/dist/ImageGridTableItem.js +1 -1
- package/dist/ImageGridTableItem.js.map +1 -1
- package/dist/ImageGridTicker.js +1 -1
- package/dist/ImageGridTicker.js.map +1 -1
- package/dist/InputGroup.js +1 -1
- package/dist/InputGroup.js.map +1 -1
- package/dist/LinkList.js +1 -1
- package/dist/LinkList.js.map +1 -1
- package/dist/List.js +7 -7
- package/dist/List.js.map +1 -1
- package/dist/ListGroupHeader.js +12 -5
- package/dist/ListGroupHeader.js.map +1 -1
- package/dist/ListGroupHeaderBase.d.ts +1 -1
- package/dist/ListGroupHeaderBase.js +3 -3
- package/dist/ListGroupHeaderBase.js.map +1 -1
- package/dist/ListGroupHeaderTemplate.d.ts +2 -0
- package/dist/ListGroupHeaderTemplate.js +33 -0
- package/dist/ListGroupHeaderTemplate.js.map +1 -0
- package/dist/ListItem.d.ts +3 -3
- package/dist/ListItem.js +5 -4
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItemBase.d.ts +1 -0
- package/dist/ListItemBase.js +8 -4
- package/dist/ListItemBase.js.map +1 -1
- package/dist/ListItemTemplate.d.ts +2 -0
- package/dist/ListItemTemplate.js +18 -0
- package/dist/ListItemTemplate.js.map +1 -0
- package/dist/ListSelectAll.js +4 -5
- package/dist/ListSelectAll.js.map +1 -1
- package/dist/ListSelectAllTemplate.d.ts +2 -0
- package/dist/ListSelectAllTemplate.js +6 -0
- package/dist/ListSelectAllTemplate.js.map +1 -0
- package/dist/ListTemplate.d.ts +2 -0
- package/dist/ListTemplate.js +11 -0
- package/dist/ListTemplate.js.map +1 -0
- package/dist/MastheadItem.d.ts +3 -3
- package/dist/MastheadItem.js +1 -1
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadMobileMenu.d.ts +3 -3
- package/dist/MastheadMobileMenu.js +1 -1
- package/dist/MastheadMobileMenu.js.map +1 -1
- package/dist/MastheadProfileMenu.d.ts +3 -2
- package/dist/MastheadProfileMenu.js +1 -1
- package/dist/MastheadProfileMenu.js.map +1 -1
- package/dist/MastheadShell.d.ts +9 -9
- package/dist/MastheadShell.js +1 -1
- package/dist/MastheadShell.js.map +1 -1
- package/dist/MediaPlayer.d.ts +1 -1
- package/dist/MediaPlayer.js +11 -3
- package/dist/MediaPlayer.js.map +1 -1
- package/dist/MediaPlayerVimeo.d.ts +6 -0
- package/dist/MediaPlayerVimeo.js +27 -6
- package/dist/MediaPlayerVimeo.js.map +1 -1
- package/dist/MediaPlayerYoutube.d.ts +3 -0
- package/dist/MediaPlayerYoutube.js +24 -5
- package/dist/MediaPlayerYoutube.js.map +1 -1
- package/dist/MessageStrip.d.ts +2 -1
- package/dist/MessageStrip.js +1 -1
- package/dist/MessageStrip.js.map +1 -1
- package/dist/Modal.d.ts +2 -0
- package/dist/Modal.js +10 -3
- package/dist/Modal.js.map +1 -1
- package/dist/PromoTile.d.ts +2 -2
- package/dist/PromoTile.js +1 -1
- package/dist/PromoTile.js.map +1 -1
- package/dist/Quote.d.ts +4 -4
- package/dist/Quote.js +1 -1
- package/dist/Quote.js.map +1 -1
- package/dist/Review.d.ts +3 -3
- package/dist/Review.js +1 -1
- package/dist/Review.js.map +1 -1
- package/dist/ReviewItem.d.ts +4 -3
- package/dist/ReviewItem.js +1 -1
- package/dist/ReviewItem.js.map +1 -1
- package/dist/Search.js +1 -1
- package/dist/Search.js.map +1 -1
- package/dist/SearchableListBase.js +5 -1
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SecondaryNavigation.d.ts +3 -3
- package/dist/SecondaryNavigation.js +1 -1
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.d.ts +2 -1
- package/dist/SecondaryNavigationItem.js +1 -1
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SelectBase.js +1 -1
- package/dist/SelectBase.js.map +1 -1
- package/dist/SelectBox.js +31 -0
- package/dist/SelectBox.js.map +1 -1
- package/dist/SelectBoxGroupHeader.js +1 -1
- package/dist/SelectBoxGroupHeader.js.map +1 -1
- package/dist/SelectBoxItem.d.ts +3 -3
- package/dist/SelectBoxItem.js +1 -1
- package/dist/SelectBoxItem.js.map +1 -1
- package/dist/SelectBoxTemplate.js +2 -1
- package/dist/SelectBoxTemplate.js.map +1 -1
- package/dist/SideNavigationMobile.d.ts +2 -2
- package/dist/SideNavigationMobile.js +1 -1
- package/dist/SideNavigationMobile.js.map +1 -1
- package/dist/SocialMediaButton.js +1 -1
- package/dist/SocialMediaButton.js.map +1 -1
- package/dist/Tab.d.ts +2 -2
- package/dist/Tab.js +1 -1
- package/dist/Tab.js.map +1 -1
- package/dist/TabNavigation.d.ts +2 -2
- package/dist/TabNavigation.js +1 -1
- package/dist/TabNavigation.js.map +1 -1
- package/dist/Table.d.ts +5 -5
- package/dist/Table.js +1 -1
- package/dist/Table.js.map +1 -1
- package/dist/TableCellBase.js +1 -1
- package/dist/TableCellBase.js.map +1 -1
- package/dist/TableGroupRow.js +1 -1
- package/dist/TableGroupRow.js.map +1 -1
- package/dist/TableRowBase.js +1 -1
- package/dist/TableRowBase.js.map +1 -1
- package/dist/TagGroup.js +1 -1
- package/dist/TagGroup.js.map +1 -1
- package/dist/Tile.d.ts +2 -1
- package/dist/Tile.js +1 -1
- package/dist/Tile.js.map +1 -1
- package/dist/Tooltip.d.ts +2 -1
- package/dist/Tooltip.js +1 -1
- package/dist/Tooltip.js.map +1 -1
- package/dist/Wizard.js +1 -1
- package/dist/Wizard.js.map +1 -1
- package/dist/assets/{InputSuggestions-0yCPXAmq.js → InputSuggestions-DPiJnNLn.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-DjZEnCXN.js → ListItemStandardExpandableTextTemplate-B-v72jL6.js} +1 -1
- package/dist/assets/{bundle.esm-DJuMR5ko.js → bundle.esm-DPppjwN7.js} +260 -260
- package/dist/assets/messagebundle_en-B0P3kkb6.js +1 -0
- package/dist/assets/messagebundle_it-BML2SC0W.js +1 -0
- package/dist/assets/messagebundle_ja-zyFfZHcj.js +1 -0
- package/dist/assets/messagebundle_ko-BCPaSqNp.js +1 -0
- package/dist/assets/messagebundle_lt-DB4b6FVx.js +1 -0
- package/dist/assets/messagebundle_lv-tAOia5tU.js +1 -0
- package/dist/css/themes/AccordionItem.css +1 -1
- package/dist/css/themes/Breadcrumbs.css +1 -1
- package/dist/css/themes/BreadcrumbsPopover.css +1 -1
- package/dist/css/themes/Footer.css +1 -1
- package/dist/css/themes/Link.css +1 -1
- package/dist/css/themes/ListGroupHeader.css +1 -1
- package/dist/custom-elements-internal.json +267 -157
- package/dist/custom-elements.json +221 -133
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lv.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/AccordionItem.css.d.ts +1 -1
- package/dist/generated/themes/AccordionItem.css.js +1 -1
- package/dist/generated/themes/AccordionItem.css.js.map +1 -1
- package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
- package/dist/generated/themes/BreadcrumbsPopover.css.d.ts +1 -1
- package/dist/generated/themes/BreadcrumbsPopover.css.js +1 -1
- package/dist/generated/themes/BreadcrumbsPopover.css.js.map +1 -1
- 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/Link.css.d.ts +1 -1
- package/dist/generated/themes/Link.css.js +1 -1
- package/dist/generated/themes/Link.css.js.map +1 -1
- package/dist/generated/themes/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/messagebundle.properties +1 -0
- package/dist/messagebundle_en.properties +1 -0
- package/dist/messagebundle_it.properties +123 -0
- package/dist/messagebundle_ja.properties +127 -1
- package/dist/messagebundle_ko.properties +126 -0
- package/dist/messagebundle_lt.properties +126 -0
- package/dist/messagebundle_lv.properties +9 -0
- package/dist/types/FooterAskJoulePosition.d.ts +5 -0
- package/dist/types/FooterAskJoulePosition.js +7 -0
- package/dist/types/FooterAskJoulePosition.js.map +1 -0
- package/dist/vscode.html-custom-data.json +13 -3
- package/dist/web-types.json +56 -9
- package/package.json +1 -1
- package/src/Accordion.ts +1 -1
- package/src/AccordionItem.ts +1 -1
- package/src/Avatar.ts +3 -3
- package/src/Badge.ts +1 -1
- package/src/Breadcrumbs.ts +1 -1
- package/src/BreadcrumbsTemplate.tsx +12 -10
- package/src/Carousel.ts +1 -1
- package/src/Contact.ts +1 -1
- package/src/ContactItem.ts +1 -1
- package/src/Feed.ts +3 -2
- package/src/FeedItem.ts +3 -2
- package/src/FilterMenu.ts +6 -6
- package/src/FilterMenuGroupHeader.ts +1 -1
- package/src/Footer.ts +44 -5
- package/src/FooterTemplate.tsx +28 -4
- package/src/ImageGridCloud.ts +1 -1
- package/src/ImageGridTable.ts +1 -1
- package/src/ImageGridTableItem.ts +1 -1
- package/src/ImageGridTicker.ts +1 -1
- package/src/InputGroup.ts +1 -1
- package/src/LinkList.ts +1 -1
- package/src/List.ts +9 -9
- package/src/ListGroupHeader.ts +12 -5
- package/src/ListGroupHeaderBase.ts +4 -4
- package/src/ListGroupHeaderTemplate.tsx +228 -0
- package/src/ListItem.ts +8 -7
- package/src/ListItemBase.ts +9 -4
- package/src/ListItemTemplate.tsx +193 -0
- package/src/ListSelectAll.ts +4 -5
- package/src/ListSelectAllTemplate.tsx +38 -0
- package/src/ListTemplate.tsx +60 -0
- package/src/MastheadItem.ts +4 -4
- package/src/MastheadMobileMenu.ts +4 -4
- package/src/MastheadProfileMenu.ts +4 -3
- package/src/MastheadShell.ts +10 -10
- package/src/MediaPlayer.ts +11 -4
- package/src/MediaPlayerVimeo.ts +31 -6
- package/src/MediaPlayerYoutube.ts +24 -5
- package/src/MessageStrip.ts +3 -2
- package/src/Modal.ts +18 -3
- package/src/PromoTile.ts +3 -3
- package/src/Quote.ts +5 -5
- package/src/Review.ts +4 -4
- package/src/ReviewItem.ts +5 -4
- package/src/Search.ts +1 -1
- package/src/SearchableListBase.ts +6 -1
- package/src/SecondaryNavigation.ts +4 -4
- package/src/SecondaryNavigationItem.ts +3 -2
- package/src/SelectBase.ts +1 -1
- package/src/SelectBox.ts +34 -0
- package/src/SelectBoxGroupHeader.ts +1 -1
- package/src/SelectBoxItem.ts +4 -4
- package/src/SelectBoxTemplate.tsx +2 -0
- package/src/SideNavigationMobile.ts +3 -3
- package/src/SocialMediaButton.ts +1 -1
- package/src/Tab.ts +3 -3
- package/src/TabNavigation.ts +3 -3
- package/src/Table.ts +6 -6
- package/src/TableCellBase.ts +1 -1
- package/src/TableGroupRow.ts +1 -1
- package/src/TableRowBase.ts +1 -1
- package/src/TagGroup.ts +1 -1
- package/src/Tile.ts +3 -2
- package/src/Tooltip.ts +3 -2
- package/src/Wizard.ts +1 -1
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/themes/AccordionItem.css.ts +1 -1
- package/src/generated/themes/Breadcrumbs.css.ts +1 -1
- package/src/generated/themes/BreadcrumbsPopover.css.ts +1 -1
- package/src/generated/themes/Footer.css.ts +1 -1
- package/src/generated/themes/Link.css.ts +1 -1
- package/src/generated/themes/ListGroupHeader.css.ts +1 -1
- package/src/i18n/messagebundle.properties +1 -0
- package/src/i18n/messagebundle_en.properties +1 -0
- package/src/i18n/messagebundle_it.properties +123 -0
- package/src/i18n/messagebundle_ja.properties +127 -1
- package/src/i18n/messagebundle_ko.properties +126 -0
- package/src/i18n/messagebundle_lt.properties +126 -0
- package/src/i18n/messagebundle_lv.properties +9 -0
- package/src/themes/AccordionItem.css +2 -2
- package/src/themes/Breadcrumbs.css +46 -5
- package/src/themes/BreadcrumbsPopover.css +65 -0
- package/src/themes/Footer.css +99 -2
- package/src/themes/Link.css +127 -8
- package/src/themes/ListGroupHeader.css +6 -3
- package/src/types/FooterAskJoulePosition.ts +6 -0
- package/dist/assets/messagebundle_en-DoNTK1BE.js +0 -1
- package/dist/assets/messagebundle_it-BhrBdOd4.js +0 -1
- package/dist/assets/messagebundle_ja-5P5L7sQ1.js +0 -1
- package/dist/assets/messagebundle_ko-B9H5YQlC.js +0 -1
- package/dist/assets/messagebundle_lt-BJ5gr_LF.js +0 -1
- package/dist/assets/messagebundle_lv-D06tlATH.js +0 -1
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.js +0 -30
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.js.map +0 -1
- package/dist/generated/templates/ListItemTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/ListItemTemplate.lit.js +0 -49
- package/dist/generated/templates/ListItemTemplate.lit.js.map +0 -1
- package/dist/generated/templates/ListSelectAllTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/ListSelectAllTemplate.lit.js +0 -7
- package/dist/generated/templates/ListSelectAllTemplate.lit.js.map +0 -1
- package/dist/generated/templates/ListTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/ListTemplate.lit.js +0 -11
- package/dist/generated/templates/ListTemplate.lit.js.map +0 -1
- package/src/List.hbs +0 -38
- package/src/ListGroupHeader.hbs +0 -188
- package/src/ListItem.hbs +0 -166
- package/src/ListSelectAll.hbs +0 -31
- package/src/generated/templates/ListGroupHeaderTemplate.lit.ts +0 -34
- package/src/generated/templates/ListItemTemplate.lit.ts +0 -53
- package/src/generated/templates/ListSelectAllTemplate.lit.ts +0 -11
- package/src/generated/templates/ListTemplate.lit.ts +0 -15
package/src/FooterTemplate.tsx
CHANGED
|
@@ -6,6 +6,7 @@ import headset from "@ui5/webcomponents-icons/dist/headset.js";
|
|
|
6
6
|
import email from "@ui5/webcomponents-icons/dist/email.js";
|
|
7
7
|
import backToTop from "@ui5/webcomponents-icons/dist/back-to-top.js";
|
|
8
8
|
import discussion from "@ui5/webcomponents-icons/dist/discussion-2.js";
|
|
9
|
+
import da from "@ui5/webcomponents-icons/dist/da.js";
|
|
9
10
|
|
|
10
11
|
import type Footer from "./Footer.js";
|
|
11
12
|
import UDExLink from "./Link.js";
|
|
@@ -16,6 +17,7 @@ import UDExAccordionItem from "./AccordionItem.js";
|
|
|
16
17
|
import UDExButton from "./Button.js";
|
|
17
18
|
import UDExButtonDesign from "./types/ButtonDesign.js";
|
|
18
19
|
import UDExButtonSize from "./types/ButtonSize.js";
|
|
20
|
+
import UDExFooterAskJoulePosition from "./types/FooterAskJoulePosition.js";
|
|
19
21
|
import type { AriaRole } from "@ui5/webcomponents-base";
|
|
20
22
|
|
|
21
23
|
export default function FooterTemplate(this: Footer) {
|
|
@@ -60,6 +62,7 @@ export default function FooterTemplate(this: Footer) {
|
|
|
60
62
|
)}
|
|
61
63
|
{this.isContactContainerVisible && (
|
|
62
64
|
<div className={`${rootClass}__contact`}>
|
|
65
|
+
{this.askJouleLink && this.askJoulePosition === UDExFooterAskJoulePosition.Start && askJouleBlock.call(this, rootClass)}
|
|
63
66
|
{this.contactNumbersArray.length > 0 && (
|
|
64
67
|
<div className={`${rootClass}__numbers`}>
|
|
65
68
|
<div className={`${rootClass}__icon-container`}>
|
|
@@ -146,6 +149,7 @@ export default function FooterTemplate(this: Footer) {
|
|
|
146
149
|
</a>
|
|
147
150
|
</div>
|
|
148
151
|
)}
|
|
152
|
+
{this.askJouleLink && this.askJoulePosition === UDExFooterAskJoulePosition.End && askJouleBlock.call(this, rootClass)}
|
|
149
153
|
</div>
|
|
150
154
|
)}
|
|
151
155
|
</div>
|
|
@@ -336,7 +340,7 @@ function desktopNavigation(this: Footer, rootClass: string) {
|
|
|
336
340
|
href={link.url}
|
|
337
341
|
onClick={this._onQuickLinksClick}
|
|
338
342
|
{...(link.role ? { "role": link.role as AriaRole } : {})}>
|
|
339
|
-
{link.title}
|
|
343
|
+
<span className="udex-footer__nav-link-text">{link.title}</span>
|
|
340
344
|
</a>
|
|
341
345
|
</li>
|
|
342
346
|
))}
|
|
@@ -359,7 +363,7 @@ function desktopNavigation(this: Footer, rootClass: string) {
|
|
|
359
363
|
href={link.url}
|
|
360
364
|
onClick={this._onTrendingClick}
|
|
361
365
|
{...(link.role ? { "role": link.role as AriaRole } : {})}>
|
|
362
|
-
{link.title}
|
|
366
|
+
<span className="udex-footer__nav-link-text">{link.title}</span>
|
|
363
367
|
</a>
|
|
364
368
|
</li>
|
|
365
369
|
))}
|
|
@@ -382,7 +386,7 @@ function desktopNavigation(this: Footer, rootClass: string) {
|
|
|
382
386
|
href={link.url}
|
|
383
387
|
onClick={this._onAboutSapClick}
|
|
384
388
|
{...(link.role ? { "role": link.role as AriaRole } : {})}>
|
|
385
|
-
{link.title}
|
|
389
|
+
<span className="udex-footer__nav-link-text">{link.title}</span>
|
|
386
390
|
</a>
|
|
387
391
|
</li>
|
|
388
392
|
))}
|
|
@@ -405,7 +409,7 @@ function desktopNavigation(this: Footer, rootClass: string) {
|
|
|
405
409
|
href={link.url}
|
|
406
410
|
onClick={this._onSiteInformationClick}
|
|
407
411
|
{...(link.role ? { "role": link.role as AriaRole } : {})}>
|
|
408
|
-
{link.title}
|
|
412
|
+
<span className="udex-footer__nav-link-text">{link.title}</span>
|
|
409
413
|
</a>
|
|
410
414
|
</li>
|
|
411
415
|
))}
|
|
@@ -416,3 +420,23 @@ function desktopNavigation(this: Footer, rootClass: string) {
|
|
|
416
420
|
</div>
|
|
417
421
|
);
|
|
418
422
|
}
|
|
423
|
+
|
|
424
|
+
function askJouleBlock(this: Footer, rootClass: string) {
|
|
425
|
+
return (
|
|
426
|
+
<div className={`${rootClass}__ask-joule`}>
|
|
427
|
+
<div className={`${rootClass}__icon-container`}>
|
|
428
|
+
<UI5Icon
|
|
429
|
+
class={`${rootClass}__icon`}
|
|
430
|
+
name={da}
|
|
431
|
+
mode={IconMode.Decorative}>
|
|
432
|
+
</UI5Icon>
|
|
433
|
+
</div>
|
|
434
|
+
<a
|
|
435
|
+
href={this.askJouleLink}
|
|
436
|
+
className={`${rootClass}__ask-joule-link`}
|
|
437
|
+
onClick={this._onAskJouleClick}>
|
|
438
|
+
{this.askJouleAccessibleName}
|
|
439
|
+
</a>
|
|
440
|
+
</div>
|
|
441
|
+
);
|
|
442
|
+
}
|
package/src/ImageGridCloud.ts
CHANGED
|
@@ -4,7 +4,7 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
|
|
|
4
4
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
5
5
|
import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
6
6
|
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
7
|
-
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
7
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
8
8
|
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
9
9
|
import ImageGridCloudTemplate from "./ImageGridCloudTemplate.js";
|
|
10
10
|
import type UDExImageGridCloudItem from "./ImageGridCloudItem.js";
|
package/src/ImageGridTable.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
|
3
3
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
4
4
|
import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
5
5
|
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
6
|
-
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
6
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
7
7
|
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
8
8
|
import type UDExImageGridTableItem from "./ImageGridTableItem.js";
|
|
9
9
|
import ImageGridTableTemplate from "./ImageGridTableTemplate.js";
|
|
@@ -4,7 +4,7 @@ import { isDesktop } from "@ui5/webcomponents-base/Device.js";
|
|
|
4
4
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
5
5
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
6
6
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
7
|
-
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
7
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
8
8
|
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
9
9
|
import { UDExTarget } from "./types/common.js";
|
|
10
10
|
|
package/src/ImageGridTicker.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
|
3
3
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
4
4
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
5
5
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
6
|
-
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
6
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
7
7
|
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
8
8
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
9
9
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
package/src/InputGroup.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
|
3
3
|
import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
|
|
4
4
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
5
5
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
6
|
-
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
6
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
7
7
|
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
8
8
|
import type UDExCheckbox from "./Checkbox.js";
|
|
9
9
|
import type UDExRadioButton from "./RadioButton.js";
|
package/src/LinkList.ts
CHANGED
|
@@ -2,7 +2,7 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
|
2
2
|
import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
3
3
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
4
4
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
5
|
-
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
5
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
6
6
|
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
7
7
|
import type UDExLinkListItem from "./LinkListItem.js";
|
|
8
8
|
import LinkListTemplate from "./LinkListTemplate.js";
|
package/src/List.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
2
2
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
3
|
-
import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
4
3
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
5
|
-
import
|
|
4
|
+
import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
5
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
6
6
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
7
|
-
import
|
|
7
|
+
import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
|
|
8
8
|
import {
|
|
9
9
|
isUp, isDown, isHome, isEnd, isRight, isLeft,
|
|
10
10
|
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
@@ -17,15 +17,15 @@ import type UDExUploadItem from "./UploadItem.js";
|
|
|
17
17
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
18
18
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
19
19
|
import { ARIA_LABEL_LIST_MULTISELECTABLE, ARIA_LABEL_LIST_SELECTABLE } from "./generated/i18n/i18n-defaults.js";
|
|
20
|
-
import ListTemplate from "./generated/templates/ListTemplate.lit.js";
|
|
21
20
|
import translate from "./utils/translate.js";
|
|
22
|
-
|
|
23
|
-
// Styles
|
|
24
|
-
import ListCss from "./generated/themes/List.css.js";
|
|
25
21
|
import isLetterKey from "./utils/isLetterKeyPressed.js";
|
|
26
22
|
import type { UDExListWithFirstLetterFocus } from "./utils/ListWithFirstLetterFocus.js";
|
|
27
23
|
import UDExFirstLetterFocusHandler from "./utils/ListWithFirstLetterFocus.js";
|
|
28
24
|
import getEffectiveScrollbarStyle from "./utils/getEffectiveScrollbarStyle.js";
|
|
25
|
+
import ListTemplate from "./ListTemplate.js";
|
|
26
|
+
|
|
27
|
+
// Styles
|
|
28
|
+
import ListCss from "./generated/themes/List.css.js";
|
|
29
29
|
|
|
30
30
|
export type UDExListItemBase = UDExListItem & UDExListGroupHeader & UDExUploadItem;
|
|
31
31
|
|
|
@@ -55,11 +55,11 @@ type UDExListSelectionChangeEventDetail = {
|
|
|
55
55
|
* @public
|
|
56
56
|
*/
|
|
57
57
|
@customElement({
|
|
58
|
+
languageAware: true,
|
|
58
59
|
tag: "udex-list",
|
|
59
|
-
renderer:
|
|
60
|
+
renderer: jsxRenderer,
|
|
60
61
|
styles: [ListCss, getEffectiveScrollbarStyle()],
|
|
61
62
|
template: ListTemplate,
|
|
62
|
-
dependencies: [],
|
|
63
63
|
})
|
|
64
64
|
|
|
65
65
|
/**
|
package/src/ListGroupHeader.ts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
2
2
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
3
|
-
import
|
|
3
|
+
import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
|
|
4
4
|
import {
|
|
5
5
|
isEnter, isLeft, isRight, isSpace,
|
|
6
6
|
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
7
|
-
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
8
7
|
import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
|
|
9
8
|
import UDExListGroupHeaderBase from "./ListGroupHeaderBase.js";
|
|
10
|
-
import ListGroupHeaderTemplate from "./
|
|
9
|
+
import ListGroupHeaderTemplate from "./ListGroupHeaderTemplate.js";
|
|
11
10
|
import { UDExListItemSize } from "./types/List.js";
|
|
12
11
|
import type { UDExListItemBaseEvents } from "./ListItemBase.js";
|
|
13
12
|
import type UDExListItemBase from "./ListItemBase.js";
|
|
@@ -42,10 +41,10 @@ type UDExListGroupHeaderBaseHeaderPressEventDetail = {
|
|
|
42
41
|
*/
|
|
43
42
|
@customElement({
|
|
44
43
|
tag: "udex-list-group-header",
|
|
45
|
-
|
|
44
|
+
languageAware: true,
|
|
45
|
+
renderer: jsxRenderer,
|
|
46
46
|
styles: ListGroupHeaderCss,
|
|
47
47
|
template: ListGroupHeaderTemplate,
|
|
48
|
-
dependencies: [Icon],
|
|
49
48
|
})
|
|
50
49
|
|
|
51
50
|
/**
|
|
@@ -56,6 +55,14 @@ type UDExListGroupHeaderBaseHeaderPressEventDetail = {
|
|
|
56
55
|
*/
|
|
57
56
|
@event("header-press", { bubbles: true })
|
|
58
57
|
|
|
58
|
+
/**
|
|
59
|
+
* Triggered when the user clicks on an accordion item.
|
|
60
|
+
* @public
|
|
61
|
+
* @param { string } name
|
|
62
|
+
* @param { boolean } expanded
|
|
63
|
+
*/
|
|
64
|
+
@event("accordion-icon-click", { bubbles: true })
|
|
65
|
+
|
|
59
66
|
class UDExListGroupHeader extends UDExListGroupHeaderBase {
|
|
60
67
|
eventDetails!: {
|
|
61
68
|
"header-press": UDExListGroupHeaderBaseHeaderPressEventDetail,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
2
|
-
import
|
|
2
|
+
import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
3
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
3
4
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
4
|
-
import
|
|
5
|
+
import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
|
|
5
6
|
import UDExListItemBase from "./ListItemBase.js";
|
|
6
|
-
import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
7
7
|
|
|
8
8
|
const listGroupHeaderClass: string = "udex-list__group-header";
|
|
9
9
|
|
|
@@ -20,7 +20,7 @@ const listGroupHeaderClass: string = "udex-list__group-header";
|
|
|
20
20
|
*/
|
|
21
21
|
@customElement({
|
|
22
22
|
languageAware: true,
|
|
23
|
-
renderer:
|
|
23
|
+
renderer: jsxRenderer,
|
|
24
24
|
})
|
|
25
25
|
|
|
26
26
|
class UDExListGroupHeaderBase extends UDExListItemBase {
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import type { AriaRole } from "@ui5/webcomponents-base/dist/types.js";
|
|
2
|
+
import type UDExListGroupHeader from "./ListGroupHeader.js";
|
|
3
|
+
import UDExListItem from "./ListItem.js";
|
|
4
|
+
import UDExButton from "./Button.js";
|
|
5
|
+
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
6
|
+
import UDExButtonSize from "./types/ButtonSize.js";
|
|
7
|
+
import UDExButtonDesign from "./types/ButtonDesign.js";
|
|
8
|
+
import slimArrowRight from "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
|
|
9
|
+
|
|
10
|
+
function SingleGroupHeader(this: UDExListGroupHeader) {
|
|
11
|
+
return (
|
|
12
|
+
<div class={`udex-list__group-content udex-list__group-header-wrap ${this.sizeClass}`} part="group-item">
|
|
13
|
+
{this.typeNumber && <span class="udex-list__number">{this.numberOfItem}.</span>}
|
|
14
|
+
{this.typeCircle && <span class="udex-list__circle">•</span>}
|
|
15
|
+
{this.typeIcon && (
|
|
16
|
+
<Icon
|
|
17
|
+
class="udex-list__icon"
|
|
18
|
+
accessible-role="presentation"
|
|
19
|
+
aria-hidden="true"
|
|
20
|
+
part="icon"
|
|
21
|
+
name={this._icon}
|
|
22
|
+
/>
|
|
23
|
+
)}
|
|
24
|
+
<div class="udex-list__header">
|
|
25
|
+
<span
|
|
26
|
+
id="group-heading"
|
|
27
|
+
class="udex-list__header-title"
|
|
28
|
+
{...({ innerHTML: this.label } as object)}>
|
|
29
|
+
</span>
|
|
30
|
+
{this.supportingText && (
|
|
31
|
+
<span class={`udex-list__supporting-text ${this.sizeClass}`}>{this.supportingText}</span>
|
|
32
|
+
)}
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function SingleGroupHeaderCollapsible(this: UDExListGroupHeader) {
|
|
39
|
+
return (
|
|
40
|
+
<div
|
|
41
|
+
class={`udex-list__group-content udex-list__group-header-wrap ${this.sizeClass}`}
|
|
42
|
+
part="group-item"
|
|
43
|
+
id={`${this._id}_group-content__focusable`}
|
|
44
|
+
role={this.singleCollapsibleHeaderRole as AriaRole}
|
|
45
|
+
tabIndex={0}
|
|
46
|
+
onKeyDown={this.handleKeyDown}
|
|
47
|
+
aria-expanded={this.expanded}
|
|
48
|
+
aria-controls={this.ariaControlsId}
|
|
49
|
+
_tab-index={Number(this._effectiveTabIndex)}>
|
|
50
|
+
{this.typeNumber && <span class="udex-list__number">{this.numberOfItem}.</span>}
|
|
51
|
+
{this.typeCircle && <span class="udex-list__circle">•</span>}
|
|
52
|
+
{this.typeIcon && (
|
|
53
|
+
<Icon
|
|
54
|
+
name={this._icon}
|
|
55
|
+
class="udex-list__icon"
|
|
56
|
+
accessible-role="presentation"
|
|
57
|
+
aria-hidden="true"
|
|
58
|
+
part="icon"
|
|
59
|
+
/>
|
|
60
|
+
)}
|
|
61
|
+
<div class="udex-list__header">
|
|
62
|
+
<span
|
|
63
|
+
id="group-heading"
|
|
64
|
+
class="udex-list__header-title"
|
|
65
|
+
{...({ innerHTML: this.label } as object)}>
|
|
66
|
+
</span>
|
|
67
|
+
{this.supportingText && (
|
|
68
|
+
<span class={`udex-list__supporting-text ${this.sizeClass}`}>{this.supportingText}</span>
|
|
69
|
+
)}
|
|
70
|
+
</div>
|
|
71
|
+
<div class="udex-list__group-heading__icon-wrapper">
|
|
72
|
+
<UDExButton
|
|
73
|
+
size="Small"
|
|
74
|
+
design="Tertiary"
|
|
75
|
+
class="udex-list__group-heading__icon"
|
|
76
|
+
onClick={this.handleCollapseIconClick as unknown as EventListener}
|
|
77
|
+
tabindex={-1}
|
|
78
|
+
accessible-name={this.expandButtonAccessibleName}
|
|
79
|
+
icon={slimArrowRight}
|
|
80
|
+
{...({ "mode": "Interactive" } as object)}
|
|
81
|
+
/>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function MultiOrRadioGroupHeader(this: UDExListGroupHeader) {
|
|
88
|
+
if (this.isNonActiveHeader) {
|
|
89
|
+
return (
|
|
90
|
+
<header id="group-heading" class="udex-list__inactive-header udex-list__group-header-wrap">
|
|
91
|
+
<div class="udex-list__inactive-header-content">
|
|
92
|
+
<span class="udex-list__header-title" {...({ innerHTML: this.label } as object)}></span>
|
|
93
|
+
{this.supportingText && (
|
|
94
|
+
<span class="udex-list__supporting-text">{this.supportingText}</span>
|
|
95
|
+
)}
|
|
96
|
+
</div>
|
|
97
|
+
</header>
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
return (
|
|
101
|
+
<UDExListItem
|
|
102
|
+
id="group-heading"
|
|
103
|
+
part="group-item"
|
|
104
|
+
role="none"
|
|
105
|
+
selected={this.selected}
|
|
106
|
+
indeterminate={this.indeterminate}
|
|
107
|
+
class={this.className}
|
|
108
|
+
mode={this.mode}
|
|
109
|
+
controlled={this.controlled}
|
|
110
|
+
onClick={this.handleHeaderPress}
|
|
111
|
+
onKeyDown={this.handleKeyDownPress}
|
|
112
|
+
type={this.type}
|
|
113
|
+
label={this.label}
|
|
114
|
+
size={this.size}
|
|
115
|
+
supportingText={this.supportingText}
|
|
116
|
+
accessible-role={this.nonCollapsibleHeaderAccessibleRole}
|
|
117
|
+
_additional-class-name={this._additionalClassName}
|
|
118
|
+
_tab-index={Number(this._effectiveTabIndex)}
|
|
119
|
+
_icon={this._icon}
|
|
120
|
+
_filtered={this._filtered}
|
|
121
|
+
/>
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
function MultiOrRadioGroupHeaderCollapsible(this: UDExListGroupHeader) {
|
|
126
|
+
if (this.isNonActiveHeader) {
|
|
127
|
+
return (
|
|
128
|
+
<header
|
|
129
|
+
role="button"
|
|
130
|
+
id="group-heading"
|
|
131
|
+
class="udex-list__inactive-header udex-list__group-header-wrap"
|
|
132
|
+
tabIndex={Number(this._effectiveTabIndex)}
|
|
133
|
+
aria-expanded={this.expanded}
|
|
134
|
+
aria-controls={this.ariaControlsId}>
|
|
135
|
+
<div class="udex-list__inactive-header-content">
|
|
136
|
+
<span class="udex-list__header-title" {...({ innerHTML: this.label } as object)}></span>
|
|
137
|
+
{this.supportingText && (
|
|
138
|
+
<span class="udex-list__supporting-text">{this.supportingText}</span>
|
|
139
|
+
)}
|
|
140
|
+
</div>
|
|
141
|
+
<div class="udex-list__group-heading__icon-wrapper">
|
|
142
|
+
<UDExButton
|
|
143
|
+
class="udex-list__group-heading__icon"
|
|
144
|
+
size={UDExButtonSize.Small}
|
|
145
|
+
design={UDExButtonDesign.Tertiary}
|
|
146
|
+
tabindex={-1}
|
|
147
|
+
icon={slimArrowRight}
|
|
148
|
+
onClick={this.handleCollapseIconClick as EventListener}
|
|
149
|
+
accessible-name={this.expandButtonAccessibleName}
|
|
150
|
+
{...({ "mode": "Interactive" } as object)}
|
|
151
|
+
/>
|
|
152
|
+
</div>
|
|
153
|
+
</header>
|
|
154
|
+
);
|
|
155
|
+
}
|
|
156
|
+
return (
|
|
157
|
+
<UDExListItem
|
|
158
|
+
id="group-heading"
|
|
159
|
+
part="group-item"
|
|
160
|
+
role="none"
|
|
161
|
+
aria-expanded={this.expanded}
|
|
162
|
+
aria-controls={this.ariaControlsId}
|
|
163
|
+
selected={this.selected}
|
|
164
|
+
indeterminate={this.indeterminate}
|
|
165
|
+
collapsible={this.collapsible}
|
|
166
|
+
collapsed={this.collapsed}
|
|
167
|
+
class={this.className}
|
|
168
|
+
mode={this.mode}
|
|
169
|
+
controlled={this.controlled}
|
|
170
|
+
onClick={this.handleHeaderPress}
|
|
171
|
+
onKeyDown={this.handleKeyDownPress}
|
|
172
|
+
type={this.type}
|
|
173
|
+
label={this.label}
|
|
174
|
+
size={this.size}
|
|
175
|
+
supportingText={this.supportingText}
|
|
176
|
+
accessible-role={this.collapsibleHeaderAccessibleRole}
|
|
177
|
+
onAccordionIconClick={this.handleCollapseIconClick as EventListener}
|
|
178
|
+
_additional-class-name={this._additionalClassName}
|
|
179
|
+
_tab-index={Number(this._effectiveTabIndex)}
|
|
180
|
+
_icon={this._icon}
|
|
181
|
+
_filtered={this._filtered}
|
|
182
|
+
/>
|
|
183
|
+
);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
export default function ListGroupHeaderTemplate(this: UDExListGroupHeader) {
|
|
187
|
+
return (
|
|
188
|
+
<div
|
|
189
|
+
part="item"
|
|
190
|
+
class="udex-list__group"
|
|
191
|
+
role={this.groupWrapperRole as AriaRole}
|
|
192
|
+
aria-labelledby={!this.isTreeAccessibleRole ? "group-heading" : undefined}>
|
|
193
|
+
{this.collapsible ? (
|
|
194
|
+
<div
|
|
195
|
+
class="udex-list__group-list"
|
|
196
|
+
onui5-item-press={this.getHandleGroupItemsClick}
|
|
197
|
+
{...({ name: "group" } as object)}>
|
|
198
|
+
{this.useListItemHeader
|
|
199
|
+
? MultiOrRadioGroupHeaderCollapsible.call(this)
|
|
200
|
+
: SingleGroupHeaderCollapsible.call(this)
|
|
201
|
+
}
|
|
202
|
+
<div id={this.ariaControlsId} role={this.contentRegionRole as AriaRole} class="udex-list__group-list__content">
|
|
203
|
+
{this.isTreeAccessibleRole ? (
|
|
204
|
+
<slot></slot>
|
|
205
|
+
) : (
|
|
206
|
+
<div role="listbox" aria-label="group">
|
|
207
|
+
<slot></slot>
|
|
208
|
+
</div>
|
|
209
|
+
)}
|
|
210
|
+
</div>
|
|
211
|
+
</div>
|
|
212
|
+
) : (
|
|
213
|
+
<div
|
|
214
|
+
role={this.nonCollapsibleContainerRole as AriaRole}
|
|
215
|
+
class="udex-list__group-list"
|
|
216
|
+
aria-label="group"
|
|
217
|
+
onui5-item-press={this.getHandleGroupItemsClick}
|
|
218
|
+
{...({ name: "group" } as object)}>
|
|
219
|
+
{this.modeMultiSelectOrRadioGroup
|
|
220
|
+
? MultiOrRadioGroupHeader.call(this)
|
|
221
|
+
: SingleGroupHeader.call(this)
|
|
222
|
+
}
|
|
223
|
+
<slot></slot>
|
|
224
|
+
</div>
|
|
225
|
+
)}
|
|
226
|
+
</div>
|
|
227
|
+
);
|
|
228
|
+
}
|
package/src/ListItem.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
2
2
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
3
|
-
import
|
|
3
|
+
import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
|
|
4
|
+
import type { Slot, DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
5
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
4
6
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
5
|
-
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
6
7
|
import { isEnter, isSpace } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
7
8
|
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
8
9
|
import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
|
|
@@ -24,11 +25,10 @@ import {
|
|
|
24
25
|
} from "./generated/i18n/i18n-defaults.js";
|
|
25
26
|
import translate from "./utils/translate.js";
|
|
26
27
|
|
|
27
|
-
import ListItemTemplate from "./
|
|
28
|
+
import ListItemTemplate from "./ListItemTemplate.js";
|
|
28
29
|
|
|
29
30
|
// Styles
|
|
30
31
|
import ListItemCss from "./generated/themes/ListItem.css.js";
|
|
31
|
-
import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
32
32
|
|
|
33
33
|
const listItemClass: string = "udex-list__item";
|
|
34
34
|
const listItemRole: string = "option";
|
|
@@ -64,7 +64,8 @@ type UDExListItemItemPressEventDetail = {
|
|
|
64
64
|
|
|
65
65
|
@customElement({
|
|
66
66
|
tag: "udex-list-item",
|
|
67
|
-
|
|
67
|
+
languageAware: true,
|
|
68
|
+
renderer: jsxRenderer,
|
|
68
69
|
styles: ListItemCss,
|
|
69
70
|
template: ListItemTemplate,
|
|
70
71
|
dependencies: [
|
|
@@ -215,7 +216,7 @@ class UDExListItem extends UDExListItemBase {
|
|
|
215
216
|
* @public
|
|
216
217
|
*/
|
|
217
218
|
@slot({ type: UDExButton })
|
|
218
|
-
firstIcon!:
|
|
219
|
+
firstIcon!: Slot<UDExButton>;
|
|
219
220
|
|
|
220
221
|
/**
|
|
221
222
|
* Slot for second icon.
|
|
@@ -224,7 +225,7 @@ class UDExListItem extends UDExListItemBase {
|
|
|
224
225
|
* @public
|
|
225
226
|
*/
|
|
226
227
|
@slot({ type: UDExButton })
|
|
227
|
-
secondIcon!:
|
|
228
|
+
secondIcon!: Slot<UDExButton>;
|
|
228
229
|
|
|
229
230
|
/**
|
|
230
231
|
* Defines the role attribute of component
|
package/src/ListItemBase.ts
CHANGED
|
@@ -2,7 +2,7 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
|
2
2
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
3
3
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
4
4
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
5
|
-
import
|
|
5
|
+
import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
|
|
6
6
|
import { UDExListItemSize, UDExListMode, UDExListStyleType } from "./types/List.js";
|
|
7
7
|
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
8
8
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
@@ -37,7 +37,7 @@ type UDExListItemBaseAccordionClickEventDetail = {
|
|
|
37
37
|
* @public
|
|
38
38
|
*/
|
|
39
39
|
@customElement({
|
|
40
|
-
renderer:
|
|
40
|
+
renderer: jsxRenderer,
|
|
41
41
|
})
|
|
42
42
|
|
|
43
43
|
/**
|
|
@@ -261,17 +261,22 @@ class UDExListItemBase extends UI5Element {
|
|
|
261
261
|
@i18n("@sapudex/web-components")
|
|
262
262
|
static i18nBundle: I18nBundle;
|
|
263
263
|
|
|
264
|
-
|
|
264
|
+
onAfterRendering() {
|
|
265
265
|
if (!this.collapsible) {
|
|
266
266
|
return;
|
|
267
267
|
}
|
|
268
268
|
this.contentElement = this.shadowRoot?.querySelector<HTMLElement>(".udex-list__group-list__content");
|
|
269
269
|
if (this.contentElement) {
|
|
270
|
-
ResizeHandler.register(this.contentElement, this._resizeHandler);
|
|
271
270
|
this.setContentHeight();
|
|
272
271
|
}
|
|
273
272
|
}
|
|
274
273
|
|
|
274
|
+
onEnterDOM() {
|
|
275
|
+
if (this.contentElement && this.collapsible) {
|
|
276
|
+
ResizeHandler.register(this.contentElement, this._resizeHandler);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
|
|
275
280
|
onExitDOM(): void {
|
|
276
281
|
if (this.contentElement && this.collapsible) {
|
|
277
282
|
ResizeHandler.deregister(this.contentElement, this._resizeHandler);
|