@ui5/webcomponents-fiori 2.8.0-rc.2 → 2.8.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 (323) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +3 -0
  3. package/cypress/specs/NotificationList.cy.tsx +154 -0
  4. package/cypress/specs/SearchField.cy.tsx +445 -0
  5. package/cypress/specs/SideNavigation.cy.tsx +87 -10
  6. package/cypress/specs/UserMenu.cy.tsx +6 -6
  7. package/cypress/specs/UserSettingsDialog.cy.tsx +619 -0
  8. package/dist/.tsbuildinfo +1 -1
  9. package/dist/NotificationListGroupItem.d.ts +1 -1
  10. package/dist/NotificationListGroupItem.js +5 -2
  11. package/dist/NotificationListGroupItem.js.map +1 -1
  12. package/dist/NotificationListGroupItemTemplate.js +4 -5
  13. package/dist/NotificationListGroupItemTemplate.js.map +1 -1
  14. package/dist/NotificationListGroupList.d.ts +2 -0
  15. package/dist/NotificationListGroupList.js +9 -0
  16. package/dist/NotificationListGroupList.js.map +1 -1
  17. package/dist/NotificationListInternal.d.ts +6 -0
  18. package/dist/NotificationListInternal.js +119 -1
  19. package/dist/NotificationListInternal.js.map +1 -1
  20. package/dist/NotificationListItem.d.ts +0 -1
  21. package/dist/NotificationListItem.js +1 -33
  22. package/dist/NotificationListItem.js.map +1 -1
  23. package/dist/SearchField.d.ts +130 -0
  24. package/dist/SearchField.js +228 -0
  25. package/dist/SearchField.js.map +1 -0
  26. package/dist/SearchFieldScopeOption.d.ts +26 -0
  27. package/dist/SearchFieldScopeOption.js +35 -0
  28. package/dist/SearchFieldScopeOption.js.map +1 -0
  29. package/dist/SearchFieldTemplate.d.ts +2 -0
  30. package/dist/SearchFieldTemplate.js +20 -0
  31. package/dist/SearchFieldTemplate.js.map +1 -0
  32. package/dist/ShellBar.d.ts +4 -3
  33. package/dist/ShellBar.js +10 -3
  34. package/dist/ShellBar.js.map +1 -1
  35. package/dist/ShellBarPopoverTemplate.js +1 -1
  36. package/dist/ShellBarPopoverTemplate.js.map +1 -1
  37. package/dist/SideNavigation.js +4 -1
  38. package/dist/SideNavigation.js.map +1 -1
  39. package/dist/SideNavigationItem.d.ts +2 -0
  40. package/dist/SideNavigationItem.js +27 -2
  41. package/dist/SideNavigationItem.js.map +1 -1
  42. package/dist/SideNavigationItemBase.d.ts +4 -0
  43. package/dist/SideNavigationItemBase.js +5 -0
  44. package/dist/SideNavigationItemBase.js.map +1 -1
  45. package/dist/UserMenu.d.ts +5 -5
  46. package/dist/UserMenu.js +10 -10
  47. package/dist/UserMenu.js.map +1 -1
  48. package/dist/UserMenuTemplate.js +4 -4
  49. package/dist/UserMenuTemplate.js.map +1 -1
  50. package/dist/UserSettingsDialog.d.ts +118 -0
  51. package/dist/UserSettingsDialog.js +260 -0
  52. package/dist/UserSettingsDialog.js.map +1 -0
  53. package/dist/UserSettingsDialogTemplate.d.ts +2 -0
  54. package/dist/UserSettingsDialogTemplate.js +23 -0
  55. package/dist/UserSettingsDialogTemplate.js.map +1 -0
  56. package/dist/UserSettingsItem.d.ts +131 -0
  57. package/dist/UserSettingsItem.js +209 -0
  58. package/dist/UserSettingsItem.js.map +1 -0
  59. package/dist/UserSettingsItemTemplate.d.ts +4 -0
  60. package/dist/UserSettingsItemTemplate.js +20 -0
  61. package/dist/UserSettingsItemTemplate.js.map +1 -0
  62. package/dist/UserSettingsView.d.ts +43 -0
  63. package/dist/UserSettingsView.js +68 -0
  64. package/dist/UserSettingsView.js.map +1 -0
  65. package/dist/UserSettingsViewTemplate.d.ts +2 -0
  66. package/dist/UserSettingsViewTemplate.js +5 -0
  67. package/dist/UserSettingsViewTemplate.js.map +1 -0
  68. package/dist/bundle.esm.js +5 -0
  69. package/dist/bundle.esm.js.map +1 -1
  70. package/dist/css/themes/DynamicPage.css +1 -1
  71. package/dist/css/themes/DynamicPageHeader.css +1 -1
  72. package/dist/css/themes/DynamicPageHeaderActions.css +1 -1
  73. package/dist/css/themes/DynamicPageTitle.css +1 -1
  74. package/dist/css/themes/FlexibleColumnLayout.css +1 -1
  75. package/dist/css/themes/IllustratedMessage.css +1 -1
  76. package/dist/css/themes/MediaGallery.css +1 -1
  77. package/dist/css/themes/MediaGalleryItem.css +1 -1
  78. package/dist/css/themes/NavigationMenu.css +1 -1
  79. package/dist/css/themes/NavigationMenuItem.css +1 -1
  80. package/dist/css/themes/NotificationListGroupItem.css +1 -1
  81. package/dist/css/themes/NotificationListItem.css +1 -1
  82. package/dist/css/themes/NotificationListItemBase.css +1 -1
  83. package/dist/css/themes/NotificationStateIcon.css +1 -1
  84. package/dist/css/themes/Page.css +1 -1
  85. package/dist/css/themes/ProductSwitchItem.css +1 -1
  86. package/dist/css/themes/SearchField.css +1 -0
  87. package/dist/css/themes/ShellBar.css +1 -1
  88. package/dist/css/themes/ShellBarPopover.css +1 -1
  89. package/dist/css/themes/SideNavigation.css +1 -1
  90. package/dist/css/themes/SideNavigationGroup.css +1 -1
  91. package/dist/css/themes/SideNavigationItem.css +1 -1
  92. package/dist/css/themes/SideNavigationItemBase.css +1 -1
  93. package/dist/css/themes/SideNavigationPopover.css +1 -1
  94. package/dist/css/themes/SideNavigationSubItem.css +1 -1
  95. package/dist/css/themes/Timeline.css +1 -1
  96. package/dist/css/themes/TimelineGroupItem.css +1 -1
  97. package/dist/css/themes/TimelineItem.css +1 -1
  98. package/dist/css/themes/UploadCollection.css +1 -1
  99. package/dist/css/themes/UploadCollectionItem.css +1 -1
  100. package/dist/css/themes/UserSettingsDialog.css +1 -0
  101. package/dist/css/themes/UserSettingsItem.css +1 -0
  102. package/dist/css/themes/UserSettingsView.css +1 -0
  103. package/dist/css/themes/ViewSettingsDialog.css +1 -1
  104. package/dist/css/themes/Wizard.css +1 -1
  105. package/dist/css/themes/WizardTab.css +1 -1
  106. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  107. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  108. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  109. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  110. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  111. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  112. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  113. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  114. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  115. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  116. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  117. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  118. package/dist/custom-elements-internal.json +737 -7
  119. package/dist/custom-elements.json +580 -7
  120. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  121. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  122. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  123. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  124. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  125. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  126. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  127. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  128. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  129. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  130. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  131. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  132. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  133. package/dist/generated/i18n/i18n-defaults.d.ts +11 -2
  134. package/dist/generated/i18n/i18n-defaults.js +11 -2
  135. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  136. package/dist/generated/themes/DynamicPage.css.d.ts +1 -1
  137. package/dist/generated/themes/DynamicPage.css.js +1 -1
  138. package/dist/generated/themes/DynamicPage.css.js.map +1 -1
  139. package/dist/generated/themes/DynamicPageHeader.css.d.ts +1 -1
  140. package/dist/generated/themes/DynamicPageHeader.css.js +1 -1
  141. package/dist/generated/themes/DynamicPageHeader.css.js.map +1 -1
  142. package/dist/generated/themes/DynamicPageHeaderActions.css.d.ts +1 -1
  143. package/dist/generated/themes/DynamicPageHeaderActions.css.js +1 -1
  144. package/dist/generated/themes/DynamicPageHeaderActions.css.js.map +1 -1
  145. package/dist/generated/themes/DynamicPageTitle.css.d.ts +1 -1
  146. package/dist/generated/themes/DynamicPageTitle.css.js +1 -1
  147. package/dist/generated/themes/DynamicPageTitle.css.js.map +1 -1
  148. package/dist/generated/themes/FlexibleColumnLayout.css.d.ts +1 -1
  149. package/dist/generated/themes/FlexibleColumnLayout.css.js +1 -1
  150. package/dist/generated/themes/FlexibleColumnLayout.css.js.map +1 -1
  151. package/dist/generated/themes/IllustratedMessage.css.d.ts +1 -1
  152. package/dist/generated/themes/IllustratedMessage.css.js +1 -1
  153. package/dist/generated/themes/IllustratedMessage.css.js.map +1 -1
  154. package/dist/generated/themes/MediaGallery.css.d.ts +1 -1
  155. package/dist/generated/themes/MediaGallery.css.js +1 -1
  156. package/dist/generated/themes/MediaGallery.css.js.map +1 -1
  157. package/dist/generated/themes/MediaGalleryItem.css.d.ts +1 -1
  158. package/dist/generated/themes/MediaGalleryItem.css.js +1 -1
  159. package/dist/generated/themes/MediaGalleryItem.css.js.map +1 -1
  160. package/dist/generated/themes/NavigationMenu.css.d.ts +1 -1
  161. package/dist/generated/themes/NavigationMenu.css.js +1 -1
  162. package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
  163. package/dist/generated/themes/NavigationMenuItem.css.d.ts +1 -1
  164. package/dist/generated/themes/NavigationMenuItem.css.js +1 -1
  165. package/dist/generated/themes/NavigationMenuItem.css.js.map +1 -1
  166. package/dist/generated/themes/NotificationListGroupItem.css.d.ts +1 -1
  167. package/dist/generated/themes/NotificationListGroupItem.css.js +1 -1
  168. package/dist/generated/themes/NotificationListGroupItem.css.js.map +1 -1
  169. package/dist/generated/themes/NotificationListItem.css.d.ts +1 -1
  170. package/dist/generated/themes/NotificationListItem.css.js +1 -1
  171. package/dist/generated/themes/NotificationListItem.css.js.map +1 -1
  172. package/dist/generated/themes/NotificationListItemBase.css.d.ts +1 -1
  173. package/dist/generated/themes/NotificationListItemBase.css.js +1 -1
  174. package/dist/generated/themes/NotificationListItemBase.css.js.map +1 -1
  175. package/dist/generated/themes/NotificationStateIcon.css.d.ts +1 -1
  176. package/dist/generated/themes/NotificationStateIcon.css.js +1 -1
  177. package/dist/generated/themes/NotificationStateIcon.css.js.map +1 -1
  178. package/dist/generated/themes/Page.css.d.ts +1 -1
  179. package/dist/generated/themes/Page.css.js +1 -1
  180. package/dist/generated/themes/Page.css.js.map +1 -1
  181. package/dist/generated/themes/ProductSwitchItem.css.d.ts +1 -1
  182. package/dist/generated/themes/ProductSwitchItem.css.js +1 -1
  183. package/dist/generated/themes/ProductSwitchItem.css.js.map +1 -1
  184. package/dist/generated/themes/SearchField.css.d.ts +2 -0
  185. package/dist/generated/themes/SearchField.css.js +8 -0
  186. package/dist/generated/themes/SearchField.css.js.map +1 -0
  187. package/dist/generated/themes/ShellBar.css.d.ts +1 -1
  188. package/dist/generated/themes/ShellBar.css.js +1 -1
  189. package/dist/generated/themes/ShellBar.css.js.map +1 -1
  190. package/dist/generated/themes/ShellBarPopover.css.d.ts +1 -1
  191. package/dist/generated/themes/ShellBarPopover.css.js +1 -1
  192. package/dist/generated/themes/ShellBarPopover.css.js.map +1 -1
  193. package/dist/generated/themes/SideNavigation.css.d.ts +1 -1
  194. package/dist/generated/themes/SideNavigation.css.js +1 -1
  195. package/dist/generated/themes/SideNavigation.css.js.map +1 -1
  196. package/dist/generated/themes/SideNavigationGroup.css.d.ts +1 -1
  197. package/dist/generated/themes/SideNavigationGroup.css.js +1 -1
  198. package/dist/generated/themes/SideNavigationGroup.css.js.map +1 -1
  199. package/dist/generated/themes/SideNavigationItem.css.d.ts +1 -1
  200. package/dist/generated/themes/SideNavigationItem.css.js +1 -1
  201. package/dist/generated/themes/SideNavigationItem.css.js.map +1 -1
  202. package/dist/generated/themes/SideNavigationItemBase.css.d.ts +1 -1
  203. package/dist/generated/themes/SideNavigationItemBase.css.js +1 -1
  204. package/dist/generated/themes/SideNavigationItemBase.css.js.map +1 -1
  205. package/dist/generated/themes/SideNavigationPopover.css.d.ts +1 -1
  206. package/dist/generated/themes/SideNavigationPopover.css.js +1 -1
  207. package/dist/generated/themes/SideNavigationPopover.css.js.map +1 -1
  208. package/dist/generated/themes/SideNavigationSubItem.css.d.ts +1 -1
  209. package/dist/generated/themes/SideNavigationSubItem.css.js +1 -1
  210. package/dist/generated/themes/SideNavigationSubItem.css.js.map +1 -1
  211. package/dist/generated/themes/Timeline.css.d.ts +1 -1
  212. package/dist/generated/themes/Timeline.css.js +1 -1
  213. package/dist/generated/themes/Timeline.css.js.map +1 -1
  214. package/dist/generated/themes/TimelineGroupItem.css.d.ts +1 -1
  215. package/dist/generated/themes/TimelineGroupItem.css.js +1 -1
  216. package/dist/generated/themes/TimelineGroupItem.css.js.map +1 -1
  217. package/dist/generated/themes/TimelineItem.css.d.ts +1 -1
  218. package/dist/generated/themes/TimelineItem.css.js +1 -1
  219. package/dist/generated/themes/TimelineItem.css.js.map +1 -1
  220. package/dist/generated/themes/UploadCollection.css.d.ts +1 -1
  221. package/dist/generated/themes/UploadCollection.css.js +1 -1
  222. package/dist/generated/themes/UploadCollection.css.js.map +1 -1
  223. package/dist/generated/themes/UploadCollectionItem.css.d.ts +1 -1
  224. package/dist/generated/themes/UploadCollectionItem.css.js +1 -1
  225. package/dist/generated/themes/UploadCollectionItem.css.js.map +1 -1
  226. package/dist/generated/themes/UserSettingsDialog.css.d.ts +2 -0
  227. package/dist/generated/themes/UserSettingsDialog.css.js +8 -0
  228. package/dist/generated/themes/UserSettingsDialog.css.js.map +1 -0
  229. package/dist/generated/themes/UserSettingsItem.css.d.ts +2 -0
  230. package/dist/generated/themes/UserSettingsItem.css.js +8 -0
  231. package/dist/generated/themes/UserSettingsItem.css.js.map +1 -0
  232. package/dist/generated/themes/UserSettingsView.css.d.ts +2 -0
  233. package/dist/generated/themes/UserSettingsView.css.js +8 -0
  234. package/dist/generated/themes/UserSettingsView.css.js.map +1 -0
  235. package/dist/generated/themes/ViewSettingsDialog.css.d.ts +1 -1
  236. package/dist/generated/themes/ViewSettingsDialog.css.js +1 -1
  237. package/dist/generated/themes/ViewSettingsDialog.css.js.map +1 -1
  238. package/dist/generated/themes/Wizard.css.d.ts +1 -1
  239. package/dist/generated/themes/Wizard.css.js +1 -1
  240. package/dist/generated/themes/Wizard.css.js.map +1 -1
  241. package/dist/generated/themes/WizardTab.css.d.ts +1 -1
  242. package/dist/generated/themes/WizardTab.css.js +1 -1
  243. package/dist/generated/themes/WizardTab.css.js.map +1 -1
  244. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  245. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  246. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  247. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  248. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  249. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  250. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  251. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  252. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  253. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  254. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  255. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  256. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  257. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  258. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  259. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  260. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  261. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  262. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.d.ts +1 -1
  263. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  264. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  265. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.d.ts +1 -1
  266. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  267. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  268. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  269. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  270. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  271. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.d.ts +1 -1
  272. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  273. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  274. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  275. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  276. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  277. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.d.ts +1 -1
  278. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  279. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  280. package/dist/types/SearchMode.d.ts +17 -0
  281. package/dist/types/SearchMode.js +19 -0
  282. package/dist/types/SearchMode.js.map +1 -0
  283. package/dist/vscode.html-custom-data.json +107 -3
  284. package/dist/web-types.json +292 -10
  285. package/package.json +7 -7
  286. package/src/NotificationListGroupItemTemplate.tsx +37 -43
  287. package/src/SearchFieldTemplate.tsx +83 -0
  288. package/src/ShellBarPopoverTemplate.tsx +1 -1
  289. package/src/UserMenuTemplate.tsx +3 -4
  290. package/src/UserSettingsDialogTemplate.tsx +68 -0
  291. package/src/UserSettingsItemTemplate.tsx +52 -0
  292. package/src/UserSettingsViewTemplate.tsx +11 -0
  293. package/src/i18n/messagebundle.properties +29 -3
  294. package/src/i18n/messagebundle_en_US_saprigi.properties +16 -0
  295. package/src/themes/IllustratedMessage.css +5 -2
  296. package/src/themes/NavigationMenuItem.css +0 -1
  297. package/src/themes/NotificationListGroupItem.css +5 -0
  298. package/src/themes/SearchField.css +234 -0
  299. package/src/themes/ShellBar.css +7 -2
  300. package/src/themes/SideNavigationItemBase.css +77 -12
  301. package/src/themes/UserSettingsDialog.css +106 -0
  302. package/src/themes/UserSettingsItem.css +78 -0
  303. package/src/themes/UserSettingsView.css +13 -0
  304. package/src/themes/base/SearchField-parameters.css +23 -0
  305. package/src/themes/base/SideNavigation-parameters.css +7 -1
  306. package/src/themes/sap_fiori_3/SearchField-parameters.css +25 -0
  307. package/src/themes/sap_fiori_3/parameters-bundle.css +1 -0
  308. package/src/themes/sap_fiori_3_dark/SearchField-parameters.css +25 -0
  309. package/src/themes/sap_fiori_3_dark/parameters-bundle.css +1 -0
  310. package/src/themes/sap_fiori_3_hcb/SearchField-parameters.css +25 -0
  311. package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -0
  312. package/src/themes/sap_fiori_3_hcw/SearchField-parameters.css +25 -0
  313. package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -0
  314. package/src/themes/sap_horizon/SideNavigation-parameters.css +7 -3
  315. package/src/themes/sap_horizon/parameters-bundle.css +1 -0
  316. package/src/themes/sap_horizon_dark/SideNavigation-parameters.css +7 -3
  317. package/src/themes/sap_horizon_dark/parameters-bundle.css +1 -0
  318. package/src/themes/sap_horizon_hcb/SearchField-parameters.css +25 -0
  319. package/src/themes/sap_horizon_hcb/SideNavigation-parameters.css +7 -3
  320. package/src/themes/sap_horizon_hcb/parameters-bundle.css +1 -0
  321. package/src/themes/sap_horizon_hcw/SearchField-parameters.css +25 -0
  322. package/src/themes/sap_horizon_hcw/SideNavigation-parameters.css +7 -3
  323. package/src/themes/sap_horizon_hcw/parameters-bundle.css +1 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,46 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [2.8.0](https://github.com/SAP/ui5-webcomponents/compare/v2.8.0-rc.3...v2.8.0) (2025-03-04)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **ui5-shellbar:** correct matching content check ([#10921](https://github.com/SAP/ui5-webcomponents/issues/10921)) ([8782951](https://github.com/SAP/ui5-webcomponents/commit/87829511dd2057b3cf7ff1f28fb04ce00df19ffc))
12
+ * **ui5-shellbar:** menu-item-click click event is now properly fired ([#10983](https://github.com/SAP/ui5-webcomponents/issues/10983)) ([27c8bb7](https://github.com/SAP/ui5-webcomponents/commit/27c8bb7ba6e9d153d3da2ad2d976e7ab4cc13714)), closes [#10950](https://github.com/SAP/ui5-webcomponents/issues/10950)
13
+ * **user-menu:** focus on user menu when it is opened ([#10967](https://github.com/SAP/ui5-webcomponents/issues/10967)) ([a9e2868](https://github.com/SAP/ui5-webcomponents/commit/a9e28689eb80c225244ee5a1f7587fdd6ec48319))
14
+
15
+
16
+ ### Features
17
+
18
+ * **framework:** add `.currentTarget` to the type of event handler in TSX and UI5CustomEvent ([#10957](https://github.com/SAP/ui5-webcomponents/issues/10957)) ([f56753c](https://github.com/SAP/ui5-webcomponents/commit/f56753c5142d6e817b05d7e33bd160f09c2d5205))
19
+ * **ui5-side-navigation:** improve interaction of unselectable parent items in collapsed mode ([#10939](https://github.com/SAP/ui5-webcomponents/issues/10939)) ([20507fa](https://github.com/SAP/ui5-webcomponents/commit/20507fa405c1af2469d98905d6b499e55067c7a6))
20
+ * **user-menu:** change api name from showAddAccount to showEditAccounts ([#10966](https://github.com/SAP/ui5-webcomponents/issues/10966)) ([aa9cf2d](https://github.com/SAP/ui5-webcomponents/commit/aa9cf2d55af42ec6880d98452f6a627fc76e9b3b))
21
+
22
+
23
+
24
+
25
+
26
+ # [2.8.0-rc.3](https://github.com/SAP/ui5-webcomponents/compare/v2.8.0-rc.2...v2.8.0-rc.3) (2025-02-27)
27
+
28
+
29
+ ### Bug Fixes
30
+
31
+ * **ui5-illustrated-message:** update title font styles ([#10912](https://github.com/SAP/ui5-webcomponents/issues/10912)) ([6a85a53](https://github.com/SAP/ui5-webcomponents/commit/6a85a53f58bf0780975a5e41a1db69d05c9d1059)), closes [#10879](https://github.com/SAP/ui5-webcomponents/issues/10879)
32
+ * **ui5-notification-list:** improve keyboard accessibility for the "More" button ([#10822](https://github.com/SAP/ui5-webcomponents/issues/10822)) ([b659fe2](https://github.com/SAP/ui5-webcomponents/commit/b659fe2faeb42eb052dafcc0c16215a3bf1f1926))
33
+ * **ui5-shellbar:** adjust focus style of startButton ([#10908](https://github.com/SAP/ui5-webcomponents/issues/10908)) ([cc0be62](https://github.com/SAP/ui5-webcomponents/commit/cc0be62a675d22d6f63471c57d71964d395fd5d6)), closes [#10598](https://github.com/SAP/ui5-webcomponents/issues/10598)
34
+
35
+
36
+ ### Features
37
+
38
+ * **ui5-search-field:** introduce base component ([#10922](https://github.com/SAP/ui5-webcomponents/issues/10922)) ([f4489c0](https://github.com/SAP/ui5-webcomponents/commit/f4489c0cecd8c0f2f7916b39e2183193f171f725))
39
+ * **ui5-side-navigation:** visual design enhancements ([#10839](https://github.com/SAP/ui5-webcomponents/issues/10839)) ([09e3f35](https://github.com/SAP/ui5-webcomponents/commit/09e3f35f5973aca5b2104508a3f8d452d8380a76))
40
+ * **ui5-user-settings-dialog:** introduce new components `UserSettingsDialog`, `UserSettingsItem`, and `UserSettingsView` ([#10832](https://github.com/SAP/ui5-webcomponents/issues/10832)) ([8b50b13](https://github.com/SAP/ui5-webcomponents/commit/8b50b134af44cb9b83a223bb1d0d9e3478f47c77))
41
+
42
+
43
+
44
+
45
+
6
46
  # [2.8.0-rc.2](https://github.com/SAP/ui5-webcomponents/compare/v2.8.0-rc.1...v2.8.0-rc.2) (2025-02-20)
7
47
 
8
48
 
package/README.md CHANGED
@@ -36,6 +36,9 @@ such as a common header (ShellBar).
36
36
  | User Menu | `ui5-user-menu` | `import "@ui5/webcomponents-fiori/dist/UserMenu.js";` |
37
37
  | User Menu Account | `ui5-user-menu-account` | `import "@ui5/webcomponents-fiori/dist/UserMenuAccount.js";` |
38
38
  | User Menu Item | `ui5-user-menu-item` | `import "@ui5/webcomponents-fiori/dist/UserMenuItem.js";` |
39
+ | User Settings Dialog | `ui5-user-settings-dialog` | `import "@ui5/webcomponents-fiori/dist/UserSettingsDialog.js";` |
40
+ | User Settings Item | `ui5-user-settings-item` | `import "@ui5/webcomponents-fiori/dist/UserSettingsItem.js";` |
41
+ | User Settings View | `ui5-user-settings-view` | `import "@ui5/webcomponents-fiori/dist/UserSettingsView.js";` |
39
42
  | View Settings Dialog | `ui5-view-settings-dialog` | `import "@ui5/webcomponents-fiori/dist/ViewSettingsDialog.js";` |
40
43
  | View Settings Dialog - Sort Item | `ui5-sort-item` | `import "@ui5/webcomponents-fiori/dist/SortItem.js";` |
41
44
  | View Settings Dialog - Filter Item | `ui5-filter-item` | `import "@ui5/webcomponents-fiori/dist/FilterItem.js";` |
@@ -0,0 +1,154 @@
1
+ import NotificationList from "../../src/NotificationList.js";
2
+ import NotificationListGroupItem from "../../src/NotificationListGroupItem.js";
3
+ import NotificationListItem from "../../src/NotificationListItem.js";
4
+
5
+ function Sample() {
6
+ return <NotificationList id="nl1">
7
+ <NotificationListGroupItem
8
+ title-text="Group 1"
9
+ id="group1"
10
+ growing="Button">
11
+ <NotificationListItem id="item11" show-close>
12
+ Group 1 Item 1
13
+ </NotificationListItem>
14
+ <NotificationListItem show-close>
15
+ Group 1 Item 2
16
+ </NotificationListItem>
17
+ <NotificationListItem show-close>
18
+ Group 1 Item 3
19
+ </NotificationListItem>
20
+ <NotificationListItem id="item1last" show-close>
21
+ Group 1 Item 4
22
+ </NotificationListItem>
23
+ </NotificationListGroupItem>
24
+ <NotificationListGroupItem
25
+ id="group2"
26
+ title-text="Group 2">
27
+ <NotificationListItem id="item21" show-close>
28
+ Group 2 Item 1
29
+ </NotificationListItem>
30
+ <NotificationListItem show-close>
31
+ Group 2 Item 2
32
+ </NotificationListItem>
33
+ <NotificationListItem show-close>
34
+ Group 2 Item 3
35
+ </NotificationListItem>
36
+ <NotificationListItem id="item2last" show-close>
37
+ Group 2 Item 4
38
+ </NotificationListItem>
39
+ </NotificationListGroupItem>
40
+ <NotificationListGroupItem
41
+ growing="Button"
42
+ title-text="Group 3">
43
+ <NotificationListItem show-close>
44
+ Group 3 Item 1
45
+ </NotificationListItem>
46
+ <NotificationListItem show-close>
47
+ Group 3 Item 2
48
+ </NotificationListItem>
49
+ <NotificationListItem show-close>
50
+ Group 3 Item 3
51
+ </NotificationListItem>
52
+ <NotificationListItem show-close>
53
+ Group 3 Item 4
54
+ </NotificationListItem>
55
+ </NotificationListGroupItem>
56
+ </NotificationList>;
57
+ }
58
+
59
+ describe("Keyboard Navigation", () => {
60
+ beforeEach(() => {
61
+ cy.mount(<Sample />);
62
+ });
63
+
64
+ it("tests Arrows and Space keys", () => {
65
+ cy.get("#group1")
66
+ .shadow()
67
+ .find("[ui5-notification-group-list]")
68
+ .shadow()
69
+ .find("[ui5-busy-indicator] .ui5-growing-button-inner")
70
+ .as("growingButton");
71
+
72
+ cy.realPress("Tab");
73
+ cy.get("#item11").realClick();
74
+ cy.get("#item11").should("be.focused");
75
+
76
+ cy.realPress("ArrowDown");
77
+ cy.realPress("ArrowDown");
78
+ cy.realPress("ArrowDown");
79
+ cy.get("#item1last").should("be.focused");
80
+
81
+ cy.realPress("ArrowDown");
82
+ cy.get("@growingButton").should("be.focused");
83
+
84
+ cy.realPress("ArrowDown");
85
+ cy.get("#group2").should("be.focused");
86
+
87
+ cy.realPress("ArrowDown");
88
+ cy.get("#item21").should("be.focused");
89
+
90
+ cy.realPress("ArrowUp");
91
+ cy.get("#group2").should("be.focused");
92
+
93
+ cy.realPress("ArrowUp");
94
+ cy.get("@growingButton").should("be.focused");
95
+
96
+ cy.realPress("ArrowUp");
97
+ cy.get("#item1last").should("be.focused");
98
+
99
+ cy.realPress("ArrowRight");
100
+ cy.get("@growingButton").should("be.focused");
101
+
102
+ cy.realPress("ArrowRight");
103
+ cy.get("#group2").should("be.focused");
104
+
105
+ cy.realPress("ArrowUp");
106
+ cy.get("@growingButton").should("be.focused");
107
+
108
+ cy.realPress("Space");
109
+ cy.get("@growingButton").should("be.focused");
110
+
111
+ cy.realPress("ArrowLeft");
112
+ cy.get("#item1last").should("be.focused");
113
+ });
114
+
115
+ it("tests Home and End", () => {
116
+ cy.get("#group1")
117
+ .shadow()
118
+ .find("[ui5-notification-group-list]")
119
+ .shadow()
120
+ .find("[ui5-busy-indicator] .ui5-growing-button-inner")
121
+ .as("growingButton");
122
+
123
+ cy.realPress("Tab");
124
+ cy.get("#item11").realClick();
125
+ cy.get("#item11").should("be.focused");
126
+
127
+ cy.realPress("End");
128
+ cy.get("#item1last").should("be.focused");
129
+
130
+ cy.realPress("End");
131
+ cy.get("@growingButton").should("be.focused");
132
+
133
+ cy.realPress("End");
134
+ cy.get("@growingButton").should("be.focused");
135
+
136
+ cy.realPress("ArrowDown");
137
+ cy.realPress("End");
138
+ cy.get("#item2last").should("be.focused");
139
+
140
+ cy.realPress("End");
141
+ cy.get("#item2last").should("be.focused");
142
+
143
+ cy.realPress("Home");
144
+ cy.realPress("ArrowUp");
145
+ cy.get("#group2").should("be.focused");
146
+
147
+ cy.realPress("ArrowUp");
148
+ cy.realPress("Home");
149
+ cy.get("#item11").should("be.focused");
150
+
151
+ cy.realPress("Home");
152
+ cy.get("#item11").should("be.focused");
153
+ });
154
+ });
@@ -0,0 +1,445 @@
1
+ import SearchField from "../../src/SearchField.js";
2
+ import SearchFieldScopeOption from "../../src/SearchFieldScopeOption.js";
3
+ import {
4
+ SEARCH_FIELD_SCOPE_SELECT_LABEL,
5
+ SEARCH_FIELD_CLEAR_ICON,
6
+ SEARCH_FIELD_SEARCH_ICON,
7
+ SEARCH_FIELD_SEARCH_COLLAPSED,
8
+ SEARCH_FIELD_SEARCH_EXPANDED,
9
+ } from "../../src/generated/i18n/i18n-defaults.js";
10
+ import SearchMode from "../../src/types/SearchMode.js";
11
+
12
+ describe("SearchField general interaction", () => {
13
+ describe("Attribute propagation", () => {
14
+ it("should pass placeholder to inner input", () => {
15
+ const attributeValue = "test";
16
+
17
+ cy.mount(<SearchField placeholder={attributeValue} expanded={true}></SearchField>);
18
+
19
+ cy.get("[ui5-search-field]")
20
+ .shadow()
21
+ .find("input")
22
+ .should("have.attr", "placeholder", attributeValue);
23
+ });
24
+
25
+ it("Value attribute is propagated properly", () => {
26
+ const attributeValue = "test";
27
+
28
+ cy.mount(<SearchField value={attributeValue} expanded={true}></SearchField>);
29
+
30
+ cy.get("[ui5-search-field]")
31
+ .shadow()
32
+ .find("input")
33
+ .should("have.value", attributeValue);
34
+ });
35
+
36
+ it("accessibleName to aria-label", () => {
37
+ const attributeValue = "test";
38
+
39
+ cy.mount(<SearchField accessibleName={attributeValue} expanded={true}></SearchField>);
40
+
41
+ cy.get("[ui5-search-field]")
42
+ .shadow()
43
+ .find("input")
44
+ .should("have.attr", "aria-label", attributeValue);
45
+ });
46
+ });
47
+
48
+ describe("Collapsed Search Field", () => {
49
+ it("icon only button should be rendered as a collapsed search field", () => {
50
+ cy.mount(<SearchField placeholder="test"></SearchField>);
51
+
52
+ cy.get("[ui5-search-field]")
53
+ .shadow()
54
+ .find("[ui5-button]")
55
+ .should("exist");
56
+
57
+ cy.get("[ui5-search-field]")
58
+ .shadow()
59
+ .find("input")
60
+ .should("not.exist");
61
+ });
62
+
63
+ it("collapsed search field button accessibility", () => {
64
+ cy.mount(<SearchField placeholder="test"></SearchField>);
65
+
66
+ cy.get("[ui5-search-field]")
67
+ .shadow()
68
+ .find("[ui5-button]")
69
+ .shadow()
70
+ .find("button")
71
+ .as("inner-button");
72
+
73
+ cy.get("@inner-button")
74
+ .should("have.attr", "aria-expanded", "false");
75
+
76
+ cy.get("@inner-button")
77
+ .should("have.attr", "title", SEARCH_FIELD_SEARCH_COLLAPSED.defaultText);
78
+
79
+ cy.get("@inner-button")
80
+ .should("have.attr", "aria-label", SEARCH_FIELD_SEARCH_COLLAPSED.defaultText);
81
+ });
82
+
83
+ it("should expand search field on search icon click", () => {
84
+ cy.mount(<SearchField></SearchField>);
85
+
86
+ cy.get("[ui5-search-field]")
87
+ .as("searchfield");
88
+
89
+ cy.get("@searchfield")
90
+ .shadow()
91
+ .find("[ui5-button]")
92
+ .realClick();
93
+
94
+ cy.get("@searchfield")
95
+ .should("have.attr", "expanded");
96
+ });
97
+ });
98
+
99
+ describe("Expanded Search Field", () => {
100
+ it("input field should be rendered as an expanded search field", () => {
101
+ cy.mount(<SearchField placeholder="test" expanded={true}></SearchField>);
102
+
103
+ cy.get("[ui5-search-field]")
104
+ .shadow()
105
+ .find("[ui5-button]")
106
+ .should("not.exist");
107
+
108
+ cy.get("[ui5-search-field]")
109
+ .shadow()
110
+ .find("input")
111
+ .should("exist");
112
+ });
113
+
114
+ it("expanded empty search field button accessibility", () => {
115
+ cy.mount(<SearchField placeholder="test" expanded={true}></SearchField>);
116
+
117
+ cy.get("[ui5-search-field]")
118
+ .shadow()
119
+ .find("[ui5-icon]")
120
+ .shadow()
121
+ .find("svg")
122
+ .as("search-icon");
123
+
124
+ cy.get("@search-icon")
125
+ .find("title")
126
+ .should("contain.text", SEARCH_FIELD_SEARCH_EXPANDED.defaultText);
127
+
128
+ cy.get("@search-icon")
129
+ .should("have.attr", "aria-label", SEARCH_FIELD_SEARCH_EXPANDED.defaultText);
130
+
131
+ cy.get("[ui5-search-field]")
132
+ .shadow()
133
+ .find(".ui5-search-field-root")
134
+ .should("have.attr", "role", "search");
135
+
136
+ cy.get("[ui5-search-field]")
137
+ .shadow()
138
+ .find("input")
139
+ .should("have.attr", "role", "searchbox");
140
+ });
141
+
142
+ it("expanded search field button accessibility", () => {
143
+ cy.mount(<SearchField value="text" expanded={true}></SearchField>);
144
+
145
+ cy.get("[ui5-search-field]")
146
+ .shadow()
147
+ .find("input")
148
+ .realClick();
149
+
150
+ cy.get("[ui5-search-field]")
151
+ .shadow()
152
+ .find("[ui5-icon]")
153
+ .shadow()
154
+ .find("svg")
155
+ .as("search-icon");
156
+
157
+ cy.get("@search-icon")
158
+ .find("title")
159
+ .should("contain.text", SEARCH_FIELD_SEARCH_ICON.defaultText);
160
+
161
+ cy.get("@search-icon")
162
+ .should("have.attr", "aria-label", SEARCH_FIELD_SEARCH_ICON.defaultText);
163
+ });
164
+
165
+ it("should collapse empty search field on search icon click", () => {
166
+ cy.mount(<SearchField expanded={true}></SearchField>);
167
+
168
+ cy.get("[ui5-search-field]")
169
+ .as("searchfield");
170
+
171
+ cy.get("@searchfield")
172
+ .shadow()
173
+ .find("[ui5-icon][name='search']")
174
+ .realClick();
175
+
176
+ cy.get("@searchfield")
177
+ .should("not.have.attr", "expanded");
178
+ });
179
+ });
180
+
181
+ describe("Expanded Search Field with clear icon", () => {
182
+ it("clear icon should not be visible when input value is empty", () => {
183
+ cy.mount(<SearchField placeholder="test" expanded={true} showClearIcon={true}></SearchField>);
184
+
185
+ cy.get("[ui5-search-field]")
186
+ .shadow()
187
+ .find("input")
188
+ .realClick();
189
+
190
+ cy.get("[ui5-search-field]")
191
+ .shadow()
192
+ .find("[ui5-icon][name='decline']")
193
+ .should("not.exist");
194
+ });
195
+
196
+ it("clear icon should be visible when input value is not empty", () => {
197
+ cy.mount(<SearchField value="test" expanded={true} showClearIcon={true}></SearchField>);
198
+
199
+ cy.get("[ui5-search-field]")
200
+ .shadow()
201
+ .find("input")
202
+ .realClick();
203
+
204
+ cy.get("[ui5-search-field]")
205
+ .shadow()
206
+ .find("[ui5-icon][name='decline']")
207
+ .should("exist");
208
+ });
209
+
210
+ it("clear icon accessibility", () => {
211
+ cy.mount(<SearchField value="test" expanded={true} showClearIcon={true}></SearchField>);
212
+
213
+ cy.get("[ui5-search-field]")
214
+ .shadow()
215
+ .find("input")
216
+ .realClick();
217
+
218
+ cy.get("[ui5-search-field]")
219
+ .shadow()
220
+ .find("[ui5-icon][name='decline']")
221
+ .shadow()
222
+ .find("svg")
223
+ .as("clear-icon");
224
+
225
+ cy.get("@clear-icon")
226
+ .find("title")
227
+ .should("contain.text", SEARCH_FIELD_CLEAR_ICON.defaultText);
228
+
229
+ cy.get("@clear-icon")
230
+ .should("have.attr", "aria-label", SEARCH_FIELD_CLEAR_ICON.defaultText);
231
+ });
232
+ });
233
+
234
+ describe("Events", () => {
235
+ it("fires search event on Enter", () => {
236
+ cy.mount(<SearchField value="test" expanded={true}></SearchField>);
237
+
238
+ cy.get("[ui5-search-field]")
239
+ .as("searchfield");
240
+
241
+ cy.get("@searchfield")
242
+ .then(searchfield => {
243
+ searchfield.get(0).addEventListener("ui5-search", cy.stub().as("searched"));
244
+ });
245
+
246
+ cy.get("@searchfield")
247
+ .shadow()
248
+ .find("input")
249
+ .realClick();
250
+
251
+ cy.get("@searchfield")
252
+ .should("be.focused");
253
+
254
+ cy.get("@searchfield")
255
+ .realPress("Enter");
256
+
257
+ cy.get("@searched")
258
+ .should("have.been.calledOnce");
259
+ });
260
+
261
+ it("fires search event search icon click", () => {
262
+ cy.mount(<SearchField value="test" expanded={true}></SearchField>);
263
+
264
+ cy.get("[ui5-search-field]")
265
+ .as("searchfield");
266
+
267
+ cy.get("@searchfield")
268
+ .then(searchfield => {
269
+ searchfield.get(0).addEventListener("ui5-search", cy.stub().as("searched"));
270
+ });
271
+
272
+ cy.get("@searchfield")
273
+ .shadow()
274
+ .find("[ui5-icon][name='search']")
275
+ .realClick();
276
+
277
+ cy.get("@searched")
278
+ .should("have.been.calledOnce");
279
+ });
280
+
281
+ it("should not fire search event when value is empty", () => {
282
+ cy.mount(<SearchField expanded={true}></SearchField>);
283
+
284
+ cy.get("[ui5-search-field]")
285
+ .as("searchfield");
286
+
287
+ cy.get("@searchfield")
288
+ .then(searchfield => {
289
+ searchfield.get(0).addEventListener("ui5-search", cy.stub().as("searched"));
290
+ });
291
+
292
+ cy.get("@searchfield")
293
+ .shadow()
294
+ .find("input")
295
+ .realClick();
296
+
297
+ cy.get("@searchfield")
298
+ .should("be.focused");
299
+
300
+ cy.get("@searchfield")
301
+ .realPress("Enter");
302
+
303
+ cy.get("@searched")
304
+ .should("not.be.called");
305
+ });
306
+
307
+ it("fires input event on typing", () => {
308
+ cy.mount(<SearchField expanded={true}></SearchField>);
309
+
310
+ cy.get("[ui5-search-field]")
311
+ .as("searchfield");
312
+
313
+ cy.get("@searchfield")
314
+ .then(searchfield => {
315
+ searchfield.get(0).addEventListener("ui5-input", cy.stub().as("input"));
316
+ });
317
+
318
+ cy.get("@searchfield")
319
+ .shadow()
320
+ .find("input")
321
+ .realClick();
322
+
323
+ cy.get("@searchfield")
324
+ .should("be.focused");
325
+
326
+ cy.get("@searchfield")
327
+ .realPress("a")
328
+ .realPress("b")
329
+ .realPress("c");
330
+
331
+ cy.get("@input")
332
+ .should("have.been.calledThrice");
333
+ });
334
+
335
+ it("fires input event on clear icon press", () => {
336
+ cy.mount(<SearchField value="test" expanded={true} showClearIcon={true}></SearchField>);
337
+
338
+ cy.get("[ui5-search-field]")
339
+ .as("searchfield");
340
+
341
+ cy.get("@searchfield")
342
+ .then(searchfield => {
343
+ searchfield.get(0).addEventListener("ui5-input", cy.stub().as("input"));
344
+ });
345
+
346
+ cy.get("@searchfield")
347
+ .shadow()
348
+ .find("[ui5-icon][name='decline']")
349
+ .realClick();
350
+
351
+ cy.get("@input")
352
+ .should("have.been.calledOnce");
353
+ });
354
+ });
355
+
356
+ describe("Scoped Search Field", () => {
357
+ it("ui5-select should not be rendered on Default Search Field", () => {
358
+ cy.mount(<SearchField value="test" expanded={true}></SearchField>);
359
+
360
+ cy.get("[ui5-search-field]")
361
+ .as("searchfield");
362
+
363
+ cy.get("@searchfield")
364
+ .shadow()
365
+ .find("[ui5-select]")
366
+ .should("not.exist");
367
+ });
368
+
369
+ it("ui5-select should be rendered on Scoped Search Field", () => {
370
+ cy.mount(<SearchField value="test" expanded={true} mode={SearchMode.Scoped}></SearchField>);
371
+
372
+ cy.get("[ui5-search-field]")
373
+ .as("searchfield");
374
+
375
+ cy.get("@searchfield")
376
+ .shadow()
377
+ .find("[ui5-select]")
378
+ .should("exist");
379
+ });
380
+
381
+ it("ui5-select accessibility", () => {
382
+ cy.mount(<SearchField value="test" expanded={true} mode={SearchMode.Scoped}></SearchField>);
383
+
384
+ cy.get("[ui5-search-field]")
385
+ .shadow()
386
+ .find("[ui5-select]")
387
+ .as("scope");
388
+
389
+ cy.get("@scope")
390
+ .shadow()
391
+ .find("[role='combobox']")
392
+ .should("have.attr", "aria-label", SEARCH_FIELD_SCOPE_SELECT_LABEL.defaultText);
393
+
394
+ cy.get("@scope")
395
+ .shadow()
396
+ .find(".ui5-select-root")
397
+ .should("have.attr", "title", SEARCH_FIELD_SCOPE_SELECT_LABEL.defaultText);
398
+ });
399
+
400
+ it("Two options should be rendered in the scope", () => {
401
+ cy.mount(<SearchField value="test" expanded={true} mode={SearchMode.Scoped}>
402
+ <SearchFieldScopeOption text="Apps" slot="scopeOptions"></SearchFieldScopeOption>
403
+ <SearchFieldScopeOption text="Products" slot="scopeOptions"></SearchFieldScopeOption>
404
+ </SearchField>);
405
+
406
+ cy.get("[ui5-search-field]")
407
+ .shadow()
408
+ .find("[ui5-select]")
409
+ .as("scope");
410
+
411
+ cy.get("@scope")
412
+ .find("[ui5-option]")
413
+ .should("have.length", 2);
414
+ });
415
+
416
+ it("scope-change event should be fired, when a scope option is selected", () => {
417
+ cy.mount(<SearchField value="test" expanded={true} mode={SearchMode.Scoped}>
418
+ <SearchFieldScopeOption text="Apps" slot="scopeOptions"></SearchFieldScopeOption>
419
+ <SearchFieldScopeOption text="Products" slot="scopeOptions"></SearchFieldScopeOption>
420
+ </SearchField>);
421
+
422
+ cy.get("[ui5-search-field]")
423
+ .then(searchfield => {
424
+ searchfield.get(0).addEventListener("ui5-scope-change", cy.stub().as("scopeChanged"));
425
+ });
426
+
427
+ cy.get("[ui5-search-field]")
428
+ .shadow()
429
+ .find("[ui5-select]")
430
+ .as("scope");
431
+
432
+ cy.get("@scope")
433
+ .realClick();
434
+
435
+ cy.get("@scope")
436
+ .realPress("ArrowDown");
437
+
438
+ cy.get("@scope")
439
+ .realPress("Enter");
440
+
441
+ cy.get("@scopeChanged")
442
+ .should("have.been.calledOnce");
443
+ });
444
+ });
445
+ });