@ui5/webcomponents 2.2.0-rc.2 → 2.2.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 (554) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/cypress/specs/Button.cy.ts +361 -0
  3. package/cypress/specs/List.cy.ts +34 -0
  4. package/cypress/specs/Menu.cy.ts +429 -0
  5. package/cypress/specs/ResponsivePopover.mobile.cy.ts +93 -0
  6. package/cypress/specs/Select.cy.ts +39 -0
  7. package/cypress/specs/TableLoading.cy.ts +44 -0
  8. package/cypress/specs/TextArea.cy.ts +699 -0
  9. package/cypress/support/commands/Menu.commands.ts +48 -0
  10. package/cypress/support/commands.ts +75 -0
  11. package/cypress/support/component.ts +3 -0
  12. package/cypress/tsconfig.json +36 -0
  13. package/cypress.config.js +8 -0
  14. package/dist/.tsbuildinfo +1 -1
  15. package/dist/BreadcrumbsItem.d.ts +2 -0
  16. package/dist/BreadcrumbsItem.js +5 -0
  17. package/dist/BreadcrumbsItem.js.map +1 -1
  18. package/dist/Calendar.d.ts +2 -0
  19. package/dist/Calendar.js +4 -2
  20. package/dist/Calendar.js.map +1 -1
  21. package/dist/ColorPicker.js +1 -0
  22. package/dist/ColorPicker.js.map +1 -1
  23. package/dist/DateComponentBase.d.ts +9 -0
  24. package/dist/DateComponentBase.js +11 -0
  25. package/dist/DateComponentBase.js.map +1 -1
  26. package/dist/DateRangePicker.d.ts +0 -5
  27. package/dist/DateRangePicker.js +0 -7
  28. package/dist/DateRangePicker.js.map +1 -1
  29. package/dist/DayPicker.d.ts +2 -3
  30. package/dist/DayPicker.js +25 -21
  31. package/dist/DayPicker.js.map +1 -1
  32. package/dist/Dialog.js +2 -2
  33. package/dist/Dialog.js.map +1 -1
  34. package/dist/FileUploader.d.ts +3 -3
  35. package/dist/FileUploader.js +3 -3
  36. package/dist/FileUploader.js.map +1 -1
  37. package/dist/Link.d.ts +1 -1
  38. package/dist/Link.js.map +1 -1
  39. package/dist/List.js +4 -3
  40. package/dist/List.js.map +1 -1
  41. package/dist/MonthPicker.d.ts +40 -2
  42. package/dist/MonthPicker.js +83 -10
  43. package/dist/MonthPicker.js.map +1 -1
  44. package/dist/MultiComboBox.js +8 -4
  45. package/dist/MultiComboBox.js.map +1 -1
  46. package/dist/Popover.js +2 -2
  47. package/dist/Popover.js.map +1 -1
  48. package/dist/Popup.js +0 -2
  49. package/dist/Popup.js.map +1 -1
  50. package/dist/TextArea.d.ts +1 -1
  51. package/dist/TextArea.js +7 -4
  52. package/dist/TextArea.js.map +1 -1
  53. package/dist/YearPicker.d.ts +39 -1
  54. package/dist/YearPicker.js +82 -9
  55. package/dist/YearPicker.js.map +1 -1
  56. package/dist/css/themes/Avatar.css +1 -1
  57. package/dist/css/themes/AvatarGroup.css +1 -1
  58. package/dist/css/themes/Bar.css +1 -1
  59. package/dist/css/themes/Breadcrumbs.css +1 -1
  60. package/dist/css/themes/BrowserScrollbar.css +1 -1
  61. package/dist/css/themes/BusyIndicator.css +1 -1
  62. package/dist/css/themes/Button.css +1 -1
  63. package/dist/css/themes/Calendar.css +1 -1
  64. package/dist/css/themes/CalendarHeader.css +1 -1
  65. package/dist/css/themes/CalendarLegend.css +1 -1
  66. package/dist/css/themes/CalendarLegendItem.css +1 -1
  67. package/dist/css/themes/Card.css +1 -1
  68. package/dist/css/themes/CardHeader.css +1 -1
  69. package/dist/css/themes/Carousel.css +1 -1
  70. package/dist/css/themes/CheckBox.css +1 -1
  71. package/dist/css/themes/ColorPalette.css +1 -1
  72. package/dist/css/themes/ColorPaletteItem.css +1 -1
  73. package/dist/css/themes/ColorPalettePopover.css +1 -1
  74. package/dist/css/themes/ColorPicker.css +1 -1
  75. package/dist/css/themes/ComboBox.css +1 -1
  76. package/dist/css/themes/DatePicker.css +1 -1
  77. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  78. package/dist/css/themes/DayPicker.css +1 -1
  79. package/dist/css/themes/Dialog.css +1 -1
  80. package/dist/css/themes/FileUploader.css +1 -1
  81. package/dist/css/themes/Form.css +1 -1
  82. package/dist/css/themes/FormItem.css +1 -1
  83. package/dist/css/themes/FormLabelSpan.css +1 -1
  84. package/dist/css/themes/GrowingButton.css +1 -1
  85. package/dist/css/themes/Icon.css +1 -1
  86. package/dist/css/themes/Input.css +1 -1
  87. package/dist/css/themes/InputIcon.css +1 -1
  88. package/dist/css/themes/InputSharedStyles.css +1 -1
  89. package/dist/css/themes/Link.css +1 -1
  90. package/dist/css/themes/List.css +1 -1
  91. package/dist/css/themes/ListItem.css +1 -1
  92. package/dist/css/themes/ListItemBase.css +1 -1
  93. package/dist/css/themes/ListItemCustom.css +1 -1
  94. package/dist/css/themes/ListItemGroup.css +1 -1
  95. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  96. package/dist/css/themes/ListItemIcon.css +1 -1
  97. package/dist/css/themes/Menu.css +1 -1
  98. package/dist/css/themes/MenuItem.css +1 -1
  99. package/dist/css/themes/MessageStrip.css +1 -1
  100. package/dist/css/themes/MonthPicker.css +1 -1
  101. package/dist/css/themes/MultiComboBox.css +1 -1
  102. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  103. package/dist/css/themes/MultiInput.css +1 -1
  104. package/dist/css/themes/NavigationMenu.css +1 -1
  105. package/dist/css/themes/NavigationMenuItem.css +1 -1
  106. package/dist/css/themes/OptionBase.css +1 -1
  107. package/dist/css/themes/Panel.css +1 -1
  108. package/dist/css/themes/Popover.css +1 -1
  109. package/dist/css/themes/PopupsCommon.css +1 -1
  110. package/dist/css/themes/ProgressIndicator.css +1 -1
  111. package/dist/css/themes/RadioButton.css +1 -1
  112. package/dist/css/themes/RangeSlider.css +1 -1
  113. package/dist/css/themes/RatingIndicator.css +1 -1
  114. package/dist/css/themes/ResponsivePopover.css +1 -1
  115. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  116. package/dist/css/themes/SegmentedButton.css +1 -1
  117. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  118. package/dist/css/themes/Select.css +1 -1
  119. package/dist/css/themes/SliderBase.css +1 -1
  120. package/dist/css/themes/SplitButton.css +1 -1
  121. package/dist/css/themes/StepInput.css +1 -1
  122. package/dist/css/themes/SuggestionItem.css +1 -1
  123. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  124. package/dist/css/themes/Switch.css +1 -1
  125. package/dist/css/themes/TabContainer.css +1 -1
  126. package/dist/css/themes/TabInOverflow.css +1 -1
  127. package/dist/css/themes/TabInStrip.css +1 -1
  128. package/dist/css/themes/TabSemanticIcon.css +1 -1
  129. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  130. package/dist/css/themes/Table.css +1 -1
  131. package/dist/css/themes/TableCellBase.css +1 -1
  132. package/dist/css/themes/TableHeaderRow.css +1 -1
  133. package/dist/css/themes/TableRow.css +1 -1
  134. package/dist/css/themes/TableRowBase.css +1 -1
  135. package/dist/css/themes/Tag.css +1 -1
  136. package/dist/css/themes/Text.css +1 -1
  137. package/dist/css/themes/TextArea.css +1 -1
  138. package/dist/css/themes/TimePicker.css +1 -1
  139. package/dist/css/themes/Toast.css +1 -1
  140. package/dist/css/themes/ToggleButton.css +1 -1
  141. package/dist/css/themes/Token.css +1 -1
  142. package/dist/css/themes/Tokenizer.css +1 -1
  143. package/dist/css/themes/TokenizerPopover.css +1 -1
  144. package/dist/css/themes/Toolbar.css +1 -1
  145. package/dist/css/themes/ToolbarPopover.css +1 -1
  146. package/dist/css/themes/TreeItem.css +1 -1
  147. package/dist/css/themes/ValueStateMessage.css +1 -1
  148. package/dist/css/themes/YearPicker.css +1 -1
  149. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  150. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  151. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  152. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  153. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  154. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  155. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  156. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  157. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  158. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  159. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  160. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  161. package/dist/custom-elements-internal.json +274 -3
  162. package/dist/custom-elements.json +222 -3
  163. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  164. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  165. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  166. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  167. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  168. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  169. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  170. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  171. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  172. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  173. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  174. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  175. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  176. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  177. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  178. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  179. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  180. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  181. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  182. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  183. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  184. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  185. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  186. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  187. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  188. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  189. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  190. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  191. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  192. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  193. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  194. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  195. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  196. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  197. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  198. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  199. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  200. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  201. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  202. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  203. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  204. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  205. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  206. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  207. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  208. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  209. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  210. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  211. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  212. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  213. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  214. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  215. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  216. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  217. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  218. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  219. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  220. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  221. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  222. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  223. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  224. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  225. package/dist/generated/templates/BreadcrumbsTemplate.lit.js +1 -1
  226. package/dist/generated/templates/BreadcrumbsTemplate.lit.js.map +1 -1
  227. package/dist/generated/templates/CalendarTemplate.lit.js +1 -1
  228. package/dist/generated/templates/CalendarTemplate.lit.js.map +1 -1
  229. package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +1 -1
  230. package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js.map +1 -1
  231. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +1 -1
  232. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js.map +1 -1
  233. package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
  234. package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
  235. package/dist/generated/templates/DateRangePickerTemplate.lit.js +1 -1
  236. package/dist/generated/templates/DateRangePickerTemplate.lit.js.map +1 -1
  237. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +1 -1
  238. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js.map +1 -1
  239. package/dist/generated/templates/DateTimePickerTemplate.lit.js +1 -1
  240. package/dist/generated/templates/DateTimePickerTemplate.lit.js.map +1 -1
  241. package/dist/generated/templates/LinkTemplate.lit.js +1 -1
  242. package/dist/generated/templates/LinkTemplate.lit.js.map +1 -1
  243. package/dist/generated/templates/MonthPickerTemplate.lit.js +2 -2
  244. package/dist/generated/templates/MonthPickerTemplate.lit.js.map +1 -1
  245. package/dist/generated/templates/YearPickerTemplate.lit.js +2 -2
  246. package/dist/generated/templates/YearPickerTemplate.lit.js.map +1 -1
  247. package/dist/generated/themes/Avatar.css.js +1 -1
  248. package/dist/generated/themes/Avatar.css.js.map +1 -1
  249. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  250. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  251. package/dist/generated/themes/Bar.css.js +1 -1
  252. package/dist/generated/themes/Bar.css.js.map +1 -1
  253. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  254. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  255. package/dist/generated/themes/BrowserScrollbar.css.js +1 -1
  256. package/dist/generated/themes/BrowserScrollbar.css.js.map +1 -1
  257. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  258. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  259. package/dist/generated/themes/Button.css.js +1 -1
  260. package/dist/generated/themes/Button.css.js.map +1 -1
  261. package/dist/generated/themes/Calendar.css.js +1 -1
  262. package/dist/generated/themes/Calendar.css.js.map +1 -1
  263. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  264. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  265. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  266. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  267. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  268. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  269. package/dist/generated/themes/Card.css.js +1 -1
  270. package/dist/generated/themes/Card.css.js.map +1 -1
  271. package/dist/generated/themes/CardHeader.css.js +1 -1
  272. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  273. package/dist/generated/themes/Carousel.css.js +1 -1
  274. package/dist/generated/themes/Carousel.css.js.map +1 -1
  275. package/dist/generated/themes/CheckBox.css.js +1 -1
  276. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  277. package/dist/generated/themes/ColorPalette.css.js +1 -1
  278. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  279. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  280. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  281. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  282. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  283. package/dist/generated/themes/ColorPicker.css.js +1 -1
  284. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  285. package/dist/generated/themes/ComboBox.css.js +1 -1
  286. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  287. package/dist/generated/themes/DatePicker.css.js +1 -1
  288. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  289. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  290. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  291. package/dist/generated/themes/DayPicker.css.js +1 -1
  292. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  293. package/dist/generated/themes/Dialog.css.js +1 -1
  294. package/dist/generated/themes/Dialog.css.js.map +1 -1
  295. package/dist/generated/themes/FileUploader.css.js +1 -1
  296. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  297. package/dist/generated/themes/Form.css.js +1 -1
  298. package/dist/generated/themes/Form.css.js.map +1 -1
  299. package/dist/generated/themes/FormItem.css.js +1 -1
  300. package/dist/generated/themes/FormItem.css.js.map +1 -1
  301. package/dist/generated/themes/FormLabelSpan.css.js +1 -1
  302. package/dist/generated/themes/FormLabelSpan.css.js.map +1 -1
  303. package/dist/generated/themes/GrowingButton.css.js +1 -1
  304. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  305. package/dist/generated/themes/Icon.css.js +1 -1
  306. package/dist/generated/themes/Icon.css.js.map +1 -1
  307. package/dist/generated/themes/Input.css.js +1 -1
  308. package/dist/generated/themes/Input.css.js.map +1 -1
  309. package/dist/generated/themes/InputIcon.css.js +1 -1
  310. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  311. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  312. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  313. package/dist/generated/themes/Link.css.js +1 -1
  314. package/dist/generated/themes/Link.css.js.map +1 -1
  315. package/dist/generated/themes/List.css.js +1 -1
  316. package/dist/generated/themes/List.css.js.map +1 -1
  317. package/dist/generated/themes/ListItem.css.js +1 -1
  318. package/dist/generated/themes/ListItem.css.js.map +1 -1
  319. package/dist/generated/themes/ListItemBase.css.js +1 -1
  320. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  321. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  322. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  323. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  324. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  325. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  326. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  327. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  328. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  329. package/dist/generated/themes/Menu.css.js +1 -1
  330. package/dist/generated/themes/Menu.css.js.map +1 -1
  331. package/dist/generated/themes/MenuItem.css.js +1 -1
  332. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  333. package/dist/generated/themes/MessageStrip.css.js +1 -1
  334. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  335. package/dist/generated/themes/MonthPicker.css.js +1 -1
  336. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  337. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  338. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  339. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  340. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  341. package/dist/generated/themes/MultiInput.css.js +1 -1
  342. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  343. package/dist/generated/themes/NavigationMenu.css.js +1 -1
  344. package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
  345. package/dist/generated/themes/NavigationMenuItem.css.js +1 -1
  346. package/dist/generated/themes/NavigationMenuItem.css.js.map +1 -1
  347. package/dist/generated/themes/OptionBase.css.js +1 -1
  348. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  349. package/dist/generated/themes/Panel.css.js +1 -1
  350. package/dist/generated/themes/Panel.css.js.map +1 -1
  351. package/dist/generated/themes/Popover.css.js +1 -1
  352. package/dist/generated/themes/Popover.css.js.map +1 -1
  353. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  354. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  355. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  356. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  357. package/dist/generated/themes/RadioButton.css.js +1 -1
  358. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  359. package/dist/generated/themes/RangeSlider.css.js +1 -1
  360. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  361. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  362. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  363. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  364. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  365. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  366. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  367. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  368. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  369. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  370. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  371. package/dist/generated/themes/Select.css.js +1 -1
  372. package/dist/generated/themes/Select.css.js.map +1 -1
  373. package/dist/generated/themes/SliderBase.css.js +1 -1
  374. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  375. package/dist/generated/themes/SplitButton.css.js +1 -1
  376. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  377. package/dist/generated/themes/StepInput.css.js +1 -1
  378. package/dist/generated/themes/StepInput.css.js.map +1 -1
  379. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  380. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  381. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  382. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  383. package/dist/generated/themes/Switch.css.js +1 -1
  384. package/dist/generated/themes/Switch.css.js.map +1 -1
  385. package/dist/generated/themes/TabContainer.css.js +1 -1
  386. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  387. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  388. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  389. package/dist/generated/themes/TabInStrip.css.js +1 -1
  390. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  391. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  392. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  393. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  394. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  395. package/dist/generated/themes/Table.css.js +1 -1
  396. package/dist/generated/themes/Table.css.js.map +1 -1
  397. package/dist/generated/themes/TableCellBase.css.js +1 -1
  398. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  399. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  400. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  401. package/dist/generated/themes/TableRow.css.js +1 -1
  402. package/dist/generated/themes/TableRow.css.js.map +1 -1
  403. package/dist/generated/themes/TableRowBase.css.js +1 -1
  404. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  405. package/dist/generated/themes/Tag.css.js +1 -1
  406. package/dist/generated/themes/Tag.css.js.map +1 -1
  407. package/dist/generated/themes/Text.css.js +1 -1
  408. package/dist/generated/themes/Text.css.js.map +1 -1
  409. package/dist/generated/themes/TextArea.css.js +1 -1
  410. package/dist/generated/themes/TextArea.css.js.map +1 -1
  411. package/dist/generated/themes/TimePicker.css.js +1 -1
  412. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  413. package/dist/generated/themes/Toast.css.js +1 -1
  414. package/dist/generated/themes/Toast.css.js.map +1 -1
  415. package/dist/generated/themes/ToggleButton.css.js +1 -1
  416. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  417. package/dist/generated/themes/Token.css.js +1 -1
  418. package/dist/generated/themes/Token.css.js.map +1 -1
  419. package/dist/generated/themes/Tokenizer.css.js +1 -1
  420. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  421. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  422. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  423. package/dist/generated/themes/Toolbar.css.js +1 -1
  424. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  425. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  426. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  427. package/dist/generated/themes/TreeItem.css.js +1 -1
  428. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  429. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  430. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  431. package/dist/generated/themes/YearPicker.css.js +1 -1
  432. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  433. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  434. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  435. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  436. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  437. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  438. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  439. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  440. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  441. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  442. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  443. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  444. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  445. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  446. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  447. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  448. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  449. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  450. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  451. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  452. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  453. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  454. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  455. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  456. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  457. package/dist/types/CalendarWeekNumbering.d.ts +44 -0
  458. package/dist/types/CalendarWeekNumbering.js +46 -0
  459. package/dist/types/CalendarWeekNumbering.js.map +1 -0
  460. package/dist/vscode.html-custom-data.json +62 -2
  461. package/dist/web-types.json +73 -5
  462. package/package.json +11 -10
  463. package/src/Breadcrumbs.hbs +1 -0
  464. package/src/Calendar.hbs +5 -2
  465. package/src/ColorPalettePopover.hbs +1 -1
  466. package/src/DatePickerPopover.hbs +1 -0
  467. package/src/DateRangePicker.hbs +1 -0
  468. package/src/DateTimePickerPopover.hbs +1 -0
  469. package/src/Link.hbs +1 -0
  470. package/src/MonthPicker.hbs +2 -0
  471. package/src/YearPicker.hbs +3 -1
  472. package/src/i18n/messagebundle_ar.properties +9 -0
  473. package/src/i18n/messagebundle_bg.properties +9 -0
  474. package/src/i18n/messagebundle_ca.properties +9 -0
  475. package/src/i18n/messagebundle_cnr.properties +9 -0
  476. package/src/i18n/messagebundle_cs.properties +9 -0
  477. package/src/i18n/messagebundle_cy.properties +9 -0
  478. package/src/i18n/messagebundle_da.properties +9 -0
  479. package/src/i18n/messagebundle_de.properties +9 -0
  480. package/src/i18n/messagebundle_el.properties +9 -0
  481. package/src/i18n/messagebundle_en.properties +9 -0
  482. package/src/i18n/messagebundle_en_GB.properties +9 -0
  483. package/src/i18n/messagebundle_en_US_sappsd.properties +9 -0
  484. package/src/i18n/messagebundle_en_US_saprigi.properties +9 -0
  485. package/src/i18n/messagebundle_en_US_saptrc.properties +197 -188
  486. package/src/i18n/messagebundle_es.properties +9 -0
  487. package/src/i18n/messagebundle_es_MX.properties +9 -0
  488. package/src/i18n/messagebundle_et.properties +9 -0
  489. package/src/i18n/messagebundle_fi.properties +9 -0
  490. package/src/i18n/messagebundle_fr.properties +9 -0
  491. package/src/i18n/messagebundle_fr_CA.properties +9 -0
  492. package/src/i18n/messagebundle_hi.properties +9 -0
  493. package/src/i18n/messagebundle_hr.properties +9 -0
  494. package/src/i18n/messagebundle_hu.properties +11 -2
  495. package/src/i18n/messagebundle_id.properties +11 -2
  496. package/src/i18n/messagebundle_it.properties +9 -0
  497. package/src/i18n/messagebundle_iw.properties +9 -0
  498. package/src/i18n/messagebundle_ja.properties +9 -0
  499. package/src/i18n/messagebundle_kk.properties +9 -0
  500. package/src/i18n/messagebundle_ko.properties +9 -0
  501. package/src/i18n/messagebundle_lt.properties +9 -0
  502. package/src/i18n/messagebundle_lv.properties +9 -0
  503. package/src/i18n/messagebundle_mk.properties +9 -0
  504. package/src/i18n/messagebundle_ms.properties +9 -0
  505. package/src/i18n/messagebundle_nl.properties +9 -0
  506. package/src/i18n/messagebundle_no.properties +9 -0
  507. package/src/i18n/messagebundle_pl.properties +9 -0
  508. package/src/i18n/messagebundle_pt.properties +9 -0
  509. package/src/i18n/messagebundle_pt_PT.properties +9 -0
  510. package/src/i18n/messagebundle_ro.properties +9 -0
  511. package/src/i18n/messagebundle_ru.properties +10 -1
  512. package/src/i18n/messagebundle_sh.properties +9 -0
  513. package/src/i18n/messagebundle_sk.properties +9 -0
  514. package/src/i18n/messagebundle_sl.properties +9 -0
  515. package/src/i18n/messagebundle_sr.properties +9 -0
  516. package/src/i18n/messagebundle_sv.properties +9 -0
  517. package/src/i18n/messagebundle_th.properties +9 -0
  518. package/src/i18n/messagebundle_tr.properties +9 -0
  519. package/src/i18n/messagebundle_uk.properties +9 -0
  520. package/src/i18n/messagebundle_vi.properties +9 -0
  521. package/src/i18n/messagebundle_zh_CN.properties +9 -0
  522. package/src/i18n/messagebundle_zh_TW.properties +9 -0
  523. package/src/themes/BrowserScrollbar.css +8 -8
  524. package/src/themes/MenuItem.css +12 -2
  525. package/src/themes/MonthPicker.css +46 -26
  526. package/src/themes/TextArea.css +6 -6
  527. package/src/themes/YearPicker.css +41 -22
  528. package/src/themes/base/MonthPicker-parameters.css +6 -13
  529. package/src/themes/base/YearPicker-parameters.css +6 -13
  530. package/src/themes/sap_fiori_3/parameters-bundle.css +0 -1
  531. package/src/themes/sap_fiori_3_dark/parameters-bundle.css +0 -1
  532. package/src/themes/sap_fiori_3_hcb/MonthPicker-parameters.css +0 -6
  533. package/src/themes/sap_fiori_3_hcb/YearPicker-parameters.css +0 -6
  534. package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +0 -1
  535. package/src/themes/sap_fiori_3_hcw/MonthPicker-parameters.css +0 -6
  536. package/src/themes/sap_fiori_3_hcw/YearPicker-parameters.css +0 -6
  537. package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +0 -1
  538. package/src/themes/sap_horizon/MonthPicker-parameters.css +0 -11
  539. package/src/themes/sap_horizon/YearPicker-parameters.css +0 -10
  540. package/src/themes/sap_horizon/parameters-bundle.css +0 -1
  541. package/src/themes/sap_horizon_dark/MonthPicker-parameters.css +0 -11
  542. package/src/themes/sap_horizon_dark/YearPicker-parameters.css +0 -10
  543. package/src/themes/sap_horizon_dark/parameters-bundle.css +0 -1
  544. package/src/themes/sap_horizon_dark_exp/parameters-bundle.css +0 -1
  545. package/src/themes/sap_horizon_exp/parameters-bundle.css +0 -1
  546. package/src/themes/sap_horizon_hcb/MonthPicker-parameters.css +0 -7
  547. package/src/themes/sap_horizon_hcb/YearPicker-parameters.css +0 -7
  548. package/src/themes/sap_horizon_hcb/parameters-bundle.css +0 -1
  549. package/src/themes/sap_horizon_hcb_exp/parameters-bundle.css +0 -1
  550. package/src/themes/sap_horizon_hcw/MonthPicker-parameters.css +0 -7
  551. package/src/themes/sap_horizon_hcw/YearPicker-parameters.css +0 -7
  552. package/src/themes/sap_horizon_hcw/parameters-bundle.css +0 -1
  553. package/src/themes/sap_horizon_hcw_exp/parameters-bundle.css +0 -1
  554. package/src/themes/base/BrowserScrollbar-parameters.css +0 -4
@@ -0,0 +1,429 @@
1
+ import { html } from "lit";
2
+ import "../../src/Button.js";
3
+ import "../../src/Menu.js";
4
+ import "../../src/MenuItem.js";
5
+ import type MenuItem from "../../src/MenuItem.js";
6
+
7
+ describe("Menu interaction", () => {
8
+ it("Menu opens after button click", () => {
9
+ cy.mount(html`<ui5-button id="btnOpen">Open Menu</ui5-button>
10
+ <ui5-menu id="menu" opener="btnOpen">
11
+ <ui5-menu-item text="New File"></ui5-menu-item>
12
+ </ui5-menu>`);
13
+
14
+ cy.get("[ui5-menu]")
15
+ .ui5MenuOpen({ opener: "btnOpen" });
16
+ });
17
+
18
+ it("Menu opens after button click", () => {
19
+ cy.mount(html`<ui5-button id="btnOpen">Open Menu</ui5-button>
20
+ <ui5-menu>
21
+ <ui5-menu-item text="New File"></ui5-menu-item>
22
+ </ui5-menu>`);
23
+
24
+ cy.get("[ui5-menu]")
25
+ .ui5MenuOpen({ opener: "btnOpen" });
26
+ });
27
+
28
+ it("Menu icons appearance", () => {
29
+ cy.mount(html`<ui5-button id="btnOpen">Open Menu</ui5-button>
30
+ <ui5-menu open opener="btnOpen">
31
+ <ui5-menu-item text="Item 1.0" icon="open-folder">
32
+ <ui5-menu-item text="1.1"></ui5-menu-item>
33
+ </ui5-menu-item>
34
+ <ui5-menu-item text="Item 2.0"></ui5-menu-item>
35
+ </ui5-menu>`);
36
+
37
+ cy.get("[ui5-menu] > [ui5-menu-item]")
38
+ .as("items");
39
+
40
+ cy.get("@items")
41
+ .should("have.length", 2);
42
+
43
+ cy.get("@items")
44
+ .eq(0)
45
+ .shadow()
46
+ .find("[ui5-icon].ui5-menu-item-icon-end")
47
+ .should("exist");
48
+
49
+ cy.get("@items")
50
+ .eq(1)
51
+ .shadow()
52
+ .find(".ui5-menu-item-dummy-icon")
53
+ .should("exist");
54
+ });
55
+
56
+ it("Restore focus to previous element after close", () => {
57
+ cy.mount(html`<ui5-button id="btnOpen">Open Menu</ui5-button>
58
+ <ui5-menu open opener="btnOpen">
59
+ <ui5-menu-item text="Item 1.0" icon="open-folder">
60
+ <ui5-menu-item text="1.1"></ui5-menu-item>
61
+ </ui5-menu-item>
62
+ </ui5-menu>`);
63
+
64
+ cy.get("[ui5-menu]")
65
+ .ui5MenuOpened();
66
+
67
+ cy.get("[ui5-menu-item][text='Item 1.0']")
68
+ .as("item")
69
+ .ui5MenuItemClick();
70
+
71
+ cy.get("@item")
72
+ .shadow()
73
+ .find("[ui5-responsive-popover]")
74
+ .should("have.attr", "open");
75
+ });
76
+
77
+ it("Enable navigaion over disabled items", () => {
78
+ cy.mount(html`<ui5-button id="btnOpen">Open Menu</ui5-button>
79
+ <ui5-menu id="menu" opener="btnOpen" open>
80
+ <ui5-menu-item text="Item 1"></ui5-menu-item>
81
+ <ui5-menu-item text="Item 2" disabled></ui5-menu-item>
82
+ </ui5-menu>`);
83
+
84
+ cy.get("[ui5-menu]")
85
+ .ui5MenuOpened();
86
+
87
+ cy.get("[ui5-menu] > [ui5-menu-item]")
88
+ .as("items");
89
+
90
+ cy.get("@items")
91
+ .eq(0)
92
+ .should("be.focused");
93
+
94
+ cy.get("@items")
95
+ .eq(1)
96
+ .ui5MenuItemClick()
97
+ .should("be.focused")
98
+ .and("have.attr", "disabled");
99
+ });
100
+
101
+ it("Add endContent to a menu item", () => {
102
+ cy.mount(html`<ui5-button id="btnOpen">Open Menu</ui5-button>
103
+ <ui5-menu id="menu" opener="btnOpen" open>
104
+ <ui5-menu-item text="Item 1">
105
+ <ui5-button slot="endContent">endContent</ui5-button>
106
+ </ui5-menu-item>
107
+ </ui5-menu>`);
108
+
109
+ cy.get("[ui5-menu]")
110
+ .as("menu")
111
+ .ui5MenuOpened();
112
+
113
+ cy.get("@menu")
114
+ .find("[ui5-button]")
115
+ .then($button => {
116
+ $button.get(0).addEventListener("click", cy.stub().as("clicked"));
117
+ });
118
+
119
+ cy.get("@menu")
120
+ .find("[ui5-button]")
121
+ .realClick();
122
+
123
+ cy.get("@menu")
124
+ .ui5MenuOpened();
125
+
126
+ cy.get("@clicked")
127
+ .should("have.been.calledOnce");
128
+ });
129
+
130
+ it("Menu and Menu items busy indication - with items", () => {
131
+ cy.mount(html`<ui5-button id="btnOpen">Open Menu</ui5-button>
132
+ <ui5-menu id="menu" opener="btnOpen" open>
133
+ <ui5-menu-item text="Item 1" loading-delay="500" loading>
134
+ <ui5-menu-item text="Item 1.1"></ui5-menu-item>
135
+ </ui5-menu-item>
136
+ </ui5-menu>`);
137
+
138
+ cy.get("[ui5-menu]")
139
+ .ui5MenuOpened();
140
+
141
+ cy.get("[ui5-menu] > [ui5-menu-item]")
142
+ .shadow()
143
+ .find("[ui5-list]")
144
+ .should("have.attr", "loading-delay", "500")
145
+ .and("have.attr", "loading");
146
+ });
147
+
148
+ it("Menu and Menu items busy indication - without items", () => {
149
+ cy.mount(html`<ui5-button id="btnOpen">Open Menu</ui5-button>
150
+ <ui5-menu id="menu" opener="btnOpen" open>
151
+ <ui5-menu-item text="Item 1" loading-delay="500" loading></ui5-menu-item>
152
+ </ui5-menu>`);
153
+
154
+ cy.get("[ui5-menu] > [ui5-menu-item]")
155
+ .shadow()
156
+ .find("[ui5-busy-indicator]")
157
+ .should("have.attr", "delay", "500")
158
+ .and("have.attr", "active");
159
+ });
160
+
161
+ it("Restore focus on close", () => {
162
+ cy.mount(html`<ui5-button id="btnOpen">Open Menu</ui5-button>
163
+ <ui5-menu id="menu">
164
+ <ui5-menu-item text="Item 1"></ui5-menu-item>
165
+ </ui5-menu>`);
166
+
167
+ cy.get("#btnOpen")
168
+ .as("button")
169
+ .realClick();
170
+
171
+ cy.get("@button")
172
+ .should("be.focused");
173
+
174
+ cy.get("[ui5-menu]")
175
+ .as("menu")
176
+ .ui5MenuOpen({
177
+ opener: "btnOpen",
178
+ });
179
+
180
+ cy.get("[ui5-menu]")
181
+ .ui5MenuOpened();
182
+
183
+ cy.get("[ui5-menu-item]")
184
+ .ui5MenuItemPress("Space");
185
+
186
+ cy.get("@button")
187
+ .should("be.focused");
188
+ });
189
+
190
+ describe("Event firing", () => {
191
+ it("Event firing - 'ui5-item-click' after 'click' on menu item", () => {
192
+ cy.mount(html`<ui5-button id="btnOpen">Open Menu</ui5-button>
193
+ <ui5-menu open opener="btnOpen">
194
+ <ui5-menu-item text="Item 1.0"></ui5-menu-item>
195
+ </ui5-menu>`);
196
+
197
+ cy.get("[ui5-menu]")
198
+ .then($item => {
199
+ $item.get(0).addEventListener("ui5-item-click", cy.stub().as("clicked"));
200
+ });
201
+
202
+ cy.get("[ui5-menu]")
203
+ .ui5MenuOpened();
204
+
205
+ cy.get("[ui5-menu-item]")
206
+ .ui5MenuItemClick();
207
+
208
+ cy.get("@clicked")
209
+ .should("have.been.calledOnce");
210
+ });
211
+
212
+ it("Event firing - 'ui5-item-click' after 'Space' on menu item", () => {
213
+ cy.mount(html`<ui5-button id="btnOpen">Open Menu</ui5-button>
214
+ <ui5-menu open opener="btnOpen">
215
+ <ui5-menu-item text="Item 1.0"></ui5-menu-item>
216
+ </ui5-menu>`);
217
+
218
+ cy.get("[ui5-menu]")
219
+ .then($menu => {
220
+ $menu.get(0).addEventListener("ui5-item-click", cy.stub().as("clicked"));
221
+ });
222
+
223
+ cy.get("[ui5-menu]")
224
+ .ui5MenuOpened();
225
+
226
+ cy.get("[ui5-menu-item]")
227
+ .ui5MenuItemPress("Space");
228
+
229
+ cy.get("@clicked")
230
+ .should("have.been.calledOnce");
231
+ });
232
+
233
+ it("Event firing - 'ui5-item-click' after 'Enter' on menu item", () => {
234
+ cy.mount(html`<ui5-button id="btnOpen">Open Menu</ui5-button>
235
+ <ui5-menu open opener="btnOpen">
236
+ <ui5-menu-item text="Item 1.0"></ui5-menu-item>
237
+ </ui5-menu>`);
238
+
239
+ cy.get("[ui5-menu]")
240
+ .then($item => {
241
+ $item.get(0).addEventListener("ui5-item-click", cy.stub().as("clicked"));
242
+ });
243
+
244
+ cy.get("[ui5-menu]")
245
+ .ui5MenuOpened();
246
+
247
+ cy.get("[ui5-menu-item]")
248
+ .ui5MenuItemPress("Enter");
249
+
250
+ cy.get("@clicked")
251
+ .should("have.been.calledOnce");
252
+ });
253
+
254
+ it("Prevent menu closing on item press", () => {
255
+ cy.mount(html`<ui5-button id="btnOpen">Open Menu</ui5-button>
256
+ <ui5-menu open opener="btnOpen" @ui5-item-click="${(e: CustomEvent) => e.preventDefault()}">
257
+ <ui5-menu-item text="Item 1.0"></ui5-menu-item>
258
+ </ui5-menu>`);
259
+
260
+ cy.get("[ui5-menu]")
261
+ .as("menu")
262
+ .then($item => {
263
+ $item.get(0).addEventListener("ui5-item-click", cy.stub().as("clicked"));
264
+ });
265
+
266
+ cy.get("@menu")
267
+ .ui5MenuOpened();
268
+
269
+ cy.get("[ui5-menu-item]:focus")
270
+ .as("item");
271
+
272
+ cy.get("@item")
273
+ .ui5MenuItemClick();
274
+
275
+ cy.get("@clicked")
276
+ .should("have.been.calledOnce");
277
+
278
+ cy.get("@menu")
279
+ .ui5MenuOpened();
280
+ });
281
+
282
+ it("Events firing on open/close of the menu", () => {
283
+ cy.mount(html`<ui5-button id="btnOpen">Open Menu</ui5-button>
284
+ <ui5-menu id="menu" opener="btnOpen">
285
+ <ui5-menu-item text="New File"></ui5-menu-item>
286
+ </ui5-menu>`);
287
+
288
+ cy.get("[ui5-menu]")
289
+ .then($item => {
290
+ $item.get(0).addEventListener("ui5-before-open", cy.stub().as("beforeOpen"));
291
+ $item.get(0).addEventListener("ui5-open", cy.stub().as("open"));
292
+ $item.get(0).addEventListener("ui5-before-close", cy.stub().as("beforeClose"));
293
+ $item.get(0).addEventListener("ui5-close", cy.stub().as("close"));
294
+ });
295
+
296
+ cy.get("[ui5-menu]")
297
+ .as("menu")
298
+ .ui5MenuOpen();
299
+
300
+ cy.get("@beforeOpen")
301
+ .should("have.been.calledOnce");
302
+
303
+ cy.get("@open")
304
+ .should("have.been.calledOnce");
305
+
306
+ cy.get("@beforeClose")
307
+ .should("have.not.been.calledOnce");
308
+
309
+ cy.get("@close")
310
+ .should("have.not.been.calledOnce");
311
+
312
+ cy.get("@menu")
313
+ .ui5MenuOpened();
314
+
315
+ cy.get("[ui5-menu-item]:focus")
316
+ .ui5MenuItemClick();
317
+
318
+ cy.get("@beforeOpen")
319
+ .should("have.been.calledOnce");
320
+
321
+ cy.get("@open")
322
+ .should("have.been.calledOnce");
323
+
324
+ cy.get("@beforeClose")
325
+ .should("have.been.calledOnce");
326
+
327
+ cy.get("@close")
328
+ .should("have.been.calledOnce");
329
+
330
+ cy.get("@menu")
331
+ .should("not.have.attr", "open");
332
+ });
333
+ });
334
+
335
+ describe("Accessibility", () => {
336
+ it("Menu and Menu items accessibility attributes", () => {
337
+ cy.mount(html`<ui5-button id="btnOpen">Open Menu</ui5-button>
338
+ <ui5-menu open opener="btnOpen">
339
+ <ui5-menu-item text="Item 1.0" accessible-name="test accessible name">
340
+ <ui5-menu-item text="Item 1.1"></ui5-menu-item>
341
+ </ui5-menu-item>
342
+ <ui5-menu-item text="Item 2.0" accessible-name="test accessible name"></ui5-menu-item>
343
+ <ui5-menu-item text="Item 3.0" additional-text="Ctrl+A"></ui5-menu-item>
344
+ </ui5-menu>`);
345
+
346
+ cy.get("[ui5-menu]")
347
+ .as("menu");
348
+
349
+ cy.get("@menu")
350
+ .shadow()
351
+ .find("[ui5-list]")
352
+ .should("have.attr", "accessible-role", "Menu");
353
+
354
+ cy.get("@menu")
355
+ .find("> [ui5-menu-item]")
356
+ .as("items");
357
+
358
+ cy.get("@items")
359
+ .eq(0)
360
+ .should("have.attr", "accessible-name", "test accessible name")
361
+ .shadow()
362
+ .find("li")
363
+ .should("have.attr", "role", "menuitem")
364
+ .and("have.attr", "aria-haspopup", "menu");
365
+
366
+ cy.get("@items")
367
+ .eq(1)
368
+ .should("have.attr", "accessible-name", "test accessible name");
369
+
370
+ cy.get<MenuItem[]>("@items")
371
+ .eq<MenuItem>(2)
372
+ .then($el => {
373
+ $el.get(0).accessibilityAttributes = {
374
+ ariaKeyShortcuts: "Ctrl+A",
375
+ role: "alertdialog",
376
+ };
377
+ });
378
+
379
+ cy.get("@items")
380
+ .eq(2)
381
+ .shadow()
382
+ .find("li")
383
+ .invoke("attr", "aria-keyshortcuts")
384
+ .should("be.equal", "Ctrl+A");
385
+
386
+ cy.get("@items")
387
+ .eq(2)
388
+ .shadow()
389
+ .find("li")
390
+ .invoke("attr", "role")
391
+ .should("be.equal", "alertdialog");
392
+
393
+ cy.get("@items")
394
+ .eq(2)
395
+ .shadow()
396
+ .find("li .ui5-li-additional-text")
397
+ .invoke("attr", "aria-hidden")
398
+ .should("be.equal", "true");
399
+ });
400
+
401
+ it("Menu popover has an accessible name", () => {
402
+ cy.mount(html`<ui5-button id="btnOpen">Open Menu</ui5-button>
403
+ <ui5-menu open opener="btnOpen">
404
+ <ui5-menu-item text="Item 1.0" icon="open-folder">
405
+ <ui5-menu-item text="1.1"></ui5-menu-item>
406
+ </ui5-menu-item>
407
+ </ui5-menu>`);
408
+
409
+ cy.get("[ui5-menu]")
410
+ .ui5MenuOpened();
411
+
412
+ cy.get("[ui5-menu]")
413
+ .shadow()
414
+ .find("[ui5-responsive-popover]")
415
+ .invoke("attr", "accessible-name")
416
+ .should("be.equal", "Select an option from the menu");
417
+
418
+ cy.get("[ui5-menu-item][text='Item 1.0']")
419
+ .as("item")
420
+ .ui5MenuItemClick();
421
+
422
+ cy.get("@item")
423
+ .shadow()
424
+ .find("[ui5-responsive-popover]")
425
+ .invoke("attr", "accessible-name")
426
+ .should("be.equal", "Select an option from the menu");
427
+ });
428
+ });
429
+ });
@@ -0,0 +1,93 @@
1
+ import { html } from "lit";
2
+ import "../../src/ResponsivePopover.js";
3
+ import "../../src/Button.js";
4
+ import "../../src/Input.js";
5
+
6
+ describe("ResponsivePopover mobile general interaction", () => {
7
+ before(() => {
8
+ cy.ui5SimulateDevice();
9
+ });
10
+
11
+ it("tests opening a popover from a responsive popover", () => {
12
+ cy.mount(html`<ui5-button id="btnOpen">Open me</ui5-button>
13
+ <ui5-responsive-popover open opener="btnOpen"></ui5-responsive-popover>`);
14
+
15
+ cy.get("[ui5-responsive-popover]")
16
+ .shadow()
17
+ .find("[ui5-dialog]")
18
+ .should("be.visible");
19
+ });
20
+ });
21
+
22
+ describe("Accessibility", () => {
23
+ beforeEach(() => {
24
+ cy.ui5SimulateDevice();
25
+ });
26
+
27
+ it("tests accessible-role - Default", () => {
28
+ cy.mount(html`<ui5-button id="btnOpen">Open me</ui5-button>
29
+ <ui5-responsive-popover open opener="btnOpen"></ui5-responsive-popover>`);
30
+
31
+ cy.get("[ui5-responsive-popover]")
32
+ .shadow()
33
+ .find("[ui5-dialog]")
34
+ .shadow()
35
+ .find(".ui5-popup-root")
36
+ .should("have.attr", "role", "dialog");
37
+
38
+ cy.get("[ui5-responsive-popover]")
39
+ .shadow()
40
+ .find("[ui5-dialog]")
41
+ .shadow()
42
+ .find(".ui5-popup-root")
43
+ .should("have.attr", "aria-modal", "true");
44
+ });
45
+
46
+ it("tests accessible-role - AlertDialog", () => {
47
+ cy.mount(html`<ui5-button id="btnOpen">Open me</ui5-button>
48
+ <ui5-responsive-popover open opener="btnOpen" accessible-role="AlertDialog"></ui5-responsive-popover>`);
49
+
50
+ cy.get("[ui5-responsive-popover]")
51
+ .shadow()
52
+ .find("[ui5-dialog]")
53
+ .shadow()
54
+ .find(".ui5-popup-root")
55
+ .should("have.attr", "role", "alertdialog");
56
+
57
+ cy.get("[ui5-responsive-popover]")
58
+ .shadow()
59
+ .find("[ui5-dialog]")
60
+ .shadow()
61
+ .find(".ui5-popup-root")
62
+ .should("have.attr", "aria-modal", "true");
63
+ });
64
+
65
+ it("tests accessible-role - None", () => {
66
+ cy.mount(html`<ui5-button id="btnOpen">Open me</ui5-button>
67
+ <ui5-responsive-popover open opener="btnOpen" accessible-role="None"></ui5-responsive-popover>`);
68
+
69
+ cy.get("[ui5-responsive-popover]")
70
+ .shadow()
71
+ .find("[ui5-dialog]")
72
+ .shadow()
73
+ .find(".ui5-popup-root")
74
+ .should("not.have.attr", "role", "alertdialog");
75
+
76
+ cy.get("[ui5-responsive-popover]")
77
+ .shadow()
78
+ .find("[ui5-dialog]")
79
+ .shadow()
80
+ .find(".ui5-popup-root")
81
+ .should("not.have.attr", "aria-modal", "true");
82
+ });
83
+
84
+ it("tests initial focus", () => {
85
+ cy.mount(html`<ui5-button id="btnOpen">Open me</ui5-button>
86
+ <ui5-responsive-popover open opener="btnOpen" initial-focus="emailInput">
87
+ <ui5-input id="emailInput"></ui5-input>
88
+ </ui5-responsive-popover>`);
89
+
90
+ cy.get("#emailInput")
91
+ .should("be.focused");
92
+ });
93
+ });
@@ -0,0 +1,39 @@
1
+ import { html } from "lit";
2
+ import "../../src/Select.js";
3
+ import "../../src/Option.js";
4
+ import "../../src/OptionCustom.js";
5
+
6
+ describe("Select - Accessibility", () => {
7
+ it("tests options tooltip is set displayed", () => {
8
+ const EXPECTED_TOOLTIP = "Tooltip";
9
+ const EXPECTED_ROLE = "option";
10
+ cy.mount(html`
11
+ <ui5-select>
12
+ <ui5-option value="1" tooltip="${EXPECTED_TOOLTIP}">Option 1</ui5-option>
13
+ <ui5-option-custom value="2" tooltip="${EXPECTED_TOOLTIP}">Option 2</ui5-option-custom>
14
+ </ui5-select>
15
+ `);
16
+
17
+ // Check if the role is set to option
18
+ cy
19
+ .get("[ui5-option]")
20
+ .shadow()
21
+ .find("li.ui5-li-root")
22
+ .should("have.attr", "role", EXPECTED_ROLE)
23
+ .get("[ui5-option-custom]")
24
+ .shadow()
25
+ .find("li.ui5-li-root")
26
+ .should("have.attr", "role", EXPECTED_ROLE);
27
+
28
+ // Check if the tooltip is set
29
+ cy
30
+ .get("[ui5-option][tooltip]")
31
+ .shadow()
32
+ .find("li.ui5-li-root")
33
+ .should("have.attr", "title", EXPECTED_TOOLTIP)
34
+ .get("[ui5-option-custom][tooltip]")
35
+ .shadow()
36
+ .find("li.ui5-li-root")
37
+ .should("have.attr", "title", EXPECTED_TOOLTIP);
38
+ });
39
+ });
@@ -0,0 +1,44 @@
1
+ import { html } from "lit";
2
+ import "../../src/Table.js";
3
+ import "../../src/TableHeaderRow.js";
4
+ import "../../src/TableCell.js";
5
+ import "../../src/TableRow.js";
6
+
7
+ describe("Table - loading", () => {
8
+ it("tests busy indicator is displayed", () => {
9
+ cy.mount(html`
10
+ <input id="before">
11
+ <ui5-table loading loading-delay="0">
12
+ <ui5-table-header-row slot="headerRow">
13
+ <ui5-table-header-cell ><span>ColumnA</span></ui5-table-header-cell>
14
+ </ui5-table-header-row>
15
+ <ui5-table-row>
16
+ <ui5-table-cell><ui5-label>Cell A</ui5-label></ui5-table-cell>
17
+ </ui5-table-row>
18
+ </ui5-table>
19
+ <input id="after">`);
20
+
21
+ cy.get("[ui5-table]")
22
+ .shadow()
23
+ .find("#loading")
24
+ .shadow()
25
+ .find(".ui5-busy-indicator-busy-area")
26
+ .should("exist");
27
+
28
+ cy.get("#before")
29
+ .realClick();
30
+
31
+ cy.get("#before")
32
+ .should("be.focused");
33
+
34
+ cy.realPress("Tab");
35
+
36
+ cy.focused()
37
+ .should("have.class", "ui5-busy-indicator-busy-area");
38
+
39
+ cy.realPress("Tab");
40
+
41
+ cy.get("#after")
42
+ .should("be.focused");
43
+ });
44
+ });