@ui5/webcomponents 2.11.0-rc.2 → 2.11.0-rc.4

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 (843) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/Assets-node.d.ts +16 -0
  4. package/dist/Assets-node.js +19 -0
  5. package/dist/Assets-node.js.map +1 -0
  6. package/dist/Avatar.d.ts +4 -0
  7. package/dist/Avatar.js +9 -4
  8. package/dist/Avatar.js.map +1 -1
  9. package/dist/Breadcrumbs.js +2 -2
  10. package/dist/Breadcrumbs.js.map +1 -1
  11. package/dist/Calendar.d.ts +31 -8
  12. package/dist/Calendar.js +100 -26
  13. package/dist/Calendar.js.map +1 -1
  14. package/dist/CalendarHeaderTemplate.js +1 -1
  15. package/dist/CalendarHeaderTemplate.js.map +1 -1
  16. package/dist/CalendarTemplate.js +3 -1
  17. package/dist/CalendarTemplate.js.map +1 -1
  18. package/dist/CheckBoxTemplate.js +1 -1
  19. package/dist/CheckBoxTemplate.js.map +1 -1
  20. package/dist/ComboBox.d.ts +1 -0
  21. package/dist/ComboBox.js +4 -1
  22. package/dist/ComboBox.js.map +1 -1
  23. package/dist/ComboBoxPopoverTemplate.js +1 -1
  24. package/dist/ComboBoxPopoverTemplate.js.map +1 -1
  25. package/dist/DynamicDateRange.d.ts +133 -0
  26. package/dist/DynamicDateRange.js +291 -0
  27. package/dist/DynamicDateRange.js.map +1 -0
  28. package/dist/DynamicDateRangeInputTemplate.d.ts +2 -0
  29. package/dist/DynamicDateRangeInputTemplate.js +13 -0
  30. package/dist/DynamicDateRangeInputTemplate.js.map +1 -0
  31. package/dist/DynamicDateRangePopoverTemplate.d.ts +2 -0
  32. package/dist/DynamicDateRangePopoverTemplate.js +18 -0
  33. package/dist/DynamicDateRangePopoverTemplate.js.map +1 -0
  34. package/dist/DynamicDateRangeTemplate.d.ts +2 -0
  35. package/dist/DynamicDateRangeTemplate.js +9 -0
  36. package/dist/DynamicDateRangeTemplate.js.map +1 -0
  37. package/dist/Icon.js +2 -2
  38. package/dist/Icon.js.map +1 -1
  39. package/dist/Input.d.ts +1 -0
  40. package/dist/Input.js +4 -1
  41. package/dist/Input.js.map +1 -1
  42. package/dist/Tab.d.ts +2 -1
  43. package/dist/Tab.js +2 -1
  44. package/dist/Tab.js.map +1 -1
  45. package/dist/TabContainer.js +2 -2
  46. package/dist/TabContainer.js.map +1 -1
  47. package/dist/Table.d.ts +0 -6
  48. package/dist/Table.js +3 -6
  49. package/dist/Table.js.map +1 -1
  50. package/dist/TableCell.d.ts +0 -1
  51. package/dist/TableCell.js +0 -1
  52. package/dist/TableCell.js.map +1 -1
  53. package/dist/TableGrowing.d.ts +0 -1
  54. package/dist/TableGrowing.js +0 -1
  55. package/dist/TableGrowing.js.map +1 -1
  56. package/dist/TableHeaderCell.d.ts +0 -1
  57. package/dist/TableHeaderCell.js +0 -1
  58. package/dist/TableHeaderCell.js.map +1 -1
  59. package/dist/TableHeaderCellActionAI.d.ts +0 -1
  60. package/dist/TableHeaderCellActionAI.js +0 -1
  61. package/dist/TableHeaderCellActionAI.js.map +1 -1
  62. package/dist/TableHeaderRow.d.ts +0 -1
  63. package/dist/TableHeaderRow.js +0 -1
  64. package/dist/TableHeaderRow.js.map +1 -1
  65. package/dist/TableRow.d.ts +1 -2
  66. package/dist/TableRow.js +9 -5
  67. package/dist/TableRow.js.map +1 -1
  68. package/dist/TableRowAction.d.ts +0 -1
  69. package/dist/TableRowAction.js +0 -1
  70. package/dist/TableRowAction.js.map +1 -1
  71. package/dist/TableRowActionNavigation.d.ts +0 -1
  72. package/dist/TableRowActionNavigation.js +0 -1
  73. package/dist/TableRowActionNavigation.js.map +1 -1
  74. package/dist/TableSelection.d.ts +1 -1
  75. package/dist/TableSelection.js +1 -1
  76. package/dist/TableSelection.js.map +1 -1
  77. package/dist/TableSelectionBase.d.ts +9 -2
  78. package/dist/TableSelectionBase.js +14 -3
  79. package/dist/TableSelectionBase.js.map +1 -1
  80. package/dist/TableSelectionMulti.d.ts +0 -1
  81. package/dist/TableSelectionMulti.js +0 -5
  82. package/dist/TableSelectionMulti.js.map +1 -1
  83. package/dist/Tokenizer.d.ts +2 -0
  84. package/dist/Tokenizer.js +7 -1
  85. package/dist/Tokenizer.js.map +1 -1
  86. package/dist/TokenizerPopoverTemplate.js +1 -1
  87. package/dist/TokenizerPopoverTemplate.js.map +1 -1
  88. package/dist/Toolbar.d.ts +3 -22
  89. package/dist/Toolbar.js +12 -45
  90. package/dist/Toolbar.js.map +1 -1
  91. package/dist/ToolbarButton.d.ts +10 -11
  92. package/dist/ToolbarButton.js +14 -23
  93. package/dist/ToolbarButton.js.map +1 -1
  94. package/dist/ToolbarButtonTemplate.js +2 -3
  95. package/dist/ToolbarButtonTemplate.js.map +1 -1
  96. package/dist/ToolbarItem.d.ts +13 -17
  97. package/dist/ToolbarItem.js +18 -22
  98. package/dist/ToolbarItem.js.map +1 -1
  99. package/dist/ToolbarSelect.d.ts +0 -4
  100. package/dist/ToolbarSelect.js +5 -9
  101. package/dist/ToolbarSelect.js.map +1 -1
  102. package/dist/ToolbarSelectTemplate.js +1 -1
  103. package/dist/ToolbarSelectTemplate.js.map +1 -1
  104. package/dist/ToolbarSeparator.d.ts +0 -4
  105. package/dist/ToolbarSeparator.js +6 -9
  106. package/dist/ToolbarSeparator.js.map +1 -1
  107. package/dist/ToolbarSpacer.d.ts +0 -3
  108. package/dist/ToolbarSpacer.js +2 -9
  109. package/dist/ToolbarSpacer.js.map +1 -1
  110. package/dist/ToolbarTemplate.js +15 -3
  111. package/dist/ToolbarTemplate.js.map +1 -1
  112. package/dist/Tree.js +20 -2
  113. package/dist/Tree.js.map +1 -1
  114. package/dist/YearPicker.d.ts +2 -3
  115. package/dist/YearPicker.js +7 -33
  116. package/dist/YearPicker.js.map +1 -1
  117. package/dist/YearRangePicker.d.ts +144 -0
  118. package/dist/YearRangePicker.js +418 -0
  119. package/dist/YearRangePicker.js.map +1 -0
  120. package/dist/YearRangePickerTemplate.d.ts +2 -0
  121. package/dist/YearRangePickerTemplate.js +6 -0
  122. package/dist/YearRangePickerTemplate.js.map +1 -0
  123. package/dist/bundle.esm.js +6 -0
  124. package/dist/bundle.esm.js.map +1 -1
  125. package/dist/css/themes/Avatar.css +1 -1
  126. package/dist/css/themes/AvatarGroup.css +1 -1
  127. package/dist/css/themes/Bar.css +1 -1
  128. package/dist/css/themes/Breadcrumbs.css +1 -1
  129. package/dist/css/themes/BusyIndicator.css +1 -1
  130. package/dist/css/themes/Button.css +1 -1
  131. package/dist/css/themes/ButtonBadge.css +1 -1
  132. package/dist/css/themes/Calendar.css +1 -1
  133. package/dist/css/themes/CalendarHeader.css +1 -1
  134. package/dist/css/themes/CalendarLegend.css +1 -1
  135. package/dist/css/themes/CalendarLegendItem.css +1 -1
  136. package/dist/css/themes/Card.css +1 -1
  137. package/dist/css/themes/CardHeader.css +1 -1
  138. package/dist/css/themes/Carousel.css +1 -1
  139. package/dist/css/themes/CheckBox.css +1 -1
  140. package/dist/css/themes/ColorPalette.css +1 -1
  141. package/dist/css/themes/ColorPaletteItem.css +1 -1
  142. package/dist/css/themes/ColorPalettePopover.css +1 -1
  143. package/dist/css/themes/ColorPicker.css +1 -1
  144. package/dist/css/themes/ComboBox.css +1 -1
  145. package/dist/css/themes/ComboBoxItem.css +1 -1
  146. package/dist/css/themes/DatePicker.css +1 -1
  147. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  148. package/dist/css/themes/DayPicker.css +1 -1
  149. package/dist/css/themes/Dialog.css +1 -1
  150. package/dist/css/themes/DynamicDateRange.css +1 -0
  151. package/dist/css/themes/DynamicDateRangePopover.css +1 -0
  152. package/dist/css/themes/FileUploader.css +1 -1
  153. package/dist/css/themes/Form.css +1 -1
  154. package/dist/css/themes/FormItem.css +1 -1
  155. package/dist/css/themes/FormItemSpan.css +1 -1
  156. package/dist/css/themes/GrowingButton.css +1 -1
  157. package/dist/css/themes/Icon.css +1 -1
  158. package/dist/css/themes/Input.css +1 -1
  159. package/dist/css/themes/InputIcon.css +1 -1
  160. package/dist/css/themes/InputSharedStyles.css +1 -1
  161. package/dist/css/themes/Link.css +1 -1
  162. package/dist/css/themes/List.css +1 -1
  163. package/dist/css/themes/ListItem.css +1 -1
  164. package/dist/css/themes/ListItemBase.css +1 -1
  165. package/dist/css/themes/ListItemCustom.css +1 -1
  166. package/dist/css/themes/ListItemGroup.css +1 -1
  167. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  168. package/dist/css/themes/ListItemIcon.css +1 -1
  169. package/dist/css/themes/Menu.css +1 -1
  170. package/dist/css/themes/MenuItem.css +1 -1
  171. package/dist/css/themes/MessageStrip.css +1 -1
  172. package/dist/css/themes/MonthPicker.css +1 -1
  173. package/dist/css/themes/MultiComboBox.css +1 -1
  174. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  175. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  176. package/dist/css/themes/MultiInput.css +1 -1
  177. package/dist/css/themes/OptionBase.css +1 -1
  178. package/dist/css/themes/Panel.css +1 -1
  179. package/dist/css/themes/Popover.css +1 -1
  180. package/dist/css/themes/PopupsCommon.css +1 -1
  181. package/dist/css/themes/ProgressIndicator.css +1 -1
  182. package/dist/css/themes/RadioButton.css +1 -1
  183. package/dist/css/themes/RangeSlider.css +1 -1
  184. package/dist/css/themes/RatingIndicator.css +1 -1
  185. package/dist/css/themes/ResponsivePopover.css +1 -1
  186. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  187. package/dist/css/themes/SegmentedButton.css +1 -1
  188. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  189. package/dist/css/themes/Select.css +1 -1
  190. package/dist/css/themes/SliderBase.css +1 -1
  191. package/dist/css/themes/SplitButton.css +1 -1
  192. package/dist/css/themes/StepInput.css +1 -1
  193. package/dist/css/themes/SuggestionItem.css +1 -1
  194. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  195. package/dist/css/themes/Switch.css +1 -1
  196. package/dist/css/themes/TabContainer.css +1 -1
  197. package/dist/css/themes/TabInOverflow.css +1 -1
  198. package/dist/css/themes/TabInStrip.css +1 -1
  199. package/dist/css/themes/TabSemanticIcon.css +1 -1
  200. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  201. package/dist/css/themes/TableCellBase.css +1 -1
  202. package/dist/css/themes/TableHeaderRow.css +1 -1
  203. package/dist/css/themes/TableRow.css +1 -1
  204. package/dist/css/themes/TableRowActionBase.css +1 -1
  205. package/dist/css/themes/TableRowBase.css +1 -1
  206. package/dist/css/themes/Tag.css +1 -1
  207. package/dist/css/themes/Text.css +1 -1
  208. package/dist/css/themes/TextArea.css +1 -1
  209. package/dist/css/themes/TimePicker.css +1 -1
  210. package/dist/css/themes/Toast.css +1 -1
  211. package/dist/css/themes/ToggleButton.css +1 -1
  212. package/dist/css/themes/Token.css +1 -1
  213. package/dist/css/themes/Tokenizer.css +1 -1
  214. package/dist/css/themes/TokenizerPopover.css +1 -1
  215. package/dist/css/themes/Toolbar.css +1 -1
  216. package/dist/css/themes/ToolbarPopover.css +1 -1
  217. package/dist/css/themes/ToolbarSelect.css +1 -1
  218. package/dist/css/themes/ToolbarSeparator.css +1 -0
  219. package/dist/css/themes/TreeItem.css +1 -1
  220. package/dist/css/themes/ValueStateMessage.css +1 -1
  221. package/dist/css/themes/YearPicker.css +1 -1
  222. package/dist/css/themes/YearRangePicker.css +1 -0
  223. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  224. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  225. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  226. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  227. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  228. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  229. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  230. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  231. package/dist/custom-elements-internal.json +523 -17
  232. package/dist/custom-elements.json +414 -8
  233. package/dist/dynamic-date-range-options/DateRange.d.ts +23 -0
  234. package/dist/dynamic-date-range-options/DateRange.js +71 -0
  235. package/dist/dynamic-date-range-options/DateRange.js.map +1 -0
  236. package/dist/dynamic-date-range-options/DateRangeTemplate.d.ts +2 -0
  237. package/dist/dynamic-date-range-options/DateRangeTemplate.js +11 -0
  238. package/dist/dynamic-date-range-options/DateRangeTemplate.js.map +1 -0
  239. package/dist/dynamic-date-range-options/SingleDate.d.ts +23 -0
  240. package/dist/dynamic-date-range-options/SingleDate.js +67 -0
  241. package/dist/dynamic-date-range-options/SingleDate.js.map +1 -0
  242. package/dist/dynamic-date-range-options/SingleDateTemplate.d.ts +2 -0
  243. package/dist/dynamic-date-range-options/SingleDateTemplate.js +7 -0
  244. package/dist/dynamic-date-range-options/SingleDateTemplate.js.map +1 -0
  245. package/dist/dynamic-date-range-options/Today.d.ts +17 -0
  246. package/dist/dynamic-date-range-options/Today.js +37 -0
  247. package/dist/dynamic-date-range-options/Today.js.map +1 -0
  248. package/dist/dynamic-date-range-options/Tomorrow.d.ts +17 -0
  249. package/dist/dynamic-date-range-options/Tomorrow.js +37 -0
  250. package/dist/dynamic-date-range-options/Tomorrow.js.map +1 -0
  251. package/dist/dynamic-date-range-options/Yesterday.d.ts +17 -0
  252. package/dist/dynamic-date-range-options/Yesterday.js +37 -0
  253. package/dist/dynamic-date-range-options/Yesterday.js.map +1 -0
  254. package/dist/dynamic-date-range-options/toDates.d.ts +7 -0
  255. package/dist/dynamic-date-range-options/toDates.js +41 -0
  256. package/dist/dynamic-date-range-options/toDates.js.map +1 -0
  257. package/dist/features/InputSuggestionsTemplate.js +1 -1
  258. package/dist/features/InputSuggestionsTemplate.js.map +1 -1
  259. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  260. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  261. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  262. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  263. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  264. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  265. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  266. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  267. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  268. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  269. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  270. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  271. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  272. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  273. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  274. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  275. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  276. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  277. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  278. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  279. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  280. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  281. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  282. package/dist/generated/assets/i18n/messagebundle_id.json +1 -1
  283. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  284. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  285. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  286. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  287. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  288. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  289. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  290. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  291. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  292. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  293. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  294. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  295. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  296. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  297. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  298. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  299. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  300. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  301. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  302. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  303. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  304. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  305. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  306. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  307. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  308. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  309. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  310. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  311. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  312. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  313. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  314. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  315. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  316. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  317. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  318. package/dist/generated/i18n/i18n-defaults.d.ts +14 -1
  319. package/dist/generated/i18n/i18n-defaults.js +14 -1
  320. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  321. package/dist/generated/json-imports/Themes-node.d.ts +1 -0
  322. package/dist/generated/json-imports/Themes-node.js +25 -0
  323. package/dist/generated/json-imports/Themes-node.js.map +1 -0
  324. package/dist/generated/json-imports/i18n-node.d.ts +1 -0
  325. package/dist/generated/json-imports/i18n-node.js +120 -0
  326. package/dist/generated/json-imports/i18n-node.js.map +1 -0
  327. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  328. package/dist/generated/themes/Avatar.css.js +1 -1
  329. package/dist/generated/themes/Avatar.css.js.map +1 -1
  330. package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
  331. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  332. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  333. package/dist/generated/themes/Bar.css.d.ts +1 -1
  334. package/dist/generated/themes/Bar.css.js +1 -1
  335. package/dist/generated/themes/Bar.css.js.map +1 -1
  336. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  337. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  338. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  339. package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
  340. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  341. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  342. package/dist/generated/themes/Button.css.d.ts +1 -1
  343. package/dist/generated/themes/Button.css.js +1 -1
  344. package/dist/generated/themes/Button.css.js.map +1 -1
  345. package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
  346. package/dist/generated/themes/ButtonBadge.css.js +1 -1
  347. package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
  348. package/dist/generated/themes/Calendar.css.d.ts +1 -1
  349. package/dist/generated/themes/Calendar.css.js +1 -1
  350. package/dist/generated/themes/Calendar.css.js.map +1 -1
  351. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  352. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  353. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  354. package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
  355. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  356. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  357. package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
  358. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  359. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  360. package/dist/generated/themes/Card.css.d.ts +1 -1
  361. package/dist/generated/themes/Card.css.js +1 -1
  362. package/dist/generated/themes/Card.css.js.map +1 -1
  363. package/dist/generated/themes/CardHeader.css.d.ts +1 -1
  364. package/dist/generated/themes/CardHeader.css.js +1 -1
  365. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  366. package/dist/generated/themes/Carousel.css.d.ts +1 -1
  367. package/dist/generated/themes/Carousel.css.js +1 -1
  368. package/dist/generated/themes/Carousel.css.js.map +1 -1
  369. package/dist/generated/themes/CheckBox.css.d.ts +1 -1
  370. package/dist/generated/themes/CheckBox.css.js +1 -1
  371. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  372. package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
  373. package/dist/generated/themes/ColorPalette.css.js +1 -1
  374. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  375. package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
  376. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  377. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  378. package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
  379. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  380. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  381. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  382. package/dist/generated/themes/ColorPicker.css.js +1 -1
  383. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  384. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  385. package/dist/generated/themes/ComboBox.css.js +1 -1
  386. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  387. package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
  388. package/dist/generated/themes/ComboBoxItem.css.js +1 -1
  389. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
  390. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  391. package/dist/generated/themes/DatePicker.css.js +1 -1
  392. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  393. package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
  394. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  395. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  396. package/dist/generated/themes/DayPicker.css.d.ts +1 -1
  397. package/dist/generated/themes/DayPicker.css.js +1 -1
  398. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  399. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  400. package/dist/generated/themes/Dialog.css.js +1 -1
  401. package/dist/generated/themes/Dialog.css.js.map +1 -1
  402. package/dist/generated/themes/DynamicDateRange.css.d.ts +2 -0
  403. package/dist/generated/themes/DynamicDateRange.css.js +8 -0
  404. package/dist/generated/themes/DynamicDateRange.css.js.map +1 -0
  405. package/dist/generated/themes/DynamicDateRangePopover.css.d.ts +2 -0
  406. package/dist/generated/themes/DynamicDateRangePopover.css.js +8 -0
  407. package/dist/generated/themes/DynamicDateRangePopover.css.js.map +1 -0
  408. package/dist/generated/themes/FileUploader.css.d.ts +1 -1
  409. package/dist/generated/themes/FileUploader.css.js +1 -1
  410. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  411. package/dist/generated/themes/Form.css.d.ts +1 -1
  412. package/dist/generated/themes/Form.css.js +1 -1
  413. package/dist/generated/themes/Form.css.js.map +1 -1
  414. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  415. package/dist/generated/themes/FormItem.css.js +1 -1
  416. package/dist/generated/themes/FormItem.css.js.map +1 -1
  417. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  418. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  419. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  420. package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
  421. package/dist/generated/themes/GrowingButton.css.js +1 -1
  422. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  423. package/dist/generated/themes/Icon.css.d.ts +1 -1
  424. package/dist/generated/themes/Icon.css.js +1 -1
  425. package/dist/generated/themes/Icon.css.js.map +1 -1
  426. package/dist/generated/themes/Input.css.d.ts +1 -1
  427. package/dist/generated/themes/Input.css.js +1 -1
  428. package/dist/generated/themes/Input.css.js.map +1 -1
  429. package/dist/generated/themes/InputIcon.css.d.ts +1 -1
  430. package/dist/generated/themes/InputIcon.css.js +1 -1
  431. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  432. package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
  433. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  434. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  435. package/dist/generated/themes/Link.css.d.ts +1 -1
  436. package/dist/generated/themes/Link.css.js +1 -1
  437. package/dist/generated/themes/Link.css.js.map +1 -1
  438. package/dist/generated/themes/List.css.d.ts +1 -1
  439. package/dist/generated/themes/List.css.js +1 -1
  440. package/dist/generated/themes/List.css.js.map +1 -1
  441. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  442. package/dist/generated/themes/ListItem.css.js +1 -1
  443. package/dist/generated/themes/ListItem.css.js.map +1 -1
  444. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  445. package/dist/generated/themes/ListItemBase.css.js +1 -1
  446. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  447. package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
  448. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  449. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  450. package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
  451. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  452. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  453. package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
  454. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  455. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  456. package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
  457. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  458. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  459. package/dist/generated/themes/Menu.css.d.ts +1 -1
  460. package/dist/generated/themes/Menu.css.js +1 -1
  461. package/dist/generated/themes/Menu.css.js.map +1 -1
  462. package/dist/generated/themes/MenuItem.css.d.ts +1 -1
  463. package/dist/generated/themes/MenuItem.css.js +1 -1
  464. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  465. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  466. package/dist/generated/themes/MessageStrip.css.js +1 -1
  467. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  468. package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
  469. package/dist/generated/themes/MonthPicker.css.js +1 -1
  470. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  471. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  472. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  473. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  474. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
  475. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  476. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  477. package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
  478. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  479. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  480. package/dist/generated/themes/MultiInput.css.d.ts +1 -1
  481. package/dist/generated/themes/MultiInput.css.js +1 -1
  482. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  483. package/dist/generated/themes/OptionBase.css.d.ts +1 -1
  484. package/dist/generated/themes/OptionBase.css.js +1 -1
  485. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  486. package/dist/generated/themes/Panel.css.d.ts +1 -1
  487. package/dist/generated/themes/Panel.css.js +1 -1
  488. package/dist/generated/themes/Panel.css.js.map +1 -1
  489. package/dist/generated/themes/Popover.css.d.ts +1 -1
  490. package/dist/generated/themes/Popover.css.js +1 -1
  491. package/dist/generated/themes/Popover.css.js.map +1 -1
  492. package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
  493. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  494. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  495. package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
  496. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  497. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  498. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  499. package/dist/generated/themes/RadioButton.css.js +1 -1
  500. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  501. package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
  502. package/dist/generated/themes/RangeSlider.css.js +1 -1
  503. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  504. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  505. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  506. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  507. package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
  508. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  509. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  510. package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
  511. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  512. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  513. package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
  514. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  515. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  516. package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
  517. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  518. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  519. package/dist/generated/themes/Select.css.d.ts +1 -1
  520. package/dist/generated/themes/Select.css.js +1 -1
  521. package/dist/generated/themes/Select.css.js.map +1 -1
  522. package/dist/generated/themes/SliderBase.css.d.ts +1 -1
  523. package/dist/generated/themes/SliderBase.css.js +1 -1
  524. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  525. package/dist/generated/themes/SplitButton.css.d.ts +1 -1
  526. package/dist/generated/themes/SplitButton.css.js +1 -1
  527. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  528. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  529. package/dist/generated/themes/StepInput.css.js +1 -1
  530. package/dist/generated/themes/StepInput.css.js.map +1 -1
  531. package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
  532. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  533. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  534. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
  535. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  536. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  537. package/dist/generated/themes/Switch.css.d.ts +1 -1
  538. package/dist/generated/themes/Switch.css.js +1 -1
  539. package/dist/generated/themes/Switch.css.js.map +1 -1
  540. package/dist/generated/themes/TabContainer.css.d.ts +1 -1
  541. package/dist/generated/themes/TabContainer.css.js +1 -1
  542. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  543. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  544. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  545. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  546. package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
  547. package/dist/generated/themes/TabInStrip.css.js +1 -1
  548. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  549. package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
  550. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  551. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  552. package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
  553. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  554. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  555. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  556. package/dist/generated/themes/TableCellBase.css.js +1 -1
  557. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  558. package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
  559. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  560. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  561. package/dist/generated/themes/TableRow.css.d.ts +1 -1
  562. package/dist/generated/themes/TableRow.css.js +1 -1
  563. package/dist/generated/themes/TableRow.css.js.map +1 -1
  564. package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
  565. package/dist/generated/themes/TableRowActionBase.css.js +1 -1
  566. package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
  567. package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
  568. package/dist/generated/themes/TableRowBase.css.js +1 -1
  569. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  570. package/dist/generated/themes/Tag.css.d.ts +1 -1
  571. package/dist/generated/themes/Tag.css.js +1 -1
  572. package/dist/generated/themes/Tag.css.js.map +1 -1
  573. package/dist/generated/themes/Text.css.d.ts +1 -1
  574. package/dist/generated/themes/Text.css.js +1 -1
  575. package/dist/generated/themes/Text.css.js.map +1 -1
  576. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  577. package/dist/generated/themes/TextArea.css.js +1 -1
  578. package/dist/generated/themes/TextArea.css.js.map +1 -1
  579. package/dist/generated/themes/TimePicker.css.d.ts +1 -1
  580. package/dist/generated/themes/TimePicker.css.js +1 -1
  581. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  582. package/dist/generated/themes/Toast.css.d.ts +1 -1
  583. package/dist/generated/themes/Toast.css.js +1 -1
  584. package/dist/generated/themes/Toast.css.js.map +1 -1
  585. package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
  586. package/dist/generated/themes/ToggleButton.css.js +1 -1
  587. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  588. package/dist/generated/themes/Token.css.d.ts +1 -1
  589. package/dist/generated/themes/Token.css.js +1 -1
  590. package/dist/generated/themes/Token.css.js.map +1 -1
  591. package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
  592. package/dist/generated/themes/Tokenizer.css.js +1 -1
  593. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  594. package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
  595. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  596. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  597. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  598. package/dist/generated/themes/Toolbar.css.js +1 -1
  599. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  600. package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
  601. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  602. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  603. package/dist/generated/themes/ToolbarSelect.css.d.ts +1 -1
  604. package/dist/generated/themes/ToolbarSelect.css.js +1 -1
  605. package/dist/generated/themes/ToolbarSelect.css.js.map +1 -1
  606. package/dist/generated/themes/ToolbarSeparator.css.d.ts +2 -0
  607. package/dist/generated/themes/ToolbarSeparator.css.js +8 -0
  608. package/dist/generated/themes/ToolbarSeparator.css.js.map +1 -0
  609. package/dist/generated/themes/TreeItem.css.d.ts +1 -1
  610. package/dist/generated/themes/TreeItem.css.js +1 -1
  611. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  612. package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
  613. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  614. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  615. package/dist/generated/themes/YearPicker.css.d.ts +1 -1
  616. package/dist/generated/themes/YearPicker.css.js +1 -1
  617. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  618. package/dist/generated/themes/YearRangePicker.css.d.ts +2 -0
  619. package/dist/generated/themes/YearRangePicker.css.js +8 -0
  620. package/dist/generated/themes/YearRangePicker.css.js.map +1 -0
  621. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  622. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  623. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  624. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  625. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  626. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  627. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  628. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  629. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  630. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  631. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  632. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  633. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  634. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  635. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  636. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  637. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  638. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  639. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  640. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  641. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  642. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  643. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  644. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  645. package/dist/popup-utils/PopoverRegistry.js +14 -2
  646. package/dist/popup-utils/PopoverRegistry.js.map +1 -1
  647. package/dist/types/TableSelectionBehavior.d.ts +22 -0
  648. package/dist/types/TableSelectionBehavior.js +24 -0
  649. package/dist/types/TableSelectionBehavior.js.map +1 -0
  650. package/dist/vscode.html-custom-data.json +42 -5
  651. package/dist/web-types.json +143 -13
  652. package/package.json +9 -9
  653. package/src/CalendarHeaderTemplate.tsx +6 -3
  654. package/src/CalendarTemplate.tsx +21 -0
  655. package/src/CheckBoxTemplate.tsx +1 -0
  656. package/src/ComboBoxPopoverTemplate.tsx +1 -1
  657. package/src/DynamicDateRangeInputTemplate.tsx +38 -0
  658. package/src/DynamicDateRangePopoverTemplate.tsx +75 -0
  659. package/src/DynamicDateRangeTemplate.tsx +11 -0
  660. package/src/TokenizerPopoverTemplate.tsx +2 -2
  661. package/src/ToolbarButtonTemplate.tsx +2 -3
  662. package/src/ToolbarSelectTemplate.tsx +1 -1
  663. package/src/ToolbarTemplate.tsx +43 -6
  664. package/src/YearRangePickerTemplate.tsx +42 -0
  665. package/src/dynamic-date-range-options/DateRangeTemplate.tsx +22 -0
  666. package/src/dynamic-date-range-options/SingleDateTemplate.tsx +13 -0
  667. package/src/features/InputSuggestionsTemplate.tsx +1 -1
  668. package/src/i18n/messagebundle.properties +40 -1
  669. package/src/i18n/messagebundle_ar.properties +6 -0
  670. package/src/i18n/messagebundle_bg.properties +6 -0
  671. package/src/i18n/messagebundle_ca.properties +6 -0
  672. package/src/i18n/messagebundle_cnr.properties +6 -0
  673. package/src/i18n/messagebundle_cs.properties +6 -0
  674. package/src/i18n/messagebundle_cy.properties +6 -0
  675. package/src/i18n/messagebundle_da.properties +6 -0
  676. package/src/i18n/messagebundle_de.properties +7 -1
  677. package/src/i18n/messagebundle_el.properties +6 -0
  678. package/src/i18n/messagebundle_en.properties +4 -217
  679. package/src/i18n/messagebundle_en_GB.properties +6 -0
  680. package/src/i18n/messagebundle_en_US_sappsd.properties +6 -0
  681. package/src/i18n/messagebundle_en_US_saprigi.properties +4 -0
  682. package/src/i18n/messagebundle_en_US_saptrc.properties +6 -0
  683. package/src/i18n/messagebundle_es.properties +6 -0
  684. package/src/i18n/messagebundle_es_MX.properties +6 -0
  685. package/src/i18n/messagebundle_et.properties +6 -0
  686. package/src/i18n/messagebundle_fi.properties +6 -0
  687. package/src/i18n/messagebundle_fr.properties +6 -0
  688. package/src/i18n/messagebundle_fr_CA.properties +6 -0
  689. package/src/i18n/messagebundle_hi.properties +6 -0
  690. package/src/i18n/messagebundle_hr.properties +6 -0
  691. package/src/i18n/messagebundle_hu.properties +6 -0
  692. package/src/i18n/messagebundle_id.properties +6 -0
  693. package/src/i18n/messagebundle_it.properties +10 -4
  694. package/src/i18n/messagebundle_iw.properties +6 -0
  695. package/src/i18n/messagebundle_ja.properties +6 -0
  696. package/src/i18n/messagebundle_kk.properties +6 -0
  697. package/src/i18n/messagebundle_ko.properties +6 -0
  698. package/src/i18n/messagebundle_lt.properties +6 -0
  699. package/src/i18n/messagebundle_lv.properties +6 -0
  700. package/src/i18n/messagebundle_mk.properties +6 -0
  701. package/src/i18n/messagebundle_ms.properties +6 -0
  702. package/src/i18n/messagebundle_nl.properties +6 -0
  703. package/src/i18n/messagebundle_no.properties +6 -0
  704. package/src/i18n/messagebundle_pl.properties +6 -0
  705. package/src/i18n/messagebundle_pt.properties +6 -0
  706. package/src/i18n/messagebundle_pt_PT.properties +6 -0
  707. package/src/i18n/messagebundle_ro.properties +6 -0
  708. package/src/i18n/messagebundle_ru.properties +6 -0
  709. package/src/i18n/messagebundle_sh.properties +6 -0
  710. package/src/i18n/messagebundle_sk.properties +6 -0
  711. package/src/i18n/messagebundle_sl.properties +6 -0
  712. package/src/i18n/messagebundle_sr.properties +6 -0
  713. package/src/i18n/messagebundle_sv.properties +6 -0
  714. package/src/i18n/messagebundle_th.properties +6 -0
  715. package/src/i18n/messagebundle_tr.properties +6 -0
  716. package/src/i18n/messagebundle_uk.properties +7 -1
  717. package/src/i18n/messagebundle_vi.properties +6 -0
  718. package/src/i18n/messagebundle_zh_CN.properties +6 -0
  719. package/src/i18n/messagebundle_zh_TW.properties +6 -0
  720. package/src/themes/Avatar.css +1 -1
  721. package/src/themes/AvatarGroup.css +1 -0
  722. package/src/themes/CalendarHeader.css +0 -10
  723. package/src/themes/CheckBox.css +0 -9
  724. package/src/themes/DatePicker.css +0 -1
  725. package/src/themes/DynamicDateRange.css +7 -0
  726. package/src/themes/DynamicDateRangePopover.css +89 -0
  727. package/src/themes/Toolbar.css +0 -7
  728. package/src/themes/ToolbarPopover.css +5 -0
  729. package/src/themes/ToolbarSelect.css +3 -3
  730. package/src/themes/ToolbarSeparator.css +6 -0
  731. package/src/themes/YearRangePicker.css +118 -0
  732. package/src/themes/base/Avatar-parameters.css +1 -0
  733. package/src/themes/base/AvatarGroup-parameters.css +1 -0
  734. package/src/themes/base/DynamicDateRange-parameters.css +3 -0
  735. package/src/themes/base/rtl-parameters.css +1 -1
  736. package/src/themes/sap_horizon/parameters-bundle.css +1 -0
  737. package/cypress/specs/Avatar.cy.tsx +0 -55
  738. package/cypress/specs/AvatarGroup.cy.tsx +0 -66
  739. package/cypress/specs/Breadcrumbs.mobile.cy.tsx +0 -53
  740. package/cypress/specs/Button.cy.tsx +0 -434
  741. package/cypress/specs/Calendar.cy.tsx +0 -710
  742. package/cypress/specs/CalendarLegend.cy.tsx +0 -77
  743. package/cypress/specs/Card.cy.tsx +0 -338
  744. package/cypress/specs/Carousel.cy.tsx +0 -581
  745. package/cypress/specs/Carousel.mobile.cy.tsx +0 -67
  746. package/cypress/specs/ColorPalette.cy.tsx +0 -213
  747. package/cypress/specs/ColorPicker.cy.tsx +0 -332
  748. package/cypress/specs/ComboBox.cy.tsx +0 -198
  749. package/cypress/specs/DateControlsWithTimezone.cy.tsx +0 -75
  750. package/cypress/specs/DatePicker.cy.tsx +0 -1699
  751. package/cypress/specs/DateRangePicker.cy.tsx +0 -594
  752. package/cypress/specs/DateTimePicker.cy.tsx +0 -568
  753. package/cypress/specs/DayPicker.cy.tsx +0 -81
  754. package/cypress/specs/Dialog.cy.tsx +0 -133
  755. package/cypress/specs/ExpandableText.cy.tsx +0 -393
  756. package/cypress/specs/F6.cy.tsx +0 -977
  757. package/cypress/specs/Form.cy.tsx +0 -1022
  758. package/cypress/specs/FormSupport.cy.tsx +0 -975
  759. package/cypress/specs/Input.cy.tsx +0 -978
  760. package/cypress/specs/Label.cy.tsx +0 -144
  761. package/cypress/specs/Link.cy.tsx +0 -216
  762. package/cypress/specs/List.cy.tsx +0 -309
  763. package/cypress/specs/List.mobile.cy.tsx +0 -31
  764. package/cypress/specs/LitKeyFunction.cy.tsx +0 -58
  765. package/cypress/specs/Menu.cy.tsx +0 -617
  766. package/cypress/specs/MessageStrip.cy.tsx +0 -171
  767. package/cypress/specs/MultiComboBox.cy.tsx +0 -189
  768. package/cypress/specs/MultiInput.cy.tsx +0 -72
  769. package/cypress/specs/Popover.cy.tsx +0 -419
  770. package/cypress/specs/RTL.cy.tsx +0 -18
  771. package/cypress/specs/RadioButton.cy.tsx +0 -499
  772. package/cypress/specs/RangeSlider.cy.tsx +0 -52
  773. package/cypress/specs/RatingIndicator.cy.tsx +0 -279
  774. package/cypress/specs/ResponsivePopover.mobile.cy.tsx +0 -112
  775. package/cypress/specs/SegmentedButton.cy.tsx +0 -215
  776. package/cypress/specs/Select.cy.tsx +0 -241
  777. package/cypress/specs/Slider.cy.tsx +0 -87
  778. package/cypress/specs/StepInput.cy.tsx +0 -32
  779. package/cypress/specs/TabContainer.cy.tsx +0 -78
  780. package/cypress/specs/Table.cy.tsx +0 -1025
  781. package/cypress/specs/TableDragAndDrop.cy.tsx +0 -236
  782. package/cypress/specs/TableGrowing.cy.tsx +0 -336
  783. package/cypress/specs/TableLoading.cy.tsx +0 -48
  784. package/cypress/specs/TableNavigation.cy.tsx +0 -223
  785. package/cypress/specs/TableNavigationFixedHeader.cy.tsx +0 -199
  786. package/cypress/specs/TableRowActions.cy.tsx +0 -239
  787. package/cypress/specs/TableSelection.cy.tsx +0 -275
  788. package/cypress/specs/TableSelections.cy.tsx +0 -332
  789. package/cypress/specs/TableUtils.cy.tsx +0 -63
  790. package/cypress/specs/TableVirtualizer.cy.tsx +0 -243
  791. package/cypress/specs/Tag.cy.tsx +0 -120
  792. package/cypress/specs/Text.cy.tsx +0 -46
  793. package/cypress/specs/TextArea.cy.tsx +0 -735
  794. package/cypress/specs/Title.cy.tsx +0 -36
  795. package/cypress/specs/Toast.cy.tsx +0 -45
  796. package/cypress/specs/Tokenizer.cy.tsx +0 -209
  797. package/cypress/specs/Toolbar.cy.tsx +0 -194
  798. package/cypress/specs/Tree.cy.tsx +0 -72
  799. package/cypress/specs/base/AccessibilityTextsHelper.cy.tsx +0 -468
  800. package/cypress/specs/base/Events.cy.tsx +0 -301
  801. package/cypress/specs/base/IconCollection.cy.tsx +0 -58
  802. package/cypress/specs/base/IgnoreCustomElements.cy.tsx +0 -38
  803. package/cypress/specs/base/InvisibleMessage.cy.tsx +0 -31
  804. package/cypress/specs/base/Tooltips.cy.tsx +0 -64
  805. package/cypress/specs/base/css/redfish.custom.theme.css +0 -13
  806. package/cypress/support/commands/Calendar.commands.ts +0 -21
  807. package/cypress/support/commands/ColorPalette.commands.ts +0 -86
  808. package/cypress/support/commands/ColorPicker.commands.ts +0 -38
  809. package/cypress/support/commands/DatePicker.commands.ts +0 -218
  810. package/cypress/support/commands/DateTimePicker.commands.ts +0 -105
  811. package/cypress/support/commands/Dialog.commands.ts +0 -16
  812. package/cypress/support/commands/Menu.commands.ts +0 -52
  813. package/cypress/support/commands/Popover.commands.ts +0 -16
  814. package/cypress/support/commands/ResponsivePopover.commands.ts +0 -42
  815. package/cypress/support/commands/SegmentedButton.commands.ts +0 -32
  816. package/cypress/support/commands/utils/popup-open.ts +0 -35
  817. package/cypress/support/commands.ts +0 -113
  818. package/cypress/support/component-index.html +0 -12
  819. package/cypress/support/component.ts +0 -20
  820. package/cypress/tsconfig.json +0 -42
  821. package/dist/ToolbarPopoverButtonTemplate.d.ts +0 -2
  822. package/dist/ToolbarPopoverButtonTemplate.js +0 -6
  823. package/dist/ToolbarPopoverButtonTemplate.js.map +0 -1
  824. package/dist/ToolbarPopoverSelectTemplate.d.ts +0 -2
  825. package/dist/ToolbarPopoverSelectTemplate.js +0 -7
  826. package/dist/ToolbarPopoverSelectTemplate.js.map +0 -1
  827. package/dist/ToolbarPopoverSeparatorTemplate.d.ts +0 -2
  828. package/dist/ToolbarPopoverSeparatorTemplate.js +0 -5
  829. package/dist/ToolbarPopoverSeparatorTemplate.js.map +0 -1
  830. package/dist/ToolbarPopoverTemplate.d.ts +0 -2
  831. package/dist/ToolbarPopoverTemplate.js +0 -9
  832. package/dist/ToolbarPopoverTemplate.js.map +0 -1
  833. package/dist/ToolbarRegistry.d.ts +0 -5
  834. package/dist/ToolbarRegistry.js +0 -16
  835. package/dist/ToolbarRegistry.js.map +0 -1
  836. package/dist/ToolbarSpacerTemplate.d.ts +0 -2
  837. package/dist/ToolbarSpacerTemplate.js +0 -5
  838. package/dist/ToolbarSpacerTemplate.js.map +0 -1
  839. package/src/ToolbarPopoverButtonTemplate.tsx +0 -24
  840. package/src/ToolbarPopoverSelectTemplate.tsx +0 -29
  841. package/src/ToolbarPopoverSeparatorTemplate.tsx +0 -10
  842. package/src/ToolbarPopoverTemplate.tsx +0 -25
  843. package/src/ToolbarSpacerTemplate.tsx +0 -12
@@ -1,1025 +0,0 @@
1
- import Table from "../../src/Table.js";
2
- import TableHeaderRow from "../../src/TableHeaderRow.js";
3
- import TableCell from "../../src/TableCell.js";
4
- import TableRow from "../../src/TableRow.js";
5
- import TableSelectionMulti from "../../src/TableSelectionMulti.js";
6
- import TableHeaderCell from "../../src/TableHeaderCell.js";
7
- import TableHeaderCellActionAI from "../../src/TableHeaderCellActionAI.js";
8
- import Label from "../../src/Label.js";
9
- import Input from "../../src/Input.js";
10
- import Bar from "../../src/Bar.js";
11
- import Title from "../../src/Title.js";
12
- import Slider from "../../src/Slider.js";
13
- import Button from "../../src/Button.js";
14
-
15
- // Porting Table.spec.js (wdio tests) to cypress tests
16
- const ROLE_COLUMN_HEADER = "columnheader";
17
-
18
- describe("Table - Rendering", () => {
19
- function checkWidth(id: string, expectedWidth: number) {
20
- cy.get(id).then($cell => {
21
- expect($cell.outerWidth()).to.be.equal(expectedWidth);
22
- });
23
- };
24
-
25
- it("tests if table is rendered", () => {
26
- cy.mount(
27
- <Table id="table">
28
- <TableHeaderRow slot="headerRow">
29
- <TableHeaderCell><span>ColumnA</span></TableHeaderCell>
30
- <TableHeaderCell><span>ColumnB</span></TableHeaderCell>
31
- </TableHeaderRow>
32
- <TableRow>
33
- <TableCell><Label>Cell A</Label></TableCell>
34
- <TableCell><Label>Cell B</Label></TableCell>
35
- </TableRow>
36
- </Table>
37
- );
38
-
39
- cy.get("ui5-table").should("exist");
40
- cy.get("ui5-table-header-row").should("exist");
41
- cy.get("ui5-table-row").should("exist");
42
- cy.get("ui5-table-header-cell").should("have.length", 2);
43
- cy.get("ui5-table-header-row").should("have.attr", "aria-roledescription", "Column Header Row");
44
- });
45
-
46
- it("tests if initial empty table renders without errors", () => {
47
- cy.window().then(window => {
48
- window.addEventListener("unhandledrejection", cy.stub().as("rejection"));
49
-
50
- const table = window.document.createElement("ui5-table");
51
- window.document.body.appendChild(table);
52
-
53
- setTimeout(() => {
54
- const row = window.document.createElement("ui5-table-row");
55
- table.appendChild(row);
56
-
57
- cy.get("@rejection").should("not.be.called");
58
-
59
- table.remove();
60
- }, 100);
61
- });
62
-
63
- // eslint-disable-next-line cypress/no-unnecessary-waiting
64
- cy.wait(500);
65
- });
66
-
67
- it("tests if table is rendered with no data slot", () => {
68
- cy.mount(
69
- <Table id="table">
70
- <TableHeaderRow slot="headerRow">
71
- <TableHeaderCell></TableHeaderCell>
72
- </TableHeaderRow>
73
- <div slot="noData" id="noData">
74
- <Label>No data found</Label>
75
- </div>
76
- </Table>
77
- );
78
-
79
- cy.get("#table").shadow().find('slot[name=noData]').as("noDataSlot");
80
- cy.get("@noDataSlot").should("exist");
81
- cy.get("@noDataSlot").then(($noDataSlot) => {
82
- const noDataElement = ($noDataSlot[0] as HTMLSlotElement).assignedElements()[0];
83
- cy.wrap(noDataElement).should("have.attr", "id", "noData")
84
- });
85
- });
86
-
87
- it("columns have equal widths width default width", () => {
88
- cy.mount(
89
- <Table style="width: 400px;" id="table">
90
- <TableHeaderRow slot="headerRow">
91
- <TableHeaderCell><span>ColumnA</span></TableHeaderCell>
92
- <TableHeaderCell><span>ColumnB</span></TableHeaderCell>
93
- <TableHeaderCell><span>ColumnC</span></TableHeaderCell>
94
- <TableHeaderCell><span>ColumnD</span></TableHeaderCell>
95
- </TableHeaderRow>
96
- <TableRow>
97
- <TableCell><Label>Cell A</Label></TableCell>
98
- <TableCell><Label>Cell B</Label></TableCell>
99
- <TableCell><Label>Cell C</Label></TableCell>
100
- <TableCell><Label>Cell D</Label></TableCell>
101
- </TableRow>
102
- </Table>
103
- );
104
-
105
- const expectedWidth = 100;
106
- cy.get("ui5-table-header-cell").each(($cell) => {
107
- expect($cell.outerWidth()).to.be.equal(expectedWidth);
108
- });
109
- });
110
-
111
- it("columns have width set", () => {
112
- cy.mount(
113
- <Table style="width: 200px;" id="table">
114
- <TableHeaderRow slot="headerRow">
115
- <TableHeaderCell width="100px"><span>ColumnA</span></TableHeaderCell>
116
- <TableHeaderCell width="100px"><span>ColumnB</span></TableHeaderCell>
117
- <TableHeaderCell width="100px"><span>ColumnC</span></TableHeaderCell>
118
- <TableHeaderCell width="100px"><span>ColumnD</span></TableHeaderCell>
119
- </TableHeaderRow>
120
- <TableRow>
121
- <TableCell><Label>Cell A</Label></TableCell>
122
- <TableCell><Label>Cell B</Label></TableCell>
123
- <TableCell><Label>Cell C</Label></TableCell>
124
- <TableCell><Label>Cell D</Label></TableCell>
125
- </TableRow>
126
- </Table>
127
- );
128
-
129
- const expectedWidth = 100;
130
- cy.get("ui5-table-header-cell").each(($cell) => {
131
- expect($cell.outerWidth()).to.be.equal(expectedWidth);
132
- });
133
- });
134
-
135
- it("columns have relative width set", () => {
136
- cy.mount(
137
- <Table style="width: 200px;" id="table">
138
- <TableHeaderRow slot="headerRow">
139
- <TableHeaderCell id="colA" width="10%"><span>ColumnA</span></TableHeaderCell>
140
- <TableHeaderCell id="colB" width="25%"><span>ColumnB</span></TableHeaderCell>
141
- <TableHeaderCell id="colC" width="25%"><span>ColumnC</span></TableHeaderCell>
142
- <TableHeaderCell id="colD" width="40%"><span>ColumnD</span></TableHeaderCell>
143
- </TableHeaderRow>
144
- <TableRow>
145
- <TableCell><Label>Cell A</Label></TableCell>
146
- <TableCell><Label>Cell B</Label></TableCell>
147
- <TableCell><Label>Cell C</Label></TableCell>
148
- <TableCell><Label>Cell D</Label></TableCell>
149
- </TableRow>
150
- </Table>
151
- );
152
-
153
- checkWidth("#colA", 48);
154
- checkWidth("#colB", 50);
155
- checkWidth("#colC", 50);
156
- checkWidth("#colD", 80);
157
-
158
- cy.get("ui5-table").then($table => {
159
- $table.css("width", "800px");
160
- });
161
-
162
- checkWidth("#colA", 80);
163
- checkWidth("#colB", 200);
164
- checkWidth("#colC", 200);
165
- checkWidth("#colD", 320);
166
- });
167
-
168
- it("columns have min-width set", () => {
169
- cy.mount(
170
- <Table style="width: 800px;" id="table">
171
- <TableHeaderRow slot="headerRow">
172
- <TableHeaderCell minWidth="100px"><span>ColumnA</span></TableHeaderCell>
173
- <TableHeaderCell minWidth="100px"><span>ColumnB</span></TableHeaderCell>
174
- <TableHeaderCell minWidth="100px"><span>ColumnC</span></TableHeaderCell>
175
- <TableHeaderCell minWidth="100px"><span>ColumnD</span></TableHeaderCell>
176
- </TableHeaderRow>
177
- <TableRow>
178
- <TableCell><Label>Cell A</Label></TableCell>
179
- <TableCell><Label>Cell B</Label></TableCell>
180
- <TableCell><Label>Cell C</Label></TableCell>
181
- <TableCell><Label>Cell D</Label></TableCell>
182
- </TableRow>
183
- </Table>
184
- );
185
-
186
- cy.get("ui5-table-header-cell").each(($cell) => {
187
- const expectedWidth = 200;
188
- expect($cell.outerWidth()).to.be.equal(expectedWidth);
189
- });
190
-
191
- cy.get("ui5-table").then($table => {
192
- $table.css("width", "400px");
193
- });
194
-
195
- cy.get("ui5-table-header-cell").each(($cell) => {
196
- const expectedWidth = 100;
197
- expect($cell.outerWidth()).to.be.equal(expectedWidth);
198
- });
199
-
200
- cy.get("ui5-table").then($table => {
201
- $table.css("width", "100px");
202
- });
203
-
204
- cy.get("ui5-table-header-cell").each(($cell) => {
205
- const expectedWidth = 100;
206
- expect($cell.outerWidth()).to.be.equal(expectedWidth);
207
- });
208
- });
209
-
210
- it("column width settings combined", () => {
211
- cy.mount(
212
- <Table style="width: 800px;" id="table">
213
- <TableHeaderRow slot="headerRow">
214
- <TableHeaderCell id="colA" minWidth="50px"><span>ColumnA</span></TableHeaderCell>
215
- <TableHeaderCell id="colB" width="300px"><span>ColumnB</span></TableHeaderCell>
216
- <TableHeaderCell id="colC" minWidth="200px" width="50%"><span>ColumnC</span></TableHeaderCell>
217
- <TableHeaderCell id="colD" width="2fr"><span>ColumnD</span></TableHeaderCell>
218
- </TableHeaderRow>
219
- <TableRow>
220
- <TableCell><Label>Cell A</Label></TableCell>
221
- <TableCell><Label>Cell B</Label></TableCell>
222
- <TableCell><Label>Cell C</Label></TableCell>
223
- <TableCell><Label>Cell D</Label></TableCell>
224
- </TableRow>
225
- </Table>
226
- );
227
-
228
- checkWidth("#colA", 50);
229
- checkWidth("#colB", 300);
230
- checkWidth("#colC", 400);
231
- checkWidth("#colD", 50);
232
-
233
- cy.get("ui5-table").then($table => {
234
- $table.css("width", "200px");
235
- });
236
-
237
- checkWidth("#colA", 50);
238
- checkWidth("#colB", 300);
239
- checkWidth("#colC", 200);
240
- // 2fr is being ignored
241
- checkWidth("#colD", 48);
242
- });
243
- });
244
-
245
- describe("Table - Popin Mode", () => {
246
- function checkPopinState(expectedState: { poppedIn: string[], hidden: string[] }) {
247
- cy.get("ui5-table-header-cell").each(($cell, index) => {
248
- const id = $cell.attr("id") ?? "";
249
- const shouldBePoppedIn = expectedState.poppedIn.includes(id);
250
- const shouldBeHidden = expectedState.hidden.includes(id);
251
- const roleCondition = shouldBePoppedIn || shouldBeHidden ? "not.have.attr" : "have.attr";
252
-
253
- cy.wrap($cell)
254
- .should(roleCondition, "role", ROLE_COLUMN_HEADER);
255
- cy.get("ui5-table-header-row")
256
- .shadow()
257
- .find(`slot[name=default-${index + 1}]`)
258
- .should(shouldBePoppedIn || shouldBeHidden ? "not.exist" : "exist");
259
- });
260
-
261
- cy.get("ui5-table-row").each($row => {
262
- cy.wrap($row).find("ui5-table-cell").each(($cell, index) => {
263
- const id = $cell.attr("id") ?? "NOT_FOUND";
264
- const shouldBeHidden = expectedState.hidden.some(hiddenId => id.includes(hiddenId));
265
- cy.wrap($row).shadow().find(`slot[name=default-${index + 1}]`)
266
- .should(shouldBeHidden ? "not.exist" : "exist");
267
- });
268
- });
269
- }
270
-
271
- function mounTable(popinHidden = false) {
272
- cy.mount(
273
- <Table id="table" overflowMode="Popin">
274
- <TableHeaderRow slot="headerRow">
275
- <TableHeaderCell id="colA" minWidth="300px"><span>ColumnA</span></TableHeaderCell>
276
- <TableHeaderCell id="colB" minWidth="200px">Column B</TableHeaderCell>
277
- <TableHeaderCell id="colC" minWidth="200px">Column C</TableHeaderCell>
278
- <TableHeaderCell id="colD" minWidth="150px" popinText="Column ?" popinHidden={popinHidden}>Column D</TableHeaderCell>
279
- </TableHeaderRow>
280
- <TableRow>
281
- <TableCell id="row-1-colA"><Label>Cell A</Label></TableCell>
282
- <TableCell id="row-1-colB"><Label>Cell B</Label></TableCell>
283
- <TableCell id="row-1-colC"><Label>Cell C</Label></TableCell>
284
- <TableCell id="row-1-colD"><Label>Cell D</Label></TableCell>
285
- </TableRow>
286
- <TableRow>
287
- <TableCell id="row-2-colA"><Label>Cell A</Label></TableCell>
288
- <TableCell id="row-2-colB"><Label>Cell B</Label></TableCell>
289
- <TableCell id="row-2-colC"><Label>Cell C</Label></TableCell>
290
- <TableCell id="row-2-colD"><Label>Cell D</Label></TableCell>
291
- </TableRow>
292
- <TableRow>
293
- <TableCell id="row-3-colA"><Label>Cell A</Label></TableCell>
294
- <TableCell id="row-3-colB"><Label>Cell B</Label></TableCell>
295
- <TableCell id="row-3-colC"><Label>Cell C</Label></TableCell>
296
- <TableCell id="row-3-colD"><Label>Cell D</Label></TableCell>
297
- </TableRow>
298
- </Table>
299
- );
300
- }
301
-
302
- it("no pop-in width 'optimal' table width", () => {
303
- mounTable();
304
- cy.get("ui5-table").then($table => {
305
- $table.css("width", "850px");
306
- });
307
-
308
- cy.get("ui5-table")
309
- .should("exist")
310
- .should("have.attr", "overflow-mode", "Popin")
311
- .should("have.css", "width", "850px");
312
- cy.get("ui5-table-header-cell")
313
- .should("have.length", 4);
314
-
315
- checkPopinState({ poppedIn: [], hidden: [] });
316
- });
317
-
318
- it("test with one by one popping in", () => {
319
- mounTable();
320
- const testWidths = [
321
- { width: 850, poppedIn: [] },
322
- { width: 700, poppedIn: ["colD"] },
323
- { width: 500, poppedIn: ["colD", "colC"] },
324
- { width: 300, poppedIn: ["colD", "colC", "colB"] },
325
- { width: 150, poppedIn: ["colD", "colC", "colB"] },
326
- ];
327
-
328
- testWidths.forEach(({ width, poppedIn }) => {
329
- cy.get("ui5-table").then($table => {
330
- $table.css("width", `${width}px`);
331
- });
332
-
333
- checkPopinState({ poppedIn, hidden: [] });
334
- });
335
- });
336
-
337
- it("test with one by one popping out", () => {
338
- mounTable();
339
- const testWidths = [
340
- { width: 150, poppedIn: ["colD", "colC", "colB"] },
341
- { width: 300, poppedIn: ["colD", "colC", "colB"] },
342
- { width: 500, poppedIn: ["colD", "colC"] },
343
- { width: 700, poppedIn: ["colD"] },
344
- { width: 850, poppedIn: [] },
345
- ];
346
-
347
- testWidths.forEach(({ width, poppedIn }) => {
348
- cy.get("ui5-table").then($table => {
349
- $table.css("width", `${width}px`);
350
- });
351
-
352
- checkPopinState({ poppedIn, hidden: [] });
353
- });
354
- });
355
-
356
- it("test with random widths", () => {
357
- mounTable();
358
- const expectedStates = [
359
- { width: 500, poppedIn: ["colD", "colC", "colB"] },
360
- { width: 700, poppedIn: ["colD", "colC"] },
361
- { width: 850, poppedIn: ["colD"] },
362
- { width: Infinity, poppedIn: [] },
363
- ];
364
-
365
- const runs = 10;
366
- for (let i = 0; i < runs; i++) {
367
- const randomWidth = Math.floor(Math.random() * 1000) + 1;
368
- cy.get("ui5-table").then($table => {
369
- $table.css("width", `${randomWidth}px`);
370
- });
371
-
372
- const expectedState = expectedStates.find(state => state.width >= randomWidth);
373
- checkPopinState({ poppedIn: expectedState?.poppedIn ?? [], hidden: [] });
374
- }
375
- });
376
-
377
- it("should show the popin-text in the popin area", () => {
378
- mounTable();
379
- cy.get("ui5-table").then($table => {
380
- $table.css("width", "150px");
381
- });
382
-
383
- // eslint-disable-next-line cypress/no-unnecessary-waiting
384
- cy.wait(50);
385
-
386
- cy.get("ui5-table").then($table => {
387
- let popinCellCount = 0;
388
- let validPopinTextCount = 0;
389
- const table = $table[0] as Table;
390
- // eslint-disable-next-line no-restricted-syntax
391
- for (const row of table.rows) {
392
- // eslint-disable-next-line no-restricted-syntax
393
- for (const cell of row.cells) {
394
- if (cell._popin) {
395
- popinCellCount++;
396
- const popinText = cell._headerCell.popinText || cell._headerCell.textContent;
397
- if (cell.shadowRoot!.textContent === `${popinText}:`) {
398
- validPopinTextCount++;
399
- }
400
- }
401
- }
402
- }
403
- return popinCellCount && popinCellCount === validPopinTextCount;
404
- }).should("be.true");
405
- });
406
-
407
- it("should hide column in popin if popinHidden is set", () => {
408
- mounTable(true);
409
-
410
- const testWidths = [
411
- { width: 150, poppedIn: ["colC", "colB"], hidden: ["colD"] },
412
- { width: 300, poppedIn: ["colC", "colB"], hidden: ["colD"] },
413
- { width: 500, poppedIn: ["colC"], hidden: ["colD"] },
414
- { width: 700, poppedIn: [], hidden: ["colD"] },
415
- { width: 850, poppedIn: [], hidden: [] },
416
- ];
417
-
418
- testWidths.forEach(({ width, poppedIn, hidden }) => {
419
- cy.get("ui5-table").then($table => {
420
- $table.css("width", `${width}px`);
421
- });
422
-
423
- checkPopinState({ poppedIn, hidden });
424
- });
425
- });
426
-
427
- it("should hide popin if popinHidden, shows it if changed on runtime", () => {
428
- mounTable(true);
429
- cy.get("ui5-table").then($table => {
430
- $table.css("width", "150px");
431
- });
432
-
433
- checkPopinState({ poppedIn: ["colC", "colB"], hidden: ["colD"] });
434
-
435
- cy.get("#colD")
436
- .invoke("removeAttr", "popin-hidden");
437
-
438
- checkPopinState({ poppedIn: ["colC", "colB", "colD"], hidden: [] });
439
- });
440
- });
441
-
442
- describe("Table - Horizontal alignment of cells", () => {
443
- function check(id: string, index: number, alignment: string) {
444
- cy.get(id)
445
- .should("have.css", "justify-content", alignment)
446
- .and($el => {
447
- const style = $el.attr("style");
448
- const variable = style?.match(/justify-content: ([^;]+)/)?.[1] ?? "";
449
- expect(variable).to.equal(`var(--horizontal-align-default-${index})`);
450
- });
451
-
452
- cy.get("ui5-table-row")
453
- .get(`ui5-table-cell:nth-of-type(${index})`)
454
- .should("have.css", "justify-content", alignment);
455
- }
456
-
457
- beforeEach(() => {
458
- cy.mount(
459
- <Table id="table" overflowMode="Popin" style={{ width: "1120px" }}>
460
- <TableHeaderRow slot="headerRow">
461
- <TableHeaderCell id="productCol" width="300px"><span>Product</span></TableHeaderCell>
462
- <TableHeaderCell id="supplierCol" horizontalAlign="Center" width="200px">Supplier</TableHeaderCell>
463
- <TableHeaderCell id="dimensionsCol" horizontalAlign="Right" width="300px">Dimensions</TableHeaderCell>
464
- <TableHeaderCell id="weightCol" width="100px">Weight</TableHeaderCell>
465
- <TableHeaderCell id="priceCol" width="220px">Price</TableHeaderCell>
466
- </TableHeaderRow>
467
- <TableRow>
468
- <TableCell><Label><b>Notebook Basic 15</b><br></br>HT-1000</Label></TableCell>
469
- <TableCell><Label>Very Best Screens</Label></TableCell>
470
- <TableCell><Label>30 x 18 x 3 cm</Label></TableCell>
471
- <TableCell><Label style={{ color: "#2b7c2b" }}><b>4.2</b> KG</Label></TableCell>
472
- <TableCell><Label><b>956</b> EUR</Label></TableCell>
473
- </TableRow>
474
- <TableRow>
475
- <TableCell><Label><b>Notebook Basic 17</b><br></br>HT-1001</Label></TableCell>
476
- <TableCell><Label>Smartcards</Label></TableCell>
477
- <TableCell><Label>29 x 17 x 3.1 cm</Label></TableCell>
478
- <TableCell><Label style={{ color: "#2b7c2b" }}><b>4.5</b> KG</Label></TableCell>
479
- <TableCell><Label><b>1249</b> EUR</Label></TableCell>
480
- </TableRow>
481
- <TableRow>
482
- <TableCell><Label><b>Notebook Basic 18</b><br></br>HT-1002</Label></TableCell>
483
- <TableCell><Label>Technocom</Label></TableCell>
484
- <TableCell><Label>32 x 21 x 4 cm</Label></TableCell>
485
- <TableCell><Label style={{ color: "#2b7c2b" }}><b>3.7</b> KG</Label></TableCell>
486
- <TableCell><Label><b>29</b> EUR</Label></TableCell>
487
- </TableRow>
488
- </Table>
489
- );
490
-
491
- cy.get("[ui5-table]")
492
- .should("be.visible");
493
- });
494
-
495
- it("default alignment when horizotal align is not set", () => {
496
- check("#productCol", 1, "normal");
497
- });
498
-
499
- it("alignment is set correctly during runtime", () => {
500
- const alignments = ["Left", "Start", "Right", "End", "Center"];
501
-
502
- alignments.forEach(alignment => {
503
- cy.get("#productCol")
504
- .invoke("attr", "horizontal-align", alignment)
505
- .should("have.attr", "horizontal-align", alignment);
506
- check("#productCol", 1, alignment.toLowerCase());
507
- });
508
- });
509
-
510
- it("alignment is normal if set to unknown value", () => {
511
- cy.get("#productCol")
512
- .invoke("attr", "horizontal-align", "UnknownValue")
513
- .should("have.attr", "horizontal-align", "UnknownValue");
514
- check("#productCol", 1, "normal");
515
- });
516
-
517
- it("alignment cells have same alignment as header cell on init time", () => {
518
- check("#supplierCol", 2, "center");
519
- check("#dimensionsCol", 3, "right");
520
- });
521
-
522
- it("cells should change alignment when changing headerCell alignment", () => {
523
- check("#supplierCol", 2, "center");
524
-
525
- cy.get("#supplierCol")
526
- .invoke("attr", "horizontal-align", "End");
527
-
528
- cy.get("#supplierCol")
529
- .should("have.attr", "horizontal-align", "End");
530
-
531
- check("#supplierCol", 2, "end");
532
- });
533
-
534
- it("single cell alignment does not affect other cells and is not affected by header cell alignment", () => {
535
- check("#supplierCol", 2, "center");
536
-
537
- cy.get("ui5-table-row:nth-of-type(2) > ui5-table-cell:nth-child(2)")
538
- .invoke("attr", "horizontal-align", "Start");
539
-
540
- cy.get("ui5-table-row:nth-of-type(2) > ui5-table-cell:nth-child(2)")
541
- .should("have.attr", "horizontal-align", "Start")
542
- .should("have.css", "justify-content", "start");
543
-
544
- cy.get("#supplierCol")
545
- .should("have.css", "justify-content", "center");
546
-
547
- cy.get("ui5-table-row:nth-of-type(3) > ui5-table-cell:nth-child(2)")
548
- .should("have.css", "justify-content", "center");
549
-
550
- cy.get("ui5-table-row:nth-of-type(1) > ui5-table-cell:nth-child(2)")
551
- .should("have.css", "justify-content", "center");
552
-
553
- // Change alignment of header cell => should not affect custom cell alignment
554
- cy.get("#supplierCol")
555
- .invoke("attr", "horizontal-align", "End");
556
-
557
- cy.get("#supplierCol")
558
- .should("have.attr", "horizontal-align", "End");
559
-
560
- cy.get("ui5-table-row:nth-of-type(2) > ui5-table-cell:nth-child(2)")
561
- .should("have.attr", "horizontal-align", "Start")
562
- .should("have.css", "justify-content", "start");
563
-
564
- cy.get("ui5-table-row:nth-of-type(3) > ui5-table-cell:nth-child(2)")
565
- .should("have.css", "justify-content", "end");
566
-
567
- cy.get("ui5-table-row:nth-of-type(1) > ui5-table-cell:nth-child(2)")
568
- .should("have.css", "justify-content", "end");
569
- });
570
-
571
- it("alignment with popin", () => {
572
- const testWidths = [
573
- { width: 1120, poppedIn: [] },
574
- { width: 900, poppedIn: ["priceCol"] },
575
- { width: 800, poppedIn: ["priceCol", "weightCol"] },
576
- { width: 500, poppedIn: ["priceCol", "weightCol", "dimensionsCol"] },
577
- { width: 300, poppedIn: ["priceCol", "weightCol", "dimensionsCol", "supplierCol"] },
578
- ];
579
- const alignments = {
580
- "productCol": "normal",
581
- "supplierCol": "center",
582
- "dimensionsCol": "right",
583
- "weightCol": "normal",
584
- "priceCol": "normal",
585
- "none": "",
586
- };
587
-
588
- testWidths.forEach(({ width, poppedIn }) => {
589
- cy.get("ui5-table").then($table => {
590
- $table.css("width", `${width}px`);
591
- });
592
-
593
- cy.get("ui5-table-header-cell").each(($cell, index) => {
594
- const id = $cell.attr("id") as keyof typeof alignments ?? "none";
595
- const shouldBePoppedIn = poppedIn.includes(id);
596
-
597
- if (shouldBePoppedIn) {
598
- check(`#${id}`, index + 1, "normal");
599
- } else {
600
- check(`#${id}`, index + 1, alignments[id]);
601
- }
602
- });
603
- });
604
- });
605
- });
606
-
607
- describe("Table - Fixed Header", () => {
608
- function check(topOffset: number, lastRow: string) {
609
- cy.get("ui5-table-header-row")
610
- .should("have.css", "position", "sticky")
611
- .should("have.css", "top", `${topOffset}px`);
612
-
613
- cy.get(lastRow)
614
- .scrollIntoView();
615
-
616
- cy.get("ui5-table-header-row")
617
- .then($header => {
618
- const headerRect = $header[0].getBoundingClientRect();
619
- expect(headerRect.top).to.be.eq(topOffset);
620
- });
621
- }
622
-
623
- beforeEach(() => {
624
- cy.window().then(window => {
625
- window.document.body.style.margin = "0";
626
- window.document.body.style.padding = "0";
627
- });
628
- });
629
-
630
- it("fixed header with scrollable wrapping container", () => {
631
- cy.mount(
632
- <div style={{ height: "300px", overflow: "auto" }}>
633
- <Bar
634
- id="toolbar"
635
- design="Header"
636
- style={{
637
- position: "sticky",
638
- top: 0,
639
- "z-index": 2,
640
- height: "50px"
641
- }}>
642
- <Title tabindex={0} level="H3" id="title" slot="startContent">My Selectable Products (3)</Title>
643
- <Slider id="slider" min={0} max={100} step={1} value={100} labelInterval={0}></Slider>
644
- </Bar>
645
- <Table id="table0" overflowMode="Popin" stickyTop="50px" accessibleNameRef="title" noDataText="No data found">
646
- <TableHeaderRow sticky slot="headerRow">
647
- <TableHeaderCell id="colA" minWidth="300px"><span>ColumnA</span></TableHeaderCell>
648
- <TableHeaderCell id="colB" minWidth="200px">Column B</TableHeaderCell>
649
- <TableHeaderCell id="colC" minWidth="200px">Column C</TableHeaderCell>
650
- <TableHeaderCell id="colD" minWidth="150px">Column D</TableHeaderCell>
651
- </TableHeaderRow>
652
- ${Array.from({ length: 20 }).map((val, index) =>
653
- <TableRow id={`row-${index + 1}`}><TableCell></TableCell> <TableCell></TableCell> <TableCell></TableCell> <TableCell></TableCell> </TableRow>
654
- )}
655
- </Table>
656
- </div>
657
- );
658
-
659
- check(50, "#row-20");
660
- });
661
-
662
- it("fixed header with table being scrollable", () => {
663
- cy.mount(
664
- <Table id="table" overflowMode="Popin" stickyTop="0" accessibleNameRef="title" noDataText="No data found" style={{ height: "300px", overflow: "auto" }}>
665
- <TableHeaderRow sticky slot="headerRow">
666
- <TableHeaderCell id="colA" minWidth="300px"><span>ColumnA</span></TableHeaderCell>
667
- <TableHeaderCell id="colB" minWidth="200px">Column B</TableHeaderCell>
668
- <TableHeaderCell id="colC" minWidth="200px">Column C</TableHeaderCell>
669
- <TableHeaderCell id="colD" minWidth="150px">Column D</TableHeaderCell>
670
- </TableHeaderRow>
671
- ${Array.from({ length: 20 }).map((val, index) =>
672
- <TableRow id={`row-${index + 1}`}><TableCell></TableCell> <TableCell></TableCell> <TableCell></TableCell> <TableCell></TableCell> </TableRow>
673
- )}
674
- </Table>
675
- );
676
-
677
- check(0, "#row-20");
678
- });
679
-
680
- it("fixed header with body being scroll container", () => {
681
- cy.mount(
682
- <>
683
- <Bar
684
- id="toolbar2"
685
- design="Header"
686
- style={{
687
- position: "sticky",
688
- top: 0,
689
- "z-index": 2,
690
- height: "50px"
691
- }}>
692
- <Title tabindex={0} level="H3" id="title" slot="startContent">My Selectable Products (3)</Title>
693
- <Slider id="slider" min={0} max={100} step={1} value={100} labelInterval={0}></Slider>
694
- </Bar>
695
- <Table id="table" overflowMode="Popin" stickyTop="50px" accessibleNameRef="title" noDataText="No data found">
696
- <TableHeaderRow sticky slot="headerRow">
697
- <TableHeaderCell id="colA" minWidth="300px"><span>ColumnA</span></TableHeaderCell>
698
- <TableHeaderCell id="colB" minWidth="200px">Column B</TableHeaderCell>
699
- <TableHeaderCell id="colC" minWidth="200px">Column C</TableHeaderCell>
700
- <TableHeaderCell id="colD" minWidth="150px">Column D</TableHeaderCell>
701
- </TableHeaderRow>
702
- ${Array.from({ length: 100 }).map((val, index) =>
703
- <TableRow id={`row-${index + 1}`}><TableCell></TableCell> <TableCell></TableCell> <TableCell></TableCell> <TableCell></TableCell> </TableRow>
704
- )}
705
- </Table>
706
- </>
707
- );
708
-
709
- check(50, "#row-100");
710
- });
711
- });
712
-
713
- describe("Table - Horizontal Scrolling", () => {
714
- beforeEach(() => {
715
- cy.mount(
716
- <Table id="table" overflowMode="Scroll" stickyTop="0px" style={{ width: "300px", overflow: "auto" }} accessibleNameRef="title">
717
- <TableSelectionMulti id="selection" selected="0 2" slot="features"></TableSelectionMulti>
718
- <TableHeaderRow slot="headerRow" sticky>
719
- <TableHeaderCell id="produtCol" width="200px"><span>Product</span></TableHeaderCell>
720
- <TableHeaderCell id="supplierCol" width="200px">Supplier</TableHeaderCell>
721
- <TableHeaderCell id="dimensionsCol" width="200px">Dimensions</TableHeaderCell>
722
- <TableHeaderCell id="weightCol" width="200px">Weight</TableHeaderCell>
723
- <TableHeaderCell id="priceCol" width="200px">Price</TableHeaderCell>
724
- </TableHeaderRow>
725
- <TableRow id="firstRow" navigated={true} key="0">
726
- <TableCell><Label><b>Notebook Basic 15</b><br /><a href="#">HT-1000</a></Label></TableCell>
727
- <TableCell><Label>Very Best Screens</Label></TableCell>
728
- <TableCell><Label>30 x 18 x 3 cm</Label></TableCell>
729
- <TableCell><Label style="color: #2b7c2b"><b>4.2</b> KG</Label></TableCell>
730
- <TableCell id="lastCell"><Label><b>956</b> EUR</Label></TableCell>
731
- </TableRow>
732
- <TableRow key="1">
733
- <TableCell><Label><b>Notebook Basic 16</b><br /><a href="#">HT-1001</a></Label></TableCell>
734
- <TableCell><Label>Smartcards</Label></TableCell>
735
- <TableCell><Input value="29 x 17 x 3.1 cm" accessibleNameRef="dimensionsCol"></Input></TableCell>
736
- <TableCell><Label style="color: #2b7c2b"><b>4.5</b> KG</Label></TableCell>
737
- <TableCell><Label><b>1249</b> EUR</Label></TableCell>
738
- </TableRow>
739
- <TableRow key="2" interactive>
740
- <TableCell><Label><b>Notebook Basic 17</b><br /><a href="#">HT-1002</a></Label></TableCell>
741
- <TableCell><Label>Technocom</Label></TableCell>
742
- <TableCell><Label>32 x 21 x 4 cm</Label></TableCell>
743
- <TableCell><Label style="color: #2b7c2b"><b>3.7</b> KG</Label></TableCell>
744
- <TableCell><Label><b>29</b> EUR</Label></TableCell>
745
- </TableRow>
746
- <TableRow key="3">
747
- <TableCell><Label><b>Notebook Basic 18</b><br /><a href="#">HT-1003</a></Label></TableCell>
748
- <TableCell><Label>Technocom</Label></TableCell>
749
- <TableCell><Label>32 x 21 x 4 cm</Label></TableCell>
750
- <TableCell><Label style="color: #2b7c2b"><b>3.7</b> KG</Label></TableCell>
751
- <TableCell><Label><b>29</b> EUR</Label></TableCell>
752
- </TableRow>
753
- <TableRow key="4">
754
- <TableCell><Label><b>Notebook Basic 19</b><br /><a href="#">HT-1004</a></Label></TableCell>
755
- <TableCell><Label>Technocom</Label></TableCell>
756
- <TableCell><Label>32 x 21 x 4 cm</Label></TableCell>
757
- <TableCell><Label style="color: #2b7c2b"><b>3.7</b> KG</Label></TableCell>
758
- <TableCell><Label><b>29</b> EUR</Label></TableCell>
759
- </TableRow>
760
- <TableRow key="5">
761
- <TableCell><Label><b>Notebook Basic 20</b><br /><a href="#">HT-1005</a></Label></TableCell>
762
- <TableCell><Label>Technocom</Label></TableCell>
763
- <TableCell><Label>32 x 21 x 4 cm</Label></TableCell>
764
- <TableCell><Label style="color: #2b7c2b"><b>3.7</b> KG</Label></TableCell>
765
- <TableCell><Label><b>29</b> EUR</Label></TableCell>
766
- </TableRow>
767
- <TableRow key="6" interactive>
768
- <TableCell><Label><b>Notebook Basic 21</b><br /><a href="#">HT-1006</a></Label></TableCell>
769
- <TableCell><Label>Technocom</Label></TableCell>
770
- <TableCell><Label>32 x 21 x 4 cm</Label></TableCell>
771
- <TableCell><Label style="color: #2b7c2b"><b>3.7</b> KG</Label></TableCell>
772
- <TableCell><Label><b>29</b> EUR</Label></TableCell>
773
- </TableRow>
774
- </Table>
775
- );
776
-
777
- cy.get("[ui5-table]")
778
- .should("be.visible");
779
- });
780
-
781
- it("navigated indidcator is fixed to the right", () => {
782
- cy.get("#lastCell")
783
- .then($lastCell => {
784
- $lastCell[0].scrollIntoView();
785
- });
786
-
787
- cy.get("#firstRow")
788
- .shadow()
789
- .find("#navigated-cell")
790
- .should("have.css", "position", "sticky")
791
- .should("have.css", "right", "0px");
792
- });
793
-
794
- it("selection column should be fixed to the left", () => {
795
- cy.get("#lastCell")
796
- .then($lastCell => {
797
- $lastCell[0].scrollIntoView();
798
- });
799
-
800
- cy.get("#firstRow")
801
- .shadow()
802
- .find("#selection-cell")
803
- .should("have.css", "position", "sticky")
804
- .and($selectionCell => {
805
- const selectionRect = $selectionCell[0].getBoundingClientRect();
806
- expect(selectionRect.left).to.be.eq(0);
807
- });
808
-
809
- cy.get("#table")
810
- .shadow()
811
- .find("#table")
812
- .should($table => {
813
- const leftOffset = $table[0].scrollLeft;
814
- expect(leftOffset).to.be.greaterThan(0);
815
- });
816
- });
817
- });
818
-
819
- describe("Table - Navigated Rows", () => {
820
- it("Navigated cell is rendered", () => {
821
- cy.mount(
822
- <Table id="table1">
823
- <TableHeaderRow slot="headerRow">
824
- <TableHeaderCell id="colA"><span>ColumnA</span></TableHeaderCell>
825
- </TableHeaderRow>
826
- <TableRow id="row1" navigated={true}>
827
- <TableCell><Label>Cell A</Label></TableCell>
828
- </TableRow>
829
- <TableRow id="row2">
830
- <TableCell><Label>Cell A</Label></TableCell>
831
- </TableRow>
832
- </Table>
833
- );
834
-
835
- cy.get("#row1")
836
- .shadow()
837
- .find("#navigated-cell")
838
- .should("exist")
839
- .should("have.attr", "data-excluded-from-navigation");
840
-
841
- cy.get("#row2")
842
- .shadow()
843
- .find("#navigated-cell")
844
- .should("exist")
845
- .should("have.attr", "data-excluded-from-navigation");
846
-
847
- cy.get("#row1")
848
- .shadow()
849
- .find("#navigated")
850
- .as("navigated1");
851
-
852
- cy.get("#row2")
853
- .shadow()
854
- .find("#navigated")
855
- .then($navigated2 => {
856
- cy.get("@navigated1")
857
- .should($navigated1 => {
858
- const nav1BG = getComputedStyle($navigated1[0]).backgroundColor;
859
- const nav2BG = getComputedStyle($navigated2[0]).backgroundColor;
860
- expect(nav1BG).to.not.be.eq(nav2BG);
861
- });
862
- });
863
-
864
- cy.get("#table1")
865
- .shadow()
866
- .find("#table")
867
- .should($table => {
868
- const gridTemplateColumns = $table[0].style.gridTemplateColumns;
869
- // eslint-disable-next-line no-unused-expressions
870
- expect(gridTemplateColumns.endsWith("table_navigated_cell_width)")).to.be.true;
871
- });
872
- });
873
- });
874
-
875
- describe("Table - Interactive Rows", () => {
876
- it("fires the row-click event", () => {
877
- cy.mount(
878
- <Table id="table1">
879
- <TableSelectionMulti id="selection" selected="1 2" slot="features"></TableSelectionMulti>
880
- <TableHeaderRow id="headerRow" slot="headerRow">
881
- <TableHeaderCell>ColumnA</TableHeaderCell>
882
- <TableHeaderCell>ColumnB</TableHeaderCell>
883
- </TableHeaderRow>
884
- <TableRow id="row1" rowKey="1">
885
- <TableCell><Label>Cell A</Label></TableCell>
886
- <TableCell><Button>Cell B</Button></TableCell>
887
- </TableRow>
888
- <TableRow id="row2" rowKey="2" interactive={true}>
889
- <TableCell><Label>Cell A</Label></TableCell>
890
- <TableCell><Button>Cell B</Button></TableCell>
891
- </TableRow>
892
- </Table>
893
- );
894
-
895
- cy.get("#table1").invoke("on", "row-click", cy.stub().as("rowClickHandler"));
896
- cy.get("#row1").realClick();
897
- cy.get("@rowClickHandler").should("not.have.been.called");
898
- cy.get("#row1").realPress("Enter");
899
- cy.get("@rowClickHandler").should("not.have.been.called");
900
-
901
- cy.get("#row2").realClick();
902
- cy.get("@rowClickHandler").invoke("getCall", 0).its("args.0.detail.row").as("clickedRow");
903
- cy.get("@clickedRow").should("have.attr", "id", "row2");
904
- cy.get("#row2").realPress("Enter");
905
- cy.get("@rowClickHandler").should("have.been.calledTwice");
906
-
907
- cy.get("#row2").find("ui5-label").realClick();
908
- cy.get("@rowClickHandler").should("have.been.calledThrice");
909
-
910
- cy.get("#row2").find("ui5-button").as("row2button");
911
- cy.get("@row2button").invoke("on", "click", cy.stub().as("buttonClickHandler"));
912
- cy.get("@row2button").realClick();
913
- cy.get("@buttonClickHandler").should("have.been.calledOnce");
914
- cy.get("@rowClickHandler").should("have.been.calledThrice");
915
-
916
- cy.get("@row2button").realPress("Enter");
917
- cy.get("@buttonClickHandler").should("have.been.calledTwice");
918
- cy.get("@rowClickHandler").should("have.been.calledThrice");
919
-
920
- cy.get("@row2button").realPress("Space");
921
- cy.get("@buttonClickHandler").should("have.been.calledThrice");
922
- cy.get("@rowClickHandler").should("have.been.calledThrice");
923
- });
924
- });
925
-
926
- describe("Table - HeaderCell", () => {
927
- beforeEach(() => {
928
- cy.mount(
929
- <Table overflowMode="Popin">
930
- <TableHeaderRow slot="headerRow">
931
- <TableHeaderCell minWidth="300px">Column A</TableHeaderCell>
932
- <TableHeaderCell minWidth="200px" sortIndicator="Ascending">
933
- <Label required wrappingType="None">Column B</Label>
934
- <TableHeaderCellActionAI slot="action"></TableHeaderCellActionAI>
935
- </TableHeaderCell>
936
- <TableHeaderCell minWidth="150px" popinText="Popin Text">
937
- <Label required>Column C</Label>
938
- </TableHeaderCell>
939
- </TableHeaderRow>
940
- <TableRow>
941
- <TableCell>Cell A</TableCell>
942
- <TableCell>Cell B</TableCell>
943
- <TableCell>Cell C</TableCell>
944
- </TableRow>
945
- <TableRow>
946
- <TableCell>Cell A</TableCell>
947
- <TableCell>Cell B</TableCell>
948
- <TableCell>Cell C</TableCell>
949
- </TableRow>
950
- </Table>
951
- );
952
- cy.get("[ui5-table]").as("table").children("ui5-table-row").as("rows");
953
- cy.get("@table").children("ui5-table-header-row").first().as("headerRow");
954
- cy.get("@headerRow").get("ui5-table-header-cell").each(($headerCell, index) => {
955
- cy.wrap($headerCell).as(`headerCell${index + 1}`);
956
- });
957
- cy.get("@rows").each(($row, index) => {
958
- cy.wrap($row).as(`row${index + 1}`);
959
- });
960
- });
961
-
962
- it("should render header-cell correctly", () => {
963
- cy.get("@headerCell1").contains("Column A");
964
- cy.get("@headerCell2").should("have.attr", "aria-sort", "ascending");
965
- cy.get("@headerCell2").find("ui5-table-header-cell-action-ai").as("actionB");
966
- cy.get("@actionB").should("not.have.attr", "_popin");
967
- cy.get("@actionB").shadow().find("ui5-button").as("actionBbutton");
968
- cy.get("@actionBbutton").should("have.attr", "icon", "ai");
969
- cy.get("@actionBbutton").should("have.attr", "tooltip", "Generated by AI");
970
- cy.get("@actionB").invoke("on", "click", cy.stub().as("actionBclick"));
971
- cy.get("@actionBbutton").realClick();
972
- cy.get("@actionBclick").should("have.been.calledOnce");
973
- cy.get("@headerCell2").shadow().find("ui5-icon").as("actionBicon");
974
- cy.get("@actionBicon").should("have.attr", "name", "sort-ascending");
975
-
976
- cy.get("@headerCell2").invoke("attr", "sort-indicator", "Descending");
977
- cy.get("@headerCell2").shadow().find("ui5-icon").should("have.attr", "name", "sort-descending");
978
- cy.get("@actionBicon").should("have.attr", "name", "sort-descending");
979
- cy.get("@headerCell2").should("have.attr", "aria-sort", "descending");
980
-
981
- cy.get("@headerCell2").invoke("attr", "sort-indicator", "None");
982
- cy.get("@headerCell2").shadow().find("ui5-icon").should("not.exist");
983
- cy.get("@headerCell2").should("not.have.attr", "aria-sort");
984
-
985
- cy.get("@table").invoke("css", "width", "250px");
986
- // eslint-disable-next-line cypress/no-unnecessary-waiting
987
- cy.wait(50);
988
-
989
- cy.get("@row1").find("ui5-table-cell[_popin]").as("row1popins");
990
- cy.get("@row1popins").first().as("row1popinB");
991
- cy.get("@row1popinB").shadow().find("ui5-table-header-cell-action-ai").as("row1popinBaction");
992
- cy.get("@row1popinBaction").should("have.attr", "_popin");
993
- cy.get("@row1popinBaction").shadow().find("ui5-button").as("row1popinBbutton");
994
- cy.get("@row1popinBbutton").should("have.attr", "icon", "ai");
995
- cy.get("@row1popinBbutton").should("have.attr", "design", "Transparent");
996
- cy.get("@row1popinBbutton").should("have.attr", "tooltip", "Generated by AI");
997
- cy.get("@row1popinBbutton").realClick();
998
- cy.get("@actionBclick").invoke("getCall", 1).its("args.0.detail.targetRef").as("actionBclickTarget");
999
- cy.get("@actionBclickTarget").should("have.attr", "icon", "ai");
1000
- cy.get("@actionBclickTarget").should("have.attr", "design", "Transparent");
1001
- cy.get("@actionBclickTarget").should("have.attr", "tooltip", "Generated by AI");
1002
-
1003
- cy.get("@row1popinB").shadow().find("ui5-label").as("row1popinBlabel");
1004
- cy.get("@row1popinBlabel").contains("Column B");
1005
- cy.get("@row1popinBlabel").should("have.attr", "wrapping-type", "None");
1006
- cy.get("@row1popinBlabel").should("have.attr", "required");
1007
-
1008
- cy.get("@row1popins").last().as("row1popinC");
1009
- cy.get("@row1popinC").shadow().find("ui5-label").should("not.exist");
1010
- cy.get("@row1popinC").shadow().should("have.text", "Popin Text:");
1011
- cy.get("@row1popinC").should("have.text", "Cell C");
1012
-
1013
- cy.get("@row2").find("ui5-table-cell[_popin]").as("row2popins");
1014
- cy.get("@row2popins").first().as("row2popinB");
1015
- cy.get("@row2popinB").shadow().find("ui5-table-header-cell-action-ai").as("row2popinBaction");
1016
- cy.get("@row2popinBaction").shadow().find("ui5-button").as("row2popinBbutton");
1017
- cy.get("@row2popinBbutton").should("have.attr", "icon", "ai");
1018
- cy.get("@row2popinBbutton").should("have.attr", "tooltip", "Generated by AI");
1019
- cy.get("@row2popinBbutton").realClick();
1020
- cy.get("@actionBclick").invoke("getCall", 2).its("args.0.detail.targetRef").as("actionBclickTarget");
1021
- cy.get("@actionBclickTarget").should("have.attr", "icon", "ai");
1022
- cy.get("@actionBclickTarget").should("have.attr", "design", "Transparent");
1023
- cy.get("@actionBclickTarget").should("have.attr", "tooltip", "Generated by AI");
1024
- });
1025
- });