@sapudex/web-components 2.13.0 → 2.15.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 (293) hide show
  1. package/cypress/specs/Breadcrumbs.cy.tsx +77 -0
  2. package/cypress/specs/EventRibbon.cy.tsx +9 -1
  3. package/cypress/specs/FilterMenu.cy.tsx +36 -44
  4. package/cypress/specs/InputGroup.cy.tsx +47 -0
  5. package/cypress/specs/SelectBox.cy.tsx +17 -0
  6. package/cypress/specs/SocialMediaButton.cy.tsx +6 -0
  7. package/cypress/support/component-imports.instrumented.ts +4 -0
  8. package/cypress/support/component-imports.src.ts +4 -0
  9. package/dist/Accordion.d.ts +4 -3
  10. package/dist/Accordion.js.map +1 -1
  11. package/dist/AccordionItem.js.map +1 -1
  12. package/dist/Breadcrumbs.d.ts +4 -1
  13. package/dist/Breadcrumbs.js +10 -9
  14. package/dist/Breadcrumbs.js.map +1 -1
  15. package/dist/BreadcrumbsItem.d.ts +1 -2
  16. package/dist/BreadcrumbsItem.js.map +1 -1
  17. package/dist/BreadcrumbsPopoverTemplate.d.ts +2 -0
  18. package/dist/BreadcrumbsPopoverTemplate.js +8 -0
  19. package/dist/BreadcrumbsPopoverTemplate.js.map +1 -0
  20. package/dist/BreadcrumbsTemplate.d.ts +2 -0
  21. package/dist/BreadcrumbsTemplate.js +10 -0
  22. package/dist/BreadcrumbsTemplate.js.map +1 -0
  23. package/dist/Checkbox.js +1 -1
  24. package/dist/Checkbox.js.map +1 -1
  25. package/dist/ContactItem.d.ts +1 -0
  26. package/dist/ContactItem.js.map +1 -1
  27. package/dist/ControlButton.js +3 -3
  28. package/dist/ControlButton.js.map +1 -1
  29. package/dist/CountrySelector.d.ts +1 -0
  30. package/dist/CountrySelector.js +1 -1
  31. package/dist/CountrySelector.js.map +1 -1
  32. package/dist/DatePicker.d.ts +3 -2
  33. package/dist/DatePicker.js.map +1 -1
  34. package/dist/Dropdown.js.map +1 -1
  35. package/dist/EventRibbon.js +1 -1
  36. package/dist/EventRibbon.js.map +1 -1
  37. package/dist/EventRibbonTemplate.js +2 -2
  38. package/dist/EventRibbonTemplate.js.map +1 -1
  39. package/dist/FilterMenu.d.ts +11 -5
  40. package/dist/FilterMenu.js +8 -2
  41. package/dist/FilterMenu.js.map +1 -1
  42. package/dist/FilterMenuGroupHeader.js.map +1 -1
  43. package/dist/FilterMenuItem.js.map +1 -1
  44. package/dist/FilterMenuSelectAll.d.ts +0 -1
  45. package/dist/FilterMenuSelectAll.js +0 -3
  46. package/dist/FilterMenuSelectAll.js.map +1 -1
  47. package/dist/Footer.d.ts +1 -0
  48. package/dist/Footer.js.map +1 -1
  49. package/dist/HeroBanner.js.map +1 -1
  50. package/dist/InputGroup.d.ts +0 -1
  51. package/dist/InputGroup.js +3 -6
  52. package/dist/InputGroup.js.map +1 -1
  53. package/dist/InputGroupTemplate.d.ts +2 -0
  54. package/dist/InputGroupTemplate.js +7 -0
  55. package/dist/InputGroupTemplate.js.map +1 -0
  56. package/dist/LinkList.js.map +1 -1
  57. package/dist/LinkListItem.d.ts +1 -0
  58. package/dist/LinkListItem.js.map +1 -1
  59. package/dist/List.d.ts +1 -0
  60. package/dist/List.js +1 -1
  61. package/dist/List.js.map +1 -1
  62. package/dist/ListGroupHeader.d.ts +1 -0
  63. package/dist/ListGroupHeader.js.map +1 -1
  64. package/dist/ListGroupHeaderBase.js.map +1 -1
  65. package/dist/ListItem.d.ts +1 -0
  66. package/dist/ListItem.js +1 -1
  67. package/dist/ListItem.js.map +1 -1
  68. package/dist/ListItemBase.d.ts +5 -4
  69. package/dist/ListItemBase.js.map +1 -1
  70. package/dist/ListSelectAll.d.ts +1 -0
  71. package/dist/ListSelectAll.js.map +1 -1
  72. package/dist/MastheadCountrySelector.d.ts +10 -9
  73. package/dist/MastheadCountrySelector.js.map +1 -1
  74. package/dist/MastheadItem.d.ts +2 -1
  75. package/dist/MastheadItem.js.map +1 -1
  76. package/dist/MastheadMenu.d.ts +1 -0
  77. package/dist/MastheadMenu.js.map +1 -1
  78. package/dist/MastheadMenuItem.js.map +1 -1
  79. package/dist/MastheadMobileMenu.d.ts +1 -0
  80. package/dist/MastheadMobileMenu.js +1 -1
  81. package/dist/MastheadMobileMenu.js.map +1 -1
  82. package/dist/MastheadProfileMenu.d.ts +4 -3
  83. package/dist/MastheadProfileMenu.js +2 -2
  84. package/dist/MastheadProfileMenu.js.map +1 -1
  85. package/dist/MastheadShell.d.ts +12 -11
  86. package/dist/MastheadShell.js.map +1 -1
  87. package/dist/MediaPlayer.d.ts +2 -1
  88. package/dist/MediaPlayer.js.map +1 -1
  89. package/dist/MediaPlayerVimeo.d.ts +1 -0
  90. package/dist/MediaPlayerVimeo.js.map +1 -1
  91. package/dist/MediaPlayerYoutube.d.ts +1 -0
  92. package/dist/MediaPlayerYoutube.js.map +1 -1
  93. package/dist/Pagination.d.ts +3 -2
  94. package/dist/Pagination.js.map +1 -1
  95. package/dist/RatingIndicator.js.map +1 -1
  96. package/dist/Search.d.ts +11 -5
  97. package/dist/Search.js +9 -8
  98. package/dist/Search.js.map +1 -1
  99. package/dist/SearchableListBase.d.ts +7 -5
  100. package/dist/SearchableListBase.js +13 -23
  101. package/dist/SearchableListBase.js.map +1 -1
  102. package/dist/SecondaryNavigation.d.ts +1 -0
  103. package/dist/SecondaryNavigation.js.map +1 -1
  104. package/dist/SecondaryNavigationItem.d.ts +3 -2
  105. package/dist/SecondaryNavigationItem.js.map +1 -1
  106. package/dist/SecondaryNavigationItemBase.js.map +1 -1
  107. package/dist/SecondaryNavigationSubItem.d.ts +3 -2
  108. package/dist/SecondaryNavigationSubItem.js.map +1 -1
  109. package/dist/SelectBox.d.ts +6 -0
  110. package/dist/SelectBox.js +8 -2
  111. package/dist/SelectBox.js.map +1 -1
  112. package/dist/SelectBoxGroupHeader.js.map +1 -1
  113. package/dist/SideNavigationMobile.d.ts +1 -1
  114. package/dist/SideNavigationMobile.js.map +1 -1
  115. package/dist/SocialMediaButton.d.ts +8 -0
  116. package/dist/SocialMediaButton.js +10 -1
  117. package/dist/SocialMediaButton.js.map +1 -1
  118. package/dist/SocialMediaButtonTemplate.js +1 -1
  119. package/dist/SocialMediaButtonTemplate.js.map +1 -1
  120. package/dist/StepInput.d.ts +3 -2
  121. package/dist/StepInput.js.map +1 -1
  122. package/dist/StepInputTemplate.js +1 -1
  123. package/dist/StepInputTemplate.js.map +1 -1
  124. package/dist/Switch.js.map +1 -1
  125. package/dist/Tab.d.ts +1 -2
  126. package/dist/Tab.js.map +1 -1
  127. package/dist/TabNavigation.d.ts +1 -0
  128. package/dist/TabNavigation.js.map +1 -1
  129. package/dist/Table.d.ts +2 -2
  130. package/dist/Table.js.map +1 -1
  131. package/dist/TableCellBase.js.map +1 -1
  132. package/dist/TableRowBase.js.map +1 -1
  133. package/dist/Tag.d.ts +1 -0
  134. package/dist/Tag.js.map +1 -1
  135. package/dist/TagGroup.d.ts +1 -0
  136. package/dist/TagGroup.js.map +1 -1
  137. package/dist/TextField.d.ts +2 -1
  138. package/dist/TextField.js.map +1 -1
  139. package/dist/Tile.d.ts +2 -0
  140. package/dist/Tile.js.map +1 -1
  141. package/dist/Tooltip.d.ts +11 -0
  142. package/dist/Tooltip.js +42 -0
  143. package/dist/Tooltip.js.map +1 -1
  144. package/dist/TruncatedText.d.ts +0 -1
  145. package/dist/TruncatedText.js +5 -6
  146. package/dist/TruncatedText.js.map +1 -1
  147. package/dist/TruncatedTextTemplate.d.ts +2 -0
  148. package/dist/TruncatedTextTemplate.js +9 -0
  149. package/dist/TruncatedTextTemplate.js.map +1 -0
  150. package/dist/Upload.d.ts +1 -0
  151. package/dist/Upload.js.map +1 -1
  152. package/dist/UploadItem.js +1 -1
  153. package/dist/UploadItem.js.map +1 -1
  154. package/dist/Wizard.d.ts +2 -2
  155. package/dist/Wizard.js.map +1 -1
  156. package/dist/WizardTab.js +1 -1
  157. package/dist/WizardTab.js.map +1 -1
  158. package/dist/assets/{InputSuggestions-FI3fjOZ9.js → InputSuggestions-D5z6eIC2.js} +1 -1
  159. package/dist/assets/{ListItemStandardExpandableTextTemplate-CkvW90wq.js → ListItemStandardExpandableTextTemplate-BKeYxhnX.js} +1 -1
  160. package/dist/assets/{bundle.esm-BrqOd5tw.js → bundle.esm-DXwtYGLH.js} +210 -210
  161. package/dist/css/themes/EventRibbon.css +1 -1
  162. package/dist/css/themes/MediaPlayer.css +1 -1
  163. package/dist/css/themes/RatingIndicator.css +1 -1
  164. package/dist/css/themes/Slider.css +1 -1
  165. package/dist/css/themes/SocialMediaButton.css +1 -1
  166. package/dist/custom-elements-internal.json +247 -136
  167. package/dist/custom-elements.json +201 -121
  168. package/dist/generated/templates/TooltipTemplate.lit.js +1 -1
  169. package/dist/generated/templates/TooltipTemplate.lit.js.map +1 -1
  170. package/dist/generated/themes/EventRibbon.css.d.ts +1 -1
  171. package/dist/generated/themes/EventRibbon.css.js +1 -1
  172. package/dist/generated/themes/EventRibbon.css.js.map +1 -1
  173. package/dist/generated/themes/MediaPlayer.css.d.ts +1 -1
  174. package/dist/generated/themes/MediaPlayer.css.js +1 -1
  175. package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
  176. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  177. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  178. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  179. package/dist/generated/themes/Slider.css.d.ts +1 -1
  180. package/dist/generated/themes/Slider.css.js +1 -1
  181. package/dist/generated/themes/Slider.css.js.map +1 -1
  182. package/dist/generated/themes/SocialMediaButton.css.d.ts +1 -1
  183. package/dist/generated/themes/SocialMediaButton.css.js +1 -1
  184. package/dist/generated/themes/SocialMediaButton.css.js.map +1 -1
  185. package/dist/utils/sanitizeString.d.ts +2 -0
  186. package/dist/utils/sanitizeString.js +12 -0
  187. package/dist/utils/sanitizeString.js.map +1 -0
  188. package/dist/vscode.html-custom-data.json +4 -4
  189. package/dist/web-types.json +48 -8
  190. package/package.json +2 -2
  191. package/src/Accordion.ts +5 -4
  192. package/src/AccordionItem.ts +1 -0
  193. package/src/Breadcrumbs.ts +16 -17
  194. package/src/BreadcrumbsItem.ts +2 -2
  195. package/src/BreadcrumbsPopoverTemplate.tsx +60 -0
  196. package/src/BreadcrumbsTemplate.tsx +53 -0
  197. package/src/Checkbox.ts +3 -2
  198. package/src/ContactItem.ts +1 -0
  199. package/src/ControlButton.ts +3 -3
  200. package/src/CountrySelector.ts +2 -5
  201. package/src/DatePicker.ts +3 -2
  202. package/src/Dropdown.ts +0 -1
  203. package/src/EventRibbon.ts +1 -1
  204. package/src/EventRibbonTemplate.tsx +4 -6
  205. package/src/FilterMenu.ts +17 -9
  206. package/src/FilterMenuGroupHeader.ts +0 -1
  207. package/src/FilterMenuItem.ts +1 -0
  208. package/src/FilterMenuSelectAll.ts +0 -4
  209. package/src/Footer.ts +1 -0
  210. package/src/HeroBanner.ts +0 -1
  211. package/src/InputGroup.ts +3 -8
  212. package/src/InputGroupTemplate.tsx +31 -0
  213. package/src/LinkList.ts +1 -0
  214. package/src/LinkListItem.ts +1 -0
  215. package/src/List.ts +3 -8
  216. package/src/ListGroupHeader.ts +1 -0
  217. package/src/ListGroupHeaderBase.ts +0 -1
  218. package/src/ListItem.ts +2 -3
  219. package/src/ListItemBase.ts +6 -6
  220. package/src/ListSelectAll.ts +1 -0
  221. package/src/MastheadCountrySelector.ts +12 -11
  222. package/src/MastheadItem.ts +2 -1
  223. package/src/MastheadMenu.ts +1 -0
  224. package/src/MastheadMenuItem.ts +1 -0
  225. package/src/MastheadMobileMenu.ts +2 -1
  226. package/src/MastheadProfileMenu.ts +7 -5
  227. package/src/MastheadShell.ts +14 -12
  228. package/src/MediaPlayer.ts +2 -2
  229. package/src/MediaPlayerVimeo.ts +1 -0
  230. package/src/MediaPlayerYoutube.ts +1 -0
  231. package/src/Pagination.ts +3 -2
  232. package/src/RatingIndicator.ts +0 -1
  233. package/src/Search.ts +17 -19
  234. package/src/SearchableListBase.ts +23 -31
  235. package/src/SecondaryNavigation.ts +1 -0
  236. package/src/SecondaryNavigationItem.ts +4 -11
  237. package/src/SecondaryNavigationItemBase.ts +0 -1
  238. package/src/SecondaryNavigationSubItem.ts +3 -2
  239. package/src/SelectBox.ts +11 -14
  240. package/src/SelectBoxGroupHeader.ts +0 -1
  241. package/src/SideNavigationMobile.ts +1 -1
  242. package/src/SocialMediaButton.ts +17 -1
  243. package/src/SocialMediaButtonTemplate.tsx +3 -1
  244. package/src/StepInput.ts +4 -14
  245. package/src/StepInputTemplate.tsx +1 -1
  246. package/src/Switch.ts +0 -1
  247. package/src/Tab.ts +1 -2
  248. package/src/TabNavigation.ts +5 -14
  249. package/src/Table.ts +2 -2
  250. package/src/TableCellBase.ts +0 -1
  251. package/src/TableRowBase.ts +0 -1
  252. package/src/Tag.ts +1 -0
  253. package/src/TagGroup.ts +1 -0
  254. package/src/TextField.ts +2 -1
  255. package/src/Tile.ts +3 -1
  256. package/src/Tooltip.hbs +5 -1
  257. package/src/Tooltip.ts +52 -0
  258. package/src/TruncatedText.ts +8 -14
  259. package/src/TruncatedTextTemplate.tsx +21 -0
  260. package/src/Upload.ts +1 -0
  261. package/src/UploadItem.ts +1 -4
  262. package/src/Wizard.ts +2 -2
  263. package/src/WizardTab.ts +1 -1
  264. package/src/generated/templates/TooltipTemplate.lit.ts +1 -1
  265. package/src/generated/themes/EventRibbon.css.ts +1 -1
  266. package/src/generated/themes/MediaPlayer.css.ts +1 -1
  267. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  268. package/src/generated/themes/Slider.css.ts +1 -1
  269. package/src/generated/themes/SocialMediaButton.css.ts +1 -1
  270. package/src/themes/EventRibbon.css +3 -3
  271. package/src/themes/MediaPlayer.css +133 -186
  272. package/src/themes/SocialMediaButton.css +4 -1
  273. package/src/utils/sanitizeString.ts +13 -0
  274. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.d.ts +0 -3
  275. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +0 -12
  276. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js.map +0 -1
  277. package/dist/generated/templates/BreadcrumbsTemplate.lit.d.ts +0 -3
  278. package/dist/generated/templates/BreadcrumbsTemplate.lit.js +0 -14
  279. package/dist/generated/templates/BreadcrumbsTemplate.lit.js.map +0 -1
  280. package/dist/generated/templates/InputGroupTemplate.lit.d.ts +0 -3
  281. package/dist/generated/templates/InputGroupTemplate.lit.js +0 -9
  282. package/dist/generated/templates/InputGroupTemplate.lit.js.map +0 -1
  283. package/dist/generated/templates/TruncatedTextTemplate.lit.d.ts +0 -3
  284. package/dist/generated/templates/TruncatedTextTemplate.lit.js +0 -7
  285. package/dist/generated/templates/TruncatedTextTemplate.lit.js.map +0 -1
  286. package/src/Breadcrumbs.hbs +0 -38
  287. package/src/BreadcrumbsPopover.hbs +0 -48
  288. package/src/InputGroup.hbs +0 -20
  289. package/src/TruncatedText.hbs +0 -11
  290. package/src/generated/templates/BreadcrumbsPopoverTemplate.lit.ts +0 -16
  291. package/src/generated/templates/BreadcrumbsTemplate.lit.ts +0 -18
  292. package/src/generated/templates/InputGroupTemplate.lit.ts +0 -13
  293. package/src/generated/templates/TruncatedTextTemplate.lit.ts +0 -11
package/src/Search.ts CHANGED
@@ -10,13 +10,7 @@ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.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 {
13
- isEnter,
14
- isTabNext,
15
- isTabPrevious,
16
- isUp,
17
- isDown,
18
- isEscape,
19
- isSpace,
13
+ isEnter, isTabNext, isTabPrevious, isUp, isDown, isEscape, isSpace,
20
14
  } from "@ui5/webcomponents-base/dist/Keys.js";
21
15
  import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
22
16
  import Icon from "@ui5/webcomponents/dist/Icon.js";
@@ -45,6 +39,7 @@ import {
45
39
  } from "./generated/i18n/i18n-defaults.js";
46
40
  import type SearchInputSuggestion from "./features/SearchSuggestionsPopover.js";
47
41
  import retryUntilSuccessful from "./utils/retryUntilSuccessful.js";
42
+ import sanitizeString from "./utils/sanitizeString.js";
48
43
  import UDExButton from "./Button.js";
49
44
 
50
45
  import SearchTemplate from "./generated/templates/SearchTemplate.lit.js";
@@ -58,12 +53,12 @@ const SearchIcon: string = "sap-icon://search";
58
53
 
59
54
  const SuggestionsPopoverId: string = "suggestions-popover";
60
55
 
61
- type ListItem = {
56
+ export type ListItem = {
62
57
  label: string;
63
58
  icon: string;
64
59
  }
65
60
 
66
- type DataList = Array<ListItem | string>;
61
+ export type DataList = Array<ListItem | string>;
67
62
 
68
63
  export type SuggestionData = {
69
64
  label: string,
@@ -75,7 +70,7 @@ export type RecommendData = {
75
70
  list: DataList
76
71
  }
77
72
 
78
- type SuggestionRecommendLists = {
73
+ export type SuggestionRecommendLists = {
79
74
  suggested: SuggestionData | DataList,
80
75
  recommended: RecommendData | DataList
81
76
  }
@@ -99,15 +94,17 @@ export type PopoverPlacement = "Bottom" | "Top";
99
94
 
100
95
  type UDExSearchBaseEventDetail = {
101
96
  value: string,
97
+ categoryName?: string
102
98
  }
103
99
 
104
100
  type UDExSearchPrefixItemClickEventDetail = {
105
101
  item: ListItemBase,
106
102
  }
107
103
 
108
- export type UDExSearchKeydownEventDetail = {
104
+ type UDExSearchKeydownEventDetail = {
109
105
  e: KeyboardEvent;
110
106
  }
107
+
111
108
  /**
112
109
  * @class
113
110
  *
@@ -693,13 +690,13 @@ class UDExSearch extends UI5Element {
693
690
  const itemWithCustomIcon = typeof item === "object";
694
691
  const label = itemWithCustomIcon ? item.label : item;
695
692
  return {
696
- handleSelectItem: this.handleSelectItem(label),
697
- text: this.getTextWithSuggestion(label),
698
- title: label,
693
+ handleSelectItem: this.handleSelectItem(label, idName),
694
+ text: sanitizeString(this.getTextWithSuggestion(label)),
695
+ title: sanitizeString(label),
699
696
  icon: itemWithCustomIcon ? item.icon : SearchIcon,
700
697
  hasCustomIcon: itemWithCustomIcon,
701
698
  id: `${idName}-${index}`,
702
- suggestionDescription: `${label}, ${idName} ${index + 1} ${UDExSearch.i18nBundle.getText(OF)} ${suggestedList.length}`,
699
+ suggestionDescription: sanitizeString(`${label}, ${idName} ${index + 1} ${UDExSearch.i18nBundle.getText(OF)} ${suggestedList.length}`),
703
700
  };
704
701
  });
705
702
  }
@@ -715,14 +712,14 @@ class UDExSearch extends UI5Element {
715
712
  return text.replace(search, "<b>$&</b>");
716
713
  }
717
714
 
718
- handleSelectItem = (itemValue: string) => () => {
715
+ handleSelectItem = (itemValue: string, categoryName: string) => () => {
719
716
  this.value = itemValue;
720
- this.fireDropdownItemClick(itemValue);
717
+ this.fireDropdownItemClick(itemValue, categoryName);
721
718
  this.handleSubmitValue();
722
719
  };
723
720
 
724
- fireDropdownItemClick(value: string) {
725
- this.fireDecoratorEvent("dropdown-item-click", { value });
721
+ fireDropdownItemClick(value: string, categoryName: string) {
722
+ this.fireDecoratorEvent("dropdown-item-click", { value: sanitizeString(value), categoryName });
726
723
  }
727
724
 
728
725
  handleDropdownClick() {
@@ -1323,3 +1320,4 @@ class UDExSearch extends UI5Element {
1323
1320
  UDExSearch.define();
1324
1321
 
1325
1322
  export default UDExSearch;
1323
+ export type { UDExSearchBaseEventDetail, UDExSearchKeydownEventDetail, UDExSearchPrefixItemClickEventDetail };
@@ -30,6 +30,11 @@ type UDExSearchableListBaseSubmitSearchEventDetail = {
30
30
  selectedItems: Array<UDExListItemBase>
31
31
  }
32
32
 
33
+ type UDExSelectBoxIconClickEventDetail = {
34
+ originalEvent: PointerEvent,
35
+ item: UDExItemFromList,
36
+ }
37
+
33
38
  export type UDExSearchableListBaseEvents = {
34
39
  "select-all": void,
35
40
  "selection-change": UDExSearchableListBaseSelectionChangeEventDetail,
@@ -40,11 +45,6 @@ export type UDExSearchableListBaseEvents = {
40
45
  "second-icon-click": UDExSelectBoxIconClickEventDetail,
41
46
  }
42
47
 
43
- type UDExSelectBoxIconClickEventDetail = {
44
- originalEvent: PointerEvent,
45
- item: UDExItemFromList,
46
- }
47
-
48
48
  /**
49
49
  * @class
50
50
  *
@@ -250,18 +250,6 @@ class UDExSearchableListBase extends UI5Element {
250
250
  this.fireSelectionChange(dropdownItemId);
251
251
  }
252
252
 
253
- onFilterSelectAllHeaderPress(e:CustomEvent) {
254
- const dropdownHeaderItemId = this.getDataTokenId(e);
255
- this.getProcessedItems().forEach(({ item }) => {
256
- if (item._id === dropdownHeaderItemId) {
257
- this.activateHeaderAndSetAllItems(item as UDExListGroupHeaderBase);
258
- }
259
- });
260
-
261
- this.syncFilteredItems();
262
- this.fireSelectionChange(dropdownHeaderItemId);
263
- }
264
-
265
253
  activateHeaderAndSetAllItems(item: UDExListGroupHeaderBase) {
266
254
  item.activateHeader();
267
255
  item.setAllItems(false);
@@ -298,28 +286,29 @@ class UDExSearchableListBase extends UI5Element {
298
286
 
299
287
  handleGroupHeaderState(groupHeader: UDExListGroupHeaderBase) {
300
288
  if (this.modeMultiSelect) {
301
- if (groupHeader.isFilterMenuSelectAllHeader) {
302
- groupHeader.deactivateHeader();
303
-
304
- if (groupHeader.isAllDeselected()) {
305
- groupHeader.activateHeader();
306
- }
307
- } else {
308
- groupHeader.handleHeaderState();
309
- }
289
+ groupHeader.handleHeaderState();
310
290
  }
311
291
  }
312
292
 
313
293
  onHeaderPress(e:CustomEvent) {
314
- const dropdownHeaderItemId = this.getDataTokenId(e);
294
+ this.handleGroupHeaderSelection(e);
295
+ this.syncFilteredItems();
296
+ this.fireSelectionChange(this.getDataTokenId(e));
297
+ }
298
+
299
+ onSelectAllHeaderPress(e:CustomEvent) {
300
+ this.handleGroupHeaderSelection(e);
301
+ this.syncFilteredItems();
302
+ this.fireDecoratorEvent("select-all");
303
+ }
304
+
305
+ handleGroupHeaderSelection(e: CustomEvent): void {
306
+ const headerItemId = this.getDataTokenId(e);
315
307
  this.getProcessedItems().forEach(({ item }) => {
316
- if (item._id === dropdownHeaderItemId) {
308
+ if (item._id === headerItemId) {
317
309
  (item as UDExListGroupHeaderBase).handleSelectionGroupState();
318
310
  }
319
311
  });
320
-
321
- this.syncFilteredItems();
322
- this.fireSelectionChange(dropdownHeaderItemId);
323
312
  }
324
313
 
325
314
  onSearch(e:CustomEvent) {
@@ -655,3 +644,6 @@ class UDExSearchableListBase extends UI5Element {
655
644
  }
656
645
 
657
646
  export default UDExSearchableListBase;
647
+ export type {
648
+ UDExSelectBoxIconClickEventDetail, UDExSearchableListBaseSubmitSearchEventDetail, UDExSearchableListBaseChangeSearchEventDetail, UDExSearchableListBaseSelectionChangeEventDetail,
649
+ };
@@ -525,3 +525,4 @@ class UDExSecondaryNavigation extends UI5Element {
525
525
  UDExSecondaryNavigation.define();
526
526
 
527
527
  export default UDExSecondaryNavigation;
528
+ export type { UDExSecondaryNavigationClickEventDetail, UDExSecondaryNavigationHeadingClickEventDetail };
@@ -5,15 +5,7 @@ import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
5
5
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
6
6
  import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
7
7
  import {
8
- isLeft,
9
- isRight,
10
- isUp,
11
- isDown,
12
- isEscape,
13
- isSpace,
14
- isEnter,
15
- isHome,
16
- isEnd, isTabNext, isTabPrevious,
8
+ isLeft, isRight, isUp, isDown, isEscape, isSpace, isEnter, isHome, isEnd, isTabNext, isTabPrevious,
17
9
  } from "@ui5/webcomponents-base/dist/Keys.js";
18
10
  import type { RelativeValue } from "./utils/parseRelativeUnits.js";
19
11
  import parseRelativeUnits from "./utils/parseRelativeUnits.js";
@@ -29,13 +21,13 @@ import SecondaryNavigationItemCss from "./generated/themes/SecondaryNavigationIt
29
21
 
30
22
  export const menuItemRole: string = "menuitem";
31
23
 
32
- export type UDExSecondaryNavigationItemClickEventDetail = {
24
+ type UDExSecondaryNavigationItemClickEventDetail = {
33
25
  item: HTMLElement,
34
26
  index: number,
35
27
  originalEvent: PointerEvent | KeyboardEvent
36
28
  };
37
29
 
38
- export type UDExSecondaryNavigationItemSubItemClickEventDetail = {
30
+ type UDExSecondaryNavigationItemSubItemClickEventDetail = {
39
31
  item: NavItem,
40
32
  index: number,
41
33
  originalEvent: PointerEvent
@@ -507,3 +499,4 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
507
499
  UDExSecondaryNavigationItem.define();
508
500
 
509
501
  export default UDExSecondaryNavigationItem;
502
+ export type { UDExSecondaryNavigationItemClickEventDetail, UDExSecondaryNavigationItemSubItemClickEventDetail };
@@ -29,7 +29,6 @@ export type NavItem = {
29
29
  * @extends UI5Element
30
30
  * @public
31
31
  */
32
-
33
32
  @customElement({
34
33
  renderer: litRender,
35
34
  })
@@ -15,12 +15,12 @@ import SecondaryNavigationSubItemTemplate from "./generated/templates/SecondaryN
15
15
  // Styles
16
16
  import SecondaryNavigationSubItemCss from "./generated/themes/SecondaryNavigationSubItem.css.js";
17
17
 
18
- export type UDExSecondaryNavigationSubItemClickEventDetail = {
18
+ type UDExSecondaryNavigationSubItemClickEventDetail = {
19
19
  item: UDExSecondaryNavigationSubItem,
20
20
  originalEvent: PointerEvent
21
21
  }
22
22
 
23
- export type UDExSecondaryNavigationSubItemBackClickEventDetail = {
23
+ type UDExSecondaryNavigationSubItemBackClickEventDetail = {
24
24
  originalEvent: PointerEvent
25
25
  }
26
26
 
@@ -124,3 +124,4 @@ class UDExSecondaryNavigationSubItem extends UDExSecondaryNavigationItemBase {
124
124
  UDExSecondaryNavigationSubItem.define();
125
125
 
126
126
  export default UDExSecondaryNavigationSubItem;
127
+ export type { UDExSecondaryNavigationSubItemClickEventDetail, UDExSecondaryNavigationSubItemBackClickEventDetail };
package/src/SelectBox.ts CHANGED
@@ -4,18 +4,7 @@ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
4
4
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
5
5
  import executeTemplate from "@ui5/webcomponents-base/dist/renderer/executeTemplate.js";
6
6
  import {
7
- isEnter,
8
- isSpace,
9
- isDelete,
10
- isTabPrevious,
11
- isTabNext,
12
- isLeft,
13
- isRight,
14
- isDown,
15
- isUp,
16
- isEscape,
17
- isBackSpace,
18
- isShift,
7
+ isEnter, isSpace, isDelete, isTabPrevious, isTabNext, isLeft, isRight, isDown, isUp, isEscape, isBackSpace, isShift,
19
8
  } from "@ui5/webcomponents-base/dist/Keys.js";
20
9
  import type UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
21
10
  import Tokenizer from "@ui5/webcomponents/dist/Tokenizer.js";
@@ -337,8 +326,7 @@ class UDExSelectBox extends UDExSearchableListBase {
337
326
  }
338
327
 
339
328
  handleSelectAll(e:CustomEvent) {
340
- this.onHeaderPress(e);
341
- this.fireDecoratorEvent("select-all");
329
+ this.onSelectAllHeaderPress(e);
342
330
  }
343
331
 
344
332
  handleHeaderPress(e:CustomEvent) {
@@ -649,6 +637,14 @@ class UDExSelectBox extends UDExSearchableListBase {
649
637
  this._tags.forEach((tag, i) => { this.getTagContent(tag).tabIndex = (i === 0 && !this.isDisabled) ? this._activeTabIndex : this._inactiveTabIndex; });
650
638
  }
651
639
 
640
+ /**
641
+ * Close the dropdown.
642
+ * @public
643
+ */
644
+ close(): void {
645
+ this.closeDropdown();
646
+ }
647
+
652
648
  get allowTargetOverlap(): boolean {
653
649
  return !this.disableTargetOverlap;
654
650
  }
@@ -754,3 +750,4 @@ class UDExSelectBox extends UDExSearchableListBase {
754
750
  UDExSelectBox.define();
755
751
 
756
752
  export default UDExSelectBox;
753
+ export type { UDExSelectBoxRemoveEventDetail };
@@ -24,7 +24,6 @@ import UDExSelectBoxItem from "./SelectBoxItem.js";
24
24
  * @tagname udex-select-box-group-header
25
25
  * @public
26
26
  */
27
-
28
27
  @customElement({
29
28
  tag: "udex-select-box-group-header",
30
29
  renderer: litRender,
@@ -17,7 +17,7 @@ import type UDExSideNavigationGroup from "./SideNavigationGroup.js";
17
17
  import SideNavigationMobileCss from "./generated/themes/SideNavigationMobile.css.js";
18
18
  import SideNavigationMobileDropdownCss from "./generated/themes/SideNavigationMobileDropdown.css.js";
19
19
 
20
- type SelectedItem = UDExSideNavigationItem | UDExSideNavigationSubItem | null;
20
+ export type SelectedItem = UDExSideNavigationItem | UDExSideNavigationSubItem | null;
21
21
 
22
22
  /**
23
23
  * @class
@@ -2,6 +2,7 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
3
3
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
4
4
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
5
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
5
6
  import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
6
7
  import SocialMediaButtonTemplate from "./SocialMediaButtonTemplate.js";
7
8
  import UDExSocialMediaButtonType from "./types/SocialMediaButtonType.js";
@@ -52,6 +53,15 @@ class UDExSocialMediaButton extends UI5Element {
52
53
  "click": LinkClickEventDetail,
53
54
  };
54
55
 
56
+ /**
57
+ * Defines the slot for custom SVG icon.
58
+ *
59
+ * @slot content
60
+ * @public
61
+ */
62
+ @slot({ type: HTMLElement, "default": true })
63
+ image!: Array<HTMLElement>;
64
+
55
65
  /**
56
66
  * Defines the type of Social Media Button.
57
67
  * <br><br>
@@ -111,7 +121,9 @@ class UDExSocialMediaButton extends UI5Element {
111
121
  }
112
122
 
113
123
  onAfterRendering(): void {
114
- this.fetchIconSvg();
124
+ if (!this.imageSlot) {
125
+ this.fetchIconSvg();
126
+ }
115
127
  }
116
128
 
117
129
  async fetchIconSvg() {
@@ -145,6 +157,10 @@ class UDExSocialMediaButton extends UI5Element {
145
157
  get buttonAccessibleName(): string {
146
158
  return this.accessibleName || UDExSocialMediaButton.i18nBundle.getText(SOCIAL_MEDIA_BUTTON);
147
159
  }
160
+
161
+ get imageSlot(): boolean {
162
+ return !!this.image.length;
163
+ }
148
164
  }
149
165
 
150
166
  UDExSocialMediaButton.define();
@@ -10,7 +10,9 @@ export default function SocialMediaButtonTemplate(this: UDExSocialMediaButton) {
10
10
  target={this.target}
11
11
  accessible-name={this.buttonAccessibleName}
12
12
  onClick={this.fireLinkClickEvent}>
13
- <div class={`udex-social-media-button udex-social-media-button-${this.type}`} title={this.buttonAccessibleName}></div>
13
+ <div class={`udex-social-media-button udex-social-media-button-${this.type}`} title={this.buttonAccessibleName}>
14
+ {this.imageSlot && <slot></slot>}
15
+ </div>
14
16
  <div class="hidden">{this.buttonAccessibleName}</div>
15
17
  </UDExLink>
16
18
  </div>
package/src/StepInput.ts CHANGED
@@ -7,18 +7,7 @@ import type { Timeout } from "@ui5/webcomponents-base/dist/types.js";
7
7
  import "@ui5/webcomponents-icons/dist/less.js";
8
8
  import "@ui5/webcomponents-icons/dist/add.js";
9
9
  import {
10
- isDown,
11
- isDownCtrl,
12
- isDownShift,
13
- isDownShiftCtrl,
14
- isEnter,
15
- isEscape,
16
- isPageDownShift,
17
- isPageUpShift,
18
- isUp,
19
- isUpCtrl,
20
- isUpShift,
21
- isUpShiftCtrl,
10
+ isDown, isDownCtrl, isDownShift, isDownShiftCtrl, isEnter, isEscape, isPageDownShift, isPageUpShift, isUp, isUpCtrl, isUpShift, isUpShiftCtrl,
22
11
  } from "@ui5/webcomponents-base/dist/Keys.js";
23
12
  import { getAllAccessibleNameRefTexts } from "@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js";
24
13
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
@@ -38,11 +27,11 @@ const ACCELERATION = 0.8;
38
27
  const MIN_WAIT_TIMEOUT = 50; // milliseconds
39
28
  const INITIAL_SPEED = 120; // milliseconds
40
29
 
41
- export type UDExStepInputValueChangeEventDetail = {
30
+ type UDExStepInputValueChangeEventDetail = {
42
31
  value: number,
43
32
  }
44
33
 
45
- export type UDExStepInputValueStateChangeEventDetail = {
34
+ type UDExStepInputValueStateChangeEventDetail = {
46
35
  valueState: `${UDExValueState}`,
47
36
  valid: boolean
48
37
  }
@@ -569,3 +558,4 @@ class UDExStepInput extends UI5Element {
569
558
  UDExStepInput.define();
570
559
 
571
560
  export default UDExStepInput;
561
+ export type { UDExStepInputValueChangeEventDetail, UDExStepInputValueStateChangeEventDetail };
@@ -9,7 +9,7 @@ export default function StepInputTemplate(this: UDExStepInput) {
9
9
  label={this.label}
10
10
  supporting-text={this.supportingText}
11
11
  value={this._valuePrecisioned}
12
- aria-label={this.accInfo.ariaLabel}
12
+ accessible-name={this.accInfo.ariaLabel}
13
13
  onFocusIn={this._onInputFocusIn}
14
14
  onFocusOut={this._onInputFocusOut}
15
15
  onKeydown={this._onkeydown}
package/src/Switch.ts CHANGED
@@ -41,7 +41,6 @@ export enum UDExSwitchColor {
41
41
  * @tagname udex-switch
42
42
  * @public
43
43
  */
44
-
45
44
  @customElement({
46
45
  tag: "udex-switch",
47
46
  renderer: litRender,
package/src/Tab.ts CHANGED
@@ -17,7 +17,7 @@ import { ATTENTION_BADGE } from "./generated/i18n/i18n-defaults.js";
17
17
  // Styles
18
18
  import TabInOverflowCss from "./generated/themes/TabInOverflow.css.js";
19
19
 
20
- interface ITab extends UI5Element {
20
+ export interface ITab extends UI5Element {
21
21
  getTabInHeaderDomRef: () => ITab | null;
22
22
  disabled?: boolean;
23
23
  icon?: string;
@@ -286,4 +286,3 @@ UDExTab.define();
286
286
  TabNavigation.registerStaticAreaTabStyles(TabInOverflowCss);
287
287
 
288
288
  export default UDExTab;
289
- export { ITab };
@@ -10,17 +10,7 @@ import Popover from "@ui5/webcomponents/dist/Popover.js";
10
10
  import executeTemplate from "@ui5/webcomponents-base/dist/renderer/executeTemplate.js";
11
11
  import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
12
12
  import {
13
- isUp,
14
- isDown,
15
- isRight,
16
- isLeft,
17
- isEnter,
18
- isSpace,
19
- isEscape,
20
- isHome,
21
- isEnd,
22
- isTabNext,
23
- isTabPrevious,
13
+ isUp, isDown, isRight, isLeft, isEnter, isSpace, isEscape, isHome, isEnd, isTabNext, isTabPrevious,
24
14
  } from "@ui5/webcomponents-base/dist/Keys.js";
25
15
  import type { ITab } from "./Tab.js";
26
16
  import type Tab from "./Tab.js";
@@ -51,12 +41,12 @@ export enum Mode {
51
41
  }
52
42
 
53
43
  type UDExTabNavigationClickDetail = {
54
- currentPage: number,
44
+ currentPage: number
55
45
  }
56
46
 
57
47
  type UDExTabContainerTabSelectEventDetail = {
58
- tab: Tab;
59
- tabIndex: number;
48
+ tab: Tab,
49
+ tabIndex: number
60
50
  }
61
51
 
62
52
  /**
@@ -851,3 +841,4 @@ class UDExTabNavigation extends UI5Element {
851
841
  UDExTabNavigation.define();
852
842
 
853
843
  export default UDExTabNavigation;
844
+ export type { UDExTabNavigationClickDetail, UDExTabContainerTabSelectEventDetail };
package/src/Table.ts CHANGED
@@ -21,9 +21,9 @@ import TableTemplate from "./generated/templates/TableTemplate.lit.js";
21
21
  import TableCss from "./generated/themes/Table.css.js";
22
22
  import getEffectiveScrollbarStyle from "./utils/getEffectiveScrollbarStyle.js";
23
23
 
24
- type TableBaseRow = UDExTableHeaderRow | UDExTableRow;
24
+ export type TableBaseRow = UDExTableHeaderRow | UDExTableRow;
25
25
 
26
- type KeyBoardItem = {
26
+ export type KeyBoardItem = {
27
27
  id: string;
28
28
  group?: boolean;
29
29
  elements: Array<HTMLElement>;
@@ -17,7 +17,6 @@ import TableCellBaseCss from "./generated/themes/TableCellBase.css.js";
17
17
  * @extends UI5Element
18
18
  * @public
19
19
  */
20
-
21
20
  @customElement({
22
21
  renderer: litRender,
23
22
  styles: TableCellBaseCss,
@@ -17,7 +17,6 @@ import TableRowBase from "./generated/themes/TableRowBase.css.js";
17
17
  * @extends UI5Element
18
18
  * @public
19
19
  */
20
-
21
20
  @customElement({
22
21
  renderer: litRender,
23
22
  styles: TableRowBase,
package/src/Tag.ts CHANGED
@@ -329,3 +329,4 @@ class UDExTag extends UI5Element {
329
329
  UDExTag.define();
330
330
 
331
331
  export default UDExTag;
332
+ export type { UDExTagLinkClickEventDetail };
package/src/TagGroup.ts CHANGED
@@ -236,3 +236,4 @@ class UDExTagGroup extends UI5Element {
236
236
  UDExTagGroup.define();
237
237
 
238
238
  export default UDExTagGroup;
239
+ export type { UDExTagClickEventDetail, UDExTagKeydownEventDetail, UDExTagIconClickEventDetail };
package/src/TextField.ts CHANGED
@@ -33,7 +33,7 @@ export type AccInfo = {
33
33
  ariaHasPopup?: string,
34
34
  }
35
35
 
36
- export type UDExTextFieldKeydownEventDetail = {
36
+ type UDExTextFieldKeydownEventDetail = {
37
37
  keyboardEvent: KeyboardEvent;
38
38
  }
39
39
 
@@ -490,3 +490,4 @@ class UDExTextField extends UI5Element {
490
490
  UDExTextField.define();
491
491
 
492
492
  export default UDExTextField;
493
+ export type { UDExTextFieldKeydownEventDetail };
package/src/Tile.ts CHANGED
@@ -12,11 +12,12 @@ import TileTemplate from "./TileTemplate.js";
12
12
  // Styles
13
13
  import TileCss from "./generated/themes/Tile.css.js";
14
14
 
15
- type AnchorNode = HTMLAnchorElement | undefined | null;
15
+ export type AnchorNode = HTMLAnchorElement | undefined | null;
16
16
 
17
17
  type UDExTileClickEventDetail = {
18
18
  originalEvent: MouseEvent,
19
19
  }
20
+
20
21
  /**
21
22
  * @class
22
23
  *
@@ -140,3 +141,4 @@ class UDExTile extends UI5Element {
140
141
  UDExTile.define();
141
142
 
142
143
  export default UDExTile;
144
+ export type { UDExTileClickEventDetail };
package/src/Tooltip.hbs CHANGED
@@ -10,7 +10,11 @@
10
10
  accessible-name-ref="{{accessibleNameRef}}"
11
11
  accessible-role="{{accessibleRole}}"
12
12
  ?prevent-initial-focus="{{preventInitialFocus}}"
13
- ?prevent-focus-restore="{{preventFocusRestore}}">
13
+ ?prevent-focus-restore="{{preventFocusRestore}}"
14
+ @ui5-open="{{handleOpen}}"
15
+ @ui5-close="{{handleClose}}"
16
+ @ui5-before-close="{{handleBeforeClose}}"
17
+ @ui5-before-open="{{handleBeforeOpen}}">
14
18
  {{#if title}}
15
19
  <div class="udex-tooltip-title">{{title}}</div>
16
20
  {{/if}}