@ui5/webcomponents 2.9.0-rc.1 → 2.9.0-rc.2

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 (574) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/cypress/specs/Breadcrumbs.mobile.cy.tsx +53 -0
  3. package/cypress/specs/Button.cy.tsx +9 -0
  4. package/cypress/specs/ColorPicker.cy.tsx +232 -23
  5. package/cypress/specs/DateControlsWithTimezone.cy.tsx +2 -2
  6. package/cypress/specs/DateTimePicker.cy.tsx +445 -0
  7. package/cypress/specs/DayPicker.cy.tsx +81 -0
  8. package/cypress/specs/Popover.cy.tsx +53 -0
  9. package/cypress/specs/Tree.cy.tsx +18 -0
  10. package/cypress/support/commands/ColorPicker.commands.ts +14 -0
  11. package/cypress/support/commands/DateTimePicker.commands.ts +60 -0
  12. package/cypress/support/commands.ts +2 -0
  13. package/dist/.tsbuildinfo +1 -1
  14. package/dist/Breadcrumbs.d.ts +5 -0
  15. package/dist/Breadcrumbs.js +9 -0
  16. package/dist/Breadcrumbs.js.map +1 -1
  17. package/dist/BreadcrumbsPopoverTemplate.js +5 -1
  18. package/dist/BreadcrumbsPopoverTemplate.js.map +1 -1
  19. package/dist/Button.d.ts +1 -1
  20. package/dist/Input.d.ts +8 -0
  21. package/dist/Input.js +4 -1
  22. package/dist/Input.js.map +1 -1
  23. package/dist/InputTemplate.js +2 -2
  24. package/dist/InputTemplate.js.map +1 -1
  25. package/dist/MultiComboBox.d.ts +0 -6
  26. package/dist/MultiComboBox.js +0 -8
  27. package/dist/MultiComboBox.js.map +1 -1
  28. package/dist/Popup.js +1 -1
  29. package/dist/Popup.js.map +1 -1
  30. package/dist/PopupTemplate.d.ts +1 -1
  31. package/dist/Select.d.ts +8 -3
  32. package/dist/Select.js +4 -2
  33. package/dist/Select.js.map +1 -1
  34. package/dist/TabContainer.d.ts +0 -22
  35. package/dist/TabContainer.js +0 -24
  36. package/dist/TabContainer.js.map +1 -1
  37. package/dist/Table.d.ts +1 -1
  38. package/dist/Table.js.map +1 -1
  39. package/dist/TreeList.js +3 -1
  40. package/dist/TreeList.js.map +1 -1
  41. package/dist/bundle.esm.d.ts +1 -1
  42. package/dist/css/themes/Avatar.css +1 -1
  43. package/dist/css/themes/AvatarGroup.css +1 -1
  44. package/dist/css/themes/Bar.css +1 -1
  45. package/dist/css/themes/Breadcrumbs.css +1 -1
  46. package/dist/css/themes/BusyIndicator.css +1 -1
  47. package/dist/css/themes/Button.css +1 -1
  48. package/dist/css/themes/ButtonBadge.css +1 -1
  49. package/dist/css/themes/Calendar.css +1 -1
  50. package/dist/css/themes/CalendarHeader.css +1 -1
  51. package/dist/css/themes/CalendarLegend.css +1 -1
  52. package/dist/css/themes/CalendarLegendItem.css +1 -1
  53. package/dist/css/themes/Card.css +1 -1
  54. package/dist/css/themes/CardHeader.css +1 -1
  55. package/dist/css/themes/Carousel.css +1 -1
  56. package/dist/css/themes/CheckBox.css +1 -1
  57. package/dist/css/themes/ColorPalette.css +1 -1
  58. package/dist/css/themes/ColorPaletteItem.css +1 -1
  59. package/dist/css/themes/ColorPalettePopover.css +1 -1
  60. package/dist/css/themes/ColorPicker.css +1 -1
  61. package/dist/css/themes/ComboBox.css +1 -1
  62. package/dist/css/themes/ComboBoxItem.css +1 -1
  63. package/dist/css/themes/DatePicker.css +1 -1
  64. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  65. package/dist/css/themes/DayPicker.css +1 -1
  66. package/dist/css/themes/Dialog.css +1 -1
  67. package/dist/css/themes/FileUploader.css +1 -1
  68. package/dist/css/themes/Form.css +1 -1
  69. package/dist/css/themes/FormItem.css +1 -1
  70. package/dist/css/themes/FormItemSpan.css +1 -1
  71. package/dist/css/themes/GrowingButton.css +1 -1
  72. package/dist/css/themes/Icon.css +1 -1
  73. package/dist/css/themes/Input.css +1 -1
  74. package/dist/css/themes/InputIcon.css +1 -1
  75. package/dist/css/themes/InputSharedStyles.css +1 -1
  76. package/dist/css/themes/Link.css +1 -1
  77. package/dist/css/themes/List.css +1 -1
  78. package/dist/css/themes/ListItem.css +1 -1
  79. package/dist/css/themes/ListItemBase.css +1 -1
  80. package/dist/css/themes/ListItemCustom.css +1 -1
  81. package/dist/css/themes/ListItemGroup.css +1 -1
  82. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  83. package/dist/css/themes/ListItemIcon.css +1 -1
  84. package/dist/css/themes/Menu.css +1 -1
  85. package/dist/css/themes/MenuItem.css +1 -1
  86. package/dist/css/themes/MessageStrip.css +1 -1
  87. package/dist/css/themes/MonthPicker.css +1 -1
  88. package/dist/css/themes/MultiComboBox.css +1 -1
  89. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  90. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  91. package/dist/css/themes/MultiInput.css +1 -1
  92. package/dist/css/themes/OptionBase.css +1 -1
  93. package/dist/css/themes/Panel.css +1 -1
  94. package/dist/css/themes/Popover.css +1 -1
  95. package/dist/css/themes/PopupsCommon.css +1 -1
  96. package/dist/css/themes/ProgressIndicator.css +1 -1
  97. package/dist/css/themes/RadioButton.css +1 -1
  98. package/dist/css/themes/RangeSlider.css +1 -1
  99. package/dist/css/themes/RatingIndicator.css +1 -1
  100. package/dist/css/themes/ResponsivePopover.css +1 -1
  101. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  102. package/dist/css/themes/SegmentedButton.css +1 -1
  103. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  104. package/dist/css/themes/Select.css +1 -1
  105. package/dist/css/themes/SliderBase.css +1 -1
  106. package/dist/css/themes/SplitButton.css +1 -1
  107. package/dist/css/themes/StepInput.css +1 -1
  108. package/dist/css/themes/SuggestionItem.css +1 -1
  109. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  110. package/dist/css/themes/Switch.css +1 -1
  111. package/dist/css/themes/TabContainer.css +1 -1
  112. package/dist/css/themes/TabInOverflow.css +1 -1
  113. package/dist/css/themes/TabInStrip.css +1 -1
  114. package/dist/css/themes/TabSemanticIcon.css +1 -1
  115. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  116. package/dist/css/themes/Table.css +1 -1
  117. package/dist/css/themes/TableCellBase.css +1 -1
  118. package/dist/css/themes/TableHeaderRow.css +1 -1
  119. package/dist/css/themes/TableRow.css +1 -1
  120. package/dist/css/themes/TableRowActionBase.css +1 -1
  121. package/dist/css/themes/TableRowBase.css +1 -1
  122. package/dist/css/themes/Tag.css +1 -1
  123. package/dist/css/themes/Text.css +1 -1
  124. package/dist/css/themes/TextArea.css +1 -1
  125. package/dist/css/themes/TimePicker.css +1 -1
  126. package/dist/css/themes/Toast.css +1 -1
  127. package/dist/css/themes/ToggleButton.css +1 -1
  128. package/dist/css/themes/Token.css +1 -1
  129. package/dist/css/themes/Tokenizer.css +1 -1
  130. package/dist/css/themes/TokenizerPopover.css +1 -1
  131. package/dist/css/themes/Toolbar.css +1 -1
  132. package/dist/css/themes/ToolbarPopover.css +1 -1
  133. package/dist/css/themes/TreeItem.css +1 -1
  134. package/dist/css/themes/ValueStateMessage.css +1 -1
  135. package/dist/css/themes/YearPicker.css +1 -1
  136. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  137. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  138. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  139. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  140. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  141. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  142. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  143. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  144. package/dist/custom-elements-internal.json +16 -40
  145. package/dist/custom-elements.json +16 -40
  146. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  147. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  148. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  149. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  150. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  151. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  152. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  153. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  154. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  155. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  156. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  157. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  158. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  159. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  160. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  161. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  162. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  163. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  164. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  165. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  166. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  167. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  168. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  169. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  170. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  171. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  172. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  173. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  174. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  175. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  176. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  177. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  178. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  179. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  180. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  181. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  182. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  183. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  184. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  185. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  186. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  187. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  188. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  189. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  190. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  191. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  192. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  193. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  194. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  195. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  196. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  197. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  198. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  199. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  200. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  201. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  202. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  203. package/dist/generated/themes/Avatar.css.js +1 -1
  204. package/dist/generated/themes/Avatar.css.js.map +1 -1
  205. package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
  206. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  207. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  208. package/dist/generated/themes/Bar.css.d.ts +1 -1
  209. package/dist/generated/themes/Bar.css.js +1 -1
  210. package/dist/generated/themes/Bar.css.js.map +1 -1
  211. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  212. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  213. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  214. package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
  215. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  216. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  217. package/dist/generated/themes/Button.css.d.ts +1 -1
  218. package/dist/generated/themes/Button.css.js +1 -1
  219. package/dist/generated/themes/Button.css.js.map +1 -1
  220. package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
  221. package/dist/generated/themes/ButtonBadge.css.js +1 -1
  222. package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
  223. package/dist/generated/themes/Calendar.css.d.ts +1 -1
  224. package/dist/generated/themes/Calendar.css.js +1 -1
  225. package/dist/generated/themes/Calendar.css.js.map +1 -1
  226. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  227. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  228. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  229. package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
  230. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  231. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  232. package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
  233. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  234. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  235. package/dist/generated/themes/Card.css.d.ts +1 -1
  236. package/dist/generated/themes/Card.css.js +1 -1
  237. package/dist/generated/themes/Card.css.js.map +1 -1
  238. package/dist/generated/themes/CardHeader.css.d.ts +1 -1
  239. package/dist/generated/themes/CardHeader.css.js +1 -1
  240. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  241. package/dist/generated/themes/Carousel.css.d.ts +1 -1
  242. package/dist/generated/themes/Carousel.css.js +1 -1
  243. package/dist/generated/themes/Carousel.css.js.map +1 -1
  244. package/dist/generated/themes/CheckBox.css.d.ts +1 -1
  245. package/dist/generated/themes/CheckBox.css.js +1 -1
  246. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  247. package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
  248. package/dist/generated/themes/ColorPalette.css.js +1 -1
  249. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  250. package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
  251. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  252. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  253. package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
  254. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  255. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  256. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  257. package/dist/generated/themes/ColorPicker.css.js +1 -1
  258. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  259. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  260. package/dist/generated/themes/ComboBox.css.js +1 -1
  261. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  262. package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
  263. package/dist/generated/themes/ComboBoxItem.css.js +1 -1
  264. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
  265. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  266. package/dist/generated/themes/DatePicker.css.js +1 -1
  267. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  268. package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
  269. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  270. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  271. package/dist/generated/themes/DayPicker.css.d.ts +1 -1
  272. package/dist/generated/themes/DayPicker.css.js +1 -1
  273. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  274. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  275. package/dist/generated/themes/Dialog.css.js +1 -1
  276. package/dist/generated/themes/Dialog.css.js.map +1 -1
  277. package/dist/generated/themes/FileUploader.css.d.ts +1 -1
  278. package/dist/generated/themes/FileUploader.css.js +1 -1
  279. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  280. package/dist/generated/themes/Form.css.d.ts +1 -1
  281. package/dist/generated/themes/Form.css.js +1 -1
  282. package/dist/generated/themes/Form.css.js.map +1 -1
  283. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  284. package/dist/generated/themes/FormItem.css.js +1 -1
  285. package/dist/generated/themes/FormItem.css.js.map +1 -1
  286. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  287. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  288. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  289. package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
  290. package/dist/generated/themes/GrowingButton.css.js +1 -1
  291. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  292. package/dist/generated/themes/Icon.css.d.ts +1 -1
  293. package/dist/generated/themes/Icon.css.js +1 -1
  294. package/dist/generated/themes/Icon.css.js.map +1 -1
  295. package/dist/generated/themes/Input.css.d.ts +1 -1
  296. package/dist/generated/themes/Input.css.js +1 -1
  297. package/dist/generated/themes/Input.css.js.map +1 -1
  298. package/dist/generated/themes/InputIcon.css.d.ts +1 -1
  299. package/dist/generated/themes/InputIcon.css.js +1 -1
  300. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  301. package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
  302. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  303. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  304. package/dist/generated/themes/Link.css.d.ts +1 -1
  305. package/dist/generated/themes/Link.css.js +1 -1
  306. package/dist/generated/themes/Link.css.js.map +1 -1
  307. package/dist/generated/themes/List.css.d.ts +1 -1
  308. package/dist/generated/themes/List.css.js +1 -1
  309. package/dist/generated/themes/List.css.js.map +1 -1
  310. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  311. package/dist/generated/themes/ListItem.css.js +1 -1
  312. package/dist/generated/themes/ListItem.css.js.map +1 -1
  313. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  314. package/dist/generated/themes/ListItemBase.css.js +1 -1
  315. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  316. package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
  317. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  318. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  319. package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
  320. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  321. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  322. package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
  323. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  324. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  325. package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
  326. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  327. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  328. package/dist/generated/themes/Menu.css.d.ts +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.d.ts +1 -1
  332. package/dist/generated/themes/MenuItem.css.js +1 -1
  333. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  334. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  335. package/dist/generated/themes/MessageStrip.css.js +1 -1
  336. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  337. package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
  338. package/dist/generated/themes/MonthPicker.css.js +1 -1
  339. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  340. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  341. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  342. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  343. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
  344. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  345. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  346. package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
  347. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  348. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  349. package/dist/generated/themes/MultiInput.css.d.ts +1 -1
  350. package/dist/generated/themes/MultiInput.css.js +1 -1
  351. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  352. package/dist/generated/themes/OptionBase.css.d.ts +1 -1
  353. package/dist/generated/themes/OptionBase.css.js +1 -1
  354. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  355. package/dist/generated/themes/Panel.css.d.ts +1 -1
  356. package/dist/generated/themes/Panel.css.js +1 -1
  357. package/dist/generated/themes/Panel.css.js.map +1 -1
  358. package/dist/generated/themes/Popover.css.d.ts +1 -1
  359. package/dist/generated/themes/Popover.css.js +1 -1
  360. package/dist/generated/themes/Popover.css.js.map +1 -1
  361. package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
  362. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  363. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  364. package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
  365. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  366. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  367. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  368. package/dist/generated/themes/RadioButton.css.js +1 -1
  369. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  370. package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
  371. package/dist/generated/themes/RangeSlider.css.js +1 -1
  372. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  373. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  374. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  375. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  376. package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
  377. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  378. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  379. package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
  380. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  381. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  382. package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
  383. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  384. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  385. package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
  386. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  387. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  388. package/dist/generated/themes/Select.css.d.ts +1 -1
  389. package/dist/generated/themes/Select.css.js +1 -1
  390. package/dist/generated/themes/Select.css.js.map +1 -1
  391. package/dist/generated/themes/SliderBase.css.d.ts +1 -1
  392. package/dist/generated/themes/SliderBase.css.js +1 -1
  393. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  394. package/dist/generated/themes/SplitButton.css.d.ts +1 -1
  395. package/dist/generated/themes/SplitButton.css.js +1 -1
  396. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  397. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  398. package/dist/generated/themes/StepInput.css.js +1 -1
  399. package/dist/generated/themes/StepInput.css.js.map +1 -1
  400. package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
  401. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  402. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  403. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
  404. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  405. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  406. package/dist/generated/themes/Switch.css.d.ts +1 -1
  407. package/dist/generated/themes/Switch.css.js +1 -1
  408. package/dist/generated/themes/Switch.css.js.map +1 -1
  409. package/dist/generated/themes/TabContainer.css.d.ts +1 -1
  410. package/dist/generated/themes/TabContainer.css.js +1 -1
  411. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  412. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  413. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  414. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  415. package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
  416. package/dist/generated/themes/TabInStrip.css.js +1 -1
  417. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  418. package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
  419. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  420. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  421. package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
  422. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  423. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  424. package/dist/generated/themes/Table.css.d.ts +1 -1
  425. package/dist/generated/themes/Table.css.js +1 -1
  426. package/dist/generated/themes/Table.css.js.map +1 -1
  427. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  428. package/dist/generated/themes/TableCellBase.css.js +1 -1
  429. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  430. package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
  431. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  432. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  433. package/dist/generated/themes/TableRow.css.d.ts +1 -1
  434. package/dist/generated/themes/TableRow.css.js +1 -1
  435. package/dist/generated/themes/TableRow.css.js.map +1 -1
  436. package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
  437. package/dist/generated/themes/TableRowActionBase.css.js +1 -1
  438. package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
  439. package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
  440. package/dist/generated/themes/TableRowBase.css.js +1 -1
  441. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  442. package/dist/generated/themes/Tag.css.d.ts +1 -1
  443. package/dist/generated/themes/Tag.css.js +1 -1
  444. package/dist/generated/themes/Tag.css.js.map +1 -1
  445. package/dist/generated/themes/Text.css.d.ts +1 -1
  446. package/dist/generated/themes/Text.css.js +1 -1
  447. package/dist/generated/themes/Text.css.js.map +1 -1
  448. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  449. package/dist/generated/themes/TextArea.css.js +1 -1
  450. package/dist/generated/themes/TextArea.css.js.map +1 -1
  451. package/dist/generated/themes/TimePicker.css.d.ts +1 -1
  452. package/dist/generated/themes/TimePicker.css.js +1 -1
  453. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  454. package/dist/generated/themes/Toast.css.d.ts +1 -1
  455. package/dist/generated/themes/Toast.css.js +1 -1
  456. package/dist/generated/themes/Toast.css.js.map +1 -1
  457. package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
  458. package/dist/generated/themes/ToggleButton.css.js +1 -1
  459. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  460. package/dist/generated/themes/Token.css.d.ts +1 -1
  461. package/dist/generated/themes/Token.css.js +1 -1
  462. package/dist/generated/themes/Token.css.js.map +1 -1
  463. package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
  464. package/dist/generated/themes/Tokenizer.css.js +1 -1
  465. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  466. package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
  467. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  468. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  469. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  470. package/dist/generated/themes/Toolbar.css.js +1 -1
  471. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  472. package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
  473. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  474. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  475. package/dist/generated/themes/TreeItem.css.d.ts +1 -1
  476. package/dist/generated/themes/TreeItem.css.js +1 -1
  477. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  478. package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
  479. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  480. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  481. package/dist/generated/themes/YearPicker.css.d.ts +1 -1
  482. package/dist/generated/themes/YearPicker.css.js +1 -1
  483. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  484. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  485. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  486. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  487. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  488. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  489. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  490. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  491. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  492. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  493. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  494. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  495. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  496. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  497. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  498. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  499. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  500. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  501. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  502. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  503. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  504. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  505. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  506. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  507. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  508. package/dist/types/InputKeyHint.d.ts +16 -0
  509. package/dist/types/InputKeyHint.js +18 -0
  510. package/dist/types/InputKeyHint.js.map +1 -0
  511. package/dist/vscode.html-custom-data.json +1 -11
  512. package/dist/web-types.json +2 -22
  513. package/package.json +9 -9
  514. package/src/BreadcrumbsPopoverTemplate.tsx +6 -1
  515. package/src/InputTemplate.tsx +2 -0
  516. package/src/i18n/messagebundle_ar.properties +2 -0
  517. package/src/i18n/messagebundle_bg.properties +2 -0
  518. package/src/i18n/messagebundle_ca.properties +2 -0
  519. package/src/i18n/messagebundle_cnr.properties +2 -0
  520. package/src/i18n/messagebundle_cs.properties +2 -0
  521. package/src/i18n/messagebundle_cy.properties +2 -0
  522. package/src/i18n/messagebundle_da.properties +2 -0
  523. package/src/i18n/messagebundle_de.properties +2 -0
  524. package/src/i18n/messagebundle_el.properties +2 -0
  525. package/src/i18n/messagebundle_en.properties +218 -0
  526. package/src/i18n/messagebundle_en_GB.properties +2 -0
  527. package/src/i18n/messagebundle_en_US_saprigi.properties +2 -0
  528. package/src/i18n/messagebundle_es.properties +2 -0
  529. package/src/i18n/messagebundle_es_MX.properties +2 -0
  530. package/src/i18n/messagebundle_et.properties +2 -0
  531. package/src/i18n/messagebundle_fi.properties +2 -0
  532. package/src/i18n/messagebundle_fr.properties +6 -4
  533. package/src/i18n/messagebundle_fr_CA.properties +2 -0
  534. package/src/i18n/messagebundle_hi.properties +2 -0
  535. package/src/i18n/messagebundle_hr.properties +10 -8
  536. package/src/i18n/messagebundle_hu.properties +2 -0
  537. package/src/i18n/messagebundle_id.properties +2 -0
  538. package/src/i18n/messagebundle_it.properties +2 -0
  539. package/src/i18n/messagebundle_iw.properties +2 -0
  540. package/src/i18n/messagebundle_ja.properties +2 -0
  541. package/src/i18n/messagebundle_kk.properties +2 -0
  542. package/src/i18n/messagebundle_ko.properties +2 -0
  543. package/src/i18n/messagebundle_lt.properties +2 -0
  544. package/src/i18n/messagebundle_lv.properties +13 -11
  545. package/src/i18n/messagebundle_mk.properties +2 -0
  546. package/src/i18n/messagebundle_ms.properties +2 -0
  547. package/src/i18n/messagebundle_nl.properties +2 -0
  548. package/src/i18n/messagebundle_no.properties +2 -0
  549. package/src/i18n/messagebundle_pl.properties +2 -0
  550. package/src/i18n/messagebundle_pt.properties +2 -0
  551. package/src/i18n/messagebundle_pt_PT.properties +2 -0
  552. package/src/i18n/messagebundle_ro.properties +2 -0
  553. package/src/i18n/messagebundle_ru.properties +4 -2
  554. package/src/i18n/messagebundle_sh.properties +2 -0
  555. package/src/i18n/messagebundle_sk.properties +2 -0
  556. package/src/i18n/messagebundle_sl.properties +2 -0
  557. package/src/i18n/messagebundle_sr.properties +2 -0
  558. package/src/i18n/messagebundle_sv.properties +2 -0
  559. package/src/i18n/messagebundle_th.properties +2 -0
  560. package/src/i18n/messagebundle_tr.properties +2 -0
  561. package/src/i18n/messagebundle_uk.properties +2 -0
  562. package/src/i18n/messagebundle_vi.properties +2 -0
  563. package/src/i18n/messagebundle_zh_CN.properties +3 -1
  564. package/src/i18n/messagebundle_zh_TW.properties +2 -0
  565. package/src/themes/Bar.css +0 -14
  566. package/src/themes/Input.css +7 -2
  567. package/src/themes/base/Bar-parameters.css +2 -6
  568. package/src/themes/base/RadioButton-parameters.css +1 -1
  569. package/src/themes/sap_fiori_3_hcb/RadioButton-parameters.css +1 -0
  570. package/src/themes/sap_fiori_3_hcw/RadioButton-parameters.css +1 -0
  571. package/src/themes/sap_horizon/RadioButton-parameters.css +0 -1
  572. package/src/themes/sap_horizon_dark/RadioButton-parameters.css +0 -1
  573. package/src/themes/sap_horizon_hcb/RadioButton-parameters.css +1 -0
  574. package/src/themes/sap_horizon_hcw/RadioButton-parameters.css +1 -0
@@ -0,0 +1,445 @@
1
+ import DateTimePicker from "../../src/DateTimePicker.js";
2
+ import { setAnimationMode } from "@ui5/webcomponents-base/dist/config/AnimationMode.js";
3
+ import AnimationMode from "@ui5/webcomponents-base/dist/types/AnimationMode.js";
4
+
5
+ function DefaultDateTimePicker() {
6
+ return (
7
+ <DateTimePicker id="dt" />
8
+ );
9
+ }
10
+
11
+ function DateTimePickerWithMinutes() {
12
+ return <DateTimePicker
13
+ id="dtMinutes"
14
+ formatPattern="dd/MM/yyyy, hh:mm a"
15
+ value="13/04/2020, 09:16 AM"/>;
16
+ }
17
+
18
+ function DateTimePickerWithSeconds({ initialValue }: { initialValue?: string }) {
19
+ return (
20
+ <DateTimePicker
21
+ id="dtSeconds"
22
+ formatPattern="dd/MM/yyyy, hh:mm:ss a"
23
+ value={initialValue || "13/04/2020, 03:16:16 AM"}
24
+ />
25
+ );
26
+ }
27
+ describe("DateTimePicker general interaction", () => {
28
+ it("tests picker opens/closes programmatically", () => {
29
+ cy.mount(<DefaultDateTimePicker />);
30
+
31
+ cy.ui5DateTimePickerOpen("#dt");
32
+ cy.ui5DateTimePickerIsOpen("#dt").should("equal", true);
33
+ cy.ui5DateTimePickerClose("#dt");
34
+ cy.ui5DateTimePickerIsOpen("#dt").should("equal", false);
35
+ });
36
+
37
+ // Unstable but valid test, needs to be individually observed
38
+ it.skip("tests selection of new date", () => {
39
+ setAnimationMode(AnimationMode.None);
40
+ const PREVIOUS_VALUE = "13/04/2020, 03:16:16 AM";
41
+
42
+ cy.mount(<DateTimePicker id="dtSeconds" formatPattern="dd/MM/yyyy, hh:mm:ss a" value={PREVIOUS_VALUE} />);
43
+ cy.ui5DateTimePickerOpen("#dtSeconds");
44
+
45
+ cy.get("#dtSeconds")
46
+ .shadow()
47
+ .as("DateTimePicker");
48
+
49
+ cy.get("@DateTimePicker")
50
+ .find("ui5-input")
51
+ .should("have.value", PREVIOUS_VALUE);
52
+
53
+ cy.ui5DateTimePickerGetPopover("#dtSeconds").within(() => {
54
+ // Click the currently selected day and then move to the next day.
55
+ cy.get("ui5-calendar")
56
+ .shadow()
57
+ .as("calendar");
58
+
59
+ cy.get("@calendar")
60
+ .find("ui5-daypicker")
61
+ .shadow()
62
+ .as("daypicker")
63
+
64
+ cy.get("@daypicker")
65
+ .find(".ui5-dp-item--selected")
66
+ .realClick()
67
+ .should("be.focused");
68
+
69
+ cy.realPress("ArrowRight");
70
+ cy.realPress("Space");
71
+
72
+ // Confirm the change.
73
+ cy.get("#ok").realClick();
74
+ });
75
+
76
+ // Only the date has changed; the time remains the same.
77
+ cy.get("@DateTimePicker")
78
+ .find("ui5-input")
79
+ .should("be.focused")
80
+ .should("have.attr", "value", "14/04/2020, 03:16:16 AM");
81
+
82
+ cy.ui5DateTimePickerIsOpen("#dtSeconds").should("equal", false);
83
+ setAnimationMode(AnimationMode.Full);
84
+ });
85
+
86
+ it("tests time controls adjustments", () => {
87
+ setAnimationMode(AnimationMode.None);
88
+ const PREVIOUS_VALUE = "13/04/2020, 03:16:16 AM";
89
+
90
+ cy.mount(<DateTimePicker id="dtSeconds" formatPattern="dd/MM/yyyy, hh:mm:ss a" value={PREVIOUS_VALUE} />);
91
+ cy.ui5DateTimePickerOpen("#dtSeconds");
92
+
93
+ cy.get("#dtSeconds")
94
+ .shadow()
95
+ .find("ui5-input")
96
+ .should("have.value", PREVIOUS_VALUE);
97
+
98
+ cy.ui5DateTimePickerGetPopover("#dtSeconds").within(() => {
99
+ // Adjust hours:
100
+ cy.get("ui5-time-selection-clocks")
101
+ .shadow()
102
+ .as("clocks");
103
+
104
+ cy.get("@clocks")
105
+ .find(`ui5-toggle-spin-button[data-ui5-clock="hours"]`)
106
+ .realClick()
107
+ .should("be.focused");
108
+
109
+ cy.realPress("ArrowDown");
110
+ cy.realPress("Space");
111
+
112
+ // Adjust minutes.
113
+ cy.get("@clocks")
114
+ .find(`ui5-toggle-spin-button[data-ui5-clock="minutes"]`)
115
+ .realClick()
116
+ .should("be.focused");
117
+
118
+ cy.realPress("ArrowDown");
119
+ cy.realPress("ArrowDown");
120
+ cy.realPress("Space");
121
+
122
+ // Adjust seconds.
123
+ cy.get("@clocks")
124
+ .find(`ui5-toggle-spin-button[data-ui5-clock="seconds"]`)
125
+ .realClick()
126
+ .should("be.focused");
127
+
128
+ cy.realPress("ArrowUp");
129
+ cy.realPress("ArrowUp");
130
+ cy.realPress("ArrowUp");
131
+ cy.realType("p");
132
+
133
+ // Confirm.
134
+ cy.get("#ok").realClick();
135
+ });
136
+
137
+ // Only the time parts have been updated.
138
+ cy.get("#dtSeconds")
139
+ .shadow()
140
+ .find("ui5-input")
141
+ .should("be.focused")
142
+ .should("have.attr", "value", "13/04/2020, 02:14:19 PM");
143
+
144
+ cy.ui5DateTimePickerIsOpen("#dtSeconds").should("equal", false);
145
+
146
+ setAnimationMode(AnimationMode.Full);
147
+ });
148
+
149
+ // Unstable test, needs investigation
150
+ it.skip("tests selection of new date without changing the time section", () => {
151
+ setAnimationMode(AnimationMode.None);
152
+
153
+ const PREVIOUS_VALUE = "14/04/2020, 02:14:19 PM";
154
+ cy.mount(<DateTimePickerWithSeconds initialValue={PREVIOUS_VALUE} />);
155
+
156
+ cy.get("#dtSeconds")
157
+ .shadow()
158
+ .find("ui5-input")
159
+ .should("have.value", PREVIOUS_VALUE);
160
+
161
+ // Simulate keyboard interactions
162
+ cy.realPress("Tab");
163
+ cy.realPress(["Shift", "Tab"]);
164
+ cy.realPress("Backspace");
165
+ cy.get("#dtSeconds")
166
+ .shadow()
167
+ .find("ui5-input")
168
+ .realClick()
169
+ .should("be.focused");
170
+ cy.realType("wrongtext");
171
+ cy.realPress("Tab");
172
+
173
+ cy.ui5DateTimePickerOpen("#dtSeconds");
174
+
175
+ // Act
176
+ let selectedDate = "";
177
+ cy.ui5DateTimePickerGetPopover("#dtSeconds").within(() => {
178
+ cy.get("ui5-calendar")
179
+ .shadow()
180
+ .as("calendar");
181
+
182
+ cy.get("@calendar")
183
+ .find("ui5-daypicker")
184
+ .shadow()
185
+ .as("daypicker");
186
+
187
+ cy.get("@daypicker")
188
+ .find(".ui5-dp-item--now")
189
+ .should("be.focused")
190
+ .then($el => {
191
+ const timestamp = $el.attr("data-sap-timestamp") || "";
192
+ const date = new Date(parseInt(timestamp) * 1000);
193
+ selectedDate = `${String(date.getDate()).padStart(2, "0")}/${String(date.getMonth() + 1).padStart(2, "0")}/${date.getFullYear()}`;
194
+ })
195
+ .realClick();
196
+
197
+ cy.get("#ok").realClick();
198
+ });
199
+
200
+ cy.get("#dtSeconds")
201
+ .shadow()
202
+ .find("ui5-input")
203
+ .should("be.focused")
204
+ .should("have.attr", "value", selectedDate + ", 02:14:19 PM");
205
+
206
+ setAnimationMode(AnimationMode.Full);
207
+ });
208
+
209
+ it("tests time controls for dtSeconds picker", () => {
210
+ const expectedClocksCount = 3;
211
+ const expectedPeriodCount = 1;
212
+
213
+ cy.mount(<DateTimePickerWithSeconds />);
214
+
215
+ cy.ui5DateTimePickerOpen("#dtSeconds");
216
+
217
+ cy.ui5DateTimePickerTimeSelectionClocksCount("#dtSeconds").then(clocksCount => {
218
+ expect(clocksCount).to.equal(expectedClocksCount,
219
+ "The picker should display 3 clocks for hours, minutes and seconds.");
220
+ });
221
+
222
+ cy.ui5DateTimePickerPeriodSegmentedButtonCount("#dtSeconds").then(periodCount => {
223
+ expect(periodCount).to.equal(expectedPeriodCount,
224
+ "The picker should display 1 period selector.");
225
+ });
226
+
227
+ cy.ui5DateTimePickerClose("#dtSeconds");
228
+ });
229
+
230
+ it("tests time controls for dtMinutes picker", () => {
231
+ const expectedClocksCount = 2;
232
+ const expectedPeriodCount = 1;
233
+
234
+ cy.mount(<DateTimePickerWithMinutes />);
235
+
236
+ cy.ui5DateTimePickerOpen("#dtMinutes");
237
+
238
+ cy.ui5DateTimePickerTimeSelectionClocksCount("#dtMinutes").then(clocksCount => {
239
+ expect(clocksCount).to.equal(expectedClocksCount,
240
+ "The picker should display 2 clocks for hours and minutes.");
241
+ });
242
+
243
+ cy.ui5DateTimePickerPeriodSegmentedButtonCount("#dtMinutes").then(periodCount => {
244
+ expect(periodCount).to.equal(expectedPeriodCount,
245
+ "The picker should display 1 period selector.");
246
+ });
247
+
248
+ cy.ui5DateTimePickerClose("#dtMinutes");
249
+ });
250
+
251
+ it("tests hours clock is active on picker open", () => {
252
+ cy.mount(<DefaultDateTimePicker />);
253
+ cy.ui5DateTimePickerOpen("#dt");
254
+
255
+ cy.ui5DateTimePickerGetPopover("#dt").within(() => {
256
+ cy.get("ui5-time-selection-clocks")
257
+ .shadow()
258
+ .as("clocks");
259
+
260
+ cy.get("@clocks")
261
+ .find(`ui5-time-picker-clock[data-ui5-clock="hours"]`)
262
+ .should("have.attr", "active", "");
263
+ });
264
+
265
+ cy.ui5DateTimePickerClose("#dt");
266
+ cy.ui5DateTimePickerIsOpen("#dt").should("equal", false);
267
+ });
268
+
269
+ // Unstable test, needs investigation
270
+ it.skip("tests selection of 12:34:56 AM", () => {
271
+ setAnimationMode(AnimationMode.None);
272
+
273
+ cy.mount(<DateTimePickerWithSeconds />);
274
+
275
+ cy.ui5DateTimePickerOpen("#dtSeconds");
276
+ cy.ui5DateTimePickerIsOpen("#dtSeconds").should("equal", true);
277
+
278
+ cy.ui5DateTimePickerGetPopover("#dtSeconds")
279
+ .within(() => {
280
+ cy.get("ui5-calendar")
281
+ .shadow()
282
+ .as("calendar");
283
+
284
+ cy.get("@calendar")
285
+ .find("ui5-daypicker")
286
+ .shadow()
287
+ .as("daypicker");
288
+
289
+ cy.get("@daypicker")
290
+ .find(".ui5-dp-item--selected")
291
+ .should("be.focused")
292
+ .realClick();
293
+
294
+ cy.get("ui5-time-selection-clocks")
295
+ .shadow()
296
+ .as("clocks");
297
+
298
+ cy.get("@clocks")
299
+ .find(`ui5-toggle-spin-button[data-ui5-clock="hours"]`)
300
+ .realClick()
301
+ .should("be.focused")
302
+ .realType("1")
303
+ .realType("2");
304
+
305
+ cy.get("@clocks")
306
+ .find(`ui5-toggle-spin-button[data-ui5-clock="minutes"]`)
307
+ .should("be.focused")
308
+ .realType("3")
309
+ .realType("4");
310
+
311
+ cy.get("@clocks")
312
+ .find(`ui5-toggle-spin-button[data-ui5-clock="seconds"]`)
313
+ .should("be.focused")
314
+ .realType("5")
315
+ .realType("6")
316
+ .realType("a");
317
+
318
+ cy.get("#ok").realClick();
319
+ });
320
+
321
+ cy.get("#dtSeconds")
322
+ .shadow()
323
+ .find("ui5-input")
324
+ .should("be.focused")
325
+ .should("have.attr", "value", "13/04/2020, 12:34:56 AM");
326
+
327
+ setAnimationMode(AnimationMode.Full);
328
+ });
329
+
330
+ it("tests change event is prevented on submit when prevent default is called", () => {
331
+ cy.mount(<DefaultDateTimePicker />);
332
+
333
+ // Prevent default behavior of ui5-change event.
334
+ cy.get("#dt").then($el => {
335
+ $el[0].addEventListener("ui5-change", (ev: Event) => {
336
+ ev.preventDefault();
337
+ });
338
+ });
339
+
340
+ cy.ui5DateTimePickerOpen("#dt");
341
+
342
+ cy.ui5DateTimePickerGetPopover("#dt").within(() => {
343
+ // Click the focused day and confirm the selection.
344
+ cy.get("ui5-calendar")
345
+ .shadow()
346
+ .as("calendar");
347
+
348
+ cy.get("@calendar")
349
+ .find("ui5-daypicker")
350
+ .shadow()
351
+ .as("daypicker");
352
+
353
+ cy.get("@daypicker")
354
+ .find("[data-sap-focus-ref]")
355
+ .should("be.focused")
356
+ .realClick();
357
+ cy.get("#ok").realClick();
358
+ });
359
+
360
+ cy.get("#dt")
361
+ .shadow()
362
+ .find("ui5-input")
363
+ .should("be.focused")
364
+ .should("have.attr", "value", "");
365
+ });
366
+
367
+ it("Min and max dates are set, with no format pattern provided, using valid ISO format", () => {
368
+ cy.mount(
369
+ <DateTimePicker
370
+ id="dtMinMaxDatesISO"
371
+ minDate="2023-05-01"
372
+ maxDate="2023-05-31"
373
+ ></DateTimePicker>
374
+ );
375
+
376
+ cy.ui5DateTimePickerOpen("#dtMinMaxDatesISO");
377
+
378
+ cy.ui5DateTimePickerGetPopover("#dtMinMaxDatesISO").within(() => {
379
+ cy.get("ui5-calendar")
380
+ .shadow()
381
+ .find(".ui5-calheader")
382
+ .as("calHeader");
383
+
384
+ cy.get("@calHeader")
385
+ .find("div[data-ui5-cal-header-btn-prev]")
386
+ .should("have.class", "ui5-calheader-arrowbtn-disabled");
387
+
388
+ cy.get("@calHeader")
389
+ .find("div[data-ui5-cal-header-btn-next]")
390
+ .should("have.class", "ui5-calheader-arrowbtn-disabled");
391
+ });
392
+ });
393
+
394
+ it("picker popover should have accessible name", () => {
395
+ cy.mount(<DefaultDateTimePicker />);
396
+ cy.ui5DateTimePickerOpen("#dt");
397
+
398
+ cy.ui5DateTimePickerGetPopover("#dt")
399
+ .should("have.attr", "accessible-name", "Choose Date and Time");
400
+ });
401
+
402
+ // Unstable test, needs investigation
403
+ it.skip("tests change event is fired on submit", () => {
404
+ cy.mount(<DefaultDateTimePicker />);
405
+
406
+ const changeStub = cy.stub();
407
+ cy.get("#dt").then($el => {
408
+ $el[0].addEventListener("ui5-change", changeStub);
409
+ });
410
+
411
+ // Open the picker, select a date, and submit to fire the event
412
+ cy.ui5DateTimePickerOpen("#dt");
413
+ cy.ui5DateTimePickerGetPopover("#dt").within(() => {
414
+ cy.get("ui5-calendar")
415
+ .shadow()
416
+ .as("calendar");
417
+
418
+ cy.get("@calendar")
419
+ .find("ui5-daypicker")
420
+ .shadow()
421
+ .as("daypicker");
422
+
423
+ cy.get("@daypicker")
424
+ .find("[data-sap-focus-ref]")
425
+ .realClick()
426
+ .should("be.focused");
427
+ cy.get("#ok").realClick();
428
+ });
429
+
430
+ // Assert the change event was fired once
431
+ cy.wrap(changeStub).should("have.been.calledOnce");
432
+
433
+ // Re-open the picker and submit without making a change
434
+ cy.ui5DateTimePickerOpen("#dt");
435
+ cy.ui5DateTimePickerGetPopover("#dt").within(() => {
436
+ cy.get("#ok").realClick();
437
+ });
438
+
439
+ // The change event should not have been fired a second time.
440
+ cy.wrap(changeStub).should("have.been.calledOnce");
441
+
442
+ // Verify the picker is closed
443
+ cy.ui5DateTimePickerIsOpen("#dt").should("equal", false);
444
+ });
445
+ });
@@ -0,0 +1,81 @@
1
+ import "../../src/Assets.js";
2
+ import DayPicker from "../../src/DayPicker.js";
3
+ import { setLanguage } from "@ui5/webcomponents-base/dist/config/Language.js";
4
+ import "@ui5/webcomponents-localization/dist/features/calendar/Gregorian.js";
5
+
6
+ function DefaultDayPicker() {
7
+ return <DayPicker id="daypicker"/>;
8
+ }
9
+
10
+ describe("Day Picker Tests", () => {
11
+ it("Select day with Space", () => {
12
+ cy.mount(<DefaultDayPicker />);
13
+ cy.get("#daypicker")
14
+ .shadow()
15
+ .find(".ui5-dp-item--now")
16
+ .as("today");
17
+ cy.get("@today")
18
+ .realClick()
19
+ .should("be.focused")
20
+ .realPress("ArrowRight")
21
+ .realPress("Space");
22
+ cy.focused()
23
+ .invoke("attr", "data-sap-timestamp")
24
+ .then(timestampAttr => {
25
+ const timestamp = parseInt(timestampAttr!);
26
+ const selectedDate = new Date(timestamp * 1000).getDate();
27
+ const expectedDate = new Date(Date.now() + 24 * 3600 * 1000).getDate();
28
+ expect(selectedDate).to.eq(expectedDate);
29
+ });
30
+ });
31
+
32
+ it("Select day with Enter", () => {
33
+ cy.mount(<DefaultDayPicker />);
34
+ cy.get("#daypicker")
35
+ .shadow()
36
+ .find(".ui5-dp-item--now")
37
+ .should("be.focused")
38
+ .as("today");
39
+
40
+ cy.get("@today")
41
+ .realClick()
42
+ .should("be.focused")
43
+ .realPress("ArrowRight")
44
+ .realPress("Enter");
45
+
46
+ cy.focused()
47
+ .invoke("attr", "data-sap-timestamp")
48
+ .then(timestampAttr => {
49
+ const timestamp = parseInt(timestampAttr!);
50
+ const selectedDate = new Date(timestamp * 1000).getDate();
51
+ const expectedDate = new Date(Date.now() + 24 * 3600 * 1000).getDate();
52
+ expect(selectedDate).to.eq(expectedDate);
53
+ });
54
+ });
55
+
56
+ it("Day names are correctly displayed when length is less than 3", () => {
57
+ cy.wrap({ setLanguage })
58
+ .invoke("setLanguage", "en");
59
+
60
+ cy.mount(<DefaultDayPicker />);
61
+ cy.get("#daypicker")
62
+ .shadow()
63
+ .find(".ui5-dp-firstday")
64
+ .first()
65
+ .should("have.text", "Sun");
66
+ });
67
+
68
+ it("Day names are correctly displayed when length is more than 3", () => {
69
+ // Set configuration first
70
+ cy.wrap({ setLanguage })
71
+ .invoke("setLanguage", "pt_PT");
72
+
73
+ cy.mount(<DefaultDayPicker />);
74
+
75
+ cy.get("#daypicker")
76
+ .shadow()
77
+ .find(".ui5-dp-firstday")
78
+ .first()
79
+ .should("have.text", "D");
80
+ });
81
+ });
@@ -62,6 +62,59 @@ describe("Popover opener", () => {
62
62
  });
63
63
  cy.get("#btnClosePopover").realClick();
64
64
  });
65
+
66
+ it("tests calling _showOutsideViewport method", () => {
67
+ cy.mount(
68
+ <>
69
+ <Button id="btnOpen">Open</Button>
70
+ <Popover id="popover" opener="btnOpen">
71
+ <Button id="btnClosePopover">Close</Button>
72
+ </Popover>
73
+ </>
74
+ );
75
+
76
+ cy.get("#popover").then(el => {
77
+ cy.spy<Popover>((el.get(0) as Popover), "_showOutsideViewport").as("showOutsideViewport");
78
+ });
79
+
80
+ // act
81
+ cy.get("#popover").invoke("prop", "open", "true");
82
+
83
+ cy.get("@showOutsideViewport")
84
+ .should("have.been.calledOnce");
85
+ });
86
+
87
+ it("tests calling _showOutsideViewport method, when popover is created dynamically", () => {
88
+ cy.mount(
89
+ <>
90
+ <div id="container"></div>
91
+ <Button id="btnOpen">Open</Button>
92
+ </>
93
+ );
94
+
95
+ cy.get("#container").then(container => {
96
+ const popover = document.createElement("ui5-popover");
97
+
98
+ cy.spy<Popover>((popover as Popover), "_showOutsideViewport").as("showOutsideViewport");
99
+
100
+ popover.id = "popover";
101
+ popover.headerText = "Popover Header";
102
+ popover.opener = "btnOpen";
103
+ popover.open = true;
104
+
105
+ const content = document.createElement("div");
106
+ content.innerHTML = "<button id='popoverBtn'>button</button>";
107
+ popover.appendChild(content);
108
+
109
+ container.get(0).appendChild(popover);
110
+ });
111
+
112
+ cy.get("#popover")
113
+ .should("be.visible");
114
+
115
+ cy.get("@showOutsideViewport")
116
+ .should("have.been.calledOnce");
117
+ });
65
118
  });
66
119
 
67
120
  describe("Popover interaction", () => {
@@ -28,3 +28,21 @@ describe("Tree Tests", () => {
28
28
  .and("have.attr", "accessible-description-ref", "lblDesc2");
29
29
  });
30
30
  });
31
+
32
+ describe("Tree Props", () => {
33
+ it("noDataText is properly rendered", () => {
34
+ cy.mount(
35
+ <>
36
+ <Tree noDataText="No data"></Tree>
37
+ </>
38
+ );
39
+
40
+ cy.get("[ui5-tree]")
41
+ .shadow()
42
+ .find("[ui5-tree-list]")
43
+ .shadow()
44
+ .find("[ui5-busy-indicator]")
45
+ .find(".ui5-list-nodata")
46
+ .should("exist")
47
+ });
48
+ });
@@ -22,3 +22,17 @@ Cypress.Commands.add("ui5ColorPickerUpdateInput", { prevSubject: true }, (subjec
22
22
  .realType(value)
23
23
  .realPress("Enter");
24
24
  });
25
+
26
+ Cypress.Commands.add("ui5ColorPickerValidateInput", { prevSubject: true }, (subject, name, value) => {
27
+ cy.wrap(subject)
28
+ .as("colorPicker")
29
+ .should("be.visible");
30
+
31
+ cy.get("@colorPicker")
32
+ .shadow()
33
+ .find(name)
34
+ .as("input");
35
+
36
+ cy.get("@input")
37
+ .should("have.value", value);
38
+ });
@@ -0,0 +1,60 @@
1
+ Cypress.Commands.add("ui5DateTimePickerOpen", selector => {
2
+ cy.get(selector)
3
+ .then($dateTimePicker => {
4
+ cy.wrap($dateTimePicker).invoke("attr", "open", true);
5
+ });
6
+ });
7
+
8
+ Cypress.Commands.add("ui5DateTimePickerClose", selector => {
9
+ cy.get(selector).invoke("attr", "open", false);
10
+ });
11
+
12
+ Cypress.Commands.add("ui5DateTimePickerGetPopover", selector => {
13
+ return cy.get(selector)
14
+ .shadow()
15
+ .find("ui5-responsive-popover");
16
+ });
17
+
18
+ Cypress.Commands.add("ui5DateTimePickerIsOpen", selector => {
19
+ return cy
20
+ .get(selector)
21
+ .invoke("attr", "open")
22
+ .then(attr => Boolean(attr));
23
+ });
24
+
25
+ Cypress.Commands.add("ui5DateTimePickerGetSubmitButton", selector => {
26
+ return cy.get(selector)
27
+ .shadow()
28
+ .find("ui5-responsive-popover")
29
+ .find("#ok");
30
+ });
31
+
32
+ Cypress.Commands.add("ui5DateTimePickerGetCancelButton", selector => {
33
+ return cy
34
+ .get(selector)
35
+ .shadow()
36
+ .find("ui5-responsive-popover")
37
+ .find("#cancel");
38
+ });
39
+
40
+ Cypress.Commands.add("ui5DateTimePickerTimeSelectionClocksCount", selector => {
41
+ return cy
42
+ .get(selector)
43
+ .shadow()
44
+ .find("ui5-responsive-popover")
45
+ .find("ui5-time-selection-clocks")
46
+ .shadow()
47
+ .find("ui5-time-picker-clock")
48
+ .its("length");
49
+ });
50
+
51
+ Cypress.Commands.add("ui5DateTimePickerPeriodSegmentedButtonCount", selector => {
52
+ return cy
53
+ .get(selector)
54
+ .shadow()
55
+ .find("ui5-responsive-popover")
56
+ .find("ui5-time-selection-clocks")
57
+ .shadow()
58
+ .find("ui5-segmented-button")
59
+ .its("length");
60
+ });
@@ -43,6 +43,7 @@ import { internals, isPhone } from "@ui5/webcomponents-base/dist/Device.js";
43
43
  import "./commands/Calendar.commands.js";
44
44
  import "./commands/ColorPalette.commands.js";
45
45
  import "./commands/ColorPicker.commands.js";
46
+ import "./commands/DateTimePicker.commands.js";
46
47
  import "./commands/DatePicker.commands.js";
47
48
  import "./commands/Menu.commands.js";
48
49
  import "./commands/SegmentedButton.commands.js";
@@ -62,6 +63,7 @@ declare global {
62
63
  ui5CalendarGetMonth(calendarSelector: string, timestamp: string): Chainable<JQuery<HTMLElement>>
63
64
  ui5ColorPickerToggleColorMode(): Chainable<void>
64
65
  ui5ColorPickerUpdateInput(name: string, value: string): Chainable<void>
66
+ ui5ColorPickerValidateInput(name: string, value: string): Chainable<void>
65
67
  ui5ColorPaletteCheckSelectedColor(colorPaletteItem: string, values: {r: string, g: string, b: string, a: string}): Chainable<void>
66
68
  ui5ColorPaletteNavigateAndCheckSelectedColor(colorPalette: string, startIndex: number, key: string, expectedValue: string): Chainable<void>
67
69
  ui5DatePickerGetInnerInput(): Chainable<JQuery<HTMLElement>>