@ui5/webcomponents 1.24.7 → 1.24.8

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 (409) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/Button.d.ts +1 -1
  4. package/dist/Button.js +3 -0
  5. package/dist/Button.js.map +1 -1
  6. package/dist/ComboBox.d.ts +1 -0
  7. package/dist/ComboBox.js +4 -1
  8. package/dist/ComboBox.js.map +1 -1
  9. package/dist/DatePicker.d.ts +3 -0
  10. package/dist/DatePicker.js +8 -0
  11. package/dist/DatePicker.js.map +1 -1
  12. package/dist/FileUploader.d.ts +4 -0
  13. package/dist/FileUploader.js +6 -0
  14. package/dist/FileUploader.js.map +1 -1
  15. package/dist/Input.d.ts +2 -0
  16. package/dist/Input.js +5 -1
  17. package/dist/Input.js.map +1 -1
  18. package/dist/Menu.d.ts +6 -7
  19. package/dist/Menu.js +90 -55
  20. package/dist/Menu.js.map +1 -1
  21. package/dist/MultiComboBox.d.ts +2 -0
  22. package/dist/MultiComboBox.js +11 -1
  23. package/dist/MultiComboBox.js.map +1 -1
  24. package/dist/SegmentedButton.d.ts +2 -0
  25. package/dist/SegmentedButton.js +9 -1
  26. package/dist/SegmentedButton.js.map +1 -1
  27. package/dist/Select.js +4 -1
  28. package/dist/Select.js.map +1 -1
  29. package/dist/Table.d.ts +2 -0
  30. package/dist/Table.js +6 -0
  31. package/dist/Table.js.map +1 -1
  32. package/dist/TableRow.js +1 -1
  33. package/dist/TableRow.js.map +1 -1
  34. package/dist/ToggleButton.d.ts +1 -1
  35. package/dist/ToggleButton.js +6 -1
  36. package/dist/ToggleButton.js.map +1 -1
  37. package/dist/css/themes/Avatar.css +1 -1
  38. package/dist/css/themes/AvatarGroup.css +1 -1
  39. package/dist/css/themes/Badge.css +1 -1
  40. package/dist/css/themes/Breadcrumbs.css +1 -1
  41. package/dist/css/themes/BusyIndicator.css +1 -1
  42. package/dist/css/themes/Button.css +1 -1
  43. package/dist/css/themes/Calendar.css +1 -1
  44. package/dist/css/themes/CalendarHeader.css +1 -1
  45. package/dist/css/themes/CalendarLegend.css +1 -1
  46. package/dist/css/themes/CalendarLegendItem.css +1 -1
  47. package/dist/css/themes/Card.css +1 -1
  48. package/dist/css/themes/CardHeader.css +1 -1
  49. package/dist/css/themes/Carousel.css +1 -1
  50. package/dist/css/themes/CheckBox.css +1 -1
  51. package/dist/css/themes/ColorPalette.css +1 -1
  52. package/dist/css/themes/ColorPaletteItem.css +1 -1
  53. package/dist/css/themes/ColorPalettePopover.css +1 -1
  54. package/dist/css/themes/ColorPicker.css +1 -1
  55. package/dist/css/themes/ComboBox.css +1 -1
  56. package/dist/css/themes/CustomListItem.css +1 -1
  57. package/dist/css/themes/DatePicker.css +1 -1
  58. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  59. package/dist/css/themes/DayPicker.css +1 -1
  60. package/dist/css/themes/Dialog.css +1 -1
  61. package/dist/css/themes/FileUploader.css +1 -1
  62. package/dist/css/themes/GroupHeaderListItem.css +1 -1
  63. package/dist/css/themes/GrowingButton.css +1 -1
  64. package/dist/css/themes/Icon.css +1 -1
  65. package/dist/css/themes/Input.css +1 -1
  66. package/dist/css/themes/InputIcon.css +1 -1
  67. package/dist/css/themes/InputSharedStyles.css +1 -1
  68. package/dist/css/themes/Link.css +1 -1
  69. package/dist/css/themes/List.css +1 -1
  70. package/dist/css/themes/ListItem.css +1 -1
  71. package/dist/css/themes/ListItemBase.css +1 -1
  72. package/dist/css/themes/Menu.css +1 -1
  73. package/dist/css/themes/MenuListItem.css +1 -1
  74. package/dist/css/themes/MessageStrip.css +1 -1
  75. package/dist/css/themes/MonthPicker.css +1 -1
  76. package/dist/css/themes/MultiComboBox.css +1 -1
  77. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  78. package/dist/css/themes/MultiInput.css +1 -1
  79. package/dist/css/themes/NavigationMenu.css +1 -1
  80. package/dist/css/themes/Panel.css +1 -1
  81. package/dist/css/themes/Popover.css +1 -1
  82. package/dist/css/themes/PopupStaticAreaStyles.css +1 -1
  83. package/dist/css/themes/PopupsCommon.css +1 -1
  84. package/dist/css/themes/ProgressIndicator.css +1 -1
  85. package/dist/css/themes/RadioButton.css +1 -1
  86. package/dist/css/themes/RangeSlider.css +1 -1
  87. package/dist/css/themes/RatingIndicator.css +1 -1
  88. package/dist/css/themes/ResponsivePopover.css +1 -1
  89. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  90. package/dist/css/themes/SegmentedButton.css +1 -1
  91. package/dist/css/themes/Select.css +1 -1
  92. package/dist/css/themes/SelectMenu.css +1 -1
  93. package/dist/css/themes/SelectPopover.css +1 -1
  94. package/dist/css/themes/SliderBase.css +1 -1
  95. package/dist/css/themes/SplitButton.css +1 -1
  96. package/dist/css/themes/StepInput.css +1 -1
  97. package/dist/css/themes/Switch.css +1 -1
  98. package/dist/css/themes/TabContainer.css +1 -1
  99. package/dist/css/themes/TabInOverflow.css +1 -1
  100. package/dist/css/themes/TabInStrip.css +1 -1
  101. package/dist/css/themes/TabSemanticIcon.css +1 -1
  102. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  103. package/dist/css/themes/Table.css +1 -1
  104. package/dist/css/themes/TableCell.css +1 -1
  105. package/dist/css/themes/TableColumn.css +1 -1
  106. package/dist/css/themes/TableGroupRow.css +1 -1
  107. package/dist/css/themes/TableRow.css +1 -1
  108. package/dist/css/themes/TextArea.css +1 -1
  109. package/dist/css/themes/TimePicker.css +1 -1
  110. package/dist/css/themes/Toast.css +1 -1
  111. package/dist/css/themes/ToggleButton.css +1 -1
  112. package/dist/css/themes/Token.css +1 -1
  113. package/dist/css/themes/Tokenizer.css +1 -1
  114. package/dist/css/themes/TokenizerPopover.css +1 -1
  115. package/dist/css/themes/Toolbar.css +1 -1
  116. package/dist/css/themes/ToolbarPopover.css +1 -1
  117. package/dist/css/themes/TreeItem.css +1 -1
  118. package/dist/css/themes/ValueStateMessage.css +1 -1
  119. package/dist/css/themes/WheelSlider.css +1 -1
  120. package/dist/css/themes/YearPicker.css +1 -1
  121. package/dist/css/themes/sap_belize/parameters-bundle.css +1 -1
  122. package/dist/css/themes/sap_belize_hcb/parameters-bundle.css +1 -1
  123. package/dist/css/themes/sap_belize_hcw/parameters-bundle.css +1 -1
  124. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  125. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  126. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  127. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  128. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  129. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  130. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  131. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  132. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  133. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  134. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  135. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  136. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  137. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  138. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  139. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  140. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  141. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  142. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  143. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  144. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  145. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  146. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  147. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  148. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  149. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  150. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  151. package/dist/generated/i18n/i18n-defaults.d.ts +3 -1
  152. package/dist/generated/i18n/i18n-defaults.js +3 -1
  153. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  154. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +1 -1
  155. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js.map +1 -1
  156. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +1 -1
  157. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js.map +1 -1
  158. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +1 -1
  159. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js.map +1 -1
  160. package/dist/generated/templates/InputPopoverTemplate.lit.js +1 -1
  161. package/dist/generated/templates/InputPopoverTemplate.lit.js.map +1 -1
  162. package/dist/generated/templates/MenuTemplate.lit.js +1 -1
  163. package/dist/generated/templates/MenuTemplate.lit.js.map +1 -1
  164. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +1 -1
  165. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js.map +1 -1
  166. package/dist/generated/templates/TableTemplate.lit.js +1 -1
  167. package/dist/generated/templates/TableTemplate.lit.js.map +1 -1
  168. package/dist/generated/themes/Avatar.css.js +1 -1
  169. package/dist/generated/themes/Avatar.css.js.map +1 -1
  170. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  171. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  172. package/dist/generated/themes/Badge.css.js +1 -1
  173. package/dist/generated/themes/Badge.css.js.map +1 -1
  174. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  175. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  176. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  177. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  178. package/dist/generated/themes/Button.css.js +1 -1
  179. package/dist/generated/themes/Button.css.js.map +1 -1
  180. package/dist/generated/themes/Calendar.css.js +1 -1
  181. package/dist/generated/themes/Calendar.css.js.map +1 -1
  182. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  183. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  184. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  185. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  186. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  187. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  188. package/dist/generated/themes/Card.css.js +1 -1
  189. package/dist/generated/themes/Card.css.js.map +1 -1
  190. package/dist/generated/themes/CardHeader.css.js +1 -1
  191. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  192. package/dist/generated/themes/Carousel.css.js +1 -1
  193. package/dist/generated/themes/Carousel.css.js.map +1 -1
  194. package/dist/generated/themes/CheckBox.css.js +1 -1
  195. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  196. package/dist/generated/themes/ColorPalette.css.js +1 -1
  197. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  198. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  199. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  200. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  201. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  202. package/dist/generated/themes/ColorPicker.css.js +1 -1
  203. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  204. package/dist/generated/themes/ComboBox.css.js +1 -1
  205. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  206. package/dist/generated/themes/CustomListItem.css.js +1 -1
  207. package/dist/generated/themes/CustomListItem.css.js.map +1 -1
  208. package/dist/generated/themes/DatePicker.css.js +1 -1
  209. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  210. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  211. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  212. package/dist/generated/themes/DayPicker.css.js +1 -1
  213. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  214. package/dist/generated/themes/Dialog.css.js +1 -1
  215. package/dist/generated/themes/Dialog.css.js.map +1 -1
  216. package/dist/generated/themes/FileUploader.css.js +1 -1
  217. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  218. package/dist/generated/themes/GroupHeaderListItem.css.js +1 -1
  219. package/dist/generated/themes/GroupHeaderListItem.css.js.map +1 -1
  220. package/dist/generated/themes/GrowingButton.css.js +1 -1
  221. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  222. package/dist/generated/themes/Icon.css.js +1 -1
  223. package/dist/generated/themes/Icon.css.js.map +1 -1
  224. package/dist/generated/themes/Input.css.js +1 -1
  225. package/dist/generated/themes/Input.css.js.map +1 -1
  226. package/dist/generated/themes/InputIcon.css.js +1 -1
  227. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  228. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  229. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  230. package/dist/generated/themes/Link.css.js +1 -1
  231. package/dist/generated/themes/Link.css.js.map +1 -1
  232. package/dist/generated/themes/List.css.js +1 -1
  233. package/dist/generated/themes/List.css.js.map +1 -1
  234. package/dist/generated/themes/ListItem.css.js +1 -1
  235. package/dist/generated/themes/ListItem.css.js.map +1 -1
  236. package/dist/generated/themes/ListItemBase.css.js +1 -1
  237. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  238. package/dist/generated/themes/Menu.css.js +1 -1
  239. package/dist/generated/themes/Menu.css.js.map +1 -1
  240. package/dist/generated/themes/MenuListItem.css.js +1 -1
  241. package/dist/generated/themes/MenuListItem.css.js.map +1 -1
  242. package/dist/generated/themes/MessageStrip.css.js +1 -1
  243. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  244. package/dist/generated/themes/MonthPicker.css.js +1 -1
  245. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  246. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  247. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  248. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  249. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  250. package/dist/generated/themes/MultiInput.css.js +1 -1
  251. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  252. package/dist/generated/themes/NavigationMenu.css.js +1 -1
  253. package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
  254. package/dist/generated/themes/Panel.css.js +1 -1
  255. package/dist/generated/themes/Panel.css.js.map +1 -1
  256. package/dist/generated/themes/Popover.css.js +1 -1
  257. package/dist/generated/themes/Popover.css.js.map +1 -1
  258. package/dist/generated/themes/PopupStaticAreaStyles.css.js +1 -1
  259. package/dist/generated/themes/PopupStaticAreaStyles.css.js.map +1 -1
  260. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  261. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  262. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  263. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  264. package/dist/generated/themes/RadioButton.css.js +1 -1
  265. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  266. package/dist/generated/themes/RangeSlider.css.js +1 -1
  267. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  268. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  269. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  270. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  271. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  272. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  273. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  274. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  275. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  276. package/dist/generated/themes/Select.css.js +1 -1
  277. package/dist/generated/themes/Select.css.js.map +1 -1
  278. package/dist/generated/themes/SelectMenu.css.js +1 -1
  279. package/dist/generated/themes/SelectMenu.css.js.map +1 -1
  280. package/dist/generated/themes/SelectPopover.css.js +1 -1
  281. package/dist/generated/themes/SelectPopover.css.js.map +1 -1
  282. package/dist/generated/themes/SliderBase.css.js +1 -1
  283. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  284. package/dist/generated/themes/SplitButton.css.js +1 -1
  285. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  286. package/dist/generated/themes/StepInput.css.js +1 -1
  287. package/dist/generated/themes/StepInput.css.js.map +1 -1
  288. package/dist/generated/themes/Switch.css.js +1 -1
  289. package/dist/generated/themes/Switch.css.js.map +1 -1
  290. package/dist/generated/themes/TabContainer.css.js +1 -1
  291. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  292. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  293. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  294. package/dist/generated/themes/TabInStrip.css.js +1 -1
  295. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  296. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  297. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  298. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  299. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  300. package/dist/generated/themes/Table.css.js +1 -1
  301. package/dist/generated/themes/Table.css.js.map +1 -1
  302. package/dist/generated/themes/TableCell.css.js +1 -1
  303. package/dist/generated/themes/TableCell.css.js.map +1 -1
  304. package/dist/generated/themes/TableColumn.css.js +1 -1
  305. package/dist/generated/themes/TableColumn.css.js.map +1 -1
  306. package/dist/generated/themes/TableGroupRow.css.js +1 -1
  307. package/dist/generated/themes/TableGroupRow.css.js.map +1 -1
  308. package/dist/generated/themes/TableRow.css.js +1 -1
  309. package/dist/generated/themes/TableRow.css.js.map +1 -1
  310. package/dist/generated/themes/TextArea.css.js +1 -1
  311. package/dist/generated/themes/TextArea.css.js.map +1 -1
  312. package/dist/generated/themes/TimePicker.css.js +1 -1
  313. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  314. package/dist/generated/themes/Toast.css.js +1 -1
  315. package/dist/generated/themes/Toast.css.js.map +1 -1
  316. package/dist/generated/themes/ToggleButton.css.js +1 -1
  317. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  318. package/dist/generated/themes/Token.css.js +1 -1
  319. package/dist/generated/themes/Token.css.js.map +1 -1
  320. package/dist/generated/themes/Tokenizer.css.js +1 -1
  321. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  322. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  323. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  324. package/dist/generated/themes/Toolbar.css.js +1 -1
  325. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  326. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  327. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  328. package/dist/generated/themes/TreeItem.css.js +1 -1
  329. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  330. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  331. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  332. package/dist/generated/themes/WheelSlider.css.js +1 -1
  333. package/dist/generated/themes/WheelSlider.css.js.map +1 -1
  334. package/dist/generated/themes/YearPicker.css.js +1 -1
  335. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  336. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  337. package/dist/generated/themes/sap_belize/parameters-bundle.css.js.map +1 -1
  338. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  339. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js.map +1 -1
  340. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  341. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js.map +1 -1
  342. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  343. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  344. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  345. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  346. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  347. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  348. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  349. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  350. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  351. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  352. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  353. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  354. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  355. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  356. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  357. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  358. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  359. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  360. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  361. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  362. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  363. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  364. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  365. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  366. package/dist/web-types.json +1 -1
  367. package/package.json +9 -9
  368. package/src/ComboBoxPopover.hbs +1 -0
  369. package/src/DatePickerPopover.hbs +1 -1
  370. package/src/DateTimePickerPopover.hbs +0 -1
  371. package/src/InputPopover.hbs +1 -0
  372. package/src/Menu.hbs +1 -1
  373. package/src/MultiComboBoxPopover.hbs +2 -0
  374. package/src/Table.hbs +1 -1
  375. package/src/i18n/messagebundle.properties +6 -0
  376. package/src/themes/CheckBox.css +1 -1
  377. package/src/themes/SegmentedButton.css +6 -6
  378. package/src/themes/base/CheckBox-parameters.css +1 -2
  379. package/src/themes/base/sizes-parameters.css +1 -2
  380. package/src/themes/sap_fiori_3/CheckBox-parameters.css +0 -1
  381. package/src/themes/sap_fiori_3/parameters-bundle.css +1 -1
  382. package/src/themes/sap_fiori_3/sizes-parameters.css +8 -0
  383. package/src/themes/sap_fiori_3_dark/CheckBox-parameters.css +0 -1
  384. package/src/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  385. package/src/themes/sap_fiori_3_dark/sizes-parameters.css +8 -0
  386. package/src/themes/sap_horizon/CheckBox-parameters.css +2 -1
  387. package/src/themes/sap_horizon/Table-parameters.css +0 -1
  388. package/src/themes/sap_horizon/parameters-bundle.css +0 -1
  389. package/src/themes/sap_horizon/sizes-parameters.css +4 -0
  390. package/src/themes/sap_horizon_dark/CheckBox-parameters.css +2 -0
  391. package/src/themes/sap_horizon_dark/Table-parameters.css +0 -1
  392. package/src/themes/sap_horizon_dark/parameters-bundle.css +0 -1
  393. package/src/themes/sap_horizon_dark/sizes-parameters.css +4 -0
  394. package/src/themes/sap_horizon_dark_exp/Table-parameters.css +0 -1
  395. package/src/themes/sap_horizon_dark_exp/parameters-bundle.css +0 -1
  396. package/src/themes/sap_horizon_exp/Table-parameters.css +0 -1
  397. package/src/themes/sap_horizon_exp/parameters-bundle.css +0 -1
  398. package/src/themes/sap_horizon_hcb/CheckBox-parameters.css +2 -0
  399. package/src/themes/sap_horizon_hcb/Table-parameters.css +0 -1
  400. package/src/themes/sap_horizon_hcb/sizes-parameters.css +5 -0
  401. package/src/themes/sap_horizon_hcb_exp/Table-parameters.css +0 -1
  402. package/src/themes/sap_horizon_hcw/CheckBox-parameters.css +3 -0
  403. package/src/themes/sap_horizon_hcw/Table-parameters.css +0 -1
  404. package/src/themes/sap_horizon_hcw/sizes-parameters.css +5 -0
  405. package/src/themes/sap_horizon_hcw_exp/Table-parameters.css +0 -1
  406. package/src/themes/sap_horizon/TableColumn-parameters.css +0 -5
  407. package/src/themes/sap_horizon_dark/TableColumn-parameters.css +0 -5
  408. package/src/themes/sap_horizon_dark_exp/TableColumn-parameters.css +0 -5
  409. package/src/themes/sap_horizon_exp/TableColumn-parameters.css +0 -5
package/dist/Menu.js CHANGED
@@ -16,7 +16,6 @@ import { isPhone, isDesktop, } from "@ui5/webcomponents-base/dist/Device.js";
16
16
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
17
17
  import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
18
18
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
19
- import "@ui5/webcomponents-base/dist/types.js";
20
19
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
21
20
  import ResponsivePopover from "./ResponsivePopover.js";
22
21
  import Button from "./Button.js";
@@ -27,6 +26,7 @@ import Icon from "./Icon.js";
27
26
  import BusyIndicator from "./BusyIndicator.js";
28
27
  import staticAreaMenuTemplate from "./generated/templates/MenuTemplate.lit.js";
29
28
  import { MENU_BACK_BUTTON_ARIA_LABEL, MENU_CLOSE_BUTTON_ARIA_LABEL, } from "./generated/i18n/i18n-defaults.js";
29
+ import "@ui5/webcomponents-icons/dist/nav-back.js";
30
30
  // Styles
31
31
  import staticAreaMenuCss from "./generated/themes/Menu.css.js";
32
32
  const MENU_OPEN_DELAY = 300;
@@ -93,28 +93,27 @@ let Menu = Menu_1 = class Menu extends UI5Element {
93
93
  return isPhone();
94
94
  }
95
95
  get isSubMenuOpened() {
96
- return this._parentMenuItem && this._popover?.isOpen();
96
+ return this.items.some(menuItem => menuItem.subMenuOpened);
97
97
  }
98
98
  get menuHeaderTextPhone() {
99
- return this._parentMenuItem ? this._parentMenuItem.text : this.headerText;
99
+ const parentMenuItem = this._getParentMenuItem(this);
100
+ return parentMenuItem ? parentMenuItem.text : this.headerText;
100
101
  }
101
102
  onBeforeRendering() {
102
103
  this._prepareCurrentItems(this.items);
103
104
  const itemsWithChildren = this.itemsWithChildren;
104
105
  const itemsWithIcon = this.itemsWithIcon;
105
106
  this._currentItems.forEach(item => {
106
- item.item._siblingsWithChildren = itemsWithChildren;
107
- item.item._siblingsWithIcon = itemsWithIcon;
108
- const subMenu = item.item._subMenu;
109
107
  const menuItem = item.item;
110
- if (subMenu && subMenu.busy) {
108
+ menuItem._siblingsWithChildren = itemsWithChildren;
109
+ menuItem._siblingsWithIcon = itemsWithIcon;
110
+ const subMenu = this._isSubMenu ? this._getSubmenuReference(menuItem) : menuItem._subMenu;
111
+ if (subMenu) {
111
112
  subMenu.innerHTML = "";
112
113
  const fragment = this._clonedItemsFragment(menuItem);
113
114
  subMenu.appendChild(fragment);
114
- }
115
- if (subMenu) {
116
- subMenu.busy = item.item.busy;
117
- subMenu.busyDelay = item.item.busyDelay;
115
+ subMenu.busy = menuItem.busy;
116
+ subMenu.busyDelay = menuItem.busyDelay;
118
117
  }
119
118
  });
120
119
  }
@@ -138,11 +137,12 @@ let Menu = Menu_1 = class Menu extends UI5Element {
138
137
  * @public
139
138
  */
140
139
  async showAt(opener) {
140
+ let parentMenuItem = this._getParentMenuItem(this);
141
141
  if (!this._isSubMenu) {
142
- this._parentMenuItem = undefined;
142
+ parentMenuItem = undefined;
143
143
  this._opener = undefined;
144
144
  }
145
- const busyWithoutItems = !this._parentMenuItem?.items.length && this._parentMenuItem?.busy;
145
+ const busyWithoutItems = !parentMenuItem?.items.length && parentMenuItem?.busy;
146
146
  const popover = await this._createPopover();
147
147
  popover.initialFocus = `${this._id}-menu-item-0`;
148
148
  popover.showAt(opener, busyWithoutItems);
@@ -166,11 +166,20 @@ let Menu = Menu_1 = class Menu extends UI5Element {
166
166
  return this.opener instanceof HTMLElement ? this.opener : rootNode?.getElementById?.(this.opener);
167
167
  }
168
168
  _navigateBack() {
169
- this._closeItemSubMenu(this._parentMenuItem, true);
169
+ const parentMenuItem = this._getParentMenuItem(this);
170
+ if (parentMenuItem) {
171
+ this._closeItemSubMenu(parentMenuItem, true);
172
+ }
170
173
  }
171
174
  _closeAll() {
172
- const mainMenu = this._findMainMenu(this);
173
- mainMenu?.close();
175
+ let menu = this, parentMenuItem;
176
+ do {
177
+ if (menu) {
178
+ menu.close();
179
+ parentMenuItem = menu._getParentMenuItem(menu);
180
+ }
181
+ menu = parentMenuItem ? parentMenuItem.parentElement : menu;
182
+ } while (parentMenuItem);
174
183
  }
175
184
  _prepareCurrentItems(items) {
176
185
  this._currentItems = items.map((item, index) => {
@@ -182,21 +191,28 @@ let Menu = Menu_1 = class Menu extends UI5Element {
182
191
  });
183
192
  }
184
193
  _createSubMenu(item, opener) {
185
- if (item._subMenu) {
186
- return;
194
+ let subMenu = item._subMenu;
195
+ let subMenuRef = this._getSubmenuReference(item);
196
+ if ((!subMenu && !this._isSubMenu) || (!subMenuRef && this._isSubMenu)) {
197
+ subMenu = document.createElement(this.tagName.toLowerCase());
198
+ subMenu._isSubMenu = true;
199
+ subMenu.setAttribute("id", `submenu-${opener.id}`);
200
+ subMenu._parentMenuItem = item;
201
+ subMenu._opener = opener;
202
+ subMenu.busy = item.busy;
203
+ subMenu.busyDelay = item.busyDelay;
204
+ const fragment = this._clonedItemsFragment(item);
205
+ subMenu.appendChild(fragment);
206
+ this.staticAreaItem.shadowRoot.querySelector(".ui5-menu-submenus").appendChild(subMenu);
207
+ subMenuRef = subMenu;
187
208
  }
188
- const ctor = this.constructor;
189
- const subMenu = document.createElement(ctor.getMetadata().getTag());
190
- subMenu._isSubMenu = true;
191
- subMenu.setAttribute("id", `submenu-${opener.id}`);
192
- subMenu._parentMenuItem = item;
193
- subMenu._opener = opener;
194
- subMenu.busy = item.busy;
195
- subMenu.busyDelay = item.busyDelay;
196
- const fragment = this._clonedItemsFragment(item);
197
- subMenu.appendChild(fragment);
198
- this.staticAreaItem.shadowRoot.querySelector(".ui5-menu-submenus").appendChild(subMenu);
199
- item._subMenu = subMenu;
209
+ item._subMenu = this._isSubMenu ? subMenuRef : subMenu;
210
+ }
211
+ _getSubmenuReference(item) {
212
+ const index = item.parentElement?.items.indexOf(item);
213
+ return this.staticAreaItem
214
+ ? this.staticAreaItem.shadowRoot.querySelector(".ui5-menu-submenus").children[index]
215
+ : undefined;
200
216
  }
201
217
  _clonedItemsFragment(item) {
202
218
  const fragment = document.createDocumentFragment();
@@ -218,18 +234,21 @@ let Menu = Menu_1 = class Menu extends UI5Element {
218
234
  }
219
235
  _closeItemSubMenu(item, forceClose = false, keyboard = false) {
220
236
  if (item) {
237
+ const subMenu = item._subMenu
238
+ ? item._subMenu
239
+ : item.parentElement?._getSubmenuReference(item);
221
240
  if (forceClose) {
222
241
  item._preventSubMenuClose = false;
223
- this._closeSubMenuPopover(item._subMenu, forceClose, keyboard);
242
+ this._closeSubMenuPopover(subMenu, forceClose, keyboard);
224
243
  }
225
244
  else {
226
- setTimeout(() => this._closeSubMenuPopover(item._subMenu), 0);
245
+ setTimeout(() => this._closeSubMenuPopover(subMenu), 0);
227
246
  }
228
247
  }
229
248
  }
230
249
  _closeSubMenuPopover(subMenu, forceClose = false, keyboard = false) {
231
250
  if (subMenu) {
232
- const parentItem = subMenu._parentMenuItem;
251
+ const parentItem = subMenu._getParentMenuItem(subMenu);
233
252
  if (forceClose || !parentItem._preventSubMenuClose) {
234
253
  subMenu.close();
235
254
  if (keyboard) {
@@ -241,17 +260,19 @@ let Menu = Menu_1 = class Menu extends UI5Element {
241
260
  }
242
261
  }
243
262
  _prepareSubMenu(item, opener) {
244
- if (opener.id !== this._subMenuOpenerId || (item && item.hasSubmenu)) {
263
+ const menuItem = item.parentElement ? item : opener.associatedItem;
264
+ const parentMenuItem = this._getParentMenuItem(menuItem);
265
+ if (opener.id !== this._subMenuOpenerId || (menuItem && menuItem.hasSubmenu)) {
245
266
  // close opened sub-menu if there is any opened
246
267
  this._closeItemSubMenu(this._openedSubMenuItem, true);
247
268
  }
248
- if (item && item.hasSubmenu) {
269
+ if (menuItem && menuItem.hasSubmenu) {
249
270
  // create new sub-menu
250
- this._createSubMenu(item, opener);
251
- this._openItemSubMenu(item, opener);
271
+ this._createSubMenu(menuItem, opener);
272
+ this._openItemSubMenu(menuItem, opener);
252
273
  }
253
- if (this._parentMenuItem) {
254
- this._parentMenuItem._preventSubMenuClose = true;
274
+ if (parentMenuItem) {
275
+ parentMenuItem._preventSubMenuClose = true;
255
276
  }
256
277
  }
257
278
  _onfocusin(e) {
@@ -288,8 +309,9 @@ let Menu = Menu_1 = class Menu extends UI5Element {
288
309
  }
289
310
  }
290
311
  _busyMouseOver() {
291
- if (this._parentMenuItem) {
292
- this._parentMenuItem._preventSubMenuClose = true;
312
+ const parentMenuItem = this._getParentMenuItem(this);
313
+ if (parentMenuItem) {
314
+ parentMenuItem._preventSubMenuClose = true;
293
315
  }
294
316
  }
295
317
  _itemMouseOut(e) {
@@ -298,7 +320,8 @@ let Menu = Menu_1 = class Menu extends UI5Element {
298
320
  const item = opener.associatedItem;
299
321
  clearTimeout(this._timeout);
300
322
  // Close submenu with 400ms delay
301
- if (item && item.hasSubmenu && item._subMenu) {
323
+ const subMenu = this._getSubmenuReference(item);
324
+ if (item && item.hasSubmenu && subMenu) {
302
325
  // try to close the sub-menu
303
326
  item._preventSubMenuClose = false;
304
327
  this._startCloseTimeout(item);
@@ -308,20 +331,22 @@ let Menu = Menu_1 = class Menu extends UI5Element {
308
331
  _itemKeyDown(e) {
309
332
  const shouldCloseMenu = this.isRtl ? isRight(e) : isLeft(e);
310
333
  const shouldOpenMenu = this.isRtl ? isLeft(e) : isRight(e);
334
+ const opener = e.target;
335
+ const item = opener.associatedItem;
336
+ const parentMenuItem = this._getParentMenuItem(item);
311
337
  if (isEnter(e)) {
312
338
  e.preventDefault();
313
339
  }
314
340
  if (shouldOpenMenu) {
315
- const opener = e.target;
316
- const item = opener.associatedItem;
317
341
  item.hasSubmenu && this._prepareSubMenu(item, opener);
318
342
  }
319
- else if (shouldCloseMenu && this._isSubMenu && this._parentMenuItem) {
320
- const parentMenuItemParent = this._parentMenuItem.parentElement;
321
- parentMenuItemParent._closeItemSubMenu(this._parentMenuItem, true, true);
343
+ else if (shouldCloseMenu && this._isSubMenu && parentMenuItem) {
344
+ const parentMenuItemMenu = parentMenuItem.parentElement;
345
+ parentMenuItemMenu?._closeItemSubMenu(parentMenuItem, true, true);
322
346
  }
323
347
  }
324
348
  _itemClick(e) {
349
+ clearTimeout(this._timeout);
325
350
  const opener = e.detail.item;
326
351
  const item = opener.associatedItem;
327
352
  if (!item.hasSubmenu) {
@@ -338,7 +363,7 @@ let Menu = Menu_1 = class Menu extends UI5Element {
338
363
  }
339
364
  else {
340
365
  const mainMenu = this._findMainMenu(item);
341
- const prevented = !mainMenu.fireEvent("item-click", {
366
+ const prevented = !mainMenu?.fireEvent("item-click", {
342
367
  "item": item,
343
368
  "text": item.text,
344
369
  }, true, false);
@@ -349,8 +374,8 @@ let Menu = Menu_1 = class Menu extends UI5Element {
349
374
  openerMenuItem._preventSubMenuClose = false;
350
375
  this._closeItemSubMenu(openerMenuItem);
351
376
  parentMenu = openerMenuItem.parentElement;
352
- openerMenuItem = parentMenu._parentMenuItem;
353
- } while (parentMenu._parentMenuItem);
377
+ openerMenuItem = parentMenu._getParentMenuItem(parentMenu);
378
+ } while (parentMenu._getParentMenuItem(parentMenu));
354
379
  mainMenu._popover.close();
355
380
  }
356
381
  }
@@ -360,14 +385,24 @@ let Menu = Menu_1 = class Menu extends UI5Element {
360
385
  }
361
386
  }
362
387
  _findMainMenu(element) {
363
- let menu = this._isMenu(element) ? element : element.parentElement;
364
- while (menu && menu._parentMenuItem) {
365
- menu = menu._parentMenuItem.parentElement;
366
- }
388
+ let menu = this._isMenu(element) ? element : element.parentElement, parentMenuItem;
389
+ do {
390
+ parentMenuItem = this._getParentMenuItem(menu);
391
+ menu = parentMenuItem ? parentMenuItem.parentElement : menu;
392
+ } while (parentMenuItem);
367
393
  return menu;
368
394
  }
369
395
  _isMenu(element) {
370
- return element.hasAttribute("ui5-menu");
396
+ return element?.hasAttribute("ui5-menu");
397
+ }
398
+ _getParentMenuItem(element) {
399
+ if (!element) {
400
+ return;
401
+ }
402
+ const menu = this._isMenu(element) ? element : element.parentElement;
403
+ return !menu._parentMenuItem || menu._parentMenuItem.parentElement
404
+ ? menu._parentMenuItem
405
+ : menu._opener?.associatedItem;
371
406
  }
372
407
  _beforePopoverOpen(e) {
373
408
  const prevented = !this.fireEvent("before-open", {}, true, false);
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.js\";\nimport DOMReference from \"@ui5/webcomponents-base/dist/types/DOMReference.js\";\nimport {\n\tisLeft,\n\tisRight,\n\tisEnter,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport {\n\tisPhone,\n\tisDesktop,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { Timeout } from \"@ui5/webcomponents-base/dist/types.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport type { ResponsivePopoverBeforeCloseEventDetail } from \"./ResponsivePopover.js\";\nimport Button from \"./Button.js\";\nimport List from \"./List.js\";\nimport MenuListItem from \"./MenuListItem.js\";\nimport StandardListItem from \"./StandardListItem.js\";\nimport Icon from \"./Icon.js\";\nimport BusyIndicator from \"./BusyIndicator.js\";\nimport type MenuItem from \"./MenuItem.js\";\nimport type { ListItemClickEventDetail } from \"./List.js\";\nimport staticAreaMenuTemplate from \"./generated/templates/MenuTemplate.lit.js\";\nimport {\n\tMENU_BACK_BUTTON_ARIA_LABEL,\n\tMENU_CLOSE_BUTTON_ARIA_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport staticAreaMenuCss from \"./generated/themes/Menu.css.js\";\n\ntype CurrentItem = {\n\titem: MenuItem,\n\tposition: number,\n\tariaHasPopup: string | undefined,\n}\n\nconst MENU_OPEN_DELAY = 300;\nconst MENU_CLOSE_DELAY = 400;\n\ntype MenuItemClickEventDetail = {\n\titem: MenuItem,\n\ttext: string,\n}\n\ntype MenuBeforeOpenEventDetail = { item?: MenuItem };\ntype MenuBeforeCloseEventDetail = { escPressed: boolean };\n\ntype MenuItemFocusEventDetail = {\n\tref: HTMLElement,\n\titem: MenuItem,\n};\n\ntype OpenerStandardListItem = StandardListItem & { associatedItem: MenuItem };\n\n/**\n * @class\n *\n * ### Overview\n *\n * `ui5-menu` component represents a hierarchical menu structure.\n *\n * ### Usage\n *\n * `ui5-menu` contains `ui5-menu-item` components.\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 * 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: litRender,\n\tstaticAreaStyles: staticAreaMenuCss,\n\tstaticAreaTemplate: staticAreaMenuTemplate,\n\tdependencies: [\n\t\tResponsivePopover,\n\t\tButton,\n\t\tList,\n\t\tStandardListItem,\n\t\tMenuListItem,\n\t\tIcon,\n\t\tBusyIndicator,\n\t],\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 * @allowPreventDefault\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<MenuItemClickEventDetail>(\"item-click\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\titem: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\t\t/**\n\t\t * @public\n\t\t */\n\t\ttext: {\n\t\t\ttype: String,\n\t\t},\n\t},\n})\n\n/**\n * Fired before the menu is opened. This event can be cancelled, which will prevent the menu from opening. **This event does not bubble.**\n *\n * **Note:** Since 1.14.0 the event is also fired before a sub-menu opens.\n * @public\n * @allowPreventDefault\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<MenuBeforeOpenEventDetail>(\"before-open\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t * @since 1.14.0\n\t\t */\n\t\titem: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\t},\n})\n\n/**\n * Fired after the menu is opened. **This event does not bubble.**\n * @public\n * @since 1.10.0\n */\n@event(\"after-open\")\n\n/**\n * Fired before the menu is closed. This event can be cancelled, which will prevent the menu from closing. **This event does not bubble.**\n * @public\n * @allowPreventDefault\n * @param {boolean} escPressed Indicates that `ESC` key has triggered the event.\n * @since 1.10.0\n */\n@event<MenuBeforeCloseEventDetail>(\"before-close\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tescPressed: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n})\n\n/**\n * Fired after the menu is closed. **This event does not bubble.**\n * @public\n * @since 1.10.0\n */\n@event(\"after-close\")\n\n/**\n * Fired when a menu item receives focus.\n *\n * @public\n * @param { HTMLElement } ref The currently focused element representing a <code>ui5-menu-item</code>.\n * @param { HTMLElement } item The <code>ui5-menu-item</code> represented by the focused element.\n * @since 1.23.1\n */\n@event<MenuItemFocusEventDetail>(\"item-focus\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tref: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\t\t/**\n\t\t * @public\n\t\t */\n\t\titem: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\t},\n})\n\nclass Menu extends UI5Element {\n\t/**\n\t * Defines the header text of the menu (displayed on mobile).\n\t * @default \"\"\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!:boolean;\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\tbusy!: boolean;\n\n\t/**\n\t * Defines the delay in milliseconds, after which the busy 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({ validator: Integer, defaultValue: 1000 })\n\tbusyDelay!: number;\n\n\t/**\n\t * Defines the ID or DOM Reference of the element that the menu is shown at\n\t * @public\n\t * @default \"\"\n\t * @since 1.10.0\n\t */\n\t@property({ validator: DOMReference, defaultValue: \"\" })\n\topener!: HTMLElement | string;\n\n\t/**\n\t * Defines if the menu is sub-menu (not first-level).\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_isSubMenu!: boolean;\n\n\t/**\n\t * Stores id of a list item that opened sub-menu.\n\t * @private\n\t */\n\t@property()\n\t_subMenuOpenerId!: string;\n\n\t/**\n\t * Defines the currently available menu items.\n\t * (in case of non-phone devices these are the items of the menu,\n\t * but for phone devices the items of the currently opened sub-menu\n\t * will be populated here)\n\t * @private\n\t */\n\t@property({ type: Object, multiple: true })\n\t_currentItems!: Array<CurrentItem>;\n\n\t/**\n\t * Stores the ResponsivePopover instance\n\t */\n\t@property({ type: Object, defaultValue: undefined })\n\t_popover?: ResponsivePopover;\n\n\t/**\n\t * Stores parent menu item (if there is such).\n\t */\n\t@property({ type: Object, defaultValue: undefined })\n\t_parentMenuItem?: MenuItem;\n\n\t/**\n\t * Stores parent menu item DOM representation (if there is such).\n\t */\n\t@property({ type: Object, defaultValue: undefined })\n\t_opener?: HTMLElement;\n\n\t/**\n\t * Stores menu item that have sub-menu opened.\n\t */\n\t@property({ type: Object, defaultValue: undefined })\n\t_openedSubMenuItem?: MenuItem;\n\n\t/**\n\t * Defines the items of this component.\n\t *\n\t * **Note:** Use `ui5-menu-item` for the intended design.\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, invalidateOnChildChange: true })\n\titems!: Array<MenuItem>;\n\n\tstatic i18nBundle: I18nBundle;\n\t_timeout?: Timeout;\n\n\tstatic async onDefine() {\n\t\tMenu.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tget itemsWithChildren() {\n\t\treturn !!this._currentItems.filter(item => item.item.items.length).length;\n\t}\n\n\tget itemsWithIcon() {\n\t\treturn !!this._currentItems.filter(item => item.item.icon !== \"\").length;\n\t}\n\n\tget isRtl() {\n\t\treturn this.effectiveDir === \"rtl\";\n\t}\n\n\tget placementType() {\n\t\tconst placement = this.isRtl ? \"Left\" : \"Right\";\n\t\treturn this._isSubMenu ? placement : \"Bottom\";\n\t}\n\n\tget verticalAlign() {\n\t\treturn this._isSubMenu ? \"Top\" : \"Bottom\";\n\t}\n\n\tget labelBack() {\n\t\treturn Menu.i18nBundle.getText(MENU_BACK_BUTTON_ARIA_LABEL);\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 isSubMenuOpened() {\n\t\treturn this._parentMenuItem && this._popover?.isOpen();\n\t}\n\n\tget menuHeaderTextPhone() {\n\t\treturn this._parentMenuItem ? this._parentMenuItem.text : this.headerText;\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._prepareCurrentItems(this.items);\n\n\t\tconst itemsWithChildren = this.itemsWithChildren;\n\t\tconst itemsWithIcon = this.itemsWithIcon;\n\n\t\tthis._currentItems.forEach(item => {\n\t\t\titem.item._siblingsWithChildren = itemsWithChildren;\n\t\t\titem.item._siblingsWithIcon = itemsWithIcon;\n\t\t\tconst subMenu = item.item._subMenu;\n\t\t\tconst menuItem = item.item;\n\t\t\tif (subMenu && subMenu.busy) {\n\t\t\t\tsubMenu.innerHTML = \"\";\n\t\t\t\tconst fragment = this._clonedItemsFragment(menuItem);\n\t\t\t\tsubMenu.appendChild(fragment);\n\t\t\t}\n\n\t\t\tif (subMenu) {\n\t\t\t\tsubMenu.busy = item.item.busy;\n\t\t\t\tsubMenu.busyDelay = item.item.busyDelay;\n\t\t\t}\n\t\t});\n\t}\n\n\tonAfterRendering() {\n\t\tif (!this.opener) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.open) {\n\t\t\tconst opener = this.getOpener();\n\t\t\tif (opener && !this.isSubMenuOpened) {\n\t\t\t\tthis.showAt(opener);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\t/**\n\t * Shows the Menu near the opener element.\n\t * @param opener the element that the popover is shown at\n\t * @public\n\t */\n\tasync showAt(opener: HTMLElement): Promise<void> {\n\t\tif (!this._isSubMenu) {\n\t\t\tthis._parentMenuItem = undefined;\n\t\t\tthis._opener = undefined;\n\t\t}\n\t\tconst busyWithoutItems = !this._parentMenuItem?.items.length && this._parentMenuItem?.busy;\n\t\tconst popover = await this._createPopover();\n\t\tpopover.initialFocus = `${this._id}-menu-item-0`;\n\t\tpopover.showAt(opener, busyWithoutItems);\n\t}\n\n\t/**\n\t * Closes the Menu.\n\t * @public\n\t */\n\tclose(): void {\n\t\tthis._popover?.close(false, false, true);\n\t}\n\n\tasync _createPopover() {\n\t\tif (!this._popover) {\n\t\t\tconst staticAreaItemDomRef = await this.getStaticAreaItemDomRef();\n\t\t\tthis._popover = staticAreaItemDomRef!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t\t}\n\t\treturn this._popover;\n\t}\n\n\tgetOpener() {\n\t\tconst rootNode = this.getRootNode() as Document;\n\t\treturn this.opener instanceof HTMLElement ? this.opener : rootNode?.getElementById?.(this.opener);\n\t}\n\n\t_navigateBack() {\n\t\tthis._closeItemSubMenu(this._parentMenuItem as MenuItem, true);\n\t}\n\n\t_closeAll() {\n\t\tconst mainMenu = this._findMainMenu(this);\n\t\tmainMenu?.close();\n\t}\n\n\t_prepareCurrentItems(items: Array<MenuItem>) {\n\t\tthis._currentItems = items.map((item, index) => {\n\t\t\treturn {\n\t\t\t\titem,\n\t\t\t\tposition: index + 1,\n\t\t\t\tariaHasPopup: item.hasSubmenu ? \"menu\" : undefined,\n\t\t\t};\n\t\t});\n\t}\n\n\t_createSubMenu(item: MenuItem, opener: HTMLElement) {\n\t\tif (item._subMenu) {\n\t\t\treturn;\n\t\t}\n\t\tconst ctor = this.constructor as typeof Menu;\n\t\tconst subMenu = document.createElement(ctor.getMetadata().getTag()) as Menu;\n\n\t\tsubMenu._isSubMenu = true;\n\t\tsubMenu.setAttribute(\"id\", `submenu-${opener.id}`);\n\t\tsubMenu._parentMenuItem = item;\n\t\tsubMenu._opener = opener;\n\t\tsubMenu.busy = item.busy;\n\t\tsubMenu.busyDelay = item.busyDelay;\n\t\tconst fragment = this._clonedItemsFragment(item);\n\t\tsubMenu.appendChild(fragment);\n\t\tthis.staticAreaItem!.shadowRoot!.querySelector(\".ui5-menu-submenus\")!.appendChild(subMenu);\n\t\titem._subMenu = subMenu;\n\t}\n\n\t_clonedItemsFragment(item: MenuItem) {\n\t\tconst fragment = document.createDocumentFragment();\n\n\t\tfor (let i = 0; i < item.items.length; ++i) {\n\t\t\tconst clonedItem = item.items[i].cloneNode(true);\n\t\t\tfragment.appendChild(clonedItem);\n\t\t}\n\n\t\treturn fragment;\n\t}\n\n\t_openItemSubMenu(item: MenuItem, opener: HTMLElement) {\n\t\tconst mainMenu = this._findMainMenu(item);\n\t\tmainMenu?.fireEvent<MenuBeforeOpenEventDetail>(\"before-open\", {\n\t\t\titem,\n\t\t}, false, false);\n\t\titem._subMenu!.showAt(opener);\n\t\titem._preventSubMenuClose = true;\n\t\tthis._openedSubMenuItem = item;\n\t\tthis._subMenuOpenerId = opener.id;\n\t}\n\n\t_closeItemSubMenu(item: MenuItem, forceClose = false, keyboard = false) {\n\t\tif (item) {\n\t\t\tif (forceClose) {\n\t\t\t\titem._preventSubMenuClose = false;\n\t\t\t\tthis._closeSubMenuPopover(item._subMenu!, forceClose, keyboard);\n\t\t\t} else {\n\t\t\t\tsetTimeout(() => this._closeSubMenuPopover(item._subMenu!), 0);\n\t\t\t}\n\t\t}\n\t}\n\n\t_closeSubMenuPopover(subMenu: Menu, forceClose = false, keyboard = false) {\n\t\tif (subMenu) {\n\t\t\tconst parentItem = subMenu._parentMenuItem!;\n\n\t\t\tif (forceClose || !parentItem._preventSubMenuClose) {\n\t\t\t\tsubMenu.close();\n\t\t\t\tif (keyboard) {\n\t\t\t\t\tsubMenu._opener?.focus();\n\t\t\t\t}\n\t\t\t\tthis._openedSubMenuItem = undefined;\n\t\t\t\tthis._subMenuOpenerId = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t_prepareSubMenu(item: MenuItem, opener: HTMLElement) {\n\t\tif (opener.id !== this._subMenuOpenerId || (item && item.hasSubmenu)) {\n\t\t\t// close opened sub-menu if there is any opened\n\t\t\tthis._closeItemSubMenu(this._openedSubMenuItem!, true);\n\t\t}\n\t\tif (item && item.hasSubmenu) {\n\t\t\t// create new sub-menu\n\t\t\tthis._createSubMenu(item, opener);\n\t\t\tthis._openItemSubMenu(item, opener);\n\t\t}\n\t\tif (this._parentMenuItem) {\n\t\t\tthis._parentMenuItem._preventSubMenuClose = true;\n\t\t}\n\t}\n\n\t_onfocusin(e: FocusEvent): void {\n\t\tconst target = e.target as HTMLElement;\n\t\tconst menuListItem = target.hasAttribute(\"ui5-menu-li\")\n\t\t\t? target as MenuListItem\n\t\t\t: (target.getRootNode() as ShadowRoot).host as MenuListItem;\n\t\tconst item = menuListItem.associatedItem;\n\t\tconst mainMenu = this._findMainMenu(item);\n\t\tmainMenu?.fireEvent<MenuItemFocusEventDetail>(\"item-focus\", { ref: menuListItem, item });\n\t}\n\n\t_startOpenTimeout(item: MenuItem, opener: OpenerStandardListItem) {\n\t\tclearTimeout(this._timeout);\n\n\t\t// Sets the new timeout\n\t\tthis._timeout = setTimeout(() => {\n\t\t\tthis._prepareSubMenu(item, opener);\n\t\t}, MENU_OPEN_DELAY);\n\t}\n\n\t_startCloseTimeout(item: MenuItem) {\n\t\tclearTimeout(this._timeout);\n\n\t\t// Sets the new timeout\n\t\tthis._timeout = setTimeout(() => {\n\t\t\tthis._closeItemSubMenu(item);\n\t\t}, MENU_CLOSE_DELAY);\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 opener = e.target as OpenerStandardListItem;\n\t\t\tconst item = opener.associatedItem;\n\n\t\t\topener.focus();\n\n\t\t\t// Opens submenu with 300ms delay\n\t\t\tthis._startOpenTimeout(item, opener);\n\t\t}\n\t}\n\n\t_busyMouseOver() {\n\t\tif (this._parentMenuItem) {\n\t\t\tthis._parentMenuItem._preventSubMenuClose = true;\n\t\t}\n\t}\n\n\t_itemMouseOut(e: MouseEvent) {\n\t\tif (isDesktop()) {\n\t\t\tconst opener = e.target as OpenerStandardListItem;\n\t\t\tconst item = opener.associatedItem;\n\n\t\t\tclearTimeout(this._timeout);\n\n\t\t\t// Close submenu with 400ms delay\n\t\t\tif (item && item.hasSubmenu && item._subMenu) {\n\t\t\t\t// try to close the sub-menu\n\t\t\t\titem._preventSubMenuClose = false;\n\t\t\t\tthis._startCloseTimeout(item);\n\t\t\t}\n\t\t}\n\t}\n\n\t_itemKeyDown(e: KeyboardEvent) {\n\t\tconst shouldCloseMenu = this.isRtl ? isRight(e) : isLeft(e);\n\t\tconst shouldOpenMenu = this.isRtl ? isLeft(e) : isRight(e);\n\n\t\tif (isEnter(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\t\tif (shouldOpenMenu) {\n\t\t\tconst opener = e.target as OpenerStandardListItem;\n\t\t\tconst item = opener.associatedItem;\n\n\t\t\titem.hasSubmenu && this._prepareSubMenu(item, opener);\n\t\t} else if (shouldCloseMenu && this._isSubMenu && this._parentMenuItem) {\n\t\t\tconst parentMenuItemParent = this._parentMenuItem.parentElement as Menu;\n\t\t\tparentMenuItemParent._closeItemSubMenu(this._parentMenuItem, true, true);\n\t\t}\n\t}\n\n\t_itemClick(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst opener = e.detail.item as OpenerStandardListItem;\n\t\tconst item = opener.associatedItem;\n\n\t\tif (!item.hasSubmenu) {\n\t\t\t// click on an item that doesn't have sub-items fires an \"item-click\" event\n\t\t\tif (!this._isSubMenu) {\n\t\t\t\t// fire event if the click is on top-level menu item\n\t\t\t\tconst prevented = !this.fireEvent<MenuItemClickEventDetail>(\"item-click\", {\n\t\t\t\t\t\"item\": item,\n\t\t\t\t\t\"text\": item.text,\n\t\t\t\t}, true, false);\n\n\t\t\t\tif (!prevented) {\n\t\t\t\t\tthis._popover!.close();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst mainMenu = this._findMainMenu(item);\n\t\t\t\tconst prevented = !mainMenu.fireEvent<MenuItemClickEventDetail>(\"item-click\", {\n\t\t\t\t\t\"item\": item,\n\t\t\t\t\t\"text\": item.text,\n\t\t\t\t}, true, false);\n\n\t\t\t\tif (!prevented) {\n\t\t\t\t\tlet openerMenuItem = item;\n\t\t\t\t\tlet parentMenu = openerMenuItem.parentElement as Menu;\n\t\t\t\t\tdo {\n\t\t\t\t\t\topenerMenuItem._preventSubMenuClose = false;\n\t\t\t\t\t\tthis._closeItemSubMenu(openerMenuItem);\n\t\t\t\t\t\tparentMenu = openerMenuItem.parentElement as Menu;\n\t\t\t\t\t\topenerMenuItem = parentMenu._parentMenuItem as MenuItem;\n\t\t\t\t\t} while (parentMenu._parentMenuItem);\n\n\t\t\t\t\tmainMenu._popover!.close();\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis._prepareSubMenu(item, opener);\n\t\t}\n\t}\n\n\t_findMainMenu(element: MenuItem | Menu) {\n\t\tlet menu = this._isMenu(element) ? element as Menu : element.parentElement as Menu;\n\t\twhile (menu && menu._parentMenuItem) {\n\t\t\tmenu = menu._parentMenuItem.parentElement as Menu;\n\t\t}\n\n\t\treturn menu;\n\t}\n\n\t_isMenu(element: HTMLElement) {\n\t\treturn element.hasAttribute(\"ui5-menu\");\n\t}\n\n\t_beforePopoverOpen(e: CustomEvent) {\n\t\tconst prevented = !this.fireEvent<MenuBeforeOpenEventDetail>(\"before-open\", {}, true, false);\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.open = true;\n\t\tthis.fireEvent(\"after-open\", {}, false, false);\n\t}\n\n\t_beforePopoverClose(e: CustomEvent<ResponsivePopoverBeforeCloseEventDetail>) {\n\t\tconst prevented = !this.fireEvent<MenuBeforeCloseEventDetail>(\"before-close\", { escPressed: e.detail.escPressed }, true, false);\n\n\t\tif (prevented) {\n\t\t\tthis.open = true;\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._openedSubMenuItem) {\n\t\t\tthis._openedSubMenuItem._preventSubMenuClose = false;\n\t\t\tthis._closeItemSubMenu(this._openedSubMenuItem);\n\t\t}\n\t}\n\n\t_afterPopoverClose() {\n\t\tthis.open = false;\n\t\tthis.fireEvent(\"after-close\", {}, false, false);\n\t}\n}\n\nMenu.define();\n\nexport default Menu;\nexport type {\n\tMenuItemClickEventDetail,\n\tMenuBeforeCloseEventDetail,\n\tMenuBeforeOpenEventDetail,\n\tMenuItemFocusEventDetail,\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.js\";\nimport DOMReference from \"@ui5/webcomponents-base/dist/types/DOMReference.js\";\nimport {\n\tisLeft,\n\tisRight,\n\tisEnter,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport {\n\tisPhone,\n\tisDesktop,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport type { Timeout } from \"@ui5/webcomponents-base/dist/types.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport type { ResponsivePopoverBeforeCloseEventDetail } from \"./ResponsivePopover.js\";\nimport Button from \"./Button.js\";\nimport List from \"./List.js\";\nimport MenuListItem from \"./MenuListItem.js\";\nimport StandardListItem from \"./StandardListItem.js\";\nimport Icon from \"./Icon.js\";\nimport BusyIndicator from \"./BusyIndicator.js\";\nimport type MenuItem from \"./MenuItem.js\";\nimport type { ListItemClickEventDetail } from \"./List.js\";\nimport staticAreaMenuTemplate from \"./generated/templates/MenuTemplate.lit.js\";\nimport {\n\tMENU_BACK_BUTTON_ARIA_LABEL,\n\tMENU_CLOSE_BUTTON_ARIA_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport \"@ui5/webcomponents-icons/dist/nav-back.js\";\n\n// Styles\nimport staticAreaMenuCss from \"./generated/themes/Menu.css.js\";\n\ntype CurrentItem = {\n\titem: MenuItem,\n\tposition: number,\n\tariaHasPopup: string | undefined,\n}\n\nconst MENU_OPEN_DELAY = 300;\nconst MENU_CLOSE_DELAY = 400;\n\ntype MenuItemClickEventDetail = {\n\titem: MenuItem,\n\ttext: string,\n}\n\ntype MenuBeforeOpenEventDetail = { item?: MenuItem };\ntype MenuBeforeCloseEventDetail = { escPressed: boolean };\n\ntype MenuItemFocusEventDetail = {\n\tref: HTMLElement,\n\titem: MenuItem,\n};\n\ntype OpenerStandardListItem = StandardListItem & { associatedItem: MenuItem };\n\n/**\n * @class\n *\n * ### Overview\n *\n * `ui5-menu` component represents a hierarchical menu structure.\n *\n * ### Usage\n *\n * `ui5-menu` contains `ui5-menu-item` components.\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 * 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: litRender,\n\tstaticAreaStyles: staticAreaMenuCss,\n\tstaticAreaTemplate: staticAreaMenuTemplate,\n\tdependencies: [\n\t\tResponsivePopover,\n\t\tButton,\n\t\tList,\n\t\tStandardListItem,\n\t\tMenuListItem,\n\t\tIcon,\n\t\tBusyIndicator,\n\t],\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 * @allowPreventDefault\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<MenuItemClickEventDetail>(\"item-click\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\titem: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\t\t/**\n\t\t * @public\n\t\t */\n\t\ttext: {\n\t\t\ttype: String,\n\t\t},\n\t},\n})\n\n/**\n * Fired before the menu is opened. This event can be cancelled, which will prevent the menu from opening. **This event does not bubble.**\n *\n * **Note:** Since 1.14.0 the event is also fired before a sub-menu opens.\n * @public\n * @allowPreventDefault\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<MenuBeforeOpenEventDetail>(\"before-open\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t * @since 1.14.0\n\t\t */\n\t\titem: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\t},\n})\n\n/**\n * Fired after the menu is opened. **This event does not bubble.**\n * @public\n * @since 1.10.0\n */\n@event(\"after-open\")\n\n/**\n * Fired before the menu is closed. This event can be cancelled, which will prevent the menu from closing. **This event does not bubble.**\n * @public\n * @allowPreventDefault\n * @param {boolean} escPressed Indicates that `ESC` key has triggered the event.\n * @since 1.10.0\n */\n@event<MenuBeforeCloseEventDetail>(\"before-close\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tescPressed: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n})\n\n/**\n * Fired after the menu is closed. **This event does not bubble.**\n * @public\n * @since 1.10.0\n */\n@event(\"after-close\")\n\n/**\n * Fired when a menu item receives focus.\n *\n * @public\n * @param { HTMLElement } ref The currently focused element representing a <code>ui5-menu-item</code>.\n * @param { HTMLElement } item The <code>ui5-menu-item</code> represented by the focused element.\n * @since 1.23.1\n */\n@event<MenuItemFocusEventDetail>(\"item-focus\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tref: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\t\t/**\n\t\t * @public\n\t\t */\n\t\titem: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\t},\n})\n\nclass Menu extends UI5Element {\n\t/**\n\t * Defines the header text of the menu (displayed on mobile).\n\t * @default \"\"\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!:boolean;\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\tbusy!: boolean;\n\n\t/**\n\t * Defines the delay in milliseconds, after which the busy 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({ validator: Integer, defaultValue: 1000 })\n\tbusyDelay!: number;\n\n\t/**\n\t * Defines the ID or DOM Reference of the element that the menu is shown at\n\t * @public\n\t * @default \"\"\n\t * @since 1.10.0\n\t */\n\t@property({ validator: DOMReference, defaultValue: \"\" })\n\topener!: HTMLElement | string;\n\n\t/**\n\t * Defines if the menu is sub-menu (not first-level).\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_isSubMenu!: boolean;\n\n\t/**\n\t * Stores id of a list item that opened sub-menu.\n\t * @private\n\t */\n\t@property()\n\t_subMenuOpenerId!: string;\n\n\t/**\n\t * Defines the currently available menu items.\n\t * (in case of non-phone devices these are the items of the menu,\n\t * but for phone devices the items of the currently opened sub-menu\n\t * will be populated here)\n\t * @private\n\t */\n\t@property({ type: Object, multiple: true })\n\t_currentItems!: Array<CurrentItem>;\n\n\t/**\n\t * Stores the ResponsivePopover instance\n\t */\n\t@property({ type: Object, defaultValue: undefined })\n\t_popover?: ResponsivePopover;\n\n\t/**\n\t * Stores parent menu item (if there is such).\n\t */\n\t@property({ type: Object, defaultValue: undefined })\n\t_parentMenuItem?: MenuItem;\n\n\t/**\n\t * Stores parent menu item DOM representation (if there is such).\n\t */\n\t@property({ type: Object, defaultValue: undefined })\n\t_opener?: HTMLElement;\n\n\t/**\n\t * Stores menu item that have sub-menu opened.\n\t */\n\t@property({ type: Object, defaultValue: undefined })\n\t_openedSubMenuItem?: MenuItem;\n\n\t/**\n\t * Defines the items of this component.\n\t *\n\t * **Note:** Use `ui5-menu-item` for the intended design.\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, invalidateOnChildChange: true })\n\titems!: Array<MenuItem>;\n\n\tstatic i18nBundle: I18nBundle;\n\t_timeout?: Timeout;\n\n\tstatic async onDefine() {\n\t\tMenu.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tget itemsWithChildren() {\n\t\treturn !!this._currentItems.filter(item => item.item.items.length).length;\n\t}\n\n\tget itemsWithIcon() {\n\t\treturn !!this._currentItems.filter(item => item.item.icon !== \"\").length;\n\t}\n\n\tget isRtl() {\n\t\treturn this.effectiveDir === \"rtl\";\n\t}\n\n\tget placementType() {\n\t\tconst placement = this.isRtl ? \"Left\" : \"Right\";\n\t\treturn this._isSubMenu ? placement : \"Bottom\";\n\t}\n\n\tget verticalAlign() {\n\t\treturn this._isSubMenu ? \"Top\" : \"Bottom\";\n\t}\n\n\tget labelBack() {\n\t\treturn Menu.i18nBundle.getText(MENU_BACK_BUTTON_ARIA_LABEL);\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 isSubMenuOpened() {\n\t\treturn this.items.some(menuItem => menuItem.subMenuOpened);\n\t}\n\n\tget menuHeaderTextPhone() {\n\t\tconst parentMenuItem = this._getParentMenuItem(this);\n\t\treturn parentMenuItem ? parentMenuItem.text : this.headerText;\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._prepareCurrentItems(this.items);\n\n\t\tconst itemsWithChildren = this.itemsWithChildren;\n\t\tconst itemsWithIcon = this.itemsWithIcon;\n\n\t\tthis._currentItems.forEach(item => {\n\t\t\tconst menuItem = item.item;\n\t\t\tmenuItem._siblingsWithChildren = itemsWithChildren;\n\t\t\tmenuItem._siblingsWithIcon = itemsWithIcon;\n\n\t\t\tconst subMenu = this._isSubMenu ? this._getSubmenuReference(menuItem) : menuItem._subMenu;\n\n\t\t\tif (subMenu) {\n\t\t\t\tsubMenu.innerHTML = \"\";\n\t\t\t\tconst fragment = this._clonedItemsFragment(menuItem);\n\t\t\t\tsubMenu.appendChild(fragment);\n\t\t\t\tsubMenu.busy = menuItem.busy;\n\t\t\t\tsubMenu.busyDelay = menuItem.busyDelay;\n\t\t\t}\n\t\t});\n\t}\n\n\tonAfterRendering() {\n\t\tif (!this.opener) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.open) {\n\t\t\tconst opener = this.getOpener();\n\t\t\tif (opener && !this.isSubMenuOpened) {\n\t\t\t\tthis.showAt(opener);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\t/**\n\t * Shows the Menu near the opener element.\n\t * @param opener the element that the popover is shown at\n\t * @public\n\t */\n\tasync showAt(opener: HTMLElement): Promise<void> {\n\t\tlet parentMenuItem = this._getParentMenuItem(this);\n\n\t\tif (!this._isSubMenu) {\n\t\t\tparentMenuItem = undefined;\n\t\t\tthis._opener = undefined;\n\t\t}\n\t\tconst busyWithoutItems = !parentMenuItem?.items.length && parentMenuItem?.busy;\n\t\tconst popover = await this._createPopover();\n\t\tpopover.initialFocus = `${this._id}-menu-item-0`;\n\t\tpopover.showAt(opener, busyWithoutItems);\n\t}\n\n\t/**\n\t * Closes the Menu.\n\t * @public\n\t */\n\tclose(): void {\n\t\tthis._popover?.close(false, false, true);\n\t}\n\n\tasync _createPopover() {\n\t\tif (!this._popover) {\n\t\t\tconst staticAreaItemDomRef = await this.getStaticAreaItemDomRef();\n\t\t\tthis._popover = staticAreaItemDomRef!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t\t}\n\t\treturn this._popover;\n\t}\n\n\tgetOpener() {\n\t\tconst rootNode = this.getRootNode() as Document;\n\t\treturn this.opener instanceof HTMLElement ? this.opener : rootNode?.getElementById?.(this.opener);\n\t}\n\n\t_navigateBack() {\n\t\tconst parentMenuItem = this._getParentMenuItem(this);\n\t\tif (parentMenuItem) {\n\t\t\tthis._closeItemSubMenu(parentMenuItem, true);\n\t\t}\n\t}\n\n\t_closeAll() {\n\t\tlet menu = this as Menu,\n\t\t\tparentMenuItem;\n\n\t\tdo {\n\t\t\tif (menu) {\n\t\t\t\tmenu.close();\n\t\t\t\tparentMenuItem = menu._getParentMenuItem(menu);\n\t\t\t}\n\t\t\tmenu = parentMenuItem ? parentMenuItem.parentElement as Menu : menu;\n\t\t} while (parentMenuItem);\n\t}\n\n\t_prepareCurrentItems(items: Array<MenuItem>) {\n\t\tthis._currentItems = items.map((item, index) => {\n\t\t\treturn {\n\t\t\t\titem,\n\t\t\t\tposition: index + 1,\n\t\t\t\tariaHasPopup: item.hasSubmenu ? \"menu\" : undefined,\n\t\t\t};\n\t\t});\n\t}\n\n\t_createSubMenu(item: MenuItem, opener: HTMLElement) {\n\t\tlet subMenu = item._subMenu;\n\t\tlet subMenuRef = this._getSubmenuReference(item);\n\n\t\tif ((!subMenu && !this._isSubMenu) || (!subMenuRef && this._isSubMenu)) {\n\t\t\tsubMenu = document.createElement(this.tagName.toLowerCase()) as Menu;\n\t\t\tsubMenu._isSubMenu = true;\n\t\t\tsubMenu.setAttribute(\"id\", `submenu-${opener.id}`);\n\t\t\tsubMenu._parentMenuItem = item;\n\t\t\tsubMenu._opener = opener;\n\t\t\tsubMenu.busy = item.busy;\n\t\t\tsubMenu.busyDelay = item.busyDelay;\n\t\t\tconst fragment = this._clonedItemsFragment(item);\n\t\t\tsubMenu.appendChild(fragment);\n\t\t\tthis.staticAreaItem!.shadowRoot!.querySelector(\".ui5-menu-submenus\")!.appendChild(subMenu);\n\t\t\tsubMenuRef = subMenu;\n\t\t}\n\n\t\titem._subMenu = this._isSubMenu ? subMenuRef : subMenu;\n\t}\n\n\t_getSubmenuReference(item: MenuItem) {\n\t\tconst index = (item.parentElement as Menu)?.items.indexOf(item);\n\t\treturn this.staticAreaItem\n\t\t\t? this.staticAreaItem.shadowRoot!.querySelector(\".ui5-menu-submenus\")!.children[index] as Menu\n\t\t\t: undefined;\n\t}\n\n\t_clonedItemsFragment(item: MenuItem) {\n\t\tconst fragment = document.createDocumentFragment();\n\n\t\tfor (let i = 0; i < item.items.length; ++i) {\n\t\t\tconst clonedItem = item.items[i].cloneNode(true);\n\t\t\tfragment.appendChild(clonedItem);\n\t\t}\n\n\t\treturn fragment;\n\t}\n\n\t_openItemSubMenu(item: MenuItem, opener: HTMLElement) {\n\t\tconst mainMenu = this._findMainMenu(item);\n\t\tmainMenu?.fireEvent<MenuBeforeOpenEventDetail>(\"before-open\", {\n\t\t\titem,\n\t\t}, false, false);\n\t\titem._subMenu!.showAt(opener);\n\t\titem._preventSubMenuClose = true;\n\t\tthis._openedSubMenuItem = item;\n\t\tthis._subMenuOpenerId = opener.id;\n\t}\n\n\t_closeItemSubMenu(item: MenuItem, forceClose = false, keyboard = false) {\n\t\tif (item) {\n\t\t\tconst subMenu = item._subMenu\n\t\t\t\t? item._subMenu\n\t\t\t\t: (item.parentElement as Menu)?._getSubmenuReference(item);\n\t\t\tif (forceClose) {\n\t\t\t\titem._preventSubMenuClose = false;\n\t\t\t\tthis._closeSubMenuPopover(subMenu!, forceClose, keyboard);\n\t\t\t} else {\n\t\t\t\tsetTimeout(() => this._closeSubMenuPopover(subMenu!), 0);\n\t\t\t}\n\t\t}\n\t}\n\n\t_closeSubMenuPopover(subMenu: Menu, forceClose = false, keyboard = false) {\n\t\tif (subMenu) {\n\t\t\tconst parentItem = subMenu._getParentMenuItem(subMenu)!;\n\n\t\t\tif (forceClose || !parentItem._preventSubMenuClose) {\n\t\t\t\tsubMenu.close();\n\t\t\t\tif (keyboard) {\n\t\t\t\t\tsubMenu._opener?.focus();\n\t\t\t\t}\n\t\t\t\tthis._openedSubMenuItem = undefined;\n\t\t\t\tthis._subMenuOpenerId = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t_prepareSubMenu(item: MenuItem, opener: HTMLElement) {\n\t\tconst menuItem = item.parentElement ? item : (opener as OpenerStandardListItem).associatedItem;\n\t\tconst parentMenuItem = this._getParentMenuItem(menuItem);\n\n\t\tif (opener.id !== this._subMenuOpenerId || (menuItem && menuItem.hasSubmenu)) {\n\t\t\t// close opened sub-menu if there is any opened\n\t\t\tthis._closeItemSubMenu(this._openedSubMenuItem!, true);\n\t\t}\n\t\tif (menuItem && menuItem.hasSubmenu) {\n\t\t\t// create new sub-menu\n\t\t\tthis._createSubMenu(menuItem, opener);\n\t\t\tthis._openItemSubMenu(menuItem, opener);\n\t\t}\n\t\tif (parentMenuItem) {\n\t\t\tparentMenuItem._preventSubMenuClose = true;\n\t\t}\n\t}\n\n\t_onfocusin(e: FocusEvent): void {\n\t\tconst target = e.target as HTMLElement;\n\t\tconst menuListItem = target.hasAttribute(\"ui5-menu-li\")\n\t\t\t? target as MenuListItem\n\t\t\t: (target.getRootNode() as ShadowRoot).host as MenuListItem;\n\t\tconst item = menuListItem.associatedItem;\n\t\tconst mainMenu = this._findMainMenu(item);\n\t\tmainMenu?.fireEvent<MenuItemFocusEventDetail>(\"item-focus\", { ref: menuListItem, item });\n\t}\n\n\t_startOpenTimeout(item: MenuItem, opener: HTMLElement) {\n\t\tclearTimeout(this._timeout);\n\n\t\t// Sets the new timeout\n\t\tthis._timeout = setTimeout(() => {\n\t\t\tthis._prepareSubMenu(item, opener);\n\t\t}, MENU_OPEN_DELAY);\n\t}\n\n\t_startCloseTimeout(item: MenuItem) {\n\t\tclearTimeout(this._timeout);\n\n\t\t// Sets the new timeout\n\t\tthis._timeout = setTimeout(() => {\n\t\t\tthis._closeItemSubMenu(item);\n\t\t}, MENU_CLOSE_DELAY);\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 opener = e.target as OpenerStandardListItem;\n\t\t\tconst item = opener.associatedItem;\n\n\t\t\topener.focus();\n\n\t\t\t// Opens submenu with 300ms delay\n\t\t\tthis._startOpenTimeout(item, opener);\n\t\t}\n\t}\n\n\t_busyMouseOver() {\n\t\tconst parentMenuItem = this._getParentMenuItem(this);\n\t\tif (parentMenuItem) {\n\t\t\tparentMenuItem._preventSubMenuClose = true;\n\t\t}\n\t}\n\n\t_itemMouseOut(e: MouseEvent) {\n\t\tif (isDesktop()) {\n\t\t\tconst opener = e.target as OpenerStandardListItem;\n\t\t\tconst item = opener.associatedItem;\n\n\t\t\tclearTimeout(this._timeout);\n\n\t\t\t// Close submenu with 400ms delay\n\t\t\tconst subMenu = this._getSubmenuReference(item);\n\n\t\t\tif (item && item.hasSubmenu && subMenu) {\n\t\t\t\t// try to close the sub-menu\n\t\t\t\titem._preventSubMenuClose = false;\n\t\t\t\tthis._startCloseTimeout(item);\n\t\t\t}\n\t\t}\n\t}\n\n\t_itemKeyDown(e: KeyboardEvent) {\n\t\tconst shouldCloseMenu = this.isRtl ? isRight(e) : isLeft(e);\n\t\tconst shouldOpenMenu = this.isRtl ? isLeft(e) : isRight(e);\n\t\tconst opener = e.target as OpenerStandardListItem;\n\t\tconst item = opener.associatedItem;\n\t\tconst parentMenuItem = this._getParentMenuItem(item);\n\n\t\tif (isEnter(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\t\tif (shouldOpenMenu) {\n\t\t\titem.hasSubmenu && this._prepareSubMenu(item, opener);\n\t\t} else if (shouldCloseMenu && this._isSubMenu && parentMenuItem) {\n\t\t\tconst parentMenuItemMenu = parentMenuItem.parentElement as Menu;\n\t\t\tparentMenuItemMenu?._closeItemSubMenu(parentMenuItem, true, true);\n\t\t}\n\t}\n\n\t_itemClick(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tclearTimeout(this._timeout);\n\t\tconst opener = e.detail.item as OpenerStandardListItem;\n\t\tconst item = opener.associatedItem;\n\n\t\tif (!item.hasSubmenu) {\n\t\t\t// click on an item that doesn't have sub-items fires an \"item-click\" event\n\t\t\tif (!this._isSubMenu) {\n\t\t\t\t// fire event if the click is on top-level menu item\n\t\t\t\tconst prevented = !this.fireEvent<MenuItemClickEventDetail>(\"item-click\", {\n\t\t\t\t\t\"item\": item,\n\t\t\t\t\t\"text\": item.text,\n\t\t\t\t}, true, false);\n\n\t\t\t\tif (!prevented) {\n\t\t\t\t\tthis._popover!.close();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst mainMenu = this._findMainMenu(item);\n\t\t\t\tconst prevented = !mainMenu?.fireEvent<MenuItemClickEventDetail>(\"item-click\", {\n\t\t\t\t\t\"item\": item,\n\t\t\t\t\t\"text\": item.text,\n\t\t\t\t}, true, false);\n\n\t\t\t\tif (!prevented) {\n\t\t\t\t\tlet openerMenuItem = item;\n\t\t\t\t\tlet parentMenu = openerMenuItem.parentElement as Menu;\n\t\t\t\t\tdo {\n\t\t\t\t\t\topenerMenuItem._preventSubMenuClose = false;\n\t\t\t\t\t\tthis._closeItemSubMenu(openerMenuItem);\n\t\t\t\t\t\tparentMenu = openerMenuItem.parentElement as Menu;\n\t\t\t\t\t\topenerMenuItem = parentMenu._getParentMenuItem(parentMenu) as MenuItem;\n\t\t\t\t\t} while (parentMenu._getParentMenuItem(parentMenu));\n\n\t\t\t\t\tmainMenu._popover!.close();\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis._prepareSubMenu(item, opener);\n\t\t}\n\t}\n\n\t_findMainMenu(element: MenuItem | Menu) {\n\t\tlet menu = this._isMenu(element) ? element as Menu : element.parentElement as Menu,\n\t\t\tparentMenuItem;\n\n\t\tdo {\n\t\t\tparentMenuItem = this._getParentMenuItem(menu);\n\t\t\tmenu = parentMenuItem ? parentMenuItem.parentElement as Menu : menu;\n\t\t} while (parentMenuItem);\n\n\t\treturn menu;\n\t}\n\n\t_isMenu(element: HTMLElement) {\n\t\treturn element?.hasAttribute(\"ui5-menu\");\n\t}\n\n\t_getParentMenuItem(element: MenuItem | Menu) {\n\t\tif (!element) {\n\t\t\treturn;\n\t\t}\n\t\tconst menu = this._isMenu(element) ? element as Menu : element.parentElement as Menu;\n\t\treturn !menu._parentMenuItem || menu._parentMenuItem.parentElement\n\t\t\t? menu._parentMenuItem\n\t\t\t: (menu._opener as MenuListItem)?.associatedItem;\n\t}\n\n\t_beforePopoverOpen(e: CustomEvent) {\n\t\tconst prevented = !this.fireEvent<MenuBeforeOpenEventDetail>(\"before-open\", {}, true, false);\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.open = true;\n\t\tthis.fireEvent(\"after-open\", {}, false, false);\n\t}\n\n\t_beforePopoverClose(e: CustomEvent<ResponsivePopoverBeforeCloseEventDetail>) {\n\t\tconst prevented = !this.fireEvent<MenuBeforeCloseEventDetail>(\"before-close\", { escPressed: e.detail.escPressed }, true, false);\n\n\t\tif (prevented) {\n\t\t\tthis.open = true;\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._openedSubMenuItem) {\n\t\t\tthis._openedSubMenuItem._preventSubMenuClose = false;\n\t\t\tthis._closeItemSubMenu(this._openedSubMenuItem);\n\t\t}\n\t}\n\n\t_afterPopoverClose() {\n\t\tthis.open = false;\n\t\tthis.fireEvent(\"after-close\", {}, false, false);\n\t}\n}\n\nMenu.define();\n\nexport default Menu;\nexport type {\n\tMenuItemClickEventDetail,\n\tMenuBeforeCloseEventDetail,\n\tMenuBeforeOpenEventDetail,\n\tMenuItemFocusEventDetail,\n};\n"]}
@@ -271,6 +271,7 @@ declare class MultiComboBox extends UI5Element {
271
271
  _tokenDelete(e: CustomEvent<TokenizerTokenDeleteEventDetail>): void;
272
272
  get _getPlaceholder(): string;
273
273
  _handleArrowLeft(): void;
274
+ _onPopoverFocusOut(): void;
274
275
  _tokenizerFocusOut(e: FocusEvent): void;
275
276
  _tokenizerFocusIn(): void;
276
277
  _onkeydown(e: KeyboardEvent): void;
@@ -367,6 +368,7 @@ declare class MultiComboBox extends UI5Element {
367
368
  get valueStateTextMappings(): ValueStateAnnouncement;
368
369
  get _innerInput(): HTMLInputElement;
369
370
  get _headerTitleText(): string;
371
+ get _popupLabel(): string;
370
372
  get _iconAccessibleNameText(): string;
371
373
  get _showSelectedButtonAccessibleNameText(): string;
372
374
  get _dialogOkButton(): string;
@@ -42,7 +42,7 @@ import StandardListItem from "./StandardListItem.js";
42
42
  import ToggleButton from "./ToggleButton.js";
43
43
  import * as Filters from "./Filters.js";
44
44
  import Button from "./Button.js";
45
- import { VALUE_STATE_SUCCESS, VALUE_STATE_ERROR, VALUE_STATE_WARNING, VALUE_STATE_INFORMATION, VALUE_STATE_TYPE_SUCCESS, VALUE_STATE_TYPE_INFORMATION, VALUE_STATE_TYPE_ERROR, VALUE_STATE_TYPE_WARNING, INPUT_SUGGESTIONS_TITLE, SELECT_OPTIONS, SHOW_SELECTED_BUTTON, MULTICOMBOBOX_DIALOG_OK_BUTTON, VALUE_STATE_ERROR_ALREADY_SELECTED, MCB_SELECTED_ITEMS, INPUT_CLEAR_ICON_ACC_NAME, } from "./generated/i18n/i18n-defaults.js";
45
+ import { VALUE_STATE_SUCCESS, VALUE_STATE_ERROR, VALUE_STATE_WARNING, VALUE_STATE_INFORMATION, VALUE_STATE_TYPE_SUCCESS, VALUE_STATE_TYPE_INFORMATION, VALUE_STATE_TYPE_ERROR, VALUE_STATE_TYPE_WARNING, INPUT_SUGGESTIONS_TITLE, SELECT_OPTIONS, SHOW_SELECTED_BUTTON, MULTICOMBOBOX_DIALOG_OK_BUTTON, COMBOBOX_AVAILABLE_OPTIONS, VALUE_STATE_ERROR_ALREADY_SELECTED, MCB_SELECTED_ITEMS, INPUT_CLEAR_ICON_ACC_NAME, } from "./generated/i18n/i18n-defaults.js";
46
46
  // Templates
47
47
  import MultiComboBoxTemplate from "./generated/templates/MultiComboBoxTemplate.lit.js";
48
48
  import MultiComboBoxPopoverTemplate from "./generated/templates/MultiComboBoxPopoverTemplate.lit.js";
@@ -260,6 +260,11 @@ let MultiComboBox = MultiComboBox_1 = class MultiComboBox extends UI5Element {
260
260
  this._tokenizer._focusLastToken();
261
261
  }
262
262
  }
263
+ _onPopoverFocusOut() {
264
+ if (!isPhone()) {
265
+ this._tokenizer.expanded = this.open;
266
+ }
267
+ }
263
268
  _tokenizerFocusOut(e) {
264
269
  this._tokenizerFocused = false;
265
270
  const tokensCount = this._tokenizer.tokens.length;
@@ -883,9 +888,11 @@ let MultiComboBox = MultiComboBox_1 = class MultiComboBox extends UI5Element {
883
888
  // close device's keyboard and prevent further typing
884
889
  if (isPhone()) {
885
890
  this._dialogInputValueState = this.valueState;
891
+ this._tokenizer.expanded = false;
886
892
  this.blur();
887
893
  }
888
894
  this._toggle();
895
+ this._tokenizer.expanded = this.focused;
889
896
  this._iconPressed = false;
890
897
  this._preventTokenizerToggle = false;
891
898
  this.filterSelected = false;
@@ -1211,6 +1218,9 @@ let MultiComboBox = MultiComboBox_1 = class MultiComboBox extends UI5Element {
1211
1218
  get _headerTitleText() {
1212
1219
  return MultiComboBox_1.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
1213
1220
  }
1221
+ get _popupLabel() {
1222
+ return MultiComboBox_1.i18nBundle.getText(COMBOBOX_AVAILABLE_OPTIONS);
1223
+ }
1214
1224
  get _iconAccessibleNameText() {
1215
1225
  return MultiComboBox_1.i18nBundle.getText(SELECT_OPTIONS);
1216
1226
  }