@ui5/webcomponents 2.0.0-rc.6 → 2.0.0

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 (902) hide show
  1. package/CHANGELOG.md +150 -0
  2. package/README.md +1 -4
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/Avatar.d.ts +13 -18
  5. package/dist/Avatar.js +77 -17
  6. package/dist/Avatar.js.map +1 -1
  7. package/dist/AvatarGroup.d.ts +1 -1
  8. package/dist/AvatarGroup.js +21 -3
  9. package/dist/AvatarGroup.js.map +1 -1
  10. package/dist/Bar.d.ts +1 -1
  11. package/dist/Bar.js +7 -2
  12. package/dist/Bar.js.map +1 -1
  13. package/dist/Breadcrumbs.d.ts +1 -1
  14. package/dist/Breadcrumbs.js +25 -5
  15. package/dist/Breadcrumbs.js.map +1 -1
  16. package/dist/BreadcrumbsItem.d.ts +3 -3
  17. package/dist/BreadcrumbsItem.js +1 -1
  18. package/dist/BreadcrumbsItem.js.map +1 -1
  19. package/dist/BusyIndicator.d.ts +5 -5
  20. package/dist/BusyIndicator.js +33 -5
  21. package/dist/BusyIndicator.js.map +1 -1
  22. package/dist/Button.d.ts +9 -9
  23. package/dist/Button.js +107 -7
  24. package/dist/Button.js.map +1 -1
  25. package/dist/Calendar.d.ts +46 -7
  26. package/dist/Calendar.js +143 -16
  27. package/dist/Calendar.js.map +1 -1
  28. package/dist/CalendarDate.d.ts +1 -0
  29. package/dist/CalendarDate.js +11 -0
  30. package/dist/CalendarDate.js.map +1 -1
  31. package/dist/CalendarDateRange.d.ts +1 -0
  32. package/dist/CalendarDateRange.js +18 -0
  33. package/dist/CalendarDateRange.js.map +1 -1
  34. package/dist/CalendarLegend.js +24 -0
  35. package/dist/CalendarLegend.js.map +1 -1
  36. package/dist/CalendarLegendItem.d.ts +2 -2
  37. package/dist/CalendarLegendItem.js +16 -2
  38. package/dist/CalendarLegendItem.js.map +1 -1
  39. package/dist/CalendarPart.js +1 -2
  40. package/dist/CalendarPart.js.map +1 -1
  41. package/dist/Card.d.ts +4 -4
  42. package/dist/Card.js.map +1 -1
  43. package/dist/CardHeader.d.ts +6 -6
  44. package/dist/CardHeader.js +20 -2
  45. package/dist/CardHeader.js.map +1 -1
  46. package/dist/Carousel.d.ts +9 -9
  47. package/dist/Carousel.js +104 -14
  48. package/dist/Carousel.js.map +1 -1
  49. package/dist/CheckBox.d.ts +9 -9
  50. package/dist/CheckBox.js +85 -3
  51. package/dist/CheckBox.js.map +1 -1
  52. package/dist/ColorPalette.d.ts +2 -4
  53. package/dist/ColorPalette.js +34 -17
  54. package/dist/ColorPalette.js.map +1 -1
  55. package/dist/ColorPaletteItem.d.ts +3 -3
  56. package/dist/ColorPaletteItem.js +37 -5
  57. package/dist/ColorPaletteItem.js.map +1 -1
  58. package/dist/ColorPalettePopover.js +30 -4
  59. package/dist/ColorPalettePopover.js.map +1 -1
  60. package/dist/ColorPicker.d.ts +3 -3
  61. package/dist/ColorPicker.js +49 -8
  62. package/dist/ColorPicker.js.map +1 -1
  63. package/dist/ComboBox.d.ts +12 -11
  64. package/dist/ComboBox.js +108 -12
  65. package/dist/ComboBox.js.map +1 -1
  66. package/dist/ComboBoxItem.d.ts +4 -4
  67. package/dist/ComboBoxItem.js +18 -0
  68. package/dist/ComboBoxItem.js.map +1 -1
  69. package/dist/ComboBoxItemGroup.d.ts +2 -2
  70. package/dist/ComboBoxItemGroup.js +9 -1
  71. package/dist/ComboBoxItemGroup.js.map +1 -1
  72. package/dist/DateComponentBase.d.ts +3 -3
  73. package/dist/DateComponentBase.js +20 -3
  74. package/dist/DateComponentBase.js.map +1 -1
  75. package/dist/DatePicker.d.ts +7 -7
  76. package/dist/DatePicker.js +58 -4
  77. package/dist/DatePicker.js.map +1 -1
  78. package/dist/DateRangePicker.d.ts +2 -2
  79. package/dist/DateRangePicker.js +11 -4
  80. package/dist/DateRangePicker.js.map +1 -1
  81. package/dist/DateTimePicker.js +25 -2
  82. package/dist/DateTimePicker.js.map +1 -1
  83. package/dist/DayPicker.js +52 -18
  84. package/dist/DayPicker.js.map +1 -1
  85. package/dist/Dialog.d.ts +2 -2
  86. package/dist/Dialog.js +48 -2
  87. package/dist/Dialog.js.map +1 -1
  88. package/dist/DropIndicator.js +31 -4
  89. package/dist/DropIndicator.js.map +1 -1
  90. package/dist/FileUploader.d.ts +5 -5
  91. package/dist/FileUploader.js +43 -2
  92. package/dist/FileUploader.js.map +1 -1
  93. package/dist/Filters.js +2 -2
  94. package/dist/Filters.js.map +1 -1
  95. package/dist/Form.d.ts +5 -3
  96. package/dist/Form.js +65 -15
  97. package/dist/Form.js.map +1 -1
  98. package/dist/FormGroup.d.ts +4 -3
  99. package/dist/FormGroup.js +19 -11
  100. package/dist/FormGroup.js.map +1 -1
  101. package/dist/FormItem.d.ts +2 -1
  102. package/dist/FormItem.js +15 -5
  103. package/dist/FormItem.js.map +1 -1
  104. package/dist/Icon.d.ts +5 -5
  105. package/dist/Icon.js +38 -6
  106. package/dist/Icon.js.map +1 -1
  107. package/dist/Input.d.ts +34 -39
  108. package/dist/Input.js +197 -78
  109. package/dist/Input.js.map +1 -1
  110. package/dist/Label.d.ts +3 -3
  111. package/dist/Label.js +30 -2
  112. package/dist/Label.js.map +1 -1
  113. package/dist/Link.d.ts +19 -19
  114. package/dist/Link.js +59 -8
  115. package/dist/Link.js.map +1 -1
  116. package/dist/List.d.ts +17 -17
  117. package/dist/List.js +73 -12
  118. package/dist/List.js.map +1 -1
  119. package/dist/ListItem.d.ts +10 -4
  120. package/dist/ListItem.js +63 -6
  121. package/dist/ListItem.js.map +1 -1
  122. package/dist/ListItemBase.d.ts +3 -3
  123. package/dist/ListItemBase.js +41 -1
  124. package/dist/ListItemBase.js.map +1 -1
  125. package/dist/ListItemCustom.d.ts +2 -2
  126. package/dist/ListItemCustom.js +10 -0
  127. package/dist/ListItemCustom.js.map +1 -1
  128. package/dist/ListItemGroup.d.ts +4 -4
  129. package/dist/ListItemGroup.js +9 -1
  130. package/dist/ListItemGroup.js.map +1 -1
  131. package/dist/ListItemGroupHeader.d.ts +2 -2
  132. package/dist/ListItemGroupHeader.js.map +1 -1
  133. package/dist/ListItemStandard.d.ts +14 -24
  134. package/dist/ListItemStandard.js +48 -15
  135. package/dist/ListItemStandard.js.map +1 -1
  136. package/dist/Menu.d.ts +23 -9
  137. package/dist/Menu.js +49 -15
  138. package/dist/Menu.js.map +1 -1
  139. package/dist/MenuItem.d.ts +20 -20
  140. package/dist/MenuItem.js +42 -8
  141. package/dist/MenuItem.js.map +1 -1
  142. package/dist/MenuSeparator.d.ts +25 -0
  143. package/dist/MenuSeparator.js +59 -0
  144. package/dist/MenuSeparator.js.map +1 -0
  145. package/dist/MessageStrip.d.ts +1 -0
  146. package/dist/MessageStrip.js +46 -6
  147. package/dist/MessageStrip.js.map +1 -1
  148. package/dist/MonthPicker.js +14 -7
  149. package/dist/MonthPicker.js.map +1 -1
  150. package/dist/MultiComboBox.d.ts +30 -23
  151. package/dist/MultiComboBox.js +206 -109
  152. package/dist/MultiComboBox.js.map +1 -1
  153. package/dist/MultiComboBoxItem.js +8 -0
  154. package/dist/MultiComboBoxItem.js.map +1 -1
  155. package/dist/MultiComboBoxItemGroup.d.ts +2 -2
  156. package/dist/MultiComboBoxItemGroup.js +1 -1
  157. package/dist/MultiComboBoxItemGroup.js.map +1 -1
  158. package/dist/MultiInput.d.ts +4 -4
  159. package/dist/MultiInput.js +18 -2
  160. package/dist/MultiInput.js.map +1 -1
  161. package/dist/NavigationMenuItem.d.ts +5 -5
  162. package/dist/NavigationMenuItem.js.map +1 -1
  163. package/dist/Option.d.ts +14 -8
  164. package/dist/Option.js +4 -1
  165. package/dist/Option.js.map +1 -1
  166. package/dist/OptionCustom.d.ts +12 -6
  167. package/dist/OptionCustom.js +4 -1
  168. package/dist/OptionCustom.js.map +1 -1
  169. package/dist/Panel.d.ts +7 -7
  170. package/dist/Panel.js +64 -4
  171. package/dist/Panel.js.map +1 -1
  172. package/dist/Popover.d.ts +2 -2
  173. package/dist/Popover.js +71 -11
  174. package/dist/Popover.js.map +1 -1
  175. package/dist/Popup.d.ts +5 -5
  176. package/dist/Popup.js +46 -4
  177. package/dist/Popup.js.map +1 -1
  178. package/dist/ProgressIndicator.d.ts +4 -4
  179. package/dist/ProgressIndicator.js +24 -4
  180. package/dist/ProgressIndicator.js.map +1 -1
  181. package/dist/RadioButton.d.ts +11 -11
  182. package/dist/RadioButton.js +78 -5
  183. package/dist/RadioButton.js.map +1 -1
  184. package/dist/RangeSlider.js +22 -3
  185. package/dist/RangeSlider.js.map +1 -1
  186. package/dist/RatingIndicator.d.ts +6 -6
  187. package/dist/RatingIndicator.js +55 -6
  188. package/dist/RatingIndicator.js.map +1 -1
  189. package/dist/ResponsivePopover.js +19 -0
  190. package/dist/ResponsivePopover.js.map +1 -1
  191. package/dist/SegmentedButton.d.ts +2 -0
  192. package/dist/SegmentedButton.js +15 -3
  193. package/dist/SegmentedButton.js.map +1 -1
  194. package/dist/SegmentedButtonItem.d.ts +9 -9
  195. package/dist/SegmentedButtonItem.js +49 -7
  196. package/dist/SegmentedButtonItem.js.map +1 -1
  197. package/dist/Select.d.ts +8 -9
  198. package/dist/Select.js +60 -11
  199. package/dist/Select.js.map +1 -1
  200. package/dist/Slider.js +9 -2
  201. package/dist/Slider.js.map +1 -1
  202. package/dist/SliderBase.d.ts +4 -4
  203. package/dist/SliderBase.js +61 -7
  204. package/dist/SliderBase.js.map +1 -1
  205. package/dist/SpecialCalendarDate.d.ts +11 -4
  206. package/dist/SpecialCalendarDate.js +23 -5
  207. package/dist/SpecialCalendarDate.js.map +1 -1
  208. package/dist/SplitButton.d.ts +3 -3
  209. package/dist/SplitButton.js +54 -4
  210. package/dist/SplitButton.js.map +1 -1
  211. package/dist/StepInput.d.ts +8 -8
  212. package/dist/StepInput.js +70 -19
  213. package/dist/StepInput.js.map +1 -1
  214. package/dist/SuggestionItem.d.ts +16 -60
  215. package/dist/SuggestionItem.js +26 -27
  216. package/dist/SuggestionItem.js.map +1 -1
  217. package/dist/SuggestionItemCustom.d.ts +31 -0
  218. package/dist/SuggestionItemCustom.js +48 -0
  219. package/dist/SuggestionItemCustom.js.map +1 -0
  220. package/dist/SuggestionItemGroup.d.ts +19 -0
  221. package/dist/SuggestionItemGroup.js +35 -0
  222. package/dist/SuggestionItemGroup.js.map +1 -0
  223. package/dist/SuggestionListItem.d.ts +1 -1
  224. package/dist/Switch.d.ts +17 -17
  225. package/dist/Switch.js +40 -2
  226. package/dist/Switch.js.map +1 -1
  227. package/dist/Tab.d.ts +10 -10
  228. package/dist/Tab.js +41 -2
  229. package/dist/Tab.js.map +1 -1
  230. package/dist/TabContainer.d.ts +6 -6
  231. package/dist/TabContainer.js +81 -16
  232. package/dist/TabContainer.js.map +1 -1
  233. package/dist/Table.d.ts +23 -7
  234. package/dist/Table.js +71 -5
  235. package/dist/Table.js.map +1 -1
  236. package/dist/TableCell.d.ts +1 -0
  237. package/dist/TableCell.js +1 -0
  238. package/dist/TableCell.js.map +1 -1
  239. package/dist/TableCellBase.d.ts +2 -0
  240. package/dist/TableCellBase.js +7 -0
  241. package/dist/TableCellBase.js.map +1 -1
  242. package/dist/TableGrowing.d.ts +6 -5
  243. package/dist/TableGrowing.js +27 -1
  244. package/dist/TableGrowing.js.map +1 -1
  245. package/dist/TableHeaderCell.d.ts +1 -0
  246. package/dist/TableHeaderCell.js +42 -5
  247. package/dist/TableHeaderCell.js.map +1 -1
  248. package/dist/TableHeaderRow.d.ts +1 -0
  249. package/dist/TableHeaderRow.js +11 -0
  250. package/dist/TableHeaderRow.js.map +1 -1
  251. package/dist/TableNavigation.d.ts +3 -1
  252. package/dist/TableNavigation.js +25 -9
  253. package/dist/TableNavigation.js.map +1 -1
  254. package/dist/TableRow.d.ts +9 -0
  255. package/dist/TableRow.js +38 -0
  256. package/dist/TableRow.js.map +1 -1
  257. package/dist/TableRowBase.d.ts +3 -2
  258. package/dist/TableRowBase.js +16 -9
  259. package/dist/TableRowBase.js.map +1 -1
  260. package/dist/TableSelection.d.ts +27 -0
  261. package/dist/TableSelection.js +160 -6
  262. package/dist/TableSelection.js.map +1 -1
  263. package/dist/TableUtils.d.ts +7 -0
  264. package/dist/TableUtils.js +14 -0
  265. package/dist/TableUtils.js.map +1 -0
  266. package/dist/Tag.d.ts +2 -2
  267. package/dist/Tag.js +64 -6
  268. package/dist/Tag.js.map +1 -1
  269. package/dist/Text.js +10 -2
  270. package/dist/Text.js.map +1 -1
  271. package/dist/TextArea.d.ts +9 -9
  272. package/dist/TextArea.js +97 -7
  273. package/dist/TextArea.js.map +1 -1
  274. package/dist/TimePicker.d.ts +9 -9
  275. package/dist/TimePicker.js +41 -4
  276. package/dist/TimePicker.js.map +1 -1
  277. package/dist/TimePickerClock.d.ts +1 -1
  278. package/dist/TimePickerClock.js +121 -14
  279. package/dist/TimePickerClock.js.map +1 -1
  280. package/dist/TimePickerInternals.d.ts +4 -4
  281. package/dist/TimePickerInternals.js +33 -11
  282. package/dist/TimePickerInternals.js.map +1 -1
  283. package/dist/TimeSelectionClocks.js +15 -0
  284. package/dist/TimeSelectionClocks.js.map +1 -1
  285. package/dist/TimeSelectionInputs.d.ts +2 -2
  286. package/dist/TimeSelectionInputs.js +6 -3
  287. package/dist/TimeSelectionInputs.js.map +1 -1
  288. package/dist/Title.d.ts +1 -1
  289. package/dist/Title.js +20 -3
  290. package/dist/Title.js.map +1 -1
  291. package/dist/Toast.d.ts +1 -7
  292. package/dist/Toast.js +52 -23
  293. package/dist/Toast.js.map +1 -1
  294. package/dist/ToggleButton.js +9 -0
  295. package/dist/ToggleButton.js.map +1 -1
  296. package/dist/ToggleSpinButton.d.ts +1 -1
  297. package/dist/ToggleSpinButton.js +22 -4
  298. package/dist/ToggleSpinButton.js.map +1 -1
  299. package/dist/Token.d.ts +2 -2
  300. package/dist/Token.js +49 -1
  301. package/dist/Token.js.map +1 -1
  302. package/dist/Tokenizer.d.ts +2 -1
  303. package/dist/Tokenizer.js +73 -10
  304. package/dist/Tokenizer.js.map +1 -1
  305. package/dist/Toolbar.d.ts +6 -6
  306. package/dist/Toolbar.js +23 -8
  307. package/dist/Toolbar.js.map +1 -1
  308. package/dist/ToolbarButton.d.ts +11 -11
  309. package/dist/ToolbarButton.js +39 -6
  310. package/dist/ToolbarButton.js.map +1 -1
  311. package/dist/ToolbarItem.d.ts +1 -1
  312. package/dist/ToolbarItem.js +18 -2
  313. package/dist/ToolbarItem.js.map +1 -1
  314. package/dist/ToolbarSelect.d.ts +5 -5
  315. package/dist/ToolbarSelect.js +16 -4
  316. package/dist/ToolbarSelect.js.map +1 -1
  317. package/dist/ToolbarSelectOption.js +9 -0
  318. package/dist/ToolbarSelectOption.js.map +1 -1
  319. package/dist/ToolbarSeparator.js +4 -0
  320. package/dist/ToolbarSeparator.js.map +1 -1
  321. package/dist/ToolbarSpacer.js +1 -2
  322. package/dist/ToolbarSpacer.js.map +1 -1
  323. package/dist/Tree.d.ts +12 -12
  324. package/dist/Tree.js +11 -2
  325. package/dist/Tree.js.map +1 -1
  326. package/dist/TreeItem.d.ts +5 -5
  327. package/dist/TreeItem.js +1 -1
  328. package/dist/TreeItem.js.map +1 -1
  329. package/dist/TreeItemBase.d.ts +5 -5
  330. package/dist/TreeItemBase.js +61 -6
  331. package/dist/TreeItemBase.js.map +1 -1
  332. package/dist/TreeItemCustom.js +9 -0
  333. package/dist/TreeItemCustom.js.map +1 -1
  334. package/dist/YearPicker.js +14 -7
  335. package/dist/YearPicker.js.map +1 -1
  336. package/dist/bundle.common.bootstrap.d.ts +1 -1
  337. package/dist/bundle.esm.d.ts +3 -1
  338. package/dist/bundle.esm.js +4 -0
  339. package/dist/bundle.esm.js.map +1 -1
  340. package/dist/css/themes/Avatar.css +1 -1
  341. package/dist/css/themes/AvatarGroup.css +1 -1
  342. package/dist/css/themes/Bar.css +1 -1
  343. package/dist/css/themes/Breadcrumbs.css +1 -1
  344. package/dist/css/themes/BusyIndicator.css +1 -1
  345. package/dist/css/themes/Button.css +1 -1
  346. package/dist/css/themes/Calendar.css +1 -1
  347. package/dist/css/themes/CalendarHeader.css +1 -1
  348. package/dist/css/themes/CalendarLegend.css +1 -1
  349. package/dist/css/themes/CalendarLegendItem.css +1 -1
  350. package/dist/css/themes/Card.css +1 -1
  351. package/dist/css/themes/CardHeader.css +1 -1
  352. package/dist/css/themes/Carousel.css +1 -1
  353. package/dist/css/themes/CheckBox.css +1 -1
  354. package/dist/css/themes/ColorPalette.css +1 -1
  355. package/dist/css/themes/ColorPaletteItem.css +1 -1
  356. package/dist/css/themes/ColorPalettePopover.css +1 -1
  357. package/dist/css/themes/ColorPicker.css +1 -1
  358. package/dist/css/themes/ComboBox.css +1 -1
  359. package/dist/css/themes/DatePicker.css +1 -1
  360. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  361. package/dist/css/themes/DayPicker.css +1 -1
  362. package/dist/css/themes/Dialog.css +1 -1
  363. package/dist/css/themes/FileUploader.css +1 -1
  364. package/dist/css/themes/Form.css +1 -1
  365. package/dist/css/themes/FormItem.css +1 -1
  366. package/dist/css/themes/FormLabelSpan.css +1 -1
  367. package/dist/css/themes/GrowingButton.css +1 -1
  368. package/dist/css/themes/Icon.css +1 -1
  369. package/dist/css/themes/Input.css +1 -1
  370. package/dist/css/themes/InputIcon.css +1 -1
  371. package/dist/css/themes/InputSharedStyles.css +1 -1
  372. package/dist/css/themes/Link.css +1 -1
  373. package/dist/css/themes/List.css +1 -1
  374. package/dist/css/themes/ListItem.css +1 -1
  375. package/dist/css/themes/ListItemBase.css +1 -1
  376. package/dist/css/themes/ListItemCustom.css +1 -1
  377. package/dist/css/themes/ListItemGroup.css +1 -1
  378. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  379. package/dist/css/themes/ListItemIcon.css +1 -1
  380. package/dist/css/themes/Menu.css +1 -1
  381. package/dist/css/themes/MenuItem.css +1 -1
  382. package/dist/css/themes/MenuSeparator.css +1 -0
  383. package/dist/css/themes/MessageStrip.css +1 -1
  384. package/dist/css/themes/MonthPicker.css +1 -1
  385. package/dist/css/themes/MultiComboBox.css +1 -1
  386. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  387. package/dist/css/themes/MultiInput.css +1 -1
  388. package/dist/css/themes/NavigationMenu.css +1 -1
  389. package/dist/css/themes/NavigationMenuItem.css +1 -1
  390. package/dist/css/themes/OptionBase.css +1 -1
  391. package/dist/css/themes/Panel.css +1 -1
  392. package/dist/css/themes/Popover.css +1 -1
  393. package/dist/css/themes/PopupsCommon.css +1 -1
  394. package/dist/css/themes/ProgressIndicator.css +1 -1
  395. package/dist/css/themes/RadioButton.css +1 -1
  396. package/dist/css/themes/RangeSlider.css +1 -1
  397. package/dist/css/themes/RatingIndicator.css +1 -1
  398. package/dist/css/themes/ResponsivePopover.css +1 -1
  399. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  400. package/dist/css/themes/SegmentedButton.css +1 -1
  401. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  402. package/dist/css/themes/Select.css +1 -1
  403. package/dist/css/themes/SliderBase.css +1 -1
  404. package/dist/css/themes/SplitButton.css +1 -1
  405. package/dist/css/themes/StepInput.css +1 -1
  406. package/dist/css/themes/SuggestionItem.css +1 -0
  407. package/dist/css/themes/SuggestionItemCustom.css +1 -0
  408. package/dist/css/themes/Suggestions.css +1 -1
  409. package/dist/css/themes/Switch.css +1 -1
  410. package/dist/css/themes/TabContainer.css +1 -1
  411. package/dist/css/themes/TabInOverflow.css +1 -1
  412. package/dist/css/themes/TabInStrip.css +1 -1
  413. package/dist/css/themes/TabSemanticIcon.css +1 -1
  414. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  415. package/dist/css/themes/Table.css +1 -1
  416. package/dist/css/themes/TableCellBase.css +1 -1
  417. package/dist/css/themes/TableHeaderRow.css +1 -1
  418. package/dist/css/themes/TableRow.css +1 -1
  419. package/dist/css/themes/TableRowBase.css +1 -1
  420. package/dist/css/themes/Tag.css +1 -1
  421. package/dist/css/themes/Text.css +1 -1
  422. package/dist/css/themes/TextArea.css +1 -1
  423. package/dist/css/themes/TimePicker.css +1 -1
  424. package/dist/css/themes/Toast.css +1 -1
  425. package/dist/css/themes/ToggleButton.css +1 -1
  426. package/dist/css/themes/Token.css +1 -1
  427. package/dist/css/themes/Tokenizer.css +1 -1
  428. package/dist/css/themes/TokenizerPopover.css +1 -1
  429. package/dist/css/themes/Toolbar.css +1 -1
  430. package/dist/css/themes/ToolbarPopover.css +1 -1
  431. package/dist/css/themes/TreeItem.css +1 -1
  432. package/dist/css/themes/ValueStateMessage.css +1 -1
  433. package/dist/css/themes/YearPicker.css +1 -1
  434. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  435. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  436. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  437. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  438. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  439. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  440. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  441. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  442. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  443. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  444. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  445. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  446. package/dist/custom-elements-internal.json +1748 -1765
  447. package/dist/custom-elements.json +1476 -1532
  448. package/dist/features/InputSuggestions.d.ts +22 -48
  449. package/dist/features/InputSuggestions.js +63 -106
  450. package/dist/features/InputSuggestions.js.map +1 -1
  451. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  452. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  453. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  454. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  455. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  456. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  457. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  458. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  459. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  460. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  461. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  462. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  463. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  464. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  465. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  466. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  467. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  468. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  469. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  470. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  471. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  472. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  473. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  474. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  475. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  476. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  477. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  478. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  479. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  480. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  481. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  482. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  483. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  484. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  485. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  486. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  487. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  488. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  489. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  490. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  491. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  492. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  493. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  494. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  495. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  496. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  497. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  498. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  499. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  500. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  501. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  502. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  503. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  504. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  505. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  506. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  507. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  508. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  509. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  510. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  511. package/dist/generated/templates/AvatarTemplate.lit.js +1 -1
  512. package/dist/generated/templates/AvatarTemplate.lit.js.map +1 -1
  513. package/dist/generated/templates/CalendarHeaderTemplate.lit.d.ts +1 -1
  514. package/dist/generated/templates/CalendarHeaderTemplate.lit.js +3 -3
  515. package/dist/generated/templates/CalendarHeaderTemplate.lit.js.map +1 -1
  516. package/dist/generated/templates/CalendarTemplate.lit.js +4 -2
  517. package/dist/generated/templates/CalendarTemplate.lit.js.map +1 -1
  518. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +1 -1
  519. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js.map +1 -1
  520. package/dist/generated/templates/ComboBoxTemplate.lit.js +1 -1
  521. package/dist/generated/templates/ComboBoxTemplate.lit.js.map +1 -1
  522. package/dist/generated/templates/InputPopoverTemplate.lit.js +8 -12
  523. package/dist/generated/templates/InputPopoverTemplate.lit.js.map +1 -1
  524. package/dist/generated/templates/InputTemplate.lit.js +8 -12
  525. package/dist/generated/templates/InputTemplate.lit.js.map +1 -1
  526. package/dist/generated/templates/ListItemStandardTemplate.lit.js +18 -20
  527. package/dist/generated/templates/ListItemStandardTemplate.lit.js.map +1 -1
  528. package/dist/generated/templates/MenuSeparatorTemplate.lit.d.ts +4 -0
  529. package/dist/generated/templates/MenuSeparatorTemplate.lit.js +5 -0
  530. package/dist/generated/templates/MenuSeparatorTemplate.lit.js.map +1 -0
  531. package/dist/generated/templates/MessageStripTemplate.lit.js +1 -1
  532. package/dist/generated/templates/MessageStripTemplate.lit.js.map +1 -1
  533. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +11 -11
  534. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js.map +1 -1
  535. package/dist/generated/templates/MultiComboBoxTemplate.lit.js +11 -11
  536. package/dist/generated/templates/MultiComboBoxTemplate.lit.js.map +1 -1
  537. package/dist/generated/templates/MultiInputTemplate.lit.js +7 -11
  538. package/dist/generated/templates/MultiInputTemplate.lit.js.map +1 -1
  539. package/dist/generated/templates/SuggestionItemCustomTemplate.lit.d.ts +4 -0
  540. package/dist/generated/templates/SuggestionItemCustomTemplate.lit.js +5 -0
  541. package/dist/generated/templates/SuggestionItemCustomTemplate.lit.js.map +1 -0
  542. package/dist/generated/templates/SuggestionItemGroupTemplate.lit.d.ts +4 -0
  543. package/dist/generated/templates/SuggestionItemGroupTemplate.lit.js +8 -0
  544. package/dist/generated/templates/SuggestionItemGroupTemplate.lit.js.map +1 -0
  545. package/dist/generated/templates/SuggestionItemTemplate.lit.d.ts +4 -0
  546. package/dist/generated/templates/SuggestionItemTemplate.lit.js +6 -0
  547. package/dist/generated/templates/SuggestionItemTemplate.lit.js.map +1 -0
  548. package/dist/generated/templates/SuggestionListItemTemplate.lit.js +21 -23
  549. package/dist/generated/templates/SuggestionListItemTemplate.lit.js.map +1 -1
  550. package/dist/generated/templates/TabContainerTemplate.lit.js +2 -2
  551. package/dist/generated/templates/TabContainerTemplate.lit.js.map +1 -1
  552. package/dist/generated/templates/TableHeaderRowTemplate.lit.js +2 -2
  553. package/dist/generated/templates/TableHeaderRowTemplate.lit.js.map +1 -1
  554. package/dist/generated/templates/TableRowTemplate.lit.js +6 -5
  555. package/dist/generated/templates/TableRowTemplate.lit.js.map +1 -1
  556. package/dist/generated/templates/TableTemplate.lit.js +6 -6
  557. package/dist/generated/templates/TableTemplate.lit.js.map +1 -1
  558. package/dist/generated/templates/ToastTemplate.lit.js +1 -1
  559. package/dist/generated/templates/ToastTemplate.lit.js.map +1 -1
  560. package/dist/generated/themes/Avatar.css.js +1 -1
  561. package/dist/generated/themes/Avatar.css.js.map +1 -1
  562. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  563. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  564. package/dist/generated/themes/Bar.css.js +1 -1
  565. package/dist/generated/themes/Bar.css.js.map +1 -1
  566. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  567. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  568. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  569. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  570. package/dist/generated/themes/Button.css.js +1 -1
  571. package/dist/generated/themes/Button.css.js.map +1 -1
  572. package/dist/generated/themes/Calendar.css.js +1 -1
  573. package/dist/generated/themes/Calendar.css.js.map +1 -1
  574. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  575. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  576. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  577. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  578. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  579. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  580. package/dist/generated/themes/Card.css.js +1 -1
  581. package/dist/generated/themes/Card.css.js.map +1 -1
  582. package/dist/generated/themes/CardHeader.css.js +1 -1
  583. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  584. package/dist/generated/themes/Carousel.css.js +1 -1
  585. package/dist/generated/themes/Carousel.css.js.map +1 -1
  586. package/dist/generated/themes/CheckBox.css.js +1 -1
  587. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  588. package/dist/generated/themes/ColorPalette.css.js +1 -1
  589. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  590. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  591. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  592. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  593. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  594. package/dist/generated/themes/ColorPicker.css.js +1 -1
  595. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  596. package/dist/generated/themes/ComboBox.css.js +1 -1
  597. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  598. package/dist/generated/themes/DatePicker.css.js +1 -1
  599. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  600. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  601. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  602. package/dist/generated/themes/DayPicker.css.js +1 -1
  603. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  604. package/dist/generated/themes/Dialog.css.js +1 -1
  605. package/dist/generated/themes/Dialog.css.js.map +1 -1
  606. package/dist/generated/themes/FileUploader.css.js +1 -1
  607. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  608. package/dist/generated/themes/Form.css.js +1 -1
  609. package/dist/generated/themes/Form.css.js.map +1 -1
  610. package/dist/generated/themes/FormItem.css.js +1 -1
  611. package/dist/generated/themes/FormItem.css.js.map +1 -1
  612. package/dist/generated/themes/FormLabelSpan.css.js +1 -1
  613. package/dist/generated/themes/FormLabelSpan.css.js.map +1 -1
  614. package/dist/generated/themes/GrowingButton.css.js +1 -1
  615. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  616. package/dist/generated/themes/Icon.css.js +1 -1
  617. package/dist/generated/themes/Icon.css.js.map +1 -1
  618. package/dist/generated/themes/Input.css.js +1 -1
  619. package/dist/generated/themes/Input.css.js.map +1 -1
  620. package/dist/generated/themes/InputIcon.css.js +1 -1
  621. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  622. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  623. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  624. package/dist/generated/themes/Link.css.js +1 -1
  625. package/dist/generated/themes/Link.css.js.map +1 -1
  626. package/dist/generated/themes/List.css.js +1 -1
  627. package/dist/generated/themes/List.css.js.map +1 -1
  628. package/dist/generated/themes/ListItem.css.js +1 -1
  629. package/dist/generated/themes/ListItem.css.js.map +1 -1
  630. package/dist/generated/themes/ListItemBase.css.js +1 -1
  631. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  632. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  633. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  634. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  635. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  636. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  637. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  638. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  639. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  640. package/dist/generated/themes/Menu.css.js +1 -1
  641. package/dist/generated/themes/Menu.css.js.map +1 -1
  642. package/dist/generated/themes/MenuItem.css.js +1 -1
  643. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  644. package/dist/generated/themes/MenuSeparator.css.d.ts +3 -0
  645. package/dist/generated/themes/MenuSeparator.css.js +9 -0
  646. package/dist/generated/themes/MenuSeparator.css.js.map +1 -0
  647. package/dist/generated/themes/MessageStrip.css.js +1 -1
  648. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  649. package/dist/generated/themes/MonthPicker.css.js +1 -1
  650. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  651. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  652. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  653. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  654. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  655. package/dist/generated/themes/MultiInput.css.js +1 -1
  656. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  657. package/dist/generated/themes/NavigationMenu.css.js +1 -1
  658. package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
  659. package/dist/generated/themes/NavigationMenuItem.css.js +1 -1
  660. package/dist/generated/themes/NavigationMenuItem.css.js.map +1 -1
  661. package/dist/generated/themes/OptionBase.css.js +1 -1
  662. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  663. package/dist/generated/themes/Panel.css.js +1 -1
  664. package/dist/generated/themes/Panel.css.js.map +1 -1
  665. package/dist/generated/themes/Popover.css.js +1 -1
  666. package/dist/generated/themes/Popover.css.js.map +1 -1
  667. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  668. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  669. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  670. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  671. package/dist/generated/themes/RadioButton.css.js +1 -1
  672. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  673. package/dist/generated/themes/RangeSlider.css.js +1 -1
  674. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  675. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  676. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  677. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  678. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  679. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  680. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  681. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  682. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  683. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  684. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  685. package/dist/generated/themes/Select.css.js +1 -1
  686. package/dist/generated/themes/Select.css.js.map +1 -1
  687. package/dist/generated/themes/SliderBase.css.js +1 -1
  688. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  689. package/dist/generated/themes/SplitButton.css.js +1 -1
  690. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  691. package/dist/generated/themes/StepInput.css.js +1 -1
  692. package/dist/generated/themes/StepInput.css.js.map +1 -1
  693. package/dist/generated/themes/SuggestionItem.css.d.ts +3 -0
  694. package/dist/generated/themes/SuggestionItem.css.js +9 -0
  695. package/dist/generated/themes/SuggestionItem.css.js.map +1 -0
  696. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +3 -0
  697. package/dist/generated/themes/SuggestionItemCustom.css.js +9 -0
  698. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -0
  699. package/dist/generated/themes/Suggestions.css.js +1 -1
  700. package/dist/generated/themes/Suggestions.css.js.map +1 -1
  701. package/dist/generated/themes/Switch.css.js +1 -1
  702. package/dist/generated/themes/Switch.css.js.map +1 -1
  703. package/dist/generated/themes/TabContainer.css.js +1 -1
  704. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  705. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  706. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  707. package/dist/generated/themes/TabInStrip.css.js +1 -1
  708. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  709. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  710. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  711. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  712. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  713. package/dist/generated/themes/Table.css.js +1 -1
  714. package/dist/generated/themes/Table.css.js.map +1 -1
  715. package/dist/generated/themes/TableCellBase.css.js +1 -1
  716. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  717. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  718. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  719. package/dist/generated/themes/TableRow.css.js +1 -1
  720. package/dist/generated/themes/TableRow.css.js.map +1 -1
  721. package/dist/generated/themes/TableRowBase.css.js +1 -1
  722. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  723. package/dist/generated/themes/Tag.css.js +1 -1
  724. package/dist/generated/themes/Tag.css.js.map +1 -1
  725. package/dist/generated/themes/Text.css.js +1 -1
  726. package/dist/generated/themes/Text.css.js.map +1 -1
  727. package/dist/generated/themes/TextArea.css.js +1 -1
  728. package/dist/generated/themes/TextArea.css.js.map +1 -1
  729. package/dist/generated/themes/TimePicker.css.js +1 -1
  730. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  731. package/dist/generated/themes/Toast.css.js +1 -1
  732. package/dist/generated/themes/Toast.css.js.map +1 -1
  733. package/dist/generated/themes/ToggleButton.css.js +1 -1
  734. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  735. package/dist/generated/themes/Token.css.js +1 -1
  736. package/dist/generated/themes/Token.css.js.map +1 -1
  737. package/dist/generated/themes/Tokenizer.css.js +1 -1
  738. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  739. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  740. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  741. package/dist/generated/themes/Toolbar.css.js +1 -1
  742. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  743. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  744. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  745. package/dist/generated/themes/TreeItem.css.js +1 -1
  746. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  747. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  748. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  749. package/dist/generated/themes/YearPicker.css.js +1 -1
  750. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  751. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  752. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  753. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  754. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  755. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  756. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  757. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  758. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  759. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  760. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  761. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  762. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  763. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  764. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  765. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  766. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  767. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  768. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  769. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  770. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  771. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  772. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  773. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  774. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  775. package/dist/types/IconMode.d.ts +4 -4
  776. package/dist/types/IconMode.js +4 -4
  777. package/dist/types/IconMode.js.map +1 -1
  778. package/dist/types/{ListSeparators.d.ts → ListSeparator.d.ts} +3 -2
  779. package/dist/types/{ListSeparators.js → ListSeparator.js} +9 -8
  780. package/dist/types/ListSeparator.js.map +1 -0
  781. package/dist/vscode.html-custom-data.json +64 -80
  782. package/dist/web-types.json +511 -518
  783. package/package.json +11 -9
  784. package/src/Avatar.hbs +1 -1
  785. package/src/Calendar.hbs +3 -19
  786. package/src/CalendarHeader.hbs +10 -10
  787. package/src/ComboBoxPopover.hbs +1 -1
  788. package/src/InputPopover.hbs +1 -22
  789. package/src/ListItemStandard.hbs +3 -9
  790. package/src/MenuSeparator.hbs +6 -0
  791. package/src/MessageStrip.hbs +1 -1
  792. package/src/MultiComboBox.hbs +1 -0
  793. package/src/MultiComboBoxPopover.hbs +14 -7
  794. package/src/SuggestionItem.hbs +14 -0
  795. package/src/SuggestionItemCustom.hbs +5 -0
  796. package/src/SuggestionItemGroup.hbs +1 -0
  797. package/src/TabContainer.hbs +2 -2
  798. package/src/Table.hbs +6 -12
  799. package/src/TableHeaderRow.hbs +2 -1
  800. package/src/TableRow.hbs +6 -2
  801. package/src/Toast.hbs +1 -1
  802. package/src/i18n/messagebundle_ar.properties +15 -2
  803. package/src/i18n/messagebundle_bg.properties +15 -2
  804. package/src/i18n/messagebundle_ca.properties +31 -18
  805. package/src/i18n/messagebundle_cnr.properties +15 -2
  806. package/src/i18n/messagebundle_cs.properties +15 -2
  807. package/src/i18n/messagebundle_cy.properties +25 -12
  808. package/src/i18n/messagebundle_da.properties +15 -2
  809. package/src/i18n/messagebundle_de.properties +18 -5
  810. package/src/i18n/messagebundle_el.properties +15 -2
  811. package/src/i18n/messagebundle_en.properties +15 -2
  812. package/src/i18n/messagebundle_en_GB.properties +15 -2
  813. package/src/i18n/messagebundle_en_US_saprigi.properties +15 -2
  814. package/src/i18n/messagebundle_es.properties +15 -2
  815. package/src/i18n/messagebundle_es_MX.properties +18 -5
  816. package/src/i18n/messagebundle_et.properties +15 -2
  817. package/src/i18n/messagebundle_fi.properties +15 -2
  818. package/src/i18n/messagebundle_fr.properties +33 -20
  819. package/src/i18n/messagebundle_fr_CA.properties +33 -20
  820. package/src/i18n/messagebundle_hi.properties +15 -2
  821. package/src/i18n/messagebundle_hr.properties +15 -2
  822. package/src/i18n/messagebundle_hu.properties +15 -2
  823. package/src/i18n/messagebundle_id.properties +15 -2
  824. package/src/i18n/messagebundle_it.properties +19 -6
  825. package/src/i18n/messagebundle_iw.properties +17 -4
  826. package/src/i18n/messagebundle_ja.properties +15 -2
  827. package/src/i18n/messagebundle_kk.properties +19 -6
  828. package/src/i18n/messagebundle_ko.properties +18 -5
  829. package/src/i18n/messagebundle_lt.properties +15 -2
  830. package/src/i18n/messagebundle_lv.properties +15 -2
  831. package/src/i18n/messagebundle_mk.properties +15 -2
  832. package/src/i18n/messagebundle_ms.properties +15 -2
  833. package/src/i18n/messagebundle_nl.properties +15 -2
  834. package/src/i18n/messagebundle_no.properties +15 -2
  835. package/src/i18n/messagebundle_pl.properties +15 -2
  836. package/src/i18n/messagebundle_pt.properties +15 -2
  837. package/src/i18n/messagebundle_pt_PT.properties +15 -2
  838. package/src/i18n/messagebundle_ro.properties +15 -2
  839. package/src/i18n/messagebundle_ru.properties +15 -2
  840. package/src/i18n/messagebundle_sh.properties +15 -2
  841. package/src/i18n/messagebundle_sk.properties +15 -2
  842. package/src/i18n/messagebundle_sl.properties +15 -2
  843. package/src/i18n/messagebundle_sr.properties +15 -2
  844. package/src/i18n/messagebundle_sv.properties +15 -2
  845. package/src/i18n/messagebundle_th.properties +16 -3
  846. package/src/i18n/messagebundle_tr.properties +16 -3
  847. package/src/i18n/messagebundle_uk.properties +16 -3
  848. package/src/i18n/messagebundle_vi.properties +15 -2
  849. package/src/i18n/messagebundle_zh_CN.properties +15 -2
  850. package/src/i18n/messagebundle_zh_TW.properties +15 -2
  851. package/src/themes/Calendar.css +6 -5
  852. package/src/themes/CheckBox.css +3 -8
  853. package/src/themes/Link.css +2 -2
  854. package/src/themes/ListItem.css +9 -13
  855. package/src/themes/MenuItem.css +0 -4
  856. package/src/themes/MenuSeparator.css +11 -0
  857. package/src/themes/SegmentedButtonItem.css +2 -1
  858. package/src/themes/SuggestionItem.css +14 -0
  859. package/src/themes/SuggestionItemCustom.css +3 -0
  860. package/src/themes/Suggestions.css +0 -5
  861. package/src/themes/TabContainer.css +1 -1
  862. package/src/themes/Table.css +3 -2
  863. package/src/themes/TableRow.css +15 -1
  864. package/src/themes/Tag.css +5 -75
  865. package/src/themes/TextArea.css +2 -2
  866. package/src/themes/base/CheckBox-parameters.css +2 -4
  867. package/src/themes/base/Table-parameters.css +1 -0
  868. package/src/themes/base/Tag-parameters.css +2 -1
  869. package/src/themes/base/sizes-parameters.css +1 -2
  870. package/src/themes/sap_fiori_3/CheckBox-parameters.css +0 -3
  871. package/src/themes/sap_fiori_3/Tag-parameters.css +5 -0
  872. package/src/themes/sap_fiori_3/parameters-bundle.css +1 -1
  873. package/src/themes/sap_fiori_3_dark/CheckBox-parameters.css +0 -3
  874. package/src/themes/sap_fiori_3_hcb/CheckBox-parameters.css +1 -0
  875. package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  876. package/src/themes/sap_fiori_3_hcb/sizes-parameters.css +4 -0
  877. package/src/themes/sap_fiori_3_hcw/CheckBox-parameters.css +1 -0
  878. package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  879. package/src/themes/sap_fiori_3_hcw/sizes-parameters.css +4 -0
  880. package/src/themes/sap_horizon/CheckBox-parameters.css +0 -1
  881. package/src/themes/sap_horizon/RatingIndicator-parameters.css +5 -3
  882. package/src/themes/sap_horizon/sizes-parameters.css +3 -0
  883. package/src/themes/sap_horizon_dark/CheckBox-parameters.css +0 -1
  884. package/src/themes/sap_horizon_dark/RatingIndicator-parameters.css +5 -3
  885. package/src/themes/sap_horizon_dark/sizes-parameters.css +3 -0
  886. package/src/themes/sap_horizon_exp/CheckBox-parameters.css +0 -1
  887. package/src/themes/sap_horizon_hcb/CheckBox-parameters.css +1 -1
  888. package/src/themes/sap_horizon_hcb/RatingIndicator-parameters.css +5 -3
  889. package/src/themes/sap_horizon_hcb/sizes-parameters.css +4 -0
  890. package/src/themes/sap_horizon_hcw/CheckBox-parameters.css +1 -1
  891. package/src/themes/sap_horizon_hcw/RatingIndicator-parameters.css +5 -3
  892. package/src/themes/sap_horizon_hcw/sizes-parameters.css +4 -0
  893. package/dist/CalendarHeader.d.ts +0 -80
  894. package/dist/CalendarHeader.js +0 -160
  895. package/dist/CalendarHeader.js.map +0 -1
  896. package/dist/SuggestionGroupItem.d.ts +0 -28
  897. package/dist/SuggestionGroupItem.js +0 -43
  898. package/dist/SuggestionGroupItem.js.map +0 -1
  899. package/dist/styles/Icon.css +0 -33
  900. package/dist/styles/Icon.module.css +0 -33
  901. package/dist/types/ListSeparators.js.map +0 -1
  902. package/src/styles/Icon.module.css +0 -1
package/dist/Menu.js CHANGED
@@ -10,19 +10,19 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
10
10
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
11
11
  import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
12
12
  import event from "@ui5/webcomponents-base/dist/decorators/event.js";
13
- import DOMReference from "@ui5/webcomponents-base/dist/types/DOMReference.js";
14
13
  import { isLeft, isRight, isEnter, } from "@ui5/webcomponents-base/dist/Keys.js";
15
14
  import { isPhone, isDesktop, } from "@ui5/webcomponents-base/dist/Device.js";
16
15
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
17
16
  import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
18
17
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
19
- import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
18
+ import DOMReferenceConverter from "@ui5/webcomponents-base/dist/converters/DOMReference.js";
20
19
  import ResponsivePopover from "./ResponsivePopover.js";
21
20
  import Button from "./Button.js";
22
21
  import List from "./List.js";
23
22
  import Icon from "./Icon.js";
24
23
  import BusyIndicator from "./BusyIndicator.js";
25
24
  import MenuItem from "./MenuItem.js";
25
+ import MenuSeparator from "./MenuSeparator.js";
26
26
  import menuTemplate from "./generated/templates/MenuTemplate.lit.js";
27
27
  import { MENU_CLOSE_BUTTON_ARIA_LABEL, } from "./generated/i18n/i18n-defaults.js";
28
28
  // Styles
@@ -35,9 +35,13 @@ const MENU_OPEN_DELAY = 300;
35
35
  *
36
36
  * `ui5-menu` component represents a hierarchical menu structure.
37
37
  *
38
- * ### Usage
38
+ * ### Structure
39
+ *
40
+ * The `ui5-menu` can hold two types of entities:
41
+ *
42
+ * - `ui5-menu-item` components
43
+ * - `ui5-menu-separator` - used to separate menu items with a line
39
44
  *
40
- * `ui5-menu` contains `ui5-menu-item` components.
41
45
  * An arbitrary hierarchy structure can be represented by recursively nesting menu items.
42
46
  *
43
47
  * ### Keyboard Handling
@@ -61,6 +65,30 @@ const MENU_OPEN_DELAY = 300;
61
65
  * @public
62
66
  */
63
67
  let Menu = Menu_1 = class Menu extends UI5Element {
68
+ constructor() {
69
+ super(...arguments);
70
+ /**
71
+ * Indicates if the menu is open
72
+ * @public
73
+ * @default false
74
+ * @since 1.10.0
75
+ */
76
+ this.open = false;
77
+ /**
78
+ * Defines if a loading indicator would be displayed inside the corresponding ui5-menu popover.
79
+ * @default false
80
+ * @public
81
+ * @since 1.13.0
82
+ */
83
+ this.loading = false;
84
+ /**
85
+ * Defines the delay in milliseconds, after which the loading indicator will be displayed inside the corresponding ui5-menu popover..
86
+ * @default 1000
87
+ * @public
88
+ * @since 1.13.0
89
+ */
90
+ this.loadingDelay = 1000;
91
+ }
64
92
  static async onDefine() {
65
93
  Menu_1.i18nBundle = await getI18nBundle("@ui5/webcomponents");
66
94
  }
@@ -76,9 +104,12 @@ let Menu = Menu_1 = class Menu extends UI5Element {
76
104
  get _popover() {
77
105
  return this.shadowRoot.querySelector("[ui5-responsive-popover]");
78
106
  }
107
+ get _menuItems() {
108
+ return this.items.filter((item) => !item.isSeparator);
109
+ }
79
110
  onBeforeRendering() {
80
- const siblingsWithIcon = this.items.some(item => !!item.icon);
81
- this.items.forEach(item => {
111
+ const siblingsWithIcon = this._menuItems.some(menuItem => !!menuItem.icon);
112
+ this._menuItems.forEach(item => {
82
113
  item._siblingsWithIcon = siblingsWithIcon;
83
114
  });
84
115
  }
@@ -99,7 +130,7 @@ let Menu = Menu_1 = class Menu extends UI5Element {
99
130
  }
100
131
  _closeItemSubMenu(item) {
101
132
  if (item && item._popover) {
102
- const openedSibling = item.items.find(menuItem => menuItem._popover && menuItem._popover.open);
133
+ const openedSibling = item._menuItems.find(menuItem => menuItem._popover && menuItem._popover.open);
103
134
  if (openedSibling) {
104
135
  this._closeItemSubMenu(openedSibling);
105
136
  }
@@ -111,16 +142,18 @@ let Menu = Menu_1 = class Menu extends UI5Element {
111
142
  if (isDesktop()) {
112
143
  // respect mouseover only on desktop
113
144
  const item = e.target;
114
- item.focus();
115
- // Opens submenu with 300ms delay
116
- this._startOpenTimeout(item);
145
+ if (item.hasAttribute("ui5-menu-item")) {
146
+ item.focus();
147
+ // Opens submenu with 300ms delay
148
+ this._startOpenTimeout(item);
149
+ }
117
150
  }
118
151
  }
119
152
  _startOpenTimeout(item) {
120
153
  clearTimeout(this._timeout);
121
154
  this._timeout = setTimeout(() => {
122
155
  const opener = item.parentElement;
123
- const openedSibling = opener && opener.items.find(menuItem => menuItem._popover && menuItem._popover.open);
156
+ const openedSibling = opener && opener._menuItems.find(menuItem => menuItem._popover && menuItem._popover.open);
124
157
  if (openedSibling) {
125
158
  this._closeItemSubMenu(openedSibling);
126
159
  }
@@ -132,7 +165,7 @@ let Menu = Menu_1 = class Menu extends UI5Element {
132
165
  if (!item._popover) {
133
166
  const prevented = !this.fireEvent("item-click", {
134
167
  "item": item,
135
- "text": item.text,
168
+ "text": item.text || "",
136
169
  }, true, false);
137
170
  if (!prevented && this._popover) {
138
171
  item.fireEvent("close-menu", {});
@@ -171,7 +204,7 @@ let Menu = Menu_1 = class Menu extends UI5Element {
171
204
  }
172
205
  _afterPopoverOpen() {
173
206
  this.open = true;
174
- this.items[0]?.focus();
207
+ this._menuItems[0]?.focus();
175
208
  this.fireEvent("open", {}, false, true);
176
209
  }
177
210
  _beforePopoverClose(e) {
@@ -196,10 +229,10 @@ __decorate([
196
229
  property({ type: Boolean })
197
230
  ], Menu.prototype, "loading", void 0);
198
231
  __decorate([
199
- property({ validator: Integer, defaultValue: 1000 })
232
+ property({ type: Number })
200
233
  ], Menu.prototype, "loadingDelay", void 0);
201
234
  __decorate([
202
- property({ validator: DOMReference, defaultValue: "" })
235
+ property({ converter: DOMReferenceConverter })
203
236
  ], Menu.prototype, "opener", void 0);
204
237
  __decorate([
205
238
  slot({ "default": true, type: HTMLElement, invalidateOnChildChange: true })
@@ -215,6 +248,7 @@ Menu = Menu_1 = __decorate([
215
248
  Button,
216
249
  List,
217
250
  MenuItem,
251
+ MenuSeparator,
218
252
  Icon,
219
253
  BusyIndicator,
220
254
  ],
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 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 Icon from \"./Icon.js\";\nimport BusyIndicator from \"./BusyIndicator.js\";\nimport MenuItem from \"./MenuItem.js\";\nimport type {\n\tListItemClickEventDetail,\n} from \"./List.js\";\nimport menuTemplate from \"./generated/templates/MenuTemplate.lit.js\";\nimport {\n\tMENU_CLOSE_BUTTON_ARIA_LABEL,\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\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 * ### 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\tstyles: menuCss,\n\ttemplate: menuTemplate,\n\tdependencies: [\n\t\tResponsivePopover,\n\t\tButton,\n\t\tList,\n\t\tMenuItem,\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(\"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(\"close\")\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\tloading!: boolean;\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({ validator: Integer, defaultValue: 1000 })\n\tloadingDelay!: number;\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 \"\"\n\t * @since 1.10.0\n\t */\n\t@property({ validator: DOMReference, defaultValue: \"\" })\n\topener!: HTMLElement | string;\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 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\tonBeforeRendering() {\n\t\tconst siblingsWithIcon = this.items.some(item => !!item.icon);\n\n\t\tthis.items.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.fireEvent<MenuBeforeOpenEventDetail>(\"before-open\", {\n\t\t\titem,\n\t\t}, false, false);\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.items.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\titem.focus();\n\n\t\t\t// Opens submenu with 300ms delay\n\t\t\tthis._startOpenTimeout(item);\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\tconst opener = item.parentElement as MenuItem | Menu;\n\t\t\tconst openedSibling = opener && opener.items.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.fireEvent<MenuItemClickEventDetail>(\"item-click\", {\n\t\t\t\t\"item\": item,\n\t\t\t\t\"text\": item.text,\n\t\t\t}, true, false);\n\n\t\t\tif (!prevented && this._popover) {\n\t\t\t\titem.fireEvent(\"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\tif (!isLeft(e) && !isRight(e)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst shouldCloseMenu = this.isRtl ? isRight(e) : isLeft(e);\n\t\tconst shouldOpenMenu = this.isRtl ? isLeft(e) : isRight(e);\n\t\tconst item = e.target as MenuItem;\n\t\tconst parentElement = item.parentElement as MenuItem;\n\n\t\tif (isEnter(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\t\tif (shouldOpenMenu) {\n\t\t\tthis._openItemSubMenu(item);\n\t\t} else if (shouldCloseMenu && parentElement.hasAttribute(\"ui5-menu-item\") && parentElement._popover) {\n\t\t\tparentElement._popover.open = false;\n\t\t\tparentElement.selected = false;\n\t\t\t(parentElement._popover.opener as HTMLElement)?.focus();\n\t\t}\n\t}\n\n\t_beforePopoverOpen(e: CustomEvent) {\n\t\tconst prevented = !this.fireEvent<MenuBeforeOpenEventDetail>(\"before-open\", {}, true, true);\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.items[0]?.focus();\n\t\tthis.fireEvent(\"open\", {}, false, true);\n\t}\n\n\t_beforePopoverClose(e: CustomEvent<ResponsivePopoverBeforeCloseEventDetail>) {\n\t\tconst prevented = !this.fireEvent<MenuBeforeCloseEventDetail>(\"before-close\", { escPressed: e.detail.escPressed }, true, true);\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.fireEvent(\"close\", {}, false, true);\n\t}\n}\n\nMenu.define();\n\nexport default Menu;\nexport type {\n\tMenuItemClickEventDetail,\n\tMenuBeforeCloseEventDetail,\n\tMenuBeforeOpenEventDetail,\n};\n"]}
1
+ {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../src/Menu.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,EACN,MAAM,EACN,OAAO,EACP,OAAO,GACP,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACN,OAAO,EACP,SAAS,GACT,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAE3E,OAAO,mDAAmD,CAAC;AAC3D,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAE7E,OAAO,qBAAqB,MAAM,yDAAyD,CAAC;AAC5F,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAI/C,OAAO,YAAY,MAAM,2CAA2C,CAAC;AACrE,OAAO,EACN,4BAA4B,GAC5B,MAAM,mCAAmC,CAAC;AAE3C,SAAS;AACT,OAAO,OAAO,MAAM,gCAAgC,CAAC;AAErD,MAAM,eAAe,GAAG,GAAG,CAAC;AAoB5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAgGH,IAAM,IAAI,YAAV,MAAM,IAAK,SAAQ,UAAU;IAA7B;;QASC;;;;;WAKG;QAEH,SAAI,GAAG,KAAK,CAAC;QAEb;;;;;WAKG;QAEH,YAAO,GAAG,KAAK,CAAC;QAEhB;;;;;WAKG;QAEH,iBAAY,GAAG,IAAI,CAAC;IAuLrB,CAAC;IA9JA,MAAM,CAAC,KAAK,CAAC,QAAQ;QACpB,MAAI,CAAC,UAAU,GAAG,MAAM,aAAa,CAAC,oBAAoB,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC;IACpC,CAAC;IAED,IAAI,UAAU;QACb,OAAO,MAAI,CAAC,UAAU,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,OAAO;QACV,OAAO,OAAO,EAAE,CAAC;IAClB,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAoB,0BAA0B,CAAE,CAAC;IACvF,CAAC;IAED,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAoB,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzE,CAAC;IAED,iBAAiB;QAChB,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE3E,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC9B,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;QAC3C,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,MAAM;QACL,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACnB,CAAC;IAED,gBAAgB,CAAC,IAAc;QAC9B,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE5B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YACzC,OAAO;SACP;QAED,IAAI,CAAC,SAAS,CAA4B,aAAa,EAAE;YACxD,IAAI;SACJ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACjB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,iBAAiB,CAAC,IAAc;QAC/B,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACpG,IAAI,aAAa,EAAE;gBAClB,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;aACtC;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SACtB;IACF,CAAC;IAED,cAAc,CAAC,CAAa;QAC3B,IAAI,SAAS,EAAE,EAAE;YAChB,oCAAoC;YACpC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAkB,CAAC;YAElC,IAAI,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE;gBACvC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAEb,iCAAiC;gBACjC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;aAC7B;SACD;IACF,CAAC;IAED,iBAAiB,CAAC,IAAc;QAC/B,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE5B,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAgC,CAAC;YACrD,MAAM,aAAa,GAAG,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAChH,IAAI,aAAa,EAAE;gBAClB,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;aACtC;YAED,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,EAAE,eAAe,CAAC,CAAC;IACrB,CAAC;IAED,UAAU,CAAC,CAAwC;QAClD,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAgB,CAAC;QAEvC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnB,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAA2B,YAAY,EAAE;gBACzE,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;aACvB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAEhB,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAChC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;aACjC;SACD;aAAM;YACN,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SAC5B;IACF,CAAC;IAED,YAAY,CAAC,CAAgB;QAC5B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC9B,OAAO;SACP;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,CAAC,CAAC,MAAkB,CAAC;QAClC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAyB,CAAC;QAErD,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,CAAC,CAAC,cAAc,EAAE,CAAC;SACnB;QACD,IAAI,cAAc,EAAE;YACnB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SAC5B;aAAM,IAAI,eAAe,IAAI,aAAa,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,aAAa,CAAC,QAAQ,EAAE;YACpG,aAAa,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;YACpC,aAAa,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC9B,aAAa,CAAC,QAAQ,CAAC,MAAsB,EAAE,KAAK,EAAE,CAAC;SACxD;IACF,CAAC;IAED,kBAAkB,CAAC,CAAc;QAChC,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAA4B,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAE5F,IAAI,SAAS,EAAE;YACd,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,CAAC,CAAC,cAAc,EAAE,CAAC;SACnB;IACF,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,mBAAmB,CAAC,CAAuD;QAC1E,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAA6B,cAAc,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAE/H,IAAI,SAAS,EAAE;YACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,CAAC,CAAC,cAAc,EAAE,CAAC;SACnB;IACF,CAAC;IAED,kBAAkB;QACjB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;CACD,CAAA;AAlNA;IADC,QAAQ,EAAE;wCACS;AASpB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kCACf;AASb;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;qCACZ;AAShB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CACP;AAWpB;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;oCACjB;AAS9B;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC;mCACnD;AAtDpB,IAAI;IA/FT,aAAa,CAAC;QACd,GAAG,EAAE,UAAU;QACf,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE,YAAY;QACtB,YAAY,EAAE;YACb,iBAAiB;YACjB,MAAM;YACN,IAAI;YACJ,QAAQ;YACR,aAAa;YACb,IAAI;YACJ,aAAa;SACb;KACD,CAAC;IAEF;;;;;;;;OAQG;;IACF,KAAK,CAA2B,YAAY,EAAE;QAC9C,MAAM,EAAE;YACP;;eAEG;YACH,IAAI,EAAE;gBACL,IAAI,EAAE,WAAW;aACjB;YACD;;eAEG;YACH,IAAI,EAAE;gBACL,IAAI,EAAE,MAAM;aACZ;SACD;KACD,CAAC;IAEF;;;;;;;;OAQG;;IACF,KAAK,CAA4B,aAAa,EAAE;QAChD,MAAM,EAAE;YACP;;;eAGG;YACH,IAAI,EAAE;gBACL,IAAI,EAAE,WAAW;aACjB;SACD;KACD,CAAC;IAEF;;;;OAIG;;IACF,KAAK,CAAC,MAAM,CAAC;IAEd;;;;;;OAMG;;IACF,KAAK,CAA6B,cAAc,EAAE;QAClD,MAAM,EAAE;YACP;;eAEG;YACH,UAAU,EAAE;gBACX,IAAI,EAAE,OAAO;aACb;SACD;KACD,CAAC;IAEF;;;;OAIG;;IACF,KAAK,CAAC,OAAO,CAAC;GAET,IAAI,CAyNT;AAED,IAAI,CAAC,MAAM,EAAE,CAAC;AAEd,eAAe,IAAI,CAAC","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 {\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 DOMReferenceConverter from \"@ui5/webcomponents-base/dist/converters/DOMReference.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport type { ResponsivePopoverBeforeCloseEventDetail } from \"./ResponsivePopover.js\";\nimport Button from \"./Button.js\";\nimport List from \"./List.js\";\nimport Icon from \"./Icon.js\";\nimport BusyIndicator from \"./BusyIndicator.js\";\nimport MenuItem from \"./MenuItem.js\";\nimport MenuSeparator from \"./MenuSeparator.js\";\nimport type {\n\tListItemClickEventDetail,\n} from \"./List.js\";\nimport menuTemplate from \"./generated/templates/MenuTemplate.lit.js\";\nimport {\n\tMENU_CLOSE_BUTTON_ARIA_LABEL,\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 * 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\tstyles: menuCss,\n\ttemplate: menuTemplate,\n\tdependencies: [\n\t\tResponsivePopover,\n\t\tButton,\n\t\tList,\n\t\tMenuItem,\n\t\tMenuSeparator,\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(\"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(\"close\")\n\nclass Menu extends UI5Element {\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 * 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\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 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\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.fireEvent<MenuBeforeOpenEventDetail>(\"before-open\", {\n\t\t\titem,\n\t\t}, false, false);\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 (item.hasAttribute(\"ui5-menu-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\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.fireEvent<MenuItemClickEventDetail>(\"item-click\", {\n\t\t\t\t\"item\": item,\n\t\t\t\t\"text\": item.text || \"\",\n\t\t\t}, true, false);\n\n\t\t\tif (!prevented && this._popover) {\n\t\t\t\titem.fireEvent(\"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\tif (!isLeft(e) && !isRight(e)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst shouldCloseMenu = this.isRtl ? isRight(e) : isLeft(e);\n\t\tconst shouldOpenMenu = this.isRtl ? isLeft(e) : isRight(e);\n\t\tconst item = e.target as MenuItem;\n\t\tconst parentElement = item.parentElement as MenuItem;\n\n\t\tif (isEnter(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\t\tif (shouldOpenMenu) {\n\t\t\tthis._openItemSubMenu(item);\n\t\t} else if (shouldCloseMenu && parentElement.hasAttribute(\"ui5-menu-item\") && parentElement._popover) {\n\t\t\tparentElement._popover.open = false;\n\t\t\tparentElement.selected = false;\n\t\t\t(parentElement._popover.opener as HTMLElement)?.focus();\n\t\t}\n\t}\n\n\t_beforePopoverOpen(e: CustomEvent) {\n\t\tconst prevented = !this.fireEvent<MenuBeforeOpenEventDetail>(\"before-open\", {}, true, true);\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._menuItems[0]?.focus();\n\t\tthis.fireEvent(\"open\", {}, false, true);\n\t}\n\n\t_beforePopoverClose(e: CustomEvent<ResponsivePopoverBeforeCloseEventDetail>) {\n\t\tconst prevented = !this.fireEvent<MenuBeforeCloseEventDetail>(\"before-close\", { escPressed: e.detail.escPressed }, true, true);\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.fireEvent(\"close\", {}, false, true);\n\t}\n}\n\nMenu.define();\n\nexport default Menu;\nexport type {\n\tMenuItemClickEventDetail,\n\tMenuBeforeCloseEventDetail,\n\tMenuBeforeOpenEventDetail,\n\tIMenuItem,\n};\n"]}
@@ -2,6 +2,7 @@ import ListItem from "./ListItem.js";
2
2
  import ResponsivePopover from "./ResponsivePopover.js";
3
3
  import type PopoverPlacement from "./types/PopoverPlacement.js";
4
4
  import type { ResponsivePopoverBeforeCloseEventDetail } from "./ResponsivePopover.js";
5
+ import type { IMenuItem } from "./Menu.js";
5
6
  type MenuBeforeOpenEventDetail = {
6
7
  item?: MenuItem;
7
8
  };
@@ -27,17 +28,18 @@ type MenuBeforeCloseEventDetail = {
27
28
  * `import "@ui5/webcomponents/dist/MenuItem.js";`
28
29
  * @constructor
29
30
  * @extends ListItem
31
+ * @implements {IMenuItem}
30
32
  * @since 1.3.0
31
33
  * @public
32
34
  */
33
- declare class MenuItem extends ListItem {
35
+ declare class MenuItem extends ListItem implements IMenuItem {
34
36
  static onDefine(): Promise<void>;
35
37
  /**
36
38
  * Defines the text of the tree item.
37
- * @default ""
39
+ * @default undefined
38
40
  * @public
39
41
  */
40
- text: string;
42
+ text?: string;
41
43
  /**
42
44
  * Defines the `additionalText`, displayed in the end of the menu item.
43
45
  *
@@ -46,11 +48,11 @@ declare class MenuItem extends ListItem {
46
48
  *
47
49
  * The priority of what will be displayed at the end of the menu item is as follows:
48
50
  * sub-menu arrow (if there are items added in `items` slot) -> components added in `endContent` -> text set to `additionalText`.
49
- * @default ""
51
+ * @default undefined
50
52
  * @public
51
53
  * @since 1.8.0
52
54
  */
53
- additionalText: string;
55
+ additionalText?: string;
54
56
  /**
55
57
  * Defines the icon to be displayed as graphical element within the component.
56
58
  * The SAP-icons font provides numerous options.
@@ -58,16 +60,10 @@ declare class MenuItem extends ListItem {
58
60
  * **Example:**
59
61
  *
60
62
  * See all the available icons in the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).
61
- * @default ""
63
+ * @default undefined
62
64
  * @public
63
65
  */
64
- icon: string;
65
- /**
66
- * Defines whether a visual separator should be rendered before the item.
67
- * @default false
68
- * @public
69
- */
70
- startsSection: boolean;
66
+ icon?: string;
71
67
  /**
72
68
  * Defines whether `ui5-menu-item` is in disabled state.
73
69
  *
@@ -94,18 +90,18 @@ declare class MenuItem extends ListItem {
94
90
  loadingDelay: number;
95
91
  /**
96
92
  * Defines the accessible ARIA name of the component.
97
- * @default ""
93
+ * @default undefined
98
94
  * @public
99
95
  * @since 1.7.0
100
96
  */
101
- accessibleName: string;
97
+ accessibleName?: string;
102
98
  /**
103
99
  * Defines the text of the tooltip for the menu item.
104
- * @default ""
100
+ * @default undefined
105
101
  * @public
106
102
  * @since 1.23.0
107
103
  */
108
- tooltip: string;
104
+ tooltip?: string;
109
105
  /**
110
106
  * Indicates whether any of the element siblings have icon.
111
107
  */
@@ -113,7 +109,9 @@ declare class MenuItem extends ListItem {
113
109
  /**
114
110
  * Defines the items of this component.
115
111
  *
116
- * **Note:** If there are items added to this slot, an arrow will be displayed at the end
112
+ * **Note:** The slot can hold `ui5-menu-item` and `ui5-menu-separator` items.
113
+ *
114
+ * If there are items added to this slot, an arrow will be displayed at the end
117
115
  * of the item in order to indicate that there are items added. In that case components added
118
116
  * to `endContent` slot or `additionalText` content will not be displayed.
119
117
  *
@@ -121,7 +119,7 @@ declare class MenuItem extends ListItem {
121
119
  * sub-menu arrow (if there are items added in `items` slot) -> components added in `endContent` -> text set to `additionalText`.
122
120
  * @public
123
121
  */
124
- items: Array<MenuItem>;
122
+ items: Array<IMenuItem>;
125
123
  /**
126
124
  * Defines the components that should be displayed at the end of the menu item.
127
125
  *
@@ -143,10 +141,11 @@ declare class MenuItem extends ListItem {
143
141
  get hasIcon(): boolean;
144
142
  get isSubMenuOpen(): boolean;
145
143
  get ariaLabelledByText(): string;
146
- get menuHeaderTextPhone(): string;
144
+ get menuHeaderTextPhone(): string | undefined;
147
145
  get isPhone(): boolean;
148
146
  get labelBack(): string;
149
147
  get labelClose(): string;
148
+ get isSeparator(): boolean;
150
149
  onBeforeRendering(): void;
151
150
  get _focusable(): boolean;
152
151
  get _accInfo(): {
@@ -166,6 +165,7 @@ declare class MenuItem extends ListItem {
166
165
  tooltip?: string | undefined;
167
166
  };
168
167
  get _popover(): ResponsivePopover;
168
+ get _menuItems(): MenuItem[];
169
169
  _closeAll(): void;
170
170
  _close(): void;
171
171
  _beforePopoverOpen(e: CustomEvent): void;
package/dist/MenuItem.js CHANGED
@@ -8,7 +8,6 @@ var MenuItem_1;
8
8
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
9
9
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
10
10
  import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
11
- import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
12
11
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
13
12
  import { isPhone } from "@ui5/webcomponents-base/dist/Device.js";
14
13
  import AriaHasPopup from "@ui5/webcomponents-base/dist/types/AriaHasPopup.js";
@@ -40,10 +39,42 @@ import menuItemCss from "./generated/themes/MenuItem.css.js";
40
39
  * `import "@ui5/webcomponents/dist/MenuItem.js";`
41
40
  * @constructor
42
41
  * @extends ListItem
42
+ * @implements {IMenuItem}
43
43
  * @since 1.3.0
44
44
  * @public
45
45
  */
46
46
  let MenuItem = MenuItem_1 = class MenuItem extends ListItem {
47
+ constructor() {
48
+ super(...arguments);
49
+ /**
50
+ * Defines whether `ui5-menu-item` is in disabled state.
51
+ *
52
+ * **Note:** A disabled `ui5-menu-item` is noninteractive.
53
+ * @default false
54
+ * @public
55
+ */
56
+ this.disabled = false;
57
+ /**
58
+ * Defines the delay in milliseconds, after which the loading indicator will be displayed inside the corresponding ui5-menu popover.
59
+ *
60
+ * **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.
61
+ * @default false
62
+ * @public
63
+ * @since 1.13.0
64
+ */
65
+ this.loading = false;
66
+ /**
67
+ * Defines the delay in milliseconds, after which the loading indicator will be displayed inside the corresponding ui5-menu popover.
68
+ * @default 1000
69
+ * @public
70
+ * @since 1.13.0
71
+ */
72
+ this.loadingDelay = 1000;
73
+ /**
74
+ * Indicates whether any of the element siblings have icon.
75
+ */
76
+ this._siblingsWithIcon = false;
77
+ }
47
78
  static async onDefine() {
48
79
  MenuItem_1.i18nBundle = await getI18nBundle("@ui5/webcomponents");
49
80
  }
@@ -80,9 +111,12 @@ let MenuItem = MenuItem_1 = class MenuItem extends ListItem {
80
111
  get labelClose() {
81
112
  return MenuItem_1.i18nBundle.getText(MENU_CLOSE_BUTTON_ARIA_LABEL);
82
113
  }
114
+ get isSeparator() {
115
+ return false;
116
+ }
83
117
  onBeforeRendering() {
84
- const siblingsWithIcon = this.items.some(item => !!item.icon);
85
- this.items.forEach(item => {
118
+ const siblingsWithIcon = this._menuItems.some(menuItem => !!menuItem.icon);
119
+ this._menuItems.forEach(item => {
86
120
  item._siblingsWithIcon = siblingsWithIcon;
87
121
  });
88
122
  }
@@ -99,6 +133,9 @@ let MenuItem = MenuItem_1 = class MenuItem extends ListItem {
99
133
  get _popover() {
100
134
  return this.shadowRoot.querySelector("[ui5-responsive-popover]");
101
135
  }
136
+ get _menuItems() {
137
+ return this.items.filter((item) => !item.isSeparator);
138
+ }
102
139
  _closeAll() {
103
140
  if (this._popover) {
104
141
  this._popover.open = false;
@@ -146,9 +183,6 @@ __decorate([
146
183
  __decorate([
147
184
  property()
148
185
  ], MenuItem.prototype, "icon", void 0);
149
- __decorate([
150
- property({ type: Boolean })
151
- ], MenuItem.prototype, "startsSection", void 0);
152
186
  __decorate([
153
187
  property({ type: Boolean })
154
188
  ], MenuItem.prototype, "disabled", void 0);
@@ -156,13 +190,13 @@ __decorate([
156
190
  property({ type: Boolean })
157
191
  ], MenuItem.prototype, "loading", void 0);
158
192
  __decorate([
159
- property({ validator: Integer, defaultValue: 1000 })
193
+ property({ type: Number })
160
194
  ], MenuItem.prototype, "loadingDelay", void 0);
161
195
  __decorate([
162
196
  property()
163
197
  ], MenuItem.prototype, "accessibleName", void 0);
164
198
  __decorate([
165
- property({ type: String })
199
+ property()
166
200
  ], MenuItem.prototype, "tooltip", void 0);
167
201
  __decorate([
168
202
  property({ type: Boolean, noAttribute: true })
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.js","sourceRoot":"","sources":["../src/MenuItem.ts"],"names":[],"mappings":"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","sourcesContent":["import 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 Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport AriaHasPopup from \"@ui5/webcomponents-base/dist/types/AriaHasPopup.js\";\nimport ListItem from \"./ListItem.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport type PopoverPlacement from \"./types/PopoverPlacement.js\";\nimport List from \"./List.js\";\nimport Icon from \"./Icon.js\";\nimport BusyIndicator from \"./BusyIndicator.js\";\nimport MenuItemTemplate from \"./generated/templates/MenuItemTemplate.lit.js\";\nimport {\n\tMENU_BACK_BUTTON_ARIA_LABEL,\n\tMENU_CLOSE_BUTTON_ARIA_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport type { ResponsivePopoverBeforeCloseEventDetail } from \"./ResponsivePopover.js\";\n\n// Styles\nimport menuItemCss from \"./generated/themes/MenuItem.css.js\";\n\ntype MenuBeforeOpenEventDetail = { item?: MenuItem };\ntype MenuBeforeCloseEventDetail = { escPressed: boolean };\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 * @since 1.3.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-menu-item\",\n\ttemplate: MenuItemTemplate,\n\tstyles: [ListItem.styles, menuItemCss],\n\tdependencies: [...ListItem.dependencies, ResponsivePopover, List, BusyIndicator, Icon],\n})\nclass MenuItem extends ListItem {\n\tstatic async onDefine() {\n\t\tMenuItem.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\t/**\n\t * Defines the text of the tree item.\n\t * @default \"\"\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 \"\"\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 \"\"\n\t * @public\n\t */\n\t@property()\n\ticon!: string;\n\n\t/**\n\t * Defines whether a visual separator should be rendered before the item.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tstartsSection!: boolean;\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!: boolean;\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!: boolean;\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({ validator: Integer, defaultValue: 1000 })\n\tloadingDelay!: number;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default \"\"\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 \"\"\n\t * @public\n\t * @since 1.23.0\n\t */\n\t@property({ type: String })\n\ttooltip!: string;\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!: boolean;\n\n\t/**\n\t * Defines the items of this component.\n\t *\n\t * **Note:** 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<MenuItem>;\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\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);\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 ariaLabelledByText() {\n\t\treturn `${this.text} ${this.accessibleName}`.trim();\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\tonBeforeRendering() {\n\t\tconst siblingsWithIcon = this.items.some(item => !!item.icon);\n\n\t\tthis.items.forEach(item => {\n\t\t\titem._siblingsWithIcon = siblingsWithIcon;\n\t\t});\n\t}\n\n\tget _focusable() {\n\t\treturn true;\n\t}\n\n\tget _accInfo() {\n\t\tconst accInfoSettings = {\n\t\t\trole: \"menuitem\",\n\t\t\tariaHaspopup: this.hasSubmenu ? AriaHasPopup.Menu.toLowerCase() as Lowercase<AriaHasPopup> : 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\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.fireEvent(\"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.fireEvent<MenuBeforeOpenEventDetail>(\"before-open\", {}, true, false);\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.fireEvent(\"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\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}\n\t}\n\n\t_afterPopoverClose() {\n\t\tthis.fireEvent(\"close\", {}, false, false);\n\t}\n}\n\nMenuItem.define();\n\nexport default MenuItem;\n\nexport type {\n\tMenuBeforeCloseEventDetail,\n\tMenuBeforeOpenEventDetail,\n};\n"]}
1
+ {"version":3,"file":"MenuItem.js","sourceRoot":"","sources":["../src/MenuItem.ts"],"names":[],"mappings":"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","sourcesContent":["import 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 { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport AriaHasPopup from \"@ui5/webcomponents-base/dist/types/AriaHasPopup.js\";\nimport ListItem from \"./ListItem.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport type PopoverPlacement from \"./types/PopoverPlacement.js\";\nimport List from \"./List.js\";\nimport Icon from \"./Icon.js\";\nimport BusyIndicator from \"./BusyIndicator.js\";\nimport MenuItemTemplate from \"./generated/templates/MenuItemTemplate.lit.js\";\nimport {\n\tMENU_BACK_BUTTON_ARIA_LABEL,\n\tMENU_CLOSE_BUTTON_ARIA_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport type { ResponsivePopoverBeforeCloseEventDetail } from \"./ResponsivePopover.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\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\ttemplate: MenuItemTemplate,\n\tstyles: [ListItem.styles, menuItemCss],\n\tdependencies: [...ListItem.dependencies, ResponsivePopover, List, BusyIndicator, Icon],\n})\nclass MenuItem extends ListItem implements IMenuItem {\n\tstatic async onDefine() {\n\t\tMenuItem.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\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 * 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\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);\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 ariaLabelledByText() {\n\t\treturn `${this.text} ${this.accessibleName}`.trim();\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 isSeparator(): boolean {\n\t\treturn false;\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\tget _focusable() {\n\t\treturn true;\n\t}\n\n\tget _accInfo() {\n\t\tconst accInfoSettings = {\n\t\t\trole: \"menuitem\",\n\t\t\tariaHaspopup: this.hasSubmenu ? AriaHasPopup.Menu.toLowerCase() as Lowercase<AriaHasPopup> : 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.fireEvent(\"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.fireEvent<MenuBeforeOpenEventDetail>(\"before-open\", {}, true, false);\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.fireEvent(\"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\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}\n\t}\n\n\t_afterPopoverClose() {\n\t\tthis.fireEvent(\"close\", {}, false, false);\n\t}\n}\n\nMenuItem.define();\n\nexport default MenuItem;\n\nexport type {\n\tMenuBeforeCloseEventDetail,\n\tMenuBeforeOpenEventDetail,\n};\n"]}
@@ -0,0 +1,25 @@
1
+ import type { ClassMap } from "@ui5/webcomponents-base/dist/types.js";
2
+ import ListItemBase from "./ListItemBase.js";
3
+ import type { IMenuItem } from "./Menu.js";
4
+ /**
5
+ * @class
6
+ * The `ui5-menu-separator` represents a horizontal line to separate menu items inside a `ui5-menu`.
7
+ * @constructor
8
+ * @extends ListItemBase
9
+ * @implements {IMenuItem}
10
+ * @public
11
+ * @since 2.0
12
+ */
13
+ declare class MenuSeparator extends ListItemBase implements IMenuItem {
14
+ get isSeparator(): boolean;
15
+ get classes(): ClassMap;
16
+ /**
17
+ * @override
18
+ */
19
+ get _focusable(): boolean;
20
+ /**
21
+ * @override
22
+ */
23
+ get _pressable(): boolean;
24
+ }
25
+ export default MenuSeparator;
@@ -0,0 +1,59 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
8
+ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
9
+ import menuSeparatorTemplate from "./generated/templates/MenuSeparatorTemplate.lit.js";
10
+ import menuSeparatorCss from "./generated/themes/MenuSeparator.css.js";
11
+ import ListItemBase from "./ListItemBase.js";
12
+ import ListItemCustom from "./ListItemCustom.js";
13
+ /**
14
+ * @class
15
+ * The `ui5-menu-separator` represents a horizontal line to separate menu items inside a `ui5-menu`.
16
+ * @constructor
17
+ * @extends ListItemBase
18
+ * @implements {IMenuItem}
19
+ * @public
20
+ * @since 2.0
21
+ */
22
+ let MenuSeparator = class MenuSeparator extends ListItemBase {
23
+ get isSeparator() {
24
+ return true;
25
+ }
26
+ get classes() {
27
+ return {
28
+ main: {
29
+ "ui5-menu-separator": true,
30
+ },
31
+ };
32
+ }
33
+ /**
34
+ * @override
35
+ */
36
+ get _focusable() {
37
+ return false;
38
+ }
39
+ /**
40
+ * @override
41
+ */
42
+ get _pressable() {
43
+ return false;
44
+ }
45
+ };
46
+ MenuSeparator = __decorate([
47
+ customElement({
48
+ tag: "ui5-menu-separator",
49
+ renderer: litRender,
50
+ styles: [menuSeparatorCss],
51
+ template: menuSeparatorTemplate,
52
+ dependencies: [
53
+ ListItemCustom,
54
+ ],
55
+ })
56
+ ], MenuSeparator);
57
+ MenuSeparator.define();
58
+ export default MenuSeparator;
59
+ //# sourceMappingURL=MenuSeparator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuSeparator.js","sourceRoot":"","sources":["../src/MenuSeparator.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAE7E,OAAO,qBAAqB,MAAM,oDAAoD,CAAC;AACvF,OAAO,gBAAgB,MAAM,yCAAyC,CAAC;AACvE,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD;;;;;;;;GAQG;AAWH,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,YAAY;IACvC,IAAI,WAAW;QACd,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,OAAO;QACV,OAAO;YACN,IAAI,EAAE;gBACL,oBAAoB,EAAE,IAAI;aAC1B;SACD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACb,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACb,OAAO,KAAK,CAAC;IACd,CAAC;CACD,CAAA;AA1BK,aAAa;IAVlB,aAAa,CAAC;QACd,GAAG,EAAE,oBAAoB;QACzB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,CAAC,gBAAgB,CAAC;QAC1B,QAAQ,EAAE,qBAAqB;QAC/B,YAAY,EAAE;YACb,cAAc;SACd;KACD,CAAC;GAEI,aAAa,CA0BlB;AACD,aAAa,CAAC,MAAM,EAAE,CAAC;AAEvB,eAAe,aAAa,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport type { ClassMap } from \"@ui5/webcomponents-base/dist/types.js\";\nimport menuSeparatorTemplate from \"./generated/templates/MenuSeparatorTemplate.lit.js\";\nimport menuSeparatorCss from \"./generated/themes/MenuSeparator.css.js\";\nimport ListItemBase from \"./ListItemBase.js\";\nimport ListItemCustom from \"./ListItemCustom.js\";\nimport type { IMenuItem } from \"./Menu.js\";\n/**\n * @class\n * The `ui5-menu-separator` represents a horizontal line to separate menu items inside a `ui5-menu`.\n * @constructor\n * @extends ListItemBase\n * @implements {IMenuItem}\n * @public\n * @since 2.0\n */\n@customElement({\n\ttag: \"ui5-menu-separator\",\n\trenderer: litRender,\n\tstyles: [menuSeparatorCss],\n\ttemplate: menuSeparatorTemplate,\n\tdependencies: [\n\t\tListItemCustom,\n\t],\n})\n\nclass MenuSeparator extends ListItemBase implements IMenuItem {\n\tget isSeparator() {\n\t\treturn true;\n\t}\n\n\tget classes(): ClassMap {\n\t\treturn {\n\t\t\tmain: {\n\t\t\t\t\"ui5-menu-separator\": true,\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @override\n\t */\n\tget _focusable() {\n\t\treturn false;\n\t}\n\n\t/**\n\t * @override\n\t */\n\tget _pressable() {\n\t\treturn false;\n\t}\n}\nMenuSeparator.define();\n\nexport default MenuSeparator;\n"]}
@@ -101,6 +101,7 @@ declare class MessageStrip extends UI5Element {
101
101
  static onDefine(): Promise<void>;
102
102
  static designAnnouncementMappings(): DesignTypeAnnouncemnt;
103
103
  get hiddenText(): string;
104
+ get shouldHideIcon(): boolean;
104
105
  get _closeButtonText(): string;
105
106
  get _closableText(): string;
106
107
  get classes(): ClassMap;