@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.
Files changed (319) hide show
  1. package/bundle.esm.js +2 -0
  2. package/cypress/specs/CountrySelector.cy.tsx +158 -144
  3. package/cypress/specs/EventRibbon.cy.tsx +3 -1
  4. package/cypress/specs/ImageGridCloud.cy.tsx +78 -0
  5. package/cypress/specs/ImageGridCloudItem.cy.tsx +29 -0
  6. package/cypress/specs/SelectBox.cy.tsx +173 -206
  7. package/cypress/specs/Tag.cy.tsx +1 -1
  8. package/cypress/specs/TextField.cy.tsx +15 -0
  9. package/cypress/specs/Textarea.cy.tsx +15 -33
  10. package/cypress/support/component-imports.instrumented.ts +4 -0
  11. package/cypress/support/component-imports.src.ts +4 -0
  12. package/dist/Accordion.js +1 -0
  13. package/dist/Accordion.js.map +1 -1
  14. package/dist/AccordionItem.js +2 -0
  15. package/dist/AccordionItem.js.map +1 -1
  16. package/dist/AssetsVariables.js +2 -1
  17. package/dist/AssetsVariables.js.map +1 -1
  18. package/dist/Breadcrumbs.js +5 -0
  19. package/dist/Breadcrumbs.js.map +1 -1
  20. package/dist/ContactItem.js +2 -0
  21. package/dist/ContactItem.js.map +1 -1
  22. package/dist/CountrySelector.d.ts +25 -142
  23. package/dist/CountrySelector.js +91 -267
  24. package/dist/CountrySelector.js.map +1 -1
  25. package/dist/DatePicker.js +2 -1
  26. package/dist/DatePicker.js.map +1 -1
  27. package/dist/FilterMenu.d.ts +14 -2
  28. package/dist/FilterMenu.js +13 -1
  29. package/dist/FilterMenu.js.map +1 -1
  30. package/dist/Footer.js +27 -0
  31. package/dist/Footer.js.map +1 -1
  32. package/dist/ImageGridCloud.d.ts +76 -0
  33. package/dist/ImageGridCloud.js +153 -0
  34. package/dist/ImageGridCloud.js.map +1 -0
  35. package/dist/ImageGridCloudItem.d.ts +35 -0
  36. package/dist/ImageGridCloudItem.js +49 -0
  37. package/dist/ImageGridCloudItem.js.map +1 -0
  38. package/dist/ImageGridCloudItemTemplate.d.ts +2 -0
  39. package/dist/ImageGridCloudItemTemplate.js +5 -0
  40. package/dist/ImageGridCloudItemTemplate.js.map +1 -0
  41. package/dist/ImageGridCloudTemplate.d.ts +2 -0
  42. package/dist/ImageGridCloudTemplate.js +6 -0
  43. package/dist/ImageGridCloudTemplate.js.map +1 -0
  44. package/dist/ImageGridTicker.d.ts +2 -2
  45. package/dist/ImageGridTicker.js +1 -8
  46. package/dist/ImageGridTicker.js.map +1 -1
  47. package/dist/LinkListItem.js +1 -0
  48. package/dist/LinkListItem.js.map +1 -1
  49. package/dist/List.js +5 -3
  50. package/dist/List.js.map +1 -1
  51. package/dist/ListGroupHeader.js +1 -0
  52. package/dist/ListGroupHeader.js.map +1 -1
  53. package/dist/ListGroupHeaderBase.d.ts +1 -0
  54. package/dist/ListGroupHeaderBase.js +3 -0
  55. package/dist/ListGroupHeaderBase.js.map +1 -1
  56. package/dist/ListItem.js +2 -0
  57. package/dist/ListItem.js.map +1 -1
  58. package/dist/ListItemBase.d.ts +12 -0
  59. package/dist/ListItemBase.js +21 -2
  60. package/dist/ListItemBase.js.map +1 -1
  61. package/dist/ListSelectAll.js +1 -0
  62. package/dist/ListSelectAll.js.map +1 -1
  63. package/dist/MastheadCountrySelector.js +15 -0
  64. package/dist/MastheadCountrySelector.js.map +1 -1
  65. package/dist/MastheadItem.js +10 -0
  66. package/dist/MastheadItem.js.map +1 -1
  67. package/dist/MastheadMenu.js +6 -0
  68. package/dist/MastheadMenu.js.map +1 -1
  69. package/dist/MastheadMobileMenu.js +11 -0
  70. package/dist/MastheadMobileMenu.js.map +1 -1
  71. package/dist/MastheadProfileMenu.js +11 -0
  72. package/dist/MastheadProfileMenu.js.map +1 -1
  73. package/dist/MastheadShell.js +41 -0
  74. package/dist/MastheadShell.js.map +1 -1
  75. package/dist/MediaPlayer.js +3 -0
  76. package/dist/MediaPlayer.js.map +1 -1
  77. package/dist/MediaPlayerTemplate.js +4 -4
  78. package/dist/MediaPlayerTemplate.js.map +1 -1
  79. package/dist/MediaPlayerVimeo.d.ts +3 -3
  80. package/dist/MediaPlayerVimeo.js +1 -0
  81. package/dist/MediaPlayerVimeo.js.map +1 -1
  82. package/dist/MediaPlayerYoutube.js +3 -0
  83. package/dist/MediaPlayerYoutube.js.map +1 -1
  84. package/dist/Pagination.js +1 -1
  85. package/dist/Pagination.js.map +1 -1
  86. package/dist/Search.d.ts +2 -1
  87. package/dist/Search.js +18 -3
  88. package/dist/Search.js.map +1 -1
  89. package/dist/SearchTemplate.d.ts +2 -0
  90. package/dist/SearchTemplate.js +48 -0
  91. package/dist/SearchTemplate.js.map +1 -0
  92. package/dist/SearchableListBase.d.ts +26 -16
  93. package/dist/SearchableListBase.js +58 -72
  94. package/dist/SearchableListBase.js.map +1 -1
  95. package/dist/SecondaryNavigation.js +19 -0
  96. package/dist/SecondaryNavigation.js.map +1 -1
  97. package/dist/SecondaryNavigationItem.js +6 -0
  98. package/dist/SecondaryNavigationItem.js.map +1 -1
  99. package/dist/SecondaryNavigationSubItem.js +3 -0
  100. package/dist/SecondaryNavigationSubItem.js.map +1 -1
  101. package/dist/SelectBase.d.ts +193 -0
  102. package/dist/SelectBase.js +428 -0
  103. package/dist/SelectBase.js.map +1 -0
  104. package/dist/SelectBox.d.ts +30 -152
  105. package/dist/SelectBox.js +140 -348
  106. package/dist/SelectBox.js.map +1 -1
  107. package/dist/SocialMediaButton.js +2 -0
  108. package/dist/SocialMediaButton.js.map +1 -1
  109. package/dist/StepInput.js +2 -0
  110. package/dist/StepInput.js.map +1 -1
  111. package/dist/TabNavigation.js +3 -0
  112. package/dist/TabNavigation.js.map +1 -1
  113. package/dist/Tag.js +1 -0
  114. package/dist/Tag.js.map +1 -1
  115. package/dist/TagGroup.d.ts +23 -5
  116. package/dist/TagGroup.js +40 -16
  117. package/dist/TagGroup.js.map +1 -1
  118. package/dist/TagTemplate.js +4 -2
  119. package/dist/TagTemplate.js.map +1 -1
  120. package/dist/TextArea.d.ts +1 -1
  121. package/dist/TextArea.js +5 -5
  122. package/dist/TextArea.js.map +1 -1
  123. package/dist/TextAreaTemplate.d.ts +2 -0
  124. package/dist/TextAreaTemplate.js +13 -0
  125. package/dist/TextAreaTemplate.js.map +1 -0
  126. package/dist/TextField.d.ts +29 -4
  127. package/dist/TextField.js +33 -16
  128. package/dist/TextField.js.map +1 -1
  129. package/dist/TextFieldTemplate.d.ts +2 -0
  130. package/dist/TextFieldTemplate.js +14 -0
  131. package/dist/TextFieldTemplate.js.map +1 -0
  132. package/dist/Tile.js +1 -0
  133. package/dist/Tile.js.map +1 -1
  134. package/dist/Upload.js +5 -0
  135. package/dist/Upload.js.map +1 -1
  136. package/dist/assets/{InputSuggestions-B0P5JAFd.js → InputSuggestions-C8m6N2-d.js} +1 -1
  137. package/dist/assets/{ListItemStandardExpandableTextTemplate-CFj3_UAT.js → ListItemStandardExpandableTextTemplate-BwD5bYhw.js} +1 -1
  138. package/dist/assets/{bundle.esm-BaPBMfCT.js → bundle.esm-hGsUwmUy.js} +222 -218
  139. package/dist/css/themes/CountrySelector.css +1 -1
  140. package/dist/css/themes/EventRibbon.css +1 -1
  141. package/dist/css/themes/ImageGridCloud.css +1 -0
  142. package/dist/css/themes/ImageGridCloudItem.css +1 -0
  143. package/dist/css/themes/ListItem.css +1 -1
  144. package/dist/css/themes/MastheadItem.css +1 -1
  145. package/dist/css/themes/MastheadMobileMenu.css +1 -1
  146. package/dist/css/themes/Pagination.css +1 -1
  147. package/dist/css/themes/RatingIndicator.css +1 -1
  148. package/dist/css/themes/Search.css +1 -1
  149. package/dist/css/themes/SelectBase.css +1 -0
  150. package/dist/css/themes/SelectBox.css +1 -1
  151. package/dist/css/themes/Slider.css +1 -1
  152. package/dist/css/themes/TagGroup.css +1 -1
  153. package/dist/css/themes/TextField.css +1 -1
  154. package/dist/custom-elements-internal.json +4627 -1311
  155. package/dist/custom-elements.json +1260 -1249
  156. package/dist/generated/templates/CountrySelectorTemplate.lit.js +3 -3
  157. package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
  158. package/dist/generated/templates/ListItemTemplate.lit.js +1 -1
  159. package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
  160. package/dist/generated/templates/SelectBoxTemplate.lit.js +10 -9
  161. package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
  162. package/dist/generated/themes/CountrySelector.css.d.ts +1 -1
  163. package/dist/generated/themes/CountrySelector.css.js +1 -1
  164. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  165. package/dist/generated/themes/EventRibbon.css.d.ts +1 -1
  166. package/dist/generated/themes/EventRibbon.css.js +1 -1
  167. package/dist/generated/themes/EventRibbon.css.js.map +1 -1
  168. package/dist/generated/themes/ImageGridCloud.css.d.ts +2 -0
  169. package/dist/generated/themes/ImageGridCloud.css.js +8 -0
  170. package/dist/generated/themes/ImageGridCloud.css.js.map +1 -0
  171. package/dist/generated/themes/ImageGridCloudItem.css.d.ts +2 -0
  172. package/dist/generated/themes/ImageGridCloudItem.css.js +8 -0
  173. package/dist/generated/themes/ImageGridCloudItem.css.js.map +1 -0
  174. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  175. package/dist/generated/themes/ListItem.css.js +1 -1
  176. package/dist/generated/themes/ListItem.css.js.map +1 -1
  177. package/dist/generated/themes/MastheadItem.css.d.ts +1 -1
  178. package/dist/generated/themes/MastheadItem.css.js +1 -1
  179. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  180. package/dist/generated/themes/MastheadMobileMenu.css.d.ts +1 -1
  181. package/dist/generated/themes/MastheadMobileMenu.css.js +1 -1
  182. package/dist/generated/themes/MastheadMobileMenu.css.js.map +1 -1
  183. package/dist/generated/themes/Pagination.css.d.ts +1 -1
  184. package/dist/generated/themes/Pagination.css.js +1 -1
  185. package/dist/generated/themes/Pagination.css.js.map +1 -1
  186. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  187. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  188. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  189. package/dist/generated/themes/Search.css.d.ts +1 -1
  190. package/dist/generated/themes/Search.css.js +1 -1
  191. package/dist/generated/themes/Search.css.js.map +1 -1
  192. package/dist/generated/themes/SelectBase.css.d.ts +2 -0
  193. package/dist/generated/themes/SelectBase.css.js +8 -0
  194. package/dist/generated/themes/SelectBase.css.js.map +1 -0
  195. package/dist/generated/themes/SelectBox.css.d.ts +1 -1
  196. package/dist/generated/themes/SelectBox.css.js +1 -1
  197. package/dist/generated/themes/SelectBox.css.js.map +1 -1
  198. package/dist/generated/themes/Slider.css.d.ts +1 -1
  199. package/dist/generated/themes/Slider.css.js +1 -1
  200. package/dist/generated/themes/Slider.css.js.map +1 -1
  201. package/dist/generated/themes/TagGroup.css.d.ts +1 -1
  202. package/dist/generated/themes/TagGroup.css.js +1 -1
  203. package/dist/generated/themes/TagGroup.css.js.map +1 -1
  204. package/dist/generated/themes/TextField.css.d.ts +1 -1
  205. package/dist/generated/themes/TextField.css.js +1 -1
  206. package/dist/generated/themes/TextField.css.js.map +1 -1
  207. package/dist/types/common.d.ts +1 -1
  208. package/dist/types/common.js +1 -1
  209. package/dist/types/common.js.map +1 -1
  210. package/dist/vscode.html-custom-data.json +49 -235
  211. package/dist/web-types.json +347 -832
  212. package/package.json +1 -1
  213. package/src/Accordion.ts +1 -0
  214. package/src/AccordionItem.ts +2 -0
  215. package/src/AssetsVariables.ts +2 -1
  216. package/src/Breadcrumbs.ts +5 -0
  217. package/src/ContactItem.ts +2 -0
  218. package/src/CountrySelector.hbs +6 -61
  219. package/src/CountrySelector.ts +93 -374
  220. package/src/DatePicker.ts +2 -1
  221. package/src/FilterMenu.ts +15 -3
  222. package/src/Footer.ts +27 -0
  223. package/src/ImageGridCloud.ts +188 -0
  224. package/src/ImageGridCloudItem.ts +57 -0
  225. package/src/ImageGridCloudItemTemplate.tsx +11 -0
  226. package/src/ImageGridCloudTemplate.tsx +16 -0
  227. package/src/ImageGridTicker.ts +3 -3
  228. package/src/LinkListItem.ts +1 -0
  229. package/src/List.ts +5 -3
  230. package/src/ListGroupHeader.ts +1 -0
  231. package/src/ListGroupHeaderBase.ts +4 -0
  232. package/src/ListItem.hbs +0 -1
  233. package/src/ListItem.ts +2 -0
  234. package/src/ListItemBase.ts +21 -3
  235. package/src/ListSelectAll.ts +1 -0
  236. package/src/MastheadCountrySelector.ts +15 -0
  237. package/src/MastheadItem.ts +10 -0
  238. package/src/MastheadMenu.ts +6 -0
  239. package/src/MastheadMobileMenu.ts +11 -0
  240. package/src/MastheadProfileMenu.ts +11 -0
  241. package/src/MastheadShell.ts +41 -0
  242. package/src/MediaPlayer.ts +3 -0
  243. package/src/MediaPlayerTemplate.tsx +0 -1
  244. package/src/MediaPlayerVimeo.ts +4 -3
  245. package/src/MediaPlayerYoutube.ts +3 -0
  246. package/src/Pagination.ts +1 -1
  247. package/src/Search.ts +20 -4
  248. package/src/SearchTemplate.tsx +353 -0
  249. package/src/SearchableListBase.ts +78 -83
  250. package/src/SecondaryNavigation.ts +19 -0
  251. package/src/SecondaryNavigationItem.ts +6 -0
  252. package/src/SecondaryNavigationSubItem.ts +3 -0
  253. package/src/SelectBase.ts +580 -0
  254. package/src/SelectBox.hbs +118 -107
  255. package/src/SelectBox.ts +156 -445
  256. package/src/SocialMediaButton.ts +2 -0
  257. package/src/StepInput.ts +2 -0
  258. package/src/TabNavigation.ts +3 -0
  259. package/src/Tag.ts +1 -0
  260. package/src/TagGroup.ts +56 -19
  261. package/src/TagTemplate.tsx +4 -2
  262. package/src/TextArea.ts +5 -5
  263. package/src/TextAreaTemplate.tsx +67 -0
  264. package/src/TextField.ts +58 -24
  265. package/src/TextFieldTemplate.tsx +90 -0
  266. package/src/Tile.ts +1 -0
  267. package/src/Upload.ts +5 -0
  268. package/src/generated/templates/CountrySelectorTemplate.lit.ts +2 -2
  269. package/src/generated/templates/ListItemTemplate.lit.ts +1 -1
  270. package/src/generated/templates/SelectBoxTemplate.lit.ts +10 -9
  271. package/src/generated/themes/CountrySelector.css.ts +1 -1
  272. package/src/generated/themes/EventRibbon.css.ts +1 -1
  273. package/src/generated/themes/ImageGridCloud.css.ts +9 -0
  274. package/src/generated/themes/ImageGridCloudItem.css.ts +9 -0
  275. package/src/generated/themes/ListItem.css.ts +1 -1
  276. package/src/generated/themes/MastheadItem.css.ts +1 -1
  277. package/src/generated/themes/MastheadMobileMenu.css.ts +1 -1
  278. package/src/generated/themes/Pagination.css.ts +1 -1
  279. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  280. package/src/generated/themes/Search.css.ts +1 -1
  281. package/src/generated/themes/SelectBase.css.ts +9 -0
  282. package/src/generated/themes/SelectBox.css.ts +1 -1
  283. package/src/generated/themes/Slider.css.ts +1 -1
  284. package/src/generated/themes/TagGroup.css.ts +1 -1
  285. package/src/generated/themes/TextField.css.ts +1 -1
  286. package/src/themes/CountrySelector.css +42 -115
  287. package/src/themes/EventRibbon.css +21 -13
  288. package/src/themes/ImageGridCloud.css +55 -0
  289. package/src/themes/ImageGridCloudItem.css +10 -0
  290. package/src/themes/ListItem.css +6 -0
  291. package/src/themes/MastheadItem.css +0 -2
  292. package/src/themes/MastheadMobileMenu.css +2 -0
  293. package/src/themes/Pagination.css +1 -1
  294. package/src/themes/Search.css +0 -1
  295. package/src/themes/SelectBase.css +239 -0
  296. package/src/themes/SelectBox.css +13 -195
  297. package/src/themes/TagGroup.css +0 -1
  298. package/src/themes/TextField.css +7 -7
  299. package/src/types/common.ts +1 -1
  300. package/dist/generated/templates/SearchSuggestionsTemplate.lit.d.ts +0 -3
  301. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +0 -17
  302. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +0 -1
  303. package/dist/generated/templates/SearchTemplate.lit.d.ts +0 -3
  304. package/dist/generated/templates/SearchTemplate.lit.js +0 -28
  305. package/dist/generated/templates/SearchTemplate.lit.js.map +0 -1
  306. package/dist/generated/templates/TextAreaTemplate.lit.d.ts +0 -3
  307. package/dist/generated/templates/TextAreaTemplate.lit.js +0 -13
  308. package/dist/generated/templates/TextAreaTemplate.lit.js.map +0 -1
  309. package/dist/generated/templates/TextFieldTemplate.lit.d.ts +0 -3
  310. package/dist/generated/templates/TextFieldTemplate.lit.js +0 -14
  311. package/dist/generated/templates/TextFieldTemplate.lit.js.map +0 -1
  312. package/src/Search.hbs +0 -155
  313. package/src/SearchSuggestions.hbs +0 -91
  314. package/src/TextArea.hbs +0 -54
  315. package/src/TextField.hbs +0 -78
  316. package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +0 -21
  317. package/src/generated/templates/SearchTemplate.lit.ts +0 -32
  318. package/src/generated/templates/TextAreaTemplate.lit.ts +0 -17
  319. package/src/generated/templates/TextFieldTemplate.lit.ts +0 -18
@@ -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
  /**
@@ -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
@@ -75,6 +75,7 @@ type UDExTagLinkClickEventDetail = {
75
75
  * Emitted when tag link was clicked
76
76
  *
77
77
  * @public
78
+ * @param {Event} originalEvent the original event object
78
79
  */
79
80
  @event("tagLinkClick", { cancelable: true, bubbles: true })
80
81
  class UDExTag extends UI5Element {
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
- get hiddenTags(): Token[] {
156
- return this._tokenizer?.overflownTokens || [];
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
- get tokenizer(): Tokenizer {
164
- return this.shadowRoot!.querySelector<Tokenizer>(`#${this._id}-tag-group-tokenizer`)!;
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
  }
@@ -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 litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
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 "./generated/templates/TextAreaTemplate.lit.js";
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: litRender,
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 ariaInvalid(): string | null {
324
- return this.valueState === UDExValueState.Error ? "true" : null;
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 litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
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: litRender,
53
+ renderer: jsxRenderer,
51
54
  styles: TextFieldCss,
52
55
  template: TextFieldTemplate,
53
56
  dependencies: [UDExControlButton, Icon, UDExStatusMessage],
54
57
  })
55
58
 
56
59
  /**
57
- * Fired when the value of the component changes at each keystroke.
58
- *
59
- * @public
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
- * Fired when the input operation has finished by pressing Enter or on focusout.
64
- *
65
- * @public
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": void,
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 suffix ? html`<div class="${ifDefined(this.countrySelectorClasses)}"><div id="udex-${ifDefined(this._id)}-country-selector__opener" class="${ifDefined(this.countrySelectorTriggerClasses)}" ?disabled="${this.isOpenerDisabled}" @click="${this.handleTriggerClick}" slot="trigger">${ this.showFlagImages ? block1.call(this, context, tags, suffix) : undefined }<${scopeTag("udex-text-field", tags, suffix)} label="${ifDefined(this.effectiveAriaLabel)}" id="udexTextField" class="udex-country-selector__text" value="${ifDefined(this.selectedCountryName)}" value-state="${ifDefined(this.valueState)}" supporting-text="${ifDefined(this.supportingText)}" direction="left" aria-label="${ifDefined(this.effectiveAriaLabel)}" accessible-name="${ifDefined(this.supportingText)}" accessible-name-ref="${ifDefined(this.accessibleNameRef)}" aria-controls="${ifDefined(this.ariaControls)}" aria-haspopup="true" aria-expanded="${ifDefined(this._open)}" ?required="${this.required}" ?disabled="${this.disabled}" ?readonly="${this.readonly}" ?displayonly="${this.displayonly}" @ui5-click-icon="${ifDefined(this.handleTriggerClick)}" @mousedown="${this.handleInputMouseDown}" icon="${ifDefined(this.triggerIcon)}" accessible-icon-name="${ifDefined(this.effectiveAriaLabel)}" maxlength="0" _is-combobox-role></${scopeTag("udex-text-field", tags, suffix)}></div><${scopeTag("udex-dropdown", tags, suffix)} id="dropdown" opener="udex-${ifDefined(this._id)}-country-selector__opener" horizontal-align="Start" height="${ifDefined(this.height)}" @ui5-item-press="${ifDefined(this.handleItemPress)}" @ui5-before-open="${ifDefined(this._dropdownBeforeOpen)}" @ui5-open="${ifDefined(this._dropdownOpen)}" @ui5-before-close="${ifDefined(this._dropdownBeforeClose)}" @ui5-close="${ifDefined(this._dropdownClose)}" @ui5-submit-search-value="${ifDefined(this.handleSubmitSearch)}" @ui5-handle-value-search="${ifDefined(this.handleValueSearch)}" @ui5-handle-value-reset="${ifDefined(this.handleResetSearch)}" @ui5-search-keydown="${ifDefined(this.handleKeyDownSearch)}" @keydown="${this.handleKeyDownDropdown}">${ifDefined(this.searchableList)}</${scopeTag("udex-dropdown", tags, suffix)}></div> ` : html`<div class="${ifDefined(this.countrySelectorClasses)}"><div id="udex-${ifDefined(this._id)}-country-selector__opener" class="${ifDefined(this.countrySelectorTriggerClasses)}" ?disabled="${this.isOpenerDisabled}" @click="${this.handleTriggerClick}" slot="trigger">${ this.showFlagImages ? block1.call(this, context, tags, suffix) : undefined }<udex-text-field label="${ifDefined(this.effectiveAriaLabel)}" id="udexTextField" class="udex-country-selector__text" value="${ifDefined(this.selectedCountryName)}" value-state="${ifDefined(this.valueState)}" supporting-text="${ifDefined(this.supportingText)}" direction="left" aria-label="${ifDefined(this.effectiveAriaLabel)}" accessible-name="${ifDefined(this.supportingText)}" accessible-name-ref="${ifDefined(this.accessibleNameRef)}" aria-controls="${ifDefined(this.ariaControls)}" aria-haspopup="true" aria-expanded="${ifDefined(this._open)}" ?required="${this.required}" ?disabled="${this.disabled}" ?readonly="${this.readonly}" ?displayonly="${this.displayonly}" @ui5-click-icon="${ifDefined(this.handleTriggerClick)}" @mousedown="${this.handleInputMouseDown}" icon="${ifDefined(this.triggerIcon)}" accessible-icon-name="${ifDefined(this.effectiveAriaLabel)}" maxlength="0" _is-combobox-role></udex-text-field></div><udex-dropdown id="dropdown" opener="udex-${ifDefined(this._id)}-country-selector__opener" horizontal-align="Start" height="${ifDefined(this.height)}" @ui5-item-press="${ifDefined(this.handleItemPress)}" @ui5-before-open="${ifDefined(this._dropdownBeforeOpen)}" @ui5-open="${ifDefined(this._dropdownOpen)}" @ui5-before-close="${ifDefined(this._dropdownBeforeClose)}" @ui5-close="${ifDefined(this._dropdownClose)}" @ui5-submit-search-value="${ifDefined(this.handleSubmitSearch)}" @ui5-handle-value-search="${ifDefined(this.handleValueSearch)}" @ui5-handle-value-reset="${ifDefined(this.handleResetSearch)}" @ui5-search-keydown="${ifDefined(this.handleKeyDownSearch)}" @keydown="${this.handleKeyDownDropdown}">${ifDefined(this.searchableList)}</udex-dropdown></div> `;}
9
- function block1 (this: CountrySelector, context: UI5Element, tags: string[], suffix: string | undefined) { return html`<img class="udex-country-selector__image" aria-label="${ifDefined(this.flagAriaLabel)}" style="background-position-x: ${ifDefined(this.selectedCountryFlagX)}; background-position-y: ${ifDefined(this.selectedCountryFlagY)}">`;}
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;