@ui5/webcomponents 2.11.0-rc.0 → 2.11.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 (504) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/cypress/specs/Avatar.cy.tsx +22 -0
  3. package/cypress/specs/Button.cy.tsx +28 -9
  4. package/cypress/specs/F6.cy.tsx +71 -0
  5. package/cypress/specs/List.cy.tsx +51 -0
  6. package/cypress/specs/RangeSlider.cy.tsx +52 -0
  7. package/cypress/specs/Slider.cy.tsx +61 -0
  8. package/cypress/specs/TextArea.cy.tsx +23 -0
  9. package/dist/.tsbuildinfo +1 -1
  10. package/dist/Bar.d.ts +18 -0
  11. package/dist/Bar.js +22 -0
  12. package/dist/Bar.js.map +1 -1
  13. package/dist/BarTemplate.js +1 -1
  14. package/dist/BarTemplate.js.map +1 -1
  15. package/dist/Button.d.ts +2 -1
  16. package/dist/Button.js +24 -6
  17. package/dist/Button.js.map +1 -1
  18. package/dist/ColorPaletteItemTemplate.js +1 -1
  19. package/dist/ColorPaletteItemTemplate.js.map +1 -1
  20. package/dist/List.d.ts +1 -0
  21. package/dist/List.js +7 -2
  22. package/dist/List.js.map +1 -1
  23. package/dist/ListItemStandard.d.ts +7 -4
  24. package/dist/ListItemStandard.js +7 -4
  25. package/dist/ListItemStandard.js.map +1 -1
  26. package/dist/Menu.d.ts +3 -5
  27. package/dist/Menu.js +52 -56
  28. package/dist/Menu.js.map +1 -1
  29. package/dist/MenuItem.d.ts +12 -1
  30. package/dist/MenuItem.js +74 -5
  31. package/dist/MenuItem.js.map +1 -1
  32. package/dist/MenuItemTemplate.js +2 -2
  33. package/dist/MenuItemTemplate.js.map +1 -1
  34. package/dist/MenuTemplate.js +1 -1
  35. package/dist/MenuTemplate.js.map +1 -1
  36. package/dist/RangeSliderTemplate.js +2 -2
  37. package/dist/RangeSliderTemplate.js.map +1 -1
  38. package/dist/SliderBase.d.ts +2 -1
  39. package/dist/SliderBase.js +14 -2
  40. package/dist/SliderBase.js.map +1 -1
  41. package/dist/SliderBaseTemplate.js +1 -2
  42. package/dist/SliderBaseTemplate.js.map +1 -1
  43. package/dist/SliderTemplate.js +1 -1
  44. package/dist/SliderTemplate.js.map +1 -1
  45. package/dist/SplitButton.d.ts +3 -18
  46. package/dist/SplitButton.js +37 -74
  47. package/dist/SplitButton.js.map +1 -1
  48. package/dist/SplitButtonTemplate.js +1 -1
  49. package/dist/SplitButtonTemplate.js.map +1 -1
  50. package/dist/TextArea.js +1 -4
  51. package/dist/TextArea.js.map +1 -1
  52. package/dist/css/themes/Avatar.css +1 -1
  53. package/dist/css/themes/AvatarGroup.css +1 -1
  54. package/dist/css/themes/Bar.css +1 -1
  55. package/dist/css/themes/Breadcrumbs.css +1 -1
  56. package/dist/css/themes/BusyIndicator.css +1 -1
  57. package/dist/css/themes/Button.css +1 -1
  58. package/dist/css/themes/ButtonBadge.css +1 -1
  59. package/dist/css/themes/Calendar.css +1 -1
  60. package/dist/css/themes/CalendarHeader.css +1 -1
  61. package/dist/css/themes/CalendarLegend.css +1 -1
  62. package/dist/css/themes/CalendarLegendItem.css +1 -1
  63. package/dist/css/themes/Card.css +1 -1
  64. package/dist/css/themes/CardHeader.css +1 -1
  65. package/dist/css/themes/Carousel.css +1 -1
  66. package/dist/css/themes/CheckBox.css +1 -1
  67. package/dist/css/themes/ColorPalette.css +1 -1
  68. package/dist/css/themes/ColorPaletteItem.css +1 -1
  69. package/dist/css/themes/ColorPalettePopover.css +1 -1
  70. package/dist/css/themes/ColorPicker.css +1 -1
  71. package/dist/css/themes/ComboBox.css +1 -1
  72. package/dist/css/themes/ComboBoxItem.css +1 -1
  73. package/dist/css/themes/DatePicker.css +1 -1
  74. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  75. package/dist/css/themes/DayPicker.css +1 -1
  76. package/dist/css/themes/Dialog.css +1 -1
  77. package/dist/css/themes/FileUploader.css +1 -1
  78. package/dist/css/themes/Form.css +1 -1
  79. package/dist/css/themes/FormItem.css +1 -1
  80. package/dist/css/themes/FormItemSpan.css +1 -1
  81. package/dist/css/themes/GrowingButton.css +1 -1
  82. package/dist/css/themes/Icon.css +1 -1
  83. package/dist/css/themes/Input.css +1 -1
  84. package/dist/css/themes/InputIcon.css +1 -1
  85. package/dist/css/themes/InputSharedStyles.css +1 -1
  86. package/dist/css/themes/Link.css +1 -1
  87. package/dist/css/themes/List.css +1 -1
  88. package/dist/css/themes/ListItem.css +1 -1
  89. package/dist/css/themes/ListItemBase.css +1 -1
  90. package/dist/css/themes/ListItemCustom.css +1 -1
  91. package/dist/css/themes/ListItemGroup.css +1 -1
  92. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  93. package/dist/css/themes/ListItemIcon.css +1 -1
  94. package/dist/css/themes/Menu.css +1 -1
  95. package/dist/css/themes/MenuItem.css +1 -1
  96. package/dist/css/themes/MessageStrip.css +1 -1
  97. package/dist/css/themes/MonthPicker.css +1 -1
  98. package/dist/css/themes/MultiComboBox.css +1 -1
  99. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  100. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  101. package/dist/css/themes/MultiInput.css +1 -1
  102. package/dist/css/themes/OptionBase.css +1 -1
  103. package/dist/css/themes/Panel.css +1 -1
  104. package/dist/css/themes/Popover.css +1 -1
  105. package/dist/css/themes/PopupsCommon.css +1 -1
  106. package/dist/css/themes/ProgressIndicator.css +1 -1
  107. package/dist/css/themes/RadioButton.css +1 -1
  108. package/dist/css/themes/RangeSlider.css +1 -1
  109. package/dist/css/themes/RatingIndicator.css +1 -1
  110. package/dist/css/themes/ResponsivePopover.css +1 -1
  111. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  112. package/dist/css/themes/SegmentedButton.css +1 -1
  113. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  114. package/dist/css/themes/Select.css +1 -1
  115. package/dist/css/themes/SliderBase.css +1 -1
  116. package/dist/css/themes/SplitButton.css +1 -1
  117. package/dist/css/themes/StepInput.css +1 -1
  118. package/dist/css/themes/SuggestionItem.css +1 -1
  119. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  120. package/dist/css/themes/Switch.css +1 -1
  121. package/dist/css/themes/TabContainer.css +1 -1
  122. package/dist/css/themes/TabInOverflow.css +1 -1
  123. package/dist/css/themes/TabInStrip.css +1 -1
  124. package/dist/css/themes/TabSemanticIcon.css +1 -1
  125. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  126. package/dist/css/themes/TableCellBase.css +1 -1
  127. package/dist/css/themes/TableHeaderRow.css +1 -1
  128. package/dist/css/themes/TableRow.css +1 -1
  129. package/dist/css/themes/TableRowActionBase.css +1 -1
  130. package/dist/css/themes/TableRowBase.css +1 -1
  131. package/dist/css/themes/Tag.css +1 -1
  132. package/dist/css/themes/Text.css +1 -1
  133. package/dist/css/themes/TextArea.css +1 -1
  134. package/dist/css/themes/TimePicker.css +1 -1
  135. package/dist/css/themes/Toast.css +1 -1
  136. package/dist/css/themes/ToggleButton.css +1 -1
  137. package/dist/css/themes/Token.css +1 -1
  138. package/dist/css/themes/Tokenizer.css +1 -1
  139. package/dist/css/themes/TokenizerPopover.css +1 -1
  140. package/dist/css/themes/Toolbar.css +1 -1
  141. package/dist/css/themes/ToolbarPopover.css +1 -1
  142. package/dist/css/themes/ToolbarSelect.css +1 -0
  143. package/dist/css/themes/TreeItem.css +1 -1
  144. package/dist/css/themes/ValueStateMessage.css +1 -1
  145. package/dist/css/themes/YearPicker.css +1 -1
  146. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  147. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  148. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  149. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  150. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  151. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  152. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  153. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  154. package/dist/custom-elements-internal.json +105 -35
  155. package/dist/custom-elements.json +76 -35
  156. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  157. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  158. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  159. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  160. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  161. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  162. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  163. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  164. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  165. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  166. package/dist/generated/i18n/i18n-defaults.d.ts +3 -1
  167. package/dist/generated/i18n/i18n-defaults.js +3 -1
  168. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  169. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  170. package/dist/generated/themes/Avatar.css.js +1 -1
  171. package/dist/generated/themes/Avatar.css.js.map +1 -1
  172. package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
  173. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  174. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  175. package/dist/generated/themes/Bar.css.d.ts +1 -1
  176. package/dist/generated/themes/Bar.css.js +1 -1
  177. package/dist/generated/themes/Bar.css.js.map +1 -1
  178. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  179. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  180. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  181. package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
  182. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  183. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  184. package/dist/generated/themes/Button.css.d.ts +1 -1
  185. package/dist/generated/themes/Button.css.js +1 -1
  186. package/dist/generated/themes/Button.css.js.map +1 -1
  187. package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
  188. package/dist/generated/themes/ButtonBadge.css.js +1 -1
  189. package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
  190. package/dist/generated/themes/Calendar.css.d.ts +1 -1
  191. package/dist/generated/themes/Calendar.css.js +1 -1
  192. package/dist/generated/themes/Calendar.css.js.map +1 -1
  193. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  194. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  195. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  196. package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
  197. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  198. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  199. package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
  200. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  201. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  202. package/dist/generated/themes/Card.css.d.ts +1 -1
  203. package/dist/generated/themes/Card.css.js +1 -1
  204. package/dist/generated/themes/Card.css.js.map +1 -1
  205. package/dist/generated/themes/CardHeader.css.d.ts +1 -1
  206. package/dist/generated/themes/CardHeader.css.js +1 -1
  207. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  208. package/dist/generated/themes/Carousel.css.d.ts +1 -1
  209. package/dist/generated/themes/Carousel.css.js +1 -1
  210. package/dist/generated/themes/Carousel.css.js.map +1 -1
  211. package/dist/generated/themes/CheckBox.css.d.ts +1 -1
  212. package/dist/generated/themes/CheckBox.css.js +1 -1
  213. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  214. package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
  215. package/dist/generated/themes/ColorPalette.css.js +1 -1
  216. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  217. package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
  218. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  219. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  220. package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
  221. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  222. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  223. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  224. package/dist/generated/themes/ColorPicker.css.js +1 -1
  225. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  226. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  227. package/dist/generated/themes/ComboBox.css.js +1 -1
  228. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  229. package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
  230. package/dist/generated/themes/ComboBoxItem.css.js +1 -1
  231. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
  232. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  233. package/dist/generated/themes/DatePicker.css.js +1 -1
  234. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  235. package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
  236. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  237. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  238. package/dist/generated/themes/DayPicker.css.d.ts +1 -1
  239. package/dist/generated/themes/DayPicker.css.js +1 -1
  240. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  241. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  242. package/dist/generated/themes/Dialog.css.js +1 -1
  243. package/dist/generated/themes/Dialog.css.js.map +1 -1
  244. package/dist/generated/themes/FileUploader.css.d.ts +1 -1
  245. package/dist/generated/themes/FileUploader.css.js +1 -1
  246. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  247. package/dist/generated/themes/Form.css.d.ts +1 -1
  248. package/dist/generated/themes/Form.css.js +1 -1
  249. package/dist/generated/themes/Form.css.js.map +1 -1
  250. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  251. package/dist/generated/themes/FormItem.css.js +1 -1
  252. package/dist/generated/themes/FormItem.css.js.map +1 -1
  253. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  254. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  255. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  256. package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
  257. package/dist/generated/themes/GrowingButton.css.js +1 -1
  258. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  259. package/dist/generated/themes/Icon.css.d.ts +1 -1
  260. package/dist/generated/themes/Icon.css.js +1 -1
  261. package/dist/generated/themes/Icon.css.js.map +1 -1
  262. package/dist/generated/themes/Input.css.d.ts +1 -1
  263. package/dist/generated/themes/Input.css.js +1 -1
  264. package/dist/generated/themes/Input.css.js.map +1 -1
  265. package/dist/generated/themes/InputIcon.css.d.ts +1 -1
  266. package/dist/generated/themes/InputIcon.css.js +1 -1
  267. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  268. package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
  269. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  270. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  271. package/dist/generated/themes/Link.css.d.ts +1 -1
  272. package/dist/generated/themes/Link.css.js +1 -1
  273. package/dist/generated/themes/Link.css.js.map +1 -1
  274. package/dist/generated/themes/List.css.d.ts +1 -1
  275. package/dist/generated/themes/List.css.js +1 -1
  276. package/dist/generated/themes/List.css.js.map +1 -1
  277. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  278. package/dist/generated/themes/ListItem.css.js +1 -1
  279. package/dist/generated/themes/ListItem.css.js.map +1 -1
  280. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  281. package/dist/generated/themes/ListItemBase.css.js +1 -1
  282. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  283. package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
  284. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  285. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  286. package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
  287. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  288. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  289. package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
  290. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  291. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  292. package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
  293. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  294. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  295. package/dist/generated/themes/Menu.css.d.ts +1 -1
  296. package/dist/generated/themes/Menu.css.js +1 -1
  297. package/dist/generated/themes/Menu.css.js.map +1 -1
  298. package/dist/generated/themes/MenuItem.css.d.ts +1 -1
  299. package/dist/generated/themes/MenuItem.css.js +1 -1
  300. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  301. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  302. package/dist/generated/themes/MessageStrip.css.js +1 -1
  303. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  304. package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
  305. package/dist/generated/themes/MonthPicker.css.js +1 -1
  306. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  307. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  308. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  309. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  310. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
  311. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  312. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  313. package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
  314. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  315. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  316. package/dist/generated/themes/MultiInput.css.d.ts +1 -1
  317. package/dist/generated/themes/MultiInput.css.js +1 -1
  318. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  319. package/dist/generated/themes/OptionBase.css.d.ts +1 -1
  320. package/dist/generated/themes/OptionBase.css.js +1 -1
  321. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  322. package/dist/generated/themes/Panel.css.d.ts +1 -1
  323. package/dist/generated/themes/Panel.css.js +1 -1
  324. package/dist/generated/themes/Panel.css.js.map +1 -1
  325. package/dist/generated/themes/Popover.css.d.ts +1 -1
  326. package/dist/generated/themes/Popover.css.js +1 -1
  327. package/dist/generated/themes/Popover.css.js.map +1 -1
  328. package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
  329. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  330. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  331. package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
  332. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  333. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  334. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  335. package/dist/generated/themes/RadioButton.css.js +1 -1
  336. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  337. package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
  338. package/dist/generated/themes/RangeSlider.css.js +1 -1
  339. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  340. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  341. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  342. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  343. package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
  344. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  345. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  346. package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
  347. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  348. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  349. package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
  350. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  351. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  352. package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
  353. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  354. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  355. package/dist/generated/themes/Select.css.d.ts +1 -1
  356. package/dist/generated/themes/Select.css.js +1 -1
  357. package/dist/generated/themes/Select.css.js.map +1 -1
  358. package/dist/generated/themes/SliderBase.css.d.ts +1 -1
  359. package/dist/generated/themes/SliderBase.css.js +1 -1
  360. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  361. package/dist/generated/themes/SplitButton.css.d.ts +1 -1
  362. package/dist/generated/themes/SplitButton.css.js +1 -1
  363. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  364. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  365. package/dist/generated/themes/StepInput.css.js +1 -1
  366. package/dist/generated/themes/StepInput.css.js.map +1 -1
  367. package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
  368. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  369. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  370. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
  371. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  372. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  373. package/dist/generated/themes/Switch.css.d.ts +1 -1
  374. package/dist/generated/themes/Switch.css.js +1 -1
  375. package/dist/generated/themes/Switch.css.js.map +1 -1
  376. package/dist/generated/themes/TabContainer.css.d.ts +1 -1
  377. package/dist/generated/themes/TabContainer.css.js +1 -1
  378. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  379. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  380. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  381. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  382. package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
  383. package/dist/generated/themes/TabInStrip.css.js +1 -1
  384. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  385. package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
  386. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  387. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  388. package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
  389. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  390. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  391. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  392. package/dist/generated/themes/TableCellBase.css.js +1 -1
  393. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  394. package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
  395. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  396. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  397. package/dist/generated/themes/TableRow.css.d.ts +1 -1
  398. package/dist/generated/themes/TableRow.css.js +1 -1
  399. package/dist/generated/themes/TableRow.css.js.map +1 -1
  400. package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
  401. package/dist/generated/themes/TableRowActionBase.css.js +1 -1
  402. package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
  403. package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
  404. package/dist/generated/themes/TableRowBase.css.js +1 -1
  405. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  406. package/dist/generated/themes/Tag.css.d.ts +1 -1
  407. package/dist/generated/themes/Tag.css.js +1 -1
  408. package/dist/generated/themes/Tag.css.js.map +1 -1
  409. package/dist/generated/themes/Text.css.d.ts +1 -1
  410. package/dist/generated/themes/Text.css.js +1 -1
  411. package/dist/generated/themes/Text.css.js.map +1 -1
  412. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  413. package/dist/generated/themes/TextArea.css.js +1 -1
  414. package/dist/generated/themes/TextArea.css.js.map +1 -1
  415. package/dist/generated/themes/TimePicker.css.d.ts +1 -1
  416. package/dist/generated/themes/TimePicker.css.js +1 -1
  417. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  418. package/dist/generated/themes/Toast.css.d.ts +1 -1
  419. package/dist/generated/themes/Toast.css.js +1 -1
  420. package/dist/generated/themes/Toast.css.js.map +1 -1
  421. package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
  422. package/dist/generated/themes/ToggleButton.css.js +1 -1
  423. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  424. package/dist/generated/themes/Token.css.d.ts +1 -1
  425. package/dist/generated/themes/Token.css.js +1 -1
  426. package/dist/generated/themes/Token.css.js.map +1 -1
  427. package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
  428. package/dist/generated/themes/Tokenizer.css.js +1 -1
  429. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  430. package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
  431. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  432. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  433. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  434. package/dist/generated/themes/Toolbar.css.js +1 -1
  435. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  436. package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
  437. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  438. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  439. package/dist/generated/themes/ToolbarSelect.css.d.ts +2 -0
  440. package/dist/generated/themes/ToolbarSelect.css.js +8 -0
  441. package/dist/generated/themes/ToolbarSelect.css.js.map +1 -0
  442. package/dist/generated/themes/TreeItem.css.d.ts +1 -1
  443. package/dist/generated/themes/TreeItem.css.js +1 -1
  444. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  445. package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
  446. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  447. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  448. package/dist/generated/themes/YearPicker.css.d.ts +1 -1
  449. package/dist/generated/themes/YearPicker.css.js +1 -1
  450. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  451. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  452. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  453. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  454. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  455. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  456. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  457. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  458. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  459. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  460. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  461. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  462. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  463. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  464. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  465. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  466. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  467. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  468. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  469. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  470. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  471. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  472. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  473. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  474. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  475. package/dist/types/BarAccessibleRole.d.ts +18 -0
  476. package/dist/types/BarAccessibleRole.js +20 -0
  477. package/dist/types/BarAccessibleRole.js.map +1 -0
  478. package/dist/vscode.html-custom-data.json +41 -36
  479. package/dist/web-types.json +78 -65
  480. package/package.json +9 -9
  481. package/src/BarTemplate.tsx +2 -2
  482. package/src/ColorPaletteItemTemplate.tsx +1 -0
  483. package/src/MenuItemTemplate.tsx +4 -1
  484. package/src/MenuTemplate.tsx +1 -0
  485. package/src/RangeSliderTemplate.tsx +2 -2
  486. package/src/SliderBaseTemplate.tsx +0 -7
  487. package/src/SliderTemplate.tsx +2 -2
  488. package/src/SplitButtonTemplate.tsx +0 -1
  489. package/src/i18n/messagebundle.properties +6 -0
  490. package/src/i18n/messagebundle_en.properties +219 -0
  491. package/src/i18n/messagebundle_en_US_saprigi.properties +2 -0
  492. package/src/themes/Avatar.css +5 -1
  493. package/src/themes/ColorPaletteItem.css +3 -3
  494. package/src/themes/ListItem.css +3 -3
  495. package/src/themes/ListItemCustom.css +12 -0
  496. package/src/themes/PopupsCommon.css +3 -2
  497. package/src/themes/TextArea.css +10 -24
  498. package/src/themes/ToolbarSelect.css +8 -0
  499. package/src/themes/base/PopupsCommon-parameters.css +0 -1
  500. package/dist/css/themes/BrowserScrollbar.css +0 -1
  501. package/dist/generated/themes/BrowserScrollbar.css.d.ts +0 -2
  502. package/dist/generated/themes/BrowserScrollbar.css.js +0 -8
  503. package/dist/generated/themes/BrowserScrollbar.css.js.map +0 -1
  504. package/src/themes/BrowserScrollbar.css +0 -25
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\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 PopoverHorizontalAlign from \"./types/PopoverHorizontalAlign.js\";\nimport type MenuItem from \"./MenuItem.js\";\nimport \"./MenuItem.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_closeItemSubMenu(item: MenuItem) {\n\t\tif (item && item._popover) {\n\t\t\tconst openedSibling = item._menuItems.find(menuItem => menuItem._popover && menuItem._popover.open);\n\t\t\tif (openedSibling) {\n\t\t\t\tthis._closeItemSubMenu(openedSibling);\n\t\t\t}\n\n\t\t\titem._popover.open = false;\n\t\t\titem.selected = false;\n\t\t}\n\t}\n\n\t_itemMouseOver(e: MouseEvent) {\n\t\tif (isDesktop()) {\n\t\t\t// respect mouseover only on desktop\n\t\t\tconst item = e.target as MenuItem;\n\n\t\t\tif (this._isInstanceOfMenuItem(item)) {\n\t\t\t\titem.focus();\n\n\t\t\t\t// Opens submenu with 300ms delay\n\t\t\t\tthis._startOpenTimeout(item);\n\t\t\t}\n\t\t}\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_startOpenTimeout(item: MenuItem) {\n\t\tclearTimeout(this._timeout);\n\n\t\tthis._timeout = setTimeout(() => {\n\t\t\tconst opener = item.parentElement as MenuItem | Menu;\n\t\t\tconst openedSibling = opener && opener._menuItems.find(menuItem => menuItem._popover && menuItem._popover.open);\n\t\t\tif (openedSibling) {\n\t\t\t\tthis._closeItemSubMenu(openedSibling);\n\t\t\t}\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\t\tconst parentElement = item.parentElement as MenuItem;\n\t\tconst shouldItemNavigation = isUp(e) || isDown(e);\n\t\tconst shouldOpenMenu = this.isRtl ? isLeft(e) : isRight(e);\n\t\tconst shouldCloseMenu = !shouldItemNavigation && !shouldOpenMenu && this._isInstanceOfMenuItem(parentElement);\n\n\t\tif (this._isInstanceOfMenuItem(item)) {\n\t\t\tif (isEnter(e) || isTabNextPrevious) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\n\t\t\tif (isRight(e) || isLeft(e)) {\n\t\t\t\titem._navigateToEndContent(isLeft(e));\n\t\t\t}\n\n\t\t\tif (shouldOpenMenu) {\n\t\t\t\tthis._openItemSubMenu(item);\n\t\t\t} else if ((shouldCloseMenu || isTabNextPrevious) && parentElement._popover) {\n\t\t\t\tparentElement._popover.open = false;\n\t\t\t\tparentElement.selected = false;\n\t\t\t\tparentElement._popover.focusOpener();\n\t\t\t}\n\t\t} else if (isUp(e)) {\n\t\t\tthis._navigateOutOfEndContent(parentElement);\n\t\t} else if (isDown(e)) {\n\t\t\tthis._navigateOutOfEndContent(parentElement, true);\n\t\t}\n\t}\n\n\t_navigateOutOfEndContent(menuItem: MenuItem, isDownwards?: boolean) {\n\t\tconst opener = menuItem?.parentElement as MenuItem | Menu;\n\t\tconst currentIndex = opener._menuItems.indexOf(menuItem);\n\t\tconst nextItem = isDownwards ? opener._menuItems[currentIndex + 1] : opener._menuItems[currentIndex - 1];\n\t\tconst itemToFocus = nextItem || opener._menuItems[currentIndex];\n\n\t\titemToFocus.focus();\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\t_isInstanceOfMenuItem(object: any): object is MenuItem {\n\t\treturn \"isMenuItem\" in object;\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 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"]}
@@ -13,6 +13,9 @@ type MenuBeforeOpenEventDetail = {
13
13
  type MenuBeforeCloseEventDetail = {
14
14
  escPressed: boolean;
15
15
  };
16
+ type MenuNavigateOutOfEndContentEventDetail = {
17
+ shouldNavigateToNextItem: boolean;
18
+ };
16
19
  type MenuItemAccessibilityAttributes = Pick<AccessibilityAttributes, "ariaKeyShortcuts" | "role"> & ListItemAccessibilityAttributes;
17
20
  /**
18
21
  * @class
@@ -44,6 +47,7 @@ declare class MenuItem extends ListItem implements IMenuItem {
44
47
  "before-close": MenuBeforeCloseEventDetail;
45
48
  "close": void;
46
49
  "close-menu": void;
50
+ "exit-end-content": MenuNavigateOutOfEndContentEventDetail;
47
51
  };
48
52
  /**
49
53
  * Defines the text of the tree item.
@@ -162,7 +166,7 @@ declare class MenuItem extends ListItem implements IMenuItem {
162
166
  _itemNavigation: ItemNavigation;
163
167
  constructor();
164
168
  get _navigableItems(): Array<HTMLElement>;
165
- _navigateToEndContent(isLast?: boolean): void;
169
+ _navigateToEndContent(shouldNavigateToPreviousItem: boolean): void;
166
170
  get placement(): `${PopoverPlacement}`;
167
171
  get isRtl(): boolean;
168
172
  get hasSubmenu(): boolean;
@@ -198,6 +202,11 @@ declare class MenuItem extends ListItem implements IMenuItem {
198
202
  };
199
203
  get _popover(): ResponsivePopover;
200
204
  get _menuItems(): MenuItem[];
205
+ _closeOtherSubMenus(item: MenuItem): void;
206
+ _itemMouseOver(e: MouseEvent): void;
207
+ _itemKeyDown(e: KeyboardEvent): void;
208
+ _endContentKeyDown(e: KeyboardEvent): void;
209
+ _navigateOutOfEndContent(e: CustomEvent): void;
201
210
  _closeAll(): void;
202
211
  _close(): void;
203
212
  _beforePopoverOpen(e: CustomEvent): void;
@@ -206,5 +215,7 @@ declare class MenuItem extends ListItem implements IMenuItem {
206
215
  _afterPopoverClose(): void;
207
216
  get isMenuItem(): boolean;
208
217
  }
218
+ declare const isInstanceOfMenuItem: (object: any) => object is MenuItem;
209
219
  export default MenuItem;
210
220
  export type { MenuBeforeCloseEventDetail, MenuBeforeOpenEventDetail, MenuItemAccessibilityAttributes, };
221
+ export { isInstanceOfMenuItem, };
package/dist/MenuItem.js CHANGED
@@ -11,7 +11,8 @@ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
11
11
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
12
12
  import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
13
13
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
14
- import { isPhone } from "@ui5/webcomponents-base/dist/Device.js";
14
+ import { isLeft, isRight, isEnter, isSpace, isTabNext, isTabPrevious, isDown, isUp, } from "@ui5/webcomponents-base/dist/Keys.js";
15
+ import { isDesktop, isPhone } from "@ui5/webcomponents-base/dist/Device.js";
15
16
  import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js";
16
17
  import "@ui5/webcomponents-icons/dist/nav-back.js";
17
18
  import NavigationMode from "@ui5/webcomponents-base/dist/types/NavigationMode.js";
@@ -89,10 +90,11 @@ let MenuItem = MenuItem_1 = class MenuItem extends ListItem {
89
90
  || (item.hasAttribute("ui5-icon") && item.getAttribute("mode") === "Interactive");
90
91
  });
91
92
  }
92
- _navigateToEndContent(isLast) {
93
- const item = isLast
94
- ? this._navigableItems[this._navigableItems.length - 1]
95
- : this._navigableItems[0];
93
+ _navigateToEndContent(shouldNavigateToPreviousItem) {
94
+ const navigatableItems = this._navigableItems;
95
+ const item = shouldNavigateToPreviousItem
96
+ ? navigatableItems[navigatableItems.length - 1]
97
+ : navigatableItems[0];
96
98
  if (item) {
97
99
  this._itemNavigation.setCurrentItem(item);
98
100
  this._itemNavigation._focusCurrentItem();
@@ -166,6 +168,60 @@ let MenuItem = MenuItem_1 = class MenuItem extends ListItem {
166
168
  get _menuItems() {
167
169
  return this.items.filter((item) => !item.isSeparator);
168
170
  }
171
+ _closeOtherSubMenus(item) {
172
+ const menuItems = this._menuItems;
173
+ if (!menuItems.includes(item)) {
174
+ return;
175
+ }
176
+ menuItems.forEach(menuItem => {
177
+ if (menuItem !== item) {
178
+ menuItem._close();
179
+ }
180
+ });
181
+ }
182
+ _itemMouseOver(e) {
183
+ if (!isDesktop()) {
184
+ return;
185
+ }
186
+ const item = e.target;
187
+ if (!isInstanceOfMenuItem(item)) {
188
+ return;
189
+ }
190
+ item.focus();
191
+ this._closeOtherSubMenus(item);
192
+ }
193
+ _itemKeyDown(e) {
194
+ const item = e.target;
195
+ const itemInMenuItems = this._menuItems.includes(item);
196
+ const isTabNextPrevious = isTabNext(e) || isTabPrevious(e);
197
+ const isItemNavigation = isUp(e) || isDown(e);
198
+ const isItemSelection = isSpace(e) || isEnter(e);
199
+ const shouldOpenMenu = this.isRtl ? isLeft(e) : isRight(e);
200
+ const shouldCloseMenu = !(isItemNavigation || isItemSelection || shouldOpenMenu) || isTabNextPrevious;
201
+ if (itemInMenuItems && shouldCloseMenu) {
202
+ this._close();
203
+ this.focus();
204
+ e.stopPropagation();
205
+ }
206
+ }
207
+ _endContentKeyDown(e) {
208
+ const shouldNavigateOutOfEndContent = isUp(e) || isDown(e);
209
+ if (shouldNavigateOutOfEndContent) {
210
+ this.fireDecoratorEvent("exit-end-content", { shouldNavigateToNextItem: isDown(e) });
211
+ }
212
+ }
213
+ _navigateOutOfEndContent(e) {
214
+ const item = e.target;
215
+ const shouldNavigateToNextItem = e.detail.shouldNavigateToNextItem;
216
+ const menuItems = this._menuItems;
217
+ const itemIndex = menuItems.indexOf(item);
218
+ if (itemIndex > -1) {
219
+ const nextItem = shouldNavigateToNextItem ? menuItems[itemIndex + 1] : menuItems[itemIndex - 1];
220
+ const itemToFocus = nextItem || menuItems[itemIndex];
221
+ itemToFocus?.focus();
222
+ e.stopPropagation();
223
+ }
224
+ }
169
225
  _closeAll() {
170
226
  if (this._popover) {
171
227
  this._popover.open = false;
@@ -176,6 +232,7 @@ let MenuItem = MenuItem_1 = class MenuItem extends ListItem {
176
232
  _close() {
177
233
  if (this._popover) {
178
234
  this._popover.open = false;
235
+ this._menuItems.forEach(item => item._close());
179
236
  }
180
237
  this.selected = false;
181
238
  }
@@ -282,6 +339,14 @@ MenuItem = MenuItem_1 = __decorate([
282
339
  event("close-menu", {
283
340
  bubbles: true,
284
341
  })
342
+ /**
343
+ * Fired when navigating out of end-content.
344
+ * @private
345
+ */
346
+ ,
347
+ event("exit-end-content", {
348
+ bubbles: true,
349
+ })
285
350
  /**
286
351
  * Fired before the menu is closed. This event can be cancelled, which will prevent the menu from closing.
287
352
  * @public
@@ -301,5 +366,9 @@ MenuItem = MenuItem_1 = __decorate([
301
366
  event("close")
302
367
  ], MenuItem);
303
368
  MenuItem.define();
369
+ const isInstanceOfMenuItem = (object) => {
370
+ return "isMenuItem" in object;
371
+ };
304
372
  export default MenuItem;
373
+ export { isInstanceOfMenuItem, };
305
374
  //# sourceMappingURL=MenuItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.js","sourceRoot":"","sources":["../src/MenuItem.ts"],"names":[],"mappings":"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","sourcesContent":["import jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport type { AccessibilityAttributes, AriaHasPopup, AriaRole } from \"@ui5/webcomponents-base\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport \"@ui5/webcomponents-icons/dist/nav-back.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport NavigationMode from \"@ui5/webcomponents-base/dist/types/NavigationMode.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport ItemNavigationBehavior from \"@ui5/webcomponents-base/dist/types/ItemNavigationBehavior.js\";\nimport type { ListItemAccessibilityAttributes } from \"./ListItem.js\";\nimport ListItem from \"./ListItem.js\";\nimport type ResponsivePopover from \"./ResponsivePopover.js\";\nimport type PopoverPlacement from \"./types/PopoverPlacement.js\";\nimport MenuItemTemplate from \"./MenuItemTemplate.js\";\nimport {\n\tMENU_BACK_BUTTON_ARIA_LABEL,\n\tMENU_CLOSE_BUTTON_ARIA_LABEL,\n\tMENU_POPOVER_ACCESSIBLE_NAME,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport type { IMenuItem } from \"./Menu.js\";\n\n// Styles\nimport menuItemCss from \"./generated/themes/MenuItem.css.js\";\n\ntype MenuBeforeOpenEventDetail = { item?: MenuItem };\ntype MenuBeforeCloseEventDetail = { escPressed: boolean };\n\ntype MenuItemAccessibilityAttributes = Pick<AccessibilityAttributes, \"ariaKeyShortcuts\" | \"role\"> & ListItemAccessibilityAttributes;\n\n/**\n * @class\n *\n * ### Overview\n *\n * `ui5-menu-item` is the item to use inside a `ui5-menu`.\n * An arbitrary hierarchy structure can be represented by recursively nesting menu items.\n *\n * ### Usage\n *\n * `ui5-menu-item` represents a node in a `ui5-menu`. The menu itself is rendered as a list,\n * and each `ui5-menu-item` is represented by a list item in that list. Therefore, you should only use\n * `ui5-menu-item` directly in your apps. The `ui5-li` list item is internal for the list, and not intended for public use.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/MenuItem.js\";`\n * @constructor\n * @extends ListItem\n * @implements {IMenuItem}\n * @since 1.3.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-menu-item\",\n\trenderer: jsxRenderer,\n\ttemplate: MenuItemTemplate,\n\tstyles: [ListItem.styles, menuItemCss],\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\tcancelable: true,\n})\n\n/**\n * Fired after the menu is opened.\n * @public\n */\n@event(\"open\")\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\tcancelable: true,\n})\n\n/**\n * Fired after the menu is closed.\n * @public\n * @since 1.10.0\n */\n@event(\"close\")\nclass MenuItem extends ListItem implements IMenuItem {\n\teventDetails!: ListItem[\"eventDetails\"] & {\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 text of the tree item.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ttext?: string;\n\n\t/**\n\t * Defines the `additionalText`, displayed in the end of the menu item.\n\t *\n\t * **Note:** The additional text will not be displayed if there are items added in `items` slot or there are\n\t * components added to `endContent` slot.\n\t *\n\t * The priority of what will be displayed at the end of the menu item is as follows:\n\t * sub-menu arrow (if there are items added in `items` slot) -> components added in `endContent` -> text set to `additionalText`.\n\t * @default undefined\n\t * @public\n\t * @since 1.8.0\n\t */\n\t@property()\n\tadditionalText?: string;\n\n\t/**\n\t * Defines the icon to be displayed as graphical element within the component.\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * **Example:**\n\t *\n\t * See all the available icons in the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ticon?: string;\n\n\t/**\n\t * Defines whether `ui5-menu-item` is in disabled state.\n\t *\n\t * **Note:** A disabled `ui5-menu-item` is noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = 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 *\n\t * **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.\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 accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.7.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the text of the tooltip for the menu item.\n\t * @default undefined\n\t * @public\n\t * @since 1.23.0\n\t */\n\t@property()\n\ttooltip?: string;\n\n\t/**\n\t * Defines the additional accessibility attributes that will be applied to the component.\n\t * The following fields are supported:\n\t *\n\t * - **ariaKeyShortcuts**: Indicated the availability of a keyboard shortcuts defined for the menu item.\n\t *\n\t * - **role**: Defines the role of the menu item. If not set, menu item will have default role=\"menuitem\".\n\t *\n\t * @public\n\t * @since 2.1.0\n\t * @default {}\n\t */\n\t@property({ type: Object })\n\tdeclare accessibilityAttributes: MenuItemAccessibilityAttributes;\n\n\t/**\n\t * Indicates whether any of the element siblings have icon.\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_siblingsWithIcon = false;\n\n\t/**\n\t * Defines the items of this component.\n\t *\n\t * **Note:** The slot can hold `ui5-menu-item` and `ui5-menu-separator` items.\n\t *\n\t * If there are items added to this slot, an arrow will be displayed at the end\n\t * of the item in order to indicate that there are items added. In that case components added\n\t * to `endContent` slot or `additionalText` content will not be displayed.\n\t *\n\t * The priority of what will be displayed at the end of the menu item is as follows:\n\t * sub-menu arrow (if there are items added in `items` slot) -> components added in `endContent` -> text set to `additionalText`.\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, invalidateOnChildChange: true })\n\titems!: Array<IMenuItem>;\n\n\t/**\n\t * Defines the components that should be displayed at the end of the menu item.\n\t *\n\t * **Note:** It is highly recommended to slot only components of type `ui5-button`,`ui5-link`\n\t * or `ui5-icon` in order to preserve the intended design. If there are components added to this slot,\n\t * and there is text set in `additionalText`, it will not be displayed. If there are items added to `items` slot,\n\t * nether `additionalText` nor components added to this slot would be displayed.\n\t *\n\t * The priority of what will be displayed at the end of the menu item is as follows:\n\t * sub-menu arrow (if there are items added in `items` slot) -> components added in `endContent` -> text set to `additionalText`.\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@slot({ type: HTMLElement })\n\tendContent!: Array<HTMLElement>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\t_itemNavigation: ItemNavigation;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._itemNavigation = new ItemNavigation(this, {\n\t\t\tnavigationMode: NavigationMode.Horizontal,\n\t\t\tbehavior: ItemNavigationBehavior.Static,\n\t\t\tgetItemsCallback: () => this._navigableItems,\n\t\t});\n\t}\n\n\tget _navigableItems(): Array<HTMLElement> {\n\t\treturn [...this.endContent].filter(item => {\n\t\t\treturn item.hasAttribute(\"ui5-button\")\n\t\t\t|| item.hasAttribute(\"ui5-link\")\n\t\t\t|| (item.hasAttribute(\"ui5-icon\") && item.getAttribute(\"mode\") === \"Interactive\");\n\t\t});\n\t}\n\n\t_navigateToEndContent(isLast?: boolean) {\n\t\tconst item = isLast\n\t\t\t? this._navigableItems[this._navigableItems.length - 1]\n\t\t\t: this._navigableItems[0];\n\n\t\tif (item) {\n\t\t\tthis._itemNavigation.setCurrentItem(item);\n\t\t\tthis._itemNavigation._focusCurrentItem();\n\t\t}\n\t}\n\n\tget placement(): `${PopoverPlacement}` {\n\t\treturn this.isRtl ? \"Start\" : \"End\";\n\t}\n\n\tget isRtl() {\n\t\treturn this.effectiveDir === \"rtl\";\n\t}\n\n\tget hasSubmenu() {\n\t\treturn !!(this.items.length || this.loading) && !this.disabled;\n\t}\n\n\tget hasEndContent() {\n\t\treturn !!(this.endContent.length);\n\t}\n\n\tget hasIcon() {\n\t\treturn !!this.icon;\n\t}\n\n\tget isSubMenuOpen() {\n\t\treturn this._popover?.open;\n\t}\n\n\tget menuHeaderTextPhone() {\n\t\treturn this.text;\n\t}\n\n\tget isPhone() {\n\t\treturn isPhone();\n\t}\n\n\tget labelBack() {\n\t\treturn MenuItem.i18nBundle.getText(MENU_BACK_BUTTON_ARIA_LABEL);\n\t}\n\n\tget labelClose() {\n\t\treturn MenuItem.i18nBundle.getText(MENU_CLOSE_BUTTON_ARIA_LABEL);\n\t}\n\n\tget acessibleNameText() {\n\t\treturn MenuItem.i18nBundle.getText(MENU_POPOVER_ACCESSIBLE_NAME);\n\t}\n\n\tget isSeparator(): boolean {\n\t\treturn false;\n\t}\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\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\tasync focus(focusOptions?: FocusOptions): Promise<void> {\n\t\tawait renderFinished();\n\n\t\tif (this.hasSubmenu && this.isSubMenuOpen) {\n\t\t\treturn this._menuItems[0].focus(focusOptions);\n\t\t}\n\n\t\treturn super.focus(focusOptions);\n\t}\n\n\tget _focusable() {\n\t\treturn true;\n\t}\n\n\tget _accInfo() {\n\t\tconst accInfoSettings: {\n\t\t\trole: AriaRole;\n\t\t\tariaHaspopup?: `${AriaHasPopup}`;\n\t\t\tariaKeyShortcuts?: string;\n\t\t\tariaHidden?: boolean;\n\t\t} = {\n\t\t\trole: this.accessibilityAttributes.role || \"menuitem\",\n\t\t\tariaHaspopup: this.hasSubmenu ? \"menu\" : undefined,\n\t\t\tariaKeyShortcuts: this.accessibilityAttributes.ariaKeyShortcuts,\n\t\t\tariaHidden: !!this.additionalText && !!this.accessibilityAttributes.ariaKeyShortcuts ? true : undefined,\n\t\t};\n\n\t\treturn { ...super._accInfo, ...accInfoSettings };\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\t_closeAll() {\n\t\tif (this._popover) {\n\t\t\tthis._popover.open = false;\n\t\t}\n\t\tthis.selected = false;\n\t\tthis.fireDecoratorEvent(\"close-menu\");\n\t}\n\n\t_close() {\n\t\tif (this._popover) {\n\t\t\tthis._popover.open = false;\n\t\t}\n\t\tthis.selected = false;\n\t}\n\n\t_beforePopoverOpen(e: CustomEvent) {\n\t\tconst prevented = !this.fireDecoratorEvent(\"before-open\", {});\n\n\t\tif (prevented) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_afterPopoverOpen() {\n\t\tthis.items[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\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.selected = false;\n\t\tif (e.detail.escPressed) {\n\t\t\tthis.focus();\n\t\t\tif (isPhone()) {\n\t\t\t\tthis.fireDecoratorEvent(\"close-menu\");\n\t\t\t}\n\t\t}\n\t}\n\n\t_afterPopoverClose() {\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\tget isMenuItem(): boolean {\n\t\treturn true;\n\t}\n}\n\nMenuItem.define();\n\nexport default MenuItem;\n\nexport type {\n\tMenuBeforeCloseEventDetail,\n\tMenuBeforeOpenEventDetail,\n\tMenuItemAccessibilityAttributes,\n};\n"]}
1
+ {"version":3,"file":"MenuItem.js","sourceRoot":"","sources":["../src/MenuItem.ts"],"names":[],"mappings":"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","sourcesContent":["import jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport type { AccessibilityAttributes, AriaHasPopup, AriaRole } from \"@ui5/webcomponents-base\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.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 { isDesktop, isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport \"@ui5/webcomponents-icons/dist/nav-back.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport NavigationMode from \"@ui5/webcomponents-base/dist/types/NavigationMode.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport ItemNavigationBehavior from \"@ui5/webcomponents-base/dist/types/ItemNavigationBehavior.js\";\nimport type { ListItemAccessibilityAttributes } from \"./ListItem.js\";\nimport ListItem from \"./ListItem.js\";\nimport type ResponsivePopover from \"./ResponsivePopover.js\";\nimport type PopoverPlacement from \"./types/PopoverPlacement.js\";\nimport MenuItemTemplate from \"./MenuItemTemplate.js\";\nimport {\n\tMENU_BACK_BUTTON_ARIA_LABEL,\n\tMENU_CLOSE_BUTTON_ARIA_LABEL,\n\tMENU_POPOVER_ACCESSIBLE_NAME,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport type { IMenuItem } from \"./Menu.js\";\n\n// Styles\nimport menuItemCss from \"./generated/themes/MenuItem.css.js\";\n\ntype MenuBeforeOpenEventDetail = { item?: MenuItem };\ntype MenuBeforeCloseEventDetail = { escPressed: boolean };\n\ntype MenuNavigateOutOfEndContentEventDetail = { shouldNavigateToNextItem: boolean };\n\ntype MenuItemAccessibilityAttributes = Pick<AccessibilityAttributes, \"ariaKeyShortcuts\" | \"role\"> & ListItemAccessibilityAttributes;\n\n/**\n * @class\n *\n * ### Overview\n *\n * `ui5-menu-item` is the item to use inside a `ui5-menu`.\n * An arbitrary hierarchy structure can be represented by recursively nesting menu items.\n *\n * ### Usage\n *\n * `ui5-menu-item` represents a node in a `ui5-menu`. The menu itself is rendered as a list,\n * and each `ui5-menu-item` is represented by a list item in that list. Therefore, you should only use\n * `ui5-menu-item` directly in your apps. The `ui5-li` list item is internal for the list, and not intended for public use.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/MenuItem.js\";`\n * @constructor\n * @extends ListItem\n * @implements {IMenuItem}\n * @since 1.3.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-menu-item\",\n\trenderer: jsxRenderer,\n\ttemplate: MenuItemTemplate,\n\tstyles: [ListItem.styles, menuItemCss],\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\tcancelable: true,\n})\n\n/**\n * Fired after the menu is opened.\n * @public\n */\n@event(\"open\")\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 when navigating out of end-content.\n * @private\n */\n@event(\"exit-end-content\", {\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\tcancelable: true,\n})\n\n/**\n * Fired after the menu is closed.\n * @public\n * @since 1.10.0\n */\n@event(\"close\")\nclass MenuItem extends ListItem implements IMenuItem {\n\teventDetails!: ListItem[\"eventDetails\"] & {\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\t\"exit-end-content\": MenuNavigateOutOfEndContentEventDetail,\n\t}\n\t/**\n\t * Defines the text of the tree item.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ttext?: string;\n\n\t/**\n\t * Defines the `additionalText`, displayed in the end of the menu item.\n\t *\n\t * **Note:** The additional text will not be displayed if there are items added in `items` slot or there are\n\t * components added to `endContent` slot.\n\t *\n\t * The priority of what will be displayed at the end of the menu item is as follows:\n\t * sub-menu arrow (if there are items added in `items` slot) -> components added in `endContent` -> text set to `additionalText`.\n\t * @default undefined\n\t * @public\n\t * @since 1.8.0\n\t */\n\t@property()\n\tadditionalText?: string;\n\n\t/**\n\t * Defines the icon to be displayed as graphical element within the component.\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * **Example:**\n\t *\n\t * See all the available icons in the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ticon?: string;\n\n\t/**\n\t * Defines whether `ui5-menu-item` is in disabled state.\n\t *\n\t * **Note:** A disabled `ui5-menu-item` is noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = 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 *\n\t * **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.\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 accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.7.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the text of the tooltip for the menu item.\n\t * @default undefined\n\t * @public\n\t * @since 1.23.0\n\t */\n\t@property()\n\ttooltip?: string;\n\n\t/**\n\t * Defines the additional accessibility attributes that will be applied to the component.\n\t * The following fields are supported:\n\t *\n\t * - **ariaKeyShortcuts**: Indicated the availability of a keyboard shortcuts defined for the menu item.\n\t *\n\t * - **role**: Defines the role of the menu item. If not set, menu item will have default role=\"menuitem\".\n\t *\n\t * @public\n\t * @since 2.1.0\n\t * @default {}\n\t */\n\t@property({ type: Object })\n\tdeclare accessibilityAttributes: MenuItemAccessibilityAttributes;\n\n\t/**\n\t * Indicates whether any of the element siblings have icon.\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_siblingsWithIcon = false;\n\n\t/**\n\t * Defines the items of this component.\n\t *\n\t * **Note:** The slot can hold `ui5-menu-item` and `ui5-menu-separator` items.\n\t *\n\t * If there are items added to this slot, an arrow will be displayed at the end\n\t * of the item in order to indicate that there are items added. In that case components added\n\t * to `endContent` slot or `additionalText` content will not be displayed.\n\t *\n\t * The priority of what will be displayed at the end of the menu item is as follows:\n\t * sub-menu arrow (if there are items added in `items` slot) -> components added in `endContent` -> text set to `additionalText`.\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, invalidateOnChildChange: true })\n\titems!: Array<IMenuItem>;\n\n\t/**\n\t * Defines the components that should be displayed at the end of the menu item.\n\t *\n\t * **Note:** It is highly recommended to slot only components of type `ui5-button`,`ui5-link`\n\t * or `ui5-icon` in order to preserve the intended design. If there are components added to this slot,\n\t * and there is text set in `additionalText`, it will not be displayed. If there are items added to `items` slot,\n\t * nether `additionalText` nor components added to this slot would be displayed.\n\t *\n\t * The priority of what will be displayed at the end of the menu item is as follows:\n\t * sub-menu arrow (if there are items added in `items` slot) -> components added in `endContent` -> text set to `additionalText`.\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@slot({ type: HTMLElement })\n\tendContent!: Array<HTMLElement>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\t_itemNavigation: ItemNavigation;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._itemNavigation = new ItemNavigation(this, {\n\t\t\tnavigationMode: NavigationMode.Horizontal,\n\t\t\tbehavior: ItemNavigationBehavior.Static,\n\t\t\tgetItemsCallback: () => this._navigableItems,\n\t\t});\n\t}\n\n\tget _navigableItems(): Array<HTMLElement> {\n\t\treturn [...this.endContent].filter(item => {\n\t\t\treturn item.hasAttribute(\"ui5-button\")\n\t\t\t|| item.hasAttribute(\"ui5-link\")\n\t\t\t|| (item.hasAttribute(\"ui5-icon\") && item.getAttribute(\"mode\") === \"Interactive\");\n\t\t});\n\t}\n\n\t_navigateToEndContent(shouldNavigateToPreviousItem: boolean) {\n\t\tconst navigatableItems = this._navigableItems;\n\t\tconst item = shouldNavigateToPreviousItem\n\t\t\t? navigatableItems[navigatableItems.length - 1]\n\t\t\t: navigatableItems[0];\n\n\t\tif (item) {\n\t\t\tthis._itemNavigation.setCurrentItem(item);\n\t\t\tthis._itemNavigation._focusCurrentItem();\n\t\t}\n\t}\n\n\tget placement(): `${PopoverPlacement}` {\n\t\treturn this.isRtl ? \"Start\" : \"End\";\n\t}\n\n\tget isRtl() {\n\t\treturn this.effectiveDir === \"rtl\";\n\t}\n\n\tget hasSubmenu() {\n\t\treturn !!(this.items.length || this.loading) && !this.disabled;\n\t}\n\n\tget hasEndContent() {\n\t\treturn !!(this.endContent.length);\n\t}\n\n\tget hasIcon() {\n\t\treturn !!this.icon;\n\t}\n\n\tget isSubMenuOpen() {\n\t\treturn this._popover?.open;\n\t}\n\n\tget menuHeaderTextPhone() {\n\t\treturn this.text;\n\t}\n\n\tget isPhone() {\n\t\treturn isPhone();\n\t}\n\n\tget labelBack() {\n\t\treturn MenuItem.i18nBundle.getText(MENU_BACK_BUTTON_ARIA_LABEL);\n\t}\n\n\tget labelClose() {\n\t\treturn MenuItem.i18nBundle.getText(MENU_CLOSE_BUTTON_ARIA_LABEL);\n\t}\n\n\tget acessibleNameText() {\n\t\treturn MenuItem.i18nBundle.getText(MENU_POPOVER_ACCESSIBLE_NAME);\n\t}\n\n\tget isSeparator(): boolean {\n\t\treturn false;\n\t}\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\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\tasync focus(focusOptions?: FocusOptions): Promise<void> {\n\t\tawait renderFinished();\n\n\t\tif (this.hasSubmenu && this.isSubMenuOpen) {\n\t\t\treturn this._menuItems[0].focus(focusOptions);\n\t\t}\n\n\t\treturn super.focus(focusOptions);\n\t}\n\n\tget _focusable() {\n\t\treturn true;\n\t}\n\n\tget _accInfo() {\n\t\tconst accInfoSettings: {\n\t\t\trole: AriaRole;\n\t\t\tariaHaspopup?: `${AriaHasPopup}`;\n\t\t\tariaKeyShortcuts?: string;\n\t\t\tariaHidden?: boolean;\n\t\t} = {\n\t\t\trole: this.accessibilityAttributes.role || \"menuitem\",\n\t\t\tariaHaspopup: this.hasSubmenu ? \"menu\" : undefined,\n\t\t\tariaKeyShortcuts: this.accessibilityAttributes.ariaKeyShortcuts,\n\t\t\tariaHidden: !!this.additionalText && !!this.accessibilityAttributes.ariaKeyShortcuts ? true : undefined,\n\t\t};\n\n\t\treturn { ...super._accInfo, ...accInfoSettings };\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\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_itemMouseOver(e: MouseEvent) {\n\t\tif (!isDesktop()) {\n\t\t\treturn;\n\t\t}\n\t\tconst item = e.target as MenuItem;\n\n\t\tif (!isInstanceOfMenuItem(item)) {\n\t\t\treturn;\n\t\t}\n\t\titem.focus();\n\n\t\tthis._closeOtherSubMenus(item);\n\t}\n\n\t_itemKeyDown(e: KeyboardEvent) {\n\t\tconst item = e.target as MenuItem;\n\t\tconst itemInMenuItems = this._menuItems.includes(item);\n\t\tconst isTabNextPrevious = isTabNext(e) || isTabPrevious(e);\n\t\tconst isItemNavigation = isUp(e) || isDown(e);\n\t\tconst isItemSelection = isSpace(e) || isEnter(e);\n\t\tconst shouldOpenMenu = this.isRtl ? isLeft(e) : isRight(e);\n\t\tconst shouldCloseMenu = !(isItemNavigation || isItemSelection || shouldOpenMenu) || isTabNextPrevious;\n\n\t\tif (itemInMenuItems && shouldCloseMenu) {\n\t\t\tthis._close();\n\t\t\tthis.focus();\n\t\t\te.stopPropagation();\n\t\t}\n\t}\n\n\t_endContentKeyDown(e: KeyboardEvent) {\n\t\tconst shouldNavigateOutOfEndContent = isUp(e) || isDown(e);\n\n\t\tif (shouldNavigateOutOfEndContent) {\n\t\t\tthis.fireDecoratorEvent(\"exit-end-content\", { shouldNavigateToNextItem: isDown(e) });\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_closeAll() {\n\t\tif (this._popover) {\n\t\t\tthis._popover.open = false;\n\t\t}\n\t\tthis.selected = false;\n\t\tthis.fireDecoratorEvent(\"close-menu\");\n\t}\n\n\t_close() {\n\t\tif (this._popover) {\n\t\t\tthis._popover.open = false;\n\t\t\tthis._menuItems.forEach(item => item._close());\n\t\t}\n\t\tthis.selected = false;\n\t}\n\n\t_beforePopoverOpen(e: CustomEvent) {\n\t\tconst prevented = !this.fireDecoratorEvent(\"before-open\", {});\n\n\t\tif (prevented) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_afterPopoverOpen() {\n\t\tthis.items[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\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.selected = false;\n\t\tif (e.detail.escPressed) {\n\t\t\tthis.focus();\n\t\t\tif (isPhone()) {\n\t\t\t\tthis.fireDecoratorEvent(\"close-menu\");\n\t\t\t}\n\t\t}\n\t}\n\n\t_afterPopoverClose() {\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\tget isMenuItem(): boolean {\n\t\treturn true;\n\t}\n}\n\nMenuItem.define();\n\nconst isInstanceOfMenuItem = (object: any): object is MenuItem => {\n\treturn \"isMenuItem\" in object;\n};\n\nexport default MenuItem;\n\nexport type {\n\tMenuBeforeCloseEventDetail,\n\tMenuBeforeOpenEventDetail,\n\tMenuItemAccessibilityAttributes,\n};\n\nexport {\n\tisInstanceOfMenuItem,\n};\n"]}
@@ -24,7 +24,7 @@ function rightContent() {
24
24
  case this.hasSubmenu:
25
25
  return (_jsx("div", { class: "ui5-menu-item-submenu-icon", children: _jsx(Icon, { part: "subicon", name: slimArrowRight, class: "ui5-menu-item-icon-end" }) }));
26
26
  case this.hasEndContent:
27
- return _jsx("slot", { name: "endContent" });
27
+ return _jsx("slot", { name: "endContent", onKeyDown: this._endContentKeyDown });
28
28
  case !!this.additionalText:
29
29
  return (_jsx("span", { part: "additional-text", class: "ui5-li-additional-text", "aria-hidden": this._accInfo.ariaHidden, children: this.additionalText }));
30
30
  }
@@ -38,6 +38,6 @@ function iconBegin() {
38
38
  }
39
39
  }
40
40
  function listItemPostContent() {
41
- return this.hasSubmenu && _jsxs(ResponsivePopover, { id: `${this._id}-menu-rp`, class: "ui5-menu-rp ui5-menu-rp-sub-menu", preventInitialFocus: true, preventFocusRestore: true, hideArrow: true, allowTargetOverlap: true, placement: this.placement, verticalAlign: "Top", accessibleName: this.acessibleNameText, onBeforeOpen: this._beforePopoverOpen, onOpen: this._afterPopoverOpen, onBeforeClose: this._beforePopoverClose, onClose: this._afterPopoverClose, children: [this.isPhone && (_jsx(_Fragment, { children: _jsxs("div", { slot: "header", class: "ui5-menu-dialog-header", children: [_jsx(Button, { icon: navBackIcon, class: "ui5-menu-back-button", design: "Transparent", "aria-label": this.labelBack, onClick: this._close }), _jsx("div", { class: "ui5-menu-dialog-title", children: _jsx("div", { children: this.text }) }), _jsx(Button, { icon: declineIcon, design: "Transparent", "aria-label": this.labelClose, onClick: this._closeAll })] }) })), _jsx("div", { id: `${this._id}-menu-main`, children: this.items.length ? (_jsx(List, { id: `${this._id}-menu-list`, selectionMode: "None", separators: "None", accessibleRole: "Menu", loading: this.loading, loadingDelay: this.loadingDelay, "onui5-close-menu": this._close, children: _jsx("slot", {}) })) : this.loading && _jsx(BusyIndicator, { id: `${this._id}-menu-busy-indicator`, delay: this.loadingDelay, class: "ui5-menu-busy-indicator", active: true }) })] });
41
+ return this.hasSubmenu && _jsxs(ResponsivePopover, { id: `${this._id}-menu-rp`, class: "ui5-menu-rp ui5-menu-rp-sub-menu", preventInitialFocus: true, preventFocusRestore: true, hideArrow: true, allowTargetOverlap: true, placement: this.placement, verticalAlign: "Top", accessibleName: this.acessibleNameText, onBeforeOpen: this._beforePopoverOpen, onOpen: this._afterPopoverOpen, onBeforeClose: this._beforePopoverClose, onClose: this._afterPopoverClose, children: [this.isPhone && (_jsx(_Fragment, { children: _jsxs("div", { slot: "header", class: "ui5-menu-dialog-header", children: [_jsx(Button, { icon: navBackIcon, class: "ui5-menu-back-button", design: "Transparent", "aria-label": this.labelBack, onClick: this._close }), _jsx("div", { class: "ui5-menu-dialog-title", children: _jsx("div", { children: this.text }) }), _jsx(Button, { icon: declineIcon, design: "Transparent", "aria-label": this.labelClose, onClick: this._closeAll })] }) })), _jsx("div", { id: `${this._id}-menu-main`, children: this.items.length ? (_jsx(List, { id: `${this._id}-menu-list`, selectionMode: "None", separators: "None", accessibleRole: "Menu", loading: this.loading, loadingDelay: this.loadingDelay, onMouseOver: this._itemMouseOver, onKeyDown: this._itemKeyDown, "onui5-close-menu": this._close, "onui5-exit-end-content": this._navigateOutOfEndContent, children: _jsx("slot", {}) })) : this.loading && _jsx(BusyIndicator, { id: `${this._id}-menu-busy-indicator`, delay: this.loadingDelay, class: "ui5-menu-busy-indicator", active: true }) })] });
42
42
  }
43
43
  //# sourceMappingURL=MenuItemTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItemTemplate.js","sourceRoot":"","sources":["../src/MenuItemTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type MenuItem from \"./MenuItem.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport Button from \"./Button.js\";\nimport List from \"./List.js\";\nimport BusyIndicator from \"./BusyIndicator.js\";\nimport navBackIcon from \"@ui5/webcomponents-icons/dist/nav-back.js\";\nimport declineIcon from \"@ui5/webcomponents-icons/dist/decline.js\";\nimport slimArrowRight from \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport Icon from \"./Icon.js\";\nimport ListItemTemplate from \"./ListItemTemplate.js\";\nimport type { ListItemHooks } from \"./ListItemTemplate.js\";\n\nconst predefinedHooks: Partial<ListItemHooks> = {\n\tlistItemContent,\n\ticonBegin,\n};\n\nexport default function MenuItemTemplate(this: MenuItem, hooks?: Partial<ListItemHooks>) {\n\tconst currentHooks = { ...predefinedHooks, ...hooks };\n\n\treturn <>\n\t\t{ListItemTemplate.call(this, currentHooks)}\n\n\t\t{listItemPostContent.call(this)}\n\t</>;\n}\n\nfunction listItemContent(this: MenuItem) {\n\treturn (<>\n\t\t{this.text && <div class=\"ui5-menu-item-text\">{this.text}</div>}\n\n\t\t{rightContent.call(this)}\n\t</>);\n}\n\nfunction rightContent(this: MenuItem) {\n\tswitch (true) {\n\tcase this.hasSubmenu:\n\t\treturn (\n\t\t\t<div class=\"ui5-menu-item-submenu-icon\" >\n\t\t\t\t<Icon\n\t\t\t\t\tpart=\"subicon\"\n\t\t\t\t\tname={slimArrowRight}\n\t\t\t\t\tclass=\"ui5-menu-item-icon-end\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\tcase this.hasEndContent:\n\t\treturn <slot name=\"endContent\"></slot>;\n\tcase !!this.additionalText:\n\t\treturn (\n\t\t\t<span\n\t\t\t\tpart=\"additional-text\"\n\t\t\t\tclass=\"ui5-li-additional-text\"\n\t\t\t\taria-hidden={this._accInfo.ariaHidden}\n\t\t\t>\n\t\t\t\t{this.additionalText}\n\t\t\t</span>\n\t\t);\n\t}\n}\n\nfunction iconBegin(this: MenuItem) {\n\tif (this.hasIcon) {\n\t\treturn <Icon class=\"ui5-li-icon\" name={this.icon} />;\n\t}\n\n\tif (this._siblingsWithIcon) {\n\t\treturn <div class=\"ui5-menu-item-dummy-icon\"></div>;\n\t}\n}\n\nfunction listItemPostContent(this: MenuItem) {\n\treturn this.hasSubmenu && <ResponsivePopover\n\t\tid={`${this._id}-menu-rp`}\n\t\tclass=\"ui5-menu-rp ui5-menu-rp-sub-menu\"\n\t\tpreventInitialFocus={true}\n\t\tpreventFocusRestore={true}\n\t\thideArrow={true}\n\t\tallowTargetOverlap={true}\n\t\tplacement={this.placement}\n\t\tverticalAlign=\"Top\"\n\t\taccessibleName={this.acessibleNameText}\n\t\tonBeforeOpen={this._beforePopoverOpen}\n\t\tonOpen={this._afterPopoverOpen}\n\t\tonBeforeClose={this._beforePopoverClose}\n\t\tonClose={this._afterPopoverClose}\n\t>\n\t\t{\n\t\t\tthis.isPhone && (\n\t\t\t\t<>\n\t\t\t\t\t<div slot=\"header\" class=\"ui5-menu-dialog-header\" >\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={navBackIcon}\n\t\t\t\t\t\t\tclass=\"ui5-menu-back-button\"\n\t\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\t\taria-label={this.labelBack}\n\t\t\t\t\t\t\tonClick={this._close}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<div class=\"ui5-menu-dialog-title\" >\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t{this.text}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={declineIcon}\n\t\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\t\taria-label={this.labelClose}\n\t\t\t\t\t\t\tonClick={this._closeAll}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div >\n\t\t\t\t</>\n\t\t\t)\n\t\t}\n\n\t\t<div id={`${this._id}-menu-main`}>\n\t\t\t{\n\t\t\t\tthis.items.length ? (\n\t\t\t\t\t<List\n\t\t\t\t\t\tid={`${this._id}-menu-list`}\n\t\t\t\t\t\tselectionMode=\"None\"\n\t\t\t\t\t\tseparators=\"None\"\n\t\t\t\t\t\taccessibleRole=\"Menu\"\n\t\t\t\t\t\tloading={this.loading}\n\t\t\t\t\t\tloadingDelay={this.loadingDelay}\n\t\t\t\t\t\t// handles event from slotted children\n\t\t\t\t\t\tonui5-close-menu={this._close}\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</List>\n\t\t\t\t) : this.loading && <BusyIndicator\n\t\t\t\t\tid={`${this._id}-menu-busy-indicator`}\n\t\t\t\t\tdelay={this.loadingDelay}\n\t\t\t\t\tclass=\"ui5-menu-busy-indicator\"\n\t\t\t\t\tactive={true}\n\t\t\t\t/>\n\t\t\t}\n\t\t</div >\n\t</ResponsivePopover>;\n}\n"]}
1
+ {"version":3,"file":"MenuItemTemplate.js","sourceRoot":"","sources":["../src/MenuItemTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type MenuItem from \"./MenuItem.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport Button from \"./Button.js\";\nimport List from \"./List.js\";\nimport BusyIndicator from \"./BusyIndicator.js\";\nimport navBackIcon from \"@ui5/webcomponents-icons/dist/nav-back.js\";\nimport declineIcon from \"@ui5/webcomponents-icons/dist/decline.js\";\nimport slimArrowRight from \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport Icon from \"./Icon.js\";\nimport ListItemTemplate from \"./ListItemTemplate.js\";\nimport type { ListItemHooks } from \"./ListItemTemplate.js\";\n\nconst predefinedHooks: Partial<ListItemHooks> = {\n\tlistItemContent,\n\ticonBegin,\n};\n\nexport default function MenuItemTemplate(this: MenuItem, hooks?: Partial<ListItemHooks>) {\n\tconst currentHooks = { ...predefinedHooks, ...hooks };\n\n\treturn <>\n\t\t{ListItemTemplate.call(this, currentHooks)}\n\n\t\t{listItemPostContent.call(this)}\n\t</>;\n}\n\nfunction listItemContent(this: MenuItem) {\n\treturn (<>\n\t\t{this.text && <div class=\"ui5-menu-item-text\">{this.text}</div>}\n\n\t\t{rightContent.call(this)}\n\t</>);\n}\n\nfunction rightContent(this: MenuItem) {\n\tswitch (true) {\n\tcase this.hasSubmenu:\n\t\treturn (\n\t\t\t<div class=\"ui5-menu-item-submenu-icon\" >\n\t\t\t\t<Icon\n\t\t\t\t\tpart=\"subicon\"\n\t\t\t\t\tname={slimArrowRight}\n\t\t\t\t\tclass=\"ui5-menu-item-icon-end\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\tcase this.hasEndContent:\n\t\treturn <slot name=\"endContent\" onKeyDown={this._endContentKeyDown}></slot>;\n\tcase !!this.additionalText:\n\t\treturn (\n\t\t\t<span\n\t\t\t\tpart=\"additional-text\"\n\t\t\t\tclass=\"ui5-li-additional-text\"\n\t\t\t\taria-hidden={this._accInfo.ariaHidden}\n\t\t\t>\n\t\t\t\t{this.additionalText}\n\t\t\t</span>\n\t\t);\n\t}\n}\n\nfunction iconBegin(this: MenuItem) {\n\tif (this.hasIcon) {\n\t\treturn <Icon class=\"ui5-li-icon\" name={this.icon} />;\n\t}\n\n\tif (this._siblingsWithIcon) {\n\t\treturn <div class=\"ui5-menu-item-dummy-icon\"></div>;\n\t}\n}\n\nfunction listItemPostContent(this: MenuItem) {\n\treturn this.hasSubmenu && <ResponsivePopover\n\t\tid={`${this._id}-menu-rp`}\n\t\tclass=\"ui5-menu-rp ui5-menu-rp-sub-menu\"\n\t\tpreventInitialFocus={true}\n\t\tpreventFocusRestore={true}\n\t\thideArrow={true}\n\t\tallowTargetOverlap={true}\n\t\tplacement={this.placement}\n\t\tverticalAlign=\"Top\"\n\t\taccessibleName={this.acessibleNameText}\n\t\tonBeforeOpen={this._beforePopoverOpen}\n\t\tonOpen={this._afterPopoverOpen}\n\t\tonBeforeClose={this._beforePopoverClose}\n\t\tonClose={this._afterPopoverClose}\n\t>\n\t\t{\n\t\t\tthis.isPhone && (\n\t\t\t\t<>\n\t\t\t\t\t<div slot=\"header\" class=\"ui5-menu-dialog-header\" >\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={navBackIcon}\n\t\t\t\t\t\t\tclass=\"ui5-menu-back-button\"\n\t\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\t\taria-label={this.labelBack}\n\t\t\t\t\t\t\tonClick={this._close}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<div class=\"ui5-menu-dialog-title\" >\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t{this.text}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={declineIcon}\n\t\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\t\taria-label={this.labelClose}\n\t\t\t\t\t\t\tonClick={this._closeAll}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div >\n\t\t\t\t</>\n\t\t\t)\n\t\t}\n\n\t\t<div id={`${this._id}-menu-main`}>\n\t\t\t{\n\t\t\t\tthis.items.length ? (\n\t\t\t\t\t<List\n\t\t\t\t\t\tid={`${this._id}-menu-list`}\n\t\t\t\t\t\tselectionMode=\"None\"\n\t\t\t\t\t\tseparators=\"None\"\n\t\t\t\t\t\taccessibleRole=\"Menu\"\n\t\t\t\t\t\tloading={this.loading}\n\t\t\t\t\t\tloadingDelay={this.loadingDelay}\n\t\t\t\t\t\tonMouseOver={this._itemMouseOver}\n\t\t\t\t\t\tonKeyDown={this._itemKeyDown}\n\t\t\t\t\t\t// handles event from slotted children\n\t\t\t\t\t\tonui5-close-menu={this._close}\n\t\t\t\t\t\tonui5-exit-end-content={this._navigateOutOfEndContent}\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</List>\n\t\t\t\t) : this.loading && <BusyIndicator\n\t\t\t\t\tid={`${this._id}-menu-busy-indicator`}\n\t\t\t\t\tdelay={this.loadingDelay}\n\t\t\t\t\tclass=\"ui5-menu-busy-indicator\"\n\t\t\t\t\tactive={true}\n\t\t\t\t/>\n\t\t\t}\n\t\t</div >\n\t</ResponsivePopover>;\n}\n"]}
@@ -7,7 +7,7 @@ import declineIcon from "@ui5/webcomponents-icons/dist/decline.js";
7
7
  export default function MenuTemplate() {
8
8
  return (_jsxs(ResponsivePopover, { id: `${this._id}-menu-rp`, class: "ui5-menu-rp", placement: "Bottom", verticalAlign: "Bottom", horizontalAlign: this.horizontalAlign, opener: this.opener, open: this.open, preventInitialFocus: true, hideArrow: true, allowTargetOverlap: true, accessibleName: this.acessibleNameText, onBeforeOpen: this._beforePopoverOpen, onOpen: this._afterPopoverOpen, onBeforeClose: this._beforePopoverClose, onClose: this._afterPopoverClose, children: [this.isPhone &&
9
9
  _jsxs("div", { slot: "header", class: "ui5-menu-dialog-header", children: [_jsx("div", { class: "ui5-menu-dialog-title", children: _jsx("h1", { children: this.headerText }) }), _jsx(Button, { icon: declineIcon, design: "Transparent", "aria-label": this.labelClose, onClick: this._close })] }), _jsx("div", { id: `${this._id}-menu-main`, children: this.items.length ?
10
- (_jsx(List, { id: `${this._id}- menu-list`, selectionMode: "None", loading: this.loading, loadingDelay: this.loadingDelay, separators: "None", accessibleRole: "Menu", onItemClick: this._itemClick, onMouseOver: this._itemMouseOver, onKeyDown: this._itemKeyDown, "onui5-close-menu": this._close, children: _jsx("slot", {}) }))
10
+ (_jsx(List, { id: `${this._id}- menu-list`, selectionMode: "None", loading: this.loading, loadingDelay: this.loadingDelay, separators: "None", accessibleRole: "Menu", onItemClick: this._itemClick, onMouseOver: this._itemMouseOver, onKeyDown: this._itemKeyDown, "onui5-close-menu": this._close, "onui5-exit-end-content": this._navigateOutOfEndContent, children: _jsx("slot", {}) }))
11
11
  : this.loading && (_jsx(BusyIndicator, { id: `${this._id}-menu-busy-indicator`, delay: this.loadingDelay, class: "ui5-menu-busy-indicator", active: true })) })] }));
12
12
  }
13
13
  //# sourceMappingURL=MenuTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuTemplate.js","sourceRoot":"","sources":["../src/MenuTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,WAAW,MAAM,0CAA0C,CAAC;AAEnE,MAAM,CAAC,OAAO,UAAU,YAAY;IACnC,OAAO,CACN,MAAC,iBAAiB,IACjB,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU,EACzB,KAAK,EAAC,aAAa,EACnB,SAAS,EAAC,QAAQ,EAClB,aAAa,EAAC,QAAQ,EACtB,eAAe,EAAE,IAAI,CAAC,eAAe,EACrC,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,mBAAmB,EAAE,IAAI,EACzB,SAAS,EAAE,IAAI,EACf,kBAAkB,EAAE,IAAI,EACxB,cAAc,EAAE,IAAI,CAAC,iBAAiB,EACtC,YAAY,EAAE,IAAI,CAAC,kBAAkB,EACrC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAC9B,aAAa,EAAE,IAAI,CAAC,mBAAmB,EACvC,OAAO,EAAE,IAAI,CAAC,kBAAkB,aAE/B,IAAI,CAAC,OAAO;gBACZ,eAAK,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,wBAAwB,aAChD,cAAK,KAAK,EAAC,uBAAuB,YACjC,uBACE,IAAI,CAAC,UAAU,GACZ,GACA,EACN,KAAC,MAAM,IACN,IAAI,EAAE,WAAW,EACjB,MAAM,EAAC,aAAa,gBACR,IAAI,CAAC,UAAU,EAC3B,OAAO,EAAE,IAAI,CAAC,MAAM,GACnB,IACG,EAEP,cACC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,YAAY,YAE1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACnB,CAAC,KAAC,IAAI,IACL,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,aAAa,EAC5B,aAAa,EAAC,MAAM,EACpB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,UAAU,EAAC,MAAM,EACjB,cAAc,EAAC,MAAM,EACrB,WAAW,EAAE,IAAI,CAAC,UAAU,EAC5B,WAAW,EAAE,IAAI,CAAC,cAAc,EAChC,SAAS,EAAE,IAAI,CAAC,YAAY,sBAEV,IAAI,CAAC,MAAM,YAE7B,gBAAa,GACP,CAAC;oBACR,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,KAAC,aAAa,IAChC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,sBAAsB,EACrC,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,KAAK,EAAC,yBAAyB,EAC/B,MAAM,EAAE,IAAI,GACX,CACD,GAEG,IACc,CACrB,CAAC;AACH,CAAC","sourcesContent":["import type Menu from \"./Menu.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport List from \"./List.js\";\nimport BusyIndicator from \"./BusyIndicator.js\";\nimport Button from \"./Button.js\";\nimport declineIcon from \"@ui5/webcomponents-icons/dist/decline.js\";\n\nexport default function MenuTemplate(this: Menu) {\n\treturn (\n\t\t<ResponsivePopover\n\t\t\tid={`${this._id}-menu-rp`}\n\t\t\tclass=\"ui5-menu-rp\"\n\t\t\tplacement=\"Bottom\"\n\t\t\tverticalAlign=\"Bottom\"\n\t\t\thorizontalAlign={this.horizontalAlign}\n\t\t\topener={this.opener}\n\t\t\topen={this.open}\n\t\t\tpreventInitialFocus={true}\n\t\t\thideArrow={true}\n\t\t\tallowTargetOverlap={true}\n\t\t\taccessibleName={this.acessibleNameText}\n\t\t\tonBeforeOpen={this._beforePopoverOpen}\n\t\t\tonOpen={this._afterPopoverOpen}\n\t\t\tonBeforeClose={this._beforePopoverClose}\n\t\t\tonClose={this._afterPopoverClose}\n\t\t>\n\t\t\t{this.isPhone &&\n\t\t\t\t<div slot=\"header\" class=\"ui5-menu-dialog-header\">\n\t\t\t\t\t<div class=\"ui5-menu-dialog-title\">\n\t\t\t\t\t\t<h1>\n\t\t\t\t\t\t\t{this.headerText}\n\t\t\t\t\t\t</h1>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={declineIcon}\n\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\taria-label={this.labelClose}\n\t\t\t\t\t\tonClick={this._close}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t<div\n\t\t\t\tid={`${this._id}-menu-main`}\n\t\t\t>\n\t\t\t\t{this.items.length ?\n\t\t\t\t\t(<List\n\t\t\t\t\t\tid={`${this._id}- menu-list`}\n\t\t\t\t\t\tselectionMode=\"None\"\n\t\t\t\t\t\tloading={this.loading}\n\t\t\t\t\t\tloadingDelay={this.loadingDelay}\n\t\t\t\t\t\tseparators=\"None\"\n\t\t\t\t\t\taccessibleRole=\"Menu\"\n\t\t\t\t\t\tonItemClick={this._itemClick}\n\t\t\t\t\t\tonMouseOver={this._itemMouseOver}\n\t\t\t\t\t\tonKeyDown={this._itemKeyDown}\n\t\t\t\t\t\t// handles event from slotted children\n\t\t\t\t\t\tonui5-close-menu={this._close}\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</List>)\n\t\t\t\t\t: this.loading && (<BusyIndicator\n\t\t\t\t\t\tid={`${this._id}-menu-busy-indicator`}\n\t\t\t\t\t\tdelay={this.loadingDelay}\n\t\t\t\t\t\tclass=\"ui5-menu-busy-indicator\"\n\t\t\t\t\t\tactive={true}\n\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</div>\n\t\t</ResponsivePopover >\n\t);\n}\n"]}
1
+ {"version":3,"file":"MenuTemplate.js","sourceRoot":"","sources":["../src/MenuTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,WAAW,MAAM,0CAA0C,CAAC;AAEnE,MAAM,CAAC,OAAO,UAAU,YAAY;IACnC,OAAO,CACN,MAAC,iBAAiB,IACjB,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU,EACzB,KAAK,EAAC,aAAa,EACnB,SAAS,EAAC,QAAQ,EAClB,aAAa,EAAC,QAAQ,EACtB,eAAe,EAAE,IAAI,CAAC,eAAe,EACrC,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,mBAAmB,EAAE,IAAI,EACzB,SAAS,EAAE,IAAI,EACf,kBAAkB,EAAE,IAAI,EACxB,cAAc,EAAE,IAAI,CAAC,iBAAiB,EACtC,YAAY,EAAE,IAAI,CAAC,kBAAkB,EACrC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAC9B,aAAa,EAAE,IAAI,CAAC,mBAAmB,EACvC,OAAO,EAAE,IAAI,CAAC,kBAAkB,aAE/B,IAAI,CAAC,OAAO;gBACZ,eAAK,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,wBAAwB,aAChD,cAAK,KAAK,EAAC,uBAAuB,YACjC,uBACE,IAAI,CAAC,UAAU,GACZ,GACA,EACN,KAAC,MAAM,IACN,IAAI,EAAE,WAAW,EACjB,MAAM,EAAC,aAAa,gBACR,IAAI,CAAC,UAAU,EAC3B,OAAO,EAAE,IAAI,CAAC,MAAM,GACnB,IACG,EAEP,cACC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,YAAY,YAE1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACnB,CAAC,KAAC,IAAI,IACL,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,aAAa,EAC5B,aAAa,EAAC,MAAM,EACpB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,UAAU,EAAC,MAAM,EACjB,cAAc,EAAC,MAAM,EACrB,WAAW,EAAE,IAAI,CAAC,UAAU,EAC5B,WAAW,EAAE,IAAI,CAAC,cAAc,EAChC,SAAS,EAAE,IAAI,CAAC,YAAY,sBAEV,IAAI,CAAC,MAAM,4BACL,IAAI,CAAC,wBAAwB,YAErD,gBAAa,GACP,CAAC;oBACR,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,KAAC,aAAa,IAChC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,sBAAsB,EACrC,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,KAAK,EAAC,yBAAyB,EAC/B,MAAM,EAAE,IAAI,GACX,CACD,GAEG,IACc,CACrB,CAAC;AACH,CAAC","sourcesContent":["import type Menu from \"./Menu.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport List from \"./List.js\";\nimport BusyIndicator from \"./BusyIndicator.js\";\nimport Button from \"./Button.js\";\nimport declineIcon from \"@ui5/webcomponents-icons/dist/decline.js\";\n\nexport default function MenuTemplate(this: Menu) {\n\treturn (\n\t\t<ResponsivePopover\n\t\t\tid={`${this._id}-menu-rp`}\n\t\t\tclass=\"ui5-menu-rp\"\n\t\t\tplacement=\"Bottom\"\n\t\t\tverticalAlign=\"Bottom\"\n\t\t\thorizontalAlign={this.horizontalAlign}\n\t\t\topener={this.opener}\n\t\t\topen={this.open}\n\t\t\tpreventInitialFocus={true}\n\t\t\thideArrow={true}\n\t\t\tallowTargetOverlap={true}\n\t\t\taccessibleName={this.acessibleNameText}\n\t\t\tonBeforeOpen={this._beforePopoverOpen}\n\t\t\tonOpen={this._afterPopoverOpen}\n\t\t\tonBeforeClose={this._beforePopoverClose}\n\t\t\tonClose={this._afterPopoverClose}\n\t\t>\n\t\t\t{this.isPhone &&\n\t\t\t\t<div slot=\"header\" class=\"ui5-menu-dialog-header\">\n\t\t\t\t\t<div class=\"ui5-menu-dialog-title\">\n\t\t\t\t\t\t<h1>\n\t\t\t\t\t\t\t{this.headerText}\n\t\t\t\t\t\t</h1>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={declineIcon}\n\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\taria-label={this.labelClose}\n\t\t\t\t\t\tonClick={this._close}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t<div\n\t\t\t\tid={`${this._id}-menu-main`}\n\t\t\t>\n\t\t\t\t{this.items.length ?\n\t\t\t\t\t(<List\n\t\t\t\t\t\tid={`${this._id}- menu-list`}\n\t\t\t\t\t\tselectionMode=\"None\"\n\t\t\t\t\t\tloading={this.loading}\n\t\t\t\t\t\tloadingDelay={this.loadingDelay}\n\t\t\t\t\t\tseparators=\"None\"\n\t\t\t\t\t\taccessibleRole=\"Menu\"\n\t\t\t\t\t\tonItemClick={this._itemClick}\n\t\t\t\t\t\tonMouseOver={this._itemMouseOver}\n\t\t\t\t\t\tonKeyDown={this._itemKeyDown}\n\t\t\t\t\t\t// handles event from slotted children\n\t\t\t\t\t\tonui5-close-menu={this._close}\n\t\t\t\t\t\tonui5-exit-end-content={this._navigateOutOfEndContent}\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</List>)\n\t\t\t\t\t: this.loading && (<BusyIndicator\n\t\t\t\t\t\tid={`${this._id}-menu-busy-indicator`}\n\t\t\t\t\t\tdelay={this.loadingDelay}\n\t\t\t\t\t\tclass=\"ui5-menu-busy-indicator\"\n\t\t\t\t\t\tactive={true}\n\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</div>\n\t\t</ResponsivePopover >\n\t);\n}\n"]}
@@ -14,10 +14,10 @@ export function handlesAriaText() {
14
14
  return (_jsxs(_Fragment, { children: [_jsx("span", { id: "ui5-slider-startHandleDesc", class: "ui5-hidden-text", children: this._ariaHandlesText.startHandleText }), _jsx("span", { id: "ui5-slider-endHandleDesc", class: "ui5-hidden-text", children: this._ariaHandlesText.endHandleText })] }));
15
15
  }
16
16
  export function progressBar() {
17
- return (_jsx("div", { class: "ui5-slider-progress-container", part: "progress-container", children: _jsx("div", { class: "ui5-slider-progress", part: "progress-bar", style: this.styles.progress, onFocusIn: this._onfocusin, onFocusOut: this._onfocusout, role: "slider", tabIndex: this._tabIndex, "aria-orientation": "horizontal", "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": this._ariaValueNow, "aria-valuetext": `From ${this.startValue} to ${this.endValue}`, "aria-labelledby": "ui5-slider-sliderDesc", "aria-disabled": this._ariaDisabled }) }));
17
+ return (_jsx("div", { class: "ui5-slider-progress-container", part: "progress-container", children: _jsx("div", { class: "ui5-slider-progress", part: "progress-bar", style: this.styles.progress, onFocusIn: this._onfocusin, onFocusOut: this._onfocusout, role: "slider", tabIndex: this._tabIndex, "aria-orientation": "horizontal", "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": this._ariaValueNow, "aria-valuetext": `From ${this.startValue} to ${this.endValue}`, "aria-label": this._ariaLabel, "aria-disabled": this._ariaDisabled }) }));
18
18
  }
19
19
  export function handles() {
20
- return (_jsxs(_Fragment, { children: [_jsxs("div", { class: "ui5-slider-handle-container", style: this.styles.startHandle, part: "handle-container", children: [_jsx("div", { class: "ui5-slider-handle ui5-slider-handle--start", part: "handle", onFocusIn: this._onfocusin, onFocusOut: this._onfocusout, role: "slider", tabindex: this._tabIndex, "aria-orientation": "horizontal", "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": this.startValue, "aria-labelledby": this._ariaLabelledByStartHandleText, "aria-disabled": this._ariaDisabled, "aria-describedby": this._ariaDescribedByHandleText, "aria-keyshortcuts": "F2", children: _jsx(Icon, { name: directionArrows, mode: "Decorative", "slider-icon": true }) }), this.showTooltip &&
20
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { class: "ui5-slider-handle-container", style: this.styles.startHandle, part: "handle-container", children: [_jsx("div", { class: "ui5-slider-handle ui5-slider-handle--start", part: "handle", onFocusIn: this._onfocusin, onFocusOut: this._onfocusout, role: "slider", tabindex: this._tabIndex, "aria-orientation": "horizontal", "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": this.startValue, "aria-labelledby": this._ariaLabelledByStartHandleText, "aria-disabled": this._ariaDisabled, "aria-describedby": this._ariaDescribedByHandleText, "aria-keyshortcuts": this._ariaKeyshortcuts, children: _jsx(Icon, { name: directionArrows, mode: "Decorative", "slider-icon": true }) }), this.showTooltip &&
21
21
  _jsx("div", { class: "ui5-slider-tooltip ui5-slider-tooltip--start", style: this.styles.tooltip, children: this.editableTooltip ?
22
22
  _jsx(Input, { type: "Number", value: this.startValue.toString(), accessibleNameRef: "ui5-slider-InputLabel", onFocusOut: this._onInputFocusOut, onKeyDown: this._onInputKeydown, onChange: this._onInputChange, onInput: this._onInputInput, "data-sap-ui-start-value": true, tabIndex: -1 })
23
23
  :
@@ -1 +1 @@
1
- {"version":3,"file":"RangeSliderTemplate.js","sourceRoot":"","sources":["../src/RangeSliderTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import directionArrows from \"@ui5/webcomponents-icons/dist/direction-arrows.js\";\nimport type RangeSlider from \"./RangeSlider.js\";\nimport Icon from \"./Icon.js\";\nimport Input from \"./Input.js\";\nimport SliderBaseTemplate from \"./SliderBaseTemplate.js\";\n\nexport default function RangeSliderTemplate(this: RangeSlider) {\n\treturn SliderBaseTemplate.call(this, {\n\t\thandlesAriaText,\n\t\tprogressBar,\n\t\thandles,\n\t});\n}\n\nexport function handlesAriaText(this: RangeSlider) {\n\treturn (<>\n\t\t<span id=\"ui5-slider-startHandleDesc\" class=\"ui5-hidden-text\">{this._ariaHandlesText.startHandleText}</span>\n\t\t<span id=\"ui5-slider-endHandleDesc\" class=\"ui5-hidden-text\">{this._ariaHandlesText.endHandleText}</span>\n\t</>);\n}\n\nexport function progressBar(this: RangeSlider) {\n\treturn (\n\t\t<div\n\t\t\tclass=\"ui5-slider-progress-container\"\n\t\t\tpart=\"progress-container\"\n\t\t>\n\t\t\t<div class=\"ui5-slider-progress\"\n\t\t\t\tpart=\"progress-bar\"\n\t\t\t\tstyle={this.styles.progress}\n\t\t\t\tonFocusIn={this._onfocusin}\n\t\t\t\tonFocusOut={this._onfocusout}\n\t\t\t\trole=\"slider\"\n\t\t\t\ttabIndex={this._tabIndex}\n\t\t\t\taria-orientation=\"horizontal\"\n\t\t\t\taria-valuemin={this.min}\n\t\t\t\taria-valuemax={this.max}\n\t\t\t\taria-valuenow={this._ariaValueNow}\n\t\t\t\taria-valuetext={`From ${this.startValue} to ${this.endValue}`}\n\t\t\t\taria-labelledby=\"ui5-slider-sliderDesc\"\n\t\t\t\taria-disabled={this._ariaDisabled}\n\t\t\t></div>\n\t\t</div>\n\t);\n}\n\nexport function handles(this: RangeSlider) {\n\treturn (<>\n\t\t<div class=\"ui5-slider-handle-container\" style={this.styles.startHandle} part=\"handle-container\">\n\t\t\t<div class=\"ui5-slider-handle ui5-slider-handle--start\"\n\t\t\t\tpart=\"handle\"\n\t\t\t\tonFocusIn={this._onfocusin}\n\t\t\t\tonFocusOut={this._onfocusout}\n\t\t\t\trole=\"slider\"\n\t\t\t\ttabindex={this._tabIndex}\n\t\t\t\taria-orientation=\"horizontal\"\n\t\t\t\taria-valuemin={this.min}\n\t\t\t\taria-valuemax={this.max}\n\t\t\t\taria-valuenow={this.startValue}\n\t\t\t\taria-labelledby={this._ariaLabelledByStartHandleText}\n\t\t\t\taria-disabled={this._ariaDisabled}\n\t\t\t\taria-describedby={this._ariaDescribedByHandleText}\n\t\t\t\taria-keyshortcuts=\"F2\"\n\t\t\t>\n\t\t\t\t<Icon name={directionArrows}\n\t\t\t\t\tmode=\"Decorative\"\n\t\t\t\t\tslider-icon\n\t\t\t\t></Icon>\n\t\t\t</div>\n\n\t\t\t{this.showTooltip &&\n\t\t\t\t<div class=\"ui5-slider-tooltip ui5-slider-tooltip--start\" style={this.styles.tooltip}>\n\t\t\t\t\t{this.editableTooltip ?\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\ttype=\"Number\"\n\t\t\t\t\t\t\tvalue={this.startValue.toString()}\n\t\t\t\t\t\t\taccessibleNameRef=\"ui5-slider-InputLabel\"\n\t\t\t\t\t\t\tonFocusOut={this._onInputFocusOut}\n\t\t\t\t\t\t\tonKeyDown={this._onInputKeydown}\n\t\t\t\t\t\t\tonChange={this._onInputChange}\n\t\t\t\t\t\t\tonInput={this._onInputInput}\n\t\t\t\t\t\t\tdata-sap-ui-start-value\n\t\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\t></Input>\n\t\t\t\t\t\t:\n\t\t\t\t\t\t<span class=\"ui5-slider-tooltip-value\">{this.tooltipStartValue}</span>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t\t<div class=\"ui5-slider-handle-container\" style={this.styles.endHandle} part=\"handle-container\">\n\t\t\t<div class=\"ui5-slider-handle ui5-slider-handle--end\"\n\t\t\t\tpart=\"handle\"\n\t\t\t\tonFocusIn={this._onfocusin}\n\t\t\t\tonFocusOut={this._onfocusout}\n\t\t\t\trole=\"slider\"\n\t\t\t\ttabIndex={this._tabIndex}\n\t\t\t\taria-orientation=\"horizontal\"\n\t\t\t\taria-valuemin={this.min}\n\t\t\t\taria-valuemax={this.max}\n\t\t\t\taria-valuenow={this.endValue}\n\t\t\t\taria-labelledby={this._ariaLabelledByEndHandleText}\n\t\t\t\taria-describedby={this._ariaDescribedByHandleText}\n\t\t\t\taria-disabled={this._ariaDisabled}\n\t\t\t\taria-keyshortcuts=\"F2\"\n\t\t\t>\n\t\t\t\t<Icon name={directionArrows}\n\t\t\t\t\tmode=\"Decorative\"\n\t\t\t\t\tslider-icon\n\t\t\t\t></Icon>\n\t\t\t</div>\n\n\t\t\t{this.showTooltip &&\n\t\t\t\t<div class=\"ui5-slider-tooltip ui5-slider-tooltip--end\" style={this.styles.tooltip}>\n\t\t\t\t\t{this.editableTooltip ?\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\ttype=\"Number\"\n\t\t\t\t\t\t\tvalue={this.endValue.toString()}\n\t\t\t\t\t\t\taccessibleNameRef=\"ui5-slider-InputLabel\"\n\t\t\t\t\t\t\tonFocusOut={this._onInputFocusOut}\n\t\t\t\t\t\t\tonKeyDown={this._onInputKeydown}\n\t\t\t\t\t\t\tonChange={this._onInputChange}\n\t\t\t\t\t\t\tonInput={this._onInputInput}\n\t\t\t\t\t\t\tdata-sap-ui-end-value\n\t\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\t></Input>\n\t\t\t\t\t\t:\n\t\t\t\t\t\t<span class=\"ui5-slider-tooltip-value\">{this.tooltipEndValue}</span>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t</>);\n}\n"]}
1
+ {"version":3,"file":"RangeSliderTemplate.js","sourceRoot":"","sources":["../src/RangeSliderTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import directionArrows from \"@ui5/webcomponents-icons/dist/direction-arrows.js\";\nimport type RangeSlider from \"./RangeSlider.js\";\nimport Icon from \"./Icon.js\";\nimport Input from \"./Input.js\";\nimport SliderBaseTemplate from \"./SliderBaseTemplate.js\";\n\nexport default function RangeSliderTemplate(this: RangeSlider) {\n\treturn SliderBaseTemplate.call(this, {\n\t\thandlesAriaText,\n\t\tprogressBar,\n\t\thandles,\n\t});\n}\n\nexport function handlesAriaText(this: RangeSlider) {\n\treturn (<>\n\t\t<span id=\"ui5-slider-startHandleDesc\" class=\"ui5-hidden-text\">{this._ariaHandlesText.startHandleText}</span>\n\t\t<span id=\"ui5-slider-endHandleDesc\" class=\"ui5-hidden-text\">{this._ariaHandlesText.endHandleText}</span>\n\t</>);\n}\n\nexport function progressBar(this: RangeSlider) {\n\treturn (\n\t\t<div\n\t\t\tclass=\"ui5-slider-progress-container\"\n\t\t\tpart=\"progress-container\"\n\t\t>\n\t\t\t<div class=\"ui5-slider-progress\"\n\t\t\t\tpart=\"progress-bar\"\n\t\t\t\tstyle={this.styles.progress}\n\t\t\t\tonFocusIn={this._onfocusin}\n\t\t\t\tonFocusOut={this._onfocusout}\n\t\t\t\trole=\"slider\"\n\t\t\t\ttabIndex={this._tabIndex}\n\t\t\t\taria-orientation=\"horizontal\"\n\t\t\t\taria-valuemin={this.min}\n\t\t\t\taria-valuemax={this.max}\n\t\t\t\taria-valuenow={this._ariaValueNow}\n\t\t\t\taria-valuetext={`From ${this.startValue} to ${this.endValue}`}\n\t\t\t\taria-label={this._ariaLabel}\n\t\t\t\taria-disabled={this._ariaDisabled}\n\t\t\t></div>\n\t\t</div>\n\t);\n}\n\nexport function handles(this: RangeSlider) {\n\treturn (<>\n\t\t<div class=\"ui5-slider-handle-container\" style={this.styles.startHandle} part=\"handle-container\">\n\t\t\t<div class=\"ui5-slider-handle ui5-slider-handle--start\"\n\t\t\t\tpart=\"handle\"\n\t\t\t\tonFocusIn={this._onfocusin}\n\t\t\t\tonFocusOut={this._onfocusout}\n\t\t\t\trole=\"slider\"\n\t\t\t\ttabindex={this._tabIndex}\n\t\t\t\taria-orientation=\"horizontal\"\n\t\t\t\taria-valuemin={this.min}\n\t\t\t\taria-valuemax={this.max}\n\t\t\t\taria-valuenow={this.startValue}\n\t\t\t\taria-labelledby={this._ariaLabelledByStartHandleText}\n\t\t\t\taria-disabled={this._ariaDisabled}\n\t\t\t\taria-describedby={this._ariaDescribedByHandleText}\n\t\t\t\taria-keyshortcuts={this._ariaKeyshortcuts}\n\t\t\t>\n\t\t\t\t<Icon name={directionArrows}\n\t\t\t\t\tmode=\"Decorative\"\n\t\t\t\t\tslider-icon\n\t\t\t\t></Icon>\n\t\t\t</div>\n\n\t\t\t{this.showTooltip &&\n\t\t\t\t<div class=\"ui5-slider-tooltip ui5-slider-tooltip--start\" style={this.styles.tooltip}>\n\t\t\t\t\t{this.editableTooltip ?\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\ttype=\"Number\"\n\t\t\t\t\t\t\tvalue={this.startValue.toString()}\n\t\t\t\t\t\t\taccessibleNameRef=\"ui5-slider-InputLabel\"\n\t\t\t\t\t\t\tonFocusOut={this._onInputFocusOut}\n\t\t\t\t\t\t\tonKeyDown={this._onInputKeydown}\n\t\t\t\t\t\t\tonChange={this._onInputChange}\n\t\t\t\t\t\t\tonInput={this._onInputInput}\n\t\t\t\t\t\t\tdata-sap-ui-start-value\n\t\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\t></Input>\n\t\t\t\t\t\t:\n\t\t\t\t\t\t<span class=\"ui5-slider-tooltip-value\">{this.tooltipStartValue}</span>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t\t<div class=\"ui5-slider-handle-container\" style={this.styles.endHandle} part=\"handle-container\">\n\t\t\t<div class=\"ui5-slider-handle ui5-slider-handle--end\"\n\t\t\t\tpart=\"handle\"\n\t\t\t\tonFocusIn={this._onfocusin}\n\t\t\t\tonFocusOut={this._onfocusout}\n\t\t\t\trole=\"slider\"\n\t\t\t\ttabIndex={this._tabIndex}\n\t\t\t\taria-orientation=\"horizontal\"\n\t\t\t\taria-valuemin={this.min}\n\t\t\t\taria-valuemax={this.max}\n\t\t\t\taria-valuenow={this.endValue}\n\t\t\t\taria-labelledby={this._ariaLabelledByEndHandleText}\n\t\t\t\taria-describedby={this._ariaDescribedByHandleText}\n\t\t\t\taria-disabled={this._ariaDisabled}\n\t\t\t\taria-keyshortcuts=\"F2\"\n\t\t\t>\n\t\t\t\t<Icon name={directionArrows}\n\t\t\t\t\tmode=\"Decorative\"\n\t\t\t\t\tslider-icon\n\t\t\t\t></Icon>\n\t\t\t</div>\n\n\t\t\t{this.showTooltip &&\n\t\t\t\t<div class=\"ui5-slider-tooltip ui5-slider-tooltip--end\" style={this.styles.tooltip}>\n\t\t\t\t\t{this.editableTooltip ?\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\ttype=\"Number\"\n\t\t\t\t\t\t\tvalue={this.endValue.toString()}\n\t\t\t\t\t\t\taccessibleNameRef=\"ui5-slider-InputLabel\"\n\t\t\t\t\t\t\tonFocusOut={this._onInputFocusOut}\n\t\t\t\t\t\t\tonKeyDown={this._onInputKeydown}\n\t\t\t\t\t\t\tonChange={this._onInputChange}\n\t\t\t\t\t\t\tonInput={this._onInputInput}\n\t\t\t\t\t\t\tdata-sap-ui-end-value\n\t\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\t></Input>\n\t\t\t\t\t\t:\n\t\t\t\t\t\t<span class=\"ui5-slider-tooltip-value\">{this.tooltipEndValue}</span>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t</>);\n}\n"]}
@@ -309,8 +309,9 @@ declare abstract class SliderBase extends UI5Element {
309
309
  get _effectiveMin(): number;
310
310
  get _effectiveMax(): number;
311
311
  get _tabIndex(): 0 | -1;
312
+ get _ariaKeyshortcuts(): "F2" | undefined;
312
313
  get _ariaDescribedByHandleText(): "ui5-slider-InputDesc" | undefined;
313
- get _ariaLabelledByHandleText(): "ui5-slider-accName ui5-slider-sliderDesc" | "ui5-slider-sliderDesc";
314
+ get _ariaLabel(): string;
314
315
  get _ariaDescribedByInputText(): string;
315
316
  get _ariaLabelledByInputText(): string;
316
317
  }
@@ -14,6 +14,7 @@ import { isPhone, supportsTouch } from "@ui5/webcomponents-base/dist/Device.js";
14
14
  import { isEscape, isHome, isEnd, isUp, isDown, isRight, isLeft, isUpCtrl, isDownCtrl, isRightCtrl, isLeftCtrl, isPlus, isMinus, isPageUp, isPageDown, isF2, isEnter, } from "@ui5/webcomponents-base/dist/Keys.js";
15
15
  // Styles
16
16
  import sliderBaseStyles from "./generated/themes/SliderBase.css.js";
17
+ import { getAssociatedLabelForTexts } from "@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js";
17
18
  /**
18
19
  * Fired when the value changes and the user has finished interacting with the slider.
19
20
  * @public
@@ -604,11 +605,22 @@ class SliderBase extends UI5Element {
604
605
  get _tabIndex() {
605
606
  return this.disabled ? -1 : 0;
606
607
  }
608
+ get _ariaKeyshortcuts() {
609
+ return this.editableTooltip ? "F2" : undefined;
610
+ }
607
611
  get _ariaDescribedByHandleText() {
608
612
  return this.editableTooltip ? "ui5-slider-InputDesc" : undefined;
609
613
  }
610
- get _ariaLabelledByHandleText() {
611
- return this.accessibleName ? "ui5-slider-accName ui5-slider-sliderDesc" : "ui5-slider-sliderDesc";
614
+ get _ariaLabel() {
615
+ const associatedLabelText = getAssociatedLabelForTexts(this);
616
+ const hasAccessibleName = !!this.accessibleName;
617
+ let labelText = hasAccessibleName
618
+ ? `${this.accessibleName} ${this._ariaLabelledByText}`
619
+ : this._ariaLabelledByText;
620
+ if (!hasAccessibleName && associatedLabelText) {
621
+ labelText = `${associatedLabelText} ${labelText}`;
622
+ }
623
+ return labelText;
612
624
  }
613
625
  get _ariaDescribedByInputText() {
614
626
  return "";