@sapudex/web-components 2.20.1 → 2.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle.esm.js +4 -0
- package/cypress/specs/Feed.cy.tsx +72 -0
- package/cypress/specs/FeedItem.cy.tsx +82 -0
- package/cypress/specs/Footer.cy.tsx +45 -1
- package/cypress/specs/ImageGridCloud.cy.tsx +78 -0
- package/cypress/specs/ImageGridCloudItem.cy.tsx +29 -0
- package/cypress/support/component-imports.instrumented.ts +8 -0
- package/cypress/support/component-imports.src.ts +8 -0
- package/dist/Accordion.js +1 -0
- package/dist/Accordion.js.map +1 -1
- package/dist/AccordionItem.js +2 -0
- package/dist/AccordionItem.js.map +1 -1
- package/dist/AssetsVariables.js +5 -0
- package/dist/AssetsVariables.js.map +1 -1
- package/dist/Breadcrumbs.js +5 -0
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/ContactItem.js +2 -0
- package/dist/ContactItem.js.map +1 -1
- package/dist/CountrySelector.js +1 -0
- package/dist/CountrySelector.js.map +1 -1
- package/dist/DatePicker.js +2 -1
- package/dist/DatePicker.js.map +1 -1
- package/dist/Feed.d.ts +88 -0
- package/dist/Feed.js +103 -0
- package/dist/Feed.js.map +1 -0
- package/dist/FeedItem.d.ts +114 -0
- package/dist/FeedItem.js +131 -0
- package/dist/FeedItem.js.map +1 -0
- package/dist/FeedItemTemplate.d.ts +2 -0
- package/dist/FeedItemTemplate.js +16 -0
- package/dist/FeedItemTemplate.js.map +1 -0
- package/dist/FeedTemplate.d.ts +2 -0
- package/dist/FeedTemplate.js +19 -0
- package/dist/FeedTemplate.js.map +1 -0
- package/dist/FilterMenu.js +2 -0
- package/dist/FilterMenu.js.map +1 -1
- package/dist/Footer.d.ts +14 -2
- package/dist/Footer.js +37 -4
- package/dist/Footer.js.map +1 -1
- package/dist/FooterTemplate.js +3 -3
- package/dist/FooterTemplate.js.map +1 -1
- package/dist/ImageGridCloud.d.ts +76 -0
- package/dist/ImageGridCloud.js +153 -0
- package/dist/ImageGridCloud.js.map +1 -0
- package/dist/ImageGridCloudItem.d.ts +35 -0
- package/dist/ImageGridCloudItem.js +49 -0
- package/dist/ImageGridCloudItem.js.map +1 -0
- package/dist/ImageGridCloudItemTemplate.d.ts +2 -0
- package/dist/ImageGridCloudItemTemplate.js +5 -0
- package/dist/ImageGridCloudItemTemplate.js.map +1 -0
- package/dist/ImageGridCloudTemplate.d.ts +2 -0
- package/dist/ImageGridCloudTemplate.js +6 -0
- package/dist/ImageGridCloudTemplate.js.map +1 -0
- package/dist/ImageGridTicker.d.ts +2 -2
- package/dist/ImageGridTicker.js +1 -8
- package/dist/ImageGridTicker.js.map +1 -1
- package/dist/LinkListItem.js +1 -0
- package/dist/LinkListItem.js.map +1 -1
- package/dist/List.js +3 -0
- package/dist/List.js.map +1 -1
- package/dist/ListGroupHeader.js +1 -0
- package/dist/ListGroupHeader.js.map +1 -1
- package/dist/ListItem.js +2 -0
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItemBase.js +4 -0
- package/dist/ListItemBase.js.map +1 -1
- package/dist/ListSelectAll.js +1 -0
- package/dist/ListSelectAll.js.map +1 -1
- package/dist/MastheadCountrySelector.js +15 -0
- package/dist/MastheadCountrySelector.js.map +1 -1
- package/dist/MastheadItem.js +10 -0
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadMenu.js +6 -0
- package/dist/MastheadMenu.js.map +1 -1
- package/dist/MastheadMobileMenu.js +11 -0
- package/dist/MastheadMobileMenu.js.map +1 -1
- package/dist/MastheadProfileMenu.js +11 -0
- package/dist/MastheadProfileMenu.js.map +1 -1
- package/dist/MastheadShell.js +41 -0
- package/dist/MastheadShell.js.map +1 -1
- package/dist/MediaPlayer.js +1 -0
- package/dist/MediaPlayer.js.map +1 -1
- package/dist/MediaPlayerVimeo.d.ts +3 -3
- package/dist/MediaPlayerVimeo.js +1 -0
- package/dist/MediaPlayerVimeo.js.map +1 -1
- package/dist/MediaPlayerYoutube.js +3 -0
- package/dist/MediaPlayerYoutube.js.map +1 -1
- package/dist/Pagination.js +1 -1
- package/dist/Pagination.js.map +1 -1
- package/dist/Search.d.ts +2 -1
- package/dist/Search.js +18 -3
- package/dist/Search.js.map +1 -1
- package/dist/SearchTemplate.d.ts +2 -0
- package/dist/SearchTemplate.js +48 -0
- package/dist/SearchTemplate.js.map +1 -0
- package/dist/SearchableListBase.d.ts +3 -0
- package/dist/SearchableListBase.js +10 -0
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SecondaryNavigation.js +19 -0
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.js +6 -0
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SecondaryNavigationSubItem.js +3 -0
- package/dist/SecondaryNavigationSubItem.js.map +1 -1
- package/dist/SelectBox.js +1 -0
- package/dist/SelectBox.js.map +1 -1
- package/dist/SocialMediaButton.js +2 -0
- package/dist/SocialMediaButton.js.map +1 -1
- package/dist/StepInput.js +2 -0
- package/dist/StepInput.js.map +1 -1
- package/dist/TabNavigation.js +3 -0
- package/dist/TabNavigation.js.map +1 -1
- package/dist/Tag.js +1 -0
- package/dist/Tag.js.map +1 -1
- package/dist/TagGroup.js +3 -0
- package/dist/TagGroup.js.map +1 -1
- package/dist/TextField.js +1 -0
- package/dist/TextField.js.map +1 -1
- package/dist/Tile.js +1 -0
- package/dist/Tile.js.map +1 -1
- package/dist/Upload.js +5 -0
- package/dist/Upload.js.map +1 -1
- package/dist/assets/{InputSuggestions-yR1p8cXL.js → InputSuggestions-By00xQan.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-BovnAV24.js → ListItemStandardExpandableTextTemplate-BGtoxRbA.js} +1 -1
- package/dist/assets/{bundle.esm-C7AybWk0.js → bundle.esm-9yDdQqR5.js} +223 -214
- package/dist/assets/messagebundle_en-D_yCmNrd.js +1 -0
- package/dist/css/themes/Feed.css +1 -0
- package/dist/css/themes/FeedItem.css +1 -0
- package/dist/css/themes/Footer.css +1 -1
- package/dist/css/themes/ImageGridCloud.css +1 -0
- package/dist/css/themes/ImageGridCloudItem.css +1 -0
- package/dist/css/themes/MediaPlayer.css +1 -1
- package/dist/css/themes/Pagination.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/custom-elements-internal.json +4455 -456
- package/dist/custom-elements.json +1411 -288
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
- package/dist/generated/i18n/i18n-defaults.js +2 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/themes/Feed.css.d.ts +2 -0
- package/dist/generated/themes/Feed.css.js +8 -0
- package/dist/generated/themes/Feed.css.js.map +1 -0
- package/dist/generated/themes/FeedItem.css.d.ts +2 -0
- package/dist/generated/themes/FeedItem.css.js +8 -0
- package/dist/generated/themes/FeedItem.css.js.map +1 -0
- package/dist/generated/themes/Footer.css.d.ts +1 -1
- package/dist/generated/themes/Footer.css.js +1 -1
- package/dist/generated/themes/Footer.css.js.map +1 -1
- package/dist/generated/themes/ImageGridCloud.css.d.ts +2 -0
- package/dist/generated/themes/ImageGridCloud.css.js +8 -0
- package/dist/generated/themes/ImageGridCloud.css.js.map +1 -0
- package/dist/generated/themes/ImageGridCloudItem.css.d.ts +2 -0
- package/dist/generated/themes/ImageGridCloudItem.css.js +8 -0
- package/dist/generated/themes/ImageGridCloudItem.css.js.map +1 -0
- package/dist/generated/themes/MediaPlayer.css.d.ts +1 -1
- package/dist/generated/themes/MediaPlayer.css.js +1 -1
- package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
- package/dist/generated/themes/Pagination.css.d.ts +1 -1
- package/dist/generated/themes/Pagination.css.js +1 -1
- package/dist/generated/themes/Pagination.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/Slider.css.d.ts +1 -1
- package/dist/generated/themes/Slider.css.js +1 -1
- package/dist/generated/themes/Slider.css.js.map +1 -1
- package/dist/messagebundle.properties +3 -0
- package/dist/messagebundle_en.properties +1 -0
- package/dist/vscode.html-custom-data.json +130 -1
- package/dist/web-types.json +305 -4
- package/package.json +1 -1
- package/src/Accordion.ts +1 -0
- package/src/AccordionItem.ts +2 -0
- package/src/AssetsVariables.ts +5 -0
- package/src/Breadcrumbs.ts +5 -0
- package/src/ContactItem.ts +2 -0
- package/src/CountrySelector.ts +1 -0
- package/src/DatePicker.ts +2 -1
- package/src/Feed.ts +144 -0
- package/src/FeedItem.ts +198 -0
- package/src/FeedItemTemplate.tsx +60 -0
- package/src/FeedTemplate.tsx +66 -0
- package/src/FilterMenu.ts +2 -0
- package/src/Footer.ts +47 -4
- package/src/FooterTemplate.tsx +29 -39
- package/src/ImageGridCloud.ts +188 -0
- package/src/ImageGridCloudItem.ts +57 -0
- package/src/ImageGridCloudItemTemplate.tsx +11 -0
- package/src/ImageGridCloudTemplate.tsx +16 -0
- package/src/ImageGridTicker.ts +3 -3
- package/src/LinkListItem.ts +1 -0
- package/src/List.ts +3 -0
- package/src/ListGroupHeader.ts +1 -0
- package/src/ListItem.ts +2 -0
- package/src/ListItemBase.ts +4 -0
- package/src/ListSelectAll.ts +1 -0
- package/src/MastheadCountrySelector.ts +15 -0
- package/src/MastheadItem.ts +10 -0
- package/src/MastheadMenu.ts +6 -0
- package/src/MastheadMobileMenu.ts +11 -0
- package/src/MastheadProfileMenu.ts +11 -0
- package/src/MastheadShell.ts +41 -0
- package/src/MediaPlayer.ts +1 -0
- package/src/MediaPlayerVimeo.ts +4 -3
- package/src/MediaPlayerYoutube.ts +3 -0
- package/src/Pagination.ts +1 -1
- package/src/Search.ts +20 -4
- package/src/SearchTemplate.tsx +353 -0
- package/src/SearchableListBase.ts +10 -0
- package/src/SecondaryNavigation.ts +19 -0
- package/src/SecondaryNavigationItem.ts +6 -0
- package/src/SecondaryNavigationSubItem.ts +3 -0
- package/src/SelectBox.ts +1 -0
- package/src/SocialMediaButton.ts +2 -0
- package/src/StepInput.ts +2 -0
- package/src/TabNavigation.ts +3 -0
- package/src/Tag.ts +1 -0
- package/src/TagGroup.ts +3 -0
- package/src/TextField.ts +1 -0
- package/src/Tile.ts +1 -0
- package/src/Upload.ts +5 -0
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/themes/Feed.css.ts +9 -0
- package/src/generated/themes/FeedItem.css.ts +9 -0
- package/src/generated/themes/Footer.css.ts +1 -1
- package/src/generated/themes/ImageGridCloud.css.ts +9 -0
- package/src/generated/themes/ImageGridCloudItem.css.ts +9 -0
- package/src/generated/themes/MediaPlayer.css.ts +1 -1
- package/src/generated/themes/Pagination.css.ts +1 -1
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/i18n/messagebundle.properties +3 -0
- package/src/i18n/messagebundle_en.properties +1 -0
- package/src/themes/Feed.css +51 -0
- package/src/themes/FeedItem.css +60 -0
- package/src/themes/Footer.css +9 -5
- package/src/themes/ImageGridCloud.css +55 -0
- package/src/themes/ImageGridCloudItem.css +10 -0
- package/src/themes/MediaPlayer.css +1 -1
- package/src/themes/Pagination.css +1 -1
- package/dist/assets/messagebundle_en-BhTYnZbC.js +0 -1
- package/dist/generated/templates/SearchSuggestionsTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +0 -17
- package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +0 -1
- package/dist/generated/templates/SearchTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/SearchTemplate.lit.js +0 -28
- package/dist/generated/templates/SearchTemplate.lit.js.map +0 -1
- package/src/Search.hbs +0 -155
- package/src/SearchSuggestions.hbs +0 -91
- package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +0 -21
- package/src/generated/templates/SearchTemplate.lit.ts +0 -32
|
@@ -101,6 +101,10 @@ type UDExMastheadProfileMenuAddOrRemoveClickEventDetail = {
|
|
|
101
101
|
/**
|
|
102
102
|
* Fired when use click Logout link
|
|
103
103
|
* @public
|
|
104
|
+
* @param {UDExMastheadMenuItem} item The clicked logout item
|
|
105
|
+
* @param {HTMLElement} sourceNode The HTML element of the clicked logout item
|
|
106
|
+
* @param {PointerEvent} originalEvent The original event object
|
|
107
|
+
* @param {AnalyticsName} analyticsName The analytics name for the clicked logout item
|
|
104
108
|
*/
|
|
105
109
|
@event("logout", { cancelable: true, bubbles: true })
|
|
106
110
|
|
|
@@ -108,6 +112,10 @@ type UDExMastheadProfileMenuAddOrRemoveClickEventDetail = {
|
|
|
108
112
|
* Fires when profile menu item is clicked
|
|
109
113
|
*
|
|
110
114
|
* @public
|
|
115
|
+
* @param {UDExMastheadMenuItem} item The clicked profile menu item
|
|
116
|
+
* @param {PointerEvent} originalEvent The original event object
|
|
117
|
+
* @param {AnalyticsName} analyticsName The analytics name for the clicked profile menu item
|
|
118
|
+
* @param {HTMLElement} sourceNode The HTML element of the clicked profile menu item
|
|
111
119
|
*/
|
|
112
120
|
@event("profile-item-click", { cancelable: true, bubbles: true })
|
|
113
121
|
|
|
@@ -115,6 +123,7 @@ type UDExMastheadProfileMenuAddOrRemoveClickEventDetail = {
|
|
|
115
123
|
* Fired when use click add or remove account button
|
|
116
124
|
*
|
|
117
125
|
* @public
|
|
126
|
+
* @param {AnalyticsName} analyticsName The analytics name for the clicked add or remove account button
|
|
118
127
|
*/
|
|
119
128
|
@event("add-or-remove-account-click", { cancelable: true, bubbles: true })
|
|
120
129
|
|
|
@@ -122,6 +131,8 @@ type UDExMastheadProfileMenuAddOrRemoveClickEventDetail = {
|
|
|
122
131
|
* Fires when identity item is clicked
|
|
123
132
|
*
|
|
124
133
|
* @public
|
|
134
|
+
* @param {ExtendedUserIdentity} item The clicked identity item
|
|
135
|
+
* @param {AnalyticsName} analyticsName The analytics name for the clicked identity item
|
|
125
136
|
*/
|
|
126
137
|
@event("identity-item-click", { cancelable: true, bubbles: true })
|
|
127
138
|
|
package/src/MastheadShell.ts
CHANGED
|
@@ -96,6 +96,7 @@ type UDExMastheadShellAnalyticsNameEventDetail = {
|
|
|
96
96
|
* Fired event when the user clicks the mobile menu button opener.
|
|
97
97
|
*
|
|
98
98
|
* @public
|
|
99
|
+
* @param {AnalyticsName} analyticsName The analytics name for the mobile menu open event
|
|
99
100
|
*/
|
|
100
101
|
@event("mobile-menu-open", { bubbles: true })
|
|
101
102
|
|
|
@@ -103,6 +104,7 @@ type UDExMastheadShellAnalyticsNameEventDetail = {
|
|
|
103
104
|
* Fired event when the user clicks the mobile menu button closer.
|
|
104
105
|
*
|
|
105
106
|
* @public
|
|
107
|
+
* @param {AnalyticsName} analyticsName The analytics name for the mobile menu open event
|
|
106
108
|
*/
|
|
107
109
|
@event("mobile-menu-close", { bubbles: true })
|
|
108
110
|
|
|
@@ -110,6 +112,11 @@ type UDExMastheadShellAnalyticsNameEventDetail = {
|
|
|
110
112
|
* Fired event when the user clicks the search button trigger.
|
|
111
113
|
*
|
|
112
114
|
* @public
|
|
115
|
+
* @param {AnalyticsName} analyticsName The analytics name for the search click event
|
|
116
|
+
* @param {PointerEvent} originalEvent The original pointer event
|
|
117
|
+
* @param {HTMLElement} sourceNode The source element that fired the event
|
|
118
|
+
* @param {UDExMastheadItem} [item] The masthead item that was clicked
|
|
119
|
+
*
|
|
113
120
|
*/
|
|
114
121
|
@event("search-click", { bubbles: true })
|
|
115
122
|
|
|
@@ -117,6 +124,10 @@ type UDExMastheadShellAnalyticsNameEventDetail = {
|
|
|
117
124
|
* Fired event when the user clicks the search close button.
|
|
118
125
|
*
|
|
119
126
|
* @public
|
|
127
|
+
* @param {AnalyticsName} analyticsName The analytics name for the search click event
|
|
128
|
+
* @param {PointerEvent} originalEvent The original pointer event
|
|
129
|
+
* @param {HTMLElement} sourceNode The source element that fired the event
|
|
130
|
+
* @param {UDExMastheadItem} [item] The masthead item that was clicked
|
|
120
131
|
*/
|
|
121
132
|
@event("search-close-click", { bubbles: true })
|
|
122
133
|
|
|
@@ -124,6 +135,7 @@ type UDExMastheadShellAnalyticsNameEventDetail = {
|
|
|
124
135
|
* Fired event when the search panel is opened.
|
|
125
136
|
*
|
|
126
137
|
* @public
|
|
138
|
+
* @param {AnalyticsName} analyticsName The analytics name for the mobile menu open event
|
|
127
139
|
*/
|
|
128
140
|
@event("search-opened", { bubbles: true })
|
|
129
141
|
|
|
@@ -131,6 +143,7 @@ type UDExMastheadShellAnalyticsNameEventDetail = {
|
|
|
131
143
|
* Fired event when the search panel is closed.
|
|
132
144
|
*
|
|
133
145
|
* @public
|
|
146
|
+
* @param {AnalyticsName} analyticsName The analytics name for the mobile menu open event
|
|
134
147
|
*/
|
|
135
148
|
@event("search-closed", { bubbles: true })
|
|
136
149
|
|
|
@@ -138,6 +151,10 @@ type UDExMastheadShellAnalyticsNameEventDetail = {
|
|
|
138
151
|
* Fired event when the user clicks the cart button trigger.
|
|
139
152
|
*
|
|
140
153
|
* @public
|
|
154
|
+
* @param {AnalyticsName} analyticsName The analytics name for the search click event
|
|
155
|
+
* @param {PointerEvent} originalEvent The original pointer event
|
|
156
|
+
* @param {HTMLElement} sourceNode The source element that fired the event
|
|
157
|
+
* @param {UDExMastheadItem} [item] The masthead item that was clicked
|
|
141
158
|
*/
|
|
142
159
|
@event("cart-click", { bubbles: true })
|
|
143
160
|
|
|
@@ -145,6 +162,10 @@ type UDExMastheadShellAnalyticsNameEventDetail = {
|
|
|
145
162
|
* Fired event when the user clicks the support button trigger.
|
|
146
163
|
*
|
|
147
164
|
* @public
|
|
165
|
+
* @param {AnalyticsName} analyticsName The analytics name for the search click event
|
|
166
|
+
* @param {PointerEvent} originalEvent The original pointer event
|
|
167
|
+
* @param {HTMLElement} sourceNode The source element that fired the event
|
|
168
|
+
* @param {UDExMastheadItem} [item] The masthead item that was clicked
|
|
148
169
|
*/
|
|
149
170
|
@event("support-click", { bubbles: true })
|
|
150
171
|
|
|
@@ -152,6 +173,10 @@ type UDExMastheadShellAnalyticsNameEventDetail = {
|
|
|
152
173
|
* Fired event when the user clicks the profile button trigger.
|
|
153
174
|
*
|
|
154
175
|
* @public
|
|
176
|
+
* @param {AnalyticsName} analyticsName The analytics name for the search click event
|
|
177
|
+
* @param {PointerEvent} originalEvent The original pointer event
|
|
178
|
+
* @param {HTMLElement} sourceNode The source element that fired the event
|
|
179
|
+
* @param {UDExMastheadItem} [item] The masthead item that was clicked
|
|
155
180
|
*/
|
|
156
181
|
@event("profile-click", { bubbles: true })
|
|
157
182
|
|
|
@@ -159,6 +184,10 @@ type UDExMastheadShellAnalyticsNameEventDetail = {
|
|
|
159
184
|
* Fired event when the user clicks the country selector button trigger.
|
|
160
185
|
*
|
|
161
186
|
* @public
|
|
187
|
+
* @param {AnalyticsName} analyticsName The analytics name for the search click event
|
|
188
|
+
* @param {PointerEvent} originalEvent The original pointer event
|
|
189
|
+
* @param {HTMLElement} sourceNode The source element that fired the event
|
|
190
|
+
* @param {UDExMastheadItem} [item] The masthead item that was clicked
|
|
162
191
|
*/
|
|
163
192
|
@event("country-selector-click", { bubbles: true })
|
|
164
193
|
|
|
@@ -166,6 +195,10 @@ type UDExMastheadShellAnalyticsNameEventDetail = {
|
|
|
166
195
|
* Fired event when the user clicks the logo.
|
|
167
196
|
*
|
|
168
197
|
* @public
|
|
198
|
+
* @param {AnalyticsName} analyticsName The analytics name for the search click event
|
|
199
|
+
* @param {PointerEvent} originalEvent The original pointer event
|
|
200
|
+
* @param {HTMLElement} sourceNode The source element that fired the event
|
|
201
|
+
* @param {UDExMastheadItem} [item] The masthead item that was clicked
|
|
169
202
|
*/
|
|
170
203
|
@event("logo-click", { bubbles: true })
|
|
171
204
|
|
|
@@ -173,6 +206,10 @@ type UDExMastheadShellAnalyticsNameEventDetail = {
|
|
|
173
206
|
* Fired event when the user clicks the site label.
|
|
174
207
|
*
|
|
175
208
|
* @public
|
|
209
|
+
* @param {AnalyticsName} analyticsName The analytics name for the search click event
|
|
210
|
+
* @param {PointerEvent} originalEvent The original pointer event
|
|
211
|
+
* @param {HTMLElement} sourceNode The source element that fired the event
|
|
212
|
+
* @param {UDExMastheadItem} [item] The masthead item that was clicked
|
|
176
213
|
*/
|
|
177
214
|
@event("site-label-click", { bubbles: true })
|
|
178
215
|
|
|
@@ -180,6 +217,10 @@ type UDExMastheadShellAnalyticsNameEventDetail = {
|
|
|
180
217
|
* Fired event when the user clicks the co-brand.
|
|
181
218
|
*
|
|
182
219
|
* @public
|
|
220
|
+
* @param {AnalyticsName} analyticsName The analytics name for the search click event
|
|
221
|
+
* @param {PointerEvent} originalEvent The original pointer event
|
|
222
|
+
* @param {HTMLElement} sourceNode The source element that fired the event
|
|
223
|
+
* @param {UDExMastheadItem} [item] The masthead item that was clicked
|
|
183
224
|
*/
|
|
184
225
|
@event("co-brand-click", { bubbles: true })
|
|
185
226
|
|
package/src/MediaPlayer.ts
CHANGED
package/src/MediaPlayerVimeo.ts
CHANGED
|
@@ -12,7 +12,7 @@ import MediaPlayerCss from "./generated/themes/MediaPlayer.css.js";
|
|
|
12
12
|
|
|
13
13
|
export type VimeoPlayer = Player;
|
|
14
14
|
|
|
15
|
-
type
|
|
15
|
+
type UDExMediaPlayerVimeoPlayingEventDetail = {
|
|
16
16
|
percentPlayed: number,
|
|
17
17
|
}
|
|
18
18
|
|
|
@@ -65,6 +65,7 @@ type UDExMediaPLayerViemeoPlayingEventDetail = {
|
|
|
65
65
|
*
|
|
66
66
|
* @allowPreventDefault
|
|
67
67
|
* @public
|
|
68
|
+
* @param {number} percentPlayed Percentage of video played (0-100)
|
|
68
69
|
*/
|
|
69
70
|
@event("playing", { bubbles: true })
|
|
70
71
|
class UDExMediaPlayerVimeo extends UI5Element {
|
|
@@ -72,7 +73,7 @@ class UDExMediaPlayerVimeo extends UI5Element {
|
|
|
72
73
|
"ready": void,
|
|
73
74
|
"ended": void,
|
|
74
75
|
"pause": void,
|
|
75
|
-
"playing":
|
|
76
|
+
"playing": UDExMediaPlayerVimeoPlayingEventDetail,
|
|
76
77
|
};
|
|
77
78
|
/**
|
|
78
79
|
* Defines the source of the video or audio
|
|
@@ -175,4 +176,4 @@ class UDExMediaPlayerVimeo extends UI5Element {
|
|
|
175
176
|
UDExMediaPlayerVimeo.define();
|
|
176
177
|
|
|
177
178
|
export default UDExMediaPlayerVimeo;
|
|
178
|
-
export type {
|
|
179
|
+
export type { UDExMediaPlayerVimeoPlayingEventDetail };
|
|
@@ -73,6 +73,7 @@ type UDExMediaPlayerYoutubeBaseEventDetails = {
|
|
|
73
73
|
*
|
|
74
74
|
* @allowPreventDefault
|
|
75
75
|
* @public
|
|
76
|
+
* @param {YT.OnStateChangeEvent} ytevent The YouTube state change event
|
|
76
77
|
*/
|
|
77
78
|
@event("ended", { bubbles: true })
|
|
78
79
|
/**
|
|
@@ -80,6 +81,7 @@ type UDExMediaPlayerYoutubeBaseEventDetails = {
|
|
|
80
81
|
*
|
|
81
82
|
* @allowPreventDefault
|
|
82
83
|
* @public
|
|
84
|
+
* @param {YT.OnStateChangeEvent} ytevent The YouTube state change event
|
|
83
85
|
*/
|
|
84
86
|
@event("pause", { bubbles: true })
|
|
85
87
|
/**
|
|
@@ -87,6 +89,7 @@ type UDExMediaPlayerYoutubeBaseEventDetails = {
|
|
|
87
89
|
*
|
|
88
90
|
* @allowPreventDefault
|
|
89
91
|
* @public
|
|
92
|
+
* @param {number} percentPlayed Percentage of video played (0-100)
|
|
90
93
|
*/
|
|
91
94
|
@event("playing", { bubbles: true })
|
|
92
95
|
class UDExMediaPlayerYoutube extends UI5Element {
|
package/src/Pagination.ts
CHANGED
package/src/Search.ts
CHANGED
|
@@ -6,7 +6,7 @@ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
|
6
6
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
7
7
|
import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
8
8
|
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
9
|
-
import
|
|
9
|
+
import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
|
|
10
10
|
import { getFeature } from "@ui5/webcomponents-base/dist/FeaturesRegistry.js";
|
|
11
11
|
import Popover from "@ui5/webcomponents/dist/Popover.js";
|
|
12
12
|
import {
|
|
@@ -42,12 +42,13 @@ import retryUntilSuccessful from "./utils/retryUntilSuccessful.js";
|
|
|
42
42
|
import sanitizeString from "./utils/sanitizeString.js";
|
|
43
43
|
import UDExButton from "./Button.js";
|
|
44
44
|
|
|
45
|
-
import SearchTemplate from "./
|
|
45
|
+
import SearchTemplate from "./SearchTemplate.js";
|
|
46
46
|
|
|
47
47
|
// Styles
|
|
48
48
|
import SearchCss from "./generated/themes/Search.css.js";
|
|
49
49
|
import SearchSuggestionsCss from "./generated/themes/SearchSuggestions.css.js";
|
|
50
50
|
import getEffectiveScrollbarStyle from "./utils/getEffectiveScrollbarStyle.js";
|
|
51
|
+
import type { Booleanish } from "@ui5/webcomponents-base/dist/thirdparty/preact/jsx.js";
|
|
51
52
|
|
|
52
53
|
const SearchIcon: string = "sap-icon://search";
|
|
53
54
|
|
|
@@ -126,7 +127,7 @@ type UDExSearchKeydownEventDetail = {
|
|
|
126
127
|
*/
|
|
127
128
|
@customElement({
|
|
128
129
|
tag: "udex-search",
|
|
129
|
-
renderer:
|
|
130
|
+
renderer: jsxRenderer,
|
|
130
131
|
styles: [SearchCss, SearchSuggestionsCss, getEffectiveScrollbarStyle()],
|
|
131
132
|
template: SearchTemplate,
|
|
132
133
|
get dependencies() {
|
|
@@ -139,12 +140,20 @@ type UDExSearchKeydownEventDetail = {
|
|
|
139
140
|
* Fired event when the user submitted the value.
|
|
140
141
|
*
|
|
141
142
|
* @public
|
|
143
|
+
* @param {string} value The submitted search value
|
|
144
|
+
* @param {string} categoryName The category name if an item from the suggestion list is clicked
|
|
145
|
+
* @param {string} item The clicked item from the suggestion list
|
|
146
|
+
*
|
|
142
147
|
*/
|
|
143
148
|
@event("submit-search-value", { bubbles: true })
|
|
144
149
|
/**
|
|
145
150
|
* Fired event when the user typed to search field.
|
|
146
151
|
*
|
|
147
152
|
* @public
|
|
153
|
+
* @param {string} value The current value of the search field
|
|
154
|
+
* @param {string} categoryName The category name if an item from the suggestion list is clicked
|
|
155
|
+
* @param {string} item The clicked item from the suggestion list
|
|
156
|
+
*
|
|
148
157
|
*/
|
|
149
158
|
@event("handle-value-search", { bubbles: true })
|
|
150
159
|
/**
|
|
@@ -157,18 +166,25 @@ type UDExSearchKeydownEventDetail = {
|
|
|
157
166
|
* Fired event when the user clicks on the item inside the popover.
|
|
158
167
|
*
|
|
159
168
|
* @public
|
|
169
|
+
* @param {string} value The value of the clicked item
|
|
170
|
+
* @param {string} categoryName The category name of the clicked item
|
|
171
|
+
* @param {string} item The clicked item from the suggestion list
|
|
172
|
+
*
|
|
160
173
|
*/
|
|
161
174
|
@event("dropdown-item-click", { bubbles: true })
|
|
162
175
|
/**
|
|
163
176
|
* Fired event when the user clicks on the intem inside the prefix dropdown.
|
|
164
177
|
*
|
|
165
178
|
* @public
|
|
179
|
+
* @param {ListItemBase} item The clicked item from the prefix dropdown
|
|
180
|
+
*
|
|
166
181
|
*/
|
|
167
182
|
@event("prefix-item-click")
|
|
168
183
|
/**
|
|
169
184
|
* Fired event when the user clicks on the intem inside the prefix dropdown.
|
|
170
185
|
*
|
|
171
186
|
* @public
|
|
187
|
+
* @param {KeyboardEvent} e The keyboard event object
|
|
172
188
|
*/
|
|
173
189
|
@event("search-keydown", { bubbles: true })
|
|
174
190
|
class UDExSearch extends UI5Element {
|
|
@@ -1181,7 +1197,7 @@ class UDExSearch extends UI5Element {
|
|
|
1181
1197
|
return !!(this.suggestedList?.length || this.recommendedList?.length);
|
|
1182
1198
|
}
|
|
1183
1199
|
|
|
1184
|
-
get getAriaHasPopup():
|
|
1200
|
+
get getAriaHasPopup(): "dialog" | Booleanish {
|
|
1185
1201
|
return this.showSuggestedPopover ? "dialog" : "false";
|
|
1186
1202
|
}
|
|
1187
1203
|
|
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
import type UDExSearch from "./Search.js";
|
|
2
|
+
import type { SuggestionList } from "./Search.js";
|
|
3
|
+
import slimArrowDown from "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
|
|
4
|
+
import search from "@ui5/webcomponents-icons/dist/search.js";
|
|
5
|
+
import decline from "@ui5/webcomponents-icons/dist/decline.js";
|
|
6
|
+
import microphone from "@ui5/webcomponents-icons/dist/microphone.js";
|
|
7
|
+
import UDExButton from "./Button.js";
|
|
8
|
+
import UDExButtonDesign from "./types/ButtonDesign.js";
|
|
9
|
+
import UDExButtonSize from "./types/ButtonSize.js";
|
|
10
|
+
import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
11
|
+
import UI5IconMode from "@ui5/webcomponents/dist/types/IconMode.js";
|
|
12
|
+
import UI5Popover from "@ui5/webcomponents/dist/Popover.js";
|
|
13
|
+
import UI5PopoverPlacement from "@ui5/webcomponents/dist/types/PopoverPlacement.js";
|
|
14
|
+
import UI5PopoverHAlign from "@ui5/webcomponents/dist/types/PopoverHorizontalAlign.js";
|
|
15
|
+
import UDExControlButton from "./ControlButton.js";
|
|
16
|
+
import UDExControlButtonDesign from "./types/ControlButtonDesign.js";
|
|
17
|
+
import UI5Button from "@ui5/webcomponents/dist/Button.js";
|
|
18
|
+
import UI5ButtonDesign from "@ui5/webcomponents/dist/types/ButtonDesign.js";
|
|
19
|
+
|
|
20
|
+
export default function SearchTemplate(this: UDExSearch) {
|
|
21
|
+
return (
|
|
22
|
+
<>
|
|
23
|
+
<div class={`udex-search__root ${this.searchClasses}`}>
|
|
24
|
+
{ this.isShowSearchHomePrefix ? renderSearchHomePrefix.call(this) : "" }
|
|
25
|
+
|
|
26
|
+
<form role="search" class={`udex-search__container ${this.focusClasses} ${this.isNotEmptyClass}`}>
|
|
27
|
+
{ this.labelAnimationDisabled ? renderInputWithStaticLabel.call(this) : renderInputWithAnimatedLabel.call(this) }
|
|
28
|
+
|
|
29
|
+
{
|
|
30
|
+
this.open ? (
|
|
31
|
+
<span
|
|
32
|
+
aria-live="polite"
|
|
33
|
+
aria-atomic="true"
|
|
34
|
+
id="search-description"
|
|
35
|
+
class="hidden"
|
|
36
|
+
aria-hidden="true"
|
|
37
|
+
>
|
|
38
|
+
{this.suggestionsDescription}
|
|
39
|
+
</span>
|
|
40
|
+
) : ""
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
<div class="udex-search__icons">
|
|
44
|
+
{
|
|
45
|
+
this.isShowHomeResetButton ? (
|
|
46
|
+
<UDExButton
|
|
47
|
+
id="reset-button"
|
|
48
|
+
class="udex-search__button udex-search__reset-button"
|
|
49
|
+
size={UDExButtonSize.Small}
|
|
50
|
+
design={UDExButtonDesign.Default}
|
|
51
|
+
tooltip={this.tooltipInfo.tooltipResetButton}
|
|
52
|
+
onClick={this.onReset as any}
|
|
53
|
+
onKeyDown={this.handleKeyDownReset}
|
|
54
|
+
>
|
|
55
|
+
<UI5Icon
|
|
56
|
+
class="udex-search__button-icon"
|
|
57
|
+
accessible-name={this.accInfo.accessibleNameResetIcon}
|
|
58
|
+
accessible-role="presentation"
|
|
59
|
+
name={decline}
|
|
60
|
+
></UI5Icon>
|
|
61
|
+
</UDExButton>
|
|
62
|
+
) : ""
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
{
|
|
66
|
+
this.isShowResetButton ? (
|
|
67
|
+
<UDExControlButton
|
|
68
|
+
id="reset-button"
|
|
69
|
+
class="udex-search__reset-button"
|
|
70
|
+
design={UDExControlButtonDesign.Default}
|
|
71
|
+
tooltip={this.tooltipInfo.tooltipResetButton}
|
|
72
|
+
icon={decline}
|
|
73
|
+
size={UDExButtonSize.Large}
|
|
74
|
+
accessible-name={this.accInfo.accessibleNameResetIcon}
|
|
75
|
+
onClick={this.onReset as any}
|
|
76
|
+
onKeyDown={this.handleKeyDownReset}
|
|
77
|
+
></UDExControlButton>
|
|
78
|
+
) : ""
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
{
|
|
82
|
+
this.isVoiceButton ? (
|
|
83
|
+
<UDExButton
|
|
84
|
+
id="voice-button"
|
|
85
|
+
class={`udex-search__button udex-search__voice-button ${this.voiceActiveClass}`}
|
|
86
|
+
design={UDExButtonDesign.Default}
|
|
87
|
+
size={UDExButtonSize.Small}
|
|
88
|
+
icon={microphone}
|
|
89
|
+
tooltip={this.tooltipInfo.tooltipVoiceButton}
|
|
90
|
+
onClick={this.onVoice as any}
|
|
91
|
+
></UDExButton>
|
|
92
|
+
) : ""
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
{
|
|
96
|
+
this.showNonInteractiveButton ? (
|
|
97
|
+
<UI5Icon
|
|
98
|
+
class="udex-search__icon"
|
|
99
|
+
aria-hidden="true"
|
|
100
|
+
accessible-name={this.accInfo.accessibleNameSearchIcon}
|
|
101
|
+
name={search}
|
|
102
|
+
></UI5Icon>
|
|
103
|
+
) : ""
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
{
|
|
107
|
+
this.showSubmitHomeButton ? (
|
|
108
|
+
<UDExButton
|
|
109
|
+
id="submit-button"
|
|
110
|
+
class={`udex-search__button udex-search__submit-button ${this.searchButtonActiveClass}`}
|
|
111
|
+
design={UDExButtonDesign.Default}
|
|
112
|
+
icon={search}
|
|
113
|
+
size={UDExButtonSize.Small}
|
|
114
|
+
tooltip={this.tooltipInfo.tooltipSubmitButton}
|
|
115
|
+
onClick={this.onSubmit as any}
|
|
116
|
+
></UDExButton>
|
|
117
|
+
) : ""
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
{
|
|
121
|
+
this.showSubmitStandardButton ? (
|
|
122
|
+
<UDExControlButton
|
|
123
|
+
id="submit-button"
|
|
124
|
+
class="udex-search__submit-button"
|
|
125
|
+
size={UDExButtonSize.Large}
|
|
126
|
+
design={UDExControlButtonDesign.Default}
|
|
127
|
+
icon={search}
|
|
128
|
+
tooltip={this.tooltipInfo.tooltipSubmitButton}
|
|
129
|
+
onClick={this.onSubmit as any}
|
|
130
|
+
></UDExControlButton>
|
|
131
|
+
) : ""
|
|
132
|
+
}
|
|
133
|
+
</div>
|
|
134
|
+
</form>
|
|
135
|
+
</div>
|
|
136
|
+
|
|
137
|
+
{ renderSearchSuggestionPopover.call(this) }
|
|
138
|
+
</>
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
function renderSearchHomePrefix(this: UDExSearch) {
|
|
143
|
+
return (
|
|
144
|
+
<div class={`udex-search__prefix ${this.prefixWrapperClasses}`}>
|
|
145
|
+
<button
|
|
146
|
+
type="button"
|
|
147
|
+
role="combobox"
|
|
148
|
+
aria-expanded={this._prefixDropdownExpanded}
|
|
149
|
+
aria-label={this.labelPrefix}
|
|
150
|
+
aria-haspopup="true"
|
|
151
|
+
aria-controls="udex-search-prefix"
|
|
152
|
+
class="udex-search__prefix-button"
|
|
153
|
+
onClick={this.handleDropdownClick}
|
|
154
|
+
>
|
|
155
|
+
<span class="udex-search__prefix-label">{this.labelPrefix}</span>
|
|
156
|
+
<UI5Icon
|
|
157
|
+
class="udex-search__prefix-icon"
|
|
158
|
+
name={slimArrowDown}
|
|
159
|
+
mode={UI5IconMode.Decorative}
|
|
160
|
+
></UI5Icon>
|
|
161
|
+
</button>
|
|
162
|
+
|
|
163
|
+
<UI5Popover
|
|
164
|
+
id="udex-search-prefix"
|
|
165
|
+
class={this.prefixPopoverClasses}
|
|
166
|
+
hide-arrow
|
|
167
|
+
placement={UI5PopoverPlacement.Bottom}
|
|
168
|
+
horizontal-align={UI5PopoverHAlign.Start}
|
|
169
|
+
style={this.prefixPopoverStyles}
|
|
170
|
+
onClose={this.handleAfterClosePrefixPopover}
|
|
171
|
+
>
|
|
172
|
+
<slot></slot>
|
|
173
|
+
</UI5Popover>
|
|
174
|
+
</div>
|
|
175
|
+
);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
function renderSearchInput(this: UDExSearch, placeholder: boolean = false) {
|
|
179
|
+
return (
|
|
180
|
+
<input
|
|
181
|
+
role="searchbox"
|
|
182
|
+
id="search-input"
|
|
183
|
+
type="search"
|
|
184
|
+
name="search"
|
|
185
|
+
class="udex-search__field"
|
|
186
|
+
autocomplete="off"
|
|
187
|
+
aria-autocomplete="list"
|
|
188
|
+
aria-haspopup={this.getAriaHasPopup}
|
|
189
|
+
aria-label={this.accInfo.ariaLabel}
|
|
190
|
+
aria-describedby="search-description"
|
|
191
|
+
{...(placeholder ? { placeholder: this.effectivePlaceholder } : {})}
|
|
192
|
+
value={this.value}
|
|
193
|
+
onInput={this.handleSearchChange}
|
|
194
|
+
onKeyDown={this.handleKeyDown}
|
|
195
|
+
onFocus={this.handleFocus}
|
|
196
|
+
onFocusOut={this.handleFocusout}
|
|
197
|
+
onBlur={this.handleBlur}
|
|
198
|
+
onClick={this.handleInputClick}
|
|
199
|
+
/>
|
|
200
|
+
);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
function renderInputWithStaticLabel(this: UDExSearch) {
|
|
204
|
+
return renderSearchInput.call(this, true);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
function renderInputWithAnimatedLabel(this: UDExSearch) {
|
|
208
|
+
return (
|
|
209
|
+
<>
|
|
210
|
+
{
|
|
211
|
+
this.label ? (
|
|
212
|
+
<label for="search-input" class={this.labelClasses}>
|
|
213
|
+
{this.label}
|
|
214
|
+
</label>
|
|
215
|
+
) : ""
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
{ renderSearchInput.call(this, false) }
|
|
219
|
+
</>
|
|
220
|
+
);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
function renderSearchSuggestionPopover(this: UDExSearch) {
|
|
224
|
+
return (
|
|
225
|
+
<UI5Popover
|
|
226
|
+
class={`udex-search-suggestions__root ${this.homeSearchPopoverClass}`}
|
|
227
|
+
hide-arrow
|
|
228
|
+
prevent-initial-focus
|
|
229
|
+
placement={UI5PopoverPlacement.Bottom}
|
|
230
|
+
horizontal-align={UI5PopoverHAlign.End}
|
|
231
|
+
style={this.popoverStyles}
|
|
232
|
+
id={this.getSuggestionsPopoverId}
|
|
233
|
+
aria-orientation="vertical"
|
|
234
|
+
accessible-role="Dialog"
|
|
235
|
+
onKeyDown={this.handleKeyPressSuggestionList}
|
|
236
|
+
accessible-name={this.suggestionsAccessibleName}
|
|
237
|
+
>
|
|
238
|
+
{
|
|
239
|
+
this.showNoResultMessage ? (
|
|
240
|
+
<span class="udex-search-suggestions__message">{this.noResultMessage}</span>
|
|
241
|
+
) : renderSearchSuggestionPopoverResults.call(this)
|
|
242
|
+
}
|
|
243
|
+
</UI5Popover>
|
|
244
|
+
);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
function renderSearchSuggestionPopoverResults(this: UDExSearch) {
|
|
248
|
+
return (
|
|
249
|
+
<div role="tree">
|
|
250
|
+
{
|
|
251
|
+
this.isShowSuggestedList ? (
|
|
252
|
+
renderSearchSuggestionPopoverResultsSuggestedList.call(this)
|
|
253
|
+
) : ""
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
{
|
|
257
|
+
this.isShowRecommendedList ? (
|
|
258
|
+
renderSearchSuggestionPopoverResultsRecommendedList.call(this)
|
|
259
|
+
) : ""
|
|
260
|
+
}
|
|
261
|
+
</div>
|
|
262
|
+
);
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
function renderSearchSuggestionPopoverResultsSuggestedList(this: UDExSearch) {
|
|
266
|
+
return (
|
|
267
|
+
<div class="udex-search-suggestions__block" role="treeitem">
|
|
268
|
+
{
|
|
269
|
+
this.suggestedHeading ? (
|
|
270
|
+
<span class="udex-search-suggestions__heading" id="suggested-heading">
|
|
271
|
+
{this.suggestedHeading}
|
|
272
|
+
</span>
|
|
273
|
+
) : ""
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
<div class="udex-search-suggestions__list"
|
|
277
|
+
role="listbox"
|
|
278
|
+
aria-labelledby="suggested-heading"
|
|
279
|
+
tabindex={0}
|
|
280
|
+
onKeyDown={this.handleKeyDownPopover}
|
|
281
|
+
>
|
|
282
|
+
{
|
|
283
|
+
this.suggestedList.map((item, i) => (
|
|
284
|
+
<UI5Button
|
|
285
|
+
key={i}
|
|
286
|
+
id={item.id}
|
|
287
|
+
icon={item.icon}
|
|
288
|
+
type="Button"
|
|
289
|
+
design={UI5ButtonDesign.Default}
|
|
290
|
+
accessible-name={item.suggestionDescription}
|
|
291
|
+
class="udex-search-suggestions__item-button"
|
|
292
|
+
title={item.title}
|
|
293
|
+
tabindex={-1}
|
|
294
|
+
role="option"
|
|
295
|
+
onClick={item.handleSelectItem}
|
|
296
|
+
dangerouslySetInnerHTML={{ __html: item.text }}
|
|
297
|
+
></UI5Button>
|
|
298
|
+
))
|
|
299
|
+
}
|
|
300
|
+
</div>
|
|
301
|
+
</div>
|
|
302
|
+
);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
function renderSearchSuggestionPopoverResultsRecommendedList(this: UDExSearch) {
|
|
306
|
+
return (
|
|
307
|
+
<div class="udex-search-suggestions__block" role="treeitem">
|
|
308
|
+
{
|
|
309
|
+
this.recommendedHeading ? (
|
|
310
|
+
<span class="udex-search-suggestions__heading" id="recommended-heading">
|
|
311
|
+
{this.recommendedHeading}
|
|
312
|
+
</span>
|
|
313
|
+
) : ""
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
<div class="udex-search-suggestions__list"
|
|
317
|
+
role="listbox"
|
|
318
|
+
aria-labelledby="recommended-heading"
|
|
319
|
+
tabindex={0}
|
|
320
|
+
onKeyDown={this.handleKeyDownPopover}
|
|
321
|
+
>
|
|
322
|
+
{
|
|
323
|
+
this.recommendedList.map((item, i) => (
|
|
324
|
+
item.hasCustomIcon ? (
|
|
325
|
+
renderSearchSuggestionPopoverResultsRecommendedListButton(item, i, item.icon)
|
|
326
|
+
) : (
|
|
327
|
+
renderSearchSuggestionPopoverResultsRecommendedListButton(item, i)
|
|
328
|
+
)
|
|
329
|
+
))
|
|
330
|
+
}
|
|
331
|
+
</div>
|
|
332
|
+
</div>
|
|
333
|
+
);
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
function renderSearchSuggestionPopoverResultsRecommendedListButton(button: SuggestionList, key: number, icon: string | undefined = undefined) {
|
|
337
|
+
return (
|
|
338
|
+
<UI5Button
|
|
339
|
+
key={key}
|
|
340
|
+
id={button.id}
|
|
341
|
+
{...(icon ? { "icon": icon } : {})}
|
|
342
|
+
type="Button"
|
|
343
|
+
design={UI5ButtonDesign.Default}
|
|
344
|
+
class="udex-search-suggestions__item-button"
|
|
345
|
+
accessible-name={button.suggestionDescription}
|
|
346
|
+
title={button.title}
|
|
347
|
+
tabindex={-1}
|
|
348
|
+
role="option"
|
|
349
|
+
onClick={button.handleSelectItem}
|
|
350
|
+
dangerouslySetInnerHTML={{ __html: button.text }}
|
|
351
|
+
></UI5Button>
|
|
352
|
+
);
|
|
353
|
+
}
|