@ui5/webcomponents 2.10.0-rc.0 → 2.10.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (518) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/cypress/specs/Button.cy.tsx +21 -4
  3. package/cypress/specs/Carousel.cy.tsx +565 -11
  4. package/cypress/specs/Carousel.mobile.cy.tsx +67 -0
  5. package/cypress/specs/Form.cy.tsx +21 -0
  6. package/cypress/specs/Input.cy.tsx +80 -26
  7. package/cypress/specs/List.cy.tsx +80 -1
  8. package/cypress/specs/List.mobile.cy.tsx +31 -0
  9. package/cypress/specs/Popover.cy.tsx +44 -10
  10. package/cypress/specs/Table.cy.tsx +183 -0
  11. package/cypress/specs/TableGrowing.cy.tsx +55 -7
  12. package/cypress/specs/TableRowActions.cy.tsx +21 -6
  13. package/cypress/specs/TableSelection.cy.tsx +1 -1
  14. package/cypress/specs/TableSelections.cy.tsx +1 -1
  15. package/cypress/specs/TableUtils.cy.tsx +38 -1
  16. package/cypress/support/commands.ts +4 -0
  17. package/dist/.tsbuildinfo +1 -1
  18. package/dist/Button.d.ts +0 -2
  19. package/dist/Button.js +8 -9
  20. package/dist/Button.js.map +1 -1
  21. package/dist/ButtonTemplate.js +3 -4
  22. package/dist/ButtonTemplate.js.map +1 -1
  23. package/dist/Form.d.ts +1 -0
  24. package/dist/Form.js +7 -0
  25. package/dist/Form.js.map +1 -1
  26. package/dist/Input.js +1 -0
  27. package/dist/Input.js.map +1 -1
  28. package/dist/List.d.ts +8 -3
  29. package/dist/List.js +19 -13
  30. package/dist/List.js.map +1 -1
  31. package/dist/ListItem.d.ts +6 -0
  32. package/dist/ListItem.js +9 -0
  33. package/dist/ListItem.js.map +1 -1
  34. package/dist/ListItemStandard.d.ts +44 -5
  35. package/dist/ListItemStandard.js +65 -8
  36. package/dist/ListItemStandard.js.map +1 -1
  37. package/dist/ListItemStandardTemplate.js +33 -1
  38. package/dist/ListItemStandardTemplate.js.map +1 -1
  39. package/dist/Menu.d.ts +9 -2
  40. package/dist/Menu.js +11 -2
  41. package/dist/Menu.js.map +1 -1
  42. package/dist/MenuTemplate.js +1 -1
  43. package/dist/MenuTemplate.js.map +1 -1
  44. package/dist/Popover.js +2 -2
  45. package/dist/Popover.js.map +1 -1
  46. package/dist/Table.js +24 -22
  47. package/dist/Table.js.map +1 -1
  48. package/dist/TableGrowing.js +1 -2
  49. package/dist/TableGrowing.js.map +1 -1
  50. package/dist/TableHeaderCell.d.ts +15 -13
  51. package/dist/TableHeaderCell.js +0 -35
  52. package/dist/TableHeaderCell.js.map +1 -1
  53. package/dist/TableRow.js +1 -0
  54. package/dist/TableRow.js.map +1 -1
  55. package/dist/TableTemplate.js +1 -1
  56. package/dist/TableTemplate.js.map +1 -1
  57. package/dist/TableUtils.d.ts +8 -1
  58. package/dist/TableUtils.js +12 -1
  59. package/dist/TableUtils.js.map +1 -1
  60. package/dist/Tokenizer.d.ts +4 -0
  61. package/dist/Tokenizer.js.map +1 -1
  62. package/dist/Tree.js +3 -0
  63. package/dist/Tree.js.map +1 -1
  64. package/dist/css/themes/Avatar.css +1 -1
  65. package/dist/css/themes/AvatarGroup.css +1 -1
  66. package/dist/css/themes/Bar.css +1 -1
  67. package/dist/css/themes/Breadcrumbs.css +1 -1
  68. package/dist/css/themes/BusyIndicator.css +1 -1
  69. package/dist/css/themes/Button.css +1 -1
  70. package/dist/css/themes/ButtonBadge.css +1 -1
  71. package/dist/css/themes/Calendar.css +1 -1
  72. package/dist/css/themes/CalendarHeader.css +1 -1
  73. package/dist/css/themes/CalendarLegend.css +1 -1
  74. package/dist/css/themes/CalendarLegendItem.css +1 -1
  75. package/dist/css/themes/Card.css +1 -1
  76. package/dist/css/themes/CardHeader.css +1 -1
  77. package/dist/css/themes/Carousel.css +1 -1
  78. package/dist/css/themes/CheckBox.css +1 -1
  79. package/dist/css/themes/ColorPalette.css +1 -1
  80. package/dist/css/themes/ColorPaletteItem.css +1 -1
  81. package/dist/css/themes/ColorPalettePopover.css +1 -1
  82. package/dist/css/themes/ColorPicker.css +1 -1
  83. package/dist/css/themes/ComboBox.css +1 -1
  84. package/dist/css/themes/ComboBoxItem.css +1 -1
  85. package/dist/css/themes/DatePicker.css +1 -1
  86. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  87. package/dist/css/themes/DayPicker.css +1 -1
  88. package/dist/css/themes/Dialog.css +1 -1
  89. package/dist/css/themes/FileUploader.css +1 -1
  90. package/dist/css/themes/Form.css +1 -1
  91. package/dist/css/themes/FormItem.css +1 -1
  92. package/dist/css/themes/FormItemSpan.css +1 -1
  93. package/dist/css/themes/GrowingButton.css +1 -1
  94. package/dist/css/themes/Icon.css +1 -1
  95. package/dist/css/themes/Input.css +1 -1
  96. package/dist/css/themes/InputIcon.css +1 -1
  97. package/dist/css/themes/InputSharedStyles.css +1 -1
  98. package/dist/css/themes/Link.css +1 -1
  99. package/dist/css/themes/List.css +1 -1
  100. package/dist/css/themes/ListItem.css +1 -1
  101. package/dist/css/themes/ListItemBase.css +1 -1
  102. package/dist/css/themes/ListItemCustom.css +1 -1
  103. package/dist/css/themes/ListItemGroup.css +1 -1
  104. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  105. package/dist/css/themes/ListItemIcon.css +1 -1
  106. package/dist/css/themes/Menu.css +1 -1
  107. package/dist/css/themes/MenuItem.css +1 -1
  108. package/dist/css/themes/MessageStrip.css +1 -1
  109. package/dist/css/themes/MonthPicker.css +1 -1
  110. package/dist/css/themes/MultiComboBox.css +1 -1
  111. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  112. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  113. package/dist/css/themes/MultiInput.css +1 -1
  114. package/dist/css/themes/OptionBase.css +1 -1
  115. package/dist/css/themes/Panel.css +1 -1
  116. package/dist/css/themes/Popover.css +1 -1
  117. package/dist/css/themes/PopupsCommon.css +1 -1
  118. package/dist/css/themes/ProgressIndicator.css +1 -1
  119. package/dist/css/themes/RadioButton.css +1 -1
  120. package/dist/css/themes/RangeSlider.css +1 -1
  121. package/dist/css/themes/RatingIndicator.css +1 -1
  122. package/dist/css/themes/ResponsivePopover.css +1 -1
  123. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  124. package/dist/css/themes/SegmentedButton.css +1 -1
  125. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  126. package/dist/css/themes/Select.css +1 -1
  127. package/dist/css/themes/SliderBase.css +1 -1
  128. package/dist/css/themes/SplitButton.css +1 -1
  129. package/dist/css/themes/StepInput.css +1 -1
  130. package/dist/css/themes/SuggestionItem.css +1 -1
  131. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  132. package/dist/css/themes/Switch.css +1 -1
  133. package/dist/css/themes/TabContainer.css +1 -1
  134. package/dist/css/themes/TabInOverflow.css +1 -1
  135. package/dist/css/themes/TabInStrip.css +1 -1
  136. package/dist/css/themes/TabSemanticIcon.css +1 -1
  137. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  138. package/dist/css/themes/Table.css +1 -1
  139. package/dist/css/themes/TableCellBase.css +1 -1
  140. package/dist/css/themes/TableHeaderRow.css +1 -1
  141. package/dist/css/themes/TableRow.css +1 -1
  142. package/dist/css/themes/TableRowActionBase.css +1 -1
  143. package/dist/css/themes/TableRowBase.css +1 -1
  144. package/dist/css/themes/Tag.css +1 -1
  145. package/dist/css/themes/Text.css +1 -1
  146. package/dist/css/themes/TextArea.css +1 -1
  147. package/dist/css/themes/TimePicker.css +1 -1
  148. package/dist/css/themes/Toast.css +1 -1
  149. package/dist/css/themes/ToggleButton.css +1 -1
  150. package/dist/css/themes/Token.css +1 -1
  151. package/dist/css/themes/Tokenizer.css +1 -1
  152. package/dist/css/themes/TokenizerPopover.css +1 -1
  153. package/dist/css/themes/Toolbar.css +1 -1
  154. package/dist/css/themes/ToolbarPopover.css +1 -1
  155. package/dist/css/themes/TreeItem.css +1 -1
  156. package/dist/css/themes/ValueStateMessage.css +1 -1
  157. package/dist/css/themes/YearPicker.css +1 -1
  158. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  159. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  160. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  161. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  162. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  163. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  164. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  165. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  166. package/dist/custom-elements-internal.json +126 -42
  167. package/dist/custom-elements.json +112 -42
  168. package/dist/features/ListItemStandardExpandableText.d.ts +1 -0
  169. package/dist/features/ListItemStandardExpandableText.js +5 -0
  170. package/dist/features/ListItemStandardExpandableText.js.map +1 -0
  171. package/dist/features/ListItemStandardExpandableTextTemplate.d.ts +10 -0
  172. package/dist/features/ListItemStandardExpandableTextTemplate.js +14 -0
  173. package/dist/features/ListItemStandardExpandableTextTemplate.js.map +1 -0
  174. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  175. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  176. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  177. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  178. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  179. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  180. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  181. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  182. package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
  183. package/dist/generated/i18n/i18n-defaults.js +2 -1
  184. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  185. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  186. package/dist/generated/themes/Avatar.css.js +1 -1
  187. package/dist/generated/themes/Avatar.css.js.map +1 -1
  188. package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
  189. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  190. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  191. package/dist/generated/themes/Bar.css.d.ts +1 -1
  192. package/dist/generated/themes/Bar.css.js +1 -1
  193. package/dist/generated/themes/Bar.css.js.map +1 -1
  194. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  195. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  196. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  197. package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
  198. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  199. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  200. package/dist/generated/themes/Button.css.d.ts +1 -1
  201. package/dist/generated/themes/Button.css.js +1 -1
  202. package/dist/generated/themes/Button.css.js.map +1 -1
  203. package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
  204. package/dist/generated/themes/ButtonBadge.css.js +1 -1
  205. package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
  206. package/dist/generated/themes/Calendar.css.d.ts +1 -1
  207. package/dist/generated/themes/Calendar.css.js +1 -1
  208. package/dist/generated/themes/Calendar.css.js.map +1 -1
  209. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  210. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  211. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  212. package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
  213. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  214. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  215. package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
  216. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  217. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  218. package/dist/generated/themes/Card.css.d.ts +1 -1
  219. package/dist/generated/themes/Card.css.js +1 -1
  220. package/dist/generated/themes/Card.css.js.map +1 -1
  221. package/dist/generated/themes/CardHeader.css.d.ts +1 -1
  222. package/dist/generated/themes/CardHeader.css.js +1 -1
  223. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  224. package/dist/generated/themes/Carousel.css.d.ts +1 -1
  225. package/dist/generated/themes/Carousel.css.js +1 -1
  226. package/dist/generated/themes/Carousel.css.js.map +1 -1
  227. package/dist/generated/themes/CheckBox.css.d.ts +1 -1
  228. package/dist/generated/themes/CheckBox.css.js +1 -1
  229. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  230. package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
  231. package/dist/generated/themes/ColorPalette.css.js +1 -1
  232. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  233. package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
  234. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  235. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  236. package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
  237. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  238. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  239. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  240. package/dist/generated/themes/ColorPicker.css.js +1 -1
  241. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  242. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  243. package/dist/generated/themes/ComboBox.css.js +1 -1
  244. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  245. package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
  246. package/dist/generated/themes/ComboBoxItem.css.js +1 -1
  247. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
  248. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  249. package/dist/generated/themes/DatePicker.css.js +1 -1
  250. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  251. package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
  252. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  253. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  254. package/dist/generated/themes/DayPicker.css.d.ts +1 -1
  255. package/dist/generated/themes/DayPicker.css.js +1 -1
  256. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  257. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  258. package/dist/generated/themes/Dialog.css.js +1 -1
  259. package/dist/generated/themes/Dialog.css.js.map +1 -1
  260. package/dist/generated/themes/FileUploader.css.d.ts +1 -1
  261. package/dist/generated/themes/FileUploader.css.js +1 -1
  262. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  263. package/dist/generated/themes/Form.css.d.ts +1 -1
  264. package/dist/generated/themes/Form.css.js +1 -1
  265. package/dist/generated/themes/Form.css.js.map +1 -1
  266. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  267. package/dist/generated/themes/FormItem.css.js +1 -1
  268. package/dist/generated/themes/FormItem.css.js.map +1 -1
  269. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  270. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  271. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  272. package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
  273. package/dist/generated/themes/GrowingButton.css.js +1 -1
  274. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  275. package/dist/generated/themes/Icon.css.d.ts +1 -1
  276. package/dist/generated/themes/Icon.css.js +1 -1
  277. package/dist/generated/themes/Icon.css.js.map +1 -1
  278. package/dist/generated/themes/Input.css.d.ts +1 -1
  279. package/dist/generated/themes/Input.css.js +1 -1
  280. package/dist/generated/themes/Input.css.js.map +1 -1
  281. package/dist/generated/themes/InputIcon.css.d.ts +1 -1
  282. package/dist/generated/themes/InputIcon.css.js +1 -1
  283. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  284. package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
  285. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  286. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  287. package/dist/generated/themes/Link.css.d.ts +1 -1
  288. package/dist/generated/themes/Link.css.js +1 -1
  289. package/dist/generated/themes/Link.css.js.map +1 -1
  290. package/dist/generated/themes/List.css.d.ts +1 -1
  291. package/dist/generated/themes/List.css.js +1 -1
  292. package/dist/generated/themes/List.css.js.map +1 -1
  293. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  294. package/dist/generated/themes/ListItem.css.js +1 -1
  295. package/dist/generated/themes/ListItem.css.js.map +1 -1
  296. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  297. package/dist/generated/themes/ListItemBase.css.js +1 -1
  298. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  299. package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
  300. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  301. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  302. package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
  303. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  304. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  305. package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
  306. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  307. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  308. package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
  309. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  310. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  311. package/dist/generated/themes/Menu.css.d.ts +1 -1
  312. package/dist/generated/themes/Menu.css.js +1 -1
  313. package/dist/generated/themes/Menu.css.js.map +1 -1
  314. package/dist/generated/themes/MenuItem.css.d.ts +1 -1
  315. package/dist/generated/themes/MenuItem.css.js +1 -1
  316. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  317. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  318. package/dist/generated/themes/MessageStrip.css.js +1 -1
  319. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  320. package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
  321. package/dist/generated/themes/MonthPicker.css.js +1 -1
  322. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  323. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  324. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  325. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  326. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
  327. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  328. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  329. package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
  330. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  331. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  332. package/dist/generated/themes/MultiInput.css.d.ts +1 -1
  333. package/dist/generated/themes/MultiInput.css.js +1 -1
  334. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  335. package/dist/generated/themes/OptionBase.css.d.ts +1 -1
  336. package/dist/generated/themes/OptionBase.css.js +1 -1
  337. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  338. package/dist/generated/themes/Panel.css.d.ts +1 -1
  339. package/dist/generated/themes/Panel.css.js +1 -1
  340. package/dist/generated/themes/Panel.css.js.map +1 -1
  341. package/dist/generated/themes/Popover.css.d.ts +1 -1
  342. package/dist/generated/themes/Popover.css.js +1 -1
  343. package/dist/generated/themes/Popover.css.js.map +1 -1
  344. package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
  345. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  346. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  347. package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
  348. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  349. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  350. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  351. package/dist/generated/themes/RadioButton.css.js +1 -1
  352. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  353. package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
  354. package/dist/generated/themes/RangeSlider.css.js +1 -1
  355. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  356. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  357. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  358. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  359. package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
  360. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  361. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  362. package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
  363. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  364. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  365. package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
  366. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  367. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  368. package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
  369. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  370. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  371. package/dist/generated/themes/Select.css.d.ts +1 -1
  372. package/dist/generated/themes/Select.css.js +1 -1
  373. package/dist/generated/themes/Select.css.js.map +1 -1
  374. package/dist/generated/themes/SliderBase.css.d.ts +1 -1
  375. package/dist/generated/themes/SliderBase.css.js +1 -1
  376. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  377. package/dist/generated/themes/SplitButton.css.d.ts +1 -1
  378. package/dist/generated/themes/SplitButton.css.js +1 -1
  379. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  380. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  381. package/dist/generated/themes/StepInput.css.js +1 -1
  382. package/dist/generated/themes/StepInput.css.js.map +1 -1
  383. package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
  384. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  385. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  386. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
  387. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  388. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  389. package/dist/generated/themes/Switch.css.d.ts +1 -1
  390. package/dist/generated/themes/Switch.css.js +1 -1
  391. package/dist/generated/themes/Switch.css.js.map +1 -1
  392. package/dist/generated/themes/TabContainer.css.d.ts +1 -1
  393. package/dist/generated/themes/TabContainer.css.js +1 -1
  394. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  395. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  396. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  397. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  398. package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
  399. package/dist/generated/themes/TabInStrip.css.js +1 -1
  400. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  401. package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
  402. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  403. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  404. package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
  405. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  406. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  407. package/dist/generated/themes/Table.css.d.ts +1 -1
  408. package/dist/generated/themes/Table.css.js +1 -1
  409. package/dist/generated/themes/Table.css.js.map +1 -1
  410. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  411. package/dist/generated/themes/TableCellBase.css.js +1 -1
  412. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  413. package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
  414. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  415. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  416. package/dist/generated/themes/TableRow.css.d.ts +1 -1
  417. package/dist/generated/themes/TableRow.css.js +1 -1
  418. package/dist/generated/themes/TableRow.css.js.map +1 -1
  419. package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
  420. package/dist/generated/themes/TableRowActionBase.css.js +1 -1
  421. package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
  422. package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
  423. package/dist/generated/themes/TableRowBase.css.js +1 -1
  424. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  425. package/dist/generated/themes/Tag.css.d.ts +1 -1
  426. package/dist/generated/themes/Tag.css.js +1 -1
  427. package/dist/generated/themes/Tag.css.js.map +1 -1
  428. package/dist/generated/themes/Text.css.d.ts +1 -1
  429. package/dist/generated/themes/Text.css.js +1 -1
  430. package/dist/generated/themes/Text.css.js.map +1 -1
  431. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  432. package/dist/generated/themes/TextArea.css.js +1 -1
  433. package/dist/generated/themes/TextArea.css.js.map +1 -1
  434. package/dist/generated/themes/TimePicker.css.d.ts +1 -1
  435. package/dist/generated/themes/TimePicker.css.js +1 -1
  436. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  437. package/dist/generated/themes/Toast.css.d.ts +1 -1
  438. package/dist/generated/themes/Toast.css.js +1 -1
  439. package/dist/generated/themes/Toast.css.js.map +1 -1
  440. package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
  441. package/dist/generated/themes/ToggleButton.css.js +1 -1
  442. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  443. package/dist/generated/themes/Token.css.d.ts +1 -1
  444. package/dist/generated/themes/Token.css.js +1 -1
  445. package/dist/generated/themes/Token.css.js.map +1 -1
  446. package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
  447. package/dist/generated/themes/Tokenizer.css.js +1 -1
  448. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  449. package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
  450. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  451. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  452. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  453. package/dist/generated/themes/Toolbar.css.js +1 -1
  454. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  455. package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
  456. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  457. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  458. package/dist/generated/themes/TreeItem.css.d.ts +1 -1
  459. package/dist/generated/themes/TreeItem.css.js +1 -1
  460. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  461. package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
  462. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  463. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  464. package/dist/generated/themes/YearPicker.css.d.ts +1 -1
  465. package/dist/generated/themes/YearPicker.css.js +1 -1
  466. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  467. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  468. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  469. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  470. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  471. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  472. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  473. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  474. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  475. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  476. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  477. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  478. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  479. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  480. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  481. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  482. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  483. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  484. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  485. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  486. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  487. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  488. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  489. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  490. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  491. package/dist/types/ExpandableTextTemplateParams.d.ts +13 -0
  492. package/dist/types/ExpandableTextTemplateParams.js +2 -0
  493. package/dist/types/ExpandableTextTemplateParams.js.map +1 -0
  494. package/dist/vscode.html-custom-data.json +31 -16
  495. package/dist/web-types.json +68 -34
  496. package/package.json +9 -9
  497. package/src/ButtonTemplate.tsx +0 -6
  498. package/src/ListItemStandardTemplate.tsx +55 -16
  499. package/src/MenuTemplate.tsx +1 -0
  500. package/src/TableTemplate.tsx +2 -1
  501. package/src/features/ListItemStandardExpandableTextTemplate.tsx +31 -0
  502. package/src/i18n/messagebundle.properties +3 -0
  503. package/src/themes/Breadcrumbs.css +1 -1
  504. package/src/themes/BusyIndicator.css +2 -2
  505. package/src/themes/ListItem.css +69 -4
  506. package/src/themes/Table.css +2 -2
  507. package/src/themes/TableHeaderRow.css +2 -0
  508. package/src/themes/TableRow.css +4 -0
  509. package/src/themes/TableRowBase.css +11 -2
  510. package/src/themes/base/BusyIndicator-parameters.css +1 -2
  511. package/src/themes/base/Table-parameters.css +1 -0
  512. package/src/themes/base/sizes-parameters.css +1 -1
  513. package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +0 -1
  514. package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +0 -1
  515. package/src/themes/sap_horizon_hcb/BusyIndicator-parameters.css +0 -1
  516. package/src/themes/sap_horizon_hcw/BusyIndicator-parameters.css +0 -1
  517. package/src/themes/sap_fiori_3_hcb/BusyIndicator-parameters.css +0 -5
  518. package/src/themes/sap_fiori_3_hcw/BusyIndicator-parameters.css +0 -5
@@ -4,12 +4,23 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
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
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
+ var ListItemStandard_1;
7
8
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
8
9
  import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
9
10
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
10
11
  import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
11
12
  import ListItem from "./ListItem.js";
12
13
  import ListItemStandardTemplate from "./ListItemStandardTemplate.js";
14
+ /**
15
+ * Maximum number of characters to display for small screens (Size S)
16
+ * @private
17
+ */
18
+ const MAX_CHARACTERS_SIZE_S = 100;
19
+ /**
20
+ * Maximum number of characters to display for medium and larger screens (Size M and above)
21
+ * @private
22
+ */
23
+ const MAX_CHARACTERS_SIZE_M = 300;
13
24
  /**
14
25
  * @class
15
26
  * The `ui5-li` represents the simplest type of item for a `ui5-list`.
@@ -30,12 +41,14 @@ import ListItemStandardTemplate from "./ListItemStandardTemplate.js";
30
41
  * @csspart checkbox - Used to style the checkbox rendered when the list item is in multiple selection mode
31
42
  * @slot {Node[]} default - Defines the text of the component.
32
43
  *
33
- * **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.
44
+ * **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design. <br/>
45
+ * **Note:** Deprecated since version `2.10.0`. Use the `text` property instead. <br/>
46
+ * Only use the default slot if you need to apply custom text formatting with HTML elements (like `<b>`, `<i>`, etc.).
34
47
  * @constructor
35
48
  * @extends ListItem
36
49
  * @public
37
50
  */
38
- let ListItemStandard = class ListItemStandard extends ListItem {
51
+ let ListItemStandard = ListItemStandard_1 = class ListItemStandard extends ListItem {
39
52
  constructor() {
40
53
  super(...arguments);
41
54
  /**
@@ -62,12 +75,21 @@ let ListItemStandard = class ListItemStandard extends ListItem {
62
75
  */
63
76
  this.movable = false;
64
77
  /**
65
- * Defines if the text of the component should wrap, they truncate by default.
78
+ * Defines if the text of the component should wrap when it's too long.
79
+ * When set to "Normal", the content (title, description) will be wrapped
80
+ * using the `ui5-expandable-text` component.<br/>
81
+ *
82
+ * The text can wrap up to 100 characters on small screens (size S) and
83
+ * up to 300 characters on larger screens (size M and above). When text exceeds
84
+ * these limits, it truncates with an ellipsis followed by a text expansion trigger.
85
+ *
86
+ * Available options are:
87
+ * - `None` (default) - The text will truncate with an ellipsis.
88
+ * - `Normal` - The text will wrap (without truncation).
66
89
  *
67
- * **Note:** this property takes affect only if text node is provided to default slot of the component
68
90
  * @default "None"
69
- * @private
70
- * @since 1.5.0
91
+ * @public
92
+ * @since 2.10.0
71
93
  */
72
94
  this.wrappingType = "None";
73
95
  /**
@@ -79,8 +101,37 @@ let ListItemStandard = class ListItemStandard extends ListItem {
79
101
  }
80
102
  onBeforeRendering() {
81
103
  super.onBeforeRendering();
82
- this.hasTitle = !!this.textContent;
104
+ this.hasTitle = !!(this.text || this.textContent);
83
105
  this._hasImage = this.hasImage;
106
+ // Only load ExpandableText if "Normal" wrapping is used
107
+ if (this.wrappingType === "Normal") {
108
+ // If feature is already loaded (preloaded by the user via importing ListItemStandardExpandableText.js), the template is already available
109
+ if (ListItemStandard_1.ExpandableTextTemplate) {
110
+ this.expandableTextTemplate = ListItemStandard_1.ExpandableTextTemplate;
111
+ // If feature is not preloaded, load the template dynamically
112
+ }
113
+ else {
114
+ import("./features/ListItemStandardExpandableTextTemplate.js").then(module => {
115
+ this.expandableTextTemplate = module.default;
116
+ });
117
+ }
118
+ }
119
+ }
120
+ /**
121
+ * Returns the content text, either from text property or from the default slot
122
+ * @private
123
+ */
124
+ get _textContent() {
125
+ return this.text || this.textContent || "";
126
+ }
127
+ /**
128
+ * Determines the maximum characters to display based on the current media range.
129
+ * - Size S: 100 characters
130
+ * - Size M and larger: 300 characters
131
+ * @private
132
+ */
133
+ get _maxCharacters() {
134
+ return this.mediaRange === "S" ? MAX_CHARACTERS_SIZE_S : MAX_CHARACTERS_SIZE_M;
84
135
  }
85
136
  get displayIconBegin() {
86
137
  return !!(this.icon && !this.iconEnd);
@@ -92,6 +143,9 @@ let ListItemStandard = class ListItemStandard extends ListItem {
92
143
  return !!this.image.length;
93
144
  }
94
145
  };
146
+ __decorate([
147
+ property()
148
+ ], ListItemStandard.prototype, "text", void 0);
95
149
  __decorate([
96
150
  property()
97
151
  ], ListItemStandard.prototype, "description", void 0);
@@ -122,10 +176,13 @@ __decorate([
122
176
  __decorate([
123
177
  property({ type: Boolean })
124
178
  ], ListItemStandard.prototype, "_hasImage", void 0);
179
+ __decorate([
180
+ property({ noAttribute: true })
181
+ ], ListItemStandard.prototype, "expandableTextTemplate", void 0);
125
182
  __decorate([
126
183
  slot()
127
184
  ], ListItemStandard.prototype, "image", void 0);
128
- ListItemStandard = __decorate([
185
+ ListItemStandard = ListItemStandard_1 = __decorate([
129
186
  customElement({
130
187
  tag: "ui5-li",
131
188
  renderer: jsxRenderer,
@@ -1 +1 @@
1
- {"version":3,"file":"ListItemStandard.js","sourceRoot":"","sources":["../src/ListItemStandard.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,QAAQ,MAAM,eAAe,CAAC;AAGrC,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAMH,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,QAAQ;IAAvC;;QAsBC;;;;;WAKG;QAEH,YAAO,GAAG,KAAK,CAAC;QAWhB;;;;;;;WAOG;QAEH,wBAAmB,GAAoB,MAAM,CAAC;QAE9C;;;;;WAKG;QAEH,YAAO,GAAG,KAAK,CAAC;QAYhB;;;;;;;WAOG;QAEH,iBAAY,GAAsB,MAAM,CAAC;QAEzC;;;WAGG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAGjB,cAAS,GAAG,KAAK,CAAC;IA+BnB,CAAC;IAjBA,iBAAiB;QAChB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC5B,CAAC;CACD,CAAA;AAhHA;IADC,QAAQ,EAAE;qDACU;AAYrB;IADC,QAAQ,EAAE;8CACG;AASd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDACZ;AAShB;IADC,QAAQ,EAAE;wDACa;AAWxB;IADC,QAAQ,EAAE;6DACmC;AAS9C;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDACZ;AAUR;IADP,QAAQ,EAAE;wDACqB;AAWhC;IADC,QAAQ,EAAE;sDAC8B;AAOzC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kDACX;AAGjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;mDACV;AAYlB;IADC,IAAI,EAAE;+CACoB;AArGtB,gBAAgB;IALrB,aAAa,CAAC;QACd,GAAG,EAAE,QAAQ;QACb,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,wBAAwB;KAClC,CAAC;GACI,gBAAgB,CAwHrB;AAED,gBAAgB,CAAC,MAAM,EAAE,CAAC;AAE1B,eAAe,gBAAgB,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport type ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport ListItem from \"./ListItem.js\";\nimport type { IAccessibleListItem } from \"./ListItem.js\";\nimport type WrappingType from \"./types/WrappingType.js\";\nimport ListItemStandardTemplate from \"./ListItemStandardTemplate.js\";\n\n/**\n * @class\n * The `ui5-li` represents the simplest type of item for a `ui5-list`.\n *\n * This is a list item,\n * providing the most common use cases such as `text`,\n * `image` and `icon`.\n\n * @csspart title - Used to style the title of the list item\n * @csspart description - Used to style the description of the list item\n * @csspart additional-text - Used to style the additionalText of the list item\n * @csspart icon - Used to style the icon of the list item\n * @csspart native-li - Used to style the main li tag of the list item\n * @csspart content - Used to style the content area of the list item\n * @csspart detail-button - Used to style the button rendered when the list item is of type detail\n * @csspart delete-button - Used to style the button rendered when the list item is in delete mode\n * @csspart radio - Used to style the radio button rendered when the list item is in single selection mode\n * @csspart checkbox - Used to style the checkbox rendered when the list item is in multiple selection mode\n * @slot {Node[]} default - Defines the text of the component.\n *\n * **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n * @constructor\n * @extends ListItem\n * @public\n */\n@customElement({\n\ttag: \"ui5-li\",\n\trenderer: jsxRenderer,\n\ttemplate: ListItemStandardTemplate,\n})\nclass ListItemStandard extends ListItem implements IAccessibleListItem {\n\t/**\n\t * Defines the description displayed right under the item text, if such is present.\n\t * @default undefined\n\t * @public\n\t * @since 0.8.0\n\t */\n\t@property()\n\tdescription?: string;\n\n\t/**\n\t * Defines the `icon` source URI.\n\t *\n\t * **Note:**\n\t * SAP-icons font provides numerous built-in icons. To find all the available icons, see the\n\t * [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 the `icon` should be displayed in the beginning of the list item or in the end.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\ticonEnd = false;\n\n\t/**\n\t * Defines the `additionalText`, displayed in the end of the list item.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\tadditionalText?: string;\n\n\t/**\n\t * Defines the state of the `additionalText`.\n\t *\n\t * Available options are: `\"None\"` (by default), `\"Positive\"`, `\"Critical\"`, `\"Information\"` and `\"Negative\"`.\n\t * @default \"None\"\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\tadditionalTextState: `${ValueState}` = \"None\";\n\n\t/**\n\t * Defines whether the item is movable.\n\t * @default false\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@property({ type: Boolean })\n\tmovable = false;\n\n\t/**\n\t * Defines the text alternative of the component.\n\t * Note: If not provided a default text alternative will be set, if present.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\tdeclare accessibleName?: string;\n\n\t/**\n\t * Defines if the text of the component should wrap, they truncate by default.\n\t *\n\t * **Note:** this property takes affect only if text node is provided to default slot of the component\n\t * @default \"None\"\n\t * @private\n\t * @since 1.5.0\n\t */\n\t@property()\n\twrappingType: `${WrappingType}` = \"None\";\n\n\t/**\n\t * Indicates if the list item has text content.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thasTitle = false;\n\n\t@property({ type: Boolean })\n\t_hasImage = false;\n\n\t/**\n\t * **Note:** While the slot allows option for setting custom avatar, to match the\n\t * design guidelines, please use the `ui5-avatar` with it's default size - S.\n\t *\n\t * **Note:** If bigger `ui5-avatar` needs to be used, then the size of the\n\t * `ui5-li` should be customized in order to fit.\n\t * @since 2.0.0\n\t * @public\n\t */\n\t@slot()\n\timage!: Array<HTMLElement>;\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\t\tthis.hasTitle = !!this.textContent;\n\t\tthis._hasImage = this.hasImage;\n\t}\n\n\tget displayIconBegin(): boolean {\n\t\treturn !!(this.icon && !this.iconEnd);\n\t}\n\n\tget displayIconEnd(): boolean {\n\t\treturn !!(this.icon && this.iconEnd);\n\t}\n\n\tget hasImage(): boolean {\n\t\treturn !!this.image.length;\n\t}\n}\n\nListItemStandard.define();\n\nexport default ListItemStandard;\n"]}
1
+ {"version":3,"file":"ListItemStandard.js","sourceRoot":"","sources":["../src/ListItemStandard.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport type ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport ListItem from \"./ListItem.js\";\nimport type { IAccessibleListItem } from \"./ListItem.js\";\nimport type WrappingType from \"./types/WrappingType.js\";\nimport ListItemStandardTemplate from \"./ListItemStandardTemplate.js\";\nimport type { ExpandableTextTemplateParams } from \"./types/ExpandableTextTemplateParams.js\";\n\n/**\n * Maximum number of characters to display for small screens (Size S)\n * @private\n */\nconst MAX_CHARACTERS_SIZE_S = 100;\n\n/**\n * Maximum number of characters to display for medium and larger screens (Size M and above)\n * @private\n */\nconst MAX_CHARACTERS_SIZE_M = 300;\n\n// Specific template type for expandable text\ntype ExpandableTextTemplate = (this: ListItemStandard, params: ExpandableTextTemplateParams) => JSX.Element;\n\n/**\n * @class\n * The `ui5-li` represents the simplest type of item for a `ui5-list`.\n *\n * This is a list item,\n * providing the most common use cases such as `text`,\n * `image` and `icon`.\n\n * @csspart title - Used to style the title of the list item\n * @csspart description - Used to style the description of the list item\n * @csspart additional-text - Used to style the additionalText of the list item\n * @csspart icon - Used to style the icon of the list item\n * @csspart native-li - Used to style the main li tag of the list item\n * @csspart content - Used to style the content area of the list item\n * @csspart detail-button - Used to style the button rendered when the list item is of type detail\n * @csspart delete-button - Used to style the button rendered when the list item is in delete mode\n * @csspart radio - Used to style the radio button rendered when the list item is in single selection mode\n * @csspart checkbox - Used to style the checkbox rendered when the list item is in multiple selection mode\n * @slot {Node[]} default - Defines the text of the component.\n *\n * **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design. <br/>\n * **Note:** Deprecated since version `2.10.0`. Use the `text` property instead. <br/>\n * Only use the default slot if you need to apply custom text formatting with HTML elements (like `<b>`, `<i>`, etc.).\n * @constructor\n * @extends ListItem\n * @public\n */\n@customElement({\n\ttag: \"ui5-li\",\n\trenderer: jsxRenderer,\n\ttemplate: ListItemStandardTemplate,\n})\nclass ListItemStandard extends ListItem implements IAccessibleListItem {\n\t/**\n\t * Defines the text of the component.\n\t *\n\t * @default undefined\n\t * @public\n\t * @since 2.10.0\n\t */\n\t@property()\n\ttext?: string;\n\n\t/**\n\t * Defines the description displayed right under the item text, if such is present.\n\t * @default undefined\n\t * @public\n\t * @since 0.8.0\n\t */\n\t@property()\n\tdescription?: string;\n\n\t/**\n\t * Defines the `icon` source URI.\n\t *\n\t * **Note:**\n\t * SAP-icons font provides numerous built-in icons. To find all the available icons, see the\n\t * [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 the `icon` should be displayed in the beginning of the list item or in the end.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\ticonEnd = false;\n\n\t/**\n\t * Defines the `additionalText`, displayed in the end of the list item.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\tadditionalText?: string;\n\n\t/**\n\t * Defines the state of the `additionalText`.\n\t *\n\t * Available options are: `\"None\"` (by default), `\"Positive\"`, `\"Critical\"`, `\"Information\"` and `\"Negative\"`.\n\t * @default \"None\"\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\tadditionalTextState: `${ValueState}` = \"None\";\n\n\t/**\n\t * Defines whether the item is movable.\n\t * @default false\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@property({ type: Boolean })\n\tmovable = false;\n\n\t/**\n\t * Defines the text alternative of the component.\n\t * Note: If not provided a default text alternative will be set, if present.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\tdeclare accessibleName?: string;\n\n\t/**\n\t * Defines if the text of the component should wrap when it's too long.\n\t * When set to \"Normal\", the content (title, description) will be wrapped\n\t * using the `ui5-expandable-text` component.<br/>\n\t *\n\t * The text can wrap up to 100 characters on small screens (size S) and\n\t * up to 300 characters on larger screens (size M and above). When text exceeds\n\t * these limits, it truncates with an ellipsis followed by a text expansion trigger.\n\t *\n\t * Available options are:\n\t * - `None` (default) - The text will truncate with an ellipsis.\n\t * - `Normal` - The text will wrap (without truncation).\n\t *\n\t * @default \"None\"\n\t * @public\n\t * @since 2.10.0\n\t */\n\t@property()\n\twrappingType: `${WrappingType}` = \"None\";\n\n\t/**\n\t * Indicates if the list item has text content.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thasTitle = false;\n\n\t@property({ type: Boolean })\n\t_hasImage = false;\n\n\t/**\n\t * The expandableText template.\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\texpandableTextTemplate?: ExpandableTextTemplate;\n\n\t/**\n\t * **Note:** While the slot allows option for setting custom avatar, to match the\n\t * design guidelines, please use the `ui5-avatar` with it's default size - S.\n\t *\n\t * **Note:** If bigger `ui5-avatar` needs to be used, then the size of the\n\t * `ui5-li` should be customized in order to fit.\n\t * @since 2.0.0\n\t * @public\n\t */\n\t@slot()\n\timage!: Array<HTMLElement>;\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\t\tthis.hasTitle = !!(this.text || this.textContent);\n\t\tthis._hasImage = this.hasImage;\n\n\t\t// Only load ExpandableText if \"Normal\" wrapping is used\n\t\tif (this.wrappingType === \"Normal\") {\n\t\t\t// If feature is already loaded (preloaded by the user via importing ListItemStandardExpandableText.js), the template is already available\n\t\t\tif (ListItemStandard.ExpandableTextTemplate) {\n\t\t\t\tthis.expandableTextTemplate = ListItemStandard.ExpandableTextTemplate;\n\t\t\t// If feature is not preloaded, load the template dynamically\n\t\t\t} else {\n\t\t\t\timport(\"./features/ListItemStandardExpandableTextTemplate.js\").then(module => {\n\t\t\t\t\tthis.expandableTextTemplate = module.default;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns the content text, either from text property or from the default slot\n\t * @private\n\t */\n\tget _textContent(): string {\n\t\treturn this.text || this.textContent || \"\";\n\t}\n\n\t/**\n\t * Determines the maximum characters to display based on the current media range.\n\t * - Size S: 100 characters\n\t * - Size M and larger: 300 characters\n\t * @private\n\t */\n\tget _maxCharacters(): number {\n\t\treturn this.mediaRange === \"S\" ? MAX_CHARACTERS_SIZE_S : MAX_CHARACTERS_SIZE_M;\n\t}\n\n\tget displayIconBegin(): boolean {\n\t\treturn !!(this.icon && !this.iconEnd);\n\t}\n\n\tget displayIconEnd(): boolean {\n\t\treturn !!(this.icon && this.iconEnd);\n\t}\n\n\tget hasImage(): boolean {\n\t\treturn !!this.image.length;\n\t}\n\n\tstatic ExpandableTextTemplate?: ExpandableTextTemplate;\n}\n\nListItemStandard.define();\n\nexport default ListItemStandard;\n"]}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ui5/webcomponents-base/jsx-runtime";
2
2
  import Icon from "./Icon.js";
3
3
  import ListItemTemplate from "./ListItemTemplate.js";
4
+ import WrappingType from "./types/WrappingType.js";
4
5
  const predefinedHooks = {
5
6
  imageBegin,
6
7
  iconBegin,
@@ -12,7 +13,38 @@ export default function ListItemStandardTemplate(hooks) {
12
13
  return ListItemTemplate.call(this, currentHooks);
13
14
  }
14
15
  function listItemContent() {
15
- return _jsxs(_Fragment, { children: [_jsxs("div", { class: "ui5-li-text-wrapper", children: [_jsx("span", { part: "title", class: "ui5-li-title", children: _jsx("slot", {}) }), this.description && (_jsxs("div", { class: "ui5-li-description-info-wrapper", children: [_jsx("span", { part: "description", class: "ui5-li-desc", children: this.description }), this.additionalText && (_jsx("span", { part: "additional-text", class: "ui5-li-additional-text", children: this.additionalText }))] })), !this.typeActive && _jsx("span", { class: "ui5-hidden-text", children: this.type })] }), !this.description && this.additionalText && (_jsx("span", { part: "additional-text", class: "ui5-li-additional-text", children: this.additionalText }))] });
16
+ return _jsxs(_Fragment, { children: [_jsxs("div", { class: "ui5-li-text-wrapper", children: [renderTitle.call(this), renderDescription.call(this), !this.typeActive && _jsx("span", { class: "ui5-hidden-text", children: this.type })] }), !this.description && renderAdditionalText.call(this)] });
17
+ }
18
+ function renderTitle() {
19
+ if (this.wrappingType === WrappingType.Normal) {
20
+ return this.expandableTextTemplate?.call(this, {
21
+ className: "ui5-li-title",
22
+ text: this._textContent,
23
+ maxCharacters: this._maxCharacters,
24
+ part: "title",
25
+ });
26
+ }
27
+ return (_jsx("span", { part: "title", class: "ui5-li-title", children: this.text ? this.text : _jsx("slot", {}) }));
28
+ }
29
+ function renderDescription() {
30
+ if (!this.description) {
31
+ return null;
32
+ }
33
+ if (this.wrappingType === WrappingType.Normal) {
34
+ return (_jsxs("div", { class: "ui5-li-description-info-wrapper", children: [this.expandableTextTemplate?.call(this, {
35
+ className: "ui5-li-desc",
36
+ text: this.description,
37
+ maxCharacters: this._maxCharacters,
38
+ part: "description",
39
+ }), renderAdditionalText.call(this)] }));
40
+ }
41
+ return (_jsxs("div", { class: "ui5-li-description-info-wrapper", children: [_jsx("span", { part: "description", class: "ui5-li-desc", children: this.description }), renderAdditionalText.call(this)] }));
42
+ }
43
+ function renderAdditionalText() {
44
+ if (!this.additionalText) {
45
+ return null;
46
+ }
47
+ return _jsx("span", { part: "additional-text", class: "ui5-li-additional-text", children: this.additionalText });
16
48
  }
17
49
  function imageBegin() {
18
50
  if (this.hasImage) {
@@ -1 +1 @@
1
- {"version":3,"file":"ListItemStandardTemplate.js","sourceRoot":"","sources":["../src/ListItemStandardTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAGrD,MAAM,eAAe,GAA2B;IAC/C,UAAU;IACV,SAAS;IACT,OAAO;IACP,eAAe;CACf,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAAyB,KAA8B;IACtG,MAAM,YAAY,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,KAAK,EAAE,CAAC;IAEtD,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,eAAe;IACvB,OAAO,8BACN,eAAK,KAAK,EAAC,qBAAqB,aAC/B,eAAM,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,cAAc,YACtC,gBAAa,GACP,EACN,IAAI,CAAC,WAAW,IAAI,CACpB,eAAK,KAAK,EAAC,iCAAiC,aAC3C,eAAM,IAAI,EAAC,aAAa,EAAC,KAAK,EAAC,aAAa,YAAE,IAAI,CAAC,WAAW,GAAQ,EAErE,IAAI,CAAC,cAAc,IAAI,CACtB,eAAM,IAAI,EAAC,iBAAiB,EAAC,KAAK,EAAC,wBAAwB,YAAE,IAAI,CAAC,cAAc,GAAQ,CACxF,IAEG,CACN,EAEA,CAAC,IAAI,CAAC,UAAU,IAAI,eAAM,KAAK,EAAC,iBAAiB,YAAE,IAAI,CAAC,IAAI,GAAQ,IAChE,EAEL,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,IAAI,CAC5C,eAAM,IAAI,EAAC,iBAAiB,EAAC,KAAK,EAAC,wBAAwB,YAAE,IAAI,CAAC,cAAc,GAAQ,CACxF,IACC,CAAC;AACL,CAAC;AAED,SAAS,UAAU;IAClB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,OAAO,cAAK,KAAK,EAAC,cAAc,YAC/B,eAAM,IAAI,EAAC,OAAO,GAAQ,GACrB,CAAC;IACR,CAAC;AACF,CAAC;AAED,SAAS,SAAS;IACjB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC3B,OAAO,KAAC,IAAI,IACX,IAAI,EAAC,MAAM,EACX,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAC,aAAa,EACnB,IAAI,EAAC,YAAY,GAAG,CAAC;IACvB,CAAC;AACF,CAAC;AAED,SAAS,OAAO;IACf,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACzB,OAAO,KAAC,IAAI,IACX,IAAI,EAAC,MAAM,EACX,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAC,aAAa,EACnB,IAAI,EAAC,YAAY,GAAG,CAAC;IACvB,CAAC;AACF,CAAC","sourcesContent":["import Icon from \"./Icon.js\";\nimport type ListItemStandard from \"./ListItemStandard.js\";\nimport ListItemTemplate from \"./ListItemTemplate.js\";\nimport type { ListItemHooks } from \"./ListItemTemplate.js\";\n\nconst predefinedHooks: Partial<ListItemHooks> = {\n\timageBegin,\n\ticonBegin,\n\ticonEnd,\n\tlistItemContent\n};\n\nexport default function ListItemStandardTemplate(this: ListItemStandard, hooks?: Partial<ListItemHooks>) {\n\tconst currentHooks = { ...predefinedHooks, ...hooks };\n\n\treturn ListItemTemplate.call(this, currentHooks);\n}\n\nfunction listItemContent(this: ListItemStandard) {\n\treturn <>\n\t\t<div class=\"ui5-li-text-wrapper\">\n\t\t\t<span part=\"title\" class=\"ui5-li-title\">\n\t\t\t\t<slot></slot>\n\t\t\t</span>\n\t\t\t{this.description && (\n\t\t\t\t<div class=\"ui5-li-description-info-wrapper\">\n\t\t\t\t\t<span part=\"description\" class=\"ui5-li-desc\">{this.description}</span>\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.additionalText && (\n\t\t\t\t\t\t\t<span part=\"additional-text\" class=\"ui5-li-additional-text\">{this.additionalText}</span>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{!this.typeActive && <span class=\"ui5-hidden-text\">{this.type}</span>}\n\t\t</div>\n\n\t\t{!this.description && this.additionalText && (\n\t\t\t<span part=\"additional-text\" class=\"ui5-li-additional-text\">{this.additionalText}</span>\n\t\t)}\n\t</>;\n}\n\nfunction imageBegin(this: ListItemStandard) {\n\tif (this.hasImage) {\n\t\treturn <div class=\"ui5-li-image\">\n\t\t\t<slot name=\"image\"></slot>\n\t\t</div>;\n\t}\n}\n\nfunction iconBegin(this: ListItemStandard) {\n\tif (this.displayIconBegin) {\n\t\treturn <Icon\n\t\t\tpart=\"icon\"\n\t\t\tname={this.icon}\n\t\t\tclass=\"ui5-li-icon\"\n\t\t\tmode=\"Decorative\" />;\n\t}\n}\n\nfunction iconEnd(this: ListItemStandard) {\n\tif (this.displayIconEnd) {\n\t\treturn <Icon\n\t\t\tpart=\"icon\"\n\t\t\tname={this.icon}\n\t\t\tclass=\"ui5-li-icon\"\n\t\t\tmode=\"Decorative\" />;\n\t}\n}\n"]}
1
+ {"version":3,"file":"ListItemStandardTemplate.js","sourceRoot":"","sources":["../src/ListItemStandardTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import Icon from \"./Icon.js\";\nimport type ListItemStandard from \"./ListItemStandard.js\";\nimport ListItemTemplate from \"./ListItemTemplate.js\";\nimport type { ListItemHooks } from \"./ListItemTemplate.js\";\nimport WrappingType from \"./types/WrappingType.js\";\n\nconst predefinedHooks: Partial<ListItemHooks> = {\n\timageBegin,\n\ticonBegin,\n\ticonEnd,\n\tlistItemContent\n};\n\nexport default function ListItemStandardTemplate(this: ListItemStandard, hooks?: Partial<ListItemHooks>) {\n\tconst currentHooks = { ...predefinedHooks, ...hooks };\n\n\treturn ListItemTemplate.call(this, currentHooks);\n}\n\nfunction listItemContent(this: ListItemStandard) {\n\treturn <>\n\t\t<div class=\"ui5-li-text-wrapper\">\n\t\t\t{renderTitle.call(this)}\n\t\t\t{renderDescription.call(this)}\n\n\t\t\t{!this.typeActive && <span class=\"ui5-hidden-text\">{this.type}</span>}\n\t\t</div>\n\n\t\t{!this.description && renderAdditionalText.call(this)}\n\t</>;\n}\n\nfunction renderTitle(this: ListItemStandard) {\n\tif (this.wrappingType === WrappingType.Normal) {\n\t\treturn this.expandableTextTemplate?.call(this, {\n\t\t\tclassName: \"ui5-li-title\",\n\t\t\ttext: this._textContent,\n\t\t\tmaxCharacters: this._maxCharacters,\n\t\t\tpart: \"title\",\n\t\t});\n\t}\n\n\treturn (\n\t\t<span part=\"title\" class=\"ui5-li-title\">\n\t\t\t{this.text ? this.text : <slot></slot>}\n\t\t</span>\n\t);\n}\n\nfunction renderDescription(this: ListItemStandard) {\n\tif (!this.description) {\n\t\treturn null;\n\t}\n\n\tif (this.wrappingType === WrappingType.Normal) {\n\t\treturn (\n\t\t\t<div class=\"ui5-li-description-info-wrapper\">\n\t\t\t\t{this.expandableTextTemplate?.call(this, {\n\t\t\t\t\tclassName: \"ui5-li-desc\",\n\t\t\t\t\ttext: this.description,\n\t\t\t\t\tmaxCharacters: this._maxCharacters,\n\t\t\t\t\tpart: \"description\",\n\t\t\t\t})}\n\t\t\t\t{renderAdditionalText.call(this)}\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div class=\"ui5-li-description-info-wrapper\">\n\t\t\t<span part=\"description\" class=\"ui5-li-desc\">{this.description}</span>\n\t\t\t{renderAdditionalText.call(this)}\n\t\t</div>\n\t);\n}\n\nfunction renderAdditionalText(this: ListItemStandard) {\n\tif (!this.additionalText) {\n\t\treturn null;\n\t}\n\treturn <span part=\"additional-text\" class=\"ui5-li-additional-text\">{this.additionalText}</span>;\n}\n\nfunction imageBegin(this: ListItemStandard) {\n\tif (this.hasImage) {\n\t\treturn <div class=\"ui5-li-image\">\n\t\t\t<slot name=\"image\"></slot>\n\t\t</div>;\n\t}\n}\n\nfunction iconBegin(this: ListItemStandard) {\n\tif (this.displayIconBegin) {\n\t\treturn <Icon\n\t\t\tpart=\"icon\"\n\t\t\tname={this.icon}\n\t\t\tclass=\"ui5-li-icon\"\n\t\t\tmode=\"Decorative\" />;\n\t}\n}\n\nfunction iconEnd(this: ListItemStandard) {\n\tif (this.displayIconEnd) {\n\t\treturn <Icon\n\t\t\tpart=\"icon\"\n\t\t\tname={this.icon}\n\t\t\tclass=\"ui5-li-icon\"\n\t\t\tmode=\"Decorative\" />;\n\t}\n}\n"]}
package/dist/Menu.d.ts CHANGED
@@ -3,6 +3,7 @@ import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
3
3
  import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
4
4
  import type { Timeout } from "@ui5/webcomponents-base/dist/types.js";
5
5
  import type ResponsivePopover from "./ResponsivePopover.js";
6
+ import type PopoverHorizontalAlign from "./types/PopoverHorizontalAlign.js";
6
7
  import type MenuItem from "./MenuItem.js";
7
8
  import "./MenuItem.js";
8
9
  import "./MenuSeparator.js";
@@ -82,12 +83,18 @@ declare class Menu extends UI5Element {
82
83
  */
83
84
  headerText?: string;
84
85
  /**
85
- * Indicates if the menu is open
86
+ * Indicates if the menu is open.
86
87
  * @public
87
88
  * @default false
88
89
  * @since 1.10.0
89
90
  */
90
91
  open: boolean;
92
+ /**
93
+ * Determines the horizontal alignment of the menu relative to its opener control.
94
+ * @default "Start"
95
+ * @public
96
+ */
97
+ horizontalAlign: `${PopoverHorizontalAlign}`;
91
98
  /**
92
99
  * Defines if a loading indicator would be displayed inside the corresponding ui5-menu popover.
93
100
  * @default false
@@ -96,7 +103,7 @@ declare class Menu extends UI5Element {
96
103
  */
97
104
  loading: boolean;
98
105
  /**
99
- * Defines the delay in milliseconds, after which the loading indicator will be displayed inside the corresponding ui5-menu popover..
106
+ * Defines the delay in milliseconds, after which the loading indicator will be displayed inside the corresponding ui5-menu popover.
100
107
  * @default 1000
101
108
  * @public
102
109
  * @since 1.13.0
package/dist/Menu.js CHANGED
@@ -68,12 +68,18 @@ let Menu = Menu_1 = class Menu extends UI5Element {
68
68
  constructor() {
69
69
  super(...arguments);
70
70
  /**
71
- * Indicates if the menu is open
71
+ * Indicates if the menu is open.
72
72
  * @public
73
73
  * @default false
74
74
  * @since 1.10.0
75
75
  */
76
76
  this.open = false;
77
+ /**
78
+ * Determines the horizontal alignment of the menu relative to its opener control.
79
+ * @default "Start"
80
+ * @public
81
+ */
82
+ this.horizontalAlign = "Start";
77
83
  /**
78
84
  * Defines if a loading indicator would be displayed inside the corresponding ui5-menu popover.
79
85
  * @default false
@@ -82,7 +88,7 @@ let Menu = Menu_1 = class Menu extends UI5Element {
82
88
  */
83
89
  this.loading = false;
84
90
  /**
85
- * Defines the delay in milliseconds, after which the loading indicator will be displayed inside the corresponding ui5-menu popover..
91
+ * Defines the delay in milliseconds, after which the loading indicator will be displayed inside the corresponding ui5-menu popover.
86
92
  * @default 1000
87
93
  * @public
88
94
  * @since 1.13.0
@@ -252,6 +258,9 @@ __decorate([
252
258
  __decorate([
253
259
  property({ type: Boolean })
254
260
  ], Menu.prototype, "open", void 0);
261
+ __decorate([
262
+ property()
263
+ ], Menu.prototype, "horizontalAlign", void 0);
255
264
  __decorate([
256
265
  property({ type: Boolean })
257
266
  ], Menu.prototype, "loading", void 0);
package/dist/Menu.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../src/Menu.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport {\n\tisLeft,\n\tisRight,\n\tisEnter,\n\tisTabNext,\n\tisTabPrevious,\n\tisDown,\n\tisUp,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport {\n\tisPhone,\n\tisDesktop,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type { Timeout } from \"@ui5/webcomponents-base/dist/types.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport DOMReferenceConverter from \"@ui5/webcomponents-base/dist/converters/DOMReference.js\";\nimport type ResponsivePopover from \"./ResponsivePopover.js\";\nimport type MenuItem from \"./MenuItem.js\";\nimport \"./MenuItem.js\";\nimport \"./MenuSeparator.js\";\nimport type {\n\tListItemClickEventDetail,\n} from \"./List.js\";\nimport menuTemplate from \"./MenuTemplate.js\";\nimport {\n\tMENU_CLOSE_BUTTON_ARIA_LABEL,\n\tMENU_POPOVER_ACCESSIBLE_NAME,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport menuCss from \"./generated/themes/Menu.css.js\";\n\nconst MENU_OPEN_DELAY = 300;\n\n/**\n * Interface for components that may be slotted inside a `ui5-menu`.\n *\n * **Note:** Use with `ui5-menu-item` or `ui5-menu-separator`. Implementing the interface does not guarantee that any other classes can work with the `ui5-menu`.\n * @public\n */\ninterface IMenuItem extends UI5Element {\n\tisSeparator: boolean;\n}\n\ntype MenuItemClickEventDetail = {\n\titem: MenuItem,\n\ttext: string,\n}\n\ntype MenuBeforeOpenEventDetail = { item?: MenuItem };\ntype MenuBeforeCloseEventDetail = { escPressed: boolean };\n\n/**\n * @class\n *\n * ### Overview\n *\n * `ui5-menu` component represents a hierarchical menu structure.\n *\n * ### Structure\n *\n * The `ui5-menu` can hold two types of entities:\n *\n * - `ui5-menu-item` components\n * - `ui5-menu-separator` - used to separate menu items with a line\n *\n * An arbitrary hierarchy structure can be represented by recursively nesting menu items.\n *\n * ### Keyboard Handling\n *\n * The `ui5-menu` provides advanced keyboard handling.\n * The user can use the following keyboard shortcuts in order to navigate trough the tree:\n *\n * - `Arrow Up` / `Arrow Down` - Navigates up and down the menu items that are currently visible.\n * - `Arrow Right`, `Space` or `Enter` - Opens a sub-menu if there are menu items nested\n * in the currently clicked menu item.\n * - `Arrow Left` or `Escape` - Closes the currently opened sub-menu.\n *\n * when there is `endContent` :\n * - `Arrow Left` or `ArrowRight` - Navigate between the menu item actions and the menu item itself\n * - `Arrow Up` / `Arrow Down` - Navigates up and down the currently visible menu items\n *\n * Note: if the text ditrection is set to Right-to-left (RTL), `Arrow Right` and `Arrow Left` functionality is swapped.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Menu.js\";`\n * @constructor\n * @extends UI5Element\n * @since 1.3.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-menu\",\n\trenderer: jsxRenderer,\n\tstyles: menuCss,\n\ttemplate: menuTemplate,\n})\n\n/**\n * Fired when an item is being clicked.\n *\n * **Note:** Since 1.17.0 the event is preventable, allowing the menu to remain open after an item is pressed.\n * @param { HTMLElement } item The currently clicked menu item.\n * @param { string } text The text of the currently clicked menu item.\n * @public\n */\n@event(\"item-click\", {\n\tcancelable: true,\n})\n\n/**\n * Fired before the menu is opened. This event can be cancelled, which will prevent the menu from opening.\n *\n * **Note:** Since 1.14.0 the event is also fired before a sub-menu opens.\n * @public\n * @since 1.10.0\n * @param { HTMLElement } item The `ui5-menu-item` that triggers opening of the sub-menu or undefined when fired upon root menu opening.\n */\n@event(\"before-open\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired after the menu is opened.\n * @public\n * @since 1.10.0\n */\n@event(\"open\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the menu is being closed.\n * @private\n */\n@event(\"close-menu\", {\n\tbubbles: true,\n})\n\n/**\n * Fired before the menu is closed. This event can be cancelled, which will prevent the menu from closing.\n * @public\n * @param {boolean} escPressed Indicates that `ESC` key has triggered the event.\n * @since 1.10.0\n */\n@event(\"before-close\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired after the menu is closed.\n * @public\n * @since 1.10.0\n */\n@event(\"close\")\n\nclass Menu extends UI5Element {\n\teventDetails!: {\n\t\t\"item-click\": MenuItemClickEventDetail,\n\t\t\"before-open\": MenuBeforeOpenEventDetail,\n\t\t\"open\": void,\n\t\t\"before-close\": MenuBeforeCloseEventDetail,\n\t\t\"close\": void,\n\t\t\"close-menu\": void,\n\t}\n\t/**\n\t * Defines the header text of the menu (displayed on mobile).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\theaderText?: string;\n\n\t/**\n\t * Indicates if the menu is open\n\t * @public\n\t * @default false\n\t * @since 1.10.0\n\t */\n\t@property({ type: Boolean })\n\topen = false;\n\n\t/**\n\t * Defines if a loading indicator would be displayed inside the corresponding ui5-menu popover.\n\t * @default false\n\t * @public\n\t * @since 1.13.0\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines the delay in milliseconds, after which the loading indicator will be displayed inside the corresponding ui5-menu popover..\n\t * @default 1000\n\t * @public\n\t * @since 1.13.0\n\t */\n\t@property({ type: Number })\n\tloadingDelay = 1000;\n\n\t/**\n\t * Defines the ID or DOM Reference of the element at which the menu is shown.\n\t * When using this attribute in a declarative way, you must only use the `id` (as a string) of the element at which you want to show the popover.\n\t * You can only set the `opener` attribute to a DOM Reference when using JavaScript.\n\t * @public\n\t * @default undefined\n\t * @since 1.10.0\n\t */\n\t@property({ converter: DOMReferenceConverter })\n\topener?: HTMLElement | string;\n\n\t/**\n\t * Defines the items of this component.\n\t *\n\t * **Note:** Use `ui5-menu-item` and `ui5-menu-separator` for their intended design.\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, invalidateOnChildChange: true })\n\titems!: Array<IMenuItem>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\t_timeout?: Timeout;\n\n\tget isRtl() {\n\t\treturn this.effectiveDir === \"rtl\";\n\t}\n\n\tget labelClose() {\n\t\treturn Menu.i18nBundle.getText(MENU_CLOSE_BUTTON_ARIA_LABEL);\n\t}\n\n\tget isPhone() {\n\t\treturn isPhone();\n\t}\n\n\tget _popover() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\tget _menuItems() {\n\t\treturn this.items.filter((item): item is MenuItem => !item.isSeparator);\n\t}\n\n\tget acessibleNameText() {\n\t\treturn Menu.i18nBundle.getText(MENU_POPOVER_ACCESSIBLE_NAME);\n\t}\n\n\tonBeforeRendering() {\n\t\tconst siblingsWithIcon = this._menuItems.some(menuItem => !!menuItem.icon);\n\n\t\tthis._menuItems.forEach(item => {\n\t\t\titem._siblingsWithIcon = siblingsWithIcon;\n\t\t});\n\t}\n\n\t_close() {\n\t\tthis.open = false;\n\t}\n\n\t_openItemSubMenu(item: MenuItem) {\n\t\tclearTimeout(this._timeout);\n\n\t\tif (!item._popover || item._popover.open) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"before-open\", {\n\t\t\titem,\n\t\t});\n\t\titem._popover.opener = item;\n\t\titem._popover.open = true;\n\t\titem.selected = true;\n\t}\n\n\t_closeItemSubMenu(item: MenuItem) {\n\t\tif (item && item._popover) {\n\t\t\tconst openedSibling = item._menuItems.find(menuItem => menuItem._popover && menuItem._popover.open);\n\t\t\tif (openedSibling) {\n\t\t\t\tthis._closeItemSubMenu(openedSibling);\n\t\t\t}\n\n\t\t\titem._popover.open = false;\n\t\t\titem.selected = false;\n\t\t}\n\t}\n\n\t_itemMouseOver(e: MouseEvent) {\n\t\tif (isDesktop()) {\n\t\t\t// respect mouseover only on desktop\n\t\t\tconst item = e.target as MenuItem;\n\n\t\t\tif (this._isInstanceOfMenuItem(item)) {\n\t\t\t\titem.focus();\n\n\t\t\t\t// Opens submenu with 300ms delay\n\t\t\t\tthis._startOpenTimeout(item);\n\t\t\t}\n\t\t}\n\t}\n\n\tasync focus(focusOptions?: FocusOptions): Promise<void> {\n\t\tawait renderFinished();\n\t\tconst firstMenuItem = this._menuItems[0];\n\n\t\tif (firstMenuItem) {\n\t\t\treturn firstMenuItem.focus(focusOptions);\n\t\t}\n\n\t\treturn super.focus(focusOptions);\n\t}\n\n\t_startOpenTimeout(item: MenuItem) {\n\t\tclearTimeout(this._timeout);\n\n\t\tthis._timeout = setTimeout(() => {\n\t\t\tconst opener = item.parentElement as MenuItem | Menu;\n\t\t\tconst openedSibling = opener && opener._menuItems.find(menuItem => menuItem._popover && menuItem._popover.open);\n\t\t\tif (openedSibling) {\n\t\t\t\tthis._closeItemSubMenu(openedSibling);\n\t\t\t}\n\n\t\t\tthis._openItemSubMenu(item);\n\t\t}, MENU_OPEN_DELAY);\n\t}\n\n\t_itemClick(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst item = e.detail.item as MenuItem;\n\n\t\tif (!item._popover) {\n\t\t\tconst prevented = !this.fireDecoratorEvent(\"item-click\", {\n\t\t\t\t\"item\": item,\n\t\t\t\t\"text\": item.text || \"\",\n\t\t\t});\n\n\t\t\tif (!prevented && this._popover) {\n\t\t\t\titem.fireDecoratorEvent(\"close-menu\");\n\t\t\t}\n\t\t} else {\n\t\t\tthis._openItemSubMenu(item);\n\t\t}\n\t}\n\n\t_itemKeyDown(e: KeyboardEvent) {\n\t\tconst isTabNextPrevious = isTabNext(e) || isTabPrevious(e);\n\t\tconst item = e.target as MenuItem;\n\t\tconst parentElement = item.parentElement as MenuItem;\n\t\tconst shouldItemNavigation = isUp(e) || isDown(e);\n\t\tconst shouldOpenMenu = this.isRtl ? isLeft(e) : isRight(e);\n\t\tconst shouldCloseMenu = !shouldItemNavigation && !shouldOpenMenu && this._isInstanceOfMenuItem(parentElement);\n\n\t\tif (this._isInstanceOfMenuItem(item)) {\n\t\t\tif (isEnter(e) || isTabNextPrevious) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\n\t\t\tif (isRight(e) || isLeft(e)) {\n\t\t\t\titem._navigateToEndContent(isLeft(e));\n\t\t\t}\n\n\t\t\tif (shouldOpenMenu) {\n\t\t\t\tthis._openItemSubMenu(item);\n\t\t\t} else if ((shouldCloseMenu || isTabNextPrevious) && parentElement._popover) {\n\t\t\t\tparentElement._popover.open = false;\n\t\t\t\tparentElement.selected = false;\n\t\t\t\tparentElement._popover.focusOpener();\n\t\t\t}\n\t\t} else if (isUp(e)) {\n\t\t\tthis._navigateOutOfEndContent(parentElement);\n\t\t} else if (isDown(e)) {\n\t\t\tthis._navigateOutOfEndContent(parentElement, true);\n\t\t}\n\t}\n\n\t_navigateOutOfEndContent(menuItem: MenuItem, isDownwards?: boolean) {\n\t\tconst opener = menuItem?.parentElement as MenuItem | Menu;\n\t\tconst currentIndex = opener._menuItems.indexOf(menuItem);\n\t\tconst nextItem = isDownwards ? opener._menuItems[currentIndex + 1] : opener._menuItems[currentIndex - 1];\n\t\tconst itemToFocus = nextItem || opener._menuItems[currentIndex];\n\n\t\titemToFocus.focus();\n\t}\n\n\t_beforePopoverOpen(e: CustomEvent) {\n\t\tconst prevented = !this.fireDecoratorEvent(\"before-open\", {});\n\n\t\tif (prevented) {\n\t\t\tthis.open = false;\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_afterPopoverOpen() {\n\t\tthis._menuItems[0]?.focus();\n\t\tthis.fireDecoratorEvent(\"open\");\n\t}\n\n\t_beforePopoverClose(e: CustomEvent) {\n\t\tconst prevented = !this.fireDecoratorEvent(\"before-close\", { escPressed: e.detail.escPressed });\n\n\t\tif (prevented) {\n\t\t\tthis.open = true;\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_afterPopoverClose() {\n\t\tthis.open = false;\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\t_isInstanceOfMenuItem(object: any): object is MenuItem {\n\t\treturn \"isMenuItem\" in object;\n\t}\n}\n\nMenu.define();\n\nexport default Menu;\nexport type {\n\tMenuItemClickEventDetail,\n\tMenuBeforeCloseEventDetail,\n\tMenuBeforeOpenEventDetail,\n\tIMenuItem,\n};\n"]}
1
+ {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../src/Menu.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport {\n\tisLeft,\n\tisRight,\n\tisEnter,\n\tisTabNext,\n\tisTabPrevious,\n\tisDown,\n\tisUp,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport {\n\tisPhone,\n\tisDesktop,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type { Timeout } from \"@ui5/webcomponents-base/dist/types.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport DOMReferenceConverter from \"@ui5/webcomponents-base/dist/converters/DOMReference.js\";\nimport type ResponsivePopover from \"./ResponsivePopover.js\";\nimport type PopoverHorizontalAlign from \"./types/PopoverHorizontalAlign.js\";\nimport type MenuItem from \"./MenuItem.js\";\nimport \"./MenuItem.js\";\nimport \"./MenuSeparator.js\";\nimport type {\n\tListItemClickEventDetail,\n} from \"./List.js\";\nimport menuTemplate from \"./MenuTemplate.js\";\nimport {\n\tMENU_CLOSE_BUTTON_ARIA_LABEL,\n\tMENU_POPOVER_ACCESSIBLE_NAME,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport menuCss from \"./generated/themes/Menu.css.js\";\n\nconst MENU_OPEN_DELAY = 300;\n\n/**\n * Interface for components that may be slotted inside a `ui5-menu`.\n *\n * **Note:** Use with `ui5-menu-item` or `ui5-menu-separator`. Implementing the interface does not guarantee that any other classes can work with the `ui5-menu`.\n * @public\n */\ninterface IMenuItem extends UI5Element {\n\tisSeparator: boolean;\n}\n\ntype MenuItemClickEventDetail = {\n\titem: MenuItem,\n\ttext: string,\n}\n\ntype MenuBeforeOpenEventDetail = { item?: MenuItem };\ntype MenuBeforeCloseEventDetail = { escPressed: boolean };\n\n/**\n * @class\n *\n * ### Overview\n *\n * `ui5-menu` component represents a hierarchical menu structure.\n *\n * ### Structure\n *\n * The `ui5-menu` can hold two types of entities:\n *\n * - `ui5-menu-item` components\n * - `ui5-menu-separator` - used to separate menu items with a line\n *\n * An arbitrary hierarchy structure can be represented by recursively nesting menu items.\n *\n * ### Keyboard Handling\n *\n * The `ui5-menu` provides advanced keyboard handling.\n * The user can use the following keyboard shortcuts in order to navigate trough the tree:\n *\n * - `Arrow Up` / `Arrow Down` - Navigates up and down the menu items that are currently visible.\n * - `Arrow Right`, `Space` or `Enter` - Opens a sub-menu if there are menu items nested\n * in the currently clicked menu item.\n * - `Arrow Left` or `Escape` - Closes the currently opened sub-menu.\n *\n * when there is `endContent` :\n * - `Arrow Left` or `ArrowRight` - Navigate between the menu item actions and the menu item itself\n * - `Arrow Up` / `Arrow Down` - Navigates up and down the currently visible menu items\n *\n * Note: if the text ditrection is set to Right-to-left (RTL), `Arrow Right` and `Arrow Left` functionality is swapped.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Menu.js\";`\n * @constructor\n * @extends UI5Element\n * @since 1.3.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-menu\",\n\trenderer: jsxRenderer,\n\tstyles: menuCss,\n\ttemplate: menuTemplate,\n})\n\n/**\n * Fired when an item is being clicked.\n *\n * **Note:** Since 1.17.0 the event is preventable, allowing the menu to remain open after an item is pressed.\n * @param { HTMLElement } item The currently clicked menu item.\n * @param { string } text The text of the currently clicked menu item.\n * @public\n */\n@event(\"item-click\", {\n\tcancelable: true,\n})\n\n/**\n * Fired before the menu is opened. This event can be cancelled, which will prevent the menu from opening.\n *\n * **Note:** Since 1.14.0 the event is also fired before a sub-menu opens.\n * @public\n * @since 1.10.0\n * @param { HTMLElement } item The `ui5-menu-item` that triggers opening of the sub-menu or undefined when fired upon root menu opening.\n */\n@event(\"before-open\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired after the menu is opened.\n * @public\n * @since 1.10.0\n */\n@event(\"open\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the menu is being closed.\n * @private\n */\n@event(\"close-menu\", {\n\tbubbles: true,\n})\n\n/**\n * Fired before the menu is closed. This event can be cancelled, which will prevent the menu from closing.\n * @public\n * @param {boolean} escPressed Indicates that `ESC` key has triggered the event.\n * @since 1.10.0\n */\n@event(\"before-close\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired after the menu is closed.\n * @public\n * @since 1.10.0\n */\n@event(\"close\")\n\nclass Menu extends UI5Element {\n\teventDetails!: {\n\t\t\"item-click\": MenuItemClickEventDetail,\n\t\t\"before-open\": MenuBeforeOpenEventDetail,\n\t\t\"open\": void,\n\t\t\"before-close\": MenuBeforeCloseEventDetail,\n\t\t\"close\": void,\n\t\t\"close-menu\": void,\n\t}\n\t/**\n\t * Defines the header text of the menu (displayed on mobile).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\theaderText?: string;\n\n\t/**\n\t * Indicates if the menu is open.\n\t * @public\n\t * @default false\n\t * @since 1.10.0\n\t */\n\t@property({ type: Boolean })\n\topen = false;\n\n\t/**\n\t * Determines the horizontal alignment of the menu relative to its opener control.\n\t * @default \"Start\"\n\t * @public\n\t */\n\t@property()\n\thorizontalAlign: `${PopoverHorizontalAlign}` = \"Start\";\n\n\t/**\n\t * Defines if a loading indicator would be displayed inside the corresponding ui5-menu popover.\n\t * @default false\n\t * @public\n\t * @since 1.13.0\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines the delay in milliseconds, after which the loading indicator will be displayed inside the corresponding ui5-menu popover.\n\t * @default 1000\n\t * @public\n\t * @since 1.13.0\n\t */\n\t@property({ type: Number })\n\tloadingDelay = 1000;\n\n\t/**\n\t * Defines the ID or DOM Reference of the element at which the menu is shown.\n\t * When using this attribute in a declarative way, you must only use the `id` (as a string) of the element at which you want to show the popover.\n\t * You can only set the `opener` attribute to a DOM Reference when using JavaScript.\n\t * @public\n\t * @default undefined\n\t * @since 1.10.0\n\t */\n\t@property({ converter: DOMReferenceConverter })\n\topener?: HTMLElement | string;\n\n\t/**\n\t * Defines the items of this component.\n\t *\n\t * **Note:** Use `ui5-menu-item` and `ui5-menu-separator` for their intended design.\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, invalidateOnChildChange: true })\n\titems!: Array<IMenuItem>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\t_timeout?: Timeout;\n\n\tget isRtl() {\n\t\treturn this.effectiveDir === \"rtl\";\n\t}\n\n\tget labelClose() {\n\t\treturn Menu.i18nBundle.getText(MENU_CLOSE_BUTTON_ARIA_LABEL);\n\t}\n\n\tget isPhone() {\n\t\treturn isPhone();\n\t}\n\n\tget _popover() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\tget _menuItems() {\n\t\treturn this.items.filter((item): item is MenuItem => !item.isSeparator);\n\t}\n\n\tget acessibleNameText() {\n\t\treturn Menu.i18nBundle.getText(MENU_POPOVER_ACCESSIBLE_NAME);\n\t}\n\n\tonBeforeRendering() {\n\t\tconst siblingsWithIcon = this._menuItems.some(menuItem => !!menuItem.icon);\n\n\t\tthis._menuItems.forEach(item => {\n\t\t\titem._siblingsWithIcon = siblingsWithIcon;\n\t\t});\n\t}\n\n\t_close() {\n\t\tthis.open = false;\n\t}\n\n\t_openItemSubMenu(item: MenuItem) {\n\t\tclearTimeout(this._timeout);\n\n\t\tif (!item._popover || item._popover.open) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"before-open\", {\n\t\t\titem,\n\t\t});\n\t\titem._popover.opener = item;\n\t\titem._popover.open = true;\n\t\titem.selected = true;\n\t}\n\n\t_closeItemSubMenu(item: MenuItem) {\n\t\tif (item && item._popover) {\n\t\t\tconst openedSibling = item._menuItems.find(menuItem => menuItem._popover && menuItem._popover.open);\n\t\t\tif (openedSibling) {\n\t\t\t\tthis._closeItemSubMenu(openedSibling);\n\t\t\t}\n\n\t\t\titem._popover.open = false;\n\t\t\titem.selected = false;\n\t\t}\n\t}\n\n\t_itemMouseOver(e: MouseEvent) {\n\t\tif (isDesktop()) {\n\t\t\t// respect mouseover only on desktop\n\t\t\tconst item = e.target as MenuItem;\n\n\t\t\tif (this._isInstanceOfMenuItem(item)) {\n\t\t\t\titem.focus();\n\n\t\t\t\t// Opens submenu with 300ms delay\n\t\t\t\tthis._startOpenTimeout(item);\n\t\t\t}\n\t\t}\n\t}\n\n\tasync focus(focusOptions?: FocusOptions): Promise<void> {\n\t\tawait renderFinished();\n\t\tconst firstMenuItem = this._menuItems[0];\n\n\t\tif (firstMenuItem) {\n\t\t\treturn firstMenuItem.focus(focusOptions);\n\t\t}\n\n\t\treturn super.focus(focusOptions);\n\t}\n\n\t_startOpenTimeout(item: MenuItem) {\n\t\tclearTimeout(this._timeout);\n\n\t\tthis._timeout = setTimeout(() => {\n\t\t\tconst opener = item.parentElement as MenuItem | Menu;\n\t\t\tconst openedSibling = opener && opener._menuItems.find(menuItem => menuItem._popover && menuItem._popover.open);\n\t\t\tif (openedSibling) {\n\t\t\t\tthis._closeItemSubMenu(openedSibling);\n\t\t\t}\n\n\t\t\tthis._openItemSubMenu(item);\n\t\t}, MENU_OPEN_DELAY);\n\t}\n\n\t_itemClick(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst item = e.detail.item as MenuItem;\n\n\t\tif (!item._popover) {\n\t\t\tconst prevented = !this.fireDecoratorEvent(\"item-click\", {\n\t\t\t\t\"item\": item,\n\t\t\t\t\"text\": item.text || \"\",\n\t\t\t});\n\n\t\t\tif (!prevented && this._popover) {\n\t\t\t\titem.fireDecoratorEvent(\"close-menu\");\n\t\t\t}\n\t\t} else {\n\t\t\tthis._openItemSubMenu(item);\n\t\t}\n\t}\n\n\t_itemKeyDown(e: KeyboardEvent) {\n\t\tconst isTabNextPrevious = isTabNext(e) || isTabPrevious(e);\n\t\tconst item = e.target as MenuItem;\n\t\tconst parentElement = item.parentElement as MenuItem;\n\t\tconst shouldItemNavigation = isUp(e) || isDown(e);\n\t\tconst shouldOpenMenu = this.isRtl ? isLeft(e) : isRight(e);\n\t\tconst shouldCloseMenu = !shouldItemNavigation && !shouldOpenMenu && this._isInstanceOfMenuItem(parentElement);\n\n\t\tif (this._isInstanceOfMenuItem(item)) {\n\t\t\tif (isEnter(e) || isTabNextPrevious) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\n\t\t\tif (isRight(e) || isLeft(e)) {\n\t\t\t\titem._navigateToEndContent(isLeft(e));\n\t\t\t}\n\n\t\t\tif (shouldOpenMenu) {\n\t\t\t\tthis._openItemSubMenu(item);\n\t\t\t} else if ((shouldCloseMenu || isTabNextPrevious) && parentElement._popover) {\n\t\t\t\tparentElement._popover.open = false;\n\t\t\t\tparentElement.selected = false;\n\t\t\t\tparentElement._popover.focusOpener();\n\t\t\t}\n\t\t} else if (isUp(e)) {\n\t\t\tthis._navigateOutOfEndContent(parentElement);\n\t\t} else if (isDown(e)) {\n\t\t\tthis._navigateOutOfEndContent(parentElement, true);\n\t\t}\n\t}\n\n\t_navigateOutOfEndContent(menuItem: MenuItem, isDownwards?: boolean) {\n\t\tconst opener = menuItem?.parentElement as MenuItem | Menu;\n\t\tconst currentIndex = opener._menuItems.indexOf(menuItem);\n\t\tconst nextItem = isDownwards ? opener._menuItems[currentIndex + 1] : opener._menuItems[currentIndex - 1];\n\t\tconst itemToFocus = nextItem || opener._menuItems[currentIndex];\n\n\t\titemToFocus.focus();\n\t}\n\n\t_beforePopoverOpen(e: CustomEvent) {\n\t\tconst prevented = !this.fireDecoratorEvent(\"before-open\", {});\n\n\t\tif (prevented) {\n\t\t\tthis.open = false;\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_afterPopoverOpen() {\n\t\tthis._menuItems[0]?.focus();\n\t\tthis.fireDecoratorEvent(\"open\");\n\t}\n\n\t_beforePopoverClose(e: CustomEvent) {\n\t\tconst prevented = !this.fireDecoratorEvent(\"before-close\", { escPressed: e.detail.escPressed });\n\n\t\tif (prevented) {\n\t\t\tthis.open = true;\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_afterPopoverClose() {\n\t\tthis.open = false;\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\t_isInstanceOfMenuItem(object: any): object is MenuItem {\n\t\treturn \"isMenuItem\" in object;\n\t}\n}\n\nMenu.define();\n\nexport default Menu;\nexport type {\n\tMenuItemClickEventDetail,\n\tMenuBeforeCloseEventDetail,\n\tMenuBeforeOpenEventDetail,\n\tIMenuItem,\n};\n"]}
@@ -5,7 +5,7 @@ import BusyIndicator from "./BusyIndicator.js";
5
5
  import Button from "./Button.js";
6
6
  import declineIcon from "@ui5/webcomponents-icons/dist/decline.js";
7
7
  export default function MenuTemplate() {
8
- return (_jsxs(ResponsivePopover, { id: `${this._id}-menu-rp`, class: "ui5-menu-rp", placement: "Bottom", verticalAlign: "Bottom", opener: this.opener, open: this.open, preventInitialFocus: true, hideArrow: true, allowTargetOverlap: true, accessibleName: this.acessibleNameText, onBeforeOpen: this._beforePopoverOpen, onOpen: this._afterPopoverOpen, onBeforeClose: this._beforePopoverClose, onClose: this._afterPopoverClose, children: [this.isPhone &&
8
+ return (_jsxs(ResponsivePopover, { id: `${this._id}-menu-rp`, class: "ui5-menu-rp", placement: "Bottom", verticalAlign: "Bottom", horizontalAlign: this.horizontalAlign, opener: this.opener, open: this.open, preventInitialFocus: true, hideArrow: true, allowTargetOverlap: true, accessibleName: this.acessibleNameText, onBeforeOpen: this._beforePopoverOpen, onOpen: this._afterPopoverOpen, onBeforeClose: this._beforePopoverClose, onClose: this._afterPopoverClose, children: [this.isPhone &&
9
9
  _jsxs("div", { slot: "header", class: "ui5-menu-dialog-header", children: [_jsx("div", { class: "ui5-menu-dialog-title", children: _jsx("h1", { children: this.headerText }) }), _jsx(Button, { icon: declineIcon, design: "Transparent", "aria-label": this.labelClose, onClick: this._close })] }), _jsx("div", { id: `${this._id}-menu-main`, children: this.items.length ?
10
10
  (_jsx(List, { id: `${this._id}- menu-list`, selectionMode: "None", loading: this.loading, loadingDelay: this.loadingDelay, separators: "None", accessibleRole: "Menu", onItemClick: this._itemClick, onMouseOver: this._itemMouseOver, onKeyDown: this._itemKeyDown, "onui5-close-menu": this._close, children: _jsx("slot", {}) }))
11
11
  : this.loading && (_jsx(BusyIndicator, { id: `${this._id}-menu-busy-indicator`, delay: this.loadingDelay, class: "ui5-menu-busy-indicator", active: true })) })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"MenuTemplate.js","sourceRoot":"","sources":["../src/MenuTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,WAAW,MAAM,0CAA0C,CAAC;AAEnE,MAAM,CAAC,OAAO,UAAU,YAAY;IACnC,OAAO,CACN,MAAC,iBAAiB,IACjB,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU,EACzB,KAAK,EAAC,aAAa,EACnB,SAAS,EAAC,QAAQ,EAClB,aAAa,EAAC,QAAQ,EACtB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,mBAAmB,EAAE,IAAI,EACzB,SAAS,EAAE,IAAI,EACf,kBAAkB,EAAE,IAAI,EACxB,cAAc,EAAE,IAAI,CAAC,iBAAiB,EACtC,YAAY,EAAE,IAAI,CAAC,kBAAkB,EACrC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAC9B,aAAa,EAAE,IAAI,CAAC,mBAAmB,EACvC,OAAO,EAAE,IAAI,CAAC,kBAAkB,aAE/B,IAAI,CAAC,OAAO;gBACZ,eAAK,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,wBAAwB,aAChD,cAAK,KAAK,EAAC,uBAAuB,YACjC,uBACE,IAAI,CAAC,UAAU,GACZ,GACA,EACN,KAAC,MAAM,IACN,IAAI,EAAE,WAAW,EACjB,MAAM,EAAC,aAAa,gBACR,IAAI,CAAC,UAAU,EAC3B,OAAO,EAAE,IAAI,CAAC,MAAM,GACnB,IACG,EAEP,cACC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,YAAY,YAE1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACnB,CAAC,KAAC,IAAI,IACL,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,aAAa,EAC5B,aAAa,EAAC,MAAM,EACpB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,UAAU,EAAC,MAAM,EACjB,cAAc,EAAC,MAAM,EACrB,WAAW,EAAE,IAAI,CAAC,UAAU,EAC5B,WAAW,EAAE,IAAI,CAAC,cAAc,EAChC,SAAS,EAAE,IAAI,CAAC,YAAY,sBAEV,IAAI,CAAC,MAAM,YAE7B,gBAAa,GACP,CAAC;oBACR,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,KAAC,aAAa,IAChC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,sBAAsB,EACrC,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,KAAK,EAAC,yBAAyB,EAC/B,MAAM,EAAE,IAAI,GACX,CACD,GAEG,IACc,CACrB,CAAC;AACH,CAAC","sourcesContent":["import type Menu from \"./Menu.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport List from \"./List.js\";\nimport BusyIndicator from \"./BusyIndicator.js\";\nimport Button from \"./Button.js\";\nimport declineIcon from \"@ui5/webcomponents-icons/dist/decline.js\";\n\nexport default function MenuTemplate(this: Menu) {\n\treturn (\n\t\t<ResponsivePopover\n\t\t\tid={`${this._id}-menu-rp`}\n\t\t\tclass=\"ui5-menu-rp\"\n\t\t\tplacement=\"Bottom\"\n\t\t\tverticalAlign=\"Bottom\"\n\t\t\topener={this.opener}\n\t\t\topen={this.open}\n\t\t\tpreventInitialFocus={true}\n\t\t\thideArrow={true}\n\t\t\tallowTargetOverlap={true}\n\t\t\taccessibleName={this.acessibleNameText}\n\t\t\tonBeforeOpen={this._beforePopoverOpen}\n\t\t\tonOpen={this._afterPopoverOpen}\n\t\t\tonBeforeClose={this._beforePopoverClose}\n\t\t\tonClose={this._afterPopoverClose}\n\t\t>\n\t\t\t{this.isPhone &&\n\t\t\t\t<div slot=\"header\" class=\"ui5-menu-dialog-header\">\n\t\t\t\t\t<div class=\"ui5-menu-dialog-title\">\n\t\t\t\t\t\t<h1>\n\t\t\t\t\t\t\t{this.headerText}\n\t\t\t\t\t\t</h1>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={declineIcon}\n\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\taria-label={this.labelClose}\n\t\t\t\t\t\tonClick={this._close}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t<div\n\t\t\t\tid={`${this._id}-menu-main`}\n\t\t\t>\n\t\t\t\t{this.items.length ?\n\t\t\t\t\t(<List\n\t\t\t\t\t\tid={`${this._id}- menu-list`}\n\t\t\t\t\t\tselectionMode=\"None\"\n\t\t\t\t\t\tloading={this.loading}\n\t\t\t\t\t\tloadingDelay={this.loadingDelay}\n\t\t\t\t\t\tseparators=\"None\"\n\t\t\t\t\t\taccessibleRole=\"Menu\"\n\t\t\t\t\t\tonItemClick={this._itemClick}\n\t\t\t\t\t\tonMouseOver={this._itemMouseOver}\n\t\t\t\t\t\tonKeyDown={this._itemKeyDown}\n\t\t\t\t\t\t// handles event from slotted children\n\t\t\t\t\t\tonui5-close-menu={this._close}\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</List>)\n\t\t\t\t\t: this.loading && (<BusyIndicator\n\t\t\t\t\t\tid={`${this._id}-menu-busy-indicator`}\n\t\t\t\t\t\tdelay={this.loadingDelay}\n\t\t\t\t\t\tclass=\"ui5-menu-busy-indicator\"\n\t\t\t\t\t\tactive={true}\n\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</div>\n\t\t</ResponsivePopover >\n\t);\n}\n"]}
1
+ {"version":3,"file":"MenuTemplate.js","sourceRoot":"","sources":["../src/MenuTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,WAAW,MAAM,0CAA0C,CAAC;AAEnE,MAAM,CAAC,OAAO,UAAU,YAAY;IACnC,OAAO,CACN,MAAC,iBAAiB,IACjB,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU,EACzB,KAAK,EAAC,aAAa,EACnB,SAAS,EAAC,QAAQ,EAClB,aAAa,EAAC,QAAQ,EACtB,eAAe,EAAE,IAAI,CAAC,eAAe,EACrC,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,mBAAmB,EAAE,IAAI,EACzB,SAAS,EAAE,IAAI,EACf,kBAAkB,EAAE,IAAI,EACxB,cAAc,EAAE,IAAI,CAAC,iBAAiB,EACtC,YAAY,EAAE,IAAI,CAAC,kBAAkB,EACrC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAC9B,aAAa,EAAE,IAAI,CAAC,mBAAmB,EACvC,OAAO,EAAE,IAAI,CAAC,kBAAkB,aAE/B,IAAI,CAAC,OAAO;gBACZ,eAAK,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,wBAAwB,aAChD,cAAK,KAAK,EAAC,uBAAuB,YACjC,uBACE,IAAI,CAAC,UAAU,GACZ,GACA,EACN,KAAC,MAAM,IACN,IAAI,EAAE,WAAW,EACjB,MAAM,EAAC,aAAa,gBACR,IAAI,CAAC,UAAU,EAC3B,OAAO,EAAE,IAAI,CAAC,MAAM,GACnB,IACG,EAEP,cACC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,YAAY,YAE1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACnB,CAAC,KAAC,IAAI,IACL,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,aAAa,EAC5B,aAAa,EAAC,MAAM,EACpB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,UAAU,EAAC,MAAM,EACjB,cAAc,EAAC,MAAM,EACrB,WAAW,EAAE,IAAI,CAAC,UAAU,EAC5B,WAAW,EAAE,IAAI,CAAC,cAAc,EAChC,SAAS,EAAE,IAAI,CAAC,YAAY,sBAEV,IAAI,CAAC,MAAM,YAE7B,gBAAa,GACP,CAAC;oBACR,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,KAAC,aAAa,IAChC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,sBAAsB,EACrC,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,KAAK,EAAC,yBAAyB,EAC/B,MAAM,EAAE,IAAI,GACX,CACD,GAEG,IACc,CACrB,CAAC;AACH,CAAC","sourcesContent":["import type Menu from \"./Menu.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport List from \"./List.js\";\nimport BusyIndicator from \"./BusyIndicator.js\";\nimport Button from \"./Button.js\";\nimport declineIcon from \"@ui5/webcomponents-icons/dist/decline.js\";\n\nexport default function MenuTemplate(this: Menu) {\n\treturn (\n\t\t<ResponsivePopover\n\t\t\tid={`${this._id}-menu-rp`}\n\t\t\tclass=\"ui5-menu-rp\"\n\t\t\tplacement=\"Bottom\"\n\t\t\tverticalAlign=\"Bottom\"\n\t\t\thorizontalAlign={this.horizontalAlign}\n\t\t\topener={this.opener}\n\t\t\topen={this.open}\n\t\t\tpreventInitialFocus={true}\n\t\t\thideArrow={true}\n\t\t\tallowTargetOverlap={true}\n\t\t\taccessibleName={this.acessibleNameText}\n\t\t\tonBeforeOpen={this._beforePopoverOpen}\n\t\t\tonOpen={this._afterPopoverOpen}\n\t\t\tonBeforeClose={this._beforePopoverClose}\n\t\t\tonClose={this._afterPopoverClose}\n\t\t>\n\t\t\t{this.isPhone &&\n\t\t\t\t<div slot=\"header\" class=\"ui5-menu-dialog-header\">\n\t\t\t\t\t<div class=\"ui5-menu-dialog-title\">\n\t\t\t\t\t\t<h1>\n\t\t\t\t\t\t\t{this.headerText}\n\t\t\t\t\t\t</h1>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={declineIcon}\n\t\t\t\t\t\tdesign=\"Transparent\"\n\t\t\t\t\t\taria-label={this.labelClose}\n\t\t\t\t\t\tonClick={this._close}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t<div\n\t\t\t\tid={`${this._id}-menu-main`}\n\t\t\t>\n\t\t\t\t{this.items.length ?\n\t\t\t\t\t(<List\n\t\t\t\t\t\tid={`${this._id}- menu-list`}\n\t\t\t\t\t\tselectionMode=\"None\"\n\t\t\t\t\t\tloading={this.loading}\n\t\t\t\t\t\tloadingDelay={this.loadingDelay}\n\t\t\t\t\t\tseparators=\"None\"\n\t\t\t\t\t\taccessibleRole=\"Menu\"\n\t\t\t\t\t\tonItemClick={this._itemClick}\n\t\t\t\t\t\tonMouseOver={this._itemMouseOver}\n\t\t\t\t\t\tonKeyDown={this._itemKeyDown}\n\t\t\t\t\t\t// handles event from slotted children\n\t\t\t\t\t\tonui5-close-menu={this._close}\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</List>)\n\t\t\t\t\t: this.loading && (<BusyIndicator\n\t\t\t\t\t\tid={`${this._id}-menu-busy-indicator`}\n\t\t\t\t\t\tdelay={this.loadingDelay}\n\t\t\t\t\t\tclass=\"ui5-menu-busy-indicator\"\n\t\t\t\t\t\tactive={true}\n\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</div>\n\t\t</ResponsivePopover >\n\t);\n}\n"]}
package/dist/Popover.js CHANGED
@@ -471,9 +471,9 @@ let Popover = Popover_1 = class Popover extends Popup {
471
471
  }
472
472
  // Restricts the arrow's translate value along each dimension,
473
473
  // so that the arrow does not clip over the popover's rounded borders.
474
- const safeRangeForArrowY = popoverSize.height / 2 - borderRadius - ARROW_SIZE / 2;
474
+ const safeRangeForArrowY = popoverSize.height / 2 - borderRadius - ARROW_SIZE / 2 - 2;
475
475
  arrowTranslateY = clamp(arrowTranslateY, -safeRangeForArrowY, safeRangeForArrowY);
476
- const safeRangeForArrowX = popoverSize.width / 2 - borderRadius - ARROW_SIZE / 2;
476
+ const safeRangeForArrowX = popoverSize.width / 2 - borderRadius - ARROW_SIZE / 2 - 2;
477
477
  arrowTranslateX = clamp(arrowTranslateX, -safeRangeForArrowX, safeRangeForArrowX);
478
478
  return {
479
479
  x: Math.round(arrowTranslateX),