@sapudex/web-components 2.24.0 → 2.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle.esm.js +2 -0
- package/cypress/downloads/downloads.html +0 -0
- package/cypress/specs/EventRibbon.cy.tsx +7 -7
- package/cypress/specs/ImageGridTable.cy.tsx +41 -0
- package/cypress/specs/ImageGridTableItem.cy.tsx +101 -0
- package/cypress/specs/ImageGridTickerItem.cy.tsx +1 -2
- package/cypress/specs/MastheadProfileMenu.cy.tsx +16 -0
- package/cypress/specs/UploadItem.cy.tsx +14 -5
- package/cypress/support/component-imports.instrumented.ts +4 -0
- package/cypress/support/component-imports.src.ts +4 -0
- package/dist/Accordion.js +3 -2
- package/dist/Accordion.js.map +1 -1
- package/dist/Avatar.js +4 -3
- package/dist/Avatar.js.map +1 -1
- package/dist/Breadcrumbs.js +4 -3
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/Button.js +3 -2
- package/dist/Button.js.map +1 -1
- package/dist/Carousel.d.ts +1 -0
- package/dist/Carousel.js +6 -4
- package/dist/Carousel.js.map +1 -1
- package/dist/CarouselTemplate.js +1 -1
- package/dist/CarouselTemplate.js.map +1 -1
- package/dist/Checkbox.js +3 -2
- package/dist/Checkbox.js.map +1 -1
- package/dist/Contact.js +5 -4
- package/dist/Contact.js.map +1 -1
- package/dist/CountrySelector.d.ts +1 -1
- package/dist/CountrySelector.js +1 -1
- package/dist/CountrySelector.js.map +1 -1
- package/dist/DatePicker.js +3 -2
- package/dist/DatePicker.js.map +1 -1
- package/dist/EventRibbon.d.ts +2 -2
- package/dist/EventRibbon.js.map +1 -1
- package/dist/FeedItem.js +2 -1
- package/dist/FeedItem.js.map +1 -1
- package/dist/FilterMenu.js +5 -4
- package/dist/FilterMenu.js.map +1 -1
- package/dist/Footer.js +15 -14
- package/dist/Footer.js.map +1 -1
- package/dist/ImageGridTable.d.ts +57 -0
- package/dist/ImageGridTable.js +120 -0
- package/dist/ImageGridTable.js.map +1 -0
- package/dist/ImageGridTableItem.d.ts +89 -0
- package/dist/ImageGridTableItem.js +108 -0
- package/dist/ImageGridTableItem.js.map +1 -0
- package/dist/ImageGridTableItemTemplate.d.ts +2 -0
- package/dist/ImageGridTableItemTemplate.js +13 -0
- package/dist/ImageGridTableItemTemplate.js.map +1 -0
- package/dist/ImageGridTableTemplate.d.ts +2 -0
- package/dist/ImageGridTableTemplate.js +5 -0
- package/dist/ImageGridTableTemplate.js.map +1 -0
- package/dist/ImageGridTicker.js +3 -2
- package/dist/ImageGridTicker.js.map +1 -1
- package/dist/ImageGridTickerItem.d.ts +4 -0
- package/dist/ImageGridTickerItem.js +14 -0
- package/dist/ImageGridTickerItem.js.map +1 -1
- package/dist/ImageGridTickerItemTemplate.js +1 -1
- package/dist/ImageGridTickerItemTemplate.js.map +1 -1
- package/dist/InputGroup.js +3 -2
- package/dist/InputGroup.js.map +1 -1
- package/dist/List.js +2 -1
- package/dist/List.js.map +1 -1
- package/dist/ListItem.d.ts +0 -2
- package/dist/ListItem.js +4 -9
- package/dist/ListItem.js.map +1 -1
- package/dist/ListSelectAll.js +2 -1
- package/dist/ListSelectAll.js.map +1 -1
- package/dist/MastheadCountrySelector.js +3 -2
- package/dist/MastheadCountrySelector.js.map +1 -1
- package/dist/MastheadItem.js +8 -7
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadMenuItem.js +2 -1
- package/dist/MastheadMenuItem.js.map +1 -1
- package/dist/MastheadMobileMenu.js +2 -1
- package/dist/MastheadMobileMenu.js.map +1 -1
- package/dist/MastheadProfileMenu.js +6 -5
- package/dist/MastheadProfileMenu.js.map +1 -1
- package/dist/MastheadShell.d.ts +17 -0
- package/dist/MastheadShell.js +42 -13
- package/dist/MastheadShell.js.map +1 -1
- package/dist/MessageStrip.js +2 -1
- package/dist/MessageStrip.js.map +1 -1
- package/dist/MessageStripTemplate.js +1 -1
- package/dist/MessageStripTemplate.js.map +1 -1
- package/dist/Pagination.d.ts +0 -2
- package/dist/Pagination.js +16 -29
- package/dist/Pagination.js.map +1 -1
- package/dist/PhoneNumberField.js +7 -6
- package/dist/PhoneNumberField.js.map +1 -1
- package/dist/ProgressBar.js +5 -4
- package/dist/ProgressBar.js.map +1 -1
- package/dist/PromoTile.js +3 -2
- package/dist/PromoTile.js.map +1 -1
- package/dist/RadioButton.js +5 -4
- package/dist/RadioButton.js.map +1 -1
- package/dist/RatingBar.js +2 -1
- package/dist/RatingBar.js.map +1 -1
- package/dist/RatingIndicator.js +2 -1
- package/dist/RatingIndicator.js.map +1 -1
- package/dist/Review.d.ts +1 -1
- package/dist/Review.js +3 -3
- package/dist/Review.js.map +1 -1
- package/dist/ReviewItem.js +2 -1
- package/dist/ReviewItem.js.map +1 -1
- package/dist/Search.d.ts +2 -0
- package/dist/Search.js +34 -19
- package/dist/Search.js.map +1 -1
- package/dist/SearchTemplate.js +1 -1
- package/dist/SearchTemplate.js.map +1 -1
- package/dist/SearchableListBase.d.ts +1 -1
- package/dist/SearchableListBase.js +4 -3
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SecondaryNavigation.js +2 -1
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationSubItem.js +2 -1
- package/dist/SecondaryNavigationSubItem.js.map +1 -1
- package/dist/SelectBase.d.ts +4 -11
- package/dist/SelectBase.js +4 -11
- package/dist/SelectBase.js.map +1 -1
- package/dist/SelectBox.d.ts +1 -1
- package/dist/SelectBox.js +1 -1
- package/dist/SelectBox.js.map +1 -1
- package/dist/SocialMediaButton.js +2 -1
- package/dist/SocialMediaButton.js.map +1 -1
- package/dist/StatusBadge.js +7 -6
- package/dist/StatusBadge.js.map +1 -1
- package/dist/StepInput.js +9 -2
- package/dist/StepInput.js.map +1 -1
- package/dist/StepInputTemplate.js +1 -1
- package/dist/StepInputTemplate.js.map +1 -1
- package/dist/Tab.js +2 -1
- package/dist/Tab.js.map +1 -1
- package/dist/TabNavigation.js +2 -1
- package/dist/TabNavigation.js.map +1 -1
- package/dist/Table.d.ts +2 -2
- package/dist/Table.js +5 -15
- package/dist/Table.js.map +1 -1
- package/dist/TableCell.js +3 -3
- package/dist/TableCell.js.map +1 -1
- package/dist/TableCellBase.js +1 -3
- package/dist/TableCellBase.js.map +1 -1
- package/dist/TableCellTemplate.d.ts +2 -0
- package/dist/TableCellTemplate.js +9 -0
- package/dist/TableCellTemplate.js.map +1 -0
- package/dist/TableGroupRow.d.ts +1 -1
- package/dist/TableGroupRow.js +3 -6
- package/dist/TableGroupRow.js.map +1 -1
- package/dist/TableGroupRowTemplate.d.ts +2 -0
- package/dist/TableGroupRowTemplate.js +7 -0
- package/dist/TableGroupRowTemplate.js.map +1 -0
- package/dist/TableHeaderCell.js +3 -4
- package/dist/TableHeaderCell.js.map +1 -1
- package/dist/TableHeaderCellTemplate.d.ts +2 -0
- package/dist/TableHeaderCellTemplate.js +6 -0
- package/dist/TableHeaderCellTemplate.js.map +1 -0
- package/dist/TableHeaderRow.js +3 -5
- package/dist/TableHeaderRow.js.map +1 -1
- package/dist/TableHeaderRowTemplate.d.ts +2 -0
- package/dist/TableHeaderRowTemplate.js +5 -0
- package/dist/TableHeaderRowTemplate.js.map +1 -0
- package/dist/TableRow.js +3 -4
- package/dist/TableRow.js.map +1 -1
- package/dist/TableRowBase.d.ts +1 -1
- package/dist/TableRowBase.js +0 -2
- package/dist/TableRowBase.js.map +1 -1
- package/dist/TableRowTemplate.d.ts +2 -0
- package/dist/TableRowTemplate.js +5 -0
- package/dist/TableRowTemplate.js.map +1 -0
- package/dist/TableTemplate.d.ts +2 -0
- package/dist/TableTemplate.js +20 -0
- package/dist/TableTemplate.js.map +1 -0
- package/dist/TextArea.js +9 -8
- package/dist/TextArea.js.map +1 -1
- package/dist/TextField.js +7 -6
- package/dist/TextField.js.map +1 -1
- package/dist/Toast.d.ts +3 -1
- package/dist/Toast.js +15 -9
- package/dist/Toast.js.map +1 -1
- package/dist/ToastTemplate.d.ts +2 -0
- package/dist/ToastTemplate.js +11 -0
- package/dist/ToastTemplate.js.map +1 -0
- package/dist/TruncatedText.js +3 -2
- package/dist/TruncatedText.js.map +1 -1
- package/dist/Upload.js +2 -1
- package/dist/Upload.js.map +1 -1
- package/dist/UploadItem.d.ts +7 -0
- package/dist/UploadItem.js +14 -3
- package/dist/UploadItem.js.map +1 -1
- package/dist/assets/{InputSuggestions-63QG0i9j.js → InputSuggestions-DF_pzCn9.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-B1CpqSCb.js → ListItemStandardExpandableTextTemplate-DOYL5Szm.js} +1 -1
- package/dist/assets/{bundle.esm-lUYJDofa.js → bundle.esm-CWBg8c5Q.js} +269 -267
- package/dist/assets/messagebundle_en-mjqY85LY.js +1 -0
- package/dist/css/themes/ImageGridTable.css +1 -0
- package/dist/css/themes/ImageGridTableItem.css +1 -0
- package/dist/css/themes/ImageGridTicker.css +1 -1
- package/dist/css/themes/MastheadItem.css +1 -1
- package/dist/css/themes/MastheadShell.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/custom-elements-internal.json +9292 -7325
- package/dist/custom-elements.json +6574 -5095
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
- package/dist/generated/i18n/i18n-defaults.js +4 -3
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/MastheadShellTemplate.lit.js +8 -7
- package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
- package/dist/generated/templates/UploadItemTemplate.lit.js +1 -1
- package/dist/generated/templates/UploadItemTemplate.lit.js.map +1 -1
- package/dist/generated/themes/ImageGridTable.css.d.ts +2 -0
- package/dist/generated/themes/ImageGridTable.css.js +8 -0
- package/dist/generated/themes/ImageGridTable.css.js.map +1 -0
- package/dist/generated/themes/ImageGridTableItem.css.d.ts +2 -0
- package/dist/generated/themes/ImageGridTableItem.css.js +8 -0
- package/dist/generated/themes/ImageGridTableItem.css.js.map +1 -0
- 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/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/MastheadShell.css.d.ts +1 -1
- package/dist/generated/themes/MastheadShell.css.js +1 -1
- package/dist/generated/themes/MastheadShell.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/Slider.css.d.ts +1 -1
- package/dist/generated/themes/Slider.css.js +1 -1
- package/dist/generated/themes/Slider.css.js.map +1 -1
- package/dist/messagebundle.properties +6 -2
- package/dist/messagebundle_en.properties +3 -2
- package/dist/types/CustomTranslations.d.ts +3 -0
- package/dist/types/CustomTranslations.js +2 -0
- package/dist/types/CustomTranslations.js.map +1 -0
- package/dist/types/EventRibbon.d.ts +1 -1
- package/dist/types/EventRibbon.js +39 -39
- package/dist/types/EventRibbon.js.map +1 -1
- package/dist/utils/translate.d.ts +7 -0
- package/dist/utils/translate.js +15 -0
- package/dist/utils/translate.js.map +1 -0
- package/dist/vscode.html-custom-data.json +207 -7
- package/dist/web-types.json +541 -12
- package/package.json +1 -1
- package/src/Accordion.ts +3 -2
- package/src/Avatar.ts +5 -3
- package/src/Breadcrumbs.ts +4 -3
- package/src/Button.ts +3 -2
- package/src/Carousel.ts +7 -4
- package/src/CarouselTemplate.tsx +2 -1
- package/src/Checkbox.ts +3 -2
- package/src/Contact.ts +5 -4
- package/src/CountrySelector.ts +1 -1
- package/src/DatePicker.ts +3 -2
- package/src/EventRibbon.ts +2 -2
- package/src/FeedItem.ts +2 -1
- package/src/FilterMenu.ts +5 -4
- package/src/Footer.ts +15 -14
- package/src/ImageGridTable.ts +151 -0
- package/src/ImageGridTableItem.ts +148 -0
- package/src/ImageGridTableItemTemplate.tsx +48 -0
- package/src/ImageGridTableTemplate.tsx +9 -0
- package/src/ImageGridTicker.ts +4 -2
- package/src/ImageGridTickerItem.ts +20 -0
- package/src/ImageGridTickerItemTemplate.tsx +1 -0
- package/src/InputGroup.ts +3 -2
- package/src/List.ts +2 -1
- package/src/ListItem.ts +4 -11
- package/src/ListSelectAll.ts +2 -1
- package/src/MastheadCountrySelector.ts +3 -2
- package/src/MastheadItem.ts +8 -7
- package/src/MastheadMenuItem.ts +2 -1
- package/src/MastheadMobileMenu.ts +2 -1
- package/src/MastheadProfileMenu.ts +6 -5
- package/src/MastheadShell.hbs +38 -29
- package/src/MastheadShell.ts +57 -13
- package/src/MessageStrip.ts +2 -1
- package/src/MessageStripTemplate.tsx +1 -1
- package/src/Pagination.ts +15 -28
- package/src/PhoneNumberField.ts +7 -6
- package/src/ProgressBar.ts +5 -4
- package/src/PromoTile.ts +3 -2
- package/src/RadioButton.ts +5 -4
- package/src/RatingBar.ts +2 -1
- package/src/RatingIndicator.ts +2 -1
- package/src/Review.ts +4 -3
- package/src/ReviewItem.ts +2 -1
- package/src/Search.ts +36 -19
- package/src/SearchTemplate.tsx +1 -1
- package/src/SearchableListBase.ts +4 -3
- package/src/SecondaryNavigation.ts +2 -1
- package/src/SecondaryNavigationSubItem.ts +2 -1
- package/src/SelectBase.ts +6 -12
- package/src/SelectBox.ts +1 -1
- package/src/SocialMediaButton.ts +2 -1
- package/src/StatusBadge.ts +7 -6
- package/src/StepInput.ts +9 -2
- package/src/StepInputTemplate.tsx +6 -2
- package/src/Tab.ts +2 -1
- package/src/TabNavigation.ts +2 -1
- package/src/Table.ts +7 -15
- package/src/TableCell.ts +3 -3
- package/src/TableCellBase.ts +1 -3
- package/src/TableCellTemplate.tsx +21 -0
- package/src/TableGroupRow.ts +4 -6
- package/src/TableGroupRowTemplate.tsx +36 -0
- package/src/TableHeaderCell.ts +3 -4
- package/src/TableHeaderCellTemplate.tsx +36 -0
- package/src/TableHeaderRow.ts +3 -5
- package/src/TableHeaderRowTemplate.tsx +13 -0
- package/src/TableRow.ts +3 -4
- package/src/TableRowBase.ts +1 -2
- package/src/TableRowTemplate.tsx +13 -0
- package/src/TableTemplate.tsx +94 -0
- package/src/TextArea.ts +8 -8
- package/src/TextField.ts +7 -6
- package/src/Toast.ts +17 -8
- package/src/ToastTemplate.tsx +42 -0
- package/src/TruncatedText.ts +3 -2
- package/src/Upload.ts +2 -1
- package/src/UploadItem.hbs +1 -1
- package/src/UploadItem.ts +13 -3
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/templates/MastheadShellTemplate.lit.ts +8 -7
- package/src/generated/templates/UploadItemTemplate.lit.ts +1 -1
- package/src/generated/themes/ImageGridTable.css.ts +9 -0
- package/src/generated/themes/ImageGridTableItem.css.ts +9 -0
- package/src/generated/themes/ImageGridTicker.css.ts +1 -1
- package/src/generated/themes/MastheadItem.css.ts +1 -1
- package/src/generated/themes/MastheadShell.css.ts +1 -1
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/i18n/messagebundle.properties +6 -2
- package/src/i18n/messagebundle_en.properties +3 -2
- package/src/themes/ImageGridTable.css +47 -0
- package/src/themes/ImageGridTableItem.css +102 -0
- package/src/themes/ImageGridTicker.css +1 -0
- package/src/themes/MastheadItem.css +1 -0
- package/src/themes/MastheadShell.css +1 -0
- package/src/types/CustomTranslations.ts +1 -0
- package/src/types/EventRibbon.ts +1 -1
- package/src/utils/translate.ts +21 -0
- package/dist/assets/messagebundle_en-D_yCmNrd.js +0 -1
- package/dist/generated/templates/TableCellTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TableCellTemplate.lit.js +0 -8
- package/dist/generated/templates/TableCellTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TableGroupRowTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TableGroupRowTemplate.lit.js +0 -9
- package/dist/generated/templates/TableGroupRowTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TableHeaderCellTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TableHeaderCellTemplate.lit.js +0 -11
- package/dist/generated/templates/TableHeaderCellTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TableHeaderRowTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TableHeaderRowTemplate.lit.js +0 -8
- package/dist/generated/templates/TableHeaderRowTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TableRowTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TableRowTemplate.lit.js +0 -8
- package/dist/generated/templates/TableRowTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TableTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TableTemplate.lit.js +0 -13
- package/dist/generated/templates/TableTemplate.lit.js.map +0 -1
- package/dist/generated/templates/ToastTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/ToastTemplate.lit.js +0 -10
- package/dist/generated/templates/ToastTemplate.lit.js.map +0 -1
- package/src/Table.hbs +0 -45
- package/src/TableCell.hbs +0 -4
- package/src/TableGroupRow.hbs +0 -24
- package/src/TableHeaderCell.hbs +0 -19
- package/src/TableHeaderRow.hbs +0 -3
- package/src/TableRow.hbs +0 -3
- package/src/Toast.hbs +0 -20
- package/src/generated/templates/TableCellTemplate.lit.ts +0 -12
- package/src/generated/templates/TableGroupRowTemplate.lit.ts +0 -13
- package/src/generated/templates/TableHeaderCellTemplate.lit.ts +0 -15
- package/src/generated/templates/TableHeaderRowTemplate.lit.ts +0 -12
- package/src/generated/templates/TableRowTemplate.lit.ts +0 -12
- package/src/generated/templates/TableTemplate.lit.ts +0 -17
- package/src/generated/templates/ToastTemplate.lit.ts +0 -14
package/package.json
CHANGED
package/src/Accordion.ts
CHANGED
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
import AccordionTemplate from "./AccordionTemplate.js";
|
|
14
14
|
import type UDExAccordionItem from "./AccordionItem.js";
|
|
15
15
|
import { COLLAPSE_ALL, EXPAND_ALL } from "./generated/i18n/i18n-defaults.js";
|
|
16
|
+
import translate from "./utils/translate.js";
|
|
16
17
|
|
|
17
18
|
// Styles
|
|
18
19
|
import AccordionCss from "./generated/themes/Accordion.css.js";
|
|
@@ -241,8 +242,8 @@ class UDExAccordion extends UI5Element {
|
|
|
241
242
|
|
|
242
243
|
get toggleAllText(): string {
|
|
243
244
|
return this._allExpanded
|
|
244
|
-
? UDExAccordion
|
|
245
|
-
: UDExAccordion
|
|
245
|
+
? translate(UDExAccordion, COLLAPSE_ALL)
|
|
246
|
+
: translate(UDExAccordion, EXPAND_ALL);
|
|
246
247
|
}
|
|
247
248
|
|
|
248
249
|
get items(): {item: UDExAccordionItem}[] {
|
package/src/Avatar.ts
CHANGED
|
@@ -8,6 +8,8 @@ import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
|
8
8
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
9
9
|
import { ATTENTION_BADGE, AVATAR_TEXT, DISABLED } from "./generated/i18n/i18n-defaults.js";
|
|
10
10
|
import type AvatarColorScheme from "@ui5/webcomponents/dist/types/AvatarColorScheme.js";
|
|
11
|
+
import translate from "./utils/translate.js";
|
|
12
|
+
|
|
11
13
|
// Template
|
|
12
14
|
import AvatarTemplate from "./AvatarTemplate.js";
|
|
13
15
|
|
|
@@ -254,9 +256,9 @@ class UDExAvatar extends UI5Element {
|
|
|
254
256
|
}
|
|
255
257
|
|
|
256
258
|
get avatarAccessibleName(): string {
|
|
257
|
-
let accName = `${this.accessibleName ? this.accessibleName : `${UDExAvatar
|
|
258
|
-
accName += ` ${this.disabled ? UDExAvatar
|
|
259
|
-
accName += ` ${this.showAttentionBadge ? UDExAvatar
|
|
259
|
+
let accName = `${this.accessibleName ? this.accessibleName : `${translate(UDExAvatar, AVATAR_TEXT)} ${this.initials}`}`;
|
|
260
|
+
accName += ` ${this.disabled ? translate(UDExAvatar, DISABLED) : ""}`;
|
|
261
|
+
accName += ` ${this.showAttentionBadge ? translate(UDExAvatar, ATTENTION_BADGE) : ""}`;
|
|
260
262
|
return accName;
|
|
261
263
|
}
|
|
262
264
|
}
|
package/src/Breadcrumbs.ts
CHANGED
|
@@ -23,6 +23,7 @@ import {
|
|
|
23
23
|
BREADCRUMBS_ARIA_LABEL,
|
|
24
24
|
BREADCRUMBS_OVERFLOW_ARIA_LABEL,
|
|
25
25
|
} from "./generated/i18n/i18n-defaults.js";
|
|
26
|
+
import translate from "./utils/translate.js";
|
|
26
27
|
|
|
27
28
|
// Styles
|
|
28
29
|
import BreadcrumbsCss from "./generated/themes/Breadcrumbs.css.js";
|
|
@@ -322,15 +323,15 @@ class UDExBreadcrumbs extends UI5Element {
|
|
|
322
323
|
}
|
|
323
324
|
|
|
324
325
|
get _breadcrumbsAccessibleNameText(): string {
|
|
325
|
-
return UDExBreadcrumbs
|
|
326
|
+
return translate(UDExBreadcrumbs, BREADCRUMBS_ARIA_LABEL);
|
|
326
327
|
}
|
|
327
328
|
|
|
328
329
|
get _dropdownArrowAccessibleNameText(): string {
|
|
329
|
-
return UDExBreadcrumbs
|
|
330
|
+
return translate(UDExBreadcrumbs, BREADCRUMBS_OVERFLOW_ARIA_LABEL);
|
|
330
331
|
}
|
|
331
332
|
|
|
332
333
|
get _dropdownAccessibleNameText(): string {
|
|
333
|
-
return UDExBreadcrumbs
|
|
334
|
+
return translate(UDExBreadcrumbs, AVAILABLE_VALUES);
|
|
334
335
|
}
|
|
335
336
|
}
|
|
336
337
|
|
package/src/Button.ts
CHANGED
|
@@ -14,6 +14,7 @@ import UDExButtonDesign from "./types/ButtonDesign.js";
|
|
|
14
14
|
|
|
15
15
|
// Styles
|
|
16
16
|
import ButtonCss from "./generated/themes/Button.css.js";
|
|
17
|
+
import translate from "./utils/translate.js";
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
20
|
* @class
|
|
@@ -116,9 +117,9 @@ class UDExButton extends Button {
|
|
|
116
117
|
|
|
117
118
|
let typeText;
|
|
118
119
|
if (designValue) {
|
|
119
|
-
typeText = shouldReadDesign ?
|
|
120
|
+
typeText = shouldReadDesign ? translate(UDExButton, UDExButton.typeTextMappings()[designValue]) : "";
|
|
120
121
|
}
|
|
121
|
-
return `${typeText} ${this.toggled ? UDExButton
|
|
122
|
+
return `${typeText} ${this.toggled ? translate(UDExButton, TOGGLED) : ""}`.trim();
|
|
122
123
|
}
|
|
123
124
|
|
|
124
125
|
get designValue(): string | null {
|
package/src/Carousel.ts
CHANGED
|
@@ -13,6 +13,7 @@ import redirectAttributes from "./utils/redirectAttributes.js";
|
|
|
13
13
|
import type UI5Carousel from "@ui5/webcomponents/dist/Carousel.js";
|
|
14
14
|
import type { UI5CustomEvent } from "@ui5/webcomponents-base";
|
|
15
15
|
import type Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
16
|
+
import translate from "./utils/translate.js";
|
|
16
17
|
|
|
17
18
|
import CarouselTemplate from "./CarouselTemplate.js";
|
|
18
19
|
|
|
@@ -139,11 +140,11 @@ class UDExCarousel extends UI5Element {
|
|
|
139
140
|
static i18nBundle: I18nBundle;
|
|
140
141
|
|
|
141
142
|
get nextPageText(): string {
|
|
142
|
-
return UDExCarousel
|
|
143
|
+
return translate(UDExCarousel, CAROUSEL_NEXT_ARROW_TEXT);
|
|
143
144
|
}
|
|
144
145
|
|
|
145
146
|
get previousPageText(): string {
|
|
146
|
-
return UDExCarousel
|
|
147
|
+
return translate(UDExCarousel, CAROUSEL_PREVIOUS_ARROW_TEXT);
|
|
147
148
|
}
|
|
148
149
|
|
|
149
150
|
get carouselClass(): string {
|
|
@@ -188,7 +189,6 @@ class UDExCarousel extends UI5Element {
|
|
|
188
189
|
}
|
|
189
190
|
|
|
190
191
|
this._carousel?._navButtonClick(e as unknown as UI5CustomEvent<Icon, "click">);
|
|
191
|
-
this._calculateDisabledButtonsState();
|
|
192
192
|
}
|
|
193
193
|
|
|
194
194
|
_nextButtonClick(e: UI5CustomEvent<UDExButton, "click">) {
|
|
@@ -197,7 +197,6 @@ class UDExCarousel extends UI5Element {
|
|
|
197
197
|
}
|
|
198
198
|
|
|
199
199
|
this._carousel?._navButtonClick(e as unknown as UI5CustomEvent<Icon, "click">);
|
|
200
|
-
this._calculateDisabledButtonsState();
|
|
201
200
|
}
|
|
202
201
|
|
|
203
202
|
_onkeydown(e: KeyboardEvent) {
|
|
@@ -206,6 +205,10 @@ class UDExCarousel extends UI5Element {
|
|
|
206
205
|
}
|
|
207
206
|
}
|
|
208
207
|
|
|
208
|
+
_handleNavigate(): void {
|
|
209
|
+
this._calculateDisabledButtonsState();
|
|
210
|
+
}
|
|
211
|
+
|
|
209
212
|
onAfterRendering() {
|
|
210
213
|
redirectAttributes(this, "carousel");
|
|
211
214
|
|
package/src/CarouselTemplate.tsx
CHANGED
|
@@ -18,7 +18,8 @@ export default function CarouselTemplate(this: Carousel) {
|
|
|
18
18
|
hideNavigationArrows
|
|
19
19
|
arrowsPlacement={CarouselArrowsPlacement.Navigation}
|
|
20
20
|
accessibleName={this.accessibleName}
|
|
21
|
-
hidePageIndicator={this._hidePageIndicator}
|
|
21
|
+
hidePageIndicator={this._hidePageIndicator}
|
|
22
|
+
onNavigate={this._handleNavigate}>
|
|
22
23
|
{this.items.map(item =>
|
|
23
24
|
<slot name={(item as SlottedChild)._individualSlot}></slot>
|
|
24
25
|
)}
|
package/src/Checkbox.ts
CHANGED
|
@@ -11,6 +11,7 @@ import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delega
|
|
|
11
11
|
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
12
12
|
import WrappingType from "@ui5/webcomponents/dist/types/WrappingType.js";
|
|
13
13
|
import type Label from "@ui5/webcomponents/dist/Label.js";
|
|
14
|
+
import translate from "./utils/translate.js";
|
|
14
15
|
|
|
15
16
|
// Styles
|
|
16
17
|
import CheckboxCss from "./generated/themes/Checkbox.css.js";
|
|
@@ -89,8 +90,8 @@ class UDExCheckbox extends CheckBox {
|
|
|
89
90
|
|
|
90
91
|
valueStateMappings(): Record<string, string> {
|
|
91
92
|
return {
|
|
92
|
-
[UDExCheckboxValueState.Error]: UDExCheckbox
|
|
93
|
-
[UDExCheckboxValueState.Success]: UDExCheckbox
|
|
93
|
+
[UDExCheckboxValueState.Error]: translate(UDExCheckbox, VALUE_STATE_ERROR),
|
|
94
|
+
[UDExCheckboxValueState.Success]: translate(UDExCheckbox, VALUE_STATE_SUCCESS),
|
|
94
95
|
};
|
|
95
96
|
}
|
|
96
97
|
|
package/src/Contact.ts
CHANGED
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
} from "./generated/i18n/i18n-defaults.js";
|
|
13
13
|
import i18n from "@ui5/webcomponents-base/decorators/i18n.js";
|
|
14
14
|
import type I18nBundle from "@ui5/webcomponents-base/i18nBundle.js";
|
|
15
|
+
import translate from "./utils/translate.js";
|
|
15
16
|
|
|
16
17
|
// Styles
|
|
17
18
|
import ContactCss from "./generated/themes/Contact.css.js";
|
|
@@ -175,19 +176,19 @@ class UDExContact extends UI5Element {
|
|
|
175
176
|
}
|
|
176
177
|
|
|
177
178
|
get _completeListTitle(): string {
|
|
178
|
-
return `${UDExContact
|
|
179
|
+
return `${translate(UDExContact, COMPLETE_LIST_OF)} `;
|
|
179
180
|
}
|
|
180
181
|
|
|
181
182
|
get _localCountryTitle(): string {
|
|
182
|
-
return UDExContact
|
|
183
|
+
return translate(UDExContact, LOCAL_COUNTRY_NAMES);
|
|
183
184
|
}
|
|
184
185
|
|
|
185
186
|
get _numbersTitle(): string {
|
|
186
|
-
return UDExContact
|
|
187
|
+
return translate(UDExContact, CALL_US_TODAY);
|
|
187
188
|
}
|
|
188
189
|
|
|
189
190
|
get _contactUsTitle(): string {
|
|
190
|
-
return UDExContact
|
|
191
|
+
return translate(UDExContact, CONTACT_US);
|
|
191
192
|
}
|
|
192
193
|
|
|
193
194
|
get _hasNumbersList(): boolean {
|
package/src/CountrySelector.ts
CHANGED
|
@@ -40,7 +40,7 @@ type UDExCountrySelectorChangeSearchEventDetail = {
|
|
|
40
40
|
* <code>import "@sapudex/web-components/dist/CountrySelector.js";</code>
|
|
41
41
|
*
|
|
42
42
|
* @constructor
|
|
43
|
-
* @extends
|
|
43
|
+
* @extends UDExSelectBase
|
|
44
44
|
* @tagname udex-country-selector
|
|
45
45
|
* @public
|
|
46
46
|
*/
|
package/src/DatePicker.ts
CHANGED
|
@@ -12,6 +12,7 @@ import { CALENDAR_ICON, DATEPICKER_DATE_DESCRIPTION } from "./generated/i18n/i18
|
|
|
12
12
|
import type UDExTextField from "./TextField.js";
|
|
13
13
|
import type UDExDropdown from "./Dropdown.js";
|
|
14
14
|
import UDExValueState from "./types/common.js";
|
|
15
|
+
import translate from "./utils/translate.js";
|
|
15
16
|
|
|
16
17
|
// Template
|
|
17
18
|
import DatePickerTemplate from "./DatePickerTemplate.js";
|
|
@@ -543,11 +544,11 @@ class UDExDatePicker extends DateComponentBase {
|
|
|
543
544
|
}
|
|
544
545
|
|
|
545
546
|
get accessibleIconName(): string {
|
|
546
|
-
return UDExDatePicker
|
|
547
|
+
return translate(UDExDatePicker, CALENDAR_ICON);
|
|
547
548
|
}
|
|
548
549
|
|
|
549
550
|
get dateAccessibleName(): string {
|
|
550
|
-
return this.accessibleName || UDExDatePicker
|
|
551
|
+
return this.accessibleName || translate(UDExDatePicker, DATEPICKER_DATE_DESCRIPTION);
|
|
551
552
|
}
|
|
552
553
|
|
|
553
554
|
get isRangeMode(): boolean {
|
package/src/EventRibbon.ts
CHANGED
|
@@ -3,7 +3,7 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
|
|
|
3
3
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
4
4
|
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
5
5
|
import type {
|
|
6
|
-
|
|
6
|
+
UDExEventRibbonColorScheme, UDExEventRibbonLink, UDExEventRibbonIcon, UDExEventRibbonLogo,
|
|
7
7
|
} from "./types/EventRibbon.js";
|
|
8
8
|
import { eventLogoText, UDExEventRibbonMode } from "./types/EventRibbon.js";
|
|
9
9
|
import "@ui5/webcomponents-icons/add-calendar.js";
|
|
@@ -109,7 +109,7 @@ class UDExEventRibbon extends UI5Element {
|
|
|
109
109
|
* @public
|
|
110
110
|
*/
|
|
111
111
|
@property({ type: String })
|
|
112
|
-
backgroundColorScheme!:
|
|
112
|
+
backgroundColorScheme!: UDExEventRibbonColorScheme;
|
|
113
113
|
|
|
114
114
|
/**
|
|
115
115
|
* Allows control over the background image source.
|
package/src/FeedItem.ts
CHANGED
|
@@ -9,6 +9,7 @@ import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
|
9
9
|
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
10
10
|
import FeedItemTemplate from "./FeedItemTemplate.js";
|
|
11
11
|
import { LOCATION } from "./generated/i18n/i18n-defaults.js";
|
|
12
|
+
import translate from "./utils/translate.js";
|
|
12
13
|
|
|
13
14
|
// Styles
|
|
14
15
|
import FeedItemCss from "./generated/themes/FeedItem.css.js";
|
|
@@ -170,7 +171,7 @@ class UDExFeedItem extends UI5Element {
|
|
|
170
171
|
}
|
|
171
172
|
|
|
172
173
|
get locationIconLabel(): string {
|
|
173
|
-
return UDExFeedItem
|
|
174
|
+
return translate(UDExFeedItem, LOCATION);
|
|
174
175
|
}
|
|
175
176
|
|
|
176
177
|
formatDate(d: string | undefined): FeedDate {
|
package/src/FilterMenu.ts
CHANGED
|
@@ -33,6 +33,7 @@ import "@ui5/webcomponents-icons/dist/navigation-down-arrow.js";
|
|
|
33
33
|
import FilterMenuTemplate from "./generated/templates/FilterMenuTemplate.lit.js";
|
|
34
34
|
import SearchableListBaseTemplate from "./generated/templates/SearchableListBaseTemplate.lit.js";
|
|
35
35
|
import type UDExListGroupHeaderBase from "./ListGroupHeaderBase.js";
|
|
36
|
+
import translate from "./utils/translate.js";
|
|
36
37
|
|
|
37
38
|
// Styles
|
|
38
39
|
import FilterMenuCss from "./generated/themes/FilterMenu.css.js";
|
|
@@ -550,19 +551,19 @@ class UDExFilterMenu extends UDExSearchableListBase {
|
|
|
550
551
|
}
|
|
551
552
|
|
|
552
553
|
get getResultLabelText(): string {
|
|
553
|
-
return this.resultBtnLabel !== undefined && this.resultBtnLabel.length > 0 && this.resultBtnLabel ? this.resultBtnLabel : UDExFilterMenu
|
|
554
|
+
return this.resultBtnLabel !== undefined && this.resultBtnLabel.length > 0 && this.resultBtnLabel ? this.resultBtnLabel : translate(UDExFilterMenu, SHOW_RESULTS);
|
|
554
555
|
}
|
|
555
556
|
|
|
556
557
|
get getResetLabelText(): string {
|
|
557
|
-
return this.resetBtnLabel !== undefined && this.resetBtnLabel.length > 0 ? this.resetBtnLabel : UDExFilterMenu
|
|
558
|
+
return this.resetBtnLabel !== undefined && this.resetBtnLabel.length > 0 ? this.resetBtnLabel : translate(UDExFilterMenu, RESET);
|
|
558
559
|
}
|
|
559
560
|
|
|
560
561
|
get _iconAccessibleNameText(): string {
|
|
561
|
-
return UDExFilterMenu
|
|
562
|
+
return translate(UDExFilterMenu, SELECT_OPTIONS);
|
|
562
563
|
}
|
|
563
564
|
|
|
564
565
|
get triggerButtonAccessibleName(): string {
|
|
565
|
-
return this.accessibleName || UDExFilterMenu
|
|
566
|
+
return this.accessibleName || translate(UDExFilterMenu, SELECT_OPTIONS);
|
|
566
567
|
}
|
|
567
568
|
|
|
568
569
|
get searchableList() {
|
package/src/Footer.ts
CHANGED
|
@@ -39,6 +39,7 @@ import {
|
|
|
39
39
|
ICP_NUMBER,
|
|
40
40
|
BACK_TO_TOP,
|
|
41
41
|
} from "./generated/i18n/i18n-defaults.js";
|
|
42
|
+
import translate from "./utils/translate.js";
|
|
42
43
|
|
|
43
44
|
// Styles
|
|
44
45
|
import FooterCss from "./generated/themes/Footer.css.js";
|
|
@@ -529,58 +530,58 @@ class UDExFooter extends UI5Element {
|
|
|
529
530
|
}
|
|
530
531
|
|
|
531
532
|
get phoneNumberAccessibleName(): string {
|
|
532
|
-
return `${UDExFooter
|
|
533
|
+
return `${translate(UDExFooter, PHONE_NUMBER)} `;
|
|
533
534
|
}
|
|
534
535
|
|
|
535
536
|
get contactUsAccessibleName(): string {
|
|
536
|
-
return UDExFooter
|
|
537
|
+
return translate(UDExFooter, CONTACT_US);
|
|
537
538
|
}
|
|
538
539
|
|
|
539
540
|
get contactUsAccessibleLabel(): string {
|
|
540
541
|
if (this.contactUsLink.includes("mailto:")) {
|
|
541
|
-
return `${this.contactUsAccessibleName} ${UDExFooter
|
|
542
|
+
return `${this.contactUsAccessibleName} ${translate(UDExFooter, EMAIL)}`;
|
|
542
543
|
}
|
|
543
544
|
return `${this.contactUsAccessibleName}`;
|
|
544
545
|
}
|
|
545
546
|
|
|
546
547
|
get chatWithUsAccessibleName(): string {
|
|
547
|
-
return UDExFooter
|
|
548
|
+
return translate(UDExFooter, CHAT_WITH_US);
|
|
548
549
|
}
|
|
549
550
|
|
|
550
551
|
get _quickLinksTitle(): string {
|
|
551
|
-
return this.quickLinksTitle || UDExFooter
|
|
552
|
+
return this.quickLinksTitle || translate(UDExFooter, QUICK_LINKS);
|
|
552
553
|
}
|
|
553
554
|
|
|
554
555
|
get _trendingTitle(): string {
|
|
555
|
-
return this.trendingTitle || UDExFooter
|
|
556
|
+
return this.trendingTitle || translate(UDExFooter, TRENDING);
|
|
556
557
|
}
|
|
557
558
|
|
|
558
559
|
get _aboutSapTitle(): string {
|
|
559
|
-
return this.aboutSapTitle || UDExFooter
|
|
560
|
+
return this.aboutSapTitle || translate(UDExFooter, ABOUT_SAP);
|
|
560
561
|
}
|
|
561
562
|
|
|
562
563
|
get _siteInformationTitle(): string {
|
|
563
|
-
return this.siteInformationTitle || UDExFooter
|
|
564
|
+
return this.siteInformationTitle || translate(UDExFooter, SITE_INFORMATION);
|
|
564
565
|
}
|
|
565
566
|
|
|
566
567
|
get completeListTitle(): string {
|
|
567
|
-
return `${UDExFooter
|
|
568
|
+
return `${translate(UDExFooter, SEE_COMPLETE_LIST)} `;
|
|
568
569
|
}
|
|
569
570
|
|
|
570
571
|
get localCountryTitle(): string {
|
|
571
|
-
return UDExFooter
|
|
572
|
+
return translate(UDExFooter, LOCAL_COUNTRY_NAMES);
|
|
572
573
|
}
|
|
573
574
|
|
|
574
575
|
get copyrightText(): string {
|
|
575
|
-
return UDExFooter
|
|
576
|
+
return translate(UDExFooter, COPYRIGHT, new Date().getFullYear());
|
|
576
577
|
}
|
|
577
578
|
|
|
578
579
|
get chineseICPNumberText(): string {
|
|
579
|
-
return this.chineseIcpNumber ?? UDExFooter
|
|
580
|
+
return this.chineseIcpNumber ?? translate(UDExFooter, ICP_NUMBER);
|
|
580
581
|
}
|
|
581
582
|
|
|
582
583
|
get chineseSecurityNetworkNumberText(): string {
|
|
583
|
-
return this.chineseSecurityNetworkNumber ? ` ${this.chineseSecurityNetworkNumber}` : ` ${UDExFooter
|
|
584
|
+
return this.chineseSecurityNetworkNumber ? ` ${this.chineseSecurityNetworkNumber}` : ` ${translate(UDExFooter, PUBLIC_SECURITY_NETWORK_NUMBER)}`;
|
|
584
585
|
}
|
|
585
586
|
|
|
586
587
|
get isMobile(): boolean {
|
|
@@ -626,7 +627,7 @@ class UDExFooter extends UI5Element {
|
|
|
626
627
|
}
|
|
627
628
|
|
|
628
629
|
get backToTopTitle(): string {
|
|
629
|
-
return UDExFooter
|
|
630
|
+
return translate(UDExFooter, BACK_TO_TOP);
|
|
630
631
|
}
|
|
631
632
|
|
|
632
633
|
get hasSocialLinksSlot(): boolean {
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
+
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
3
|
+
import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
4
|
+
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
5
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
6
|
+
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
7
|
+
import type UDExImageGridTableItem from "./ImageGridTableItem.js";
|
|
8
|
+
import ImageGridTableTemplate from "./ImageGridTableTemplate.js";
|
|
9
|
+
import { Breakpoints } from "./utils/Breakpoints.js";
|
|
10
|
+
|
|
11
|
+
// Styles
|
|
12
|
+
import ImageGridTableCss from "./generated/themes/ImageGridTable.css.js";
|
|
13
|
+
import property from "@ui5/webcomponents-base/decorators/property.js";
|
|
14
|
+
|
|
15
|
+
export enum UDExImageGridTableVariable {
|
|
16
|
+
columns = "--udex-image-grid-table-columns",
|
|
17
|
+
gapDesktop = "--udex-image-grid-table-gap-xl-m",
|
|
18
|
+
gapMobile = "--udex-image-grid-table-gap-s",
|
|
19
|
+
minWidth = "--udex-image-grid-table-item-min-width",
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @class
|
|
24
|
+
*
|
|
25
|
+
* <h3 class="comment-api-title">Overview</h3>
|
|
26
|
+
*
|
|
27
|
+
*
|
|
28
|
+
* <h3>Usage</h3>
|
|
29
|
+
*
|
|
30
|
+
* For the <code>udex-image-grid-table</code>
|
|
31
|
+
* <h3>ES6 Module Import</h3>
|
|
32
|
+
*
|
|
33
|
+
* <code>import "@sapudex/web-components/dist/ImageGridTable.js";</code>
|
|
34
|
+
*
|
|
35
|
+
* @constructor
|
|
36
|
+
* @extends UI5Element
|
|
37
|
+
* @public
|
|
38
|
+
*/
|
|
39
|
+
@customElement({
|
|
40
|
+
tag: "udex-image-grid-table",
|
|
41
|
+
renderer: jsxRenderer,
|
|
42
|
+
styles: ImageGridTableCss,
|
|
43
|
+
template: ImageGridTableTemplate,
|
|
44
|
+
})
|
|
45
|
+
|
|
46
|
+
class UDExImageGridTable extends UI5Element {
|
|
47
|
+
/**
|
|
48
|
+
* Slot for image grid table items.
|
|
49
|
+
*
|
|
50
|
+
* @slot
|
|
51
|
+
* @public
|
|
52
|
+
*/
|
|
53
|
+
@slot({ type: HTMLElement, "default": true })
|
|
54
|
+
items!: Array<UDExImageGridTableItem>;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Grayscale mode enhances visual harmony and can be used for minimal,
|
|
58
|
+
* professional layouts or to de-emphasize logos.
|
|
59
|
+
*
|
|
60
|
+
* @default undefined
|
|
61
|
+
* @public
|
|
62
|
+
*/
|
|
63
|
+
@property({ type: Boolean })
|
|
64
|
+
grayscale?: boolean;
|
|
65
|
+
|
|
66
|
+
_handleResizeBound: ResizeObserverCallback;
|
|
67
|
+
|
|
68
|
+
constructor() {
|
|
69
|
+
super();
|
|
70
|
+
this._handleResizeBound = this.handleResize.bind(this);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
onAfterRendering(): void {
|
|
74
|
+
if (!this.isSmallComponentSize) {
|
|
75
|
+
this._renderGrid();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
onBeforeRendering(): void {
|
|
80
|
+
if (this.grayscale) {
|
|
81
|
+
this._setGrayscaleMode();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
onEnterDOM(): void {
|
|
86
|
+
ResizeHandler.register(this, this._handleResizeBound);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
onExitDOM(): void {
|
|
90
|
+
ResizeHandler.deregister(this, this._handleResizeBound);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
handleResize(): void {
|
|
94
|
+
if (!this.isSmallComponentSize) {
|
|
95
|
+
this._renderGrid();
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
_renderGrid(): void {
|
|
100
|
+
const containerWidth = this.offsetWidth;
|
|
101
|
+
const itemCount = this.items.length;
|
|
102
|
+
const minWidth = this.itemMinWidth;
|
|
103
|
+
const gap = this.itemGap;
|
|
104
|
+
|
|
105
|
+
if (!containerWidth || itemCount === 0) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
let columns = Math.floor((containerWidth - gap) / (minWidth + gap));
|
|
110
|
+
columns = Math.max(1, columns);
|
|
111
|
+
|
|
112
|
+
if (itemCount % columns === 1 && columns > 1) {
|
|
113
|
+
columns -= 1;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
this.style.setProperty(
|
|
117
|
+
UDExImageGridTableVariable.columns,
|
|
118
|
+
String(columns),
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
_setGrayscaleMode(): void {
|
|
123
|
+
this.items.forEach(item => {
|
|
124
|
+
item._grayscale = true;
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
get itemMinWidth(): number {
|
|
129
|
+
const variableName = UDExImageGridTableVariable.minWidth;
|
|
130
|
+
return parseInt(this.getVariableValue(variableName));
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
get itemGap(): number {
|
|
134
|
+
const variableName = this.isSmallComponentSize
|
|
135
|
+
? UDExImageGridTableVariable.gapMobile
|
|
136
|
+
: UDExImageGridTableVariable.gapDesktop;
|
|
137
|
+
return parseInt(this.getVariableValue(variableName));
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
get isSmallComponentSize(): boolean {
|
|
141
|
+
return this.offsetWidth <= Breakpoints.S.max;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
getVariableValue(variableName: string): string {
|
|
145
|
+
return window.getComputedStyle(this).getPropertyValue(`${variableName}`);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
UDExImageGridTable.define();
|
|
150
|
+
|
|
151
|
+
export default UDExImageGridTable;
|