@ui5/webcomponents 2.12.0-rc.0 → 2.12.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 (535) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/AvatarGroup.d.ts +17 -1
  4. package/dist/AvatarGroup.js +11 -0
  5. package/dist/AvatarGroup.js.map +1 -1
  6. package/dist/Calendar.d.ts +3 -0
  7. package/dist/Calendar.js +3 -0
  8. package/dist/Calendar.js.map +1 -1
  9. package/dist/CalendarHeaderTemplate.js +3 -3
  10. package/dist/CalendarHeaderTemplate.js.map +1 -1
  11. package/dist/CalendarTemplate.js +1 -1
  12. package/dist/CalendarTemplate.js.map +1 -1
  13. package/dist/Menu.d.ts +18 -3
  14. package/dist/Menu.js +60 -12
  15. package/dist/Menu.js.map +1 -1
  16. package/dist/MenuItem.d.ts +47 -12
  17. package/dist/MenuItem.js +119 -20
  18. package/dist/MenuItem.js.map +1 -1
  19. package/dist/MenuItemGroup.d.ts +75 -0
  20. package/dist/MenuItemGroup.js +127 -0
  21. package/dist/MenuItemGroup.js.map +1 -0
  22. package/dist/MenuItemGroupTemplate.d.ts +2 -0
  23. package/dist/MenuItemGroupTemplate.js +5 -0
  24. package/dist/MenuItemGroupTemplate.js.map +1 -0
  25. package/dist/MenuItemTemplate.js +5 -1
  26. package/dist/MenuItemTemplate.js.map +1 -1
  27. package/dist/MenuSeparator.d.ts +2 -0
  28. package/dist/MenuSeparator.js +4 -0
  29. package/dist/MenuSeparator.js.map +1 -1
  30. package/dist/MonthPickerTemplate.js +1 -1
  31. package/dist/MonthPickerTemplate.js.map +1 -1
  32. package/dist/Popover.d.ts +2 -2
  33. package/dist/Popover.js +29 -7
  34. package/dist/Popover.js.map +1 -1
  35. package/dist/StepInput.d.ts +1 -1
  36. package/dist/StepInput.js +5 -7
  37. package/dist/StepInput.js.map +1 -1
  38. package/dist/Switch.d.ts +8 -1
  39. package/dist/Switch.js +14 -1
  40. package/dist/Switch.js.map +1 -1
  41. package/dist/Table.d.ts +1 -0
  42. package/dist/Table.js +4 -1
  43. package/dist/Table.js.map +1 -1
  44. package/dist/TableHeaderRow.d.ts +4 -0
  45. package/dist/TableHeaderRow.js +13 -1
  46. package/dist/TableHeaderRow.js.map +1 -1
  47. package/dist/TableHeaderRowTemplate.js +13 -4
  48. package/dist/TableHeaderRowTemplate.js.map +1 -1
  49. package/dist/TableRow.js +2 -2
  50. package/dist/TableRow.js.map +1 -1
  51. package/dist/TableRowBase.d.ts +1 -1
  52. package/dist/TableRowBase.js +2 -2
  53. package/dist/TableRowBase.js.map +1 -1
  54. package/dist/TableRowTemplate.js +1 -1
  55. package/dist/TableRowTemplate.js.map +1 -1
  56. package/dist/TableSelectionMulti.d.ts +9 -0
  57. package/dist/TableSelectionMulti.js +23 -5
  58. package/dist/TableSelectionMulti.js.map +1 -1
  59. package/dist/Toast.js +1 -3
  60. package/dist/Toast.js.map +1 -1
  61. package/dist/YearPickerTemplate.js +1 -1
  62. package/dist/YearPickerTemplate.js.map +1 -1
  63. package/dist/bundle.esm.js +1 -0
  64. package/dist/bundle.esm.js.map +1 -1
  65. package/dist/css/themes/Avatar.css +1 -1
  66. package/dist/css/themes/AvatarGroup.css +1 -1
  67. package/dist/css/themes/Bar.css +1 -1
  68. package/dist/css/themes/Breadcrumbs.css +1 -1
  69. package/dist/css/themes/BusyIndicator.css +1 -1
  70. package/dist/css/themes/Button.css +1 -1
  71. package/dist/css/themes/ButtonBadge.css +1 -1
  72. package/dist/css/themes/Calendar.css +1 -1
  73. package/dist/css/themes/CalendarHeader.css +1 -1
  74. package/dist/css/themes/CalendarLegend.css +1 -1
  75. package/dist/css/themes/CalendarLegendItem.css +1 -1
  76. package/dist/css/themes/Card.css +1 -1
  77. package/dist/css/themes/CardHeader.css +1 -1
  78. package/dist/css/themes/Carousel.css +1 -1
  79. package/dist/css/themes/CheckBox.css +1 -1
  80. package/dist/css/themes/ColorPalette.css +1 -1
  81. package/dist/css/themes/ColorPaletteItem.css +1 -1
  82. package/dist/css/themes/ColorPalettePopover.css +1 -1
  83. package/dist/css/themes/ColorPicker.css +1 -1
  84. package/dist/css/themes/ComboBox.css +1 -1
  85. package/dist/css/themes/ComboBoxItem.css +1 -1
  86. package/dist/css/themes/DatePicker.css +1 -1
  87. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  88. package/dist/css/themes/DayPicker.css +1 -1
  89. package/dist/css/themes/Dialog.css +1 -1
  90. package/dist/css/themes/DynamicDateRange.css +1 -1
  91. package/dist/css/themes/DynamicDateRangePopover.css +1 -1
  92. package/dist/css/themes/FileUploader.css +1 -1
  93. package/dist/css/themes/Form.css +1 -1
  94. package/dist/css/themes/FormItem.css +1 -1
  95. package/dist/css/themes/FormItemSpan.css +1 -1
  96. package/dist/css/themes/GrowingButton.css +1 -1
  97. package/dist/css/themes/Icon.css +1 -1
  98. package/dist/css/themes/Input.css +1 -1
  99. package/dist/css/themes/InputIcon.css +1 -1
  100. package/dist/css/themes/InputSharedStyles.css +1 -1
  101. package/dist/css/themes/Link.css +1 -1
  102. package/dist/css/themes/List.css +1 -1
  103. package/dist/css/themes/ListItem.css +1 -1
  104. package/dist/css/themes/ListItemBase.css +1 -1
  105. package/dist/css/themes/ListItemCustom.css +1 -1
  106. package/dist/css/themes/ListItemGroup.css +1 -1
  107. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  108. package/dist/css/themes/ListItemIcon.css +1 -1
  109. package/dist/css/themes/Menu.css +1 -1
  110. package/dist/css/themes/MenuItem.css +1 -1
  111. package/dist/css/themes/MessageStrip.css +1 -1
  112. package/dist/css/themes/MonthPicker.css +1 -1
  113. package/dist/css/themes/MultiComboBox.css +1 -1
  114. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  115. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  116. package/dist/css/themes/MultiInput.css +1 -1
  117. package/dist/css/themes/OptionBase.css +1 -1
  118. package/dist/css/themes/Panel.css +1 -1
  119. package/dist/css/themes/Popover.css +1 -1
  120. package/dist/css/themes/PopupsCommon.css +1 -1
  121. package/dist/css/themes/ProgressIndicator.css +1 -1
  122. package/dist/css/themes/RadioButton.css +1 -1
  123. package/dist/css/themes/RangeSlider.css +1 -1
  124. package/dist/css/themes/RatingIndicator.css +1 -1
  125. package/dist/css/themes/ResponsivePopover.css +1 -1
  126. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  127. package/dist/css/themes/SegmentedButton.css +1 -1
  128. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  129. package/dist/css/themes/Select.css +1 -1
  130. package/dist/css/themes/SliderBase.css +1 -1
  131. package/dist/css/themes/SplitButton.css +1 -1
  132. package/dist/css/themes/StepInput.css +1 -1
  133. package/dist/css/themes/SuggestionItem.css +1 -1
  134. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  135. package/dist/css/themes/Switch.css +1 -1
  136. package/dist/css/themes/TabContainer.css +1 -1
  137. package/dist/css/themes/TabInOverflow.css +1 -1
  138. package/dist/css/themes/TabInStrip.css +1 -1
  139. package/dist/css/themes/TabSemanticIcon.css +1 -1
  140. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  141. package/dist/css/themes/TableCell.css +1 -1
  142. package/dist/css/themes/TableCellBase.css +1 -1
  143. package/dist/css/themes/TableHeaderRow.css +1 -1
  144. package/dist/css/themes/TableRow.css +1 -1
  145. package/dist/css/themes/TableRowActionBase.css +1 -1
  146. package/dist/css/themes/TableRowBase.css +1 -1
  147. package/dist/css/themes/Tag.css +1 -1
  148. package/dist/css/themes/Text.css +1 -1
  149. package/dist/css/themes/TextArea.css +1 -1
  150. package/dist/css/themes/TimePicker.css +1 -1
  151. package/dist/css/themes/Toast.css +1 -1
  152. package/dist/css/themes/ToggleButton.css +1 -1
  153. package/dist/css/themes/Token.css +1 -1
  154. package/dist/css/themes/Tokenizer.css +1 -1
  155. package/dist/css/themes/TokenizerPopover.css +1 -1
  156. package/dist/css/themes/Toolbar.css +1 -1
  157. package/dist/css/themes/ToolbarPopover.css +1 -1
  158. package/dist/css/themes/ToolbarSeparator.css +1 -1
  159. package/dist/css/themes/TreeItem.css +1 -1
  160. package/dist/css/themes/ValueStateMessage.css +1 -1
  161. package/dist/css/themes/YearPicker.css +1 -1
  162. package/dist/css/themes/YearRangePicker.css +1 -1
  163. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  164. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  165. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  166. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  167. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  168. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  169. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  170. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  171. package/dist/custom-elements-internal.json +331 -12
  172. package/dist/custom-elements.json +232 -9
  173. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  174. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  175. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  176. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  177. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  178. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  179. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  180. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  181. package/dist/generated/i18n/i18n-defaults.d.ts +3 -1
  182. package/dist/generated/i18n/i18n-defaults.js +3 -1
  183. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  184. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  185. package/dist/generated/themes/Avatar.css.js +1 -1
  186. package/dist/generated/themes/Avatar.css.js.map +1 -1
  187. package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
  188. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  189. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  190. package/dist/generated/themes/Bar.css.d.ts +1 -1
  191. package/dist/generated/themes/Bar.css.js +1 -1
  192. package/dist/generated/themes/Bar.css.js.map +1 -1
  193. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  194. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  195. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  196. package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
  197. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  198. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  199. package/dist/generated/themes/Button.css.d.ts +1 -1
  200. package/dist/generated/themes/Button.css.js +1 -1
  201. package/dist/generated/themes/Button.css.js.map +1 -1
  202. package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
  203. package/dist/generated/themes/ButtonBadge.css.js +1 -1
  204. package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
  205. package/dist/generated/themes/Calendar.css.d.ts +1 -1
  206. package/dist/generated/themes/Calendar.css.js +1 -1
  207. package/dist/generated/themes/Calendar.css.js.map +1 -1
  208. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  209. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  210. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  211. package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
  212. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  213. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  214. package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
  215. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  216. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  217. package/dist/generated/themes/Card.css.d.ts +1 -1
  218. package/dist/generated/themes/Card.css.js +1 -1
  219. package/dist/generated/themes/Card.css.js.map +1 -1
  220. package/dist/generated/themes/CardHeader.css.d.ts +1 -1
  221. package/dist/generated/themes/CardHeader.css.js +1 -1
  222. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  223. package/dist/generated/themes/Carousel.css.d.ts +1 -1
  224. package/dist/generated/themes/Carousel.css.js +1 -1
  225. package/dist/generated/themes/Carousel.css.js.map +1 -1
  226. package/dist/generated/themes/CheckBox.css.d.ts +1 -1
  227. package/dist/generated/themes/CheckBox.css.js +1 -1
  228. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  229. package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
  230. package/dist/generated/themes/ColorPalette.css.js +1 -1
  231. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  232. package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
  233. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  234. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  235. package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
  236. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  237. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  238. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  239. package/dist/generated/themes/ColorPicker.css.js +1 -1
  240. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  241. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  242. package/dist/generated/themes/ComboBox.css.js +1 -1
  243. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  244. package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
  245. package/dist/generated/themes/ComboBoxItem.css.js +1 -1
  246. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
  247. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  248. package/dist/generated/themes/DatePicker.css.js +1 -1
  249. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  250. package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
  251. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  252. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  253. package/dist/generated/themes/DayPicker.css.d.ts +1 -1
  254. package/dist/generated/themes/DayPicker.css.js +1 -1
  255. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  256. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  257. package/dist/generated/themes/Dialog.css.js +1 -1
  258. package/dist/generated/themes/Dialog.css.js.map +1 -1
  259. package/dist/generated/themes/DynamicDateRange.css.d.ts +1 -1
  260. package/dist/generated/themes/DynamicDateRange.css.js +1 -1
  261. package/dist/generated/themes/DynamicDateRange.css.js.map +1 -1
  262. package/dist/generated/themes/DynamicDateRangePopover.css.d.ts +1 -1
  263. package/dist/generated/themes/DynamicDateRangePopover.css.js +1 -1
  264. package/dist/generated/themes/DynamicDateRangePopover.css.js.map +1 -1
  265. package/dist/generated/themes/FileUploader.css.d.ts +1 -1
  266. package/dist/generated/themes/FileUploader.css.js +1 -1
  267. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  268. package/dist/generated/themes/Form.css.d.ts +1 -1
  269. package/dist/generated/themes/Form.css.js +1 -1
  270. package/dist/generated/themes/Form.css.js.map +1 -1
  271. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  272. package/dist/generated/themes/FormItem.css.js +1 -1
  273. package/dist/generated/themes/FormItem.css.js.map +1 -1
  274. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  275. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  276. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  277. package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
  278. package/dist/generated/themes/GrowingButton.css.js +1 -1
  279. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  280. package/dist/generated/themes/Icon.css.d.ts +1 -1
  281. package/dist/generated/themes/Icon.css.js +1 -1
  282. package/dist/generated/themes/Icon.css.js.map +1 -1
  283. package/dist/generated/themes/Input.css.d.ts +1 -1
  284. package/dist/generated/themes/Input.css.js +1 -1
  285. package/dist/generated/themes/Input.css.js.map +1 -1
  286. package/dist/generated/themes/InputIcon.css.d.ts +1 -1
  287. package/dist/generated/themes/InputIcon.css.js +1 -1
  288. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  289. package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
  290. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  291. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  292. package/dist/generated/themes/Link.css.d.ts +1 -1
  293. package/dist/generated/themes/Link.css.js +1 -1
  294. package/dist/generated/themes/Link.css.js.map +1 -1
  295. package/dist/generated/themes/List.css.d.ts +1 -1
  296. package/dist/generated/themes/List.css.js +1 -1
  297. package/dist/generated/themes/List.css.js.map +1 -1
  298. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  299. package/dist/generated/themes/ListItem.css.js +1 -1
  300. package/dist/generated/themes/ListItem.css.js.map +1 -1
  301. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  302. package/dist/generated/themes/ListItemBase.css.js +1 -1
  303. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  304. package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
  305. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  306. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  307. package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
  308. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  309. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  310. package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
  311. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  312. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  313. package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
  314. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  315. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  316. package/dist/generated/themes/Menu.css.d.ts +1 -1
  317. package/dist/generated/themes/Menu.css.js +1 -1
  318. package/dist/generated/themes/Menu.css.js.map +1 -1
  319. package/dist/generated/themes/MenuItem.css.d.ts +1 -1
  320. package/dist/generated/themes/MenuItem.css.js +1 -1
  321. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  322. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  323. package/dist/generated/themes/MessageStrip.css.js +1 -1
  324. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  325. package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
  326. package/dist/generated/themes/MonthPicker.css.js +1 -1
  327. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  328. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  329. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  330. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  331. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
  332. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  333. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  334. package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
  335. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  336. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  337. package/dist/generated/themes/MultiInput.css.d.ts +1 -1
  338. package/dist/generated/themes/MultiInput.css.js +1 -1
  339. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  340. package/dist/generated/themes/OptionBase.css.d.ts +1 -1
  341. package/dist/generated/themes/OptionBase.css.js +1 -1
  342. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  343. package/dist/generated/themes/Panel.css.d.ts +1 -1
  344. package/dist/generated/themes/Panel.css.js +1 -1
  345. package/dist/generated/themes/Panel.css.js.map +1 -1
  346. package/dist/generated/themes/Popover.css.d.ts +1 -1
  347. package/dist/generated/themes/Popover.css.js +1 -1
  348. package/dist/generated/themes/Popover.css.js.map +1 -1
  349. package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
  350. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  351. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  352. package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
  353. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  354. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  355. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  356. package/dist/generated/themes/RadioButton.css.js +1 -1
  357. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  358. package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
  359. package/dist/generated/themes/RangeSlider.css.js +1 -1
  360. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  361. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  362. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  363. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  364. package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
  365. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  366. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  367. package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
  368. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  369. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  370. package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
  371. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  372. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  373. package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
  374. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  375. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  376. package/dist/generated/themes/Select.css.d.ts +1 -1
  377. package/dist/generated/themes/Select.css.js +1 -1
  378. package/dist/generated/themes/Select.css.js.map +1 -1
  379. package/dist/generated/themes/SliderBase.css.d.ts +1 -1
  380. package/dist/generated/themes/SliderBase.css.js +1 -1
  381. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  382. package/dist/generated/themes/SplitButton.css.d.ts +1 -1
  383. package/dist/generated/themes/SplitButton.css.js +1 -1
  384. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  385. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  386. package/dist/generated/themes/StepInput.css.js +1 -1
  387. package/dist/generated/themes/StepInput.css.js.map +1 -1
  388. package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
  389. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  390. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  391. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
  392. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  393. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  394. package/dist/generated/themes/Switch.css.d.ts +1 -1
  395. package/dist/generated/themes/Switch.css.js +1 -1
  396. package/dist/generated/themes/Switch.css.js.map +1 -1
  397. package/dist/generated/themes/TabContainer.css.d.ts +1 -1
  398. package/dist/generated/themes/TabContainer.css.js +1 -1
  399. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  400. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  401. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  402. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  403. package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
  404. package/dist/generated/themes/TabInStrip.css.js +1 -1
  405. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  406. package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
  407. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  408. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  409. package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
  410. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  411. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  412. package/dist/generated/themes/TableCell.css.d.ts +1 -1
  413. package/dist/generated/themes/TableCell.css.js +1 -1
  414. package/dist/generated/themes/TableCell.css.js.map +1 -1
  415. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  416. package/dist/generated/themes/TableCellBase.css.js +1 -1
  417. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  418. package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
  419. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  420. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  421. package/dist/generated/themes/TableRow.css.d.ts +1 -1
  422. package/dist/generated/themes/TableRow.css.js +1 -1
  423. package/dist/generated/themes/TableRow.css.js.map +1 -1
  424. package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
  425. package/dist/generated/themes/TableRowActionBase.css.js +1 -1
  426. package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
  427. package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
  428. package/dist/generated/themes/TableRowBase.css.js +1 -1
  429. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  430. package/dist/generated/themes/Tag.css.d.ts +1 -1
  431. package/dist/generated/themes/Tag.css.js +1 -1
  432. package/dist/generated/themes/Tag.css.js.map +1 -1
  433. package/dist/generated/themes/Text.css.d.ts +1 -1
  434. package/dist/generated/themes/Text.css.js +1 -1
  435. package/dist/generated/themes/Text.css.js.map +1 -1
  436. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  437. package/dist/generated/themes/TextArea.css.js +1 -1
  438. package/dist/generated/themes/TextArea.css.js.map +1 -1
  439. package/dist/generated/themes/TimePicker.css.d.ts +1 -1
  440. package/dist/generated/themes/TimePicker.css.js +1 -1
  441. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  442. package/dist/generated/themes/Toast.css.d.ts +1 -1
  443. package/dist/generated/themes/Toast.css.js +1 -1
  444. package/dist/generated/themes/Toast.css.js.map +1 -1
  445. package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
  446. package/dist/generated/themes/ToggleButton.css.js +1 -1
  447. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  448. package/dist/generated/themes/Token.css.d.ts +1 -1
  449. package/dist/generated/themes/Token.css.js +1 -1
  450. package/dist/generated/themes/Token.css.js.map +1 -1
  451. package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
  452. package/dist/generated/themes/Tokenizer.css.js +1 -1
  453. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  454. package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
  455. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  456. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  457. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  458. package/dist/generated/themes/Toolbar.css.js +1 -1
  459. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  460. package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
  461. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  462. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  463. package/dist/generated/themes/ToolbarSeparator.css.d.ts +1 -1
  464. package/dist/generated/themes/ToolbarSeparator.css.js +1 -1
  465. package/dist/generated/themes/ToolbarSeparator.css.js.map +1 -1
  466. package/dist/generated/themes/TreeItem.css.d.ts +1 -1
  467. package/dist/generated/themes/TreeItem.css.js +1 -1
  468. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  469. package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
  470. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  471. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  472. package/dist/generated/themes/YearPicker.css.d.ts +1 -1
  473. package/dist/generated/themes/YearPicker.css.js +1 -1
  474. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  475. package/dist/generated/themes/YearRangePicker.css.d.ts +1 -1
  476. package/dist/generated/themes/YearRangePicker.css.js +1 -1
  477. package/dist/generated/themes/YearRangePicker.css.js.map +1 -1
  478. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  479. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  480. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  481. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  482. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  483. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  484. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  485. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  486. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  487. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  488. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  489. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  490. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  491. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  492. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  493. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  494. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  495. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  496. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  497. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  498. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  499. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  500. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  501. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  502. package/dist/types/MenuItemGroupCheckMode.d.ts +23 -0
  503. package/dist/types/MenuItemGroupCheckMode.js +25 -0
  504. package/dist/types/MenuItemGroupCheckMode.js.map +1 -0
  505. package/dist/types/TableOverflowMode.d.ts +1 -1
  506. package/dist/types/TableOverflowMode.js +1 -1
  507. package/dist/types/TableOverflowMode.js.map +1 -1
  508. package/dist/types/TableSelectionMultiHeaderSelector.d.ts +19 -0
  509. package/dist/types/TableSelectionMultiHeaderSelector.js +21 -0
  510. package/dist/types/TableSelectionMultiHeaderSelector.js.map +1 -0
  511. package/dist/vscode.html-custom-data.json +47 -6
  512. package/dist/web-types.json +117 -12
  513. package/package.json +10 -10
  514. package/src/CalendarHeaderTemplate.tsx +3 -0
  515. package/src/CalendarTemplate.tsx +2 -2
  516. package/src/MenuItemGroupTemplate.tsx +12 -0
  517. package/src/MenuItemTemplate.tsx +13 -0
  518. package/src/MonthPickerTemplate.tsx +1 -0
  519. package/src/TableHeaderRowTemplate.tsx +25 -8
  520. package/src/TableRowTemplate.tsx +1 -1
  521. package/src/YearPickerTemplate.tsx +1 -0
  522. package/src/i18n/messagebundle.properties +4 -0
  523. package/src/themes/ButtonBadge.css +2 -0
  524. package/src/themes/ComboBoxItem.css +3 -3
  525. package/src/themes/MenuItem.css +13 -1
  526. package/src/themes/MultiComboBoxItem.css +3 -3
  527. package/src/themes/SuggestionItem.css +3 -3
  528. package/src/themes/Table.css +29 -29
  529. package/src/themes/TableCell.css +9 -6
  530. package/src/themes/TableCellBase.css +16 -16
  531. package/src/themes/TableGrowing.css +19 -19
  532. package/src/themes/TableHeaderRow.css +17 -12
  533. package/src/themes/TableRow.css +1 -1
  534. package/src/themes/TableRowActionBase.css +6 -6
  535. package/src/themes/TableRowBase.css +4 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarTemplate.js","sourceRoot":"","sources":["../src/CalendarTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type Calendar from \"./Calendar.js\";\nimport DayPicker from \"./DayPicker.js\";\nimport MonthPicker from \"./MonthPicker.js\";\nimport YearPicker from \"./YearPicker.js\";\nimport YearRangePicker from \"./YearRangePicker.js\";\nimport CalendarHeaderTemplate from \"./CalendarHeaderTemplate.js\";\nimport CalendarSelectionMode from \"./types/CalendarSelectionMode.js\";\n\nexport default function CalendarTemplate(this: Calendar) {\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclass=\"ui5-cal-root\"\n\t\t\t\tonKeyDown={this._onkeydown}\n\t\t\t>\n\t\t\t\t<div id={`${this._id}-content`} class=\"ui5-cal-content\">\n\t\t\t\t\t<DayPicker\n\t\t\t\t\t\tid={`${this._id}-daypicker`}\n\t\t\t\t\t\thidden={this._isDayPickerHidden}\n\t\t\t\t\t\tformatPattern={this._formatPattern}\n\t\t\t\t\t\tselectedDates={this._selectedDatesTimestamps}\n\t\t\t\t\t\tspecialCalendarDates={this._specialCalendarDates}\n\t\t\t\t\t\t_hidden={this._isDayPickerHidden}\n\t\t\t\t\t\tprimaryCalendarType={this._primaryCalendarType}\n\t\t\t\t\t\tsecondaryCalendarType={this._secondaryCalendarType}\n\t\t\t\t\t\tselectionMode={this.selectionMode}\n\t\t\t\t\t\tminDate={this.minDate}\n\t\t\t\t\t\tmaxDate={this.maxDate}\n\t\t\t\t\t\tcalendarWeekNumbering={this.calendarWeekNumbering}\n\t\t\t\t\t\ttimestamp={this._timestamp}\n\t\t\t\t\t\thideWeekNumbers={this.hideWeekNumbers}\n\t\t\t\t\t\tonChange={this.onSelectedDatesChange}\n\t\t\t\t\t\tonNavigate={this.onNavigate}\n\t\t\t\t\t\texportparts=\"day-cell, day-cell-selected, day-cell-selected-between\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<MonthPicker\n\t\t\t\t\t\tid={`${this._id}-MP`}\n\t\t\t\t\t\thidden={this._isMonthPickerHidden}\n\t\t\t\t\t\tformatPattern={this._formatPattern}\n\t\t\t\t\t\tselectedDates={this._selectedDatesTimestamps}\n\t\t\t\t\t\t_hidden={this._isMonthPickerHidden}\n\t\t\t\t\t\tprimaryCalendarType={this._primaryCalendarType}\n\t\t\t\t\t\tsecondaryCalendarType={this._secondaryCalendarType}\n\t\t\t\t\t\tselectionMode={this.selectionMode}\n\t\t\t\t\t\tminDate={this.minDate}\n\t\t\t\t\t\tmaxDate={this.maxDate}\n\t\t\t\t\t\ttimestamp={this._timestamp}\n\t\t\t\t\t\tonChange={this.onSelectedMonthChange}\n\t\t\t\t\t\tonNavigate={this.onNavigate}\n\t\t\t\t\t\texportparts=\"month-cell, month-cell-selected, month-cell-selected-between\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<YearPicker\n\t\t\t\t\t\tid={`${this._id}-YP`}\n\t\t\t\t\t\thidden={this._isYearPickerHidden}\n\t\t\t\t\t\tformatPattern={this._formatPattern}\n\t\t\t\t\t\tselectedDates={this._selectedDatesTimestamps}\n\t\t\t\t\t\t_hidden={this._isYearPickerHidden}\n\t\t\t\t\t\tprimaryCalendarType={this._primaryCalendarType}\n\t\t\t\t\t\tsecondaryCalendarType={this._secondaryCalendarType}\n\t\t\t\t\t\tselectionMode={this.selectionMode}\n\t\t\t\t\t\tminDate={this.minDate}\n\t\t\t\t\t\tmaxDate={this.maxDate}\n\t\t\t\t\t\ttimestamp={this._timestamp}\n\t\t\t\t\t\t_currentYearRange = {this._currentYearRange}\n\t\t\t\t\t\tonChange={this.onSelectedYearChange}\n\t\t\t\t\t\tonNavigate={this.onNavigate}\n\t\t\t\t\t\texportparts=\"year-cell, year-cell-selected, year-cell-selected-between\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<YearRangePicker\n\t\t\t\t\t\tid={`${this._id}-YRP`}\n\t\t\t\t\t\thidden={this._isYearRangePickerHidden}\n\t\t\t\t\t\tformatPattern={this._formatPattern}\n\t\t\t\t\t\tselectedDates={this._selectedDatesTimestamps}\n\t\t\t\t\t\t_showRangeSelection={this.selectionMode === CalendarSelectionMode.Range}\n\t\t\t\t\t\t_hidden={this._isYearRangePickerHidden}\n\t\t\t\t\t\tprimaryCalendarType={this._primaryCalendarType}\n\t\t\t\t\t\tsecondaryCalendarType={this._secondaryCalendarType}\n\t\t\t\t\t\tminDate={this.minDate}\n\t\t\t\t\t\tmaxDate={this.maxDate}\n\t\t\t\t\t\ttimestamp={this._timestamp}\n\t\t\t\t\t\t_currentYearRange = {this._currentYearRange}\n\t\t\t\t\t\tonChange={this.onSelectedYearRangeChange}\n\t\t\t\t\t\tonNavigate={this.onNavigate}\n\t\t\t\t\t\texportparts=\"year-range-cell, year-range-cell-selected, year-range-cell-selected-between\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"ui5-calheader\">\n\t\t\t\t\t{ CalendarHeaderTemplate.call(this) }\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tonui5-calendar-legend-selection-change={this._onCalendarLegendSelectionChange}\n\t\t\t\tonui5-calendar-legend-focus-out={this._onLegendFocusOut}\n\t\t\t>\n\t\t\t\t<slot name=\"calendarLegend\"></slot>\n\t\t\t</div>\n\t\t</>);\n}\n"]}
1
+ {"version":3,"file":"CalendarTemplate.js","sourceRoot":"","sources":["../src/CalendarTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type Calendar from \"./Calendar.js\";\nimport DayPicker from \"./DayPicker.js\";\nimport MonthPicker from \"./MonthPicker.js\";\nimport YearPicker from \"./YearPicker.js\";\nimport YearRangePicker from \"./YearRangePicker.js\";\nimport CalendarHeaderTemplate from \"./CalendarHeaderTemplate.js\";\nimport CalendarSelectionMode from \"./types/CalendarSelectionMode.js\";\n\nexport default function CalendarTemplate(this: Calendar) {\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclass=\"ui5-cal-root\"\n\t\t\t\tonKeyDown={this._onkeydown}\n\t\t\t>\n\t\t\t\t<div id={`${this._id}-content`} class=\"ui5-cal-content\">\n\t\t\t\t\t<DayPicker\n\t\t\t\t\t\tid={`${this._id}-daypicker`}\n\t\t\t\t\t\thidden={this._isDayPickerHidden}\n\t\t\t\t\t\tformatPattern={this._formatPattern}\n\t\t\t\t\t\tselectedDates={this._selectedDatesTimestamps}\n\t\t\t\t\t\tspecialCalendarDates={this._specialCalendarDates}\n\t\t\t\t\t\t_hidden={this._isDayPickerHidden}\n\t\t\t\t\t\tprimaryCalendarType={this._primaryCalendarType}\n\t\t\t\t\t\tsecondaryCalendarType={this._secondaryCalendarType}\n\t\t\t\t\t\tselectionMode={this.selectionMode}\n\t\t\t\t\t\tminDate={this.minDate}\n\t\t\t\t\t\tmaxDate={this.maxDate}\n\t\t\t\t\t\tcalendarWeekNumbering={this.calendarWeekNumbering}\n\t\t\t\t\t\ttimestamp={this._timestamp}\n\t\t\t\t\t\thideWeekNumbers={this.hideWeekNumbers}\n\t\t\t\t\t\tonChange={this.onSelectedDatesChange}\n\t\t\t\t\t\tonNavigate={this.onNavigate}\n\t\t\t\t\t\texportparts=\"day-cell, day-cell-selected, day-cell-selected-between\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<MonthPicker\n\t\t\t\t\t\tid={`${this._id}-MP`}\n\t\t\t\t\t\thidden={this._isMonthPickerHidden}\n\t\t\t\t\t\tformatPattern={this._formatPattern}\n\t\t\t\t\t\tselectedDates={this._selectedDatesTimestamps}\n\t\t\t\t\t\t_hidden={this._isMonthPickerHidden}\n\t\t\t\t\t\tprimaryCalendarType={this._primaryCalendarType}\n\t\t\t\t\t\tsecondaryCalendarType={this._secondaryCalendarType}\n\t\t\t\t\t\tselectionMode={this.selectionMode}\n\t\t\t\t\t\tminDate={this.minDate}\n\t\t\t\t\t\tmaxDate={this.maxDate}\n\t\t\t\t\t\ttimestamp={this._timestamp}\n\t\t\t\t\t\tonChange={this.onSelectedMonthChange}\n\t\t\t\t\t\tonNavigate={this.onNavigate}\n\t\t\t\t\t\texportparts=\"month-cell, month-cell-selected, month-cell-selected-between, month-picker-root\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<YearPicker\n\t\t\t\t\t\tid={`${this._id}-YP`}\n\t\t\t\t\t\thidden={this._isYearPickerHidden}\n\t\t\t\t\t\tformatPattern={this._formatPattern}\n\t\t\t\t\t\tselectedDates={this._selectedDatesTimestamps}\n\t\t\t\t\t\t_hidden={this._isYearPickerHidden}\n\t\t\t\t\t\tprimaryCalendarType={this._primaryCalendarType}\n\t\t\t\t\t\tsecondaryCalendarType={this._secondaryCalendarType}\n\t\t\t\t\t\tselectionMode={this.selectionMode}\n\t\t\t\t\t\tminDate={this.minDate}\n\t\t\t\t\t\tmaxDate={this.maxDate}\n\t\t\t\t\t\ttimestamp={this._timestamp}\n\t\t\t\t\t\t_currentYearRange = {this._currentYearRange}\n\t\t\t\t\t\tonChange={this.onSelectedYearChange}\n\t\t\t\t\t\tonNavigate={this.onNavigate}\n\t\t\t\t\t\texportparts=\"year-cell, year-cell-selected, year-cell-selected-between, year-picker-root\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<YearRangePicker\n\t\t\t\t\t\tid={`${this._id}-YRP`}\n\t\t\t\t\t\thidden={this._isYearRangePickerHidden}\n\t\t\t\t\t\tformatPattern={this._formatPattern}\n\t\t\t\t\t\tselectedDates={this._selectedDatesTimestamps}\n\t\t\t\t\t\t_showRangeSelection={this.selectionMode === CalendarSelectionMode.Range}\n\t\t\t\t\t\t_hidden={this._isYearRangePickerHidden}\n\t\t\t\t\t\tprimaryCalendarType={this._primaryCalendarType}\n\t\t\t\t\t\tsecondaryCalendarType={this._secondaryCalendarType}\n\t\t\t\t\t\tminDate={this.minDate}\n\t\t\t\t\t\tmaxDate={this.maxDate}\n\t\t\t\t\t\ttimestamp={this._timestamp}\n\t\t\t\t\t\t_currentYearRange = {this._currentYearRange}\n\t\t\t\t\t\tonChange={this.onSelectedYearRangeChange}\n\t\t\t\t\t\tonNavigate={this.onNavigate}\n\t\t\t\t\t\texportparts=\"year-range-cell, year-range-cell-selected, year-range-cell-selected-between\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"ui5-calheader\">\n\t\t\t\t\t{ CalendarHeaderTemplate.call(this) }\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tonui5-calendar-legend-selection-change={this._onCalendarLegendSelectionChange}\n\t\t\t\tonui5-calendar-legend-focus-out={this._onLegendFocusOut}\n\t\t\t>\n\t\t\t\t<slot name=\"calendarLegend\"></slot>\n\t\t\t</div>\n\t\t</>);\n}\n"]}
package/dist/Menu.d.ts CHANGED
@@ -2,10 +2,10 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
3
3
  import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
4
4
  import type { Timeout } from "@ui5/webcomponents-base/dist/types.js";
5
+ import type List from "./List.js";
5
6
  import type ResponsivePopover from "./ResponsivePopover.js";
6
7
  import type MenuItem from "./MenuItem.js";
7
8
  import type PopoverHorizontalAlign from "./types/PopoverHorizontalAlign.js";
8
- import "./MenuSeparator.js";
9
9
  import type { ListItemClickEventDetail } from "./List.js";
10
10
  /**
11
11
  * Interface for components that may be slotted inside a `ui5-menu`.
@@ -14,7 +14,9 @@ import type { ListItemClickEventDetail } from "./List.js";
14
14
  * @public
15
15
  */
16
16
  interface IMenuItem extends UI5Element {
17
- isSeparator: boolean;
17
+ isMenuItem?: boolean;
18
+ isSeparator?: boolean;
19
+ isGroup?: boolean;
18
20
  }
19
21
  type MenuItemClickEventDetail = {
20
22
  item: MenuItem;
@@ -56,7 +58,11 @@ type MenuBeforeCloseEventDetail = {
56
58
  * - `Arrow Left` or `ArrowRight` - Navigate between the menu item actions and the menu item itself
57
59
  * - `Arrow Up` / `Arrow Down` - Navigates up and down the currently visible menu items
58
60
  *
59
- * Note: if the text ditrection is set to Right-to-left (RTL), `Arrow Right` and `Arrow Left` functionality is swapped.
61
+ * **Note:** If the text direction is set to Right-to-left (RTL), `Arrow Right` and `Arrow Left` functionality is swapped.
62
+ *
63
+ * Application developers are responsible for ensuring that interactive elements placed in the `endContent` slot
64
+ * have the correct accessibility behaviour, including their enabled or disabled states.
65
+ * The menu does not manage these aspects when the menu item state changes.
60
66
  *
61
67
  * ### ES6 Module Import
62
68
  *
@@ -130,9 +136,18 @@ declare class Menu extends UI5Element {
130
136
  get labelClose(): string;
131
137
  get isPhone(): boolean;
132
138
  get _popover(): ResponsivePopover;
139
+ get _list(): List | null;
140
+ /** Returns menu item groups */
141
+ get _menuItemGroups(): import("./MenuItemGroup.js").default[];
142
+ /** Returns menu items */
133
143
  get _menuItems(): MenuItem[];
144
+ /** Returns all menu items (including those in groups */
145
+ get _allMenuItems(): MenuItem[];
146
+ /** Returns menu items included in the ItemNavigation */
147
+ get _navigatableMenuItems(): MenuItem[];
134
148
  get acessibleNameText(): string;
135
149
  onBeforeRendering(): void;
150
+ _setupItemNavigation(): void;
136
151
  _close(): void;
137
152
  _openItemSubMenu(item: MenuItem): void;
138
153
  _itemMouseOver(e: MouseEvent): void;
package/dist/Menu.js CHANGED
@@ -19,7 +19,8 @@ import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js";
19
19
  import DOMReferenceConverter from "@ui5/webcomponents-base/dist/converters/DOMReference.js";
20
20
  // The import below should be kept, as MenuItem is part of the Menu component.
21
21
  import { isInstanceOfMenuItem } from "./MenuItem.js";
22
- import "./MenuSeparator.js";
22
+ import { isInstanceOfMenuItemGroup } from "./MenuItemGroup.js";
23
+ import { isInstanceOfMenuSeparator } from "./MenuSeparator.js";
23
24
  import menuTemplate from "./MenuTemplate.js";
24
25
  import { MENU_CLOSE_BUTTON_ARIA_LABEL, MENU_POPOVER_ACCESSIBLE_NAME, } from "./generated/i18n/i18n-defaults.js";
25
26
  // Styles
@@ -55,7 +56,11 @@ const MENU_OPEN_DELAY = 300;
55
56
  * - `Arrow Left` or `ArrowRight` - Navigate between the menu item actions and the menu item itself
56
57
  * - `Arrow Up` / `Arrow Down` - Navigates up and down the currently visible menu items
57
58
  *
58
- * Note: if the text ditrection is set to Right-to-left (RTL), `Arrow Right` and `Arrow Left` functionality is swapped.
59
+ * **Note:** If the text direction is set to Right-to-left (RTL), `Arrow Right` and `Arrow Left` functionality is swapped.
60
+ *
61
+ * Application developers are responsible for ensuring that interactive elements placed in the `endContent` slot
62
+ * have the correct accessibility behaviour, including their enabled or disabled states.
63
+ * The menu does not manage these aspects when the menu item state changes.
59
64
  *
60
65
  * ### ES6 Module Import
61
66
  *
@@ -108,18 +113,60 @@ let Menu = Menu_1 = class Menu extends UI5Element {
108
113
  get _popover() {
109
114
  return this.shadowRoot.querySelector("[ui5-responsive-popover]");
110
115
  }
116
+ get _list() {
117
+ return this.shadowRoot.querySelector("[ui5-list]");
118
+ }
119
+ /** Returns menu item groups */
120
+ get _menuItemGroups() {
121
+ return this.items.filter(isInstanceOfMenuItemGroup);
122
+ }
123
+ /** Returns menu items */
111
124
  get _menuItems() {
112
- return this.items.filter((item) => !item.isSeparator);
125
+ return this.items.filter(isInstanceOfMenuItem);
126
+ }
127
+ /** Returns all menu items (including those in groups */
128
+ get _allMenuItems() {
129
+ const items = [];
130
+ this.items.forEach(item => {
131
+ if (isInstanceOfMenuItemGroup(item)) {
132
+ items.push(...item._menuItems);
133
+ }
134
+ else if (!isInstanceOfMenuSeparator(item)) {
135
+ items.push(item);
136
+ }
137
+ });
138
+ return items;
139
+ }
140
+ /** Returns menu items included in the ItemNavigation */
141
+ get _navigatableMenuItems() {
142
+ const items = [];
143
+ const slottedItems = this.getSlottedNodes("items");
144
+ slottedItems.forEach(item => {
145
+ if (isInstanceOfMenuItemGroup(item)) {
146
+ const groupItems = item.getSlottedNodes("items");
147
+ items.push(...groupItems);
148
+ }
149
+ else if (!isInstanceOfMenuSeparator(item)) {
150
+ items.push(item);
151
+ }
152
+ });
153
+ return items;
113
154
  }
114
155
  get acessibleNameText() {
115
156
  return Menu_1.i18nBundle.getText(MENU_POPOVER_ACCESSIBLE_NAME);
116
157
  }
117
158
  onBeforeRendering() {
118
- const siblingsWithIcon = this._menuItems.some(menuItem => !!menuItem.icon);
119
- this._menuItems.forEach(item => {
159
+ const siblingsWithIcon = this._allMenuItems.some(menuItem => !!menuItem.icon);
160
+ this._setupItemNavigation();
161
+ this._allMenuItems.forEach(item => {
120
162
  item._siblingsWithIcon = siblingsWithIcon;
121
163
  });
122
164
  }
165
+ _setupItemNavigation() {
166
+ if (this._list) {
167
+ this._list._itemNavigation._getItems = () => this._navigatableMenuItems;
168
+ }
169
+ }
123
170
  _close() {
124
171
  this.open = false;
125
172
  }
@@ -149,14 +196,14 @@ let Menu = Menu_1 = class Menu extends UI5Element {
149
196
  }
150
197
  async focus(focusOptions) {
151
198
  await renderFinished();
152
- const firstMenuItem = this._menuItems[0];
199
+ const firstMenuItem = this._allMenuItems[0];
153
200
  if (firstMenuItem) {
154
201
  return firstMenuItem.focus(focusOptions);
155
202
  }
156
203
  return super.focus(focusOptions);
157
204
  }
158
205
  _closeOtherSubMenus(item) {
159
- const menuItems = this._menuItems;
206
+ const menuItems = this._allMenuItems;
160
207
  if (!menuItems.includes(item)) {
161
208
  return;
162
209
  }
@@ -180,8 +227,9 @@ let Menu = Menu_1 = class Menu extends UI5Element {
180
227
  "item": item,
181
228
  "text": item.text || "",
182
229
  });
183
- if (!prevented && this._popover) {
184
- item.fireDecoratorEvent("close-menu");
230
+ if (!prevented) {
231
+ item._updateCheckedState();
232
+ this._popover && item.fireDecoratorEvent("close-menu");
185
233
  }
186
234
  }
187
235
  else {
@@ -194,7 +242,7 @@ let Menu = Menu_1 = class Menu extends UI5Element {
194
242
  if (!isInstanceOfMenuItem(item)) {
195
243
  return;
196
244
  }
197
- const menuItemInMenu = this._menuItems.includes(item);
245
+ const menuItemInMenu = this._allMenuItems.includes(item);
198
246
  const isItemNavigation = isUp(e) || isDown(e);
199
247
  const isItemSelection = isEnter(e) || isSpace(e);
200
248
  const isEndContentNavigation = isRight(e) || isLeft(e);
@@ -216,7 +264,7 @@ let Menu = Menu_1 = class Menu extends UI5Element {
216
264
  _navigateOutOfEndContent(e) {
217
265
  const item = e.target;
218
266
  const shouldNavigateToNextItem = e.detail.shouldNavigateToNextItem;
219
- const menuItems = this._menuItems;
267
+ const menuItems = this._allMenuItems;
220
268
  const itemIndex = menuItems.indexOf(item);
221
269
  if (itemIndex > -1) {
222
270
  const nextItem = shouldNavigateToNextItem ? menuItems[itemIndex + 1] : menuItems[itemIndex - 1];
@@ -233,7 +281,7 @@ let Menu = Menu_1 = class Menu extends UI5Element {
233
281
  }
234
282
  }
235
283
  _afterPopoverOpen() {
236
- this._menuItems[0]?.focus();
284
+ this._allMenuItems[0]?.focus();
237
285
  this.fireDecoratorEvent("open");
238
286
  }
239
287
  _beforePopoverClose(e) {
package/dist/Menu.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../src/Menu.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport {\n\tisLeft,\n\tisRight,\n\tisEnter,\n\tisSpace,\n\tisTabNext,\n\tisTabPrevious,\n\tisDown,\n\tisUp,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport {\n\tisPhone,\n\tisDesktop,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type { Timeout } from \"@ui5/webcomponents-base/dist/types.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport DOMReferenceConverter from \"@ui5/webcomponents-base/dist/converters/DOMReference.js\";\nimport type ResponsivePopover from \"./ResponsivePopover.js\";\nimport type MenuItem from \"./MenuItem.js\";\n// The import below should be kept, as MenuItem is part of the Menu component.\nimport { isInstanceOfMenuItem } from \"./MenuItem.js\";\nimport type PopoverHorizontalAlign from \"./types/PopoverHorizontalAlign.js\";\nimport \"./MenuSeparator.js\";\nimport type {\n\tListItemClickEventDetail,\n} from \"./List.js\";\nimport menuTemplate from \"./MenuTemplate.js\";\nimport {\n\tMENU_CLOSE_BUTTON_ARIA_LABEL,\n\tMENU_POPOVER_ACCESSIBLE_NAME,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport menuCss from \"./generated/themes/Menu.css.js\";\n\nconst MENU_OPEN_DELAY = 300;\n\n/**\n * Interface for components that may be slotted inside a `ui5-menu`.\n *\n * **Note:** Use with `ui5-menu-item` or `ui5-menu-separator`. Implementing the interface does not guarantee that any other classes can work with the `ui5-menu`.\n * @public\n */\ninterface IMenuItem extends UI5Element {\n\tisSeparator: boolean;\n}\n\ntype MenuItemClickEventDetail = {\n\titem: MenuItem,\n\ttext: string,\n}\n\ntype MenuBeforeOpenEventDetail = { item?: MenuItem };\ntype MenuBeforeCloseEventDetail = { escPressed: boolean };\n\n/**\n * @class\n *\n * ### Overview\n *\n * `ui5-menu` component represents a hierarchical menu structure.\n *\n * ### Structure\n *\n * The `ui5-menu` can hold two types of entities:\n *\n * - `ui5-menu-item` components\n * - `ui5-menu-separator` - used to separate menu items with a line\n *\n * An arbitrary hierarchy structure can be represented by recursively nesting menu items.\n *\n * ### Keyboard Handling\n *\n * The `ui5-menu` provides advanced keyboard handling.\n * The user can use the following keyboard shortcuts in order to navigate trough the tree:\n *\n * - `Arrow Up` / `Arrow Down` - Navigates up and down the menu items that are currently visible.\n * - `Arrow Right`, `Space` or `Enter` - Opens a sub-menu if there are menu items nested\n * in the currently clicked menu item.\n * - `Arrow Left` or `Escape` - Closes the currently opened sub-menu.\n *\n * when there is `endContent` :\n * - `Arrow Left` or `ArrowRight` - Navigate between the menu item actions and the menu item itself\n * - `Arrow Up` / `Arrow Down` - Navigates up and down the currently visible menu items\n *\n * Note: if the text ditrection is set to Right-to-left (RTL), `Arrow Right` and `Arrow Left` functionality is swapped.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Menu.js\";`\n * @constructor\n * @extends UI5Element\n * @since 1.3.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-menu\",\n\trenderer: jsxRenderer,\n\tstyles: menuCss,\n\ttemplate: menuTemplate,\n})\n\n/**\n * Fired when an item is being clicked.\n *\n * **Note:** Since 1.17.0 the event is preventable, allowing the menu to remain open after an item is pressed.\n * @param { HTMLElement } item The currently clicked menu item.\n * @param { string } text The text of the currently clicked menu item.\n * @public\n */\n@event(\"item-click\", {\n\tcancelable: true,\n})\n\n/**\n * Fired before the menu is opened. This event can be cancelled, which will prevent the menu from opening.\n *\n * **Note:** Since 1.14.0 the event is also fired before a sub-menu opens.\n * @public\n * @since 1.10.0\n * @param { HTMLElement } item The `ui5-menu-item` that triggers opening of the sub-menu or undefined when fired upon root menu opening.\n */\n@event(\"before-open\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired after the menu is opened.\n * @public\n * @since 1.10.0\n */\n@event(\"open\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the menu is being closed.\n * @private\n */\n@event(\"close-menu\", {\n\tbubbles: true,\n})\n\n/**\n * Fired before the menu is closed. This event can be cancelled, which will prevent the menu from closing.\n * @public\n * @param {boolean} escPressed Indicates that `ESC` key has triggered the event.\n * @since 1.10.0\n */\n@event(\"before-close\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired after the menu is closed.\n * @public\n * @since 1.10.0\n */\n@event(\"close\")\n\nclass Menu extends UI5Element {\n\teventDetails!: {\n\t\t\"item-click\": MenuItemClickEventDetail,\n\t\t\"before-open\": MenuBeforeOpenEventDetail,\n\t\t\"open\": void,\n\t\t\"before-close\": MenuBeforeCloseEventDetail,\n\t\t\"close\": void,\n\t\t\"close-menu\": void,\n\t}\n\t/**\n\t * Defines the header text of the menu (displayed on mobile).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\theaderText?: string;\n\n\t/**\n\t * Indicates if the menu is open.\n\t * @public\n\t * @default false\n\t * @since 1.10.0\n\t */\n\t@property({ type: Boolean })\n\topen = false;\n\n\t/**\n\t * Determines the horizontal alignment of the menu relative to its opener control.\n\t * @default \"Start\"\n\t * @public\n\t */\n\t@property()\n\thorizontalAlign: `${PopoverHorizontalAlign}` = \"Start\";\n\n\t/**\n\t * Defines if a loading indicator would be displayed inside the corresponding ui5-menu popover.\n\t * @default false\n\t * @public\n\t * @since 1.13.0\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines the delay in milliseconds, after which the loading indicator will be displayed inside the corresponding ui5-menu popover.\n\t * @default 1000\n\t * @public\n\t * @since 1.13.0\n\t */\n\t@property({ type: Number })\n\tloadingDelay = 1000;\n\n\t/**\n\t * Defines the ID or DOM Reference of the element at which the menu is shown.\n\t * When using this attribute in a declarative way, you must only use the `id` (as a string) of the element at which you want to show the popover.\n\t * You can only set the `opener` attribute to a DOM Reference when using JavaScript.\n\t * @public\n\t * @default undefined\n\t * @since 1.10.0\n\t */\n\t@property({ converter: DOMReferenceConverter })\n\topener?: HTMLElement | string;\n\n\t/**\n\t * Defines the items of this component.\n\t *\n\t * **Note:** Use `ui5-menu-item` and `ui5-menu-separator` for their intended design.\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, invalidateOnChildChange: true })\n\titems!: Array<IMenuItem>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\t_timeout?: Timeout;\n\n\tget isRtl() {\n\t\treturn this.effectiveDir === \"rtl\";\n\t}\n\n\tget labelClose() {\n\t\treturn Menu.i18nBundle.getText(MENU_CLOSE_BUTTON_ARIA_LABEL);\n\t}\n\n\tget isPhone() {\n\t\treturn isPhone();\n\t}\n\n\tget _popover() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\tget _menuItems() {\n\t\treturn this.items.filter((item): item is MenuItem => !item.isSeparator);\n\t}\n\n\tget acessibleNameText() {\n\t\treturn Menu.i18nBundle.getText(MENU_POPOVER_ACCESSIBLE_NAME);\n\t}\n\n\tonBeforeRendering() {\n\t\tconst siblingsWithIcon = this._menuItems.some(menuItem => !!menuItem.icon);\n\n\t\tthis._menuItems.forEach(item => {\n\t\t\titem._siblingsWithIcon = siblingsWithIcon;\n\t\t});\n\t}\n\n\t_close() {\n\t\tthis.open = false;\n\t}\n\n\t_openItemSubMenu(item: MenuItem) {\n\t\tclearTimeout(this._timeout);\n\n\t\tif (!item._popover || item._popover.open) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"before-open\", {\n\t\t\titem,\n\t\t});\n\t\titem._popover.opener = item;\n\t\titem._popover.open = true;\n\t\titem.selected = true;\n\t}\n\n\t_itemMouseOver(e: MouseEvent) {\n\t\tif (!isDesktop()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst item = e.target as MenuItem;\n\t\tif (!isInstanceOfMenuItem(item)) {\n\t\t\treturn;\n\t\t}\n\n\t\titem.focus();\n\n\t\t// Opens submenu with 300ms delay\n\t\tthis._startOpenTimeout(item);\n\t}\n\n\tasync focus(focusOptions?: FocusOptions): Promise<void> {\n\t\tawait renderFinished();\n\t\tconst firstMenuItem = this._menuItems[0];\n\n\t\tif (firstMenuItem) {\n\t\t\treturn firstMenuItem.focus(focusOptions);\n\t\t}\n\n\t\treturn super.focus(focusOptions);\n\t}\n\n\t_closeOtherSubMenus(item: MenuItem) {\n\t\tconst menuItems = this._menuItems;\n\t\tif (!menuItems.includes(item)) {\n\t\t\treturn;\n\t\t}\n\n\t\tmenuItems.forEach(menuItem => {\n\t\t\tif (menuItem !== item) {\n\t\t\t\tmenuItem._close();\n\t\t\t}\n\t\t});\n\t}\n\n\t_startOpenTimeout(item: MenuItem) {\n\t\tclearTimeout(this._timeout);\n\n\t\tthis._timeout = setTimeout(() => {\n\t\t\tthis._closeOtherSubMenus(item);\n\n\t\t\tthis._openItemSubMenu(item);\n\t\t}, MENU_OPEN_DELAY);\n\t}\n\n\t_itemClick(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst item = e.detail.item as MenuItem;\n\n\t\tif (!item._popover) {\n\t\t\tconst prevented = !this.fireDecoratorEvent(\"item-click\", {\n\t\t\t\t\"item\": item,\n\t\t\t\t\"text\": item.text || \"\",\n\t\t\t});\n\n\t\t\tif (!prevented && this._popover) {\n\t\t\t\titem.fireDecoratorEvent(\"close-menu\");\n\t\t\t}\n\t\t} else {\n\t\t\tthis._openItemSubMenu(item);\n\t\t}\n\t}\n\n\t_itemKeyDown(e: KeyboardEvent) {\n\t\tconst isTabNextPrevious = isTabNext(e) || isTabPrevious(e);\n\t\tconst item = e.target as MenuItem;\n\n\t\tif (!isInstanceOfMenuItem(item)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst menuItemInMenu = this._menuItems.includes(item);\n\t\tconst isItemNavigation = isUp(e) || isDown(e);\n\t\tconst isItemSelection = isEnter(e) || isSpace(e);\n\t\tconst isEndContentNavigation = isRight(e) || isLeft(e);\n\t\tconst shouldOpenMenu = this.isRtl ? isLeft(e) : isRight(e);\n\t\tconst shouldCloseMenu = menuItemInMenu && !(isItemNavigation || isItemSelection || isEndContentNavigation);\n\n\t\tif (isEnter(e) || isTabNextPrevious) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isEndContentNavigation) {\n\t\t\titem._navigateToEndContent(isLeft(e));\n\t\t}\n\n\t\tif (shouldOpenMenu) {\n\t\t\tthis._openItemSubMenu(item);\n\t\t} else if ((shouldCloseMenu || isTabNextPrevious)) {\n\t\t\tthis._close();\n\t\t}\n\t}\n\n\t_navigateOutOfEndContent(e: CustomEvent) {\n\t\tconst item = e.target as MenuItem;\n\t\tconst shouldNavigateToNextItem = e.detail.shouldNavigateToNextItem;\n\t\tconst menuItems = this._menuItems;\n\t\tconst itemIndex = menuItems.indexOf(item);\n\n\t\tif (itemIndex > -1) {\n\t\t\tconst nextItem = shouldNavigateToNextItem ? menuItems[itemIndex + 1] : menuItems[itemIndex - 1];\n\t\t\tconst itemToFocus = nextItem || menuItems[itemIndex];\n\t\t\titemToFocus?.focus();\n\n\t\t\te.stopPropagation();\n\t\t}\n\t}\n\n\t_beforePopoverOpen(e: CustomEvent) {\n\t\tconst prevented = !this.fireDecoratorEvent(\"before-open\", {});\n\n\t\tif (prevented) {\n\t\t\tthis.open = false;\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_afterPopoverOpen() {\n\t\tthis._menuItems[0]?.focus();\n\t\tthis.fireDecoratorEvent(\"open\");\n\t}\n\n\t_beforePopoverClose(e: CustomEvent) {\n\t\tconst prevented = !this.fireDecoratorEvent(\"before-close\", { escPressed: e.detail.escPressed });\n\n\t\tif (prevented) {\n\t\t\tthis.open = true;\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_afterPopoverClose() {\n\t\tthis.open = false;\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n}\n\nMenu.define();\n\nexport default Menu;\nexport type {\n\tMenuItemClickEventDetail,\n\tMenuBeforeCloseEventDetail,\n\tMenuBeforeOpenEventDetail,\n\tIMenuItem,\n};\n"]}
1
+ {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../src/Menu.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport {\n\tisLeft,\n\tisRight,\n\tisEnter,\n\tisSpace,\n\tisTabNext,\n\tisTabPrevious,\n\tisDown,\n\tisUp,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport {\n\tisPhone,\n\tisDesktop,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type { Timeout } from \"@ui5/webcomponents-base/dist/types.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport DOMReferenceConverter from \"@ui5/webcomponents-base/dist/converters/DOMReference.js\";\nimport type List from \"./List.js\";\nimport type ResponsivePopover from \"./ResponsivePopover.js\";\nimport type MenuItem from \"./MenuItem.js\";\n// The import below should be kept, as MenuItem is part of the Menu component.\nimport { isInstanceOfMenuItem } from \"./MenuItem.js\";\nimport { isInstanceOfMenuItemGroup } from \"./MenuItemGroup.js\";\nimport { isInstanceOfMenuSeparator } from \"./MenuSeparator.js\";\nimport type PopoverHorizontalAlign from \"./types/PopoverHorizontalAlign.js\";\nimport type {\n\tListItemClickEventDetail,\n} from \"./List.js\";\nimport menuTemplate from \"./MenuTemplate.js\";\nimport {\n\tMENU_CLOSE_BUTTON_ARIA_LABEL,\n\tMENU_POPOVER_ACCESSIBLE_NAME,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport menuCss from \"./generated/themes/Menu.css.js\";\n\nconst MENU_OPEN_DELAY = 300;\n\n/**\n * Interface for components that may be slotted inside a `ui5-menu`.\n *\n * **Note:** Use with `ui5-menu-item` or `ui5-menu-separator`. Implementing the interface does not guarantee that any other classes can work with the `ui5-menu`.\n * @public\n */\ninterface IMenuItem extends UI5Element {\n\tisMenuItem?: boolean;\n\tisSeparator?: boolean;\n\tisGroup?: boolean;\n}\n\ntype MenuItemClickEventDetail = {\n\titem: MenuItem,\n\ttext: string,\n}\n\ntype MenuBeforeOpenEventDetail = { item?: MenuItem };\ntype MenuBeforeCloseEventDetail = { escPressed: boolean };\n\n/**\n * @class\n *\n * ### Overview\n *\n * `ui5-menu` component represents a hierarchical menu structure.\n *\n * ### Structure\n *\n * The `ui5-menu` can hold two types of entities:\n *\n * - `ui5-menu-item` components\n * - `ui5-menu-separator` - used to separate menu items with a line\n *\n * An arbitrary hierarchy structure can be represented by recursively nesting menu items.\n *\n * ### Keyboard Handling\n *\n * The `ui5-menu` provides advanced keyboard handling.\n * The user can use the following keyboard shortcuts in order to navigate trough the tree:\n *\n * - `Arrow Up` / `Arrow Down` - Navigates up and down the menu items that are currently visible.\n * - `Arrow Right`, `Space` or `Enter` - Opens a sub-menu if there are menu items nested\n * in the currently clicked menu item.\n * - `Arrow Left` or `Escape` - Closes the currently opened sub-menu.\n *\n * when there is `endContent` :\n * - `Arrow Left` or `ArrowRight` - Navigate between the menu item actions and the menu item itself\n * - `Arrow Up` / `Arrow Down` - Navigates up and down the currently visible menu items\n *\n * **Note:** If the text direction is set to Right-to-left (RTL), `Arrow Right` and `Arrow Left` functionality is swapped.\n *\n * Application developers are responsible for ensuring that interactive elements placed in the `endContent` slot\n * have the correct accessibility behaviour, including their enabled or disabled states.\n * The menu does not manage these aspects when the menu item state changes.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Menu.js\";`\n * @constructor\n * @extends UI5Element\n * @since 1.3.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-menu\",\n\trenderer: jsxRenderer,\n\tstyles: menuCss,\n\ttemplate: menuTemplate,\n})\n\n/**\n * Fired when an item is being clicked.\n *\n * **Note:** Since 1.17.0 the event is preventable, allowing the menu to remain open after an item is pressed.\n * @param { HTMLElement } item The currently clicked menu item.\n * @param { string } text The text of the currently clicked menu item.\n * @public\n */\n@event(\"item-click\", {\n\tcancelable: true,\n})\n\n/**\n * Fired before the menu is opened. This event can be cancelled, which will prevent the menu from opening.\n *\n * **Note:** Since 1.14.0 the event is also fired before a sub-menu opens.\n * @public\n * @since 1.10.0\n * @param { HTMLElement } item The `ui5-menu-item` that triggers opening of the sub-menu or undefined when fired upon root menu opening.\n */\n@event(\"before-open\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired after the menu is opened.\n * @public\n * @since 1.10.0\n */\n@event(\"open\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the menu is being closed.\n * @private\n */\n@event(\"close-menu\", {\n\tbubbles: true,\n})\n\n/**\n * Fired before the menu is closed. This event can be cancelled, which will prevent the menu from closing.\n * @public\n * @param {boolean} escPressed Indicates that `ESC` key has triggered the event.\n * @since 1.10.0\n */\n@event(\"before-close\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired after the menu is closed.\n * @public\n * @since 1.10.0\n */\n@event(\"close\")\n\nclass Menu extends UI5Element {\n\teventDetails!: {\n\t\t\"item-click\": MenuItemClickEventDetail,\n\t\t\"before-open\": MenuBeforeOpenEventDetail,\n\t\t\"open\": void,\n\t\t\"before-close\": MenuBeforeCloseEventDetail,\n\t\t\"close\": void,\n\t\t\"close-menu\": void,\n\t}\n\t/**\n\t * Defines the header text of the menu (displayed on mobile).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\theaderText?: string;\n\n\t/**\n\t * Indicates if the menu is open.\n\t * @public\n\t * @default false\n\t * @since 1.10.0\n\t */\n\t@property({ type: Boolean })\n\topen = false;\n\n\t/**\n\t * Determines the horizontal alignment of the menu relative to its opener control.\n\t * @default \"Start\"\n\t * @public\n\t */\n\t@property()\n\thorizontalAlign: `${PopoverHorizontalAlign}` = \"Start\";\n\n\t/**\n\t * Defines if a loading indicator would be displayed inside the corresponding ui5-menu popover.\n\t * @default false\n\t * @public\n\t * @since 1.13.0\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines the delay in milliseconds, after which the loading indicator will be displayed inside the corresponding ui5-menu popover.\n\t * @default 1000\n\t * @public\n\t * @since 1.13.0\n\t */\n\t@property({ type: Number })\n\tloadingDelay = 1000;\n\n\t/**\n\t * Defines the ID or DOM Reference of the element at which the menu is shown.\n\t * When using this attribute in a declarative way, you must only use the `id` (as a string) of the element at which you want to show the popover.\n\t * You can only set the `opener` attribute to a DOM Reference when using JavaScript.\n\t * @public\n\t * @default undefined\n\t * @since 1.10.0\n\t */\n\t@property({ converter: DOMReferenceConverter })\n\topener?: HTMLElement | string;\n\n\t/**\n\t * Defines the items of this component.\n\t *\n\t * **Note:** Use `ui5-menu-item` and `ui5-menu-separator` for their intended design.\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, invalidateOnChildChange: true })\n\titems!: Array<IMenuItem>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\t_timeout?: Timeout;\n\n\tget isRtl() {\n\t\treturn this.effectiveDir === \"rtl\";\n\t}\n\n\tget labelClose() {\n\t\treturn Menu.i18nBundle.getText(MENU_CLOSE_BUTTON_ARIA_LABEL);\n\t}\n\n\tget isPhone() {\n\t\treturn isPhone();\n\t}\n\n\tget _popover() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\tget _list() {\n\t\treturn this.shadowRoot!.querySelector<List>(\"[ui5-list]\");\n\t}\n\n\t/** Returns menu item groups */\n\tget _menuItemGroups() {\n\t\treturn this.items.filter(isInstanceOfMenuItemGroup);\n\t}\n\n\t/** Returns menu items */\n\tget _menuItems() {\n\t\treturn this.items.filter(isInstanceOfMenuItem);\n\t}\n\n\t/** Returns all menu items (including those in groups */\n\tget _allMenuItems() {\n\t\tconst items: MenuItem[] = [];\n\n\t\tthis.items.forEach(item => {\n\t\t\tif (isInstanceOfMenuItemGroup(item)) {\n\t\t\t\titems.push(...item._menuItems);\n\t\t\t} else if (!isInstanceOfMenuSeparator(item)) {\n\t\t\t\titems.push(item as MenuItem);\n\t\t\t}\n\t\t});\n\n\t\treturn items;\n\t}\n\n\t/** Returns menu items included in the ItemNavigation */\n\tget _navigatableMenuItems() {\n\t\tconst items: MenuItem[] = [];\n\t\tconst slottedItems = this.getSlottedNodes<MenuItem>(\"items\");\n\n\t\tslottedItems.forEach(item => {\n\t\t\tif (isInstanceOfMenuItemGroup(item)) {\n\t\t\t\tconst groupItems = item.getSlottedNodes<MenuItem>(\"items\");\n\t\t\t\titems.push(...groupItems);\n\t\t\t} else if (!isInstanceOfMenuSeparator(item)) {\n\t\t\t\titems.push(item);\n\t\t\t}\n\t\t});\n\n\t\treturn items;\n\t}\n\n\tget acessibleNameText() {\n\t\treturn Menu.i18nBundle.getText(MENU_POPOVER_ACCESSIBLE_NAME);\n\t}\n\n\tonBeforeRendering() {\n\t\tconst siblingsWithIcon = this._allMenuItems.some(menuItem => !!menuItem.icon);\n\n\t\tthis._setupItemNavigation();\n\n\t\tthis._allMenuItems.forEach(item => {\n\t\t\titem._siblingsWithIcon = siblingsWithIcon;\n\t\t});\n\t}\n\n\t_setupItemNavigation() {\n\t\tif (this._list) {\n\t\t\tthis._list._itemNavigation._getItems = () => this._navigatableMenuItems;\n\t\t}\n\t}\n\n\t_close() {\n\t\tthis.open = false;\n\t}\n\n\t_openItemSubMenu(item: MenuItem) {\n\t\tclearTimeout(this._timeout);\n\n\t\tif (!item._popover || item._popover.open) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"before-open\", {\n\t\t\titem,\n\t\t});\n\n\t\titem._popover.opener = item;\n\t\titem._popover.open = true;\n\t\titem.selected = true;\n\t}\n\n\t_itemMouseOver(e: MouseEvent) {\n\t\tif (!isDesktop()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst item = e.target as MenuItem;\n\t\tif (!isInstanceOfMenuItem(item)) {\n\t\t\treturn;\n\t\t}\n\n\t\titem.focus();\n\n\t\t// Opens submenu with 300ms delay\n\t\tthis._startOpenTimeout(item);\n\t}\n\n\tasync focus(focusOptions?: FocusOptions): Promise<void> {\n\t\tawait renderFinished();\n\t\tconst firstMenuItem = this._allMenuItems[0];\n\n\t\tif (firstMenuItem) {\n\t\t\treturn firstMenuItem.focus(focusOptions);\n\t\t}\n\n\t\treturn super.focus(focusOptions);\n\t}\n\n\t_closeOtherSubMenus(item: MenuItem) {\n\t\tconst menuItems = this._allMenuItems;\n\t\tif (!menuItems.includes(item)) {\n\t\t\treturn;\n\t\t}\n\n\t\tmenuItems.forEach(menuItem => {\n\t\t\tif (menuItem !== item) {\n\t\t\t\tmenuItem._close();\n\t\t\t}\n\t\t});\n\t}\n\n\t_startOpenTimeout(item: MenuItem) {\n\t\tclearTimeout(this._timeout);\n\n\t\tthis._timeout = setTimeout(() => {\n\t\t\tthis._closeOtherSubMenus(item);\n\n\t\t\tthis._openItemSubMenu(item);\n\t\t}, MENU_OPEN_DELAY);\n\t}\n\n\t_itemClick(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst item = e.detail.item as MenuItem;\n\n\t\tif (!item._popover) {\n\t\t\tconst prevented = !this.fireDecoratorEvent(\"item-click\", {\n\t\t\t\t\"item\": item,\n\t\t\t\t\"text\": item.text || \"\",\n\t\t\t});\n\n\t\t\tif (!prevented) {\n\t\t\t\titem._updateCheckedState();\n\t\t\t\tthis._popover && item.fireDecoratorEvent(\"close-menu\");\n\t\t\t}\n\t\t} else {\n\t\t\tthis._openItemSubMenu(item);\n\t\t}\n\t}\n\n\t_itemKeyDown(e: KeyboardEvent) {\n\t\tconst isTabNextPrevious = isTabNext(e) || isTabPrevious(e);\n\t\tconst item = e.target as MenuItem;\n\n\t\tif (!isInstanceOfMenuItem(item)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst menuItemInMenu = this._allMenuItems.includes(item);\n\t\tconst isItemNavigation = isUp(e) || isDown(e);\n\t\tconst isItemSelection = isEnter(e) || isSpace(e);\n\t\tconst isEndContentNavigation = isRight(e) || isLeft(e);\n\t\tconst shouldOpenMenu = this.isRtl ? isLeft(e) : isRight(e);\n\t\tconst shouldCloseMenu = menuItemInMenu && !(isItemNavigation || isItemSelection || isEndContentNavigation);\n\n\t\tif (isEnter(e) || isTabNextPrevious) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isEndContentNavigation) {\n\t\t\titem._navigateToEndContent(isLeft(e));\n\t\t}\n\n\t\tif (shouldOpenMenu) {\n\t\t\tthis._openItemSubMenu(item);\n\t\t} else if ((shouldCloseMenu || isTabNextPrevious)) {\n\t\t\tthis._close();\n\t\t}\n\t}\n\n\t_navigateOutOfEndContent(e: CustomEvent) {\n\t\tconst item = e.target as MenuItem;\n\t\tconst shouldNavigateToNextItem = e.detail.shouldNavigateToNextItem;\n\t\tconst menuItems = this._allMenuItems;\n\t\tconst itemIndex = menuItems.indexOf(item);\n\n\t\tif (itemIndex > -1) {\n\t\t\tconst nextItem = shouldNavigateToNextItem ? menuItems[itemIndex + 1] : menuItems[itemIndex - 1];\n\t\t\tconst itemToFocus = nextItem || menuItems[itemIndex];\n\t\t\titemToFocus?.focus();\n\n\t\t\te.stopPropagation();\n\t\t}\n\t}\n\n\t_beforePopoverOpen(e: CustomEvent) {\n\t\tconst prevented = !this.fireDecoratorEvent(\"before-open\", {});\n\n\t\tif (prevented) {\n\t\t\tthis.open = false;\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_afterPopoverOpen() {\n\t\tthis._allMenuItems[0]?.focus();\n\t\tthis.fireDecoratorEvent(\"open\");\n\t}\n\n\t_beforePopoverClose(e: CustomEvent) {\n\t\tconst prevented = !this.fireDecoratorEvent(\"before-close\", { escPressed: e.detail.escPressed });\n\n\t\tif (prevented) {\n\t\t\tthis.open = true;\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_afterPopoverClose() {\n\t\tthis.open = false;\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n}\n\nMenu.define();\n\nexport default Menu;\nexport type {\n\tMenuItemClickEventDetail,\n\tMenuBeforeCloseEventDetail,\n\tMenuBeforeOpenEventDetail,\n\tIMenuItem,\n};\n"]}
@@ -2,7 +2,9 @@ import type { AccessibilityAttributes, AriaHasPopup, AriaRole } from "@ui5/webco
2
2
  import "@ui5/webcomponents-icons/dist/nav-back.js";
3
3
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
4
4
  import ItemNavigation from "@ui5/webcomponents-base/dist/delegate/ItemNavigation.js";
5
+ import MenuItemGroupCheckMode from "./types/MenuItemGroupCheckMode.js";
5
6
  import type { ListItemAccessibilityAttributes } from "./ListItem.js";
7
+ import type List from "./List.js";
6
8
  import ListItem from "./ListItem.js";
7
9
  import type ResponsivePopover from "./ResponsivePopover.js";
8
10
  import type PopoverPlacement from "./types/PopoverPlacement.js";
@@ -47,6 +49,7 @@ declare class MenuItem extends ListItem implements IMenuItem {
47
49
  "before-close": MenuBeforeCloseEventDetail;
48
50
  "close": void;
49
51
  "close-menu": void;
52
+ "check": void;
50
53
  "exit-end-content": MenuNavigateOutOfEndContentEventDetail;
51
54
  };
52
55
  /**
@@ -80,24 +83,24 @@ declare class MenuItem extends ListItem implements IMenuItem {
80
83
  */
81
84
  icon?: string;
82
85
  /**
83
- * Defines whether `ui5-menu-item` is in disabled state.
86
+ * Defines whether menu item is in disabled state.
84
87
  *
85
- * **Note:** A disabled `ui5-menu-item` is noninteractive.
88
+ * **Note:** A disabled menu item is noninteractive.
86
89
  * @default false
87
90
  * @public
88
91
  */
89
92
  disabled: boolean;
90
93
  /**
91
- * Defines the delay in milliseconds, after which the loading indicator will be displayed inside the corresponding ui5-menu popover.
94
+ * Defines the delay in milliseconds, after which the loading indicator will be displayed inside the corresponding menu popover.
92
95
  *
93
- * **Note:** If set to `true` a `ui5-busy-indicator` component will be displayed into the related one to the current `ui5-menu-item` sub-menu popover.
96
+ * **Note:** If set to `true` a busy indicator component will be displayed into the related one to the current menu item sub-menu popover.
94
97
  * @default false
95
98
  * @public
96
99
  * @since 1.13.0
97
100
  */
98
101
  loading: boolean;
99
102
  /**
100
- * Defines the delay in milliseconds, after which the loading indicator will be displayed inside the corresponding ui5-menu popover.
103
+ * Defines the delay in milliseconds, after which the loading indicator will be displayed inside the corresponding menu popover.
101
104
  * @default 1000
102
105
  * @public
103
106
  * @since 1.13.0
@@ -117,6 +120,18 @@ declare class MenuItem extends ListItem implements IMenuItem {
117
120
  * @since 1.23.0
118
121
  */
119
122
  tooltip?: string;
123
+ /**
124
+ * Defines whether menu item is in checked state.
125
+ *
126
+ * **Note:** checked state is only taken into account when menu item is added to menu item group
127
+ * with `checkMode` other than `None`.
128
+ *
129
+ * **Note:** A checked menu item has a checkmark displayed at its end.
130
+ * @default false
131
+ * @public
132
+ * @since 2.12.0
133
+ */
134
+ checked: boolean;
120
135
  /**
121
136
  * Defines the additional accessibility attributes that will be applied to the component.
122
137
  * The following fields are supported:
@@ -124,7 +139,6 @@ declare class MenuItem extends ListItem implements IMenuItem {
124
139
  * - **ariaKeyShortcuts**: Indicated the availability of a keyboard shortcuts defined for the menu item.
125
140
  *
126
141
  * - **role**: Defines the role of the menu item. If not set, menu item will have default role="menuitem".
127
- *
128
142
  * @public
129
143
  * @since 2.1.0
130
144
  * @default {}
@@ -134,10 +148,16 @@ declare class MenuItem extends ListItem implements IMenuItem {
134
148
  * Indicates whether any of the element siblings have icon.
135
149
  */
136
150
  _siblingsWithIcon: boolean;
151
+ /**
152
+ * Defines the component's check mode.
153
+ * @default "None"
154
+ * @private
155
+ */
156
+ _checkMode: `${MenuItemGroupCheckMode}`;
137
157
  /**
138
158
  * Defines the items of this component.
139
159
  *
140
- * **Note:** The slot can hold `ui5-menu-item` and `ui5-menu-separator` items.
160
+ * **Note:** The slot can hold menu item and menu separator items.
141
161
  *
142
162
  * If there are items added to this slot, an arrow will be displayed at the end
143
163
  * of the item in order to indicate that there are items added. In that case components added
@@ -158,6 +178,10 @@ declare class MenuItem extends ListItem implements IMenuItem {
158
178
  *
159
179
  * The priority of what will be displayed at the end of the menu item is as follows:
160
180
  * sub-menu arrow (if there are items added in `items` slot) -> components added in `endContent` -> text set to `additionalText`.
181
+ *
182
+ * Application developers are responsible for ensuring that interactive elements placed in the `endContent` slot
183
+ * have the correct accessibility behaviour, including their enabled or disabled states.
184
+ * The menu does not manage these aspects when the menu item state changes.
161
185
  * @public
162
186
  * @since 2.0.0
163
187
  */
@@ -165,6 +189,7 @@ declare class MenuItem extends ListItem implements IMenuItem {
165
189
  static i18nBundle: I18nBundle;
166
190
  _itemNavigation: ItemNavigation;
167
191
  constructor();
192
+ get _list(): List | null;
168
193
  get _navigableItems(): Array<HTMLElement>;
169
194
  _navigateToEndContent(shouldNavigateToPreviousItem: boolean): void;
170
195
  get placement(): `${PopoverPlacement}`;
@@ -172,22 +197,23 @@ declare class MenuItem extends ListItem implements IMenuItem {
172
197
  get hasSubmenu(): boolean;
173
198
  get hasEndContent(): boolean;
174
199
  get hasIcon(): boolean;
175
- get isSubMenuOpen(): boolean;
200
+ get isSubMenuOpen(): boolean | undefined;
176
201
  get menuHeaderTextPhone(): string | undefined;
177
202
  get isPhone(): boolean;
178
203
  get labelBack(): string;
179
204
  get labelClose(): string;
180
205
  get acessibleNameText(): string;
181
- get isSeparator(): boolean;
182
206
  onBeforeRendering(): void;
183
207
  focus(focusOptions?: FocusOptions): Promise<void>;
184
208
  get _focusable(): boolean;
209
+ get _role(): "menuitem" | "menuitemcheckbox" | "menuitemradio";
185
210
  get _accInfo(): {
186
211
  role: AriaRole;
187
212
  ariaHaspopup?: `${AriaHasPopup}`;
188
213
  ariaKeyShortcuts?: string;
189
- ariaHidden?: boolean;
190
214
  ariaExpanded?: boolean;
215
+ ariaHidden?: boolean;
216
+ ariaChecked?: boolean;
191
217
  ariaLevel?: number;
192
218
  ariaLabel: string;
193
219
  ariaLabelRadioButton: string;
@@ -195,13 +221,21 @@ declare class MenuItem extends ListItem implements IMenuItem {
195
221
  posinset?: number;
196
222
  setsize?: number;
197
223
  ariaSelected?: boolean;
198
- ariaChecked?: boolean;
199
224
  listItemAriaLabel?: string;
200
225
  ariaOwns?: string;
201
226
  tooltip?: string;
202
227
  };
203
- get _popover(): ResponsivePopover;
228
+ get _popover(): ResponsivePopover | null;
229
+ get _markChecked(): boolean;
230
+ /** Returns menu item groups */
231
+ get _menuItemGroups(): import("./MenuItemGroup.js").default[];
232
+ /** Returns menu items */
204
233
  get _menuItems(): MenuItem[];
234
+ /** Returns all menu items (including those in groups */
235
+ get _allMenuItems(): MenuItem[];
236
+ /** Returns menu items included in the ItemNavigation */
237
+ get _navigatableMenuItems(): MenuItem[];
238
+ _setupItemNavigation(): void;
205
239
  _closeOtherSubMenus(item: MenuItem): void;
206
240
  _itemMouseOver(e: MouseEvent): void;
207
241
  _itemKeyDown(e: KeyboardEvent): void;
@@ -214,6 +248,7 @@ declare class MenuItem extends ListItem implements IMenuItem {
214
248
  _beforePopoverClose(e: CustomEvent): void;
215
249
  _afterPopoverClose(): void;
216
250
  get isMenuItem(): boolean;
251
+ _updateCheckedState(): void;
217
252
  }
218
253
  declare const isInstanceOfMenuItem: (object: any) => object is MenuItem;
219
254
  export default MenuItem;