@sapudex/web-components 2.21.0 → 2.23.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/specs/CountrySelector.cy.tsx +158 -144
- package/cypress/specs/EventRibbon.cy.tsx +3 -1
- package/cypress/specs/ImageGridCloud.cy.tsx +78 -0
- package/cypress/specs/ImageGridCloudItem.cy.tsx +29 -0
- package/cypress/specs/SelectBox.cy.tsx +173 -206
- package/cypress/specs/Tag.cy.tsx +1 -1
- package/cypress/specs/TextField.cy.tsx +15 -0
- package/cypress/specs/Textarea.cy.tsx +15 -33
- package/cypress/support/component-imports.instrumented.ts +4 -0
- package/cypress/support/component-imports.src.ts +4 -0
- package/dist/Accordion.js +1 -0
- package/dist/Accordion.js.map +1 -1
- package/dist/AccordionItem.js +2 -0
- package/dist/AccordionItem.js.map +1 -1
- package/dist/AssetsVariables.js +2 -1
- package/dist/AssetsVariables.js.map +1 -1
- package/dist/Breadcrumbs.js +5 -0
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/ContactItem.js +2 -0
- package/dist/ContactItem.js.map +1 -1
- package/dist/CountrySelector.d.ts +25 -142
- package/dist/CountrySelector.js +91 -267
- package/dist/CountrySelector.js.map +1 -1
- package/dist/DatePicker.js +2 -1
- package/dist/DatePicker.js.map +1 -1
- package/dist/FilterMenu.d.ts +14 -2
- package/dist/FilterMenu.js +13 -1
- package/dist/FilterMenu.js.map +1 -1
- package/dist/Footer.js +27 -0
- package/dist/Footer.js.map +1 -1
- package/dist/ImageGridCloud.d.ts +76 -0
- package/dist/ImageGridCloud.js +153 -0
- package/dist/ImageGridCloud.js.map +1 -0
- package/dist/ImageGridCloudItem.d.ts +35 -0
- package/dist/ImageGridCloudItem.js +49 -0
- package/dist/ImageGridCloudItem.js.map +1 -0
- package/dist/ImageGridCloudItemTemplate.d.ts +2 -0
- package/dist/ImageGridCloudItemTemplate.js +5 -0
- package/dist/ImageGridCloudItemTemplate.js.map +1 -0
- package/dist/ImageGridCloudTemplate.d.ts +2 -0
- package/dist/ImageGridCloudTemplate.js +6 -0
- package/dist/ImageGridCloudTemplate.js.map +1 -0
- package/dist/ImageGridTicker.d.ts +2 -2
- package/dist/ImageGridTicker.js +1 -8
- package/dist/ImageGridTicker.js.map +1 -1
- package/dist/LinkListItem.js +1 -0
- package/dist/LinkListItem.js.map +1 -1
- package/dist/List.js +5 -3
- package/dist/List.js.map +1 -1
- package/dist/ListGroupHeader.js +1 -0
- package/dist/ListGroupHeader.js.map +1 -1
- package/dist/ListGroupHeaderBase.d.ts +1 -0
- package/dist/ListGroupHeaderBase.js +3 -0
- package/dist/ListGroupHeaderBase.js.map +1 -1
- package/dist/ListItem.js +2 -0
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItemBase.d.ts +12 -0
- package/dist/ListItemBase.js +21 -2
- package/dist/ListItemBase.js.map +1 -1
- package/dist/ListSelectAll.js +1 -0
- package/dist/ListSelectAll.js.map +1 -1
- package/dist/MastheadCountrySelector.js +15 -0
- package/dist/MastheadCountrySelector.js.map +1 -1
- package/dist/MastheadItem.js +10 -0
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadMenu.js +6 -0
- package/dist/MastheadMenu.js.map +1 -1
- package/dist/MastheadMobileMenu.js +11 -0
- package/dist/MastheadMobileMenu.js.map +1 -1
- package/dist/MastheadProfileMenu.js +11 -0
- package/dist/MastheadProfileMenu.js.map +1 -1
- package/dist/MastheadShell.js +41 -0
- package/dist/MastheadShell.js.map +1 -1
- package/dist/MediaPlayer.js +3 -0
- package/dist/MediaPlayer.js.map +1 -1
- package/dist/MediaPlayerTemplate.js +4 -4
- package/dist/MediaPlayerTemplate.js.map +1 -1
- package/dist/MediaPlayerVimeo.d.ts +3 -3
- package/dist/MediaPlayerVimeo.js +1 -0
- package/dist/MediaPlayerVimeo.js.map +1 -1
- package/dist/MediaPlayerYoutube.js +3 -0
- package/dist/MediaPlayerYoutube.js.map +1 -1
- package/dist/Pagination.js +1 -1
- package/dist/Pagination.js.map +1 -1
- package/dist/Search.d.ts +2 -1
- package/dist/Search.js +18 -3
- package/dist/Search.js.map +1 -1
- package/dist/SearchTemplate.d.ts +2 -0
- package/dist/SearchTemplate.js +48 -0
- package/dist/SearchTemplate.js.map +1 -0
- package/dist/SearchableListBase.d.ts +26 -16
- package/dist/SearchableListBase.js +58 -72
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SecondaryNavigation.js +19 -0
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.js +6 -0
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SecondaryNavigationSubItem.js +3 -0
- package/dist/SecondaryNavigationSubItem.js.map +1 -1
- package/dist/SelectBase.d.ts +193 -0
- package/dist/SelectBase.js +428 -0
- package/dist/SelectBase.js.map +1 -0
- package/dist/SelectBox.d.ts +30 -152
- package/dist/SelectBox.js +140 -348
- package/dist/SelectBox.js.map +1 -1
- package/dist/SocialMediaButton.js +2 -0
- package/dist/SocialMediaButton.js.map +1 -1
- package/dist/StepInput.js +2 -0
- package/dist/StepInput.js.map +1 -1
- package/dist/TabNavigation.js +3 -0
- package/dist/TabNavigation.js.map +1 -1
- package/dist/Tag.js +1 -0
- package/dist/Tag.js.map +1 -1
- package/dist/TagGroup.d.ts +23 -5
- package/dist/TagGroup.js +40 -16
- package/dist/TagGroup.js.map +1 -1
- package/dist/TagTemplate.js +4 -2
- package/dist/TagTemplate.js.map +1 -1
- package/dist/TextArea.d.ts +1 -1
- package/dist/TextArea.js +5 -5
- package/dist/TextArea.js.map +1 -1
- package/dist/TextAreaTemplate.d.ts +2 -0
- package/dist/TextAreaTemplate.js +13 -0
- package/dist/TextAreaTemplate.js.map +1 -0
- package/dist/TextField.d.ts +29 -4
- package/dist/TextField.js +33 -16
- package/dist/TextField.js.map +1 -1
- package/dist/TextFieldTemplate.d.ts +2 -0
- package/dist/TextFieldTemplate.js +14 -0
- package/dist/TextFieldTemplate.js.map +1 -0
- package/dist/Tile.js +1 -0
- package/dist/Tile.js.map +1 -1
- package/dist/Upload.js +5 -0
- package/dist/Upload.js.map +1 -1
- package/dist/assets/{InputSuggestions-B0P5JAFd.js → InputSuggestions-C8m6N2-d.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-CFj3_UAT.js → ListItemStandardExpandableTextTemplate-BwD5bYhw.js} +1 -1
- package/dist/assets/{bundle.esm-BaPBMfCT.js → bundle.esm-hGsUwmUy.js} +222 -218
- package/dist/css/themes/CountrySelector.css +1 -1
- package/dist/css/themes/EventRibbon.css +1 -1
- package/dist/css/themes/ImageGridCloud.css +1 -0
- package/dist/css/themes/ImageGridCloudItem.css +1 -0
- package/dist/css/themes/ListItem.css +1 -1
- package/dist/css/themes/MastheadItem.css +1 -1
- package/dist/css/themes/MastheadMobileMenu.css +1 -1
- package/dist/css/themes/Pagination.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/Search.css +1 -1
- package/dist/css/themes/SelectBase.css +1 -0
- package/dist/css/themes/SelectBox.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/css/themes/TagGroup.css +1 -1
- package/dist/css/themes/TextField.css +1 -1
- package/dist/custom-elements-internal.json +4627 -1311
- package/dist/custom-elements.json +1260 -1249
- package/dist/generated/templates/CountrySelectorTemplate.lit.js +3 -3
- package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ListItemTemplate.lit.js +1 -1
- package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SelectBoxTemplate.lit.js +10 -9
- package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
- package/dist/generated/themes/CountrySelector.css.d.ts +1 -1
- package/dist/generated/themes/CountrySelector.css.js +1 -1
- package/dist/generated/themes/CountrySelector.css.js.map +1 -1
- package/dist/generated/themes/EventRibbon.css.d.ts +1 -1
- package/dist/generated/themes/EventRibbon.css.js +1 -1
- package/dist/generated/themes/EventRibbon.css.js.map +1 -1
- package/dist/generated/themes/ImageGridCloud.css.d.ts +2 -0
- package/dist/generated/themes/ImageGridCloud.css.js +8 -0
- package/dist/generated/themes/ImageGridCloud.css.js.map +1 -0
- package/dist/generated/themes/ImageGridCloudItem.css.d.ts +2 -0
- package/dist/generated/themes/ImageGridCloudItem.css.js +8 -0
- package/dist/generated/themes/ImageGridCloudItem.css.js.map +1 -0
- package/dist/generated/themes/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/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/MastheadMobileMenu.css.d.ts +1 -1
- package/dist/generated/themes/MastheadMobileMenu.css.js +1 -1
- package/dist/generated/themes/MastheadMobileMenu.css.js.map +1 -1
- package/dist/generated/themes/Pagination.css.d.ts +1 -1
- package/dist/generated/themes/Pagination.css.js +1 -1
- package/dist/generated/themes/Pagination.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/Search.css.d.ts +1 -1
- package/dist/generated/themes/Search.css.js +1 -1
- package/dist/generated/themes/Search.css.js.map +1 -1
- package/dist/generated/themes/SelectBase.css.d.ts +2 -0
- package/dist/generated/themes/SelectBase.css.js +8 -0
- package/dist/generated/themes/SelectBase.css.js.map +1 -0
- package/dist/generated/themes/SelectBox.css.d.ts +1 -1
- package/dist/generated/themes/SelectBox.css.js +1 -1
- package/dist/generated/themes/SelectBox.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/generated/themes/TagGroup.css.d.ts +1 -1
- package/dist/generated/themes/TagGroup.css.js +1 -1
- package/dist/generated/themes/TagGroup.css.js.map +1 -1
- package/dist/generated/themes/TextField.css.d.ts +1 -1
- package/dist/generated/themes/TextField.css.js +1 -1
- package/dist/generated/themes/TextField.css.js.map +1 -1
- package/dist/types/common.d.ts +1 -1
- package/dist/types/common.js +1 -1
- package/dist/types/common.js.map +1 -1
- package/dist/vscode.html-custom-data.json +49 -235
- package/dist/web-types.json +347 -832
- package/package.json +1 -1
- package/src/Accordion.ts +1 -0
- package/src/AccordionItem.ts +2 -0
- package/src/AssetsVariables.ts +2 -1
- package/src/Breadcrumbs.ts +5 -0
- package/src/ContactItem.ts +2 -0
- package/src/CountrySelector.hbs +6 -61
- package/src/CountrySelector.ts +93 -374
- package/src/DatePicker.ts +2 -1
- package/src/FilterMenu.ts +15 -3
- package/src/Footer.ts +27 -0
- package/src/ImageGridCloud.ts +188 -0
- package/src/ImageGridCloudItem.ts +57 -0
- package/src/ImageGridCloudItemTemplate.tsx +11 -0
- package/src/ImageGridCloudTemplate.tsx +16 -0
- package/src/ImageGridTicker.ts +3 -3
- package/src/LinkListItem.ts +1 -0
- package/src/List.ts +5 -3
- package/src/ListGroupHeader.ts +1 -0
- package/src/ListGroupHeaderBase.ts +4 -0
- package/src/ListItem.hbs +0 -1
- package/src/ListItem.ts +2 -0
- package/src/ListItemBase.ts +21 -3
- package/src/ListSelectAll.ts +1 -0
- package/src/MastheadCountrySelector.ts +15 -0
- package/src/MastheadItem.ts +10 -0
- package/src/MastheadMenu.ts +6 -0
- package/src/MastheadMobileMenu.ts +11 -0
- package/src/MastheadProfileMenu.ts +11 -0
- package/src/MastheadShell.ts +41 -0
- package/src/MediaPlayer.ts +3 -0
- package/src/MediaPlayerTemplate.tsx +0 -1
- package/src/MediaPlayerVimeo.ts +4 -3
- package/src/MediaPlayerYoutube.ts +3 -0
- package/src/Pagination.ts +1 -1
- package/src/Search.ts +20 -4
- package/src/SearchTemplate.tsx +353 -0
- package/src/SearchableListBase.ts +78 -83
- package/src/SecondaryNavigation.ts +19 -0
- package/src/SecondaryNavigationItem.ts +6 -0
- package/src/SecondaryNavigationSubItem.ts +3 -0
- package/src/SelectBase.ts +580 -0
- package/src/SelectBox.hbs +118 -107
- package/src/SelectBox.ts +156 -445
- package/src/SocialMediaButton.ts +2 -0
- package/src/StepInput.ts +2 -0
- package/src/TabNavigation.ts +3 -0
- package/src/Tag.ts +1 -0
- package/src/TagGroup.ts +56 -19
- package/src/TagTemplate.tsx +4 -2
- package/src/TextArea.ts +5 -5
- package/src/TextAreaTemplate.tsx +67 -0
- package/src/TextField.ts +58 -24
- package/src/TextFieldTemplate.tsx +90 -0
- package/src/Tile.ts +1 -0
- package/src/Upload.ts +5 -0
- package/src/generated/templates/CountrySelectorTemplate.lit.ts +2 -2
- package/src/generated/templates/ListItemTemplate.lit.ts +1 -1
- package/src/generated/templates/SelectBoxTemplate.lit.ts +10 -9
- package/src/generated/themes/CountrySelector.css.ts +1 -1
- package/src/generated/themes/EventRibbon.css.ts +1 -1
- package/src/generated/themes/ImageGridCloud.css.ts +9 -0
- package/src/generated/themes/ImageGridCloudItem.css.ts +9 -0
- package/src/generated/themes/ListItem.css.ts +1 -1
- package/src/generated/themes/MastheadItem.css.ts +1 -1
- package/src/generated/themes/MastheadMobileMenu.css.ts +1 -1
- package/src/generated/themes/Pagination.css.ts +1 -1
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/Search.css.ts +1 -1
- package/src/generated/themes/SelectBase.css.ts +9 -0
- package/src/generated/themes/SelectBox.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/generated/themes/TagGroup.css.ts +1 -1
- package/src/generated/themes/TextField.css.ts +1 -1
- package/src/themes/CountrySelector.css +42 -115
- package/src/themes/EventRibbon.css +21 -13
- package/src/themes/ImageGridCloud.css +55 -0
- package/src/themes/ImageGridCloudItem.css +10 -0
- package/src/themes/ListItem.css +6 -0
- package/src/themes/MastheadItem.css +0 -2
- package/src/themes/MastheadMobileMenu.css +2 -0
- package/src/themes/Pagination.css +1 -1
- package/src/themes/Search.css +0 -1
- package/src/themes/SelectBase.css +239 -0
- package/src/themes/SelectBox.css +13 -195
- package/src/themes/TagGroup.css +0 -1
- package/src/themes/TextField.css +7 -7
- package/src/types/common.ts +1 -1
- package/dist/generated/templates/SearchSuggestionsTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +0 -17
- package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +0 -1
- package/dist/generated/templates/SearchTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/SearchTemplate.lit.js +0 -28
- package/dist/generated/templates/SearchTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TextAreaTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TextAreaTemplate.lit.js +0 -13
- package/dist/generated/templates/TextAreaTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TextFieldTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/TextFieldTemplate.lit.js +0 -14
- package/dist/generated/templates/TextFieldTemplate.lit.js.map +0 -1
- package/src/Search.hbs +0 -155
- package/src/SearchSuggestions.hbs +0 -91
- package/src/TextArea.hbs +0 -54
- package/src/TextField.hbs +0 -78
- package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +0 -21
- package/src/generated/templates/SearchTemplate.lit.ts +0 -32
- package/src/generated/templates/TextAreaTemplate.lit.ts +0 -17
- package/src/generated/templates/TextFieldTemplate.lit.ts +0 -18
package/src/SocialMediaButton.ts
CHANGED
|
@@ -45,6 +45,8 @@ const baseIconsURL = "https://cdn.udex.services.sap.com/dds/design-tokens/assets
|
|
|
45
45
|
/**
|
|
46
46
|
* Triggered when the user clicks on an item.
|
|
47
47
|
* @public
|
|
48
|
+
* @param {LinkClickEventDetail} detail - Details of the clicked link.
|
|
49
|
+
*
|
|
48
50
|
*/
|
|
49
51
|
@event("click", { cancelable: true, bubbles: true })
|
|
50
52
|
|
package/src/StepInput.ts
CHANGED
|
@@ -63,6 +63,8 @@ type UDExStepInputValueStateChangeEventDetail = {
|
|
|
63
63
|
/**
|
|
64
64
|
* Fired when the input operation has finished by pressing Enter or on focusout.
|
|
65
65
|
* @public
|
|
66
|
+
* @param {number} value The new value of the component.
|
|
67
|
+
*
|
|
66
68
|
*/
|
|
67
69
|
@event("change", { bubbles: true })
|
|
68
70
|
/**
|
package/src/TabNavigation.ts
CHANGED
|
@@ -79,12 +79,15 @@ type UDExTabContainerTabSelectEventDetail = {
|
|
|
79
79
|
* Fires when the tab was clicked.
|
|
80
80
|
*
|
|
81
81
|
* @public
|
|
82
|
+
* @param {number} currentPage The current selected tab index.
|
|
82
83
|
*/
|
|
83
84
|
@event("click", { bubbles: true })
|
|
84
85
|
/**
|
|
85
86
|
* Fired when a tab is selected.
|
|
86
87
|
*
|
|
87
88
|
* @public
|
|
89
|
+
* @param {Tab} tab The selected tab.
|
|
90
|
+
* @param {number} tabIndex The index of the selected tab.
|
|
88
91
|
*/
|
|
89
92
|
@event("tab-select", { bubbles: true })
|
|
90
93
|
|
package/src/Tag.ts
CHANGED
package/src/TagGroup.ts
CHANGED
|
@@ -10,12 +10,12 @@ import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
|
|
|
10
10
|
import Token from "@ui5/webcomponents/dist/Token.js";
|
|
11
11
|
import UDExTag from "./Tag.js";
|
|
12
12
|
import UDExTooltip from "./Tooltip.js";
|
|
13
|
+
import { Placement } from "./types/Dropdown.js";
|
|
13
14
|
|
|
14
15
|
import TagGroupTemplate from "./TagGroupTemplate.js";
|
|
15
16
|
|
|
16
17
|
// Styles
|
|
17
18
|
import TagGroupCss from "./generated/themes/TagGroup.css.js";
|
|
18
|
-
import { Placement } from "./types/Dropdown.js";
|
|
19
19
|
|
|
20
20
|
type UDExTagClickEventDetail = {
|
|
21
21
|
tag: UDExTag,
|
|
@@ -57,12 +57,14 @@ type UDExTagKeydownEventDetail = {
|
|
|
57
57
|
* Emitted when tag was clicked
|
|
58
58
|
*
|
|
59
59
|
* @public
|
|
60
|
+
* @param {UDExTag} tag the clicked tag
|
|
60
61
|
*/
|
|
61
62
|
@event("tag-click", { bubbles: true })
|
|
62
63
|
/**
|
|
63
64
|
* Emitted when icon in tag was clicked
|
|
64
65
|
*
|
|
65
66
|
* @public
|
|
67
|
+
* @param {HTMLElement} tag the tag containing the clicked icon
|
|
66
68
|
*/
|
|
67
69
|
@event("tag-icon-click", { bubbles: true })
|
|
68
70
|
/**
|
|
@@ -76,6 +78,7 @@ type UDExTagKeydownEventDetail = {
|
|
|
76
78
|
* Emitted custom event with keycode and tag details
|
|
77
79
|
*
|
|
78
80
|
* @public
|
|
81
|
+
* @param {KeyboardEvent} originalEvent the original keyboard event
|
|
79
82
|
*/
|
|
80
83
|
@event("tag-keydown", { cancelable: true, bubbles: true })
|
|
81
84
|
class UDExTagGroup extends UI5Element {
|
|
@@ -93,6 +96,7 @@ class UDExTagGroup extends UI5Element {
|
|
|
93
96
|
*/
|
|
94
97
|
@property({ type: Boolean })
|
|
95
98
|
tokenizerExpanded: boolean = false;
|
|
99
|
+
|
|
96
100
|
/**
|
|
97
101
|
* Defines whether the component is in disabled state.
|
|
98
102
|
*
|
|
@@ -123,6 +127,7 @@ class UDExTagGroup extends UI5Element {
|
|
|
123
127
|
/**
|
|
124
128
|
* Defines the tags.
|
|
125
129
|
*
|
|
130
|
+
* @default "[]"
|
|
126
131
|
* @public
|
|
127
132
|
*/
|
|
128
133
|
@slot({ type: HTMLElement, "default": true })
|
|
@@ -138,11 +143,32 @@ class UDExTagGroup extends UI5Element {
|
|
|
138
143
|
tooltipPlacement: `${Placement}` = Placement.Bottom;
|
|
139
144
|
|
|
140
145
|
/**
|
|
146
|
+
* Determines whether there are hidden tags in the component.
|
|
147
|
+
*
|
|
148
|
+
* @default false
|
|
141
149
|
* @private
|
|
142
150
|
*/
|
|
143
151
|
@property({ type: Boolean })
|
|
144
152
|
_isHiddenTags!: boolean;
|
|
145
153
|
|
|
154
|
+
/**
|
|
155
|
+
* Determines whether the "More" button should skip focus.
|
|
156
|
+
*
|
|
157
|
+
* @default false
|
|
158
|
+
* @private
|
|
159
|
+
*/
|
|
160
|
+
@property({ type: Boolean })
|
|
161
|
+
_skipMoreButtonFocus!: boolean;
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Determines whether the tokenizer should scroll to the end.
|
|
165
|
+
*
|
|
166
|
+
* @default false
|
|
167
|
+
* @private
|
|
168
|
+
*/
|
|
169
|
+
@property({ type: Boolean })
|
|
170
|
+
_scrollToEnd: boolean = false;
|
|
171
|
+
|
|
146
172
|
_tokenizer!: Tokenizer;
|
|
147
173
|
_nMoreBtn!: HTMLElement | null;
|
|
148
174
|
_resizeHandler: () => void;
|
|
@@ -152,25 +178,33 @@ class UDExTagGroup extends UI5Element {
|
|
|
152
178
|
this._resizeHandler = this._onResize.bind(this);
|
|
153
179
|
}
|
|
154
180
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
get isReadOrDisplayOnly(): boolean {
|
|
160
|
-
return this.readonly || this.displayonly;
|
|
181
|
+
onEnterDOM(): void {
|
|
182
|
+
ResizeHandler.register(this, this._resizeHandler);
|
|
161
183
|
}
|
|
162
184
|
|
|
163
|
-
|
|
164
|
-
|
|
185
|
+
onExitDOM(): void {
|
|
186
|
+
ResizeHandler.deregister(this, this._resizeHandler);
|
|
187
|
+
this._nMoreBtn?.removeEventListener("keydown", this._nMoreKeyDownHandler.bind(this));
|
|
165
188
|
}
|
|
166
189
|
|
|
167
190
|
onAfterRendering(): void {
|
|
168
191
|
this._tokenizer = this.tokenizer;
|
|
169
192
|
this._nMoreBtn = this._tokenizer.moreLink || null;
|
|
193
|
+
|
|
170
194
|
if (!this.readonly && !this.disabled && this._nMoreBtn && !this._nMoreBtn.hasAttribute("tabindex")) {
|
|
171
195
|
this._nMoreBtn.setAttribute("tabindex", "0");
|
|
172
196
|
this._nMoreBtn.addEventListener("keydown", this._nMoreKeyDownHandler.bind(this));
|
|
173
197
|
}
|
|
198
|
+
|
|
199
|
+
if (!this.displayonly && this._skipMoreButtonFocus && this._nMoreBtn) {
|
|
200
|
+
this._nMoreBtn.setAttribute("tabindex", "-1");
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
if (this._scrollToEnd) {
|
|
204
|
+
setTimeout(() => {
|
|
205
|
+
this._tokenizer.scrollToEnd();
|
|
206
|
+
}, 50);
|
|
207
|
+
}
|
|
174
208
|
}
|
|
175
209
|
|
|
176
210
|
_nMoreKeyDownHandler(e: Event) {
|
|
@@ -179,15 +213,6 @@ class UDExTagGroup extends UI5Element {
|
|
|
179
213
|
}
|
|
180
214
|
}
|
|
181
215
|
|
|
182
|
-
onEnterDOM(): void {
|
|
183
|
-
ResizeHandler.register(this, this._resizeHandler);
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
onExitDOM(): void {
|
|
187
|
-
ResizeHandler.deregister(this, this._resizeHandler);
|
|
188
|
-
this._nMoreBtn?.removeEventListener("keydown", this._nMoreKeyDownHandler.bind(this));
|
|
189
|
-
}
|
|
190
|
-
|
|
191
216
|
_onResize(): void {
|
|
192
217
|
this._isHiddenTags = false;
|
|
193
218
|
this._isHiddenTags = this._tokenizer?._nMoreCount > 0;
|
|
@@ -210,7 +235,7 @@ class UDExTagGroup extends UI5Element {
|
|
|
210
235
|
handleTagKeyDown(e: KeyboardEvent): void {
|
|
211
236
|
e.stopPropagation();
|
|
212
237
|
|
|
213
|
-
if (isEscape(e)) {
|
|
238
|
+
if (isEscape(e) && this.tooltip) {
|
|
214
239
|
this.tooltip.open = false;
|
|
215
240
|
this._nMoreBtn?.focus();
|
|
216
241
|
return;
|
|
@@ -230,6 +255,18 @@ class UDExTagGroup extends UI5Element {
|
|
|
230
255
|
}
|
|
231
256
|
}
|
|
232
257
|
|
|
258
|
+
get hiddenTags(): Token[] {
|
|
259
|
+
return this._tokenizer?.overflownTokens || [];
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
get isReadOrDisplayOnly(): boolean {
|
|
263
|
+
return this.readonly || this.displayonly;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
get tokenizer(): Tokenizer {
|
|
267
|
+
return this.shadowRoot!.querySelector<Tokenizer>(`#${this._id}-tag-group-tokenizer`)!;
|
|
268
|
+
}
|
|
269
|
+
|
|
233
270
|
get tooltip(): UDExTooltip {
|
|
234
271
|
return this.shadowRoot!.querySelector<UDExTooltip>(`#${this._id}-tag-group-tooltip`)!;
|
|
235
272
|
}
|
package/src/TagTemplate.tsx
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type UDExTag from "./Tag.js";
|
|
2
2
|
import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
3
3
|
import type { AriaRole } from "@ui5/webcomponents-base/dist/types.js";
|
|
4
|
+
// Move it to SelectBox template after rewriting to TSX
|
|
5
|
+
import { cleanLabel } from "./utils/listItemLabelUtils.js";
|
|
4
6
|
|
|
5
7
|
export default function TagTemplate(this: UDExTag) {
|
|
6
8
|
const rootClass = "udex-tag";
|
|
@@ -8,7 +10,7 @@ export default function TagTemplate(this: UDExTag) {
|
|
|
8
10
|
return (
|
|
9
11
|
this.readOnly ? (
|
|
10
12
|
<div class={this.tagClasses}>
|
|
11
|
-
<span class={`${rootClass}__text`}>{this.text}</span>
|
|
13
|
+
<span class={`${rootClass}__text`}>{cleanLabel(this.text)}</span>
|
|
12
14
|
</div>
|
|
13
15
|
) : this.href ? (
|
|
14
16
|
<a class={this.tagClasses}
|
|
@@ -44,7 +46,7 @@ function tagContent(this: UDExTag, rootClass: string, isIconClickable: boolean =
|
|
|
44
46
|
{this.startIcon && (
|
|
45
47
|
isIconBtn ? tagBtnIcon.call(this, rootClass, "start")
|
|
46
48
|
: tagIcon.call(this, rootClass, "start", isIconClickable))}
|
|
47
|
-
<span class={`${rootClass}__text`}>{this.text}</span>
|
|
49
|
+
<span class={`${rootClass}__text`}>{cleanLabel(this.text)}</span>
|
|
48
50
|
{this.endIcon && (
|
|
49
51
|
isIconBtn ? tagBtnIcon.call(this, rootClass, "end")
|
|
50
52
|
: tagIcon.call(this, rootClass, "end", isIconClickable))}
|
package/src/TextArea.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
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
|
-
import
|
|
4
|
+
import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
|
|
5
5
|
import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
|
|
6
6
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
7
7
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
@@ -23,7 +23,7 @@ import "@ui5/webcomponents-icons/dist/alert.js";
|
|
|
23
23
|
|
|
24
24
|
import UDExStatusMessage from "./StatusMessage.js";
|
|
25
25
|
import UDExValueState from "./types/common.js";
|
|
26
|
-
import TextAreaTemplate from "./
|
|
26
|
+
import TextAreaTemplate from "./TextAreaTemplate.js";
|
|
27
27
|
|
|
28
28
|
// Styles
|
|
29
29
|
import TextAreaCss from "./generated/themes/TextArea.css.js";
|
|
@@ -39,7 +39,7 @@ import getEffectiveScrollbarStyle from "./utils/getEffectiveScrollbarStyle.js";
|
|
|
39
39
|
*/
|
|
40
40
|
@customElement({
|
|
41
41
|
tag: "udex-textarea",
|
|
42
|
-
renderer:
|
|
42
|
+
renderer: jsxRenderer,
|
|
43
43
|
styles: [TextAreaCss, getEffectiveScrollbarStyle()],
|
|
44
44
|
template: TextAreaTemplate,
|
|
45
45
|
dependencies: [UDExStatusMessage],
|
|
@@ -320,8 +320,8 @@ class UDExTextArea extends UI5Element {
|
|
|
320
320
|
return this.getDomRef()!.querySelector<HTMLTextAreaElement>("textarea")!;
|
|
321
321
|
}
|
|
322
322
|
|
|
323
|
-
get
|
|
324
|
-
return this.valueState === UDExValueState.Error
|
|
323
|
+
get _ariaInvalid(): boolean {
|
|
324
|
+
return this.valueState === UDExValueState.Error;
|
|
325
325
|
}
|
|
326
326
|
|
|
327
327
|
get hasValueState(): boolean {
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type TextArea from "./TextArea.js";
|
|
2
|
+
import UDExStatusMessage from "./StatusMessage.js";
|
|
3
|
+
|
|
4
|
+
export default function TextAreaTemplate(this: TextArea) {
|
|
5
|
+
const rootClass = "udex-textarea";
|
|
6
|
+
const hiddenClass = "hidden-text";
|
|
7
|
+
|
|
8
|
+
return (
|
|
9
|
+
<div class={`${rootClass}`}>
|
|
10
|
+
<div class={`${rootClass}__wrapper`}>
|
|
11
|
+
{this.label
|
|
12
|
+
? <label class={this.labelClasses} for="textarea" part="label">
|
|
13
|
+
{this.label}{this.required && " * "}
|
|
14
|
+
</label>
|
|
15
|
+
: <label class="hidden-label" for="textarea">
|
|
16
|
+
{this.textHiddenLabel}
|
|
17
|
+
</label>
|
|
18
|
+
}
|
|
19
|
+
<textarea
|
|
20
|
+
id="textarea"
|
|
21
|
+
class={`${rootClass}__field`}
|
|
22
|
+
part="textarea"
|
|
23
|
+
value={this.value}
|
|
24
|
+
maxlength={this.maxlength}
|
|
25
|
+
rows={this.rows}
|
|
26
|
+
disabled={this.disabled}
|
|
27
|
+
readonly={this.isInputReadonly}
|
|
28
|
+
required={this.required}
|
|
29
|
+
aria-label={this.accessibleName}
|
|
30
|
+
aria-describedby={this.ariaDescribedBy}
|
|
31
|
+
aria-labelledby={this.accessibleNameRef}
|
|
32
|
+
aria-required={this.required}
|
|
33
|
+
aria-readonly={this.isInputReadonly}
|
|
34
|
+
aria-invalid={this._ariaInvalid}
|
|
35
|
+
onInput={this.handleInput}
|
|
36
|
+
onFocus={this.handleFocus}
|
|
37
|
+
onClick={this.handleClick}
|
|
38
|
+
onBlur={this.handleBlur}
|
|
39
|
+
onChange={this.handleChange}>
|
|
40
|
+
</textarea>
|
|
41
|
+
</div>
|
|
42
|
+
{this._supportingText &&
|
|
43
|
+
<>
|
|
44
|
+
<UDExStatusMessage
|
|
45
|
+
supporting-text={this._supportingText}
|
|
46
|
+
supporting-text-alignment="Right"
|
|
47
|
+
value-state={this.valueState}
|
|
48
|
+
disabled={this.disabled ? "true" : undefined}>
|
|
49
|
+
</UDExStatusMessage>
|
|
50
|
+
<span id={`${this._id}-supportingTextDesc`} class={hiddenClass}>
|
|
51
|
+
{this._supportingText}
|
|
52
|
+
</span>
|
|
53
|
+
</>
|
|
54
|
+
}
|
|
55
|
+
{this.hasValueState &&
|
|
56
|
+
<span id={`${this._id}-valueStateDesc`} class={hiddenClass}>
|
|
57
|
+
{this.ariaValueStateHiddenText}
|
|
58
|
+
</span>
|
|
59
|
+
}
|
|
60
|
+
{this.readonly &&
|
|
61
|
+
<span id={`${this._id}-readonlyDesc`} class={hiddenClass}>
|
|
62
|
+
{this.readOnlyText}
|
|
63
|
+
</span>
|
|
64
|
+
}
|
|
65
|
+
</div>
|
|
66
|
+
);
|
|
67
|
+
}
|
package/src/TextField.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
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
|
-
import
|
|
4
|
+
import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
|
|
5
5
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
6
6
|
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
7
7
|
import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
|
|
@@ -9,18 +9,13 @@ import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
|
9
9
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
10
10
|
import { getAllAccessibleNameRefTexts } from "@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js";
|
|
11
11
|
import {
|
|
12
|
-
VALUE_STATE_SUCCESS,
|
|
13
|
-
VALUE_STATE_INFORMATION,
|
|
14
|
-
VALUE_STATE_WARNING,
|
|
15
|
-
VALUE_STATE_ERROR,
|
|
16
|
-
READ_ONLY,
|
|
12
|
+
VALUE_STATE_SUCCESS, VALUE_STATE_INFORMATION, VALUE_STATE_WARNING, VALUE_STATE_ERROR, READ_ONLY,
|
|
17
13
|
} from "./generated/i18n/i18n-defaults.js";
|
|
18
14
|
import UDExControlButton from "./ControlButton.js";
|
|
19
|
-
import UDExValueState from "./types/common.js";
|
|
15
|
+
import UDExValueState, { valueStateToControlButtonDesign } from "./types/common.js";
|
|
16
|
+
import type UDExControlButtonDesign from "./types/ControlButtonDesign.js";
|
|
20
17
|
import UDExStatusMessage from "./StatusMessage.js";
|
|
21
|
-
|
|
22
|
-
// Template
|
|
23
|
-
import TextFieldTemplate from "./generated/templates/TextFieldTemplate.lit.js";
|
|
18
|
+
import TextFieldTemplate from "./TextFieldTemplate.js";
|
|
24
19
|
|
|
25
20
|
// Styles
|
|
26
21
|
import TextFieldCss from "./generated/themes/TextField.css.js";
|
|
@@ -37,6 +32,14 @@ type UDExTextFieldKeydownEventDetail = {
|
|
|
37
32
|
keyboardEvent: KeyboardEvent;
|
|
38
33
|
}
|
|
39
34
|
|
|
35
|
+
type UDExTextFieldChangeEventDetail = {
|
|
36
|
+
originalEvent: Event,
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
type UDExTextFieldBlurEventDetail = {
|
|
40
|
+
originalEvent: FocusEvent,
|
|
41
|
+
}
|
|
42
|
+
|
|
40
43
|
/**
|
|
41
44
|
* @class
|
|
42
45
|
*
|
|
@@ -47,24 +50,30 @@ type UDExTextFieldKeydownEventDetail = {
|
|
|
47
50
|
*/
|
|
48
51
|
@customElement({
|
|
49
52
|
tag: "udex-text-field",
|
|
50
|
-
renderer:
|
|
53
|
+
renderer: jsxRenderer,
|
|
51
54
|
styles: TextFieldCss,
|
|
52
55
|
template: TextFieldTemplate,
|
|
53
56
|
dependencies: [UDExControlButton, Icon, UDExStatusMessage],
|
|
54
57
|
})
|
|
55
58
|
|
|
56
59
|
/**
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
60
|
+
* Fired when the value of the component changes at each keystroke.
|
|
61
|
+
*
|
|
62
|
+
* @public
|
|
63
|
+
*/
|
|
61
64
|
@event("input", { bubbles: true })
|
|
62
65
|
/**
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
* Fired when the input operation has finished by pressing Enter or on focusout.
|
|
67
|
+
*
|
|
68
|
+
* @public
|
|
69
|
+
*/
|
|
67
70
|
@event("change", { bubbles: true })
|
|
71
|
+
/**
|
|
72
|
+
* Fired on input focusout.
|
|
73
|
+
*
|
|
74
|
+
* @public
|
|
75
|
+
*/
|
|
76
|
+
@event("blur", { bubbles: true })
|
|
68
77
|
/**
|
|
69
78
|
* Fired event when the user clicks the icon.
|
|
70
79
|
*
|
|
@@ -76,13 +85,15 @@ type UDExTextFieldKeydownEventDetail = {
|
|
|
76
85
|
* Fired event when the key is pressed in the input.
|
|
77
86
|
*
|
|
78
87
|
* @private
|
|
88
|
+
* @param {KeyboardEvent} keyboardEvent The native keyboard event.
|
|
79
89
|
*/
|
|
80
90
|
@event("keydown", { bubbles: true })
|
|
81
91
|
class UDExTextField extends UI5Element {
|
|
82
92
|
eventDetails!: {
|
|
83
93
|
"keydown": UDExTextFieldKeydownEventDetail,
|
|
84
94
|
"input": void,
|
|
85
|
-
"change":
|
|
95
|
+
"change": UDExTextFieldChangeEventDetail,
|
|
96
|
+
"blur": UDExTextFieldBlurEventDetail,
|
|
86
97
|
"click-icon": void,
|
|
87
98
|
};
|
|
88
99
|
_labelActiveClassName = "udex-text-field__label_active";
|
|
@@ -139,6 +150,15 @@ class UDExTextField extends UI5Element {
|
|
|
139
150
|
@property()
|
|
140
151
|
accessibleName!: string;
|
|
141
152
|
|
|
153
|
+
/**
|
|
154
|
+
* Defines the name of the input element.
|
|
155
|
+
*
|
|
156
|
+
* @default ""
|
|
157
|
+
* @public
|
|
158
|
+
*/
|
|
159
|
+
@property()
|
|
160
|
+
name!: string;
|
|
161
|
+
|
|
142
162
|
/**
|
|
143
163
|
* Receives id (or many ids) of the elements that label the component.
|
|
144
164
|
* @default ""
|
|
@@ -147,6 +167,15 @@ class UDExTextField extends UI5Element {
|
|
|
147
167
|
@property()
|
|
148
168
|
accessibleNameRef: string = "";
|
|
149
169
|
|
|
170
|
+
/**
|
|
171
|
+
* Defines the ref of the input element.
|
|
172
|
+
*
|
|
173
|
+
* @default undefined
|
|
174
|
+
* @public
|
|
175
|
+
*/
|
|
176
|
+
@property()
|
|
177
|
+
fieldRef?: ((el: HTMLInputElement | null) => void) | { current: HTMLInputElement | null };
|
|
178
|
+
|
|
150
179
|
/**
|
|
151
180
|
* Defines the accessible ARIA name of the component.
|
|
152
181
|
*
|
|
@@ -381,8 +410,8 @@ class UDExTextField extends UI5Element {
|
|
|
381
410
|
this.fireDecoratorEvent("keydown", { keyboardEvent: e });
|
|
382
411
|
}
|
|
383
412
|
|
|
384
|
-
handleChange = (): void => {
|
|
385
|
-
this.fireDecoratorEvent("change");
|
|
413
|
+
handleChange = (e: Event): void => {
|
|
414
|
+
this.fireDecoratorEvent("change", { originalEvent: e });
|
|
386
415
|
};
|
|
387
416
|
|
|
388
417
|
handleInput = (inputEvent: InputEvent) => {
|
|
@@ -402,7 +431,8 @@ class UDExTextField extends UI5Element {
|
|
|
402
431
|
}
|
|
403
432
|
};
|
|
404
433
|
|
|
405
|
-
handleBlur = (): void => {
|
|
434
|
+
handleBlur = (e: FocusEvent): void => {
|
|
435
|
+
this.fireDecoratorEvent("blur", { originalEvent: e });
|
|
406
436
|
this.active = false;
|
|
407
437
|
|
|
408
438
|
if (this.value) {
|
|
@@ -487,9 +517,13 @@ class UDExTextField extends UI5Element {
|
|
|
487
517
|
const label = this._isComboboxRole ? this.value : "";
|
|
488
518
|
return `${label} ${this.supportingText || ""} ${this.valueStateText}`;
|
|
489
519
|
}
|
|
520
|
+
|
|
521
|
+
get controlButtonDesign(): UDExControlButtonDesign {
|
|
522
|
+
return valueStateToControlButtonDesign[this.valueState];
|
|
523
|
+
}
|
|
490
524
|
}
|
|
491
525
|
|
|
492
526
|
UDExTextField.define();
|
|
493
527
|
|
|
494
528
|
export default UDExTextField;
|
|
495
|
-
export type { UDExTextFieldKeydownEventDetail };
|
|
529
|
+
export type { UDExTextFieldKeydownEventDetail, UDExTextFieldChangeEventDetail, UDExTextFieldBlurEventDetail };
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type TextField from "./TextField.js";
|
|
2
|
+
import type { AriaRole } from "@ui5/webcomponents-base/dist/types.js";
|
|
3
|
+
import type { Booleanish } from "@ui5/webcomponents-base/dist/thirdparty/preact/jsx.js";
|
|
4
|
+
import UDExControlButton from "./ControlButton.js";
|
|
5
|
+
import UDExStatusMessage from "./StatusMessage.js";
|
|
6
|
+
|
|
7
|
+
export default function TextFieldTemplate(this: TextField) {
|
|
8
|
+
const rootClass = "udex-text-field";
|
|
9
|
+
const hiddenClass = "hidden-text";
|
|
10
|
+
|
|
11
|
+
return (
|
|
12
|
+
<div class={`${rootClass}__container`}>
|
|
13
|
+
{this.label &&
|
|
14
|
+
<label for={`${this._id}-input`} class={this.labelClasses} part="label">
|
|
15
|
+
{this.label}{this.required && " * "}
|
|
16
|
+
</label>
|
|
17
|
+
}
|
|
18
|
+
<div class={`${rootClass}__wrap`}>
|
|
19
|
+
<input id={`${this._id}-input`} class={`${rootClass}__input`}
|
|
20
|
+
type={this.type}
|
|
21
|
+
value={this.value}
|
|
22
|
+
maxlength={this.maxlength}
|
|
23
|
+
disabled={this.disabled}
|
|
24
|
+
readonly={this.isInputReadonly}
|
|
25
|
+
required={this.required}
|
|
26
|
+
aria-required={this.required}
|
|
27
|
+
aria-readonly={this.isInputReadonly}
|
|
28
|
+
autocomplete={this.autocomplete}
|
|
29
|
+
role={this.inputRole as AriaRole}
|
|
30
|
+
name={this.name}
|
|
31
|
+
ref={this.fieldRef}
|
|
32
|
+
aria-disabled={this.readonlyNotDisabled}
|
|
33
|
+
aria-invalid={this.accInfo.ariaInvalid as Booleanish}
|
|
34
|
+
aria-describedby={this.accInfo.ariaDescribedBy}
|
|
35
|
+
aria-haspopup={this.accInfo.ariaHasPopup as Booleanish}
|
|
36
|
+
aria-label={this.accInfo.ariaLabel}
|
|
37
|
+
part="textfield-input"
|
|
38
|
+
min={this.min}
|
|
39
|
+
max={this.max}
|
|
40
|
+
step={this.step}
|
|
41
|
+
onChange={this.handleChange}
|
|
42
|
+
onInput={this.handleInput}
|
|
43
|
+
onFocus={this.handleFocus}
|
|
44
|
+
onBlur={this.handleBlur}
|
|
45
|
+
onClick={this.handleClick}
|
|
46
|
+
onKeyDown={this.handleKeydown} />
|
|
47
|
+
{this.icon &&
|
|
48
|
+
<UDExControlButton
|
|
49
|
+
part="textfield-control-btn"
|
|
50
|
+
class={`${rootClass}__icon-container`}
|
|
51
|
+
size="Large"
|
|
52
|
+
tooltip={this.showButtonTooltip}
|
|
53
|
+
active={this.active}
|
|
54
|
+
disabled={this.disabled}
|
|
55
|
+
readonly={this.readonly}
|
|
56
|
+
non-interactive={this.readonly}
|
|
57
|
+
design={this.controlButtonDesign}
|
|
58
|
+
icon={this.icon}
|
|
59
|
+
_is-combobox-role={this._isComboboxRole}
|
|
60
|
+
accessible-name={this.buttonAccessibleName}
|
|
61
|
+
accessible-description={this.buttonAccessibleDescription}
|
|
62
|
+
onClick={this.handleIconClick}>
|
|
63
|
+
</UDExControlButton>
|
|
64
|
+
}
|
|
65
|
+
</div>
|
|
66
|
+
{this.supportingText &&
|
|
67
|
+
<>
|
|
68
|
+
<UDExStatusMessage
|
|
69
|
+
supporting-text={this.supportingText}
|
|
70
|
+
value-state={this.valueState}
|
|
71
|
+
disabled={this.disabled ? "true" : undefined}>
|
|
72
|
+
</UDExStatusMessage>
|
|
73
|
+
<span id={`${this._id}-supportingTextDesc`} class={hiddenClass}>
|
|
74
|
+
{this.supportingText}
|
|
75
|
+
</span>
|
|
76
|
+
</>
|
|
77
|
+
}
|
|
78
|
+
{this.hasValueState &&
|
|
79
|
+
<span id={`${this._id}-valueStateDesc`} class={hiddenClass}>
|
|
80
|
+
{this.valueStateText}
|
|
81
|
+
</span>
|
|
82
|
+
}
|
|
83
|
+
{this.readonly &&
|
|
84
|
+
<span id={`${this._id}-stateReadOnlyDesc`} class={hiddenClass}>
|
|
85
|
+
{this.readOnlyStateText}
|
|
86
|
+
</span>
|
|
87
|
+
}
|
|
88
|
+
</div>
|
|
89
|
+
);
|
|
90
|
+
}
|
package/src/Tile.ts
CHANGED
|
@@ -36,6 +36,7 @@ type UDExTileClickEventDetail = {
|
|
|
36
36
|
/**
|
|
37
37
|
* Fires when the user clicks inside the component in interactive mode.
|
|
38
38
|
* @public
|
|
39
|
+
* @param {MouseEvent} originalEvent the original event object
|
|
39
40
|
*/
|
|
40
41
|
@event("click", { bubbles: true })
|
|
41
42
|
class UDExTile extends UI5Element {
|
package/src/Upload.ts
CHANGED
|
@@ -66,6 +66,7 @@ type UDExUploadFileChangeEventDetail = {
|
|
|
66
66
|
* Triggered when the uploaded file exceeds the maximum allowed size.
|
|
67
67
|
*
|
|
68
68
|
* @public
|
|
69
|
+
* @param {Array<FileData>} files An array of files that exceed the maximum allowed size.
|
|
69
70
|
*/
|
|
70
71
|
@event("file-size-exceed", { bubbles: true })
|
|
71
72
|
|
|
@@ -73,6 +74,7 @@ type UDExUploadFileChangeEventDetail = {
|
|
|
73
74
|
* Triggered when the user deletes the uploaded item.
|
|
74
75
|
*
|
|
75
76
|
* @public
|
|
77
|
+
* @param {UDExUploadItem} file The deleted upload item.
|
|
76
78
|
*/
|
|
77
79
|
@event("file-delete", { bubbles: true })
|
|
78
80
|
|
|
@@ -80,6 +82,7 @@ type UDExUploadFileChangeEventDetail = {
|
|
|
80
82
|
* Triggered when the user uploads the item.
|
|
81
83
|
*
|
|
82
84
|
* @public
|
|
85
|
+
* @param {Array<UDExUploadItem>} files An array of the uploaded items.
|
|
83
86
|
*/
|
|
84
87
|
@event("file-change", { bubbles: true })
|
|
85
88
|
|
|
@@ -87,6 +90,7 @@ type UDExUploadFileChangeEventDetail = {
|
|
|
87
90
|
* Triggered when the user attempts to upload a duplicate file.
|
|
88
91
|
*
|
|
89
92
|
* @public
|
|
93
|
+
* @param {Array<FileData>} files An array of duplicate files.
|
|
90
94
|
*/
|
|
91
95
|
@event("file-duplicate", { bubbles: true })
|
|
92
96
|
|
|
@@ -94,6 +98,7 @@ type UDExUploadFileChangeEventDetail = {
|
|
|
94
98
|
* Triggered when the user attempts to upload a file.
|
|
95
99
|
*
|
|
96
100
|
* @public
|
|
101
|
+
* @param {FileList} files The uploaded files.
|
|
97
102
|
*/
|
|
98
103
|
@event("change", { bubbles: true })
|
|
99
104
|
|
|
@@ -5,8 +5,8 @@ import type UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
|
5
5
|
import type CountrySelector from "../../CountrySelector.js";
|
|
6
6
|
import type { ClassMapValue } from "@ui5/webcomponents-base/dist/types.js";
|
|
7
7
|
|
|
8
|
-
function block0 (this: CountrySelector, context: UI5Element, tags: string[], suffix: string | undefined) { return
|
|
9
|
-
function block1 (this: CountrySelector, context: UI5Element, tags: string[], suffix: string | undefined) { return html`<img class="udex-
|
|
8
|
+
function block0 (this: CountrySelector, context: UI5Element, tags: string[], suffix: string | undefined) { return html`${ !this.hideFlagImages ? block1.call(this, context, tags, suffix) : undefined } `;}
|
|
9
|
+
function block1 (this: CountrySelector, context: UI5Element, tags: string[], suffix: string | undefined) { return html`<img class="udex-text-field__image" aria-label="${ifDefined(this.flagAriaLabel)}" style="background-position-x: ${ifDefined(this.selectedCountryFlagX)}; background-position-y: ${ifDefined(this.selectedCountryFlagY)}">`;}
|
|
10
10
|
|
|
11
11
|
function template(this: CountrySelector) { return block0.call(this, this, (this.constructor as typeof UI5Element).tagsToScope, getCustomElementsScopingSuffix()); }
|
|
12
12
|
export default template;
|